@lininn/zz 0.3.1 → 0.3.3

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 (467) hide show
  1. package/dist/server.mjs +82 -82
  2. package/dist/web/assets/{AppUsageDailyModelTrendChart-DlHT9qeY.js → AppUsageDailyModelTrendChart-CF6lXOPo.js} +1 -1
  3. package/dist/web/assets/{AppUsageModelUsagePieChart-D6Xy7hEA.js → AppUsageModelUsagePieChart-2OvRPaRk.js} +1 -1
  4. package/dist/web/assets/{CodingPlanUsageBarChart-25ASXZMK.js → CodingPlanUsageBarChart-DLiJNh0O.js} +1 -1
  5. package/dist/web/assets/{CodingPlanUsageLineChart-CQBSZPhE.js → CodingPlanUsageLineChart-SsFzr9ZA.js} +1 -1
  6. package/dist/web/assets/ConversationShareReadonlyTimeline-9pQVgORY.js +1 -0
  7. package/dist/web/assets/CrewGroupEditor-vtHRcX0r.js +10 -0
  8. package/dist/web/assets/{CrewSection-CzNo74cV.js → CrewSection-CDMqV7m9.js} +1 -1
  9. package/dist/web/assets/{IntlProvider-DUG46ElV.js → IntlProvider-CVTbxqVs.js} +3 -3
  10. package/dist/web/assets/activity-Dq34t6Qn.js +1 -0
  11. package/dist/web/assets/alarm-clock-BzzXvoT-.js +1 -0
  12. package/dist/web/assets/anchor-ByHp_81Q.js +1 -0
  13. package/dist/web/assets/app-window-CC9hW8H4.js +1 -0
  14. package/dist/web/assets/archive-BuMwSy7X.js +1 -0
  15. package/dist/web/assets/arrow-down-BBaJf0Dk.js +1 -0
  16. package/dist/web/assets/arrow-down-to-line-gzD_r59g.js +1 -0
  17. package/dist/web/assets/arrow-left-from-line-Dc3UwlkT.js +1 -0
  18. package/dist/web/assets/arrow-right-CgFNCvqs.js +1 -0
  19. package/dist/web/assets/arrow-right-left-D78Q3Qur.js +1 -0
  20. package/dist/web/assets/arrow-right-to-line-B5gNzrka.js +1 -0
  21. package/dist/web/assets/{plug-B3pEit1Y.js → arrow-up-CcfE8Eux.js} +1 -1
  22. package/dist/web/assets/arrow-up-from-line-DnD4XLg8.js +1 -0
  23. package/dist/web/assets/arrow-up-right-OYiGVIvw.js +1 -0
  24. package/dist/web/assets/arrow-up-to-line-C8Uq_PCc.js +1 -0
  25. package/dist/web/assets/astroid-CRso5wO0.js +1 -0
  26. package/dist/web/assets/{badge-Cvkf9MQd.js → badge-CwaItmLP.js} +1 -1
  27. package/dist/web/assets/ban-Dzp6aHHa.js +1 -0
  28. package/dist/web/assets/bell-DEJ0ORb2.js +1 -0
  29. package/dist/web/assets/blocks-ClG1JnSi.js +1 -0
  30. package/dist/web/assets/book-open-Bdgc6gMf.js +1 -0
  31. package/dist/web/assets/book-open-text-gHRRakp4.js +1 -0
  32. package/dist/web/assets/bot-BhkZHSAr.js +1 -0
  33. package/dist/web/assets/bot-message-square-1uMQt4CZ.js +1 -0
  34. package/dist/web/assets/box-CUJOEbWs.js +1 -0
  35. package/dist/web/assets/brain-pXAvL7ob.js +1 -0
  36. package/dist/web/assets/briefcase-business-DXkaFlmh.js +1 -0
  37. package/dist/web/assets/bug-DfApMiR6.js +1 -0
  38. package/dist/web/assets/cable-BqoQLo_a.js +1 -0
  39. package/dist/web/assets/calendar-clock-Dn2ra7F-.js +1 -0
  40. package/dist/web/assets/calendar-days-BMul0yBa.js +1 -0
  41. package/dist/web/assets/camera-DopKjXKF.js +1 -0
  42. package/dist/web/assets/chart-column-CVcpg8yX.js +1 -0
  43. package/dist/web/assets/chart-line-dabL-Lqg.js +1 -0
  44. package/dist/web/assets/chevrons-down-ojNHH04F.js +1 -0
  45. package/dist/web/assets/chevrons-up-down-CXXrB7Wk.js +1 -0
  46. package/dist/web/assets/circle-0nLJvMG1.js +1 -0
  47. package/dist/web/assets/circle-alert-CVT1lmx5.js +1 -0
  48. package/dist/web/assets/circle-check-B-cq3bnJ.js +1 -0
  49. package/dist/web/assets/circle-check-big-CazQ0rpe.js +1 -0
  50. package/dist/web/assets/circle-dashed-oZqScD5V.js +1 -0
  51. package/dist/web/assets/circle-minus-uqhRaEnu.js +1 -0
  52. package/dist/web/assets/circle-pause-Ca2MhWeh.js +1 -0
  53. package/dist/web/assets/circle-play-DCBdFI9U.js +1 -0
  54. package/dist/web/assets/circle-plus-A0SwSmtW.js +1 -0
  55. package/dist/web/assets/circle-question-mark-BvJyhslB.js +1 -0
  56. package/dist/web/assets/circle-slash-2-FaEjSANX.js +1 -0
  57. package/dist/web/assets/circle-stop-BZHd-kIA.js +1 -0
  58. package/dist/web/assets/circle-x-C-vChnXs.js +1 -0
  59. package/dist/web/assets/clipboard-CUIueX8h.js +1 -0
  60. package/dist/web/assets/clipboard-check-BVQ02DaZ.js +1 -0
  61. package/dist/web/assets/clipboard-paste-B7LlSvAE.js +1 -0
  62. package/dist/web/assets/clipboard-pen-line-Cy43v7Pi.js +1 -0
  63. package/dist/web/assets/clock-3-Cd-gDcif.js +1 -0
  64. package/dist/web/assets/clock-Dy5mZMQc.js +1 -0
  65. package/dist/web/assets/clock-alert-Cgv-wOOK.js +1 -0
  66. package/dist/web/assets/cloud-KDLOQKxB.js +1 -0
  67. package/dist/web/assets/cloud-alert-BmiU_6VW.js +1 -0
  68. package/dist/web/assets/cloud-off-BoOxp3-F.js +1 -0
  69. package/dist/web/assets/cloud-upload-4Z69jB6Y.js +1 -0
  70. package/dist/web/assets/code-xml-WTL9wADc.js +1 -0
  71. package/dist/web/assets/cpu-Bk9SnuAP.js +1 -0
  72. package/dist/web/assets/crown-BdF7Rqn3.js +1 -0
  73. package/dist/web/assets/download-FqbmYWzU.js +1 -0
  74. package/dist/web/assets/earth-BYmLBfy3.js +1 -0
  75. package/dist/web/assets/ellipsis-nMiEq0jX.js +1 -0
  76. package/dist/web/assets/eraser-CxnqfOt8.js +1 -0
  77. package/dist/web/assets/external-link-DLXzBRBX.js +1 -0
  78. package/dist/web/assets/eye-DFeRipcM.js +1 -0
  79. package/dist/web/assets/eye-off-D96v120z.js +1 -0
  80. package/dist/web/assets/file-VmTLxzR8.js +1 -0
  81. package/dist/web/assets/file-clock-Zq3-YjN0.js +1 -0
  82. package/dist/web/assets/file-code-BEWVxs7t.js +1 -0
  83. package/dist/web/assets/file-code-corner-B0Jav3LA.js +1 -0
  84. package/dist/web/assets/file-diff-Laxlvfyd.js +1 -0
  85. package/dist/web/assets/file-exclamation-point-CHjvvUPl.js +1 -0
  86. package/dist/web/assets/file-key-BOfztPg8.js +1 -0
  87. package/dist/web/assets/file-output-DEdzQnKG.js +1 -0
  88. package/dist/web/assets/file-search-pPQNRGn0.js +1 -0
  89. package/dist/web/assets/file-text-Bmp9F6JM.js +1 -0
  90. package/dist/web/assets/files-BMzRzgRB.js +1 -0
  91. package/dist/web/assets/flask-conical-_OlYPPrP.js +1 -0
  92. package/dist/web/assets/folder-minus-C0GbFTt0.js +1 -0
  93. package/dist/web/assets/folder-plus-DC-nMEX5.js +1 -0
  94. package/dist/web/assets/folders-2Tk5UlWH.js +1 -0
  95. package/dist/web/assets/gauge-i7_W9XmU.js +1 -0
  96. package/dist/web/assets/gift-BpbSQERb.js +1 -0
  97. package/dist/web/assets/git-branch-DQDmyXBl.js +1 -0
  98. package/dist/web/assets/git-commit-horizontal-Bs5PKrC9.js +1 -0
  99. package/dist/web/assets/git-commit-vertical-BJPCE7PV.js +1 -0
  100. package/dist/web/assets/git-graph-PIHca2cd.js +1 -0
  101. package/dist/web/assets/git-merge-DBU9B48x.js +1 -0
  102. package/dist/web/assets/globe-DGfEMMfR.js +1 -0
  103. package/dist/web/assets/goal--cfrEH98.js +1 -0
  104. package/dist/web/assets/graduation-cap-CHUKuUEH.js +1 -0
  105. package/dist/web/assets/grip-horizontal-Dsx3Y_Ts.js +1 -0
  106. package/dist/web/assets/grip-vertical-XPaoP1kx.js +1 -0
  107. package/dist/web/assets/hand-B_MfpSxu.js +1 -0
  108. package/dist/web/assets/hard-drive-B624q2xc.js +1 -0
  109. package/dist/web/assets/hash-CcSLgmPG.js +1 -0
  110. package/dist/web/assets/history-DgQYr7Qq.js +1 -0
  111. package/dist/web/assets/hourglass-CAMpktqV.js +1 -0
  112. package/dist/web/assets/image-CYk8ykLD.js +1 -0
  113. package/dist/web/assets/image-off-DuAqc97e.js +1 -0
  114. package/dist/web/assets/image-plus-DBLlGLgz.js +1 -0
  115. package/dist/web/assets/import-ofDM3oVO.js +1 -0
  116. package/dist/web/assets/inbox-D0mSWbyn.js +1 -0
  117. package/dist/web/assets/{index-qSqtUnFc.js → index-CRD-9roR.js} +144 -144
  118. package/dist/web/assets/key-round-BPadAeYE.js +1 -0
  119. package/dist/web/assets/keyboard-U7sSjRKV.js +1 -0
  120. package/dist/web/assets/laptop-Dps9tTHZ.js +1 -0
  121. package/dist/web/assets/library-Drnn2tE7.js +1 -0
  122. package/dist/web/assets/lightbulb-DmqJe4zf.js +1 -0
  123. package/dist/web/assets/link-CUKVh_RU.js +1 -0
  124. package/dist/web/assets/list-S81B93Zx.js +1 -0
  125. package/dist/web/assets/list-checks-6DsYAZyO.js +1 -0
  126. package/dist/web/assets/list-chevrons-down-up-BJMVZN-X.js +1 -0
  127. package/dist/web/assets/list-chevrons-up-down-Ccv5eoXX.js +1 -0
  128. package/dist/web/assets/list-filter-gEUAqCSh.js +1 -0
  129. package/dist/web/assets/list-todo-BZik7oeu.js +1 -0
  130. package/dist/web/assets/list-tree-Duuomj2J.js +1 -0
  131. package/dist/web/assets/locate-fixed-BCCeEgHC.js +1 -0
  132. package/dist/web/assets/lock-keyhole-RVINAFa9.js +1 -0
  133. package/dist/web/assets/log-in-CPBRamNV.js +1 -0
  134. package/dist/web/assets/log-out-DyAGCyME.js +1 -0
  135. package/dist/web/assets/map-BC14bsX1.js +1 -0
  136. package/dist/web/assets/map-pin-tbL8RLxM.js +1 -0
  137. package/dist/web/assets/maximize-2-BpCa0hes.js +1 -0
  138. package/dist/web/assets/maximize-B0tV8qyH.js +1 -0
  139. package/dist/web/assets/megaphone-CJBWUZp9.js +1 -0
  140. package/dist/web/assets/message-circle-BZGP01Ew.js +1 -0
  141. package/dist/web/assets/message-circle-plus-Ivuqia9E.js +1 -0
  142. package/dist/web/assets/message-circle-question-mark-CtUqBA8F.js +1 -0
  143. package/dist/web/assets/message-circle-reply-Dlq20Ysj.js +1 -0
  144. package/dist/web/assets/message-square-DIQAxT8h.js +1 -0
  145. package/dist/web/assets/message-square-plus-BeRahHkF.js +1 -0
  146. package/dist/web/assets/message-square-text-ggw4f8sb.js +1 -0
  147. package/dist/web/assets/messages-square-SP5cMPF0.js +1 -0
  148. package/dist/web/assets/mic-R-dnu3cB.js +1 -0
  149. package/dist/web/assets/minimize-2-DwJdPa0x.js +1 -0
  150. package/dist/web/assets/monitor-BocyfX9q.js +1 -0
  151. package/dist/web/assets/monitor-cog-D6w4YN4e.js +1 -0
  152. package/dist/web/assets/monitor-smartphone-hii8fYJk.js +1 -0
  153. package/dist/web/assets/monitor-up-RwwXuFqs.js +1 -0
  154. package/dist/web/assets/moon-CHnVYhBn.js +1 -0
  155. package/dist/web/assets/mouse-pointer-click-CCyuH6kG.js +1 -0
  156. package/dist/web/assets/music-2-uhbdBf1A.js +1 -0
  157. package/dist/web/assets/music-ZWFkAVdi.js +1 -0
  158. package/dist/web/assets/network-IYqebUW3.js +1 -0
  159. package/dist/web/assets/notepad-text-C65xBc58.js +1 -0
  160. package/dist/web/assets/package-CtyXRMhi.js +1 -0
  161. package/dist/web/assets/{lightbulb-RH-TmrKX.js → palette-C4-LK53-.js} +1 -1
  162. package/dist/web/assets/panel-left-close-DiZ778zS.js +1 -0
  163. package/dist/web/assets/panel-left-open-DnPk0Dsq.js +1 -0
  164. package/dist/web/assets/panel-right-BGWeJW05.js +1 -0
  165. package/dist/web/assets/panel-right-close-C1gy2z12.js +1 -0
  166. package/dist/web/assets/panel-right-open-snags9ny.js +1 -0
  167. package/dist/web/assets/panels-top-left-aM_YSKXx.js +1 -0
  168. package/dist/web/assets/paperclip-CUI6ExzF.js +1 -0
  169. package/dist/web/assets/pause--bd3ex_4.js +1 -0
  170. package/dist/web/assets/pen-DDu-oMyz.js +1 -0
  171. package/dist/web/assets/pen-tool-DVlE58LP.js +1 -0
  172. package/dist/web/assets/pencil-ruler-9CttfDjD.js +1 -0
  173. package/dist/web/assets/pin-CaG8fc8E.js +1 -0
  174. package/dist/web/assets/pin-off-CtzNr78h.js +1 -0
  175. package/dist/web/assets/play-LHWUoQgy.js +1 -0
  176. package/dist/web/assets/plug-DnClfJjO.js +1 -0
  177. package/dist/web/assets/power-DfI_jCWk.js +1 -0
  178. package/dist/web/assets/presentation-B5pLohaL.js +1 -0
  179. package/dist/web/assets/previewPaneOfficeContent-BVQ5jD7d.js +1 -0
  180. package/dist/web/assets/{previewPaneOfficeXlsxContent-KG_ixbOj.js → previewPaneOfficeXlsxContent-CF-reI8F.js} +1 -1
  181. package/dist/web/assets/previewPanePdfContent-CGyeQ2Wv.js +1 -0
  182. package/dist/web/assets/previewPanePptxContent-BwfXW367.js +1 -0
  183. package/dist/web/assets/puzzle-gX65QCPk.js +1 -0
  184. package/dist/web/assets/qr-code-1MFFY_Ja.js +1 -0
  185. package/dist/web/assets/quote-B63qPxVG.js +1 -0
  186. package/dist/web/assets/redo-2-BE61AoEK.js +1 -0
  187. package/dist/web/assets/refresh-ccw-D-6vjlVA.js +1 -0
  188. package/dist/web/assets/repeat-2-D7fiYa5S.js +1 -0
  189. package/dist/web/assets/reply-hRsBP_Pc.js +1 -0
  190. package/dist/web/assets/rocket-BF0OeFkk.js +1 -0
  191. package/dist/web/assets/rotate-ccw-BErod8f3.js +1 -0
  192. package/dist/web/assets/{cloud-off-DPixxTP1.js → save-CNzlRoRU.js} +1 -1
  193. package/dist/web/assets/scale-Cf1l_OqX.js +1 -0
  194. package/dist/web/assets/scroll-text-CCazhf0g.js +1 -0
  195. package/dist/web/assets/server-BomlS6Jm.js +1 -0
  196. package/dist/web/assets/settings-2-D_rmZRei.js +1 -0
  197. package/dist/web/assets/settings-BCQSiwXB.js +1 -0
  198. package/dist/web/assets/share-CqhRIBVm.js +1 -0
  199. package/dist/web/assets/shield-CHHSV3jw.js +1 -0
  200. package/dist/web/assets/shield-alert-BnPeG4iY.js +1 -0
  201. package/dist/web/assets/shield-check-C_72r-oH.js +1 -0
  202. package/dist/web/assets/sliders-horizontal-BvD_m7n7.js +1 -0
  203. package/dist/web/assets/smartphone-BFbDEYId.js +1 -0
  204. package/dist/web/assets/sparkle-D4FVLQq2.js +1 -0
  205. package/dist/web/assets/square-DH5SGzn-.js +1 -0
  206. package/dist/web/assets/square-arrow-right-enter-CFFyhv6h.js +1 -0
  207. package/dist/web/assets/square-code-DNTz_Ktt.js +1 -0
  208. package/dist/web/assets/square-kanban-DmnBFNJD.js +1 -0
  209. package/dist/web/assets/square-mouse-pointer-BCX--erx.js +1 -0
  210. package/dist/web/assets/square-slash--zPMIXUK.js +1 -0
  211. package/dist/web/assets/square-terminal-BqNfQDzl.js +1 -0
  212. package/dist/web/assets/store-RVG8l5_G.js +1 -0
  213. package/dist/web/assets/sun-DZLiak7R.js +1 -0
  214. package/dist/web/assets/table-B0hAEm73.js +1 -0
  215. package/dist/web/assets/tag-BCkDKfGW.js +1 -0
  216. package/dist/web/assets/target-Ddu-rI8j.js +1 -0
  217. package/dist/web/assets/terminal-Byq2iqU7.js +1 -0
  218. package/dist/web/assets/text-wrap-CMkPqPpL.js +1 -0
  219. package/dist/web/assets/thumbs-down-ek-P1GZo.js +1 -0
  220. package/dist/web/assets/thumbs-up-gkm6VVW4.js +1 -0
  221. package/dist/web/assets/trending-up-Cqgw19aP.js +1 -0
  222. package/dist/web/assets/trending-up-down-BJ0BOymU.js +1 -0
  223. package/dist/web/assets/undo-2-BphN5SCJ.js +1 -0
  224. package/dist/web/assets/unlink-COkHLHm3.js +1 -0
  225. package/dist/web/assets/unplug-CeOaP06C.js +1 -0
  226. package/dist/web/assets/upload-BZBIlAJi.js +1 -0
  227. package/dist/web/assets/{usageStatsUiParts-Cll4C3d6.js → usageStatsUiParts-smGNZAdO.js} +1 -1
  228. package/dist/web/assets/usb-CA5lDEQ0.js +1 -0
  229. package/dist/web/assets/user-CbZDhsPP.js +1 -0
  230. package/dist/web/assets/user-round-BLc1_dNf.js +1 -0
  231. package/dist/web/assets/video-j8rNewZm.js +1 -0
  232. package/dist/web/assets/volume-2-QgNHgXxd.js +1 -0
  233. package/dist/web/assets/wand-DDRzCcIE.js +1 -0
  234. package/dist/web/assets/wand-sparkles-D8gwwGRo.js +1 -0
  235. package/dist/web/assets/waypoints-BS-LSf75.js +1 -0
  236. package/dist/web/assets/webhook-BQPjuV83.js +1 -0
  237. package/dist/web/assets/workflow-DtmSOZ1O.js +1 -0
  238. package/dist/web/assets/wrench-BC9Vl6fQ.js +1 -0
  239. package/dist/web/assets/zap-DYPCxx2D.js +1 -0
  240. package/dist/web/index.html +5 -5
  241. package/package.json +1 -1
  242. package/dist/web/assets/ConversationShareReadonlyTimeline-BBPR-CoP.js +0 -1
  243. package/dist/web/assets/CrewGroupEditor-Byejvhcd.js +0 -10
  244. package/dist/web/assets/activity-BuJFovin.js +0 -1
  245. package/dist/web/assets/alarm-clock-CFvnX1vU.js +0 -1
  246. package/dist/web/assets/anchor-CWsB1Yyd.js +0 -1
  247. package/dist/web/assets/app-window-BbmT0LX1.js +0 -1
  248. package/dist/web/assets/archive-DGcdSfXG.js +0 -1
  249. package/dist/web/assets/arrow-down-CFqAsDcT.js +0 -1
  250. package/dist/web/assets/arrow-down-to-line-3ji-gY7a.js +0 -1
  251. package/dist/web/assets/arrow-left-from-line-BJZfYfcO.js +0 -1
  252. package/dist/web/assets/arrow-right-D5f_LmrK.js +0 -1
  253. package/dist/web/assets/arrow-right-left-CfjF6Czr.js +0 -1
  254. package/dist/web/assets/arrow-right-to-line-lYSIVpc1.js +0 -1
  255. package/dist/web/assets/arrow-up-Bg5ZAIyM.js +0 -1
  256. package/dist/web/assets/arrow-up-from-line-C2_htZcp.js +0 -1
  257. package/dist/web/assets/arrow-up-right-DBlR6Hik.js +0 -1
  258. package/dist/web/assets/arrow-up-to-line-BOAWjxhn.js +0 -1
  259. package/dist/web/assets/astroid-BUOhO7pu.js +0 -1
  260. package/dist/web/assets/ban-JtKcRZtQ.js +0 -1
  261. package/dist/web/assets/bell-BrIsG2wx.js +0 -1
  262. package/dist/web/assets/blocks-CE5A6vCO.js +0 -1
  263. package/dist/web/assets/book-open-BChgx3_X.js +0 -1
  264. package/dist/web/assets/book-open-text-EHMv3Fbj.js +0 -1
  265. package/dist/web/assets/bot-DU_fa3pv.js +0 -1
  266. package/dist/web/assets/bot-message-square-BD2KsLIf.js +0 -1
  267. package/dist/web/assets/box-jU6UAFRl.js +0 -1
  268. package/dist/web/assets/brain-v2WA1d1c.js +0 -1
  269. package/dist/web/assets/briefcase-business-BT2b_7iX.js +0 -1
  270. package/dist/web/assets/bug-TalZPePV.js +0 -1
  271. package/dist/web/assets/cable-sEIbBx0F.js +0 -1
  272. package/dist/web/assets/calendar-clock-CGUzGvP_.js +0 -1
  273. package/dist/web/assets/calendar-days-CRoUTOYW.js +0 -1
  274. package/dist/web/assets/camera-Dsy7fGVr.js +0 -1
  275. package/dist/web/assets/chart-column-D_DZk52A.js +0 -1
  276. package/dist/web/assets/chart-line-CNmeG6LM.js +0 -1
  277. package/dist/web/assets/chevrons-down-CgNbO8W9.js +0 -1
  278. package/dist/web/assets/chevrons-up-down-CKE7wdU7.js +0 -1
  279. package/dist/web/assets/circle-BIu1NT6y.js +0 -1
  280. package/dist/web/assets/circle-alert-Cc3_4XGe.js +0 -1
  281. package/dist/web/assets/circle-check-DCtsRJ03.js +0 -1
  282. package/dist/web/assets/circle-check-big-BGMKSqa9.js +0 -1
  283. package/dist/web/assets/circle-dashed-DlRllXcV.js +0 -1
  284. package/dist/web/assets/circle-minus-BlWUwFtv.js +0 -1
  285. package/dist/web/assets/circle-pause-DVOG-lkf.js +0 -1
  286. package/dist/web/assets/circle-play-DOSNZOeQ.js +0 -1
  287. package/dist/web/assets/circle-plus-BpCEMIBj.js +0 -1
  288. package/dist/web/assets/circle-question-mark-BJT3bOcC.js +0 -1
  289. package/dist/web/assets/circle-slash-2-CDZ1hy3t.js +0 -1
  290. package/dist/web/assets/circle-stop-CgbF6GUi.js +0 -1
  291. package/dist/web/assets/circle-x-WSsjXL1O.js +0 -1
  292. package/dist/web/assets/clipboard-DuBnV-Um.js +0 -1
  293. package/dist/web/assets/clipboard-check-BnHn9GoV.js +0 -1
  294. package/dist/web/assets/clipboard-paste-KI03vPGE.js +0 -1
  295. package/dist/web/assets/clipboard-pen-line-lNk6-S3p.js +0 -1
  296. package/dist/web/assets/clock-3-DfD_-nAn.js +0 -1
  297. package/dist/web/assets/clock-UXgjMA74.js +0 -1
  298. package/dist/web/assets/clock-alert-C__5xzQm.js +0 -1
  299. package/dist/web/assets/cloud-DYtZ5NEw.js +0 -1
  300. package/dist/web/assets/cloud-alert-Dg1r0rFp.js +0 -1
  301. package/dist/web/assets/cloud-upload-n_ciSYZn.js +0 -1
  302. package/dist/web/assets/code-xml-DfhB46_Q.js +0 -1
  303. package/dist/web/assets/cpu-DruJWIna.js +0 -1
  304. package/dist/web/assets/crown-DfyhvYO5.js +0 -1
  305. package/dist/web/assets/download-Dh-sATpv.js +0 -1
  306. package/dist/web/assets/earth-DopdJwG0.js +0 -1
  307. package/dist/web/assets/ellipsis-D3_I3mHD.js +0 -1
  308. package/dist/web/assets/eraser-Dh6wyVcF.js +0 -1
  309. package/dist/web/assets/external-link-S2puRRum.js +0 -1
  310. package/dist/web/assets/eye-off-Civ_Pxe7.js +0 -1
  311. package/dist/web/assets/eye-v8yj_5ck.js +0 -1
  312. package/dist/web/assets/file-DFmYJK1X.js +0 -1
  313. package/dist/web/assets/file-clock-wynEg1Qq.js +0 -1
  314. package/dist/web/assets/file-code-BQQQ5YsL.js +0 -1
  315. package/dist/web/assets/file-code-corner-D_nIx4PX.js +0 -1
  316. package/dist/web/assets/file-diff-CGJhxvnW.js +0 -1
  317. package/dist/web/assets/file-exclamation-point-CrplX7ca.js +0 -1
  318. package/dist/web/assets/file-key-ChKgo8tS.js +0 -1
  319. package/dist/web/assets/file-output-Cep3Vne7.js +0 -1
  320. package/dist/web/assets/file-search-DNcgSpT4.js +0 -1
  321. package/dist/web/assets/file-text-D9oGYkU2.js +0 -1
  322. package/dist/web/assets/files-Bi1-3ijt.js +0 -1
  323. package/dist/web/assets/flask-conical-82CLwaSu.js +0 -1
  324. package/dist/web/assets/folder-minus-r5lo-eGY.js +0 -1
  325. package/dist/web/assets/folder-plus-Crolxqka.js +0 -1
  326. package/dist/web/assets/folders-BolLwRxX.js +0 -1
  327. package/dist/web/assets/gauge-CxNEu1OH.js +0 -1
  328. package/dist/web/assets/gift-Cixry2XR.js +0 -1
  329. package/dist/web/assets/git-branch-D6jAG5bi.js +0 -1
  330. package/dist/web/assets/git-commit-horizontal-bMXZuknU.js +0 -1
  331. package/dist/web/assets/git-commit-vertical-BUlnU-7M.js +0 -1
  332. package/dist/web/assets/git-graph-CPtS26kA.js +0 -1
  333. package/dist/web/assets/git-merge-Cqwg50y1.js +0 -1
  334. package/dist/web/assets/globe-B5AeII6Z.js +0 -1
  335. package/dist/web/assets/goal-BCGCkscm.js +0 -1
  336. package/dist/web/assets/graduation-cap-BFp7gU7s.js +0 -1
  337. package/dist/web/assets/grip-horizontal-CkMlJkoo.js +0 -1
  338. package/dist/web/assets/grip-vertical-CtIWFPx8.js +0 -1
  339. package/dist/web/assets/hand-BEHg8zpp.js +0 -1
  340. package/dist/web/assets/hard-drive-I0V01Jvu.js +0 -1
  341. package/dist/web/assets/hash-DmQMCV_Y.js +0 -1
  342. package/dist/web/assets/history-B8cJEeCY.js +0 -1
  343. package/dist/web/assets/hourglass-Cvrum-T_.js +0 -1
  344. package/dist/web/assets/image-2fWqpR_O.js +0 -1
  345. package/dist/web/assets/image-off-BbiqQeOk.js +0 -1
  346. package/dist/web/assets/image-plus-C4f9DUAB.js +0 -1
  347. package/dist/web/assets/import-DDuGrn6n.js +0 -1
  348. package/dist/web/assets/inbox-CBPOF5E4.js +0 -1
  349. package/dist/web/assets/key-round-BOJc4xXo.js +0 -1
  350. package/dist/web/assets/keyboard-CsMx9zBg.js +0 -1
  351. package/dist/web/assets/laptop-CxTAJ1B_.js +0 -1
  352. package/dist/web/assets/library-CyhQraUY.js +0 -1
  353. package/dist/web/assets/link-CRoZN0D2.js +0 -1
  354. package/dist/web/assets/list-NgQ-aEWr.js +0 -1
  355. package/dist/web/assets/list-checks-DFH82em1.js +0 -1
  356. package/dist/web/assets/list-chevrons-down-up-HCx5sUXg.js +0 -1
  357. package/dist/web/assets/list-chevrons-up-down-DHvhI4bW.js +0 -1
  358. package/dist/web/assets/list-filter-BBIntIWw.js +0 -1
  359. package/dist/web/assets/list-todo-C1zwxSqY.js +0 -1
  360. package/dist/web/assets/list-tree-B3aF3CQS.js +0 -1
  361. package/dist/web/assets/locate-fixed-C2oHzdE4.js +0 -1
  362. package/dist/web/assets/lock-keyhole-czHWu4Yi.js +0 -1
  363. package/dist/web/assets/log-in-DfAH7Lvf.js +0 -1
  364. package/dist/web/assets/log-out-CiPP5uj-.js +0 -1
  365. package/dist/web/assets/map-BKwVYNQJ.js +0 -1
  366. package/dist/web/assets/map-pin-Cd8mMINW.js +0 -1
  367. package/dist/web/assets/maximize-2-wYDj1flj.js +0 -1
  368. package/dist/web/assets/maximize-CgTjKF4W.js +0 -1
  369. package/dist/web/assets/megaphone-H1honxMv.js +0 -1
  370. package/dist/web/assets/message-circle-plus-BDLGO-Mv.js +0 -1
  371. package/dist/web/assets/message-circle-question-mark-fmOpjcd-.js +0 -1
  372. package/dist/web/assets/message-circle-qysZU-xR.js +0 -1
  373. package/dist/web/assets/message-circle-reply-CeYi4ERh.js +0 -1
  374. package/dist/web/assets/message-square-BcC3cWfq.js +0 -1
  375. package/dist/web/assets/message-square-plus-BXVz9Q7u.js +0 -1
  376. package/dist/web/assets/message-square-text-kpPiJ5y-.js +0 -1
  377. package/dist/web/assets/messages-square-Da39QU24.js +0 -1
  378. package/dist/web/assets/mic-D_U5_RdK.js +0 -1
  379. package/dist/web/assets/minimize-2-BrIwC4LE.js +0 -1
  380. package/dist/web/assets/monitor-cog-DhGmZ5IE.js +0 -1
  381. package/dist/web/assets/monitor-iAufgx1o.js +0 -1
  382. package/dist/web/assets/monitor-smartphone-uxipUgUD.js +0 -1
  383. package/dist/web/assets/monitor-up-D43xzdnQ.js +0 -1
  384. package/dist/web/assets/moon-BKIERUYc.js +0 -1
  385. package/dist/web/assets/mouse-pointer-click-B_CBMdyx.js +0 -1
  386. package/dist/web/assets/music-2-CD2sLxOg.js +0 -1
  387. package/dist/web/assets/music-BG4291HZ.js +0 -1
  388. package/dist/web/assets/network-BXQBrvSa.js +0 -1
  389. package/dist/web/assets/notepad-text-BLZWqW7q.js +0 -1
  390. package/dist/web/assets/package-1ksaj8zl.js +0 -1
  391. package/dist/web/assets/palette-DeB4pWt_.js +0 -1
  392. package/dist/web/assets/panel-left-close-BmSRVWoB.js +0 -1
  393. package/dist/web/assets/panel-left-open-Dd7RBaOY.js +0 -1
  394. package/dist/web/assets/panel-right-CUMi5TkS.js +0 -1
  395. package/dist/web/assets/panel-right-close-BfW3BeeC.js +0 -1
  396. package/dist/web/assets/panel-right-open-Ci3j9CMf.js +0 -1
  397. package/dist/web/assets/panels-top-left-CdcrXCHZ.js +0 -1
  398. package/dist/web/assets/paperclip-KC31S_US.js +0 -1
  399. package/dist/web/assets/pause-MWK3rMgx.js +0 -1
  400. package/dist/web/assets/pen-D4co-1vF.js +0 -1
  401. package/dist/web/assets/pen-tool-B2D_8q5s.js +0 -1
  402. package/dist/web/assets/pencil-ruler-DVJ75v2k.js +0 -1
  403. package/dist/web/assets/pin-WWCBscm8.js +0 -1
  404. package/dist/web/assets/pin-off-CDtw3o81.js +0 -1
  405. package/dist/web/assets/play-CGnTceYe.js +0 -1
  406. package/dist/web/assets/power-its3nO3M.js +0 -1
  407. package/dist/web/assets/presentation-DuMyueSq.js +0 -1
  408. package/dist/web/assets/previewPaneOfficeContent-KOBBOE2P.js +0 -1
  409. package/dist/web/assets/previewPanePdfContent-BWXmyUPR.js +0 -1
  410. package/dist/web/assets/previewPanePptxContent-COFYIwqV.js +0 -1
  411. package/dist/web/assets/puzzle-DLBiKcpO.js +0 -1
  412. package/dist/web/assets/qr-code-Dju1gsEy.js +0 -1
  413. package/dist/web/assets/quote-Baub-pzy.js +0 -1
  414. package/dist/web/assets/redo-2-D38dgZB3.js +0 -1
  415. package/dist/web/assets/refresh-ccw-B8WccG2B.js +0 -1
  416. package/dist/web/assets/repeat-2-DHUfIKY9.js +0 -1
  417. package/dist/web/assets/reply--xLpo03L.js +0 -1
  418. package/dist/web/assets/rocket-CyNkG8ex.js +0 -1
  419. package/dist/web/assets/rotate-ccw-CwK7-PaB.js +0 -1
  420. package/dist/web/assets/save-955vGQL6.js +0 -1
  421. package/dist/web/assets/scale-BbcfNGuU.js +0 -1
  422. package/dist/web/assets/scroll-text-BWSI0yHJ.js +0 -1
  423. package/dist/web/assets/server-C2UcG9gR.js +0 -1
  424. package/dist/web/assets/settings-2-YDO2brtL.js +0 -1
  425. package/dist/web/assets/settings-xbV47DMW.js +0 -1
  426. package/dist/web/assets/share-OXp89NiC.js +0 -1
  427. package/dist/web/assets/shield-DDLzA87y.js +0 -1
  428. package/dist/web/assets/shield-alert-R_jEi0h4.js +0 -1
  429. package/dist/web/assets/shield-check-B6gjv7GB.js +0 -1
  430. package/dist/web/assets/sliders-horizontal-BvzdYbm-.js +0 -1
  431. package/dist/web/assets/smartphone-D7JTV6CH.js +0 -1
  432. package/dist/web/assets/sparkle-DUzotG0x.js +0 -1
  433. package/dist/web/assets/square-CuRiyTKf.js +0 -1
  434. package/dist/web/assets/square-arrow-right-enter-Dg_gE1fi.js +0 -1
  435. package/dist/web/assets/square-code-BXvugZyB.js +0 -1
  436. package/dist/web/assets/square-kanban-GYfbqQv9.js +0 -1
  437. package/dist/web/assets/square-mouse-pointer-COFAYlyV.js +0 -1
  438. package/dist/web/assets/square-slash-CiUxI5QI.js +0 -1
  439. package/dist/web/assets/square-terminal-C6JXpw_u.js +0 -1
  440. package/dist/web/assets/store-CoelbAnh.js +0 -1
  441. package/dist/web/assets/sun-CpJ3i5J2.js +0 -1
  442. package/dist/web/assets/table-BAptBCZE.js +0 -1
  443. package/dist/web/assets/tag-BSfByLAP.js +0 -1
  444. package/dist/web/assets/target-1tSLzrwy.js +0 -1
  445. package/dist/web/assets/terminal--V9tbpRG.js +0 -1
  446. package/dist/web/assets/text-wrap-Bh5KqEMa.js +0 -1
  447. package/dist/web/assets/thumbs-down-Cyh-uEE7.js +0 -1
  448. package/dist/web/assets/thumbs-up-sFdL8w8n.js +0 -1
  449. package/dist/web/assets/trending-up-Cn_-bC72.js +0 -1
  450. package/dist/web/assets/trending-up-down-Bn-gfflD.js +0 -1
  451. package/dist/web/assets/undo-2-BfxuHEFw.js +0 -1
  452. package/dist/web/assets/unlink-Ds9PqBC8.js +0 -1
  453. package/dist/web/assets/unplug-DdjpbOEZ.js +0 -1
  454. package/dist/web/assets/upload-MTPYuUWz.js +0 -1
  455. package/dist/web/assets/usb-5WLUxCnX.js +0 -1
  456. package/dist/web/assets/user-CUEq_xo7.js +0 -1
  457. package/dist/web/assets/user-round-BJV2rWaS.js +0 -1
  458. package/dist/web/assets/video-DU2-s_Iz.js +0 -1
  459. package/dist/web/assets/volume-2-C_aHGN2f.js +0 -1
  460. package/dist/web/assets/wand-BFAdj03N.js +0 -1
  461. package/dist/web/assets/wand-sparkles-D9lvwkRU.js +0 -1
  462. package/dist/web/assets/waypoints-cvHH3Xw6.js +0 -1
  463. package/dist/web/assets/webhook-DtKlE6XJ.js +0 -1
  464. package/dist/web/assets/workflow-yVqTA6bi.js +0 -1
  465. package/dist/web/assets/wrench-CkS-fqnC.js +0 -1
  466. package/dist/web/assets/zap-Jp_NYof5.js +0 -1
  467. /package/dist/web/assets/{share-dialog-noise-light-BFbw4Sdi.png → share-dialog-noise-BFbw4Sdi.png} +0 -0
@@ -2,8 +2,8 @@ import{s as e}from"./chunk-Bj-mKKzh.js";import{Kc as t}from"./src-WQFtWgRW.js";i
2
2
  https://zcode.z.ai`,"manualClaimPlan.claim.share.twitterTextLabel":`Twitter/X 分享文案`,"common.loading":`加载中...`,"common.listSeparator":`、`,"common.generating":`生成中...`,"common.connecting":`连接中...`,"common.cancel":`取消`,"common.retry":`重试`,"common.close":`关闭`,"common.gotIt":`知道了`,"chat.plan.removeMarker":`取消下一次提交的计划模式`,"common.confirm":`确认`,"common.more":`更多`,"common.refresh":`刷新`,"common.open":`打开`,"common.save":`保存`,"common.saveChanges":`保存更改`,"common.saving":`保存中...`,"common.delete":`删除`,"conversationShare.popover.title":`分享对话`,"conversationShare.range.label":`分享内容`,"conversationShare.range.all":`全部已完成内容 · {count} 轮`,"conversationShare.range.selected":`已选 {count} 轮`,"conversationShare.range.exceeded":`超出上限 {count} 行`,"conversationShare.range.locate":`定位到对话`,"conversationShare.range.adjust":`调整`,"conversationShare.range.confirm":`确认`,"conversationShare.trigger":`分享`,"conversationShare.artifact.notIncluded":`此产物未包含在分享中`,"conversationShare.artifact.sourceUnavailable":`原始内容不可用`,"conversationShare.artifact.unsupported":`当前分享不支持此类型`,"conversationShare.artifact.limitExceeded":`超出分享大小限制`,"conversationShare.artifact.dashboardUnavailable":`看板数据不可用`,"conversationShare.artifact.dashboardInvalid":`无法显示此看板`,"conversationShare.artifact.openDownload":`打开 / 下载`,"conversationShare.artifact.openFile":`打开文件`,"conversationShare.artifact.resourceUnavailable":`资源不可用`,"conversationShare.artifact.previewFailed":`预览加载失败,可尝试打开文件`,"conversationShare.artifact.loading":`加载中…`,"conversationShare.workflowUnavailable":`工作流快照不可用`,"conversationShare.workflowPartial":`部分工作流数据未包含在此快照中`,"conversationShare.capturedSnapshot":`分享时快照`,"conversationShare.readonly.history":`思考过程`,"conversationShare.readonly.computerUse":`电脑操作`,"conversationShare.readonly.explore":`探索`,"conversationShare.readonly.execute":`执行`,"conversationShare.readonly.changes":`修改`,"conversationShare.readonly.artifactPreview":`下载文件`,"conversationShare.readonly.markerCompact":`上下文已压缩`,"conversationShare.readonly.markerModelChange":`模型已切换`,"conversationShare.readonly.unsupportedRows":`部分内容需要更新 ZCode 查看`,"conversationShare.workflowSnapshot":`工具调用时的快照,不会实时更新`,"conversationShare.shareTitle":`分享标题`,"conversationShare.permissionLabel":`访问权限`,"conversationShare.permission.private":`仅自己`,"conversationShare.permission.linkViewer":`凭链接查看`,"conversationShare.permission.linkViewerSummary":`凭链接查看`,"conversationShare.permission.linkEditor":`凭链接导入并继续`,"conversationShare.permission.linkEditorSummary":`凭链接导入并继续`,"conversationShare.permission.privateSummary":`仅自己`,"conversationShare.openLink":`打开分享页`,"conversationShare.result.title":`分享已创建`,"conversationShare.result.openInBrowser":`浏览器查看`,"conversationShare.result.dismiss":`关闭分享结果`,"conversationShare.generatingLink":`正在生成分享链接`,"conversationShare.copyLink":`复制链接`,"conversationShare.copySucceeded":`分享链接已复制`,"conversationShare.publishSucceeded":`分享链接已生成`,"conversationShare.publishSucceededWithSkips":`分享链接已生成,有 {count} 个文件被跳过`,"conversationShare.copyFailed":`复制分享链接失败`,"conversationShare.error.serviceUnavailable":`分享服务暂时异常,请稍后重试。`,"conversationShare.error.safetyCheckRejected":`内容未通过安全检查,请调整所选对话或文件后再分享。`,"conversationShare.error.safetyCheckUnavailable":`安全检查服务暂不可用,请稍后重试。`,"conversationShare.error.preparationNotFound":`分享准备记录已失效,请重新生成链接。`,"conversationShare.error.preparationExpired":`分享准备已过期,请重新生成链接。`,"conversationShare.import.notAllowed":`此分享仅支持查看,无法导入。请让分享者开放导入权限。`,"conversationShare.import.unsupportedVersion":`当前版本不支持此分享格式,请更新 ZCode。`,"conversationShare.issue.ruleLabel":`校验规则`,"conversationShare.issue.pathLabel":`字段位置`,"conversationShare.issue.fieldLabel":`字段`,"conversationShare.issue.rowLabel":`内容行(从 1 开始)`,"conversationShare.issue.rowKindLabel":`内容类型`,"conversationShare.publishFailed":`生成分享链接失败,请重试`,"conversationShare.error.authenticationRequired":`请先登录 ZCode 后再分享。若已登录,请重新登录后重试。`,"conversationShare.error.featureDisabled":`分享功能当前不可用,请稍后再试。`,"conversationShare.error.artifactNotAllowed":`某个预览文件的类型暂不支持分享,请取消选择对应对话后重试。`,"conversationShare.error.limitExceeded":`所选对话或文件超过分享限制,请减少选择的对话数量。`,"conversationShare.error.rateLimited":`分享操作过于频繁,请稍后再试。`,"conversationShare.error.invalidContractHttp":`分享服务接口异常(HTTP {status}),暂时无法完成发布。请重试;若仍失败,请提供错误详情。`,"conversationShare.error.invalidContract":`ZCode 无法读取分享服务返回的结果,未能完成分享。请稍后重试;若仍失败,请在“错误详情”中复制请求 ID,并联系支持人员。`,"conversationShare.issue.clientRequestIdLabel":`客户端请求 ID`,"conversationShare.issue.codeLabel":`错误码`,"conversationShare.error.network":`分享请求连接中断或超时,请检查网络后重试。`,"conversationShare.error.safetyCheckTimeout":`分享安全检查超时,请稍后重试。`,"conversationShare.error.invalidSelection":`所选对话已发生变化,请重新打开分享面板并选择。`,"conversationShare.error.invalidConversation":`所选对话内容暂时无法发布,请查看具体问题并调整后重试。`,"conversationShare.error.runningTurn":`所选对话仍在运行,请取消选择运行中的轮次,等待完成后再分享。`,"conversationShare.error.streamingRow":`所选对话仍在生成中,请等待本轮输出完成后再分享。`,"conversationShare.error.activeToolCall":`所选对话仍有工具调用未完成,请等待工具结束后再分享。`,"conversationShare.error.activeSubagent":`所选对话包含仍在运行的子任务,请等待子任务结束后再分享。`,"conversationShare.error.inputAttachment":`用户输入附件当前无法完成分享,请确认附件仍存在后重试。`,"conversationShare.error.inlineToolImage":`所选对话包含暂不支持的内嵌工具图片,请取消对应轮次后重试。`,"conversationShare.error.unsupportedTimeline":`所选对话包含暂不支持的分支或恢复记录,请取消对应轮次后重试。`,"conversationShare.error.unsafeUrl":`所选内容包含本地或内联文件地址,请移除后再分享。`,"conversationShare.error.missingProductTurn":`所选对话结构不完整,请重新打开分享面板并重新选择轮次。`,"conversationShare.error.artifactTypeNotAllowed":`某个预览文件类型暂不支持分享,请取消对应轮次后重试。`,"conversationShare.error.artifactExtensionMissing":`某个预览文件缺少有效扩展名,请检查文件后重试。`,"conversationShare.error.artifactOutsideWorkspace":`某个预览文件不在当前工作区内,请重新生成或移动文件后重试。`,"conversationShare.error.artifactChanged":`某个预览文件在分享前发生变化,请重新生成预览文件后重试。`,"conversationShare.error.artifactReadFailed":`某个预览文件读取失败,请确认文件仍存在且可访问后重试。`,"conversationShare.error.artifactSizeLimit":`某个文件超过单文件大小上限,请取消该轮或改用更小的文件后重试。`,"conversationShare.error.artifactManifest":`预览文件清单不完整,请重新生成文件并刷新分享面板后重试。`,"conversationShare.error.payloadLimit":`所选对话或文件超过分享限制,请减少选择后重试。`,"conversationShare.error.disclosureRequired":`请先检查并确认分享内容,再生成链接。`,"conversationShare.error.uploadFailed":`文件上传未完成或分享状态已变化,请重试。`,"conversationShare.error.connectionUnavailable":`桌面连接尚未就绪,请重新打开分享面板后重试。`,"conversationShare.error.noShareableContent":`当前选择没有可分享内容,请重新选择需要分享的轮次。`,"conversationShare.error.summary":`分享失败:发现 {count} 个问题,详情见分享面板。`,"conversationShare.issue.artifactTypeNotAllowed":`第 {turnOrdinal} 轮的 {artifactDisplayName}({artifactType})暂不支持分享,将被跳过。当前支持:{allowedFormats}。`,"conversationShare.issue.artifactExtensionMissing":`第 {turnOrdinal} 轮的预览文件缺少有效扩展名,请检查文件名后重试。`,"conversationShare.issue.artifactOutsideWorkspace":`第 {turnOrdinal} 轮的预览文件不在当前工作区内,请重新生成或移动文件后重试。`,"conversationShare.issue.artifactChanged":`第 {turnOrdinal} 轮的 {artifactDisplayName} 在读取期间发生变化,请重新生成文件后重试。`,"conversationShare.issue.contentUnavailable":`部分工作流内容只能分享摘要,请查看分享页中的不可用说明。`,"conversationShare.issue.artifactReadFailed":`第 {turnOrdinal} 轮的 {artifactDisplayName} 无法读取,请确认文件仍存在且可访问。`,"conversationShare.issue.inputAttachment":`第 {turnOrdinal} 轮包含用户输入附件,当前版本不支持,请取消该轮。`,"conversationShare.issue.inputAttachmentUnavailable":`第 {turnOrdinal} 轮的用户输入附件已不存在或无法读取。`,"conversationShare.issue.inlineToolImage":`第 {turnOrdinal} 轮包含无法公开承载的内嵌工具图片。`,"conversationShare.issue.runningTurn":`第 {turnOrdinal} 轮仍在运行,请等待完成或取消该轮。`,"conversationShare.issue.streamingRow":`第 {turnOrdinal} 轮仍在生成,请等待完成或取消该轮。`,"conversationShare.issue.activeToolCall":`第 {turnOrdinal} 轮仍有工具调用未完成,请取消该轮。`,"conversationShare.issue.activeSubagent":`第 {turnOrdinal} 轮仍有子任务运行,请等待完成或取消该轮。`,"conversationShare.issue.unsupportedTimeline":`第 {turnOrdinal} 轮包含当前无法公开承载的时间线记录。`,"conversationShare.issue.noShareableContent":`当前选择没有可分享内容,请重新选择需要分享的轮次。`,"conversationShare.issue.unsafeUrl":`第 {turnOrdinal} 轮包含本地或内联文件地址,当前版本不支持,请移除后重试。`,"conversationShare.issue.missingProductTurn":`所选内容缺少完整轮次身份,请重新选择对话。`,"conversationShare.issue.invalidSelection":`所选轮次已发生变化,请返回选择并重新勾选。`,"conversationShare.issue.invalidConversation":`所选对话结构不完整,请取消问题轮次后重试。`,"conversationShare.issue.staleConversation":`会话在准备分享期间发生变化,请返回选择后重试。`,"conversationShare.issue.rowsLimit":`对话行数为 {actual},超过上限 {limit},请减少选择的轮次。`,"conversationShare.issue.artifactCountLimit":`产物数量为 {actual},超过上限 {limit},请减少选择的轮次。`,"conversationShare.issue.artifactSizeLimit":`{artifactDisplayName} 大小为 {actual},超过单文件上限 {limit},请取消该轮或重新生成较小文件。`,"conversationShare.issue.artifactTotalSizeLimit":`产物总大小为 {actual},超过上限 {limit},请减少产物或取消对应轮次。`,"conversationShare.issue.payloadSizeLimit":`分享请求大小为 {actual},超过上限 {limit},请减少选择的轮次或产物。`,"conversationShare.issue.artifactManifest":`预览文件清单存在重复或缺失,请重新生成文件并刷新分享面板。`,"conversationShare.issue.uploadIncomplete":`{artifactDisplayName} 上传回执与文件不一致,请确认文件未变化后重试。`,"conversationShare.issue.invalidServiceResponse":`分享服务返回了无法识别的响应,请稍后重试。`,"conversationShare.issue.unknown":`分享未能完成,暂时无法确定原因。请重试;若仍失败,请提供错误详情。`,"conversationShare.issue.details":`错误详情`,"conversationShare.issue.requestIdLabel":`服务端请求 ID`,"conversationShare.issue.requestId":`服务端请求 ID:{requestId}`,"conversationShare.issue.requestIdMissing":`未收到服务端 request-id。`,"conversationShare.issue.copyRequestId":`复制 request-id`,"conversationShare.issue.deselectTurn":`取消选择此轮`,"conversationShare.issue.retryPreflight":`重新检查`,"conversationShare.issue.more":`还有 {count} 个问题未展开。`,"conversationShare.warning.summary":`分享已完成,有 {count} 个文件被跳过,未包含在链接中。`,"conversationShare.warning.artifactSkipped":`第 {turnOrdinal} 轮的 {artifactDisplayName} 无法读取,已跳过。如果确实需要分享该文件,请重新生成后再分享。`,"conversationShare.warning.inputAttachmentSkipped":`第 {turnOrdinal} 轮的用户输入附件未包含在分享中,该轮文字内容照常分享。`,"conversationShare.warning.inputAttachmentUnavailable":`第 {turnOrdinal} 轮的 {artifactDisplayName} 已不存在或无法读取,已跳过。`,"conversationShare.warning.artifactTypeSkipped":`第 {turnOrdinal} 轮的 {artifactDisplayName}({artifactType})暂不支持分享,已跳过。当前支持:{allowedFormats}。`,"conversationShare.warning.artifactChangedSkipped":`第 {turnOrdinal} 轮的 {artifactDisplayName} 在分享前发生变化,已跳过。`,"conversationShare.partial.panelLabel":`选择要分享的对话`,"conversationShare.partial.empty":`当前没有已完成、可分享的对话`,"conversationShare.preflight.reviewIssues":`有内容无法分享,查看问题`,"conversationShare.preflight.reviewSkipped":`部分文件将跳过,查看详情`,"conversationShare.preflight.reviewDeferred":`部分文件待确认,查看详情`,"conversationShare.partial.preflightChecking":`正在检查分享内容…`,"conversationShare.partial.preflightUnavailable":`暂时无法检查分享,请按下方提示处理。`,"conversationShare.partial.preflightBlocked":`发现无法分享的内容,请先处理下方问题。`,"conversationShare.partial.preflightSkipped":`发现 {count} 个文件不会加入分享链接,继续后会跳过。`,"conversationShare.partial.preflightDeferred":`部分文件暂时无法检查,发布时会再次确认。`,"conversationShare.publish.failedTitle":`分享发布失败`,"conversationShare.publish.failedDescription":`请查看下方失败原因和错误详情。`,"conversationShare.publish.retry":`重试生成链接`,"conversationShare.publish.footerMeta":`分享 {selected} 个对话轮次,{access}`,"conversationShare.publish.failedFooter":`选择已保留,可根据失败原因重试`,"conversationShare.partial.selectAll":`全选`,"conversationShare.partial.selectionCount":`{selected}/{total}`,"conversationShare.partial.cancel":`取消`,"conversationShare.partial.confirm":`生成分享链接`,"conversationShare.partial.publishing":`生成中…`,"conversationShare.progress.collecting":`正在整理会话和产物…`,"conversationShare.progress.uploading":`正在上传产物…`,"conversationShare.progress.checking":`正在确认发布结果…`,"conversationShare.progress.collectingFailed":`整理会话和产物失败`,"conversationShare.progress.uploadingFailed":`上传产物失败`,"conversationShare.progress.checkingFailed":`发布确认失败`,"conversationShare.phase.collecting":`整理内容`,"conversationShare.phase.uploading":`上传产物`,"conversationShare.phase.checking":`发布确认`,"conversationShare.phase.collectingComplete":`会话和产物已准备`,"conversationShare.phase.uploadingComplete":`产物上传完成`,"conversationShare.phase.uploadingActive":`正在上传 {completed} / {total}`,"conversationShare.phase.collectingPending":`等待开始`,"conversationShare.phase.uploadingPending":`等待整理完成`,"conversationShare.phase.checkingPending":`等待上传完成`,"conversationShare.phase.failed":`失败`,"conversationShare.disclosure.description":`系统不自动检查`,"conversationShare.disclosure.checkbox":`已检查,确认无敏感信息`,"conversationShare.disclosure.scope.trigger":`检查范围`,"conversationShare.disclosure.scope.title":`检查范围`,"conversationShare.disclosure.scope.reviewLabel":`需要查看`,"conversationShare.disclosure.scope.conversation":`会话内容:用户消息、助手回复、任务标题`,"conversationShare.disclosure.scope.tools":`工具输入与输出:命令、参数、返回结果`,"conversationShare.disclosure.scope.generated":`生成内容:代码、文件、预览内容`,"conversationShare.disclosure.scope.sensitiveLabel":`重点排查`,"conversationShare.disclosure.scope.sensitive":`凭证、Token、密码、私钥、内部地址、个人信息`,"conversationShare.disclosure.scope.note":`系统不会自动扫描或脱敏,请逐项确认。`,"conversationShare.import.source":`已从分享导入:{title}`,"conversationShare.import.dividerLabel":`已从分享导入`,"conversationShare.import.fallbackRemoteWorkspace":`已从分享导入:{title}。当前工作区是远程的,暂不支持导入,会话已创建在本地工作区 {workspacePath}。`,"conversationShare.import.fallbackDefaultWorkspace":`已从分享导入:{title}。没有可用的目标工作区,会话已创建在默认工作区 {workspacePath}。`,"conversationShare.import.downloading":`正在下载分享文件:{completed}/{total}`,"conversationShare.import.installing":`正在安装分享文件`,"conversationShare.import.committing":`正在创建分享会话`,"conversationShare.import.complete":`分享导入完成`,"conversationShare.import.loginRequired":`该分享暂不支持匿名导入,请登录 ZCode 后重试`,"conversationShare.import.notFound":`分享不存在或当前账号无权访问,请检查链接和登录账号。`,"conversationShare.import.expired":`分享已过期,请让分享者重新生成`,"conversationShare.import.integrityFailed":`分享内容校验失败,请让分享者重新生成链接。`,"conversationShare.import.failed":`分享导入失败,请稍后重试;若仍失败,请联系支持。`,"conversationShare.import.integrityFailedWithArtifact":`分享文件 {artifactDisplayName} 校验失败,已停止导入,请让分享者重新生成链接。`,"conversationShare.import.failedWithArtifact":`分享文件 {artifactDisplayName} 在下载阶段失败,请检查网络后重试。`,"conversationShare.import.retry":`重试`,"settings.resourceGroup.item.one":`{count} 项`,"settings.resourceGroup.item.other":`{count} 项`,"pluginCreator.add":`添加`,"pluginCreator.create":`创建插件`,"pluginCreator.addMarketplace":`添加插件市场`,"pluginCreator.unavailable":`插件创建器暂不可用。请检查连接,并在插件市场启用或恢复“插件创建器”后重试。`,"settings.create.action":`新建`,"settings.resourceActions.import":`导入`,"settings.resourceActions.export":`导出`,"settings.resourceActions.more":`更多操作`,"carousel.previousSlide":`上一张幻灯片`,"carousel.nextSlide":`下一张幻灯片`,"quickPick.title":`命令面板`,"quickPick.description":`搜索并执行当前工作区可用的命令。`,"quickPick.placeholder":`输入命令`,"quickPick.empty":`没有找到匹配命令。`,"quickPick.commandFailed":`命令执行失败:{error}`,"quickPick.find.title":`在任务中查找`,"quickPick.find.description":`搜索当前任务中的消息和文件变更。`,"quickPick.find.results":`{current} / {total} 个结果`,"quickPick.find.placeholder.conversation":`搜索消息...`,"quickPick.find.placeholder.changes":`搜索文件变更...`,"quickPick.find.noResults.conversation":`没有找到消息`,"quickPick.find.noResults.changes":`没有找到文件变更`,"quickPick.find.empty.conversation":`输入内容搜索消息`,"quickPick.find.empty.changes":`输入文件路径搜索变更`,"quickPick.find.previous":`上一个结果`,"quickPick.find.next":`下一个结果`,"quickPick.find.scope.conversation":`搜索消息`,"quickPick.find.scope.changes":`搜索文件变更`,"quickPick.find.scope.tooltip":`切换搜索范围消息/文件`,"quickPick.section.suggested":`建议`,"quickPick.section.recommended":`推荐`,"quickPick.section.chat":`对话`,"quickPick.section.navigation":`导航`,"quickPick.section.panels":`面板`,"quickPick.section.configure":`配置`,"quickPick.section.panel":`面板`,"quickPick.section.config":`配置`,"quickPick.section.app":`应用`,"quickPick.command.newTask":`新任务`,"quickPick.command.openWorkspace":`打开工作区`,"quickPick.command.openFile":`搜索文件`,"quickPick.command.settings":`设置`,"quickPick.command.previousConversation":`上一个任务`,"quickPick.command.nextConversation":`下一个任务`,"quickPick.command.find":`查找任务`,"quickPick.command.goBack":`返回`,"quickPick.command.goForward":`前进`,"quickPick.command.switchThemeToDark":`切换主题到深色`,"quickPick.command.switchThemeToLight":`切换主题到浅色`,"quickPick.command.mcpServers":`MCP 服务器`,"quickPick.command.personalization":`个性化`,"quickPick.command.skills":`技能`,"quickPick.command.toggleSidebar":`切换侧边栏`,"quickPick.command.toggleTerminal":`切换终端`,"quickPick.command.togglePreview":`切换预览`,"quickPick.command.addTerminalTab":`添加终端标签`,"quickPick.command.addBrowserTab":`添加浏览器标签`,"quickPick.command.addReviewTab":`添加审查标签`,"quickPick.command.toggleSidePane":`切换面板`,"quickPick.command.toggleBrowserPanel":`显示/隐藏浏览器面板`,"quickPick.command.toggleDiffPanel":`切换到差异面板`,"quickPick.command.feedback":`问题上报`,"quickPick.command.myTickets":`我的反馈`,"quickPick.command.community":`用户社群`,"quickPick.command.productDocs":`产品文档`,"quickPick.command.login":`连接`,"quickPick.command.logout":`断开连接`,"commandCenter.placeholder":`搜索操作、任务或文件`,"commandCenter.open":`搜索`,"commandCenter.noResults":`暂无相关结果`,"commandCenter.scopeTabs":`命令中心范围`,"commandCenter.scope.all":`全部`,"commandCenter.scope.commands":`操作`,"commandCenter.scope.conversations":`任务`,"commandCenter.scope.files":`文件`,"commandCenter.history":`搜索历史`,"commandCenter.clearHistory":`清除搜索历史`,"commandCenter.expandHistory":`展开搜索历史`,"commandCenter.collapseHistory":`折叠搜索历史`,"commandCenter.section.recentChanges":`最近变更`,"commandCenter.section.recentTasks":`最近任务`,"commandCenter.section.commands":`快捷入口`,"commandCenter.section.conversations":`任务`,"commandCenter.section.files":`文件`,"commandCenter.empty.recentChanges":`当前任务暂无最近变更`,"commandCenter.empty.recentTasks":`暂无最近任务`,"commandCenter.moreResults":`查看更多结果`,"confirmDialog.taskDeleteTitle":`删除这个任务?`,"confirmDialog.taskDeleteDescription":`任务“{taskTitle}”会从当前工作区移除,现有记录无法恢复。`,"confirmDialog.archivedTaskDeleteTitle":`删除这个归档任务?`,"confirmDialog.archivedTaskDeleteDescription":`任务将从任务列表和归档列表中移除。`,"taskList.deleteAllArchived":`删除所有归档任务`,"taskList.archivedActions":`归档操作`,"taskList.archivedTaskCount":`{count} 个归档任务`,"taskList.deleteAllArchivedMenu":`删除所有归档任务…`,"taskList.deleteAllArchivedTitle":`删除 {count} 个归档任务?`,"taskList.deleteAllArchivedBusy":`正在处理…`,"taskList.deleteAllArchivedUnavailable":`以下项目暂时无法处理:{projects}。连接恢复后可再次操作。`,"taskList.deleteAllArchivedResult":`已删除 {deleted} 个,跳过 {skipped} 个,失败 {failed} 个。`,"taskList.deleteAllArchivedError":`操作或列表刷新失败,请刷新后检查剩余任务。`,"confirmDialog.taskArchiveTitle":`归档这个任务?`,"confirmDialog.taskArchiveDescription":`任务“{taskTitle}”会移入归档列表,之后仍可恢复。`,"bots.title":`机器人`,"bots.description":`把外部聊天工具和 Webhook 接入 ZCode 机器人。`,"bots.listTitle":`机器人`,"bots.addBot":`新建机器人`,"bots.addBinding":`添加新的绑定`,"bots.setup.chooseBot":`选择机器人`,"bots.setup.createBot":`创建机器人`,"bots.setup.createAndTest":`测试并继续`,"bots.setup.bindBot":`绑定机器人`,"bots.setup.setBot":`设置机器人`,"bots.setup.next":`下一步`,"bots.setup.finish":`完成`,"bots.setup.bindDescription":`生成绑定码后,在对应机器人私聊里发送绑定命令。`,"bots.setup.bindCodeCreating":`正在生成绑定码…`,"bots.setup.bindExpiresIn":`绑定码将在 {time} 后失效`,"bots.setup.bindRegenerating":`绑定码已失效,正在重新生成…`,"bots.setup.refreshBindCode":`刷新绑定码`,"bots.setup.bound":`已绑定 {count} 个用户,可以继续设置机器人。`,"bots.setup.bindAdvanceIn":`{seconds} 秒后进入下一步。`,"bots.setup.allowedWorkspaces":`允许的 workspace`,"bots.setup.allowedAll":`允许所有 workspace(*)`,"bots.setup.allowedSelected":`只允许选中的 workspace`,"bots.setup.allowedAllShort":`全部`,"bots.setup.allowedSelectedShort":`指定`,"bots.setup.allowedAllDescription":`当前机器人允许使用配置中的所有 workspace。`,"bots.setupDescription.chooseBot":`选择要接入的第三方聊天机器人。`,"bots.setupDescription.createBot":`填写机器人或 webhook 凭据,下一步会先测试连通性。`,"bots.setupDescription.bindBot":`生成绑定码并在机器人私聊中完成账号绑定。`,"bots.setupDescription.setBot":`设置默认上下文、允许的 workspace 和第三方回复颗粒度。`,"bots.setup.guide.createTitle":`准备指引`,"bots.setup.guide.bindTitle":`绑定指引`,"bots.setup.guide.createNote":`先按右侧步骤在第三方平台准备好凭据,再回来点“测试并继续”。`,"bots.setup.callbackUrlTitle":`Callback URL`,"bots.setup.callbackUrlDescription.webhook":`外部系统向这个地址发送入站消息回调。出站回复仍然走你在左侧填写的 Webhook URL。`,"bots.setup.callbackUrlDescription.webhookBind":`Webhook 绑定时,也是在这个地址上发送 text = /bind <code> 的私聊回调请求。`,"bots.setup.guide.telegram.create.1":`在 Telegram 中打开 @BotFather,创建一个新机器人。`,"bots.setup.guide.telegram.create.2":`复制 BotFather 返回的 HTTP API Token,并粘贴到当前表单。`,"bots.setup.guide.telegram.create.3":`建议提前打开这个机器人的私聊窗口;后面绑定时要在私聊里发送绑定命令。`,"bots.setup.guide.telegram.bind.1":`回到 Telegram,打开刚创建的机器人私聊窗口。`,"bots.setup.guide.telegram.bind.2":`如果还没开始过对话,先点 Start 或发任意一条消息,再发送 {command}。`,"bots.setup.guide.telegram.bind.3":`收到绑定成功提示后回到这里继续下一步。`,"bots.setup.guide.weixin.create.1":`点击微信扫码登录,用微信扫描二维码并在手机端确认。`,"bots.setup.guide.weixin.create.2":`ZCode 会直接保存 iLink 返回的 bot_token;扫码后请在微信里向 Bot 发送任意消息完成会话激活。`,"bots.setup.guide.weixin.create.3":"ZCode 内置 iLink 客户端,通过 `/ilink/bot/getupdates` 长轮询收消息,通过 `/ilink/bot/sendmessage` 回复。","bots.setup.guide.weixin.bind.1":`在微信里打开要绑定的单聊。`,"bots.setup.guide.weixin.bind.2":`发送 {command}。`,"bots.setup.guide.weixin.bind.3":`看到绑定成功后回到这里继续配置默认 workspace 和 CLI。`,"bots.setup.guide.feishu.create.1":`在飞书开放平台创建一个自建应用,并开启机器人能力。`,"bots.setup.guide.feishu.create.2":"从应用凭据页复制 App ID、App Secret,并为 `im.message.receive_v1` 和卡片回调开启长连接事件。","bots.setup.guide.feishu.create.3":`选择与你的租户一致的 Feishu / Lark 域名,再把凭据填回当前表单。`,"bots.setup.guide.feishu.bind.1":`把这个应用安装到你的飞书租户,并打开与该机器人的单聊窗口。`,"bots.setup.guide.feishu.bind.2":`在单聊中直接发送 {command}。`,"bots.setup.guide.feishu.bind.3":`看到绑定成功后回到这里继续配置默认 workspace 和 CLI。`,"bots.setup.guide.webhook.create.1":`Webhook 模式不需要先在第三方平台创建原生机器人;你的系统只需要能向 ZCode 回调接口发消息。`,"bots.setup.guide.webhook.create.2":`先约定一个共享 secret;如果你还想接收异步回复,再填一个出站 Webhook URL。`,"bots.setup.guide.webhook.create.3":`同一个外部用户要保持稳定的 userId,这样绑定和后续上下文才能对应到同一人。`,"bots.setup.guide.webhook.bind.1":"向 ZCode 的 `/api/bots/webhook` 发送一条私聊消息回调。","bots.setup.guide.webhook.bind.2":'请求体至少带上当前 botId、稳定的 userId、`chatType: "private"`,并把 text 设成 {command}。',"bots.setup.guide.webhook.bind.3":"如果配置了 secret,请同时在请求头里带上 `x-zcode-bot-secret`;绑定成功后再回到这里完成设置。","bots.setup.footer.choose":`选择一个已支持的渠道后继续。`,"bots.setup.footer.create":`测试通过后才会进入绑定步骤。`,"bots.setup.testSuccess":`连通性测试通过`,"bots.setup.testFailed":`连通性测试失败`,"bots.setup.footer.bind":`绑定码默认允许所有 workspace,最终范围在下一步保存。`,"bots.setup.footer.set":`完成后机器人会启用并出现在已添加列表。`,"bots.setup.discardTitle":`放弃这个机器人?`,"bots.setup.discardDescription":`当前创建流程还没有完成,已创建的临时机器人会被删除。`,"bots.setup.discardConfirm":`放弃创建`,"bots.refresh":`刷新机器人`,"bots.namePlaceholder":`机器人名称`,"bots.credentialPlaceholder":`关联机器人`,"bots.weixinBotTokenPlaceholder":`扫码后自动保存,也可手动粘贴 bot_token`,"bots.webhookSecretPlaceholder":`Webhook secret`,"bots.webhookUrlPlaceholder":`出站 Webhook URL`,"bots.feishuAppIdPlaceholder":`飞书 App ID`,"bots.feishuAppSecretPlaceholder":`飞书 App Secret`,"bots.callbackSecretPlaceholder":`回调密钥`,"bots.feishuRegistrationTitle":`扫码创建应用`,"bots.feishuRegistrationDescription":`扫码创建应用并保存凭据。`,"bots.feishuRegistrationButton":`扫码`,"bots.feishuRegistrationQrAlt":`飞书应用注册二维码`,"bots.feishuRegistrationScanHint":`用飞书 / Lark 扫码并确认创建应用。`,"bots.feishuRegistrationScanHint.feishu":`用飞书扫码并确认创建应用。`,"bots.feishuRegistrationScanHint.lark":`用 Lark 扫码并确认创建应用。`,"bots.feishuRegistrationStarted":`飞书扫码注册已开始`,"bots.feishuRegistrationSuccess":`飞书应用凭据已填入`,"bots.feishuRegistrationFailed":`启动飞书扫码注册失败:{error}`,"bots.feishuRegistrationExpired":`二维码已过期,请重新开始。`,"bots.feishuRegistration.access_denied":`注册已被拒绝。`,"bots.feishuRegistration.expired":`二维码已过期,请重新开始。`,"bots.feishuRegistration.error":`注册失败。`,"bots.enabledToggle":`启用 {name}`,"bots.replyGranularity":`机器人回复颗粒度`,"bots.replyGranularity.description":`消息详细程度。`,"bots.replyGranularity.assistantChanges":`标准回复`,"bots.replyGranularity.assistantChanges.description":`回复助手正文和文件变更,隐藏工具调用过程。`,"bots.replyGranularity.assistantToolcallsChanges":`完整回复`,"bots.replyGranularity.assistantToolcallsChanges.description":`回复助手正文、工具调用进度和文件变更。`,"bots.replyGranularity.summaryChanges":`摘要回复`,"bots.replyGranularity.summaryChanges.description":`仅回复最终结果和文件变更摘要,适合低打扰通知。`,"bots.replyGranularity.streamingCard":`流式卡片`,"bots.replyGranularity.streamingCard.description":`飞书/Lark 仅支持基于 Card JSON 2.0 的流式卡片,工具调用只显示折叠摘要。`,"bots.add":`添加`,"bots.channel.telegram":`Telegram`,"bots.channel.weixin":`微信`,"bots.channel.feishu":`飞书`,"bots.channel.lark":`Lark`,"bots.channel.dingding":`钉钉`,"bots.channel.discord":`Discord`,"bots.channel.wecom":`企业微信`,"bots.channel.webhook":`Webhook`,"bots.newBot.title":`新建机器人`,"bots.newBot.chooseChannel":`选择渠道`,"bots.newBot.description":`选择这个机器人接收消息的渠道。选择渠道后,再配置凭据、绑定、允许的 workspace 和默认上下文。`,"bots.newBot.selectProviderHint":`在右侧选择一个渠道来创建机器人。`,"bots.newBot.fallbackName":`新机器人`,"bots.newBot.comingSoon":`即将支持`,"bots.newBot.providerDescription.telegram":`创建机器人,再消息绑定。`,"bots.newBot.providerDescription.weixin":`扫码登录,首条消息激活。`,"bots.newBot.providerDescription.feishu":`扫码创建应用,再消息绑定。`,"bots.newBot.providerDescription.lark":`扫码创建应用,再消息绑定。`,"bots.newBot.providerDescription.dingding":`钉钉机器人集成规划中。`,"bots.newBot.providerDescription.webhook":`从你的系统接收入站回调,并可配置出站回复。`,"bots.newBot.providerDescription.discord":`Discord 机器人集成规划中。`,"bots.newBot.providerDescription.wecom":`企业微信机器人集成规划中。`,"bots.empty":`还没有配置机器人。`,"bots.name":`机器人名称`,"bots.provider":`渠道`,"bots.enabled":`启用`,"bots.enabled.description":`开启或关闭这个机器人,也可以清理它的运行状态。`,"bots.credential":`凭据`,"bots.webhookSecret":`Webhook secret`,"bots.webhookUrl":`Webhook URL`,"bots.providerSettings":`渠道设置`,"bots.providerSettings.telegram":`保存 BotFather token。`,"bots.providerSettings.weixin":`扫码后保存凭据,首条微信消息激活会话。`,"bots.providerSettings.feishu":`扫码获取应用凭据。`,"bots.providerSettings.lark":`扫码获取应用凭据。`,"bots.providerSettings.webhook":`Webhook 使用回调密钥校验入站请求,也可以配置出站 URL 接收回复。`,"bots.providerSettings.discord":`Discord 暂未开放配置。`,"bots.providerSettings.wecom":`企业微信暂未开放配置。`,"bots.telegramBotToken":`关联机器人`,"bots.weixinRegistrationTitle":`微信扫码登录`,"bots.weixinRegistrationDescription":`扫码登录后,在微信里发送任意消息激活会话。`,"bots.weixinRegistrationButton":`扫码`,"bots.weixinRegistrationQrAlt":`微信登录二维码`,"bots.weixinRegistrationScanHint":`用微信扫码并确认登录。`,"bots.weixinRegistrationStarted":`微信扫码登录已开始`,"bots.weixinRegistrationSuccess":`微信机器人已关联,请在微信里发送任意消息激活`,"bots.weixinActivationHint":`请在微信里向 Bot 发送任意消息;首次消息会收到欢迎和帮助。`,"bots.weixinRegistrationFailed":`启动微信扫码登录失败:{error}`,"bots.weixinRegistration.pending":`等待扫码`,"bots.weixinRegistration.scanned":`已扫码,等待手机确认`,"bots.weixinRegistration.success":`登录成功`,"bots.weixinRegistration.expired":`二维码已过期,请重新开始。`,"bots.weixinRegistration.error":`登录失败。`,"bots.weixinBotToken":`微信 bot_token`,"bots.feishuAppSecret":`飞书 App Secret`,"bots.callbackSecret":`回调密钥`,"bots.webhookOutboundUrl":`出站 Webhook URL`,"bots.webhookAuthHeaderName":`认证 Header 名称`,"bots.feishuAppId":`飞书 App ID`,"bots.saveSecrets":`保存密钥`,"bots.saveSecret":`保存`,"bots.removeSecret":`移除密钥`,"bots.removeSecretFailed":`移除密钥失败:{error}`,"bots.botToken":`关联机器人`,"bots.botTokenDescription.telegram":`保存 BotFather token。`,"bots.botTokenDescription.feishu":`扫码获取应用凭据。`,"bots.botTokenDescription.lark":`扫码获取应用凭据。`,"bots.botTokenDescription.weixin":`扫码后自动保存凭据。`,"bots.botTokenDescription.webhook":`用于连接这个 Webhook 机器人。`,"bots.telegramBotFatherQrAlt":`Telegram BotFather 二维码`,"bots.telegramBotFatherScanHint":`扫码打开 BotFather,创建机器人并粘贴 token。`,"bots.openBotFather":`打开 BotFather`,"bots.connected":`已连通`,"bots.notConnected":`未连通`,"bots.runtime.telegramLongPollingRunning":`Telegram 长轮询运行中。`,"bots.runtime.telegramLongPollingStarting":`Telegram 长轮询启动中。`,"bots.runtime.telegramLongPollingStopped":`Telegram 长轮询已停止。`,"bots.runtime.telegramLongPollingHandledElsewhere":`Telegram 长轮询由另一个 ZCode 窗口处理。`,"bots.runtime.telegramTokenMissing":`Telegram 机器人凭据缺失。`,"bots.runtime.telegramPollingFailedRetrying":`Telegram 轮询失败,正在重试。`,"bots.runtime.feishuWebSocketStarting":`飞书 WebSocket 启动中。`,"bots.runtime.feishuWebSocketConnecting":`飞书 WebSocket 连接中。`,"bots.runtime.feishuWebSocketRunning":`飞书 WebSocket 运行中。`,"bots.runtime.feishuWebSocketStopped":`飞书 WebSocket 已停止。`,"bots.runtime.connectionFailed":`机器人连接失败`,"bots.runtime.feishuConnectionFailed":`飞书连接失败`,"bots.runtime.larkConnectionFailed":`Lark 连接失败`,"bots.runtime.cannotConnectFeishu":`无法连接飞书`,"bots.runtime.cannotConnectLark":`无法连接 Lark`,"bots.runtime.feishuConnectionInterrupted":`飞书连接已中断`,"bots.runtime.larkConnectionInterrupted":`Lark 连接已中断`,"bots.runtime.boundConnectionInterrupted":`连接中断`,"bots.runtime.boundConnectionInterruptedDescription":`机器人已绑定,但当前长连接中断。`,"bots.runtime.credentialsSavedConnectionFailedDescription":`应用凭据已保存,但长连接失败。`,"bots.runtime.connectionBlocksBinding":`机器人当前无法接收消息,因此暂时不能完成绑定。`,"bots.runtime.feishuConnectionRecoverySuggestion":`长连接数可能已达上限或飞书服务繁忙。请稍后重试;若持续失败,可绑定新的机器人。`,"bots.runtime.larkConnectionRecoverySuggestion":`长连接数可能已达上限或 Lark 服务繁忙。请稍后重试;若持续失败,可绑定新的机器人。`,"bots.runtime.errorCode":`错误码`,"bots.runtime.errorDetail":`详情`,"bots.runtime.unknownError":`未知连接错误`,"bots.runtime.weixinLongPollingRunning":`微信长轮询运行中。`,"bots.runtime.weixinLongPollingStarting":`微信长轮询启动中。`,"bots.runtime.weixinLongPollingStopped":`微信长轮询已停止。`,"bots.runtime.botDisabled":`机器人已停用。`,"bots.scanQrCode":`扫码`,"bots.authorizationQr":`授权二维码`,"bots.bindCommand":`绑定命令`,"bots.binding":`绑定`,"bots.allowedCommands":`允许的命令`,"bots.unbound":`未绑定`,"bots.generateBindCode":`生成绑定码`,"bots.resetState":`重置状态`,"bots.allowedWorkspaces":`项目访问范围`,"bots.allowedWorkspaces.all":`全部`,"bots.allowedWorkspaces.mode.all":`所有项目`,"bots.allowedWorkspaces.mode.selected":`指定项目`,"bots.allowedWorkspaces.allDescription":`这个机器人可以使用所有已配置的项目。`,"bots.allowedWorkspaces.selectedDescription":`这个机器人可以使用 {count} 个指定项目。`,"bots.botMeta":`{users} 个已绑定用户 · 工作区 {workspace}`,"bots.botSummary":`{users} 个用户 · {workspaces} 个工作区 · {workspace}`,"bots.userCount":`{count} 个用户`,"bots.editDescription":`查看运行状态,调整默认上下文、回复颗粒度和绑定用户。`,"bots.edit.basicSettings":`基础设置`,"bots.edit.binding":`绑定用户`,"bots.edit.emptyUsers":`还没有绑定用户。生成绑定码后,在机器人私聊里发送绑定命令。`,"bots.edit.userWorkspaces":`允许 {count} 个工作区`,"bots.test":`测试`,"bots.bind":`绑定`,"bots.unbind":`解绑`,"bots.delete":`删除机器人`,"bots.delete.description":`移除这个机器人。`,"bots.deleteConfirmTitle":`删除机器人“{name}”?`,"bots.deleteConfirmDescription":`删除后会移除这个机器人的配置、凭据和绑定状态,无法撤销。`,"bots.bindCode":`绑定码`,"bots.bindHint":`在机器人私聊中发送 {command}。`,"bots.bindCodeExpires":`绑定码将在 {time} 后失效`,"bots.bindCodeExpired":`绑定码已过期,请重新生成。`,"bots.bindSuccess":`绑定成功`,"bots.copyBindCommand":`复制绑定命令`,"bots.bindCommandGuide":`复制下面的绑定命令,并发送给机器人私聊。`,"bots.bindCommandStep.copy":`复制绑定命令`,"bots.bindCommandStep.openChat":`打开机器人私聊`,"bots.bindCommandStep.send":`粘贴并发送,完成当前工作区绑定`,"bots.bindCommandCopied":`绑定命令已复制,请打开机器人私聊,粘贴并发送。`,"bots.bindCommandCopyFailed":`复制绑定命令失败:{error}`,"bots.loadFailed":`加载机器人失败:{error}`,"bots.saveSuccess":`机器人已保存`,"bots.saveFailed":`保存机器人失败:{error}`,"bots.testFailed":`机器人测试失败:{error}`,"bots.bindCodeCreated":`绑定码已生成`,"bots.bindCodeFailed":`生成绑定码失败:{error}`,"bots.unbindSuccess":`机器人已解绑`,"bots.unbindFailed":`解绑机器人失败:{error}`,"bots.deleteFailed":`删除机器人失败:{error}`,"welcome.title":`Welcome to ZCode`,"welcome.username":`用户名`,"welcome.password":`密码`,"welcome.login":`登录`,"welcome.loggingIn":`登录中...`,"welcome.loginFailed":`登录失败`,"login.title":`欢迎来到 ZCode`,"login.description":`连接账号,开始使用 ZCode`,"login.oauth.activeProviderHint":`当前已登录提供方:{provider}。新登录会替换当前登录身份。`,"login.oauth.loadingProviders":`正在加载登录提供方...`,"login.oauth.noProviders":`当前没有可用的登录提供方,请稍后重试。`,"login.oauth.button":`继续使用 {provider}`,"login.oauth.button.zai":`连接 Z.ai 继续使用`,"login.oauth.button.bigmodel":`连接 BigModel 继续使用`,"login.oauth.regionTag.zai":`全球`,"login.oauth.regionTag.bigmodel":`中国`,"login.oauth.waiting":`等待 {provider} 完成认证...`,"login.oauth.loginFailure":`登录失败,请重试`,"login.oauth.cancel":`取消`,"login.oauth.retry":`重新登录`,"login.expired.title":`登录已过期`,"login.expired.description":`为了保障账号安全,请重新登录。`,"login.expired.action":`重新登录`,"login.expired.restart":`确认并重启`,"login.useApiKey":`使用 API key`,"login.apiKey.title":`API Key`,"login.apiKey.placeholder":`输入 API key`,"login.apiKey.providerLabel":`API key 提供方`,"login.apiKey.provider.zai":`Z.ai`,"login.apiKey.provider.bigmodel":`BigModel`,"login.apiKey.getApiKey":`获取 API Key`,"login.apiKey.cancel":`取消`,"login.apiKey.continue":`继续`,"login.apiKey.emptyError":`请输入 API key。`,"login.apiKey.providerMissingError":`未找到 {provider} 的内置 provider 配置,请稍后重试。`,"login.apiKey.saveError":`保存 API key 失败:{error}`,"login.apiKey.skipError":`跳过 API key 设置失败:{error}`,"login.skip":`暂时跳过`,"settings.onboarding":`引导`,"settings.onboardingDescription":`重新选择职业、界面模式和使用偏好。数据迁移可在迁移设置中操作。`,"settings.onboardingOpen":`打开引导`,"app.currentTheme":`当前: {theme}`,"app.login":`连接使用`,"app.logout":`断开连接`,"logout.confirm.title":`断开连接并重启 ZCode?`,"logout.confirm.descriptionWithRunningSessions":`检测到 {count} 个会话正在运行。断开连接会中断这些会话并重启 App。`,"logout.confirm.descriptionDefault":`断开连接后会重启 App,之后需要重新连接账号。`,"logout.confirm.ok":`断开连接并重启`,"logout.confirm.cancel":`取消`,"sidebar.profile.accountId":`ID: {id}`,"sidebar.profile.copyUserId":`点击复制用户 ID`,"sidebar.profile.userIdCopied":`用户 ID 已复制`,"sidebar.profile.userIdCopyFailed":`复制失败,请重试`,"sidebar.profile.notLoggedIn":`连接使用`,"app.selectFile":`选择文件以开始`,"app.workspace":`工作区`,"browser.title":`浏览器`,"browser.addressPlaceholder":`输入网址后回车`,"browser.permission.promptAriaLabel":`站点权限请求`,"browser.permission.wantsToUse":`想要使用`,"browser.permission.siteInfo":`查看网站信息`,"browser.permission.settings":`站点权限`,"browser.permission.close":`关闭`,"browser.permission.saved":`权限已更新。请刷新网页以使改动应用到已有资源。`,"browser.permission.readError":`无法读取权限。`,"browser.permission.saveError":`未能保存权限修改。`,"browser.permission.resetError":`未能完成权限重置。`,"browser.permission.retry":`重试`,"browser.permission.unsupported":`请在桌面内置浏览器中管理站点权限。`,"browser.permission.reset":`重置站点权限`,"browser.permission.resetDone":`已重置。刷新页面后可重新申请权限。`,"browser.permission.allowOnce":`仅本次允许`,"browser.permission.allowAlways":`访问此网站时允许`,"browser.permission.blockAlways":`阻止`,"browser.permission.cancel":`取消`,"browser.permission.share":`共享`,"browser.permission.media":`摄像头和麦克风`,"browser.permission.mediaVideo":`摄像头`,"browser.permission.mediaAudio":`麦克风`,"browser.permission.mediaBoth":`摄像头和麦克风`,"browser.permission.clipboardRead":`读取剪贴板`,"browser.permission.geolocation":`位置信息`,"browser.permission.notifications":`通知`,"browser.permission.midi":`MIDI 设备`,"browser.permission.idleDetection":`空闲检测`,"browser.permission.speakerSelection":`选择音频输出设备`,"browser.permission.windowManagement":`窗口管理`,"browser.permission.storageAccess":`存储访问`,"browser.permission.keyboardLock":`键盘锁定`,"browser.permission.fileSystem":`文件访问`,"browser.permission.deviceHid":`HID 设备`,"browser.permission.deviceUsb":`USB 设备`,"browser.permission.deviceSerial":`串口设备`,"browser.permission.deviceBluetooth":`蓝牙设备`,"browser.permission.unknownCapability":`未知能力`,"browser.permission.screenShareTitle":`{origin} 想要共享你的屏幕`,"browser.permission.screenShareDescription":`选择要共享的屏幕或窗口;该选择仅对本次共享生效。`,"browser.permission.deviceTitle":`{origin} 想要连接设备`,"browser.permission.denyThisTime":`不允许`,"browser.permission.connect":`连接`,"browser.permission.screenGroup.screen":`整个屏幕`,"browser.permission.screenGroup.window":`窗口`,"browser.permission.stateAllow":`允许`,"browser.permission.stateDeny":`阻止`,"browser.permission.stateAsk":`询问`,"browser.back":`后退`,"browser.forward":`前进`,"browser.reload":`刷新`,"browser.more":`更多浏览器操作`,"browser.openExternal":`在默认浏览器中打开`,"browser.devtools":`打开调试工具`,"browser.responsive.enter":`自由尺寸`,"browser.responsive.exit":`退出自由尺寸`,"browser.responsive.viewport":`自由尺寸浏览器视口`,"browser.responsive.resizeWidth":`调整浏览器视口宽度`,"browser.responsive.resizeHeight":`调整浏览器视口高度`,"browser.responsive.width":`浏览器视口宽度`,"browser.responsive.height":`浏览器视口高度`,"browser.responsive.zoom":`浏览器预览缩放`,"browser.responsive.fitToWindow":`适应窗口`,"browser.responsive.dimensionRangeError":`请输入 {min} 到 {max} 之间的整数`,"browser.elementPicker.start":`选择网页元素加入聊天`,"browser.elementPicker.cancel":`取消网页元素选择`,"browser.elementPickerFailed":`网页元素选择失败:{message}`,"browser.elementPicker.popover.background":`背景`,"browser.elementPicker.popover.color":`颜色`,"browser.elementPicker.popover.font":`字体`,"browser.show":`打开浏览器`,"browser.hide":`收起浏览器`,"browser.toggle":`切换浏览器`,"browser.close":`关闭浏览器面板`,"browser.desktopOnly":`浏览器面板仅桌面端可用`,"browser.empty":`粘贴或输入 URL 以打开网页。`,"browser.guestFailed.title":`内置浏览器启动失败`,"browser.guestFailed.description":`浏览器进程在显示页面前退出。检查系统环境后可以重试。`,"browser.guestFailed.detail":`渲染进程:{reason}(退出码 {exitCode})`,"browser.guestFailed.retry":`重试浏览器`,"browser.invalidUrl":`仅支持 http、https、file、about、data 地址`,"browser.loadFailed":`页面加载失败:{message}`,"browser.loadError.title":`无法打开该页面`,"browser.loadError.certTitle":`该站点的 HTTPS 证书不受信任`,"browser.loadError.certHint":`如确认此地址可信,可在「设置 → 浏览器 → 安全」里开启「忽略证书校验」,再重启 App 后即可访问。`,"browser.loadError.retry":`重新加载`,"browser.resizeDuringOperationWarning":`浏览器尺寸发生变化,可能影响当前自动操作`,"diff.title":`Diff`,"diff.toggle":`切换 Diff 面板`,"diff.close":`关闭 Diff 面板`,"sidePane.expand":`展开侧边面板`,"sidePane.collapse":`收起侧边面板`,"sidePane.togglePanel":`切换面板`,"sidePane.fullView.enter":`进入完整视图`,"sidePane.fullView.exit":`退出完整视图`,"sidePane.fullView.openAnswer":`展开消息`,"sidePane.fullView.minimize":`最小化编辑器`,"sidePane.fullView.restore":`展开编辑器`,"sidePane.fullView.openConversation":`在完整视图中打开`,"sidePane.fullView.handle":`拖动以移动 · 点击查看选项`,"sidePane.fullView.expandMessages":`展开消息`,"sidePane.fullView.collapseMessages":`收起消息`,"sidePane.fullView.statusRunning":`运行中`,"sidePane.fullView.statusIdle":`空闲`,"sidePane.maximize":`扩大面板`,"sidePane.restoreSize":`恢复面板宽度`,"sidePane.addTab":`新增标签`,"sidePane.newTab":`新标签页`,"sidePane.openTab":`新标签页`,"sidePane.subagent":`子智能体`,"sidePane.subagentDirectory":`子智能体目录`,"sidePane.selectionChat":`辅助对话`,"sidePane.workflowRun":`工作流实例`,"sidePane.workflowDirectory":`工作流目录`,"sidePane.workflowActor":`工作流子代理`,"sidePane.workflowScript":`脚本步骤`,"sidePane.workflowArtifact":`产物`,"subagentDirectory.title":`子智能体目录`,"subagentDirectory.running":`正在运行`,"subagentDirectory.runningEmpty":`没有正在运行的子智能体`,"subagentDirectory.ended":`已结束`,"subagentDirectory.showMore":`再显示 20 个`,"subagentDirectory.loadFailed":`无法加载子智能体目录。`,"subagentDirectory.status.running":`运行中`,"subagentDirectory.status.waiting":`等待中`,"subagentDirectory.status.blocked":`已阻塞`,"subagentDirectory.status.success":`已完成`,"subagentDirectory.status.failed":`失败`,"subagentDirectory.status.cancelled":`已取消`,"subagentDirectory.status.lost":`已丢失`,"chat.statusPanel.endedAgents":`已结束`,"chat.statusPanel.endedWorkflows":`已结束的工作流`,"chat.statusPanel.workflowsLive":`{count} 个运行中`,"workflowDirectory.title":`工作流实例`,"workflowDirectory.running":`正在运行`,"workflowDirectory.runningEmpty":`没有正在运行的工作流`,"workflowDirectory.ended":`已结束`,"workflowDirectory.endedEmpty":`还没有结束的工作流`,"workflowDirectory.empty":`这条对话里还没有工作流实例`,"workflowDirectory.truncated":`仅显示最近 {count} 条实例`,"workflowDirectory.unavailable":`无法列出这条对话的工作流实例`,"chat.selections.addToTask":`添加到当前任务`,"chat.selections.askInSideChat":`在辅助对话中提问`,"chat.selections.sideBlocked":`请先处理辅助对话中的待处理请求。`,"chat.selections.count":`{count} 条对话引用`,"chat.selections.remove":`移除对话引用`,"chat.selections.type.user":`用户消息`,"chat.selections.type.assistant":`助手消息`,"chat.selections.type.reasoning":`推理内容`,"chat.selections.type.tool":`工具结果`,"chat.selections.limit.single":`单条引用最多 8,000 个字符。`,"chat.selections.limit.count":`最多可添加 8 条对话引用。`,"chat.selections.limit.total":`对话引用总计最多 16,000 个字符。`,"sidePane.launcher.selection-side-conversation":`在侧边面板中继续对话。`,"sidePane.launcher.review":`查看代码变更与差异。`,"sidePane.launcher.terminal":`运行命令和查看输出。`,"sidePane.launcher.browser":`浏览网页和预览应用。`,"sidePane.launcher.developer-tools":`检查和调试应用。`,"sidePane.launcher.viewAllPlugins":`查看所有插件`,"sidePane.launcher.empty":`暂无推荐的应用插件`,"sidePane.openFile":`打开文件`,"sidePane.openFileDescription":`从当前 workspace 中选择文件并在侧边面板打开。`,"sidePane.openFilePlaceholder":`搜索当前 workspace 文件...`,"sidePane.openFileLoading":`正在加载文件...`,"sidePane.openFileEmpty":`没有找到文件。`,"sidePane.openFile.category":`文件`,"sidePane.openFile.emptyQuery":`输入内容搜索文件`,"sidePane.review":`审查`,"pluginUi.loading":`正在加载插件界面...`,"pluginUi.loadFailed":`插件界面加载失败。`,"pluginUi.retry":`重新加载`,"pluginUi.pin":`固定显示`,"pluginUi.unpin":`取消固定`,"pluginUi.openInSidePane":`在侧栏打开`,"pluginUi.openedInSidePane":`已在侧栏打开`,"genUi.copyImage":`复制图像`,"genUi.title":`交互视图`,"genUi.desktopOnly":`请在桌面端打开交互视图`,"genUi.offline":`工作区已离线,请重新连接后重试`,"genUi.failed":`无法加载交互视图`,"genUi.loading":`正在加载…`,"genUi.retry":`重试`,"genUi.tweak":`调整设计`,"genUi.expand":`放大`,"genUi.collapse":`收起`,"genUi.expanded":`正在放大视图中显示`,"genUi.confirm":`交互视图请求发送消息`,"genUi.cancel":`取消`,"genUi.send":`发送`,"genUi.incomplete":`本次回复未完成,交互视图未加载`,"genUi.waiting":`生成完成后显示交互视图`,"genUi.invalid":`交互视图引用无效`,"genUi.reset":`重置`,"genUi.original":`预览原始值`,"genUi.submit":`提交设计变更`,"genUi.from":`来自交互视图 {name}`,"pluginUi.fromPlugin":`来自插件 {name}`,"pluginUi.followUp.title":`插件想以你的身份发送消息`,"pluginUi.followUp.description":`来自插件 {name}。可以先修改再发送。`,"pluginUi.followUp.send":`发送`,"pluginUi.followUp.cancel":`取消`,"pluginUi.modelContext.label":`插件上下文`,"pluginUi.modelContext.remove":`移除插件上下文`,"sidePane.pluginUi":`插件`,"whiteboard.title":`画板`,"whiteboard.defaultName":`画板`,"whiteboard.nameLabel":`画板名称`,"whiteboard.canvasLabel":`画板画布`,"whiteboard.tool.pen":`画笔`,"whiteboard.tool.eraser":`橡皮`,"whiteboard.color":`颜色`,"whiteboard.strokeWidth":`笔触粗细`,"whiteboard.addToChat":`添加到对话区`,"whiteboard.undo":`撤销`,"whiteboard.redo":`重做`,"whiteboard.clear":`清空`,"whiteboard.missing":`这个画板已不可用。`,"whiteboard.exportMissing":`这个画板已不可用。`,"whiteboard.exportFailed":`导出画板失败:{message}`,"treemapping.title":`Treemapping`,"modelTrajectory.title":`模型调用轨迹`,"modelTrajectory.usage.input":`输入 {count}`,"modelTrajectory.usage.output":`输出 {count}`,"chat.toolbar.model.loadFailedRetry":`模型加载失败,重试`,"chat.toolbar.model.remoteWaiting":`等待远程模型`,"chat.toolbar.model.targetMissing":`暂无模型目标`,"settings.subagents.modelLoadFailed":`模型列表加载失败。`,"root.modelSelection.loadFailed":`模型配置加载失败。`,"modelTrajectory.openSourceDirectory":`打开所在目录`,"modelTrajectory.refresh":`刷新`,"modelTrajectory.close":`关闭`,"modelTrajectory.loading":`正在加载调用轨迹…`,"modelTrajectory.empty":`暂无模型调用记录(仅 ZCode Agent 会落盘 model-io)`,"modelTrajectory.error":`读取调用轨迹失败`,"modelTrajectory.truncatedNotice":`记录过多,仅展示最近的调用`,"modelTrajectory.summaryCalls":`{count} 次调用`,"modelTrajectory.summaryTokens":`总 token 用量`,"modelTrajectory.attempt":`第 {attempt} 次尝试`,"modelTrajectory.finish.stop":`正常结束`,"modelTrajectory.finish.toolCalls":`工具调用`,"modelTrajectory.finish.length":`达到长度限制`,"modelTrajectory.finish.contentFilter":`内容过滤`,"modelTrajectory.source.main":`主会话`,"modelTrajectory.source.sessionTitle":`标题生成`,"modelTrajectory.source.compact":`上下文压缩`,"modelTrajectory.source.promptEnhance":`提示优化`,"modelTrajectory.source.targetCompletion":`目标验证`,"modelTrajectory.source.subagent":`子智能体`,"modelTrajectory.source.sidecar":`辅助请求`,"modelTrajectory.source.unknown":`未知来源`,"modelTrajectory.inputSection":`输入`,"modelTrajectory.outputSection":`输出`,"modelTrajectory.reasoning":`思考过程`,"modelTrajectory.message":`消息`,"modelTrajectory.expand":`展开`,"modelTrajectory.collapse":`收起`,"modelTrajectory.expandAll":`全部展开`,"modelTrajectory.collapseAll":`全部收起`,"modelTrajectory.customExpansion":`自定义展开`,"modelTrajectory.search":`搜索调用轨迹`,"modelTrajectory.searchPlaceholder":`搜索调用轨迹内容…`,"modelTrajectory.searchPrevious":`上一个匹配项`,"modelTrajectory.searchNext":`下一个匹配项`,"modelTrajectory.searchClose":`关闭搜索`,"modelTrajectory.copyContent":`复制内容`,"modelTrajectory.showAll":`展开`,"modelTrajectory.collapseContent":`收起`,"modelTrajectory.toolCall":`工具调用`,"modelTrajectory.toolId":`ID`,"modelTrajectory.toolInput":`输入`,"modelTrajectory.toolOutput":`输出`,"modelTrajectory.toolResult":`工具结果`,"modelTrajectory.role.system":`系统提示词`,"modelTrajectory.role.user":`用户消息`,"modelTrajectory.role.assistant":`助手消息`,"modelTrajectory.role.tool":`工具结果`,"treemapping.badge.live":`Live`,"treemapping.badge.snapshot":`Snapshot`,"treemapping.scope.current":`当前轮 tool call 活动`,"treemapping.scope.turn":`第 {turn} 轮 tool call 活动`,"treemapping.summary.files":`文件`,"treemapping.summary.diff":`Diff`,"treemapping.summary.views":`查看`,"treemapping.empty.title":`本轮暂无文件活动`,"treemapping.empty.description":`当前轮读取、搜索、编辑、新建或删除文件后,Treemapping 会显示在这里。`,"treemapping.empty.running":`{count} 个 tool call 正在运行,但还没有解析到文件路径。`,"treemapping.change.written":`写入`,"treemapping.change.modified":`修改`,"treemapping.change.deleted":`删除`,"treemapping.change.viewed":`仅查看`,"treemapping.detail.directoryFiles":`{count} 个文件`,"diff.placeholder.badge":`UI 占位`,"diff.placeholder.description":`当前先完成右侧 Diff 面板的前端壳层,真实 Git service 与命令执行后续再接入。`,"diff.placeholder.toast":`由于 Git service 还未完全接好,当前 Diff 面板先保留前端占位交互。`,"git.readonly":`只读`,"git.head.detached":`游离 HEAD`,"git.summary.aheadBehind":`领先 {ahead} / 落后 {behind}`,"git.summary.scopeWorkspace":`当前 workspace 子树`,"git.source.unstaged":`未暂存`,"git.source.staged":`已暂存`,"git.source.branch":`全部分支更改`,"git.source.lastTurn":`上一轮更改`,"git.source.workspaceScope":`默认只展示当前 workspace 作用域内的改动。`,"git.source.lastTurnTurn":`当前任务的第 {turn} 轮文件快照`,"git.section.staged":`已暂存`,"git.section.unstaged":`未暂存`,"git.section.untracked":`未跟踪`,"git.section.conflicted":`冲突`,"git.section.branch":`分支比较`,"git.section.lastTurn":`上一轮更改`,"git.kind.modified":`修改`,"git.kind.added":`新增`,"git.kind.deleted":`删除`,"git.kind.renamed":`重命名`,"git.kind.conflicted":`冲突`,"git.diff.title":`Diff 预览`,"git.diff.selectFile":`选择一个文件以查看 Diff`,"git.diff.selectFileDescription":`左侧切换来源、展开目录并选择文件,右侧会同步展示对应 Diff。`,"git.diff.binaryTitle":`无法预览二进制 Diff`,"git.diff.truncatedTitle":`Diff 已裁剪`,"git.diff.unavailableTitle":`暂时无法预览这个 Diff`,"git.diff.unavailableDescription":`当前占位数据只保留了摘要,后续接入真实 service 后会展示完整结果。`,"diff.loading.description":`正在从当前 workspace 所在环境读取真实 Diff 数据。`,"diff.error.title":`读取 Diff 数据失败`,"diff.error.description":`请稍后重试。当前错误:{message}`,"diff.preview.truncatedLines":`Diff 预览已截断:为保持界面流畅,省略了 {count} 行。`,"sidePane.tabOverview":`搜索标签页`,"sidePane.searchTabs":`搜索标签页...`,"sidePane.openTabs":`打开的标签页`,"sidePane.recentlyClosedTabs":`最近关闭的标签页`,"sidePane.noTabsFound":`没有找到标签页。`,"sidePane.closeTab":`关闭 {title}`,"sidePane.closeCurrentTab":`关闭标签`,"sidePane.closeOtherTabs":`关闭其他标签`,"sidePane.closeAllTabs":`关闭所有标签`,"sidePane.openedRelativeTime":`{time}打开`,"sidePane.closedRelativeTime":`{time}关闭`,"sidePane.time.justNow":`刚刚`,"sidePane.time.minutesAgo":`{count} 分钟前`,"sidePane.time.hoursAgo":`{count} 小时前`,"sidePane.time.daysAgo":`{count} 天前`,"git.action.refresh":`刷新`,"git.action.stage":`暂存`,"git.action.unstage":`取消暂存`,"git.action.discard":`丢弃`,"git.action.commit":`提交`,"git.action.showTree":`显示文件树`,"git.action.hideTree":`隐藏文件树`,"git.changeContext.revealInFileManager":`在文件管理器中打开`,"git.changeContext.revealInFileTree":`在文件树中显示`,"git.close":`关闭 Git 面板`,"git.tree.toggleFolder":`切换目录展开`,"git.tree.searchPlaceholder":`筛选文件...`,"git.tree.clearSearch":`清空文件筛选`,"git.tree.emptyTitle":`当前没有可展示的目录`,"git.tree.emptyDescription":`这个来源下暂时没有可用于目录导航的文件结构。`,"git.tree.emptySearchTitle":`没有匹配的文件`,"git.tree.emptySearchDescription":`调整筛选关键词,或清空筛选后查看当前目录树里的全部文件。`,"git.tree.emptyDirectoryTitle":`当前目录下没有文件改动`,"git.tree.emptyDirectoryDescription":`可以切到其它目录,或再次点击当前目录返回完整列表。`,"git.selection.count":`已选 {count} 项`,"git.selection.toggle":`切换 {file} 的勾选状态`,"git.empty.title":`当前来源下没有可展示的改动`,"git.empty.description":`可以切换其它来源,或等当前 workspace 产生新的 Git 改动后再查看。`,"git.loading.description":`正在读取当前工作区的 Git 状态和文件改动。`,"git.error.title":`无法加载 Git 改动`,"git.error.description":`Git 返回错误:{message}`,"git.empty.gitUnavailableTitle":`当前环境没有可用的 Git`,"git.empty.gitUnavailableDescription":`请先安装 Git,或确认当前运行环境里可以执行 git 命令。`,"git.empty.notRepositoryTitle":`当前 workspace 不在 Git 仓库中`,"git.empty.notRepositoryDescription":`打开一个 Git 仓库目录后,这里会展示当前 workspace 作用域内的改动。`,"git.empty.lastTurnTitle":`当前任务还没有上一轮文件改动`,"git.empty.lastTurnDescription":`当 agent 产生文件写入后,这里会优先复用现有 task 快照做只读审阅。`,"git.commit.identityTitle":`提交身份`,"git.commit.identityMissing":`尚未接入真实 user.name / user.email 读取,因此提交按钮会保持禁用。`,"git.commit.noStagedChanges":`当前没有 staged 改动,先从左侧选择文件并暂存。`,"git.commit.enterMessage":`请输入 commit message。`,"git.commit.ready":`前端校验已通过,后续接入 service 后即可真正提交。`,"git.commit.placeholder":`输入 commit message(当前为 UI 占位,不会真正执行 git commit)`,"git.actionMenu.trigger":`提交或推送`,"git.actionMenu.trigger.ariaLabel":`提交或推送`,"git.actionMenu.push":`推送`,"git.actionMenu.commitDialog.title":`提交更改`,"git.actionMenu.commitDialog.description":`将当前 workspace 内的未提交更改保存为一次提交。`,"git.actionMenu.commitDialog.currentBranchLabel":`当前分支`,"git.actionMenu.commitDialog.changesLabel":`更改`,"git.actionMenu.commitDialog.changesValue":`{count} 个文件`,"git.actionMenu.commitDialog.messageLabel":`提交消息`,"git.actionMenu.commitDialog.messagePlaceholder":`提交信息(留空将自动生成)`,"git.actionMenu.commitDialog.messageHelper":`生成会先填充提交消息,再由你确认提交。`,"git.actionMenu.commitDialog.generate":`生成提交消息`,"git.actionMenu.commitDialog.regenerate":`重新生成`,"git.actionMenu.commitDialog.includeUnstaged":`包含未暂存的更改`,"git.actionMenu.commitDialog.action.commit":`提交`,"git.actionMenu.commitDialog.action.commitAndPush":`提交并推送`,"git.actionMenu.commitDialog.confirm":`提交`,"git.actionMenu.commitDialog.identityMissing":`当前没有可用的 Git 提交身份,请先配置 user.name 和 user.email。`,"git.actionMenu.commitDialog.error.noChanges":`当前没有可提交的更改。`,"git.actionMenu.commitDialog.error.messageRequired":`请先输入或生成提交消息。`,"git.actionMenu.commitDialog.error.generateFailed":`生成提交消息失败,请重试或手动填写。`,"git.actionMenu.commitDialog.error.requestFailed":`提交失败:{error}`,"git.actionMenu.commitDialog.error.pushAfterCommitFailed":`已提交,但推送失败:{error}`,"git.actionMenu.commitDialog.toast.success":`已提交当前更改`,"git.actionMenu.commitDialog.toast.commitAndPushSuccess":`已提交并推送当前更改`,"git.actionMenu.pushDialog.title":`推送更改`,"git.actionMenu.pushDialog.description.tracked":`将当前分支最新提交推送到远程分支。`,"git.actionMenu.pushDialog.description.untracked":`首次推送会把当前分支发布到远程并设置 upstream。`,"git.actionMenu.pushDialog.currentBranchLabel":`分支`,"git.actionMenu.pushDialog.upstreamLabel":`远程分支`,"git.actionMenu.pushDialog.aheadBehindLabel":`同步状态`,"git.actionMenu.pushDialog.aheadBehindValue":`领先 {ahead} / 落后 {behind}`,"git.actionMenu.pushDialog.upstreamPending":`首次推送会自动为当前分支建立上游分支。`,"git.actionMenu.pushDialog.pushLabel":`后续步骤`,"git.actionMenu.pushDialog.pushValue":`推送`,"git.actionMenu.pushDialog.upToDate":`当前分支没有需要推送的提交。`,"git.actionMenu.pushDialog.confirm":`推送`,"git.actionMenu.pushDialog.error.summary":`推送失败,请检查错误详情。`,"git.actionMenu.pushDialog.error.detailsLabel":`错误详情`,"git.actionMenu.pushDialog.error.copy":`复制错误信息`,"git.actionMenu.pushDialog.error.copy.copied":`已复制`,"git.actionMenu.pushDialog.error.copyFailed":`复制错误信息失败:{error}`,"git.actionMenu.pushDialog.error.requestFailed":`推送失败:{error}`,"git.actionMenu.pushDialog.toast.success":`已推送到 {target}`,"git.branchSwitcher.label":`分支`,"git.branchSwitcher.trigger.ariaLabel":`切换 Git 分支`,"git.branchSwitcher.searchPlaceholder":`搜索分支`,"git.branchSwitcher.section.branches":`分支`,"git.branchSwitcher.empty":`未找到匹配分支`,"git.branchSwitcher.currentDirty":`未提交的更改:{count} 个文件`,"git.branchSwitcher.createAction":`创建并检出新分支...`,"git.branchSwitcher.createDialog.title":`创建并检出新分支`,"git.branchSwitcher.createDialog.description":`基于当前 HEAD 创建一个新的本地分支,并在创建成功后立即切换过去。`,"git.branchSwitcher.createDialog.nameLabel":`分支名`,"git.branchSwitcher.createDialog.placeholder":`例如 feature/git-branch-switcher`,"git.branchSwitcher.createDialog.helper":`首版只支持基于当前 HEAD 创建并切换。`,"git.branchSwitcher.createDialog.confirm":`创建并切换`,"git.branchSwitcher.blockedDialog.title":`提交更改以切换分支`,"git.branchSwitcher.blockedDialog.description.tracked":`你对以下文件的更改将被检出操作覆盖:`,"git.branchSwitcher.blockedDialog.description.untracked":`以下未跟踪文件会被检出操作覆盖:`,"git.branchSwitcher.blockedDialog.filesLabel":`受影响文件`,"git.branchSwitcher.blockedDialog.helper":`请先提交当前更改,再继续切换分支。`,"git.branchSwitcher.blockedDialog.submitAction":`提交并切换分支...`,"git.branchSwitcher.commitDialog.title":`提交更改`,"git.branchSwitcher.commitDialog.description":`提交完成后会自动继续切换到 {branchName}。`,"git.branchSwitcher.commitDialog.currentBranchLabel":`当前分支`,"git.branchSwitcher.commitDialog.targetBranchLabel":`目标分支`,"git.branchSwitcher.commitDialog.changesLabel":`更改`,"git.branchSwitcher.commitDialog.changesValue":`{count} 个文件`,"git.branchSwitcher.commitDialog.messageLabel":`提交消息`,"git.branchSwitcher.commitDialog.messagePlaceholder":`留空以自动生成提交消息`,"git.branchSwitcher.commitDialog.messageHelper":`这次会默认提交当前 workspace 内的全部未提交更改。`,"git.branchSwitcher.commitDialog.confirm":`提交并切换分支`,"git.branchSwitcher.commitDialog.identityMissing":`当前没有可用的 Git 提交身份,请先配置 user.name 和 user.email。`,"git.branchSwitcher.commitDialog.error.requestFailed":`提交失败:{error}`,"git.branchSwitcher.toast.switchSuccess":`已切换到分支 {branchName}`,"git.branchSwitcher.toast.createSuccess":`已创建并切换到分支 {branchName}`,"git.branchSwitcher.error.invalidBranchName":`分支名无效,请重新输入。`,"git.branchSwitcher.error.branchAlreadyExists":`分支已存在,请换一个名称。`,"git.branchSwitcher.error.targetBranchNotFound":`目标分支不存在,或还没有拉取到本地。`,"git.branchSwitcher.error.trackedOverwrite":`切换失败,以下已跟踪文件会被目标分支覆盖:{paths}{extraPaths}。`,"git.branchSwitcher.error.untrackedOverwrite":`切换失败,以下未跟踪文件会被目标分支覆盖:{paths}{extraPaths}。`,"git.branchSwitcher.error.moreFiles":` 等另外 {count} 个文件`,"git.branchSwitcher.error.conflictsPresent":`当前仓库还有未解决的冲突,先处理完再切换分支。`,"git.branchSwitcher.error.operationInProgress":`当前仓库还有进行中的 Git 操作,完成后再切换分支。`,"git.branchSwitcher.error.branchInOtherWorktree":`目标分支已在其他 worktree 中被检出,当前工作区无法直接切换。`,"git.branchSwitcher.error.unknown":`切换分支失败,请稍后重试。`,"git.branchSwitcher.error.requestFailed":`分支操作失败:{error}`,"gitGraph.title":`Git 图谱`,"gitGraph.subtitle":`{count} 个提交,{lanes} 条泳道`,"gitGraph.subtitle.hasMore":`最近 {count} 个提交,{lanes} 条泳道`,"gitGraph.metric.merges":`{count} 个合并`,"gitGraph.metric.refs":`{count} 个引用`,"gitGraph.graphAriaLabel":`Git 提交图`,"gitGraph.selectedCommit":`已选提交`,"gitGraph.inspectAction":`查看提交`,"gitGraph.menuAction":`Git 图谱`,"gitGraph.dialogDescription":`查看当前仓库的 Git 图谱。`,"gitGraph.column.graph":`图`,"gitGraph.column.description":`描述`,"gitGraph.column.date":`日期`,"gitGraph.column.author":`作者`,"gitGraph.column.commit":`提交`,"gitGraph.detail.subject":`主题`,"gitGraph.detail.commit":`提交`,"gitGraph.detail.author":`作者`,"gitGraph.detail.date":`日期`,"gitGraph.detail.parents":`父提交`,"gitGraph.empty.title":`暂无提交`,"gitGraph.empty.description":`当前仓库还没有提交历史。`,"gitGraph.error.requestFailed":`Git 图谱加载失败:{error}`,"gitGraph.refresh":`刷新 Git 图谱`,"gitGraph.refreshFailed":`刷新 Git 图谱失败:{error}`,"gitGraph.loadMore":`加载更多提交`,"gitGraph.loadMore.loading":`正在加载...`,"fileManager.resizeNavigation":`调整文件目录宽度`,"fileManager.title":`文件`,"fileManager.showNavigation":`显示文件导航`,"fileManager.hideNavigation":`收起文件导航`,"fileManager.empty":`从目录中选择一个文件`,"codeViewer.title":`代码查看`,"codeViewer.close":`关闭代码面板`,"codeViewer.loadingFile":`正在读取文件...`,"codeViewer.loadingImage":`正在加载图片预览...`,"codeViewer.fileMissing":`文件不存在,或当前环境无法访问该路径。`,"codeViewer.binary":`当前文件看起来像二进制内容,暂不支持代码预览。`,"codeViewer.imageUnavailable":`暂时无法显示这张图片。`,"codeViewer.loadingMedia":`正在加载媒体预览...`,"codeViewer.mediaUnavailable":`暂时无法预览这个媒体文件。`,"codeViewer.mediaUnsupported":`当前环境不支持播放这种媒体格式。`,"codeViewer.mediaLoadFailed":`媒体加载失败,请稍后重试或使用外部应用打开。`,"codeViewer.loadingPdf":`正在加载 PDF 预览...`,"codeViewer.pdfUnavailable":`暂时无法预览这个 PDF。`,"codeViewer.pdf.loading":`正在加载 PDF...`,"codeViewer.pdf.loadError":`PDF 加载失败`,"codeViewer.pdf.noData":`没有 PDF 数据`,"codeViewer.pdf.previousPage":`上一页`,"codeViewer.pdf.nextPage":`下一页`,"codeViewer.pdf.pageInput":`页码`,"codeViewer.pdf.zoomIn":`放大`,"codeViewer.pdf.zoomOut":`缩小`,"codeViewer.officeUnavailable":`暂时无法预览这个 Office 文件。`,"codeViewer.officeTooLarge":`Office 文件超过 25 MB,无法预览。`,"codeViewer.excel.sheetTabs":`工作表`,"codeViewer.loadingPptx":`正在加载演示文稿预览...`,"codeViewer.pptxUnavailable":`暂时无法预览这个演示文稿。`,"codeViewer.pptx.loading":`正在加载演示文稿...`,"codeViewer.pptx.loadError":`演示文稿加载失败`,"codeViewer.pptx.noSlides":`这个演示文稿没有幻灯片`,"codeViewer.pptx.fileTooLarge":`演示文稿超过 64 MB 预览上限。`,"codeViewer.pptx.legacyFileTooLarge":`当前远程环境仅支持预览不超过 8 MB 的演示文稿。`,"codeViewer.pptx.incomplete":`演示文稿在读取过程中发生变化或被截断,无法预览。请重试。`,"codeViewer.pptx.previousPage":`上一张幻灯片`,"codeViewer.pptx.nextPage":`下一张幻灯片`,"codeViewer.pptx.pageInput":`幻灯片页码`,"codeViewer.pptx.zoomIn":`放大`,"codeViewer.pptx.selectElement":`选择元素`,"codeViewer.pptx.exitElementSelection":`退出选择`,"codeViewer.pptx.aiEdit":`AI 编辑`,"codeViewer.pptx.commentPlaceholder":`输入针对该元素的评论`,"codeViewer.pptx.cancelAiEdit":`取消`,"codeViewer.pptx.addToConversation":`添加到对话`,"codeViewer.pptx.zoomOut":`缩小`,"codeViewer.pptx.thumbnails":`幻灯片缩略图`,"codeViewer.pptx.thumbnail":`第 {pageNumber} 张幻灯片`,"codeViewer.pptx.exportPdf":`导出为 PDF`,"codeViewer.pptx.exportingPdf":`正在导出 PDF...`,"codeViewer.pptx.exportPdfSuccess":`PDF 已保存到 {path}`,"codeViewer.pptx.exportPdfFailed":`PDF 导出失败`,"codeViewer.empty":`文件为空`,"codeViewer.fileTooLarge":`文件超过 256 KB 预览上限,请使用其他编辑器打开以查看完整内容。`,"codeViewer.viewCode":`查看代码`,"codeViewer.viewDiff":`查看 Diff`,"codeViewer.openSourcePreview":`查看源码`,"codeViewer.markdownMode":`Markdown`,"codeViewer.markdownPreview":`预览`,"codeViewer.markdownSource":`源码`,"codeViewer.svgMode":`SVG`,"codeViewer.svgPreview":`预览`,"codeViewer.svgSource":`代码`,"codeViewer.wrapLines":`自动换行`,"codeBlock.mermaid.ariaLabel":`Mermaid 图表`,"codeBlock.wrapLines":`自动换行`,"codeBlock.copyCode":`复制代码`,"codeBlock.mermaid.empty":`Mermaid 源码为空。`,"codeBlock.mermaid.error":`Mermaid 图表渲染失败`,"codeBlock.mermaid.openPreview":`放大查看`,"codeBlock.mermaid.previewDescription":`可缩放和平移的 Mermaid 图表预览。`,"codeBlock.mermaid.zoomIn":`放大`,"codeBlock.mermaid.zoomOut":`缩小`,"codeBlock.mermaid.zoomLevel":`缩放比例`,"codeBlock.mermaid.zoomToPercent":`缩放到 {percent}%`,"codeBlock.mermaid.zoomToFit":`适应窗口`,"codeBlock.mermaid.fit":`适应窗口`,"codeBlock.mermaid.resetZoom":`重置缩放`,"codeBlock.mermaid.reset":`重置缩放`,"codeBlock.mermaid.close":`关闭预览`,"codeBlock.mermaid.loading":`正在渲染图表...`,"codeBlock.mermaid.source":`源码`,"markdownTable.copyMarkdown":`复制 Markdown`,"markdownTable.downloadCsv":`下载 CSV`,"markdownTable.openPreview":`预览表格`,"markdownTable.expandScrollMode":`展开表格滚动区域`,"markdownTable.collapseScrollMode":`收回表格滚动区域`,"markdownTable.previewTitle":`表格预览`,"markdownTable.previewDescription":`在更大的可滚动视图中查看表格。`,"markdownTable.copySucceeded":`已复制 Markdown 表格`,"markdownTable.copyFailed":`复制表格失败:{error}`,"markdownTable.downloadFailed":`下载表格失败`,"codeViewer.comment.add":`添加评论`,"codeViewer.comment.addTooltip":`点击或拖拽添加评论`,"codeViewer.comment.placeholder":`可选:为这段代码补充评论...`,"codeViewer.comment.submit":`添加到对话`,"codeViewer.comment.delete":`删除评论`,"codeViewer.comment.line":`评论第 {line} 行`,"codeViewer.comment.range":`评论第 {startLine} 行到第 {endLine} 行`,"codeViewer.comment.contextLabel":`代码上下文`,"codeViewer.comment.commentLabel":`评论`,"codeViewer.review.targetLineMissing":`目标行不存在,评论已展示在文件顶部。`,"chat.codeComments.one":`1 条评论`,"chat.codeComments.many":`{count} 条评论`,"chat.codeComments.remove":`移除代码评论`,"chat.codeCommentCards.expandAll":`展开 {count} 条评论`,"chat.codeCommentCards.collapseAll":`收起评论`,"chat.codeCommentCards.openReview":`打开 {title} 的代码审查`,"chat.webElements.one":`1 个网页元素`,"chat.pptxElements.one":`1 个幻灯片元素`,"chat.pptxElements.many":`{count} 个幻灯片元素`,"chat.pptxElements.remove":`移除幻灯片元素`,"chat.pptxElements.previewFileMissing":`引用的演示文稿已不存在。`,"chat.pptxElements.previewPageMissing":`引用的第 {pageNumber} 页已不存在,已打开演示文稿。`,"chat.pptxElements.previewSourceChanged":`演示文稿已发生变化,已打开原第 {pageNumber} 页,但内容可能不同。`,"chat.pptxElements.previewScopeUnavailable":`当前工作区无法打开这个演示文稿引用。`,"chat.webElements.many":`{count} 个网页元素`,"chat.webElements.remove":`移除网页元素上下文`,"appHeader.openInFinder":`在 Finder 中打开`,"appHeader.openInFileExplorer":`在资源管理器中打开`,"appHeader.openInFileManager":`在文件管理器中打开`,"appHeader.openInFileManagerFailed":`无法在系统文件管理器中打开`,"appHeader.openInEditor":`在 {editor} 中打开`,"appHeader.selectOpenApp":`选择打开方式`,"appHeader.copyPath":`复制路径`,"fileActions.copyAbsolutePath":`复制绝对路径`,"fileActions.copyRelativePath":`复制相对路径`,"appHeader.copyTaskPath":`复制任务路径`,"appHeader.reloadSession":`重载会话`,"appHeader.reloadSessionSuccess":`会话已重载`,"appHeader.reloadSessionFailed":`重载会话失败`,"appHeader.workspaceSessionActionLoading":`正在应用会话变更...`,"appHeader.copyLogPath":`复制日志路径`,"appHeader.copyClaudeJsonlPath":`复制JSONL路径`,"appHeader.copySessionId":`复制会话 ID`,"appHeader.goToProviderConfig":`前往配置`,"appHeader.goToProviderConfigPrefix":`前往`,"appHeader.goToProviderConfigSuffix":`配置`,"appHeader.openProviderConfigWithEditorPrefix":`用`,"appHeader.openProviderConfigWithEditorMiddle":`打开`,"appHeader.openProviderConfigWithEditorSuffix":`配置文件`,"appHeader.openProviderConfigInEditorFailed":`无法在 {editor} 中打开 Provider 配置文件`,"workspaceHeader.help.menu":`帮助`,"workspaceHeader.help.issueReport":`问题上报`,"workspaceHeader.help.reportVulnerability":`提交漏洞`,"workspaceHeader.help.productRequest":`给产品提需求`,"workspaceHeader.help.productRequestDraft":`我想建议:`,"workspaceHeader.help.community":`用户社群`,"workspaceHeader.help.docs":`产品文档`,"titleBar.menu.file":`文件`,"titleBar.menu.view":`视图`,"titleBar.menu.help":`帮助`,"titleBar.menu.file.newTask":`新建任务`,"titleBar.menu.file.openWorkspace":`打开工作区`,"titleBar.menu.file.closeWindow":`关闭窗口`,"titleBar.windowMenu":`窗口菜单`,"titleBar.window.minimize":`最小化窗口`,"titleBar.window.toggleMaximize":`最大化或还原窗口`,"titleBar.menu.view.toggleFullScreen":`切换全屏`,"titleBar.menu.view.actualSize":`实际大小`,"titleBar.menu.view.zoomIn":`放大`,"titleBar.menu.view.zoomOut":`缩小`,"titleBar.menu.help.about":`关于 ZCode`,"titleBar.menu.help.checkForUpdates":`检查更新`,"titleBar.menu.help.feedback":`问题上报`,"sidebar.menu.community":`用户社群`,"titleBar.menu.help.exportLogs":`导出日志`,"titleBar.menu.help.toggleDevTools":`切换开发者工具`,"titleBar.menu.help.resourceManager":`资源管理器`,"titleBar.menu.help.toggleZCodeStdioTap":`抓取 Agent stdio 通信`,"titleBar.menu.help.clearAllData":`清除所有数据`,"directoryBrowser.errorUnavailable":`无法打开此目录,请检查目录是否存在以及是否有访问权限,或选择其他目录。`,"remote.directory.willOpen":`将打开 {path}`,"directoryBrowser.title":`选择目录`,"directoryBrowser.pathPlaceholder":`输入路径`,"directoryBrowser.go":`跳转`,"directoryBrowser.showHidden":`显示隐藏目录`,"directoryBrowser.hideHidden":`收起隐藏目录`,"directoryBrowser.noSubdirs":`无子目录`,"directoryBrowser.selectDir":`在此目录打开工作区`,"directoryBrowser.opening":`正在打开…`,"directoryBrowser.errorSystem":`无法获取系统信息`,"directoryBrowser.errorReadDir":`无法读取目录:{error}`,"updateReady.shortTitle":`更新`,"updateReady.title":`更新 v{version}`,"updateReady.releaseNotesTitle":`v{version} 更新日志`,"updateReady.tooltip":`v{version} 已就绪,点击重启更新`,"updateAvailable.tooltip":`发现新版本 v{version},点击查看`,"updateReady.confirm.title":`确认更新到 v{version}?`,"updateReady.confirm.description":`应用将退出并重启以完成更新,进行中的任务会中断。`,"updateReady.confirm.ok":`立即重启更新`,"updateReady.confirm.cancel":`稍后`,"updateDialog.availableTitle":`发现新版本 v{version}`,"updateDialog.downloadingTitle":`正在下载 v{version}`,"updateDialog.readyTitle":`v{version} 已准备就绪`,"updateDialog.releaseDate":`{date}`,"updateDialog.releaseNotesExpand":`查看`,"updateDialog.releaseNotesCollapse":`收起`,"updateDialog.downloadAndUpdate":`下载更新`,"updateDialog.cancelDownload":`取消下载`,"updateDialog.autoDownloadAndInstall":`以后自动下载并安装更新`,"updateDialog.downloadingAction":`下载中`,"updateDialog.downloadProgress":`下载进度`,"updateDialog.restartToUpdate":`重启以更新`,"updateDialog.skipVersion":`跳过此版本`,"updateDialog.later":`稍后`,"update.toast.upToDate":`已是最新版本 v{version}`,"update.toast.available":`发现新版本 v{version}`,"update.toast.downloading":`正在下载新版本 v{version}`,"update.toast.alreadyDownloading":`正在下载新版本({progress}%)`,"update.toast.ready":`v{version} 已下载,重启即可安装`,"update.toast.devSkipped":`开发环境不检查更新`,"update.toast.error":`检查更新失败:{error}`,"forceUpdate.title":`需要升级 ZCode 后继续使用`,"forceUpdate.description":`当前版本 v{currentVersion} 低于最低可用版本 v{minimalVersion}。请先完成升级,升级前暂时无法继续使用当前客户端。`,"forceUpdate.currentVersion":`当前版本`,"forceUpdate.minimalVersion":`最低版本`,"forceUpdate.action.check":`检查并下载更新`,"forceUpdate.action.restart":`重启安装更新`,"forceUpdate.action.reload":`刷新页面`,"desktopMenu.help.checkingForUpdates":`正在检查更新...`,"desktopMenu.help.updateAvailableVersion":`发现新版本 {version}`,"desktopMenu.help.downloadingUpdateVersion":`正在下载更新 {version}...`,"desktopMenu.help.downloadingUpdateProgress":`正在下载更新... {progress}`,"desktopMenu.help.restartUpdateAction":`重启更新`,"desktopMenu.help.restartToUpdate":`重启以更新({version})`,"postUpdateReleaseNotes.title":`更新说明`,"postUpdateReleaseNotes.acknowledge":`我知道了`,"projectSelector.heroTitle":`快速打开,专注工作。`,"projectSelector.heroDescription":`选择一个工作区,继续上次的进度,保持界面干净清爽。`,"appError.title":`应用界面出了点问题`,"appError.description":`刚才的页面错误已经被拦住了,所以不会直接白屏。你可以先重试;如果问题持续,再刷新应用恢复界面。`,"appError.retry":`重试`,"appError.reload":`刷新应用`,"appError.hint":`错误详情已记录到诊断日志里,方便继续排查。`,"appError.details":`查看组件堆栈`,"appError.unknown":`未知错误`,"appError.sectionTitle":`这块界面出了点问题`,"appError.sectionDescription":`错误已经限制在当前区域,其它功能可以继续使用。你可以先重试这个区域;如果问题持续,再刷新应用。`,"appError.sectionRetry":`重试此区域`,"appError.sectionHint":`错误详情已记录到诊断日志里,方便继续排查。`,"workspace.openWorkspace":`打开工作区`,"workspace.openFolder":`打开文件夹`,"workspace.openPluginsSettings":`插件市场`,"workspace.backToWorkspace":`返回工作区`,"workspace.wslUncPrompt.title":`建议通过 WSL 远程连接打开`,"workspace.wslUncPrompt.description":`你选择的是 WSL 路径:
3
3
  {path}
4
4
 
5
- 建议通过 WSL 连接打开,也可以继续按路径打开。`,"workspace.wslUncPrompt.openWsl":`打开 WSL 连接`,"workspace.wslUncPrompt.continuePath":`继续按路径打开`,"taskList.codexConnectivityUnavailable":`预热检测到当前网络无法访问 {host},后续对话可能无法正常开始`,"workspaceSidebar.workspaces":`任务`,"workspaceSidebar.archivedTasks":`归档任务`,"workspaceSidebar.taskViewOptions":`筛选和排序`,"workspaceSidebar.organize":`视图`,"workspaceSidebar.organizeGrouped":`分组`,"workspaceSidebar.organizeByProject":`项目`,"workspaceSidebar.conversationsSection":`任务`,"workspaceSidebar.projectsSection":`项目`,"workspaceSidebar.newConversation":`新建任务`,"workspaceSidebar.reorderSection":`移动{section}分区`,"workspaceSidebar.sortBy":`排序方式`,"workspaceSidebar.sortByCreated":`创建时间`,"workspaceSidebar.sortByUpdated":`更新时间`,"workspaceSidebar.reconnect":`重新连接`,"workspaceSidebar.sourceTaskUnavailable":`该设备尚未完成连接,请先重连`,"workspaceSidebar.connectIdentifyTitle":`连接此设备`,"workspaceSidebar.connectionOffline":`离线`,"workspaceSidebar.openRemoteProject":`打开远程项目`,"workspaceSidebar.remoteProject":`远程项目`,"workspaceSidebar.connectionDetails":`查看 {device} 的连接详情`,"workspaceSidebar.openProjectHint":`点击项目名打开此项目`,"workspaceSidebar.reconnectProjectHint":`点击项目名,连接设备后打开此目录`,"workspaceSidebar.projectPath":`目录`,"workspaceSidebar.projectDevice":`设备`,"workspaceSidebar.projectLine":`连接`,"settings.source.pending":`未连接`,"settings.source.pendingDescription":`连接后会自动更新设备信息`,"workspaceSidebar.connecting":`连接中`,"workspaceSidebar.recoveringAutomatic":`正在自动恢复连接`,"workspaceSidebar.recoveringAutomaticShort":`自动恢复 {attempt}/{limit}`,"workspaceSidebar.manageDevice":`在设置中管理`,"workspaceSidebar.newRemoteConnection":`新建远程连接…`,"workspaceSidebar.recoveringAutomaticAttempt":`正在自动恢复连接({attempt}/{limit})`,"workspaceSidebar.reconnectingManual":`正在手动重新连接`,"workspaceSidebar.notConnected":`未连接`,"remote.error.sourceServerInstallRequired":`远程设备尚未安装 ZCode Server,需要先确认安装。`,"remote.error.sourceServerIdentityChangePending":`连接目标的身份已变化,请确认是否作为新设备使用。`,"remote.error.credentialsRequired":`没有可用的 SSH 密码或私钥凭据,请返回配置后补充。`,"remote.error.sourceServerUpgradeRequired":`远程设备与当前 ZCode Desktop 版本不兼容,需要先升级。`,"remote.error.sourceServerRunningTasks":`远程设备仍有运行中的任务,请等待结束或确认强制更新。`,"remote.error.workspaceTaskIdentityConflict":`该远端目录存在无法自动合并的任务身份冲突。`,"remote.error.workspaceConfigConflict":`该远端目录存在无法自动合并的配置文件冲突。`,"remote.error.bindCanceled":`远端工作区附着已取消。`,"remote.error.bindSessionMissing":`远端工作区会话已失效,请重新连接后再试。`,"remote.error.workspaceDirectoryUnavailable":`远程项目目录不存在、不是文件夹或无法访问。请检查目录和权限后重试。`,"remote.error.recoveryBudgetExhausted":`自动恢复已在第 {attempt}/{limit} 次尝试后停止,请手动重连后再试。`,"remote.error.workspaceMigrationPlanDiverged":`迁移暂停期间出现了新的工作区身份,请检查迁移报告后重试。`,"remote.error.workspaceSessionGenerationChanged":`迁移暂停期间会话数据库代际发生变化,请恢复报告记录的代际后再重试。`,"remote.error.hostUnreachable":`无法连接到主机`,"remote.error.connectionTimeout":`连接超时`,"remote.error.hostNotFound":`找不到主机`,"remote.error.hostKeyChanged":`主机身份已变化`,"remote.error.downloadFailed":`资源下载失败`,"remote.error.uploadFailed":`资源上传失败`,"remote.error.preflightFailed":`远端环境检查失败`,"remote.error.installFailed":`远端安装失败`,"remote.error.spaceInsufficient":`远端空间不足`,"remote.error.permissionDenied":`没有远端写入权限`,"remote.error.connectionCanceled":`已取消连接`,"remote.error.unknown":`连接失败`,"settings.source.recentLog":`查看最近日志`,"remote.error.retryableHint":`你可以稍后重试。`,"remote.error.connectionClosed":`远程连接已断开`,"workspaceSidebar.unavailableLocalDirectory":`工作区目录不存在或无法访问,当前仅可查看历史记录。恢复该目录后重启 ZCode 即可继续使用。`,"workspaceSidebar.toggleSidebar":`切换侧边栏`,"workspaceSidebar.resizeSidebar":`调整侧边栏宽度`,"workspaceSidebar.showFileTree":`查看文件`,"workspaceFileTree.title":`Workspace`,"workspaceFileTree.backToTasks":`返回任务`,"workspaceFileTree.refresh":`刷新文件树`,"workspaceFileTree.empty":`当前目录为空。`,"workspaceFileTree.noResults":`没有匹配的文件。`,"workspaceFileTree.searchLabel":`搜索文件`,"workspaceFileTree.searchPlaceholder":`搜索文件...`,"workspaceFileTree.clearSearch":`清空文件搜索`,"workspaceFileTree.showChangedFiles":`仅显示变更文件`,"workspaceFileTree.showAllFiles":`显示全部文件`,"workspaceFileTree.readFailed":`读取目录失败`,"workspaceFileTree.openWith":`打开方式`,"workspaceFileTree.openInBrowser":`用内置浏览器打开`,"workspaceFileTree.openFailed":`无法打开该条目`,"workspaceFileTree.addToChat":`添加到聊天`,"workspaceFileTree.gitStatus.ignored":`已忽略`,"ssh.trigger":`SSH 连接`,"ssh.title":`SSH 远程连接`,"ssh.host":`主机`,"ssh.hostPlaceholder":`输入主机地址或 IP,例如 192.168.1.100`,"ssh.port":`端口`,"ssh.username":`用户名`,"ssh.usernamePlaceholder":`输入用户名,例如 root`,"ssh.authMethod":`认证方式`,"ssh.auth.password":`密码`,"ssh.auth.privateKey":`私钥`,"ssh.assetInstallMode":`资源下载方式`,"ssh.advancedOptions":`高级选项`,"ssh.assetInstallMode.local-download-upload":`本地下载后上传`,"ssh.assetInstallMode.remote-download":`远端服务器下载`,"ssh.assetInstallModeDescription":`远端服务器下载可减少上传等待,但服务器需要能访问 ZCode CDN,并具备下载、解压和校验工具。`,"ssh.password":`密码`,"ssh.passwordPlaceholder":`输入 SSH 密码`,"ssh.privateKey":`私钥`,"ssh.privateKeyPlaceholder":`选择或输入私钥文件路径`,"ssh.privateKeyPassphrase":`私钥口令(可选)`,"ssh.privateKeyPassphrasePlaceholder":`输入私钥口令`,"ssh.privateKeySelect":`选择私钥文件`,"ssh.configAlias":`SSH 配置别名(可选)`,"ssh.configAliasPlaceholder":`不使用别名`,"ssh.configAliasSearchPlaceholder":`搜索 SSH 配置别名`,"ssh.configAliasEmpty":`当前机器未发现可用的 SSH 配置别名。`,"ssh.configAliasLoadFailed":`SSH 配置别名读取失败,仍可手动输入连接信息。`,"ssh.configAliasDescription":`已从 ~/.ssh/config 填充主机、端口、用户名和私钥路径;手动修改任一字段将解除关联。`,"ssh.connect":`连接`,"ssh.cancel":`取消`,"ssh.connecting":`正在连接...`,"ssh.success":`已连接,并在新窗口中打开。`,"ssh.validation.hostRequired":`请输入主机`,"ssh.validation.usernameRequired":`请输入用户名`,"ssh.importFromConfig":`从 SSH config 导入`,"ssh.importEmpty":`未发现 SSH config Host`,"ssh.configAliasLinked":`已关联 Host {alias}`,"ssh.configAliasUnlink":`解除关联`,"ssh.configAliasLinkedHint":`修改任一字段会自动解除关联`,"ssh.pasteRecognized":`已识别 {target}`,"ssh.validation.passwordRequired":`密码不能为空`,"ssh.validation.privateKeyRequired":`私钥路径不能为空`,"common.back":`上一步`,"common.next":`下一步`,"remote.selection.step":`选择设备`,"remote.selection.connect":`连接`,"remote.selection.search":`搜索设备、Host 或容器`,"remote.selection.saved":`已保存的设备`,"remote.selection.aliases":`SSH config 中的 Host`,"remote.selection.wsl":`WSL 发行版`,"remote.selection.docker":`运行中的容器`,"remote.selection.empty":`没有匹配的设备,可从下面新建连接。`,"remote.selection.new.ssh":`新建 SSH 连接`,"remote.selection.new.wsl":`手动输入 WSL`,"remote.selection.new.docker":`手动输入 Docker`,"remote.selection.new.server":`开发 Server`,"remote.selection.keyboard":`Tab / ↑↓ 选择 · Enter 连接 · 点击最近目录直接打开`,"remote.selection.back":`返回列表`,"remote.background.ready":`连接已完成`,"remote.background.continue":`继续`,"remote.background.review":`查看或处理`,"remote.background.cancel":`取消此连接`,"remote.minimized.device":`继续选择设备`,"remote.minimized.kind":`继续选择设备`,"remote.minimized.settings":`继续配置远程连接`,"remote.minimized.directory":`为 {device} 选择目录`,"remote.minimized.resume":`点击恢复连接向导`,"remote.minimized.connecting":`正在连接 {device}…`,"remote.minimized.failed":`连接 {device} 失败`,"remote.minimized.waiting":`等待确认或补充信息`,"ssh.validation.port":`端口须为 1–65535 的整数`,"ssh.showPassword":`显示密码`,"ssh.hidePassword":`隐藏密码`,"docker.inputMode.select":`选择运行中的容器`,"docker.inputMode.manual":`手动输入容器`,"remote.trigger":`远程连接`,"remote.wizard":`远程连接`,"remoteConnection.feedback":`反馈`,"remote.step.directory":`选择目录`,"remote.deviceStepTitle":`连接远程`,"remote.deviceStepDescription":`选择保存过的连接,或添加一个新的连接。`,"remote.deviceChat":`在此设备聊天`,"remote.deviceConnectChat":`连接并聊天`,"remote.deviceReconnect":`连接`,"remote.deviceReinstall":`重新安装并连接`,"remote.deviceIdentify":`连接`,"remote.directServer":`直连 Server`,"remote.manage":`管理`,"remote.settingsStepTitle":`新建连接`,"remote.history.empty":`没有匹配的历史连接`,"remote.connectingStepTitle":`建立连接`,"remote.connectingStepDescription":`正在通过 {method} 连接…`,"remote.connectingSubtitleConnected":`已连接到 {device} · 可以选择目录了`,"remote.connectingSubtitleFailed":`连接失败 · 可重试,或调整配置后再试`,"remote.connectingSubtitleUpdating":`正在更新远端服务`,"remote.phaseSub.uploading":`正在上传安装包`,"remote.phaseSub.extracting":`正在解压服务文件`,"remote.phaseSub.verifyingArchive":`正在校验安装包`,"remote.phaseSub.verifyingFiles":`正在校验服务文件`,"remote.phaseSub.restarting":`正在重启远端服务`,"remote.phase.channel":`连接设备`,"remote.phase.identify":`识别设备`,"remote.phase.deploy":`安装 ZCode Server`,"remote.phase.handshake":`启动并检查兼容性`,"remote.progress.step":`第 {current}/{total} 步`,"remote.progress.elapsedSeconds":`已用 {seconds} 秒`,"remote.progress.elapsedMinutesSeconds":`已用 {minutes} 分 {seconds} 秒`,"remote.progress.copyError":`复制错误详情`,"remote.progress.copied":`已复制`,"remote.link.local":`本机`,"remote.link.localVersion":`ZCode v{version}`,"remote.link.deviceHint":`连接后显示设备信息`,"remote.link.devicePending":`远程设备`,"remote.recognizedDevice":`已连接到设备 {device}`,"remote.recognizedDeviceBody":`当前连接({profile})已就绪,任务与工作区历史保持不变。`,"remote.connectedBanner":`已连接 {device} · {profile} · {version}`,"remote.connectedSummary":`连接已就绪:{device}`,"remote.remoteRecord":`远端记录`,"remote.quickOpenWithHistory":`快速打开 — 最近使用与远端已有的工作区`,"remote.syncAll":`一键同步`,"remote.syncSkills":`同步技能到该设备`,"remote.syncMcp":`同步 MCP 配置`,"remote.syncPlugins":`同步插件`,"remote.collapseContinues":`收起后连接会在后台继续`,"remote.goToDirectory":`前往选择目录`,"remote.openWorkspaceHere":`在此目录打开工作区`,"remote.useRemoteDownload":`改用设备直接下载`,"remote.errorRetry":`重试`,"remote.renameDevice":`设备名称`,"remote.renameDeviceHint":`首次连接建议改个好记的名字,随时可在 设置 · 远程设备 修改`,"remote.quickOpen":`快速打开`,"remote.connectionLogLines":`{count} 行`,"remote.errorPanel.uploadFailedTitle":`资源上传失败`,"remote.errorPanel.uploadFailedHint":`若目标服务器可以访问外网,改用「远端服务器下载」通常更快。`,"remote.phaseSub.channelEstablished.ssh":`已连接 SSH 主机`,"remote.phaseSub.channelEstablished.wsl":`已连接发行版`,"remote.phaseSub.channelEstablished.docker":`已连接容器`,"remote.phaseSub.channelEstablished":`已连接到设备`,"remote.phaseSub.identifyExisting":`已连接设备 {device}`,"remote.phaseSub.identifyNew":`新设备 · 尚未安装 ZCode Server`,"remote.phaseSub.deploySkipped":`远端已是 v{version} · 跳过部署`,"remote.phaseSub.deployWaitingConfirm":`等待确认安装…`,"remote.phaseSub.deployUploading":`上传 {file} · {sent} / {total}`,"remote.phaseSub.installed":`安装完成,正在启动连接`,"remote.phaseSub.uploadFailed":`安装失败:{reason}`,"remote.phaseSub.handshakeDone":`服务端口 {port}`,"remote.phaseSub.readyOnline":`设备已上线,工作区历史已就绪`,"remote.sourceServerInstallCancelled":`已取消安装,准备好后可以重试。`,"webRemoteControl.trigger":`移动端远程控制`,"webRemoteControl.triggerStatus.idle":`远程控制未开启`,"webRemoteControl.triggerStatus.starting":`远程控制启动中`,"webRemoteControl.triggerStatus.waiting":`等待手机连接`,"webRemoteControl.triggerStatus.connecting":`正在连接手机`,"webRemoteControl.triggerStatus.connected":`手机已连接`,"webRemoteControl.triggerStatus.error":`远程控制连接失败`,"webRemoteControl.authRequired.title":`需要先登录`,"webRemoteControl.authRequired.description":`登录后即可使用手机远程控制。手机和电脑需登录同一账号。`,"webRemoteControl.authRequired.login":`登录`,"webRemoteControl.title":`移动端远程控制`,"webRemoteControl.description":`扫码或在手机上打开链接,即可远程控制当前工作区。`,"webRemoteControl.statusLabel":`会话状态`,"webRemoteControl.status.idle":`未开启`,"webRemoteControl.status.starting":`启动中`,"webRemoteControl.status.running":`等待手机连接`,"webRemoteControl.status.connecting":`正在连接手机`,"webRemoteControl.status.active":`手机已连接`,"webRemoteControl.status.error":`连接失败`,"webRemoteControl.themeMenu.trigger":`选择主题`,"webRemoteControl.statusDetail.idle":`等待连接。`,"webRemoteControl.statusDetail.starting":`正在启动远程控制...`,"webRemoteControl.statusDetail.running":`用手机扫码,或在手机上打开链接。`,"webRemoteControl.statusDetail.connecting":`手机正在连接...`,"webRemoteControl.statusDetail.active":`手机可以控制当前工作区。`,"webRemoteControl.statusDetail.error":`无法启动移动端远程控制。`,"webRemoteControl.generating":`正在准备二维码...`,"webRemoteControl.qrAlt":`Web 远程控制二维码`,"webRemoteControl.mobileQr.title":`手机扫码连接`,"webRemoteControl.mobileQr.description":`用手机相机扫码,在手机上打开这个工作区。`,"webRemoteControl.statusTag.phone":`手机`,"webRemoteControl.statusTag.ready":`已就绪`,"webRemoteControl.botChannel.title":`使用 Bot Channel`,"webRemoteControl.botChannel.description":`连接聊天 Bot,适合更长时间的移动端访问。`,"webRemoteControl.botChannel.weixin.title":`微信`,"webRemoteControl.botChannel.weixin.description":`从微信会话打开这个工作区。`,"webRemoteControl.botChannel.feishu.title":`飞书`,"webRemoteControl.botChannel.feishu.description":`从飞书打开这个工作区。`,"webRemoteControl.botChannel.lark.title":`Lark`,"webRemoteControl.botChannel.lark.description":`从 Lark 打开这个工作区。`,"webRemoteControl.botChannel.telegram.title":`Telegram`,"webRemoteControl.botChannel.telegram.description":`从 Telegram 打开这个工作区。`,"webRemoteControl.botChannel.configure":`去 Bot Channels 配置`,"webRemoteControl.botChannel.manageBots":`机器人管理`,"webRemoteControl.linkLabel":`远程控制链接`,"webRemoteControl.linkPending":`远程控制链接就绪后会显示在这里。`,"webRemoteControl.singlePageNote":`当前 relay 配对同一时间只支持一个手机页面;如果已经在别的页面打开,请先关闭旧页面。`,"webRemoteControl.copyLink.description":`无法扫码?可以在手机上打开链接。`,"webRemoteControl.failure.sessionNotFound":`当前 Web 远程控制链接已经失效,请回到桌面端重新开启一次。`,"webRemoteControl.failure.sessionExpired":`这次 Web 远程控制会话已经结束了,需要在桌面端重新生成新的链接。`,"webRemoteControl.failure.sessionConflict":`这个链接已经被其他页面占用,请关闭旧页面后重新扫码。`,"webRemoteControl.failure.kicked":`relay 已踢出这次配对,请关闭其他页面后从桌面端重新生成二维码。`,"webRemoteControl.failure.workspaceClosed":`桌面端共享的窗口已经关闭,请回到桌面端重新发起访问。`,"webRemoteControl.failure.desktopDisconnected":`桌面端已经断开连接,当前 Web 远程控制无法继续使用。`,"webRemoteControl.failure.invalidMobileConnection":`当前手机连接已失效,请刷新页面后重新连接。`,"webRemoteControl.failure.desktopBootstrapTimeout":`桌面端响应超时,请确认窗口仍在运行后刷新页面。`,"webRemoteControl.failure.connectionRecoveryTimeout":`手机端连接恢复超时,当前 Web 远程控制暂时无法继续同步。`,"webRemoteControl.failure.relayUnavailable":`外部 relay 连接不可用,请确认桌面端在线后重试。`,"webRemoteControl.failure.unsupportedAction":`当前是 Web 远程控制模式,只支持访问桌面端当前窗口已经打开的工作区。`,"webRemoteControl.failure.unexpectedError":`无法启动移动端远程控制,请回到桌面端重试。`,"webRemoteControl.copyLink":`复制链接`,"webRemoteControl.copyLink.copied":`已复制远程控制链接`,"webRemoteControl.copyLinkFailed":`复制远程控制链接失败:{error}`,"webRemoteControl.refreshQr":`刷新二维码`,"webRemoteControl.refreshQr.confirmTitle":`刷新二维码?`,"webRemoteControl.refreshQr.confirmDescription":`刷新后,之前复制或扫码得到的远程控制链接将失效,已连接的手机需要重新扫码。`,"webRemoteControl.refreshQr.success":`已刷新远程控制二维码`,"webRemoteControl.refreshQr.failed":`刷新远程控制二维码失败:{error}`,"webRemoteControl.stop":`停止`,"webRemoteControl.switchWorkspace":`切换工作区`,"webRemoteControl.expandNavigation":`展开任务和工作区`,"webRemoteControl.collapseNavigation":`收起任务和工作区`,"webRemoteControl.homeOnlyWorkspaces":`工作区`,"webRemoteControl.noSwitchableWorkspaces":`没有可切换的工作区`,"webRemoteControl.noTasks":`当前桌面窗口没有可展示的任务`,"webRemoteControl.openTask":`打开任务 {title}`,"webRemoteControl.taskStatus.idle":`空闲`,"webRemoteControl.taskStatus.running":`运行中`,"webRemoteControl.taskStatus.completed":`已完成`,"webRemoteControl.taskStatus.error":`错误`,"webRemoteControl.switchDevice":`切换设备`,"webRemoteControl.unnamedDevice":`未命名设备`,"webRemoteControl.mobileShell.backHome":`返回任务首页`,"webRemoteControl.mobileShell.chatTitle":`任务会话`,"webRemoteControl.mobileShell.reconnecting":`正在自动重连...`,"webRemoteControl.stopSuccess":`已关闭 Web 远程控制`,"webRemoteControl.startFailed":`开启 Web 远程控制失败:{error}`,"webRemoteControl.stopFailed":`关闭 Web 远程控制失败:{error}`,"remote.selectDirectoryTitle":`选择目录`,"remote.selectDirectoryDescription":`在 {method} 上选择一个目录作为工作区。`,"remote.backToConnection":`返回配置`,"remote.selectedMethod":`当前连接方式`,"remote.methods":`连接方式`,"remote.connectionType":`连接类型`,"remote.kind.ssh":`SSH`,"remote.kind.server":`Server`,"remote.kind.wsl":`WSL`,"remote.kind.docker":`Docker`,"remote.kind.server.note":`Server(直连已运行的 ZCode 服务)仅在开发模式下显示。`,"remote.addAndConnect":`添加并连接`,"remote.connect":`连接`,"remote.connecting":`正在连接...`,"remote.minimize":`收起 — 连接将继续进行`,"remote.startConnection":`建立连接`,"remote.retryConnection":`重新连接`,"remote.connectingHint":`正在通过 {method} 建立连接。`,"remote.connectionLog":`连接日志`,"remote.connectionLogEmpty":`等待连接日志输出...`,"remote.connectingConfirmTitle":`要中止当前连接吗?`,"remote.sourceServerInstallTitle":`需要安装 ZCode Server`,"remote.sourceServerInstallDescription":`ZCode 将上传匹配的发行包,安装到 ~/.zcode/server 并启动后台 daemon;现有旧远程文件会保留。`,"remote.sourceServerInstallConfirm":`安装并继续`,"remote.installTarget":`目标账号`,"remote.installVersion":`安装版本`,"remote.installLocation":`安装位置`,"remote.sourceServerBoundaryTitle":`本地离线,任务照常运行`,"remote.sourceServerBoundaryDescription":`关闭 ZCode 或休眠本机,
6
- 远程任务继续运行。`,"remote.sourceServerBoundaryEyebrow":`新版远程连接`,"remote.sourceServerBoundaryLocalDevice":`本地电脑`,"remote.sourceServerBoundaryLocalStatus":`已休眠 / 已关闭`,"remote.sourceServerBoundaryRemoteTask":`远程任务`,"remote.sourceServerBoundaryRemoteStatus":`持续运行中`,"settings.source.label":`来源`,"settings.source.offline":`未连接`,"settings.source.uninstalled":`已卸载`,"settings.source.operationFailed":`操作失败,请稍后重试。`,"settings.source.versionDetails":`当前 v{current} · 最低兼容 v{minimum} · 更新期间远程任务会短暂中断`,"settings.source.managementTitle":`远程连接`,"settings.remoteDevicesTitle":`远程设备`,"settings.remoteDevicesDescription":`管理已连接的服务器、WSL 发行版和 Docker 容器。`,"settings.source.newConnection":`新建连接`,"settings.source.addRoute":`添加连接 — 通过新的 SSH 目标连接同一设备`,"settings.source.archivedAt":`归档于 {time}`,"settings.source.retiredReason.reinstalled":`因连接目标身份变化而归档,仅作记录`,"settings.source.retiredEntryNote":`连接目标身份变化,新身份已确认`,"settings.source.retiredNameSuffix":`(旧)`,"settings.source.reinstallRequired":`远端已卸载 ZCode Server;连接与任务记录仍保留在本机`,"settings.source.reinstallAndConnect":`重新安装并连接`,"settings.source.copyDeviceId":`复制设备 ID`,"common.justNow":`刚刚`,"common.minutesAgo":`{count} 分钟前`,"common.hoursAgo":`{count} 小时前`,"common.yesterday":`昨天`,"settings.source.profileName":`连接名称`,"settings.source.linesTitle":`连接`,"settings.source.editConnection":`编辑`,"settings.source.editConnectionTitle":`编辑连接`,"settings.source.editConnectionDescription":`连接信息将在下次连接时生效,不会改变已有项目和任务。`,"settings.source.deviceName":`设备名`,"settings.source.removeSourceServer":`移除设备`,"settings.source.removeOpenProjects":`将断开以下已打开的项目:
5
+ 建议通过 WSL 连接打开,也可以继续按路径打开。`,"workspace.wslUncPrompt.openWsl":`打开 WSL 连接`,"workspace.wslUncPrompt.continuePath":`继续按路径打开`,"taskList.codexConnectivityUnavailable":`预热检测到当前网络无法访问 {host},后续对话可能无法正常开始`,"workspaceSidebar.workspaces":`任务`,"workspaceSidebar.archivedTasks":`归档任务`,"workspaceSidebar.taskViewOptions":`筛选和排序`,"workspaceSidebar.organize":`视图`,"workspaceSidebar.organizeGrouped":`分组`,"workspaceSidebar.organizeByProject":`项目`,"workspaceSidebar.conversationsSection":`任务`,"workspaceSidebar.projectsSection":`项目`,"workspaceSidebar.newConversation":`新建任务`,"workspaceSidebar.reorderSection":`移动{section}分区`,"workspaceSidebar.sortBy":`排序方式`,"workspaceSidebar.sortByCreated":`创建时间`,"workspaceSidebar.sortByUpdated":`更新时间`,"workspaceSidebar.reconnect":`重新连接`,"workspaceSidebar.sourceTaskUnavailable":`该设备尚未完成连接,请先重连`,"workspaceSidebar.connectIdentifyTitle":`连接此设备`,"workspaceSidebar.connectionOffline":`离线`,"workspaceSidebar.openRemoteProject":`打开远程项目`,"workspaceSidebar.remoteProject":`远程项目`,"workspaceSidebar.connectionDetails":`查看 {device} 的连接详情`,"workspaceSidebar.openProjectHint":`点击项目名打开此项目`,"workspaceSidebar.reconnectProjectHint":`点击项目名,连接设备后打开此目录`,"workspaceSidebar.projectPath":`目录`,"workspaceSidebar.projectDevice":`设备`,"workspaceSidebar.projectLine":`连接`,"settings.source.pending":`未连接`,"settings.source.pendingDescription":`连接后会自动更新设备信息`,"workspaceSidebar.connecting":`连接中`,"workspaceSidebar.recoveringAutomatic":`正在自动恢复连接`,"workspaceSidebar.recoveringAutomaticShort":`自动恢复 {attempt}/{limit}`,"workspaceSidebar.manageDevice":`在设置中管理`,"workspaceSidebar.newRemoteConnection":`新建远程连接…`,"workspaceSidebar.recoveringAutomaticAttempt":`正在自动恢复连接({attempt}/{limit})`,"workspaceSidebar.reconnectingManual":`正在手动重新连接`,"workspaceSidebar.notConnected":`未连接`,"remote.error.sourceServerInstallRequired":`远程设备尚未安装 ZCode Server,需要先确认安装。`,"remote.error.sourceServerIdentityChangePending":`连接目标的身份已变化,请确认是否作为新设备使用。`,"remote.error.credentialsRequired":`没有可用的 SSH 密码或私钥凭据,请返回配置后补充。`,"remote.error.sourceServerUpgradeRequired":`远程设备与当前 ZCode Desktop 版本不兼容,需要先升级。`,"remote.error.sourceServerRunningTasks":`远程设备仍有运行中的任务,请等待结束或确认强制更新。`,"remote.error.workspaceTaskIdentityConflict":`该远端目录存在无法自动合并的任务身份冲突。`,"remote.error.workspaceConfigConflict":`该远端目录存在无法自动合并的配置文件冲突。`,"remote.error.bindCanceled":`远端工作区附着已取消。`,"remote.error.bindSessionMissing":`远端工作区会话已失效,请重新连接后再试。`,"remote.error.workspaceDirectoryUnavailable":`远程项目目录不存在、不是文件夹或无法访问。请检查目录和权限后重试。`,"remote.error.recoveryBudgetExhausted":`自动恢复已在第 {attempt}/{limit} 次尝试后停止,请手动重连后再试。`,"remote.error.workspaceMigrationPlanDiverged":`迁移暂停期间出现了新的工作区身份,请检查迁移报告后重试。`,"remote.error.workspaceSessionGenerationChanged":`迁移暂停期间会话数据库代际发生变化,请恢复报告记录的代际后再重试。`,"remote.error.hostUnreachable":`无法连接到主机`,"remote.error.connectionTimeout":`连接超时`,"remote.error.hostNotFound":`找不到主机`,"remote.error.hostKeyChanged":`主机身份已变化`,"remote.error.downloadFailed":`资源下载失败`,"remote.error.uploadFailed":`资源上传失败`,"remote.error.preflightFailed":`远端环境检查失败`,"remote.error.installFailed":`远端安装失败`,"remote.error.spaceInsufficient":`远端空间不足`,"remote.error.permissionDenied":`没有远端写入权限`,"remote.error.connectionCanceled":`已取消连接`,"remote.error.unknown":`连接失败`,"settings.source.recentLog":`查看最近日志`,"remote.error.retryableHint":`你可以稍后重试。`,"remote.error.connectionClosed":`远程连接已断开`,"workspaceSidebar.unavailableLocalDirectory":`工作区目录不存在或无法访问,当前仅可查看历史记录。恢复该目录后重启 ZCode 即可继续使用。`,"workspaceSidebar.toggleSidebar":`切换侧边栏`,"workspaceSidebar.resizeSidebar":`调整侧边栏宽度`,"workspaceSidebar.showFileTree":`查看文件`,"workspaceFileTree.title":`Workspace`,"workspaceFileTree.backToTasks":`返回任务`,"workspaceFileTree.refresh":`刷新文件树`,"workspaceFileTree.empty":`当前目录为空。`,"workspaceFileTree.noResults":`没有匹配的文件。`,"workspaceFileTree.searchLabel":`搜索文件`,"workspaceFileTree.searchPlaceholder":`搜索文件...`,"workspaceFileTree.clearSearch":`清空文件搜索`,"workspaceFileTree.showChangedFiles":`仅显示变更文件`,"workspaceFileTree.showAllFiles":`显示全部文件`,"workspaceFileTree.readFailed":`读取目录失败`,"workspaceFileTree.openWith":`打开方式`,"workspaceFileTree.openInBrowser":`用内置浏览器打开`,"workspaceFileTree.openFailed":`无法打开该条目`,"workspaceFileTree.addToChat":`添加到聊天`,"workspaceFileTree.gitStatus.ignored":`已忽略`,"ssh.trigger":`SSH 连接`,"ssh.title":`SSH 远程连接`,"ssh.host":`主机`,"ssh.hostPlaceholder":`输入主机地址或 IP,例如 192.168.1.100`,"ssh.port":`端口`,"ssh.username":`用户名`,"ssh.usernamePlaceholder":`输入用户名,例如 root`,"ssh.authMethod":`认证方式`,"ssh.auth.password":`密码`,"ssh.auth.privateKey":`私钥`,"ssh.assetInstallMode":`资源下载方式`,"ssh.advancedOptions":`高级选项`,"ssh.assetInstallMode.local-download-upload":`本地下载后上传`,"ssh.assetInstallMode.remote-download":`远端服务器下载`,"ssh.assetInstallModeDescription":`远端服务器下载可减少上传等待,但服务器需要能访问 ZCode CDN,并具备下载、解压和校验工具。`,"ssh.password":`密码`,"ssh.passwordPlaceholder":`输入 SSH 密码`,"ssh.privateKey":`私钥`,"ssh.privateKeyPlaceholder":`选择或输入私钥文件路径`,"ssh.privateKeyPassphrase":`私钥口令(可选)`,"ssh.privateKeyPassphrasePlaceholder":`输入私钥口令`,"ssh.privateKeySelect":`选择私钥文件`,"ssh.configAlias":`SSH 配置别名(可选)`,"ssh.configAliasPlaceholder":`不使用别名`,"ssh.configAliasSearchPlaceholder":`搜索 SSH 配置别名`,"ssh.configAliasEmpty":`当前机器未发现可用的 SSH 配置别名。`,"ssh.configAliasLoadFailed":`SSH 配置别名读取失败,仍可手动输入连接信息。`,"ssh.configAliasDescription":`已从 ~/.ssh/config 填充主机、端口、用户名和私钥路径;手动修改任一字段将解除关联。`,"ssh.connect":`连接`,"ssh.cancel":`取消`,"ssh.connecting":`正在连接...`,"ssh.success":`已连接,并在新窗口中打开。`,"ssh.validation.hostRequired":`请输入主机`,"ssh.validation.usernameRequired":`请输入用户名`,"ssh.importFromConfig":`从 SSH config 导入`,"ssh.importEmpty":`未发现 SSH config Host`,"ssh.configAliasLinked":`已关联 Host {alias}`,"ssh.configAliasUnlink":`解除关联`,"ssh.configAliasLinkedHint":`修改任一字段会自动解除关联`,"ssh.pasteRecognized":`已识别 {target}`,"ssh.validation.passwordRequired":`密码不能为空`,"ssh.validation.privateKeyRequired":`私钥路径不能为空`,"common.back":`上一步`,"common.next":`下一步`,"remote.selection.step":`选择设备`,"remote.selection.connect":`连接`,"remote.selection.search":`搜索设备、Host 或容器`,"remote.selection.saved":`已保存的设备`,"remote.selection.aliases":`SSH config 中的 Host`,"remote.selection.wsl":`WSL 发行版`,"remote.selection.docker":`运行中的容器`,"remote.selection.empty":`没有匹配的设备,可从下面新建连接。`,"remote.selection.new.ssh":`新建 SSH 连接`,"remote.selection.new.wsl":`手动输入 WSL`,"remote.selection.new.docker":`手动输入 Docker`,"remote.selection.new.server":`开发 Server`,"remote.selection.keyboard":`Tab / ↑↓ 选择 · Enter 连接 · 点击最近目录直接打开`,"remote.selection.back":`返回列表`,"remote.background.ready":`连接已完成`,"remote.background.continue":`继续`,"remote.background.review":`查看或处理`,"remote.background.cancel":`取消此连接`,"remote.minimized.device":`继续选择设备`,"remote.minimized.kind":`继续选择设备`,"remote.minimized.settings":`继续配置远程连接`,"remote.minimized.directory":`为 {device} 选择目录`,"remote.minimized.resume":`点击恢复连接向导`,"remote.minimized.connecting":`正在连接 {device}…`,"remote.minimized.failed":`连接 {device} 失败`,"remote.minimized.waiting":`等待确认或补充信息`,"ssh.validation.port":`端口须为 1–65535 的整数`,"ssh.showPassword":`显示密码`,"ssh.hidePassword":`隐藏密码`,"docker.inputMode.select":`选择运行中的容器`,"docker.inputMode.manual":`手动输入容器`,"remote.trigger":`远程连接`,"remote.wizard":`远程连接`,"remoteConnection.feedback":`反馈`,"remote.step.directory":`选择目录`,"remote.deviceStepTitle":`连接远程`,"remote.deviceStepDescription":`选择保存过的连接,或添加一个新的连接。`,"remote.deviceChat":`在此设备聊天`,"remote.deviceConnectChat":`连接并聊天`,"remote.deviceReconnect":`连接`,"remote.deviceReinstall":`重新安装并连接`,"remote.deviceIdentify":`连接`,"remote.directServer":`直连 Server`,"remote.manage":`管理`,"remote.settingsStepTitle":`新建连接`,"remote.history.empty":`没有匹配的历史连接`,"remote.connectingStepTitle":`建立连接`,"remote.connectingStepDescription":`正在通过 {method} 连接…`,"remote.connectingSubtitleConnected":`已连接到 {device} · 可以选择目录了`,"remote.connectingSubtitleFailed":`连接失败 · 可重试,或调整配置后再试`,"remote.connectingSubtitleUpdating":`正在更新远端服务`,"remote.phaseSub.uploading":`正在上传安装包`,"remote.phaseSub.extracting":`正在解压服务文件`,"remote.phaseSub.verifyingArchive":`正在校验安装包`,"remote.phaseSub.verifyingFiles":`正在校验服务文件`,"remote.phaseSub.restarting":`正在重启远端服务`,"remote.phase.channel":`连接设备`,"remote.phase.identify":`识别设备`,"remote.phase.deploy":`安装 ZCode Server`,"remote.phase.handshake":`启动并检查兼容性`,"remote.progress.step":`第 {current}/{total} 步`,"remote.progress.elapsedSeconds":`已用 {seconds} 秒`,"remote.progress.elapsedMinutesSeconds":`已用 {minutes} 分 {seconds} 秒`,"remote.progress.copyError":`复制错误详情`,"remote.progress.copied":`已复制`,"remote.link.local":`本机`,"remote.link.localVersion":`ZCode v{version}`,"remote.link.deviceHint":`连接后显示设备信息`,"remote.link.devicePending":`远程设备`,"remote.recognizedDevice":`已连接到设备 {device}`,"remote.recognizedDeviceBody":`当前连接({profile})已就绪,任务与工作区历史保持不变。`,"remote.connectedBanner":`已连接 {device} · {profile} · {version}`,"remote.connectedSummary":`连接已就绪:{device}`,"remote.remoteRecord":`远端记录`,"remote.quickOpenWithHistory":`快速打开 — 最近使用与远端已有的工作区`,"remote.syncAll":`一键同步`,"remote.syncSkills":`同步技能到该设备`,"remote.syncMcp":`同步 MCP 配置`,"remote.syncPlugins":`同步插件`,"remote.collapseContinues":`收起后连接会在后台继续`,"remote.goToDirectory":`前往选择目录`,"remote.openWorkspaceHere":`在此目录打开工作区`,"remote.useRemoteDownload":`改用设备直接下载`,"remote.errorRetry":`重试`,"remote.renameDevice":`设备名称`,"remote.renameDeviceHint":`首次连接建议改个好记的名字,随时可在 设置 · 远程设备 修改`,"remote.quickOpen":`快速打开`,"remote.connectionLogLines":`{count} 行`,"remote.errorPanel.uploadFailedTitle":`资源上传失败`,"remote.errorPanel.uploadFailedHint":`若目标服务器可以访问外网,改用「远端服务器下载」通常更快。`,"remote.phaseSub.channelEstablished.ssh":`已连接 SSH 主机`,"remote.phaseSub.channelEstablished.wsl":`已连接发行版`,"remote.phaseSub.channelEstablished.docker":`已连接容器`,"remote.phaseSub.channelEstablished":`已连接到设备`,"remote.phaseSub.identifyExisting":`已连接设备 {device}`,"remote.phaseSub.identifyNew":`新设备 · 尚未安装 ZCode Server`,"remote.phaseSub.deploySkipped":`远端已是 v{version} · 跳过部署`,"remote.phaseSub.deployWaitingConfirm":`等待确认安装…`,"remote.phaseSub.deployUploading":`上传 {file} · {sent} / {total}`,"remote.phaseSub.installed":`安装完成,正在启动连接`,"remote.phaseSub.uploadFailed":`安装失败:{reason}`,"remote.phaseSub.handshakeDone":`服务端口 {port}`,"remote.phaseSub.readyOnline":`设备已上线,工作区历史已就绪`,"remote.sourceServerInstallCancelled":`已取消安装,准备好后可以重试。`,"webRemoteControl.trigger":`移动端远程控制`,"webRemoteControl.triggerStatus.idle":`远程控制未开启`,"webRemoteControl.triggerStatus.starting":`远程控制启动中`,"webRemoteControl.triggerStatus.waiting":`等待手机连接`,"webRemoteControl.triggerStatus.connecting":`正在连接手机`,"webRemoteControl.triggerStatus.connected":`手机已连接`,"webRemoteControl.triggerStatus.error":`远程控制连接失败`,"webRemoteControl.authRequired.title":`需要先登录`,"webRemoteControl.authRequired.description":`登录后即可使用手机远程控制。手机和电脑需登录同一账号。`,"webRemoteControl.authRequired.login":`登录`,"webRemoteControl.relay.title":`浏览器远程控制(自建中转)`,"webRemoteControl.relay.description":`在本机登录 blog 账号并开启后,手机浏览器访问中转地址即可控制这台电脑。账号只能控制自己登录的电脑。`,"webRemoteControl.relay.status.bound":`远程控制已开启,绑定账号:`,"webRemoteControl.relay.status.unbound":`远程控制未开启:登录 blog 账号以开启`,"webRemoteControl.relay.unavailable":`本机 connector 未运行(仅本机可配置远程控制)`,"webRemoteControl.relay.unreachable":`无法连接本机 connector`,"webRemoteControl.relay.relayOnline":`中转连接`,"webRemoteControl.relay.online":`在线`,"webRemoteControl.relay.offline":`重连中`,"webRemoteControl.relay.username":`blog 账号`,"webRemoteControl.relay.password":`密码`,"webRemoteControl.relay.login":`登录并开启远程控制`,"webRemoteControl.relay.logout":`关闭远程控制`,"webRemoteControl.relay.loginFailed":`登录失败`,"webRemoteControl.title":`移动端远程控制`,"webRemoteControl.description":`扫码或在手机上打开链接,即可远程控制当前工作区。`,"webRemoteControl.statusLabel":`会话状态`,"webRemoteControl.status.idle":`未开启`,"webRemoteControl.status.starting":`启动中`,"webRemoteControl.status.running":`等待手机连接`,"webRemoteControl.status.connecting":`正在连接手机`,"webRemoteControl.status.active":`手机已连接`,"webRemoteControl.status.error":`连接失败`,"webRemoteControl.themeMenu.trigger":`选择主题`,"webRemoteControl.statusDetail.idle":`等待连接。`,"webRemoteControl.statusDetail.starting":`正在启动远程控制...`,"webRemoteControl.statusDetail.running":`用手机扫码,或在手机上打开链接。`,"webRemoteControl.statusDetail.connecting":`手机正在连接...`,"webRemoteControl.statusDetail.active":`手机可以控制当前工作区。`,"webRemoteControl.statusDetail.error":`无法启动移动端远程控制。`,"webRemoteControl.generating":`正在准备二维码...`,"webRemoteControl.qrAlt":`Web 远程控制二维码`,"webRemoteControl.mobileQr.title":`手机扫码连接`,"webRemoteControl.mobileQr.description":`用手机相机扫码,在手机上打开这个工作区。`,"webRemoteControl.statusTag.phone":`手机`,"webRemoteControl.statusTag.ready":`已就绪`,"webRemoteControl.botChannel.title":`使用 Bot Channel`,"webRemoteControl.botChannel.description":`连接聊天 Bot,适合更长时间的移动端访问。`,"webRemoteControl.botChannel.weixin.title":`微信`,"webRemoteControl.botChannel.weixin.description":`从微信会话打开这个工作区。`,"webRemoteControl.botChannel.feishu.title":`飞书`,"webRemoteControl.botChannel.feishu.description":`从飞书打开这个工作区。`,"webRemoteControl.botChannel.lark.title":`Lark`,"webRemoteControl.botChannel.lark.description":`从 Lark 打开这个工作区。`,"webRemoteControl.botChannel.telegram.title":`Telegram`,"webRemoteControl.botChannel.telegram.description":`从 Telegram 打开这个工作区。`,"webRemoteControl.botChannel.configure":`去 Bot Channels 配置`,"webRemoteControl.botChannel.manageBots":`机器人管理`,"webRemoteControl.linkLabel":`远程控制链接`,"webRemoteControl.linkPending":`远程控制链接就绪后会显示在这里。`,"webRemoteControl.singlePageNote":`当前 relay 配对同一时间只支持一个手机页面;如果已经在别的页面打开,请先关闭旧页面。`,"webRemoteControl.copyLink.description":`无法扫码?可以在手机上打开链接。`,"webRemoteControl.failure.sessionNotFound":`当前 Web 远程控制链接已经失效,请回到桌面端重新开启一次。`,"webRemoteControl.failure.sessionExpired":`这次 Web 远程控制会话已经结束了,需要在桌面端重新生成新的链接。`,"webRemoteControl.failure.sessionConflict":`这个链接已经被其他页面占用,请关闭旧页面后重新扫码。`,"webRemoteControl.failure.kicked":`relay 已踢出这次配对,请关闭其他页面后从桌面端重新生成二维码。`,"webRemoteControl.failure.workspaceClosed":`桌面端共享的窗口已经关闭,请回到桌面端重新发起访问。`,"webRemoteControl.failure.desktopDisconnected":`桌面端已经断开连接,当前 Web 远程控制无法继续使用。`,"webRemoteControl.failure.invalidMobileConnection":`当前手机连接已失效,请刷新页面后重新连接。`,"webRemoteControl.failure.desktopBootstrapTimeout":`桌面端响应超时,请确认窗口仍在运行后刷新页面。`,"webRemoteControl.failure.connectionRecoveryTimeout":`手机端连接恢复超时,当前 Web 远程控制暂时无法继续同步。`,"webRemoteControl.failure.relayUnavailable":`外部 relay 连接不可用,请确认桌面端在线后重试。`,"webRemoteControl.failure.unsupportedAction":`当前是 Web 远程控制模式,只支持访问桌面端当前窗口已经打开的工作区。`,"webRemoteControl.failure.unexpectedError":`无法启动移动端远程控制,请回到桌面端重试。`,"webRemoteControl.copyLink":`复制链接`,"webRemoteControl.copyLink.copied":`已复制远程控制链接`,"webRemoteControl.copyLinkFailed":`复制远程控制链接失败:{error}`,"webRemoteControl.refreshQr":`刷新二维码`,"webRemoteControl.refreshQr.confirmTitle":`刷新二维码?`,"webRemoteControl.refreshQr.confirmDescription":`刷新后,之前复制或扫码得到的远程控制链接将失效,已连接的手机需要重新扫码。`,"webRemoteControl.refreshQr.success":`已刷新远程控制二维码`,"webRemoteControl.refreshQr.failed":`刷新远程控制二维码失败:{error}`,"webRemoteControl.stop":`停止`,"webRemoteControl.switchWorkspace":`切换工作区`,"webRemoteControl.expandNavigation":`展开任务和工作区`,"webRemoteControl.collapseNavigation":`收起任务和工作区`,"webRemoteControl.homeOnlyWorkspaces":`工作区`,"webRemoteControl.noSwitchableWorkspaces":`没有可切换的工作区`,"webRemoteControl.noTasks":`当前桌面窗口没有可展示的任务`,"webRemoteControl.openTask":`打开任务 {title}`,"webRemoteControl.taskStatus.idle":`空闲`,"webRemoteControl.taskStatus.running":`运行中`,"webRemoteControl.taskStatus.completed":`已完成`,"webRemoteControl.taskStatus.error":`错误`,"webRemoteControl.switchDevice":`切换设备`,"webRemoteControl.unnamedDevice":`未命名设备`,"webRemoteControl.mobileShell.backHome":`返回任务首页`,"webRemoteControl.mobileShell.chatTitle":`任务会话`,"webRemoteControl.mobileShell.reconnecting":`正在自动重连...`,"webRemoteControl.stopSuccess":`已关闭 Web 远程控制`,"webRemoteControl.startFailed":`开启 Web 远程控制失败:{error}`,"webRemoteControl.stopFailed":`关闭 Web 远程控制失败:{error}`,"remote.selectDirectoryTitle":`选择目录`,"remote.selectDirectoryDescription":`在 {method} 上选择一个目录作为工作区。`,"remote.backToConnection":`返回配置`,"remote.selectedMethod":`当前连接方式`,"remote.methods":`连接方式`,"remote.connectionType":`连接类型`,"remote.kind.ssh":`SSH`,"remote.kind.server":`Server`,"remote.kind.wsl":`WSL`,"remote.kind.docker":`Docker`,"remote.kind.server.note":`Server(直连已运行的 ZCode 服务)仅在开发模式下显示。`,"remote.addAndConnect":`添加并连接`,"remote.connect":`连接`,"remote.connecting":`正在连接...`,"remote.minimize":`收起 — 连接将继续进行`,"remote.startConnection":`建立连接`,"remote.retryConnection":`重新连接`,"remote.connectingHint":`正在通过 {method} 建立连接。`,"remote.connectionLog":`连接日志`,"remote.connectionLogEmpty":`等待连接日志输出...`,"remote.connectingConfirmTitle":`要中止当前连接吗?`,"remote.sourceServerInstallTitle":`需要安装 ZCode Server`,"remote.sourceServerInstallDescription":`ZCode 将上传匹配的发行包,安装到 ~/.zcode/server 并启动后台 daemon;现有旧远程文件会保留。`,"remote.sourceServerInstallConfirm":`安装并继续`,"remote.installTarget":`目标账号`,"remote.installVersion":`安装版本`,"remote.installLocation":`安装位置`,"remote.sourceServerBoundaryTitle":`本地离线,任务照常运行`,"remote.sourceServerBoundaryDescription":`关闭 ZCode 或休眠本机,
6
+ 远程任务继续运行。`,"remote.sourceServerBoundaryEyebrow":`新版远程连接`,"remote.sourceServerBoundaryLocalDevice":`本地电脑`,"remote.sourceServerBoundaryLocalStatus":`已休眠 / 已关闭`,"remote.sourceServerBoundaryRemoteTask":`远程任务`,"remote.sourceServerBoundaryRemoteStatus":`持续运行中`,"settings.source.label":`来源`,"settings.source.offline":`未连接`,"settings.source.uninstalled":`已卸载`,"settings.source.operationFailed":`操作失败,请稍后重试。`,"settings.source.versionDetails":`当前 v{current} · 最低兼容 v{minimum} · 更新期间远程任务会短暂中断`,"settings.source.managementTitle":`远程连接`,"settings.remoteDevicesTitle":`远程设备`,"settings.remoteControl.title":`远程控制`,"settings.remoteDevicesDescription":`管理已连接的服务器、WSL 发行版和 Docker 容器。`,"settings.source.newConnection":`新建连接`,"settings.source.addRoute":`添加连接 — 通过新的 SSH 目标连接同一设备`,"settings.source.archivedAt":`归档于 {time}`,"settings.source.retiredReason.reinstalled":`因连接目标身份变化而归档,仅作记录`,"settings.source.retiredEntryNote":`连接目标身份变化,新身份已确认`,"settings.source.retiredNameSuffix":`(旧)`,"settings.source.reinstallRequired":`远端已卸载 ZCode Server;连接与任务记录仍保留在本机`,"settings.source.reinstallAndConnect":`重新安装并连接`,"settings.source.copyDeviceId":`复制设备 ID`,"common.justNow":`刚刚`,"common.minutesAgo":`{count} 分钟前`,"common.hoursAgo":`{count} 小时前`,"common.yesterday":`昨天`,"settings.source.profileName":`连接名称`,"settings.source.linesTitle":`连接`,"settings.source.editConnection":`编辑`,"settings.source.editConnectionTitle":`编辑连接`,"settings.source.editConnectionDescription":`连接信息将在下次连接时生效,不会改变已有项目和任务。`,"settings.source.deviceName":`设备名`,"settings.source.removeSourceServer":`移除设备`,"settings.source.removeOpenProjects":`将断开以下已打开的项目:
7
7
  {projects}`,"settings.source.noOpenProjects":`这台设备没有已打开的项目。`,"settings.source.disconnectHint":`断开后,远端任务会继续运行。`,"settings.machine.local":`本机`,"settings.machine.remote":`{name}(远程)`,"settings.machine.unknownRemote":`远程设备`,"settings.machine.scope":`{scope} · {machine}`,"settings.source.connectionName":`连接名`,"settings.source.connectionAddress":`地址`,"settings.source.connectionNameHint":`只用于在 ZCode 中区分这条连接。`,"settings.source.deviceNameRequired":`设备名不能为空。`,"settings.source.error.connection-profile-unavailable":`此连接已不可用,请刷新后重试。`,"settings.source.error.recent-project-unresolved":`无法确定原项目,请从侧栏选择项目。`,"settings.source.connectionNameRequired":`连接名称不能为空。`,"settings.source.keepSavedSecret":`留空以保留已保存的凭据`,"settings.source.otherSavedConnections":`其他已保存连接`,"settings.source.otherSavedConnectionsCount":`其他已保存连接({count})`,"settings.source.retry":`重试`,"settings.source.lastConnected":`上次成功 {time}`,"settings.source.lastConnectError":`上次失败:{error}`,"settings.source.devicesHeading":`设备`,"settings.source.recentProjects":`最近项目`,"settings.source.showAllProjects":`显示全部 ({count})`,"settings.source.showLessProjects":`收起`,"settings.source.projectOpened":`已打开`,"settings.source.projectCount":`{count} 个项目`,"settings.source.lastOnline":`最近在线 {time}`,"settings.source.lastOnlineNow":`刚刚在线`,"settings.source.neverOnline":`从未在线`,"settings.source.migrationConnectRequired":`连接后可用`,"settings.source.showMigrationReport":`迁移报告`,"settings.source.hideMigrationReport":`收起迁移报告`,"settings.source.online":`已连接`,"settings.source.unknownDevice":`远程设备`,"settings.source.updateAvailable":`ZCode Server 有可用更新。`,"settings.source.updateRequired":`连接前需要更新 ZCode Server。`,"settings.source.updateInProgress":`正在更新 ZCode Server…`,"settings.source.updateProgress":`ZCode Server 更新进度`,"settings.source.updatePhase.preparing":`正在准备更新`,"settings.source.updatePhase.checking":`正在检查设备和更新资源`,"settings.source.updatePhase.downloading":`正在下载更新资源`,"settings.source.updatePhase.uploading":`正在上传更新资源`,"settings.source.updatePhase.installing":`正在安装 ZCode Server`,"settings.source.updatePhase.reconnecting":`正在启动服务并重新连接`,"settings.source.updatePhase.completed":`更新完成`,"settings.source.updateLog":`更新日志({count})`,"settings.source.updateLogWaiting":`正在等待更新日志…`,"settings.source.defaultProfile":`默认`,"settings.source.defaultProfileMenuItem":`默认连接`,"settings.source.setDefault":`设为默认连接`,"settings.source.removeProfile":`移除连接`,"settings.source.renameProfile":`重命名连接`,"settings.source.assetInstallModeMenu":`资源下载方式`,"settings.source.assetInstallModeShort.local-download-upload":`本地上传`,"settings.source.assetInstallModeShort.remote-download":`远端下载`,"settings.source.showInSidebar":`在侧边栏中显示`,"settings.source.renameSource":`重命名`,"settings.source.connectAndIdentify":`连接`,"settings.source.deleteProfileRecord":`删除连接记录`,"settings.source.deleteConnectionRecord":`删除连接记录`,"settings.source.pendingMigrationCount":`{count} 个待处理`,"settings.source.removeAllLines":`移除全部连接`,"settings.source.removeSourceServerTitle":`移除这个设备?`,"settings.source.removeSourceServerDescription":`将删除本机上的全部连接、凭据和项目记录,不影响远端服务与数据。`,"settings.source.connectionPreferences":`连接偏好`,"settings.source.startupAutoReconnect":`启动时自动重连`,"settings.source.startupAutoReconnectDescription":`启动时自动重连最近 7 天内在线过的设备。修改在下次启动时生效。`,"settings.source.updateAvailableVersion":`可更新到 v{version}`,"settings.source.error.source-server-remove-callback-missing":`无法移除设备:桌面连接清理未就绪。`,"settings.source.error.source-server-remove-callback-failed":`无法移除设备:连接清理失败,设备记录未删除。`,"settings.source.error.source-server-remove-persist-failed":`设备已断开,但本机记录未能完整删除,请稍后重试。`,"settings.source.identityChangeTitle":`检测到连接目标身份已变化`,"settings.source.identityChangeDescription":`确认后会创建新的设备记录和独立连接记录;旧任务历史仍保留在原设备下。`,"settings.source.identityChangeConfirm":`作为新设备使用`,"settings.source.removeProfileTitle":`移除这条连接?`,"settings.source.removeProfileDescription":`将从当前设备移除 {name} 及其保存的凭据。`,"settings.source.connect":`连接`,"settings.source.reconnect":`重新连接`,"settings.source.disconnect":`断开`,"settings.source.newTask":`新任务`,"settings.source.update":`更新`,"settings.source.updateNow":`立即更新`,"sourceServer.updateAvailableToast":`{source} 有可用更新
8
8
  设备 {current} → {available}。`,"sourceServer.updateRequiredToast":`{source} 必须更新后才能连接
9
9
  当前 {current},需要 {available}。`,"sourceServer.updateStartedToast":`正在更新 {source}…`,"sourceServer.updateCompletedToast":`{source} 已更新并重新连接。`,"sourceServer.updateFailedToast":`{source} 更新失败,请在远程设备中查看日志并重试。`,"sourceServer.controllerUpdateAvailableToast":`{source} 需要更新 ZCode
@@ -35,7 +35,7 @@ Desktop {current} → {available},请更新 ZCode 后重新连接。`,"setting
35
35
  Stay in control, wherever you are.`,"occupationOnboarding.title":`What do you do?`,"occupationOnboarding.description":`Choose the closest match to your everyday work.`,"occupationOnboarding.office":`Office professional`,"occupationOnboarding.developer":`Software / Data / AI`,"occupationOnboarding.student":`Students / Teaching / Research`,"occupationOnboarding.other":`Other professions`,"occupationOnboarding.preferences":`Personalize your work assistant`,"occupationOnboarding.preferencesDescription":`Choose which features to enable.`,"occupationOnboarding.migration":`Migrate conversations`,"occupationOnboarding.migrationDescription":`Migrate conversation history from Claude Code`,"occupationOnboarding.memory":`Enable Workspace Memory`,"occupationOnboarding.memoryDescription":`Let ZCode remember your preferences and work context.`,"occupationOnboarding.suggestions":`Enable proactive task suggestions`,"occupationOnboarding.suggestionsDescription":`Show suggestions in new conversations. Click to fill the composer.`,"occupationOnboarding.close":`Exit onboarding`,"startup.global.silent":`Starting ZCode`,"startup.global.upgrading":`Upgrading local data`,"startup.global.initializing":`Initializing local data`,"startup.global.waiting":`Waiting for database preparation`,"startup.global.saving":`Saving updates`,"startup.global.finishing":`Finishing startup`,"startup.global.servicesFailed":`Local data is ready, but app services failed to start. Copy the diagnostics, then exit and reopen ZCode.`,"startup.global.starting":`Preparing local data`,"startup.global.preparing_host_storage":`Preparing task index`,"startup.global.preparing_session_storage":`Preparing chat history`,"startup.global.starting_services":`Starting ZCode`,"startup.global.ready":`Local data is ready`,"startup.global.failed":`Startup preparation failed`,"startup.global.help":`ZCode will open when preparation finishes. Large histories may take longer. Please keep the app running.`,"startup.global.diagnostic":`Diagnostic ID`,"startup.global.copy":`Copy diagnostics`,"startup.global.exit":`Exit`,"startup.global.copied":`Copied`,"startup.global.copyFailed":`Copy failed. Please note the diagnostic ID.`,"startup.global.error.storage_full":`Storage is full or a capacity limit was reached. Check the drives containing your data and system temporary directories. Free space or adjust the quota, then retry.`,"startup.global.error.permission_denied":`The database is not writable. Check permissions for the data and temporary directories, then retry.`,"startup.global.error.io_error":`Database I/O failed. Check the disk or storage connection, then retry.`,"startup.global.error.out_of_memory":`A memory allocation failed while preparing data. Close other apps to free memory, then retry.`,"startup.global.error.corrupt":`The database appears damaged. Preserve your data and diagnostics and contact support. Do not delete the database.`,"startup.global.error.checksum_mismatch":`The migration records do not match this app version. Preserve your data and diagnostics and contact support.`,"startup.global.error.open_failed":`The database could not be opened. Check that the data directory exists and is accessible, then retry.`,"startup.global.error.lock_timeout":`Waiting for the database write lock timed out. Another ZCode or CLI process may be updating data. Retry after it finishes.`,"startup.global.error.sql_failed":`Preparation did not finish. Copy the diagnostics and check the logs. Resolve the issue, then retry manually. The app will not retry automatically.`,"startup.global.error.startup_status_timeout":`No startup status was received. Exit and reopen ZCode. If it fails again, provide the diagnostics to support.`,"startup.global.error.transport_closed":`The preparation process exited or disconnected. Exit and reopen ZCode to check the migration records again.`,"startup.global.error.unsupported_runtime":`The configured Agent does not support storage preparation. Restore the bundled Agent, then reopen ZCode.`,"startup.database.checking":`Checking history`,"startup.database.waiting_for_lock":`Waiting for another window to prepare data`,"startup.database.migrating":`Upgrading history`,"startup.database.committing":`Saving the upgrade`,"startup.database.ready":`History is ready`,"startup.database.failed":`Could not prepare history`,"startup.database.help":`The workspace will open when ready. Keep the app running.`,"startup.database.failedHelp":`The original database has been preserved. Check diagnostic logs, resolve the issue, and retry.`,"startup.database.elapsed":`Elapsed: {minutes} min {seconds} sec`,"startup.database.longRunning":`Large histories can take longer. The app is still waiting for the database to finish.`,"rewards.title":`Rewards`,"rewards.menuTitle":`Refer a friend`,"rewards.menuBadge":`Rewards`,"rewards.loadFailed":`Unable to load this page. Please retry.`,"rewards.openWebsite":`Open website`,"bashOutput.open":`View output for {title}`,"bashOutput.fullFile":`Full output file`,"bashOutput.retry":`Retry`,"bashOutput.empty":`No output yet`,"bashOutput.status.running":`Running`,"bashOutput.error.unavailable":`Task or session is unavailable`,"bashOutput.error.unsupported":`This runtime does not support background output`,"bashOutput.error.read_failed":`Could not read the output file`,"bashOutput.error.query_failed":`Could not connect to the task runtime`,"purchase.entry.loading":`Loading plans…`,"purchase.entry.retry":`Could not load plans. Retry`,"bots.runtime.deliveryFailed":`Bot reply delivery failed`,"bots.runtime.deliveryFailedDescription":`The message could not be delivered. Share the details below for troubleshooting. This notice clears after the next successful send.`,"chat.selections.previewSideBlocked":`Resolve pending requests in the main task or side conversation first.`,"chat.selections.previewSideUnavailable":`Use an editable main task that supports side conversations.`,"chat.selections.file":`{name} · Selection`,"chat.selections.mixedCount":`{count} selections`,"chat.previewCards.openExternalFailed":`Could not open this file in the browser`,"settings.modelProvider.connectionMode.switchToStartPlan":`Switch to Start Plan`,"chat.composer.contextSearchHint":`Type to search plugins, files, and chats`,"chat.composer.contextShortcut":`Add context`,"chat.composer.capabilityShortcut":`Choose capabilities`,"chat.composer.skillShortcut":`Choose skills`,"chat.composer.addSection":`Add`,"chat.composer.addWorkflow":`Workflow`,"chat.composer.attachment":`Attachments`,"chat.permission.feedback.ariaLabel":`Optional feedback for the model when denying`,"chat.permission.feedback.placeholder":`Tell the model what to do instead...`,"offPeak.chatCreated.defaultTitle":`Idle-time task`,"offPeak.chatCreated.queued":`Queued for idle-time compute`,"offPeak.chatCreated.queuedAt":`#{position} in queue`,"offPeak.chatCreated.open":`Go to idle-time tasks`,"settings.computerUse.disabledToast":`Computer Use is disabled. Existing conversations require a ZCode restart to take effect.`,"settings.modelProvider.connectionUnavailableNotice":`The current plan is unavailable.`,"settings.modelProvider.switchConnection":`Switch to “{connection}”`,"settings.modelProvider.connectionSuggestionStale":`Plan availability has changed. Please select a connection in model settings.`,"settings.modelProvider.connectionSwitchFailed":`Could not switch plans. The original connection is unchanged. Please retry.`,"settings.modelProvider.connectionUnavailable":`The selected connection is unavailable. Please choose another connection.`,"settings.modelProvider.navigationUnavailable":`The requested provider is unavailable. Please choose another provider.`,"marketingTouch.idle":`Ready`,"marketingTouch.verifying":`Verifying…`,"marketingTouch.submitting":`Processing…`,"marketingTouch.preparing":`Succeeded. Preparing the result…`,"marketingTouch.failed":`The action failed. Please try again later.`,"marketingTouch.uncertain":`The result could not be confirmed. Check your benefits later. This action will not be retried this session to avoid duplicate submissions.`,"marketingTouch.succeeded":`Action succeeded`,"workspace.context.lastActivity":`Last active {time}`,"bots.privateDelivery.retry":`Resend reply`,"bots.privateDelivery.retryHint":`Resends the full reply as text. Content already received may be duplicated.`,"bots.privateDelivery.retryFailed":`Sending failed. Check the error details before retrying.`,"bots.boundGroups.title":`Bound groups`,"bots.boundGroups.count":`{count} topics`,"bots.boundGroups.countOne":`{count} topic`,"bots.boundGroups.toggle":`Enable group: {name}`,"bots.boundGroups.loading":`Loading groups…`,"bots.boundGroups.empty":`No bound groups. Mention the bot with /enable in a group to add it here.`,"bots.boundGroups.botOff":`The bot is off. Enable it to change group switches.`,"bots.boundGroups.loadFailed":`Could not load groups. Refresh to retry.`,"bots.boundGroups.saveFailed":`The group change could not be confirmed. Refresh and retry.`,"bots.boundGroups.refresh":`Refresh`,"bots.topic.open":`Open topic in Feishu / Lark`,"bots.topic.details":`Topic details`,"bots.topic.loading":`Loading context…`,"bots.topic.unavailable":`Context is unavailable. Try again later.`,"bots.topic.coverage":`{count} discussion messages archived; only the read range is covered.`,"bots.topic.gap":`{count} discussion messages archived; some history is not covered.`,"bots.topic.historyOn":`The next mention reads new topic discussion.`,"bots.topic.historyOff":`Topic history is off; only the current request and explicit references are submitted.`,"bots.topic.context":`Turn background and summary`,"bots.topic.correction":`Submit corrections as a new request. Original records are retained.`,"bots.group.syncing":`Replies sync to the Feishu/Lark group`,"bots.group.paused":`Group sync paused`,"bots.group.sharedWorkspace":`Members share workspace files.`,"bots.group.deliveryUnknown":`Feishu delivery unconfirmed`,"bots.group.deliveryFailed":`Feishu delivery failed`,"bots.group.confirmReceived":`Checked: received`,"bots.group.confirmNotReceived":`Checked: not received`,"bots.group.resend":`Resend result`,"bots.group.provider.feishu":`Feishu`,"manualClaimPlan.banner.aria":`Claimable trial plan`,"manualClaimPlan.banner.tag":`Limited-time offer`,"manualClaimPlan.banner.unit.tokens":`TOKENS`,"manualClaimPlan.banner.subtitle.daily":`{model} daily bonus`,"manualClaimPlan.banner.subtitle.oneTime":`{model} one-time bonus`,"manualClaimPlan.claim.ticket.benefit":`{model} {amount} {unit}`,"manualClaimPlan.claim.ticket.benefit.daily":`{model} daily {amount} {unit}`,"manualClaimPlan.banner.period.daily":`Daily`,"manualClaimPlan.banner.period.oneTime":`One-time`,"manualClaimPlan.banner.bonus":`bonus`,"manualClaimPlan.banner.close":`Close offer`,"manualClaimPlan.banner.claim":`Claim`,"manualClaimPlan.banner.dismissConfirm.title":`You’ll miss a claim opportunity`,"manualClaimPlan.banner.dismissConfirm.description":`Claim opportunities for this offer are limited. If you close it, you may miss this opportunity. Would you like to claim it now?`,"manualClaimPlan.banner.dismissConfirm.claim":`Claim now`,"manualClaimPlan.banner.dismissConfirm.close":`Close anyway`,"manualClaimPlan.claim.success.title":`You now have access to {plan}`,"manualClaimPlan.claim.success.description":`Start Plan is ready to use.`,"manualClaimPlan.claim.success.description.prefix":``,"manualClaimPlan.claim.success.description.suffix":` is ready to use.`,"manualClaimPlan.claim.success.pending.description.prefix":``,"manualClaimPlan.claim.success.pending.description.beforeTime":` will be available on `,"manualClaimPlan.claim.success.pending.description.afterTime":`.`,"manualClaimPlan.claim.failure.title":`Claim failed`,"manualClaimPlan.claim.failure.notFound":`This plan does not exist.`,"manualClaimPlan.claim.failure.unavailable":`This offer has ended or is unavailable.`,"manualClaimPlan.claim.failure.alreadyClaimed":`You have already claimed this plan.`,"manualClaimPlan.claim.failure.ineligible":`Your account or app version is not eligible for this offer.`,"manualClaimPlan.claim.failure.quotaExhausted":`Today's claim quota has been exhausted.`,"manualClaimPlan.claim.failure.quotaExhausted.nextTime":`Today's claim quota has been exhausted. Please check back next time.`,"manualClaimPlan.claim.failure.quotaExhausted.tomorrow":`Today's claim quota has been exhausted. Please try again tomorrow.`,"manualClaimPlan.claim.failure.invalidRequest":`Invalid claim request. Refresh and try again.`,"manualClaimPlan.claim.failure.loginRequired":`Sign in before claiming this plan.`,"manualClaimPlan.claim.failure.generic":`Claim failed. Please try again later.`,"manualClaimPlan.claim.startUsingUnavailable":`Start Plan is not ready yet. Your model settings were not changed; refresh and try again later.`,"manualClaimPlan.claim.dialog.confirm":`Start using`,"manualClaimPlan.claim.dialog.modelSettings":`View plan`,"manualClaimPlan.claim.dialog.acknowledge":`Got it`,"manualClaimPlan.claim.dialog.startsAt":`Starts`,"manualClaimPlan.claim.dialog.endsAt":`Valid until`,"manualClaimPlan.claim.dialog.replay":`Replay ticket animation`,"manualClaimPlan.claim.share.label":`Copy & share`,"manualClaimPlan.claim.share.close":`Close sharing`,"manualClaimPlan.claim.share.getImage":`Get image`,"manualClaimPlan.claim.share.saveImage":`Save image`,"manualClaimPlan.claim.share.copyImage":`Copy image`,"manualClaimPlan.claim.share.copyText":`Copy text`,"manualClaimPlan.claim.share.copyTextSucceeded":`Text copied`,"manualClaimPlan.claim.share.copyImageSucceeded":`Image copied`,"manualClaimPlan.claim.share.actionFailed":`Share action failed. Please try again.`,"manualClaimPlan.claim.share.twitterText":`I claimed {subtitle} on ZCode. Download and install ZCode to claim yours. https://zcode.z.ai`,"manualClaimPlan.claim.share.twitterTextLabel":`Twitter/X post text`,"common.loading":`Loading...`,"common.listSeparator":`, `,"common.generating":`Generating...`,"common.connecting":`Connecting...`,"common.cancel":`Cancel`,"common.retry":`Retry`,"common.close":`Close`,"common.gotIt":`Got it`,"chat.plan.removeMarker":`Remove Plan from the next submission`,"common.confirm":`Confirm`,"common.more":`More`,"common.refresh":`Refresh`,"common.open":`Open`,"common.save":`Save`,"common.saveChanges":`Save changes`,"common.saving":`Saving...`,"common.delete":`Delete`,"conversationShare.popover.title":`Share conversation`,"conversationShare.range.label":`Shared content`,"conversationShare.range.all":`All completed turns · {count}`,"conversationShare.range.selected":`{count} selected`,"conversationShare.range.exceeded":`{count} rows over limit`,"conversationShare.range.locate":`Locate conversation`,"conversationShare.range.adjust":`Adjust`,"conversationShare.range.confirm":`Confirm`,"conversationShare.trigger":`Share`,"conversationShare.artifact.notIncluded":`This artifact was not included`,"conversationShare.artifact.sourceUnavailable":`Source unavailable`,"conversationShare.artifact.unsupported":`Unsupported by this share`,"conversationShare.artifact.limitExceeded":`Share size limit exceeded`,"conversationShare.artifact.dashboardUnavailable":`Dashboard unavailable`,"conversationShare.artifact.dashboardInvalid":`Unable to display dashboard`,"conversationShare.artifact.openDownload":`Open / download`,"conversationShare.artifact.openFile":`Open file`,"conversationShare.artifact.resourceUnavailable":`Resource unavailable`,"conversationShare.artifact.previewFailed":`Preview failed; try opening the file`,"conversationShare.artifact.loading":`Loading…`,"conversationShare.workflowUnavailable":`Workflow snapshot unavailable`,"conversationShare.workflowPartial":`Some workflow data is unavailable in this snapshot`,"conversationShare.capturedSnapshot":`Snapshot at sharing`,"conversationShare.readonly.history":`Reasoning`,"conversationShare.readonly.computerUse":`Computer use`,"conversationShare.readonly.explore":`Explore`,"conversationShare.readonly.execute":`Execute`,"conversationShare.readonly.changes":`Changes`,"conversationShare.readonly.artifactPreview":`Download file`,"conversationShare.readonly.markerCompact":`Context compacted`,"conversationShare.readonly.markerModelChange":`Model switched`,"conversationShare.readonly.unsupportedRows":`Some content requires a newer version of ZCode`,"conversationShare.workflowSnapshot":`Snapshot at tool execution; does not update live`,"conversationShare.shareTitle":`Share title`,"conversationShare.permissionLabel":`Access`,"conversationShare.permission.private":`Only me`,"conversationShare.permission.linkViewer":`Link: view only`,"conversationShare.permission.linkViewerSummary":`Link: view only`,"conversationShare.permission.linkEditor":`Link: import & continue`,"conversationShare.permission.linkEditorSummary":`Link: import & continue`,"conversationShare.permission.privateSummary":`Only me`,"conversationShare.openLink":`Open share page`,"conversationShare.result.title":`Share created`,"conversationShare.result.openInBrowser":`View in browser`,"conversationShare.result.dismiss":`Close share result`,"conversationShare.generatingLink":`Generating share link`,"conversationShare.copyLink":`Copy link`,"conversationShare.copySucceeded":`Share link copied`,"conversationShare.publishSucceeded":`Share link created`,"conversationShare.publishSucceededWithSkips":`Share link created; {count} file(s) were skipped`,"conversationShare.copyFailed":`Could not copy share link`,"conversationShare.error.serviceUnavailable":`The sharing service is temporarily unavailable. Try again later.`,"conversationShare.error.safetyCheckRejected":`Content did not pass the safety check. Adjust the selected conversation or files.`,"conversationShare.error.safetyCheckUnavailable":`The safety check service is unavailable. Try again later.`,"conversationShare.error.preparationNotFound":`Share preparation is no longer available. Generate a new link.`,"conversationShare.error.preparationExpired":`Share preparation expired. Generate a new link.`,"conversationShare.import.notAllowed":`This share is view-only. Ask the author to enable importing.`,"conversationShare.import.unsupportedVersion":`This share format is unsupported. Update ZCode.`,"conversationShare.issue.ruleLabel":`Validation rule`,"conversationShare.issue.pathLabel":`Field path`,"conversationShare.issue.fieldLabel":`Field`,"conversationShare.issue.rowLabel":`Content row (starting at 1)`,"conversationShare.issue.rowKindLabel":`Content type`,"conversationShare.publishFailed":`Could not generate the share link. Try again.`,"conversationShare.error.authenticationRequired":`Sign in to ZCode before sharing. If you're already signed in, sign in again and retry.`,"conversationShare.error.featureDisabled":`Sharing is currently unavailable. Try again later.`,"conversationShare.error.artifactNotAllowed":`A previewed file type is not supported for sharing. Deselect that conversation and retry.`,"conversationShare.error.limitExceeded":`The selected conversation or its files exceed the sharing limit. Select fewer conversations.`,"conversationShare.error.rateLimited":`Too many share attempts. Wait a moment, then try again.`,"conversationShare.error.invalidContractHttp":`The share service returned HTTP {status}. Retry, and provide the error details if the problem persists.`,"conversationShare.error.invalidContract":`ZCode could not read the share service’s response, so sharing could not finish. Try again later. If it still fails, copy the request ID from Error details and contact support.`,"conversationShare.issue.clientRequestIdLabel":`Client request ID`,"conversationShare.issue.codeLabel":`Error code`,"conversationShare.error.network":`The share connection was interrupted or timed out. Check your network and retry.`,"conversationShare.error.safetyCheckTimeout":`The share safety check took too long. Try again later.`,"conversationShare.error.invalidSelection":`The selected conversation changed. Reopen the share panel and select it again.`,"conversationShare.error.invalidConversation":`The selected conversation cannot be published. Review the specific issues and retry.`,"conversationShare.error.runningTurn":`A selected turn is still running. Deselect it and wait for it to finish before sharing.`,"conversationShare.error.streamingRow":`A selected response is still streaming. Wait for the turn to finish before sharing.`,"conversationShare.error.activeToolCall":`A selected tool call is still active. Wait for it to finish before sharing.`,"conversationShare.error.activeSubagent":`A selected subtask is still running. Wait for it to finish before sharing.`,"conversationShare.error.inputAttachment":`A user-input attachment could not be shared. Check that it still exists and try again.`,"conversationShare.error.inlineToolImage":`A selected turn contains an unsupported inline tool image. Deselect that turn and retry.`,"conversationShare.error.unsupportedTimeline":`A selected turn contains an unsupported branch or restore record. Deselect that turn and retry.`,"conversationShare.error.unsafeUrl":`The selected content contains a local or inline file URL. Remove it before sharing.`,"conversationShare.error.missingProductTurn":`The selected conversation is incomplete. Reopen the share panel and select the turn again.`,"conversationShare.error.artifactTypeNotAllowed":`A previewed file type is not allowed for sharing. Deselect its turn and retry.`,"conversationShare.error.artifactExtensionMissing":`A previewed file has no valid extension. Check the file and retry.`,"conversationShare.error.artifactOutsideWorkspace":`A previewed file is outside the current workspace. Regenerate or move it, then retry.`,"conversationShare.error.artifactChanged":`A previewed file changed before sharing. Regenerate the preview file and retry.`,"conversationShare.error.artifactReadFailed":`A previewed file could not be read. Check that it still exists and is accessible, then retry.`,"conversationShare.error.artifactSizeLimit":`A file exceeds the per-file size limit. Deselect that turn or use a smaller file, then retry.`,"conversationShare.error.artifactManifest":`The preview file manifest is incomplete. Regenerate the file and refresh the share panel.`,"conversationShare.error.payloadLimit":`The selected conversation or files exceed the sharing limit. Select less and retry.`,"conversationShare.error.disclosureRequired":`Review and confirm the shared content before creating the link.`,"conversationShare.error.uploadFailed":`Upload is incomplete or the share state changed. Try again.`,"conversationShare.error.connectionUnavailable":`Desktop connection is not ready. Reopen the share panel and try again.`,"conversationShare.error.noShareableContent":`The current selection has no shareable content. Select different turns.`,"conversationShare.error.summary":`Share failed: {count} issue(s) found. See the share panel for details.`,"conversationShare.issue.artifactTypeNotAllowed":`Turn {turnOrdinal}: {artifactDisplayName} ({artifactType}) cannot be shared and will be skipped. Supported types: {allowedFormats}.`,"conversationShare.issue.artifactExtensionMissing":`Turn {turnOrdinal}: the preview file has no valid extension. Check the file name and try again.`,"conversationShare.issue.artifactOutsideWorkspace":`Turn {turnOrdinal}: the preview file is outside the current workspace. Move or regenerate it and try again.`,"conversationShare.issue.artifactChanged":`Turn {turnOrdinal}: {artifactDisplayName} changed while it was being read. Regenerate the file and try again.`,"conversationShare.issue.contentUnavailable":`Some workflow content is shared as a summary. See the availability notes in the share.`,"conversationShare.issue.artifactReadFailed":`Turn {turnOrdinal}: {artifactDisplayName} could not be read. Check that it still exists and is accessible.`,"conversationShare.issue.inputAttachment":`Turn {turnOrdinal} contains a user-input attachment, which is not supported in this version. Deselect this turn.`,"conversationShare.issue.inputAttachmentUnavailable":`Turn {turnOrdinal} contains a user-input attachment that no longer exists or cannot be read.`,"conversationShare.issue.inlineToolImage":`Turn {turnOrdinal} contains an inline tool image that cannot be included in a public share.`,"conversationShare.issue.runningTurn":`Turn {turnOrdinal} is still running. Wait for it to finish or deselect it.`,"conversationShare.issue.streamingRow":`Turn {turnOrdinal} is still generating. Wait for it to finish or deselect it.`,"conversationShare.issue.activeToolCall":`Turn {turnOrdinal} has an unfinished tool call. Deselect this turn.`,"conversationShare.issue.activeSubagent":`Turn {turnOrdinal} has a running subtask. Wait for it to finish or deselect it.`,"conversationShare.issue.unsupportedTimeline":`Turn {turnOrdinal} contains a timeline record that cannot be included in a public share.`,"conversationShare.issue.noShareableContent":`The current selection has no shareable content. Select different turns.`,"conversationShare.issue.unsafeUrl":`Turn {turnOrdinal} contains a local or inline file address, which is not supported. Remove it and try again.`,"conversationShare.issue.missingProductTurn":`The selection is missing a complete turn identity. Re-select the conversation.`,"conversationShare.issue.invalidSelection":`The selected turns changed. Return to selection and choose them again.`,"conversationShare.issue.invalidConversation":`The selected conversation is incomplete. Deselect the affected turn(s) and try again.`,"conversationShare.issue.staleConversation":`The conversation changed while the share was prepared. Return to selection and try again.`,"conversationShare.issue.rowsLimit":`The conversation has {actual} rows, above the limit of {limit}. Reduce the selected turns.`,"conversationShare.issue.artifactCountLimit":`The conversation has {actual} artifacts, above the limit of {limit}. Reduce the selected turns.`,"conversationShare.issue.artifactSizeLimit":`{artifactDisplayName} is {actual}, above the per-file limit of {limit}. Deselect the turn or regenerate a smaller file.`,"conversationShare.issue.artifactTotalSizeLimit":`Artifacts total {actual}, above the limit of {limit}. Reduce artifacts or deselect the affected turn(s).`,"conversationShare.issue.payloadSizeLimit":`The share request is {actual}, above the limit of {limit}. Reduce the selected turns or artifacts.`,"conversationShare.issue.artifactManifest":`The preview artifact manifest is duplicated or incomplete. Regenerate files and refresh the share panel.`,"conversationShare.issue.uploadIncomplete":`The upload acknowledgement for {artifactDisplayName} does not match the file. Ensure it did not change and try again.`,"conversationShare.issue.invalidServiceResponse":`The share service returned an unreadable response. Try again later.`,"conversationShare.issue.unknown":`Sharing failed; the cause could not be determined. Retry, and provide the error details if it persists.`,"conversationShare.issue.details":`Error details`,"conversationShare.issue.requestIdLabel":`Server request ID`,"conversationShare.issue.requestId":`Server request ID: {requestId}`,"conversationShare.issue.requestIdMissing":`No server request ID was received.`,"conversationShare.issue.copyRequestId":`Copy request ID`,"conversationShare.issue.deselectTurn":`Deselect this turn`,"conversationShare.issue.retryPreflight":`Check again`,"conversationShare.issue.more":`{count} more issue(s) not shown.`,"conversationShare.warning.summary":`Shared successfully. {count} file(s) were skipped and are not included in the link.`,"conversationShare.warning.artifactSkipped":`Turn {turnOrdinal}: {artifactDisplayName} could not be read, so it was skipped. If it should have been shared, regenerate the file and share again.`,"conversationShare.warning.inputAttachmentSkipped":`Turn {turnOrdinal}: the input attachment is not included in the share; the turn's text is still shared.`,"conversationShare.warning.inputAttachmentUnavailable":`Turn {turnOrdinal}: {artifactDisplayName} no longer exists or cannot be read and was skipped.`,"conversationShare.warning.artifactTypeSkipped":`Turn {turnOrdinal}: {artifactDisplayName} ({artifactType}) is not supported and was skipped. Supported types: {allowedFormats}.`,"conversationShare.warning.artifactChangedSkipped":`Turn {turnOrdinal}: {artifactDisplayName} changed before sharing and was skipped.`,"conversationShare.partial.panelLabel":`Select conversations to share`,"conversationShare.partial.empty":`There are no completed conversations to share`,"conversationShare.preflight.reviewIssues":`Review share issues`,"conversationShare.preflight.reviewSkipped":`Files will be skipped · Details`,"conversationShare.preflight.reviewDeferred":`Some files need checking · Details`,"conversationShare.partial.preflightChecking":`Checking share content…`,"conversationShare.partial.preflightUnavailable":`Unable to check this share. Follow the instructions below.`,"conversationShare.partial.preflightBlocked":`Some content cannot be shared. Fix the issues below first.`,"conversationShare.partial.preflightSkipped":`{count} file(s) will not be included in the share. They will be skipped if you continue.`,"conversationShare.partial.preflightDeferred":`Some files cannot be checked yet. They will be verified again when publishing.`,"conversationShare.publish.failedTitle":`Share publication failed`,"conversationShare.publish.failedDescription":`Review the failure reason and error details below.`,"conversationShare.publish.retry":`Retry generation`,"conversationShare.publish.footerMeta":`Share {selected} conversation turn(s), {access}`,"conversationShare.publish.failedFooter":`Your selection is preserved. Review the error and retry.`,"conversationShare.partial.selectAll":`Select all`,"conversationShare.partial.selectionCount":`{selected}/{total}`,"conversationShare.partial.cancel":`Cancel`,"conversationShare.partial.confirm":`Create share link`,"conversationShare.partial.publishing":`Generating…`,"conversationShare.progress.collecting":`Collecting conversation and artifacts…`,"conversationShare.progress.uploading":`Uploading artifacts…`,"conversationShare.progress.checking":`Confirming publication…`,"conversationShare.progress.collectingFailed":`Collecting conversation and artifacts failed`,"conversationShare.progress.uploadingFailed":`Uploading artifacts failed`,"conversationShare.progress.checkingFailed":`Publication confirmation failed`,"conversationShare.phase.collecting":`Prepare content`,"conversationShare.phase.uploading":`Upload artifacts`,"conversationShare.phase.checking":`Confirm publication`,"conversationShare.phase.collectingComplete":`Conversation and artifacts ready`,"conversationShare.phase.uploadingComplete":`Artifacts uploaded`,"conversationShare.phase.uploadingActive":`Uploading {completed} / {total}`,"conversationShare.phase.collectingPending":`Waiting to start`,"conversationShare.phase.uploadingPending":`Waiting for preparation`,"conversationShare.phase.checkingPending":`Waiting for upload`,"conversationShare.phase.failed":`Failed`,"conversationShare.disclosure.description":`No automatic checks.`,"conversationShare.disclosure.checkbox":`I've checked: no sensitive info.`,"conversationShare.disclosure.scope.trigger":`What to check`,"conversationShare.disclosure.scope.title":`Review scope`,"conversationShare.disclosure.scope.reviewLabel":`Review these areas`,"conversationShare.disclosure.scope.conversation":`Conversation content: user messages, assistant replies, and task titles`,"conversationShare.disclosure.scope.tools":`Tool inputs and outputs: commands, parameters, and results`,"conversationShare.disclosure.scope.generated":`Generated content: code, files, and preview content`,"conversationShare.disclosure.scope.sensitiveLabel":`Check carefully`,"conversationShare.disclosure.scope.sensitive":`Credentials, tokens, passwords, private keys, internal addresses, and personal information`,"conversationShare.disclosure.scope.note":`The system does not scan or redact this content automatically. Review each item before sharing.`,"conversationShare.import.source":`Imported from share: {title}`,"conversationShare.import.dividerLabel":`Imported from share`,"conversationShare.import.fallbackRemoteWorkspace":`Imported from share: {title}. The current workspace is remote, which import does not support yet, so the session was created in the local workspace {workspacePath}.`,"conversationShare.import.fallbackDefaultWorkspace":`Imported from share: {title}. No target workspace was available, so the session was created in the default workspace {workspacePath}.`,"conversationShare.import.downloading":`Downloading shared files: {completed}/{total}`,"conversationShare.import.installing":`Installing shared files`,"conversationShare.import.committing":`Creating the shared conversation`,"conversationShare.import.complete":`Share import complete`,"conversationShare.import.loginRequired":`This share cannot be imported anonymously. Sign in to ZCode and try again`,"conversationShare.import.notFound":`Share not found or access denied. Check the link and your account.`,"conversationShare.import.expired":`The share expired. Ask the author to create a new one`,"conversationShare.import.integrityFailed":`Share verification failed. Ask the author to create a new link.`,"conversationShare.import.failed":`Share import failed. Try again later; if this persists, contact support.`,"conversationShare.import.integrityFailedWithArtifact":`Verification failed for shared file {artifactDisplayName}; import stopped. Ask the author to create a new link.`,"conversationShare.import.failedWithArtifact":`Downloading shared file {artifactDisplayName} failed. Check your network and retry.`,"conversationShare.import.retry":`Retry`,"settings.resourceGroup.item.one":`{count} item`,"settings.resourceGroup.item.other":`{count} items`,"pluginCreator.add":`Add`,"pluginCreator.create":`Create plugin`,"pluginCreator.addMarketplace":`Add plugin marketplace`,"pluginCreator.unavailable":`Plugin Creator is unavailable. Check the connection, then enable or restore Plugin Creator in the marketplace and retry.`,"settings.create.action":`New`,"settings.resourceActions.import":`Import`,"settings.resourceActions.export":`Export`,"settings.resourceActions.more":`More actions`,"carousel.previousSlide":`Previous slide`,"carousel.nextSlide":`Next slide`,"quickPick.title":`Command palette`,"quickPick.description":`Search and run commands available in this workspace.`,"quickPick.placeholder":`Type a command`,"quickPick.empty":`No matching commands.`,"quickPick.commandFailed":`Command failed: {error}`,"quickPick.find.title":`Find in task`,"quickPick.find.description":`Search messages and file changes in the current task.`,"quickPick.find.results":`{current} / {total} results`,"quickPick.find.placeholder.conversation":`Search messages...`,"quickPick.find.placeholder.changes":`Search file changes...`,"quickPick.find.noResults.conversation":`No messages found`,"quickPick.find.noResults.changes":`No file changes found`,"quickPick.find.empty.conversation":`Type to search messages`,"quickPick.find.empty.changes":`Type to search changed files`,"quickPick.find.previous":`Previous result`,"quickPick.find.next":`Next result`,"quickPick.find.scope.conversation":`Search messages`,"quickPick.find.scope.changes":`Search file changes`,"quickPick.find.scope.tooltip":`Switch search scope messages/file`,"quickPick.section.suggested":`Suggested`,"quickPick.section.recommended":`Recommended`,"quickPick.section.chat":`Chat`,"quickPick.section.navigation":`Navigation`,"quickPick.section.panels":`Panels`,"quickPick.section.configure":`Configure`,"quickPick.section.panel":`Panels`,"quickPick.section.config":`Configuration`,"quickPick.section.app":`Application`,"quickPick.command.newTask":`New task`,"quickPick.command.openWorkspace":`Open workspace`,"quickPick.command.openFile":`Search files`,"quickPick.command.settings":`Settings`,"quickPick.command.previousConversation":`Previous task`,"quickPick.command.nextConversation":`Next task`,"quickPick.command.find":`Find tasks`,"quickPick.command.goBack":`Back`,"quickPick.command.goForward":`Forward`,"quickPick.command.switchThemeToDark":`Switch theme to dark`,"quickPick.command.switchThemeToLight":`Switch theme to light`,"quickPick.command.mcpServers":`MCP Servers`,"quickPick.command.personalization":`Personalization`,"quickPick.command.skills":`Skills`,"quickPick.command.toggleSidebar":`Toggle sidebar`,"quickPick.command.toggleTerminal":`Toggle terminal`,"quickPick.command.togglePreview":`Toggle preview`,"quickPick.command.addTerminalTab":`Add terminal tab`,"quickPick.command.addBrowserTab":`Add browser tab`,"quickPick.command.addReviewTab":`Add review tab`,"quickPick.command.toggleSidePane":`Toggle panel`,"quickPick.command.toggleBrowserPanel":`Show/hide browser panel`,"quickPick.command.toggleDiffPanel":`Switch to diff panel`,"quickPick.command.feedback":`Feedback`,"quickPick.command.myTickets":`My feedback`,"quickPick.command.community":`Community`,"quickPick.command.productDocs":`Product docs`,"quickPick.command.login":`Connect`,"quickPick.command.logout":`Disconnect`,"commandCenter.placeholder":`Search actions, tasks, or files`,"commandCenter.open":`Search`,"commandCenter.noResults":`No related results`,"commandCenter.scopeTabs":`Command center sections`,"commandCenter.scope.all":`All`,"commandCenter.scope.commands":`Actions`,"commandCenter.scope.conversations":`Tasks`,"commandCenter.scope.files":`Files`,"commandCenter.history":`Search history`,"commandCenter.clearHistory":`Clear search history`,"commandCenter.expandHistory":`Expand search history`,"commandCenter.collapseHistory":`Collapse search history`,"commandCenter.section.recentChanges":`Recent changes`,"commandCenter.section.recentTasks":`Recent tasks`,"commandCenter.section.commands":`Quick actions`,"commandCenter.section.conversations":`Tasks`,"commandCenter.section.files":`Files`,"commandCenter.empty.recentChanges":`No recent changes in current task`,"commandCenter.empty.recentTasks":`No recent tasks`,"commandCenter.moreResults":`Show more results`,"confirmDialog.taskDeleteTitle":`Delete this task?`,"confirmDialog.taskDeleteDescription":`Task “{taskTitle}” will be removed from this workspace, and the current record cannot be restored.`,"confirmDialog.archivedTaskDeleteTitle":`Delete this archived task?`,"confirmDialog.archivedTaskDeleteDescription":`Tasks will be removed from the task list and Archive.`,"taskList.deleteAllArchived":`Delete all archived tasks`,"taskList.archivedActions":`Archive actions`,"taskList.archivedTaskCount":`{count} archived tasks`,"taskList.deleteAllArchivedMenu":`Delete all archived tasks…`,"taskList.deleteAllArchivedTitle":`Delete {count} archived tasks?`,"taskList.deleteAllArchivedBusy":`Processing…`,"taskList.deleteAllArchivedUnavailable":`These projects cannot be processed right now: {projects}. Try again after reconnecting.`,"taskList.deleteAllArchivedResult":`Deleted {deleted}, skipped {skipped}, failed {failed}.`,"taskList.deleteAllArchivedError":`The operation or list refresh failed. Refresh to check the remaining tasks.`,"confirmDialog.taskArchiveTitle":`Archive this task?`,"confirmDialog.taskArchiveDescription":`Task “{taskTitle}” will move to the archive list and can still be restored later.`,"bots.title":`Bots`,"bots.description":`Connect external chats and webhooks to ZCode bots.`,"bots.listTitle":`Bots`,"bots.addBot":`New bot`,"bots.addBinding":`Add binding`,"bots.setup.chooseBot":`Choose bot`,"bots.setup.createBot":`Create bot`,"bots.setup.createAndTest":`Test and continue`,"bots.setup.bindBot":`Bind bot`,"bots.setup.setBot":`Set bot`,"bots.setup.next":`Next`,"bots.setup.finish":`Finish`,"bots.setup.bindDescription":`Create a bind code, then send the bind command in the bot private chat.`,"bots.setup.bindCodeCreating":`Creating bind code...`,"bots.setup.bindExpiresIn":`Bind code expires in {time}`,"bots.setup.bindRegenerating":`Bind code expired. Creating a new one...`,"bots.setup.refreshBindCode":`Refresh code`,"bots.setup.bound":`{count} user(s) bound. Continue to configure this bot.`,"bots.setup.bindAdvanceIn":`Continuing in {seconds}s.`,"bots.setup.allowedWorkspaces":`Allowed workspaces`,"bots.setup.allowedAll":`Allow all workspaces (*)`,"bots.setup.allowedSelected":`Allow selected workspaces only`,"bots.setup.allowedAllShort":`All`,"bots.setup.allowedSelectedShort":`Selected`,"bots.setup.allowedAllDescription":`This bot can use every configured workspace.`,"bots.setupDescription.chooseBot":`Choose the third-party chat bot to connect.`,"bots.setupDescription.createBot":`Enter bot or webhook credentials. The next step tests connectivity first.`,"bots.setupDescription.bindBot":`Create a bind code and bind the account in the bot private chat.`,"bots.setupDescription.setBot":`Set the default context, allowed workspaces, and third-party reply detail.`,"bots.setup.guide.createTitle":`Preparation guide`,"bots.setup.guide.bindTitle":`Binding guide`,"bots.setup.guide.createNote":`Prepare the third-party side first, then come back and click Test and continue.`,"bots.setup.callbackUrlTitle":`Callback URL`,"bots.setup.callbackUrlDescription.webhook":`Your external system should send inbound message callbacks to this address. Asynchronous outbound replies still use the Webhook URL entered on the left.`,"bots.setup.callbackUrlDescription.webhookBind":`Webhook binding uses the same endpoint: send a private callback request here with text = /bind <code>.`,"bots.setup.guide.telegram.create.1":`Open @BotFather in Telegram and create a new bot.`,"bots.setup.guide.telegram.create.2":`Copy the HTTP API token returned by BotFather and paste it into this form.`,"bots.setup.guide.telegram.create.3":`It helps to open the bot's private chat now because the bind command must be sent there.`,"bots.setup.guide.telegram.bind.1":`Return to Telegram and open the private chat with the bot you created.`,"bots.setup.guide.telegram.bind.2":`If the chat has never started, press Start or send any message first, then send {command}.`,"bots.setup.guide.telegram.bind.3":`Come back here after Telegram confirms the bind succeeded.`,"bots.setup.guide.weixin.create.1":`Start Weixin QR login, scan the QR code with Weixin, then confirm on your phone.`,"bots.setup.guide.weixin.create.2":`ZCode saves the bot_token returned by iLink automatically; after scanning, send any message to the bot in Weixin to activate the chat.`,"bots.setup.guide.weixin.create.3":"ZCode uses a built-in iLink client: `/ilink/bot/getupdates` for long polling and `/ilink/bot/sendmessage` for replies.","bots.setup.guide.weixin.bind.1":`Open the Weixin direct chat you want to bind.`,"bots.setup.guide.weixin.bind.2":`Send {command}.`,"bots.setup.guide.weixin.bind.3":`Come back here after the bind succeeds to finish the workspace and CLI defaults.`,"bots.setup.guide.feishu.create.1":`Create a self-built app in the Feishu/Lark developer console and enable bot capability.`,"bots.setup.guide.feishu.create.2":"Copy the App ID and App Secret, then enable persistent connection events for `im.message.receive_v1` and card actions.","bots.setup.guide.feishu.create.3":`Choose the matching Feishu or Lark domain here, then paste the credentials into the form.`,"bots.setup.guide.feishu.bind.1":`Install the app into your tenant and open a direct chat with the bot.`,"bots.setup.guide.feishu.bind.2":`Send {command} in that direct chat.`,"bots.setup.guide.feishu.bind.3":`Return here after the bind succeeds to finish the workspace and CLI defaults.`,"bots.setup.guide.webhook.create.1":`Webhook mode does not require a native bot in the third-party product; your integration only needs to POST messages to ZCode.`,"bots.setup.guide.webhook.create.2":`Set a shared secret first; add an outbound webhook URL as well if you want asynchronous replies pushed back.`,"bots.setup.guide.webhook.create.3":`Keep one stable userId per external user so binding and future context resolve to the same person.`,"bots.setup.guide.webhook.bind.1":"POST a private-message callback to ZCode's `/api/bots/webhook` endpoint.","bots.setup.guide.webhook.bind.2":'The payload should at least include this botId, a stable userId, `chatType: "private"`, and set text to {command}.',"bots.setup.guide.webhook.bind.3":"If the bot uses a secret, also send `x-zcode-bot-secret`; then return here after the bind succeeds.","bots.setup.footer.choose":`Choose a supported bot to continue.`,"bots.setup.footer.create":`Connectivity must pass before binding.`,"bots.setup.testSuccess":`Connectivity test passed`,"bots.setup.testFailed":`Connectivity test failed`,"bots.setup.footer.bind":`The bind code initially allows all workspaces; the final scope is saved next.`,"bots.setup.footer.set":`Finish enables the bot and returns it to the added list.`,"bots.setup.discardTitle":`Discard this bot?`,"bots.setup.discardDescription":`This setup flow is not finished. The temporary bot will be deleted.`,"bots.setup.discardConfirm":`Discard setup`,"bots.refresh":`Refresh bots`,"bots.namePlaceholder":`Bot name`,"bots.credentialPlaceholder":`Link bot`,"bots.weixinBotTokenPlaceholder":`Saved after QR login; you can also paste bot_token manually`,"bots.webhookSecretPlaceholder":`Webhook secret`,"bots.webhookUrlPlaceholder":`Outbound webhook URL`,"bots.feishuAppIdPlaceholder":`Feishu App ID`,"bots.feishuAppSecretPlaceholder":`Feishu App Secret`,"bots.callbackSecretPlaceholder":`Callback secret`,"bots.feishuRegistrationTitle":`Scan to create app`,"bots.feishuRegistrationDescription":`Scan to create an app and save credentials.`,"bots.feishuRegistrationButton":`Scan`,"bots.feishuRegistrationQrAlt":`Feishu app registration QR code`,"bots.feishuRegistrationScanHint":`Scan with Feishu/Lark and confirm app creation.`,"bots.feishuRegistrationScanHint.feishu":`Scan with Feishu and confirm app creation.`,"bots.feishuRegistrationScanHint.lark":`Scan with Lark and confirm app creation.`,"bots.feishuRegistrationStarted":`Feishu registration started`,"bots.feishuRegistrationSuccess":`Feishu app credentials filled`,"bots.feishuRegistrationFailed":`Failed to start Feishu registration: {error}`,"bots.feishuRegistrationExpired":`The QR code expired. Start again.`,"bots.feishuRegistration.access_denied":`Registration was denied.`,"bots.feishuRegistration.expired":`The QR code expired. Start again.`,"bots.feishuRegistration.error":`Registration failed.`,"bots.enabledToggle":`Enable {name}`,"bots.replyGranularity":`Bot reply granularity`,"bots.replyGranularity.description":`Message detail level.`,"bots.replyGranularity.assistantChanges":`Standard reply`,"bots.replyGranularity.assistantChanges.description":`Send assistant text and file changes, without tool-call progress.`,"bots.replyGranularity.assistantToolcallsChanges":`Full reply`,"bots.replyGranularity.assistantToolcallsChanges.description":`Send assistant text, tool-call progress, and file changes.`,"bots.replyGranularity.summaryChanges":`Summary reply`,"bots.replyGranularity.summaryChanges.description":`Send only the final result and change summary for quieter notifications.`,"bots.replyGranularity.streamingCard":`Streaming card`,"bots.replyGranularity.streamingCard.description":`Feishu/Lark only support Card JSON 2.0 streaming cards, with tool calls shown only as collapsed summaries.`,"bots.add":`Add`,"bots.channel.telegram":`Telegram`,"bots.channel.weixin":`Weixin`,"bots.channel.feishu":`Feishu`,"bots.channel.lark":`Lark`,"bots.channel.dingding":`DingTalk`,"bots.channel.discord":`Discord`,"bots.channel.wecom":`WeCom`,"bots.channel.webhook":`Webhook`,"bots.newBot.title":`New bot`,"bots.newBot.chooseChannel":`Choose channel`,"bots.newBot.description":`Choose where this bot will receive messages. After selecting a channel, configure credentials, binding, allowed workspaces, and defaults.`,"bots.newBot.selectProviderHint":`Choose a channel on the right to create a bot.`,"bots.newBot.fallbackName":`New bot`,"bots.newBot.comingSoon":`Coming soon`,"bots.newBot.providerDescription.telegram":`Create a bot, then bind by message.`,"bots.newBot.providerDescription.weixin":`Scan to log in; first message activates.`,"bots.newBot.providerDescription.feishu":`Scan to create an app, then bind by message.`,"bots.newBot.providerDescription.lark":`Scan to create an app, then bind by message.`,"bots.newBot.providerDescription.dingding":`DingTalk bot integration is planned.`,"bots.newBot.providerDescription.webhook":`Receive callbacks from your own system and optionally push replies back.`,"bots.newBot.providerDescription.discord":`Discord bot integration is planned.`,"bots.newBot.providerDescription.wecom":`WeCom bot integration is planned.`,"bots.empty":`No bots configured.`,"bots.name":`Bot name`,"bots.provider":`Channel`,"bots.enabled":`Enabled`,"bots.enabled.description":`Turn this bot on or off and clear its runtime state.`,"bots.credential":`Credential`,"bots.webhookSecret":`Webhook secret`,"bots.webhookUrl":`Webhook URL`,"bots.providerSettings":`Channel settings`,"bots.providerSettings.telegram":`Save the BotFather token.`,"bots.providerSettings.weixin":`Credentials are saved after scan; the first Weixin message activates the chat.`,"bots.providerSettings.feishu":`Scan to get app credentials.`,"bots.providerSettings.lark":`Scan to get app credentials.`,"bots.providerSettings.webhook":`Webhook uses a callback secret for inbound requests and an optional outbound URL for replies.`,"bots.providerSettings.discord":`Discord support is not available yet.`,"bots.providerSettings.wecom":`WeCom support is not available yet.`,"bots.telegramBotToken":`Link bot`,"bots.weixinRegistrationTitle":`Weixin QR login`,"bots.weixinRegistrationDescription":`Scan to log in, then send any message in Weixin to activate the chat.`,"bots.weixinRegistrationButton":`Scan`,"bots.weixinRegistrationQrAlt":`Weixin login QR code`,"bots.weixinRegistrationScanHint":`Scan with Weixin and confirm login.`,"bots.weixinRegistrationStarted":`Weixin QR login started`,"bots.weixinRegistrationSuccess":`Weixin bot linked. Send any message in Weixin to activate it.`,"bots.weixinActivationHint":`Send any message to the bot in Weixin; the first message will receive a welcome and command guide.`,"bots.weixinRegistrationFailed":`Failed to start Weixin QR login: {error}`,"bots.weixinRegistration.pending":`Waiting for scan`,"bots.weixinRegistration.scanned":`Scanned, waiting for confirmation`,"bots.weixinRegistration.success":`Login succeeded`,"bots.weixinRegistration.expired":`The QR code expired. Start again.`,"bots.weixinRegistration.error":`Login failed.`,"bots.weixinBotToken":`Weixin bot_token`,"bots.feishuAppSecret":`Feishu App Secret`,"bots.callbackSecret":`Callback secret`,"bots.webhookOutboundUrl":`Outbound Webhook URL`,"bots.webhookAuthHeaderName":`Auth header name`,"bots.feishuAppId":`Feishu App ID`,"bots.saveSecrets":`Save secrets`,"bots.saveSecret":`Save`,"bots.removeSecret":`Remove secret`,"bots.removeSecretFailed":`Failed to remove secret: {error}`,"bots.botToken":`Link bot`,"bots.botTokenDescription.telegram":`Save the BotFather token.`,"bots.botTokenDescription.feishu":`Scan to get app credentials.`,"bots.botTokenDescription.lark":`Scan to get app credentials.`,"bots.botTokenDescription.weixin":`Credentials are saved after scan.`,"bots.botTokenDescription.webhook":`Used to connect this webhook bot.`,"bots.telegramBotFatherQrAlt":`Telegram BotFather QR code`,"bots.telegramBotFatherScanHint":`Scan to open BotFather, create a bot, and paste the token.`,"bots.openBotFather":`Open BotFather`,"bots.connected":`Connected`,"bots.notConnected":`Not connected`,"bots.runtime.telegramLongPollingRunning":`Telegram long polling is running.`,"bots.runtime.telegramLongPollingStarting":`Telegram long polling is starting.`,"bots.runtime.telegramLongPollingStopped":`Telegram long polling is stopped.`,"bots.runtime.telegramLongPollingHandledElsewhere":`Telegram long polling is handled by another ZCode window.`,"bots.runtime.telegramTokenMissing":`Telegram bot credential is missing.`,"bots.runtime.telegramPollingFailedRetrying":`Telegram polling failed; retrying.`,"bots.runtime.feishuWebSocketStarting":`Feishu WebSocket is starting.`,"bots.runtime.feishuWebSocketConnecting":`Feishu WebSocket is connecting.`,"bots.runtime.feishuWebSocketRunning":`Feishu WebSocket is running.`,"bots.runtime.feishuWebSocketStopped":`Feishu WebSocket is stopped.`,"bots.runtime.connectionFailed":`Bot connection failed`,"bots.runtime.feishuConnectionFailed":`Feishu connection failed`,"bots.runtime.larkConnectionFailed":`Lark connection failed`,"bots.runtime.cannotConnectFeishu":`Unable to connect to Feishu`,"bots.runtime.cannotConnectLark":`Unable to connect to Lark`,"bots.runtime.feishuConnectionInterrupted":`Feishu connection interrupted`,"bots.runtime.larkConnectionInterrupted":`Lark connection interrupted`,"bots.runtime.boundConnectionInterrupted":`Disconnected`,"bots.runtime.boundConnectionInterruptedDescription":`The bot is bound, but its persistent connection is interrupted.`,"bots.runtime.credentialsSavedConnectionFailedDescription":`App credentials are saved, but the persistent connection failed.`,"bots.runtime.connectionBlocksBinding":`The bot cannot receive messages, so binding is temporarily unavailable.`,"bots.runtime.feishuConnectionRecoverySuggestion":`The long-connection limit may have been reached, or Feishu may be busy. Try again later; if the problem persists, bind a new bot.`,"bots.runtime.larkConnectionRecoverySuggestion":`The long-connection limit may have been reached, or Lark may be busy. Try again later; if the problem persists, bind a new bot.`,"bots.runtime.errorCode":`Error code`,"bots.runtime.errorDetail":`Details`,"bots.runtime.unknownError":`Unknown connection error`,"bots.runtime.weixinLongPollingRunning":`Weixin long polling is running.`,"bots.runtime.weixinLongPollingStarting":`Weixin long polling is starting.`,"bots.runtime.weixinLongPollingStopped":`Weixin long polling is stopped.`,"bots.runtime.botDisabled":`Bot is disabled.`,"bots.scanQrCode":`Scan QR code`,"bots.authorizationQr":`Authorization QR`,"bots.bindCommand":`Bind command`,"bots.binding":`Binding`,"bots.allowedCommands":`Allowed commands`,"bots.unbound":`Not bound`,"bots.generateBindCode":`Generate bind code`,"bots.resetState":`Reset state`,"bots.allowedWorkspaces":`Project access`,"bots.allowedWorkspaces.all":`All`,"bots.allowedWorkspaces.mode.all":`All projects`,"bots.allowedWorkspaces.mode.selected":`Selected projects`,"bots.allowedWorkspaces.allDescription":`This bot can use any configured project.`,"bots.allowedWorkspaces.selectedDescription":`This bot can use {count} selected projects.`,"bots.botMeta":`{users} bound users · workspace {workspace}`,"bots.botSummary":`{users} users · {workspaces} workspaces · {workspace}`,"bots.userCount":`{count} users`,"bots.editDescription":`Review runtime state, default context, reply detail, and bound users.`,"bots.edit.basicSettings":`Basic settings`,"bots.edit.binding":`Bound users`,"bots.edit.emptyUsers":`No users bound yet. Create a bind code, then send the bind command in the bot private chat.`,"bots.edit.userWorkspaces":`{count} workspace(s) allowed`,"bots.test":`Test`,"bots.bind":`Bind`,"bots.unbind":`Unbind`,"bots.delete":`Delete bot`,"bots.delete.description":`Remove this bot.`,"bots.deleteConfirmTitle":`Delete bot "{name}"?`,"bots.deleteConfirmDescription":`This removes the bot configuration, credentials, and binding state. This cannot be undone.`,"bots.bindCode":`Binding code`,"bots.bindHint":`Send {command} in a private bot chat.`,"bots.bindCodeExpires":`Bind code expires in {time}`,"bots.bindCodeExpired":`Bind code expired. Generate a new code.`,"bots.bindSuccess":`Bound successfully`,"bots.copyBindCommand":`Copy bind command`,"bots.bindCommandGuide":`Copy the bind command below, then send it to the bot in a private chat.`,"bots.bindCommandStep.copy":`Copy the bind command`,"bots.bindCommandStep.openChat":`Open the private chat with the bot`,"bots.bindCommandStep.send":`Paste and send it to bind the current workspace`,"bots.bindCommandCopied":`Bind command copied. Open the private bot chat, then paste and send it.`,"bots.bindCommandCopyFailed":`Failed to copy bind command: {error}`,"bots.loadFailed":`Failed to load bots: {error}`,"bots.saveSuccess":`Bot saved`,"bots.saveFailed":`Failed to save bot: {error}`,"bots.testFailed":`Bot test failed: {error}`,"bots.bindCodeCreated":`Binding code created`,"bots.bindCodeFailed":`Failed to create binding code: {error}`,"bots.unbindSuccess":`Bot unbound`,"bots.unbindFailed":`Failed to unbind bot: {error}`,"bots.deleteFailed":`Failed to delete bot: {error}`,"welcome.title":`Welcome to ZCode`,"welcome.username":`Username`,"welcome.password":`Password`,"welcome.login":`Login`,"welcome.loggingIn":`Logging in...`,"welcome.loginFailed":`Login failed`,"login.title":`Welcome to ZCode`,"login.description":`Connect your account to start using ZCode`,"login.oauth.activeProviderHint":`Current active provider: {provider}. Signing in again replaces the current identity.`,"login.oauth.loadingProviders":`Loading account providers...`,"login.oauth.noProviders":`No account providers are available right now. Please try again later.`,"login.oauth.button":`Continue with {provider}`,"login.oauth.button.zai":`Connect to Z.ai`,"login.oauth.button.bigmodel":`Connect to BigModel`,"login.oauth.regionTag.zai":`Global`,"login.oauth.regionTag.bigmodel":`CN`,"login.oauth.waiting":`Waiting for {provider} authentication...`,"login.oauth.loginFailure":`Login failed, please try again`,"login.oauth.cancel":`Cancel`,"login.oauth.retry":`Retry login`,"login.expired.title":`Your session has expired`,"login.expired.description":`To keep your account secure, please sign in again.`,"login.expired.action":`Sign in again`,"login.expired.restart":`Confirm and restart`,"login.useApiKey":`Use API key`,"login.apiKey.title":`API Key`,"login.apiKey.placeholder":`Enter API key`,"login.apiKey.providerLabel":`API key provider`,"login.apiKey.provider.zai":`Z.ai`,"login.apiKey.provider.bigmodel":`BigModel`,"login.apiKey.getApiKey":`Get API Key`,"login.apiKey.cancel":`Cancel`,"login.apiKey.continue":`Continue`,"login.apiKey.emptyError":`Enter an API key.`,"login.apiKey.providerMissingError":`Built-in provider configuration for {provider} was not found. Please try again later.`,"login.apiKey.saveError":`Failed to save API key: {error}`,"login.apiKey.skipError":`Failed to skip API key setup: {error}`,"login.skip":`Skip for now`,"settings.onboarding":`Onboard`,"settings.onboardingDescription":`Choose your role, interface mode, and preferences again. Use Migration settings to import data.`,"settings.onboardingOpen":`Open onboarding`,"app.currentTheme":`Current: {theme}`,"app.login":`Connect`,"app.logout":`Disconnect`,"logout.confirm.title":`Disconnect and restart ZCode?`,"logout.confirm.descriptionWithRunningSessions":`{count} session(s) are currently running. Disconnecting will interrupt them and restart the app.`,"logout.confirm.descriptionDefault":`The app will restart after disconnecting. You will need to connect your account again.`,"logout.confirm.ok":`Disconnect and restart`,"logout.confirm.cancel":`Cancel`,"sidebar.profile.accountId":`ID: {id}`,"sidebar.profile.copyUserId":`Click to copy user ID`,"sidebar.profile.userIdCopied":`User ID copied`,"sidebar.profile.userIdCopyFailed":`Copy failed. Please try again`,"sidebar.profile.notLoggedIn":`Connect`,"app.selectFile":`Select a file to get started`,"app.workspace":`Workspace`,"browser.title":`Browser`,"browser.addressPlaceholder":`Enter a URL and press Enter`,"browser.permission.promptAriaLabel":`Site permission request`,"browser.permission.wantsToUse":`wants to use`,"browser.permission.siteInfo":`View site information`,"browser.permission.settings":`Site permissions`,"browser.permission.close":`Close`,"browser.permission.saved":`Permissions updated. Reload the page to apply changes to active resources.`,"browser.permission.readError":`Could not load permissions.`,"browser.permission.saveError":`Could not save permission changes.`,"browser.permission.resetError":`Could not complete the permission reset.`,"browser.permission.retry":`Retry`,"browser.permission.unsupported":`Site permissions are available in the desktop browser.`,"browser.permission.reset":`Reset site permissions`,"browser.permission.resetDone":`Permissions reset. Reload the page to request access again.`,"browser.permission.allowOnce":`Allow once`,"browser.permission.allowAlways":`Allow on this site`,"browser.permission.blockAlways":`Block`,"browser.permission.cancel":`Cancel`,"browser.permission.share":`Share`,"browser.permission.media":`camera and microphone`,"browser.permission.mediaVideo":`camera`,"browser.permission.mediaAudio":`microphone`,"browser.permission.mediaBoth":`camera and microphone`,"browser.permission.clipboardRead":`clipboard reading`,"browser.permission.geolocation":`location`,"browser.permission.notifications":`notifications`,"browser.permission.midi":`MIDI devices`,"browser.permission.idleDetection":`idle detection`,"browser.permission.speakerSelection":`audio output selection`,"browser.permission.windowManagement":`window management`,"browser.permission.storageAccess":`storage access`,"browser.permission.keyboardLock":`keyboard lock`,"browser.permission.fileSystem":`file access`,"browser.permission.deviceHid":`HID devices`,"browser.permission.deviceUsb":`USB devices`,"browser.permission.deviceSerial":`serial devices`,"browser.permission.deviceBluetooth":`Bluetooth devices`,"browser.permission.unknownCapability":`an unknown capability`,"browser.permission.screenShareTitle":`{origin} wants to share your screen`,"browser.permission.screenShareDescription":`Choose the screen or window to share. This choice applies only to this session.`,"browser.permission.deviceTitle":`{origin} wants to connect a device`,"browser.permission.connect":`Connect`,"browser.permission.screenGroup.screen":`Entire Screen`,"browser.permission.screenGroup.window":`Window`,"browser.permission.stateAllow":`Allow`,"browser.permission.stateDeny":`Block`,"browser.permission.stateAsk":`Ask`,"browser.back":`Back`,"browser.forward":`Forward`,"browser.reload":`Refresh`,"browser.more":`More browser actions`,"browser.openExternal":`Open in default browser`,"browser.devtools":`Open DevTools`,"browser.responsive.enter":`Free-size viewport`,"browser.responsive.exit":`Exit free-size viewport`,"browser.responsive.viewport":`Free-size browser viewport`,"browser.responsive.resizeWidth":`Resize browser viewport width`,"browser.responsive.resizeHeight":`Resize browser viewport height`,"browser.responsive.width":`Browser viewport width`,"browser.responsive.height":`Browser viewport height`,"browser.responsive.zoom":`Browser preview zoom`,"browser.responsive.fitToWindow":`Fit to window`,"browser.responsive.dimensionRangeError":`Enter an integer between {min} and {max}`,"browser.elementPicker.start":`Select page element for chat`,"browser.elementPicker.cancel":`Cancel element selection`,"browser.elementPickerFailed":`Failed to select page element: {message}`,"browser.elementPicker.popover.background":`Background`,"browser.elementPicker.popover.color":`Color`,"browser.elementPicker.popover.font":`Font`,"browser.show":`Toggle browser`,"browser.hide":`Toggle browser`,"browser.toggle":`Toggle browser`,"browser.close":`Close browser pane`,"browser.desktopOnly":`Browser pane is available on desktop only`,"browser.empty":`Paste or type a URL to open a page.`,"browser.guestFailed.title":`The built-in browser failed to start`,"browser.guestFailed.description":`The browser process exited before it could display the page. You can retry after checking the system environment.`,"browser.guestFailed.detail":`Renderer: {reason} (exit code {exitCode})`,"browser.guestFailed.retry":`Retry browser`,"browser.invalidUrl":`Only http, https, file, about, and data URLs are supported`,"browser.loadFailed":`Failed to load page: {message}`,"browser.loadError.title":`This page could not be opened`,"browser.loadError.certTitle":`This site's HTTPS certificate is not trusted`,"browser.loadError.certHint":`If you trust this address, enable "Ignore certificate errors" under Settings → Browser → Security, then restart the app to access it.`,"browser.loadError.retry":`Reload`,"browser.resizeDuringOperationWarning":`The browser size changed and may affect the current automated action`,"diff.title":`Diff`,"diff.toggle":`Toggle diff panel`,"diff.close":`Close diff panel`,"sidePane.expand":`Expand side pane`,"sidePane.collapse":`Collapse side pane`,"sidePane.togglePanel":`Toggle panel`,"sidePane.fullView.enter":`Enter full view`,"sidePane.fullView.exit":`Exit full view`,"sidePane.fullView.openAnswer":`Show messages`,"sidePane.fullView.minimize":`Minimize editor`,"sidePane.fullView.restore":`Restore editor`,"sidePane.fullView.openConversation":`Open in full view`,"sidePane.fullView.handle":`Drag to move · Click for options`,"sidePane.fullView.expandMessages":`Expand messages`,"sidePane.fullView.collapseMessages":`Collapse messages`,"sidePane.fullView.statusRunning":`Running`,"sidePane.fullView.statusIdle":`Idle`,"sidePane.maximize":`Expand panel`,"sidePane.restoreSize":`Restore panel width`,"sidePane.addTab":`Add tab`,"sidePane.newTab":`New tab`,"sidePane.openTab":`New tab`,"sidePane.subagent":`Subagent`,"sidePane.subagentDirectory":`Subagents`,"sidePane.selectionChat":`Side conversation`,"sidePane.workflowRun":`Workflow run`,"sidePane.workflowDirectory":`Workflow runs`,"sidePane.workflowActor":`Workflow subagent`,"sidePane.workflowScript":`Script steps`,"sidePane.workflowArtifact":`Artifact`,"subagentDirectory.title":`Subagents`,"subagentDirectory.running":`Running`,"subagentDirectory.runningEmpty":`No running subagents`,"subagentDirectory.ended":`Ended`,"subagentDirectory.showMore":`Show 20 more`,"subagentDirectory.loadFailed":`Unable to load subagents.`,"subagentDirectory.status.running":`Running`,"subagentDirectory.status.waiting":`Waiting`,"subagentDirectory.status.blocked":`Blocked`,"subagentDirectory.status.success":`Completed`,"subagentDirectory.status.failed":`Failed`,"subagentDirectory.status.cancelled":`Cancelled`,"subagentDirectory.status.lost":`Lost`,"chat.statusPanel.endedAgents":`Ended`,"chat.statusPanel.endedWorkflows":`Ended workflows`,"chat.statusPanel.workflowsLive":`{count} running`,"workflowDirectory.title":`Workflow runs`,"workflowDirectory.running":`Running`,"workflowDirectory.runningEmpty":`No workflows are running`,"workflowDirectory.ended":`Ended`,"workflowDirectory.endedEmpty":`No workflows have ended yet`,"workflowDirectory.empty":`No workflow has run in this conversation yet`,"workflowDirectory.truncated":`Showing the {count} most recent runs only`,"workflowDirectory.unavailable":`Workflow runs can't be listed for this conversation`,"chat.selections.addToTask":`Add to chat`,"chat.selections.askInSideChat":`Add in side chat`,"chat.selections.sideBlocked":`Resolve the side conversation request before adding another selection.`,"chat.selections.count":`{count} conversation selections`,"chat.selections.remove":`Remove conversation selection`,"chat.selections.type.user":`User message`,"chat.selections.type.assistant":`Assistant message`,"chat.selections.type.reasoning":`Reasoning`,"chat.selections.type.tool":`Tool result`,"chat.selections.limit.single":`A selection can contain at most 8,000 characters.`,"chat.selections.limit.count":`You can attach at most 8 conversation selections.`,"chat.selections.limit.total":`Conversation selections can contain at most 16,000 characters in total.`,"sidePane.launcher.selection-side-conversation":`Continue a conversation in the side pane.`,"sidePane.launcher.review":`Review code changes and diffs.`,"sidePane.launcher.terminal":`Run commands and view output.`,"sidePane.launcher.browser":`Browse websites and preview apps.`,"sidePane.launcher.developer-tools":`Inspect and debug the app.`,"sidePane.launcher.viewAllPlugins":`View all plugins`,"sidePane.launcher.empty":`No recommended app plugins yet`,"sidePane.openFile":`Open file`,"sidePane.openFileDescription":`Open a file from the current workspace in the side panel.`,"sidePane.openFilePlaceholder":`Search files in the current workspace...`,"sidePane.openFileLoading":`Loading files...`,"sidePane.openFileEmpty":`No files found.`,"sidePane.openFile.category":`Files`,"sidePane.openFile.emptyQuery":`Type to search files`,"sidePane.review":`Review`,"pluginUi.loading":`Loading plugin UI...`,"pluginUi.loadFailed":`Plugin UI failed to load.`,"pluginUi.retry":`Reload`,"pluginUi.pin":`Keep expanded`,"pluginUi.unpin":`Stop keeping expanded`,"pluginUi.openInSidePane":`Open in side pane`,"pluginUi.openedInSidePane":`Opened in side pane`,"genUi.copyImage":`Copy image`,"genUi.title":`Interactive view`,"genUi.desktopOnly":`Open this interactive view in the desktop app`,"genUi.offline":`Workspace is offline. Reconnect and retry`,"genUi.failed":`Unable to load interactive view`,"genUi.loading":`Loading…`,"genUi.retry":`Retry`,"genUi.tweak":`Adjust design`,"genUi.expand":`Expand`,"genUi.collapse":`Collapse`,"genUi.expanded":`Showing in expanded view`,"genUi.confirm":`Interactive view wants to send a message`,"genUi.cancel":`Cancel`,"genUi.send":`Send`,"genUi.incomplete":`This response did not finish. The interactive view was not loaded.`,"genUi.waiting":`Interactive view will appear when generation completes`,"genUi.invalid":`Invalid interactive view reference`,"genUi.reset":`Reset`,"genUi.original":`Preview original`,"genUi.submit":`Submit design changes`,"genUi.from":`From interactive view {name}`,"pluginUi.fromPlugin":`From plugin {name}`,"pluginUi.followUp.title":`A plugin wants to send a message as you`,"pluginUi.followUp.description":`From plugin {name}. You can edit it before sending.`,"pluginUi.followUp.send":`Send`,"pluginUi.followUp.cancel":`Cancel`,"pluginUi.modelContext.label":`Plugin context`,"pluginUi.modelContext.remove":`Remove plugin context`,"sidePane.pluginUi":`Plugin`,"whiteboard.title":`Whiteboard`,"whiteboard.defaultName":`Whiteboard`,"whiteboard.nameLabel":`Whiteboard name`,"whiteboard.canvasLabel":`Whiteboard canvas`,"whiteboard.tool.pen":`Pen`,"whiteboard.tool.eraser":`Eraser`,"whiteboard.color":`Color`,"whiteboard.strokeWidth":`Stroke width`,"whiteboard.addToChat":`Add to chat`,"whiteboard.undo":`Undo`,"whiteboard.redo":`Redo`,"whiteboard.clear":`Clear`,"whiteboard.missing":`This whiteboard is no longer available.`,"whiteboard.exportMissing":`This whiteboard is no longer available.`,"whiteboard.exportFailed":`Failed to export whiteboard: {message}`,"treemapping.title":`Treemapping`,"modelTrajectory.title":`Model trajectory`,"modelTrajectory.usage.input":`in {count}`,"modelTrajectory.usage.output":`out {count}`,"chat.toolbar.model.loadFailedRetry":`Models failed to load. Retry`,"chat.toolbar.model.remoteWaiting":`Waiting for remote models`,"chat.toolbar.model.targetMissing":`No model target`,"settings.subagents.modelLoadFailed":`The model list failed to load.`,"root.modelSelection.loadFailed":`Model configuration failed to load.`,"modelTrajectory.openSourceDirectory":`Open source folder`,"modelTrajectory.refresh":`Refresh`,"modelTrajectory.close":`Close`,"modelTrajectory.loading":`Loading trajectory…`,"modelTrajectory.empty":`No model calls recorded (only ZCode Agent writes model-io)`,"modelTrajectory.error":`Failed to load trajectory`,"modelTrajectory.truncatedNotice":`Too many records, showing the most recent calls`,"modelTrajectory.summaryCalls":`{count} calls`,"modelTrajectory.summaryTokens":`Total token usage`,"modelTrajectory.attempt":`Attempt {attempt}`,"modelTrajectory.finish.stop":`Stopped`,"modelTrajectory.finish.toolCalls":`Tool call`,"modelTrajectory.finish.length":`Length limit`,"modelTrajectory.finish.contentFilter":`Content filtered`,"modelTrajectory.source.main":`Main session`,"modelTrajectory.source.sessionTitle":`Title generation`,"modelTrajectory.source.compact":`Compaction`,"modelTrajectory.source.promptEnhance":`Prompt enhance`,"modelTrajectory.source.targetCompletion":`Goal check`,"modelTrajectory.source.subagent":`Subagent`,"modelTrajectory.source.sidecar":`Sidecar`,"modelTrajectory.source.unknown":`Unknown source`,"modelTrajectory.inputSection":`Input`,"modelTrajectory.outputSection":`Output`,"modelTrajectory.reasoning":`Reasoning`,"modelTrajectory.message":`Message`,"modelTrajectory.expand":`Expand`,"modelTrajectory.collapse":`Collapse`,"modelTrajectory.expandAll":`Expand all`,"modelTrajectory.collapseAll":`Collapse all`,"modelTrajectory.customExpansion":`Custom expansion`,"modelTrajectory.search":`Search trajectory`,"modelTrajectory.searchPlaceholder":`Search trajectory content…`,"modelTrajectory.searchPrevious":`Previous match`,"modelTrajectory.searchNext":`Next match`,"modelTrajectory.searchClose":`Close search`,"modelTrajectory.copyContent":`Copy content`,"modelTrajectory.showAll":`Expand`,"modelTrajectory.collapseContent":`Collapse`,"modelTrajectory.toolCall":`Tool call`,"modelTrajectory.toolId":`ID`,"modelTrajectory.toolInput":`Input`,"modelTrajectory.toolOutput":`Output`,"modelTrajectory.toolResult":`Tool result`,"modelTrajectory.role.system":`System`,"modelTrajectory.role.user":`User`,"modelTrajectory.role.assistant":`Assistant`,"modelTrajectory.role.tool":`Tool result`,"treemapping.badge.live":`Live`,"treemapping.badge.snapshot":`Snapshot`,"treemapping.scope.current":`Current turn tool activity`,"treemapping.scope.turn":`Turn {turn} tool activity`,"treemapping.summary.files":`Files`,"treemapping.summary.diff":`Diff`,"treemapping.summary.views":`Views`,"treemapping.empty.title":`No file activity yet`,"treemapping.empty.description":`Treemapping appears after this turn reads, searches, edits, creates, or deletes files.`,"treemapping.empty.running":`{count} tool call(s) are running without a file path yet.`,"treemapping.change.written":`Written`,"treemapping.change.modified":`Modified`,"treemapping.change.deleted":`Deleted`,"treemapping.change.viewed":`Viewed only`,"treemapping.detail.directoryFiles":`{count} files`,"diff.placeholder.badge":`UI placeholder`,"diff.placeholder.description":`This phase focuses on the right-side Diff panel shell first. Real Git services and command execution will be connected later.`,"diff.placeholder.toast":`The Diff panel is still using UI placeholder mode for now because the Git service is not fully wired up yet.`,"git.readonly":`Read-only`,"git.head.detached":`Detached HEAD`,"git.summary.aheadBehind":`Ahead {ahead} / Behind {behind}`,"git.summary.scopeWorkspace":`Current workspace subtree`,"git.source.unstaged":`Unstaged`,"git.source.staged":`Staged`,"git.source.branch":`All branch changes`,"git.source.lastTurn":`Last turn`,"git.source.workspaceScope":`Only the current workspace scope is shown by default.`,"git.source.lastTurnTurn":`Task file snapshot from turn {turn}`,"git.section.staged":`Staged`,"git.section.unstaged":`Unstaged`,"git.section.untracked":`Untracked`,"git.section.conflicted":`Conflicted`,"git.section.branch":`Branch comparison`,"git.section.lastTurn":`Last turn`,"git.kind.modified":`Modified`,"git.kind.added":`Added`,"git.kind.deleted":`Deleted`,"git.kind.renamed":`Renamed`,"git.kind.conflicted":`Conflicted`,"git.diff.title":`Diff preview`,"git.diff.selectFile":`Select a file to preview the diff`,"git.diff.selectFileDescription":`Switch sources, expand directories, and pick a file on the left to preview its diff here.`,"git.diff.binaryTitle":`Binary diff preview is unavailable`,"git.diff.truncatedTitle":`Diff has been truncated`,"git.diff.unavailableTitle":`This diff is unavailable right now`,"git.diff.unavailableDescription":`The placeholder data currently keeps summary information only. Full results will appear after the real service is connected.`,"diff.loading.description":`Loading the real diff data from the environment that owns this workspace.`,"diff.error.title":`Failed to load diff data`,"diff.error.description":`Please try again later. Current error: {message}`,"diff.preview.truncatedLines":`Diff preview truncated: {count} lines omitted to keep UI responsive.`,"sidePane.tabOverview":`Search tabs`,"sidePane.searchTabs":`Search tabs...`,"sidePane.openTabs":`Open tabs`,"sidePane.recentlyClosedTabs":`Recently closed tabs`,"sidePane.noTabsFound":`No tabs found.`,"sidePane.closeTab":`Close {title}`,"sidePane.closeCurrentTab":`Close tab`,"sidePane.closeOtherTabs":`Close other tabs`,"sidePane.closeAllTabs":`Close all tabs`,"sidePane.openedRelativeTime":`Opened {time}`,"sidePane.closedRelativeTime":`Closed {time}`,"sidePane.time.justNow":`just now`,"sidePane.time.minutesAgo":`{count}m ago`,"sidePane.time.hoursAgo":`{count}h ago`,"sidePane.time.daysAgo":`{count}d ago`,"git.action.refresh":`Refresh`,"git.action.stage":`Stage`,"git.action.unstage":`Unstage`,"git.action.discard":`Discard`,"git.action.commit":`Commit`,"git.action.showTree":`Show file tree`,"git.action.hideTree":`Hide file tree`,"git.changeContext.revealInFileManager":`Open in file manager`,"git.changeContext.revealInFileTree":`Reveal in file tree`,"git.close":`Close Git pane`,"git.tree.toggleFolder":`Toggle folder`,"git.tree.searchPlaceholder":`Filter files...`,"git.tree.clearSearch":`Clear file filter`,"git.tree.emptyTitle":`No directories are available here`,"git.tree.emptyDescription":`This source does not currently expose any directory structure for navigation.`,"git.tree.emptySearchTitle":`No files match this filter`,"git.tree.emptySearchDescription":`Adjust the search text, or clear the filter to see every file in the current tree.`,"git.tree.emptyDirectoryTitle":`No changed files are in this directory`,"git.tree.emptyDirectoryDescription":`Switch to another directory, or click the current directory again to return to the full list.`,"git.selection.count":`{count} selected`,"git.selection.toggle":`Toggle selection for {file}`,"git.empty.title":`No changes are available in this source`,"git.empty.description":`Switch to another source, or wait until this workspace has new Git changes to inspect.`,"git.loading.description":`Reading Git status and changed files for the current workspace.`,"git.error.title":`Could not load Git changes`,"git.error.description":`Git returned an error: {message}`,"git.empty.gitUnavailableTitle":`Git is not available in this environment`,"git.empty.gitUnavailableDescription":`Install Git first, or make sure the current runtime environment can execute the git command.`,"git.empty.notRepositoryTitle":`This workspace is not inside a Git repository`,"git.empty.notRepositoryDescription":`Open a Git repository directory and this pane will show changes scoped to the current workspace.`,"git.empty.lastTurnTitle":`The current task has no last-turn file changes yet`,"git.empty.lastTurnDescription":`Once the agent writes files, this view will reuse the existing task snapshot as a read-only review surface.`,"git.commit.identityTitle":`Commit identity`,"git.commit.identityMissing":`Real user.name / user.email loading is not connected yet, so the commit button stays disabled for now.`,"git.commit.noStagedChanges":`There are no staged changes yet. Select files on the left and stage them first.`,"git.commit.enterMessage":`Enter a commit message.`,"git.commit.ready":`The frontend validation is satisfied. The real commit will work once the service layer is connected.`,"git.commit.placeholder":`Enter a commit message (UI placeholder only, no real git commit will run yet)`,"git.actionMenu.trigger":`Commit or push`,"git.actionMenu.trigger.ariaLabel":`Commit or push`,"git.actionMenu.push":`Push`,"git.actionMenu.commitDialog.title":`Commit changes`,"git.actionMenu.commitDialog.description":`Save the current uncommitted workspace changes as a commit.`,"git.actionMenu.commitDialog.currentBranchLabel":`Current branch`,"git.actionMenu.commitDialog.changesLabel":`Changes`,"git.actionMenu.commitDialog.changesValue":`{count} files`,"git.actionMenu.commitDialog.messageLabel":`Commit message`,"git.actionMenu.commitDialog.messagePlaceholder":`Commit message (leave empty to generate)`,"git.actionMenu.commitDialog.messageHelper":`Generate fills the message before you commit.`,"git.actionMenu.commitDialog.generate":`Generate message`,"git.actionMenu.commitDialog.regenerate":`Regenerate`,"git.actionMenu.commitDialog.includeUnstaged":`Include unstaged changes`,"git.actionMenu.commitDialog.action.commit":`Commit`,"git.actionMenu.commitDialog.action.commitAndPush":`Commit and push`,"git.actionMenu.commitDialog.confirm":`Commit`,"git.actionMenu.commitDialog.identityMissing":`No Git commit identity is available yet. Configure user.name and user.email first.`,"git.actionMenu.commitDialog.error.noChanges":`There are no changes available to commit.`,"git.actionMenu.commitDialog.error.messageRequired":`Enter or generate a commit message before committing.`,"git.actionMenu.commitDialog.error.generateFailed":`Commit message generation failed. Try again or enter one manually.`,"git.actionMenu.commitDialog.error.requestFailed":`Commit failed: {error}`,"git.actionMenu.commitDialog.error.pushAfterCommitFailed":`Committed, but push failed: {error}`,"git.actionMenu.commitDialog.toast.success":`Committed the current changes`,"git.actionMenu.commitDialog.toast.commitAndPushSuccess":`Committed and pushed the current changes`,"git.actionMenu.pushDialog.title":`Push changes`,"git.actionMenu.pushDialog.description.tracked":`Push the latest commits on the current branch to the remote branch.`,"git.actionMenu.pushDialog.description.untracked":`The first push will publish the current branch remotely and set its upstream.`,"git.actionMenu.pushDialog.currentBranchLabel":`Branch`,"git.actionMenu.pushDialog.upstreamLabel":`Remote branch`,"git.actionMenu.pushDialog.aheadBehindLabel":`Sync status`,"git.actionMenu.pushDialog.aheadBehindValue":`Ahead {ahead} / Behind {behind}`,"git.actionMenu.pushDialog.upstreamPending":`The first push will automatically create the upstream branch for the current branch.`,"git.actionMenu.pushDialog.pushLabel":`Next step`,"git.actionMenu.pushDialog.pushValue":`Push`,"git.actionMenu.pushDialog.upToDate":`There are no commits to push on the current branch.`,"git.actionMenu.pushDialog.confirm":`Push`,"git.actionMenu.pushDialog.error.summary":`Push failed. Review the error details below.`,"git.actionMenu.pushDialog.error.detailsLabel":`Error details`,"git.actionMenu.pushDialog.error.copy":`Copy error`,"git.actionMenu.pushDialog.error.copy.copied":`Copied`,"git.actionMenu.pushDialog.error.copyFailed":`Failed to copy error details: {error}`,"git.actionMenu.pushDialog.error.requestFailed":`Push failed: {error}`,"git.actionMenu.pushDialog.toast.success":`Pushed to {target}`,"git.branchSwitcher.label":`Branch`,"git.branchSwitcher.trigger.ariaLabel":`Switch Git branch`,"git.branchSwitcher.searchPlaceholder":`Search branches`,"git.branchSwitcher.section.branches":`Branches`,"git.branchSwitcher.empty":`No matching branches`,"git.branchSwitcher.currentDirty":`Uncommitted changes: {count} files`,"git.branchSwitcher.createAction":`Create and switch to new branch...`,"git.branchSwitcher.createDialog.title":`Create and switch to a new branch`,"git.branchSwitcher.createDialog.description":`Create a new local branch from the current HEAD and switch to it immediately after it succeeds.`,"git.branchSwitcher.createDialog.nameLabel":`Branch name`,"git.branchSwitcher.createDialog.placeholder":`For example, feature/git-branch-switcher`,"git.branchSwitcher.createDialog.helper":`Support creating and switching from the current HEAD only.`,"git.branchSwitcher.createDialog.confirm":`Create and switch`,"git.branchSwitcher.blockedDialog.title":`Commit changes to switch branches`,"git.branchSwitcher.blockedDialog.description.tracked":`Your changes to the following files would be overwritten by checkout:`,"git.branchSwitcher.blockedDialog.description.untracked":`The following untracked files would be overwritten by checkout:`,"git.branchSwitcher.blockedDialog.filesLabel":`Affected files`,"git.branchSwitcher.blockedDialog.helper":`Commit the current changes first, then continue switching branches.`,"git.branchSwitcher.blockedDialog.submitAction":`Commit and switch branch...`,"git.branchSwitcher.commitDialog.title":`Commit changes`,"git.branchSwitcher.commitDialog.description":`After the commit finishes, switching to {branchName} will continue automatically.`,"git.branchSwitcher.commitDialog.currentBranchLabel":`Current branch`,"git.branchSwitcher.commitDialog.targetBranchLabel":`Target branch`,"git.branchSwitcher.commitDialog.changesLabel":`Changes`,"git.branchSwitcher.commitDialog.changesValue":`{count} files`,"git.branchSwitcher.commitDialog.messageLabel":`Commit message`,"git.branchSwitcher.commitDialog.messagePlaceholder":`Leave empty to generate a commit message automatically`,"git.branchSwitcher.commitDialog.messageHelper":`This will commit all uncommitted changes inside the current workspace by default.`,"git.branchSwitcher.commitDialog.confirm":`Commit and switch branch`,"git.branchSwitcher.commitDialog.identityMissing":`No Git commit identity is available yet. Configure user.name and user.email first.`,"git.branchSwitcher.commitDialog.error.requestFailed":`Commit failed: {error}`,"git.branchSwitcher.toast.switchSuccess":`Switched to branch {branchName}`,"git.branchSwitcher.toast.createSuccess":`Created and switched to branch {branchName}`,"git.branchSwitcher.error.invalidBranchName":`The branch name is invalid. Enter a different name.`,"git.branchSwitcher.error.branchAlreadyExists":`That branch already exists. Choose another name.`,"git.branchSwitcher.error.targetBranchNotFound":`The target branch does not exist locally yet.`,"git.branchSwitcher.error.trackedOverwrite":`Switch blocked because tracked files would be overwritten: {paths}{extraPaths}.`,"git.branchSwitcher.error.untrackedOverwrite":`Switch blocked because untracked files would be overwritten: {paths}{extraPaths}.`,"git.branchSwitcher.error.moreFiles":` and {count} more files`,"git.branchSwitcher.error.conflictsPresent":`The repository still has unresolved conflicts. Resolve them before switching branches.`,"git.branchSwitcher.error.operationInProgress":`Another Git operation is still in progress. Finish it before switching branches.`,"git.branchSwitcher.error.branchInOtherWorktree":`That branch is already checked out in another worktree.`,"git.branchSwitcher.error.unknown":`Switching branches failed. Please try again.`,"git.branchSwitcher.error.requestFailed":`Branch operation failed: {error}`,"gitGraph.title":`Git Graph`,"gitGraph.subtitle":`{count} commits across {lanes} lanes`,"gitGraph.subtitle.hasMore":`Latest {count} commits across {lanes} lanes`,"gitGraph.metric.merges":`{count} merges`,"gitGraph.metric.refs":`{count} refs`,"gitGraph.graphAriaLabel":`Git commit graph`,"gitGraph.selectedCommit":`Selected commit`,"gitGraph.inspectAction":`Inspect commit`,"gitGraph.menuAction":`Git Graph`,"gitGraph.dialogDescription":`View the current repository commit graph.`,"gitGraph.column.graph":`Graph`,"gitGraph.column.description":`Description`,"gitGraph.column.date":`Date`,"gitGraph.column.author":`Author`,"gitGraph.column.commit":`Commit`,"gitGraph.detail.subject":`Subject`,"gitGraph.detail.commit":`Commit`,"gitGraph.detail.author":`Author`,"gitGraph.detail.date":`Date`,"gitGraph.detail.parents":`Parents`,"gitGraph.empty.title":`No commits`,"gitGraph.empty.description":`This repository does not have commit history yet.`,"gitGraph.error.requestFailed":`Git Graph failed to load: {error}`,"gitGraph.refresh":`Refresh Git Graph`,"gitGraph.refreshFailed":`Git Graph refresh failed: {error}`,"gitGraph.loadMore":`Load more commits`,"gitGraph.loadMore.loading":`Loading more...`,"fileManager.resizeNavigation":`Resize file navigation`,"fileManager.title":`Files`,"fileManager.showNavigation":`Show file navigation`,"fileManager.hideNavigation":`Hide file navigation`,"fileManager.empty":`Select a file from the navigation`,"codeViewer.title":`Code viewer`,"codeViewer.close":`Close code viewer`,"codeViewer.loadingFile":`Loading file...`,"codeViewer.loadingImage":`Loading image preview...`,"codeViewer.fileMissing":`The file does not exist, or this environment cannot access that path.`,"codeViewer.binary":`This file looks like binary data and cannot be previewed as code yet.`,"codeViewer.imageUnavailable":`This image preview is currently unavailable.`,"codeViewer.loadingMedia":`Loading media preview...`,"codeViewer.mediaUnavailable":`This media preview is currently unavailable.`,"codeViewer.mediaUnsupported":`This environment cannot play this media format.`,"codeViewer.mediaLoadFailed":`Media failed to load. Try again later or open it in an external application.`,"codeViewer.loadingPdf":`Loading PDF preview...`,"codeViewer.pdfUnavailable":`This PDF preview is currently unavailable.`,"codeViewer.pdf.loading":`Loading PDF...`,"codeViewer.pdf.loadError":`Failed to load PDF`,"codeViewer.pdf.noData":`No PDF data`,"codeViewer.pdf.previousPage":`Previous page`,"codeViewer.pdf.nextPage":`Next page`,"codeViewer.pdf.pageInput":`Page number`,"codeViewer.pdf.zoomIn":`Zoom in`,"codeViewer.pdf.zoomOut":`Zoom out`,"codeViewer.officeUnavailable":`This Office file cannot be previewed.`,"codeViewer.officeTooLarge":`This Office file is too large to preview (maximum 25 MB).`,"codeViewer.excel.sheetTabs":`Workbook sheets`,"codeViewer.loadingPptx":`Loading presentation preview...`,"codeViewer.pptxUnavailable":`This presentation preview is currently unavailable.`,"codeViewer.pptx.loading":`Loading presentation...`,"codeViewer.pptx.loadError":`Failed to load presentation`,"codeViewer.pptx.noSlides":`This presentation has no slides`,"codeViewer.pptx.fileTooLarge":`This presentation exceeds the 64 MB preview limit.`,"codeViewer.pptx.legacyFileTooLarge":`This remote environment can preview presentations up to 8 MB.`,"codeViewer.pptx.incomplete":`This presentation changed or was truncated while it was being read, so it cannot be previewed. Try again.`,"codeViewer.pptx.previousPage":`Previous slide`,"codeViewer.pptx.nextPage":`Next slide`,"codeViewer.pptx.pageInput":`Slide number`,"codeViewer.pptx.zoomIn":`Zoom in`,"codeViewer.pptx.selectElement":`Select element`,"codeViewer.pptx.exitElementSelection":`Exit selection`,"codeViewer.pptx.aiEdit":`AI Edit`,"codeViewer.pptx.commentPlaceholder":`Add a comment for this element`,"codeViewer.pptx.cancelAiEdit":`Cancel`,"codeViewer.pptx.addToConversation":`Add to conversation`,"codeViewer.pptx.zoomOut":`Zoom out`,"codeViewer.pptx.thumbnails":`Slide thumbnails`,"codeViewer.pptx.thumbnail":`Slide {pageNumber}`,"codeViewer.pptx.exportPdf":`Export as PDF`,"codeViewer.pptx.exportingPdf":`Exporting PDF...`,"codeViewer.pptx.exportPdfSuccess":`PDF saved to {path}`,"codeViewer.pptx.exportPdfFailed":`Failed to export PDF`,"codeViewer.empty":`File is empty`,"codeViewer.fileTooLarge":`This file exceeds the 256 KB preview limit. Open it in another editor to view the full contents.`,"codeViewer.viewCode":`View code`,"codeViewer.viewDiff":`View diff`,"codeViewer.openSourcePreview":`Source preview`,"codeViewer.markdownMode":`Markdown`,"codeViewer.markdownPreview":`Preview`,"codeViewer.markdownSource":`Source`,"codeViewer.svgMode":`SVG`,"codeViewer.svgPreview":`Preview`,"codeViewer.svgSource":`Code`,"codeViewer.wrapLines":`Wrap lines`,"codeBlock.mermaid.ariaLabel":`Mermaid diagram`,"codeBlock.wrapLines":`Wrap lines`,"codeBlock.copyCode":`Copy code`,"codeBlock.mermaid.empty":`Mermaid source is empty.`,"codeBlock.mermaid.error":`Mermaid diagram render failed`,"codeBlock.mermaid.openPreview":`Open preview`,"codeBlock.mermaid.previewDescription":`Zoomable and pannable Mermaid diagram preview.`,"codeBlock.mermaid.zoomIn":`Zoom in`,"codeBlock.mermaid.zoomOut":`Zoom out`,"codeBlock.mermaid.zoomLevel":`Zoom level`,"codeBlock.mermaid.zoomToPercent":`Zoom to {percent}%`,"codeBlock.mermaid.zoomToFit":`Zoom to fit`,"codeBlock.mermaid.fit":`Fit to window`,"codeBlock.mermaid.resetZoom":`Reset zoom`,"codeBlock.mermaid.reset":`Reset zoom`,"codeBlock.mermaid.close":`Close preview`,"codeBlock.mermaid.loading":`Rendering diagram...`,"codeBlock.mermaid.source":`Source`,"markdownTable.copyMarkdown":`Copy Markdown`,"markdownTable.downloadCsv":`Download CSV`,"markdownTable.openPreview":`Preview table`,"markdownTable.expandScrollMode":`Expand table scroll area`,"markdownTable.collapseScrollMode":`Collapse table scroll area`,"markdownTable.previewTitle":`Table preview`,"markdownTable.previewDescription":`Review the table in a larger scrollable view.`,"markdownTable.copySucceeded":`Markdown table copied`,"markdownTable.copyFailed":`Failed to copy table: {error}`,"markdownTable.downloadFailed":`Failed to download table`,"codeViewer.comment.add":`Add comment`,"codeViewer.comment.addTooltip":`Click or drag to comment`,"codeViewer.comment.placeholder":`Optional comment for this code...`,"codeViewer.comment.submit":`Add to chat`,"codeViewer.comment.delete":`Delete comment`,"codeViewer.comment.line":`Comment on line {line}`,"codeViewer.comment.range":`Comment on lines {startLine} to {endLine}`,"codeViewer.comment.contextLabel":`Code context`,"codeViewer.comment.commentLabel":`Comment`,"codeViewer.review.targetLineMissing":`The target line does not exist. The comment is shown at the top of the file.`,"chat.codeComments.one":`1 comment`,"chat.codeComments.many":`{count} comments`,"chat.codeComments.remove":`Remove code comments`,"chat.codeCommentCards.expandAll":`Show {count} comments`,"chat.codeCommentCards.collapseAll":`Collapse comments`,"chat.codeCommentCards.openReview":`Open code review for {title}`,"chat.webElements.one":`1 web element`,"chat.pptxElements.one":`1 slide element`,"chat.pptxElements.many":`{count} slide elements`,"chat.pptxElements.remove":`Remove slide element`,"chat.pptxElements.previewFileMissing":`The referenced presentation no longer exists.`,"chat.pptxElements.previewPageMissing":`Slide {pageNumber} no longer exists. The presentation was opened instead.`,"chat.pptxElements.previewSourceChanged":`The presentation has changed. Slide {pageNumber} was opened, but its content may differ.`,"chat.pptxElements.previewScopeUnavailable":`This presentation reference is not available in the current workspace.`,"chat.webElements.many":`{count} web elements`,"chat.webElements.remove":`Remove web element context`,"appHeader.openInFinder":`Open in Finder`,"appHeader.openInFileExplorer":`Open in File Explorer`,"appHeader.openInFileManager":`Open in File Manager`,"appHeader.openInFileManagerFailed":`Could not open in the system file manager`,"appHeader.openInEditor":`Open in {editor}`,"appHeader.selectOpenApp":`Choose app`,"appHeader.copyPath":`Copy path`,"fileActions.copyAbsolutePath":`Copy absolute path`,"fileActions.copyRelativePath":`Copy relative path`,"appHeader.copyTaskPath":`Copy task path`,"appHeader.copyClaudeJsonlPath":`Copy JSONL path`,"appHeader.copySessionId":`Copy session ID`,"appHeader.reloadSession":`Reload session`,"appHeader.reloadSessionSuccess":`Session reloaded`,"appHeader.reloadSessionFailed":`Could not reload session`,"appHeader.workspaceSessionActionLoading":`Applying session changes...`,"appHeader.copyLogPath":`Copy log path`,"appHeader.goToProviderConfig":`Go to config`,"appHeader.goToProviderConfigPrefix":`Go to`,"appHeader.goToProviderConfigSuffix":`config`,"appHeader.openProviderConfigWithEditorPrefix":`Use`,"appHeader.openProviderConfigWithEditorMiddle":`to open`,"appHeader.openProviderConfigWithEditorSuffix":`config file`,"appHeader.openProviderConfigInEditorFailed":`Could not open provider config in {editor}`,"workspaceHeader.help.menu":`Help`,"workspaceHeader.help.issueReport":`Report an issue`,"workspaceHeader.help.reportVulnerability":`Report a vulnerability`,"workspaceHeader.help.productRequest":`Request a feature`,"workspaceHeader.help.productRequestDraft":`I would like to suggest: `,"workspaceHeader.help.community":`User community`,"workspaceHeader.help.docs":`Product docs`,"titleBar.menu.file":`File`,"titleBar.menu.view":`View`,"titleBar.menu.help":`Help`,"titleBar.menu.file.newTask":`New task`,"titleBar.menu.file.openWorkspace":`Open workspace`,"titleBar.menu.file.closeWindow":`Close window`,"titleBar.windowMenu":`Window menu`,"titleBar.window.minimize":`Minimize window`,"titleBar.window.toggleMaximize":`Maximize or restore window`,"titleBar.menu.view.toggleFullScreen":`Toggle full screen`,"titleBar.menu.view.actualSize":`Actual size`,"titleBar.menu.view.zoomIn":`Zoom in`,"titleBar.menu.view.zoomOut":`Zoom out`,"titleBar.menu.help.about":`About ZCode`,"titleBar.menu.help.checkForUpdates":`Check for updates`,"titleBar.menu.help.feedback":`Feedback`,"sidebar.menu.community":`Community`,"titleBar.menu.help.exportLogs":`Export logs`,"titleBar.menu.help.toggleDevTools":`Toggle developer tools`,"titleBar.menu.help.resourceManager":`Resource manager`,"titleBar.menu.help.toggleZCodeStdioTap":`Capture agent stdio traffic`,"titleBar.menu.help.clearAllData":`Clear all data`,"directoryBrowser.errorUnavailable":`Cannot open this folder. Check that it exists and you have access, or choose another folder.`,"remote.directory.willOpen":`Will open {path}`,"directoryBrowser.title":`Choose directory`,"directoryBrowser.pathPlaceholder":`Enter path`,"directoryBrowser.go":`Jump`,"directoryBrowser.showHidden":`Show hidden directories`,"directoryBrowser.hideHidden":`Hide hidden directories`,"directoryBrowser.noSubdirs":`No subdirectories`,"directoryBrowser.selectDir":`Open workspace here`,"directoryBrowser.opening":`Opening…`,"directoryBrowser.errorSystem":`Failed to get system info`,"directoryBrowser.errorReadDir":`Failed to read directory: {error}`,"updateReady.shortTitle":`Update`,"updateReady.title":`Update v{version}`,"updateReady.releaseNotesTitle":`v{version} Release Notes`,"updateReady.tooltip":`v{version} ready, click to restart and update`,"updateAvailable.tooltip":`New version v{version} is available. Click to review.`,"updateReady.confirm.title":`Update to v{version}?`,"updateReady.confirm.description":`The app will quit and restart to update. In-progress tasks will be interrupted.`,"updateReady.confirm.ok":`Restart & update now`,"updateReady.confirm.cancel":`Later`,"updateDialog.availableTitle":`New version v{version}`,"updateDialog.downloadingTitle":`Downloading v{version}`,"updateDialog.readyTitle":`v{version} is ready`,"updateDialog.releaseDate":`{date}`,"updateDialog.releaseNotesExpand":`Show`,"updateDialog.releaseNotesCollapse":`Hide`,"updateDialog.downloadAndUpdate":`Download update`,"updateDialog.cancelDownload":`Cancel download`,"updateDialog.autoDownloadAndInstall":`Automatically download and install updates next time`,"updateDialog.downloadingAction":`Downloading`,"updateDialog.downloadProgress":`Download progress`,"updateDialog.restartToUpdate":`Restart to update`,"updateDialog.skipVersion":`Skip this version`,"updateDialog.later":`Later`,"update.toast.upToDate":`You're on the latest version (v{version})`,"update.toast.available":`New version v{version} is available`,"update.toast.downloading":`Downloading new version v{version}`,"update.toast.alreadyDownloading":`Downloading new version ({progress}%)`,"update.toast.ready":`v{version} downloaded, restart to install`,"update.toast.devSkipped":`Updates are disabled in dev builds`,"update.toast.error":`Update check failed: {error}`,"forceUpdate.title":`Update ZCode to continue`,"forceUpdate.description":`Your current version v{currentVersion} is below the minimum supported version v{minimalVersion}. Update first before continuing with this client.`,"forceUpdate.currentVersion":`Current version`,"forceUpdate.minimalVersion":`Minimum version`,"forceUpdate.action.check":`Check and download update`,"forceUpdate.action.restart":`Restart to install update`,"forceUpdate.action.reload":`Reload page`,"desktopMenu.help.checkingForUpdates":`Checking for updates...`,"desktopMenu.help.updateAvailableVersion":`Update available {version}`,"desktopMenu.help.downloadingUpdateVersion":`Downloading update {version}...`,"desktopMenu.help.downloadingUpdateProgress":`Downloading update... {progress}`,"desktopMenu.help.restartUpdateAction":`Restart to update`,"desktopMenu.help.restartToUpdate":`Restart to update ({version})`,"postUpdateReleaseNotes.title":`Release notes`,"postUpdateReleaseNotes.acknowledge":`I know`,"projectSelector.heroTitle":`Open fast. Stay focused.`,"projectSelector.heroDescription":`Pick a workspace, jump back in, and keep the surface clean.`,"appError.title":`The app ran into a problem`,"appError.description":`The page error was caught, so the app does not need to fall back to a blank screen. Try again first, and refresh the app if the issue keeps happening.`,"appError.retry":`Try again`,"appError.reload":`Reload app`,"appError.hint":`Diagnostic details have been recorded to help investigation.`,"appError.details":`View component stack`,"appError.unknown":`Unknown error`,"appError.sectionTitle":`This section ran into a problem`,"appError.sectionDescription":`The error is isolated to this section, so the rest of the app can keep running. Try this section again first, and refresh the app if the issue keeps happening.`,"appError.sectionRetry":`Try this section again`,"appError.sectionHint":`Diagnostic details have been recorded to help investigation.`,"workspace.openWorkspace":`Open workspace`,"workspace.openFolder":`Open folder`,"workspace.openPluginsSettings":`Plugin Marketplace`,"workspace.backToWorkspace":`Back to workspace`,"workspace.wslUncPrompt.title":`Open this through WSL remote connection?`,"workspace.wslUncPrompt.description":`You selected a WSL path:
36
36
  {path}
37
37
 
38
- We recommend opening it through WSL connection, though you can still continue with the path.`,"workspace.wslUncPrompt.openWsl":`Open WSL connection`,"workspace.wslUncPrompt.continuePath":`Continue with path`,"taskList.codexConnectivityUnavailable":`Warmup could not reach {host}. Starting a conversation may fail until the network is available.`,"workspaceSidebar.workspaces":`Tasks`,"workspaceSidebar.archivedTasks":`Archived`,"workspaceSidebar.taskViewOptions":`Filter and sort`,"workspaceSidebar.organize":`View`,"workspaceSidebar.organizeGrouped":`Group`,"workspaceSidebar.organizeByProject":`Project`,"workspaceSidebar.conversationsSection":`Tasks`,"workspaceSidebar.projectsSection":`Projects`,"workspaceSidebar.newConversation":`New task`,"workspaceSidebar.reorderSection":`Move {section} section`,"workspaceSidebar.sortBy":`Sort by`,"workspaceSidebar.sortByCreated":`Created`,"workspaceSidebar.sortByUpdated":`Updated`,"workspaceSidebar.reconnect":`Reconnect`,"workspaceSidebar.sourceTaskUnavailable":`This device is not ready. Reconnect it first.`,"workspaceSidebar.connectIdentifyTitle":`Connect this device`,"workspaceSidebar.connectionOffline":`Offline`,"workspaceSidebar.openRemoteProject":`Open remote project`,"workspaceSidebar.remoteProject":`Remote project`,"workspaceSidebar.connectionDetails":`View connection details for {device}`,"workspaceSidebar.openProjectHint":`Click the project name to open it`,"workspaceSidebar.reconnectProjectHint":`Click the project name to reconnect and open this directory`,"workspaceSidebar.projectPath":`Directory`,"workspaceSidebar.projectDevice":`Device`,"workspaceSidebar.projectLine":`Connection`,"settings.source.pending":`Not connected`,"settings.source.pendingDescription":`Device details update automatically after connecting`,"workspaceSidebar.connecting":`Connecting`,"workspaceSidebar.recoveringAutomatic":`Recovering connection automatically`,"workspaceSidebar.recoveringAutomaticShort":`Recovering {attempt}/{limit}`,"workspaceSidebar.manageDevice":`Manage in settings`,"workspaceSidebar.newRemoteConnection":`New remote connection…`,"workspaceSidebar.recoveringAutomaticAttempt":`Recovering connection automatically ({attempt}/{limit})`,"workspaceSidebar.reconnectingManual":`Reconnecting manually`,"workspaceSidebar.notConnected":`Not connected`,"remote.error.sourceServerInstallRequired":`The remote device is not installed. Confirm installation to continue.`,"remote.error.sourceServerIdentityChangePending":`The connection target identity has changed. Confirm whether to use it as a new device.`,"remote.error.credentialsRequired":`No usable SSH password or private-key credential is available. Return to settings to add one.`,"remote.error.sourceServerUpgradeRequired":`remote device is incompatible with this ZCode Desktop version and must be upgraded.`,"remote.error.sourceServerRunningTasks":`remote device still has running tasks. Wait for them to finish or confirm a forced update.`,"remote.error.workspaceTaskIdentityConflict":`This remote directory contains task identity conflicts that cannot be merged automatically.`,"remote.error.workspaceConfigConflict":`This remote directory contains configuration conflicts that cannot be merged automatically.`,"remote.error.bindCanceled":`The remote workspace attachment was canceled.`,"remote.error.bindSessionMissing":`The remote workspace session is no longer available. Reconnect and try again.`,"remote.error.workspaceDirectoryUnavailable":`The remote project directory is missing, is not a folder, or cannot be accessed. Check the directory and permissions, then try again.`,"remote.error.recoveryBudgetExhausted":`Automatic recovery stopped after {attempt}/{limit} attempts. Reconnect manually to try again.`,"remote.error.workspaceMigrationPlanDiverged":`A new workspace identity appeared while migration was paused. Review the migration report before retrying.`,"remote.error.workspaceSessionGenerationChanged":`The session database changed while migration was paused. Restore the recorded generation before retrying.`,"remote.error.hostUnreachable":`Unable to connect to host`,"remote.error.connectionTimeout":`Connection timed out`,"remote.error.hostNotFound":`Host not found`,"remote.error.hostKeyChanged":`Host identity has changed`,"remote.error.downloadFailed":`Download failed`,"remote.error.uploadFailed":`Upload failed`,"remote.error.preflightFailed":`Remote environment check failed`,"remote.error.installFailed":`Remote installation failed`,"remote.error.spaceInsufficient":`Not enough space on remote device`,"remote.error.permissionDenied":`Remote write permission denied`,"remote.error.connectionCanceled":`Connection canceled`,"remote.error.unknown":`Connection failed`,"settings.source.recentLog":`View recent logs`,"remote.error.retryableHint":`You can try again later.`,"remote.error.connectionClosed":`The remote connection was closed`,"workspaceSidebar.unavailableLocalDirectory":`The workspace directory does not exist or cannot be accessed. You can only view history for now. Restore the directory and restart ZCode to continue.`,"workspaceSidebar.toggleSidebar":`Toggle sidebar`,"workspaceSidebar.resizeSidebar":`Resize sidebar`,"workspaceSidebar.showFileTree":`Show files`,"workspaceFileTree.title":`Workspace`,"workspaceFileTree.backToTasks":`Back to tasks`,"workspaceFileTree.refresh":`Refresh file tree`,"workspaceFileTree.empty":`This directory is empty.`,"workspaceFileTree.noResults":`No matching files.`,"workspaceFileTree.searchLabel":`Search files`,"workspaceFileTree.searchPlaceholder":`Search files...`,"workspaceFileTree.clearSearch":`Clear file search`,"workspaceFileTree.showChangedFiles":`Show changed files only`,"workspaceFileTree.showAllFiles":`Show all files`,"workspaceFileTree.readFailed":`Failed to read directory`,"workspaceFileTree.openWith":`Open with`,"workspaceFileTree.openInBrowser":`Open in built-in browser`,"workspaceFileTree.openFailed":`Could not open this item`,"workspaceFileTree.addToChat":`Add to chat`,"workspaceFileTree.gitStatus.ignored":`Ignored`,"ssh.trigger":`SSH Connection`,"ssh.title":`SSH Remote connection`,"ssh.host":`Host`,"ssh.hostPlaceholder":`Enter host address or IP, e.g. 192.168.1.100`,"ssh.port":`Port`,"ssh.username":`Username`,"ssh.usernamePlaceholder":`Enter username, e.g. root`,"ssh.authMethod":`Authentication method`,"ssh.auth.password":`Password`,"ssh.auth.privateKey":`Private key`,"ssh.assetInstallMode":`Resource download method`,"ssh.advancedOptions":`Advanced options`,"ssh.assetInstallMode.local-download-upload":`Download locally, then upload`,"ssh.assetInstallMode.remote-download":`Download on remote server`,"ssh.assetInstallModeDescription":`Remote server download reduces upload waiting, but the server must reach the ZCode CDN and have download, extract, and checksum tools.`,"ssh.password":`Password`,"ssh.passwordPlaceholder":`Enter your SSH password`,"ssh.privateKey":`Private key`,"ssh.privateKeyPlaceholder":`Select or enter a private key file path`,"ssh.privateKeyPassphrase":`Private key passphrase (optional)`,"ssh.privateKeyPassphrasePlaceholder":`Enter your private key passphrase`,"ssh.privateKeySelect":`Choose private key file`,"ssh.configAlias":`SSH config alias (optional)`,"ssh.configAliasPlaceholder":`No alias selected`,"ssh.configAliasSearchPlaceholder":`Search SSH config alias`,"ssh.configAliasEmpty":`No SSH config aliases available on this machine.`,"ssh.configAliasLoadFailed":`Failed to load SSH config aliases. You can still enter connection info manually.`,"ssh.configAliasDescription":`Prefilled host, port, username, and private key from ~/.ssh/config; editing any field detaches the alias.`,"ssh.connect":`Connect`,"ssh.cancel":`Cancel`,"ssh.connecting":`Connecting...`,"ssh.success":`Connected. Opened in a new window.`,"ssh.validation.hostRequired":`Enter a host`,"ssh.validation.usernameRequired":`Enter a username`,"ssh.importFromConfig":`Import from SSH config`,"ssh.importEmpty":`No SSH config hosts found`,"ssh.configAliasLinked":`Linked to Host {alias}`,"ssh.configAliasUnlink":`Unlink`,"ssh.configAliasLinkedHint":`Editing any field unlinks it`,"ssh.pasteRecognized":`Recognized {target}`,"ssh.validation.passwordRequired":`Password is required`,"ssh.validation.privateKeyRequired":`Private key path is required`,"common.back":`Back`,"common.next":`Next`,"remote.selection.step":`Select device`,"remote.selection.connect":`Connect`,"remote.selection.search":`Search devices, Hosts or containers`,"remote.selection.saved":`Saved devices`,"remote.selection.aliases":`Hosts from SSH config`,"remote.selection.wsl":`WSL distributions`,"remote.selection.docker":`Running containers`,"remote.selection.empty":`No matching devices. Create a connection below.`,"remote.selection.new.ssh":`New SSH connection`,"remote.selection.new.wsl":`Enter WSL manually`,"remote.selection.new.docker":`Enter Docker manually`,"remote.selection.new.server":`Development Server`,"remote.selection.keyboard":`Tab / ↑↓ to select · Enter to connect · Click a recent directory to open`,"remote.selection.back":`Back to list`,"remote.background.ready":`Connection complete`,"remote.background.continue":`Continue`,"remote.background.review":`View or resolve`,"remote.background.cancel":`Cancel connection`,"remote.minimized.device":`Continue choosing a device`,"remote.minimized.kind":`Continue choosing a device`,"remote.minimized.settings":`Continue setting up the connection`,"remote.minimized.directory":`Choose a directory on {device}`,"remote.minimized.resume":`Click to resume the connection wizard`,"remote.minimized.connecting":`Connecting to {device}…`,"remote.minimized.failed":`Connection to {device} failed`,"remote.minimized.waiting":`Waiting for confirmation or information`,"ssh.validation.port":`Port must be an integer from 1 to 65535`,"ssh.showPassword":`Show password`,"ssh.hidePassword":`Hide password`,"docker.inputMode.select":`Select a running container`,"docker.inputMode.manual":`Enter a container manually`,"remote.trigger":`Remote connection`,"remote.wizard":`Remote connect`,"remoteConnection.feedback":`Feedback`,"remote.step.directory":`Choose directory`,"remote.deviceStepTitle":`Connect remotely`,"remote.deviceStepDescription":`Choose a saved connection, or add a new one.`,"remote.deviceChat":`Chat on this device`,"remote.deviceConnectChat":`Connect and chat`,"remote.deviceReconnect":`Connect`,"remote.deviceReinstall":`Reinstall and connect`,"remote.deviceIdentify":`Connect`,"remote.directServer":`Direct server`,"remote.manage":`Manage`,"remote.settingsStepTitle":`New connection`,"remote.history.empty":`No matching saved connections`,"remote.connectingStepTitle":`Establish link`,"remote.connectingStepDescription":`Connecting through {method}…`,"remote.connectingSubtitleConnected":`Connected to {device} · ready to choose a directory`,"remote.connectingSubtitleUpdating":`Updating the remote server`,"remote.phaseSub.uploading":`Uploading the archive`,"remote.phaseSub.extracting":`Extracting server files`,"remote.phaseSub.verifyingArchive":`Verifying the archive`,"remote.phaseSub.verifyingFiles":`Verifying server files`,"remote.phaseSub.restarting":`Restarting the remote server`,"remote.connectingSubtitleFailed":`Connection failed · retry, or adjust the configuration and try again`,"remote.phase.channel":`Connect to device`,"remote.phase.identify":`Identify device`,"remote.phase.deploy":`Install ZCode Server`,"remote.phase.handshake":`Start and check compatibility`,"remote.progress.step":`Step {current}/{total}`,"remote.progress.elapsedSeconds":`{seconds}s elapsed`,"remote.progress.elapsedMinutesSeconds":`{minutes}m {seconds}s elapsed`,"remote.progress.copyError":`Copy error details`,"remote.progress.copied":`Copied`,"remote.link.local":`This device`,"remote.link.localVersion":`ZCode v{version}`,"remote.link.deviceHint":`Device details appear after connecting`,"remote.link.devicePending":`Remote device`,"remote.recognizedDevice":`Connected to device {device}`,"remote.recognizedDeviceBody":`This connection ({profile}) is ready; task and workspace history stays unchanged.`,"remote.connectedBanner":`Connected {device} · {profile} · {version}`,"remote.connectedSummary":`Connection ready: {device}`,"remote.remoteRecord":`Remote record`,"remote.quickOpenWithHistory":`Quick open — recent and known remote workspaces`,"remote.syncAll":`Sync all`,"remote.syncSkills":`Sync skills to this device`,"remote.syncMcp":`Sync MCP config`,"remote.syncPlugins":`Sync plugins`,"remote.collapseContinues":`Connection continues in the background when collapsed`,"remote.goToDirectory":`Go to choose directory`,"remote.openWorkspaceHere":`Open workspace here`,"remote.useRemoteDownload":`Download directly on the device`,"remote.errorRetry":`Retry`,"remote.renameDevice":`Device name`,"remote.renameDeviceHint":`Give it a memorable name on first connect; change it anytime in Settings · Remote devices`,"remote.quickOpen":`Quick open`,"remote.connectionLogLines":`{count} line(s)`,"remote.errorPanel.uploadFailedTitle":`Asset upload failed`,"remote.errorPanel.uploadFailedHint":`If the target server has internet access, "Download on remote server" is usually faster.`,"remote.phaseSub.channelEstablished.ssh":`Connected to the SSH host`,"remote.phaseSub.channelEstablished.wsl":`Connected to the distribution`,"remote.phaseSub.channelEstablished.docker":`Connected to the container`,"remote.phaseSub.channelEstablished":`Connected to device`,"remote.phaseSub.identifyExisting":`Connected to device {device}`,"remote.phaseSub.identifyNew":`New device · ZCode Server not installed`,"remote.phaseSub.deploySkipped":`Remote already on v{version} · deployment skipped`,"remote.phaseSub.deployWaitingConfirm":`Waiting for install confirmation…`,"remote.phaseSub.deployUploading":`Uploading {file} · {sent} / {total}`,"remote.phaseSub.installed":`Installed; starting the connection`,"remote.phaseSub.uploadFailed":`Installation failed: {reason}`,"remote.phaseSub.handshakeDone":`systemd --user · port {port}`,"remote.phaseSub.readyOnline":`Device online; workspace history ready`,"remote.sourceServerInstallCancelled":`Installation cancelled. You can retry when ready.`,"webRemoteControl.trigger":`Mobile remote control`,"webRemoteControl.triggerStatus.idle":`Remote control is off`,"webRemoteControl.triggerStatus.starting":`Remote control is starting`,"webRemoteControl.triggerStatus.waiting":`Waiting for phone`,"webRemoteControl.triggerStatus.connecting":`Connecting phone`,"webRemoteControl.triggerStatus.connected":`Phone connected`,"webRemoteControl.triggerStatus.error":`Remote control failed`,"webRemoteControl.authRequired.title":`Sign in required`,"webRemoteControl.authRequired.description":`Sign in to control this computer from your phone. Use the same account on both devices.`,"webRemoteControl.authRequired.login":`Sign in`,"webRemoteControl.title":`Mobile remote control`,"webRemoteControl.description":`Scan the QR code or open the link on your phone to control this workspace.`,"webRemoteControl.statusLabel":`Session status`,"webRemoteControl.status.idle":`Idle`,"webRemoteControl.status.starting":`Starting`,"webRemoteControl.status.running":`Waiting for phone`,"webRemoteControl.status.connecting":`Connecting phone`,"webRemoteControl.status.active":`Phone connected`,"webRemoteControl.status.error":`Connection failed`,"webRemoteControl.themeMenu.trigger":`Choose theme`,"webRemoteControl.statusDetail.idle":`Ready to connect.`,"webRemoteControl.statusDetail.starting":`Starting remote control...`,"webRemoteControl.statusDetail.running":`Scan the QR code or open the link on your phone.`,"webRemoteControl.statusDetail.connecting":`Phone is connecting...`,"webRemoteControl.statusDetail.active":`Your phone can control this workspace.`,"webRemoteControl.statusDetail.error":`Could not start mobile remote control.`,"webRemoteControl.generating":`Preparing QR code...`,"webRemoteControl.qrAlt":`Web remote control QR code`,"webRemoteControl.mobileQr.title":`Scan from phone`,"webRemoteControl.mobileQr.description":`Use your phone camera to open this workspace remotely.`,"webRemoteControl.statusTag.phone":`Phone`,"webRemoteControl.statusTag.ready":`Ready`,"webRemoteControl.botChannel.title":`Use a bot channel`,"webRemoteControl.botChannel.description":`Connect a chat bot for longer-running mobile access.`,"webRemoteControl.botChannel.weixin.title":`Weixin`,"webRemoteControl.botChannel.weixin.description":`Open this workspace from Weixin chat.`,"webRemoteControl.botChannel.feishu.title":`Feishu`,"webRemoteControl.botChannel.feishu.description":`Open this workspace from Feishu.`,"webRemoteControl.botChannel.lark.title":`Lark`,"webRemoteControl.botChannel.lark.description":`Open this workspace from Lark.`,"webRemoteControl.botChannel.telegram.title":`Telegram`,"webRemoteControl.botChannel.telegram.description":`Open this workspace from Telegram.`,"webRemoteControl.botChannel.configure":`Configure in bot channels`,"webRemoteControl.botChannel.manageBots":`Manage bots`,"webRemoteControl.linkLabel":`Remote control link`,"webRemoteControl.linkPending":`The remote control link will appear here once ready.`,"webRemoteControl.singlePageNote":`This relay pairing supports one phone page at a time. If it is already open elsewhere, close the old page first.`,"webRemoteControl.copyLink.description":`Can't scan? Open the link on your phone.`,"webRemoteControl.failure.sessionNotFound":`This Web remote control link is no longer valid. Start it again from desktop.`,"webRemoteControl.failure.sessionExpired":`This Web remote control session has already ended. Generate a new link from desktop to continue.`,"webRemoteControl.failure.sessionConflict":`This link is already being used by another page. Close the other page and scan again.`,"webRemoteControl.failure.kicked":`The relay kicked this pairing. Close the other page and generate a new QR code from desktop.`,"webRemoteControl.failure.workspaceClosed":`The shared desktop window has been closed. Go back to desktop and start Web remote control again.`,"webRemoteControl.failure.desktopDisconnected":`The desktop side disconnected, so this Web remote control session can no longer continue.`,"webRemoteControl.failure.invalidMobileConnection":`The current mobile connection is no longer valid. Reload the page and reconnect.`,"webRemoteControl.failure.desktopBootstrapTimeout":`The desktop window did not respond in time. Make sure it is still running, then reload.`,"webRemoteControl.failure.connectionRecoveryTimeout":`The mobile connection did not recover in time, so Web remote control cannot keep syncing yet.`,"webRemoteControl.failure.relayUnavailable":`The external relay connection is unavailable. Make sure desktop is online, then try again.`,"webRemoteControl.failure.unsupportedAction":`Web remote control mode can only open workspaces that are already open in the current desktop window.`,"webRemoteControl.failure.unexpectedError":`Could not start mobile remote control. Try again from desktop.`,"webRemoteControl.copyLink":`Copy link`,"webRemoteControl.copyLink.copied":`Remote control link copied`,"webRemoteControl.copyLinkFailed":`Could not copy remote control link: {error}`,"webRemoteControl.refreshQr":`Refresh QR`,"webRemoteControl.refreshQr.confirmTitle":`Refresh QR code?`,"webRemoteControl.refreshQr.confirmDescription":`Refreshing will invalidate any remote control links that were copied or scanned before. Connected phones will need to scan the new QR code.`,"webRemoteControl.refreshQr.success":`Remote control QR refreshed`,"webRemoteControl.refreshQr.failed":`Could not refresh remote control QR: {error}`,"webRemoteControl.stop":`Stop`,"webRemoteControl.switchWorkspace":`Switch workspace`,"webRemoteControl.expandNavigation":`Expand tasks and workspaces`,"webRemoteControl.collapseNavigation":`Collapse tasks and workspaces`,"webRemoteControl.homeOnlyWorkspaces":`Workspaces`,"webRemoteControl.noSwitchableWorkspaces":`No switchable workspaces`,"webRemoteControl.noTasks":`No tasks available in the current desktop window`,"webRemoteControl.openTask":`Open task {title}`,"webRemoteControl.taskStatus.idle":`Idle`,"webRemoteControl.taskStatus.running":`Running`,"webRemoteControl.taskStatus.completed":`Done`,"webRemoteControl.taskStatus.error":`Error`,"webRemoteControl.switchDevice":`Switch device`,"webRemoteControl.unnamedDevice":`Unnamed device`,"webRemoteControl.mobileShell.backHome":`Back to task home`,"webRemoteControl.mobileShell.chatTitle":`Task chat`,"webRemoteControl.mobileShell.reconnecting":`Reconnecting automatically...`,"webRemoteControl.stopSuccess":`Web remote control stopped`,"webRemoteControl.startFailed":`Failed to start Web remote control: {error}`,"webRemoteControl.stopFailed":`Failed to stop Web remote control: {error}`,"remote.selectDirectoryTitle":`Choose directory`,"remote.selectDirectoryDescription":`Choose a directory on {method} as the workspace.`,"remote.backToConnection":`Back to configuration`,"remote.selectedMethod":`Selected method`,"remote.methods":`Connection method`,"remote.connectionType":`Connection type`,"remote.kind.ssh":`SSH`,"remote.kind.server":`Server`,"remote.kind.wsl":`WSL`,"remote.kind.docker":`Docker`,"remote.kind.server.note":`Server (direct connection to a running ZCode service) is shown only in development builds.`,"remote.addAndConnect":`Add and connect`,"remote.connect":`Connect`,"remote.connecting":`Connecting...`,"remote.minimize":`Collapse — connection will continue`,"remote.startConnection":`Establish link`,"remote.retryConnection":`Retry connection`,"remote.connectingHint":`Connecting with {method}.`,"remote.connectionLog":`Connection log`,"remote.connectionLogEmpty":`waiting for connection output...`,"remote.connectingConfirmTitle":`Stop the current connection?`,"remote.sourceServerInstallTitle":`ZCode Server installation required`,"remote.sourceServerInstallDescription":`ZCode will upload the matching release, install it under ~/.zcode/server, and start the background daemon. Existing legacy remote files will be preserved.`,"remote.sourceServerInstallConfirm":`Install and continue`,"remote.installTarget":`Target account`,"remote.installVersion":`Install version`,"remote.installLocation":`Install location`,"remote.sourceServerBoundaryTitle":`Local offline, tasks keep running`,"remote.sourceServerBoundaryDescription":`Remote tasks keep running, even when you close ZCode or put your computer to sleep.`,"remote.sourceServerBoundaryEyebrow":`New remote connection`,"remote.sourceServerBoundaryLocalDevice":`This computer`,"remote.sourceServerBoundaryLocalStatus":`Sleeping / closed`,"remote.sourceServerBoundaryRemoteTask":`Remote tasks`,"remote.sourceServerBoundaryRemoteStatus":`Still running`,"settings.source.label":`Source`,"settings.source.offline":`Not connected`,"settings.source.uninstalled":`Uninstalled`,"settings.source.operationFailed":`The operation failed. Try again later.`,"settings.source.versionDetails":`Current v{current} · Minimum compatible v{minimum} · Remote tasks pause briefly during the update`,"settings.source.managementTitle":`Remote connections`,"settings.remoteDevicesTitle":`Remote devices`,"settings.remoteDevicesDescription":`Manage your servers, WSL distributions, and Docker containers.`,"settings.source.newConnection":`New connection`,"settings.source.addRoute":`Add a connection — use another SSH target for this device`,"settings.source.archivedAt":`archived {time}`,"settings.source.retiredReason.reinstalled":`Archived after the connection target identity changed; kept for records`,"settings.source.retiredEntryNote":`Connection target changed; new identity confirmed`,"settings.source.retiredNameSuffix":` (old)`,"settings.source.reinstallRequired":`ZCode Server was uninstalled remotely; connection and task records remain on this device.`,"settings.source.reinstallAndConnect":`Reinstall and connect`,"settings.source.copyDeviceId":`Copy device ID`,"common.justNow":`just now`,"common.minutesAgo":`{count}m ago`,"common.hoursAgo":`{count}h ago`,"common.yesterday":`yesterday`,"settings.source.profileName":`Connection name`,"settings.source.linesTitle":`Connections`,"settings.source.editConnection":`Edit`,"settings.source.editConnectionTitle":`Edit connection`,"settings.source.editConnectionDescription":`Connection changes take effect the next time you connect. Existing projects and tasks are unchanged.`,"settings.source.deviceName":`Device name`,"settings.source.removeSourceServer":`Remove device`,"settings.source.removeOpenProjects":`These open projects will be disconnected:
38
+ We recommend opening it through WSL connection, though you can still continue with the path.`,"workspace.wslUncPrompt.openWsl":`Open WSL connection`,"workspace.wslUncPrompt.continuePath":`Continue with path`,"taskList.codexConnectivityUnavailable":`Warmup could not reach {host}. Starting a conversation may fail until the network is available.`,"workspaceSidebar.workspaces":`Tasks`,"workspaceSidebar.archivedTasks":`Archived`,"workspaceSidebar.taskViewOptions":`Filter and sort`,"workspaceSidebar.organize":`View`,"workspaceSidebar.organizeGrouped":`Group`,"workspaceSidebar.organizeByProject":`Project`,"workspaceSidebar.conversationsSection":`Tasks`,"workspaceSidebar.projectsSection":`Projects`,"workspaceSidebar.newConversation":`New task`,"workspaceSidebar.reorderSection":`Move {section} section`,"workspaceSidebar.sortBy":`Sort by`,"workspaceSidebar.sortByCreated":`Created`,"workspaceSidebar.sortByUpdated":`Updated`,"workspaceSidebar.reconnect":`Reconnect`,"workspaceSidebar.sourceTaskUnavailable":`This device is not ready. Reconnect it first.`,"workspaceSidebar.connectIdentifyTitle":`Connect this device`,"workspaceSidebar.connectionOffline":`Offline`,"workspaceSidebar.openRemoteProject":`Open remote project`,"workspaceSidebar.remoteProject":`Remote project`,"workspaceSidebar.connectionDetails":`View connection details for {device}`,"workspaceSidebar.openProjectHint":`Click the project name to open it`,"workspaceSidebar.reconnectProjectHint":`Click the project name to reconnect and open this directory`,"workspaceSidebar.projectPath":`Directory`,"workspaceSidebar.projectDevice":`Device`,"workspaceSidebar.projectLine":`Connection`,"settings.source.pending":`Not connected`,"settings.source.pendingDescription":`Device details update automatically after connecting`,"workspaceSidebar.connecting":`Connecting`,"workspaceSidebar.recoveringAutomatic":`Recovering connection automatically`,"workspaceSidebar.recoveringAutomaticShort":`Recovering {attempt}/{limit}`,"workspaceSidebar.manageDevice":`Manage in settings`,"workspaceSidebar.newRemoteConnection":`New remote connection…`,"workspaceSidebar.recoveringAutomaticAttempt":`Recovering connection automatically ({attempt}/{limit})`,"workspaceSidebar.reconnectingManual":`Reconnecting manually`,"workspaceSidebar.notConnected":`Not connected`,"remote.error.sourceServerInstallRequired":`The remote device is not installed. Confirm installation to continue.`,"remote.error.sourceServerIdentityChangePending":`The connection target identity has changed. Confirm whether to use it as a new device.`,"remote.error.credentialsRequired":`No usable SSH password or private-key credential is available. Return to settings to add one.`,"remote.error.sourceServerUpgradeRequired":`remote device is incompatible with this ZCode Desktop version and must be upgraded.`,"remote.error.sourceServerRunningTasks":`remote device still has running tasks. Wait for them to finish or confirm a forced update.`,"remote.error.workspaceTaskIdentityConflict":`This remote directory contains task identity conflicts that cannot be merged automatically.`,"remote.error.workspaceConfigConflict":`This remote directory contains configuration conflicts that cannot be merged automatically.`,"remote.error.bindCanceled":`The remote workspace attachment was canceled.`,"remote.error.bindSessionMissing":`The remote workspace session is no longer available. Reconnect and try again.`,"remote.error.workspaceDirectoryUnavailable":`The remote project directory is missing, is not a folder, or cannot be accessed. Check the directory and permissions, then try again.`,"remote.error.recoveryBudgetExhausted":`Automatic recovery stopped after {attempt}/{limit} attempts. Reconnect manually to try again.`,"remote.error.workspaceMigrationPlanDiverged":`A new workspace identity appeared while migration was paused. Review the migration report before retrying.`,"remote.error.workspaceSessionGenerationChanged":`The session database changed while migration was paused. Restore the recorded generation before retrying.`,"remote.error.hostUnreachable":`Unable to connect to host`,"remote.error.connectionTimeout":`Connection timed out`,"remote.error.hostNotFound":`Host not found`,"remote.error.hostKeyChanged":`Host identity has changed`,"remote.error.downloadFailed":`Download failed`,"remote.error.uploadFailed":`Upload failed`,"remote.error.preflightFailed":`Remote environment check failed`,"remote.error.installFailed":`Remote installation failed`,"remote.error.spaceInsufficient":`Not enough space on remote device`,"remote.error.permissionDenied":`Remote write permission denied`,"remote.error.connectionCanceled":`Connection canceled`,"remote.error.unknown":`Connection failed`,"settings.source.recentLog":`View recent logs`,"remote.error.retryableHint":`You can try again later.`,"remote.error.connectionClosed":`The remote connection was closed`,"workspaceSidebar.unavailableLocalDirectory":`The workspace directory does not exist or cannot be accessed. You can only view history for now. Restore the directory and restart ZCode to continue.`,"workspaceSidebar.toggleSidebar":`Toggle sidebar`,"workspaceSidebar.resizeSidebar":`Resize sidebar`,"workspaceSidebar.showFileTree":`Show files`,"workspaceFileTree.title":`Workspace`,"workspaceFileTree.backToTasks":`Back to tasks`,"workspaceFileTree.refresh":`Refresh file tree`,"workspaceFileTree.empty":`This directory is empty.`,"workspaceFileTree.noResults":`No matching files.`,"workspaceFileTree.searchLabel":`Search files`,"workspaceFileTree.searchPlaceholder":`Search files...`,"workspaceFileTree.clearSearch":`Clear file search`,"workspaceFileTree.showChangedFiles":`Show changed files only`,"workspaceFileTree.showAllFiles":`Show all files`,"workspaceFileTree.readFailed":`Failed to read directory`,"workspaceFileTree.openWith":`Open with`,"workspaceFileTree.openInBrowser":`Open in built-in browser`,"workspaceFileTree.openFailed":`Could not open this item`,"workspaceFileTree.addToChat":`Add to chat`,"workspaceFileTree.gitStatus.ignored":`Ignored`,"ssh.trigger":`SSH Connection`,"ssh.title":`SSH Remote connection`,"ssh.host":`Host`,"ssh.hostPlaceholder":`Enter host address or IP, e.g. 192.168.1.100`,"ssh.port":`Port`,"ssh.username":`Username`,"ssh.usernamePlaceholder":`Enter username, e.g. root`,"ssh.authMethod":`Authentication method`,"ssh.auth.password":`Password`,"ssh.auth.privateKey":`Private key`,"ssh.assetInstallMode":`Resource download method`,"ssh.advancedOptions":`Advanced options`,"ssh.assetInstallMode.local-download-upload":`Download locally, then upload`,"ssh.assetInstallMode.remote-download":`Download on remote server`,"ssh.assetInstallModeDescription":`Remote server download reduces upload waiting, but the server must reach the ZCode CDN and have download, extract, and checksum tools.`,"ssh.password":`Password`,"ssh.passwordPlaceholder":`Enter your SSH password`,"ssh.privateKey":`Private key`,"ssh.privateKeyPlaceholder":`Select or enter a private key file path`,"ssh.privateKeyPassphrase":`Private key passphrase (optional)`,"ssh.privateKeyPassphrasePlaceholder":`Enter your private key passphrase`,"ssh.privateKeySelect":`Choose private key file`,"ssh.configAlias":`SSH config alias (optional)`,"ssh.configAliasPlaceholder":`No alias selected`,"ssh.configAliasSearchPlaceholder":`Search SSH config alias`,"ssh.configAliasEmpty":`No SSH config aliases available on this machine.`,"ssh.configAliasLoadFailed":`Failed to load SSH config aliases. You can still enter connection info manually.`,"ssh.configAliasDescription":`Prefilled host, port, username, and private key from ~/.ssh/config; editing any field detaches the alias.`,"ssh.connect":`Connect`,"ssh.cancel":`Cancel`,"ssh.connecting":`Connecting...`,"ssh.success":`Connected. Opened in a new window.`,"ssh.validation.hostRequired":`Enter a host`,"ssh.validation.usernameRequired":`Enter a username`,"ssh.importFromConfig":`Import from SSH config`,"ssh.importEmpty":`No SSH config hosts found`,"ssh.configAliasLinked":`Linked to Host {alias}`,"ssh.configAliasUnlink":`Unlink`,"ssh.configAliasLinkedHint":`Editing any field unlinks it`,"ssh.pasteRecognized":`Recognized {target}`,"ssh.validation.passwordRequired":`Password is required`,"ssh.validation.privateKeyRequired":`Private key path is required`,"common.back":`Back`,"common.next":`Next`,"remote.selection.step":`Select device`,"remote.selection.connect":`Connect`,"remote.selection.search":`Search devices, Hosts or containers`,"remote.selection.saved":`Saved devices`,"remote.selection.aliases":`Hosts from SSH config`,"remote.selection.wsl":`WSL distributions`,"remote.selection.docker":`Running containers`,"remote.selection.empty":`No matching devices. Create a connection below.`,"remote.selection.new.ssh":`New SSH connection`,"remote.selection.new.wsl":`Enter WSL manually`,"remote.selection.new.docker":`Enter Docker manually`,"remote.selection.new.server":`Development Server`,"remote.selection.keyboard":`Tab / ↑↓ to select · Enter to connect · Click a recent directory to open`,"remote.selection.back":`Back to list`,"remote.background.ready":`Connection complete`,"remote.background.continue":`Continue`,"remote.background.review":`View or resolve`,"remote.background.cancel":`Cancel connection`,"remote.minimized.device":`Continue choosing a device`,"remote.minimized.kind":`Continue choosing a device`,"remote.minimized.settings":`Continue setting up the connection`,"remote.minimized.directory":`Choose a directory on {device}`,"remote.minimized.resume":`Click to resume the connection wizard`,"remote.minimized.connecting":`Connecting to {device}…`,"remote.minimized.failed":`Connection to {device} failed`,"remote.minimized.waiting":`Waiting for confirmation or information`,"ssh.validation.port":`Port must be an integer from 1 to 65535`,"ssh.showPassword":`Show password`,"ssh.hidePassword":`Hide password`,"docker.inputMode.select":`Select a running container`,"docker.inputMode.manual":`Enter a container manually`,"remote.trigger":`Remote connection`,"remote.wizard":`Remote connect`,"remoteConnection.feedback":`Feedback`,"remote.step.directory":`Choose directory`,"remote.deviceStepTitle":`Connect remotely`,"remote.deviceStepDescription":`Choose a saved connection, or add a new one.`,"remote.deviceChat":`Chat on this device`,"remote.deviceConnectChat":`Connect and chat`,"remote.deviceReconnect":`Connect`,"remote.deviceReinstall":`Reinstall and connect`,"remote.deviceIdentify":`Connect`,"remote.directServer":`Direct server`,"remote.manage":`Manage`,"remote.settingsStepTitle":`New connection`,"remote.history.empty":`No matching saved connections`,"remote.connectingStepTitle":`Establish link`,"remote.connectingStepDescription":`Connecting through {method}…`,"remote.connectingSubtitleConnected":`Connected to {device} · ready to choose a directory`,"remote.connectingSubtitleUpdating":`Updating the remote server`,"remote.phaseSub.uploading":`Uploading the archive`,"remote.phaseSub.extracting":`Extracting server files`,"remote.phaseSub.verifyingArchive":`Verifying the archive`,"remote.phaseSub.verifyingFiles":`Verifying server files`,"remote.phaseSub.restarting":`Restarting the remote server`,"remote.connectingSubtitleFailed":`Connection failed · retry, or adjust the configuration and try again`,"remote.phase.channel":`Connect to device`,"remote.phase.identify":`Identify device`,"remote.phase.deploy":`Install ZCode Server`,"remote.phase.handshake":`Start and check compatibility`,"remote.progress.step":`Step {current}/{total}`,"remote.progress.elapsedSeconds":`{seconds}s elapsed`,"remote.progress.elapsedMinutesSeconds":`{minutes}m {seconds}s elapsed`,"remote.progress.copyError":`Copy error details`,"remote.progress.copied":`Copied`,"remote.link.local":`This device`,"remote.link.localVersion":`ZCode v{version}`,"remote.link.deviceHint":`Device details appear after connecting`,"remote.link.devicePending":`Remote device`,"remote.recognizedDevice":`Connected to device {device}`,"remote.recognizedDeviceBody":`This connection ({profile}) is ready; task and workspace history stays unchanged.`,"remote.connectedBanner":`Connected {device} · {profile} · {version}`,"remote.connectedSummary":`Connection ready: {device}`,"remote.remoteRecord":`Remote record`,"remote.quickOpenWithHistory":`Quick open — recent and known remote workspaces`,"remote.syncAll":`Sync all`,"remote.syncSkills":`Sync skills to this device`,"remote.syncMcp":`Sync MCP config`,"remote.syncPlugins":`Sync plugins`,"remote.collapseContinues":`Connection continues in the background when collapsed`,"remote.goToDirectory":`Go to choose directory`,"remote.openWorkspaceHere":`Open workspace here`,"remote.useRemoteDownload":`Download directly on the device`,"remote.errorRetry":`Retry`,"remote.renameDevice":`Device name`,"remote.renameDeviceHint":`Give it a memorable name on first connect; change it anytime in Settings · Remote devices`,"remote.quickOpen":`Quick open`,"remote.connectionLogLines":`{count} line(s)`,"remote.errorPanel.uploadFailedTitle":`Asset upload failed`,"remote.errorPanel.uploadFailedHint":`If the target server has internet access, "Download on remote server" is usually faster.`,"remote.phaseSub.channelEstablished.ssh":`Connected to the SSH host`,"remote.phaseSub.channelEstablished.wsl":`Connected to the distribution`,"remote.phaseSub.channelEstablished.docker":`Connected to the container`,"remote.phaseSub.channelEstablished":`Connected to device`,"remote.phaseSub.identifyExisting":`Connected to device {device}`,"remote.phaseSub.identifyNew":`New device · ZCode Server not installed`,"remote.phaseSub.deploySkipped":`Remote already on v{version} · deployment skipped`,"remote.phaseSub.deployWaitingConfirm":`Waiting for install confirmation…`,"remote.phaseSub.deployUploading":`Uploading {file} · {sent} / {total}`,"remote.phaseSub.installed":`Installed; starting the connection`,"remote.phaseSub.uploadFailed":`Installation failed: {reason}`,"remote.phaseSub.handshakeDone":`systemd --user · port {port}`,"remote.phaseSub.readyOnline":`Device online; workspace history ready`,"remote.sourceServerInstallCancelled":`Installation cancelled. You can retry when ready.`,"webRemoteControl.trigger":`Mobile remote control`,"webRemoteControl.triggerStatus.idle":`Remote control is off`,"webRemoteControl.triggerStatus.starting":`Remote control is starting`,"webRemoteControl.triggerStatus.waiting":`Waiting for phone`,"webRemoteControl.triggerStatus.connecting":`Connecting phone`,"webRemoteControl.triggerStatus.connected":`Phone connected`,"webRemoteControl.triggerStatus.error":`Remote control failed`,"webRemoteControl.authRequired.title":`Sign in required`,"webRemoteControl.authRequired.description":`Sign in to control this computer from your phone. Use the same account on both devices.`,"webRemoteControl.authRequired.login":`Sign in`,"webRemoteControl.relay.title":`Browser remote control (self-hosted relay)`,"webRemoteControl.relay.description":`Sign in with your blog account on this machine to enable remote control. Only the bound account can control this computer from the relay URL in a mobile browser.`,"webRemoteControl.relay.status.bound":`Remote control enabled, bound account:`,"webRemoteControl.relay.status.unbound":`Remote control disabled: sign in with your blog account to enable`,"webRemoteControl.relay.unavailable":`Local connector is not running (remote control can only be configured on this machine)`,"webRemoteControl.relay.unreachable":`Cannot reach the local connector`,"webRemoteControl.relay.relayOnline":`Relay`,"webRemoteControl.relay.online":`online`,"webRemoteControl.relay.offline":`reconnecting`,"webRemoteControl.relay.username":`Blog account`,"webRemoteControl.relay.password":`Password`,"webRemoteControl.relay.login":`Sign in and enable remote control`,"webRemoteControl.relay.logout":`Disable remote control`,"webRemoteControl.relay.loginFailed":`Sign-in failed`,"webRemoteControl.title":`Mobile remote control`,"webRemoteControl.description":`Scan the QR code or open the link on your phone to control this workspace.`,"webRemoteControl.statusLabel":`Session status`,"webRemoteControl.status.idle":`Idle`,"webRemoteControl.status.starting":`Starting`,"webRemoteControl.status.running":`Waiting for phone`,"webRemoteControl.status.connecting":`Connecting phone`,"webRemoteControl.status.active":`Phone connected`,"webRemoteControl.status.error":`Connection failed`,"webRemoteControl.themeMenu.trigger":`Choose theme`,"webRemoteControl.statusDetail.idle":`Ready to connect.`,"webRemoteControl.statusDetail.starting":`Starting remote control...`,"webRemoteControl.statusDetail.running":`Scan the QR code or open the link on your phone.`,"webRemoteControl.statusDetail.connecting":`Phone is connecting...`,"webRemoteControl.statusDetail.active":`Your phone can control this workspace.`,"webRemoteControl.statusDetail.error":`Could not start mobile remote control.`,"webRemoteControl.generating":`Preparing QR code...`,"webRemoteControl.qrAlt":`Web remote control QR code`,"webRemoteControl.mobileQr.title":`Scan from phone`,"webRemoteControl.mobileQr.description":`Use your phone camera to open this workspace remotely.`,"webRemoteControl.statusTag.phone":`Phone`,"webRemoteControl.statusTag.ready":`Ready`,"webRemoteControl.botChannel.title":`Use a bot channel`,"webRemoteControl.botChannel.description":`Connect a chat bot for longer-running mobile access.`,"webRemoteControl.botChannel.weixin.title":`Weixin`,"webRemoteControl.botChannel.weixin.description":`Open this workspace from Weixin chat.`,"webRemoteControl.botChannel.feishu.title":`Feishu`,"webRemoteControl.botChannel.feishu.description":`Open this workspace from Feishu.`,"webRemoteControl.botChannel.lark.title":`Lark`,"webRemoteControl.botChannel.lark.description":`Open this workspace from Lark.`,"webRemoteControl.botChannel.telegram.title":`Telegram`,"webRemoteControl.botChannel.telegram.description":`Open this workspace from Telegram.`,"webRemoteControl.botChannel.configure":`Configure in bot channels`,"webRemoteControl.botChannel.manageBots":`Manage bots`,"webRemoteControl.linkLabel":`Remote control link`,"webRemoteControl.linkPending":`The remote control link will appear here once ready.`,"webRemoteControl.singlePageNote":`This relay pairing supports one phone page at a time. If it is already open elsewhere, close the old page first.`,"webRemoteControl.copyLink.description":`Can't scan? Open the link on your phone.`,"webRemoteControl.failure.sessionNotFound":`This Web remote control link is no longer valid. Start it again from desktop.`,"webRemoteControl.failure.sessionExpired":`This Web remote control session has already ended. Generate a new link from desktop to continue.`,"webRemoteControl.failure.sessionConflict":`This link is already being used by another page. Close the other page and scan again.`,"webRemoteControl.failure.kicked":`The relay kicked this pairing. Close the other page and generate a new QR code from desktop.`,"webRemoteControl.failure.workspaceClosed":`The shared desktop window has been closed. Go back to desktop and start Web remote control again.`,"webRemoteControl.failure.desktopDisconnected":`The desktop side disconnected, so this Web remote control session can no longer continue.`,"webRemoteControl.failure.invalidMobileConnection":`The current mobile connection is no longer valid. Reload the page and reconnect.`,"webRemoteControl.failure.desktopBootstrapTimeout":`The desktop window did not respond in time. Make sure it is still running, then reload.`,"webRemoteControl.failure.connectionRecoveryTimeout":`The mobile connection did not recover in time, so Web remote control cannot keep syncing yet.`,"webRemoteControl.failure.relayUnavailable":`The external relay connection is unavailable. Make sure desktop is online, then try again.`,"webRemoteControl.failure.unsupportedAction":`Web remote control mode can only open workspaces that are already open in the current desktop window.`,"webRemoteControl.failure.unexpectedError":`Could not start mobile remote control. Try again from desktop.`,"webRemoteControl.copyLink":`Copy link`,"webRemoteControl.copyLink.copied":`Remote control link copied`,"webRemoteControl.copyLinkFailed":`Could not copy remote control link: {error}`,"webRemoteControl.refreshQr":`Refresh QR`,"webRemoteControl.refreshQr.confirmTitle":`Refresh QR code?`,"webRemoteControl.refreshQr.confirmDescription":`Refreshing will invalidate any remote control links that were copied or scanned before. Connected phones will need to scan the new QR code.`,"webRemoteControl.refreshQr.success":`Remote control QR refreshed`,"webRemoteControl.refreshQr.failed":`Could not refresh remote control QR: {error}`,"webRemoteControl.stop":`Stop`,"webRemoteControl.switchWorkspace":`Switch workspace`,"webRemoteControl.expandNavigation":`Expand tasks and workspaces`,"webRemoteControl.collapseNavigation":`Collapse tasks and workspaces`,"webRemoteControl.homeOnlyWorkspaces":`Workspaces`,"webRemoteControl.noSwitchableWorkspaces":`No switchable workspaces`,"webRemoteControl.noTasks":`No tasks available in the current desktop window`,"webRemoteControl.openTask":`Open task {title}`,"webRemoteControl.taskStatus.idle":`Idle`,"webRemoteControl.taskStatus.running":`Running`,"webRemoteControl.taskStatus.completed":`Done`,"webRemoteControl.taskStatus.error":`Error`,"webRemoteControl.switchDevice":`Switch device`,"webRemoteControl.unnamedDevice":`Unnamed device`,"webRemoteControl.mobileShell.backHome":`Back to task home`,"webRemoteControl.mobileShell.chatTitle":`Task chat`,"webRemoteControl.mobileShell.reconnecting":`Reconnecting automatically...`,"webRemoteControl.stopSuccess":`Web remote control stopped`,"webRemoteControl.startFailed":`Failed to start Web remote control: {error}`,"webRemoteControl.stopFailed":`Failed to stop Web remote control: {error}`,"remote.selectDirectoryTitle":`Choose directory`,"remote.selectDirectoryDescription":`Choose a directory on {method} as the workspace.`,"remote.backToConnection":`Back to configuration`,"remote.selectedMethod":`Selected method`,"remote.methods":`Connection method`,"remote.connectionType":`Connection type`,"remote.kind.ssh":`SSH`,"remote.kind.server":`Server`,"remote.kind.wsl":`WSL`,"remote.kind.docker":`Docker`,"remote.kind.server.note":`Server (direct connection to a running ZCode service) is shown only in development builds.`,"remote.addAndConnect":`Add and connect`,"remote.connect":`Connect`,"remote.connecting":`Connecting...`,"remote.minimize":`Collapse — connection will continue`,"remote.startConnection":`Establish link`,"remote.retryConnection":`Retry connection`,"remote.connectingHint":`Connecting with {method}.`,"remote.connectionLog":`Connection log`,"remote.connectionLogEmpty":`waiting for connection output...`,"remote.connectingConfirmTitle":`Stop the current connection?`,"remote.sourceServerInstallTitle":`ZCode Server installation required`,"remote.sourceServerInstallDescription":`ZCode will upload the matching release, install it under ~/.zcode/server, and start the background daemon. Existing legacy remote files will be preserved.`,"remote.sourceServerInstallConfirm":`Install and continue`,"remote.installTarget":`Target account`,"remote.installVersion":`Install version`,"remote.installLocation":`Install location`,"remote.sourceServerBoundaryTitle":`Local offline, tasks keep running`,"remote.sourceServerBoundaryDescription":`Remote tasks keep running, even when you close ZCode or put your computer to sleep.`,"remote.sourceServerBoundaryEyebrow":`New remote connection`,"remote.sourceServerBoundaryLocalDevice":`This computer`,"remote.sourceServerBoundaryLocalStatus":`Sleeping / closed`,"remote.sourceServerBoundaryRemoteTask":`Remote tasks`,"remote.sourceServerBoundaryRemoteStatus":`Still running`,"settings.source.label":`Source`,"settings.source.offline":`Not connected`,"settings.source.uninstalled":`Uninstalled`,"settings.source.operationFailed":`The operation failed. Try again later.`,"settings.source.versionDetails":`Current v{current} · Minimum compatible v{minimum} · Remote tasks pause briefly during the update`,"settings.source.managementTitle":`Remote connections`,"settings.remoteDevicesTitle":`Remote devices`,"settings.remoteControl.title":`Remote Control`,"settings.remoteDevicesDescription":`Manage your servers, WSL distributions, and Docker containers.`,"settings.source.newConnection":`New connection`,"settings.source.addRoute":`Add a connection — use another SSH target for this device`,"settings.source.archivedAt":`archived {time}`,"settings.source.retiredReason.reinstalled":`Archived after the connection target identity changed; kept for records`,"settings.source.retiredEntryNote":`Connection target changed; new identity confirmed`,"settings.source.retiredNameSuffix":` (old)`,"settings.source.reinstallRequired":`ZCode Server was uninstalled remotely; connection and task records remain on this device.`,"settings.source.reinstallAndConnect":`Reinstall and connect`,"settings.source.copyDeviceId":`Copy device ID`,"common.justNow":`just now`,"common.minutesAgo":`{count}m ago`,"common.hoursAgo":`{count}h ago`,"common.yesterday":`yesterday`,"settings.source.profileName":`Connection name`,"settings.source.linesTitle":`Connections`,"settings.source.editConnection":`Edit`,"settings.source.editConnectionTitle":`Edit connection`,"settings.source.editConnectionDescription":`Connection changes take effect the next time you connect. Existing projects and tasks are unchanged.`,"settings.source.deviceName":`Device name`,"settings.source.removeSourceServer":`Remove device`,"settings.source.removeOpenProjects":`These open projects will be disconnected:
39
39
  {projects}`,"settings.source.noOpenProjects":`This device has no open projects.`,"settings.source.disconnectHint":`Remote tasks will continue running after you disconnect.`,"settings.machine.local":`This computer`,"settings.machine.remote":`{name} (remote)`,"settings.machine.unknownRemote":`Remote device`,"settings.machine.scope":`{scope} · {machine}`,"settings.source.connectionName":`Connection name`,"settings.source.connectionAddress":`Address`,"settings.source.connectionNameHint":`Used only to distinguish this connection in ZCode.`,"settings.source.deviceNameRequired":`Device name is required.`,"settings.source.error.connection-profile-unavailable":`This connection is no longer available. Refresh and try again.`,"settings.source.error.recent-project-unresolved":`The original project cannot be identified. Select a project from the sidebar.`,"settings.source.connectionNameRequired":`Connection name is required.`,"settings.source.keepSavedSecret":`Leave blank to keep the saved credential`,"settings.source.otherSavedConnections":`Other saved connections`,"settings.source.otherSavedConnectionsCount":`Other saved connections ({count})`,"settings.source.retry":`Retry`,"settings.source.lastConnected":`Last success {time}`,"settings.source.lastConnectError":`Last failure: {error}`,"settings.source.devicesHeading":`Devices`,"settings.source.recentProjects":`Recent projects`,"settings.source.showAllProjects":`Show all ({count})`,"settings.source.showLessProjects":`Show less`,"settings.source.projectOpened":`Opened`,"settings.source.projectCount":`{count} project(s)`,"settings.source.lastOnline":`Last online {time}`,"settings.source.lastOnlineNow":`Online just now`,"settings.source.neverOnline":`Never online`,"settings.source.migrationConnectRequired":`Available after connecting`,"settings.source.connectionHistoryNeedsAttention":`Connection history needs attention`,"settings.source.showMigrationReport":`Migration report`,"settings.source.hideMigrationReport":`Hide migration report`,"settings.source.online":`Connected`,"settings.source.unknownDevice":`Remote device`,"settings.source.updateAvailable":`A remote component update is available.`,"settings.source.updateRequired":`Update the remote component before connecting.`,"settings.source.updateInProgress":`Updating the remote component…`,"settings.source.updateProgress":`Remote component update progress`,"settings.source.updatePhase.preparing":`Preparing the update`,"settings.source.updatePhase.checking":`Checking the device and update files`,"settings.source.updatePhase.downloading":`Downloading update files`,"settings.source.updatePhase.uploading":`Uploading update files`,"settings.source.updatePhase.installing":`Installing ZCode Server`,"settings.source.updatePhase.reconnecting":`Starting the service and reconnecting`,"settings.source.updatePhase.completed":`Update complete`,"settings.source.updateLog":`Update log ({count})`,"settings.source.updateLogWaiting":`Waiting for update logs…`,"settings.source.defaultProfile":`Default`,"settings.source.defaultProfileMenuItem":`Default connection`,"settings.source.setDefault":`Set as default connection`,"settings.source.removeProfile":`Remove connection`,"settings.source.renameProfile":`Rename connection`,"settings.source.assetInstallModeMenu":`Resource download method`,"settings.source.assetInstallModeShort.local-download-upload":`Local upload`,"settings.source.assetInstallModeShort.remote-download":`Remote download`,"settings.source.showInSidebar":`Show in sidebar`,"settings.source.renameSource":`Rename`,"settings.source.connectAndIdentify":`Connect`,"settings.source.deleteProfileRecord":`Delete connection record`,"settings.source.deleteConnectionRecord":`Delete connection record`,"settings.source.pendingMigrationCount":`{count} pending`,"settings.source.removeAllLines":`Remove all connections`,"settings.source.removeSourceServerTitle":`Remove this device?`,"settings.source.removeSourceServerDescription":`This removes all local connections, credentials, and project records. Remote services and data are not affected.`,"settings.source.connectionPreferences":`Connection preferences`,"settings.source.startupAutoReconnect":`Reconnect automatically at startup`,"settings.source.startupAutoReconnectDescription":`Reconnects devices seen online in the last 7 days at startup. Changes take effect on the next startup.`,"settings.source.updateAvailableVersion":`Update to v{version}`,"settings.source.error.source-server-remove-callback-missing":`The device cannot be removed because desktop connection cleanup is not ready.`,"settings.source.error.source-server-remove-callback-failed":`The device cannot be removed because connection cleanup failed. Nothing was deleted.`,"settings.source.error.source-server-remove-persist-failed":`The device is disconnected, but local records could not be fully deleted. Try again later.`,"settings.source.identityChangeTitle":`Connection target identity has changed`,"settings.source.identityChangeDescription":`Confirm to create a new device record and independent connection record. Existing task history stays with the previous device.`,"settings.source.identityChangeConfirm":`Use as a new device`,"settings.source.removeProfileTitle":`Remove this connection?`,"settings.source.removeProfileDescription":`{name} and its saved credentials will be removed from this device.`,"settings.source.connect":`Connect`,"settings.source.reconnect":`Reconnect`,"settings.source.disconnect":`Disconnect`,"settings.source.newTask":`New task`,"settings.source.update":`Update`,"settings.source.updateNow":`Update now`,"sourceServer.updateAvailableToast":`{source} has an update
40
40
  Device {current} → {available}.`,"sourceServer.updateRequiredToast":`{source} must be updated before it can connect
41
41
  Current {current}; required {available}.`,"sourceServer.updateStartedToast":`Updating {source}…`,"sourceServer.updateCompletedToast":`{source} was updated and reconnected.`,"sourceServer.updateFailedToast":`{source} could not be updated. Review the log under Remote devices and try again.`,"sourceServer.controllerUpdateAvailableToast":`ZCode has an update for {source}