cx-viewer 1.0.3 → 1.0.4

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 (1440) hide show
  1. package/README.md +49 -20
  2. package/build.js +15 -0
  3. package/cli.js +102 -18
  4. package/concepts/ar/BodyDiffJSON.md +1 -1
  5. package/concepts/ar/BodyFields.md +30 -33
  6. package/concepts/ar/GlobalSettings.md +165 -167
  7. package/concepts/ar/MainAgent.md +3 -4
  8. package/concepts/ar/ProxySwitch.md +3 -3
  9. package/concepts/ar/QRCode.md +1 -1
  10. package/concepts/ar/ResponseFields.md +29 -41
  11. package/concepts/ar/SubAgent-Search.md +12 -12
  12. package/concepts/ar/Teammate.md +16 -16
  13. package/concepts/ar/ToolsFirst.md +42 -48
  14. package/concepts/ar/TranslateContextPollution.md +9 -9
  15. package/concepts/ar/UltraPlan.md +38 -38
  16. package/concepts/da/BodyDiffJSON.md +2 -2
  17. package/concepts/da/BodyFields.md +30 -33
  18. package/concepts/da/GlobalSettings.md +165 -167
  19. package/concepts/da/MainAgent.md +3 -4
  20. package/concepts/da/ProxySwitch.md +3 -3
  21. package/concepts/da/QRCode.md +1 -1
  22. package/concepts/da/ResponseFields.md +29 -41
  23. package/concepts/da/SubAgent-Search.md +11 -11
  24. package/concepts/da/Teammate.md +16 -16
  25. package/concepts/da/ToolsFirst.md +42 -48
  26. package/concepts/da/TranslateContextPollution.md +9 -9
  27. package/concepts/da/UltraPlan.md +38 -38
  28. package/concepts/de/BodyDiffJSON.md +2 -2
  29. package/concepts/de/BodyFields.md +30 -33
  30. package/concepts/de/GlobalSettings.md +165 -167
  31. package/concepts/de/MainAgent.md +3 -4
  32. package/concepts/de/ProxySwitch.md +3 -3
  33. package/concepts/de/QRCode.md +1 -1
  34. package/concepts/de/ResponseFields.md +29 -41
  35. package/concepts/de/SubAgent-Search.md +11 -11
  36. package/concepts/de/Teammate.md +15 -15
  37. package/concepts/de/ToolsFirst.md +41 -47
  38. package/concepts/de/TranslateContextPollution.md +9 -9
  39. package/concepts/de/UltraPlan.md +38 -38
  40. package/concepts/en/BodyDiffJSON.md +5 -5
  41. package/concepts/en/BodyFields.md +17 -20
  42. package/concepts/en/GlobalSettings.md +49 -51
  43. package/concepts/en/MainAgent.md +8 -8
  44. package/concepts/en/ProxySwitch.md +3 -3
  45. package/concepts/en/QRCode.md +6 -6
  46. package/concepts/en/ResponseFields.md +7 -19
  47. package/concepts/en/SubAgent-Search.md +2 -2
  48. package/concepts/en/Teammate.md +4 -4
  49. package/concepts/en/Tool-apply_patch.md +11 -0
  50. package/concepts/en/Tool-create_goal.md +8 -0
  51. package/concepts/en/Tool-exec.md +88 -0
  52. package/concepts/en/Tool-followup_task.md +10 -0
  53. package/concepts/en/Tool-get_goal.md +5 -0
  54. package/concepts/en/Tool-image_generation.md +5 -0
  55. package/concepts/en/Tool-interrupt_agent.md +9 -0
  56. package/concepts/en/Tool-list_agents.md +9 -0
  57. package/concepts/en/Tool-list_mcp_resource_templates.md +8 -0
  58. package/concepts/en/Tool-list_mcp_resources.md +8 -0
  59. package/concepts/en/Tool-read_mcp_resource.md +10 -0
  60. package/concepts/en/Tool-request_user_input.md +9 -0
  61. package/concepts/en/Tool-send_message.md +10 -0
  62. package/concepts/en/Tool-shell_command.md +12 -0
  63. package/concepts/en/Tool-spawn_agent.md +11 -0
  64. package/concepts/en/Tool-tool_search.md +12 -0
  65. package/concepts/en/Tool-update_goal.md +9 -0
  66. package/concepts/en/Tool-update_plan.md +9 -0
  67. package/concepts/en/Tool-view_image.md +10 -0
  68. package/concepts/en/Tool-wait.md +12 -0
  69. package/concepts/en/Tool-wait_agent.md +9 -0
  70. package/concepts/en/Tool-web_search.md +11 -0
  71. package/concepts/en/Tools.md +29 -58
  72. package/concepts/en/ToolsFirst.md +24 -30
  73. package/concepts/en/TranslateContextPollution.md +10 -38
  74. package/concepts/en/UltraPlan.md +7 -7
  75. package/concepts/es/BodyDiffJSON.md +1 -1
  76. package/concepts/es/BodyFields.md +35 -38
  77. package/concepts/es/GlobalSettings.md +165 -167
  78. package/concepts/es/MainAgent.md +3 -4
  79. package/concepts/es/ProxySwitch.md +3 -3
  80. package/concepts/es/QRCode.md +1 -1
  81. package/concepts/es/ResponseFields.md +28 -40
  82. package/concepts/es/SubAgent-Search.md +12 -12
  83. package/concepts/es/Teammate.md +17 -17
  84. package/concepts/es/ToolsFirst.md +41 -47
  85. package/concepts/es/TranslateContextPollution.md +9 -9
  86. package/concepts/es/UltraPlan.md +38 -38
  87. package/concepts/fr/BodyDiffJSON.md +2 -2
  88. package/concepts/fr/BodyFields.md +35 -38
  89. package/concepts/fr/GlobalSettings.md +165 -167
  90. package/concepts/fr/MainAgent.md +3 -4
  91. package/concepts/fr/ProxySwitch.md +3 -3
  92. package/concepts/fr/QRCode.md +1 -1
  93. package/concepts/fr/ResponseFields.md +25 -37
  94. package/concepts/fr/SubAgent-Search.md +12 -12
  95. package/concepts/fr/Teammate.md +16 -16
  96. package/concepts/fr/ToolsFirst.md +40 -46
  97. package/concepts/fr/TranslateContextPollution.md +9 -9
  98. package/concepts/fr/UltraPlan.md +38 -38
  99. package/concepts/it/BodyDiffJSON.md +2 -2
  100. package/concepts/it/BodyFields.md +35 -38
  101. package/concepts/it/GlobalSettings.md +165 -167
  102. package/concepts/it/MainAgent.md +3 -4
  103. package/concepts/it/ProxySwitch.md +3 -3
  104. package/concepts/it/QRCode.md +1 -1
  105. package/concepts/it/ResponseFields.md +28 -40
  106. package/concepts/it/SubAgent-Search.md +12 -12
  107. package/concepts/it/Teammate.md +17 -17
  108. package/concepts/it/ToolsFirst.md +41 -47
  109. package/concepts/it/TranslateContextPollution.md +9 -9
  110. package/concepts/it/UltraPlan.md +38 -38
  111. package/concepts/ja/BodyDiffJSON.md +1 -1
  112. package/concepts/ja/BodyFields.md +30 -33
  113. package/concepts/ja/GlobalSettings.md +165 -167
  114. package/concepts/ja/MainAgent.md +3 -4
  115. package/concepts/ja/ProxySwitch.md +3 -3
  116. package/concepts/ja/QRCode.md +1 -1
  117. package/concepts/ja/ResponseFields.md +29 -41
  118. package/concepts/ja/SubAgent-Search.md +12 -12
  119. package/concepts/ja/Teammate.md +17 -17
  120. package/concepts/ja/ToolsFirst.md +41 -47
  121. package/concepts/ja/TranslateContextPollution.md +9 -9
  122. package/concepts/ja/UltraPlan.md +38 -38
  123. package/concepts/ko/BodyDiffJSON.md +1 -1
  124. package/concepts/ko/BodyFields.md +30 -33
  125. package/concepts/ko/GlobalSettings.md +165 -167
  126. package/concepts/ko/MainAgent.md +3 -4
  127. package/concepts/ko/ProxySwitch.md +3 -3
  128. package/concepts/ko/QRCode.md +1 -1
  129. package/concepts/ko/ResponseFields.md +29 -41
  130. package/concepts/ko/SubAgent-Search.md +12 -12
  131. package/concepts/ko/Teammate.md +17 -17
  132. package/concepts/ko/ToolsFirst.md +41 -47
  133. package/concepts/ko/TranslateContextPollution.md +9 -9
  134. package/concepts/ko/UltraPlan.md +38 -38
  135. package/concepts/no/BodyDiffJSON.md +2 -2
  136. package/concepts/no/BodyFields.md +30 -33
  137. package/concepts/no/GlobalSettings.md +165 -167
  138. package/concepts/no/MainAgent.md +3 -4
  139. package/concepts/no/ProxySwitch.md +3 -3
  140. package/concepts/no/QRCode.md +1 -1
  141. package/concepts/no/ResponseFields.md +29 -41
  142. package/concepts/no/SubAgent-Search.md +12 -12
  143. package/concepts/no/Teammate.md +17 -17
  144. package/concepts/no/ToolsFirst.md +42 -48
  145. package/concepts/no/TranslateContextPollution.md +9 -9
  146. package/concepts/no/UltraPlan.md +38 -38
  147. package/concepts/pl/BodyDiffJSON.md +2 -2
  148. package/concepts/pl/BodyFields.md +30 -33
  149. package/concepts/pl/GlobalSettings.md +165 -167
  150. package/concepts/pl/MainAgent.md +3 -4
  151. package/concepts/pl/ProxySwitch.md +3 -3
  152. package/concepts/pl/QRCode.md +1 -1
  153. package/concepts/pl/ResponseFields.md +29 -41
  154. package/concepts/pl/SubAgent-Search.md +12 -12
  155. package/concepts/pl/Teammate.md +17 -17
  156. package/concepts/pl/ToolsFirst.md +42 -48
  157. package/concepts/pl/TranslateContextPollution.md +9 -9
  158. package/concepts/pl/UltraPlan.md +38 -38
  159. package/concepts/pt-BR/BodyDiffJSON.md +2 -2
  160. package/concepts/pt-BR/BodyFields.md +30 -33
  161. package/concepts/pt-BR/GlobalSettings.md +165 -167
  162. package/concepts/pt-BR/MainAgent.md +3 -4
  163. package/concepts/pt-BR/ProxySwitch.md +3 -3
  164. package/concepts/pt-BR/QRCode.md +1 -1
  165. package/concepts/pt-BR/ResponseFields.md +29 -41
  166. package/concepts/pt-BR/SubAgent-Search.md +12 -12
  167. package/concepts/pt-BR/Teammate.md +17 -17
  168. package/concepts/pt-BR/ToolsFirst.md +41 -47
  169. package/concepts/pt-BR/TranslateContextPollution.md +9 -9
  170. package/concepts/pt-BR/UltraPlan.md +38 -38
  171. package/concepts/ru/BodyDiffJSON.md +1 -1
  172. package/concepts/ru/BodyFields.md +30 -33
  173. package/concepts/ru/GlobalSettings.md +165 -167
  174. package/concepts/ru/MainAgent.md +3 -4
  175. package/concepts/ru/ProxySwitch.md +3 -3
  176. package/concepts/ru/QRCode.md +1 -1
  177. package/concepts/ru/ResponseFields.md +29 -41
  178. package/concepts/ru/SubAgent-Search.md +12 -12
  179. package/concepts/ru/Teammate.md +17 -17
  180. package/concepts/ru/ToolsFirst.md +41 -47
  181. package/concepts/ru/TranslateContextPollution.md +9 -9
  182. package/concepts/ru/UltraPlan.md +38 -38
  183. package/concepts/th/BodyDiffJSON.md +1 -1
  184. package/concepts/th/BodyFields.md +30 -33
  185. package/concepts/th/GlobalSettings.md +165 -167
  186. package/concepts/th/MainAgent.md +3 -4
  187. package/concepts/th/ProxySwitch.md +3 -3
  188. package/concepts/th/QRCode.md +1 -1
  189. package/concepts/th/ResponseFields.md +29 -41
  190. package/concepts/th/SubAgent-Search.md +12 -12
  191. package/concepts/th/Teammate.md +17 -17
  192. package/concepts/th/ToolsFirst.md +42 -48
  193. package/concepts/th/TranslateContextPollution.md +9 -9
  194. package/concepts/th/UltraPlan.md +38 -38
  195. package/concepts/tr/BodyDiffJSON.md +1 -1
  196. package/concepts/tr/BodyFields.md +30 -33
  197. package/concepts/tr/GlobalSettings.md +165 -167
  198. package/concepts/tr/MainAgent.md +3 -4
  199. package/concepts/tr/ProxySwitch.md +3 -3
  200. package/concepts/tr/QRCode.md +1 -1
  201. package/concepts/tr/ResponseFields.md +29 -41
  202. package/concepts/tr/SubAgent-Search.md +12 -12
  203. package/concepts/tr/Teammate.md +16 -16
  204. package/concepts/tr/ToolsFirst.md +42 -48
  205. package/concepts/tr/TranslateContextPollution.md +9 -9
  206. package/concepts/tr/UltraPlan.md +38 -38
  207. package/concepts/uk/BodyDiffJSON.md +1 -1
  208. package/concepts/uk/BodyFields.md +30 -33
  209. package/concepts/uk/GlobalSettings.md +165 -167
  210. package/concepts/uk/MainAgent.md +3 -4
  211. package/concepts/uk/ProxySwitch.md +3 -3
  212. package/concepts/uk/QRCode.md +1 -1
  213. package/concepts/uk/ResponseFields.md +29 -41
  214. package/concepts/uk/SubAgent-Search.md +12 -12
  215. package/concepts/uk/Teammate.md +17 -17
  216. package/concepts/uk/ToolsFirst.md +42 -48
  217. package/concepts/uk/TranslateContextPollution.md +9 -9
  218. package/concepts/uk/UltraPlan.md +38 -38
  219. package/concepts/zh/BodyDiffJSON.md +4 -4
  220. package/concepts/zh/BodyFields.md +17 -20
  221. package/concepts/zh/GlobalSettings.md +26 -28
  222. package/concepts/zh/MainAgent.md +6 -6
  223. package/concepts/zh/ProxySwitch.md +1 -1
  224. package/concepts/zh/ResponseFields.md +7 -18
  225. package/concepts/zh/SubAgent-Search.md +2 -2
  226. package/concepts/zh/Teammate.md +4 -4
  227. package/concepts/zh/Tool-apply_patch.md +11 -0
  228. package/concepts/zh/Tool-create_goal.md +8 -0
  229. package/concepts/zh/Tool-exec.md +88 -0
  230. package/concepts/zh/Tool-followup_task.md +10 -0
  231. package/concepts/zh/Tool-get_goal.md +5 -0
  232. package/concepts/zh/Tool-image_generation.md +5 -0
  233. package/concepts/zh/Tool-interrupt_agent.md +9 -0
  234. package/concepts/zh/Tool-list_agents.md +9 -0
  235. package/concepts/zh/Tool-list_mcp_resource_templates.md +8 -0
  236. package/concepts/zh/Tool-list_mcp_resources.md +8 -0
  237. package/concepts/zh/Tool-read_mcp_resource.md +10 -0
  238. package/concepts/zh/Tool-request_user_input.md +9 -0
  239. package/concepts/zh/Tool-send_message.md +10 -0
  240. package/concepts/zh/Tool-shell_command.md +12 -0
  241. package/concepts/zh/Tool-spawn_agent.md +11 -0
  242. package/concepts/zh/Tool-tool_search.md +12 -0
  243. package/concepts/zh/Tool-update_goal.md +9 -0
  244. package/concepts/zh/Tool-update_plan.md +9 -0
  245. package/concepts/zh/Tool-view_image.md +10 -0
  246. package/concepts/zh/Tool-wait.md +12 -0
  247. package/concepts/zh/Tool-wait_agent.md +9 -0
  248. package/concepts/zh/Tool-web_search.md +11 -0
  249. package/concepts/zh/Tools.md +29 -58
  250. package/concepts/zh/ToolsFirst.md +21 -27
  251. package/concepts/zh/TranslateContextPollution.md +10 -38
  252. package/concepts/zh/UltraPlan.md +7 -7
  253. package/concepts/zh-TW/BodyFields.md +27 -30
  254. package/concepts/zh-TW/GlobalSettings.md +26 -28
  255. package/concepts/zh-TW/MainAgent.md +0 -1
  256. package/concepts/zh-TW/ProxySwitch.md +22 -22
  257. package/concepts/zh-TW/ResponseFields.md +29 -40
  258. package/concepts/zh-TW/SubAgent-Search.md +12 -12
  259. package/concepts/zh-TW/Teammate.md +16 -16
  260. package/concepts/zh-TW/ToolsFirst.md +41 -47
  261. package/concepts/zh-TW/UltraPlan.md +38 -38
  262. package/dist/assets/App-BZ9oclBj.js +2 -0
  263. package/dist/assets/App-rWON7PuS.css +1 -0
  264. package/dist/assets/MdxEditorPanel-B4lZ7Z_A.js +1 -0
  265. package/dist/assets/MdxEditorPanel-Da_ceLFo.css +1 -0
  266. package/dist/assets/Mobile-B5V_-6Hc.css +1 -0
  267. package/dist/assets/Mobile-C7Hy-TIM.js +1 -0
  268. package/dist/assets/abnfDiagram-VRR7QNED-DYYppIQV.js +1 -0
  269. package/dist/assets/apl-B8ZmNFqK.js +1 -0
  270. package/dist/assets/arc-BT3um7r4.js +1 -0
  271. package/dist/assets/architectureDiagram-ZJ3FMSHR-uweBqnh-.js +1 -0
  272. package/dist/assets/asciiarmor-CIte6N-S.js +1 -0
  273. package/dist/assets/asn1-Ax1-z1nk.js +1 -0
  274. package/dist/assets/asterisk-CLHf-iRz.js +1 -0
  275. package/dist/assets/blockDiagram-677ZJIJ3-DzeI4GyV.js +1 -0
  276. package/dist/assets/brainfuck-CdLnmYpe.js +1 -0
  277. package/dist/assets/c4Diagram-LMCZKHZV-DBI0K7wS.js +1 -0
  278. package/dist/assets/channel-BrN6yx0e.js +1 -0
  279. package/dist/assets/chunk-2Q5K7J3B-DK9JA8Ct.js +1 -0
  280. package/dist/assets/chunk-32BRIVSS-VNg3Ylzs.js +1 -0
  281. package/dist/assets/chunk-5VM5RSS4-DFhufY9o.js +1 -0
  282. package/dist/assets/chunk-EX3LRPZG-B93MHNBT.js +1 -0
  283. package/dist/assets/chunk-JWPE2WC7-C54OW1iN.js +1 -0
  284. package/dist/assets/chunk-MOJQB5TN-lKhWWIDe.js +1 -0
  285. package/dist/assets/chunk-RYQCIY6F-BK2jDXwB.js +1 -0
  286. package/dist/assets/chunk-V7JOEXUC-aLHBmfOc.js +1 -0
  287. package/dist/assets/chunk-VR4S4FIN-Bomuor1h.js +1 -0
  288. package/dist/assets/chunk-XXDRQBXY-BPj05P7g.js +1 -0
  289. package/dist/assets/classDiagram-OUVF2IWQ-COm0X4uJ.js +1 -0
  290. package/dist/assets/classDiagram-v2-EOCWNBFH-COm0X4uJ.js +1 -0
  291. package/dist/assets/clike-BDgEuk0n.js +1 -0
  292. package/dist/assets/clojure-CrPxgQZl.js +1 -0
  293. package/dist/assets/cmake-BknZiLBu.js +1 -0
  294. package/dist/assets/cobol-DN1mHbgw.js +1 -0
  295. package/dist/assets/coffeescript-DTAwRC7M.js +1 -0
  296. package/dist/assets/commonlisp-B4DJ--Bo.js +1 -0
  297. package/dist/assets/cose-bilkent-JH36ORCC-DU44QHSb.js +1 -0
  298. package/dist/assets/crystal-DoipYOOv.js +1 -0
  299. package/dist/assets/css-BeQRP3p5.js +1 -0
  300. package/dist/assets/cynefin-VYW2F7L2-C0dowxsF.js +15 -0
  301. package/dist/assets/cynefinDiagram-TSTJHNR4-C6vNWPUV.js +1 -0
  302. package/dist/assets/cypher-BzELKutH.js +1 -0
  303. package/dist/assets/cytoscape.esm-D0POlJZ1.js +9 -0
  304. package/dist/assets/d-Mh2Rawoc.js +1 -0
  305. package/dist/assets/dagre-VKFMJZFB-aLG4uEb-.js +1 -0
  306. package/dist/assets/defaultLocale-DZ7E7S9R.js +1 -0
  307. package/dist/assets/diagram-FQU43EPY-D5C8GfdU.js +1 -0
  308. package/dist/assets/diagram-G47NLZAW-C9tRw_xi.js +1 -0
  309. package/dist/assets/diagram-NH7WQ7WH-AYxTxwJ2.js +1 -0
  310. package/dist/assets/diagram-OA4YK3LP-BuBE5n9n.js +1 -0
  311. package/dist/assets/diagram-WEI45ONY-Cda7zYeO.js +1 -0
  312. package/dist/assets/diff-B1OtBbfz.js +1 -0
  313. package/dist/assets/dockerfile-Du7niAGi.js +1 -0
  314. package/dist/assets/dtd-So5hjSa8.js +1 -0
  315. package/dist/assets/dylan-Co15g-RX.js +1 -0
  316. package/dist/assets/ebnf-DWrAnno4.js +1 -0
  317. package/dist/assets/ebnfDiagram-CCIWWBDH-DC_OGyoh.js +1 -0
  318. package/dist/assets/ecl-8tbf0rUT.js +1 -0
  319. package/dist/assets/eiffel-BXtlUtEg.js +1 -0
  320. package/dist/assets/elm-BwiUluiH.js +1 -0
  321. package/dist/assets/erDiagram-Q63AITRT-D2G21PVY.js +1 -0
  322. package/dist/assets/erlang-CrHBLi-m.js +1 -0
  323. package/dist/assets/factor-C7nC06Ta.js +1 -0
  324. package/dist/assets/fcl-DKWfryFT.js +1 -0
  325. package/dist/assets/flowDiagram-23GEKE2U-CEQPYHrk.js +1 -0
  326. package/dist/assets/forth-Cg8ASoTj.js +1 -0
  327. package/dist/assets/fortran-BHf_qfFx.js +1 -0
  328. package/dist/assets/ganttDiagram-NO4QXBWP-JStxUtFR.js +1 -0
  329. package/dist/assets/gas-cj_2N_z1.js +1 -0
  330. package/dist/assets/gherkin-BiuTaH40.js +1 -0
  331. package/dist/assets/gitGraphDiagram-IHSO6WYX-BiojPH-V.js +1 -0
  332. package/dist/assets/graph-CnJdn47S.js +1 -0
  333. package/dist/assets/groovy-Bq8cXYUU.js +1 -0
  334. package/dist/assets/haskell-1ANuaeie.js +1 -0
  335. package/dist/assets/haxe-BUNSvWf_.js +1 -0
  336. package/dist/assets/html2canvas.esm-HFdlUwfn.js +20 -0
  337. package/dist/assets/http-DPC2IRQA.js +1 -0
  338. package/dist/assets/idl-DDbIciu_.js +1 -0
  339. package/dist/assets/index-BEyKG3O5.css +1 -0
  340. package/dist/assets/index-BduJoLQ5.js +1 -0
  341. package/dist/assets/index-BqwR8F0v.js +1 -0
  342. package/dist/assets/index-BsycQyrv.js +1 -0
  343. package/dist/assets/index-CFSDxZyA.js +1 -0
  344. package/dist/assets/index-CunNLTHc.js +1 -0
  345. package/dist/assets/index-OGkDFNTK.js +1 -0
  346. package/dist/assets/index-oxOyrL07.js +2 -0
  347. package/dist/assets/index-wvaycTGT.js +1 -0
  348. package/dist/assets/infoDiagram-FWYZ7A6U-Csl_aBIC.js +1 -0
  349. package/dist/assets/init-DMZMl1PR.js +1 -0
  350. package/dist/assets/ishikawaDiagram-FXEZZL3T-CjgGuMwr.js +1 -0
  351. package/dist/assets/javascript-Cet1BUca.js +1 -0
  352. package/dist/assets/journeyDiagram-5HDEW3XC-DUOy1PCq.js +1 -0
  353. package/dist/assets/jszip.min-BxIXdRg4.js +12 -0
  354. package/dist/assets/julia-CdxLCr68.js +1 -0
  355. package/dist/assets/kanban-definition-HUTT4EX6-Cx7GSrSj.js +1 -0
  356. package/dist/assets/katex-CfXf84Fz.js +1 -0
  357. package/dist/assets/layout-CCUE9ZRw.js +1 -0
  358. package/dist/assets/linear-GeBi6jJp.js +1 -0
  359. package/dist/assets/livescript-Bw1Vw7Ae.js +1 -0
  360. package/dist/assets/lua-DM1wbcnc.js +1 -0
  361. package/dist/assets/map-DQeg2hXV.js +1 -0
  362. package/dist/assets/mathematica-BXSv1_O1.js +1 -0
  363. package/dist/assets/mbox-CWY0keg3.js +1 -0
  364. package/dist/assets/mermaid.core-Cy9iVxov.js +7 -0
  365. package/dist/assets/mindmap-definition-LN4V7U3C-CUVxVkK5.js +1 -0
  366. package/dist/assets/mirc-CMLrLVMT.js +1 -0
  367. package/dist/assets/mllike-naqhAFf1.js +1 -0
  368. package/dist/assets/modelica-BvadsaHY.js +1 -0
  369. package/dist/assets/mscgen-DOr-Q10p.js +1 -0
  370. package/dist/assets/mumps-DKTl5Nyj.js +1 -0
  371. package/dist/assets/nginx-DWR90-d1.js +1 -0
  372. package/dist/assets/nsis-ooFGduGn.js +1 -0
  373. package/dist/assets/ntriples-q5jkU4X1.js +1 -0
  374. package/dist/assets/octave-Deu9Ci7_.js +1 -0
  375. package/dist/assets/orbiting-BCD4Vuij.svg +7 -0
  376. package/dist/assets/ordinal-DA-_8pMy.js +1 -0
  377. package/dist/assets/oz-cTQm1aoB.js +1 -0
  378. package/dist/assets/pascal-Oh3VmczP.js +1 -0
  379. package/dist/assets/pegDiagram-2B236MQR-BCF1byLY.js +1 -0
  380. package/dist/assets/perl-BddWF1HQ.js +1 -0
  381. package/dist/assets/pieDiagram-ENE6RG2P-D2cZTo8-.js +1 -0
  382. package/dist/assets/pig-g5ZQNIDr.js +1 -0
  383. package/dist/assets/powershell-CNmQNFVJ.js +1 -0
  384. package/dist/assets/properties-B41DXfv6.js +1 -0
  385. package/dist/assets/protobuf-eEBl31OJ.js +1 -0
  386. package/dist/assets/pug-DRSo4eCK.js +1 -0
  387. package/dist/assets/puppet-ClfRubAD.js +1 -0
  388. package/dist/assets/python-BSflc812.js +1 -0
  389. package/dist/assets/q-BBDx3N9Y.js +1 -0
  390. package/dist/assets/quadrantDiagram-ABIIQ3AL-Bwsn2--F.js +1 -0
  391. package/dist/assets/r-CByC1eO8.js +1 -0
  392. package/dist/assets/railroadDiagram-RFXS5EU6-CLGLpWHs.js +1 -0
  393. package/dist/assets/requirementDiagram-TGXJPOKE-BfmBYwZl.js +1 -0
  394. package/dist/assets/rpm-8t935XkD.js +1 -0
  395. package/dist/assets/ruby-CAgbkLZh.js +1 -0
  396. package/dist/assets/sankeyDiagram-HTMAVEWB-CqZhbyFn.js +1 -0
  397. package/dist/assets/sas-C-JWcRvo.js +1 -0
  398. package/dist/assets/scheme-D7o9RjUX.js +1 -0
  399. package/dist/assets/seqResourceLoaders-Bkh2Rb9i.js +2 -0
  400. package/dist/assets/seqResourceLoaders-Do7Kqg3B.css +41 -0
  401. package/dist/assets/sequenceDiagram-DBY2YBRQ-CcOdXkN2.js +1 -0
  402. package/dist/assets/shell-BXA79DV6.js +1 -0
  403. package/dist/assets/shimmer-BBDejmDf.svg +7 -0
  404. package/dist/assets/sieve-DNwyl0rd.js +1 -0
  405. package/dist/assets/simple-mode-CoQRusFX.js +1 -0
  406. package/dist/assets/sizeCapture-X5ZJPWSS-B4OVmPqu.js +1 -0
  407. package/dist/assets/smalltalk-DggktV6S.js +1 -0
  408. package/dist/assets/solr-D7NRuIPM.js +1 -0
  409. package/dist/assets/sparql-Cr71deJQ.js +1 -0
  410. package/dist/assets/spreadsheet-BMD3tYqw.js +1 -0
  411. package/dist/assets/sql-CbOjXfBR.js +1 -0
  412. package/dist/assets/stateDiagram-2N3HPSRC-Dysun0oO.js +1 -0
  413. package/dist/assets/stateDiagram-v2-6OUMAXLB-BFet8xAz.js +1 -0
  414. package/dist/assets/stex-iDPIkRmr.js +1 -0
  415. package/dist/assets/stylus-nWZizI-c.js +1 -0
  416. package/dist/assets/swift-DOhLK5SG.js +1 -0
  417. package/dist/assets/swimlanes-5IMT3BWC-_30OXwXy.js +2 -0
  418. package/dist/assets/swimlanesDiagram-G3AALYLV-C19viY0G.js +1 -0
  419. package/dist/assets/tcl-CQhJd1WY.js +1 -0
  420. package/dist/assets/textile-D9XqfVtL.js +1 -0
  421. package/dist/assets/tiddlywiki-DfOYgVky.js +1 -0
  422. package/dist/assets/tiki-a0_YLWvV.js +1 -0
  423. package/dist/assets/timeline-definition-FHXFAJF6-X1Xk3onD.js +1 -0
  424. package/dist/assets/toml-ekl3F1YB.js +1 -0
  425. package/dist/assets/troff-Bh_pcXF1.js +1 -0
  426. package/dist/assets/ttcn-M6363IRW.js +1 -0
  427. package/dist/assets/ttcn-cfg-7I2DgJEN.js +1 -0
  428. package/dist/assets/turtle-B5jdxH6D.js +1 -0
  429. package/dist/assets/vb-DM-xPmVv.js +1 -0
  430. package/dist/assets/vbscript-B0qu41Yc.js +1 -0
  431. package/dist/assets/velocity-FCgsuVHf.js +1 -0
  432. package/dist/assets/vendor-antd-Bzi1WuBb.js +17 -0
  433. package/dist/assets/vendor-codemirror-CKTrJd47.js +1 -0
  434. package/dist/assets/vendor-highlight-IFTJ9nxW.js +1 -0
  435. package/dist/assets/vendor-markdown-BN3QLsBu.js +3 -0
  436. package/dist/assets/vendor-mdxeditor-4PbKH6K7.js +2 -0
  437. package/dist/assets/vendor-qrcode-Bnjm0rcu.js +6 -0
  438. package/dist/assets/vendor-react-l0sNRNKZ.js +1 -0
  439. package/dist/assets/vendor-virtuoso-2P4SowHC.js +1 -0
  440. package/dist/assets/vendor-xterm-DckPrCx1.js +37 -0
  441. package/dist/assets/vennDiagram-L72KCM5P-D3fQnGq7.js +1 -0
  442. package/dist/assets/verilog-nrfFvR12.js +1 -0
  443. package/dist/assets/vhdl-WlDXtV-W.js +1 -0
  444. package/dist/assets/wardleyDiagram-EHGQE667-CRhqI6-g.js +1 -0
  445. package/dist/assets/webidl-RIQoSXDx.js +1 -0
  446. package/dist/assets/xquery-BN45G3lJ.js +1 -0
  447. package/dist/assets/xychartDiagram-FW5EYKEG-Cmtgmmtg.js +1 -0
  448. package/dist/assets/yacas-U6gaIVhD.js +1 -0
  449. package/dist/assets/z80-CFe5BHbK.js +1 -0
  450. package/dist/index.html +25 -6
  451. package/dist/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
  452. package/dist/voice-packs/default/It_is_done_sir.MP3 +0 -0
  453. package/dist/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
  454. package/dist/voice-packs/default/pack.json +24 -0
  455. package/dist/voice-packs/sanguo/ask.MP3 +0 -0
  456. package/dist/voice-packs/sanguo/end.MP3 +0 -0
  457. package/dist/voice-packs/sanguo/pack.json +24 -0
  458. package/dist/voice-packs/sanguo/plan.MP3 +0 -0
  459. package/electron/diag.js +110 -0
  460. package/electron/main.js +1432 -0
  461. package/electron/menu-model.js +107 -0
  462. package/electron/tab-bar.html +575 -0
  463. package/electron/tab-content-preload.js +66 -0
  464. package/electron/tab-preload.js +24 -0
  465. package/electron/tab-worker.js +142 -0
  466. package/electron/window-state.js +60 -0
  467. package/electron/workspace-preload.js +19 -0
  468. package/findcx.js +4 -0
  469. package/i18n.js +3 -423
  470. package/index.html +30 -0
  471. package/interceptor.js +144 -70
  472. package/jsconfig.json +25 -0
  473. package/lib/approval-reviewer.js +23 -0
  474. package/lib/appserver-bridge.js +1753 -237
  475. package/lib/ask-bridge.js +5 -5
  476. package/lib/cli-args.js +1 -0
  477. package/lib/codex-config.js +157 -18
  478. package/lib/context-watcher.js +6 -65
  479. package/lib/delta-reconstructor.js +74 -52
  480. package/lib/ensure-hooks.js +37 -30
  481. package/lib/interceptor-core.js +490 -43
  482. package/lib/log-watcher.js +3 -8
  483. package/lib/main-agent-entry.js +68 -0
  484. package/lib/openai-body.js +95 -0
  485. package/lib/otel-adapter.js +3 -2
  486. package/lib/otel-receiver.js +1 -2
  487. package/lib/perm-bridge.js +84 -44
  488. package/lib/proxy-env.js +45 -1
  489. package/lib/sdk-adapter.js +241 -51
  490. package/lib/sdk-manager.js +523 -370
  491. package/lib/skills-api.js +364 -0
  492. package/lib/stats-worker.js +21 -21
  493. package/lib/token-usage.js +29 -0
  494. package/lib/updater.js +3 -7
  495. package/package.json +27 -6
  496. package/plugins/.gitkeep +0 -0
  497. package/plugins/README.md +8 -0
  498. package/proxy.js +187 -241
  499. package/pty-manager.js +17 -1
  500. package/public/favicon.ico +0 -0
  501. package/public/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
  502. package/public/voice-packs/default/It_is_done_sir.MP3 +0 -0
  503. package/public/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
  504. package/public/voice-packs/default/pack.json +24 -0
  505. package/public/voice-packs/sanguo/ask.MP3 +0 -0
  506. package/public/voice-packs/sanguo/end.MP3 +0 -0
  507. package/public/voice-packs/sanguo/pack.json +24 -0
  508. package/public/voice-packs/sanguo/plan.MP3 +0 -0
  509. package/scripts/check-no-control-bytes.js +130 -0
  510. package/scripts/check-sign-config.sh +85 -0
  511. package/scripts/gen-default-voicepack.js +176 -0
  512. package/scripts/mac-sign.sh +47 -0
  513. package/scripts/npm-pack-dry-run.mjs +20 -0
  514. package/server/lib/approval-modal-prefs.js +72 -0
  515. package/server/lib/context-rules.js +70 -0
  516. package/server/lib/delta-reconstructor.js +403 -0
  517. package/server/lib/tools-xml-formatter.js +91 -0
  518. package/server/lib/voice-pack-events.js +79 -0
  519. package/server.js +420 -86
  520. package/src/App.jsx +638 -0
  521. package/src/App.module.css +1088 -0
  522. package/src/AppBase.jsx +2803 -0
  523. package/src/Mobile.jsx +1348 -0
  524. package/src/components/approval/ApprovalModal.jsx +319 -0
  525. package/src/components/approval/ApprovalModal.module.css +160 -0
  526. package/src/components/approval/ToolApprovalPanel.jsx +111 -0
  527. package/src/components/approval/ToolApprovalPanel.module.css +250 -0
  528. package/src/components/chat/ApprovalPortalContext.js +26 -0
  529. package/src/components/chat/AskQuestionForm.jsx +279 -0
  530. package/src/components/chat/AskTimeoutCountdown.jsx +113 -0
  531. package/src/components/chat/ChatInputBar.jsx +584 -0
  532. package/src/components/chat/ChatInputBar.module.css +656 -0
  533. package/src/components/chat/ChatMessage.jsx +1587 -0
  534. package/src/components/chat/ChatMessage.module.css +1560 -0
  535. package/src/components/chat/ChatView.jsx +3533 -0
  536. package/src/components/chat/ChatView.module.css +418 -0
  537. package/src/components/chat/DiffView.jsx +111 -0
  538. package/src/components/chat/DiffView.module.css +141 -0
  539. package/src/components/chat/RoleFilterBar.jsx +35 -0
  540. package/src/components/chat/RoleFilterBar.module.css +62 -0
  541. package/src/components/chat/controllers/askFlowController.js +789 -0
  542. package/src/components/chat/controllers/permissionController.js +84 -0
  543. package/src/components/chat/controllers/ptyPromptController.js +166 -0
  544. package/src/components/chat/controllers/scrollHighlightController.js +50 -0
  545. package/src/components/chat/controllers/splitDragController.js +135 -0
  546. package/src/components/chat/controllers/toolFileChangeController.js +216 -0
  547. package/src/components/chat/interactionOwnership.js +106 -0
  548. package/src/components/chat/uploadDeferLogic.js +46 -0
  549. package/src/components/common/ConceptHelp.jsx +97 -0
  550. package/src/components/common/ConceptHelp.module.css +151 -0
  551. package/src/components/common/ConfirmRemoveButton.jsx +78 -0
  552. package/src/components/common/CountryFlag.jsx +105 -0
  553. package/src/components/common/CountryFlag.module.css +36 -0
  554. package/src/components/common/DingTalkIcon.jsx +20 -0
  555. package/src/components/common/DiscordIcon.jsx +21 -0
  556. package/src/components/common/FeishuIcon.jsx +23 -0
  557. package/src/components/common/HoverPreviewTip.jsx +62 -0
  558. package/src/components/common/HoverPreviewTip.module.css +21 -0
  559. package/src/components/common/ImageLightbox.jsx +244 -0
  560. package/src/components/common/ImageLightbox.module.css +120 -0
  561. package/src/components/common/MemoryDetailModal.jsx +75 -0
  562. package/src/components/common/OpenFolderIcon.jsx +53 -0
  563. package/src/components/common/OpenFolderIcon.module.css +7 -0
  564. package/src/components/common/PanelResizer.jsx +48 -0
  565. package/src/components/common/PanelResizer.module.css +11 -0
  566. package/src/components/common/QuickAutoApproveRows.jsx +66 -0
  567. package/src/components/common/RefreshIcon.jsx +50 -0
  568. package/src/components/common/RefreshIcon.module.css +26 -0
  569. package/src/components/common/SnapLineOverlay.jsx +47 -0
  570. package/src/components/common/SnapLineOverlay.module.css +31 -0
  571. package/src/components/common/ToolsHelp.jsx +113 -0
  572. package/src/components/common/ToolsHelp.module.css +85 -0
  573. package/src/components/common/WeComIcon.jsx +22 -0
  574. package/src/components/common/quickMenuIcons.jsx +99 -0
  575. package/src/components/common/sharedChrome.module.css +274 -0
  576. package/src/components/dashboard/AppHeader.jsx +2085 -0
  577. package/src/components/dashboard/AppHeader.module.css +676 -0
  578. package/src/components/dashboard/CachePopoverContent.jsx +538 -0
  579. package/src/components/dashboard/CachePopoverContent.module.css +191 -0
  580. package/src/components/dashboard/ContextTab.jsx +769 -0
  581. package/src/components/dashboard/ContextTab.module.css +565 -0
  582. package/src/components/dashboard/DetailPanel.jsx +813 -0
  583. package/src/components/dashboard/DetailPanel.module.css +513 -0
  584. package/src/components/dashboard/LiveTagPopover.jsx +89 -0
  585. package/src/components/dashboard/LiveTagPopover.module.css +67 -0
  586. package/src/components/dashboard/RequestList.jsx +146 -0
  587. package/src/components/dashboard/RequestList.module.css +146 -0
  588. package/src/components/dashboard/TeamSessionPanel.jsx +584 -0
  589. package/src/components/dashboard/TeamSessionPanel.module.css +457 -0
  590. package/src/components/dashboard/UsageWindowPill.jsx +166 -0
  591. package/src/components/dashboard/UsageWindowPill.module.css +140 -0
  592. package/src/components/dashboard/WorkflowRunsPanel.jsx +108 -0
  593. package/src/components/dashboard/WorkflowRunsPanel.module.css +72 -0
  594. package/src/components/dashboard/WorkspaceList.jsx +410 -0
  595. package/src/components/dashboard/WorkspaceList.module.css +254 -0
  596. package/src/components/files/FileContentView.jsx +1013 -0
  597. package/src/components/files/FileContentView.module.css +418 -0
  598. package/src/components/files/FileExplorer.jsx +937 -0
  599. package/src/components/files/FileExplorer.module.css +173 -0
  600. package/src/components/files/MdxEditorPanel.base.css +9 -0
  601. package/src/components/files/MdxEditorPanel.jsx +181 -0
  602. package/src/components/files/MdxEditorPanel.module.css +917 -0
  603. package/src/components/git/DiffMiniMap.jsx +98 -0
  604. package/src/components/git/DiffMiniMap.module.css +17 -0
  605. package/src/components/git/FullFileDiffView.jsx +265 -0
  606. package/src/components/git/FullFileDiffView.module.css +176 -0
  607. package/src/components/git/GitChanges.jsx +461 -0
  608. package/src/components/git/GitChanges.module.css +337 -0
  609. package/src/components/git/GitDiffView.jsx +161 -0
  610. package/src/components/git/GitDiffView.module.css +205 -0
  611. package/src/components/mobile/MobileDrawerCloseButton.jsx +18 -0
  612. package/src/components/mobile/MobileFileExplorer.jsx +231 -0
  613. package/src/components/mobile/MobileFileExplorer.module.css +171 -0
  614. package/src/components/mobile/MobileGitDiff.jsx +293 -0
  615. package/src/components/mobile/MobileGitDiff.module.css +317 -0
  616. package/src/components/mobile/MobileStats.jsx +211 -0
  617. package/src/components/mobile/MobileStats.module.css +75 -0
  618. package/src/components/settings/ImAppendSystemModal.jsx +104 -0
  619. package/src/components/settings/ImConversationModal.jsx +328 -0
  620. package/src/components/settings/ImConversationModal.module.css +49 -0
  621. package/src/components/settings/ImPlatformSettings.jsx +453 -0
  622. package/src/components/settings/ImPlatformSettings.module.css +110 -0
  623. package/src/components/settings/ImSkillsModal.jsx +94 -0
  624. package/src/components/settings/ImStatusChip.jsx +80 -0
  625. package/src/components/settings/ImStatusChip.module.css +36 -0
  626. package/src/components/settings/MessagingModal.jsx +65 -0
  627. package/src/components/settings/MessagingModal.module.css +95 -0
  628. package/src/components/settings/ModelPromptTabs.jsx +118 -0
  629. package/src/components/settings/PluginModal.jsx +423 -0
  630. package/src/components/settings/PluginModal.module.css +136 -0
  631. package/src/components/settings/PreferencesForm.jsx +104 -0
  632. package/src/components/settings/PreferencesForm.module.css +27 -0
  633. package/src/components/settings/ProcessModal.jsx +175 -0
  634. package/src/components/settings/ProcessModal.module.css +21 -0
  635. package/src/components/settings/ProjectAliasEditor.jsx +138 -0
  636. package/src/components/settings/ProjectAliasEditor.module.css +87 -0
  637. package/src/components/settings/ProjectPrefsManagerModal.jsx +123 -0
  638. package/src/components/settings/ProjectPrefsManagerModal.module.css +52 -0
  639. package/src/components/settings/ProxyModal.jsx +286 -0
  640. package/src/components/settings/ProxyModal.module.css +141 -0
  641. package/src/components/settings/SkillsManagerModal.jsx +143 -0
  642. package/src/components/settings/SkillsManagerModal.module.css +143 -0
  643. package/src/components/settings/SystemTextModal.jsx +312 -0
  644. package/src/components/settings/SystemTextModal.module.css +331 -0
  645. package/src/components/settings/VoicePackSettings.jsx +319 -0
  646. package/src/components/settings/VoicePackSettings.module.css +151 -0
  647. package/src/components/settings/imPlatforms.js +177 -0
  648. package/src/components/terminal/CustomUltraplanEditModal.jsx +227 -0
  649. package/src/components/terminal/CustomUltraplanEditModal.module.css +189 -0
  650. package/src/components/terminal/PresetExpertPickerModal.jsx +116 -0
  651. package/src/components/terminal/PresetExpertPickerModal.module.css +90 -0
  652. package/src/components/terminal/PresetModal.jsx +118 -0
  653. package/src/components/terminal/ScratchTerminal.jsx +359 -0
  654. package/src/components/terminal/TerminalPanel.jsx +2021 -0
  655. package/src/components/terminal/TerminalPanel.module.css +872 -0
  656. package/src/components/terminal/TerminalWsContext.jsx +226 -0
  657. package/src/components/terminal/UltraPlanModal.jsx +328 -0
  658. package/src/components/terminal/UltraPlanModal.module.css +527 -0
  659. package/src/components/terminal/UltraplanExpertManagerModal.jsx +114 -0
  660. package/src/components/terminal/UltraplanExpertManagerModal.module.css +91 -0
  661. package/src/components/terminal/UltraplanPanel.jsx +307 -0
  662. package/src/components/terminal/UltraplanPanel.module.css +540 -0
  663. package/src/components/terminal/terminalThemes.js +33 -0
  664. package/src/components/viewers/ImageViewer.jsx +288 -0
  665. package/src/components/viewers/ImageViewer.module.css +203 -0
  666. package/src/components/viewers/JsonViewer.jsx +40 -0
  667. package/src/components/viewers/JsonViewer.module.css +9 -0
  668. package/src/components/viewers/LogTable.jsx +131 -0
  669. package/src/components/viewers/MarkdownBlock.jsx +112 -0
  670. package/src/components/viewers/MarkdownBlock.module.css +157 -0
  671. package/src/components/viewers/ToolResultView.jsx +389 -0
  672. package/src/components/viewers/ToolResultView.module.css +108 -0
  673. package/src/components/viewers/WebResultsView.jsx +74 -0
  674. package/src/components/viewers/WebResultsView.module.css +85 -0
  675. package/src/components/viewers/WorkflowLiveHud.jsx +153 -0
  676. package/src/components/viewers/WorkflowLiveHud.module.css +256 -0
  677. package/src/components/viewers/WorkflowPanel.jsx +243 -0
  678. package/src/components/viewers/WorkflowPanel.module.css +265 -0
  679. package/src/components/viewers/WorkflowTimeline.jsx +83 -0
  680. package/src/components/viewers/WorkflowTimeline.module.css +116 -0
  681. package/src/contexts/SettingsContext.jsx +140 -0
  682. package/src/env.js +54 -0
  683. package/src/global.css +607 -0
  684. package/src/hooks/useMarkdownExport.js +146 -0
  685. package/src/hooks/useMermaidRender.js +193 -0
  686. package/src/hooks/useProjectAlias.js +29 -0
  687. package/src/hooks/useSessionStoragePersistedSet.js +41 -0
  688. package/src/i18n/mdxTranslations.js +472 -0
  689. package/src/i18n.js +12409 -0
  690. package/src/img/ccv-logo.png +0 -0
  691. package/src/img/codex/entrance.svg +7 -0
  692. package/src/img/codex/exit.svg +7 -0
  693. package/src/img/codex/orbiting.svg +7 -0
  694. package/src/img/codex/shimmer.svg +7 -0
  695. package/src/img/codex/thinking.svg +7 -0
  696. package/src/img/codex/tickle.svg +7 -0
  697. package/src/img/codex/waiting.svg +7 -0
  698. package/src/img/codex/writing.svg +7 -0
  699. package/src/img/default-avatar.svg +1 -0
  700. package/src/img/default-model-avatar.svg +1 -0
  701. package/src/img/loading-pet.gif +0 -0
  702. package/src/img/model-codex.svg +2 -0
  703. package/src/img/model-deepseek.svg +2 -0
  704. package/src/img/model-gemini.svg +2 -0
  705. package/src/img/model-glm.svg +2 -0
  706. package/src/img/model-kimi.svg +2 -0
  707. package/src/img/model-minimax.svg +2 -0
  708. package/src/img/model-openai.svg +2 -0
  709. package/src/img/model-qwen.svg +2 -0
  710. package/src/img/teammates/DESIGN.md +165 -0
  711. package/src/img/teammates/analyst.svg +32 -0
  712. package/src/img/teammates/auditor.svg +28 -0
  713. package/src/img/teammates/builder.svg +33 -0
  714. package/src/img/teammates/default.svg +25 -0
  715. package/src/img/teammates/designer.svg +25 -0
  716. package/src/img/teammates/executor.svg +31 -0
  717. package/src/img/teammates/expert.svg +30 -0
  718. package/src/img/teammates/explorer.svg +30 -0
  719. package/src/img/teammates/implementer.svg +34 -0
  720. package/src/img/teammates/investigator.svg +29 -0
  721. package/src/img/teammates/marvel/analyst.svg +26 -0
  722. package/src/img/teammates/marvel/auditor.svg +28 -0
  723. package/src/img/teammates/marvel/builder.svg +15 -0
  724. package/src/img/teammates/marvel/default.svg +25 -0
  725. package/src/img/teammates/marvel/designer.svg +21 -0
  726. package/src/img/teammates/marvel/executor.svg +25 -0
  727. package/src/img/teammates/marvel/expert.svg +31 -0
  728. package/src/img/teammates/marvel/explorer.svg +22 -0
  729. package/src/img/teammates/marvel/implementer.svg +30 -0
  730. package/src/img/teammates/marvel/investigator.svg +21 -0
  731. package/src/img/teammates/marvel/researcher.svg +30 -0
  732. package/src/img/teammates/marvel/reviewer.svg +21 -0
  733. package/src/img/teammates/marvel/scanner.svg +23 -0
  734. package/src/img/teammates/marvel/security.svg +30 -0
  735. package/src/img/teammates/marvel/tracer.svg +19 -0
  736. package/src/img/teammates/marvel/translator.svg +24 -0
  737. package/src/img/teammates/marvel/worker.svg +16 -0
  738. package/src/img/teammates/researcher.svg +35 -0
  739. package/src/img/teammates/reviewer.svg +23 -0
  740. package/src/img/teammates/scanner.svg +31 -0
  741. package/src/img/teammates/security.svg +31 -0
  742. package/src/img/teammates/tracer.svg +30 -0
  743. package/src/img/teammates/translator.svg +32 -0
  744. package/src/img/teammates/worker.svg +29 -0
  745. package/src/main.jsx +30 -0
  746. package/src/tokenInterceptor.js +60 -0
  747. package/src/utils/apiUrl.js +26 -0
  748. package/src/utils/approvalReviewerOptions.js +27 -0
  749. package/src/utils/askFallback.js +21 -0
  750. package/src/utils/askOptionDesc.js +55 -0
  751. package/src/utils/askPortalMatcher.js +54 -0
  752. package/src/utils/autoApproveOptions.js +23 -0
  753. package/src/utils/avatarAnimationPostPass.js +46 -0
  754. package/src/utils/builtinPresets.js +18 -0
  755. package/src/utils/clearCheckpoint.js +154 -0
  756. package/src/utils/commandValidator.js +45 -0
  757. package/src/utils/contentFilter.js +675 -0
  758. package/src/utils/contextRaw.js +17 -0
  759. package/src/utils/contextSidebarNavigation.js +16 -0
  760. package/src/utils/conversationEntryNormalize.js +497 -0
  761. package/src/utils/displayScaleHelper.js +47 -0
  762. package/src/utils/entry-slim.js +594 -0
  763. package/src/utils/entryCache.js +179 -0
  764. package/src/utils/errorReport.js +40 -0
  765. package/src/utils/fileExpandedPathsStorage.js +70 -0
  766. package/src/utils/fileIcons.jsx +36 -0
  767. package/src/utils/fileOpen.js +37 -0
  768. package/src/utils/formatters.js +48 -0
  769. package/src/utils/gitApi.js +50 -0
  770. package/src/utils/gitTreeBuilder.js +19 -0
  771. package/src/utils/helpers.js +462 -0
  772. package/src/utils/identityHeal.js +83 -0
  773. package/src/utils/imOrigin.js +24 -0
  774. package/src/utils/imTr.js +7 -0
  775. package/src/utils/imageCompress.js +83 -0
  776. package/src/utils/imageDownscale.js +28 -0
  777. package/src/utils/imageResize.js +112 -0
  778. package/src/utils/ingestPipeline.js +47 -0
  779. package/src/utils/lazyWithReload.js +53 -0
  780. package/src/utils/markdown.js +30 -0
  781. package/src/utils/markdownIncremental.js +39 -0
  782. package/src/utils/markdownProfiler.js +113 -0
  783. package/src/utils/mdExtensionDetect.js +64 -0
  784. package/src/utils/memoryLinkParser.js +44 -0
  785. package/src/utils/modalMask.js +15 -0
  786. package/src/utils/monotime.js +6 -0
  787. package/src/utils/pinnedMenu.js +55 -0
  788. package/src/utils/presetShortcuts.js +14 -0
  789. package/src/utils/projectAlias.js +135 -0
  790. package/src/utils/promptClassifier.js +111 -0
  791. package/src/utils/promptDetect.js +196 -0
  792. package/src/utils/promptNav.js +60 -0
  793. package/src/utils/ptyChunkBuilder.js +251 -0
  794. package/src/utils/quickMenuHoverIntent.js +35 -0
  795. package/src/utils/rateLimitParser.js +249 -0
  796. package/src/utils/readResultPool.js +106 -0
  797. package/src/utils/refreshCachedItemProp.js +32 -0
  798. package/src/utils/requestTools.js +19 -0
  799. package/src/utils/requestType.js +284 -0
  800. package/src/utils/resizeCalc.js +21 -0
  801. package/src/utils/resolveLocalized.js +17 -0
  802. package/src/utils/seqResourceLoaders.js +79 -0
  803. package/src/utils/sessionManager.js +694 -0
  804. package/src/utils/sessionMerge.js +290 -0
  805. package/src/utils/skillModalController.js +111 -0
  806. package/src/utils/skillsParser.js +116 -0
  807. package/src/utils/slashCommandLabels.js +80 -0
  808. package/src/utils/splitDragCalc.js +73 -0
  809. package/src/utils/stickyBottomController.js +643 -0
  810. package/src/utils/svgSanitize.js +48 -0
  811. package/src/utils/systemTags.js +47 -0
  812. package/src/utils/tCodex.js +20 -0
  813. package/src/utils/teamModalBuilder.js +347 -0
  814. package/src/utils/teamSessionParser.js +186 -0
  815. package/src/utils/teammateAvatars.js +194 -0
  816. package/src/utils/teammateDetector.js +106 -0
  817. package/src/utils/termDiag.js +114 -0
  818. package/src/utils/terminalClipboard.js +117 -0
  819. package/src/utils/terminalWriteQueue.js +398 -0
  820. package/src/utils/thinkingMerge.js +49 -0
  821. package/src/utils/tokenUsage.js +1 -0
  822. package/src/utils/toolCatalog.js +31 -0
  823. package/src/utils/toolNameAliases.js +13 -0
  824. package/src/utils/toolResultBuilder.js +312 -0
  825. package/src/utils/toolResultClassifier.js +16 -0
  826. package/src/utils/toolResultCore.js +161 -0
  827. package/src/utils/toolsDiff.js +44 -0
  828. package/src/utils/toolsXmlFormatter.js +3 -0
  829. package/src/utils/ultraplanController.js +109 -0
  830. package/src/utils/ultraplanExperts.js +86 -0
  831. package/src/utils/ultraplanTemplates.js +152 -0
  832. package/src/utils/userImageRefs.js +49 -0
  833. package/src/utils/voicePackPlayer.js +233 -0
  834. package/src/utils/webResultGrouping.js +111 -0
  835. package/src/utils/workflowFormat.js +52 -0
  836. package/src/utils/workflowRuns.js +118 -0
  837. package/src/utils/workflowStore.js +94 -0
  838. package/vite.config.js +106 -0
  839. package/concepts/ar/CacheRebuild.md +0 -36
  840. package/concepts/ar/KVCacheContent.md +0 -49
  841. package/concepts/ar/Tool-Agent.md +0 -125
  842. package/concepts/ar/Tool-AskUserQuestion.md +0 -75
  843. package/concepts/ar/Tool-Bash.md +0 -167
  844. package/concepts/ar/Tool-Edit.md +0 -46
  845. package/concepts/ar/Tool-EnterPlanMode.md +0 -128
  846. package/concepts/ar/Tool-EnterWorktree.md +0 -56
  847. package/concepts/ar/Tool-ExitPlanMode.md +0 -62
  848. package/concepts/ar/Tool-Glob.md +0 -39
  849. package/concepts/ar/Tool-Grep.md +0 -57
  850. package/concepts/ar/Tool-NotebookEdit.md +0 -33
  851. package/concepts/ar/Tool-Read.md +0 -56
  852. package/concepts/ar/Tool-SendMessage.md +0 -41
  853. package/concepts/ar/Tool-Skill.md +0 -56
  854. package/concepts/ar/Tool-Task.md +0 -51
  855. package/concepts/ar/Tool-TaskCreate.md +0 -78
  856. package/concepts/ar/Tool-TaskGet.md +0 -56
  857. package/concepts/ar/Tool-TaskList.md +0 -56
  858. package/concepts/ar/Tool-TaskOutput.md +0 -40
  859. package/concepts/ar/Tool-TaskStop.md +0 -32
  860. package/concepts/ar/Tool-TaskUpdate.md +0 -123
  861. package/concepts/ar/Tool-TeamCreate.md +0 -38
  862. package/concepts/ar/Tool-TeamDelete.md +0 -30
  863. package/concepts/ar/Tool-WebFetch.md +0 -55
  864. package/concepts/ar/Tool-WebSearch.md +0 -58
  865. package/concepts/ar/Tool-Write.md +0 -39
  866. package/concepts/ar/Tool-executeCode.md +0 -41
  867. package/concepts/ar/Tool-getDiagnostics.md +0 -32
  868. package/concepts/ar/Tools.md +0 -67
  869. package/concepts/da/CacheRebuild.md +0 -36
  870. package/concepts/da/KVCacheContent.md +0 -49
  871. package/concepts/da/Tool-Agent.md +0 -125
  872. package/concepts/da/Tool-AskUserQuestion.md +0 -75
  873. package/concepts/da/Tool-Bash.md +0 -167
  874. package/concepts/da/Tool-Edit.md +0 -46
  875. package/concepts/da/Tool-EnterPlanMode.md +0 -128
  876. package/concepts/da/Tool-EnterWorktree.md +0 -56
  877. package/concepts/da/Tool-ExitPlanMode.md +0 -62
  878. package/concepts/da/Tool-Glob.md +0 -39
  879. package/concepts/da/Tool-Grep.md +0 -57
  880. package/concepts/da/Tool-NotebookEdit.md +0 -33
  881. package/concepts/da/Tool-Read.md +0 -56
  882. package/concepts/da/Tool-SendMessage.md +0 -41
  883. package/concepts/da/Tool-Skill.md +0 -56
  884. package/concepts/da/Tool-Task.md +0 -51
  885. package/concepts/da/Tool-TaskCreate.md +0 -78
  886. package/concepts/da/Tool-TaskGet.md +0 -56
  887. package/concepts/da/Tool-TaskList.md +0 -56
  888. package/concepts/da/Tool-TaskOutput.md +0 -40
  889. package/concepts/da/Tool-TaskStop.md +0 -32
  890. package/concepts/da/Tool-TaskUpdate.md +0 -123
  891. package/concepts/da/Tool-TeamCreate.md +0 -38
  892. package/concepts/da/Tool-TeamDelete.md +0 -30
  893. package/concepts/da/Tool-WebFetch.md +0 -55
  894. package/concepts/da/Tool-WebSearch.md +0 -58
  895. package/concepts/da/Tool-Write.md +0 -39
  896. package/concepts/da/Tool-executeCode.md +0 -41
  897. package/concepts/da/Tool-getDiagnostics.md +0 -32
  898. package/concepts/da/Tools.md +0 -67
  899. package/concepts/de/CacheRebuild.md +0 -36
  900. package/concepts/de/KVCacheContent.md +0 -49
  901. package/concepts/de/Tool-Agent.md +0 -125
  902. package/concepts/de/Tool-AskUserQuestion.md +0 -75
  903. package/concepts/de/Tool-Bash.md +0 -167
  904. package/concepts/de/Tool-Edit.md +0 -46
  905. package/concepts/de/Tool-EnterPlanMode.md +0 -128
  906. package/concepts/de/Tool-EnterWorktree.md +0 -56
  907. package/concepts/de/Tool-ExitPlanMode.md +0 -62
  908. package/concepts/de/Tool-Glob.md +0 -39
  909. package/concepts/de/Tool-Grep.md +0 -57
  910. package/concepts/de/Tool-NotebookEdit.md +0 -33
  911. package/concepts/de/Tool-Read.md +0 -56
  912. package/concepts/de/Tool-SendMessage.md +0 -41
  913. package/concepts/de/Tool-Skill.md +0 -56
  914. package/concepts/de/Tool-Task.md +0 -51
  915. package/concepts/de/Tool-TaskCreate.md +0 -78
  916. package/concepts/de/Tool-TaskGet.md +0 -56
  917. package/concepts/de/Tool-TaskList.md +0 -56
  918. package/concepts/de/Tool-TaskOutput.md +0 -40
  919. package/concepts/de/Tool-TaskStop.md +0 -32
  920. package/concepts/de/Tool-TaskUpdate.md +0 -123
  921. package/concepts/de/Tool-TeamCreate.md +0 -38
  922. package/concepts/de/Tool-TeamDelete.md +0 -30
  923. package/concepts/de/Tool-WebFetch.md +0 -55
  924. package/concepts/de/Tool-WebSearch.md +0 -58
  925. package/concepts/de/Tool-Write.md +0 -39
  926. package/concepts/de/Tool-executeCode.md +0 -41
  927. package/concepts/de/Tool-getDiagnostics.md +0 -32
  928. package/concepts/de/Tools.md +0 -67
  929. package/concepts/en/CacheRebuild.md +0 -36
  930. package/concepts/en/KVCacheContent.md +0 -49
  931. package/concepts/en/Tool-Agent.md +0 -125
  932. package/concepts/en/Tool-AskUserQuestion.md +0 -75
  933. package/concepts/en/Tool-Bash.md +0 -167
  934. package/concepts/en/Tool-Edit.md +0 -46
  935. package/concepts/en/Tool-EnterPlanMode.md +0 -128
  936. package/concepts/en/Tool-EnterWorktree.md +0 -56
  937. package/concepts/en/Tool-ExitPlanMode.md +0 -62
  938. package/concepts/en/Tool-Glob.md +0 -39
  939. package/concepts/en/Tool-Grep.md +0 -57
  940. package/concepts/en/Tool-NotebookEdit.md +0 -33
  941. package/concepts/en/Tool-Read.md +0 -56
  942. package/concepts/en/Tool-SendMessage.md +0 -41
  943. package/concepts/en/Tool-Skill.md +0 -56
  944. package/concepts/en/Tool-Task.md +0 -51
  945. package/concepts/en/Tool-TaskCreate.md +0 -78
  946. package/concepts/en/Tool-TaskGet.md +0 -56
  947. package/concepts/en/Tool-TaskList.md +0 -56
  948. package/concepts/en/Tool-TaskOutput.md +0 -40
  949. package/concepts/en/Tool-TaskStop.md +0 -32
  950. package/concepts/en/Tool-TaskUpdate.md +0 -123
  951. package/concepts/en/Tool-TeamCreate.md +0 -38
  952. package/concepts/en/Tool-TeamDelete.md +0 -30
  953. package/concepts/en/Tool-WebFetch.md +0 -55
  954. package/concepts/en/Tool-WebSearch.md +0 -58
  955. package/concepts/en/Tool-Write.md +0 -39
  956. package/concepts/en/Tool-executeCode.md +0 -41
  957. package/concepts/en/Tool-getDiagnostics.md +0 -32
  958. package/concepts/es/CacheRebuild.md +0 -36
  959. package/concepts/es/KVCacheContent.md +0 -49
  960. package/concepts/es/Tool-Agent.md +0 -125
  961. package/concepts/es/Tool-AskUserQuestion.md +0 -75
  962. package/concepts/es/Tool-Bash.md +0 -167
  963. package/concepts/es/Tool-Edit.md +0 -46
  964. package/concepts/es/Tool-EnterPlanMode.md +0 -128
  965. package/concepts/es/Tool-EnterWorktree.md +0 -56
  966. package/concepts/es/Tool-ExitPlanMode.md +0 -62
  967. package/concepts/es/Tool-Glob.md +0 -39
  968. package/concepts/es/Tool-Grep.md +0 -57
  969. package/concepts/es/Tool-NotebookEdit.md +0 -33
  970. package/concepts/es/Tool-Read.md +0 -56
  971. package/concepts/es/Tool-SendMessage.md +0 -41
  972. package/concepts/es/Tool-Skill.md +0 -56
  973. package/concepts/es/Tool-Task.md +0 -51
  974. package/concepts/es/Tool-TaskCreate.md +0 -78
  975. package/concepts/es/Tool-TaskGet.md +0 -56
  976. package/concepts/es/Tool-TaskList.md +0 -56
  977. package/concepts/es/Tool-TaskOutput.md +0 -40
  978. package/concepts/es/Tool-TaskStop.md +0 -32
  979. package/concepts/es/Tool-TaskUpdate.md +0 -123
  980. package/concepts/es/Tool-TeamCreate.md +0 -38
  981. package/concepts/es/Tool-TeamDelete.md +0 -30
  982. package/concepts/es/Tool-WebFetch.md +0 -55
  983. package/concepts/es/Tool-WebSearch.md +0 -58
  984. package/concepts/es/Tool-Write.md +0 -39
  985. package/concepts/es/Tool-executeCode.md +0 -41
  986. package/concepts/es/Tool-getDiagnostics.md +0 -32
  987. package/concepts/es/Tools.md +0 -67
  988. package/concepts/fr/CacheRebuild.md +0 -36
  989. package/concepts/fr/KVCacheContent.md +0 -49
  990. package/concepts/fr/Tool-Agent.md +0 -125
  991. package/concepts/fr/Tool-AskUserQuestion.md +0 -75
  992. package/concepts/fr/Tool-Bash.md +0 -167
  993. package/concepts/fr/Tool-Edit.md +0 -46
  994. package/concepts/fr/Tool-EnterPlanMode.md +0 -128
  995. package/concepts/fr/Tool-EnterWorktree.md +0 -56
  996. package/concepts/fr/Tool-ExitPlanMode.md +0 -62
  997. package/concepts/fr/Tool-Glob.md +0 -39
  998. package/concepts/fr/Tool-Grep.md +0 -57
  999. package/concepts/fr/Tool-NotebookEdit.md +0 -33
  1000. package/concepts/fr/Tool-Read.md +0 -56
  1001. package/concepts/fr/Tool-SendMessage.md +0 -41
  1002. package/concepts/fr/Tool-Skill.md +0 -56
  1003. package/concepts/fr/Tool-Task.md +0 -51
  1004. package/concepts/fr/Tool-TaskCreate.md +0 -78
  1005. package/concepts/fr/Tool-TaskGet.md +0 -56
  1006. package/concepts/fr/Tool-TaskList.md +0 -56
  1007. package/concepts/fr/Tool-TaskOutput.md +0 -40
  1008. package/concepts/fr/Tool-TaskStop.md +0 -32
  1009. package/concepts/fr/Tool-TaskUpdate.md +0 -123
  1010. package/concepts/fr/Tool-TeamCreate.md +0 -38
  1011. package/concepts/fr/Tool-TeamDelete.md +0 -30
  1012. package/concepts/fr/Tool-WebFetch.md +0 -55
  1013. package/concepts/fr/Tool-WebSearch.md +0 -58
  1014. package/concepts/fr/Tool-Write.md +0 -39
  1015. package/concepts/fr/Tool-executeCode.md +0 -41
  1016. package/concepts/fr/Tool-getDiagnostics.md +0 -32
  1017. package/concepts/fr/Tools.md +0 -67
  1018. package/concepts/it/CacheRebuild.md +0 -36
  1019. package/concepts/it/KVCacheContent.md +0 -49
  1020. package/concepts/it/Tool-Agent.md +0 -125
  1021. package/concepts/it/Tool-AskUserQuestion.md +0 -75
  1022. package/concepts/it/Tool-Bash.md +0 -167
  1023. package/concepts/it/Tool-Edit.md +0 -46
  1024. package/concepts/it/Tool-EnterPlanMode.md +0 -128
  1025. package/concepts/it/Tool-EnterWorktree.md +0 -56
  1026. package/concepts/it/Tool-ExitPlanMode.md +0 -62
  1027. package/concepts/it/Tool-Glob.md +0 -39
  1028. package/concepts/it/Tool-Grep.md +0 -57
  1029. package/concepts/it/Tool-NotebookEdit.md +0 -33
  1030. package/concepts/it/Tool-Read.md +0 -56
  1031. package/concepts/it/Tool-SendMessage.md +0 -41
  1032. package/concepts/it/Tool-Skill.md +0 -56
  1033. package/concepts/it/Tool-Task.md +0 -51
  1034. package/concepts/it/Tool-TaskCreate.md +0 -78
  1035. package/concepts/it/Tool-TaskGet.md +0 -56
  1036. package/concepts/it/Tool-TaskList.md +0 -56
  1037. package/concepts/it/Tool-TaskOutput.md +0 -40
  1038. package/concepts/it/Tool-TaskStop.md +0 -32
  1039. package/concepts/it/Tool-TaskUpdate.md +0 -123
  1040. package/concepts/it/Tool-TeamCreate.md +0 -38
  1041. package/concepts/it/Tool-TeamDelete.md +0 -30
  1042. package/concepts/it/Tool-WebFetch.md +0 -55
  1043. package/concepts/it/Tool-WebSearch.md +0 -58
  1044. package/concepts/it/Tool-Write.md +0 -39
  1045. package/concepts/it/Tool-executeCode.md +0 -41
  1046. package/concepts/it/Tool-getDiagnostics.md +0 -32
  1047. package/concepts/it/Tools.md +0 -67
  1048. package/concepts/ja/CacheRebuild.md +0 -36
  1049. package/concepts/ja/KVCacheContent.md +0 -49
  1050. package/concepts/ja/Tool-Agent.md +0 -125
  1051. package/concepts/ja/Tool-AskUserQuestion.md +0 -75
  1052. package/concepts/ja/Tool-Bash.md +0 -167
  1053. package/concepts/ja/Tool-Edit.md +0 -46
  1054. package/concepts/ja/Tool-EnterPlanMode.md +0 -128
  1055. package/concepts/ja/Tool-EnterWorktree.md +0 -56
  1056. package/concepts/ja/Tool-ExitPlanMode.md +0 -62
  1057. package/concepts/ja/Tool-Glob.md +0 -39
  1058. package/concepts/ja/Tool-Grep.md +0 -57
  1059. package/concepts/ja/Tool-NotebookEdit.md +0 -33
  1060. package/concepts/ja/Tool-Read.md +0 -56
  1061. package/concepts/ja/Tool-SendMessage.md +0 -41
  1062. package/concepts/ja/Tool-Skill.md +0 -56
  1063. package/concepts/ja/Tool-Task.md +0 -51
  1064. package/concepts/ja/Tool-TaskCreate.md +0 -78
  1065. package/concepts/ja/Tool-TaskGet.md +0 -56
  1066. package/concepts/ja/Tool-TaskList.md +0 -56
  1067. package/concepts/ja/Tool-TaskOutput.md +0 -40
  1068. package/concepts/ja/Tool-TaskStop.md +0 -32
  1069. package/concepts/ja/Tool-TaskUpdate.md +0 -123
  1070. package/concepts/ja/Tool-TeamCreate.md +0 -38
  1071. package/concepts/ja/Tool-TeamDelete.md +0 -30
  1072. package/concepts/ja/Tool-WebFetch.md +0 -55
  1073. package/concepts/ja/Tool-WebSearch.md +0 -58
  1074. package/concepts/ja/Tool-Write.md +0 -39
  1075. package/concepts/ja/Tool-executeCode.md +0 -41
  1076. package/concepts/ja/Tool-getDiagnostics.md +0 -32
  1077. package/concepts/ja/Tools.md +0 -67
  1078. package/concepts/ko/CacheRebuild.md +0 -36
  1079. package/concepts/ko/KVCacheContent.md +0 -49
  1080. package/concepts/ko/Tool-Agent.md +0 -125
  1081. package/concepts/ko/Tool-AskUserQuestion.md +0 -75
  1082. package/concepts/ko/Tool-Bash.md +0 -167
  1083. package/concepts/ko/Tool-Edit.md +0 -46
  1084. package/concepts/ko/Tool-EnterPlanMode.md +0 -128
  1085. package/concepts/ko/Tool-EnterWorktree.md +0 -56
  1086. package/concepts/ko/Tool-ExitPlanMode.md +0 -62
  1087. package/concepts/ko/Tool-Glob.md +0 -39
  1088. package/concepts/ko/Tool-Grep.md +0 -57
  1089. package/concepts/ko/Tool-NotebookEdit.md +0 -33
  1090. package/concepts/ko/Tool-Read.md +0 -56
  1091. package/concepts/ko/Tool-SendMessage.md +0 -41
  1092. package/concepts/ko/Tool-Skill.md +0 -56
  1093. package/concepts/ko/Tool-Task.md +0 -51
  1094. package/concepts/ko/Tool-TaskCreate.md +0 -78
  1095. package/concepts/ko/Tool-TaskGet.md +0 -56
  1096. package/concepts/ko/Tool-TaskList.md +0 -56
  1097. package/concepts/ko/Tool-TaskOutput.md +0 -40
  1098. package/concepts/ko/Tool-TaskStop.md +0 -32
  1099. package/concepts/ko/Tool-TaskUpdate.md +0 -123
  1100. package/concepts/ko/Tool-TeamCreate.md +0 -38
  1101. package/concepts/ko/Tool-TeamDelete.md +0 -30
  1102. package/concepts/ko/Tool-WebFetch.md +0 -55
  1103. package/concepts/ko/Tool-WebSearch.md +0 -58
  1104. package/concepts/ko/Tool-Write.md +0 -39
  1105. package/concepts/ko/Tool-executeCode.md +0 -41
  1106. package/concepts/ko/Tool-getDiagnostics.md +0 -32
  1107. package/concepts/ko/Tools.md +0 -67
  1108. package/concepts/no/CacheRebuild.md +0 -36
  1109. package/concepts/no/KVCacheContent.md +0 -49
  1110. package/concepts/no/Tool-Agent.md +0 -125
  1111. package/concepts/no/Tool-AskUserQuestion.md +0 -75
  1112. package/concepts/no/Tool-Bash.md +0 -167
  1113. package/concepts/no/Tool-Edit.md +0 -46
  1114. package/concepts/no/Tool-EnterPlanMode.md +0 -128
  1115. package/concepts/no/Tool-EnterWorktree.md +0 -56
  1116. package/concepts/no/Tool-ExitPlanMode.md +0 -62
  1117. package/concepts/no/Tool-Glob.md +0 -39
  1118. package/concepts/no/Tool-Grep.md +0 -57
  1119. package/concepts/no/Tool-NotebookEdit.md +0 -33
  1120. package/concepts/no/Tool-Read.md +0 -56
  1121. package/concepts/no/Tool-SendMessage.md +0 -41
  1122. package/concepts/no/Tool-Skill.md +0 -56
  1123. package/concepts/no/Tool-Task.md +0 -51
  1124. package/concepts/no/Tool-TaskCreate.md +0 -78
  1125. package/concepts/no/Tool-TaskGet.md +0 -56
  1126. package/concepts/no/Tool-TaskList.md +0 -56
  1127. package/concepts/no/Tool-TaskOutput.md +0 -40
  1128. package/concepts/no/Tool-TaskStop.md +0 -32
  1129. package/concepts/no/Tool-TaskUpdate.md +0 -123
  1130. package/concepts/no/Tool-TeamCreate.md +0 -38
  1131. package/concepts/no/Tool-TeamDelete.md +0 -30
  1132. package/concepts/no/Tool-WebFetch.md +0 -55
  1133. package/concepts/no/Tool-WebSearch.md +0 -58
  1134. package/concepts/no/Tool-Write.md +0 -39
  1135. package/concepts/no/Tool-executeCode.md +0 -41
  1136. package/concepts/no/Tool-getDiagnostics.md +0 -32
  1137. package/concepts/no/Tools.md +0 -67
  1138. package/concepts/pl/CacheRebuild.md +0 -36
  1139. package/concepts/pl/KVCacheContent.md +0 -49
  1140. package/concepts/pl/Tool-Agent.md +0 -125
  1141. package/concepts/pl/Tool-AskUserQuestion.md +0 -75
  1142. package/concepts/pl/Tool-Bash.md +0 -167
  1143. package/concepts/pl/Tool-Edit.md +0 -46
  1144. package/concepts/pl/Tool-EnterPlanMode.md +0 -128
  1145. package/concepts/pl/Tool-EnterWorktree.md +0 -56
  1146. package/concepts/pl/Tool-ExitPlanMode.md +0 -62
  1147. package/concepts/pl/Tool-Glob.md +0 -39
  1148. package/concepts/pl/Tool-Grep.md +0 -57
  1149. package/concepts/pl/Tool-NotebookEdit.md +0 -33
  1150. package/concepts/pl/Tool-Read.md +0 -56
  1151. package/concepts/pl/Tool-SendMessage.md +0 -41
  1152. package/concepts/pl/Tool-Skill.md +0 -56
  1153. package/concepts/pl/Tool-Task.md +0 -51
  1154. package/concepts/pl/Tool-TaskCreate.md +0 -78
  1155. package/concepts/pl/Tool-TaskGet.md +0 -56
  1156. package/concepts/pl/Tool-TaskList.md +0 -56
  1157. package/concepts/pl/Tool-TaskOutput.md +0 -40
  1158. package/concepts/pl/Tool-TaskStop.md +0 -32
  1159. package/concepts/pl/Tool-TaskUpdate.md +0 -123
  1160. package/concepts/pl/Tool-TeamCreate.md +0 -38
  1161. package/concepts/pl/Tool-TeamDelete.md +0 -30
  1162. package/concepts/pl/Tool-WebFetch.md +0 -55
  1163. package/concepts/pl/Tool-WebSearch.md +0 -58
  1164. package/concepts/pl/Tool-Write.md +0 -39
  1165. package/concepts/pl/Tool-executeCode.md +0 -41
  1166. package/concepts/pl/Tool-getDiagnostics.md +0 -32
  1167. package/concepts/pl/Tools.md +0 -67
  1168. package/concepts/pt-BR/CacheRebuild.md +0 -36
  1169. package/concepts/pt-BR/KVCacheContent.md +0 -49
  1170. package/concepts/pt-BR/Tool-Agent.md +0 -125
  1171. package/concepts/pt-BR/Tool-AskUserQuestion.md +0 -75
  1172. package/concepts/pt-BR/Tool-Bash.md +0 -167
  1173. package/concepts/pt-BR/Tool-Edit.md +0 -46
  1174. package/concepts/pt-BR/Tool-EnterPlanMode.md +0 -128
  1175. package/concepts/pt-BR/Tool-EnterWorktree.md +0 -56
  1176. package/concepts/pt-BR/Tool-ExitPlanMode.md +0 -62
  1177. package/concepts/pt-BR/Tool-Glob.md +0 -39
  1178. package/concepts/pt-BR/Tool-Grep.md +0 -57
  1179. package/concepts/pt-BR/Tool-NotebookEdit.md +0 -33
  1180. package/concepts/pt-BR/Tool-Read.md +0 -56
  1181. package/concepts/pt-BR/Tool-SendMessage.md +0 -41
  1182. package/concepts/pt-BR/Tool-Skill.md +0 -56
  1183. package/concepts/pt-BR/Tool-Task.md +0 -51
  1184. package/concepts/pt-BR/Tool-TaskCreate.md +0 -78
  1185. package/concepts/pt-BR/Tool-TaskGet.md +0 -56
  1186. package/concepts/pt-BR/Tool-TaskList.md +0 -56
  1187. package/concepts/pt-BR/Tool-TaskOutput.md +0 -40
  1188. package/concepts/pt-BR/Tool-TaskStop.md +0 -32
  1189. package/concepts/pt-BR/Tool-TaskUpdate.md +0 -123
  1190. package/concepts/pt-BR/Tool-TeamCreate.md +0 -38
  1191. package/concepts/pt-BR/Tool-TeamDelete.md +0 -30
  1192. package/concepts/pt-BR/Tool-WebFetch.md +0 -55
  1193. package/concepts/pt-BR/Tool-WebSearch.md +0 -58
  1194. package/concepts/pt-BR/Tool-Write.md +0 -39
  1195. package/concepts/pt-BR/Tool-executeCode.md +0 -41
  1196. package/concepts/pt-BR/Tool-getDiagnostics.md +0 -32
  1197. package/concepts/pt-BR/Tools.md +0 -67
  1198. package/concepts/ru/CacheRebuild.md +0 -36
  1199. package/concepts/ru/KVCacheContent.md +0 -49
  1200. package/concepts/ru/Tool-Agent.md +0 -125
  1201. package/concepts/ru/Tool-AskUserQuestion.md +0 -75
  1202. package/concepts/ru/Tool-Bash.md +0 -167
  1203. package/concepts/ru/Tool-Edit.md +0 -46
  1204. package/concepts/ru/Tool-EnterPlanMode.md +0 -128
  1205. package/concepts/ru/Tool-EnterWorktree.md +0 -56
  1206. package/concepts/ru/Tool-ExitPlanMode.md +0 -62
  1207. package/concepts/ru/Tool-Glob.md +0 -39
  1208. package/concepts/ru/Tool-Grep.md +0 -57
  1209. package/concepts/ru/Tool-NotebookEdit.md +0 -33
  1210. package/concepts/ru/Tool-Read.md +0 -56
  1211. package/concepts/ru/Tool-SendMessage.md +0 -41
  1212. package/concepts/ru/Tool-Skill.md +0 -56
  1213. package/concepts/ru/Tool-Task.md +0 -51
  1214. package/concepts/ru/Tool-TaskCreate.md +0 -78
  1215. package/concepts/ru/Tool-TaskGet.md +0 -56
  1216. package/concepts/ru/Tool-TaskList.md +0 -56
  1217. package/concepts/ru/Tool-TaskOutput.md +0 -40
  1218. package/concepts/ru/Tool-TaskStop.md +0 -32
  1219. package/concepts/ru/Tool-TaskUpdate.md +0 -123
  1220. package/concepts/ru/Tool-TeamCreate.md +0 -38
  1221. package/concepts/ru/Tool-TeamDelete.md +0 -30
  1222. package/concepts/ru/Tool-WebFetch.md +0 -55
  1223. package/concepts/ru/Tool-WebSearch.md +0 -58
  1224. package/concepts/ru/Tool-Write.md +0 -39
  1225. package/concepts/ru/Tool-executeCode.md +0 -41
  1226. package/concepts/ru/Tool-getDiagnostics.md +0 -32
  1227. package/concepts/ru/Tools.md +0 -67
  1228. package/concepts/th/CacheRebuild.md +0 -36
  1229. package/concepts/th/KVCacheContent.md +0 -49
  1230. package/concepts/th/Tool-Agent.md +0 -125
  1231. package/concepts/th/Tool-AskUserQuestion.md +0 -75
  1232. package/concepts/th/Tool-Bash.md +0 -167
  1233. package/concepts/th/Tool-Edit.md +0 -46
  1234. package/concepts/th/Tool-EnterPlanMode.md +0 -128
  1235. package/concepts/th/Tool-EnterWorktree.md +0 -56
  1236. package/concepts/th/Tool-ExitPlanMode.md +0 -62
  1237. package/concepts/th/Tool-Glob.md +0 -39
  1238. package/concepts/th/Tool-Grep.md +0 -57
  1239. package/concepts/th/Tool-NotebookEdit.md +0 -33
  1240. package/concepts/th/Tool-Read.md +0 -56
  1241. package/concepts/th/Tool-SendMessage.md +0 -41
  1242. package/concepts/th/Tool-Skill.md +0 -56
  1243. package/concepts/th/Tool-Task.md +0 -51
  1244. package/concepts/th/Tool-TaskCreate.md +0 -78
  1245. package/concepts/th/Tool-TaskGet.md +0 -56
  1246. package/concepts/th/Tool-TaskList.md +0 -56
  1247. package/concepts/th/Tool-TaskOutput.md +0 -40
  1248. package/concepts/th/Tool-TaskStop.md +0 -32
  1249. package/concepts/th/Tool-TaskUpdate.md +0 -123
  1250. package/concepts/th/Tool-TeamCreate.md +0 -38
  1251. package/concepts/th/Tool-TeamDelete.md +0 -30
  1252. package/concepts/th/Tool-WebFetch.md +0 -55
  1253. package/concepts/th/Tool-WebSearch.md +0 -58
  1254. package/concepts/th/Tool-Write.md +0 -39
  1255. package/concepts/th/Tool-executeCode.md +0 -41
  1256. package/concepts/th/Tool-getDiagnostics.md +0 -32
  1257. package/concepts/th/Tools.md +0 -67
  1258. package/concepts/tr/CacheRebuild.md +0 -36
  1259. package/concepts/tr/KVCacheContent.md +0 -49
  1260. package/concepts/tr/Tool-Agent.md +0 -125
  1261. package/concepts/tr/Tool-AskUserQuestion.md +0 -75
  1262. package/concepts/tr/Tool-Bash.md +0 -167
  1263. package/concepts/tr/Tool-Edit.md +0 -46
  1264. package/concepts/tr/Tool-EnterPlanMode.md +0 -128
  1265. package/concepts/tr/Tool-EnterWorktree.md +0 -56
  1266. package/concepts/tr/Tool-ExitPlanMode.md +0 -62
  1267. package/concepts/tr/Tool-Glob.md +0 -39
  1268. package/concepts/tr/Tool-Grep.md +0 -57
  1269. package/concepts/tr/Tool-NotebookEdit.md +0 -33
  1270. package/concepts/tr/Tool-Read.md +0 -56
  1271. package/concepts/tr/Tool-SendMessage.md +0 -41
  1272. package/concepts/tr/Tool-Skill.md +0 -56
  1273. package/concepts/tr/Tool-Task.md +0 -51
  1274. package/concepts/tr/Tool-TaskCreate.md +0 -78
  1275. package/concepts/tr/Tool-TaskGet.md +0 -56
  1276. package/concepts/tr/Tool-TaskList.md +0 -56
  1277. package/concepts/tr/Tool-TaskOutput.md +0 -40
  1278. package/concepts/tr/Tool-TaskStop.md +0 -32
  1279. package/concepts/tr/Tool-TaskUpdate.md +0 -123
  1280. package/concepts/tr/Tool-TeamCreate.md +0 -38
  1281. package/concepts/tr/Tool-TeamDelete.md +0 -30
  1282. package/concepts/tr/Tool-WebFetch.md +0 -55
  1283. package/concepts/tr/Tool-WebSearch.md +0 -58
  1284. package/concepts/tr/Tool-Write.md +0 -39
  1285. package/concepts/tr/Tool-executeCode.md +0 -41
  1286. package/concepts/tr/Tool-getDiagnostics.md +0 -32
  1287. package/concepts/tr/Tools.md +0 -67
  1288. package/concepts/uk/CacheRebuild.md +0 -36
  1289. package/concepts/uk/KVCacheContent.md +0 -49
  1290. package/concepts/uk/Tool-Agent.md +0 -125
  1291. package/concepts/uk/Tool-AskUserQuestion.md +0 -75
  1292. package/concepts/uk/Tool-Bash.md +0 -167
  1293. package/concepts/uk/Tool-Edit.md +0 -46
  1294. package/concepts/uk/Tool-EnterPlanMode.md +0 -128
  1295. package/concepts/uk/Tool-EnterWorktree.md +0 -56
  1296. package/concepts/uk/Tool-ExitPlanMode.md +0 -62
  1297. package/concepts/uk/Tool-Glob.md +0 -39
  1298. package/concepts/uk/Tool-Grep.md +0 -57
  1299. package/concepts/uk/Tool-NotebookEdit.md +0 -33
  1300. package/concepts/uk/Tool-Read.md +0 -56
  1301. package/concepts/uk/Tool-SendMessage.md +0 -41
  1302. package/concepts/uk/Tool-Skill.md +0 -56
  1303. package/concepts/uk/Tool-Task.md +0 -51
  1304. package/concepts/uk/Tool-TaskCreate.md +0 -78
  1305. package/concepts/uk/Tool-TaskGet.md +0 -56
  1306. package/concepts/uk/Tool-TaskList.md +0 -56
  1307. package/concepts/uk/Tool-TaskOutput.md +0 -40
  1308. package/concepts/uk/Tool-TaskStop.md +0 -32
  1309. package/concepts/uk/Tool-TaskUpdate.md +0 -123
  1310. package/concepts/uk/Tool-TeamCreate.md +0 -38
  1311. package/concepts/uk/Tool-TeamDelete.md +0 -30
  1312. package/concepts/uk/Tool-WebFetch.md +0 -55
  1313. package/concepts/uk/Tool-WebSearch.md +0 -58
  1314. package/concepts/uk/Tool-Write.md +0 -39
  1315. package/concepts/uk/Tool-executeCode.md +0 -41
  1316. package/concepts/uk/Tool-getDiagnostics.md +0 -32
  1317. package/concepts/uk/Tools.md +0 -67
  1318. package/concepts/zh/CacheRebuild.md +0 -36
  1319. package/concepts/zh/KVCacheContent.md +0 -49
  1320. package/concepts/zh/Tool-Agent.md +0 -125
  1321. package/concepts/zh/Tool-AskUserQuestion.md +0 -75
  1322. package/concepts/zh/Tool-Bash.md +0 -167
  1323. package/concepts/zh/Tool-Edit.md +0 -46
  1324. package/concepts/zh/Tool-EnterPlanMode.md +0 -128
  1325. package/concepts/zh/Tool-EnterWorktree.md +0 -56
  1326. package/concepts/zh/Tool-ExitPlanMode.md +0 -62
  1327. package/concepts/zh/Tool-Glob.md +0 -39
  1328. package/concepts/zh/Tool-Grep.md +0 -57
  1329. package/concepts/zh/Tool-NotebookEdit.md +0 -33
  1330. package/concepts/zh/Tool-Read.md +0 -56
  1331. package/concepts/zh/Tool-SendMessage.md +0 -41
  1332. package/concepts/zh/Tool-Skill.md +0 -56
  1333. package/concepts/zh/Tool-Task.md +0 -51
  1334. package/concepts/zh/Tool-TaskCreate.md +0 -78
  1335. package/concepts/zh/Tool-TaskGet.md +0 -56
  1336. package/concepts/zh/Tool-TaskList.md +0 -56
  1337. package/concepts/zh/Tool-TaskOutput.md +0 -40
  1338. package/concepts/zh/Tool-TaskStop.md +0 -32
  1339. package/concepts/zh/Tool-TaskUpdate.md +0 -123
  1340. package/concepts/zh/Tool-TeamCreate.md +0 -38
  1341. package/concepts/zh/Tool-TeamDelete.md +0 -30
  1342. package/concepts/zh/Tool-WebFetch.md +0 -55
  1343. package/concepts/zh/Tool-WebSearch.md +0 -58
  1344. package/concepts/zh/Tool-Write.md +0 -39
  1345. package/concepts/zh/Tool-executeCode.md +0 -41
  1346. package/concepts/zh/Tool-getDiagnostics.md +0 -32
  1347. package/concepts/zh-TW/CacheRebuild.md +0 -36
  1348. package/concepts/zh-TW/KVCacheContent.md +0 -49
  1349. package/concepts/zh-TW/Tool-Agent.md +0 -125
  1350. package/concepts/zh-TW/Tool-AskUserQuestion.md +0 -75
  1351. package/concepts/zh-TW/Tool-Bash.md +0 -167
  1352. package/concepts/zh-TW/Tool-Edit.md +0 -46
  1353. package/concepts/zh-TW/Tool-EnterPlanMode.md +0 -128
  1354. package/concepts/zh-TW/Tool-EnterWorktree.md +0 -56
  1355. package/concepts/zh-TW/Tool-ExitPlanMode.md +0 -62
  1356. package/concepts/zh-TW/Tool-Glob.md +0 -39
  1357. package/concepts/zh-TW/Tool-Grep.md +0 -57
  1358. package/concepts/zh-TW/Tool-NotebookEdit.md +0 -33
  1359. package/concepts/zh-TW/Tool-Read.md +0 -56
  1360. package/concepts/zh-TW/Tool-SendMessage.md +0 -41
  1361. package/concepts/zh-TW/Tool-Skill.md +0 -56
  1362. package/concepts/zh-TW/Tool-Task.md +0 -51
  1363. package/concepts/zh-TW/Tool-TaskCreate.md +0 -78
  1364. package/concepts/zh-TW/Tool-TaskGet.md +0 -56
  1365. package/concepts/zh-TW/Tool-TaskList.md +0 -56
  1366. package/concepts/zh-TW/Tool-TaskOutput.md +0 -40
  1367. package/concepts/zh-TW/Tool-TaskStop.md +0 -32
  1368. package/concepts/zh-TW/Tool-TaskUpdate.md +0 -123
  1369. package/concepts/zh-TW/Tool-TeamCreate.md +0 -38
  1370. package/concepts/zh-TW/Tool-TeamDelete.md +0 -30
  1371. package/concepts/zh-TW/Tool-WebFetch.md +0 -55
  1372. package/concepts/zh-TW/Tool-WebSearch.md +0 -58
  1373. package/concepts/zh-TW/Tool-Write.md +0 -39
  1374. package/concepts/zh-TW/Tool-executeCode.md +0 -41
  1375. package/concepts/zh-TW/Tool-getDiagnostics.md +0 -32
  1376. package/concepts/zh-TW/Tools.md +0 -67
  1377. package/dist/assets/App-BN2YmKSu.js +0 -41
  1378. package/dist/assets/App-fG2r3jFq.css +0 -1
  1379. package/dist/assets/AppHeader-BqUGBbBx.css +0 -41
  1380. package/dist/assets/AppHeader.module-CvH9GQQ2.js +0 -1250
  1381. package/dist/assets/Mobile-BnDkLcBv.css +0 -1
  1382. package/dist/assets/Mobile-CbC8YD3O.js +0 -10
  1383. package/dist/assets/_baseUniq-B2ddYY2A.js +0 -1
  1384. package/dist/assets/arc-DFPOHgcd.js +0 -1
  1385. package/dist/assets/architectureDiagram-Q4EWVU46-1tuXixQv.js +0 -36
  1386. package/dist/assets/blockDiagram-DXYQGD6D-BfVKQPAV.js +0 -132
  1387. package/dist/assets/c4Diagram-AHTNJAMY-Bua8O4-1.js +0 -10
  1388. package/dist/assets/channel-Cf9uPxYW.js +0 -1
  1389. package/dist/assets/chunk-4BX2VUAB-YOIkSNn_.js +0 -1
  1390. package/dist/assets/chunk-4TB4RGXK-CjZt-To5.js +0 -206
  1391. package/dist/assets/chunk-55IACEB6-BAEfMF5S.js +0 -1
  1392. package/dist/assets/chunk-EDXVE4YY-BUYDmLXU.js +0 -1
  1393. package/dist/assets/chunk-FMBD7UC4-Cw_LDap-.js +0 -15
  1394. package/dist/assets/chunk-OYMX7WX6-PlfZFFxd.js +0 -231
  1395. package/dist/assets/chunk-QZHKN3VN-C2ReFZl_.js +0 -1
  1396. package/dist/assets/chunk-YZCP3GAM-B7IVGkPB.js +0 -1
  1397. package/dist/assets/classDiagram-6PBFFD2Q-DdwVeNLZ.js +0 -1
  1398. package/dist/assets/classDiagram-v2-HSJHXN6E-DdwVeNLZ.js +0 -1
  1399. package/dist/assets/clone-C8Lz0121.js +0 -1
  1400. package/dist/assets/cose-bilkent-S5V4N54A-M6rBKf0y.js +0 -1
  1401. package/dist/assets/cytoscape.esm-DxGcaOPV.js +0 -331
  1402. package/dist/assets/dagre-KV5264BT-UPacTWnL.js +0 -4
  1403. package/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  1404. package/dist/assets/diagram-5BDNPKRD-Cjjtnh0e.js +0 -10
  1405. package/dist/assets/diagram-G4DWMVQ6-CjXILMP0.js +0 -24
  1406. package/dist/assets/diagram-MMDJMWI5-C_-XZ9gc.js +0 -43
  1407. package/dist/assets/diagram-TYMM5635-Dxe2GxUR.js +0 -24
  1408. package/dist/assets/erDiagram-SMLLAGMA-1w-wtgMd.js +0 -85
  1409. package/dist/assets/flowDiagram-DWJPFMVM-B9naMGCj.js +0 -162
  1410. package/dist/assets/ganttDiagram-T4ZO3ILL-BPZBdhPv.js +0 -292
  1411. package/dist/assets/gitGraphDiagram-UUTBAWPF-_P9PdiGG.js +0 -106
  1412. package/dist/assets/graph-CjOY8lRz.js +0 -1
  1413. package/dist/assets/html2canvas.esm-QH1iLAAe.js +0 -22
  1414. package/dist/assets/index-BcCW9op4.js +0 -41
  1415. package/dist/assets/index-DCtZ2KSX.css +0 -1
  1416. package/dist/assets/infoDiagram-42DDH7IO-Ch8SOTtq.js +0 -2
  1417. package/dist/assets/init-Gi6I4Gst.js +0 -1
  1418. package/dist/assets/ishikawaDiagram-UXIWVN3A-XLscQrJT.js +0 -70
  1419. package/dist/assets/journeyDiagram-VCZTEJTY-C3FQ_QPk.js +0 -139
  1420. package/dist/assets/kanban-definition-6JOO6SKY-DIQDTOi3.js +0 -89
  1421. package/dist/assets/katex-DkKDou_j.js +0 -257
  1422. package/dist/assets/layout-DO9W0X_b.js +0 -1
  1423. package/dist/assets/linear-ClCJqwn1.js +0 -1
  1424. package/dist/assets/mermaid.core-BW02B1TS.js +0 -308
  1425. package/dist/assets/min-BuzClhio.js +0 -1
  1426. package/dist/assets/mindmap-definition-QFDTVHPH-DuCaTeZu.js +0 -96
  1427. package/dist/assets/ordinal-Cboi1Yqb.js +0 -1
  1428. package/dist/assets/pieDiagram-DEJITSTG-BZoZ6CI1.js +0 -30
  1429. package/dist/assets/quadrantDiagram-34T5L4WZ-DFNwvtmc.js +0 -7
  1430. package/dist/assets/requirementDiagram-MS252O5E-DPG-7raV.js +0 -84
  1431. package/dist/assets/sankeyDiagram-XADWPNL6-Bp92e1ie.js +0 -10
  1432. package/dist/assets/sequenceDiagram-FGHM5R23-C6ADwqJY.js +0 -157
  1433. package/dist/assets/stateDiagram-FHFEXIEX-BfrwZGmF.js +0 -1
  1434. package/dist/assets/stateDiagram-v2-QKLJ7IA2-4gBW7EPI.js +0 -1
  1435. package/dist/assets/timeline-definition-GMOUNBTQ-Bb-TxYx2.js +0 -120
  1436. package/dist/assets/vennDiagram-DHZGUBPP-DTRiNXJu.js +0 -34
  1437. package/dist/assets/wardley-RL74JXVD-C8j_kjXS.js +0 -162
  1438. package/dist/assets/wardleyDiagram-NUSXRM2D-CvICMc3N.js +0 -20
  1439. package/dist/assets/xychartDiagram-5P7HB3ND-DI0bBGwq.js +0 -7
  1440. package/lib/kv-cache-analyzer.js +0 -164
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Mobile-C7Hy-TIM.js","./vendor-codemirror-CKTrJd47.js","./vendor-antd-Bzi1WuBb.js","./seqResourceLoaders-Bkh2Rb9i.js","./vendor-mdxeditor-4PbKH6K7.js","./vendor-xterm-DckPrCx1.js","./vendor-markdown-BN3QLsBu.js","./vendor-highlight-IFTJ9nxW.js","./vendor-virtuoso-2P4SowHC.js","./seqResourceLoaders-Do7Kqg3B.css","./Mobile-B5V_-6Hc.css","./App-BZ9oclBj.js","./vendor-qrcode-Bnjm0rcu.js","./App-rWON7PuS.css"])))=>i.map(i=>d[i]);
2
+ var _a;import{_ as __vitePreload}from"./vendor-mdxeditor-4PbKH6K7.js";import{j as jsxRuntimeExports}from"./vendor-codemirror-CKTrJd47.js";import{p as requireReactDom,g as getDefaultExportFromCjs,a as reactExports}from"./vendor-antd-Bzi1WuBb.js";!function(){const relList=document.createElement("link").relList;if(!(relList&&relList.supports&&relList.supports("modulepreload"))){for(const link of document.querySelectorAll('link[rel="modulepreload"]'))processPreload(link);new MutationObserver(mutations=>{for(const mutation of mutations)if("childList"===mutation.type)for(const node of mutation.addedNodes)"LINK"===node.tagName&&"modulepreload"===node.rel&&processPreload(node)}).observe(document,{childList:!0,subtree:!0})}function processPreload(link){if(link.ep)return;link.ep=!0;const fetchOpts=function(link){const fetchOpts={};return link.integrity&&(fetchOpts.integrity=link.integrity),link.referrerPolicy&&(fetchOpts.referrerPolicy=link.referrerPolicy),"use-credentials"===link.crossOrigin?fetchOpts.credentials="include":"anonymous"===link.crossOrigin?fetchOpts.credentials="omit":fetchOpts.credentials="same-origin",fetchOpts}(link);fetch(link.href,fetchOpts)}}(),function(){let token=null;function addToken(url){const t2=function(){if(token)return token;const params=new URLSearchParams(window.location.search);return token=params.get("token")||"",token}();if(!t2)return url;if(url.startsWith("/")){const separator=url.includes("?")?"&":"?";return`${url}${separator}token=${encodeURIComponent(t2)}`}try{const urlObj=new URL(url);if(urlObj.origin===window.location.origin)return urlObj.searchParams.set("token",t2),urlObj.toString()}catch{}return url}const originalFetch=window.fetch;window.fetch=function(url,options){return originalFetch(addToken(url),options)};const OriginalEventSource=window.EventSource;window.EventSource=function(url,config){return new OriginalEventSource(addToken(url),config)};const OriginalWebSocket=window.WebSocket;window.WebSocket=function(url,protocols){return new OriginalWebSocket(addToken(url),protocols)},window.WebSocket.prototype=OriginalWebSocket.prototype,window.WebSocket.CONNECTING=OriginalWebSocket.CONNECTING,window.WebSocket.OPEN=OriginalWebSocket.OPEN,window.WebSocket.CLOSING=OriginalWebSocket.CLOSING,window.WebSocket.CLOSED=OriginalWebSocket.CLOSED}();var hasRequiredClient,client={};const ReactDOM=getDefaultExportFromCjs(function(){if(hasRequiredClient)return client;hasRequiredClient=1;var m=requireReactDom();return client.createRoot=m.createRoot,client.hydrateRoot=m.hydrateRoot,client}()),_isIPadOS=navigator.maxTouchPoints>1&&/Macintosh/i.test(navigator.userAgent),_params=new URLSearchParams(window.location.search),_forceMobile="1"===_params.get("mobile"),_forcePad="1"===_params.get("ipad"),_savedMode=_forceMobile||_forcePad?null:localStorage.getItem("cxv_viewMode"),_autoNarrow=!_forceMobile&&!_forcePad&&!_savedMode&&!/Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent)&&!_isIPadOS&&window.innerWidth<750,isPad=_forcePad||"pad"===_savedMode||_autoNarrow,isMobile=_forcePad||_forceMobile||"pad"===_savedMode||_autoNarrow||"pc"!==_savedMode&&(/Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent)||_isIPadOS),isIOS=/iPhone|iPad|iPod/i.test(navigator.userAgent)||_isIPadOS,isAndroid=/Android/i.test(navigator.userAgent),isElectron="undefined"!=typeof window&&!!window.electronAPI,hasNativeZoom="undefined"!=typeof window&&"function"==typeof(null==(_a=window.tabBridge)?void 0:_a.setZoomFactor),isMac="undefined"!=typeof navigator&&/Mac/i.test(navigator.platform||navigator.userAgent||""),isWindows="undefined"!=typeof navigator&&/Win/i.test(navigator.platform||navigator.userAgent||"");function setViewMode(mode){localStorage.setItem("cxv_viewMode",mode),location.reload()}isPad&&document.documentElement.classList.add("pad-mode"),isMobile&&isIOS&&!isPad&&document.documentElement.classList.add("mobile-ios");function safeStorage(key,value){try{if(void 0===value)return Number(sessionStorage.getItem(key)||0);sessionStorage.setItem(key,value)}catch{}return 0}function shouldReloadStaleChunk(name){const key=`_chunkReloadedAt:${name}`,last=safeStorage(key);return!(Date.now()-last<=3e5)&&(safeStorage(key,String(Date.now())),!0)}function handleStaleChunk(name,err,{onReload:onReload}={}){if(!shouldReloadStaleChunk(name))throw err;try{null==onReload||onReload()}catch{}return setTimeout(()=>window.location.reload(),200),new Promise(()=>{})}const _urlToken=new URLSearchParams(window.location.search).get("token");function getBasePath(){if("undefined"!=typeof window&&window.__CXV_BASE_PATH__)return window.__CXV_BASE_PATH__;if("undefined"==typeof document||!document.querySelector)return"";const base=document.querySelector("base");return base&&base.href?base.getAttribute("href"):""}function appendToken(url){if(!_urlToken)return url;const sep=url.includes("?")?"&":"?";return`${url}${sep}token=${_urlToken}`}function apiUrl(path){const base=getBasePath();return appendToken(base?base.replace(/\/$/,"")+path:path)}const i18nData={"ui.expert.title":{zh:"专家设置",en:"Expert Settings","zh-TW":"專家設定",ko:"전문가 설정",ja:"エキスパート設定",de:"Experteneinstellungen",es:"Configuración avanzada",fr:"Paramètres avancés",it:"Impostazioni avanzate",da:"Ekspertindstillinger",pl:"Ustawienia eksperckie",ru:"Экспертные настройки",ar:"إعدادات الخبراء",no:"Ekspertinnstillinger","pt-BR":"Configurações avançadas",th:"การตั้งค่าผู้เชี่ยวชาญ",tr:"Uzman Ayarları",uk:"Експертні налаштування"},"ui.expert.help":{zh:"高级功能:直接编辑 codex 的系统提示词。会在当前工作区生成 CODEX_SYSTEM.md(覆盖默认)或 CODEX_APPEND_SYSTEM.md(追加到默认之后),下次启动 codex 时自动以 --system-prompt-file / --append-system-prompt-file 注入。",en:"Advanced: edit Codex's system prompt directly. Writes CODEX_SYSTEM.md (override) or CODEX_APPEND_SYSTEM.md (append) in the current workspace, auto-injected as --system-prompt-file / --append-system-prompt-file on the next Codex launch.","zh-TW":"進階功能:直接編輯 codex 的系統提示詞。會在目前工作區產生 CODEX_SYSTEM.md(覆蓋預設)或 CODEX_APPEND_SYSTEM.md(追加到預設之後),下次啟動 codex 時自動以 --system-prompt-file / --append-system-prompt-file 注入。",ko:"고급: Codex의 시스템 프롬프트를 직접 편집합니다. 현재 작업 공간에 CODEX_SYSTEM.md(덮어쓰기) 또는 CODEX_APPEND_SYSTEM.md(추가)를 생성하며, 다음 Codex 실행 시 --system-prompt-file / --append-system-prompt-file 로 자동 주입됩니다.",ja:"上級者向け:Codex のシステムプロンプトを直接編集します。現在のワークスペースに CODEX_SYSTEM.md(上書き)または CODEX_APPEND_SYSTEM.md(追記)を作成し、次回の Codex 起動時に --system-prompt-file / --append-system-prompt-file として自動的に注入します。",de:"Erweitert: Bearbeiten Sie Codexs System-Prompt direkt. Erstellt CODEX_SYSTEM.md (überschreiben) oder CODEX_APPEND_SYSTEM.md (anhängen) im aktuellen Arbeitsbereich, beim nächsten Start von Codex automatisch als --system-prompt-file / --append-system-prompt-file eingefügt.",es:"Avanzado: edita directamente el prompt del sistema de Codex. Crea CODEX_SYSTEM.md (sustituir) o CODEX_APPEND_SYSTEM.md (añadir) en el espacio de trabajo actual, inyectado automáticamente como --system-prompt-file / --append-system-prompt-file en el próximo inicio de Codex.",fr:"Avancé : modifiez directement le prompt système de Codex. Crée CODEX_SYSTEM.md (remplacer) ou CODEX_APPEND_SYSTEM.md (ajouter) dans l'espace de travail actuel, injecté automatiquement comme --system-prompt-file / --append-system-prompt-file au prochain démarrage de Codex.",it:"Avanzato: modifica direttamente il prompt di sistema di Codex. Crea CODEX_SYSTEM.md (sovrascrivi) o CODEX_APPEND_SYSTEM.md (aggiungi) nello spazio di lavoro corrente, iniettato automaticamente come --system-prompt-file / --append-system-prompt-file al prossimo avvio di Codex.",da:"Avanceret: rediger Codexs system-prompt direkte. Opretter CODEX_SYSTEM.md (overskriv) eller CODEX_APPEND_SYSTEM.md (tilføj) i det aktuelle arbejdsområde, indsættes automatisk som --system-prompt-file / --append-system-prompt-file ved næste start af Codex.",pl:"Zaawansowane: edytuj bezpośrednio prompt systemowy Codex. Tworzy CODEX_SYSTEM.md (zastąp) lub CODEX_APPEND_SYSTEM.md (dołącz) w bieżącym obszarze roboczym, automatycznie wstrzykiwany jako --system-prompt-file / --append-system-prompt-file przy następnym uruchomieniu Codex.",ru:"Дополнительно: редактируйте системный промпт Codex напрямую. Создаёт CODEX_SYSTEM.md (замена) или CODEX_APPEND_SYSTEM.md (добавление) в текущем рабочем пространстве, автоматически подставляется как --system-prompt-file / --append-system-prompt-file при следующем запуске Codex.",ar:"متقدم: حرّر مطالبة النظام لـ Codex مباشرةً. يُنشئ CODEX_SYSTEM.md (استبدال) أو CODEX_APPEND_SYSTEM.md (إلحاق) في مساحة العمل الحالية، ويُحقَن تلقائيًا كـ --system-prompt-file / --append-system-prompt-file عند تشغيل Codex التالي.",no:"Avansert: rediger Codexs systemledetekst direkte. Oppretter CODEX_SYSTEM.md (overskriv) eller CODEX_APPEND_SYSTEM.md (legg til) i gjeldende arbeidsområde, injiseres automatisk som --system-prompt-file / --append-system-prompt-file ved neste oppstart av Codex.","pt-BR":"Avançado: edite o prompt do sistema do Codex diretamente. Cria CODEX_SYSTEM.md (substituir) ou CODEX_APPEND_SYSTEM.md (acrescentar) no espaço de trabalho atual, injetado automaticamente como --system-prompt-file / --append-system-prompt-file na próxima inicialização do Codex.",th:"ขั้นสูง: แก้ไข system prompt ของ Codex โดยตรง จะสร้าง CODEX_SYSTEM.md (เขียนทับ) หรือ CODEX_APPEND_SYSTEM.md (ต่อท้าย) ในเวิร์กสเปซปัจจุบัน และถูกใส่อัตโนมัติเป็น --system-prompt-file / --append-system-prompt-file เมื่อเริ่ม Codex ครั้งถัดไป",tr:"Gelişmiş: Codex'un sistem istemini doğrudan düzenleyin. Geçerli çalışma alanında CODEX_SYSTEM.md (üzerine yaz) veya CODEX_APPEND_SYSTEM.md (ekle) oluşturur; sonraki Codex başlatmasında --system-prompt-file / --append-system-prompt-file olarak otomatik eklenir.",uk:"Додатково: редагуйте системний промпт Codex напряму. Створює CODEX_SYSTEM.md (замінити) або CODEX_APPEND_SYSTEM.md (додати) у поточному робочому просторі, автоматично додається як --system-prompt-file / --append-system-prompt-file під час наступного запуску Codex."},"ui.expert.systemText":{zh:"系统提示词修改",en:"Edit System Prompt","zh-TW":"系統提示詞修改",ko:"시스템 프롬프트 편집",ja:"システムプロンプトの編集",de:"System-Prompt bearbeiten",es:"Editar prompt del sistema",fr:"Modifier le prompt système",it:"Modifica prompt di sistema",da:"Rediger systemprompt",pl:"Edytuj prompt systemowy",ru:"Изменить системный промпт",ar:"تحرير موجه النظام",no:"Rediger systemprompt","pt-BR":"Editar prompt do sistema",th:"แก้ไขพรอมต์ระบบ",tr:"Sistem promptunu düzenle",uk:"Редагувати системний промпт"},"ui.expert.systemText.btn":{zh:"编辑",en:"Edit","zh-TW":"編輯",ko:"편집",ja:"編集",de:"Bearbeiten",es:"Editar",fr:"Modifier",it:"Modifica",da:"Rediger",pl:"Edytuj",ru:"Изменить",ar:"تحرير",no:"Rediger","pt-BR":"Editar",th:"แก้ไข",tr:"Düzenle",uk:"Редагувати"},"ui.expert.systemText.append":{zh:"追加",en:"Append","zh-TW":"追加",ko:"추가",ja:"追記",de:"Anhängen",es:"Añadir",fr:"Ajouter",it:"Aggiungi",da:"Tilføj",pl:"Dołącz",ru:"Добавить",ar:"إلحاق",no:"Legg til","pt-BR":"Acrescentar",th:"ต่อท้าย",tr:"Ekle",uk:"Додати"},"ui.expert.systemText.override":{zh:"覆盖",en:"Override","zh-TW":"覆蓋",ko:"덮어쓰기",ja:"上書き",de:"Überschreiben",es:"Sustituir",fr:"Remplacer",it:"Sovrascrivi",da:"Overskriv",pl:"Zastąp",ru:"Заменить",ar:"استبدال",no:"Overskriv","pt-BR":"Substituir",th:"เขียนทับ",tr:"Üzerine yaz",uk:"Замінити"},"ui.expert.systemText.overrideWarn":{zh:"谨慎操作",en:"Use with caution","zh-TW":"謹慎操作",ko:"신중히 사용하세요",ja:"慎重に操作してください",de:"Mit Vorsicht verwenden",es:"Usar con precaución",fr:"À utiliser avec prudence",it:"Usare con cautela",da:"Brug med forsigtighed",pl:"Używaj ostrożnie",ru:"Используйте с осторожностью",ar:"استخدم بحذر",no:"Bruk med forsiktighet","pt-BR":"Use com cautela",th:"ใช้ด้วยความระมัดระวัง",tr:"Dikkatli kullanın",uk:"Використовуйте обережно"},"ui.expert.systemText.preview":{zh:"预览",en:"Preview","zh-TW":"預覽",ko:"미리보기",ja:"プレビュー",de:"Vorschau",es:"Vista previa",fr:"Aperçu",it:"Anteprima",da:"Forhåndsvisning",pl:"Podgląd",ru:"Предпросмотр",ar:"معاينة",no:"Forhåndsvisning","pt-BR":"Visualização",th:"ตัวอย่าง",tr:"Önizleme",uk:"Попередній перегляд"},"ui.expert.systemText.placeholder":{zh:"输入系统提示词…留空保存即关闭。",en:"Enter system prompt… save empty to disable.","zh-TW":"輸入系統提示詞…留空儲存即關閉。",ko:"시스템 프롬프트를 입력하세요… 비워서 저장하면 비활성화됩니다.",ja:"システムプロンプトを入力…空のまま保存すると無効になります。",de:"System-Prompt eingeben… leer speichern zum Deaktivieren.",es:"Introduce el prompt del sistema… guarda vacío para desactivar.",fr:"Saisissez le prompt système… enregistrez vide pour désactiver.",it:"Inserisci il prompt di sistema… salva vuoto per disattivare.",da:"Indtast system-prompt… gem tom for at deaktivere.",pl:"Wpisz prompt systemowy… zapisz pusty, aby wyłączyć.",ru:"Введите системный промпт… сохраните пустым, чтобы отключить.",ar:"أدخل مطالبة النظام… احفظ فارغًا للتعطيل.",no:"Skriv inn systemledetekst… lagre tom for å deaktivere.","pt-BR":"Digite o prompt do sistema… salve vazio para desativar.",th:"ป้อน system prompt… บันทึกโดยเว้นว่างเพื่อปิดใช้งาน",tr:"Sistem istemini girin… devre dışı bırakmak için boş kaydedin.",uk:"Введіть системний промпт… збережіть порожнім, щоб вимкнути."},"ui.expert.systemText.dirHint":{zh:"作用于当前工作区:{dir}",en:"Applies to current workspace: {dir}","zh-TW":"作用於目前工作區:{dir}",ko:"현재 작업 공간에 적용: {dir}",ja:"現在のワークスペースに適用:{dir}",de:"Gilt für aktuellen Arbeitsbereich: {dir}",es:"Se aplica al espacio de trabajo actual: {dir}",fr:"S'applique à l'espace de travail actuel : {dir}",it:"Si applica allo spazio di lavoro corrente: {dir}",da:"Gælder for aktuelt arbejdsområde: {dir}",pl:"Dotyczy bieżącego obszaru roboczego: {dir}",ru:"Применяется к текущему рабочему пространству: {dir}",ar:"ينطبق على مساحة العمل الحالية: {dir}",no:"Gjelder gjeldende arbeidsområde: {dir}","pt-BR":"Aplica-se ao espaço de trabalho atual: {dir}",th:"ใช้กับเวิร์กสเปซปัจจุบัน: {dir}",tr:"Geçerli çalışma alanına uygulanır: {dir}",uk:"Застосовується до поточного робочого простору: {dir}"},"ui.expert.systemText.note":{zh:"下次启动 cxv 时生效。",en:"Takes effect on the next cxv launch.","zh-TW":"下次啟動 cxv 時生效。",ko:"다음 cxv 실행 시 적용됩니다.",ja:"次回の cxv 起動時に有効になります。",de:"Wird beim nächsten Start von cxv wirksam.",es:"Surte efecto en el próximo inicio de cxv.",fr:"Prend effet au prochain démarrage de cxv.",it:"Ha effetto al prossimo avvio di cxv.",da:"Træder i kraft ved næste start af cxv.",pl:"Zacznie obowiązywać przy następnym uruchomieniu cxv.",ru:"Вступит в силу при следующем запуске cxv.",ar:"يسري عند تشغيل cxv التالي.",no:"Trer i kraft ved neste oppstart av cxv.","pt-BR":"Entra em vigor na próxima inicialização do cxv.",th:"จะมีผลเมื่อเริ่ม cxv ครั้งถัดไป",tr:"Bir sonraki cxv başlatmasında etkili olur.",uk:"Набуде чинності під час наступного запуску cxv."},"ui.expert.systemText.noWorkspace":{zh:"无活动工作区,启动一个会话后再编辑。",en:"No active workspace — start a session first.","zh-TW":"無作用中工作區,啟動一個工作階段後再編輯。",ko:"활성 작업 공간이 없습니다. 먼저 세션을 시작하세요.",ja:"アクティブなワークスペースがありません。先にセッションを開始してください。",de:"Kein aktiver Arbeitsbereich – starten Sie zuerst eine Sitzung.",es:"No hay espacio de trabajo activo: inicia una sesión primero.",fr:"Aucun espace de travail actif — démarrez d'abord une session.",it:"Nessuno spazio di lavoro attivo: avvia prima una sessione.",da:"Intet aktivt arbejdsområde – start en session først.",pl:"Brak aktywnego obszaru roboczego — najpierw rozpocznij sesję.",ru:"Нет активного рабочего пространства — сначала запустите сеанс.",ar:"لا توجد مساحة عمل نشطة — ابدأ جلسة أولًا.",no:"Ingen aktivt arbeidsområde – start en økt først.","pt-BR":"Nenhum espaço de trabalho ativo — inicie uma sessão primeiro.",th:"ไม่มีเวิร์กสเปซที่ใช้งานอยู่ — เริ่มเซสชันก่อน",tr:"Etkin çalışma alanı yok — önce bir oturum başlatın.",uk:"Немає активного робочого простору — спершу запустіть сеанс."},"ui.expert.systemText.saved":{zh:"已保存",en:"Saved","zh-TW":"已儲存",ko:"저장됨",ja:"保存しました",de:"Gespeichert",es:"Guardado",fr:"Enregistré",it:"Salvato",da:"Gemt",pl:"Zapisano",ru:"Сохранено",ar:"تم الحفظ",no:"Lagret","pt-BR":"Salvo",th:"บันทึกแล้ว",tr:"Kaydedildi",uk:"Збережено"},"ui.expert.systemText.cleared":{zh:"已清空系统文本",en:"System text cleared","zh-TW":"已清空系統文字",ko:"시스템 텍스트가 지워졌습니다",ja:"システムテキストをクリアしました",de:"Systemtext gelöscht",es:"Texto del sistema borrado",fr:"Texte système effacé",it:"Testo di sistema cancellato",da:"Systemtekst ryddet",pl:"Wyczyszczono tekst systemowy",ru:"Системный текст очищен",ar:"تم مسح نص النظام",no:"Systemtekst tømt","pt-BR":"Texto do sistema limpo",th:"ล้างข้อความระบบแล้ว",tr:"Sistem metni temizlendi",uk:"Системний текст очищено"},"ui.expert.systemText.saveError":{zh:"保存失败",en:"Save failed","zh-TW":"儲存失敗",ko:"저장 실패",ja:"保存に失敗しました",de:"Speichern fehlgeschlagen",es:"Error al guardar",fr:"Échec de l'enregistrement",it:"Salvataggio non riuscito",da:"Lagring mislykkedes",pl:"Zapis nie powiódł się",ru:"Не удалось сохранить",ar:"فشل الحفظ",no:"Lagring mislyktes","pt-BR":"Falha ao salvar",th:"บันทึกไม่สำเร็จ",tr:"Kaydetme başarısız",uk:"Не вдалося зберегти"},"ui.expert.systemText.loadError":{zh:"加载失败",en:"Load failed","zh-TW":"載入失敗",ko:"불러오기 실패",ja:"読み込みに失敗しました",de:"Laden fehlgeschlagen",es:"Error al cargar",fr:"Échec du chargement",it:"Caricamento non riuscito",da:"Indlæsning mislykkedes",pl:"Ładowanie nie powiodło się",ru:"Не удалось загрузить",ar:"فشل التحميل",no:"Innlasting mislyktes","pt-BR":"Falha ao carregar",th:"โหลดไม่สำเร็จ",tr:"Yükleme başarısız",uk:"Не вдалося завантажити"},"ui.expert.systemText.tabDefault":{zh:"默认",en:"Default","zh-TW":"預設",ko:"기본",ja:"デフォルト",de:"Standard",es:"Predeterminado",fr:"Par défaut",it:"Predefinito",da:"Standard",pl:"Domyślny",ru:"По умолчанию",ar:"افتراضي",no:"Standard","pt-BR":"Padrão",th:"ค่าเริ่มต้น",tr:"Varsayılan",uk:"За замовчуванням"},"ui.expert.systemText.addModel":{zh:"添加模型",en:"Add model","zh-TW":"新增模型",ko:"모델 추가",ja:"モデルを追加",de:"Modell hinzufügen",es:"Añadir modelo",fr:"Ajouter un modèle",it:"Aggiungi modello",da:"Tilføj model",pl:"Dodaj model",ru:"Добавить модель",ar:"إضافة نموذج",no:"Legg til modell","pt-BR":"Adicionar modelo",th:"เพิ่มโมเดล",tr:"Model ekle",uk:"Додати модель"},"ui.expert.systemText.addModelName":{zh:"模型名,如 opus",en:"Model name, e.g. opus","zh-TW":"模型名,如 opus",ko:"모델 이름, 예: opus",ja:"モデル名(例: opus)",de:"Modellname, z. B. opus",es:"Nombre del modelo, p. ej. opus",fr:"Nom du modèle, p. ex. opus",it:"Nome del modello, es. opus",da:"Modelnavn, f.eks. opus",pl:"Nazwa modelu, np. opus",ru:"Имя модели, напр. opus",ar:"اسم النموذج، مثل opus",no:"Modellnavn, f.eks. opus","pt-BR":"Nome do modelo, ex.: opus",th:"ชื่อโมเดล เช่น opus",tr:"Model adı, örn. opus",uk:"Назва моделі, напр. opus"},"ui.expert.systemText.addModelConfirm":{zh:"添加",en:"Add","zh-TW":"新增",ko:"추가",ja:"追加",de:"Hinzufügen",es:"Añadir",fr:"Ajouter",it:"Aggiungi",da:"Tilføj",pl:"Dodaj",ru:"Добавить",ar:"إضافة",no:"Legg til","pt-BR":"Adicionar",th:"เพิ่ม",tr:"Ekle",uk:"Додати"},"ui.expert.systemText.scopeGlobal":{zh:"全局",en:"Global","zh-TW":"全域",ko:"전역",ja:"グローバル",de:"Global",es:"Global",fr:"Global",it:"Globale",da:"Global",pl:"Globalny",ru:"Глобально",ar:"عام",no:"Global","pt-BR":"Global",th:"ส่วนกลาง",tr:"Genel",uk:"Глобально"},"ui.expert.systemText.scopeWorkspace":{zh:"工作区",en:"Workspace","zh-TW":"工作區",ko:"워크스페이스",ja:"ワークスペース",de:"Arbeitsbereich",es:"Espacio de trabajo",fr:"Espace de travail",it:"Area di lavoro",da:"Arbejdsområde",pl:"Obszar roboczy",ru:"Рабочая область",ar:"مساحة العمل",no:"Arbeidsområde","pt-BR":"Espaço de trabalho",th:"เวิร์กสเปซ",tr:"Çalışma alanı",uk:"Робочий простір"},"ui.expert.systemText.modelHelp":{zh:"按上次启动所用模型 ID 的不区分大小写子串匹配:名为“opus”的提示词会应用到 ID 中包含“opus”的所有模型(如 codex-opus-4-8[1m])。会话中切换模型将在下次重启时生效。名称仅限字母、数字、点、横线和下划线;保存空内容即删除该条目。",en:'Matched case-insensitively as a substring of the model ID used at last launch: a prompt named "opus" applies to any model containing "opus" (e.g. codex-opus-4-8[1m]). Switching models mid-session applies at the next relaunch. Letters, digits, dot, dash and underscore only; save empty to delete the entry.',"zh-TW":"按上次啟動所用模型 ID 的不區分大小寫子字串匹配:名為「opus」的提示詞會套用到 ID 中包含「opus」的所有模型(如 codex-opus-4-8[1m])。工作階段中切換模型將在下次重啟時生效。名稱僅限字母、數字、點、橫線和底線;儲存空內容即刪除該條目。",ko:'마지막 실행에 사용된 모델 ID의 부분 문자열로 대소문자 구분 없이 매칭됩니다. "opus"라는 프롬프트는 "opus"를 포함한 모든 모델(예: codex-opus-4-8[1m])에 적용됩니다. 세션 중 모델 전환은 다음 재시작 시 적용됩니다. 문자, 숫자, 점, 대시, 밑줄만 허용되며 빈 내용으로 저장하면 항목이 삭제됩니다.',ja:"前回起動時のモデル ID に対し大文字小文字を区別しない部分一致でマッチします。「opus」という名前のプロンプトは「opus」を含むすべてのモデル(例: codex-opus-4-8[1m])に適用されます。セッション中のモデル切替は次回再起動時に反映されます。名前は英数字・ドット・ハイフン・アンダースコアのみ。空のまま保存すると項目が削除されます。",de:'Wird case-insensitiv als Teilzeichenfolge der beim letzten Start verwendeten Modell-ID abgeglichen: Ein Prompt namens "opus" gilt für jedes Modell, das "opus" enthält (z. B. codex-opus-4-8[1m]). Ein Modellwechsel während der Sitzung greift beim nächsten Neustart. Nur Buchstaben, Ziffern, Punkt, Bindestrich und Unterstrich; leer speichern löscht den Eintrag.',es:'Se compara sin distinguir mayúsculas como subcadena del ID del modelo usado en el último inicio: un prompt llamado "opus" se aplica a cualquier modelo que contenga "opus" (p. ej. codex-opus-4-8[1m]). Cambiar de modelo durante la sesión se aplica en el próximo reinicio. Solo letras, dígitos, punto, guion y guion bajo; guardar vacío elimina la entrada.',fr:"Correspondance insensible à la casse comme sous-chaîne de l'ID du modèle utilisé au dernier lancement : un prompt nommé « opus » s'applique à tout modèle contenant « opus » (p. ex. codex-opus-4-8[1m]). Un changement de modèle en cours de session prend effet au prochain redémarrage. Lettres, chiffres, point, tiret et underscore uniquement ; enregistrer vide supprime l'entrée.",it:'Confronto senza distinzione tra maiuscole come sottostringa dell\'ID del modello usato all\'ultimo avvio: un prompt chiamato "opus" si applica a qualsiasi modello contenente "opus" (es. codex-opus-4-8[1m]). Il cambio di modello durante la sessione ha effetto al prossimo riavvio. Solo lettere, cifre, punto, trattino e underscore; salvare vuoto elimina la voce.',da:'Matches uden forskel på store/små bogstaver som delstreng af model-ID\'et fra sidste start: en prompt ved navn "opus" gælder for enhver model, der indeholder "opus" (f.eks. codex-opus-4-8[1m]). Modelskift midt i sessionen træder i kraft ved næste genstart. Kun bogstaver, cifre, punktum, bindestreg og underscore; gem tomt for at slette posten.',pl:'Dopasowanie bez rozróżniania wielkości liter jako podciąg ID modelu użytego przy ostatnim uruchomieniu: prompt o nazwie "opus" dotyczy każdego modelu zawierającego "opus" (np. codex-opus-4-8[1m]). Zmiana modelu w trakcie sesji zadziała przy następnym uruchomieniu. Tylko litery, cyfry, kropka, myślnik i podkreślnik; zapis pustej treści usuwa wpis.',ru:'Сопоставляется без учёта регистра как подстрока ID модели, использованной при последнем запуске: промпт с именем "opus" применяется к любой модели, содержащей "opus" (напр. codex-opus-4-8[1m]). Смена модели в течение сессии применится при следующем перезапуске. Только буквы, цифры, точка, дефис и подчёркивание; сохранение пустого текста удаляет запись.',ar:'تتم المطابقة دون تمييز حالة الأحرف كسلسلة فرعية من معرّف النموذج المستخدم في آخر تشغيل: الموجه المسمى "opus" ينطبق على أي نموذج يحتوي على "opus" (مثل codex-opus-4-8[1m]). تغيير النموذج أثناء الجلسة يسري عند إعادة التشغيل التالية. الأحرف والأرقام والنقطة والشرطة والشرطة السفلية فقط؛ الحفظ فارغًا يحذف الإدخال.',no:'Matches uten forskjell på store/små bokstaver som delstreng av modell-ID-en fra forrige oppstart: en prompt kalt "opus" gjelder alle modeller som inneholder "opus" (f.eks. codex-opus-4-8[1m]). Modellbytte midt i økten trer i kraft ved neste omstart. Kun bokstaver, sifre, punktum, bindestrek og understrek; lagre tomt for å slette oppføringen.',"pt-BR":'Comparado sem diferenciar maiúsculas como substring do ID do modelo usado na última inicialização: um prompt chamado "opus" se aplica a qualquer modelo que contenha "opus" (ex.: codex-opus-4-8[1m]). Trocar de modelo durante a sessão vale no próximo reinício. Apenas letras, dígitos, ponto, hífen e sublinhado; salvar vazio exclui a entrada.',th:'จับคู่แบบไม่สนใจตัวพิมพ์เป็นสตริงย่อยของ ID โมเดลที่ใช้ในการเปิดครั้งล่าสุด: พรอมต์ชื่อ "opus" จะใช้กับทุกโมเดลที่มี "opus" (เช่น codex-opus-4-8[1m]) การสลับโมเดลระหว่างเซสชันจะมีผลเมื่อรีสตาร์ทครั้งถัดไป ใช้ได้เฉพาะตัวอักษร ตัวเลข จุด ขีดกลาง และขีดล่าง บันทึกค่าว่างเพื่อลบรายการ',tr:'Son başlatmada kullanılan model kimliğinin alt dizesi olarak büyük/küçük harf duyarsız eşleştirilir: "opus" adlı bir istem, "opus" içeren her modele uygulanır (örn. codex-opus-4-8[1m]). Oturum sırasında model değişikliği bir sonraki yeniden başlatmada geçerli olur. Yalnızca harf, rakam, nokta, tire ve alt çizgi; boş kaydetmek girdiyi siler.',uk:'Зіставляється без урахування регістру як підрядок ID моделі з останнього запуску: промпт з назвою "opus" застосовується до будь-якої моделі, що містить "opus" (напр. codex-opus-4-8[1m]). Зміна моделі під час сесії набуде чинності після наступного перезапуску. Лише літери, цифри, крапка, дефіс і підкреслення; збереження порожнього тексту видаляє запис.'},"ui.expert.systemText.invalidName":{zh:"仅限字母、数字、点、横线和下划线(最多 64 个字符)",en:"Only letters, digits, dot, dash and underscore (max 64 chars)","zh-TW":"僅限字母、數字、點、橫線和底線(最多 64 個字元)",ko:"문자, 숫자, 점, 대시, 밑줄만 허용 (최대 64자)",ja:"英数字・ドット・ハイフン・アンダースコアのみ(最大 64 文字)",de:"Nur Buchstaben, Ziffern, Punkt, Bindestrich und Unterstrich (max. 64 Zeichen)",es:"Solo letras, dígitos, punto, guion y guion bajo (máx. 64 caracteres)",fr:"Lettres, chiffres, point, tiret et underscore uniquement (64 caractères max.)",it:"Solo lettere, cifre, punto, trattino e underscore (max 64 caratteri)",da:"Kun bogstaver, cifre, punktum, bindestreg og underscore (maks. 64 tegn)",pl:"Tylko litery, cyfry, kropka, myślnik i podkreślnik (maks. 64 znaki)",ru:"Только буквы, цифры, точка, дефис и подчёркивание (не более 64 символов)",ar:"الأحرف والأرقام والنقطة والشرطة والشرطة السفلية فقط (بحد أقصى 64 حرفًا)",no:"Kun bokstaver, sifre, punktum, bindestrek og understrek (maks 64 tegn)","pt-BR":"Apenas letras, dígitos, ponto, hífen e sublinhado (máx. 64 caracteres)",th:"ใช้ได้เฉพาะตัวอักษร ตัวเลข จุด ขีดกลาง และขีดล่าง (สูงสุด 64 ตัวอักษร)",tr:"Yalnızca harf, rakam, nokta, tire ve alt çizgi (en fazla 64 karakter)",uk:"Лише літери, цифри, крапка, дефіс і підкреслення (макс. 64 символи)"},"ui.expert.systemText.reservedName":{zh:"“Default”为保留名称",en:'"Default" is a reserved name',"zh-TW":"「Default」為保留名稱",ko:'"Default"는 예약된 이름입니다',ja:"「Default」は予約された名前です",de:'"Default" ist ein reservierter Name',es:'"Default" es un nombre reservado',fr:"« Default » est un nom réservé",it:'"Default" è un nome riservato',da:'"Default" er et reserveret navn',pl:'"Default" to nazwa zastrzeżona',ru:'"Default" — зарезервированное имя',ar:'"Default" اسم محجوز',no:'"Default" er et reservert navn',"pt-BR":'"Default" é um nome reservado',th:'"Default" เป็นชื่อสงวน',tr:'"Default" ayrılmış bir addır',uk:'"Default" — зарезервована назва'},"ui.expert.systemText.duplicateName":{zh:"该作用域下已存在同名模型",en:"A model with this name already exists in this scope","zh-TW":"該作用域下已存在同名模型",ko:"이 범위에 같은 이름의 모델이 이미 있습니다",ja:"この適用範囲には同名のモデルが既に存在します",de:"Ein Modell mit diesem Namen existiert bereits in diesem Geltungsbereich",es:"Ya existe un modelo con este nombre en este ámbito",fr:"Un modèle portant ce nom existe déjà dans cette portée",it:"Esiste già un modello con questo nome in questo ambito",da:"En model med dette navn findes allerede i dette omfang",pl:"Model o tej nazwie już istnieje w tym zakresie",ru:"Модель с таким именем уже существует в этой области",ar:"يوجد نموذج بهذا الاسم بالفعل في هذا النطاق",no:"En modell med dette navnet finnes allerede i dette omfanget","pt-BR":"Já existe um modelo com este nome neste escopo",th:"มีโมเดลชื่อนี้อยู่แล้วในขอบเขตนี้",tr:"Bu kapsamda bu ada sahip bir model zaten var",uk:"Модель із такою назвою вже існує в цій області"},"ui.expert.systemText.deleteTab":{zh:"删除 {name} 的提示词?",en:"Delete the prompt for {name}?","zh-TW":"刪除 {name} 的提示詞?",ko:"{name}의 프롬프트를 삭제할까요?",ja:"{name} のプロンプトを削除しますか?",de:"Prompt für {name} löschen?",es:"¿Eliminar el prompt de {name}?",fr:"Supprimer le prompt de {name} ?",it:"Eliminare il prompt di {name}?",da:"Slet prompten for {name}?",pl:"Usunąć prompt dla {name}?",ru:"Удалить промпт для {name}?",ar:"حذف موجه {name}؟",no:"Slette prompten for {name}?","pt-BR":"Excluir o prompt de {name}?",th:"ลบพรอมต์ของ {name} หรือไม่",tr:"{name} istemini silmek istiyor musunuz?",uk:"Видалити промпт для {name}?"},"ui.expert.systemText.deleted":{zh:"已删除",en:"Deleted","zh-TW":"已刪除",ko:"삭제됨",ja:"削除しました",de:"Gelöscht",es:"Eliminado",fr:"Supprimé",it:"Eliminato",da:"Slettet",pl:"Usunięto",ru:"Удалено",ar:"تم الحذف",no:"Slettet","pt-BR":"Excluído",th:"ลบแล้ว",tr:"Silindi",uk:"Видалено"},"ui.expert.systemText.deleteError":{zh:"删除失败",en:"Delete failed","zh-TW":"刪除失敗",ko:"삭제 실패",ja:"削除に失敗しました",de:"Löschen fehlgeschlagen",es:"Error al eliminar",fr:"Échec de la suppression",it:"Eliminazione non riuscita",da:"Sletning mislykkedes",pl:"Usuwanie nie powiodło się",ru:"Не удалось удалить",ar:"فشل الحذف",no:"Sletting mislyktes","pt-BR":"Falha ao excluir",th:"ลบไม่สำเร็จ",tr:"Silme başarısız",uk:"Не вдалося видалити"},"ui.expert.systemText.dirHintGlobal":{zh:"适用于所有工作区:{dir}",en:"Applies to all workspaces: {dir}","zh-TW":"適用於所有工作區:{dir}",ko:"모든 워크스페이스에 적용: {dir}",ja:"すべてのワークスペースに適用: {dir}",de:"Gilt für alle Arbeitsbereiche: {dir}",es:"Se aplica a todos los espacios de trabajo: {dir}",fr:"S'applique à tous les espaces de travail : {dir}",it:"Si applica a tutte le aree di lavoro: {dir}",da:"Gælder for alle arbejdsområder: {dir}",pl:"Dotyczy wszystkich obszarów roboczych: {dir}",ru:"Применяется ко всем рабочим областям: {dir}",ar:"ينطبق على جميع مساحات العمل: {dir}",no:"Gjelder alle arbeidsområder: {dir}","pt-BR":"Aplica-se a todos os espaços de trabalho: {dir}",th:"ใช้กับทุกเวิร์กสเปซ: {dir}",tr:"Tüm çalışma alanları için geçerli: {dir}",uk:"Застосовується до всіх робочих просторів: {dir}"},"ui.expert.systemText.discardTitle":{zh:"放弃未保存的修改?",en:"Discard unsaved changes?","zh-TW":"放棄未儲存的修改?",ko:"저장하지 않은 변경 사항을 버릴까요?",ja:"未保存の変更を破棄しますか?",de:"Nicht gespeicherte Änderungen verwerfen?",es:"¿Descartar los cambios no guardados?",fr:"Abandonner les modifications non enregistrées ?",it:"Scartare le modifiche non salvate?",da:"Kassér ikke-gemte ændringer?",pl:"Odrzucić niezapisane zmiany?",ru:"Отменить несохранённые изменения?",ar:"تجاهل التغييرات غير المحفوظة؟",no:"Forkaste ulagrede endringer?","pt-BR":"Descartar alterações não salvas?",th:"ละทิ้งการเปลี่ยนแปลงที่ยังไม่บันทึกหรือไม่",tr:"Kaydedilmemiş değişiklikler atılsın mı?",uk:"Відхилити незбережені зміни?"},"ui.guide.title":{zh:"欢迎使用 CX Viewer",en:"Welcome to CX Viewer","zh-TW":"歡迎使用 CX Viewer",ko:"CX Viewer에 오신 것을 환영합니다",ja:"CX Viewer へようこそ",de:"Willkommen bei CX Viewer",es:"Bienvenido a CX Viewer",fr:"Bienvenue sur CX Viewer",it:"Benvenuto in CX Viewer",da:"Velkommen til CX Viewer",pl:"Witamy w CX Viewer",ru:"Добро пожаловать в CX Viewer",ar:"مرحبًا بك في CX Viewer",no:"Velkommen til CX Viewer","pt-BR":"Bem-vindo ao CX Viewer",th:"ยินดีต้อนรับสู่ CX Viewer",tr:"CX Viewer'a hoş geldiniz",uk:"Ласкаво просимо до CX Viewer"},"ui.guide.step1":{zh:"你可以先尝试在 Codex 中发起一轮对话。不知道说什么?可以问问:",en:"Try starting a conversation in Codex. Not sure what to say? Try asking:","zh-TW":"你可以先嘗試在 Codex 中發起一輪對話。不知道說什麼?可以問問:",ko:"Codex에서 대화를 시작해 보세요. 무슨 말을 해야 할지 모르겠다면:",ja:"まず Codex で会話を始めてみましょう。何を言えばいいかわからない場合:",de:"Starten Sie ein Gespräch in Codex. Nicht sicher, was Sie sagen sollen? Fragen Sie:",es:"Intenta iniciar una conversación en Codex. ¿No sabes qué decir? Prueba preguntar:",fr:"Essayez de lancer une conversation dans Codex. Vous ne savez pas quoi dire ? Demandez :",it:"Prova ad avviare una conversazione in Codex. Non sai cosa dire? Prova a chiedere:",da:"Prøv at starte en samtale i Codex. Ikke sikker på hvad du skal sige? Prøv at spørge:",pl:"Spróbuj rozpocząć rozmowę w Codex. Nie wiesz co powiedzieć? Zapytaj:",ru:"Попробуйте начать разговор в Codex. Не знаете, что сказать? Спросите:",ar:"جرّب بدء محادثة في Codex. لا تعرف ماذا تقول؟ جرّب أن تسأل:",no:"Prøv å starte en samtale i Codex. Usikker på hva du skal si? Prøv å spørre:","pt-BR":"Tente iniciar uma conversa no Codex. Não sabe o que dizer? Pergunte:",th:"ลองเริ่มบทสนทนาใน Codex ไม่รู้จะพูดอะไร? ลองถามว่า:",tr:"Codex'da bir sohbet başlatmayı deneyin. Ne söyleyeceğinizi bilmiyor musunuz? Şunu sorun:",uk:"Спробуйте розпочати розмову в Codex. Не знаєте, що сказати? Запитайте:"},"ui.guide.exampleQuestion":{zh:"看看我现在有多少 skill",en:"How many skills do I have right now?","zh-TW":"看看我現在有多少 skill",ko:"지금 내가 가진 skill이 몇 개인지 확인해줘",ja:"今いくつの skill があるか見てみて",de:"Wie viele Skills habe ich gerade?",es:"¿Cuántos skills tengo ahora mismo?",fr:"Combien de skills ai-je en ce moment ?",it:"Quanti skill ho in questo momento?",da:"Hvor mange skills har jeg lige nu?",pl:"Ile mam teraz skills?",ru:"Сколько у меня сейчас skills?",ar:"كم عدد الـ skills لديّ الآن؟",no:"Hvor mange skills har jeg nå?","pt-BR":"Quantos skills eu tenho agora?",th:"ตอนนี้ฉันมีกี่ skill?",tr:"Şu anda kaç tane skill'im var?",uk:"Скільки у мене зараз skills?"},"ui.guide.step2":{zh:"你能看到这段文字,说明服务已经启动。如果 Codex 有响应但这里没有变化,可以让 Codex 帮你排查:",en:"If you can see this, the service is running. If Codex responds but nothing shows here, ask Codex to help troubleshoot:","zh-TW":"你能看到這段文字,說明服務已經啟動。如果 Codex 有回應但這裡沒有變化,可以讓 Codex 幫你排查:",ko:"이 텍스트가 보이면 서비스가 실행 중입니다. Codex가 응답하지만 여기에 변화가 없다면 Codex에게 문제 해결을 요청하세요:",ja:"このテキストが見えていればサービスは起動しています。Codex が応答しているのにここに変化がない場合、Codex にトラブルシューティングを依頼してください:",de:"Wenn Sie diesen Text sehen, läuft der Dienst. Wenn Codex antwortet, aber hier nichts angezeigt wird, bitten Sie Codex um Hilfe:",es:"Si puedes ver este texto, el servicio está funcionando. Si Codex responde pero aquí no cambia nada, pide a Codex que te ayude:",fr:"Si vous voyez ce texte, le service fonctionne. Si Codex répond mais rien ne s'affiche ici, demandez à Codex de vous aider :",it:"Se puoi vedere questo testo, il servizio è in esecuzione. Se Codex risponde ma qui non cambia nulla, chiedi a Codex di aiutarti:",da:"Hvis du kan se denne tekst, kører tjenesten. Hvis Codex svarer, men intet vises her, bed Codex om hjælp:",pl:"Jeśli widzisz ten tekst, usługa działa. Jeśli Codex odpowiada, ale tutaj nic się nie zmienia, poproś Codex o pomoc:",ru:"Если вы видите этот текст, сервис запущен. Если Codex отвечает, но здесь ничего не меняется, попросите Codex помочь:",ar:"إذا كنت ترى هذا النص، فالخدمة تعمل. إذا كان Codex يستجيب ولكن لا شيء يظهر هنا، اطلب من Codex المساعدة:",no:"Hvis du kan se denne teksten, kjører tjenesten. Hvis Codex svarer men ingenting vises her, be Codex om hjelp:","pt-BR":"Se você pode ver este texto, o serviço está rodando. Se o Codex responde mas nada aparece aqui, peça ao Codex para ajudar:",th:"ถ้าคุณเห็นข้อความนี้ แสดงว่าบริการกำลังทำงาน หาก Codex ตอบกลับแต่ที่นี่ไม่มีการเปลี่ยนแปลง ให้ขอให้ Codex ช่วยแก้ไข:",tr:"Bu metni görebiliyorsanız, hizmet çalışıyor. Codex yanıt veriyor ama burada bir değişiklik olmuyorsa, Codex'dan yardım isteyin:",uk:"Якщо ви бачите цей текст, сервіс працює. Якщо Codex відповідає, але тут нічого не змінюється, попросіть Codex допомогти:"},"ui.guide.troubleshootCmd":{zh:"我已经启动了 cx-viewer,但是无法看到 cx-viewer 的请求,检查 npm 包中 cx-viewer 的实现,检查问题,并修复",en:"I've started cx-viewer but can't see any requests. Check the cx-viewer npm package implementation, find the issue, and fix it","zh-TW":"我已經啟動了 cx-viewer,但是無法看到 cx-viewer 的請求,檢查 npm 包中 cx-viewer 的實現,檢查問題,並修復",ko:"cx-viewer를 시작했지만 요청을 볼 수 없습니다. cx-viewer npm 패키지 구현을 확인하고 문제를 찾아 수정해 주세요",ja:"cx-viewer を起動しましたがリクエストが表示されません。cx-viewer npm パッケージの実装を確認し、問題を見つけて修正してください",de:"Ich habe cx-viewer gestartet, kann aber keine Anfragen sehen. Überprüfen Sie die cx-viewer npm-Paket-Implementierung, finden Sie das Problem und beheben Sie es",es:"He iniciado cx-viewer pero no puedo ver las solicitudes. Revisa la implementación del paquete npm cx-viewer, encuentra el problema y corrígelo",fr:"J'ai démarré cx-viewer mais je ne vois aucune requête. Vérifiez l'implémentation du package npm cx-viewer, trouvez le problème et corrigez-le",it:"Ho avviato cx-viewer ma non riesco a vedere le richieste. Controlla l'implementazione del pacchetto npm cx-viewer, trova il problema e risolvilo",da:"Jeg har startet cx-viewer, men kan ikke se nogen forespørgsler. Tjek cx-viewer npm-pakkens implementering, find problemet og ret det",pl:"Uruchomiłem cx-viewer, ale nie widzę żadnych żądań. Sprawdź implementację pakietu npm cx-viewer, znajdź problem i napraw go",ru:"Я запустил cx-viewer, но не вижу запросов. Проверьте реализацию npm-пакета cx-viewer, найдите проблему и исправьте её",ar:"لقد قمت بتشغيل cx-viewer ولكن لا أستطيع رؤية أي طلبات. تحقق من تنفيذ حزمة npm الخاصة بـ cx-viewer، وابحث عن المشكلة وأصلحها",no:"Jeg har startet cx-viewer, men kan ikke se noen forespørsler. Sjekk cx-viewer npm-pakkens implementering, finn problemet og fiks det","pt-BR":"Iniciei o cx-viewer mas não consigo ver as requisições. Verifique a implementação do pacote npm cx-viewer, encontre o problema e corrija",th:"ฉันเริ่ม cx-viewer แล้วแต่ไม่เห็นคำขอใดๆ ตรวจสอบการใช้งานแพ็กเกจ npm ของ cx-viewer หาปัญหาและแก้ไข",tr:"cx-viewer'ı başlattım ama istekleri göremiyorum. cx-viewer npm paketinin uygulamasını kontrol edin, sorunu bulun ve düzeltin",uk:"Я запустив cx-viewer, але не бачу жодних запитів. Перевірте реалізацію npm-пакету cx-viewer, знайдіть проблему та виправте її"},"ui.guide.step3":{zh:"在极端情况下,native 版本的 Codex 无法拦截。你可以尝试切回 npm 版本:",en:"In extreme cases, the native version of Codex cannot be intercepted. You can try switching back to the npm version:","zh-TW":"在極端情況下,native 版本的 Codex 無法攔截。你可以嘗試切回 npm 版本:",ko:"극단적인 경우 native 버전의 Codex는 가로챌 수 없습니다. npm 버전으로 전환해 보세요:",ja:"極端な場合、ネイティブ版の Codex はインターセプトできません。npm 版に切り替えてみてください:",de:"In extremen Fällen kann die native Version von Codex nicht abgefangen werden. Versuchen Sie, zur npm-Version zu wechseln:",es:"En casos extremos, la versión nativa de Codex no puede ser interceptada. Puedes intentar volver a la versión npm:",fr:"Dans les cas extrêmes, la version native de Codex ne peut pas être interceptée. Essayez de revenir à la version npm :",it:"In casi estremi, la versione nativa di Codex non può essere intercettata. Puoi provare a tornare alla versione npm:",da:"I ekstreme tilfælde kan den native version af Codex ikke opsnappes. Du kan prøve at skifte tilbage til npm-versionen:",pl:"W skrajnych przypadkach natywna wersja Codex nie może być przechwycona. Możesz spróbować przełączyć się na wersję npm:",ru:"В крайних случаях нативная версия Codex не может быть перехвачена. Попробуйте переключиться на npm-версию:",ar:"في الحالات القصوى، لا يمكن اعتراض النسخة الأصلية من Codex. يمكنك محاولة العودة إلى نسخة npm:",no:"I ekstreme tilfeller kan den native versjonen av Codex ikke fanges opp. Du kan prøve å bytte tilbake til npm-versjonen:","pt-BR":"Em casos extremos, a versão nativa do Codex não pode ser interceptada. Você pode tentar voltar para a versão npm:",th:"ในกรณีสุดขีด เวอร์ชัน native ของ Codex ไม่สามารถดักจับได้ คุณสามารถลองเปลี่ยนกลับไปใช้เวอร์ชัน npm:",tr:"Aşırı durumlarda, Codex'un native sürümü yakalanamaz. npm sürümüne geri dönmeyi deneyebilirsiniz:",uk:"У крайніх випадках нативну версію Codex неможливо перехопити. Спробуйте переключитися на npm-версію:"},"ui.requestList":{zh:"请求列表",en:"Requests","zh-TW":"請求列表",ko:"요청 목록",ja:"リクエスト一覧",de:"Anfragen",es:"Solicitudes",fr:"Requêtes",it:"Richieste",da:"Forespørgsler",pl:"Żądania",ru:"Запросы",ar:"الطلبات",no:"Forespørsler","pt-BR":"Requisições",th:"รายการคำขอ",tr:"İstekler",uk:"Запити"},"ui.totalRequests":{zh:"总请求数: {count}",en:"Total: {count}","zh-TW":"總請求數: {count}",ko:"총 요청 수: {count}",ja:"合計: {count}",de:"Gesamt: {count}",es:"Total: {count}",fr:"Total : {count}",it:"Totale: {count}",da:"Total: {count}",pl:"Łącznie: {count}",ru:"Всего: {count}",ar:"الإجمالي: {count}",no:"Totalt: {count}","pt-BR":"Total: {count}",th:"ทั้งหมด: {count}",tr:"Toplam: {count}",uk:"Всього: {count}"},"ui.waitingRequests":{zh:"等待请求...",en:"Waiting for requests...","zh-TW":"等待請求...",ko:"요청 대기 중...",ja:"リクエスト待機中...",de:"Warte auf Anfragen...",es:"Esperando solicitudes...",fr:"En attente de requêtes...",it:"In attesa di richieste...",da:"Venter på forespørgsler...",pl:"Oczekiwanie na żądania...",ru:"Ожидание запросов...",ar:"في انتظار الطلبات...",no:"Venter på forespørsler...","pt-BR":"Aguardando requisições...",th:"รอคำขอ...",tr:"İstekler bekleniyor...",uk:"Очікування запитів..."},"ui.importLocalLogs":{zh:"日志管理工具",en:"Log Management","zh-TW":"日誌管理工具",ko:"로그 관리 도구",ja:"ログ管理ツール",de:"Log-Verwaltung",es:"Gestión de logs",fr:"Gestion des logs",it:"Gestione log",da:"Loghåndtering",pl:"Zarządzanie logami",ru:"Управление логами",ar:"إدارة السجلات",no:"Loggadministrasjon","pt-BR":"Gerenciamento de logs",th:"จัดการบันทึก",tr:"Log yönetimi",uk:"Керування логами"},"ui.messaging.menu":{zh:"通讯软件接入",en:"Messaging Integration","zh-TW":"通訊軟體接入",ja:"メッセージ連携",ko:"메신저 연동",de:"Messaging-Integration",es:"Integración de mensajería",fr:"Intégration de messagerie",it:"Integrazione messaggistica",da:"Beskedintegration",pl:"Integracja komunikatorów",ru:"Интеграция мессенджеров",ar:"تكامل المراسلة",no:"Meldingsintegrasjon","pt-BR":"Integração de mensagens",th:"การเชื่อมต่อการส่งข้อความ",tr:"Mesajlaşma entegrasyonu",uk:"Інтеграція месенджерів"},"ui.messaging.title":{zh:"通讯软件集成",en:"Messaging Integrations","zh-TW":"通訊軟體整合",ko:"메신저 통합",ja:"メッセージ連携",de:"Messaging-Integrationen",es:"Integraciones de mensajería",fr:"Intégrations de messagerie",it:"Integrazioni di messaggistica",da:"Beskedintegrationer",pl:"Integracje komunikatorów",ru:"Интеграции мессенджеров",ar:"تكاملات المراسلة",no:"Meldingsintegrasjoner","pt-BR":"Integrações de mensagens",th:"การผสานรวมการส่งข้อความ",tr:"Mesajlaşma entegrasyonları",uk:"Інтеграції месенджерів"},"ui.messaging.dingtalk":{zh:"钉钉",en:"DingTalk","zh-TW":"釘釘",ja:"DingTalk",ko:"딩톡",de:"DingTalk",es:"DingTalk",fr:"DingTalk",it:"DingTalk",da:"DingTalk",pl:"DingTalk",ru:"DingTalk",ar:"DingTalk",no:"DingTalk","pt-BR":"DingTalk",th:"DingTalk",tr:"DingTalk",uk:"DingTalk"},"ui.workflow.title":{zh:"工作流",en:"Workflow","zh-TW":"工作流",ja:"ワークフロー",ko:"워크플로",de:"Workflow",es:"Flujo de trabajo",fr:"Flux de travail",it:"Flusso di lavoro",da:"Arbejdsgang",pl:"Przepływ pracy",ru:"Рабочий процесс",ar:"سير العمل",no:"Arbeidsflyt","pt-BR":"Fluxo de trabalho",th:"เวิร์กโฟลว์",tr:"İş akışı",uk:"Робочий процес"},"ui.workflow.runs":{zh:"工作流运行",en:"Workflow Runs","zh-TW":"工作流執行",ja:"ワークフロー実行",ko:"워크플로 실행",de:"Workflow-Läufe",es:"Ejecuciones de flujo",fr:"Exécutions de flux",it:"Esecuzioni flusso",da:"Arbejdsgang-kørsler",pl:"Uruchomienia przepływu",ru:"Запуски процесса",ar:"عمليات سير العمل",no:"Arbeidsflyt-kjøringer","pt-BR":"Execuções de fluxo",th:"การรันเวิร์กโฟลว์",tr:"İş akışı çalıştırmaları",uk:"Запуски процесу"},"ui.workflow.modalTitle":{zh:"工作流运行详情",en:"Workflow Run","zh-TW":"工作流執行詳情",ja:"ワークフロー実行",ko:"워크플로 실행",de:"Workflow-Lauf",es:"Ejecución de flujo",fr:"Exécution de flux",it:"Esecuzione flusso",da:"Arbejdsgang-kørsel",pl:"Uruchomienie przepływu",ru:"Запуск процесса",ar:"تشغيل سير العمل",no:"Arbeidsflyt-kjøring","pt-BR":"Execução de fluxo",th:"การรันเวิร์กโฟลว์",tr:"İş akışı çalıştırması",uk:"Запуск процесу"},"ui.workflow.phases":{zh:"阶段",en:"Phases","zh-TW":"階段",ja:"フェーズ",ko:"단계",de:"Phasen",es:"Fases",fr:"Phases",it:"Fasi",da:"Faser",pl:"Fazy",ru:"Фазы",ar:"المراحل",no:"Faser","pt-BR":"Fases",th:"เฟส",tr:"Aşamalar",uk:"Фази"},"ui.workflow.agents":{zh:"代理 ({count})",en:"Agents ({count})","zh-TW":"代理 ({count})",ja:"エージェント ({count})",ko:"에이전트 ({count})",de:"Agenten ({count})",es:"Agentes ({count})",fr:"Agents ({count})",it:"Agenti ({count})",da:"Agenter ({count})",pl:"Agenci ({count})",ru:"Агенты ({count})",ar:"الوكلاء ({count})",no:"Agenter ({count})","pt-BR":"Agentes ({count})",th:"เอเจนต์ ({count})",tr:"Aracılar ({count})",uk:"Агенти ({count})"},"ui.workflow.agentsShort":{zh:"{count} 个代理",en:"{count} agents","zh-TW":"{count} 個代理",ja:"{count} エージェント",ko:"에이전트 {count}개",de:"{count} Agenten",es:"{count} agentes",fr:"{count} agents",it:"{count} agenti",da:"{count} agenter",pl:"{count} agentów",ru:"{count} агентов",ar:"{count} وكلاء",no:"{count} agenter","pt-BR":"{count} agentes",th:"{count} เอเจนต์",tr:"{count} aracı",uk:"{count} агентів"},"ui.workflow.agentsProgress":{zh:"{done}/{total} 代理",en:"{done}/{total} agents","zh-TW":"{done}/{total} 代理",ja:"{done}/{total} エージェント",ko:"{done}/{total} 에이전트",de:"{done}/{total} Agenten",es:"{done}/{total} agentes",fr:"{done}/{total} agents",it:"{done}/{total} agenti",da:"{done}/{total} agenter",pl:"{done}/{total} agentów",ru:"{done}/{total} агентов",ar:"{done}/{total} وكلاء",no:"{done}/{total} agenter","pt-BR":"{done}/{total} agentes",th:"{done}/{total} เอเจนต์",tr:"{done}/{total} aracı",uk:"{done}/{total} агентів"},"ui.workflow.hudClose":{zh:"关闭",en:"Dismiss","zh-TW":"關閉",ja:"閉じる",ko:"닫기",de:"Schließen",es:"Descartar",fr:"Fermer",it:"Chiudi",da:"Luk",pl:"Zamknij",ru:"Закрыть",ar:"إغلاق",no:"Lukk","pt-BR":"Dispensar",th:"ปิด",tr:"Kapat",uk:"Закрити"},"ui.workflow.viewList":{zh:"列表",en:"List","zh-TW":"列表",ja:"リスト",ko:"목록",de:"Liste",es:"Lista",fr:"Liste",it:"Elenco",da:"Liste",pl:"Lista",ru:"Список",ar:"قائمة",no:"Liste","pt-BR":"Lista",th:"รายการ",tr:"Liste",uk:"Список"},"ui.workflow.viewTimeline":{zh:"时间轴",en:"Timeline","zh-TW":"時間軸",ja:"タイムライン",ko:"타임라인",de:"Zeitachse",es:"Cronología",fr:"Chronologie",it:"Cronologia",da:"Tidslinje",pl:"Oś czasu",ru:"Хронология",ar:"الخط الزمني",no:"Tidslinje","pt-BR":"Linha do tempo",th:"ไทม์ไลน์",tr:"Zaman çizelgesi",uk:"Хронологія"},"ui.workflow.noTimeline":{zh:"暂无时间轴数据",en:"No timeline data","zh-TW":"暫無時間軸資料",ja:"タイムラインデータなし",ko:"타임라인 데이터 없음",de:"Keine Zeitachsendaten",es:"Sin datos de cronología",fr:"Aucune donnée de chronologie",it:"Nessun dato cronologia",da:"Ingen tidslinjedata",pl:"Brak danych osi czasu",ru:"Нет данных хронологии",ar:"لا توجد بيانات زمنية",no:"Ingen tidslinjedata","pt-BR":"Sem dados de linha do tempo",th:"ไม่มีข้อมูลไทม์ไลน์",tr:"Zaman çizelgesi verisi yok",uk:"Немає даних хронології"},"ui.workflow.tok":{zh:"tok",en:"tok","zh-TW":"tok",ja:"tok",ko:"tok",de:"tok",es:"tok",fr:"tok",it:"tok",da:"tok",pl:"tok",ru:"tok",ar:"tok",no:"tok","pt-BR":"tok",th:"tok",tr:"tok",uk:"tok"},"ui.workflow.tools":{zh:"工具",en:"tools","zh-TW":"工具",ja:"ツール",ko:"도구",de:"Tools",es:"herramientas",fr:"outils",it:"strumenti",da:"værktøjer",pl:"narzędzia",ru:"инстр.",ar:"أدوات",no:"verktøy","pt-BR":"ferramentas",th:"เครื่องมือ",tr:"araç",uk:"інстр."},"ui.workflow.colModel":{zh:"模型",en:"Model","zh-TW":"模型",ja:"モデル",ko:"모델",de:"Modell",es:"Modelo",fr:"Modèle",it:"Modello",da:"Model",pl:"Model",ru:"Модель",ar:"النموذج",no:"Modell","pt-BR":"Modelo",th:"โมเดล",tr:"Model",uk:"Модель"},"ui.workflow.colTokens":{zh:"Tokens",en:"Tokens","zh-TW":"Tokens",ja:"トークン",ko:"토큰",de:"Tokens",es:"Tokens",fr:"Tokens",it:"Token",da:"Tokens",pl:"Tokeny",ru:"Токены",ar:"الرموز",no:"Tokens","pt-BR":"Tokens",th:"โทเคน",tr:"Token",uk:"Токени"},"ui.workflow.colDur":{zh:"耗时",en:"Time","zh-TW":"耗時",ja:"時間",ko:"시간",de:"Zeit",es:"Tiempo",fr:"Durée",it:"Tempo",da:"Tid",pl:"Czas",ru:"Время",ar:"الوقت",no:"Tid","pt-BR":"Tempo",th:"เวลา",tr:"Süre",uk:"Час"},"ui.workflow.status.finishing":{zh:"收尾中",en:"finishing","zh-TW":"收尾中",ja:"仕上げ中",ko:"마무리 중",de:"wird abgeschlossen",es:"finalizando",fr:"finalisation",it:"completamento",da:"afslutter",pl:"kończenie",ru:"завершение",ar:"قيد الإنهاء",no:"fullfører","pt-BR":"finalizando",th:"กำลังสรุป",tr:"tamamlanıyor",uk:"завершення"},"ui.workflow.loading":{zh:"正在加载工作流…",en:"Loading workflow…","zh-TW":"正在載入工作流…",ja:"ワークフローを読み込み中…",ko:"워크플로 불러오는 중…",de:"Workflow wird geladen…",es:"Cargando flujo de trabajo…",fr:"Chargement du flux de travail…",it:"Caricamento del flusso di lavoro…",da:"Indlæser arbejdsgang…",pl:"Ładowanie przepływu pracy…",ru:"Загрузка рабочего процесса…",ar:"جارٍ تحميل سير العمل…",no:"Laster arbeidsflyt…","pt-BR":"Carregando fluxo de trabalho…",th:"กำลังโหลดเวิร์กโฟลว์…",tr:"İş akışı yükleniyor…",uk:"Завантаження робочого процесу…"},"ui.workflow.loadFailed":{zh:"工作流加载失败",en:"Failed to load workflow","zh-TW":"工作流載入失敗",ja:"ワークフローの読み込みに失敗しました",ko:"워크플로를 불러오지 못했습니다",de:"Workflow konnte nicht geladen werden",es:"No se pudo cargar el flujo de trabajo",fr:"Échec du chargement du flux de travail",it:"Impossibile caricare il flusso di lavoro",da:"Kunne ikke indlæse arbejdsgang",pl:"Nie udało się załadować przepływu pracy",ru:"Не удалось загрузить рабочий процесс",ar:"فشل تحميل سير العمل",no:"Kunne ikke laste arbeidsflyt","pt-BR":"Falha ao carregar o fluxo de trabalho",th:"โหลดเวิร์กโฟลว์ไม่สำเร็จ",tr:"İş akışı yüklenemedi",uk:"Не вдалося завантажити робочий процес"},"ui.workflow.status.running":{zh:"运行中",en:"running","zh-TW":"執行中",ja:"実行中",ko:"실행 중",de:"läuft",es:"en ejecución",fr:"en cours",it:"in esecuzione",da:"kører",pl:"w toku",ru:"выполняется",ar:"قيد التشغيل",no:"kjører","pt-BR":"em execução",th:"กำลังทำงาน",tr:"çalışıyor",uk:"виконується"},"ui.workflow.status.completed":{zh:"已完成",en:"completed","zh-TW":"已完成",ja:"完了",ko:"완료",de:"abgeschlossen",es:"completado",fr:"terminé",it:"completato",da:"fuldført",pl:"zakończono",ru:"завершено",ar:"مكتمل",no:"fullført","pt-BR":"concluído",th:"เสร็จสิ้น",tr:"tamamlandı",uk:"завершено"},"ui.workflow.status.failed":{zh:"失败",en:"failed","zh-TW":"失敗",ja:"失敗",ko:"실패",de:"fehlgeschlagen",es:"fallido",fr:"échoué",it:"non riuscito",da:"mislykkedes",pl:"niepowodzenie",ru:"ошибка",ar:"فشل",no:"mislyktes","pt-BR":"falhou",th:"ล้มเหลว",tr:"başarısız",uk:"помилка"},"ui.workflow.status.paused":{zh:"已暂停",en:"paused","zh-TW":"已暫停",ja:"一時停止",ko:"일시 중지",de:"pausiert",es:"en pausa",fr:"en pause",it:"in pausa",da:"sat på pause",pl:"wstrzymano",ru:"приостановлено",ar:"متوقف مؤقتًا",no:"satt på pause","pt-BR":"pausado",th:"หยุดชั่วคราว",tr:"duraklatıldı",uk:"призупинено"},"ui.workflow.status.cancelled":{zh:"已取消",en:"cancelled","zh-TW":"已取消",ja:"キャンセル",ko:"취소됨",de:"abgebrochen",es:"cancelado",fr:"annulé",it:"annullato",da:"annulleret",pl:"anulowano",ru:"отменено",ar:"أُلغِي",no:"avbrutt","pt-BR":"cancelado",th:"ยกเลิกแล้ว",tr:"iptal edildi",uk:"скасовано"},"ui.dingtalk.title":{zh:"钉钉",en:"DingTalk","zh-TW":"釘釘"},"ui.dingtalk.desc":{zh:"在钉钉里双向对话当前 Codex 会话。仅需 AppKey 与 AppSecret(Stream 模式,无需公网)。",en:"Chat two-way with the current Codex session from DingTalk. Only an AppKey and AppSecret are needed (Stream mode, no public network)."},"ui.dingtalk.enable":{zh:"启用钉钉桥接",en:"Enable DingTalk bridge","zh-TW":"啟用釘釘橋接",ko:"DingTalk 브리지 활성화",ja:"DingTalk ブリッジを有効化",de:"DingTalk-Bridge aktivieren",es:"Activar puente de DingTalk",fr:"Activer le pont DingTalk",it:"Abilita il bridge DingTalk",da:"Aktivér DingTalk-bro",pl:"Włącz mostek DingTalk",ru:"Включить мост DingTalk",ar:"تفعيل جسر DingTalk",no:"Aktiver DingTalk-bro","pt-BR":"Ativar ponte DingTalk",th:"เปิดใช้บริดจ์ DingTalk",tr:"DingTalk köprüsünü etkinleştir",uk:"Увімкнути міст DingTalk"},"ui.dingtalk.appKey":{zh:"AppKey",en:"AppKey","zh-TW":"AppKey",ko:"AppKey",ja:"AppKey",de:"AppKey",es:"AppKey",fr:"AppKey",it:"AppKey",da:"AppKey",pl:"AppKey",ru:"AppKey",ar:"AppKey",no:"AppKey","pt-BR":"AppKey",th:"AppKey",tr:"AppKey",uk:"AppKey"},"ui.dingtalk.appSecret":{zh:"AppSecret",en:"AppSecret","zh-TW":"AppSecret",ko:"AppSecret",ja:"AppSecret",de:"AppSecret",es:"AppSecret",fr:"AppSecret",it:"AppSecret",da:"AppSecret",pl:"AppSecret",ru:"AppSecret",ar:"AppSecret",no:"AppSecret","pt-BR":"AppSecret",th:"AppSecret",tr:"AppSecret",uk:"AppSecret"},"ui.dingtalk.appSecretSaved":{zh:"已保存(留空则不修改)",en:"Saved (leave blank to keep)"},"ui.dingtalk.allowStaff":{zh:"发送人白名单(staffId)",en:"Sender allowlist (staffId)","zh-TW":"發送人白名單(staffId)",ko:"발신자 허용 목록 (staffId)",ja:"送信者許可リスト (staffId)",de:"Absender-Whitelist (staffId)",es:"Lista de remitentes permitidos (staffId)",fr:"Liste d'expéditeurs autorisés (staffId)",it:"Elenco mittenti consentiti (staffId)",da:"Tilladelsesliste for afsendere (staffId)",pl:"Lista dozwolonych nadawców (staffId)",ru:"Список разрешённых отправителей (staffId)",ar:"قائمة المرسلين المسموح بهم (staffId)",no:"Tillatelsesliste for avsendere (staffId)","pt-BR":"Lista de remetentes permitidos (staffId)",th:"รายการผู้ส่งที่อนุญาต (staffId)",tr:"İzin verilen gönderen listesi (staffId)",uk:"Список дозволених відправників (staffId)"},"ui.dingtalk.optional":{zh:"选填",en:"Optional"},"ui.dingtalk.moreSettings":{zh:"更多设置",en:"More settings","zh-TW":"更多設定"},"ui.imSender.external":{zh:"外部用户",en:"External user","zh-TW":"外部使用者",ko:"외부 사용자",ja:"外部ユーザー",de:"Externer Benutzer",es:"Usuario externo",fr:"Utilisateur externe",it:"Utente esterno",da:"Ekstern bruger",pl:"Użytkownik zewnętrzny",ru:"Внешний пользователь",ar:"مستخدم خارجي",no:"Ekstern bruker","pt-BR":"Usuário externo",th:"ผู้ใช้ภายนอก",tr:"Harici kullanıcı",uk:"Зовнішній користувач"},"ui.imSource.dingtalk":{zh:"来自钉钉",en:"From DingTalk","zh-TW":"來自釘釘",ko:"DingTalk에서",ja:"DingTalk から",de:"Von DingTalk",es:"De DingTalk",fr:"Depuis DingTalk",it:"Da DingTalk",da:"Fra DingTalk",pl:"Z DingTalk",ru:"Из DingTalk",ar:"من DingTalk",no:"Fra DingTalk","pt-BR":"Do DingTalk",th:"จาก DingTalk",tr:"DingTalk'tan",uk:"Із DingTalk"},"ui.dingtalk.allowStaffHelp":{zh:"留空=绑定首个发起会话;填写则仅允许列出的 staffId。",en:"Blank = bind the first conversation; otherwise only the listed staffIds are allowed."},"ui.dingtalk.blockSkipPerm":{zh:"会话拒绝注入",en:"Refuse session injection","zh-TW":"會話拒絕注入",ko:"세션 주입 거부",ja:"セッションへの注入を拒否",de:"Sitzungs-Injektion ablehnen",es:"Rechazar inyección de sesión",fr:"Refuser l'injection de session",it:"Rifiuta iniezione di sessione",da:"Afvis sessionsinjektion",pl:"Odrzuć wstrzykiwanie sesji",ru:"Отклонять ввод в сессию",ar:"رفض الحقن في الجلسة",no:"Avvis øktinjeksjon","pt-BR":"Recusar injeção de sessão",th:"ปฏิเสธการแทรกเซสชัน",tr:"Oturum enjeksiyonunu reddet",uk:"Відхиляти ін'єкцію в сеанс"},"ui.dingtalk.blockSkipPermHelp":{zh:"当 Codex 会话以 --dangerously-skip-permissions 运行时,拒绝远程注入(否则远程指令会无审批直接执行)。",en:"When the Codex session runs with --dangerously-skip-permissions, refuse remote injection (which would otherwise execute with no approval).","zh-TW":"當 Codex 會話以 --dangerously-skip-permissions 執行時,拒絕遠端注入(否則遠端指令會無審批直接執行)。",ko:"Codex 세션이 --dangerously-skip-permissions로 실행 중일 때 원격 주입을 거부합니다(그렇지 않으면 승인 없이 실행됨).",ja:"Codex セッションが --dangerously-skip-permissions で実行中の場合、リモート注入を拒否します(さもないと承認なしで実行されます)。",de:"Wenn die Codex-Sitzung mit --dangerously-skip-permissions läuft, Remote-Injektion ablehnen (die sonst ohne Genehmigung ausgeführt würde).",es:"Cuando la sesión de Codex se ejecuta con --dangerously-skip-permissions, rechazar la inyección remota (que de lo contrario se ejecutaría sin aprobación).",fr:"Lorsque la session Codex s'exécute avec --dangerously-skip-permissions, refuser l'injection à distance (qui s'exécuterait sinon sans approbation).",it:"Quando la sessione Codex è in esecuzione con --dangerously-skip-permissions, rifiuta l'iniezione remota (che altrimenti verrebbe eseguita senza approvazione).",da:"Når Codex-sessionen kører med --dangerously-skip-permissions, afvis fjerninjektion (som ellers ville blive udført uden godkendelse).",pl:"Gdy sesja Codex działa z --dangerously-skip-permissions, odrzucaj zdalne wstrzykiwanie (które w przeciwnym razie wykonałoby się bez zatwierdzenia).",ru:"Когда сессия Codex запущена с --dangerously-skip-permissions, отклонять удалённый ввод (иначе он выполнится без подтверждения).",ar:"عند تشغيل جلسة Codex باستخدام --dangerously-skip-permissions، ارفض الحقن عن بُعد (الذي سيُنفَّذ بخلاف ذلك دون موافقة).",no:"Når Codex-økten kjører med --dangerously-skip-permissions, avvis fjerninjeksjon (som ellers ville bli kjørt uten godkjenning).","pt-BR":"Quando a sessão do Codex é executada com --dangerously-skip-permissions, recusar a injeção remota (que, caso contrário, seria executada sem aprovação).",th:"เมื่อเซสชัน Codex ทำงานด้วย --dangerously-skip-permissions ให้ปฏิเสธการแทรกจากระยะไกล (มิฉะนั้นจะทำงานโดยไม่มีการอนุมัติ)",tr:"Codex oturumu --dangerously-skip-permissions ile çalışırken uzaktan enjeksiyonu reddet (aksi takdirde onay olmadan çalışır).",uk:"Коли сеанс Codex запущено з --dangerously-skip-permissions, відхиляти віддалену ін'єкцію (інакше вона виконається без підтвердження)."},"ui.dingtalk.allowStaffPlaceholder":{zh:"staffId,回车分隔多个",en:"staffId, press Enter to add","zh-TW":"staffId,按 Enter 新增",ko:"staffId, Enter로 추가",ja:"staffId、Enter で追加",de:"staffId, mit Enter hinzufügen",es:"staffId, pulsa Enter para añadir",fr:"staffId, appuyez sur Entrée pour ajouter",it:"staffId, premi Invio per aggiungere",da:"staffId, tryk Enter for at tilføje",pl:"staffId, naciśnij Enter, aby dodać",ru:"staffId, нажмите Enter, чтобы добавить",ar:"staffId، اضغط Enter للإضافة",no:"staffId, trykk Enter for å legge til","pt-BR":"staffId, pressione Enter para adicionar",th:"staffId, กด Enter เพื่อเพิ่ม",tr:"staffId, eklemek için Enter'a basın",uk:"staffId, натисніть Enter, щоб додати"},"ui.dingtalk.save":{zh:"保存",en:"Save"},"ui.dingtalk.saved":{zh:"已保存",en:"Saved"},"ui.dingtalk.saveFailed":{zh:"保存失败",en:"Save failed"},"ui.dingtalk.test":{zh:"测试连接",en:"Test connection"},"ui.dingtalk.testOk":{zh:"连接正常",en:"Connection OK"},"ui.dingtalk.testFail":{zh:"连接失败",en:"Connection failed"},"ui.dingtalk.statusConnected":{zh:"已连接",en:"Connected"},"ui.dingtalk.statusDisconnected":{zh:"未连接",en:"Disconnected"},"ui.dingtalk.statusError":{zh:"错误",en:"Error"},"ui.dingtalk.singleKeyHint":{zh:"同一个 AppKey 请勿被多个程序同时连接(如其他机器人)——钉钉会在多个连接间随机分流消息,导致回复时有时无。cx-viewer 建议使用独立的钉钉应用。",en:"Do not connect the same AppKey from multiple programs (e.g. another bot) — DingTalk randomly load-balances messages across connections, so replies arrive only intermittently. Use a dedicated DingTalk app for cx-viewer.","zh-TW":"同一個 AppKey 請勿被多個程式同時連線(如其他機器人)——釘釘會在多個連線間隨機分流訊息,導致回覆時有時無。cx-viewer 建議使用獨立的釘釘應用。",ko:"동일한 AppKey를 여러 프로그램(예: 다른 봇)에서 동시에 연결하지 마세요. DingTalk는 연결 간에 메시지를 무작위로 분산하므로 답장이 간헐적으로만 도착합니다. cx-viewer에는 전용 DingTalk 앱을 사용하세요.",ja:"同じ AppKey を複数のプログラム(他のボットなど)から同時に接続しないでください。DingTalk は複数の接続間でメッセージをランダムに振り分けるため、返信が断続的にしか届きません。cx-viewer には専用の DingTalk アプリを使用してください。",de:"Verbinden Sie denselben AppKey nicht von mehreren Programmen aus (z. B. einem anderen Bot) — DingTalk verteilt Nachrichten zufällig über die Verbindungen, sodass Antworten nur unregelmäßig ankommen. Verwenden Sie eine dedizierte DingTalk-App für cx-viewer.",es:"No conectes el mismo AppKey desde varios programas (p. ej. otro bot): DingTalk reparte los mensajes aleatoriamente entre las conexiones, por lo que las respuestas llegan de forma intermitente. Usa una app de DingTalk dedicada para cx-viewer.",fr:"Ne connectez pas le même AppKey depuis plusieurs programmes (par ex. un autre bot) — DingTalk répartit les messages de façon aléatoire entre les connexions, si bien que les réponses n'arrivent que par intermittence. Utilisez une application DingTalk dédiée pour cx-viewer.",it:"Non connettere lo stesso AppKey da più programmi (es. un altro bot): DingTalk distribuisce i messaggi in modo casuale tra le connessioni, quindi le risposte arrivano solo a intermittenza. Usa un'app DingTalk dedicata per cx-viewer.",da:"Forbind ikke den samme AppKey fra flere programmer (f.eks. en anden bot) — DingTalk fordeler beskeder tilfældigt mellem forbindelserne, så svar kommer kun sporadisk. Brug en dedikeret DingTalk-app til cx-viewer.",pl:"Nie łącz tego samego AppKey z wielu programów (np. innego bota) — DingTalk losowo rozdziela wiadomości między połączenia, więc odpowiedzi przychodzą tylko z przerwami. Użyj dedykowanej aplikacji DingTalk dla cx-viewer.",ru:"Не подключайте один и тот же AppKey из нескольких программ (например, другого бота) — DingTalk случайно распределяет сообщения между подключениями, поэтому ответы приходят лишь время от времени. Используйте отдельное приложение DingTalk для cx-viewer.",ar:"لا تربط نفس AppKey من عدة برامج (مثل روبوت آخر) — يوزّع DingTalk الرسائل عشوائيًا بين الاتصالات، فتصل الردود بشكل متقطع فقط. استخدم تطبيق DingTalk مخصصًا لـ cx-viewer.",no:"Ikke koble samme AppKey fra flere programmer (f.eks. en annen bot) — DingTalk fordeler meldinger tilfeldig mellom tilkoblingene, så svar kommer bare sporadisk. Bruk en dedikert DingTalk-app for cx-viewer.","pt-BR":"Não conecte o mesmo AppKey a partir de vários programas (por exemplo, outro bot) — o DingTalk distribui as mensagens aleatoriamente entre as conexões, então as respostas chegam apenas de forma intermitente. Use um app do DingTalk dedicado para o cx-viewer.",th:"อย่าเชื่อมต่อ AppKey เดียวกันจากหลายโปรแกรม (เช่น บอทอื่น) — DingTalk จะกระจายข้อความแบบสุ่มระหว่างการเชื่อมต่อ ทำให้คำตอบมาถึงเป็นช่วง ๆ เท่านั้น ใช้แอป DingTalk เฉพาะสำหรับ cx-viewer",tr:"Aynı AppKey'i birden çok programdan (ör. başka bir bot) aynı anda bağlamayın — DingTalk mesajları bağlantılar arasında rastgele dağıtır, bu nedenle yanıtlar yalnızca aralıklı olarak gelir. cx-viewer için ayrı bir DingTalk uygulaması kullanın.",uk:"Не підключайте той самий AppKey з кількох програм (наприклад, іншого бота) — DingTalk випадково розподіляє повідомлення між підключеннями, тож відповіді надходять лише час від часу. Використовуйте окремий застосунок DingTalk для cx-viewer."},"ui.dingtalk.replyDelayHint":{zh:"回复在整轮结束后约 10 秒送达。",en:"Replies arrive ~10s after the turn completes.","zh-TW":"回覆在整輪結束後約 10 秒送達。",ko:"답장은 한 턴이 끝난 뒤 약 10초 후에 도착합니다.",ja:"返信はターン終了後およそ10秒で届きます。",de:"Antworten treffen etwa 10 s nach Abschluss der Runde ein.",es:"Las respuestas llegan ~10 s después de completar el turno.",fr:"Les réponses arrivent ~10 s après la fin du tour.",it:"Le risposte arrivano ~10 s dopo il completamento del turno.",da:"Svar ankommer ~10 s efter at turen er færdig.",pl:"Odpowiedzi przychodzą ~10 s po zakończeniu tury.",ru:"Ответы приходят примерно через 10 с после завершения хода.",ar:"تصل الردود بعد نحو 10 ثوانٍ من انتهاء الجولة.",no:"Svar kommer ~10 s etter at turen er fullført.","pt-BR":"As respostas chegam ~10 s após a conclusão do turno.",th:"คำตอบจะมาถึงประมาณ 10 วินาทีหลังจากจบรอบ",tr:"Yanıtlar tur tamamlandıktan ~10 sn sonra gelir.",uk:"Відповіді надходять приблизно через 10 с після завершення ходу."},"ui.dingtalk.securityWarn":{zh:"⚠️ 钉钉消息会直接驱动本地会话(可执行命令)。请仅对可信成员开启。",en:"⚠️ DingTalk messages directly drive the local session (which can run commands). Enable only for trusted members.","zh-TW":"⚠️ 釘釘訊息會直接驅動本地會話(可執行命令)。請僅對可信成員開啟。",ko:"⚠️ DingTalk 메시지는 로컬 세션을 직접 구동합니다(명령 실행 가능). 신뢰할 수 있는 멤버에게만 활성화하세요.",ja:"⚠️ DingTalk のメッセージはローカルセッションを直接駆動します(コマンド実行可能)。信頼できるメンバーにのみ有効化してください。",de:"⚠️ DingTalk-Nachrichten steuern direkt die lokale Sitzung (kann Befehle ausführen). Nur für vertrauenswürdige Mitglieder aktivieren.",es:"⚠️ Los mensajes de DingTalk controlan directamente la sesión local (que puede ejecutar comandos). Actívalo solo para miembros de confianza.",fr:"⚠️ Les messages DingTalk pilotent directement la session locale (qui peut exécuter des commandes). N'activez que pour des membres de confiance.",it:"⚠️ I messaggi DingTalk controllano direttamente la sessione locale (che può eseguire comandi). Abilita solo per membri fidati.",da:"⚠️ DingTalk-beskeder styrer direkte den lokale session (som kan køre kommandoer). Aktivér kun for betroede medlemmer.",pl:"⚠️ Wiadomości DingTalk bezpośrednio sterują lokalną sesją (może uruchamiać polecenia). Włącz tylko dla zaufanych członków.",ru:"⚠️ Сообщения DingTalk напрямую управляют локальной сессией (может выполнять команды). Включайте только для доверенных участников.",ar:"⚠️ تتحكم رسائل DingTalk مباشرة في الجلسة المحلية (يمكنها تنفيذ الأوامر). فعِّلها فقط للأعضاء الموثوقين.",no:"⚠️ DingTalk-meldinger styrer den lokale økten direkte (kan kjøre kommandoer). Aktiver bare for betrodde medlemmer.","pt-BR":"⚠️ As mensagens do DingTalk controlam diretamente a sessão local (que pode executar comandos). Ative apenas para membros confiáveis.",th:"⚠️ ข้อความ DingTalk จะควบคุมเซสชันในเครื่องโดยตรง (สามารถรันคำสั่งได้) เปิดใช้เฉพาะสมาชิกที่ไว้ใจได้เท่านั้น",tr:"⚠️ DingTalk mesajları yerel oturumu doğrudan yönlendirir (komut çalıştırabilir). Yalnızca güvenilir üyeler için etkinleştirin.",uk:"⚠️ Повідомлення DingTalk безпосередньо керують локальним сеансом (можуть виконувати команди). Вмикайте лише для довірених учасників."},"ui.im.optional":{zh:"选填",en:"Optional","zh-TW":"選填",ko:"선택",ja:"任意",de:"Optional",es:"Opcional",fr:"Facultatif",it:"Facoltativo",da:"Valgfri",pl:"Opcjonalne",ru:"Необязательно",ar:"اختياري",no:"Valgfritt","pt-BR":"Opcional",th:"ไม่บังคับ",tr:"İsteğe bağlı",uk:"Необов'язково"},"ui.im.moreSettings":{zh:"高级设置",en:"Advanced settings","zh-TW":"進階設定",ko:"고급 설정",ja:"詳細設定",de:"Erweiterte Einstellungen",es:"Ajustes avanzados",fr:"Paramètres avancés",it:"Impostazioni avanzate",da:"Avancerede indstillinger",pl:"Ustawienia zaawansowane",ru:"Расширенные настройки",ar:"إعدادات متقدمة",no:"Avanserte innstillinger","pt-BR":"Configurações avançadas",th:"การตั้งค่าขั้นสูง",tr:"Gelişmiş ayarlar",uk:"Розширені налаштування"},"ui.im.secretSaved":{zh:"已保存(留空则不修改)",en:"Saved (leave blank to keep)","zh-TW":"已儲存(留空則不修改)",ko:"저장됨(비워 두면 유지)",ja:"保存済み(空欄なら変更しない)",de:"Gespeichert (leer lassen, um beizubehalten)",es:"Guardado (deja en blanco para mantener)",fr:"Enregistré (laisser vide pour conserver)",it:"Salvato (lascia vuoto per mantenere)",da:"Gemt (lad stå tomt for at beholde)",pl:"Zapisano (pozostaw puste, aby zachować)",ru:"Сохранено (оставьте пустым, чтобы не менять)",ar:"تم الحفظ (اتركه فارغًا للإبقاء عليه)",no:"Lagret (la stå tomt for å beholde)","pt-BR":"Salvo (deixe em branco para manter)",th:"บันทึกแล้ว (เว้นว่างเพื่อคงไว้)",tr:"Kaydedildi (korumak için boş bırakın)",uk:"Збережено (залиште порожнім, щоб не змінювати)"},"ui.im.save":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.im.saved":{zh:"已保存",en:"Saved","zh-TW":"已儲存",ko:"저장됨",ja:"保存しました",de:"Gespeichert",es:"Guardado",fr:"Enregistré",it:"Salvato",da:"Gemt",pl:"Zapisano",ru:"Сохранено",ar:"تم الحفظ",no:"Lagret","pt-BR":"Salvo",th:"บันทึกแล้ว",tr:"Kaydedildi",uk:"Збережено"},"ui.im.savedNoAllowlistWarn":{zh:"已保存。未设置发送者白名单:首个向机器人发消息的会话/群将被绑定,该会话内任何人都能无审批驱动本地会话执行命令。建议在「更多设置」中填写白名单。",en:"Saved. No sender allowlist set: the first conversation/group that messages the bot is bound, and anyone in it can drive the local session and run commands with no approval. Add an allowlist under More settings.","zh-TW":"已儲存。未設定傳送者白名單:首個向機器人發訊息的會話/群組將被綁定,該會話內任何人都能在無審批的情況下驅動本機會話執行命令。建議在「更多設定」中填寫白名單。",ko:"저장됨. 발신자 허용 목록이 없습니다: 봇에 처음 메시지를 보낸 대화/그룹이 바인딩되며, 그 안의 누구나 승인 없이 로컬 세션을 구동해 명령을 실행할 수 있습니다. '추가 설정'에서 허용 목록을 추가하세요.",ja:"保存しました。送信者の許可リストが未設定です。ボットに最初にメッセージを送った会話/グループがバインドされ、その中の誰でも承認なしにローカルセッションを操作してコマンドを実行できます。「詳細設定」で許可リストを追加してください。",de:"Gespeichert. Keine Absender-Zulassungsliste festgelegt: Die erste Konversation/Gruppe, die dem Bot schreibt, wird gebunden, und jeder darin kann die lokale Sitzung ohne Genehmigung steuern und Befehle ausführen. Fügen Sie unter Weitere Einstellungen eine Zulassungsliste hinzu.",es:"Guardado. No se ha definido una lista de remitentes permitidos: la primera conversación/grupo que escriba al bot queda vinculada y cualquiera en ella puede controlar la sesión local y ejecutar comandos sin aprobación. Añade una lista en Más ajustes.",fr:"Enregistré. Aucune liste d'autorisation d'expéditeurs définie : la première conversation/le premier groupe qui écrit au bot est lié, et n'importe qui dedans peut piloter la session locale et exécuter des commandes sans approbation. Ajoutez une liste dans Plus de paramètres.",it:"Salvato. Nessuna lista consentita di mittenti: la prima conversazione/gruppo che scrive al bot viene vincolata e chiunque al suo interno può guidare la sessione locale ed eseguire comandi senza approvazione. Aggiungi una lista in Altre impostazioni.",da:"Gemt. Ingen tilladelsesliste for afsendere: den første samtale/gruppe, der skriver til botten, bindes, og alle i den kan styre den lokale session og køre kommandoer uden godkendelse. Tilføj en liste under Flere indstillinger.",pl:"Zapisano. Brak listy dozwolonych nadawców: pierwsza rozmowa/grupa, która napisze do bota, zostaje powiązana, a każdy w niej może sterować lokalną sesją i uruchamiać polecenia bez zatwierdzenia. Dodaj listę w Więcej ustawień.",ru:"Сохранено. Список разрешённых отправителей не задан: первая беседа/группа, написавшая боту, привязывается, и любой в ней может управлять локальной сессией и выполнять команды без подтверждения. Добавьте список в разделе «Дополнительные настройки».",ar:"تم الحفظ. لم يتم تعيين قائمة مرسلين مسموح بهم: تُربط أول محادثة/مجموعة تراسل البوت، ويمكن لأي شخص فيها تشغيل الجلسة المحلية وتنفيذ الأوامر دون موافقة. أضف قائمة في «المزيد من الإعدادات».",no:"Lagret. Ingen tillatelsesliste for avsendere: den første samtalen/gruppen som skriver til boten bindes, og alle i den kan styre den lokale økten og kjøre kommandoer uten godkjenning. Legg til en liste under Flere innstillinger.","pt-BR":"Salvo. Nenhuma lista de remetentes permitidos definida: a primeira conversa/grupo que enviar mensagem ao bot é vinculada e qualquer um nela pode controlar a sessão local e executar comandos sem aprovação. Adicione uma lista em Mais configurações.",th:"บันทึกแล้ว ยังไม่ได้ตั้งรายชื่อผู้ส่งที่อนุญาต: การสนทนา/กลุ่มแรกที่ส่งข้อความถึงบอทจะถูกผูกไว้ และใครก็ตามในนั้นสามารถสั่งงานเซสชันในเครื่องและรันคำสั่งได้โดยไม่ต้องอนุมัติ เพิ่มรายชื่อได้ที่ การตั้งค่าเพิ่มเติม",tr:"Kaydedildi. Gönderen izin listesi ayarlanmadı: bota ilk mesaj atan görüşme/grup bağlanır ve içindeki herkes onay olmadan yerel oturumu yönetip komut çalıştırabilir. Daha fazla ayarlar bölümünden bir liste ekleyin.",uk:"Збережено. Список дозволених відправників не задано: перша розмова/група, що написала боту, прив'язується, і будь-хто в ній може керувати локальною сесією та виконувати команди без підтвердження. Додайте список у розділі «Додаткові налаштування»."},"ui.im.saveFailed":{zh:"保存失败",en:"Save failed","zh-TW":"儲存失敗",ko:"저장 실패",ja:"保存に失敗しました",de:"Speichern fehlgeschlagen",es:"Error al guardar",fr:"Échec de l'enregistrement",it:"Salvataggio non riuscito",da:"Lagring mislykkedes",pl:"Zapisywanie nie powiodło się",ru:"Не удалось сохранить",ar:"فشل الحفظ",no:"Lagring mislyktes","pt-BR":"Falha ao salvar",th:"บันทึกไม่สำเร็จ",tr:"Kaydetme başarısız",uk:"Не вдалося зберегти"},"ui.im.test":{zh:"测试连接",en:"Test connection","zh-TW":"測試連線",ko:"연결 테스트",ja:"接続テスト",de:"Verbindung testen",es:"Probar conexión",fr:"Tester la connexion",it:"Prova connessione",da:"Test forbindelse",pl:"Testuj połączenie",ru:"Проверить подключение",ar:"اختبار الاتصال",no:"Test tilkobling","pt-BR":"Testar conexão",th:"ทดสอบการเชื่อมต่อ",tr:"Bağlantıyı test et",uk:"Перевірити з'єднання"},"ui.im.testOk":{zh:"连接正常",en:"Connection OK","zh-TW":"連線正常",ko:"연결 정상",ja:"接続OK",de:"Verbindung OK",es:"Conexión correcta",fr:"Connexion OK",it:"Connessione OK",da:"Forbindelse OK",pl:"Połączenie OK",ru:"Подключение в норме",ar:"الاتصال سليم",no:"Tilkobling OK","pt-BR":"Conexão OK",th:"การเชื่อมต่อปกติ",tr:"Bağlantı tamam",uk:"З'єднання в нормі"},"ui.im.testFail":{zh:"连接失败",en:"Connection failed","zh-TW":"連線失敗",ko:"연결 실패",ja:"接続失敗",de:"Verbindung fehlgeschlagen",es:"Conexión fallida",fr:"Échec de la connexion",it:"Connessione non riuscita",da:"Forbindelse mislykkedes",pl:"Połączenie nie powiodło się",ru:"Сбой подключения",ar:"فشل الاتصال",no:"Tilkobling mislyktes","pt-BR":"Falha na conexão",th:"การเชื่อมต่อล้มเหลว",tr:"Bağlantı başarısız",uk:"Не вдалося підключитися"},"ui.im.statusConnected":{zh:"已连接",en:"Connected","zh-TW":"已連線",ko:"연결됨",ja:"接続済み",de:"Verbunden",es:"Conectado",fr:"Connecté",it:"Connesso",da:"Forbundet",pl:"Połączono",ru:"Подключено",ar:"متصل",no:"Tilkoblet","pt-BR":"Conectado",th:"เชื่อมต่อแล้ว",tr:"Bağlandı",uk:"Підключено"},"ui.im.start":{zh:"启动",en:"Start","zh-TW":"啟動",ko:"시작",ja:"起動",de:"Starten",es:"Iniciar",fr:"Démarrer",it:"Avvia",da:"Start",pl:"Uruchom",ru:"Запустить",ar:"بدء",no:"Start","pt-BR":"Iniciar",th:"เริ่ม",tr:"Başlat",uk:"Запустити"},"ui.im.stop":{zh:"停止",en:"Stop","zh-TW":"停止",ko:"중지",ja:"停止",de:"Stoppen",es:"Detener",fr:"Arrêter",it:"Arresta",da:"Stop",pl:"Zatrzymaj",ru:"Остановить",ar:"إيقاف",no:"Stopp","pt-BR":"Parar",th:"หยุด",tr:"Durdur",uk:"Зупинити"},"ui.im.startFailed":{zh:"启动失败:worker 未在限定时间内就绪",en:"Start failed: worker did not become ready in time","zh-TW":"啟動失敗:worker 未在限定時間內就緒",ko:"시작 실패: worker가 제한 시간 내에 준비되지 않았습니다",ja:"起動失敗:worker が制限時間内に準備できませんでした",de:"Start fehlgeschlagen: Worker wurde nicht rechtzeitig bereit",es:"Error al iniciar: el worker no estuvo listo a tiempo",fr:"Échec du démarrage : le worker n'a pas été prêt à temps",it:"Avvio non riuscito: il worker non è diventato pronto in tempo",da:"Start mislykkedes: worker blev ikke klar i tide",pl:"Uruchomienie nie powiodło się: worker nie był gotowy na czas",ru:"Не удалось запустить: worker не стал готов вовремя",ar:"فشل البدء: لم يصبح الـ worker جاهزًا في الوقت المحدد",no:"Start mislyktes: worker ble ikke klar i tide","pt-BR":"Falha ao iniciar: o worker não ficou pronto a tempo",th:"เริ่มไม่สำเร็จ: worker ไม่พร้อมภายในเวลาที่กำหนด",tr:"Başlatma başarısız: worker zamanında hazır olmadı",uk:"Не вдалося запустити: worker не став готовим вчасно"},"ui.im.statusBooting":{zh:"启动中…",en:"Starting…","zh-TW":"啟動中…",ko:"시작 중…",ja:"起動中…",de:"Wird gestartet…",es:"Iniciando…",fr:"Démarrage…",it:"Avvio…",da:"Starter…",pl:"Uruchamianie…",ru:"Запуск…",ar:"جارٍ البدء…",no:"Starter…","pt-BR":"Iniciando…",th:"กำลังเริ่ม…",tr:"Başlatılıyor…",uk:"Запуск…"},"ui.im.statusHung":{zh:"无响应",en:"Not responding","zh-TW":"無回應",ko:"응답 없음",ja:"応答なし",de:"Reagiert nicht",es:"Sin respuesta",fr:"Ne répond pas",it:"Non risponde",da:"Svarer ikke",pl:"Brak odpowiedzi",ru:"Не отвечает",ar:"لا يستجيب",no:"Svarer ikke","pt-BR":"Sem resposta",th:"ไม่ตอบสนอง",tr:"Yanıt vermiyor",uk:"Не відповідає"},"ui.im.statusDisconnected":{zh:"未连接",en:"Disconnected","zh-TW":"未連線",ko:"연결 안 됨",ja:"未接続",de:"Getrennt",es:"Desconectado",fr:"Déconnecté",it:"Disconnesso",da:"Afbrudt",pl:"Rozłączono",ru:"Не подключено",ar:"غير متصل",no:"Frakoblet","pt-BR":"Desconectado",th:"ไม่ได้เชื่อมต่อ",tr:"Bağlı değil",uk:"Не підключено"},"ui.im.statusRunning":{zh:"运行中,连接中…",en:"Running, connecting…","zh-TW":"執行中,連線中…",ko:"실행 중, 연결 중…",ja:"実行中、接続中…",de:"Läuft, verbinde…",es:"En ejecución, conectando…",fr:"En cours, connexion…",it:"In esecuzione, connessione…",da:"Kører, forbinder…",pl:"Działa, łączenie…",ru:"Запущено, подключение…",ar:"قيد التشغيل، جارٍ الاتصال…",no:"Kjører, kobler til…","pt-BR":"Em execução, conectando…",th:"กำลังทำงาน กำลังเชื่อมต่อ…",tr:"Çalışıyor, bağlanıyor…",uk:"Запущено, підключення…"},"ui.im.statusStopped":{zh:"已停止",en:"Stopped","zh-TW":"已停止",ko:"중지됨",ja:"停止",de:"Gestoppt",es:"Detenido",fr:"Arrêté",it:"Arrestato",da:"Stoppet",pl:"Zatrzymano",ru:"Остановлено",ar:"متوقف",no:"Stoppet","pt-BR":"Parado",th:"หยุดแล้ว",tr:"Durduruldu",uk:"Зупинено"},"ui.imRecord.title":{zh:"对话记录",en:"Conversation Record","zh-TW":"對話記錄",ko:"대화 기록",ja:"会話履歴",de:"Gesprächsverlauf",es:"Registro de conversación",fr:"Historique de conversation",it:"Cronologia conversazione",da:"Samtalelog",pl:"Zapis rozmowy",ru:"Запись разговора",ar:"سجل المحادثة",no:"Samtalelogg","pt-BR":"Registro de conversa",th:"บันทึกการสนทนา",tr:"Konuşma kaydı",uk:"Запис розмови"},"ui.imRecord.refresh":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로 고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.imRecord.config":{zh:"配置",en:"Configure","zh-TW":"設定",ko:"설정",ja:"設定",de:"Konfigurieren",es:"Configurar",fr:"Configurer",it:"Configura",da:"Konfigurer",pl:"Konfiguruj",ru:"Настроить",ar:"إعداد",no:"Konfigurer","pt-BR":"Configurar",th:"ตั้งค่า",tr:"Yapılandır",uk:"Налаштувати"},"ui.imRecord.loading":{zh:"正在加载对话…",en:"Loading conversation…","zh-TW":"正在載入對話…",ko:"대화 불러오는 중…",ja:"会話を読み込み中…",de:"Gespräch wird geladen…",es:"Cargando conversación…",fr:"Chargement de la conversation…",it:"Caricamento conversazione…",da:"Indlæser samtale…",pl:"Ładowanie rozmowy…",ru:"Загрузка разговора…",ar:"جارٍ تحميل المحادثة…",no:"Laster samtale…","pt-BR":"Carregando conversa…",th:"กำลังโหลดการสนทนา…",tr:"Konuşma yükleniyor…",uk:"Завантаження розмови…"},"ui.imRecord.empty":{zh:"暂无对话记录",en:"No conversation yet","zh-TW":"尚無對話記錄",ko:"아직 대화가 없습니다",ja:"まだ会話がありません",de:"Noch kein Gespräch",es:"Aún no hay conversación",fr:"Pas encore de conversation",it:"Nessuna conversazione",da:"Ingen samtale endnu",pl:"Brak rozmowy",ru:"Пока нет разговора",ar:"لا توجد محادثة بعد",no:"Ingen samtale ennå","pt-BR":"Ainda sem conversa",th:"ยังไม่มีการสนทนา",tr:"Henüz konuşma yok",uk:"Ще немає розмови"},"ui.imRecord.loadFailed":{zh:"加载对话失败",en:"Failed to load conversation","zh-TW":"載入對話失敗",ko:"대화 불러오기 실패",ja:"会話の読み込みに失敗しました",de:"Gespräch konnte nicht geladen werden",es:"Error al cargar la conversación",fr:"Échec du chargement de la conversation",it:"Caricamento conversazione non riuscito",da:"Kunne ikke indlæse samtale",pl:"Nie udało się załadować rozmowy",ru:"Не удалось загрузить разговор",ar:"فشل تحميل المحادثة",no:"Kunne ikke laste samtale","pt-BR":"Falha ao carregar conversa",th:"โหลดการสนทนาไม่สำเร็จ",tr:"Konuşma yüklenemedi",uk:"Не вдалося завантажити розмову"},"ui.im.statusError":{zh:"错误",en:"Error","zh-TW":"錯誤",ko:"오류",ja:"エラー",de:"Fehler",es:"Error",fr:"Erreur",it:"Errore",da:"Fejl",pl:"Błąd",ru:"Ошибка",ar:"خطأ",no:"Feil","pt-BR":"Erro",th:"ข้อผิดพลาด",tr:"Hata",uk:"Помилка"},"ui.im.ackCard":{zh:"即时确认",en:"Instant acknowledgment","zh-TW":"即時確認",ko:"즉시 확인",ja:"即時確認",de:"Sofortige Bestätigung",es:"Confirmación instantánea",fr:"Confirmation instantanée",it:"Conferma istantanea",da:"Øjeblikkelig bekræftelse",pl:"Natychmiastowe potwierdzenie",ru:"Мгновенное подтверждение",ar:"تأكيد فوري",no:"Umiddelbar bekreftelse","pt-BR":"Confirmação instantânea",th:"การตอบรับทันที",tr:"Anında onay",uk:"Миттєве підтвердження"},"ui.im.ackCardHelp":{zh:"收到消息时立刻发送状态反馈,完成后原地更新为回复。",en:"Send immediate status feedback when a message is received; update in-place when the reply is ready.","zh-TW":"收到訊息時立刻發送狀態回饋,完成後原地更新為回覆。",ko:"메시지 수신 시 즉시 상태 피드백을 보내고, 답변이 준비되면 제자리에서 업데이트합니다.",ja:"メッセージ受信時に即時ステータスを送信し、回答準備後にその場で更新します。",de:"Sofort Status-Feedback bei Nachrichteneingang senden; bei fertiger Antwort direkt aktualisieren.",es:"Enviar respuesta de estado inmediata al recibir un mensaje; actualizar en el lugar cuando la respuesta esté lista.",fr:"Envoyer un retour d'état immédiat à la réception d'un message ; mettre à jour sur place quand la réponse est prête.",it:"Invia feedback di stato immediato alla ricezione del messaggio; aggiorna sul posto quando la risposta è pronta.",da:"Send øjeblikkelig statusfeedback ved modtagelse af besked; opdater på stedet når svaret er klar.",pl:"Wyślij natychmiastową informację zwrotną po otrzymaniu wiadomości; zaktualizuj na miejscu, gdy odpowiedź będzie gotowa.",ru:"Отправлять мгновенный статус при получении сообщения; обновлять на месте, когда ответ будет готов.",ar:"أرسل تأكيدًا فوريًا عند استلام رسالة؛ حدّث في مكانه عندما يكون الرد جاهزًا.",no:"Send umiddelbar statusmelding ved mottatt melding; oppdater på stedet når svaret er klart.","pt-BR":"Enviar feedback de status imediato ao receber mensagem; atualizar no local quando a resposta estiver pronta.",th:"ส่งการตอบรับสถานะทันทีเมื่อได้รับข้อความ อัปเดตเมื่อคำตอบพร้อม",tr:"Mesaj alındığında anında durum geri bildirimi gönder; yanıt hazır olduğunda yerinde güncelle.",uk:"Надсилати миттєвий статус при отриманні повідомлення; оновлювати на місці, коли відповідь готова."},"ui.im.aiCard":{zh:"AI 卡片流式回复",en:"AI card streaming reply","zh-TW":"AI 卡片串流回覆",ko:"AI 카드 스트리밍 응답",ja:"AI カードのストリーミング返信",de:"KI-Karte mit Streaming-Antwort",es:"Respuesta en streaming en tarjeta de IA",fr:"Réponse en streaming dans la carte IA",it:"Risposta in streaming nella scheda IA",da:"AI-kort med streamingsvar",pl:"Odpowiedź strumieniowa w karcie AI",ru:"Потоковый ответ в AI-карточке",ar:"رد متدفق في بطاقة الذكاء الاصطناعي",no:"AI-kort med strømmesvar","pt-BR":"Resposta em streaming no cartão de IA",th:"ตอบแบบสตรีมในการ์ด AI",tr:"AI kartında akışlı yanıt",uk:"Потокова відповідь у AI-картці"},"ui.im.aiCardHelp":{zh:"在卡片内逐字流式呈现回复,而非完成后整段替换。需开启「即时确认」;平台不支持流式时会安全回退为整段替换。",en:"Stream the reply character-by-character into the card instead of replacing it all at once when finished. Requires Instant acknowledgment; if streaming isn't available it safely falls back to a single replace.","zh-TW":"在卡片內逐字串流呈現回覆,而非完成後整段替換。需開啟「即時確認」;平台不支援串流時會安全回退為整段替換。",ko:"완료 후 한 번에 교체하는 대신 카드에 답변을 한 글자씩 스트리밍합니다. '즉시 확인'이 필요하며, 스트리밍을 사용할 수 없으면 한 번에 교체로 안전하게 대체됩니다.",ja:"完了後に一括置換するのではなく、カード内に返信を一文字ずつストリーミング表示します。「即時確認」が必要です。ストリーミングが使えない場合は一括置換に安全にフォールバックします。",de:"Antwort Zeichen für Zeichen in die Karte streamen, statt sie am Ende komplett zu ersetzen. Erfordert Sofortige Bestätigung; ist Streaming nicht verfügbar, erfolgt sicher ein einmaliges Ersetzen.",es:"Transmite la respuesta carácter a carácter en la tarjeta en lugar de reemplazarla toda al finalizar. Requiere Confirmación instantánea; si el streaming no está disponible, recurre de forma segura a un único reemplazo.",fr:"Diffuse la réponse caractère par caractère dans la carte au lieu de tout remplacer à la fin. Nécessite la Confirmation instantanée ; si le streaming n'est pas disponible, repli sûr vers un remplacement unique.",it:"Trasmette la risposta carattere per carattere nella scheda invece di sostituirla tutta alla fine. Richiede la Conferma istantanea; se lo streaming non è disponibile, ripiega in sicurezza su una singola sostituzione.",da:"Stream svaret tegn for tegn ind i kortet i stedet for at erstatte det hele på én gang til sidst. Kræver Øjeblikkelig bekræftelse; hvis streaming ikke er muligt, falder det sikkert tilbage til en enkelt erstatning.",pl:"Przesyła odpowiedź znak po znaku do karty zamiast zastępować ją w całości po zakończeniu. Wymaga Natychmiastowego potwierdzenia; jeśli streaming jest niedostępny, bezpiecznie wraca do pojedynczej zamiany.",ru:"Передаёт ответ посимвольно в карточку вместо полной замены по завершении. Требуется «Мгновенное подтверждение»; если потоковая передача недоступна, выполняется безопасный откат к разовой замене.",ar:"يبثّ الرد حرفًا بحرف داخل البطاقة بدلًا من استبداله دفعة واحدة عند الانتهاء. يتطلب التأكيد الفوري؛ وإذا لم يكن البث متاحًا فإنه يعود بأمان إلى استبدال واحد.",no:"Strøm svaret tegn for tegn inn i kortet i stedet for å erstatte alt på én gang når det er ferdig. Krever Umiddelbar bekreftelse; hvis strømming ikke er tilgjengelig, faller det trygt tilbake til én enkelt erstatning.","pt-BR":"Transmite a resposta caractere por caractere no cartão em vez de substituí-la toda de uma vez ao finalizar. Requer Confirmação instantânea; se o streaming não estiver disponível, recorre com segurança a uma única substituição.",th:'สตรีมคำตอบทีละอักขระลงในการ์ดแทนการแทนที่ทั้งหมดเมื่อเสร็จ ต้องเปิด "การตอบรับทันที" หากสตรีมไม่ได้จะถอยกลับไปแทนที่ครั้งเดียวอย่างปลอดภัย',tr:"Yanıtı bittiğinde tek seferde değiştirmek yerine karta karakter karakter akıtır. Anında onay gerektirir; akış kullanılamıyorsa güvenli biçimde tek seferlik değiştirmeye döner.",uk:"Передає відповідь посимвольно в картку замість повної заміни після завершення. Потрібне «Миттєве підтвердження»; якщо потокова передача недоступна, виконується безпечний відкат до одноразової заміни."},"ui.dingtalk.cardTemplateId":{zh:"卡片模板 ID",en:"Card Template ID","zh-TW":"卡片範本 ID",ko:"카드 템플릿 ID",ja:"カードテンプレートID",de:"Karten-Vorlagen-ID",es:"ID de plantilla de tarjeta",fr:"ID du modèle de carte",it:"ID modello scheda",da:"Kortskabelon-ID",pl:"ID szablonu karty",ru:"ID шаблона карточки",ar:"معرّف قالب البطاقة",no:"Kortmal-ID","pt-BR":"ID do modelo de cartão",th:"ID เทมเพลตการ์ด",tr:"Kart şablonu kimliği",uk:"ID шаблону картки"},"ui.dingtalk.cardTemplateIdHelp":{zh:"在钉钉开放平台注册的互动卡片模板 ID(可选,留空则用文本确认)。",en:"Interactive Card template ID from the DingTalk Open Platform (optional — leave empty for plain-text acknowledgment).","zh-TW":"在釘釘開放平台註冊的互動卡片範本 ID(選填,留空則用文字確認)。",ko:"DingTalk 오픈 플랫폼의 인터랙티브 카드 템플릿 ID (선택 — 비워두면 텍스트 확인 사용).",ja:"DingTalk オープンプラットフォームのインタラクティブカードテンプレートID(任意 — 空欄ならテキスト確認を使用)。",de:"Interaktive-Karten-Vorlagen-ID aus der DingTalk Open Platform (optional — leer lassen für Text-Bestätigung).",es:"ID de plantilla de tarjeta interactiva de la plataforma abierta de DingTalk (opcional — dejar vacío para confirmación de texto).",fr:"ID du modèle de carte interactive de la plateforme ouverte DingTalk (optionnel — laisser vide pour une confirmation texte).",it:"ID modello scheda interattiva dalla piattaforma aperta DingTalk (opzionale — lasciare vuoto per conferma testuale).",da:"Interaktivt kortskabelon-ID fra DingTalk Open Platform (valgfrit — lad stå tomt for tekstbekræftelse).",pl:"ID szablonu interaktywnej karty z platformy otwartej DingTalk (opcjonalne — puste = potwierdzenie tekstowe).",ru:"ID шаблона интерактивной карточки с открытой платформы DingTalk (необязательно — пустое = текстовое подтверждение).",ar:"معرّف قالب البطاقة التفاعلية من منصة DingTalk المفتوحة (اختياري — اتركه فارغًا للتأكيد النصي).",no:"Interaktivt kortmal-ID fra DingTalk Open Platform (valgfritt — la stå tomt for tekstbekreftelse).","pt-BR":"ID do modelo de cartão interativo da Plataforma Aberta DingTalk (opcional — deixe vazio para confirmação de texto).",th:"ID เทมเพลตการ์ดแบบโต้ตอบจาก DingTalk Open Platform (ไม่บังคับ — เว้นว่างเพื่อใช้การยืนยันแบบข้อความ)",tr:"DingTalk Açık Platform'daki etkileşimli kart şablonu kimliği (isteğe bağlı — metin onayı için boş bırakın).",uk:"ID шаблону інтерактивної картки з відкритої платформи DingTalk (необов'язково — порожнє = текстове підтвердження)."},"ui.dingtalk.aiCardTemplateId":{zh:"AI 卡片模板 ID(流式)",en:"AI Card Template ID (streaming)","zh-TW":"AI 卡片範本 ID(串流)",ko:"AI 카드 템플릿 ID (스트리밍)",ja:"AIカードテンプレートID(ストリーミング)",de:"KI-Karten-Vorlagen-ID (Streaming)",es:"ID de plantilla de tarjeta IA (streaming)",fr:"ID du modèle de carte IA (flux)",it:"ID modello scheda IA (streaming)",da:"AI-kortskabelon-ID (streaming)",pl:"ID szablonu karty AI (strumieniowo)",ru:"ID шаблона AI-карточки (потоковая передача)",ar:"معرّف قالب بطاقة الذكاء الاصطناعي (بث)",no:"AI-kortmal-ID (strømming)","pt-BR":"ID do modelo de cartão de IA (streaming)",th:"ID เทมเพลตการ์ด AI (สตรีม)",tr:"AI kart şablonu kimliği (akış)",uk:"ID шаблону AI-картки (потокова передача)"},"ui.dingtalk.aiCardTemplateIdHelp":{zh:"AI 卡片场景模板 ID(模板需声明 content 与 flowStatus 变量)。填写后回复会逐字流式呈现,并用 flowStatus 状态标签替代「[收到]」文本。需授予 Card.Instance.Write 与 Card.Streaming.Write 权限。留空则用上面的普通卡片/纯文本。若建卡失败会静默回退到上面的普通卡片(Card Template ID),仅当两者都没配时才退到纯文本。",en:"AI-card scene template ID (template must declare content + flowStatus variables). When set, replies stream character-by-character with a flowStatus status tag, replacing the “[received]” text. Requires the Card.Instance.Write + Card.Streaming.Write permissions. Leave empty to use the plain card / text above. If creation fails it silently falls back to the plain Card Template ID above; plain text only if neither is set.","zh-TW":"AI 卡片場景範本 ID(範本需宣告 content 與 flowStatus 變數)。填寫後回覆會逐字串流呈現,並以 flowStatus 狀態標籤取代「[收到]」文字。需授予 Card.Instance.Write 與 Card.Streaming.Write 權限。留空則用上方的普通卡片/純文字。若建卡失敗會靜默回退到上方的普通卡片(Card Template ID),僅當兩者都沒配時才退到純文字。",ko:"AI 카드 장면 템플릿 ID(content 및 flowStatus 변수를 선언해야 함). 설정하면 회신이 문자 단위로 스트리밍되고 flowStatus 상태 태그가 “[수신]” 텍스트를 대체합니다. Card.Instance.Write 및 Card.Streaming.Write 권한이 필요합니다. 비워두면 위의 일반 카드/텍스트를 사용합니다. 생성에 실패하면 위의 일반 카드(Card Template ID)로 자동 대체되며, 둘 다 없을 때만 일반 텍스트로 표시됩니다.",ja:"AIカードシーンのテンプレートID(テンプレートに content と flowStatus 変数の宣言が必要)。設定すると返信が文字単位でストリーミングされ、flowStatus ステータスタグが「[受信]」テキストを置き換えます。Card.Instance.Write と Card.Streaming.Write 権限が必要です。空欄なら上の通常カード/テキストを使用します。作成に失敗した場合は上の通常カード(Card Template ID)へ自動的にフォールバックし、どちらも未設定の場合のみテキストになります。",de:"KI-Karten-Szenen-Vorlagen-ID (Vorlage muss die Variablen content + flowStatus deklarieren). Wenn gesetzt, werden Antworten zeichenweise gestreamt und ein flowStatus-Status-Tag ersetzt den Text „[empfangen]“. Erfordert die Berechtigungen Card.Instance.Write + Card.Streaming.Write. Leer lassen, um die obige einfache Karte/Text zu verwenden. Schlägt die Erstellung fehl, wird stillschweigend auf die einfache Karten-Vorlagen-ID oben zurückgegriffen; reiner Text nur, wenn keine gesetzt ist.",es:"ID de plantilla de escena de tarjeta IA (la plantilla debe declarar las variables content + flowStatus). Cuando se establece, las respuestas se transmiten carácter por carácter con una etiqueta de estado flowStatus, reemplazando el texto «[recibido]». Requiere los permisos Card.Instance.Write + Card.Streaming.Write. Déjelo vacío para usar la tarjeta/texto simple de arriba. Si la creación falla, recurre silenciosamente al ID de plantilla de tarjeta simple de arriba; texto plano solo si no hay ninguno.",fr:"ID du modèle de scène de carte IA (le modèle doit déclarer les variables content + flowStatus). Une fois défini, les réponses s'affichent caractère par caractère avec une étiquette d'état flowStatus, remplaçant le texte « [reçu] ». Nécessite les autorisations Card.Instance.Write + Card.Streaming.Write. Laisser vide pour utiliser la carte/le texte simple ci-dessus. Si la création échoue, bascule silencieusement vers l'ID de modèle de carte simple ci-dessus ; texte brut seulement si aucun n'est défini.",it:"ID modello scena scheda IA (il modello deve dichiarare le variabili content + flowStatus). Se impostato, le risposte vengono trasmesse carattere per carattere con un tag di stato flowStatus, sostituendo il testo «[ricevuto]». Richiede i permessi Card.Instance.Write + Card.Streaming.Write. Lasciare vuoto per usare la scheda/il testo semplice sopra. Se la creazione fallisce, ripiega silenziosamente sull'ID modello scheda semplice sopra; testo semplice solo se nessuno è impostato.",da:"AI-kort-scene-skabelon-ID (skabelonen skal deklarere variablerne content + flowStatus). Når den er angivet, streames svar tegn for tegn med et flowStatus-statusmærke, der erstatter teksten “[modtaget]”. Kræver tilladelserne Card.Instance.Write + Card.Streaming.Write. Lad stå tomt for at bruge det almindelige kort/tekst ovenfor. Hvis oprettelsen mislykkes, falder den stille tilbage til det almindelige kortskabelon-ID ovenfor; almindelig tekst kun hvis ingen er angivet.",pl:"ID szablonu sceny karty AI (szablon musi deklarować zmienne content + flowStatus). Po ustawieniu odpowiedzi są przesyłane strumieniowo znak po znaku z etykietą stanu flowStatus, zastępując tekst „[odebrano]”. Wymaga uprawnień Card.Instance.Write + Card.Streaming.Write. Pozostaw puste, aby użyć zwykłej karty/tekstu powyżej. Jeśli tworzenie się nie powiedzie, następuje ciche przejście na zwykły identyfikator szablonu karty powyżej; zwykły tekst tylko gdy żaden nie jest ustawiony.",ru:"ID шаблона сцены AI-карточки (шаблон должен объявлять переменные content + flowStatus). При установке ответы передаются посимвольно с тегом статуса flowStatus, заменяя текст «[получено]». Требуются разрешения Card.Instance.Write + Card.Streaming.Write. Оставьте пустым, чтобы использовать обычную карточку/текст выше. Если создание не удалось, происходит тихий откат к обычному ID шаблона карточки выше; обычный текст — только если ни один не задан.",ar:"معرّف قالب مشهد بطاقة الذكاء الاصطناعي (يجب أن يعلن القالب متغيّري content و flowStatus). عند التعيين، تُبَثّ الردود حرفًا تلو الآخر مع علامة حالة flowStatus، لتحل محل نص «[تم الاستلام]». يتطلب أذونات Card.Instance.Write و Card.Streaming.Write. اتركه فارغًا لاستخدام البطاقة/النص العادي أعلاه. إذا فشل الإنشاء، يعود تلقائيًا إلى معرّف قالب البطاقة العادي أعلاه؛ ويُستخدم النص العادي فقط إذا لم يُضبط أيٌّ منهما.",no:"AI-kort-scene-mal-ID (malen må deklarere variablene content + flowStatus). Når den er angitt, strømmes svar tegn for tegn med et flowStatus-statusmerke som erstatter teksten “[mottatt]”. Krever tillatelsene Card.Instance.Write + Card.Streaming.Write. La stå tomt for å bruke det vanlige kortet/teksten ovenfor. Hvis opprettelsen mislykkes, faller den stille tilbake til det vanlige kortmal-ID-en over; ren tekst bare hvis ingen er angitt.","pt-BR":"ID do modelo de cena de cartão de IA (o modelo deve declarar as variáveis content + flowStatus). Quando definido, as respostas são transmitidas caractere por caractere com uma tag de status flowStatus, substituindo o texto “[recebido]”. Requer as permissões Card.Instance.Write + Card.Streaming.Write. Deixe vazio para usar o cartão/texto simples acima. Se a criação falhar, recai silenciosamente para o ID de modelo de cartão simples acima; texto puro apenas se nenhum estiver definido.",th:"ID เทมเพลตฉากการ์ด AI (เทมเพลตต้องประกาศตัวแปร content และ flowStatus) เมื่อกำหนดแล้ว การตอบกลับจะสตรีมทีละตัวอักษรพร้อมแท็กสถานะ flowStatus แทนข้อความ “[ได้รับแล้ว]” ต้องมีสิทธิ์ Card.Instance.Write และ Card.Streaming.Write เว้นว่างเพื่อใช้การ์ด/ข้อความธรรมดาด้านบน หากสร้างไม่สำเร็จจะถอยกลับไปใช้ Card Template ID ปกติด้านบนแบบเงียบ ๆ และใช้ข้อความล้วนเฉพาะเมื่อไม่ได้ตั้งทั้งสองอย่าง",tr:"AI kart sahne şablonu kimliği (şablon content + flowStatus değişkenlerini bildirmelidir). Ayarlandığında yanıtlar bir flowStatus durum etiketiyle karakter karakter akar ve “[alındı]” metninin yerini alır. Card.Instance.Write + Card.Streaming.Write izinlerini gerektirir. Yukarıdaki düz kartı/metni kullanmak için boş bırakın. Oluşturma başarısız olursa sessizce yukarıdaki düz Kart Şablonu Kimliğine geçer; yalnızca ikisi de ayarlı değilse düz metne döner.",uk:"ID шаблону сцени AI-картки (шаблон має оголошувати змінні content + flowStatus). Якщо задано, відповіді передаються посимвольно з тегом статусу flowStatus, замінюючи текст «[отримано]». Потрібні дозволи Card.Instance.Write + Card.Streaming.Write. Залиште порожнім, щоб використовувати звичайну картку/текст вище. Якщо створення не вдалося, відбувається тихий відкат до звичайного ID шаблону картки вище; звичайний текст — лише якщо жоден не задано."},"ui.dingtalk.aiCardStreamKey":{zh:"AI 卡片流式变量名(默认 content)",en:"AI Card streaming variable name (default: content)","zh-TW":"AI 卡片串流變數名(預設 content)",ko:"AI 카드 스트리밍 변수 이름 (기본값: content)",ja:"AIカード ストリーミング変数名(既定: content)",de:"KI-Karten-Streaming-Variablenname (Standard: content)",es:"Nombre de variable de streaming de tarjeta IA (predeterminado: content)",fr:"Nom de la variable de flux de la carte IA (par défaut : content)",it:"Nome della variabile di streaming della scheda IA (predefinito: content)",da:"Navn på AI-kort-streamingvariabel (standard: content)",pl:"Nazwa zmiennej strumieniowej karty AI (domyślnie: content)",ru:"Имя потоковой переменной AI-карточки (по умолчанию: content)",ar:"اسم متغير البث لبطاقة الذكاء الاصطناعي (الافتراضي: content)",no:"Navn på AI-kort-strømmevariabel (standard: content)","pt-BR":"Nome da variável de streaming do cartão de IA (padrão: content)",th:"ชื่อตัวแปรสตรีมของการ์ด AI (ค่าเริ่มต้น: content)",tr:"AI kart akış değişkeni adı (varsayılan: content)",uk:"Назва потокової змінної AI-картки (за замовчуванням: content)"},"ui.dingtalk.aiCardStreamKeyHelp":{zh:"AI 卡片模板里那个「流式 Markdown 变量」的名字。留空用默认的 content;仅当你的模板把该变量命名为别的名字时才需要填。注:流式有节流,很短或秒回的消息可能不展示逐字、直接一次性出最终结果(结果仍正确)。",en:"Name of the streaming markdown variable in your AI-card template. Leave empty to use the default “content”; set it only if your template names that variable differently. Note: streaming is throttled, so very short or instant replies may appear all at once without the typewriter effect (the final result is still correct).","zh-TW":"AI 卡片範本裡那個「串流 Markdown 變數」的名字。留空用預設的 content;僅當你的範本把該變數命名為別的名字時才需要填。註:串流有節流,很短或秒回的訊息可能不展示逐字、直接一次性出最終結果(結果仍正確)。",ko:"AI 카드 템플릿의 스트리밍 마크다운 변수 이름입니다. 비워두면 기본값 “content”를 사용합니다. 템플릿에서 해당 변수 이름이 다를 때만 설정하세요. 참고: 스트리밍에는 제한이 있어 매우 짧거나 즉시 오는 답장은 타자기 효과 없이 한 번에 표시될 수 있습니다(최종 결과는 정확함).",ja:"AIカードテンプレート内のストリーミング Markdown 変数の名前です。空欄なら既定の content を使用します。テンプレートでこの変数名が異なる場合のみ設定してください。注:ストリーミングには制限があり、非常に短い・即時の返信はタイプライター表示なしで一度に表示される場合があります(最終結果は正しい)。",de:"Name der Streaming-Markdown-Variable in Ihrer KI-Karten-Vorlage. Leer lassen für den Standard „content“; nur setzen, wenn Ihre Vorlage diese Variable anders benennt. Hinweis: Streaming ist gedrosselt, daher erscheinen sehr kurze oder sofortige Antworten ggf. ohne Schreibmaschineneffekt auf einmal (das Endergebnis ist dennoch korrekt).",es:"Nombre de la variable markdown de streaming en tu plantilla de tarjeta IA. Déjalo vacío para usar el valor predeterminado «content»; configúralo solo si tu plantilla nombra esa variable de otra forma. Nota: el streaming está limitado, por lo que las respuestas muy cortas o instantáneas pueden aparecer de golpe sin el efecto máquina de escribir (el resultado final es correcto).",fr:"Nom de la variable markdown de flux dans votre modèle de carte IA. Laissez vide pour utiliser « content » par défaut ; ne le définissez que si votre modèle nomme cette variable différemment. Remarque : le flux est limité, donc les réponses très courtes ou instantanées peuvent s'afficher d'un coup sans l'effet machine à écrire (le résultat final reste correct).",it:"Nome della variabile markdown di streaming nel tuo modello di scheda IA. Lascia vuoto per usare il valore predefinito «content»; impostalo solo se il tuo modello nomina quella variabile in modo diverso. Nota: lo streaming è limitato, quindi le risposte molto brevi o istantanee possono comparire tutte in una volta senza l'effetto macchina da scrivere (il risultato finale è comunque corretto).",da:"Navnet på den streamende markdown-variabel i din AI-kortskabelon. Lad stå tomt for at bruge standarden “content”; angiv det kun, hvis din skabelon navngiver variablen anderledes. Bemærk: streaming er begrænset, så meget korte eller øjeblikkelige svar kan vises på én gang uden skrivemaskineeffekt (slutresultatet er stadig korrekt).",pl:"Nazwa strumieniowej zmiennej markdown w szablonie karty AI. Pozostaw puste, aby użyć domyślnej „content”; ustaw tylko, jeśli Twój szablon nazywa tę zmienną inaczej. Uwaga: streaming jest ograniczony, więc bardzo krótkie lub natychmiastowe odpowiedzi mogą pojawić się od razu bez efektu maszyny do pisania (wynik końcowy jest poprawny).",ru:"Имя потоковой markdown-переменной в вашем шаблоне AI-карточки. Оставьте пустым для значения по умолчанию «content»; задавайте только если в вашем шаблоне эта переменная названа иначе. Примечание: потоковая передача ограничена, поэтому очень короткие или мгновенные ответы могут появиться сразу без эффекта печатной машинки (итоговый результат всё равно правильный).",ar:"اسم متغيّر Markdown البثّي في قالب بطاقة الذكاء الاصطناعي. اتركه فارغًا لاستخدام الافتراضي «content»؛ اضبطه فقط إذا كان قالبك يسمّي هذا المتغيّر باسم مختلف. ملاحظة: البث مقيّد، لذا قد تظهر الردود القصيرة جدًا أو الفورية دفعة واحدة دون تأثير الآلة الكاتبة (النتيجة النهائية صحيحة).",no:"Navnet på den strømmende markdown-variabelen i AI-kortmalen din. La stå tomt for å bruke standarden “content”; angi det bare hvis malen din navngir variabelen annerledes. Merk: strømming er begrenset, så svært korte eller umiddelbare svar kan vises på én gang uten skrivemaskineeffekt (sluttresultatet er likevel riktig).","pt-BR":"Nome da variável markdown de streaming no seu modelo de cartão de IA. Deixe vazio para usar o padrão “content”; defina apenas se o seu modelo nomear essa variável de forma diferente. Observação: o streaming é limitado, então respostas muito curtas ou instantâneas podem aparecer de uma vez sem o efeito de máquina de escrever (o resultado final está correto).",th:"ชื่อตัวแปร markdown แบบสตรีมในเทมเพลตการ์ด AI ของคุณ เว้นว่างเพื่อใช้ค่าเริ่มต้น “content” ตั้งค่าเฉพาะเมื่อเทมเพลตของคุณตั้งชื่อตัวแปรนั้นต่างออกไป หมายเหตุ: สตรีมมีการจำกัดอัตรา ข้อความที่สั้นมากหรือตอบทันทีอาจแสดงครั้งเดียวโดยไม่มีเอฟเฟกต์พิมพ์ดีด (ผลลัพธ์สุดท้ายยังถูกต้อง)",tr:"AI kart şablonunuzdaki akışlı markdown değişkeninin adı. Varsayılan “content” için boş bırakın; yalnızca şablonunuz bu değişkeni farklı adlandırıyorsa ayarlayın. Not: akış sınırlandırılmıştır, bu nedenle çok kısa veya anında yanıtlar daktilo efekti olmadan tek seferde görünebilir (sonuç yine de doğrudur).",uk:"Назва потокової markdown-змінної у вашому шаблоні AI-картки. Залиште порожнім для значення за замовчуванням «content»; задавайте лише якщо ваш шаблон називає цю змінну інакше. Примітка: потокова передача обмежена, тож дуже короткі або миттєві відповіді можуть з'явитися одразу без ефекту друкарської машинки (кінцевий результат усе одно правильний)."},"ui.im.blockSkipPerm":{zh:"会话拒绝注入",en:"Refuse session injection","zh-TW":"會話拒絕注入",ko:"세션 주입 거부",ja:"セッションへの注入を拒否",de:"Sitzungs-Injektion ablehnen",es:"Rechazar inyección de sesión",fr:"Refuser l'injection de session",it:"Rifiuta iniezione di sessione",da:"Afvis sessionsinjektion",pl:"Odrzuć wstrzykiwanie sesji",ru:"Отклонять ввод в сессию",ar:"رفض الحقن في الجلسة",no:"Avvis øktinjeksjon","pt-BR":"Recusar injeção de sessão",th:"ปฏิเสธการแทรกเซสชัน",tr:"Oturum enjeksiyonunu reddet",uk:"Відхиляти ін'єкцію в сеанс"},"ui.im.blockSkipPermHelp":{zh:"当 Codex 会话以 --dangerously-skip-permissions 运行时,拒绝远程注入(否则远程指令会无审批直接执行)。",en:"When the Codex session runs with --dangerously-skip-permissions, refuse remote injection (which would otherwise execute with no approval).","zh-TW":"當 Codex 會話以 --dangerously-skip-permissions 執行時,拒絕遠端注入(否則遠端指令會無審批直接執行)。",ko:"Codex 세션이 --dangerously-skip-permissions로 실행 중일 때 원격 주입을 거부합니다(그렇지 않으면 승인 없이 실행됨).",ja:"Codex セッションが --dangerously-skip-permissions で実行中の場合、リモート注入を拒否します(さもないと承認なしで実行されます)。",de:"Wenn die Codex-Sitzung mit --dangerously-skip-permissions läuft, Remote-Injektion ablehnen (die sonst ohne Genehmigung ausgeführt würde).",es:"Cuando la sesión de Codex se ejecuta con --dangerously-skip-permissions, rechazar la inyección remota (que de lo contrario se ejecutaría sin aprobación).",fr:"Lorsque la session Codex s'exécute avec --dangerously-skip-permissions, refuser l'injection à distance (qui s'exécuterait sinon sans approbation).",it:"Quando la sessione Codex è in esecuzione con --dangerously-skip-permissions, rifiuta l'iniezione remota (che altrimenti verrebbe eseguita senza approvazione).",da:"Når Codex-sessionen kører med --dangerously-skip-permissions, afvis fjerninjektion (som ellers ville blive udført uden godkendelse).",pl:"Gdy sesja Codex działa z --dangerously-skip-permissions, odrzucaj zdalne wstrzykiwanie (które w przeciwnym razie wykonałoby się bez zatwierdzenia).",ru:"Когда сессия Codex запущена с --dangerously-skip-permissions, отклонять удалённый ввод (иначе он выполнится без подтверждения).",ar:"عند تشغيل جلسة Codex باستخدام --dangerously-skip-permissions، ارفض الحقن عن بُعد (الذي سيُنفَّذ بخلاف ذلك دون موافقة).",no:"Når Codex-økten kjører med --dangerously-skip-permissions, avvis fjerninjeksjon (som ellers ville bli kjørt uten godkjenning).","pt-BR":"Quando a sessão do Codex é executada com --dangerously-skip-permissions, recusar a injeção remota (que, caso contrário, seria executada sem aprovação).",th:"เมื่อเซสชัน Codex ทำงานด้วย --dangerously-skip-permissions ให้ปฏิเสธการแทรกจากระยะไกล (มิฉะนั้นจะทำงานโดยไม่มีการอนุมัติ)",tr:"Codex oturumu --dangerously-skip-permissions ile çalışırken uzaktan enjeksiyonu reddet (aksi takdirde onay olmadan çalışır).",uk:"Коли сеанс Codex запущено з --dangerously-skip-permissions, відхиляти віддалену ін'єкцію (інакше вона виконається без підтвердження)."},"ui.im.allowlistHelp":{zh:"只有名单内的发送者才能驱动这个 Codex 会话;留空则自动绑定第一个跟它对话的人。在群里使用时建议填写,可防止无关成员往你的会话里注入指令、误触发操作。",en:"Only senders on this list can drive this Codex session; leave it empty and the bot binds to the first conversation that messages it. Recommended in group chats to stop unrelated members from injecting commands into your session.","zh-TW":"只有名單內的發送者才能驅動這個 Codex 會話;留空則自動綁定第一個跟它對話的人。在群組中使用時建議填寫,可防止無關成員往你的會話注入指令、誤觸發操作。",ko:"목록에 있는 발신자만 이 Codex 세션을 제어할 수 있습니다. 비워 두면 봇이 처음 말을 건 대화에 바인딩됩니다. 그룹 채팅에서는 무관한 멤버가 세션에 명령을 주입하지 못하도록 입력을 권장합니다.",ja:"リストにある送信者のみがこの Codex セッションを操作できます。空欄の場合、ボットは最初に話しかけてきた会話にバインドされます。グループでは無関係なメンバーがセッションにコマンドを注入するのを防ぐため、入力を推奨します。",de:"Nur Absender auf dieser Liste können diese Codex-Sitzung steuern; ist das Feld leer, bindet sich der Bot an die erste Konversation, die ihm schreibt. In Gruppenchats empfohlen, damit unbeteiligte Mitglieder keine Befehle in Ihre Sitzung einschleusen.",es:"Solo los remitentes de esta lista pueden controlar esta sesión de Codex; si se deja vacío, el bot se vincula a la primera conversación que le escriba. Recomendado en chats de grupo para evitar que miembros ajenos inyecten comandos en tu sesión.",fr:"Seuls les expéditeurs de cette liste peuvent piloter cette session Codex ; laissé vide, le bot se lie à la première conversation qui lui écrit. Recommandé dans les groupes pour empêcher des membres non concernés d'injecter des commandes dans votre session.",it:"Solo i mittenti in questo elenco possono controllare questa sessione Codex; se vuoto, il bot si associa alla prima conversazione che gli scrive. Consigliato nelle chat di gruppo per impedire a membri estranei di iniettare comandi nella tua sessione.",da:"Kun afsendere på denne liste kan styre denne Codex-session; lad feltet stå tomt, så binder botten sig til den første samtale, der skriver til den. Anbefales i gruppechats for at forhindre uvedkommende medlemmer i at indsætte kommandoer i din session.",pl:"Tylko nadawcy z tej listy mogą sterować tą sesją Codex; pozostaw puste, a bot powiąże się z pierwszą rozmową, która do niego napisze. Zalecane na czatach grupowych, aby uniemożliwić niepowiązanym członkom wstrzykiwanie poleceń do Twojej sesji.",ru:"Управлять этой сессией Codex могут только отправители из списка; если оставить пустым, бот привяжется к первому написавшему ему разговору. Рекомендуется в групповых чатах, чтобы посторонние участники не вводили команды в вашу сессию.",ar:"يمكن فقط للمرسلين في هذه القائمة التحكم في جلسة Codex هذه؛ اتركها فارغة وسيرتبط البوت بأول محادثة تراسله. يُنصح به في محادثات المجموعات لمنع الأعضاء غير المعنيين من حقن الأوامر في جلستك.",no:"Bare avsendere på denne listen kan styre denne Codex-økten; la feltet stå tomt, så binder boten seg til den første samtalen som skriver til den. Anbefales i gruppechatter for å hindre uvedkommende medlemmer i å injisere kommandoer i økten din.","pt-BR":"Apenas remetentes nesta lista podem controlar esta sessão do Codex; se deixar vazio, o bot se vincula à primeira conversa que lhe enviar mensagem. Recomendado em chats de grupo para impedir que membros não relacionados injetem comandos na sua sessão.",th:"เฉพาะผู้ส่งในรายการนี้เท่านั้นที่ควบคุมเซสชัน Codex นี้ได้ หากเว้นว่างไว้ บอตจะผูกกับการสนทนาแรกที่ส่งข้อความถึง แนะนำให้ใช้ในแชทกลุ่มเพื่อป้องกันสมาชิกที่ไม่เกี่ยวข้องแทรกคำสั่งเข้าสู่เซสชันของคุณ",tr:"Bu Codex oturumunu yalnızca listedeki göndericiler yönetebilir; boş bırakırsanız bot kendisine ilk mesaj yazan konuşmaya bağlanır. Grup sohbetlerinde ilgisiz üyelerin oturumunuza komut enjekte etmesini önlemek için önerilir.",uk:"Керувати цією сесією Codex можуть лише відправники зі списку; якщо залишити порожнім, бот прив'яжеться до першої розмови, яка йому напише. Рекомендовано в групових чатах, щоб сторонні учасники не вводили команди у ваш сеанс."},"ui.im.persona":{zh:"模型性格定义",en:"Model personality","zh-TW":"模型性格定義",ko:"모델 성격 정의",ja:"モデルの性格定義",de:"Modellpersönlichkeit",es:"Personalidad del modelo",fr:"Personnalité du modèle",it:"Personalità del modello",da:"Modellens personlighed",pl:"Osobowość modelu",ru:"Характер модели",ar:"شخصية النموذج",no:"Modellens personlighet","pt-BR":"Personalidade do modelo",th:"บุคลิกของโมเดล",tr:"Model kişiliği",uk:"Характер моделі"},"ui.im.edit":{zh:"编辑",en:"Edit","zh-TW":"編輯",ko:"편집",ja:"編集",de:"Bearbeiten",es:"Editar",fr:"Modifier",it:"Modifica",da:"Rediger",pl:"Edytuj",ru:"Изменить",ar:"تحرير",no:"Rediger","pt-BR":"Editar",th:"แก้ไข",tr:"Düzenle",uk:"Редагувати"},"ui.im.personaHelp":{zh:"定义机器人的人格与行为约束(作为系统提示注入,比 AGENTS.md 更难被来信指令绕过);保存后需重启该 IM 才生效(需较新版 Codex)。",en:"Define the bot's personality and behavior; injected as a system prompt so it's harder to override. Takes effect after you restart this IM (requires a recent Codex build).","zh-TW":"定義機器人的人格與行為約束(作為系統提示注入,比 AGENTS.md 更難被來信指令繞過);儲存後需重啟該 IM 才生效(需較新版 Codex)。",ko:"봇의 성격과 동작을 정의합니다. 시스템 프롬프트로 주입되어 덮어쓰기가 더 어렵습니다. 이 IM을 다시 시작해야 적용됩니다(최신 Codex 빌드 필요).",ja:"ボットの性格と動作を定義します。システムプロンプトとして注入されるため上書きされにくくなります。この IM を再起動すると反映されます(新しい Codex が必要)。",de:"Lege Persönlichkeit und Verhalten des Bots fest; wird als System-Prompt eingefügt und ist dadurch schwerer zu überschreiben. Wird nach einem Neustart dieses IM wirksam (erfordert eine aktuelle Codex-Version).",es:"Define la personalidad y el comportamiento del bot; se inyecta como prompt de sistema, por lo que es más difícil de anular. Surte efecto tras reiniciar este IM (requiere una versión reciente de Codex).",fr:"Définissez la personnalité et le comportement du bot ; injecté comme invite système, il est donc plus difficile à contourner. Effectif après le redémarrage de cet IM (nécessite une version récente de Codex).",it:"Definisci personalità e comportamento del bot; iniettato come prompt di sistema, quindi più difficile da ignorare. Ha effetto dopo il riavvio di questo IM (richiede una versione recente di Codex).",da:"Definér bottens personlighed og adfærd; indsættes som en system-prompt og er derfor sværere at omgå. Træder i kraft efter genstart af denne IM (kræver en nyere Codex-version).",pl:"Zdefiniuj osobowość i zachowanie bota; wstrzykiwane jako prompt systemowy, więc trudniej je nadpisać. Zacznie działać po ponownym uruchomieniu tego IM (wymaga nowszej wersji Codex).",ru:"Задайте характер и поведение бота; внедряется как системный промпт, поэтому его труднее переопределить. Вступит в силу после перезапуска этого IM (требуется свежая сборка Codex).",ar:"حدِّد شخصية البوت وسلوكه؛ يُحقَن كموجّه نظام (system prompt) فيصعب تجاوزه. يسري المفعول بعد إعادة تشغيل هذا الـ IM (يتطلب إصدارًا حديثًا من Codex).",no:"Definer bottens personlighet og atferd; settes inn som en systemledetekst og er dermed vanskeligere å overstyre. Trer i kraft etter omstart av denne IM-en (krever en nyere Codex-versjon).","pt-BR":"Defina a personalidade e o comportamento do bot; injetado como prompt de sistema, por isso é mais difícil de substituir. Entra em vigor após reiniciar este IM (requer uma versão recente do Codex).",th:"กำหนดบุคลิกและพฤติกรรมของบอท โดยแทรกเป็น system prompt จึงถูกแทนที่ได้ยากขึ้น จะมีผลหลังจากรีสตาร์ท IM นี้ (ต้องใช้ Codex รุ่นใหม่)",tr:"Botun kişiliğini ve davranışını tanımlayın; sistem istemi olarak eklenir, böylece geçersiz kılınması zorlaşır. Bu IM yeniden başlatıldığında etkili olur (güncel bir Codex sürümü gerektirir).",uk:"Задайте характер і поведінку бота; впроваджується як системний промпт, тож його важче перевизначити. Набуде чинності після перезапуску цього IM (потрібна новіша версія Codex)."},"ui.im.personaSaved":{zh:"已保存,下次重启该 IM 生效",en:"Saved — takes effect after you restart this IM","zh-TW":"已儲存,下次重啟該 IM 生效",ko:"저장됨 — 이 IM을 다시 시작하면 적용됩니다",ja:"保存しました — この IM の再起動後に反映されます",de:"Gespeichert – wird nach einem Neustart dieses IM wirksam",es:"Guardado: surte efecto tras reiniciar este IM",fr:"Enregistré — effectif après le redémarrage de cet IM",it:"Salvato — ha effetto dopo il riavvio di questo IM",da:"Gemt – træder i kraft efter genstart af denne IM",pl:"Zapisano — zacznie działać po ponownym uruchomieniu tego IM",ru:"Сохранено — вступит в силу после перезапуска этого IM",ar:"تم الحفظ — يسري المفعول بعد إعادة تشغيل هذا الـ IM",no:"Lagret – trer i kraft etter omstart av denne IM-en","pt-BR":"Salvo — entra em vigor após reiniciar este IM",th:"บันทึกแล้ว — จะมีผลหลังจากรีสตาร์ท IM นี้",tr:"Kaydedildi — bu IM yeniden başlatıldığında etkili olur",uk:"Збережено — набуде чинності після перезапуску цього IM"},"ui.im.restoreDefault":{zh:"恢复默认",en:"Restore default","zh-TW":"還原預設",ko:"기본값 복원",ja:"デフォルトに戻す",de:"Standard wiederherstellen",es:"Restaurar predeterminado",fr:"Réinitialiser par défaut",it:"Ripristina predefinito",da:"Gendan standard",pl:"Przywróć domyślne",ru:"Сбросить к стандартному",ar:"استعادة الافتراضي",no:"Gjenopprett standard","pt-BR":"Restaurar padrão",th:"คืนค่าเริ่มต้น",tr:"Varsayılana döndür",uk:"Відновити типове"},"ui.im.restoreDefaultConfirm":{zh:"用默认预置覆盖当前编辑内容?(保存后才生效)",en:"Replace the current text with the default preset? (takes effect after you save)","zh-TW":"以預設範本覆蓋目前內容?(儲存後才生效)",ko:"현재 내용을 기본 프리셋으로 덮어쓸까요? (저장해야 적용됩니다)",ja:"現在の内容を既定のプリセットで上書きしますか?(保存後に反映)",de:"Aktuellen Text durch die Standardvorlage ersetzen? (wirksam nach dem Speichern)",es:"¿Reemplazar el contenido actual con la plantilla predeterminada? (surte efecto tras guardar)",fr:"Remplacer le contenu actuel par le modèle par défaut ? (effectif après l'enregistrement)",it:"Sostituire il contenuto attuale con il modello predefinito? (ha effetto dopo il salvataggio)",da:"Erstat det nuværende indhold med standardskabelonen? (træder i kraft efter du gemmer)",pl:"Zastąpić bieżącą treść domyślnym szablonem? (zacznie działać po zapisaniu)",ru:"Заменить текущий текст стандартным шаблоном? (вступит в силу после сохранения)",ar:"استبدال المحتوى الحالي بالقالب الافتراضي؟ (يسري بعد الحفظ)",no:"Erstatte gjeldende innhold med standardmalen? (trer i kraft etter at du lagrer)","pt-BR":"Substituir o conteúdo atual pelo modelo padrão? (entra em vigor após salvar)",th:"แทนที่เนื้อหาปัจจุบันด้วยค่าเริ่มต้นหรือไม่? (จะมีผลหลังจากบันทึก)",tr:"Mevcut içerik varsayılan şablonla değiştirilsin mi? (kaydettikten sonra etkili olur)",uk:"Замінити поточний вміст типовим шаблоном? (набуде чинності після збереження)"},"ui.im.personaRestored":{zh:"已载入默认预置,确认后点保存",en:"Loaded the default preset — review and save","zh-TW":"已載入預設範本,確認後請儲存",ko:"기본 프리셋을 불러왔습니다 — 확인 후 저장하세요",ja:"既定のプリセットを読み込みました — 確認して保存してください",de:"Standardvorlage geladen – prüfen und speichern",es:"Plantilla predeterminada cargada: revísala y guarda",fr:"Modèle par défaut chargé — vérifiez puis enregistrez",it:"Modello predefinito caricato — controlla e salva",da:"Standardskabelon indlæst – gennemse og gem",pl:"Załadowano domyślny szablon — sprawdź i zapisz",ru:"Загружен стандартный шаблон — проверьте и сохраните",ar:"تم تحميل القالب الافتراضي — راجِعه ثم احفظ",no:"Standardmal lastet inn – se gjennom og lagre","pt-BR":"Modelo padrão carregado — revise e salve",th:"โหลดค่าเริ่มต้นแล้ว — ตรวจสอบแล้วบันทึก",tr:"Varsayılan şablon yüklendi — gözden geçirip kaydedin",uk:"Завантажено типовий шаблон — перевірте та збережіть"},"ui.im.restoreFailed":{zh:"恢复默认失败",en:"Restore failed","zh-TW":"還原預設失敗",ko:"기본값 복원 실패",ja:"デフォルトの復元に失敗しました",de:"Wiederherstellen fehlgeschlagen",es:"Error al restaurar",fr:"Échec de la réinitialisation",it:"Ripristino non riuscito",da:"Gendannelse mislykkedes",pl:"Przywracanie nie powiodło się",ru:"Не удалось сбросить",ar:"فشل الاستعادة",no:"Gjenoppretting mislyktes","pt-BR":"Falha ao restaurar",th:"คืนค่าเริ่มต้นไม่สำเร็จ",tr:"Geri yükleme başarısız",uk:"Не вдалося відновити"},"ui.im.skillsRow":{zh:"SKILL 管理",en:"SKILL management","zh-TW":"SKILL 管理",ko:"SKILL 관리",ja:"SKILL 管理",de:"SKILL-Verwaltung",es:"Gestión de SKILL",fr:"Gestion des SKILL",it:"Gestione SKILL",da:"SKILL-styring",pl:"Zarządzanie SKILL",ru:"Управление SKILL",ar:"إدارة SKILL",no:"SKILL-styring","pt-BR":"Gerenciamento de SKILL",th:"การจัดการ SKILL",tr:"SKILL yönetimi",uk:"Керування SKILL"},"ui.im.skillsRestartHint":{zh:"已更新,下次重启该 IM 生效",en:"Updated — takes effect after you restart this IM","zh-TW":"已更新,下次重啟該 IM 生效",ko:"업데이트됨 — 이 IM을 다시 시작하면 적용됩니다",ja:"更新しました — この IM の再起動後に反映されます",de:"Aktualisiert – wird nach einem Neustart dieses IM wirksam",es:"Actualizado: surte efecto tras reiniciar este IM",fr:"Mis à jour — effectif après le redémarrage de cet IM",it:"Aggiornato — ha effetto dopo il riavvio di questo IM",da:"Opdateret – træder i kraft efter genstart af denne IM",pl:"Zaktualizowano — zacznie działać po ponownym uruchomieniu tego IM",ru:"Обновлено — вступит в силу после перезапуска этого IM",ar:"تم التحديث — يسري المفعول بعد إعادة تشغيل هذا الـ IM",no:"Oppdatert – trer i kraft etter omstart av denne IM-en","pt-BR":"Atualizado — entra em vigor após reiniciar este IM",th:"อัปเดตแล้ว — จะมีผลหลังจากรีสตาร์ท IM นี้",tr:"Güncellendi — bu IM yeniden başlatıldığında etkili olur",uk:"Оновлено — набуде чинності після перезапуску цього IM"},"ui.im.securityWarn":{zh:"⚠️ 消息会直接驱动本地会话(可执行命令)。请仅对可信成员开启。",en:"⚠️ Incoming messages directly drive the local session (which can run commands). Enable only for trusted members.","zh-TW":"⚠️ 訊息會直接驅動本地會話(可執行命令)。請僅對可信成員開啟。",ko:"⚠️ 수신 메시지는 로컬 세션을 직접 구동합니다(명령 실행 가능). 신뢰할 수 있는 멤버에게만 활성화하세요.",ja:"⚠️ 受信メッセージはローカルセッションを直接駆動します(コマンド実行可能)。信頼できるメンバーにのみ有効化してください。",de:"⚠️ Eingehende Nachrichten steuern direkt die lokale Sitzung (kann Befehle ausführen). Nur für vertrauenswürdige Mitglieder aktivieren.",es:"⚠️ Los mensajes entrantes controlan directamente la sesión local (que puede ejecutar comandos). Actívalo solo para miembros de confianza.",fr:"⚠️ Les messages entrants pilotent directement la session locale (qui peut exécuter des commandes). N'activez que pour des membres de confiance.",it:"⚠️ I messaggi in arrivo controllano direttamente la sessione locale (che può eseguire comandi). Abilita solo per membri fidati.",da:"⚠️ Indgående beskeder styrer direkte den lokale session (som kan køre kommandoer). Aktivér kun for betroede medlemmer.",pl:"⚠️ Przychodzące wiadomości bezpośrednio sterują lokalną sesją (może uruchamiać polecenia). Włącz tylko dla zaufanych członków.",ru:"⚠️ Входящие сообщения напрямую управляют локальной сессией (может выполнять команды). Включайте только для доверенных участников.",ar:"⚠️ تتحكم الرسائل الواردة مباشرة في الجلسة المحلية (يمكنها تنفيذ الأوامر). فعِّلها فقط للأعضاء الموثوقين.",no:"⚠️ Innkommende meldinger styrer den lokale økten direkte (kan kjøre kommandoer). Aktiver bare for betrodde medlemmer.","pt-BR":"⚠️ As mensagens recebidas controlam diretamente a sessão local (que pode executar comandos). Ative apenas para membros confiáveis.",th:"⚠️ ข้อความที่เข้ามาจะควบคุมเซสชันในเครื่องโดยตรง (สามารถรันคำสั่งได้) เปิดใช้เฉพาะสมาชิกที่ไว้ใจได้เท่านั้น",tr:"⚠️ Gelen mesajlar yerel oturumu doğrudan yönlendirir (komut çalıştırabilir). Yalnızca güvenilir üyeler için etkinleştirin.",uk:"⚠️ Вхідні повідомлення безпосередньо керують локальним сеансом (можуть виконувати команди). Вмикайте лише для довірених учасників."},"ui.messaging.feishu":{zh:"飞书",en:"Feishu","zh-TW":"飛書",ko:"Feishu",ja:"Feishu",de:"Feishu",es:"Feishu",fr:"Feishu",it:"Feishu",da:"Feishu",pl:"Feishu",ru:"Feishu",ar:"Feishu",no:"Feishu","pt-BR":"Feishu",th:"Feishu",tr:"Feishu",uk:"Feishu"},"ui.imSource.feishu":{zh:"来自飞书",en:"From Feishu","zh-TW":"來自飛書",ko:"Feishu에서",ja:"Feishu から",de:"Von Feishu",es:"De Feishu",fr:"Depuis Feishu",it:"Da Feishu",da:"Fra Feishu",pl:"Z Feishu",ru:"Из Feishu",ar:"من Feishu",no:"Fra Feishu","pt-BR":"Do Feishu",th:"จาก Feishu",tr:"Feishu'dan",uk:"Із Feishu"},"ui.feishu.enable":{zh:"启用飞书/Lark 桥接",en:"Enable Feishu/Lark bridge","zh-TW":"啟用飛書/Lark 橋接",ko:"Feishu/Lark 브리지 활성화",ja:"Feishu/Lark ブリッジを有効化",de:"Feishu/Lark-Bridge aktivieren",es:"Activar puente de Feishu/Lark",fr:"Activer le pont Feishu/Lark",it:"Abilita il bridge Feishu/Lark",da:"Aktivér Feishu/Lark-bro",pl:"Włącz mostek Feishu/Lark",ru:"Включить мост Feishu/Lark",ar:"تفعيل جسر Feishu/Lark",no:"Aktiver Feishu/Lark-bro","pt-BR":"Ativar ponte Feishu/Lark",th:"เปิดใช้บริดจ์ Feishu/Lark",tr:"Feishu/Lark köprüsünü etkinleştir",uk:"Увімкнути міст Feishu/Lark"},"ui.feishu.appId":{zh:"App ID",en:"App ID","zh-TW":"App ID",ko:"App ID",ja:"App ID",de:"App ID",es:"App ID",fr:"App ID",it:"App ID",da:"App ID",pl:"App ID",ru:"App ID",ar:"App ID",no:"App ID","pt-BR":"App ID",th:"App ID",tr:"App ID",uk:"App ID"},"ui.feishu.appSecret":{zh:"App Secret",en:"App Secret","zh-TW":"App Secret",ko:"App Secret",ja:"App Secret",de:"App Secret",es:"App Secret",fr:"App Secret",it:"App Secret",da:"App Secret",pl:"App Secret",ru:"App Secret",ar:"App Secret",no:"App Secret","pt-BR":"App Secret",th:"App Secret",tr:"App Secret",uk:"App Secret"},"ui.feishu.region":{zh:"区域",en:"Region","zh-TW":"區域",ko:"지역",ja:"地域",de:"Region",es:"Región",fr:"Région",it:"Regione",da:"Region",pl:"Region",ru:"Регион",ar:"المنطقة",no:"Region","pt-BR":"Região",th:"ภูมิภาค",tr:"Bölge",uk:"Регіон"},"ui.feishu.regionCn":{zh:"飞书(feishu.cn)",en:"Feishu (feishu.cn)","zh-TW":"飛書(feishu.cn)",ko:"Feishu (feishu.cn)",ja:"Feishu (feishu.cn)",de:"Feishu (feishu.cn)",es:"Feishu (feishu.cn)",fr:"Feishu (feishu.cn)",it:"Feishu (feishu.cn)",da:"Feishu (feishu.cn)",pl:"Feishu (feishu.cn)",ru:"Feishu (feishu.cn)",ar:"Feishu (feishu.cn)",no:"Feishu (feishu.cn)","pt-BR":"Feishu (feishu.cn)",th:"Feishu (feishu.cn)",tr:"Feishu (feishu.cn)",uk:"Feishu (feishu.cn)"},"ui.feishu.regionGlobal":{zh:"Lark(larksuite.com)",en:"Lark (larksuite.com)","zh-TW":"Lark(larksuite.com)",ko:"Lark (larksuite.com)",ja:"Lark (larksuite.com)",de:"Lark (larksuite.com)",es:"Lark (larksuite.com)",fr:"Lark (larksuite.com)",it:"Lark (larksuite.com)",da:"Lark (larksuite.com)",pl:"Lark (larksuite.com)",ru:"Lark (larksuite.com)",ar:"Lark (larksuite.com)",no:"Lark (larksuite.com)","pt-BR":"Lark (larksuite.com)",th:"Lark (larksuite.com)",tr:"Lark (larksuite.com)",uk:"Lark (larksuite.com)"},"ui.feishu.allowUsers":{zh:"发送人白名单(open_id)",en:"Sender allowlist (open_id)","zh-TW":"發送人白名單(open_id)",ko:"발신자 허용 목록 (open_id)",ja:"送信者許可リスト (open_id)",de:"Absender-Whitelist (open_id)",es:"Lista de remitentes permitidos (open_id)",fr:"Liste d'expéditeurs autorisés (open_id)",it:"Elenco mittenti consentiti (open_id)",da:"Tilladelsesliste for afsendere (open_id)",pl:"Lista dozwolonych nadawców (open_id)",ru:"Список разрешённых отправителей (open_id)",ar:"قائمة المرسلين المسموح بهم (open_id)",no:"Tillatelsesliste for avsendere (open_id)","pt-BR":"Lista de remetentes permitidos (open_id)",th:"รายการผู้ส่งที่อนุญาต (open_id)",tr:"İzin verilen gönderen listesi (open_id)",uk:"Список дозволених відправників (open_id)"},"ui.feishu.allowUsersPlaceholder":{zh:"open_id,回车分隔多个",en:"open_id, press Enter to add","zh-TW":"open_id,按 Enter 新增",ko:"open_id, Enter로 추가",ja:"open_id、Enter で追加",de:"open_id, mit Enter hinzufügen",es:"open_id, pulsa Enter para añadir",fr:"open_id, appuyez sur Entrée pour ajouter",it:"open_id, premi Invio per aggiungere",da:"open_id, tryk Enter for at tilføje",pl:"open_id, naciśnij Enter, aby dodać",ru:"open_id, нажмите Enter, чтобы добавить",ar:"open_id، اضغط Enter للإضافة",no:"open_id, trykk Enter for å legge til","pt-BR":"open_id, pressione Enter para adicionar",th:"open_id, กด Enter เพื่อเพิ่ม",tr:"open_id, eklemek için Enter'a basın",uk:"open_id, натисніть Enter, щоб додати"},"ui.feishu.provisioningHelp":{zh:"在飞书/Lark 开发者后台:创建自建应用,事件订阅方式选「长连接」,订阅 im.message.receive_v1 事件,授予 im:message 权限,发布应用后把机器人加入会话。",en:"In the Feishu/Lark console: create a custom app, set Event Subscription to long-connection, subscribe im.message.receive_v1, grant the im:message scope, publish the app, then add the bot to a chat.","zh-TW":"在飛書/Lark 開發者後台:建立自建應用,事件訂閱方式選「長連線」,訂閱 im.message.receive_v1 事件,授予 im:message 權限,發布應用後把機器人加入會話。",ko:"Feishu/Lark 콘솔에서: 커스텀 앱을 만들고 이벤트 구독을 장기 연결로 설정하고 im.message.receive_v1을 구독하고 im:message 권한을 부여한 뒤 앱을 게시하고 봇을 대화에 추가하세요.",ja:"Feishu/Lark コンソールで:カスタムアプリを作成し、イベント購読を「長期接続」に設定し、im.message.receive_v1 を購読し、im:message スコープを付与してアプリを公開し、ボットをチャットに追加します。",de:"In der Feishu/Lark-Konsole: Erstellen Sie eine benutzerdefinierte App, stellen Sie das Event-Abonnement auf Langverbindung, abonnieren Sie im.message.receive_v1, gewähren Sie den im:message-Scope, veröffentlichen Sie die App und fügen Sie den Bot zu einem Chat hinzu.",es:"En la consola de Feishu/Lark: crea una app personalizada, configura la suscripción de eventos en conexión larga, suscribe im.message.receive_v1, concede el ámbito im:message, publica la app y añade el bot a un chat.",fr:"Dans la console Feishu/Lark : créez une application personnalisée, réglez l'abonnement aux événements sur connexion longue, abonnez-vous à im.message.receive_v1, accordez la portée im:message, publiez l'application, puis ajoutez le bot à une conversation.",it:"Nella console Feishu/Lark: crea un'app personalizzata, imposta la sottoscrizione eventi su connessione lunga, sottoscrivi im.message.receive_v1, concedi l'ambito im:message, pubblica l'app e aggiungi il bot a una chat.",da:"I Feishu/Lark-konsollen: opret en brugerdefineret app, sæt Event Subscription til langforbindelse, abonnér på im.message.receive_v1, tildel im:message-scopet, udgiv appen, og tilføj botten til en chat.",pl:"W konsoli Feishu/Lark: utwórz aplikację niestandardową, ustaw subskrypcję zdarzeń na połączenie długie, zasubskrybuj im.message.receive_v1, przyznaj zakres im:message, opublikuj aplikację i dodaj bota do czatu.",ru:"В консоли Feishu/Lark: создайте кастомное приложение, выберите для подписки на события длинное соединение, подпишитесь на im.message.receive_v1, выдайте разрешение im:message, опубликуйте приложение и добавьте бота в чат.",ar:"في وحدة تحكم Feishu/Lark: أنشئ تطبيقًا مخصصًا، واضبط اشتراك الأحداث على الاتصال الطويل، واشترك في im.message.receive_v1، وامنح نطاق im:message، وانشر التطبيق، ثم أضف الروبوت إلى محادثة.",no:"I Feishu/Lark-konsollen: opprett en egendefinert app, sett hendelsesabonnement til langtidstilkobling, abonner på im.message.receive_v1, gi im:message-tilgang, publiser appen, og legg boten til i en chat.","pt-BR":"No console do Feishu/Lark: crie um app personalizado, defina a assinatura de eventos como conexão longa, assine im.message.receive_v1, conceda o escopo im:message, publique o app e adicione o bot a um chat.",th:"ในคอนโซล Feishu/Lark: สร้างแอปแบบกำหนดเอง ตั้งค่าการสมัครรับเหตุการณ์เป็นการเชื่อมต่อแบบยาว สมัครรับ im.message.receive_v1 ให้สิทธิ์ im:message เผยแพร่แอป แล้วเพิ่มบอทเข้าแชท",tr:"Feishu/Lark konsolunda: özel bir uygulama oluşturun, Etkinlik Aboneliğini uzun bağlantıya ayarlayın, im.message.receive_v1 aboneliği alın, im:message kapsamını verin, uygulamayı yayımlayın ve botu bir sohbete ekleyin.",uk:"У консолі Feishu/Lark: створіть власний застосунок, виберіть для підписки на події довге з'єднання, підпишіться на im.message.receive_v1, надайте дозвіл im:message, опублікуйте застосунок і додайте бота до чату."},"ui.feishu.replyDelayHint":{zh:"回复在整轮结束后约 10 秒送达。",en:"Replies arrive ~10s after the turn completes.","zh-TW":"回覆在整輪結束後約 10 秒送達。",ko:"답장은 한 턴이 끝난 뒤 약 10초 후에 도착합니다.",ja:"返信はターン終了後およそ10秒で届きます。",de:"Antworten treffen etwa 10 s nach Abschluss der Runde ein.",es:"Las respuestas llegan ~10 s después de completar el turno.",fr:"Les réponses arrivent ~10 s après la fin du tour.",it:"Le risposte arrivano ~10 s dopo il completamento del turno.",da:"Svar ankommer ~10 s efter at turen er færdig.",pl:"Odpowiedzi przychodzą ~10 s po zakończeniu tury.",ru:"Ответы приходят примерно через 10 с после завершения хода.",ar:"تصل الردود بعد نحو 10 ثوانٍ من انتهاء الجولة.",no:"Svar kommer ~10 s etter at turen er fullført.","pt-BR":"As respostas chegam ~10 s após a conclusão do turno.",th:"คำตอบจะมาถึงประมาณ 10 วินาทีหลังจากจบรอบ",tr:"Yanıtlar tur tamamlandıktan ~10 sn sonra gelir.",uk:"Відповіді надходять приблизно через 10 с після завершення ходу."},"ui.messaging.wecom":{zh:"企业微信",en:"WeCom","zh-TW":"企業微信",ko:"WeCom",ja:"WeCom",de:"WeCom",es:"WeCom",fr:"WeCom",it:"WeCom",da:"WeCom",pl:"WeCom",ru:"WeCom",ar:"WeCom",no:"WeCom","pt-BR":"WeCom",th:"WeCom",tr:"WeCom",uk:"WeCom"},"ui.imSource.wecom":{zh:"来自企业微信",en:"From WeCom","zh-TW":"來自企業微信",ko:"WeCom에서",ja:"WeCom から",de:"Von WeCom",es:"De WeCom",fr:"Depuis WeCom",it:"Da WeCom",da:"Fra WeCom",pl:"Z WeCom",ru:"Из WeCom",ar:"من WeCom",no:"Fra WeCom","pt-BR":"Do WeCom",th:"จาก WeCom",tr:"WeCom'dan",uk:"Із WeCom"},"ui.wecom.enable":{zh:"启用企业微信桥接",en:"Enable WeCom bridge","zh-TW":"啟用企業微信橋接",ko:"WeCom 브리지 활성화",ja:"WeCom ブリッジを有効化",de:"WeCom-Bridge aktivieren",es:"Activar puente de WeCom",fr:"Activer le pont WeCom",it:"Abilita il bridge WeCom",da:"Aktivér WeCom-bro",pl:"Włącz mostek WeCom",ru:"Включить мост WeCom",ar:"تفعيل جسر WeCom",no:"Aktiver WeCom-bro","pt-BR":"Ativar ponte WeCom",th:"เปิดใช้บริดจ์ WeCom",tr:"WeCom köprüsünü etkinleştir",uk:"Увімкнути міст WeCom"},"ui.wecom.botId":{zh:"机器人 ID(botId)",en:"Bot ID","zh-TW":"機器人 ID(botId)",ko:"Bot ID",ja:"Bot ID",de:"Bot ID",es:"Bot ID",fr:"Bot ID",it:"Bot ID",da:"Bot ID",pl:"Bot ID",ru:"Bot ID",ar:"Bot ID",no:"Bot ID","pt-BR":"Bot ID",th:"Bot ID",tr:"Bot ID",uk:"Bot ID"},"ui.wecom.secret":{zh:"机器人密钥(secret)",en:"Secret","zh-TW":"機器人密鑰(secret)",ko:"시크릿",ja:"シークレット",de:"Secret",es:"Secreto",fr:"Secret",it:"Segreto",da:"Hemmelighed",pl:"Sekret",ru:"Секрет",ar:"السر",no:"Hemmelighet","pt-BR":"Segredo",th:"ซีเคร็ต",tr:"Gizli anahtar",uk:"Секрет"},"ui.wecom.allowUsers":{zh:"发送人白名单(userid)",en:"Sender allowlist (userid)","zh-TW":"發送人白名單(userid)",ko:"발신자 허용 목록 (userid)",ja:"送信者許可リスト (userid)",de:"Absender-Whitelist (userid)",es:"Lista de remitentes permitidos (userid)",fr:"Liste d'expéditeurs autorisés (userid)",it:"Elenco mittenti consentiti (userid)",da:"Tilladelsesliste for afsendere (userid)",pl:"Lista dozwolonych nadawców (userid)",ru:"Список разрешённых отправителей (userid)",ar:"قائمة المرسلين المسموح بهم (userid)",no:"Tillatelsesliste for avsendere (userid)","pt-BR":"Lista de remetentes permitidos (userid)",th:"รายการผู้ส่งที่อนุญาต (userid)",tr:"İzin verilen gönderen listesi (userid)",uk:"Список дозволених відправників (userid)"},"ui.wecom.allowUsersPlaceholder":{zh:"userid,回车分隔多个",en:"userid, press Enter to add","zh-TW":"userid,按 Enter 新增",ko:"userid, Enter로 추가",ja:"userid、Enter で追加",de:"userid, mit Enter hinzufügen",es:"userid, pulsa Enter para añadir",fr:"userid, appuyez sur Entrée pour ajouter",it:"userid, premi Invio per aggiungere",da:"userid, tryk Enter for at tilføje",pl:"userid, naciśnij Enter, aby dodać",ru:"userid, нажмите Enter, чтобы добавить",ar:"userid، اضغط Enter للإضافة",no:"userid, trykk Enter for å legge til","pt-BR":"userid, pressione Enter para adicionar",th:"userid, กด Enter เพื่อเพิ่ม",tr:"userid, eklemek için Enter'a basın",uk:"userid, натисніть Enter, щоб додати"},"ui.wecom.provisioningHelp":{zh:"在企业微信管理后台:创建智能机器人,API 接收模式选「长连接」,获取 botId 与 secret,把机器人加入会话。",en:"In the WeCom console: create a Smart Robot, set its API receive mode to long-connection, copy the botId + secret, then add the bot to a chat.","zh-TW":"在企業微信管理後台:建立智慧機器人,API 接收模式選「長連線」,取得 botId 與 secret,把機器人加入會話。",ko:"WeCom 콘솔에서: 스마트 로봇을 만들고 API 수신 모드를 장기 연결로 설정한 뒤 botId와 secret을 복사하고 봇을 대화에 추가하세요.",ja:"WeCom 管理コンソールで:スマートロボットを作成し、API 受信モードを「長期接続」に設定し、botId と secret を取得して、ボットをチャットに追加します。",de:"In der WeCom-Konsole: Erstellen Sie einen Smart Robot, stellen Sie den API-Empfangsmodus auf Langverbindung, kopieren Sie botId und secret und fügen Sie den Bot zu einem Chat hinzu.",es:"En la consola de WeCom: crea un Smart Robot, configura su modo de recepción de API en conexión larga, copia el botId y el secret, y añade el bot a un chat.",fr:"Dans la console WeCom : créez un Smart Robot, réglez son mode de réception API sur connexion longue, copiez le botId et le secret, puis ajoutez le bot à une conversation.",it:"Nella console WeCom: crea uno Smart Robot, imposta la modalità di ricezione API su connessione lunga, copia botId e secret, quindi aggiungi il bot a una chat.",da:"I WeCom-konsollen: opret en Smart Robot, sæt dens API-modtagelsestilstand til langforbindelse, kopiér botId og secret, og tilføj botten til en chat.",pl:"W konsoli WeCom: utwórz Smart Robot, ustaw tryb odbioru API na połączenie długie, skopiuj botId i secret, a następnie dodaj bota do czatu.",ru:"В консоли WeCom: создайте умного робота, выберите для режима приёма API длинное соединение, скопируйте botId и secret и добавьте бота в чат.",ar:"في وحدة تحكم WeCom: أنشئ روبوتًا ذكيًا، واضبط وضع استقبال API على الاتصال الطويل، وانسخ botId و secret، ثم أضف الروبوت إلى محادثة.",no:"I WeCom-konsollen: opprett en Smart Robot, sett API-mottaksmodus til langtidstilkobling, kopier botId og secret, og legg boten til i en chat.","pt-BR":"No console do WeCom: crie um Smart Robot, defina o modo de recepção de API como conexão longa, copie o botId e o secret e adicione o bot a um chat.",th:"ในคอนโซล WeCom: สร้าง Smart Robot ตั้งโหมดรับ API เป็นการเชื่อมต่อแบบยาว คัดลอก botId และ secret แล้วเพิ่มบอทเข้าแชท",tr:"WeCom konsolunda: bir Smart Robot oluşturun, API alma modunu uzun bağlantıya ayarlayın, botId ve secret değerini kopyalayın, ardından botu bir sohbete ekleyin.",uk:"У консолі WeCom: створіть розумного робота, виберіть для режиму прийому API довге з'єднання, скопіюйте botId і secret, потім додайте бота до чату."},"ui.wecom.replyDelayHint":{zh:"回复在整轮结束后约 10 秒送达。",en:"Replies arrive ~10s after the turn completes.","zh-TW":"回覆在整輪結束後約 10 秒送達。",ko:"답장은 한 턴이 끝난 뒤 약 10초 후에 도착합니다.",ja:"返信はターン終了後およそ10秒で届きます。",de:"Antworten treffen etwa 10 s nach Abschluss der Runde ein.",es:"Las respuestas llegan ~10 s después de completar el turno.",fr:"Les réponses arrivent ~10 s après la fin du tour.",it:"Le risposte arrivano ~10 s dopo il completamento del turno.",da:"Svar ankommer ~10 s efter at turen er færdig.",pl:"Odpowiedzi przychodzą ~10 s po zakończeniu tury.",ru:"Ответы приходят примерно через 10 с после завершения хода.",ar:"تصل الردود بعد نحو 10 ثوانٍ من انتهاء الجولة.",no:"Svar kommer ~10 s etter at turen er fullført.","pt-BR":"As respostas chegam ~10 s após a conclusão do turno.",th:"คำตอบจะมาถึงประมาณ 10 วินาทีหลังจากจบรอบ",tr:"Yanıtlar tur tamamlandıktan ~10 sn sonra gelir.",uk:"Відповіді надходять приблизно через 10 с після завершення ходу."},"ui.messaging.discord":{zh:"Discord",en:"Discord","zh-TW":"Discord",ko:"Discord",ja:"Discord",de:"Discord",es:"Discord",fr:"Discord",it:"Discord",da:"Discord",pl:"Discord",ru:"Discord",ar:"Discord",no:"Discord","pt-BR":"Discord",th:"Discord",tr:"Discord",uk:"Discord"},"ui.imSource.discord":{zh:"来自 Discord",en:"From Discord","zh-TW":"來自 Discord",ko:"Discord에서",ja:"Discord から",de:"Von Discord",es:"De Discord",fr:"Depuis Discord",it:"Da Discord",da:"Fra Discord",pl:"Z Discord",ru:"Из Discord",ar:"من Discord",no:"Fra Discord","pt-BR":"Do Discord",th:"จาก Discord",tr:"Discord'tan",uk:"Із Discord"},"ui.discord.enable":{zh:"启用 Discord 桥接",en:"Enable Discord bridge","zh-TW":"啟用 Discord 橋接",ko:"Discord 브리지 활성화",ja:"Discord ブリッジを有効化",de:"Discord-Bridge aktivieren",es:"Activar puente de Discord",fr:"Activer le pont Discord",it:"Abilita il bridge Discord",da:"Aktivér Discord-bro",pl:"Włącz mostek Discord",ru:"Включить мост Discord",ar:"تفعيل جسر Discord",no:"Aktiver Discord-bro","pt-BR":"Ativar ponte Discord",th:"เปิดใช้บริดจ์ Discord",tr:"Discord köprüsünü etkinleştir",uk:"Увімкнути міст Discord"},"ui.discord.botToken":{zh:"机器人令牌(Bot Token)",en:"Bot Token","zh-TW":"機器人權杖(Bot Token)",ko:"Bot Token",ja:"Bot Token",de:"Bot Token",es:"Bot Token",fr:"Bot Token",it:"Bot Token",da:"Bot Token",pl:"Bot Token",ru:"Bot Token",ar:"Bot Token",no:"Bot Token","pt-BR":"Bot Token",th:"Bot Token",tr:"Bot Token",uk:"Bot Token"},"ui.discord.allowUsers":{zh:"发送人白名单(用户 ID)",en:"Sender allowlist (user ID)","zh-TW":"發送人白名單(使用者 ID)",ko:"발신자 허용 목록 (사용자 ID)",ja:"送信者許可リスト (ユーザー ID)",de:"Absender-Whitelist (Benutzer-ID)",es:"Lista de remitentes permitidos (ID de usuario)",fr:"Liste d'expéditeurs autorisés (ID utilisateur)",it:"Elenco mittenti consentiti (ID utente)",da:"Tilladelsesliste for afsendere (bruger-ID)",pl:"Lista dozwolonych nadawców (ID użytkownika)",ru:"Список разрешённых отправителей (ID пользователя)",ar:"قائمة المرسلين المسموح بهم (معرّف المستخدم)",no:"Tillatelsesliste for avsendere (bruker-ID)","pt-BR":"Lista de remetentes permitidos (ID de usuário)",th:"รายการผู้ส่งที่อนุญาต (ID ผู้ใช้)",tr:"İzin verilen gönderen listesi (kullanıcı kimliği)",uk:"Список дозволених відправників (ID користувача)"},"ui.discord.allowUsersPlaceholder":{zh:"用户 ID,回车分隔多个",en:"user ID, press Enter to add","zh-TW":"使用者 ID,按 Enter 新增",ko:"사용자 ID, Enter로 추가",ja:"ユーザー ID、Enter で追加",de:"Benutzer-ID, mit Enter hinzufügen",es:"ID de usuario, pulsa Enter para añadir",fr:"ID utilisateur, appuyez sur Entrée pour ajouter",it:"ID utente, premi Invio per aggiungere",da:"bruger-ID, tryk Enter for at tilføje",pl:"ID użytkownika, naciśnij Enter, aby dodać",ru:"ID пользователя, нажмите Enter, чтобы добавить",ar:"معرّف المستخدم، اضغط Enter للإضافة",no:"bruker-ID, trykk Enter for å legge til","pt-BR":"ID de usuário, pressione Enter para adicionar",th:"ID ผู้ใช้, กด Enter เพื่อเพิ่ม",tr:"kullanıcı kimliği, eklemek için Enter'a basın",uk:"ID користувача, натисніть Enter, щоб додати"},"ui.discord.provisioningHelp":{zh:"在 Discord 开发者门户:创建应用+机器人,开启 Message Content Intent(否则收到的消息正文为空),复制 Bot Token,用 bot + applications.commands 权限范围邀请机器人并授予查看/发送消息权限。",en:"In the Discord Developer Portal: create an app + bot, ENABLE the Message Content Intent (else message content arrives empty), copy the bot token, and invite the bot (scopes: bot + applications.commands) with View Channels / Send Messages.","zh-TW":"在 Discord 開發者入口:建立應用程式+機器人,開啟 Message Content Intent(否則收到的訊息內容為空),複製 Bot Token,用 bot + applications.commands 權限範圍邀請機器人並授予檢視/傳送訊息權限。",ko:"Discord 개발자 포털에서: 앱 + 봇을 만들고 Message Content Intent를 활성화하고(그렇지 않으면 메시지 본문이 비어 옴) 봇 토큰을 복사한 뒤 bot + applications.commands 스코프로 봇을 초대하고 채널 보기/메시지 보내기 권한을 부여하세요.",ja:"Discord デベロッパーポータルで:アプリ+ボットを作成し、Message Content Intent を有効化し(無効だとメッセージ本文が空になります)、Bot Token をコピーして、bot + applications.commands スコープでボットを招待し、チャンネルの表示/メッセージの送信権限を付与します。",de:"Im Discord Developer Portal: Erstellen Sie eine App + Bot, AKTIVIEREN Sie den Message Content Intent (sonst kommt der Nachrichtentext leer an), kopieren Sie das Bot-Token und laden Sie den Bot (Scopes: bot + applications.commands) mit View Channels / Send Messages ein.",es:"En el Portal de Desarrolladores de Discord: crea una app + bot, ACTIVA el Message Content Intent (de lo contrario el contenido del mensaje llega vacío), copia el bot token e invita al bot (ámbitos: bot + applications.commands) con Ver canales / Enviar mensajes.",fr:"Dans le portail développeur Discord : créez une application + bot, ACTIVEZ le Message Content Intent (sinon le contenu du message arrive vide), copiez le bot token et invitez le bot (portées : bot + applications.commands) avec Voir les salons / Envoyer des messages.",it:"Nel Discord Developer Portal: crea un'app + bot, ABILITA il Message Content Intent (altrimenti il contenuto del messaggio arriva vuoto), copia il bot token e invita il bot (ambiti: bot + applications.commands) con Visualizza canali / Invia messaggi.",da:"I Discord Developer Portal: opret en app + bot, AKTIVÉR Message Content Intent (ellers kommer beskedindholdet tomt), kopiér bot-tokenet, og inviter botten (scopes: bot + applications.commands) med View Channels / Send Messages.",pl:"W Portalu dla deweloperów Discord: utwórz aplikację + bota, WŁĄCZ Message Content Intent (w przeciwnym razie treść wiadomości przychodzi pusta), skopiuj bot token i zaproś bota (zakresy: bot + applications.commands) z uprawnieniami View Channels / Send Messages.",ru:"В Discord Developer Portal: создайте приложение + бота, ВКЛЮЧИТЕ Message Content Intent (иначе текст сообщения приходит пустым), скопируйте bot token и пригласите бота (scopes: bot + applications.commands) с правами View Channels / Send Messages.",ar:"في بوابة مطوري Discord: أنشئ تطبيقًا + روبوتًا، وفعِّل Message Content Intent (وإلا فسيصل محتوى الرسالة فارغًا)، وانسخ bot token، وادعُ الروبوت (النطاقات: bot + applications.commands) مع صلاحيات View Channels / Send Messages.",no:"I Discord Developer Portal: opprett en app + bot, AKTIVER Message Content Intent (ellers kommer meldingsinnholdet tomt), kopier bot-tokenet, og inviter boten (scopes: bot + applications.commands) med View Channels / Send Messages.","pt-BR":"No Portal do Desenvolvedor do Discord: crie um app + bot, ATIVE o Message Content Intent (caso contrário, o conteúdo da mensagem chega vazio), copie o bot token e convide o bot (escopos: bot + applications.commands) com Ver Canais / Enviar Mensagens.",th:"ในพอร์ทัลนักพัฒนา Discord: สร้างแอป + บอท เปิดใช้ Message Content Intent (มิฉะนั้นเนื้อหาข้อความจะว่างเปล่า) คัดลอก bot token แล้วเชิญบอท (สโคป: bot + applications.commands) พร้อมสิทธิ์ View Channels / Send Messages",tr:"Discord Geliştirici Portalı'nda: bir uygulama + bot oluşturun, Message Content Intent'i ETKİNLEŞTİRİN (aksi takdirde mesaj içeriği boş gelir), bot token'ı kopyalayın ve botu (kapsamlar: bot + applications.commands) View Channels / Send Messages izinleriyle davet edin.",uk:"У Discord Developer Portal: створіть застосунок + бота, УВІМКНІТЬ Message Content Intent (інакше вміст повідомлення надходить порожнім), скопіюйте bot token і запросіть бота (scopes: bot + applications.commands) з правами View Channels / Send Messages."},"ui.discord.replyDelayHint":{zh:"回复在整轮结束后约 10 秒送达。服务器频道里机器人会响应每一条消息——建议设置发送人白名单。",en:"Replies arrive ~10s after the turn completes. In a server channel the bot replies to every message — set a sender allowlist.","zh-TW":"回覆在整輪結束後約 10 秒送達。伺服器頻道裡機器人會回應每一條訊息——建議設定發送人白名單。",ko:"답장은 한 턴이 끝난 뒤 약 10초 후에 도착합니다. 서버 채널에서는 봇이 모든 메시지에 응답하므로 발신자 허용 목록을 설정하세요.",ja:"返信はターン終了後およそ10秒で届きます。サーバーチャンネルではボットがすべてのメッセージに応答するため、送信者許可リストの設定をおすすめします。",de:"Antworten treffen etwa 10 s nach Abschluss der Runde ein. In einem Server-Kanal antwortet der Bot auf jede Nachricht – legen Sie eine Absender-Whitelist fest.",es:"Las respuestas llegan ~10 s después de completar el turno. En un canal de servidor el bot responde a cada mensaje: configura una lista de remitentes permitidos.",fr:"Les réponses arrivent ~10 s après la fin du tour. Dans un salon de serveur, le bot répond à chaque message — définissez une liste d'expéditeurs autorisés.",it:"Le risposte arrivano ~10 s dopo il completamento del turno. In un canale del server il bot risponde a ogni messaggio: imposta un elenco di mittenti consentiti.",da:"Svar ankommer ~10 s efter at turen er færdig. I en serverkanal svarer botten på hver besked – angiv en tilladelsesliste for afsendere.",pl:"Odpowiedzi przychodzą ~10 s po zakończeniu tury. Na kanale serwera bot odpowiada na każdą wiadomość — ustaw listę dozwolonych nadawców.",ru:"Ответы приходят примерно через 10 с после завершения хода. В канале сервера бот отвечает на каждое сообщение — задайте список разрешённых отправителей.",ar:"تصل الردود بعد نحو 10 ثوانٍ من انتهاء الجولة. في قناة الخادم يردّ الروبوت على كل رسالة — اضبط قائمة المرسلين المسموح بهم.",no:"Svar kommer ~10 s etter at turen er fullført. I en serverkanal svarer boten på hver melding – angi en tillatelsesliste for avsendere.","pt-BR":"As respostas chegam ~10 s após a conclusão do turno. Em um canal de servidor, o bot responde a cada mensagem — defina uma lista de remetentes permitidos.",th:"คำตอบจะมาถึงประมาณ 10 วินาทีหลังจากจบรอบ ในช่องของเซิร์ฟเวอร์บอทจะตอบทุกข้อความ — ควรตั้งรายการผู้ส่งที่อนุญาต",tr:"Yanıtlar tur tamamlandıktan ~10 sn sonra gelir. Bir sunucu kanalında bot her mesaja yanıt verir — bir gönderen izin listesi ayarlayın.",uk:"Відповіді надходять приблизно через 10 с після завершення ходу. У каналі сервера бот відповідає на кожне повідомлення — задайте список дозволених відправників."},"ui.openLogDir":{zh:"打开日志文件夹",en:"Open log folder","zh-TW":"開啟日誌資料夾",ko:"로그 폴더 열기",ja:"ログフォルダを開く",de:"Log-Ordner öffnen",es:"Abrir carpeta de logs",fr:"Ouvrir le dossier de logs",it:"Apri cartella log",da:"Åbn logmappe",pl:"Otwórz folder logów",ru:"Открыть папку логов",ar:"فتح مجلد السجلات",no:"Åpne loggmappe","pt-BR":"Abrir pasta de logs",th:"เปิดโฟลเดอร์บันทึก",tr:"Log klasörünü aç",uk:"Відкрити теку логів"},"ui.openProjectDir":{zh:"在系统中打开项目文件夹",en:"Open project folder","zh-TW":"在系統中開啟專案資料夾",ko:"프로젝트 폴더 열기",ja:"プロジェクトフォルダを開く",de:"Projektordner öffnen",es:"Abrir carpeta del proyecto",fr:"Ouvrir le dossier du projet",it:"Apri cartella progetto",da:"Åbn projektmappe",pl:"Otwórz folder projektu",ru:"Открыть папку проекта",ar:"فتح مجلد المشروع",no:"Åpne prosjektmappe","pt-BR":"Abrir pasta do projeto",th:"เปิดโฟลเดอร์โปรเจกต์",tr:"Proje klasörünü aç",uk:"Відкрити теку проєкту"},"ui.loadLocalJsonl":{zh:"上传日志并解析",en:"Upload and parse log","zh-TW":"上傳日誌並解析",ko:"로그 업로드 및 분석",ja:"ログをアップロードして解析",de:"Log hochladen und analysieren",es:"Subir y analizar registro",fr:"Télécharger et analyser le journal",it:"Carica e analizza il log",da:"Upload og analysér log",pl:"Prześlij i przeanalizuj log",ru:"Загрузить и разобрать журнал",ar:"تحميل وتحليل السجل",no:"Last opp og analyser logg","pt-BR":"Enviar e analisar log",th:"อัปโหลดและวิเคราะห์ล็อก",tr:"Günlüğü yükle ve ayrıştır",uk:"Завантажити та проаналізувати журнал"},"ui.fileTooLarge":{zh:"文件大小不能超过 500MB",en:"File size cannot exceed 500MB","zh-TW":"檔案大小不能超過 500MB",ko:"파일 크기는 500MB를 초과할 수 없습니다",ja:"ファイルサイズは500MBを超えることはできません",de:"Dateigröße darf 500MB nicht überschreiten",es:"El tamaño del archivo no puede superar 500MB",fr:"La taille du fichier ne peut pas dépasser 500 Mo",it:"La dimensione del file non può superare 500MB",da:"Filstørrelsen må ikke overstige 500MB",pl:"Rozmiar pliku nie może przekraczać 500MB",ru:"Размер файла не может превышать 500МБ",ar:"حجم الملف لا يمكن أن يتجاوز 500 ميجابايت",no:"Filstørrelsen kan ikke overstige 500MB","pt-BR":"O tamanho do arquivo não pode exceder 500MB",th:"ขนาดไฟล์ต้องไม่เกิน 500MB",tr:"Dosya boyutu 500MB'ı aşamaz",uk:"Розмір файлу не може перевищувати 500МБ"},"ui.codexMissing.title":{zh:"未检测到 Codex CLI",en:"Codex CLI not found","zh-TW":"未偵測到 Codex CLI",ko:"Codex CLI를 찾을 수 없습니다",ja:"Codex CLI が見つかりません",de:"Codex CLI nicht gefunden",es:"Codex CLI no encontrado",fr:"Codex CLI introuvable",it:"Codex CLI non trovato",da:"Codex CLI ikke fundet",pl:"Nie znaleziono Codex CLI",ru:"Codex CLI не найден",ar:"لم يتم العثور على Codex CLI",no:"Codex CLI ikke funnet","pt-BR":"Codex CLI não encontrado",th:"ไม่พบ Codex CLI",tr:"Codex CLI bulunamadı",uk:"Codex CLI не знайдено"},"ui.codexMissing.desc":{zh:"请先安装 Codex 才能使用本应用:",en:"Please install Codex first:","zh-TW":"請先安裝 Codex 才能使用本應用:",ko:"먼저 Codex를 설치해주세요:",ja:"まず Codex をインストールしてください:",de:"Bitte installieren Sie zuerst Codex:",es:"Instale Codex primero:",fr:"Veuillez d'abord installer Codex :",it:"Installa prima Codex:",da:"Installér venligst Codex først:",pl:"Najpierw zainstaluj Codex:",ru:"Сначала установите Codex:",ar:"يرجى تثبيت Codex أولاً:",no:"Vennligst installer Codex først:","pt-BR":"Instale o Codex primeiro:",th:"กรุณาติดตั้ง Codex ก่อน:",tr:"Lütfen önce Codex'u yükleyin:",uk:"Спочатку встановіть Codex:"},"ui.codexMissing.or":{zh:"或",en:"or","zh-TW":"或",ko:"또는",ja:"または",de:"oder",es:"o",fr:"ou",it:"o",da:"eller",pl:"lub",ru:"или",ar:"أو",no:"eller","pt-BR":"ou",th:"หรือ",tr:"veya",uk:"або"},"ui.codexMissing.native":{zh:"下载 Codex 桌面版",en:"Download Codex Desktop","zh-TW":"下載 Codex 桌面版",ko:"Codex 데스크톱 다운로드",ja:"Codex デスクトップをダウンロード",de:"Codex Desktop herunterladen",es:"Descargar Codex Desktop",fr:"Télécharger Codex Desktop",it:"Scarica Codex Desktop",da:"Download Codex Desktop",pl:"Pobierz Codex Desktop",ru:"Скачать Codex Desktop",ar:"تحميل Codex Desktop",no:"Last ned Codex Desktop","pt-BR":"Baixar Codex Desktop",th:"ดาวน์โหลด Codex Desktop",tr:"Codex Desktop İndir",uk:"Завантажити Codex Desktop"},"ui.dragDropHint":{zh:"拖放文件到此处上传",en:"Drop files here to upload","zh-TW":"拖放檔案到此處上傳",ko:"파일을 여기에 놓아 업로드",ja:"ファイルをここにドロップしてアップロード",de:"Dateien hierher ziehen zum Hochladen",es:"Suelta archivos aquí para subir",fr:"Déposez les fichiers ici pour télécharger",it:"Trascina i file qui per caricare",da:"Slip filer her for at uploade",pl:"Upuść pliki tutaj, aby przesłać",ru:"Перетащите файлы сюда для загрузки",ar:"أسقط الملفات هنا للتحميل",no:"Slipp filer her for å laste opp","pt-BR":"Solte arquivos aqui para enviar",th:"วางไฟล์ที่นี่เพื่ออัปโหลด",tr:"Dosyaları yüklemek için buraya bırakın",uk:"Перетягніть файли сюди для завантаження"},"ui.importToProject":{zh:"拖放文件到此处导入项目",en:"Drop files here to import","zh-TW":"拖放檔案到此處匯入專案",ko:"여기에 파일을 놓아 가져오기",ja:"ファイルをここにドロップしてインポート",de:"Dateien hier ablegen zum Importieren",es:"Suelta archivos aquí para importar",fr:"Déposez les fichiers ici pour importer",it:"Rilascia file qui per importare",da:"Slip filer her for at importere",pl:"Upuść pliki tutaj, aby zaimportować",ru:"Перетащите файлы сюда для импорта",ar:"أسقط الملفات هنا للاستيراد",no:"Slipp filer her for å importere","pt-BR":"Solte arquivos aqui para importar",th:"วางไฟล์ที่นี่เพื่อนำเข้า",tr:"Dosyaları içe aktarmak için buraya bırakın",uk:"Перетягніть файли сюди для імпорту"},"ui.fileImported":{zh:"已导入文件: {name}",en:"File imported: {name}","zh-TW":"已匯入檔案: {name}",ko:"파일 가져옴: {name}",ja:"ファイルをインポートしました: {name}",de:"Datei importiert: {name}",es:"Archivo importado: {name}",fr:"Fichier importé : {name}",it:"File importato: {name}",da:"Fil importeret: {name}",pl:"Zaimportowano plik: {name}",ru:"Файл импортирован: {name}",ar:"تم استيراد الملف: {name}",no:"Fil importert: {name}","pt-BR":"Arquivo importado: {name}",th:"นำเข้าไฟล์แล้ว: {name}",tr:"Dosya içe aktarıldı: {name}",uk:"Файл імпортовано: {name}"},"ui.filesImported":{zh:"已导入 {count} 个文件",en:"{count} files imported","zh-TW":"已匯入 {count} 個檔案",ko:"{count}개 파일 가져옴",ja:"{count} 件のファイルをインポートしました",de:"{count} Dateien importiert",es:"{count} archivos importados",fr:"{count} fichiers importés",it:"{count} file importati",da:"{count} filer importeret",pl:"Zaimportowano {count} plików",ru:"{count} файлов импортировано",ar:"تم استيراد {count} ملفات",no:"{count} filer importert","pt-BR":"{count} arquivos importados",th:"นำเข้า {count} ไฟล์แล้ว",tr:"{count} dosya içe aktarıldı",uk:"Імпортовано {count} файлів"},"ui.importScanning":{zh:"正在扫描文件夹...",en:"Scanning folders...","zh-TW":"正在掃描資料夾...",ko:"폴더 스캔 중...",ja:"フォルダをスキャン中...",de:"Ordner werden gescannt...",es:"Escaneando carpetas...",fr:"Analyse des dossiers...",it:"Scansione delle cartelle...",da:"Scanner mapper...",pl:"Skanowanie folderów...",ru:"Сканирование папок...",ar:"جارٍ فحص المجلدات...",no:"Skanner mapper...","pt-BR":"Escaneando pastas...",th:"กำลังสแกนโฟลเดอร์...",tr:"Klasörler taranıyor...",uk:"Сканування папок..."},"ui.importingProgress":{zh:"正在导入 {total} 个文件...",en:"Importing {total} files...","zh-TW":"正在匯入 {total} 個檔案...",ko:"{total}개 파일 가져오는 중...",ja:"{total} 件のファイルをインポート中...",de:"{total} Dateien werden importiert...",es:"Importando {total} archivos...",fr:"Importation de {total} fichiers...",it:"Importazione di {total} file...",da:"Importerer {total} filer...",pl:"Importowanie {total} plików...",ru:"Импорт {total} файлов...",ar:"جارٍ استيراد {total} ملفات...",no:"Importerer {total} filer...","pt-BR":"Importando {total} arquivos...",th:"กำลังนำเข้า {total} ไฟล์...",tr:"{total} dosya içe aktarılıyor...",uk:"Імпорт {total} файлів..."},"ui.importConfirmLarge":{zh:"即将导入 {count} 个文件,可能需要较长时间,是否继续?",en:"About to import {count} files, this may take a while. Continue?","zh-TW":"即將匯入 {count} 個檔案,可能需要較長時間,是否繼續?",ko:"{count}개 파일을 가져옵니다. 시간이 걸릴 수 있습니다. 계속할까요?",ja:"{count} 件のファイルをインポートします。時間がかかる場合があります。続行しますか?",de:"{count} Dateien werden importiert, das kann eine Weile dauern. Fortfahren?",es:"Se importarán {count} archivos, esto puede tardar. ¿Continuar?",fr:"{count} fichiers vont être importés, cela peut prendre du temps. Continuer ?",it:"Stai per importare {count} file, potrebbe richiedere tempo. Continuare?",da:"Importerer {count} filer, dette kan tage tid. Fortsæt?",pl:"Zaimportujesz {count} plików, może to chwilę potrwać. Kontynuować?",ru:"Будет импортировано {count} файлов, это может занять время. Продолжить?",ar:"على وشك استيراد {count} ملفات، قد يستغرق بعض الوقت. هل تريد المتابعة؟",no:"Importerer {count} filer, dette kan ta tid. Fortsette?","pt-BR":"Serão importados {count} arquivos, pode demorar. Continuar?",th:"กำลังจะนำเข้า {count} ไฟล์ อาจใช้เวลาสักครู่ ดำเนินการต่อ?",tr:"{count} dosya içe aktarılacak, biraz zaman alabilir. Devam edilsin mi?",uk:"Буде імпортовано {count} файлів, це може зайняти час. Продовжити?"},"ui.importPartialFailed":{zh:"成功导入 {ok} 个,失败 {failed} 个:{names}",en:"Imported {ok}, {failed} failed: {names}","zh-TW":"成功匯入 {ok} 個,失敗 {failed} 個:{names}",ko:"{ok}개 성공, {failed}개 실패: {names}",ja:"{ok} 件成功、{failed} 件失敗: {names}",de:"{ok} importiert, {failed} fehlgeschlagen: {names}",es:"{ok} importados, {failed} fallidos: {names}",fr:"{ok} importés, {failed} échoués : {names}",it:"{ok} importati, {failed} falliti: {names}",da:"{ok} importeret, {failed} mislykkedes: {names}",pl:"Zaimportowano {ok}, nie powiodło się {failed}: {names}",ru:"Импортировано {ok}, не удалось {failed}: {names}",ar:"تم استيراد {ok}، فشل {failed}: {names}",no:"{ok} importert, {failed} mislyktes: {names}","pt-BR":"{ok} importados, {failed} falharam: {names}",th:"นำเข้าสำเร็จ {ok} ล้มเหลว {failed}: {names}",tr:"{ok} içe aktarıldı, {failed} başarısız: {names}",uk:"Імпортовано {ok}, не вдалося {failed}: {names}"},"ui.importNoFiles":{zh:"未发现可导入的文件",en:"No importable files found","zh-TW":"未發現可匯入的檔案",ko:"가져올 파일을 찾을 수 없습니다",ja:"インポート可能なファイルがありません",de:"Keine importierbaren Dateien gefunden",es:"No se encontraron archivos para importar",fr:"Aucun fichier importable trouvé",it:"Nessun file importabile trovato",da:"Ingen filer at importere",pl:"Nie znaleziono plików do zaimportowania",ru:"Нет файлов для импорта",ar:"لم يتم العثور على ملفات قابلة للاستيراد",no:"Ingen filer å importere","pt-BR":"Nenhum arquivo importável encontrado",th:"ไม่พบไฟล์ที่นำเข้าได้",tr:"İçe aktarılacak dosya bulunamadı",uk:"Немає файлів для імпорту"},"ui.importAllFailed":{zh:"全部导入失败({failed} 个):{names}",en:"All imports failed ({failed}): {names}","zh-TW":"全部匯入失敗({failed} 個):{names}",ko:"모두 실패 ({failed}개): {names}",ja:"すべて失敗しました({failed} 件): {names}",de:"Alle Importe fehlgeschlagen ({failed}): {names}",es:"Todas las importaciones fallaron ({failed}): {names}",fr:"Toutes les importations ont échoué ({failed}) : {names}",it:"Tutte le importazioni fallite ({failed}): {names}",da:"Alle importer mislykkedes ({failed}): {names}",pl:"Wszystkie importy nie powiodły się ({failed}): {names}",ru:"Все импорты не удались ({failed}): {names}",ar:"فشلت جميع عمليات الاستيراد ({failed}): {names}",no:"Alle importer mislyktes ({failed}): {names}","pt-BR":"Todas as importações falharam ({failed}): {names}",th:"นำเข้าล้มเหลวทั้งหมด ({failed}): {names}",tr:"Tüm içe aktarmalar başarısız ({failed}): {names}",uk:"Усі імпорти не вдалися ({failed}): {names}"},"ui.exportPrompts":{zh:"查看用户 Prompt",en:"Export user prompts","zh-TW":"匯出用戶 Prompt",ko:"사용자 Prompt 내보내기",ja:"ユーザー Prompt をエクスポート",de:"Benutzer-Prompts exportieren",es:"Exportar prompts de usuario",fr:"Exporter les prompts utilisateur",it:"Esporta prompt utente",da:"Eksportér bruger-prompts",pl:"Eksportuj prompty użytkownika",ru:"Экспорт пользовательских Prompt",ar:"تصدير Prompt المستخدم",no:"Eksporter bruker-prompts","pt-BR":"Exportar prompts do usuário",th:"ส่งออก Prompt ผู้ใช้",tr:"Kullanıcı Prompt'larını dışa aktar",uk:"Експорт Prompt користувача"},"ui.exportPromptsTxt":{zh:"导出到本地 .txt",en:"Export to local .txt","zh-TW":"匯出到本地 .txt",ko:"로컬 .txt로 내보내기",ja:"ローカル .txt にエクスポート",de:"Als lokale .txt exportieren",es:"Exportar a .txt local",fr:"Exporter en .txt local",it:"Esporta in .txt locale",da:"Eksportér til lokal .txt",pl:"Eksportuj do lokalnego .txt",ru:"Экспорт в локальный .txt",ar:"تصدير إلى ملف .txt محلي",no:"Eksporter til lokal .txt","pt-BR":"Exportar para .txt local",th:"ส่งออกเป็นไฟล์ .txt ในเครื่อง",tr:"Yerel .txt olarak dışa aktar",uk:"Експорт у локальний .txt"},"ui.pluginManagement":{zh:"插件管理",en:"Plugin Management","zh-TW":"外掛管理",ko:"플러그인 관리",ja:"プラグイン管理",de:"Plugin-Verwaltung",es:"Gestión de plugins",fr:"Gestion des plugins",it:"Gestione plugin",da:"Plugin-styring",pl:"Zarządzanie wtyczkami",ru:"Управление плагинами",ar:"إدارة الإضافات",no:"Plugin-administrasjon","pt-BR":"Gerenciamento de plugins",th:"จัดการปลั๊กอิน",tr:"Eklenti yönetimi",uk:"Керування плагінами"},"ui.plugins.empty":{zh:"暂无插件",en:"No plugins installed"},"ui.plugins.emptyHint":{zh:"将 .js 文件放入插件目录即可加载",en:"Place .js files in the plugins directory to load"},"ui.plugins.delete":{zh:"删除",en:"Delete"},"ui.plugins.deleteConfirm":{zh:"确认删除插件「{name}」?此操作不可恢复。",en:'Delete plugin "{name}"? This cannot be undone.'},"ui.plugins.reload":{zh:"重新加载",en:"Reload"},"ui.plugins.pluginsDir":{zh:"插件目录",en:"Plugin directory"},"ui.plugins.add":{zh:"本地安装",en:"Local Install"},"ui.plugins.invalidFile":{zh:"请选择 .js 或 .mjs 文件",en:"Please select .js or .mjs files"},"ui.plugins.addSuccess":{zh:"插件添加成功",en:"Plugin added successfully"},"ui.plugins.addFailed":{zh:"添加插件失败:{reason}",en:"Failed to add plugin: {reason}"},"ui.plugins.serverError":{zh:"服务端错误({status}),请检查服务是否正常运行",en:"Server error ({status}), please check if the server is running properly"},"ui.plugins.cdnInstall":{zh:"在线安装",en:"Install from URL","zh-TW":"線上安裝",ko:"URL에서 설치",ja:"URLからインストール",de:"Von URL installieren",es:"Instalar desde URL",fr:"Installer depuis une URL",it:"Installa da URL",da:"Installer fra URL",pl:"Zainstaluj z URL",ru:"Установить по URL",ar:"تثبيت من عنوان URL",no:"Installer fra URL","pt-BR":"Instalar a partir de URL",th:"ติดตั้งจาก URL",tr:"URL'den yükle",uk:"Встановити з URL"},"ui.plugins.cdnUrl":{zh:"CDN 地址",en:"CDN URL","zh-TW":"CDN 地址",ko:"CDN URL",ja:"CDN URL",de:"CDN-URL",es:"URL de CDN",fr:"URL CDN",it:"URL CDN",da:"CDN URL",pl:"URL CDN",ru:"URL CDN",ar:"عنوان CDN",no:"CDN URL","pt-BR":"URL do CDN",th:"URL ของ CDN",tr:"CDN URL'si",uk:"URL CDN"},"ui.plugins.cdnUrlPlaceholder":{zh:"请输入插件的 CDN 地址(如 https://cdn.example.com/plugin.js)",en:"Enter plugin CDN URL (e.g. https://cdn.example.com/plugin.js)","zh-TW":"請輸入插件的 CDN 地址(如 https://cdn.example.com/plugin.js)",ko:"플러그인 CDN URL을 입력하세요 (예: https://cdn.example.com/plugin.js)",ja:"プラグインのCDN URLを入力してください(例: https://cdn.example.com/plugin.js)",de:"Plugin-CDN-URL eingeben (z.B. https://cdn.example.com/plugin.js)",es:"Ingrese la URL CDN del plugin (ej. https://cdn.example.com/plugin.js)",fr:"Entrez l'URL CDN du plugin (ex. https://cdn.example.com/plugin.js)",it:"Inserisci l'URL CDN del plugin (es. https://cdn.example.com/plugin.js)",da:"Indtast plugin CDN URL (f.eks. https://cdn.example.com/plugin.js)",pl:"Wprowadź URL CDN wtyczki (np. https://cdn.example.com/plugin.js)",ru:"Введите URL CDN плагина (напр. https://cdn.example.com/plugin.js)",ar:"أدخل عنوان CDN للإضافة (مثال: https://cdn.example.com/plugin.js)",no:"Skriv inn plugin CDN URL (f.eks. https://cdn.example.com/plugin.js)","pt-BR":"Insira a URL CDN do plugin (ex. https://cdn.example.com/plugin.js)",th:"ป้อน URL CDN ของปลั๊กอิน (เช่น https://cdn.example.com/plugin.js)",tr:"Eklenti CDN URL'sini girin (ör. https://cdn.example.com/plugin.js)",uk:"Введіть URL CDN плагіна (напр. https://cdn.example.com/plugin.js)"},"ui.plugins.cdnName":{zh:"插件名称",en:"Plugin Name","zh-TW":"插件名稱",ko:"플러그인 이름",ja:"プラグイン名",de:"Plugin-Name",es:"Nombre del plugin",fr:"Nom du plugin",it:"Nome del plugin",da:"Plugin-navn",pl:"Nazwa wtyczki",ru:"Имя плагина",ar:"اسم الإضافة",no:"Plugin-navn","pt-BR":"Nome do plugin",th:"ชื่อปลั๊กอิน",tr:"Eklenti adı",uk:"Назва плагіна"},"ui.plugins.cdnNamePlaceholder":{zh:"请输入插件保存名称(如 my-plugin.js)",en:"Enter plugin save name (e.g. my-plugin.js)","zh-TW":"請輸入插件儲存名稱(如 my-plugin.js)",ko:"플러그인 저장 이름을 입력하세요 (예: my-plugin.js)",ja:"プラグインの保存名を入力してください(例: my-plugin.js)",de:"Plugin-Speichernamen eingeben (z.B. my-plugin.js)",es:"Ingrese el nombre para guardar el plugin (ej. my-plugin.js)",fr:"Entrez le nom de sauvegarde du plugin (ex. my-plugin.js)",it:"Inserisci il nome di salvataggio del plugin (es. my-plugin.js)",da:"Indtast plugin-gemmenavn (f.eks. my-plugin.js)",pl:"Wprowadź nazwę zapisu wtyczki (np. my-plugin.js)",ru:"Введите имя для сохранения плагина (напр. my-plugin.js)",ar:"أدخل اسم حفظ الإضافة (مثال: my-plugin.js)",no:"Skriv inn plugin-lagringsnavn (f.eks. my-plugin.js)","pt-BR":"Insira o nome de salvamento do plugin (ex. my-plugin.js)",th:"ป้อนชื่อบันทึกปลั๊กอิน (เช่น my-plugin.js)",tr:"Eklenti kayıt adını girin (ör. my-plugin.js)",uk:"Введіть ім'я збереження плагіна (напр. my-plugin.js)"},"ui.plugins.cdnUrlRequired":{zh:"请输入 CDN 地址",en:"Please enter CDN URL","zh-TW":"請輸入 CDN 地址",ko:"CDN URL을 입력해 주세요",ja:"CDN URLを入力してください",de:"Bitte CDN-URL eingeben",es:"Por favor ingrese la URL de CDN",fr:"Veuillez entrer l'URL CDN",it:"Inserisci l'URL CDN",da:"Indtast venligst CDN URL",pl:"Proszę wprowadzić URL CDN",ru:"Пожалуйста, введите URL CDN",ar:"يرجى إدخال عنوان CDN",no:"Vennligst skriv inn CDN URL","pt-BR":"Por favor, insira a URL do CDN",th:"กรุณาป้อน URL ของ CDN",tr:"Lütfen CDN URL'sini girin",uk:"Будь ласка, введіть URL CDN"},"ui.plugins.cdnNameRequired":{zh:"请输入插件名称",en:"Please enter plugin name","zh-TW":"請輸入插件名稱",ko:"플러그인 이름을 입력해 주세요",ja:"プラグイン名を入力してください",de:"Bitte Plugin-Namen eingeben",es:"Por favor ingrese el nombre del plugin",fr:"Veuillez entrer le nom du plugin",it:"Inserisci il nome del plugin",da:"Indtast venligst plugin-navn",pl:"Proszę wprowadzić nazwę wtyczki",ru:"Пожалуйста, введите имя плагина",ar:"يرجى إدخال اسم الإضافة",no:"Vennligst skriv inn plugin-navn","pt-BR":"Por favor, insira o nome do plugin",th:"กรุณาป้อนชื่อปลั๊กอิน",tr:"Lütfen eklenti adını girin",uk:"Будь ласка, введіть назву плагіна"},"ui.plugins.cdnInvalidUrl":{zh:"请输入有效的 URL 地址",en:"Please enter a valid URL","zh-TW":"請輸入有效的 URL 地址",ko:"유효한 URL을 입력해 주세요",ja:"有効なURLを入力してください",de:"Bitte eine gültige URL eingeben",es:"Por favor ingrese una URL válida",fr:"Veuillez entrer une URL valide",it:"Inserisci un URL valido",da:"Indtast venligst en gyldig URL",pl:"Proszę wprowadzić prawidłowy URL",ru:"Пожалуйста, введите действительный URL",ar:"يرجى إدخال عنوان URL صالح",no:"Vennligst skriv inn en gyldig URL","pt-BR":"Por favor, insira uma URL válida",th:"กรุณาป้อน URL ที่ถูกต้อง",tr:"Lütfen geçerli bir URL girin",uk:"Будь ласка, введіть дійсну URL-адресу"},"ui.plugins.cdnInstallBtn":{zh:"安装",en:"Install","zh-TW":"安裝",ko:"설치",ja:"インストール",de:"Installieren",es:"Instalar",fr:"Installer",it:"Installa",da:"Installer",pl:"Zainstaluj",ru:"Установить",ar:"تثبيت",no:"Installer","pt-BR":"Instalar",th:"ติดตั้ง",tr:"Yükle",uk:"Встановити"},"ui.plugins.cdnInstallSuccess":{zh:"插件安装成功",en:"Plugin installed successfully","zh-TW":"插件安裝成功",ko:"플러그인이 성공적으로 설치되었습니다",ja:"プラグインのインストールに成功しました",de:"Plugin erfolgreich installiert",es:"Plugin instalado correctamente",fr:"Plugin installé avec succès",it:"Plugin installato con successo",da:"Plugin installeret succesfuldt",pl:"Wtyczka zainstalowana pomyślnie",ru:"Плагин успешно установлен",ar:"تم تثبيت الإضافة بنجاح",no:"Plugin installert vellykket","pt-BR":"Plugin instalado com sucesso",th:"ติดตั้งปลั๊กอินสำเร็จ",tr:"Eklenti başarıyla yüklendi",uk:"Плагін успішно встановлено"},"ui.plugins.cdnInstallFailed":{zh:"安装插件失败:{reason}",en:"Failed to install plugin: {reason}","zh-TW":"安裝插件失敗:{reason}",ko:"플러그인 설치 실패: {reason}",ja:"プラグインのインストールに失敗しました:{reason}",de:"Plugin-Installation fehlgeschlagen: {reason}",es:"Error al instalar el plugin: {reason}",fr:"Échec de l'installation du plugin : {reason}",it:"Installazione del plugin fallita: {reason}",da:"Plugin-installation mislykkedes: {reason}",pl:"Instalacja wtyczki nie powiodła się: {reason}",ru:"Не удалось установить плагин: {reason}",ar:"فشل تثبيت الإضافة: {reason}",no:"Plugin-installasjon mislyktes: {reason}","pt-BR":"Falha ao instalar o plugin: {reason}",th:"ติดตั้งปลั๊กอินล���มเหลว: {reason}",tr:"Eklenti yüklenemedi: {reason}",uk:"Не вдалося встановити плагін: {reason}"},"ui.plugins.cdnFetching":{zh:"正在下载插件...",en:"Downloading plugin...","zh-TW":"正在下載插件...",ko:"플러그인 다운로드 중...",ja:"プラグインをダウンロード中...",de:"Plugin wird heruntergeladen...",es:"Descargando plugin...",fr:"Téléchargement du plugin...",it:"Download del plugin in corso...",da:"Downloader plugin...",pl:"Pobieranie wtyczki...",ru:"Загрузка плагина...",ar:"جارٍ تنزيل الإضافة...",no:"Laster ned plugin...","pt-BR":"Baixando plugin...",th:"กำลังดาวน์โหลดปลั๊กอิน...",tr:"Eklenti indiriliyor...",uk:"Завантаження плагіна..."},"ui.tokenStats":{zh:"数据统计",en:"Data Stats","zh-TW":"數據統計",ko:"데이터 통계",ja:"データ統計",de:"Datenstatistik",es:"Estadísticas de datos",fr:"Statistiques de données",it:"Statistiche dati",da:"Datastatistik",pl:"Statystyki danych",ru:"Статистика данных",ar:"إحصائيات البيانات",no:"Datastatistikk","pt-BR":"Estatísticas de dados",th:"สถิติข้อมูล",tr:"Veri İstatistikleri",uk:"Статистика даних"},"ui.liveMonitoring":{zh:"当前项目",en:"Project","zh-TW":"當前專案",ko:"현재 프로젝트",ja:"現在のプロジェクト",de:"Projekt",es:"Proyecto",fr:"Projet",it:"Progetto",da:"Projekt",pl:"Projekt",ru:"Проект",ar:"المشروع",no:"Prosjekt","pt-BR":"Projeto",th:"โปรเจกต์",tr:"Proje",uk:"Проєкт"},"ui.loadingChat":{zh:"加载对话中",en:"Loading chat","zh-TW":"載入對話中",ko:"대화 로딩 중",ja:"チャット読み込み中",de:"Chat wird geladen",es:"Cargando chat",fr:"Chargement du chat",it:"Caricamento chat",da:"Indlæser chat",pl:"Ładowanie czatu",ru:"Загрузка чата",ar:"جارٍ تحميل المحادثة",no:"Laster chat","pt-BR":"Carregando chat",th:"กำลังโหลดแชท",tr:"Sohbet yükleniyor",uk:"Завантаження чату"},"ui.mobileChatBrowse":{zh:"对话浏览",en:"Chat Browse","zh-TW":"對話瀏覽",ko:"대화 찾아보기",ja:"チャット閲覧",de:"Chat durchsuchen",es:"Ver chat",fr:"Parcourir le chat",it:"Sfoglia chat",da:"Gennemse chat",pl:"Przeglądaj czat",ru:"Просмотр чата",ar:"تصفح المحادثة",no:"Bla gjennom chat","pt-BR":"Navegar chat",th:"ดูแชท",tr:"Sohbet Gözat",uk:"Перегляд чату"},"ui.mobileChatExit":{zh:"退出对话",en:"Exit Chat","zh-TW":"退出對話",ko:"채팅 종료",ja:"チャット終了",de:"Chat beenden",es:"Salir del chat",fr:"Quitter le chat",it:"Esci dalla chat",da:"Afslut chat",pl:"Zamknij czat",ru:"Выйти из чата",ar:"الخروج من المحادثة",no:"Avslutt chat","pt-BR":"Sair do chat",th:"ออกจากแชท",tr:"Sohbetten Çık",uk:"Вийти з чату"},"ui.mobileTerminalBrowse":{zh:"打开终端",en:"Terminal","zh-TW":"開啟終端",ko:"터미널 열기",ja:"ターミナルを開く",de:"Terminal öffnen",es:"Abrir terminal",fr:"Ouvrir le terminal",it:"Apri terminale",da:"Åbn terminal",pl:"Otwórz terminal",ru:"Открыть терминал",ar:"فتح الطرفية",no:"Åpne terminal","pt-BR":"Abrir terminal",th:"เปิดเทอร์มินัล",tr:"Terminal Aç",uk:"Відкрити термінал"},"ui.mobileTerminalExit":{zh:"退出终端",en:"Exit Terminal","zh-TW":"退出終端",ko:"터미널 종료",ja:"ターミナル終了",de:"Terminal beenden",es:"Salir del terminal",fr:"Quitter le terminal",it:"Esci dal terminale",da:"Afslut terminal",pl:"Zamknij terminal",ru:"Выйти из терминала",ar:"الخروج من الطرفية",no:"Avslutt terminal","pt-BR":"Sair do terminal",th:"ออกจากเทอร์มินัล",tr:"Terminalden Çık",uk:"Вийти з терміналу"},"ui.mobileGitDiffBrowse":{zh:"Git Diff",en:"Git Diff","zh-TW":"Git Diff",ko:"Git Diff",ja:"Git Diff",de:"Git Diff",es:"Git Diff",fr:"Git Diff",it:"Git Diff",da:"Git Diff",pl:"Git Diff",ru:"Git Diff",ar:"Git Diff",no:"Git Diff","pt-BR":"Git Diff",th:"Git Diff",tr:"Git Diff",uk:"Git Diff"},"ui.mobileGitDiffExit":{zh:"退出Diff",en:"Exit Diff","zh-TW":"退出Diff",ko:"Diff 종료",ja:"Diff終了",de:"Diff beenden",es:"Salir de Diff",fr:"Quitter Diff",it:"Esci da Diff",da:"Afslut Diff",pl:"Zamknij Diff",ru:"Выйти из Diff",ar:"الخروج من Diff",no:"Avslutt Diff","pt-BR":"Sair do Diff",th:"ออกจาก Diff",tr:"Diff'ten Çık",uk:"Вийти з Diff"},"ui.mobileGoBack":{zh:"回退",en:"Back","zh-TW":"返回",ko:"뒤로",ja:"戻る",de:"Zurück",es:"Volver",fr:"Retour",it:"Indietro",da:"Tilbage",pl:"Wstecz",ru:"Назад",ar:"رجوع",no:"Tilbake","pt-BR":"Voltar",th:"ย้อนกลับ",tr:"Geri",uk:"Назад"},"ui.mobileGitDiffHint":{zh:"选择文件查看变更",en:"Select a file to view changes","zh-TW":"選擇檔案查看變更",ko:"파일을 선택하여 변경사항 보기",ja:"ファイルを選択して変更を表示",de:"Datei auswählen, um Änderungen anzuzeigen",es:"Seleccione un archivo para ver los cambios",fr:"Sélectionnez un fichier pour voir les modifications",it:"Seleziona un file per visualizzare le modifiche",da:"Vælg en fil for at se ændringer",pl:"Wybierz plik, aby zobaczyć zmiany",ru:"Выберите файл для просмотра изменений",ar:"اختر ملفًا لعرض التغييرات",no:"Velg en fil for å se endringer","pt-BR":"Selecione um arquivo para ver as alterações",th:"เลือกไฟล์เพื่อดูการเปลี่ยนแปลง",tr:"Değişiklikleri görmek için bir dosya seçin",uk:"Виберіть файл для перегляду змін"},"ui.projectFolder":{zh:"项目文件夹",en:"Project Folder","zh-TW":"專案資料夾",ko:"프로젝트 폴더",ja:"プロジェクトフォルダ",de:"Projektordner",es:"Carpeta del proyecto",fr:"Dossier du projet",it:"Cartella progetto",da:"Projektmappe",pl:"Folder projektu",ru:"Папка проекта",ar:"مجلد المشروع",no:"Prosjektmappe","pt-BR":"Pasta do projeto",th:"โฟลเดอร์โปรเจกต์",tr:"Proje Klasörü",uk:"Папка проєкту"},"ui.mobileFileExplorerHint":{zh:"选择文件查看内容",en:"Select a file to view content","zh-TW":"選擇檔案查看內容",ko:"파일을 선택하여 내용 보기",ja:"ファイルを選択して内容を表示",de:"Datei auswählen, um Inhalt anzuzeigen",es:"Seleccione un archivo para ver el contenido",fr:"Sélectionnez un fichier pour voir le contenu",it:"Seleziona un file per visualizzare il contenuto",da:"Vælg en fil for at se indholdet",pl:"Wybierz plik, aby zobaczyć zawartość",ru:"Выберите файл для просмотра содержимого",ar:"اختر ملفًا لعرض المحتوى",no:"Velg en fil for å se innholdet","pt-BR":"Selecione um arquivo para ver o conteúdo",th:"เลือกไฟล์เพื่อดูเนื้อหา",tr:"İçeriği görmek için bir dosya seçin",uk:"Виберіть файл для перегляду вмісту"},"ui.modeSwitchTitle":{zh:"视图切换",en:"Switch View","zh-TW":"檢視切換",ko:"보기 전환",ja:"ビュー切替",de:"Ansicht wechseln",es:"Cambiar vista",fr:"Changer de vue",it:"Cambia vista",da:"Skift visning",pl:"Zmień widok",ru:"Переключить вид",ar:"تبديل العرض",no:"Bytt visning","pt-BR":"Trocar visualização",th:"สลับมุมมอง",tr:"Görünümü Değiştir",uk:"Змінити вигляд"},"ui.modeSwitchToSidebar":{zh:"当前窗口较窄,是否切换到侧边栏模式?",en:"Window is narrow. Switch to sidebar mode?","zh-TW":"目前視窗較窄,是否切換到側邊欄模式?",ko:"창이 좁습니다. 사이드바 모드로 전환할까요?",ja:"ウィンドウが狭いです。サイドバーモードに切り替えますか?",de:"Fenster ist schmal. In den Seitenleistenmodus wechseln?",es:"La ventana es estrecha. ¿Cambiar al modo barra lateral?",fr:"La fenêtre est étroite. Passer en mode barre latérale ?",it:"La finestra è stretta. Passare alla modalità barra laterale?",da:"Vinduet er smalt. Skift til sidebjælketilstand?",pl:"Okno jest wąskie. Przełączyć na tryb paska bocznego?",ru:"Окно слишком узкое. Переключить на режим боковой панели?",ar:"النافذة ضيقة. هل تريد التبديل إلى وضع الشريط الجانبي؟",no:"Vinduet er smalt. Bytt til sidefeltmodus?","pt-BR":"Janela estreita. Mudar para modo barra lateral?",th:"หน้าต่างแคบ สลับเป็นโหมดแถบข้าง?",tr:"Pencere dar. Kenar çubuğu moduna geçilsin mi?",uk:"Вікно вузьке. Перемкнути на режим бічної панелі?"},"ui.modeSwitchToFullView":{zh:"当前窗口较宽,是否切换到全览模式?",en:"Window is wide. Switch to full view mode?","zh-TW":"目前視窗較寬,是否切換到全覽模式?",ko:"창이 넓습니다. 전체 보기 모드로 전환할까요?",ja:"ウィンドウが広いです。フルビューモードに切り替えますか?",de:"Fenster ist breit. In den Vollansichtsmodus wechseln?",es:"La ventana es ancha. ¿Cambiar al modo vista completa?",fr:"La fenêtre est large. Passer en mode vue complète ?",it:"La finestra è larga. Passare alla modalità vista completa?",da:"Vinduet er bredt. Skift til fuld visningstilstand?",pl:"Okno jest szerokie. Przełączyć na tryb pełnego widoku?",ru:"Окно широкое. Переключить на полный режим просмотра?",ar:"النافذة واسعة. هل تريد التبديل إلى وضع العرض الكامل؟",no:"Vinduet er bredt. Bytt til fullvisningsmodus?","pt-BR":"Janela larga. Mudar para modo visualização completa?",th:"หน้าต่างกว้าง สลับเป็นโหมดเต็มจอ?",tr:"Pencere geniş. Tam görünüm moduna geçilsin mi?",uk:"Вікно широке. Перемкнути на повний режим перегляду?"},"ui.sendFailed":{zh:"发送失败,请重试",en:"Send failed, please try again","zh-TW":"傳送失敗,請重試",ko:"전송 실패, 다시 시도해주세요",ja:"送信に失敗しました。もう一度お試しください",de:"Senden fehlgeschlagen, bitte erneut versuchen",es:"Error al enviar, inténtelo de nuevo",fr:"Échec de l'envoi, veuillez réessayer",it:"Invio fallito, riprova",da:"Afsendelse mislykkedes, prøv igen",pl:"Wysyłanie nie powiodło się, spróbuj ponownie",ru:"Отправка не удалась, попробуйте снова",ar:"فشل الإرسال، يرجى المحاولة مرة أخرى",no:"Sending mislyktes, prøv igjen","pt-BR":"Falha ao enviar, tente novamente",th:"ส่งไม่สำเร็จ กรุณาลองอีกครั้ง",tr:"Gönderme başarısız, lütfen tekrar deneyin",uk:"Надсилання не вдалося, спробуйте ще раз"},"ui.mobileMenu":{zh:"菜单",en:"Menu","zh-TW":"選單",ko:"메뉴",ja:"メニュー",de:"Menü",es:"Menú",fr:"Menu",it:"Menu",da:"Menu",pl:"Menu",ru:"Меню",ar:"القائمة",no:"Meny","pt-BR":"Menu",th:"เมนู",tr:"Menü",uk:"Меню"},"ui.logManagement":{zh:"日志管理",en:"Log Management","zh-TW":"日誌管理",ko:"로그 관리",ja:"ログ管理",de:"Protokollverwaltung",es:"Gestión de registros",fr:"Gestion des journaux",it:"Gestione log",da:"Logstyring",pl:"Zarządzanie logami",ru:"Управление журналами",ar:"إدارة السجلات",no:"Logghåndtering","pt-BR":"Gerenciamento de logs",th:"จัดการบันทึก",tr:"Günlük Yönetimi",uk:"Керування журналами"},"ui.inflightRequests":{zh:"在途请求",en:"Inflight Requests","zh-TW":"在途請求",ko:"진행 중인 요청",ja:"処理中のリクエスト",de:"Laufende Anfragen",es:"Solicitudes en curso",fr:"Requêtes en cours",it:"Richieste in corso",da:"Igangværende forespørgsler",pl:"Trwające żądania",ru:"Текущие запросы",ar:"الطلبات الجارية",no:"Pågående forespørsler","pt-BR":"Requisições em andamento",th:"คำขอที่กำลังดำเนินการ",tr:"Devam Eden İstekler",uk:"Поточні запити"},"ui.noInflightRequests":{zh:"暂无在途请求",en:"No inflight requests","zh-TW":"暫無在途請求",ko:"진행 중인 요청 없음",ja:"処理中のリクエストなし",de:"Keine laufenden Anfragen",es:"Sin solicitudes en curso",fr:"Aucune requête en cours",it:"Nessuna richiesta in corso",da:"Ingen igangværende forespørgsler",pl:"Brak trwających żądań",ru:"Нет текущих запросов",ar:"لا توجد طلبات جارية",no:"Ingen pågående forespørsler","pt-BR":"Nenhuma requisição em andamento",th:"ไม่มีคำขอที่กำลังดำเนินการ",tr:"Devam eden istek yok",uk:"Немає поточних запитів"},"ui.historyLog":{zh:"历史日志: {file}",en:"History: {file}","zh-TW":"歷史日誌: {file}",ko:"기록: {file}",ja:"履歴: {file}",de:"Verlauf: {file}",es:"Historial: {file}",fr:"Historique : {file}",it:"Cronologia: {file}",da:"Historik: {file}",pl:"Historia: {file}",ru:"История: {file}",ar:"السجل: {file}",no:"Historikk: {file}","pt-BR":"Histórico: {file}",th:"ประวัติ: {file}",tr:"Geçmiş: {file}",uk:"Історія: {file}"},"ui.usage.ariaLabel":{zh:"套餐用量",en:"Plan usage","zh-TW":"方案用量",ko:"플랜 사용량",ja:"プラン使用量",de:"Plan-Nutzung",es:"Uso del plan",fr:"Utilisation du forfait",it:"Utilizzo del piano",da:"Planforbrug",pl:"Zużycie planu",ru:"Использование плана",ar:"استخدام الخطة",no:"Planforbruk","pt-BR":"Uso do plano",th:"การใช้งานแพ็กเกจ",tr:"Plan kullanımı",uk:"Використання плану"},"ui.usage.title":{zh:"套餐用量",en:"Plan usage","zh-TW":"方案用量",ko:"플랜 사용량",ja:"プラン使用量",de:"Plan-Nutzung",es:"Uso del plan",fr:"Utilisation du forfait",it:"Utilizzo del piano",da:"Planforbrug",pl:"Zużycie planu",ru:"Использование плана",ar:"استخدام الخطة",no:"Planforbruk","pt-BR":"Uso do plano",th:"การใช้งานแพ็กเกจ",tr:"Plan kullanımı",uk:"Використання плану"},"ui.usage.fiveHour":{zh:"5 小时额度",en:"5-hour quota","zh-TW":"5 小時額度",ko:"5시간 한도",ja:"5時間枠",de:"5-Stunden-Kontingent",es:"Cuota de 5 horas",fr:"Quota 5 heures",it:"Quota 5 ore",da:"5-timers kvote",pl:"Limit 5-godzinny",ru:"5-часовой лимит",ar:"حصة 5 ساعات",no:"5-timers kvote","pt-BR":"Cota de 5 horas",th:"โควตา 5 ชั่วโมง",tr:"5 saatlik kota",uk:"5-годинна квота"},"ui.usage.weekly":{zh:"周额度",en:"Weekly quota","zh-TW":"週額度",ko:"주간 한도",ja:"週間枠",de:"Wochenkontingent",es:"Cuota semanal",fr:"Quota hebdomadaire",it:"Quota settimanale",da:"Ugentlig kvote",pl:"Limit tygodniowy",ru:"Недельный лимит",ar:"الحصة الأسبوعية",no:"Ukentlig kvote","pt-BR":"Cota semanal",th:"โควตารายสัปดาห์",tr:"Haftalık kota",uk:"Тижнева квота"},"ui.usage.weeklyShort":{zh:"周",en:"Wk","zh-TW":"週",ko:"주",ja:"週",de:"Wo",es:"Sem",fr:"Sem",it:"Sett",da:"Uge",pl:"Tydz",ru:"Нед",ar:"أسبوع",no:"Uke","pt-BR":"Sem",th:"สัปดาห์",tr:"Hft",uk:"Тижд"},"ui.usage.primary":{zh:"5 小时额度",en:"5-hour quota","zh-TW":"5 小時額度",ko:"5시간 한도",ja:"5時間枠",de:"5-Stunden-Kontingent",es:"Cuota de 5 horas",fr:"Quota 5 heures",it:"Quota 5 ore",da:"5-timers kvote",pl:"Limit 5-godzinny",ru:"5-часовой лимит",ar:"حصة 5 ساعات",no:"5-timers kvote","pt-BR":"Cota de 5 horas",th:"โควตา 5 ชั่วโมง",tr:"5 saatlik kota",uk:"5-годинна квота"},"ui.usage.secondary":{zh:"周额度",en:"Weekly quota","zh-TW":"週額度",ko:"주간 한도",ja:"週間枠",de:"Wochenkontingent",es:"Cuota semanal",fr:"Quota hebdomadaire",it:"Quota settimanale",da:"Ugentlig kvote",pl:"Limit tygodniowy",ru:"Недельный лимит",ar:"الحصة الأسبوعية",no:"Ukentlig kvote","pt-BR":"Cota semanal",th:"โควตารายสัปดาห์",tr:"Haftalık kota",uk:"Тижнева квота"},"ui.usage.primaryShort":{zh:"5h",en:"5h","zh-TW":"5h",ko:"5h",ja:"5h",de:"5h",es:"5h",fr:"5h",it:"5h",da:"5h",pl:"5h",ru:"5ч",ar:"5س",no:"5h","pt-BR":"5h",th:"5ชม.",tr:"5sa",uk:"5год"},"ui.usage.secondaryShort":{zh:"周",en:"Wk","zh-TW":"週",ko:"주",ja:"週",de:"Wo",es:"Sem",fr:"Sem",it:"Sett",da:"Uge",pl:"Tydz",ru:"Нед",ar:"أسبوع",no:"Uke","pt-BR":"Sem",th:"สัปดาห์",tr:"Hft",uk:"Тижд"},"ui.usage.namedSlot":{zh:"{name} {slot}",en:"{name} {slot}","zh-TW":"{name} {slot}",ko:"{name} {slot}",ja:"{name} {slot}",de:"{name} {slot}",es:"{name} {slot}",fr:"{name} {slot}",it:"{name} {slot}",da:"{name} {slot}",pl:"{name} {slot}",ru:"{name} {slot}",ar:"{name} {slot}",no:"{name} {slot}","pt-BR":"{name} {slot}",th:"{name} {slot}",tr:"{name} {slot}",uk:"{name} {slot}"},"ui.usage.requests":{zh:"请求",en:"Requests","zh-TW":"請求",ko:"요청",ja:"リクエスト",de:"Anfragen",es:"Solicitudes",fr:"Requêtes",it:"Richieste",da:"Anmodninger",pl:"Żądania",ru:"Запросы",ar:"الطلبات",no:"Forespørsler","pt-BR":"Solicitações",th:"คำขอ",tr:"İstekler",uk:"Запити"},"ui.usage.tokens":{zh:"Token",en:"Tokens","zh-TW":"Token",ko:"토큰",ja:"トークン",de:"Tokens",es:"Tokens",fr:"Tokens",it:"Token",da:"Tokens",pl:"Tokeny",ru:"Токены",ar:"الرموز",no:"Tokens","pt-BR":"Tokens",th:"โทเค็น",tr:"Tokenlar",uk:"Токени"},"ui.usage.requestsShort":{zh:"请求",en:"Req","zh-TW":"請求",ko:"요청",ja:"Req",de:"Req",es:"Req",fr:"Req",it:"Rich",da:"Req",pl:"Żąd.",ru:"Запр.",ar:"طلبات",no:"Req","pt-BR":"Req",th:"ขอ",tr:"İst.",uk:"Зап."},"ui.usage.tokensShort":{zh:"Token",en:"Tok","zh-TW":"Token",ko:"토큰",ja:"Tok",de:"Tok",es:"Tok",fr:"Tok",it:"Tok",da:"Tok",pl:"Tok.",ru:"Ток.",ar:"رموز",no:"Tok","pt-BR":"Tok",th:"โทเค็น",tr:"Tok.",uk:"Ток."},"ui.usage.resetsInHM":{zh:"{h}h {m}m 后重置",en:"Resets in {h}h {m}m","zh-TW":"{h}h {m}m 後重置",ko:"{h}시간 {m}분 후 초기화",ja:"{h}時間{m}分後にリセット",de:"Zurücksetzen in {h}h {m}m",es:"Se restablece en {h}h {m}m",fr:"Réinitialisation dans {h}h {m}m",it:"Si azzera tra {h}h {m}m",da:"Nulstilles om {h}t {m}m",pl:"Reset za {h}h {m}m",ru:"Сброс через {h}ч {m}м",ar:"تتم إعادة التعيين خلال {h}س {m}د",no:"Nullstilles om {h}t {m}m","pt-BR":"Reinicia em {h}h {m}m",th:"รีเซ็ตใน {h}ชม. {m}น.",tr:"{h}sa {m}dk içinde sıfırlanır",uk:"Скидання через {h}год {m}хв"},"ui.usage.resetsInM":{zh:"{m}m 后重置",en:"Resets in {m}m","zh-TW":"{m}m 後重置",ko:"{m}분 후 초기화",ja:"{m}分後にリセット",de:"Zurücksetzen in {m}m",es:"Se restablece en {m}m",fr:"Réinitialisation dans {m}m",it:"Si azzera tra {m}m",da:"Nulstilles om {m}m",pl:"Reset za {m}m",ru:"Сброс через {m}м",ar:"تتم إعادة التعيين خلال {m}د",no:"Nullstilles om {m}m","pt-BR":"Reinicia em {m}m",th:"รีเซ็ตใน {m}น.",tr:"{m}dk içinde sıfırlanır",uk:"Скидання через {m}хв"},"ui.usage.resetting":{zh:"即将重置",en:"Resetting…","zh-TW":"即將重置",ko:"초기화 중…",ja:"リセット中…",de:"Wird zurückgesetzt…",es:"Restableciendo…",fr:"Réinitialisation…",it:"Azzeramento…",da:"Nulstiller…",pl:"Resetowanie…",ru:"Сброс…",ar:"تتم إعادة التعيين…",no:"Nullstiller…","pt-BR":"Reiniciando…",th:"กำลังรีเซ็ต…",tr:"Sıfırlanıyor…",uk:"Скидання…"},"ui.usage.waiting":{zh:"等待用量数据…",en:"Waiting for usage data…","zh-TW":"等待用量資料…",ko:"사용량 데이터 대기 중…",ja:"使用量データを待機中…",de:"Warte auf Nutzungsdaten…",es:"Esperando datos de uso…",fr:"En attente des données d'utilisation…",it:"In attesa dei dati di utilizzo…",da:"Venter på forbrugsdata…",pl:"Oczekiwanie na dane o zużyciu…",ru:"Ожидание данных об использовании…",ar:"في انتظار بيانات الاستخدام…",no:"Venter på forbruksdata…","pt-BR":"Aguardando dados de uso…",th:"กำลังรอข้อมูลการใช้งาน…",tr:"Kullanım verileri bekleniyor…",uk:"Очікування даних про використання…"},"ui.chatMode":{zh:"对话",en:"Chat","zh-TW":"對話",ko:"대화",ja:"チャット",de:"Chat",es:"Chat",fr:"Conversation",it:"Chat",da:"Chat",pl:"Czat",ru:"Чат",ar:"محادثة",no:"Chat","pt-BR":"Chat",th:"แชท",tr:"Sohbet",uk:"Чат"},"ui.rawMode":{zh:"网络",en:"Network","zh-TW":"網路",ko:"네트워크",ja:"ネットワーク",de:"Netzwerk",es:"Red",fr:"Réseau",it:"Rete",da:"Netværk",pl:"Sieć",ru:"Сеть",ar:"الشبكة",no:"Nettverk","pt-BR":"Rede",th:"เครือข่าย",tr:"Ağ",uk:"Мережа"},"ui.viewRequest":{zh:"查看请求",en:"View Request","zh-TW":"查看請求",ko:"요청 보기",ja:"リクエストを表示",de:"Anfrage anzeigen",es:"Ver solicitud",fr:"Voir la requête",it:"Visualizza richiesta",da:"Vis forespørgsel",pl:"Zobacz żądanie",ru:"Просмотр запроса",ar:"عرض الطلب",no:"Vis forespørsel","pt-BR":"Ver requisição",th:"ดูคำขอ",tr:"İsteği görüntüle",uk:"Переглянути запит"},"ui.cannotMap":{zh:"无法映射到对话",en:"Cannot map to conversation","zh-TW":"無法映射到對話",ko:"대화에 매핑할 수 없습니다",ja:"会話にマッピングできません",de:"Kann nicht zur Konversation zugeordnet werden",es:"No se puede mapear a la conversación",fr:"Impossible de mapper à la conversation",it:"Impossibile mappare alla conversazione",da:"Kan ikke mappe til samtale",pl:"Nie można zmapować do rozmowy",ru:"Невозможно сопоставить с диалогом",ar:"لا يمكن الربط بالمحادثة",no:"Kan ikke tilordne til samtale","pt-BR":"Não é possível mapear para a conversa",th:"ไม่สามารถแมปไปยังการสนทนาได้",tr:"Konuşmaya eşlenemedi",uk:"Неможливо зіставити з діалогом"},"ui.minuteSecond":{zh:"{m}分{s}秒",en:"{m}m{s}s","zh-TW":"{m}分{s}秒",ko:"{m}분{s}초",ja:"{m}分{s}秒",de:"{m}m{s}s",es:"{m}m{s}s",fr:"{m}m{s}s",it:"{m}m{s}s",da:"{m}m{s}s",pl:"{m}m{s}s",ru:"{m}м{s}с",ar:"{m}د{s}ث",no:"{m}m{s}s","pt-BR":"{m}m{s}s",th:"{m}นาที{s}วินาที",tr:"{m}dk{s}sn",uk:"{m}хв{s}с"},"ui.second":{zh:"{s}秒",en:"{s}s","zh-TW":"{s}秒",ko:"{s}초",ja:"{s}秒",de:"{s}s",es:"{s}s",fr:"{s}s",it:"{s}s",da:"{s}s",pl:"{s}s",ru:"{s}с",ar:"{s}ث",no:"{s}s","pt-BR":"{s}s",th:"{s}วินาที",tr:"{s}sn",uk:"{s}с"},"ui.userPrompt":{zh:"用户 Prompt",en:"User Prompt","zh-TW":"用戶 Prompt",ko:"사용자 Prompt",ja:"ユーザー Prompt",de:"Benutzer-Prompt",es:"Prompt de usuario",fr:"Prompt utilisateur",it:"Prompt utente",da:"Bruger-Prompt",pl:"Prompt użytkownika",ru:"Prompt пользователя",ar:"Prompt المستخدم",no:"Bruker-Prompt","pt-BR":"Prompt do usuário",th:"Prompt ผู้ใช้",tr:"Kullanıcı Prompt",uk:"Prompt користувача"},"ui.noPrompt":{zh:"暂无用户 Prompt",en:"No user prompts yet","zh-TW":"暫無用戶 Prompt",ko:"사용자 Prompt 없음",ja:"ユーザー Prompt はまだありません",de:"Noch keine Benutzer-Prompts",es:"Sin prompts de usuario aún",fr:"Aucun prompt utilisateur",it:"Nessun prompt utente",da:"Ingen bruger-prompts endnu",pl:"Brak promptów użytkownika",ru:"Нет пользовательских Prompt",ar:"لا توجد Prompt للمستخدم بعد",no:"Ingen bruker-prompts ennå","pt-BR":"Nenhum prompt de usuário ainda",th:"ยังไม่มี Prompt ผู้ใช้",tr:"Henüz kullanıcı Prompt'u yok",uk:"Немає Prompt користувача"},"ui.promptCountUnit":{zh:"条",en:"","zh-TW":"條",ko:"개",ja:"件",de:"",es:"",fr:"",it:"",da:"",pl:"",ru:"",ar:"",no:"","pt-BR":"",th:"",tr:"",uk:""},"ui.promptModeOriginal":{zh:"原文模式",en:"Original"},"ui.promptModeContext":{zh:"上下文模式",en:"Context"},"ui.promptModeText":{zh:"Text模式",en:"Text"},"ui.unknownTime":{zh:"未知时间",en:"Unknown time","zh-TW":"未知時間",ko:"알 수 없는 시간",ja:"不明な時刻",de:"Unbekannte Zeit",es:"Hora desconocida",fr:"Heure inconnue",it:"Ora sconosciuta",da:"Ukendt tid",pl:"Nieznany czas",ru:"Неизвестное время",ar:"وقت غير معروف",no:"Ukjent tid","pt-BR":"Hora desconhecida",th:"เวลาไม่ทราบ",tr:"Bilinmeyen zaman",uk:"Невідомий час"},"ui.noLogs":{zh:"暂无日志文件",en:"No log files","zh-TW":"暫無日誌檔案",ko:"로그 파일 없음",ja:"ログファイルなし",de:"Keine Log-Dateien",es:"Sin archivos de log",fr:"Aucun fichier de log",it:"Nessun file di log",da:"Ingen logfiler",pl:"Brak plików logów",ru:"Нет файлов логов",ar:"لا توجد ملفات سجلات",no:"Ingen loggfiler","pt-BR":"Nenhum arquivo de log",th:"ไม่มีไฟล์บันทึก",tr:"Log dosyası yok",uk:"Немає файлів логів"},"ui.toolReturn":{zh:"工具返回",en:"Tool result","zh-TW":"工具返回",ko:"도구 결과",ja:"ツール結果",de:"Tool-Ergebnis",es:"Resultado de herramienta",fr:"Résultat d'outil",it:"Risultato strumento",da:"Værktøjsresultat",pl:"Wynik narzędzia",ru:"Результат инструмента",ar:"نتيجة الأداة",no:"Verktøyresultat","pt-BR":"Resultado da ferramenta",th:"ผลลัพธ์เครื่องมือ",tr:"Araç sonucu",uk:"Результат інструменту"},"ui.toolReturnNamed":{zh:"{name} 返回",en:"{name} result","zh-TW":"{name} 返回",ko:"{name} 결과",ja:"{name} 結果",de:"{name}-Ergebnis",es:"Resultado de {name}",fr:"Résultat de {name}",it:"Risultato di {name}",da:"{name}-resultat",pl:"Wynik {name}",ru:"Результат {name}",ar:"نتيجة {name}",no:"{name}-resultat","pt-BR":"Resultado de {name}",th:"ผลลัพธ์ {name}",tr:"{name} sonucu",uk:"Результат {name}"},"ui.webSearchQuery":{zh:"网络搜索:{query}",en:"Web search: {query}","zh-TW":"網路搜尋:{query}",ko:"웹 검색: {query}",ja:"ウェブ検索:{query}",de:"Websuche: {query}",es:"Búsqueda web: {query}",fr:"Recherche web : {query}",it:"Ricerca web: {query}",da:"Websøgning: {query}",pl:"Wyszukiwanie w sieci: {query}",ru:"Веб-поиск: {query}",ar:"بحث الويب: {query}",no:"Nettsøk: {query}","pt-BR":"Pesquisa web: {query}",th:"ค้นหาเว็บ: {query}",tr:"Web araması: {query}",uk:"Веб-пошук: {query}"},"ui.webSearchResultCount":{zh:"{count} 条结果",en:"{count} results","zh-TW":"{count} 條結果",ko:"{count}개 결과",ja:"{count} 件の結果",de:"{count} Ergebnisse",es:"{count} resultados",fr:"{count} résultats",it:"{count} risultati",da:"{count} resultater",pl:"{count} wyników",ru:"{count} результатов",ar:"{count} نتائج",no:"{count} resultater","pt-BR":"{count} resultados",th:"{count} ผลลัพธ์",tr:"{count} sonuç",uk:"{count} результатів"},"ui.webSearchShowMore":{zh:"查看更多 {count} 条",en:"Show {count} more","zh-TW":"查看更多 {count} 條",ko:"{count}개 더 보기",ja:"さらに {count} 件表示",de:"{count} weitere anzeigen",es:"Mostrar {count} más",fr:"Afficher {count} de plus",it:"Mostra altri {count}",da:"Vis {count} mere",pl:"Pokaż jeszcze {count}",ru:"Показать ещё {count}",ar:"عرض {count} المزيد",no:"Vis {count} til","pt-BR":"Mostrar mais {count}",th:"แสดงเพิ่มอีก {count}",tr:"{count} tane daha göster",uk:"Показати ще {count}"},"ui.webSearchShowLess":{zh:"收起",en:"Show less","zh-TW":"收起",ko:"접기",ja:"折りたたむ",de:"Weniger anzeigen",es:"Mostrar menos",fr:"Afficher moins",it:"Mostra meno",da:"Vis mindre",pl:"Pokaż mniej",ru:"Свернуть",ar:"عرض أقل",no:"Vis mindre","pt-BR":"Mostrar menos",th:"แสดงน้อยลง",tr:"Daha az göster",uk:"Згорнути"},"ui.openInNewTab":{zh:"在新标签页打开",en:"opens in new tab","zh-TW":"在新分頁開啟",ko:"새 탭에서 열기",ja:"新しいタブで開く",de:"in neuem Tab öffnen",es:"abrir en nueva pestaña",fr:"ouvrir dans un nouvel onglet",it:"apri in nuova scheda",da:"åbn i ny fane",pl:"otwórz w nowej karcie",ru:"открыть в новой вкладке",ar:"افتح في علامة تبويب جديدة",no:"åpne i ny fane","pt-BR":"abrir em nova aba",th:"เปิดในแท็บใหม่",tr:"yeni sekmede aç",uk:"відкрити в новій вкладці"},"ui.webSearchSearching":{zh:"搜索中...",en:"Searching...","zh-TW":"搜尋中...",ko:"검색 중...",ja:"検索中...",de:"Suche läuft...",es:"Buscando...",fr:"Recherche en cours...",it:"Ricerca in corso...",da:"Søger...",pl:"Wyszukiwanie...",ru:"Поиск...",ar:"جاري البحث...",no:"Søker...","pt-BR":"Pesquisando...",th:"กำลังค้นหา...",tr:"Aranıyor...",uk:"Пошук..."},"ui.webSearchCitedHint":{zh:"上文综合引用了上方搜索结果。",en:"Synthesis references the search results above.","zh-TW":"上文綜合引用了上方搜尋結果。",ko:"위의 요약은 위 검색 결과를 인용합니다.",ja:"上記の要約は上記の検索結果を参照しています。",de:"Die Zusammenfassung verweist auf die obigen Suchergebnisse.",es:"La síntesis hace referencia a los resultados de búsqueda anteriores.",fr:"La synthèse fait référence aux résultats de recherche ci-dessus.",it:"La sintesi fa riferimento ai risultati di ricerca sopra.",da:"Syntesen henviser til søgeresultaterne ovenfor.",pl:"Synteza odnosi się do powyższych wyników wyszukiwania.",ru:"Синтез ссылается на результаты поиска выше.",ar:"يشير الملخص إلى نتائج البحث أعلاه.",no:"Sammendraget refererer til søkeresultatene over.","pt-BR":"A síntese faz referência aos resultados da pesquisa acima.",th:"การสรุปอ้างอิงผลลัพธ์การค้นหาข้างต้น",tr:"Özet, yukarıdaki arama sonuçlarına atıfta bulunur.",uk:"Синтез посилається на результати пошуку вище."},"ui.copySuccess":{zh:"复制成功",en:"Copied","zh-TW":"複製成功",ko:"복사됨",ja:"コピーしました",de:"Kopiert",es:"Copiado",fr:"Copié",it:"Copiato",da:"Kopieret",pl:"Skopiowano",ru:"Скопировано",ar:"تم النسخ",no:"Kopiert","pt-BR":"Copiado",th:"คัดลอกแล้ว",tr:"Kopyalandı",uk:"Скопійовано"},"ui.copy":{zh:"复制",en:"Copy","zh-TW":"複製",ko:"복사",ja:"コピー",de:"Kopieren",es:"Copiar",fr:"Copier",it:"Copia",da:"Kopiér",pl:"Kopiuj",ru:"Копировать",ar:"نسخ",no:"Kopier","pt-BR":"Copiar",th:"คัดลอก",tr:"Kopyala",uk:"Копіювати"},"ui.saveAs":{zh:"另存为",en:"Save As","zh-TW":"另存為",ko:"다른 이름으로 저장",ja:"名前を付けて保存",de:"Speichern unter",es:"Guardar como",fr:"Enregistrer sous",it:"Salva con nome",da:"Gem som",pl:"Zapisz jako",ru:"Сохранить как",ar:"حفظ باسم",no:"Lagre som","pt-BR":"Salvar como",th:"บันทึกเป็น",tr:"Farklı Kaydet",uk:"Зберегти як"},"ui.saveAsMd":{zh:"Markdown 文件",en:"Markdown File","zh-TW":"Markdown 檔案",ko:"Markdown 파일",ja:"Markdown ファイル",de:"Markdown-Datei",es:"Archivo Markdown",fr:"Fichier Markdown",it:"File Markdown",da:"Markdown-fil",pl:"Plik Markdown",ru:"Файл Markdown",ar:"ملف Markdown",no:"Markdown-fil","pt-BR":"Arquivo Markdown",th:"ไฟล์ Markdown",tr:"Markdown Dosyası",uk:"Файл Markdown"},"ui.copyTextContent":{zh:"复制文本内容",en:"Copy Text Content","zh-TW":"複製文字內容",ko:"텍스트 내용 복사",ja:"テキスト内容をコピー",de:"Textinhalt kopieren",es:"Copiar contenido de texto",fr:"Copier le contenu texte",it:"Copia contenuto testo",da:"Kopiér tekstindhold",pl:"Kopiuj treść tekstową",ru:"Копировать текст",ar:"نسخ محتوى النص",no:"Kopier tekstinnhold","pt-BR":"Copiar conteúdo de texto",th:"คัดลอกเนื้อหาข้อความ",tr:"Metin içeriğini kopyala",uk:"Копіювати текстовий вміст"},"ui.saveToProject":{zh:"保存到项目",en:"Save to Project","zh-TW":"儲存到專案",ko:"프로젝트에 저장",ja:"プロジェクトに保存",de:"Im Projekt speichern",es:"Guardar en proyecto",fr:"Enregistrer dans le projet",it:"Salva nel progetto",da:"Gem i projekt",pl:"Zapisz w projekcie",ru:"Сохранить в проект",ar:"حفظ في المشروع",no:"Lagre i prosjekt","pt-BR":"Salvar no projeto",th:"บันทึกลงโปรเจกต์",tr:"Projeye Kaydet",uk:"Зберегти в проект"},"ui.saveToProject.prompt":{zh:"输入文件名(保存到项目根目录):",en:"Enter filename (save to project root):","zh-TW":"輸入檔名(儲存到專案根目錄):",ko:"파일 이름 입력 (프로젝트 루트에 저장):",ja:"ファイル名を入力(プロジェクトルートに保存):",de:"Dateiname eingeben (im Projektstamm speichern):",es:"Ingrese nombre de archivo (guardar en raíz del proyecto):",fr:"Entrez le nom du fichier (enregistrer à la racine du projet) :",it:"Inserisci nome file (salva nella root del progetto):",da:"Indtast filnavn (gem i projektrod):",pl:"Wpisz nazwę pliku (zapisz w katalogu głównym projektu):",ru:"Введите имя файла (сохранить в корне проекта):",ar:"أدخل اسم الملف (حفظ في جذر المشروع):",no:"Skriv inn filnavn (lagre i prosjektrot):","pt-BR":"Digite o nome do arquivo (salvar na raiz do projeto):",th:"กรอกชื่อไฟล์ (บันทึกที่รากโปรเจกต์):",tr:"Dosya adı girin (proje kök dizinine kaydet):",uk:"Введіть ім'я файлу (зберегти в корені проекту):"},"ui.saveToProject.success":{zh:"已保存: {{name}}",en:"Saved: {{name}}","zh-TW":"已儲存: {{name}}",ko:"저장됨: {{name}}",ja:"保存しました: {{name}}",de:"Gespeichert: {{name}}",es:"Guardado: {{name}}",fr:"Enregistré : {{name}}",it:"Salvato: {{name}}",da:"Gemt: {{name}}",pl:"Zapisano: {{name}}",ru:"Сохранено: {{name}}",ar:"تم الحفظ: {{name}}",no:"Lagret: {{name}}","pt-BR":"Salvo: {{name}}",th:"บันทึกแล้ว: {{name}}",tr:"Kaydedildi: {{name}}",uk:"Збережено: {{name}}"},"ui.saveAsImage":{zh:"保存为图片",en:"Save as Image","zh-TW":"儲存為圖片",ko:"이미지로 저장",ja:"画像として保存",de:"Als Bild speichern",es:"Guardar como imagen",fr:"Enregistrer comme image",it:"Salva come immagine",da:"Gem som billede",pl:"Zapisz jako obraz",ru:"Сохранить как изображение",ar:"حفظ كصورة",no:"Lagre som bilde","pt-BR":"Salvar como imagem",th:"บันทึกเป็นรูปภาพ",tr:"Resim olarak kaydet",uk:"Зберегти як зображення"},"ui.saveAsImageHintMd":{zh:"请先切换到 Markdown 预览模式",en:"Switch to Markdown preview first","zh-TW":"請先切換至 Markdown 預覽模式",ko:"먼저 Markdown 미리보기로 전환하세요",ja:"先に Markdown プレビューに切り替えてください",de:"Zuerst zur Markdown-Vorschau wechseln",es:"Primero cambia a la vista previa de Markdown",fr:"Passez d'abord à l'aperçu Markdown",it:"Passa prima all'anteprima Markdown",da:"Skift først til Markdown-forhåndsvisning",pl:"Najpierw przełącz na podgląd Markdown",ru:"Сначала переключитесь на предпросмотр Markdown",ar:"قم بالتبديل إلى معاينة Markdown أولاً",no:"Bytt til Markdown-forhåndsvisning først","pt-BR":"Mude para a prévia Markdown primeiro",th:"สลับไปที่ตัวอย่าง Markdown ก่อน",tr:"Önce Markdown önizlemesine geçin",uk:"Спершу перейдіть у попередній перегляд Markdown"},"ui.saveFailed":{zh:"保存失败",en:"Save failed","zh-TW":"儲存失敗",ko:"저장 실패",ja:"保存に失敗しました",de:"Speichern fehlgeschlagen",es:"Error al guardar",fr:"Échec de l'enregistrement",it:"Salvataggio non riuscito",da:"Gem mislykket",pl:"Zapisywanie nie powiodło się",ru:"Ошибка сохранения",ar:"فشل الحفظ",no:"Lagring mislyktes","pt-BR":"Falha ao salvar",th:"บันทึกไม่สำเร็จ",tr:"Kaydedilemedi",uk:"Помилка збереження"},"ui.contextMenu.revealInExplorer":{zh:"在系统中展示",en:"Reveal in Explorer","zh-TW":"在系統中顯示",ko:"탐색기에서 표시",ja:"エクスプローラーで表示",de:"Im Explorer anzeigen",es:"Mostrar en explorador",fr:"Afficher dans l'explorateur",it:"Mostra nel Finder",da:"Vis i Finder",pl:"Pokaż w eksploratorze",ru:"Показать в проводнике",ar:"عرض في المستكشف",no:"Vis i Finder","pt-BR":"Mostrar no explorador",th:"แสดงในตัวจัดการไฟล์",tr:"Dosya yöneticisinde göster",uk:"Показати у провіднику"},"ui.contextMenu.copyPath":{zh:"复制路径",en:"Copy Path","zh-TW":"複製路徑",ko:"경로 복사",ja:"パスをコピー",de:"Pfad kopieren",es:"Copiar ruta",fr:"Copier le chemin",it:"Copia percorso",da:"Kopiér sti",pl:"Kopiuj ścieżkę",ru:"Копировать путь",ar:"نسخ المسار",no:"Kopier sti","pt-BR":"Copiar caminho",th:"คัดลอกเส้นทาง",tr:"Yolu kopyala",uk:"Копіювати шлях"},"ui.contextMenu.copyRelativePath":{zh:"复制相对路径",en:"Copy Relative Path","zh-TW":"複製相對路徑",ko:"상대 경로 복사",ja:"相対パスをコピー",de:"Relativen Pfad kopieren",es:"Copiar ruta relativa",fr:"Copier le chemin relatif",it:"Copia percorso relativo",da:"Kopiér relativ sti",pl:"Kopiuj ścieżkę względną",ru:"Копировать относительный путь",ar:"نسخ المسار النسبي",no:"Kopier relativ sti","pt-BR":"Copiar caminho relativo",th:"คัดลอกเส้นทางสัมพัทธ์",tr:"Göreli yolu kopyala",uk:"Копіювати відносний шлях"},"ui.contextMenu.rename":{zh:"重命名",en:"Rename","zh-TW":"重新命名",ko:"이름 바꾸기",ja:"名前を変更",de:"Umbenennen",es:"Renombrar",fr:"Renommer",it:"Rinomina",da:"Omdøb",pl:"Zmień nazwę",ru:"Переименовать",ar:"إعادة تسمية",no:"Gi nytt navn","pt-BR":"Renomear",th:"เปลี่ยนชื่อ",tr:"Yeniden adlandır",uk:"Перейменувати"},"ui.contextMenu.attachToChat":{zh:"以附件形式载入对话",en:"Attach to chat","zh-TW":"以附件形式載入對話",ko:"대화에 첨부",ja:"チャットに添付",de:"An Chat anhängen",es:"Adjuntar al chat",fr:"Joindre au chat",it:"Allega alla chat",da:"Vedhæft til chat",pl:"Dołącz do czatu",ru:"Прикрепить к чату",ar:"إرفاق بالمحادثة",no:"Legg ved i chat","pt-BR":"Anexar ao chat",th:"แนบไปยังแชท",tr:"Sohbete ekle",uk:"Прикріпити до чату"},"ui.contextMenu.insertPathToChat":{zh:"以路径形式载入对话",en:"Insert path to chat","zh-TW":"以路徑形式載入對話",ko:"경로를 대화에 삽입",ja:"パスをチャットに挿入",de:"Pfad in Chat einfügen",es:"Insertar ruta en el chat",fr:"Insérer le chemin dans le chat",it:"Inserisci percorso nella chat",da:"Indsæt sti i chat",pl:"Wstaw ścieżkę do czatu",ru:"Вставить путь в чат",ar:"إدراج المسار في المحادثة",no:"Sett inn bane i chat","pt-BR":"Inserir caminho no chat",th:"แทรกเส้นทางไปยังแชท",tr:"Yolu sohbete ekle",uk:"Вставити шлях у чат"},"ui.contextMenu.delete":{zh:"删除",en:"Delete","zh-TW":"刪除",ko:"삭제",ja:"削除",de:"Löschen",es:"Eliminar",fr:"Supprimer",it:"Elimina",da:"Slet",pl:"Usuń",ru:"Удалить",ar:"حذف",no:"Slett","pt-BR":"Excluir",th:"ลบ",tr:"Sil",uk:"Видалити"},"ui.contextMenu.deleteConfirm":{zh:"确定要删除 {name} 吗?",en:"Are you sure you want to delete {name}?","zh-TW":"確定要刪除 {name} 嗎?",ko:"{name}을(를) 삭제하시겠습니까?",ja:"{name} を削除しますか?",de:"Möchten Sie {name} wirklich löschen?",es:"¿Está seguro de que desea eliminar {name}?",fr:"Voulez-vous vraiment supprimer {name} ?",it:"Sei sicuro di voler eliminare {name}?",da:"Er du sikker på, at du vil slette {name}?",pl:"Czy na pewno chcesz usunąć {name}?",ru:"Вы уверены, что хотите удалить {name}?",ar:"هل أنت متأكد من حذف {name}؟",no:"Er du sikker på at du vil slette {name}?","pt-BR":"Tem certeza de que deseja excluir {name}?",th:"คุณแน่ใจหรือว่าต้องการลบ {name}?",tr:"{name} silinsin mi?",uk:"Ви впевнені, що хочете видалити {name}?"},"ui.contextMenu.createFileFailed":{zh:"创建文件失败:{error}",en:"Failed to create file: {error}","zh-TW":"建立檔案失敗:{error}",ko:"파일 생성 실패: {error}",ja:"ファイルの作成に失敗しました: {error}",de:"Datei konnte nicht erstellt werden: {error}",es:"Error al crear el archivo: {error}",fr:"Échec de la création du fichier : {error}",it:"Impossibile creare il file: {error}",da:"Kunne ikke oprette filen: {error}",pl:"Nie udało się utworzyć pliku: {error}",ru:"Не удалось создать файл: {error}",ar:"فشل إنشاء الملف: {error}",no:"Klarte ikke å opprette filen: {error}","pt-BR":"Falha ao criar arquivo: {error}",th:"สร้างไฟล์ไม่สำเร็จ: {error}",tr:"Dosya oluşturulamadı: {error}",uk:"Не вдалося створити файл: {error}"},"ui.contextMenu.createDirFailed":{zh:"创建文件夹失败:{error}",en:"Failed to create folder: {error}","zh-TW":"建立資料夾失敗:{error}",ko:"폴더 생성 실패: {error}",ja:"フォルダの作成に失敗しました: {error}",de:"Ordner konnte nicht erstellt werden: {error}",es:"Error al crear la carpeta: {error}",fr:"Échec de la création du dossier : {error}",it:"Impossibile creare la cartella: {error}",da:"Kunne ikke oprette mappen: {error}",pl:"Nie udało się utworzyć folderu: {error}",ru:"Не удалось создать папку: {error}",ar:"فشل إنشاء المجلد: {error}",no:"Klarte ikke å opprette mappen: {error}","pt-BR":"Falha ao criar pasta: {error}",th:"สร้างโฟลเดอร์ไม่สำเร็จ: {error}",tr:"Klasör oluşturulamadı: {error}",uk:"Не вдалося створити папку: {error}"},"ui.contextMenu.deleteFailed":{zh:"删除失败:{error}",en:"Failed to delete: {error}","zh-TW":"刪除失敗:{error}",ko:"삭제 실패: {error}",ja:"削除に失敗しました: {error}",de:"Löschen fehlgeschlagen: {error}",es:"Error al eliminar: {error}",fr:"Échec de la suppression : {error}",it:"Eliminazione non riuscita: {error}",da:"Kunne ikke slette: {error}",pl:"Nie udało się usunąć: {error}",ru:"Не удалось удалить: {error}",ar:"فشل الحذف: {error}",no:"Kunne ikke slette: {error}","pt-BR":"Falha ao excluir: {error}",th:"ลบไม่สำเร็จ: {error}",tr:"Silinemedi: {error}",uk:"Не вдалося видалити: {error}"},"ui.contextMenu.newFile":{zh:"新建文件",en:"New File","zh-TW":"新建檔案",ko:"새 파일",ja:"新規ファイル",de:"Neue Datei",es:"Nuevo archivo",fr:"Nouveau fichier",it:"Nuovo file",da:"Ny fil",pl:"Nowy plik",ru:"Новый файл",ar:"ملف جديد",no:"Ny fil","pt-BR":"Novo arquivo",th:"ไฟล์ใหม่",tr:"Yeni dosya",uk:"Новий файл"},"ui.contextMenu.newDir":{zh:"新建文件夹",en:"New Folder","zh-TW":"新建資料夾",ko:"새 폴더",ja:"新規フォルダ",de:"Neuer Ordner",es:"Nueva carpeta",fr:"Nouveau dossier",it:"Nuova cartella",da:"Ny mappe",pl:"Nowy folder",ru:"Новая папка",ar:"مجلد جديد",no:"Ny mappe","pt-BR":"Nova pasta",th:"โฟลเดอร์ใหม่",tr:"Yeni klasör",uk:"Нова папка"},"ui.contextMenu.newFilePlaceholder":{zh:"文件名.后缀",en:"filename.ext","zh-TW":"檔案名.副檔名",ko:"파일명.확장자",ja:"ファイル名.拡張子",de:"dateiname.erw",es:"nombre.ext",fr:"nomfichier.ext",it:"nomefile.ext",da:"filnavn.typ",pl:"nazwa.roz",ru:"имя_файла.расш",ar:"اسم-الملف.امتداد",no:"filnavn.typ","pt-BR":"nomearquivo.ext",th:"ชื่อไฟล์.นามสกุล",tr:"dosyaadi.uzanti",uk:"назва_файлу.розш"},"ui.contextMenu.newDirPlaceholder":{zh:"文件夹名",en:"folder-name","zh-TW":"資料夾名",ko:"폴더-이름",ja:"フォルダ名",de:"ordnername",es:"nombre-carpeta",fr:"nom-dossier",it:"nome-cartella",da:"mappenavn",pl:"nazwa-folderu",ru:"имя-папки",ar:"اسم-المجلد",no:"mappenavn","pt-BR":"nome-pasta",th:"ชื่อโฟลเดอร์",tr:"klasor-adi",uk:"назва-папки"},"ui.contextMenu.openTerminal":{zh:"在终端中打开",en:"Open in Terminal","zh-TW":"在終端機中開啟",ko:"터미널에서 열기",ja:"ターミナルで開く",de:"Im Terminal öffnen",es:"Abrir en terminal",fr:"Ouvrir dans le terminal",it:"Apri nel terminale",da:"Åbn i terminal",pl:"Otwórz w terminalu",ru:"Открыть в терминале",ar:"فتح في الطرفية",no:"Åpne i terminal","pt-BR":"Abrir no terminal",th:"เปิดในเทอร์มินัล",tr:"Terminalde aç",uk:"Відкрити в терміналі"},"ui.contextMenu.deleteDirConfirm":{zh:"确定要删除文件夹 {name} 及其所有内容吗?",en:"Delete folder {name} and all its contents?","zh-TW":"確定要刪除資料夾 {name} 及其所有內容嗎?",ko:"폴더 {name}과(와) 모든 내용을 삭제하시겠습니까?",ja:"フォルダ {name} とその中身をすべて削除しますか?",de:"Ordner {name} und gesamten Inhalt löschen?",es:"¿Eliminar la carpeta {name} y todo su contenido?",fr:"Supprimer le dossier {name} et tout son contenu ?",it:"Eliminare la cartella {name} e tutto il suo contenuto?",da:"Slet mappen {name} og alt indhold?",pl:"Usunąć folder {name} i całą jego zawartość?",ru:"Удалить папку {name} и всё её содержимое?",ar:"حذف المجلد {name} وجميع محتوياته؟",no:"Slette mappen {name} og alt innhold?","pt-BR":"Excluir a pasta {name} e todo o seu conteúdo?",th:"ลบโฟลเดอร์ {name} และเนื้อหาทั้งหมด?",tr:"{name} klasörü ve tüm içeriği silinsin mi?",uk:"Видалити папку {name} та весь її вміст?"},"ui.noHeaders":{zh:"无 Headers",en:"No Headers","zh-TW":"無 Headers",ko:"Headers 없음",ja:"Headers なし",de:"Keine Headers",es:"Sin Headers",fr:"Pas de Headers",it:"Nessun Header",da:"Ingen Headers",pl:"Brak Headers",ru:"Нет Headers",ar:"لا يوجد Headers",no:"Ingen Headers","pt-BR":"Sem Headers",th:"ไม่มี Headers",tr:"Header yok",uk:"Немає Headers"},"ui.noBody":{zh:"无 Body",en:"No Body","zh-TW":"無 Body",ko:"Body 없음",ja:"Body なし",de:"Kein Body",es:"Sin Body",fr:"Pas de Body",it:"Nessun Body",da:"Ingen Body",pl:"Brak Body",ru:"Нет Body",ar:"لا يوجد Body",no:"Ingen Body","pt-BR":"Sem Body",th:"ไม่มี Body",tr:"Body yok",uk:"Немає Body"},"ui.streamingResponse":{zh:"⚡ 流式响应 — 此请求使用了 SSE 流式传输,响应内容无法完整捕获。",en:"⚡ Streaming response — This request used SSE streaming, response content cannot be fully captured.","zh-TW":"⚡ 串流回應 — 此請求使用了 SSE 串流傳輸,回應內容無法完整擷取。",ko:"⚡ 스트리밍 응답 — 이 요청은 SSE 스트리밍을 사용하여 응답 내용을 완전히 캡처할 수 없습니다.",ja:"⚡ ストリーミングレスポンス — このリクエストは SSE ストリーミングを使用しており、レスポンス内容を完全にキャプチャできませんでした。",de:"⚡ Streaming-Antwort — Diese Anfrage nutzte SSE-Streaming, der Antwortinhalt konnte nicht vollständig erfasst werden.",es:"⚡ Respuesta en streaming — Esta solicitud usó streaming SSE, el contenido de la respuesta no se pudo capturar completamente.",fr:"⚡ Réponse en streaming — Cette requête a utilisé le streaming SSE, le contenu de la réponse n'a pas pu être entièrement capturé.",it:"⚡ Risposta in streaming — Questa richiesta ha utilizzato lo streaming SSE, il contenuto della risposta non può essere catturato completamente.",da:"⚡ Streaming-svar — Denne forespørgsel brugte SSE-streaming, svarindholdet kunne ikke fuldt indfanges.",pl:"⚡ Odpowiedź strumieniowa — To żądanie użyło strumieniowania SSE, treść odpowiedzi nie mogła zostać w pełni przechwycona.",ru:"⚡ Потоковый ответ — Этот запрос использовал SSE-потоковую передачу, содержимое ответа не может быть полностью захвачено.",ar:"⚡ استجابة متدفقة — استخدم هذا الطلب بث SSE، لا يمكن التقاط محتوى الاستجابة بالكامل.",no:"⚡ Strømmesvar — Denne forespørselen brukte SSE-strømming, svarinnholdet kunne ikke fanges fullstendig.","pt-BR":"⚡ Resposta em streaming — Esta requisição usou streaming SSE, o conteúdo da resposta não pôde ser totalmente capturado.",th:"⚡ การตอบกลับแบบสตรีม — คำขอนี้ใช้ SSE streaming เนื้อหาการตอบกลับไม่สามารถจับได้ทั้งหมด",tr:"⚡ Akış yanıtı — Bu istek SSE akışı kullandı, yanıt içeriği tam olarak yakalanamadı.",uk:"⚡ Потокова відповідь — Цей запит використовував SSE-потокову передачу, вміст відповіді не може бути повністю захоплений."},"ui.responseNotCaptured":{zh:"响应数据未捕获",en:"Response not captured","zh-TW":"回應資料未擷取",ko:"응답 데이터 미캡처",ja:"レスポンスデータ未キャプチャ",de:"Antwortdaten nicht erfasst",es:"Datos de respuesta no capturados",fr:"Données de réponse non capturées",it:"Dati di risposta non catturati",da:"Svardata ikke indfanget",pl:"Dane odpowiedzi nie przechwycone",ru:"Данные ответа не захвачены",ar:"لم يتم التقاط بيانات الاستجابة",no:"Svardata ikke fanget","pt-BR":"Dados de resposta não capturados",th:"ไม่ได้จับข้อมูลการตอบกลับ",tr:"Yanıt verileri yakalanamadı",uk:"Дані відповіді не захоплені"},"ui.expand":{zh:"▶ 展开",en:"▶ Expand","zh-TW":"▶ 展開",ko:"▶ 펼치기",ja:"▶ 展開",de:"▶ Aufklappen",es:"▶ Expandir",fr:"▶ Déplier",it:"▶ Espandi",da:"▶ Udvid",pl:"▶ Rozwiń",ru:"▶ Развернуть",ar:"▶ توسيع",no:"▶ Utvid","pt-BR":"▶ Expandir",th:"▶ ขยาย",tr:"▶ Genişlet",uk:"▶ Розгорнути"},"ui.collapse":{zh:"▼ 收起",en:"▼ Collapse","zh-TW":"▼ 收起",ko:"▼ 접기",ja:"▼ 折りたたむ",de:"▼ Zuklappen",es:"▼ Contraer",fr:"▼ Replier",it:"▼ Comprimi",da:"▼ Fold sammen",pl:"▼ Zwiń",ru:"▼ Свернуть",ar:"▼ طي",no:"▼ Skjul","pt-BR":"▼ Recolher",th:"▼ ย่อ",tr:"▼ Daralt",uk:"▼ Згорнути"},"ui.noChat":{zh:"暂无 MainAgent 对话数据",en:"No MainAgent conversation data","zh-TW":"暫無 MainAgent 對話資料",ko:"MainAgent 대화 데이터 없음",ja:"MainAgent の会話データがありません",de:"Keine MainAgent-Gesprächsdaten",es:"Sin datos de conversación de MainAgent",fr:"Aucune donnée de conversation MainAgent",it:"Nessun dato di conversazione MainAgent",da:"Ingen MainAgent samtaledata",pl:"Brak danych rozmowy MainAgent",ru:"Нет данных диалога MainAgent",ar:"لا توجد بيانات محادثة MainAgent",no:"Ingen MainAgent samtaledata","pt-BR":"Sem dados de conversa do MainAgent",th:"ไม่มีข้อมูลการสนทนา MainAgent",tr:"MainAgent konuşma verisi yok",uk:"Немає даних діалогу MainAgent"},"ui.fileExplorer":{zh:"文件浏览器",en:"File Explorer","zh-TW":"檔案瀏覽器",ko:"파일 탐색기",ja:"ファイルエクスプローラー",de:"Datei-Explorer",es:"Explorador de archivos",fr:"Explorateur de fichiers",it:"Esplora file",da:"Filstifinder",pl:"Eksplorator plików",ru:"Проводник",ar:"مستكشف الملفات",no:"Filutforsker","pt-BR":"Explorador de arquivos",th:"ตัวสำรวจไฟล์",tr:"Dosya Gezgini",uk:"Провідник файлів"},"ui.fileExplorer.refresh":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로 고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.gitChanges.refresh":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로 고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.teamSessions":{zh:"Team 会话",en:"Team Sessions","zh-TW":"Team 會話",ko:"Team 세션",ja:"Team セッション",de:"Team-Sitzungen",es:"Sesiones de Team",fr:"Sessions d'équipe",it:"Sessioni Team",da:"Team-sessioner",pl:"Sesje Team",ru:"Сессии команды",ar:"جلسات الفريق",no:"Team-økter","pt-BR":"Sessões de equipe",th:"เซสชัน Team",tr:"Takım oturumları",uk:"Сесії команди"},"ui.teamSession.noMessages":{zh:"暂无消息",en:"No messages","zh-TW":"暫無訊息",ko:"메시지 없음",ja:"メッセージなし",de:"Keine Nachrichten",es:"Sin mensajes",fr:"Aucun message",it:"Nessun messaggio",da:"Ingen beskeder",pl:"Brak wiadomości",ru:"Нет сообщений",ar:"لا توجد رسائل",no:"Ingen meldinger","pt-BR":"Sem mensagens",th:"ไม่มีข้อความ",tr:"Mesaj yok",uk:"Немає повідомлень"},"ui.teamSession.status.active":{zh:"进行中",en:"Active","zh-TW":"進行中",ko:"활성",ja:"実行中",de:"Aktiv",es:"Activo",fr:"Actif",it:"Attivo",da:"Aktiv",pl:"Aktywny",ru:"Активен",ar:"نشط",no:"Aktiv","pt-BR":"Ativo",th:"กำลังทำงาน",tr:"Etkin",uk:"Активний"},"ui.teamSession.status.done":{zh:"已完成",en:"Done","zh-TW":"已完成",ko:"완료",ja:"完了",de:"Fertig",es:"Completado",fr:"Terminé",it:"Completato",da:"Færdig",pl:"Zakończone",ru:"Завершено",ar:"مكتمل",no:"Fullført","pt-BR":"Concluído",th:"เสร็จสิ้น",tr:"Tamamlandı",uk:"Завершено"},"ui.teamSession.status.successorCreate":{zh:"Lead 已切换到新 team",en:"Lead switched to a new team","zh-TW":"Lead 已切換到新 team",ko:"Lead가 새 팀으로 전환됨",ja:"Lead が新しい team に切り替えました",de:"Lead hat zu einem neuen Team gewechselt",es:"Lead cambió a un nuevo team",fr:"Le lead est passé à une nouvelle équipe",it:"Lead è passato a un nuovo team",da:"Lead skiftede til et nyt team",pl:"Lead przeszedł do nowego zespołu",ru:"Лид перешёл в новую команду",ar:"انتقل القائد إلى فريق جديد",no:"Lead byttet til et nytt team","pt-BR":"Lead trocou para um novo team",th:"Lead เปลี่ยนไปทีมใหม่",tr:"Lead yeni bir takıma geçti",uk:"Лід перейшов до нової команди"},"ui.teamSession.status.converged":{zh:"已收敛(运行时已确认退出)",en:"Converged (runtime verified)","zh-TW":"已收斂(執行時已確認退出)",ko:"수렴됨 (런타임 확인)",ja:"収束しました(ランタイムで確認済み)",de:"Konvergiert (Laufzeit bestätigt)",es:"Convergido (verificado en tiempo de ejecución)",fr:"Convergé (vérifié à l'exécution)",it:"Convergente (verificato al runtime)",da:"Konvergeret (runtime bekræftet)",pl:"Zbieżne (zweryfikowane w czasie wykonywania)",ru:"Сошлось (подтверждено во время выполнения)",ar:"تقارب (تم التحقق في وقت التشغيل)",no:"Konvergert (kjøretid bekreftet)","pt-BR":"Convergido (verificado em runtime)",th:"บรรจบแล้ว (ยืนยันที่รันไทม์)",tr:"Yakınsadı (çalışma zamanında doğrulandı)",uk:"Сходиться (підтверджено під час виконання)"},"ui.teamSession.status.residue":{zh:"目录残留 — 可手动清理",en:"Directory residue — safe to remove","zh-TW":"目錄殘留 — 可手動清理",ko:"디렉토리 잔여물 — 제거 가능",ja:"ディレクトリ残留 — 削除可能",de:"Verzeichnisrest — kann entfernt werden",es:"Residuo de directorio — se puede eliminar",fr:"Résidu de répertoire — peut être supprimé",it:"Residuo di directory — rimuovibile",da:"Mapperester — kan fjernes",pl:"Pozostałości katalogu — można usunąć",ru:"Остаток каталога — можно удалить",ar:"بقايا في المجلد — يمكن إزالتها بأمان",no:"Katalogrester — kan fjernes","pt-BR":"Resíduo de diretório — pode remover",th:"ไดเรกทอรีคงค้าง — สามารถลบได้",tr:"Dizin kalıntısı — kaldırılabilir",uk:"Залишок каталогу — можна видалити"},"ui.teamSession.status.pending":{zh:"推断结束(运行时检测中)",en:"End inferred, runtime check pending","zh-TW":"推斷結束(執行時檢測中)",ko:"종료 추론됨, 런타임 확인 중",ja:"終了を推測(ランタイム確認中)",de:"Ende abgeleitet, Laufzeit-Prüfung ausstehend",es:"Fin inferido, verificación en ejecución pendiente",fr:"Fin inférée, vérification en cours",it:"Fine dedotta, controllo runtime in sospeso",da:"Slut udledt, runtime-tjek afventer",pl:"Zakończenie wywnioskowane, sprawdzanie w toku",ru:"Конец выведен, проверка выполняется",ar:"تم استنتاج النهاية، فحص وقت التشغيل معلق",no:"Slutt utledet, kjøretidssjekk venter","pt-BR":"Fim inferido, verificação em runtime pendente",th:"สรุปการสิ้นสุด กำลังตรวจสอบที่รันไทม์",tr:"Son çıkarsandı, çalışma zamanı kontrolü bekliyor",uk:"Кінець виведено, очікує перевірку під час виконання"},"ui.teamSession.status.possiblyAlive":{zh:"可能仍在活动",en:"May still be active","zh-TW":"可能仍在活動",ko:"아직 활성 상태일 수 있음",ja:"まだ活動中の可能性",de:"Möglicherweise noch aktiv",es:"Puede seguir activo",fr:"Peut-être encore actif",it:"Potrebbe essere ancora attivo",da:"Kan stadig være aktiv",pl:"Może nadal być aktywny",ru:"Возможно, всё ещё активен",ar:"قد يكون لا يزال نشطًا",no:"Kan fortsatt være aktiv","pt-BR":"Pode ainda estar ativo",th:"อาจยังทำงานอยู่",tr:"Hâlâ etkin olabilir",uk:"Можливо, все ще активний"},"ui.teamSession.status.reused":{zh:"疑似同名 team 被其他 session 占用",en:"Same name possibly reused by another session","zh-TW":"疑似同名 team 被其他 session 佔用",ko:"같은 이름이 다른 세션에서 재사용될 수 있음",ja:"同名が他のセッションで再利用されている可能性",de:"Derselbe Name wird möglicherweise von einer anderen Sitzung verwendet",es:"El mismo nombre posiblemente reutilizado por otra sesión",fr:"Nom possiblement réutilisé par une autre session",it:"Stesso nome potenzialmente riutilizzato da un'altra sessione",da:"Samme navn muligvis genbrugt af en anden session",pl:"Ta sama nazwa mogła zostać ponownie użyta przez inną sesję",ru:"То же имя, возможно, повторно используется другой сессией",ar:"قد يكون الاسم نفسه معاد استخدامه من جلسة أخرى",no:"Samme navn muligens gjenbrukt av en annen økt","pt-BR":"Mesmo nome possivelmente reutilizado por outra sessão",th:"ชื่อเดียวกันอาจถูกใช้ซ้ำโดยเซสชันอื่น",tr:"Aynı ad başka bir oturum tarafından tekrar kullanılıyor olabilir",uk:"Таке ж ім'я, можливо, повторно використовується іншою сесією"},"ui.exportTimelinePng":{zh:"导出为 PNG",en:"Export as PNG","zh-TW":"匯出為 PNG",ko:"PNG로 내보내기",ja:"PNGとして書き出し",de:"Als PNG exportieren",es:"Exportar como PNG",fr:"Exporter en PNG",it:"Esporta come PNG",da:"Eksporter som PNG",pl:"Eksportuj jako PNG",ru:"Экспорт в PNG",ar:"تصدير كـ PNG",no:"Eksporter som PNG","pt-BR":"Exportar como PNG",th:"ส่งออกเป็น PNG",tr:"PNG olarak dışa aktar",uk:"Експорт у PNG"},"ui.gitChanges":{zh:"Git 变更",en:"Git Changes","zh-TW":"Git 變更",ko:"Git 변경사항",ja:"Git 変更",de:"Git-Änderungen",es:"Cambios de Git",fr:"Modifications Git",it:"Modifiche Git",da:"Git-ændringer",pl:"Zmiany Git",ru:"Изменения Git",ar:"تغييرات Git",no:"Git-endringer","pt-BR":"Alterações do Git",th:"การเปลี่ยนแปลง Git",tr:"Git Değişiklikleri",uk:"Зміни Git"},"ui.gitChanges.noChanges":{zh:"暂无变更",en:"No changes","zh-TW":"暫無變更",ko:"변경사항 없음",ja:"変更なし",de:"Keine Änderungen",es:"Sin cambios",fr:"Aucune modification",it:"Nessuna modifica",da:"Ingen ændringer",pl:"Brak zmian",ru:"Нет изменений",ar:"لا توجد تغييرات",no:"Ingen endringer","pt-BR":"Sem alterações",th:"ไม่มีการเปลี่ยนแปลง",tr:"Değişiklik yok",uk:"Немає змін"},"ui.gitChanges.openFile":{zh:"打开文件",en:"Open File","zh-TW":"開啟檔案",ko:"파일 열기",ja:"ファイルを開く",de:"Datei öffnen",es:"Abrir archivo",fr:"Ouvrir le fichier",it:"Apri file",da:"Åbn fil",pl:"Otwórz plik",ru:"Открыть файл",ar:"فتح الملف",no:"Åpne fil","pt-BR":"Abrir arquivo",th:"เปิดไฟล์",tr:"Dosyayı aç",uk:"Відкрити файл"},"ui.gitChanges.restoreFile":{zh:"撤销变更",en:"Discard Changes","zh-TW":"撤銷變更",ko:"변경 취소",ja:"変更を破棄",de:"Änderungen verwerfen",es:"Descartar cambios",fr:"Annuler les modifications",it:"Annulla modifiche",da:"Forkast ændringer",pl:"Odrzuć zmiany",ru:"Отменить изменения",ar:"تجاهل التغييرات",no:"Forkast endringer","pt-BR":"Descartar alterações",th:"ยกเลิกการเปลี่ยนแปลง",tr:"Değişiklikleri geri al",uk:"Скасувати зміни"},"ui.gitChanges.restoreConfirm":{zh:"确定要撤销 {name} 的所有变更吗?此操作不可恢复。",en:"Discard all changes to {name}? This cannot be undone.","zh-TW":"確定要撤銷 {name} 的所有變更嗎?此操作不可恢復。",ko:"{name}의 모든 변경 사항을 취소하시겠습니까? 이 작업은 되돌릴 수 없습니다.",ja:"{name} のすべての変更を破棄しますか?この操作は元に戻せません。",de:"Alle Änderungen an {name} verwerfen? Dies kann nicht rückgängig gemacht werden.",es:"¿Descartar todos los cambios en {name}? Esta acción no se puede deshacer.",fr:"Annuler toutes les modifications de {name} ? Cette action est irréversible.",it:"Annullare tutte le modifiche a {name}? Questa azione non può essere annullata.",da:"Forkast alle ændringer i {name}? Dette kan ikke fortrydes.",pl:"Odrzucić wszystkie zmiany w {name}? Tej operacji nie można cofnąć.",ru:"Отменить все изменения в {name}? Это действие необратимо.",ar:"تجاهل جميع التغييرات في {name}؟ لا يمكن التراجع عن هذا الإجراء.",no:"Forkaste alle endringer i {name}? Dette kan ikke angres.","pt-BR":"Descartar todas as alterações em {name}? Esta ação não pode ser desfeita.",th:"ยกเลิกการเปลี่ยนแปลงทั้งหมดของ {name}? การดำเนินการนี้ไม่สามารถเลิกทำได้",tr:"{name} dosyasındaki tüm değişiklikler geri alınsın mı? Bu işlem geri alınamaz.",uk:"Скасувати всі зміни в {name}? Цю дію неможливо скасувати."},"ui.gitChanges.restoreFailed":{zh:"撤销变更失败:{error}",en:"Failed to discard changes: {error}","zh-TW":"撤銷變更失敗:{error}",ko:"변경 취소 실패: {error}",ja:"変更の破棄に失敗しました: {error}",de:"Änderungen verwerfen fehlgeschlagen: {error}",es:"Error al descartar cambios: {error}",fr:"Échec de l'annulation des modifications : {error}",it:"Impossibile annullare le modifiche: {error}",da:"Kunne ikke forkaste ændringer: {error}",pl:"Nie udało się odrzucić zmian: {error}",ru:"Не удалось отменить изменения: {error}",ar:"فشل تجاهل التغييرات: {error}",no:"Klarte ikke å forkaste endringer: {error}","pt-BR":"Falha ao descartar alterações: {error}",th:"ยกเลิกการเปลี่ยนแปลงไม่สำเร็จ: {error}",tr:"Değişiklikler geri alınamadı: {error}",uk:"Не вдалося скасувати зміни: {error}"},"ui.gitChanges.unpushedTruncated":{zh:"已截断,仅显示 {count} 条",en:"truncated, showing {count}","zh-TW":"已截斷,僅顯示 {count} 條",ko:"잘림, {count}개 표시",ja:"切り捨て、{count} 件表示",de:"abgeschnitten, {count} angezeigt",es:"truncado, mostrando {count}",fr:"tronqué, affichage {count}",it:"troncato, mostra {count}",da:"afkortet, viser {count}",pl:"obcięto, pokazuje {count}",ru:"обрезано, показано {count}",ar:"تم الاقتطاع، عرض {count}",no:"avkortet, viser {count}","pt-BR":"truncado, mostrando {count}",th:"ถูกตัด, แสดง {count}",tr:"kesildi, {count} gösteriliyor",uk:"обрізано, показано {count}"},"ui.gitChanges.unpushedCommits":{zh:"本地未推送 commit",en:"Local unpushed commits","zh-TW":"本地未推送 commit",ko:"푸시되지 않은 로컬 커밋",ja:"未プッシュのローカルコミット",de:"Nicht gepushte lokale Commits",es:"Commits locales no enviados",fr:"Commits locaux non poussés",it:"Commit locali non inviati",da:"Lokale commits ikke pushet",pl:"Lokalne commity nie wypchnięte",ru:"Локальные неотправленные коммиты",ar:"إيداعات محلية لم يتم دفعها",no:"Lokale commits ikke pushet","pt-BR":"Commits locais não enviados",th:"คอมมิตในเครื่องที่ยังไม่ได้พุช",tr:"Yerel itilmemiş commit'ler",uk:"Локальні непроштовхнуті коміти"},"ui.roleFilter":{zh:"角色筛选",en:"Role Filter","zh-TW":"角色篩選",ko:"역할 필터",ja:"ロールフィルター",de:"Rollenfilter",es:"Filtro de roles",fr:"Filtre de rôles",it:"Filtro ruoli",da:"Rollefilter",pl:"Filtr ról",ru:"Фильтр ролей",ar:"تصفية الأدوار",no:"Rollefilter","pt-BR":"Filtro de papéis",th:"ตัวกรองบทบาท",tr:"Rol Filtresi",uk:"Фільтр ролей"},"ui.binaryFileNotice":{zh:"二进制文件(无法显示差异)",en:"Binary file (cannot show diff)","zh-TW":"二進位檔案(無法顯示差異)",ko:"바이너리 파일 (차이점 표시 불가)",ja:"バイナリファイル(差分を表示できません)",de:"Binärdatei (Diff kann nicht angezeigt werden)",es:"Archivo binario (no se puede mostrar diff)",fr:"Fichier binaire (impossible d'afficher les différences)",it:"File binario (impossibile mostrare diff)",da:"Binær fil (kan ikke vise diff)",pl:"Plik binarny (nie można pokazać różnic)",ru:"Двоичный файл (невозможно показать различия)",ar:"ملف ثنائي (لا يمكن عرض الفروقات)",no:"Binær fil (kan ikke vise diff)","pt-BR":"Arquivo binário (não é possível mostrar diff)",th:"ไฟล์ไบนารี (ไม่สามารถแสดง diff)",tr:"İkili dosya (diff gösterilemiyor)",uk:"Двійковий файл (неможливо показати різниці)"},"ui.largeFileWarning":{zh:"文件过大(超过 5MB),无法显示差异",en:"File too large (over 5MB), cannot show diff","zh-TW":"檔案過大(超過 5MB),無法顯示差異",ko:"파일이 너무 큽니다 (5MB 초과), 차이점 표시 불가",ja:"ファイルが大きすぎます(5MB超)、差分を表示できません",de:"Datei zu groß (über 5MB), Diff kann nicht angezeigt werden",es:"Archivo demasiado grande (más de 5MB), no se puede mostrar diff",fr:"Fichier trop volumineux (plus de 5 Mo), impossible d'afficher les différences",it:"File troppo grande (oltre 5MB), impossibile mostrare diff",da:"Fil for stor (over 5MB), kan ikke vise diff",pl:"Plik zbyt duży (ponad 5MB), nie można pokazać różnic",ru:"Файл слишком большой (более 5 МБ), невозможно показать различия",ar:"الملف كبير جدًا (أكثر من 5 ميجابايت)، لا يمكن عرض الفروقات",no:"Fil for stor (over 5MB), kan ikke vise diff","pt-BR":"Arquivo muito grande (mais de 5MB), não é possível mostrar diff",th:"ไฟล์ใหญ่เกินไป (เกิน 5MB) ไม่สามารถแสดง diff",tr:"Dosya çok büyük (5MB üzeri), diff gösterilemiyor",uk:"Файл занадто великий (понад 5 МБ), неможливо показати різниці"},"ui.fileSize":{zh:"文件大小",en:"File size","zh-TW":"檔案大小",ko:"파일 크기",ja:"ファイルサイズ",de:"Dateigröße",es:"Tamaño del archivo",fr:"Taille du fichier",it:"Dimensione file",da:"Filstørrelse",pl:"Rozmiar pliku",ru:"Размер файла",ar:"حجم الملف",no:"Filstørrelse","pt-BR":"Tamanho do arquivo",th:"ขนาดไฟล์",tr:"Dosya boyutu",uk:"Розмір файлу"},"ui.fileLoadError":{zh:"文件加载失败",en:"Failed to load file","zh-TW":"檔案載入失敗",ko:"파일 로드 실패",ja:"ファイルの読み込みに失敗しました",de:"Datei konnte nicht geladen werden",es:"Error al cargar el archivo",fr:"Échec du chargement du fichier",it:"Impossibile caricare il file",da:"Kunne ikke indlæse fil",pl:"Nie udało się załadować pliku",ru:"Не удалось загрузить файл",ar:"فشل تحميل الملف",no:"Kunne ikke laste inn fil","pt-BR":"Falha ao carregar arquivo",th:"โหลดไฟล์ล้มเหลว",tr:"Dosya yüklenemedi",uk:"Не вдалося завантажити файл"},"ui.fileLoadError.reason.outside-allowlist":{zh:"路径不在允许的目录范围内(项目目录、~/.codex、注册的工作区等)",en:"Path is outside allowed directories (project, ~/.codex, registered workspaces)","zh-TW":"路徑不在允許的目錄範圍內(專案目錄、~/.codex、註冊的工作區等)",ko:"경로가 허용된 디렉터리 범위를 벗어납니다",ja:"パスが許可されたディレクトリの範囲外です",de:"Pfad liegt außerhalb erlaubter Verzeichnisse",es:"La ruta está fuera de los directorios permitidos",fr:"Le chemin est hors des répertoires autorisés",it:"Il percorso è al di fuori delle directory consentite",da:"Stien er uden for tilladte mapper",pl:"Ścieżka znajduje się poza dozwolonymi katalogami",ru:"Путь находится вне разрешённых каталогов",ar:"المسار خارج الدلائل المسموح بها",no:"Banen er utenfor tillatte mapper","pt-BR":"O caminho está fora dos diretórios permitidos",th:"เส้นทางอยู่นอกไดเรกทอรีที่อนุญาต",tr:"Yol izin verilen dizinlerin dışında",uk:"Шлях поза дозволеними каталогами"},"ui.fileLoadError.reason.sensitive-prefix":{zh:"敏感目录拒绝读取(如 ~/.ssh、~/.aws、/etc 等)",en:"Reading from sensitive directory denied (e.g. ~/.ssh, ~/.aws, /etc)","zh-TW":"敏感目錄拒絕讀取(如 ~/.ssh、~/.aws、/etc 等)",ko:"민감 디렉터리 읽기 거부",ja:"機密ディレクトリの読み取りは拒否されました",de:"Lesen aus sensiblem Verzeichnis verweigert",es:"Lectura de directorio sensible denegada",fr:"Lecture du répertoire sensible refusée",it:"Lettura della directory sensibile negata",da:"Læsning af følsom mappe afvist",pl:"Odmowa odczytu wrażliwego katalogu",ru:"Чтение из конфиденциального каталога запрещено",ar:"تم رفض القراءة من الدليل الحساس",no:"Lesing av sensitiv mappe nektet","pt-BR":"Leitura de diretório sensível negada",th:"การอ่านจากไดเรกทอรีที่อ่อนไหวถูกปฏิเสธ",tr:"Hassas dizinden okuma reddedildi",uk:"Читання з конфіденційного каталогу заборонено"},"ui.fileLoadError.reason.sensitive-filename":{zh:"敏感文件名拒绝读取(如 .env、id_rsa、*.pem 等)",en:"Reading sensitive filename denied (e.g. .env, id_rsa, *.pem)","zh-TW":"敏感檔名拒絕讀取(如 .env、id_rsa、*.pem 等)",ko:"민감 파일명 읽기 거부",ja:"機密ファイル名の読み取りは拒否されました",de:"Lesen sensibler Dateiname verweigert",es:"Lectura de nombre de archivo sensible denegada",fr:"Lecture du nom de fichier sensible refusée",it:"Lettura del nome file sensibile negata",da:"Læsning af følsomt filnavn afvist",pl:"Odmowa odczytu wrażliwej nazwy pliku",ru:"Чтение конфиденциального имени файла запрещено",ar:"تم رفض قراءة اسم الملف الحساس",no:"Lesing av sensitivt filnavn nektet","pt-BR":"Leitura de nome de arquivo sensível negada",th:"การอ่านชื่อไฟล์ที่อ่อนไหวถูกปฏิเสธ",tr:"Hassas dosya adı okuma reddedildi",uk:"Читання конфіденційного імені файлу заборонено"},"ui.fileLoadError.reason.sensitive-codex-config":{zh:"Codex 配置/凭据文件不允许通过文件 API 读取",en:"Codex config/credential files cannot be read via the file API","zh-TW":"Codex 設定/憑據檔案不允許透過檔案 API 讀取",ko:"Codex 설정/자격 증명 파일은 파일 API로 읽을 수 없습니다",ja:"Codex 設定/資格情報ファイルはファイル API では読み取れません",de:"Codex-Konfig/Zugangsdaten dürfen nicht über die Datei-API gelesen werden",es:"No se pueden leer archivos de configuración/credenciales de Codex",fr:"Les fichiers config/identifiants de Codex ne peuvent pas être lus via l'API de fichiers",it:"I file di config/credenziali di Codex non possono essere letti via API",da:"Codex-konfig/legitimationsfiler kan ikke læses via fil-API",pl:"Pliki config/poświadczeń Codex nie mogą być odczytane przez API plików",ru:"Файлы конфигурации/учётных данных Codex нельзя читать через файловый API",ar:"لا يمكن قراءة ملفات إعدادات/اعتمادات Codex عبر واجهة الملفات",no:"Codex konfig-/legitimasjonsfiler kan ikke leses via fil-API","pt-BR":"Arquivos de config/credenciais Codex não podem ser lidos via API",th:"ไม่สามารถอ่านไฟล์การตั้งค่า/ข้อมูลรับรองของ Codex ผ่าน API",tr:"Codex yapılandırma/kimlik bilgisi dosyaları dosya API'sinden okunamaz",uk:"Файли конфігурації/облікових даних Codex не можна читати через файловий API"},"ui.fileLoadError.reason.realpath-failed":{zh:"文件不存在或无法访问",en:"File does not exist or is inaccessible","zh-TW":"檔案不存在或無法存取",ko:"파일이 존재하지 않거나 접근할 수 없습니다",ja:"ファイルが存在しないかアクセスできません",de:"Datei existiert nicht oder ist nicht zugänglich",es:"El archivo no existe o no es accesible",fr:"Le fichier n'existe pas ou est inaccessible",it:"Il file non esiste o non è accessibile",da:"Filen findes ikke eller er utilgængelig",pl:"Plik nie istnieje lub jest niedostępny",ru:"Файл не существует или недоступен",ar:"الملف غير موجود أو غير قابل للوصول",no:"Filen finnes ikke eller er utilgjengelig","pt-BR":"O arquivo não existe ou está inacessível",th:"ไฟล์ไม่มีอยู่หรือไม่สามารถเข้าถึงได้",tr:"Dosya yok veya erişilemez",uk:"Файл не існує або недоступний"},"ui.fileLoadError.reason.null-byte":{zh:"路径包含非法字符(null byte)",en:"Path contains illegal character (null byte)","zh-TW":"路徑包含非法字元(null byte)",ko:"경로에 잘못된 문자(null byte)가 포함됨",ja:"パスに不正な文字(null byte)が含まれています",de:"Pfad enthält unzulässiges Zeichen (null byte)",es:"La ruta contiene un carácter ilegal (null byte)",fr:"Le chemin contient un caractère illégal (null byte)",it:"Il percorso contiene un carattere non valido (null byte)",da:"Stien indeholder ulovligt tegn (null byte)",pl:"Ścieżka zawiera nielegalny znak (null byte)",ru:"Путь содержит недопустимый символ (null byte)",ar:"المسار يحتوي على حرف غير قانوني (null byte)",no:"Banen inneholder ulovlig tegn (null byte)","pt-BR":"O caminho contém um caractere inválido (null byte)",th:"เส้นทางมีอักขระที่ไม่ถูกต้อง (null byte)",tr:"Yol geçersiz bir karakter içeriyor (null byte)",uk:"Шлях містить неприпустимий символ (null byte)"},"ui.fileLoadError.reason.invalid":{zh:"路径参数无效",en:"Invalid path parameter","zh-TW":"路徑參數無效",ko:"잘못된 경로 매개변수",ja:"無効なパスパラメータ",de:"Ungültiger Pfadparameter",es:"Parámetro de ruta inválido",fr:"Paramètre de chemin invalide",it:"Parametro di percorso non valido",da:"Ugyldig stiparameter",pl:"Nieprawidłowy parametr ścieżki",ru:"Недопустимый параметр пути",ar:"معلمة المسار غير صالحة",no:"Ugyldig stiparameter","pt-BR":"Parâmetro de caminho inválido",th:"พารามิเตอร์เส้นทางไม่ถูกต้อง",tr:"Geçersiz yol parametresi",uk:"Недійсний параметр шляху"},"ui.renameFailed":{zh:"重命名失败:{error}",en:"Rename failed: {error}","zh-TW":"重新命名失敗:{error}",ko:"이름 변경 실패: {error}",ja:"名前の変更に失敗しました:{error}",de:"Umbenennung fehlgeschlagen: {error}",es:"Error al renombrar: {error}",fr:"Échec du renommage : {error}",it:"Rinomina non riuscita: {error}",da:"Omdøbning mislykkedes: {error}",pl:"Zmiana nazwy nie powiodła się: {error}",ru:"Не удалось переименовать: {error}",ar:"فشل إعادة التسمية: {error}",no:"Kunne ikke gi nytt navn: {error}","pt-BR":"Falha ao renomear: {error}",th:"เปลี่ยนชื่อล้มเหลว: {error}",tr:"Yeniden adlandırma başarısız: {error}",uk:"Не вдалося перейменувати: {error}"},"ui.targetExists":{zh:"目标文件已存在",en:"Target already exists","zh-TW":"目標檔案已存在",ko:"대상이 이미 존재합니다",ja:"対象はすでに存在します",de:"Ziel existiert bereits",es:"El destino ya existe",fr:"La cible existe déjà",it:"La destinazione esiste già",da:"Destinationen eksisterer allerede",pl:"Cel już istnieje",ru:"Цель уже существует",ar:"الهدف موجود بالفعل",no:"Målet finnes allerede","pt-BR":"O destino já existe",th:"เป้าหมายมีอยู่แล้ว",tr:"Hedef zaten mevcut",uk:"Ціль вже існує"},"ui.backToChat":{zh:"返回对话",en:"Back to chat","zh-TW":"返回對話",ko:"채팅으로 돌아가기",ja:"チャットに戻る",de:"Zurück zum Chat",es:"Volver al chat",fr:"Retour au chat",it:"Torna alla chat",da:"Tilbage til chat",pl:"Powrót do czatu",ru:"Вернуться к чату",ar:"العودة إلى الدردشة",no:"Tilbake til chat","pt-BR":"Voltar ao chat",th:"กลับไปที่แชท",tr:"Sohbete dön",uk:"Повернутися до чату"},"ui.imageViewer.zoomIn":{zh:"放大",en:"Zoom in","zh-TW":"放大",ko:"확대",ja:"拡大",de:"Vergrößern",es:"Acercar",fr:"Zoom avant",it:"Ingrandisci",da:"Zoom ind",pl:"Powiększ",ru:"Увеличить",ar:"تكبير",no:"Zoom inn","pt-BR":"Aumentar zoom",th:"ซูมเข้า",tr:"Yakınlaştır",uk:"Збільшити"},"ui.imageViewer.zoomOut":{zh:"缩小",en:"Zoom out","zh-TW":"縮小",ko:"축소",ja:"縮小",de:"Verkleinern",es:"Alejar",fr:"Zoom arrière",it:"Riduci",da:"Zoom ud",pl:"Pomniejsz",ru:"Уменьшить",ar:"تصغير",no:"Zoom ut","pt-BR":"Diminuir zoom",th:"ซูมออก",tr:"Uzaklaştır",uk:"Зменшити"},"ui.imageViewer.resetZoom":{zh:"重置缩放",en:"Reset zoom","zh-TW":"重置縮放",ko:"확대/축소 초기화",ja:"ズームをリセット",de:"Zoom zurücksetzen",es:"Restablecer zoom",fr:"Réinitialiser le zoom",it:"Reimposta zoom",da:"Nulstil zoom",pl:"Resetuj zoom",ru:"Сбросить масштаб",ar:"إعادة تعيين التكبير",no:"Tilbakestill zoom","pt-BR":"Redefinir zoom",th:"รีเซ็ตการซูม",tr:"Yakınlaştırmayı sıfırla",uk:"Скинути масштаб"},"ui.imageViewer.fitToWindow":{zh:"适应窗口",en:"Fit to window","zh-TW":"適應視窗",ko:"창에 맞추기",ja:"ウィンドウに合わせる",de:"An Fenster anpassen",es:"Ajustar a ventana",fr:"Ajuster à la fenêtre",it:"Adatta alla finestra",da:"Tilpas til vindue",pl:"Dopasuj do okna",ru:"По размеру окна",ar:"ملاءمة النافذة",no:"Tilpass til vindu","pt-BR":"Ajustar à janela",th:"พอดีกับหน้าต่าง",tr:"Pencereye sığdır",uk:"Вписати у вікно"},"ui.imageLightbox.close":{zh:"关闭",en:"Close","zh-TW":"關閉",ko:"닫기",ja:"閉じる",de:"Schließen",es:"Cerrar",fr:"Fermer",it:"Chiudi",da:"Luk",pl:"Zamknij",ru:"Закрыть",ar:"إغلاق",no:"Lukk","pt-BR":"Fechar",th:"ปิด",tr:"Kapat",uk:"Закрити"},"ui.loading":{zh:"加载中...",en:"Loading...","zh-TW":"載入中...",ko:"로딩 중...",ja:"読み込み中...",de:"Lädt...",es:"Cargando...",fr:"Chargement...",it:"Caricamento...",da:"Indlæser...",pl:"Ładowanie...",ru:"Загрузка...",ar:"جارٍ التحميل...",no:"Laster...","pt-BR":"Carregando...",th:"กำลังโหลด...",tr:"Yükleniyor...",uk:"Завантаження..."},"ui.stats.total":{zh:"总计",en:"Total","zh-TW":"總計",ko:"합계",ja:"合計",de:"Gesamt",es:"Total",fr:"Total",it:"Totale",da:"I alt",pl:"Łącznie",ru:"Итого",ar:"الإجمالي",no:"Totalt","pt-BR":"Total",th:"รวม",tr:"Toplam",uk:"Разом"},"ui.stats.count":{zh:"次数",en:"Count","zh-TW":"次數",ko:"횟수",ja:"回数",de:"Anzahl",es:"Recuento",fr:"Nombre",it:"Conteggio",da:"Antal",pl:"Liczba",ru:"Количество",ar:"العدد",no:"Antall","pt-BR":"Contagem",th:"จำนวน",tr:"Sayı",uk:"Кількість"},"ui.stats.skill":{zh:"Skill",en:"Skill","zh-TW":"Skill",ko:"Skill",ja:"Skill",de:"Skill",es:"Skill",fr:"Skill",it:"Skill",da:"Skill",pl:"Skill",ru:"Skill",ar:"Skill",no:"Skill","pt-BR":"Skill",th:"Skill",tr:"Skill",uk:"Skill"},"ui.stats.subAgent":{zh:"SubAgent",en:"SubAgent","zh-TW":"SubAgent",ko:"SubAgent",ja:"SubAgent",de:"SubAgent",es:"SubAgent",fr:"SubAgent",it:"SubAgent",da:"SubAgent",pl:"SubAgent",ru:"SubAgent",ar:"SubAgent",no:"SubAgent","pt-BR":"SubAgent",th:"SubAgent",tr:"SubAgent",uk:"SubAgent"},"ui.stats.mainAgent":{zh:"MainAgent",en:"MainAgent","zh-TW":"MainAgent",ko:"MainAgent",ja:"MainAgent",de:"MainAgent",es:"MainAgent",fr:"MainAgent",it:"MainAgent",da:"MainAgent",pl:"MainAgent",ru:"MainAgent",ar:"MainAgent",no:"MainAgent","pt-BR":"MainAgent",th:"MainAgent",tr:"MainAgent",uk:"MainAgent"},"ui.stats.tool":{zh:"工具",en:"Tool","zh-TW":"工具",ko:"도구",ja:"ツール",de:"Tool",es:"Herramienta",fr:"Outil",it:"Strumento",da:"Værktøj",pl:"Narzędzie",ru:"Инструмент",ar:"الأداة",no:"Verktøy","pt-BR":"Ferramenta",th:"เครื่องมือ",tr:"Araç",uk:"Інструмент"},"ui.stats.input":{zh:"输入",en:"input","zh-TW":"輸入",ko:"입력",ja:"入力",de:"Eingabe",es:"entrada",fr:"entrée",it:"input",da:"input",pl:"wejście",ru:"ввод",ar:"إدخال",no:"inndata","pt-BR":"entrada",th:"อินพุต",tr:"girdi",uk:"ввід"},"ui.stats.output":{zh:"输出",en:"output","zh-TW":"輸出",ko:"출력",ja:"出力",de:"Ausgabe",es:"salida",fr:"sortie",it:"output",da:"output",pl:"wyjście",ru:"вывод",ar:"إخراج",no:"utdata","pt-BR":"saída",th:"เอาต์พุต",tr:"çıktı",uk:"вивід"},"ui.stats.create":{zh:"创建",en:"create","zh-TW":"建立",ko:"생성",ja:"作成",de:"Erstellung",es:"creación",fr:"création",it:"creazione",da:"oprettelse",pl:"utworzenie",ru:"создание",ar:"إنشاء",no:"opprettelse","pt-BR":"criação",th:"สร้าง",tr:"oluşturma",uk:"створення"},"ui.stats.read":{zh:"读取",en:"read","zh-TW":"讀取",ko:"읽기",ja:"読み取り",de:"Lesen",es:"lectura",fr:"lecture",it:"lettura",da:"læsning",pl:"odczyt",ru:"чтение",ar:"قراءة",no:"lesing","pt-BR":"leitura",th:"อ่าน",tr:"okuma",uk:"читання"},"ui.stats.cacheRead":{zh:"缓存读取",en:"cache read","zh-TW":"快取讀取"},"ui.stats.cacheWrite":{zh:"缓存写入",en:"cache write","zh-TW":"快取寫入"},"ui.stats.token":{zh:"Token",en:"Token","zh-TW":"Token",ko:"토큰",ja:"トークン",de:"Token",es:"Token",fr:"Token",it:"Token",da:"Token",pl:"Token",ru:"Токен",ar:"رمز",no:"Token","pt-BR":"Token",th:"โทเค็น",tr:"Token",uk:"Токен"},"ui.stats.cache":{zh:"缓存",en:"Cache","zh-TW":"快取",ko:"캐시",ja:"キャッシュ",de:"Cache",es:"Caché",fr:"Cache",it:"Cache",da:"Cache",pl:"Cache",ru:"Кэш",ar:"التخزين المؤقت",no:"Cache","pt-BR":"Cache",th:"แคช",tr:"Önbellek",uk:"Кеш"},"ui.detail.filterPlaceholder":{zh:"筛选",en:"filter","zh-TW":"篩選",ko:"필터",ja:"フィルター",de:"Filter",es:"filtrar",fr:"filtrer",it:"filtra",da:"filtrér",pl:"filtruj",ru:"фильтр",ar:"تصفية",no:"filtrer","pt-BR":"filtrar",th:"กรอง",tr:"filtrele",uk:"фільтр"},"ui.teammateStats.title":{zh:"队友",en:"Teammate","zh-TW":"隊友",ko:"팀원",ja:"チームメイト",de:"Teamkollege",es:"Compañero",fr:"Coéquipier",it:"Compagno di squadra",da:"Holdkammerat",pl:"Członek zespołu",ru:"Напарник",ar:"زميل الفريق",no:"Lagkamerat","pt-BR":"Colega de equipe",th:"เพื่อนร่วมทีม",tr:"Takım Arkadaşı",uk:"Напарник"},"ui.teammateStats.name":{zh:"名称",en:"Name","zh-TW":"名稱",ko:"이름",ja:"名前",de:"Name",es:"Nombre",fr:"Nom",it:"Nome",da:"Navn",pl:"Nazwa",ru:"Имя",ar:"الاسم",no:"Navn","pt-BR":"Nome",th:"ชื่อ",tr:"Ad",uk:"Ім'я"},"ui.chunkOutdatedReloading":{zh:"页面资源已更新,正在自动刷新...",en:"Page resources updated, reloading...","zh-TW":"頁面資源已更新,正在自動重新整理...",ko:"페이지 리소스가 업데이트되었습니다. 새로고침 중...",ja:"ページのリソースが更新されました。再読み込み中...",de:"Seitenressourcen aktualisiert, wird neu geladen...",es:"Recursos de la página actualizados, recargando...",fr:"Ressources de la page mises à jour, rechargement...",it:"Risorse della pagina aggiornate, ricaricamento...",da:"Sideressourcer opdateret, genindlæser...",pl:"Zasoby strony zaktualizowane, ponowne ładowanie...",ru:"Ресурсы страницы обновлены, перезагрузка...",ar:"تم تحديث موارد الصفحة، جارٍ إعادة التحميل...",no:"Sideressurser oppdatert, laster på nytt...","pt-BR":"Recursos da página atualizados, recarregando...",th:"ทรัพยากรหน้าได้รับการอัปเดต กำลังโหลดใหม่...",tr:"Sayfa kaynakları güncellendi, yeniden yükleniyor...",uk:"Ресурси сторінки оновлено, перезавантаження..."},"ui.save":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.saving":{zh:"保存中...",en:"Saving...","zh-TW":"儲存中...",ko:"저장 중...",ja:"保存中...",de:"Speichert...",es:"Guardando...",fr:"Enregistrement...",it:"Salvataggio...",da:"Gemmer...",pl:"Zapisywanie...",ru:"Сохранение...",ar:"جارٍ الحفظ...",no:"Lagrer...","pt-BR":"Salvando...",th:"กำลังบันทึก...",tr:"Kaydediliyor...",uk:"Збереження..."},"ui.saved":{zh:"已保存",en:"Saved","zh-TW":"已儲存",ko:"저장됨",ja:"保存済み",de:"Gespeichert",es:"Guardado",fr:"Enregistré",it:"Salvato",da:"Gemt",pl:"Zapisano",ru:"Сохранено",ar:"تم الحفظ",no:"Lagret","pt-BR":"Salvo",th:"บันทึกแล้ว",tr:"Kaydedildi",uk:"Збережен��"},"ui.saveFailed":{zh:"保存失败",en:"Save failed","zh-TW":"儲存失敗",ko:"저장 실패",ja:"保存失敗",de:"Speichern fehlgeschlagen",es:"Error al guardar",fr:"Échec de l'enregistrement",it:"Salvataggio fallito",da:"Gem mislykkedes",pl:"Zapis nieudany",ru:"Ошибка сохранения",ar:"فشل الحفظ",no:"Lagring mislyktes","pt-BR":"Falha ao salvar",th:"บันทึกล้มเหลว",tr:"Kaydetme başarısız",uk:"Помилка збереження"},"ui.viewMarkdown":{zh:"Markdown",en:"Markdown","zh-TW":"Markdown",ko:"Markdown",ja:"Markdown",de:"Markdown",es:"Markdown",fr:"Markdown",it:"Markdown",da:"Markdown",pl:"Markdown",ru:"Markdown",ar:"Markdown",no:"Markdown","pt-BR":"Markdown",th:"Markdown",tr:"Markdown",uk:"Markdown"},"ui.viewText":{zh:"文本编辑",en:"Edit Text","zh-TW":"文字編輯",ko:"텍스트 편집",ja:"テキスト編集",de:"Text bearbeiten",es:"Editar texto",fr:"Éditer le texte",it:"Modifica testo",da:"Rediger tekst",pl:"Edytuj tekst",ru:"Редактировать",ar:"تحرير النص",no:"Rediger tekst","pt-BR":"Editar texto",th:"แก้ไขข้อความ",tr:"Metni düzenle",uk:"Редагувати"},"ui.unsavedChanges":{zh:"未保存的更改",en:"Unsaved changes","zh-TW":"未儲存的變更",ko:"저장되지 않은 변경사항",ja:"未保存の変更",de:"Nicht gespeicherte Änderungen",es:"Cambios sin guardar",fr:"Modifications non enregistrées",it:"Modifiche non salvate",da:"Ikke-gemte ændringer",pl:"Niezapisane zmiany",ru:"Несохранённые изменения",ar:"تغييرات غير محفوظة",no:"Ulagrede endringer","pt-BR":"Alterações não salvas",th:"การเปลี่ยนแปลงที่ยังไม่ได้บันทึก",tr:"Kaydedilmemiş değişiklikler",uk:"Незбережені зміни"},"ui.terminal.exited":{zh:"[进程已退出,退出码: {code}]",en:"[Process exited with code {code}]","zh-TW":"[程序已退出,退出碼: {code}]",ko:"[프로세스가 코드 {code}(으)로 종료되었습니다]",ja:"[プロセスがコード {code} で終了しました]",de:"[Prozess mit Code {code} beendet]",es:"[Proceso finalizado con código {code}]",fr:"[Processus terminé avec le code {code}]",it:"[Processo terminato con codice {code}]",da:"[Proces afsluttet med kode {code}]",pl:"[Proces zakończony z kodem {code}]",ru:"[Процесс завершился с кодом {code}]",ar:"[انتهت العملية برمز {code}]",no:"[Prosess avsluttet med kode {code}]","pt-BR":"[Processo encerrado com código {code}]",th:"[กระบวนการออกด้วยรหัส {code}]",tr:"[İşlem {code} koduyla çıkış yaptı]",uk:"[Процес завершився з кодом {code}]"},"ui.terminal.pressEnterForShell":{zh:"按 Enter 键启动新的 Shell 会话",en:"Press Enter to start a new shell session","zh-TW":"按 Enter 鍵啟動新的 Shell 會話",ko:"Enter를 눌러 새 셸 세션을 시작하세요",ja:"Enter キーを押して新しいシェルセッションを開始",de:"Drücken Sie Enter, um eine neue Shell-Sitzung zu starten",es:"Presione Enter para iniciar una nueva sesión de shell",fr:"Appuyez sur Entrée pour démarrer une nouvelle session shell",it:"Premi Invio per avviare una nuova sessione shell",da:"Tryk Enter for at starte en ny shell-session",pl:"Naciśnij Enter, aby uruchomić nową sesję powłoki",ru:"Нажмите Enter, чтобы запустить новую сессию оболочки",ar:"اضغط Enter لبدء جلسة shell جديدة",no:"Trykk Enter for å starte en ny shell-økt","pt-BR":"Pressione Enter para iniciar uma nova sessão de shell",th:"กด Enter เพื่อเริ่มเซสชัน Shell ใหม่",tr:"Yeni bir kabuk oturumu başlatmak için Enter'a basın",uk:"Натисніть Enter, щоб розпочати нову сесію оболонки"},"ui.diffSessionChanged":{zh:"请求体大小减小,可能使用了 /clear、/compact 或 session 发生了变化",en:"Request body size decreased, possibly due to /clear, /compact, or session change","zh-TW":"請求體大小減小,可能使用了 /clear、/compact 或 session 發生了變化",ko:"요청 본문 크기가 줄었습니다. /clear, /compact 또는 세션 변경이 있었을 수 있습니다",ja:"リクエストボディのサイズが減少しました。/clear、/compact、またはセッション変更の可能性があります",de:"Anfragekörper wurde kleiner, möglicherweise durch /clear, /compact oder Sitzungswechsel",es:"El tamaño del cuerpo de la solicitud disminuyó, posiblemente debido a /clear, /compact o cambio de sesión",fr:"La taille du corps de la requête a diminué, possiblement dû à /clear, /compact ou un changement de session",it:"La dimensione del corpo della richiesta è diminuita, probabilmente a causa di /clear, /compact o cambio di sessione",da:"Anmodningens størrelse er reduceret, muligvis på grund af /clear, /compact eller sessionsændring",pl:"Rozmiar treści żądania zmniejszył się, prawdopodobnie z powodu /clear, /compact lub zmiany sesji",ru:"Размер тела запроса уменьшился, возможно из-за /clear, /compact или смены сессии",ar:"حجم نص الطلب انخفض، ربما بسبب /clear أو /compact أو تغيير الجلسة",no:"Forespørselens størrelse ble redusert, muligens på grunn av /clear, /compact eller sesjonsendring","pt-BR":"O tamanho do corpo da requisição diminuiu, possivelmente devido a /clear, /compact ou mudança de sessão",th:"ขนาดเนื้อหาคำขอลดลง อาจเกิดจาก /clear, /compact หรือการเปลี่ยนเซสชัน",tr:"İstek gövdesi boyutu küçüldü, muhtemelen /clear, /compact veya oturum değişikliği nedeniyle",uk:"Розмір тіла запиту зменшився, можливо через /clear, /compact або зміну сесії"},"ui.resume.title":{zh:"检测到近期日志",en:"Recent Log Detected","zh-TW":"偵測到近期日誌",ko:"최근 로그 감지됨",ja:"最近のログを検出",de:"Kürzliches Log erkannt",es:"Log reciente detectado",fr:"Log récent détecté",it:"Log recente rilevato",da:"Nylig log fundet",pl:"Wykryto ostatni log",ru:"Обнаружен недавний лог",ar:"تم اكتشاف سجل حديث",no:"Nylig logg oppdaget","pt-BR":"Log recente detectado",th:"ตรวจพบล็อกล่าสุด",tr:"Son günlük tespit edildi",uk:"Виявлено нещодавній лог"},"ui.resume.message":{zh:"检测到1小时内的日志: {file},是否继续?",en:"Recent log found (within 1 hour): {file}. Continue?","zh-TW":"偵測到1小時內的日誌: {file},是否繼續?",ko:"1시간 이내 로그 감지: {file}. 계속하시겠습니까?",ja:"1時間以内のログを検出: {file}。続行しますか?",de:"Kürzliches Log gefunden (innerhalb 1 Stunde): {file}. Fortsetzen?",es:"Log reciente encontrado (dentro de 1 hora): {file}. ¿Continuar?",fr:"Log récent trouvé (moins d'1 heure): {file}. Continuer ?",it:"Log recente trovato (entro 1 ora): {file}. Continuare?",da:"Nylig log fundet (inden for 1 time): {file}. Fortsæt?",pl:"Znaleziono ostatni log (w ciągu 1 godziny): {file}. Kontynuować?",ru:"Обнаружен недавний лог (менее 1 часа): {file}. Продолжить?",ar:"تم العثور على سجل حديث (خلال ساعة واحدة): {file}. هل تريد المتابعة؟",no:"Nylig logg funnet (innen 1 time): {file}. Fortsette?","pt-BR":"Log recente encontrado (dentro de 1 hora): {file}. Continuar?",th:"พบล็อกล่าสุด (ภายใน 1 ชั่วโมง): {file} ต้องการดำเนินการต่อหรือไม่?",tr:"Son günlük bulundu (1 saat içinde): {file}. Devam edilsin mi?",uk:"Знайдено нещодавній лог (менше 1 години): {file}. Продовжити?"},"ui.resume.continue":{zh:"继续上次",en:"Continue","zh-TW":"繼續上次",ko:"이어서 계속",ja:"前回の続き",de:"Fortsetzen",es:"Continuar",fr:"Continuer",it:"Continua",da:"Fortsæt",pl:"Kontynuuj",ru:"Продолжить",ar:"متابعة",no:"Fortsett","pt-BR":"Continuar",th:"ดำเนินการต่อ",tr:"Devam et",uk:"Продовжити"},"ui.resume.new":{zh:"新开日志",en:"Start New","zh-TW":"新開日誌",ko:"새 로그 시작",ja:"新規ログ",de:"Neues Log",es:"Nuevo log",fr:"Nouveau log",it:"Nuovo log",da:"Ny log",pl:"Nowy log",ru:"Новый лог",ar:"سجل جديد",no:"Ny logg","pt-BR":"Novo log",th:"ล็อกใหม่",tr:"Yeni günlük",uk:"Новий лог"},"ui.resume.remember":{zh:"记住我的选择,下次默认跳过弹窗",en:"Remember my choice and skip this dialog next time","zh-TW":"記住我的選擇,下次預設跳過彈窗",ko:"내 선택을 기억하고 다음에 이 대화 상자 건너뛰기",ja:"選択を記憶し、次回このダイアログをスキップ",de:"Meine Wahl merken und diesen Dialog beim nächsten Mal überspringen",es:"Recordar mi elección y omitir este diálogo la próxima vez",fr:"Mémoriser mon choix et ignorer cette boîte de dialogue la prochaine fois",it:"Ricorda la mia scelta e salta questa finestra la prossima volta",da:"Husk mit valg og spring denne dialog over næste gang",pl:"Zapamiętaj mój wybór i pomiń to okno następnym razem",ru:"Запомнить мой выбор и пропустить этот диалог в следующий раз",ar:"تذكر اختياري وتخطي هذا الحوار في المرة القادمة",no:"Husk mitt valg og hopp over denne dialogen neste gang","pt-BR":"Lembrar minha escolha e pular este diálogo na próxima vez",th:"จำตัวเลือกของฉันและข้ามหน้าต่างนี้ในครั้งถัดไป",tr:"Seçimimi hatırla ve bir dahaki sefere bu pencereyi atla",uk:"Запам'ятати мій вибір і пропустити це вікно наступного разу"},"ui.contextUsage":{zh:"上下文消耗:",en:"Context usage: ","zh-TW":"上下文消耗:",ko:"컨텍스트 사용량: ",ja:"コンテキスト消費:",de:"Kontextverbrauch: ",es:"Consumo de contexto: ",fr:"Consommation du contexte : ",it:"Consumo del contesto: ",da:"Kontekstforbrug: ",pl:"Zużycie kontekstu: ",ru:"Расход контекста: ",ar:"استهلاك السياق: ",no:"Kontekstforbruk: ","pt-BR":"Consumo de contexto: ",th:"การใช้บริบท: ",tr:"Bağlam tüketimi: ",uk:"Витрати контексту: "},"ui.contextManagement":{zh:"上下文管理",en:"Context Management","zh-TW":"上下文管理",ko:"컨텍스트 관리",ja:"コンテキスト管理",de:"Kontextverwaltung",es:"Gestión de contexto",fr:"Gestion du contexte",it:"Gestione del contesto",da:"Kontekststyring",pl:"Zarządzanie kontekstem",ru:"Управление контекстом",ar:"إدارة السياق",no:"Kontekststyring","pt-BR":"Gerenciamento de contexto",th:"การจัดการบริบท",tr:"Bağlam yönetimi",uk:"Керування контекстом"},"ui.themeStyle":{zh:"主题风格",en:"Theme Style","zh-TW":"主題風格",ko:"테마 스타일",ja:"テーマスタイル",de:"Designstil",es:"Estilo del tema",fr:"Style du thème",it:"Stile del tema",da:"Temastil",pl:"Styl motywu",ru:"Стиль темы",ar:"نمط السمة",no:"Temastil","pt-BR":"Estilo do tema",th:"สไตล์ธีม",tr:"Tema stili",uk:"Стиль теми"},"ui.projectScopedPrefs.group":{zh:"项目独立配置",en:"Project-Specific Preferences","zh-TW":"專案獨立設定",ko:"프로젝트 전용 설정",ja:"プロジェクト個別設定",de:"Projektspezifische Einstellungen",es:"Preferencias por proyecto",fr:"Préférences par projet",it:"Preferenze per progetto",da:"Projektspecifikke indstillinger",pl:"Ustawienia dla projektu",ru:"Настройки для проекта",ar:"تفضيلات خاصة بالمشروع",no:"Prosjektspesifikke innstillinger","pt-BR":"Preferências por projeto",th:"การตั้งค่าเฉพาะโปรเจกต์",tr:"Projeye özel tercihler",uk:"Налаштування для проєкту"},"ui.projectScopedPrefs":{zh:"启动项目独立配置",en:"Enable project-specific preferences","zh-TW":"啟用專案獨立設定",ko:"프로젝트 전용 설정 사용",ja:"プロジェクト個別設定を有効化",de:"Projektspezifische Einstellungen aktivieren",es:"Activar preferencias por proyecto",fr:"Activer les préférences par projet",it:"Abilita preferenze per progetto",da:"Aktivér projektspecifikke indstillinger",pl:"Włącz ustawienia dla projektu",ru:"Включить настройки для проекта",ar:"تفعيل التفضيلات الخاصة بالمشروع",no:"Aktiver prosjektspesifikke innstillinger","pt-BR":"Ativar preferências por projeto",th:"เปิดใช้การตั้งค่าเฉพาะโปรเจกต์",tr:"Projeye özel tercihleri etkinleştir",uk:"Увімкнути налаштування для проєкту"},"ui.projectScopedPrefs.help":{zh:"开启后会把当前全部偏好复制一份到本项目名下,此后的修改只作用于当前项目、不影响全局;关闭则删除该副本。适合多人共用一台服务器时按项目区分各自偏好。",en:"When on, all current preferences are copied to this project; later changes apply only to this project and don't affect the global ones. Turning it off deletes the copy. Useful when several people share one server and want per-project preferences.","zh-TW":"開啟後會把目前全部偏好複製一份到本專案名下,之後的修改只作用於目前專案、不影響全域;關閉則刪除該副本。適合多人共用一台伺服器時依專案區分各自偏好。",ko:"켜면 현재 모든 설정이 이 프로젝트로 복사되며, 이후 변경은 이 프로젝트에만 적용되고 전역에는 영향을 주지 않습니다. 끄면 복사본이 삭제됩니다. 여러 사람이 한 서버를 공유하며 프로젝트별 설정을 두고 싶을 때 유용합니다.",ja:"オンにすると現在のすべての設定がこのプロジェクトにコピーされ、以降の変更はこのプロジェクトのみに適用され、グローバルには影響しません。オフにするとコピーは削除されます。複数人が1台のサーバーを共有する際にプロジェクト単位で設定を分けるのに便利です。",de:"Wenn aktiviert, werden alle aktuellen Einstellungen in dieses Projekt kopiert; spätere Änderungen gelten nur für dieses Projekt und beeinflussen die globalen nicht. Deaktivieren löscht die Kopie. Nützlich, wenn sich mehrere Personen einen Server teilen.",es:"Al activarlo, todas las preferencias actuales se copian a este proyecto; los cambios posteriores solo se aplican a este proyecto y no afectan a las globales. Al desactivarlo se elimina la copia. Útil cuando varias personas comparten un servidor.",fr:"Une fois activé, toutes les préférences actuelles sont copiées vers ce projet ; les modifications ultérieures ne s'appliquent qu'à ce projet et n'affectent pas les préférences globales. Le désactiver supprime la copie. Utile quand plusieurs personnes partagent un serveur.",it:"Se attivo, tutte le preferenze attuali vengono copiate in questo progetto; le modifiche successive si applicano solo a questo progetto e non influiscono su quelle globali. Disattivarlo elimina la copia. Utile quando più persone condividono un server.",da:"Når den er slået til, kopieres alle nuværende indstillinger til dette projekt; senere ændringer gælder kun for dette projekt og påvirker ikke de globale. Slå fra for at slette kopien. Nyttigt når flere deler én server.",pl:"Po włączeniu wszystkie bieżące ustawienia są kopiowane do tego projektu; późniejsze zmiany dotyczą tylko tego projektu i nie wpływają na globalne. Wyłączenie usuwa kopię. Przydatne, gdy wiele osób współdzieli jeden serwer.",ru:"При включении все текущие настройки копируются в этот проект; последующие изменения применяются только к этому проекту и не влияют на глобальные. Выключение удаляет копию. Удобно, когда один сервер используют несколько человек.",ar:"عند التفعيل، يتم نسخ جميع التفضيلات الحالية إلى هذا المشروع؛ وتنطبق التغييرات اللاحقة على هذا المشروع فقط دون التأثير على الإعدادات العامة. إيقافه يحذف النسخة. مفيد عند مشاركة عدة أشخاص لخادم واحد.",no:"Når den er på, kopieres alle gjeldende innstillinger til dette prosjektet; senere endringer gjelder bare dette prosjektet og påvirker ikke de globale. Slå av for å slette kopien. Nyttig når flere deler én server.","pt-BR":"Quando ativado, todas as preferências atuais são copiadas para este projeto; alterações posteriores se aplicam apenas a este projeto e não afetam as globais. Desativar exclui a cópia. Útil quando várias pessoas compartilham um servidor.",th:"เมื่อเปิด การตั้งค่าทั้งหมดในปัจจุบันจะถูกคัดลอกไปยังโปรเจกต์นี้ การเปลี่ยนแปลงภายหลังจะมีผลเฉพาะโปรเจกต์นี้และไม่กระทบค่าส่วนกลาง ปิดเพื่อลบสำเนา เหมาะเมื่อหลายคนใช้เซิร์ฟเวอร์เดียวกัน",tr:"Açıkken tüm mevcut tercihler bu projeye kopyalanır; sonraki değişiklikler yalnızca bu projeye uygulanır ve genel olanları etkilemez. Kapatmak kopyayı siler. Birden çok kişi tek bir sunucuyu paylaştığında kullanışlıdır.",uk:"Коли увімкнено, усі поточні налаштування копіюються до цього проєкту; подальші зміни застосовуються лише до цього проєкту й не впливають на глобальні. Вимкнення видаляє копію. Зручно, коли один сервер використовують кілька людей."},"ui.projectPrefsManage":{zh:"配置管理",en:"Manage Configs","zh-TW":"設定管理",ko:"설정 관리",ja:"設定管理",de:"Konfigurationen verwalten",es:"Gestionar configuraciones",fr:"Gérer les configurations",it:"Gestisci configurazioni",da:"Administrer konfigurationer",pl:"Zarządzaj konfiguracjami",ru:"Управление конфигурациями",ar:"إدارة الإعدادات",no:"Administrer konfigurasjoner","pt-BR":"Gerenciar configurações",th:"จัดการการตั้งค่า",tr:"Yapılandırmaları yönet",uk:"Керування конфігураціями"},"ui.projectPrefsManage.open":{zh:"管理({count})",en:"Manage ({count})","zh-TW":"管理({count})",ko:"관리 ({count})",ja:"管理({count})",de:"Verwalten ({count})",es:"Gestionar ({count})",fr:"Gérer ({count})",it:"Gestisci ({count})",da:"Administrer ({count})",pl:"Zarządzaj ({count})",ru:"Управление ({count})",ar:"إدارة ({count})",no:"Administrer ({count})","pt-BR":"Gerenciar ({count})",th:"จัดการ ({count})",tr:"Yönet ({count})",uk:"Керувати ({count})"},"ui.projectPrefsManage.title":{zh:"项目独立配置管理",en:"Project-Specific Preferences","zh-TW":"專案獨立設定管理",ko:"프로젝트 전용 설정 관리",ja:"プロジェクト個別設定の管理",de:"Projektspezifische Einstellungen verwalten",es:"Gestión de preferencias por proyecto",fr:"Gestion des préférences par projet",it:"Gestione preferenze per progetto",da:"Administrer projektspecifikke indstillinger",pl:"Zarządzanie ustawieniami projektów",ru:"Управление настройками проектов",ar:"إدارة التفضيلات الخاصة بالمشاريع",no:"Administrer prosjektspesifikke innstillinger","pt-BR":"Gerenciar preferências por projeto",th:"จัดการการตั้งค่าเฉพาะโปรเจกต์",tr:"Projeye özel tercihleri yönet",uk:"Керування налаштуваннями проєктів"},"ui.projectPrefsManage.count":{zh:"{count} 个项目有独立配置",en:"{count} project(s) with independent config","zh-TW":"{count} 個專案有獨立設定",ko:"독립 설정이 있는 프로젝트 {count}개",ja:"個別設定があるプロジェクト:{count} 件",de:"{count} Projekt(e) mit eigener Konfiguration",es:"{count} proyecto(s) con configuración independiente",fr:"{count} projet(s) avec configuration indépendante",it:"{count} progetto/i con configurazione indipendente",da:"{count} projekt(er) med egen konfiguration",pl:"Projekty z własną konfiguracją: {count}",ru:"Проектов с отдельной конфигурацией: {count}",ar:"{count} مشروع/مشاريع بإعداد مستقل",no:"{count} prosjekt(er) med egen konfigurasjon","pt-BR":"{count} projeto(s) com configuração independente",th:"{count} โปรเจกต์ที่มีการตั้งค่าแยก",tr:"Bağımsız yapılandırmaya sahip {count} proje",uk:"Проєктів з окремою конфігурацією: {count}"},"ui.projectPrefsManage.delete":{zh:"删除",en:"Delete","zh-TW":"刪除",ko:"삭제",ja:"削除",de:"Löschen",es:"Eliminar",fr:"Supprimer",it:"Elimina",da:"Slet",pl:"Usuń",ru:"Удалить",ar:"حذف",no:"Slett","pt-BR":"Excluir",th:"ลบ",tr:"Sil",uk:"Видалити"},"ui.projectPrefsManage.deleteConfirm":{zh:"确定删除「{name}」的独立配置?",en:"Delete the independent config for '{name}'?","zh-TW":"確定刪除「{name}」的獨立設定?",ko:"'{name}'의 독립 설정을 삭제할까요?",ja:"「{name}」の個別設定を削除しますか?",de:"Eigene Konfiguration für «{name}» löschen?",es:"¿Eliminar la configuración independiente de «{name}»?",fr:"Supprimer la configuration indépendante de « {name} » ?",it:"Eliminare la configurazione indipendente di «{name}»?",da:"Slet den uafhængige konfiguration for «{name}»?",pl:"Usunąć niezależną konfigurację dla «{name}»?",ru:"Удалить отдельную конфигурацию для «{name}»?",ar:"حذف الإعداد المستقل لـ «{name}»؟",no:"Slette den uavhengige konfigurasjonen for «{name}»?","pt-BR":"Excluir a configuração independente de «{name}»?",th:"ลบการตั้งค่าแยกของ '{name}' หรือไม่?",tr:"'{name}' için bağımsız yapılandırma silinsin mi?",uk:"Видалити окрему конфігурацію для «{name}»?"},"ui.projectPrefsManage.currentTag":{zh:"当前项目",en:"Current","zh-TW":"目前專案",ko:"현재 프로젝트",ja:"現在のプロジェクト",de:"Aktuell",es:"Actual",fr:"Actuel",it:"Corrente",da:"Nuværende",pl:"Bieżący",ru:"Текущий",ar:"الحالي",no:"Gjeldende","pt-BR":"Atual",th:"ปัจจุบัน",tr:"Geçerli",uk:"Поточний"},"ui.projectPrefsManage.empty":{zh:"暂无项目独立配置",en:"No project-specific preferences yet","zh-TW":"尚無專案獨立設定",ko:"아직 프로젝트 전용 설정이 없습니다",ja:"プロジェクト個別設定はまだありません",de:"Noch keine projektspezifischen Einstellungen",es:"Aún no hay preferencias por proyecto",fr:"Aucune préférence par projet pour l'instant",it:"Nessuna preferenza per progetto",da:"Ingen projektspecifikke indstillinger endnu",pl:"Brak ustawień dla projektów",ru:"Пока нет настроек для проектов",ar:"لا توجد تفضيلات خاصة بالمشاريع بعد",no:"Ingen prosjektspesifikke innstillinger ennå","pt-BR":"Ainda não há preferências por projeto",th:"ยังไม่มีการตั้งค่าเฉพาะโปรเจกต์",tr:"Henüz projeye özel tercih yok",uk:"Поки немає налаштувань для проєктів"},"ui.logSettings":{zh:"日志设置",en:"Log Settings","zh-TW":"日誌設定",ko:"로그 설정",ja:"ログ設定",de:"Protokolleinstellungen",es:"Configuración de registros",fr:"Paramètres des journaux",it:"Impostazioni dei log",da:"Logindstillinger",pl:"Ustawienia dziennika",ru:"Настройки журнала",ar:"إعدادات السجل",no:"Logginnstillinger","pt-BR":"Configurações de log",th:"การตั้งค่าบันทึก",tr:"Günlük ayarları",uk:"Налаштування журналу"},"ui.resumeAutoChoice":{zh:"是否继承默认日志",en:"Default log resume behavior","zh-TW":"是否繼承預設日誌",ko:"기본 로그 재개 동작",ja:"デフォルトのログ再開動作",de:"Standard-Log-Wiederaufnahme",es:"Comportamiento predeterminado de reanudación de log",fr:"Comportement par défaut de reprise du log",it:"Comportamento predefinito di ripresa del log",da:"Standard log-genoptagelsesadfærd",pl:"Domyślne zachowanie wznowienia logu",ru:"Поведение возобновления лога по умолчанию",ar:"سلوك استئناف السجل الافتراضي",no:"Standard logg-gjenopptakelsesatferd","pt-BR":"Comportamento padrão de retomada do log",th:"พฤติกรรมการดำเนินการต่อล็อกเริ่มต้น",tr:"Varsayılan günlük devam davranışı",uk:"Поведінка відновлення логу за замовчуванням"},"ui.resumeAutoChoice.continue":{zh:"默认继承",en:"Resume previous log","zh-TW":"預設繼承",ko:"이전 로그 이어서",ja:"前回のログを継続",de:"Vorheriges Log fortsetzen",es:"Reanudar log anterior",fr:"Reprendre le log précédent",it:"Riprendi log precedente",da:"Genoptag forrige log",pl:"Wznów poprzedni log",ru:"Продолжить предыдущий лог",ar:"استئناف السجل السابق",no:"Gjenoppta forrige logg","pt-BR":"Retomar log anterior",th:"ดำเนินการต่อจากล็อกก่อนหน้า",tr:"Önceki günlüğe devam et",uk:"Продовжити попередній лог"},"ui.resumeAutoChoice.new":{zh:"默认新开日志",en:"Start new log","zh-TW":"預設新開日誌",ko:"새 로그 시작",ja:"新規ログを開始",de:"Neues Log starten",es:"Iniciar nuevo log",fr:"Démarrer un nouveau log",it:"Avvia nuovo log",da:"Start ny log",pl:"Rozpocznij nowy log",ru:"Начать новый лог",ar:"بدء سجل جديد",no:"Start ny logg","pt-BR":"Iniciar novo log",th:"เริ่มล็อกใหม่",tr:"Yeni günlük başlat",uk:"Почати новий лог"},"ui.themeColor":{zh:"主题色",en:"Theme","zh-TW":"主題色",ko:"테마 색상",ja:"テーマカラー",de:"Farbschema",es:"Color del tema",fr:"Couleur du thème",it:"Colore del tema",da:"Temafarve",pl:"Kolor tematu",ru:"Цвет темы",ar:"لون المظهر",no:"Temafarge","pt-BR":"Cor do tema",th:"สีธีม",tr:"Tema Rengi",uk:"Колір теми"},"ui.themeColor.dark":{zh:"耀石黑",en:"Obsidian Dark","zh-TW":"耀石黑",ko:"옵시디언 다크",ja:"オブシディアンダーク",de:"Obsidian Dunkel",es:"Obsidiana Oscuro",fr:"Obsidienne Sombre",it:"Ossidiana Scuro",da:"Obsidian Mørk",pl:"Obsydian Ciemny",ru:"Обсидиан тёмная",ar:"أوبسيديان داكن",no:"Obsidian Mørk","pt-BR":"Obsidiana Escuro",th:"ออบซิเดียนมืด",tr:"Obsidyen Koyu",uk:"Обсидіан темна"},"ui.themeColor.light":{zh:"雪山白",en:"Snow White","zh-TW":"雪山白",ko:"스노우 화이트",ja:"スノーホワイト",de:"Schneeweiß",es:"Blanco Nieve",fr:"Blanc Neige",it:"Bianco Neve",da:"Snehvid",pl:"Śnieżna Biel",ru:"Снежная белая",ar:"أبيض ثلجي",no:"Snøhvit","pt-BR":"Branco Neve",th:"สโนว์ไวท์",tr:"Kar Beyazı",uk:"Сніжна біла"},"ui.displayScale":{zh:"显示大小",en:"Display Size","zh-TW":"顯示大小",ko:"화면 크기",ja:"表示サイズ",de:"Anzeigegröße",es:"Tamaño de pantalla",fr:"Taille d'affichage",it:"Dimensione display",da:"Visningsstørrelse",pl:"Rozmiar wyświetlania",ru:"Размер отображения",ar:"حجم العرض",no:"Visningsstørrelse","pt-BR":"Tamanho de exibição",th:"ขนาดการแสดงผล",tr:"Görüntü Boyutu",uk:"Розмір відображення"},"ui.displayScale.hint":{zh:"缩放整个界面(Cmd/Ctrl +/- 调整,Cmd/Ctrl 0 复位)",en:"Scale the whole interface (Cmd/Ctrl +/- to adjust, Cmd/Ctrl 0 to reset)","zh-TW":"縮放整個介面(Cmd/Ctrl +/- 調整,Cmd/Ctrl 0 重設)",ko:"전체 화면 확대/축소 (Cmd/Ctrl +/- 조절, Cmd/Ctrl 0 초기화)",ja:"画面全体を拡大縮小 (Cmd/Ctrl +/- で調整、Cmd/Ctrl 0 でリセット)",de:"Gesamte Oberfläche skalieren (Cmd/Ctrl +/- anpassen, Cmd/Ctrl 0 zurücksetzen)",es:"Escalar toda la interfaz (Cmd/Ctrl +/- para ajustar, Cmd/Ctrl 0 para restablecer)",fr:"Mettre à l'échelle toute l'interface (Cmd/Ctrl +/- pour ajuster, Cmd/Ctrl 0 pour réinitialiser)",it:"Ridimensiona l'intera interfaccia (Cmd/Ctrl +/- per regolare, Cmd/Ctrl 0 per reimpostare)",da:"Skalér hele grænsefladen (Cmd/Ctrl +/- for at justere, Cmd/Ctrl 0 for at nulstille)",pl:"Skaluj cały interfejs (Cmd/Ctrl +/- aby dostosować, Cmd/Ctrl 0 aby zresetować)",ru:"Масштабировать весь интерфейс (Cmd/Ctrl +/- для настройки, Cmd/Ctrl 0 для сброса)",ar:"تكبير/تصغير الواجهة بأكملها (Cmd/Ctrl +/- للضبط، Cmd/Ctrl 0 لإعادة التعيين)",no:"Skaler hele grensesnittet (Cmd/Ctrl +/- for å justere, Cmd/Ctrl 0 for å tilbakestille)","pt-BR":"Dimensionar toda a interface (Cmd/Ctrl +/- para ajustar, Cmd/Ctrl 0 para redefinir)",th:"ปรับขนาดทั้งอินเทอร์เฟซ (Cmd/Ctrl +/- เพื่อปรับ, Cmd/Ctrl 0 เพื่อรีเซ็ต)",tr:"Tüm arayüzü ölçeklendir (ayarlamak için Cmd/Ctrl +/-, sıfırlamak için Cmd/Ctrl 0)",uk:"Масштабувати весь інтерфейс (Cmd/Ctrl +/- для налаштування, Cmd/Ctrl 0 для скидання)"},"ui.displayScale.browserHint":{zh:"浏览器缩放快捷键:按住键盘 {mod} 键,再按 + 放大、按 − 缩小、按 0 复位",en:"Browser zoom shortcut: hold the {mod} key, then press + to zoom in, − to zoom out, 0 to reset","zh-TW":"瀏覽器縮放快捷鍵:按住鍵盤 {mod} 鍵,再按 + 放大、按 − 縮小、按 0 復位",ko:"브라우저 확대/축소 단축키: 키보드 {mod} 키를 누른 채 + 확대, − 축소, 0 초기화",ja:"ブラウザのズームショートカット:キーボードの {mod} キーを押しながら + で拡大、− で縮小、0 でリセット",de:"Browser-Zoom-Tastenkürzel: {mod}-Taste gedrückt halten, dann + zum Vergrößern, − zum Verkleinern, 0 zum Zurücksetzen",es:"Atajo de teclado para el zoom del navegador: mantén pulsada la tecla {mod} y pulsa + para acercar, − para alejar, 0 para restablecer",fr:"Raccourci clavier de zoom du navigateur : maintenez la touche {mod}, puis appuyez sur + pour agrandir, − pour réduire, 0 pour réinitialiser",it:"Scorciatoia da tastiera per lo zoom del browser: tieni premuto il tasto {mod}, poi premi + per ingrandire, − per ridurre, 0 per reimpostare",da:"Tastaturgenvej til browser-zoom: hold {mod}-tasten nede, og tryk på + for at zoome ind, − for at zoome ud, 0 for at nulstille",pl:"Skrót klawiszowy powiększenia przeglądarki: przytrzymaj klawisz {mod}, a następnie naciśnij + aby powiększyć, − aby pomniejszyć, 0 aby zresetować",ru:"Сочетание клавиш масштаба браузера: удерживая клавишу {mod}, нажмите + для увеличения, − для уменьшения, 0 для сброса",ar:"اختصار لوحة المفاتيح لتكبير المتصفح: اضغط مع الاستمرار على مفتاح {mod} ثم اضغط + للتكبير، − للتصغير، 0 لإعادة التعيين",no:"Hurtigtast for nettleserzoom: hold inne {mod}-tasten, og trykk + for å zoome inn, − for å zoome ut, 0 for å tilbakestille","pt-BR":"Atalho de teclado para o zoom do navegador: segure a tecla {mod} e pressione + para ampliar, − para reduzir, 0 para redefinir",th:"คีย์ลัดซูมของเบราว์เซอร์: กดปุ่ม {mod} ค้างไว้ แล้วกด + เพื่อขยาย, − เพื่อย่อ, 0 เพื่อรีเซ็ต",tr:"Tarayıcı yakınlaştırma klavye kısayolu: {mod} tuşunu basılı tutun, ardından büyütmek için +, küçültmek için −, sıfırlamak için 0 tuşuna basın",uk:"Комбінація клавіш масштабування браузера: утримуючи клавішу {mod}, натисніть + для збільшення, − для зменшення, 0 для скидання"},"ui.settings":{zh:"偏好设置",en:"Preferences","zh-TW":"偏好設定",ko:"환경설정",ja:"環境設定",de:"Einstellungen",es:"Preferencias",fr:"Préférences",it:"Preferenze",da:"Indstillinger",pl:"Preferencje",ru:"Настройки",ar:"التفضيلات",no:"Innstillinger","pt-BR":"Preferências",th:"การตั้งค่า",tr:"Tercihler",uk:"Налаштування"},"ui.collapseToolResults":{zh:"折叠工具返回内容",en:"Collapse tool results","zh-TW":"摺疊工具回傳內容",ko:"도구 결과 접기",ja:"ツール結果を折りたたむ",de:"Werkzeugergebnisse einklappen",es:"Contraer resultados de herramientas",fr:"Réduire les résultats des outils",it:"Comprimi risultati strumenti",da:"Skjul værktøjsresultater",pl:"Zwiń wyniki narzędzi",ru:"Свернуть результаты инструментов",ar:"طي نتائج الأدوات",no:"Skjul verktøyresultater","pt-BR":"Recolher resultados de ferramentas",th:"ย่อผลลัพธ์เครื่องมือ",tr:"Araç sonuçlarını daralt",uk:"Згорнути результати інструментів"},"ui.expandThinking":{zh:'展开"思考过程"',en:'Expand "Thinking"',"zh-TW":'展開"思考過程"',ko:'"사고 과정" 펼치기',ja:'"思考プロセス"を展開',de:'"Denkprozess" aufklappen',es:'Expandir "Proceso de pensamiento"',fr:'Développer "Processus de réflexion"',it:'Espandi "Processo di pensiero"',da:'Udvid "Tænkeproces"',pl:'Rozwiń "Proces myślenia"',ru:'Развернуть "Процесс мышления"',ar:'توسيع "عملية التفكير"',no:'Utvid "Tenkeprosess"',"pt-BR":'Expandir "Processo de pensamento"',th:'ขยาย "กระบวนการคิด"',tr:'"Düşünce süreci"ni genişlet',uk:'Розгорнути "Процес мислення"'},"ui.expandThinking.help":{zh:"开启后,默认展开模型的「思考过程」内容;关闭则折叠,需要时再点开。",en:"When on, the model's thinking blocks are expanded by default; when off, they stay collapsed until you open them.","zh-TW":"開啟後,預設展開模型的「思考過程」內容;關閉則折疊,需要時再點開。",ko:"켜면 모델의 사고 과정 블록이 기본으로 펼쳐집니다. 끄면 접힌 상태로 두고 필요할 때 펼칠 수 있습니다.",ja:"オンにすると、モデルの「思考プロセス」がデフォルトで展開されます。オフの場合は折りたたまれ、必要なときに開けます。",de:"Wenn aktiviert, werden die Denkprozess-Blöcke des Modells standardmäßig aufgeklappt; wenn deaktiviert, bleiben sie eingeklappt, bis du sie öffnest.",es:"Cuando está activado, los bloques de pensamiento del modelo se expanden por defecto; cuando está desactivado, permanecen contraídos hasta que los abras.",fr:"Si activé, les blocs de réflexion du modèle sont développés par défaut ; si désactivé, ils restent repliés jusqu'à ce que vous les ouvriez.",it:"Se attivo, i blocchi di pensiero del modello sono espansi per impostazione predefinita; se disattivo, restano compressi finché non li apri.",da:"Når aktiveret, er modellens tænkeproces-blokke udfoldet som standard; når deaktiveret, forbliver de foldet, indtil du åbner dem.",pl:"Po włączeniu bloki myślenia modelu są domyślnie rozwinięte; po wyłączeniu pozostają zwinięte, dopóki ich nie otworzysz.",ru:"Когда включено, блоки мышления модели развёрнуты по умолчанию; когда выключено, остаются свёрнутыми, пока вы их не откроете.",ar:"عند التفعيل، تكون كتل «التفكير» للنموذج موسّعة افتراضيًا؛ عند الإيقاف تبقى مطوية حتى تفتحها.",no:"Når på, er modellens tenkeprosess-blokker utvidet som standard; når av, forblir de sammenfoldet til du åpner dem.","pt-BR":"Quando ligado, os blocos de pensamento do modelo ficam expandidos por padrão; quando desligado, permanecem recolhidos até você abri-los.",th:"เมื่อเปิด บล็อก «กระบวนการคิด» ของโมเดลจะถูกขยายโดยค่าเริ่มต้น เมื่อปิดจะยุบไว้จนกว่าจะกดเปิด",tr:"Açıkken modelin düşünce blokları varsayılan olarak genişletilir; kapalıyken siz açana kadar daraltılmış kalır.",uk:"Коли увімкнено, блоки мислення моделі розгорнуті за замовчуванням; коли вимкнено — згорнуті, доки ви їх не відкриєте."},"ui.showFullToolContent":{zh:"完整展示所有内容",en:"Show full tool content","zh-TW":"完整展示所有內容",ko:"모든 내용 전체 표시",ja:"すべての内容を完全に表示",de:"Alle Inhalte vollständig anzeigen",es:"Mostrar todo el contenido completo",fr:"Afficher tout le contenu en entier",it:"Mostra tutto il contenuto completo",da:"Vis alt indhold fuldt ud",pl:"Pokaż pełną treść wszystkiego",ru:"Показать всё содержимое полностью",ar:"عرض كل المحتوى بالكامل",no:"Vis alt innhold fullstendig","pt-BR":"Exibir todo o conteúdo completo",th:"แสดงเนื้อหาทั้งหมดแบบเต็ม",tr:"Tüm içeriği tam olarak göster",uk:"Показати весь вміст повністю"},"ui.showFullToolContent.help":{zh:"开启后,工具调用的参数与返回结果完整展示,不截断;关闭则过长内容会折叠,点开查看完整。",en:"When on, tool call inputs and results are shown in full without truncation; when off, long content is collapsed and you click to expand.","zh-TW":"開啟後,工具呼叫的參數與返回結果完整顯示,不截斷;關閉則過長內容會折疊,點開查看完整。",ko:"켜면 도구 호출의 입력과 결과가 잘림 없이 전체 표시됩니다. 끄면 긴 내용은 접히고 클릭하면 펼쳐집니다.",ja:"オンにすると、ツール呼び出しの入力と結果が省略なく完全に表示されます。オフの場合は長い内容が折りたたまれ、クリックで展開します。",de:"Wenn aktiviert, werden Eingaben und Ergebnisse von Tool-Aufrufen vollständig ohne Kürzung angezeigt; wenn deaktiviert, werden lange Inhalte eingeklappt und durch Klick erweitert.",es:"Cuando está activado, las entradas y resultados de las llamadas a herramientas se muestran completos sin truncar; cuando está desactivado, el contenido largo se contrae y se expande al hacer clic.",fr:"Si activé, les entrées et résultats des appels d'outils sont affichés en entier sans troncature ; si désactivé, le contenu long est replié et s'ouvre au clic.",it:"Se attivo, input e risultati delle chiamate agli strumenti sono mostrati per intero senza troncamento; se disattivo, i contenuti lunghi vengono compressi ed espansi al clic.",da:"Når aktiveret, vises input og resultater fra værktøjskald fuldt ud uden afkortning; når deaktiveret, foldes langt indhold sammen og udvides ved klik.",pl:"Po włączeniu dane wejściowe i wyniki wywołań narzędzi są pokazywane w całości bez skracania; po wyłączeniu długa treść jest zwijana i rozwijana po kliknięciu.",ru:"Когда включено, входные данные и результаты вызовов инструментов показываются полностью без усечения; когда выключено, длинный контент сворачивается и раскрывается по клику.",ar:"عند التفعيل، تُعرض مدخلات ونتائج استدعاءات الأدوات بالكامل دون اقتطاع؛ عند الإيقاف يُطوى المحتوى الطويل ويُوسَّع بالنقر.",no:"Når på, vises inndata og resultater fra verktøykall fullstendig uten avkorting; når av, foldes langt innhold sammen og utvides ved klikk.","pt-BR":"Quando ligado, as entradas e resultados das chamadas de ferramenta são exibidos por completo sem truncar; quando desligado, o conteúdo longo fica recolhido e expande ao clicar.",th:"เมื่อเปิด อินพุตและผลลัพธ์ของการเรียกเครื่องมือจะแสดงเต็มโดยไม่ตัดทอน เมื่อปิดเนื้อหายาวจะถูกยุบและคลิกเพื่อขยาย",tr:"Açıkken araç çağrılarının girdileri ve sonuçları kısaltılmadan tam gösterilir; kapalıyken uzun içerik daraltılır ve tıklayınca genişler.",uk:"Коли увімкнено, вхідні дані та результати викликів інструментів показуються повністю без скорочення; коли вимкнено — довгий вміст згортається й розгортається за кліком."},"ui.onlyCurrentSession":{zh:"仅展示当前会话",en:"Only show current session","zh-TW":"僅顯示當前會話",ko:"현재 세션만 표시",ja:"現在のセッションのみ表示",de:"Nur aktuelle Sitzung anzeigen",es:"Mostrar solo la sesión actual",fr:"Afficher uniquement la session actuelle",it:"Mostra solo la sessione corrente",da:"Vis kun aktuel session",pl:"Tylko bieżąca sesja",ru:"Только текущая сессия",ar:"عرض الجلسة الحالية فقط",no:"Vis kun gjeldende økt","pt-BR":"Mostrar apenas a sessão atual",th:"แสดงเฉพาะเซสชันปัจจุบัน",tr:"Yalnızca geçerli oturumu göster",uk:"Лише поточна сесія"},"ui.onlyCurrentSession.help":{zh:"开启后,对话区锁定到当前会话并只展示它;本窗口执行 /clear、/resume 或新开会话时会跟随切换。多开同一项目时不会被其他窗口或页面重载的会话切换打断;该锁定刷新后仍保留,若会话已不存在则回退到最新会话。",en:"When on, the conversation locks to the current session and shows only it; running /clear, /resume, or starting a new session in this window follows the switch. Opening the same project in multiple windows no longer drags the view to another session, and the lock is kept across refreshes (falling back to the latest session if the pinned one is gone).","zh-TW":"開啟後,對話區鎖定到目前會話並僅顯示它;本視窗執行 /clear、/resume 或新開會話時會跟著切換。多開同一專案時不會被其他視窗或頁面重新載入的會話切換打斷;此鎖定重新整理後仍保留,若會話已不存在則回退到最新會話。",ko:"켜면 대화 영역이 현재 세션에 고정되어 해당 세션만 표시됩니다. 이 창에서 /clear, /resume를 실행하거나 새 세션을 시작하면 전환을 따라갑니다. 같은 프로젝트를 여러 창에서 열어도 다른 세션으로 끌려가지 않으며, 이 고정은 새로 고침 후에도 유지됩니다(고정된 세션이 없으면 최신 세션으로 되돌아갑니다).",ja:"オンにすると、会話エリアは現在のセッションに固定され、そのセッションのみを表示します。このウィンドウで /clear、/resume を実行したり新しいセッションを開始すると切り替えに追従します。同じプロジェクトを複数のウィンドウで開いても他のセッションに引きずられず、この固定は再読み込み後も保持されます(固定したセッションがなくなった場合は最新のセッションに戻ります)。",de:"Wenn aktiviert, wird der Konversationsbereich an die aktuelle Sitzung gebunden und zeigt nur diese. /clear, /resume oder das Starten einer neuen Sitzung in diesem Fenster folgt dem Wechsel. Wird dasselbe Projekt in mehreren Fenstern geöffnet, springt die Ansicht nicht mehr zu einer anderen Sitzung, und die Bindung bleibt über Neuladen hinweg erhalten (Rückfall auf die neueste Sitzung, falls die fixierte nicht mehr existiert).",es:"Cuando está activado, la conversación se fija en la sesión actual y solo muestra esa. Ejecutar /clear, /resume o iniciar una nueva sesión en esta ventana sigue el cambio. Abrir el mismo proyecto en varias ventanas ya no arrastra la vista a otra sesión, y la fijación se mantiene tras recargar (vuelve a la sesión más reciente si la fijada ya no existe).",fr:"Lorsqu'elle est activée, la conversation se verrouille sur la session actuelle et n'affiche que celle-ci. Exécuter /clear, /resume ou démarrer une nouvelle session dans cette fenêtre suit le changement. Ouvrir le même projet dans plusieurs fenêtres n'entraîne plus la vue vers une autre session, et le verrouillage est conservé après actualisation (retour à la session la plus récente si la session épinglée n'existe plus).",it:"Se attivo, la conversazione si blocca sulla sessione corrente e mostra solo quella. Eseguendo /clear, /resume o avviando una nuova sessione in questa finestra, la vista segue il cambio. Aprire lo stesso progetto in più finestre non trascina più la vista verso un'altra sessione e il blocco viene mantenuto dopo il ricaricamento (ritorna alla sessione più recente se quella fissata non esiste più).",da:"Når aktiveret, låses samtalen til den aktuelle session og viser kun den. At køre /clear, /resume eller starte en ny session i dette vindue følger skiftet. At åbne det samme projekt i flere vinduer trækker ikke længere visningen over til en anden session, og låsen bevares efter genindlæsning (falder tilbage til den nyeste session, hvis den fastlåste ikke længere findes).",pl:"Po włączeniu rozmowa zostaje przypięta do bieżącej sesji i pokazuje tylko ją. Wykonanie /clear, /resume lub rozpoczęcie nowej sesji w tym oknie podąża za przełączeniem. Otwarcie tego samego projektu w wielu oknach nie przeciąga już widoku do innej sesji, a przypięcie jest zachowywane po odświeżeniu (powrót do najnowszej sesji, jeśli przypięta już nie istnieje).",ru:"Когда включено, область беседы закрепляется за текущей сессией и показывает только её. Выполнение /clear, /resume или начало новой сессии в этом окне следует за переключением. Открытие того же проекта в нескольких окнах больше не перетаскивает вид к другой сессии, и закрепление сохраняется после обновления страницы (возврат к последней сессии, если закреплённой больше нет).",ar:"عند التفعيل، تُثبَّت المحادثة على الجلسة الحالية وتعرضها وحدها. وتنفيذ /clear أو /resume أو بدء جلسة جديدة في هذه النافذة يتبع التبديل. وفتح المشروع نفسه في عدة نوافذ لم يَعُد يجرّ العرض إلى جلسة أخرى، ويبقى التثبيت محفوظًا بعد إعادة التحميل (مع الرجوع إلى أحدث جلسة إذا لم تَعُد الجلسة المثبَّتة موجودة).",no:"Når aktivert, låses samtalen til gjeldende økt og viser bare den. Å kjøre /clear, /resume eller starte en ny økt i dette vinduet følger byttet. Å åpne det samme prosjektet i flere vinduer drar ikke lenger visningen over til en annen økt, og låsen beholdes etter ny innlasting (faller tilbake til den nyeste økten hvis den låste ikke lenger finnes).","pt-BR":"Quando ativado, a conversa fica fixada na sessão atual e mostra apenas ela. Executar /clear, /resume ou iniciar uma nova sessão nesta janela acompanha a troca. Abrir o mesmo projeto em várias janelas não arrasta mais a visualização para outra sessão, e a fixação é mantida após recarregar (volta para a sessão mais recente se a fixada não existir mais).",th:"เมื่อเปิดใช้งาน พื้นที่สนทนาจะถูกล็อกไว้ที่เซสชันปัจจุบันและแสดงเฉพาะเซสชันนั้น การรัน /clear, /resume หรือเริ่มเซสชันใหม่ในหน้าต่างนี้จะติดตามการสลับ การเปิดโปรเจกต์เดียวกันในหลายหน้าต่างจะไม่ดึงมุมมองไปยังเซสชันอื่นอีกต่อไป และการล็อกจะคงอยู่หลังรีเฟรช (กลับไปยังเซสชันล่าสุดหากเซสชันที่ล็อกไว้ไม่มีอยู่แล้ว)",tr:"Açıkken sohbet alanı geçerli oturuma kilitlenir ve yalnızca onu gösterir. Bu pencerede /clear, /resume çalıştırmak veya yeni bir oturum başlatmak geçişi izler. Aynı projeyi birden çok pencerede açmak görünümü artık başka bir oturuma sürüklemez ve kilit yenilemeden sonra korunur (sabitlenen oturum artık yoksa en son oturuma geri döner).",uk:"Коли увімкнено, область розмови закріплюється за поточною сесією та показує лише її. Виконання /clear, /resume або початок нової сесії в цьому вікні слідує за перемиканням. Відкриття того самого проєкту в кількох вікнах більше не перетягує показ до іншої сесії, а закріплення зберігається після оновлення сторінки (повернення до останньої сесії, якщо закріпленої вже немає)."},"ui.toolsUsed":{zh:"调用工具: ",en:"Tools used: ","zh-TW":"調用工具: ",ko:"사용한 도구: ",ja:"使用ツール: ",de:"Verwendete Tools: ",es:"Herramientas usadas: ",fr:"Outils utilisés : ",it:"Strumenti usati: ",da:"Brugte værktøjer: ",pl:"Użyte narzędzia: ",ru:"Инструменты: ",ar:"الأدوات المستخدمة: ",no:"Brukte verktøy: ","pt-BR":"Ferramentas usadas: ",th:"เครื่องมือที่ใช้: ",tr:"Kullanılan araçlar: ",uk:"Використані інструменти: "},"ui.diffSummary":{zh:"+{added} -{removed}",en:"+{added} -{removed}","zh-TW":"+{added} -{removed}",ko:"+{added} -{removed}",ja:"+{added} -{removed}",de:"+{added} -{removed}",es:"+{added} -{removed}",fr:"+{added} -{removed}",it:"+{added} -{removed}",da:"+{added} -{removed}",pl:"+{added} -{removed}",ru:"+{added} -{removed}",ar:"+{added} -{removed}",no:"+{added} -{removed}","pt-BR":"+{added} -{removed}",th:"+{added} -{removed}",tr:"+{added} -{removed}",uk:"+{added} -{removed}"},"ui.expandDiff":{zh:"默认展开 Body Diff JSON",en:"Expand Body Diff JSON by default","zh-TW":"預設展開 Body Diff JSON",ko:"Body Diff JSON 기본 펼치기",ja:"Body Diff JSON をデフォルトで展開",de:"Body Diff JSON standardmäßig aufklappen",es:"Expandir Body Diff JSON por defecto",fr:"Développer Body Diff JSON par défaut",it:"Espandi Body Diff JSON per impostazione predefinita",da:"Udvid Body Diff JSON som standard",pl:"Domyślnie rozwiń Body Diff JSON",ru:"Разворачивать Body Diff JSON по умолчанию",ar:"توسيع Body Diff JSON افتراضيًا",no:"Utvid Body Diff JSON som standard","pt-BR":"Expandir Body Diff JSON por padrão",th:"ขยาย Body Diff JSON เป็นค่าเริ่มต้น",tr:"Body Diff JSON'u varsayılan olarak genişlet",uk:"Розгортати Body Diff JSON за замовчуванням"},"ui.logDirTitle":{zh:"日志目录设置",en:"Log directory","zh-TW":"日誌目錄設定",ko:"로그 디렉토리 설정",ja:"ログディレクトリ設定",de:"Protokollverzeichnis",es:"Directorio de registros",fr:"Répertoire de journaux",it:"Directory dei log",da:"Logmappe",pl:"Katalog logów",ru:"Каталог журналов",ar:"دليل السجلات",no:"Loggkatalog","pt-BR":"Diretório de logs",th:"ไดเรกทอรีบันทึก",tr:"Günlük dizini",uk:"Каталог журналів"},"ui.globalSettings":{zh:"全局设置",en:"Global Settings","zh-TW":"全域設定",ko:"전역 설정",ja:"グローバル設定",de:"Globale Einstellungen",es:"Configuración global",fr:"Paramètres globaux",it:"Impostazioni globali",da:"Globale indstillinger",pl:"Ustawienia globalne",ru:"Глобальные настройки",ar:"الإعدادات العامة",no:"Globale innstillinger","pt-BR":"Configurações globais",th:"ตั้งค่าทั่วไป",tr:"Genel ayarlar",uk:"Глобальні налаштування"},"ui.languageSettings":{zh:"语言设置",en:"Language","zh-TW":"語言設定",ko:"언어 설정",ja:"言語設定",de:"Sprache",es:"Idioma",fr:"Langue",it:"Lingua",da:"Sprog",pl:"Język",ru:"Язык",ar:"اللغة",no:"Språk","pt-BR":"Idioma",th:"ภาษา",tr:"Dil",uk:"Мова"},"ui.scanToCoding":{zh:"手机扫码编程",en:"Scan to Code","zh-TW":"手機掃碼編程",ko:"스캔하여 코딩",ja:"スキャンしてコーディング",de:"Scannen zum Programmieren",es:"Escanear para programar",fr:"Scanner pour coder",it:"Scansiona per programmare",da:"Scan for at kode",pl:"Skanuj, aby kodować",ru:"Сканируйте для кодирования",ar:"امسح للبرمجة",no:"Skann for å kode","pt-BR":"Escaneie para programar",th:"สแกนเพื่อเขียนโค้ด",tr:"Kodlamak için tarayın",uk:"Скануйте для кодування"},"ui.auth.title":{zh:"密码保护",en:"Password protection","zh-TW":"密碼保護",ko:"비밀번호 보호",ja:"パスワード保護",de:"Passwortschutz",es:"Protección por contraseña",fr:"Protection par mot de passe",it:"Protezione con password",da:"Adgangskodebeskyttelse",pl:"Ochrona hasłem",ru:"Защита паролем",ar:"الحماية بكلمة المرور",no:"Passordbeskyttelse","pt-BR":"Proteção por senha",th:"การป้องกันด้วยรหัสผ่าน",tr:"Parola koruması",uk:"Захист паролем"},"ui.auth.enableBtn":{zh:"开启密码保护",en:"Enable password protection","zh-TW":"開啟密碼保護",ko:"비밀번호 보호 켜기",ja:"パスワード保護を有効化",de:"Passwortschutz aktivieren",es:"Activar protección por contraseña",fr:"Activer la protection par mot de passe",it:"Attiva protezione con password",da:"Aktivér adgangskodebeskyttelse",pl:"Włącz ochronę hasłem",ru:"Включить защиту паролем",ar:"تفعيل الحماية بكلمة المرور",no:"Aktiver passordbeskyttelse","pt-BR":"Ativar proteção por senha",th:"เปิดการป้องกันด้วยรหัสผ่าน",tr:"Parola korumasını etkinleştir",uk:"Увімкнути захист паролем"},"ui.auth.save":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.auth.saved":{zh:"已保存",en:"Saved","zh-TW":"已儲存",ko:"저장됨",ja:"保存しました",de:"Gespeichert",es:"Guardado",fr:"Enregistré",it:"Salvato",da:"Gemt",pl:"Zapisano",ru:"Сохранено",ar:"تم الحفظ",no:"Lagret","pt-BR":"Salvo",th:"บันทึกแล้ว",tr:"Kaydedildi",uk:"Збережено"},"ui.auth.saveFailed":{zh:"保存失败",en:"Save failed","zh-TW":"儲存失敗",ko:"저장 실패",ja:"保存に失敗しました",de:"Speichern fehlgeschlagen",es:"Error al guardar",fr:"Échec de l'enregistrement",it:"Salvataggio non riuscito",da:"Lagring mislykkedes",pl:"Zapis nie powiódł się",ru:"Не удалось сохранить",ar:"فشل الحفظ",no:"Lagring mislyktes","pt-BR":"Falha ao salvar",th:"บันทึกล้มเหลว",tr:"Kaydetme başarısız",uk:"Не вдалося зберегти"},"ui.auth.disable":{zh:"关闭密码保护",en:"Disable password protection","zh-TW":"關閉密碼保護",ko:"비밀번호 보호 끄기",ja:"パスワード保護を無効化",de:"Passwortschutz deaktivieren",es:"Desactivar protección por contraseña",fr:"Désactiver la protection par mot de passe",it:"Disattiva protezione con password",da:"Deaktivér adgangskodebeskyttelse",pl:"Wyłącz ochronę hasłem",ru:"Отключить защиту паролем",ar:"تعطيل الحماية بكلمة المرور",no:"Deaktiver passordbeskyttelse","pt-BR":"Desativar proteção por senha",th:"ปิดการป้องกันด้วยรหัสผ่าน",tr:"Parola korumasını devre dışı bırak",uk:"Вимкнути захист паролем"},"ui.auth.copy":{zh:"复制",en:"Copy","zh-TW":"複製",ko:"복사",ja:"コピー",de:"Kopieren",es:"Copiar",fr:"Copier",it:"Copia",da:"Kopiér",pl:"Kopiuj",ru:"Копировать",ar:"نسخ",no:"Kopier","pt-BR":"Copiar",th:"คัดลอก",tr:"Kopyala",uk:"Копіювати"},"ui.auth.copied":{zh:"已复制",en:"Copied","zh-TW":"已複製",ko:"복사됨",ja:"コピーしました",de:"Kopiert",es:"Copiado",fr:"Copié",it:"Copiato",da:"Kopieret",pl:"Skopiowano",ru:"Скопировано",ar:"تم النسخ",no:"Kopiert","pt-BR":"Copiado",th:"คัดลอกแล้ว",tr:"Kopyalandı",uk:"Скопійовано"},"ui.auth.emptyWarning":{zh:"密码为空:任何人都可远程访问,存在安全风险",en:"Password is empty: anyone can access remotely — security risk","zh-TW":"密碼為空:任何人都可遠端存取,存在安全風險",ko:"비밀번호가 비어 있음: 누구나 원격으로 접속할 수 있어 보안 위험이 있습니다",ja:"パスワードが空です:誰でもリモートアクセス可能 — セキュリティリスク",de:"Passwort ist leer: Jeder kann aus der Ferne zugreifen – Sicherheitsrisiko",es:"La contraseña está vacía: cualquiera puede acceder de forma remota; riesgo de seguridad",fr:"Mot de passe vide : tout le monde peut accéder à distance — risque de sécurité",it:"Password vuota: chiunque può accedere da remoto — rischio di sicurezza",da:"Adgangskode er tom: alle kan få fjernadgang – sikkerhedsrisiko",pl:"Hasło jest puste: każdy może uzyskać dostęp zdalny — ryzyko bezpieczeństwa",ru:"Пароль пуст: любой может получить удалённый доступ — угроза безопасности",ar:"كلمة المرور فارغة: يمكن لأي شخص الوصول عن بُعد — خطر أمني",no:"Passordet er tomt: alle kan få fjerntilgang – sikkerhetsrisiko","pt-BR":"A senha está vazia: qualquer um pode acessar remotamente — risco de segurança",th:"รหัสผ่านว่างเปล่า: ใครก็เข้าถึงจากระยะไกลได้ — มีความเสี่ยงด้านความปลอดภัย",tr:"Parola boş: herkes uzaktan erişebilir — güvenlik riski",uk:"Пароль порожній: будь-хто може отримати віддалений доступ — загроза безпеці"},"ui.auth.scopeProject":{zh:"本项目",en:"This project","zh-TW":"本專案",ko:"이 프로젝트",ja:"このプロジェクト",de:"Dieses Projekt",es:"Este proyecto",fr:"Ce projet",it:"Questo progetto",da:"Dette projekt",pl:"Ten projekt",ru:"Этот проект",ar:"هذا المشروع",no:"Dette prosjektet","pt-BR":"Este projeto",th:"โปรเจกต์นี้",tr:"Bu proje",uk:"Цей проєкт"},"ui.auth.scopeGlobal":{zh:"全局",en:"Global","zh-TW":"全域",ko:"전역",ja:"グローバル",de:"Global",es:"Global",fr:"Global",it:"Globale",da:"Global",pl:"Globalnie",ru:"Глобально",ar:"عام",no:"Global","pt-BR":"Global",th:"ทั่วโลก",tr:"Genel",uk:"Глобально"},"ui.auth.inheritsGlobal":{zh:"本项目当前继承全局设置",en:"This project currently inherits the global setting","zh-TW":"本專案目前繼承全域設定",ko:"이 프로젝트는 현재 전역 설정을 상속합니다",ja:"このプロジェクトは現在グローバル設定を継承しています",de:"Dieses Projekt erbt derzeit die globale Einstellung",es:"Este proyecto hereda actualmente la configuración global",fr:"Ce projet hérite actuellement du paramètre global",it:"Questo progetto eredita attualmente l'impostazione globale",da:"Dette projekt arver i øjeblikket den globale indstilling",pl:"Ten projekt dziedziczy obecnie ustawienie globalne",ru:"Этот проект сейчас наследует глобальную настройку",ar:"يرث هذا المشروع حاليًا الإعداد العام",no:"Dette prosjektet arver for øyeblikket den globale innstillingen","pt-BR":"Este projeto herda atualmente a configuração global",th:"โปรเจกต์นี้กำลังสืบทอดการตั้งค่าทั่วโลก",tr:"Bu proje şu anda genel ayarı devralıyor",uk:"Цей проєкт наразі успадковує глобальне налаштування"},"ui.auth.setProjectSpecific":{zh:"设为本项目专用",en:"Set a project-specific password","zh-TW":"設為本專案專用",ko:"프로젝트 전용으로 설정",ja:"このプロジェクト専用に設定",de:"Projektspezifisch festlegen",es:"Establecer contraseña específica del proyecto",fr:"Définir un mot de passe propre au projet",it:"Imposta una password specifica del progetto",da:"Angiv projektspecifik adgangskode",pl:"Ustaw hasło dla tego projektu",ru:"Задать пароль для проекта",ar:"تعيين كلمة مرور خاصة بالمشروع",no:"Angi prosjektspesifikt passord","pt-BR":"Definir senha específica do projeto",th:"ตั้งรหัสผ่านเฉพาะโปรเจกต์",tr:"Projeye özel parola ayarla",uk:"Задати пароль для проєкту"},"ui.auth.useGlobal":{zh:"共用全局密码",en:"Share the global password","zh-TW":"共用全域密碼",ko:"전역 비밀번호 공유",ja:"グローバルパスワードを共用",de:"Globales Passwort teilen",es:"Compartir la contraseña global",fr:"Partager le mot de passe global",it:"Condividi la password globale",da:"Del den globale adgangskode",pl:"Współdziel hasło globalne",ru:"Использовать общий глобальный пароль",ar:"مشاركة كلمة المرور العامة",no:"Del det globale passordet","pt-BR":"Compartilhar a senha global",th:"ใช้รหัสผ่านส่วนกลางร่วมกัน",tr:"Genel parolayı paylaş",uk:"Спільний глобальний пароль"},"ui.copied":{zh:"已复制",en:"Copied","zh-TW":"已複製",ko:"복사됨",ja:"コピーしました",de:"Kopiert",es:"Copiado",fr:"Copié",it:"Copiato",da:"Kopieret",pl:"Skopiowano",ru:"Скопировано",ar:"تم النسخ",no:"Kopiert","pt-BR":"Copiado",th:"คัดลอกแล้ว",tr:"Kopyalandı",uk:"Скопійовано"},"ui.chatDisplay":{zh:"对话展示",en:"Chat Display","zh-TW":"對話顯示",ko:"대화 표시",ja:"チャット表示",de:"Chat-Anzeige",es:"Visualización del chat",fr:"Affichage du chat",it:"Visualizzazione chat",da:"Chatvisning",pl:"Wyświetlanie czatu",ru:"Отображение чата",ar:"عرض المحادثة",no:"Chat-visning","pt-BR":"Exibição do chat",th:"การแสดงแชท",tr:"Sohbet görünümü",uk:"Відображення чату"},"ui.filterIrrelevant":{zh:"过滤无关请求",en:"Filter irrelevant requests","zh-TW":"過濾無關請求",ko:"무관한 요청 필터링",ja:"無関係なリクエストをフィルタ",de:"Irrelevante Anfragen filtern",es:"Filtrar solicitudes irrelevantes",fr:"Filtrer les requêtes non pertinentes",it:"Filtra richieste irrilevanti",da:"Filtrer irrelevante forespørgsler",pl:"Filtruj nieistotne żądania",ru:"Фильтровать нерелевантные запросы",ar:"تصفية الطلبات غير ذات الصلة",no:"Filtrer irrelevante forespørsler","pt-BR":"Filtrar solicitações irrelevantes",th:"กรองคำขอที่ไม่เกี่ยวข้อง",tr:"İlgisiz istekleri filtrele",uk:"Фільтрувати нерелевантні запити"},"ui.thinking":{zh:"思考过程",en:"Thinking","zh-TW":"思考過程",ko:"사고 과정",ja:"思考プロセス",de:"Denkprozess",es:"Proceso de pensamiento",fr:"Processus de réflexion",it:"Processo di pensiero",da:"Tænkeproces",pl:"Proces myślenia",ru:"Процесс мышления",ar:"عملية التفكير",no:"Tenkeprosess","pt-BR":"Processo de pensamento",th:"กระบวนการคิด",tr:"Düşünce süreci",uk:"Процес мислення"},"ui.thinkingEmpty":{zh:"思考内容未显示(thinking 为加密摘要)",en:"Thinking content not displayed (encrypted summary)","zh-TW":"思考內容未顯示(thinking 為加密摘要)",ko:"사고 내용이 표시되지 않음 (암호화된 요약)",ja:"思考内容が表示されません(暗号化されたサマリー)",de:"Denkinhalt nicht angezeigt (verschlüsselte Zusammenfassung)",es:"Contenido de pensamiento no mostrado (resumen cifrado)",fr:"Contenu de réflexion non affiché (résumé chiffré)",it:"Contenuto di pensiero non visualizzato (riepilogo crittografato)",da:"Tænkeindhold ikke vist (krypteret resumé)",pl:"Treść myślenia nie wyświetlana (zaszyfrowane podsumowanie)",ru:"Содержимое мышления не отображается (зашифрованная сводка)",ar:"محتوى التفكير غير معروض (ملخص مشفر)",no:"Tenkeinnhold ikke vist (kryptert sammendrag)","pt-BR":"Conteúdo de pensamento não exibido (resumo criptografado)",th:"เนื้อหาการคิดไม่แสดง (สรุปที่เข้ารหัส)",tr:"Düşünce içeriği görüntülenmiyor (şifreli özet)",uk:"Вміст мислення не відображається (зашифрований підсумок)"},"ui.enableThinkingSummaries":{zh:"启用明文 Thinking",en:"Enable Thinking Summaries","zh-TW":"啟用明文 Thinking",ko:"Thinking 요약 활성화",ja:"Thinking サマリーを有効化",de:"Thinking-Zusammenfassungen aktivieren",es:"Habilitar resúmenes de Thinking",fr:"Activer les résumés de Thinking",it:"Abilita riepiloghi Thinking",da:"Aktivér Thinking-resuméer",pl:"Włącz podsumowania Thinking",ru:"Включить сводки Thinking",ar:"تفعيل ملخصات Thinking",no:"Aktiver Thinking-sammendrag","pt-BR":"Ativar resumos de Thinking",th:"เปิดใช้สรุป Thinking",tr:"Thinking özetlerini etkinleştir",uk:"Увімкнути підсумки Thinking"},"ui.enableThinkingSummariesTip":{zh:"在 {configDir}/config.toml 中设置 show_raw_agent_reasoning 后,思考过程将以明文显示(需重启 Codex)",en:"Sets show_raw_agent_reasoning in {configDir}/config.toml so thinking is displayed in plaintext (requires Codex restart)","zh-TW":"在 {configDir}/config.toml 中設定 show_raw_agent_reasoning 後,思考過程將以明文顯示(需重啟 Codex)",ko:"{configDir}/config.toml에 show_raw_agent_reasoning를 설정하면 사고 과정이 평문으로 표시됩니다 (Codex 재시작 필요)",ja:"{configDir}/config.toml に show_raw_agent_reasoning を設定すると、思考がプレーンテキストで表示されます(Codex の再起動が必要)",de:"Setzt show_raw_agent_reasoning in {configDir}/config.toml, damit Thinking als Klartext angezeigt wird (Codex Neustart erforderlich)",es:"Configura show_raw_agent_reasoning en {configDir}/config.toml para mostrar el pensamiento en texto plano (requiere reiniciar Codex)",fr:"Définit show_raw_agent_reasoning dans {configDir}/config.toml pour afficher la réflexion en texte brut (redémarrage de Codex requis)",it:"Imposta show_raw_agent_reasoning in {configDir}/config.toml per visualizzare il pensiero in testo semplice (richiede riavvio di Codex)",da:"Sætter show_raw_agent_reasoning i {configDir}/config.toml så tænkning vises i klartekst (kræver genstart af Codex)",pl:"Ustawia show_raw_agent_reasoning w {configDir}/config.toml, aby myślenie wyświetlało się w postaci zwykłego tekstu (wymaga restartu Codex)",ru:"Устанавливает show_raw_agent_reasoning в {configDir}/config.toml для отображения мышления открытым текстом (требуется перезапуск Codex)",ar:"يضبط show_raw_agent_reasoning في {configDir}/config.toml لعرض التفكير كنص عادي (يتطلب إعادة تشغيل Codex)",no:"Setter show_raw_agent_reasoning i {configDir}/config.toml slik at tenkning vises i klartekst (krever omstart av Codex)","pt-BR":"Define show_raw_agent_reasoning em {configDir}/config.toml para exibir pensamento em texto simples (requer reinicialização do Codex)",th:"ตั้งค่า show_raw_agent_reasoning ใน {configDir}/config.toml เพื่อแสดงการคิดเป็นข้อความธรรมดา (ต้องรีสตาร์ท Codex)",tr:"Düşünmenin düz metin olarak görüntülenmesi için {configDir}/config.toml'da show_raw_agent_reasoning ayarını yapar (Codex yeniden başlatması gerekir)",uk:"Встановлює show_raw_agent_reasoning в {configDir}/config.toml для відображення мислення відкритим текстом (потрібен перезапуск Codex)"},"ui.shellCommand":{zh:"Shell 命令",en:"Shell Command","zh-TW":"Shell 命令",ko:"Shell 명령",ja:"Shell コマンド",de:"Shell-Befehl",es:"Comando shell",fr:"Commande shell",it:"Comando shell",da:"Shell-kommando",pl:"Polecenie shell",ru:"Команда shell",ar:"أمر shell",no:"Shell-kommando","pt-BR":"Comando shell",th:"คำสั่ง shell",tr:"Shell Komutu",uk:"Команда shell"},"ui.lines":{zh:"行",en:"lines","zh-TW":"行",ko:"줄",ja:"行",de:"Zeilen",es:"líneas",fr:"lignes",it:"righe",da:"linjer",pl:"wierszy",ru:"строк",ar:"أسطر",no:"linjer","pt-BR":"linhas",th:"บรรทัด",tr:"satır",uk:"рядків"},"ui.skillLoaded":{zh:"Skill 已加载",en:"Skill Loaded","zh-TW":"Skill 已載入",ko:"Skill 로드됨",ja:"Skill 読み込み済み",de:"Skill geladen",es:"Skill cargado",fr:"Skill chargé",it:"Skill caricato",da:"Skill indlæst",pl:"Skill załadowany",ru:"Skill загружен",ar:"تم تحميل Skill",no:"Skill lastet","pt-BR":"Skill carregado",th:"โหลด Skill แล้ว",tr:"Skill yüklendi",uk:"Skill завантажено"},"ui.skillUsageStats":{zh:"Skill 使用统计",en:"Skill Usage Stats","zh-TW":"Skill 使用統計",ko:"Skill 사용 통계",ja:"Skill 使用統計",de:"Skill-Nutzungsstatistik",es:"Estadísticas de uso de Skills",fr:"Statistiques d'utilisation des Skills",it:"Statistiche utilizzo Skill",da:"Skill-brugsstatistik",pl:"Statystyki użycia Skill",ru:"Статистика использования Skill",ar:"إحصائيات استخدام Skill",no:"Skill-bruksstatistikk","pt-BR":"Estatísticas de uso de Skills",th:"สถิติการใช้ Skill",tr:"Skill Kullanım İstatistikleri",uk:"Статистика використання Skill"},"ui.toolUsageStats":{zh:"工具使用统计",en:"Tool Usage Stats","zh-TW":"工具使用統計",ko:"도구 사용 통계",ja:"ツール使用統計",de:"Tool-Nutzungsstatistik",es:"Estadísticas de uso de herramientas",fr:"Statistiques d'utilisation des outils",it:"Statistiche utilizzo strumenti",da:"Værktøjsbrugsstatistik",pl:"Statystyki użycia narzędzi",ru:"Статистика использования инструментов",ar:"إحصائيات استخدام الأدوات",no:"Verktøybruksstatistikk","pt-BR":"Estatísticas de uso de ferramentas",th:"สถิติการใช้เครื่องมือ",tr:"Araç Kullanım İstatistikleri",uk:"Статистика використання інструментів"},"ui.toolCatalog.title":{zh:"Codex 工具",en:"Codex Tools","zh-TW":"Codex 工具",ko:"모든 도구",ja:"すべてのツール",de:"Alle Tools",es:"Todas las herramientas",fr:"Tous les outils",it:"Tutti gli strumenti",da:"Alle værktøjer",pl:"Wszystkie narzędzia",ru:"Все инструменты",ar:"جميع الأدوات",no:"Alle verktøy","pt-BR":"Todas as ferramentas",th:"เครื่องมือทั้งหมด",tr:"Tüm Araçlar",uk:"Усі інструменти"},"ui.toolCatalog.help":{zh:"查看 Codex 工具",en:"View Codex tools","zh-TW":"檢視 Codex 工具",ko:"모든 도구 보기",ja:"すべてのツールを表示",de:"Alle Tools anzeigen",es:"Ver todas las herramientas",fr:"Voir tous les outils",it:"Mostra tutti gli strumenti",da:"Vis alle værktøjer",pl:"Pokaż wszystkie narzędzia",ru:"Показать все инструменты",ar:"عرض جميع الأدوات",no:"Vis alle verktøy","pt-BR":"Ver todas as ferramentas",th:"ดูเครื่องมือทั้งหมด",tr:"Tüm araçları görüntüle",uk:"Переглянути всі інструменти"},"ui.toolCatalog.cat.codeMode":{zh:"代码模式",en:"Code Mode","zh-TW":"程式碼模式",ko:"코드 모드",ja:"コードモード",de:"Codemodus",es:"Modo de código",fr:"Mode code",it:"Modalità codice",da:"Kodetilstand",pl:"Tryb kodu",ru:"Режим кода",ar:"وضع التعليمات البرمجية",no:"Kodemodus","pt-BR":"Modo de código",th:"โหมดโค้ด",tr:"Kod Modu",uk:"Режим коду"},"ui.toolCatalog.cat.agent":{zh:"Agent 与任务",en:"Agent & Tasks","zh-TW":"Agent 與任務",ko:"에이전트 및 작업",ja:"エージェントとタスク",de:"Agent & Aufgaben",es:"Agente y tareas",fr:"Agent et tâches",it:"Agent e attività",da:"Agent og opgaver",pl:"Agent i zadania",ru:"Агент и задачи",ar:"الوكيل والمهام",no:"Agent og oppgaver","pt-BR":"Agente e tarefas",th:"เอเจนต์และงาน",tr:"Agent ve Görevler",uk:"Агент і завдання"},"ui.toolCatalog.cat.team":{zh:"多 Agent 协作",en:"Multi-Agent","zh-TW":"多 Agent 協作",ko:"멀티 에이전트",ja:"マルチエージェント",de:"Multi-Agent",es:"Multiagente",fr:"Multi-agent",it:"Multi-agente",da:"Multi-agent",pl:"Wieloagentowe",ru:"Мультиагент",ar:"متعدد الوكلاء",no:"Multi-agent","pt-BR":"Multiagente",th:"หลายเอเจนต์",tr:"Çoklu Agent",uk:"Мультиагент"},"ui.toolCatalog.cat.file":{zh:"文件操作",en:"File Operations","zh-TW":"檔案操作",ko:"파일 작업",ja:"ファイル操作",de:"Dateioperationen",es:"Operaciones de archivos",fr:"Opérations sur fichiers",it:"Operazioni sui file",da:"Filhandlinger",pl:"Operacje na plikach",ru:"Операции с файлами",ar:"عمليات الملفات",no:"Filoperasjoner","pt-BR":"Operações de arquivo",th:"การจัดการไฟล์",tr:"Dosya İşlemleri",uk:"Операції з файлами"},"ui.toolCatalog.cat.search":{zh:"搜索",en:"Search","zh-TW":"搜尋",ko:"검색",ja:"検索",de:"Suche",es:"Búsqueda",fr:"Recherche",it:"Ricerca",da:"Søgning",pl:"Wyszukiwanie",ru:"Поиск",ar:"البحث",no:"Søk","pt-BR":"Busca",th:"ค้นหา",tr:"Arama",uk:"Пошук"},"ui.toolCatalog.cat.terminal":{zh:"终端",en:"Terminal","zh-TW":"終端機",ko:"터미널",ja:"ターミナル",de:"Terminal",es:"Terminal",fr:"Terminal",it:"Terminale",da:"Terminal",pl:"Terminal",ru:"Терминал",ar:"الطرفية",no:"Terminal","pt-BR":"Terminal",th:"เทอร์มินัล",tr:"Terminal",uk:"Термінал"},"ui.toolCatalog.cat.web":{zh:"网络",en:"Web","zh-TW":"網路",ko:"웹",ja:"ウェブ",de:"Web",es:"Web",fr:"Web",it:"Web",da:"Web",pl:"Sieć",ru:"Веб",ar:"الويب",no:"Web","pt-BR":"Web",th:"เว็บ",tr:"Web",uk:"Веб"},"ui.toolCatalog.cat.integration":{zh:"集成与扩展",en:"Integrations","zh-TW":"整合與擴充",ko:"통합",ja:"連携",de:"Integrationen",es:"Integraciones",fr:"Intégrations",it:"Integrazioni",da:"Integrationer",pl:"Integracje",ru:"Интеграции",ar:"التكاملات",no:"Integrasjoner","pt-BR":"Integrações",th:"การผสานรวม",tr:"Entegrasyonlar",uk:"Інтеграції"},"ui.toolCatalog.cat.planning":{zh:"计划与交互",en:"Planning & Interaction","zh-TW":"計畫與互動",ko:"계획 및 상호작용",ja:"計画とインタラクション",de:"Planung & Interaktion",es:"Planificación e interacción",fr:"Planification et interaction",it:"Pianificazione e interazione",da:"Planlægning og interaktion",pl:"Planowanie i interakcja",ru:"Планирование и взаимодействие",ar:"التخطيط والتفاعل",no:"Planlegging og interaksjon","pt-BR":"Planejamento e interação",th:"การวางแผนและการโต้ตอบ",tr:"Planlama ve Etkileşim",uk:"Планування та взаємодія"},"ui.toolCatalog.cat.worktree":{zh:"工作树隔离",en:"Worktree","zh-TW":"工作樹隔離",ko:"워크트리",ja:"ワークツリー",de:"Worktree",es:"Árbol de trabajo",fr:"Arbre de travail",it:"Worktree",da:"Arbejdstræ",pl:"Drzewo robocze",ru:"Рабочее дерево",ar:"شجرة العمل",no:"Arbeidstre","pt-BR":"Árvore de trabalho",th:"Worktree",tr:"Çalışma ağacı",uk:"Робоче дерево"},"ui.toolCatalog.cat.schedule":{zh:"调度与自动化",en:"Scheduling & Automation","zh-TW":"排程與自動化",ko:"예약 및 자동화",ja:"スケジュールと自動化",de:"Zeitplanung & Automatisierung",es:"Programación y automatización",fr:"Programmation et automatisation",it:"Programmazione e automazione",da:"Tidsplan og automatisering",pl:"Harmonogram i automatyzacja",ru:"Расписание и автоматизация",ar:"الجدولة والأتمتة",no:"Tidsplan og automatisering","pt-BR":"Agendamento e automação",th:"การตั้งเวลาและระบบอัตโนมัติ",tr:"Zamanlama ve Otomasyon",uk:"Розклад та автоматизація"},"ui.toolCatalog.cat.ide":{zh:"IDE 集成",en:"IDE Integration","zh-TW":"IDE 整合",ko:"IDE 통합",ja:"IDE 連携",de:"IDE-Integration",es:"Integración con IDE",fr:"Intégration IDE",it:"Integrazione IDE",da:"IDE-integration",pl:"Integracja z IDE",ru:"Интеграция с IDE",ar:"تكامل IDE",no:"IDE-integrasjon","pt-BR":"Integração com IDE",th:"การผสานรวม IDE",tr:"IDE Entegrasyonu",uk:"Інтеграція з IDE"},"ui.subAgentStats":{zh:"SubAgent 调用统计",en:"SubAgent Call Stats","zh-TW":"SubAgent 調用統計",ko:"SubAgent 호출 통계",ja:"SubAgent 呼び出し統計",de:"SubAgent-Aufrufstatistik",es:"Estadísticas de llamadas SubAgent",fr:"Statistiques d'appels SubAgent",it:"Statistiche chiamate SubAgent",da:"SubAgent-kaldsstatistik",pl:"Statystyki wywołań SubAgent",ru:"Статистика вызовов SubAgent",ar:"إحصائيات استدعاء SubAgent",no:"SubAgent-anropsstatistikk","pt-BR":"Estatísticas de chamadas SubAgent",th:"สถิติการเรียก SubAgent",tr:"SubAgent Çağrı İstatistikleri",uk:"Статистика викликів SubAgent"},"ui.mergeLogs":{zh:"合并日志",en:"Merge Logs","zh-TW":"合併日誌",ko:"로그 병합",ja:"ログを結合",de:"Logs zusammenführen",es:"Fusionar logs",fr:"Fusionner les logs",it:"Unisci log",da:"Flet logs",pl:"Scal logi",ru:"Объединить логи",ar:"دمج السجلات",no:"Slå sammen logger","pt-BR":"Mesclar logs",th:"รวมบันทึก",tr:"Logları birleştir",uk:"Об'єднати логи"},"ui.deleteLogs":{zh:"删除日志",en:"Delete Logs","zh-TW":"刪除日誌",ko:"로그 삭제",ja:"ログを削除",de:"Logs löschen",es:"Eliminar logs",fr:"Supprimer les logs",it:"Elimina log",da:"Slet logs",pl:"Usuń logi",ru:"Удалить логи",ar:"حذف السجلات",no:"Slett logger","pt-BR":"Excluir logs",th:"ลบบันทึก",tr:"Logları sil",uk:"Видалити логи"},"ui.refreshStats":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.refreshStatsSuccess":{zh:"统计数据已刷新",en:"Stats refreshed","zh-TW":"統計資料已重新整理",ko:"통계가 새로고침되었습니다",ja:"統計が更新されました",de:"Statistiken aktualisiert",es:"Estadísticas actualizadas",fr:"Statistiques actualisées",it:"Statistiche aggiornate",da:"Statistik opdateret",pl:"Statystyki odświeżone",ru:"Статистика обновлена",ar:"تم تحديث الإحصائيات",no:"Statistikk oppdatert","pt-BR":"Estatísticas atualizadas",th:"รีเฟรชสถิติแล้ว",tr:"İstatistikler yenilendi",uk:"Статистику оновлено"},"ui.refreshStatsFailed":{zh:"刷新统计失败",en:"Failed to refresh stats","zh-TW":"重新整理統計失敗",ko:"통계 새로고침 실패",ja:"統計の更新に失敗しました",de:"Statistiken konnten nicht aktualisiert werden",es:"Error al actualizar estadísticas",fr:"Échec de l'actualisation des statistiques",it:"Aggiornamento statistiche fallito",da:"Kunne ikke opdatere statistik",pl:"Nie udało się odświeżyć statystyk",ru:"Не удалось обновить статистику",ar:"فشل تحديث الإحصائيات",no:"Kunne ikke oppdatere statistikk","pt-BR":"Falha ao atualizar estatísticas",th:"รีเฟรชสถิติล้มเหลว",tr:"İstatistikler yenilenemedi",uk:"Не вдалося оновити статистику"},"ui.deleteLogsConfirm":{zh:"确定要删除选中的 {count} 个日志文件吗?此操作不可撤销。",en:"Are you sure you want to delete {count} selected log file(s)? This action cannot be undone.","zh-TW":"確定要刪除選中的 {count} 個日誌檔案嗎?此操作無法復原。",ko:"선택한 {count}개의 로그 파일을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",ja:"選択した {count} 件のログファイルを削除しますか?この操作は元に戻せません。",de:"Möchten Sie die {count} ausgewählten Logdateien wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",es:"¿Está seguro de que desea eliminar {count} archivo(s) de registro seleccionado(s)? Esta acción no se puede deshacer.",fr:"Êtes-vous sûr de vouloir supprimer {count} fichier(s) journal sélectionné(s) ? Cette action est irréversible.",it:"Sei sicuro di voler eliminare {count} file di log selezionati? Questa azione non può essere annullata.",da:"Er du sikker på, at du vil slette {count} valgte logfil(er)? Denne handling kan ikke fortrydes.",pl:"Czy na pewno chcesz usunąć {count} wybranych plików logów? Tej operacji nie można cofnąć.",ru:"Вы уверены, что хотите удалить {count} выбранных файлов журнала? Это действие необратимо.",ar:"هل أنت متأكد من حذف {count} ملف(ات) سجل محدد؟ لا يمكن التراجع عن هذا الإجراء.",no:"Er du sikker på at du vil slette {count} valgte loggfil(er)? Denne handlingen kan ikke angres.","pt-BR":"Tem certeza de que deseja excluir {count} arquivo(s) de log selecionado(s)? Esta ação não pode ser desfeita.",th:"คุณแน่ใจหรือไม่ว่าต้องการลบ {count} ไฟล์บันทึกที่เลือก? การดำเนินการนี้ไม่สามารถย้อนกลับได้",tr:"Seçili {count} günlük dosyasını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",uk:"Ви впевнені, що хочете видалити {count} вибраних файлів журналу? Цю дію не можна скасувати."},"ui.archiveLogs":{zh:"压缩归档",en:"Archive","zh-TW":"壓縮歸檔",ko:"압축 보관",ja:"圧縮アーカイブ",de:"Archivieren",es:"Archivar",fr:"Archiver",it:"Archivia",da:"Arkivér",pl:"Archiwizuj",ru:"Архивировать",ar:"أرشفة",no:"Arkiver","pt-BR":"Arquivar",th:"บีบอัดเก็บถาวร",tr:"Arşivle",uk:"Архівувати"},"ui.archiveLogsConfirm":{zh:"确定要把选中的 {count} 个日志文件压缩归档吗?原 .jsonl 文件将被删除。",en:"Archive {count} selected log file(s)? Original .jsonl files will be deleted.","zh-TW":"確定要把選中的 {count} 個日誌檔案壓縮歸檔嗎?原 .jsonl 檔案將被刪除。",ko:"선택한 {count}개의 로그 파일을 압축 보관하시겠습니까? 원본 .jsonl 파일은 삭제됩니다.",ja:"選択した {count} 件のログファイルを圧縮アーカイブしますか?元の .jsonl ファイルは削除されます。",de:"{count} ausgewählte Logdatei(en) archivieren? Die ursprünglichen .jsonl-Dateien werden gelöscht.",es:"¿Archivar {count} archivo(s) de registro seleccionado(s)? Los archivos .jsonl originales se eliminarán.",fr:"Archiver {count} fichier(s) journal sélectionné(s) ? Les fichiers .jsonl originaux seront supprimés.",it:"Archiviare {count} file di log selezionati? I file .jsonl originali verranno eliminati.",da:"Arkivér {count} valgte logfil(er)? De originale .jsonl-filer vil blive slettet.",pl:"Zarchiwizować {count} wybranych plików logów? Oryginalne pliki .jsonl zostaną usunięte.",ru:"Архивировать {count} выбранных файла(ов) журнала? Исходные файлы .jsonl будут удалены.",ar:"أرشفة {count} ملف(ات) سجل محدد؟ سيتم حذف ملفات .jsonl الأصلية.",no:"Arkiver {count} valgte loggfil(er)? De originale .jsonl-filene blir slettet.","pt-BR":"Arquivar {count} arquivo(s) de log selecionado(s)? Os arquivos .jsonl originais serão excluídos.",th:"บีบอัดเก็บถาวร {count} ไฟล์บันทึกที่เลือก? ไฟล์ .jsonl ต้นฉบับจะถูกลบ",tr:"Seçili {count} günlük dosyasını arşivlensin mi? Orijinal .jsonl dosyaları silinecek.",uk:"Архівувати {count} вибраних файлів журналу? Оригінальні файли .jsonl буде видалено."},"ui.archiveSuccess":{zh:"已归档 {count} 个文件",en:"{count} log(s) archived","zh-TW":"已歸檔 {count} 個檔案",ko:"{count}개 보관 완료",ja:"{count} 件アーカイブしました",de:"{count} Datei(en) archiviert",es:"{count} archivo(s) archivado(s)",fr:"{count} fichier(s) archivé(s)",it:"{count} file archiviati",da:"{count} fil(er) arkiveret",pl:"Zarchiwizowano {count} plików",ru:"Архивировано {count} файлов",ar:"تمت أرشفة {count} ملف",no:"{count} fil(er) arkivert","pt-BR":"{count} arquivo(s) arquivado(s)",th:"เก็บถาวรแล้ว {count} ไฟล์",tr:"{count} dosya arşivlendi",uk:"Архівовано {count} файлів"},"ui.archiveFailed":{zh:"{count} 个文件归档失败",en:"{count} file(s) failed to archive","zh-TW":"{count} 個檔案歸檔失敗",ko:"{count}개 보관 실패",ja:"{count} 件のアーカイブに失敗しました",de:"{count} Datei(en) konnten nicht archiviert werden",es:"Falló el archivado de {count} archivo(s)",fr:"Échec de l'archivage de {count} fichier(s)",it:"Archiviazione di {count} file fallita",da:"{count} fil(er) kunne ikke arkiveres",pl:"Nie udało się zarchiwizować {count} plików",ru:"Не удалось архивировать {count} файлов",ar:"فشلت أرشفة {count} ملف",no:"{count} fil(er) kunne ikke arkiveres","pt-BR":"Falha ao arquivar {count} arquivo(s)",th:"เก็บถาวร {count} ไฟล์ล้มเหลว",tr:"{count} dosya arşivlenemedi",uk:"Не вдалося архівувати {count} файлів"},"ui.logArchived":{zh:"已归档",en:"Archived","zh-TW":"已歸檔",ko:"보관됨",ja:"アーカイブ済み",de:"Archiviert",es:"Archivado",fr:"Archivé",it:"Archiviato",da:"Arkiveret",pl:"Zarchiwizowano",ru:"Архивировано",ar:"مؤرشف",no:"Arkivert","pt-BR":"Arquivado",th:"เก็บถาวรแล้ว",tr:"Arşivlendi",uk:"Архівовано"},"ui.openLog":{zh:"打开",en:"Open","zh-TW":"開啟",ko:"열기",ja:"開く",de:"Öffnen",es:"Abrir",fr:"Ouvrir",it:"Apri",da:"Åbn",pl:"Otwórz",ru:"Открыть",ar:"فتح",no:"Åpne","pt-BR":"Abrir",th:"เปิด",tr:"Aç",uk:"Відкрити"},"ui.downloadLog":{zh:"下载",en:"Download","zh-TW":"下載",ko:"다운로드",ja:"ダウンロード",de:"Herunterladen",es:"Descargar",fr:"Télécharger",it:"Scarica",da:"Download",pl:"Pobierz",ru:"Скачать",ar:"تنزيل",no:"Last ned","pt-BR":"Baixar",th:"ดาวน์โหลด",tr:"İndir",uk:"Завантажити"},"ui.logPreview":{zh:"概览",en:"Preview","zh-TW":"概覽",ko:"미리보기",ja:"プレビュー",de:"Vorschau",es:"Vista previa",fr:"Aperçu",it:"Anteprima",da:"Forhåndsvisning",pl:"Podgląd",ru:"Обзор",ar:"معاينة",no:"Forhåndsvisning","pt-BR":"Prévia",th:"ตัวอย่าง",tr:"Önizleme",uk:"Огляд"},"ui.logTime":{zh:"时间",en:"Time","zh-TW":"時間",ko:"시간",ja:"時間",de:"Zeit",es:"Hora",fr:"Heure",it:"Ora",da:"Tid",pl:"Czas",ru:"Время",ar:"الوقت",no:"Tid","pt-BR":"Hora",th:"เวลา",tr:"Zaman",uk:"Час"},"ui.logSize":{zh:"大小",en:"Size","zh-TW":"大小",ko:"크기",ja:"サイズ",de:"Größe",es:"Tamaño",fr:"Taille",it:"Dimensione",da:"Størrelse",pl:"Rozmiar",ru:"Размер",ar:"الحجم",no:"Størrelse","pt-BR":"Tamanho",th:"ขนาด",tr:"Boyut",uk:"Розмір"},"ui.logInstanceId":{zh:"实例",en:"Instance","zh-TW":"實例",ko:"인스턴스",ja:"インスタンス",de:"Instanz",es:"Instancia",fr:"Instance",it:"Istanza",da:"Instans",pl:"Instancja",ru:"Экземпляр",ar:"مثيل",no:"Instans","pt-BR":"Instância",th:"อินสแตนซ์",tr:"Örnek",uk:"Екземпляр"},"ui.showAllInstanceLogs":{zh:"显示全部实例",en:"Show all instances","zh-TW":"顯示全部實例",ko:"모든 인스턴스 표시",ja:"全インスタンスを表示",de:"Alle Instanzen anzeigen",es:"Mostrar todas las instancias",fr:"Afficher toutes les instances",it:"Mostra tutte le istanze",da:"Vis alle instanser",pl:"Pokaż wszystkie instancje",ru:"Показать все экземпляры",ar:"عرض كل المثيلات",no:"Vis alle instanser","pt-BR":"Mostrar todas as instâncias",th:"แสดงทุกอินสแตนซ์",tr:"Tüm örnekleri göster",uk:"Показати всі екземпляри"},"ui.logActions":{zh:"操作",en:"Actions","zh-TW":"操作",ko:"작업",ja:"操作",de:"Aktionen",es:"Acciones",fr:"Actions",it:"Azioni",da:"Handlinger",pl:"Akcje",ru:"Действия",ar:"الإجراءات",no:"Handlinger","pt-BR":"Ações",th:"การดำเนินการ",tr:"İşlemler",uk:"Дії"},"ui.turns":{zh:"轮",en:"turns","zh-TW":"輪",ko:"턴",ja:"ターン",de:"Runden",es:"turnos",fr:"tours",it:"turni",da:"runder",pl:"tur",ru:"ходов",ar:"جولات",no:"runder","pt-BR":"turnos",th:"รอบ",tr:"tur",uk:"ходів"},"ui.mergeNotConsecutive":{zh:"请选择连续的日志文件",en:"Please select consecutive log files","zh-TW":"請選擇連續的日誌檔案",ko:"연속된 로그 파일을 선택하세요",ja:"連続したログファイルを選択してください",de:"Bitte wählen Sie aufeinanderfolgende Log-Dateien",es:"Seleccione archivos de log consecutivos",fr:"Veuillez sélectionner des fichiers de log consécutifs",it:"Seleziona file di log consecutivi",da:"Vælg venligst sammenhængende logfiler",pl:"Wybierz kolejne pliki logów",ru:"Выберите последовательные файлы логов",ar:"يرجى اختيار ملفات سجلات متتالية",no:"Velg sammenhengende loggfiler","pt-BR":"Selecione arquivos de log consecutivos",th:"กรุณาเลือกไฟล์บันทึกที่ต่อเนื่องกัน",tr:"Lütfen ardışık log dosyalarını seçin",uk:"Виберіть послідовні файли логів"},"ui.mergeTooLarge":{zh:"选中的日志文件总大小超过 400MB",en:"Selected log files exceed 400MB","zh-TW":"選中的日誌檔案總大小超過 400MB",ko:"선택한 로그 파일의 총 크기가 400MB를 초과합니다",ja:"選択したログファイルの合計サイズが 400MB を超えています",de:"Ausgewählte Log-Dateien überschreiten 400MB",es:"Los archivos de log seleccionados superan los 400MB",fr:"Les fichiers de log sélectionnés dépassent 400 Mo",it:"I file di log selezionati superano i 400MB",da:"Valgte logfiler overstiger 400MB",pl:"Wybrane pliki logów przekraczają 400MB",ru:"Выбранные файлы логов превышают 400МБ",ar:"ملفات السجلات المحددة تتجاوز 400 ميجابايت",no:"Valgte loggfiler overstiger 400MB","pt-BR":"Arquivos de log selecionados excedem 400MB",th:"ไฟล์บันทึกที่เลือกมีขนาดรวมเกิน 400MB",tr:"Seçilen log dosyaları 400MB'ı aşıyor",uk:"Вибрані файли логів перевищують 400МБ"},"ui.mergeSuccess":{zh:"日志合并成功",en:"Logs merged successfully","zh-TW":"日誌合併成功",ko:"로그 병합 성공",ja:"ログの結合に成功しました",de:"Logs erfolgreich zusammengeführt",es:"Logs fusionados correctamente",fr:"Logs fusionnés avec succès",it:"Log uniti con successo",da:"Logs flettet",pl:"Logi scalone pomyślnie",ru:"Логи успешно объединены",ar:"تم دمج السجلات بنجاح",no:"Logger slått sammen","pt-BR":"Logs mesclados com sucesso",th:"รวมบันทึกสำเร็จ",tr:"Loglar başarıyla birleştirildi",uk:"Логи успішно об'єднано"},"ui.deleteSuccess":{zh:"已成功删除 {count} 个日志文件",en:"{count} log file(s) deleted successfully","zh-TW":"已成功刪除 {count} 個日誌檔案",ko:"{count}개의 로그 파일이 삭제되었습니다",ja:"{count} 件のログファイルを削除しました",de:"{count} Logdatei(en) erfolgreich gelöscht",es:"{count} archivo(s) de registro eliminado(s) correctamente",fr:"{count} fichier(s) journal supprimé(s) avec succès",it:"{count} file di log eliminati con successo",da:"{count} logfil(er) slettet",pl:"Pomyślnie usunięto {count} plików logów",ru:"Успешно удалено {count} файлов журнала",ar:"تم حذف {count} ملف(ات) سجل بنجاح",no:"{count} loggfil(er) slettet","pt-BR":"{count} arquivo(s) de log excluído(s) com sucesso",th:"ลบ {count} ไฟล์บันทึกสำเร็จ",tr:"{count} günlük dosyası başarıyla silindi",uk:"Успішно видалено {count} файлів журналу"},"ui.deleteFailed":{zh:"{count} 个文件删除失败",en:"{count} file(s) failed to delete","zh-TW":"{count} 個檔案刪除失敗",ko:"{count}개 파일 삭제 실패",ja:"{count} 件のファイルの削除に失敗しました",de:"{count} Datei(en) konnten nicht gelöscht werden",es:"Error al eliminar {count} archivo(s)",fr:"Échec de la suppression de {count} fichier(s)",it:"Eliminazione di {count} file fallita",da:"{count} fil(er) kunne ikke slettes",pl:"Nie udało się usunąć {count} plików",ru:"Не удалось удалить {count} файлов",ar:"فشل حذف {count} ملف(ات)",no:"{count} fil(er) kunne ikke slettes","pt-BR":"Falha ao excluir {count} arquivo(s)",th:"ลบ {count} ไฟล์ไม่สำเร็จ",tr:"{count} dosya silinemedi",uk:"Не вдалося видалити {count} файлів"},"ui.cancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.mergeLatestNotAllowed":{zh:"最新的日志文件不允许被合并,以避免当前窗口日志丢失",en:"The latest log file cannot be merged to avoid losing the current session","zh-TW":"最新的日誌檔案不允許被合併,以避免當前視窗日誌遺失",ko:"현재 세션 손실을 방지하기 위해 최신 로그 파일은 병합할 수 없습니다",ja:"現在のセッションの損失を防ぐため、最新のログファイルは結合できません",de:"Die neueste Logdatei kann nicht zusammengeführt werden, um den Verlust der aktuellen Sitzung zu vermeiden",es:"El archivo de log más reciente no se puede fusionar para evitar perder la sesión actual",fr:"Le fichier de log le plus récent ne peut pas être fusionné pour éviter la perte de la session en cours",it:"Il file di log più recente non può essere unito per evitare la perdita della sessione corrente",da:"Den nyeste logfil kan ikke flettes for at undgå tab af den aktuelle session",pl:"Najnowszy plik logów nie może być scalony, aby uniknąć utraty bieżącej sesji",ru:"Последний файл логов не может быть объединён, чтобы избежать потери текущей сессии",ar:"لا يمكن دمج أحدث ملف سجل لتجنب فقدان الجلسة الحالية",no:"Den nyeste loggfilen kan ikke slås sammen for å unngå tap av gjeldende økt","pt-BR":"O arquivo de log mais recente não pode ser mesclado para evitar perda da sessão atual",th:"ไม่สามารถรวมไฟล์บันทึกล่าสุดเพื่อหลีกเลี่ยงการสูญเสียเซสชันปัจจุบัน",tr:"Mevcut oturumun kaybını önlemek için en son günlük dosyası birleştirilemez",uk:"Найновіший файл логів не може бути об'єднаний, щоб уникнути втрати поточної сесії"},"ui.projectStats":{zh:"项目统计",en:"Project Stats","zh-TW":"專案統計",ko:"프로젝트 통계",ja:"プロジェクト統計",de:"Projektstatistik",es:"Estadísticas del proyecto",fr:"Statistiques du projet",it:"Statistiche progetto",da:"Projektstatistik",pl:"Statystyki projektu",ru:"Статистика проекта",ar:"إحصائيات المشروع",no:"Prosjektstatistikk","pt-BR":"Estatísticas do projeto",th:"สถิติโปรเจกต์",tr:"Proje İstatistikleri",uk:"Статистика проєкту"},"ui.projectStats.totalRequests":{zh:"总请求数",en:"Total Requests","zh-TW":"總請求數",ko:"총 요청 수",ja:"リクエスト総数",de:"Gesamtanfragen",es:"Total de solicitudes",fr:"Total des requêtes",it:"Richieste totali",da:"Samlede forespørgsler",pl:"Łączna liczba żądań",ru:"Всего запросов",ar:"إجمالي الطلبات",no:"Totale forespørsler","pt-BR":"Total de requisições",th:"คำขอทั้งหมด",tr:"Toplam İstekler",uk:"Всього запитів"},"ui.projectStats.sessionCount":{zh:"会话轮次",en:"Sessions","zh-TW":"會話輪次",ko:"세션 수",ja:"セッション数",de:"Sitzungen",es:"Sesiones",fr:"Sessions",it:"Sessioni",da:"Sessioner",pl:"Sesje",ru:"Сессий",ar:"الجلسات",no:"Sesjoner","pt-BR":"Sessões",th:"เซสชัน",tr:"Oturumlar",uk:"Сесії"},"ui.projectStats.turnCount":{zh:"对话轮次",en:"Turns","zh-TW":"對話輪次",ko:"대화 턴",ja:"ターン数",de:"Gesprächsrunden",es:"Turnos",fr:"Tours",it:"Turni",da:"Ture",pl:"Tury",ru:"Ходов",ar:"الأدوار",no:"Turer","pt-BR":"Turnos",th:"เทิร์น",tr:"Turlar",uk:"Ходів"},"ui.projectStats.inputTokens":{zh:"输入 Token",en:"Input Tokens","zh-TW":"輸入 Token",ko:"입력 토큰",ja:"入力トークン",de:"Eingabe-Tokens",es:"Tokens de entrada",fr:"Tokens d'entrée",it:"Token di input",da:"Input-tokens",pl:"Tokeny wejściowe",ru:"Входные токены",ar:"رموز الإدخال",no:"Inndata-tokens","pt-BR":"Tokens de entrada",th:"โทเค็นอินพุต",tr:"Girdi Tokenları",uk:"Вхідні токени"},"ui.projectStats.outputTokens":{zh:"输出 Token",en:"Output Tokens","zh-TW":"輸出 Token",ko:"출력 토큰",ja:"出力トークン",de:"Ausgabe-Tokens",es:"Tokens de salida",fr:"Tokens de sortie",it:"Token di output",da:"Output-tokens",pl:"Tokeny wyjściowe",ru:"Выходные токены",ar:"رموز الإخراج",no:"Utdata-tokens","pt-BR":"Tokens de saída",th:"โทเค็นเอาต์พุต",tr:"Çıktı Tokenları",uk:"Вихідні токени"},"ui.projectStats.totalFiles":{zh:"会话文件数",en:"Session Files","zh-TW":"會話檔案數",ko:"세션 파일 수",ja:"セッションファイル数",de:"Sitzungsdateien",es:"Archivos de sesión",fr:"Fichiers de session",it:"File di sessione",da:"Sessionsfiler",pl:"Pliki sesji",ru:"Файлов сессий",ar:"ملفات الجلسات",no:"Sesjonsfiler","pt-BR":"Arquivos de sessão",th:"ไฟล์เซสชัน",tr:"Oturum Dosyaları",uk:"Файли сесій"},"ui.projectStats.modelUsage":{zh:"模型使用统计",en:"Model Usage","zh-TW":"模型使用統計",ko:"모델 사용 통계",ja:"モデル使用統計",de:"Modellnutzung",es:"Uso de modelos",fr:"Utilisation des modèles",it:"Utilizzo modelli",da:"Modelbrug",pl:"Użycie modeli",ru:"Использование моделей",ar:"استخدام النماذج",no:"Modellbruk","pt-BR":"Uso de modelos",th:"การใช้โมเดล",tr:"Model Kullanımı",uk:"Використання моделей"},"ui.projectStats.noData":{zh:"暂无统计数据",en:"No stats available","zh-TW":"暫無統計資料",ko:"통계 데이터 없음",ja:"統計データなし",de:"Keine Statistiken verfügbar",es:"Sin estadísticas disponibles",fr:"Aucune statistique disponible",it:"Nessuna statistica disponibile",da:"Ingen statistik tilgængelig",pl:"Brak dostępnych statystyk",ru:"Статистика недоступна",ar:"لا توجد إحصائيات متاحة",no:"Ingen statistikk tilgjengelig","pt-BR":"Sem estatísticas disponíveis",th:"ไม่มีข้อมูลสถิติ",tr:"İstatistik mevcut değil",uk:"Статистика недоступна"},"ui.projectStats.updatedAt":{zh:"更新于 {time}",en:"Updated at {time}","zh-TW":"更新於 {time}",ko:"{time}에 업데이트됨",ja:"{time} に更新",de:"Aktualisiert um {time}",es:"Actualizado a las {time}",fr:"Mis à jour à {time}",it:"Aggiornato alle {time}",da:"Opdateret {time}",pl:"Zaktualizowano {time}",ru:"Обновлено в {time}",ar:"تم التحديث في {time}",no:"Oppdatert {time}","pt-BR":"Atualizado em {time}",th:"อัปเดตเมื่อ {time}",tr:"{time} tarihinde güncellendi",uk:"Оновлено о {time}"},"ui.update.title":{zh:"版本信息",en:"Version Info","zh-TW":"版本資訊",ko:"버전 정보",ja:"バージョン情報",de:"Versionsinformationen",es:"Información de versión",fr:"Informations de version",it:"Informazioni versione",da:"Versionsinfo",pl:"Informacje o wersji",ru:"Информация о версии",ar:"معلومات الإصدار",no:"Versjonsinformasjon","pt-BR":"Informações da versão",th:"ข้อมูลเวอร์ชัน",tr:"Sürüm bilgisi",uk:"Інформація про версію"},"ui.update.current":{zh:"当前版本",en:"Current version","zh-TW":"目前版本",ko:"현재 버전",ja:"現在のバージョン",de:"Aktuelle Version",es:"Versión actual",fr:"Version actuelle",it:"Versione corrente",da:"Nuværende version",pl:"Bieżąca wersja",ru:"Текущая версия",ar:"الإصدار الحالي",no:"Gjeldende versjon","pt-BR":"Versão atual",th:"เวอร์ชันปัจจุบัน",tr:"Mevcut sürüm",uk:"Поточна версія"},"ui.update.latest":{zh:"最新版本",en:"Latest version","zh-TW":"最新版本",ko:"최신 버전",ja:"最新バージョン",de:"Neueste Version",es:"Última versión",fr:"Dernière version",it:"Ultima versione",da:"Seneste version",pl:"Najnowsza wersja",ru:"Последняя версия",ar:"أحدث إصدار",no:"Nyeste versjon","pt-BR":"Versão mais recente",th:"เวอร์ชันล่าสุด",tr:"Son sürüm",uk:"Остання версія"},"ui.update.npm":{zh:"npm 版本更新",en:"Update via npm","zh-TW":"npm 版本更新",ko:"npm으로 업데이트",ja:"npm で更新",de:"Über npm aktualisieren",es:"Actualizar vía npm",fr:"Mettre à jour via npm",it:"Aggiorna via npm",da:"Opdater via npm",pl:"Aktualizuj przez npm",ru:"Обновить через npm",ar:"التحديث عبر npm",no:"Oppdater via npm","pt-BR":"Atualizar via npm",th:"อัปเดตผ่าน npm",tr:"npm ile güncelle",uk:"Оновити через npm"},"ui.update.brew":{zh:"Homebrew 更新",en:"Update via Homebrew","zh-TW":"Homebrew 更新",ko:"Homebrew로 업데이트",ja:"Homebrew で更新",de:"Über Homebrew aktualisieren",es:"Actualizar vía Homebrew",fr:"Mettre à jour via Homebrew",it:"Aggiorna via Homebrew",da:"Opdater via Homebrew",pl:"Aktualizuj przez Homebrew",ru:"Обновить через Homebrew",ar:"التحديث عبر Homebrew",no:"Oppdater via Homebrew","pt-BR":"Atualizar via Homebrew",th:"อัปเดตผ่าน Homebrew",tr:"Homebrew ile güncelle",uk:"Оновити через Homebrew"},"ui.update.electron":{zh:"Electron 桌面版更新",en:"Update Electron Desktop","zh-TW":"Electron 桌面版更新",ko:"Electron 데스크톱 업데이트",ja:"Electron デスクトップ更新",de:"Electron Desktop aktualisieren",es:"Actualizar Electron Desktop",fr:"Mettre à jour Electron Desktop",it:"Aggiorna Electron Desktop",da:"Opdater Electron Desktop",pl:"Aktualizuj Electron Desktop",ru:"Обновить Electron Desktop",ar:"تحديث Electron Desktop",no:"Oppdater Electron Desktop","pt-BR":"Atualizar Electron Desktop",th:"อัปเดต Electron Desktop",tr:"Electron Desktop Güncelle",uk:"Оновити Electron Desktop"},"ui.update.electronDesc":{zh:"请从 GitHub Releases 下载最新版本的安装包。",en:"Download the latest installer from GitHub Releases.","zh-TW":"請從 GitHub Releases 下載最新版本的安裝包。",ko:"GitHub Releases에서 최신 설치 프로그램을 다운로드하세요.",ja:"GitHub Releases から最新のインストーラーをダウンロードしてください。",de:"Laden Sie das neueste Installationsprogramm von GitHub Releases herunter.",es:"Descargue el instalador más reciente de GitHub Releases.",fr:"Téléchargez le dernier installeur depuis GitHub Releases.",it:"Scarica l'ultimo installer da GitHub Releases.",da:"Download det nyeste installationsprogram fra GitHub Releases.",pl:"Pobierz najnowszy instalator z GitHub Releases.",ru:"Скачайте последний установщик из GitHub Releases.",ar:"قم بتنزيل أحدث مثبت من GitHub Releases.",no:"Last ned det nyeste installasjonsprogrammet fra GitHub Releases.","pt-BR":"Baixe o instalador mais recente do GitHub Releases.",th:"ดาวน์โหลดตัวติดตั้งล่าสุดจาก GitHub Releases",tr:"GitHub Releases'dan en son yükleyiciyi indirin.",uk:"Завантажте останній інсталятор з GitHub Releases."},"ui.update.step1":{zh:"点击下方按钮进入 GitHub Releases 页面",en:"Click the button below to open GitHub Releases","zh-TW":"點擊下方按鈕進入 GitHub Releases 頁面",ko:"아래 버튼을 클릭하여 GitHub Releases 페이지로 이동",ja:"下のボタンをクリックして GitHub Releases ページを開く",de:"Klicken Sie auf die Schaltfläche unten, um GitHub Releases zu öffnen",es:"Haga clic en el botón para abrir GitHub Releases",fr:"Cliquez sur le bouton ci-dessous pour ouvrir GitHub Releases",it:"Clicca il pulsante sotto per aprire GitHub Releases",da:"Klik på knappen nedenfor for at åbne GitHub Releases",pl:"Kliknij przycisk poniżej, aby otworzyć GitHub Releases",ru:"Нажмите кнопку ниже, чтобы открыть GitHub Releases",ar:"انقر على الزر أدناه لفتح GitHub Releases",no:"Klikk på knappen nedenfor for å åpne GitHub Releases","pt-BR":"Clique no botão abaixo para abrir o GitHub Releases",th:"คลิกปุ่มด้านล่างเพื่อเปิด GitHub Releases",tr:"GitHub Releases'ı açmak için aşağıdaki düğmeye tıklayın",uk:"Натисніть кнопку нижче, щоб відкрити GitHub Releases"},"ui.update.step2":{zh:"下载对应系统的安装包(.dmg / .exe / .AppImage)",en:"Download the installer for your OS (.dmg / .exe / .AppImage)","zh-TW":"下載對應系統的安裝包(.dmg / .exe / .AppImage)",ko:"사용 중인 OS에 맞는 설치 파일 다운로드 (.dmg / .exe / .AppImage)",ja:"お使いの OS 用のインストーラーをダウンロード(.dmg / .exe / .AppImage)",de:"Laden Sie das Installationsprogramm für Ihr OS herunter (.dmg / .exe / .AppImage)",es:"Descargue el instalador para su sistema (.dmg / .exe / .AppImage)",fr:"Téléchargez l'installeur pour votre OS (.dmg / .exe / .AppImage)",it:"Scarica l'installer per il tuo OS (.dmg / .exe / .AppImage)",da:"Download installationsprogrammet til dit OS (.dmg / .exe / .AppImage)",pl:"Pobierz instalator dla swojego systemu (.dmg / .exe / .AppImage)",ru:"Скачайте установщик для вашей ОС (.dmg / .exe / .AppImage)",ar:"قم بتنزيل المثبت لنظامك (.dmg / .exe / .AppImage)",no:"Last ned installasjonsprogrammet for ditt OS (.dmg / .exe / .AppImage)","pt-BR":"Baixe o instalador para seu SO (.dmg / .exe / .AppImage)",th:"ดาวน์โหลดตัวติดตั้งสำหรับระบบของคุณ (.dmg / .exe / .AppImage)",tr:"İşletim sisteminiz için yükleyiciyi indirin (.dmg / .exe / .AppImage)",uk:"Завантажте інсталятор для вашої ОС (.dmg / .exe / .AppImage)"},"ui.update.step3":{zh:"安装后替换旧版本即可",en:"Install to replace the old version","zh-TW":"安裝後替換舊版本即可",ko:"설치하여 이전 버전을 교체",ja:"インストールして旧バージョンを置き換え",de:"Installieren, um die alte Version zu ersetzen",es:"Instale para reemplazar la versión anterior",fr:"Installez pour remplacer l'ancienne version",it:"Installa per sostituire la vecchia versione",da:"Installér for at erstatte den gamle version",pl:"Zainstaluj, aby zastąpić starą wersję",ru:"Установите для замены старой версии",ar:"قم بالتثبيت لاستبدال الإصدار القديم",no:"Installer for å erstatte den gamle versjonen","pt-BR":"Instale para substituir a versão antiga",th:"ติดตั้งเพื่อแทนที่เวอร์ชันเก่า",tr:"Eski sürümü değiştirmek için yükleyin",uk:"Встановіть для заміни старої версії"},"ui.update.goReleases":{zh:"前往 GitHub Releases",en:"Go to GitHub Releases","zh-TW":"前往 GitHub Releases",ko:"GitHub Releases로 이동",ja:"GitHub Releases へ",de:"Zu GitHub Releases",es:"Ir a GitHub Releases",fr:"Aller sur GitHub Releases",it:"Vai a GitHub Releases",da:"Gå til GitHub Releases",pl:"Przejdź do GitHub Releases",ru:"Перейти к GitHub Releases",ar:"انتقل إلى GitHub Releases",no:"Gå til GitHub Releases","pt-BR":"Ir para GitHub Releases",th:"ไปที่ GitHub Releases",tr:"GitHub Releases'a git",uk:"Перейти до GitHub Releases"},"ui.update.completed":{zh:"已更新到 v{version},下次启动生效",en:"Updated to v{version}, effective on next restart","zh-TW":"已更新到 v{version},下次啟動生效",ko:"v{version}으로 업데이트됨, 다음 시작 시 적용",ja:"v{version} に更新済み、次回起動時に有効",de:"Auf v{version} aktualisiert, wirksam beim nächsten Neustart",es:"Actualizado a v{version}, efectivo en el próximo reinicio",fr:"Mis à jour vers v{version}, effectif au prochain redémarrage",it:"Aggiornato a v{version}, effettivo al prossimo riavvio",da:"Opdateret til v{version}, træder i kraft ved næste genstart",pl:"Zaktualizowano do v{version}, obowiązuje po ponownym uruchomieniu",ru:"Обновлено до v{version}, вступит в силу при следующем запуске",ar:"تم التحديث إلى v{version}، سيسري عند إعادة التشغيل التالية",no:"Oppdatert til v{version}, trer i kraft ved neste omstart","pt-BR":"Atualizado para v{version}, efetivo na próxima reinicialização",th:"อัปเดตเป็น v{version} แล้ว มีผลเมื่อเริ่มใหม่",tr:"v{version} sürümüne güncellendi, bir sonraki başlatmada geçerli",uk:"Оновлено до v{version}, набуде чинності при наступному запуску"},"ui.update.newBadge":{zh:"有新版本",en:"New version","zh-TW":"有新版本",ko:"새 버전",ja:"新バージョン",de:"Neue Version",es:"Nueva versión",fr:"Nouvelle version",it:"Nuova versione",da:"Ny version",pl:"Nowa wersja",ru:"Новая версия",ar:"إصدار جديد",no:"Ny versjon","pt-BR":"Nova versão",th:"เวอร์ชันใหม่",tr:"Yeni sürüm",uk:"Нова версія"},"ui.update.majorAvailable":{zh:"新大版本 v{version} 可用,请手动更新: npm i -g cx-viewer@latest",en:"Major version v{version} available, update manually: npm i -g cx-viewer@latest","zh-TW":"新大版本 v{version} 可用,請手動更新: npm i -g cx-viewer@latest",ko:"새 메이저 버전 v{version} 사용 가능, 수동 업데이트: npm i -g cx-viewer@latest",ja:"メジャーバージョン v{version} が利用可能、手動更新: npm i -g cx-viewer@latest",de:"Hauptversion v{version} verfügbar, manuell aktualisieren: npm i -g cx-viewer@latest",es:"Versión principal v{version} disponible, actualice: npm i -g cx-viewer@latest",fr:"Version majeure v{version} disponible, mettez à jour : npm i -g cx-viewer@latest",it:"Versione principale v{version} disponibile, aggiornare: npm i -g cx-viewer@latest",da:"Hovedversion v{version} tilgængelig, opdater manuelt: npm i -g cx-viewer@latest",pl:"Główna wersja v{version} dostępna, zaktualizuj: npm i -g cx-viewer@latest",ru:"Доступна основная версия v{version}, обновите: npm i -g cx-viewer@latest",ar:"الإصدار الرئيسي v{version} متاح، حدّث يدويًا: npm i -g cx-viewer@latest",no:"Hovedversjon v{version} tilgjengelig, oppdater manuelt: npm i -g cx-viewer@latest","pt-BR":"Versão principal v{version} disponível, atualize: npm i -g cx-viewer@latest",th:"เวอร์ชันหลัก v{version} พร้อมใช้งาน อัปเดตด้วยตนเอง: npm i -g cx-viewer@latest",tr:"Ana sürüm v{version} mevcut, manuel güncelleyin: npm i -g cx-viewer@latest",uk:"Доступна основна версія v{version}, оновіть: npm i -g cx-viewer@latest"},"ui.chatInput.placeholder":{zh:"输入消息发送给 Codex...",en:"Type a message to Codex...","zh-TW":"輸入訊息傳送給 Codex...",ko:"Codex에게 메시지를 입력하세요...",ja:"Codexにメッセージを入力...",de:"Nachricht an Codex eingeben...",es:"Escribe un mensaje para Codex...",fr:"Tapez un message pour Codex...",it:"Scrivi un messaggio per Codex...",da:"Skriv en besked til Codex...",pl:"Wpisz wiadomość do Codex...",ru:"Введите сообщение для Codex...",ar:"اكتب رسالة إلى Codex...",no:"Skriv en melding til Codex...","pt-BR":"Digite uma mensagem para o Codex...",th:"พิมพ์ข้อความถึง Codex...",tr:"Codex'a mesaj yazın...",uk:"Введіть повідомлення для Codex..."},"ui.chatInput.removeImage":{zh:"移除图片",en:"Remove image","zh-TW":"移除圖片",ko:"이미지 제거",ja:"画像を削除",de:"Bild entfernen",es:"Eliminar imagen",fr:"Supprimer l'image",it:"Rimuovi immagine",da:"Fjern billede",pl:"Usuń obraz",ru:"Удалить изображение",ar:"إزالة الصورة",no:"Fjern bilde","pt-BR":"Remover imagem",th:"ลบรูปภาพ",tr:"Resmi kaldır",uk:"Видалити зображення"},"ui.chatInput.uploading":{zh:"上传中…",en:"Uploading…","zh-TW":"上傳中…",ko:"업로드 중…",ja:"アップロード中…",de:"Wird hochgeladen…",es:"Subiendo…",fr:"Téléversement…",it:"Caricamento…",da:"Uploader…",pl:"Przesyłanie…",ru:"Загрузка…",ar:"جارٍ الرفع…",no:"Laster opp…","pt-BR":"Enviando…",th:"กำลังอัปโหลด…",tr:"Yükleniyor…",uk:"Завантаження…"},"ui.chatInput.uploadTimeout":{zh:"图片上传超时,请重试",en:"Image upload timed out, please retry","zh-TW":"圖片上傳逾時,請重試",ko:"이미지 업로드 시간 초과, 다시 시도하세요",ja:"画像のアップロードがタイムアウトしました。再試行してください",de:"Bild-Upload zeitüberschreitung, bitte erneut versuchen",es:"Tiempo de subida de imagen agotado, reinténtalo",fr:"Délai de téléversement de l'image dépassé, réessayez",it:"Timeout caricamento immagine, riprova",da:"Billedupload fik timeout, prøv igen",pl:"Przekroczono czas przesyłania obrazu, spróbuj ponownie",ru:"Тайм-аут загрузки изображения, повторите попытку",ar:"انتهت مهلة رفع الصورة، يرجى إعادة المحاولة",no:"Tidsavbrudd ved bildeopplasting, prøv igjen","pt-BR":"Tempo de envio da imagem esgotado, tente novamente",th:"อัปโหลดรูปภาพหมดเวลา โปรดลองใหม่",tr:"Resim yükleme zaman aşımına uğradı, lütfen yeniden deneyin",uk:"Час очікування завантаження зображення вичерпано, повторіть спробу"},"ui.chatInput.confirmRemoveImage":{zh:"确定移除此图片?",en:"Remove this image?","zh-TW":"確定移除此圖片?",ko:"이 이미지를 제거하시겠습니까?",ja:"この画像を削除しますか?",de:"Dieses Bild entfernen?",es:"¿Eliminar esta imagen?",fr:"Supprimer cette image ?",it:"Rimuovere questa immagine?",da:"Fjern dette billede?",pl:"Usunąć ten obraz?",ru:"Удалить это изображение?",ar:"إزالة هذه الصورة؟",no:"Fjerne dette bildet?","pt-BR":"Remover esta imagem?",th:"ลบรูปภาพนี้?",tr:"Bu resim kaldırılsın mı?",uk:"Видалити це зображення?"},"ui.chatInput.confirmRemoveFile":{zh:"确定移除此文件?",en:"Remove this file?","zh-TW":"確定移除此檔案?",ko:"이 파일을 제거하시겠습니까?",ja:"このファイルを削除しますか?",de:"Diese Datei entfernen?",es:"¿Eliminar este archivo?",fr:"Supprimer ce fichier ?",it:"Rimuovere questo file?",da:"Fjern denne fil?",pl:"Usunąć ten plik?",ru:"Удалить этот файл?",ar:"إزالة هذا الملف؟",no:"Fjerne denne filen?","pt-BR":"Remover este arquivo?",th:"ลบไฟล์นี้?",tr:"Bu dosya kaldırılsın mı?",uk:"Видалити цей файл?"},"ui.common.confirmYes":{zh:"确定",en:"Yes","zh-TW":"確定",ko:"예",ja:"はい",de:"Ja",es:"Sí",fr:"Oui",it:"Sì",da:"Ja",pl:"Tak",ru:"Да",ar:"نعم",no:"Ja","pt-BR":"Sim",th:"ใช่",tr:"Evet",uk:"Так"},"ui.common.confirmCancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.chatInput.more":{zh:"更多",en:"More","zh-TW":"更多",ko:"더보기",ja:"もっと見る",de:"Mehr",es:"Más",fr:"Plus",it:"Altro",da:"Mere",pl:"Więcej",ru:"Ещё",ar:"المزيد",no:"Mer","pt-BR":"Mais",th:"เพิ่มเติม",tr:"Daha fazla",uk:"Ще"},"ui.chatInput.send":{zh:"发送",en:"Send","zh-TW":"傳送",ko:"보내기",ja:"送信",de:"Senden",es:"Enviar",fr:"Envoyer",it:"Invia",da:"Send",pl:"Wyślij",ru:"Отправить",ar:"إرسال",no:"Send","pt-BR":"Enviar",th:"ส่ง",tr:"Gönder",uk:"Надіслати"},"ui.chatInput.stop":{zh:"停止",en:"Stop","zh-TW":"停止",ko:"중지",ja:"停止",de:"Stopp",es:"Detener",fr:"Arrêter",it:"Ferma",da:"Stop",pl:"Zatrzymaj",ru:"Стоп",ar:"إيقاف",no:"Stopp","pt-BR":"Parar",th:"หยุด",tr:"Durdur",uk:"Зупинити"},"ui.chatInput.hintEnter":{zh:"Enter 发送,Shift+Enter 换行",en:"Enter to send, Shift+Enter for new line","zh-TW":"Enter 傳送,Shift+Enter 換行",ko:"Enter로 전송, Shift+Enter로 줄바꿈",ja:"Enterで送信、Shift+Enterで改行",de:"Enter zum Senden, Shift+Enter für neue Zeile",es:"Enter para enviar, Shift+Enter para nueva línea",fr:"Entrée pour envoyer, Shift+Entrée pour nouvelle ligne",it:"Invio per inviare, Shift+Invio per nuova riga",da:"Enter for at sende, Shift+Enter for ny linje",pl:"Enter aby wysłać, Shift+Enter nowa linia",ru:"Enter — отправить, Shift+Enter — новая строка",ar:"Enter للإرسال، Shift+Enter لسطر جديد",no:"Enter for å sende, Shift+Enter for ny linje","pt-BR":"Enter para enviar, Shift+Enter para nova linha",th:"Enter ส่ง, Shift+Enter ขึ้นบรรทัดใหม่",tr:"Enter gönder, Shift+Enter yeni satır",uk:"Enter — надіслати, Shift+Enter — новий рядок"},"ui.chatInput.hintTab":{zh:"Tab 接受建议",en:"Tab to accept suggestion","zh-TW":"Tab 接受建議",ko:"Tab으로 제안 수락",ja:"Tabで提案を受け入れ",de:"Tab zum Akzeptieren des Vorschlags",es:"Tab para aceptar sugerencia",fr:"Tab pour accepter la suggestion",it:"Tab per accettare il suggerimento",da:"Tab for at acceptere forslag",pl:"Tab aby zaakceptować sugestię",ru:"Tab — принять предложение",ar:"Tab لقبول الاقتراح",no:"Tab for å akseptere forslag","pt-BR":"Tab para aceitar sugestão",th:"Tab ยอมรับคำแนะนำ",tr:"Tab ile öneriyi kabul et",uk:"Tab — прийняти пропозицію"},"ui.terminal":{zh:"终端",en:"Terminal","zh-TW":"終端機",ko:"터미널",ja:"ターミナル",de:"Terminal",es:"Terminal",fr:"Terminal",it:"Terminale",da:"Terminal",pl:"Terminal",ru:"Терминал",ar:"طرفية",no:"Terminal","pt-BR":"Terminal",th:"เทอร์มินัล",tr:"Terminal",uk:"Термінал"},"ui.collapseTerminal":{zh:"收起终端",en:"Collapse terminal","zh-TW":"收起終端機",ko:"터미널 접기",ja:"ターミナルを閉じる",de:"Terminal einklappen",es:"Contraer terminal",fr:"Réduire le terminal",it:"Comprimi terminale",da:"Skjul terminal",pl:"Zwiń terminal",ru:"Свернуть терминал",ar:"طي الطرفية",no:"Skjul terminal","pt-BR":"Recolher terminal",th:"ย่อเทอร์มินัล",tr:"Terminali daralt",uk:"Згорнути термінал"},"ui.expandTerminal":{zh:"展开终端",en:"Expand terminal","zh-TW":"展開終端機",ko:"터미널 펼치기",ja:"ターミナルを開く",de:"Terminal ausklappen",es:"Expandir terminal",fr:"Développer le terminal",it:"Espandi terminale",da:"Vis terminal",pl:"Rozwiń terminal",ru:"Развернуть терминал",ar:"توسيع الطرفية",no:"Vis terminal","pt-BR":"Expandir terminal",th:"ขยายเทอร์มินัล",tr:"Terminali genişlet",uk:"Розгорнути термінал"},"ui.stickyBottom":{zh:"保持吸底",en:"Stick to bottom","zh-TW":"保持置底",ko:"하단 고정",ja:"下部に固定",de:"Unten fixieren",es:"Fijar al fondo",fr:"Fixer en bas",it:"Fissa in basso",da:"Fastgør i bunden",pl:"Przypnij na dole",ru:"Прикрепить внизу",ar:"تثبيت في الأسفل",no:"Fest til bunnen","pt-BR":"Fixar no fundo",th:"ตรึงด้านล่าง",tr:"Alta sabitle",uk:"Закріпити внизу"},"ui.enterPlanMode":{zh:"进入计划模式",en:"Entering Plan Mode","zh-TW":"進入計劃模式",ko:"계획 모드 진입",ja:"プランモードに入ります",de:"Planungsmodus wird gestartet",es:"Entrando en modo de planificación",fr:"Entrée en mode planification",it:"Accesso alla modalità pianificazione",da:"Går ind i planlægningstilstand",pl:"Wchodzenie w tryb planowania",ru:"Вход в режим планирования",ar:"الدخول في وضع التخطيط",no:"Går inn i planleggingsmodus","pt-BR":"Entrando no modo de planejamento",th:"เข้าสู่โหมดวางแผน",tr:"Plan moduna giriliyor",uk:"Вхід у режим планування"},"ui.exitPlanMode":{zh:"计划就绪,等待审批",en:"Plan Ready for Approval","zh-TW":"計劃就緒,等待審批",ko:"계획 준비 완료, 승인 대기",ja:"プラン準備完了、承認待ち",de:"Plan bereit zur Genehmigung",es:"Plan listo para aprobación",fr:"Plan prêt pour approbation",it:"Piano pronto per l'approvazione",da:"Plan klar til godkendelse",pl:"Plan gotowy do zatwierdzenia",ru:"План готов к утверждению",ar:"الخطة جاهزة للموافقة",no:"Plan klar for godkjenning","pt-BR":"Plano pronto para aprovação",th:"แผนพร้อมรอการอนุมัติ",tr:"Plan onaya hazır",uk:"План готовий до затвердження"},"ui.exitPlanModeResolved":{zh:"计划审批",en:"Plan Approval","zh-TW":"計劃審批",ko:"계획 승인",ja:"プラン承認",de:"Plangenehmigung",es:"Aprobación del plan",fr:"Approbation du plan",it:"Approvazione piano",da:"Plangodkendelse",pl:"Zatwierdzenie planu",ru:"Утверждение плана",ar:"الموافقة على الخطة",no:"Plangodkjenning","pt-BR":"Aprovação do plano",th:"การอนุมัติแผน",tr:"Plan onayı",uk:"Затвердження плану"},"ui.allowedPrompts":{zh:"请求的权限",en:"Requested Permissions","zh-TW":"請求的權限",ko:"요청된 권한",ja:"要求された権限",de:"Angeforderte Berechtigungen",es:"Permisos solicitados",fr:"Permissions demandées",it:"Permessi richiesti",da:"Anmodede tilladelser",pl:"Żądane uprawnienia",ru:"Запрошенные разрешения",ar:"الأذونات المطلوبة",no:"Forespurte tillatelser","pt-BR":"Permissões solicitadas",th:"สิทธิ์ที่ร้องขอ",tr:"İstenen izinler",uk:"Запитані дозволи"},"ui.planApproved":{zh:"已批准",en:"Approved","zh-TW":"已批准",ko:"승인됨",ja:"承認済み",de:"Genehmigt",es:"Aprobado",fr:"Approuvé",it:"Approvato",da:"Godkendt",pl:"Zatwierdzono",ru:"Одобрено",ar:"تمت الموافقة",no:"Godkjent","pt-BR":"Aprovado",th:"อนุมัติแล้ว",tr:"Onaylandı",uk:"Затверджено"},"ui.planRejected":{zh:"已拒绝",en:"Rejected","zh-TW":"已拒絕",ko:"거부됨",ja:"却下済み",de:"Abgelehnt",es:"Rechazado",fr:"Rejeté",it:"Rifiutato",da:"Afvist",pl:"Odrzucono",ru:"Отклонено",ar:"مرفوض",no:"Avvist","pt-BR":"Rejeitado",th:"ถูกปฏิเสธ",tr:"Reddedildi",uk:"Відхилено"},"ui.planPending":{zh:"待审批",en:"Pending","zh-TW":"待審批",ko:"대기 중",ja:"承認待ち",de:"Ausstehend",es:"Pendiente",fr:"En attente",it:"In attesa",da:"Afventer",pl:"Oczekuje",ru:"Ожидает",ar:"قيد الانتظار",no:"Venter","pt-BR":"Pendente",th:"รอดำเนินการ",tr:"Beklemede",uk:"Очікує"},"ui.planUltraplan":{zh:"UltraPlan 执行中",en:"UltraPlan Executing","zh-TW":"UltraPlan 執行中",ko:"UltraPlan 실행 중",ja:"UltraPlan 実行中",de:"UltraPlan wird ausgeführt",es:"UltraPlan en ejecución",fr:"UltraPlan en cours",it:"UltraPlan in esecuzione",da:"UltraPlan kører",pl:"UltraPlan w trakcie",ru:"UltraPlan выполняется",ar:"UltraPlan قيد التنفيذ",no:"UltraPlan kjører","pt-BR":"UltraPlan em execução",th:"UltraPlan กำลังดำเนินการ",tr:"UltraPlan çalışıyor",uk:"UltraPlan виконується"},"ui.planApprove":{zh:"批准",en:"Approve","zh-TW":"批准",ko:"승인",ja:"承認",de:"Genehmigen",es:"Aprobar",fr:"Approuver",it:"Approva",da:"Godkend",pl:"Zatwierdź",ru:"Одобрить",ar:"موافقة",no:"Godkjenn","pt-BR":"Aprovar",th:"อนุมัติ",tr:"Onayla",uk:"Схвалити"},"ui.planApproveWithEdits":{zh:"批准并修改",en:"Approve with edits","zh-TW":"批准並修改",ko:"수정 후 승인",ja:"修正して承認",de:"Mit Änderungen genehmigen",es:"Aprobar con cambios",fr:"Approuver avec modifications",it:"Approva con modifiche",da:"Godkend med ændringer",pl:"Zatwierdź ze zmianami",ru:"Одобрить с правками",ar:"موافقة مع تعديلات",no:"Godkjenn med endringer","pt-BR":"Aprovar com edições",th:"อนุมัติพร้อมแก้ไข",tr:"Düzenlemelerle onayla",uk:"Схвалити зі змінами"},"ui.planReject":{zh:"拒绝",en:"Reject","zh-TW":"拒絕",ko:"거부",ja:"拒否",de:"Ablehnen",es:"Rechazar",fr:"Rejeter",it:"Rifiuta",da:"Afvis",pl:"Odrzuć",ru:"Отклонить",ar:"رفض",no:"Avvis","pt-BR":"Rejeitar",th:"ปฏิเสธ",tr:"Reddet",uk:"Відхилити"},"ui.planFeedback":{zh:"反馈",en:"Feedback","zh-TW":"回饋",ko:"피드백",ja:"フィードバック",de:"Feedback",es:"Comentarios",fr:"Retour",it:"Feedback",da:"Feedback",pl:"Opinia",ru:"Отзыв",ar:"ملاحظات",no:"Tilbakemelding","pt-BR":"Feedback",th:"ข้อเสนอแนะ",tr:"Geri bildirim",uk:"Відгук"},"ui.planFeedbackPlaceholder":{zh:"输入你的修改建议…",en:"Type your feedback…","zh-TW":"輸入你的修改建議…",ko:"피드백을 입력하세요…",ja:"フィードバックを入力…",de:"Feedback eingeben…",es:"Escribe tu comentario…",fr:"Saisissez votre retour…",it:"Scrivi il tuo feedback…",da:"Skriv din feedback…",pl:"Wpisz swoją opinię…",ru:"Введите отзыв…",ar:"اكتب ملاحظاتك…",no:"Skriv tilbakemelding…","pt-BR":"Digite seu feedback…",th:"พิมพ์ข้อเสนอแนะ…",tr:"Geri bildiriminizi yazın…",uk:"Введіть відгук…"},"ui.planFeedbackSubmit":{zh:"发送",en:"Send","zh-TW":"傳送",ko:"보내기",ja:"送信",de:"Senden",es:"Enviar",fr:"Envoyer",it:"Invia",da:"Send",pl:"Wyślij",ru:"Отправить",ar:"إرسال",no:"Send","pt-BR":"Enviar",th:"ส่ง",tr:"Gönder",uk:"Надіслати"},"ui.permission.approvalRequired":{zh:"待审批",en:"Approval Required","zh-TW":"待審批",ko:"승인 필요",ja:"承認が必要",de:"Genehmigung erforderlich",es:"Aprobación requerida",fr:"Approbation requise",it:"Approvazione richiesta",da:"Godkendelse påkrævet",pl:"Wymagana akceptacja",ru:"Требуется одобрение",ar:"موافقة مطلوبة",no:"Godkjenning påkrevd","pt-BR":"Aprovação necessária",th:"ต้องการการอนุมัติ",tr:"Onay gerekli",uk:"Потрібне схвалення"},"ui.permission.allow":{zh:"允许",en:"Allow","zh-TW":"允許",ko:"허용",ja:"許可",de:"Erlauben",es:"Permitir",fr:"Autoriser",it:"Consenti",da:"Tillad",pl:"Zezwól",ru:"Разрешить",ar:"سماح",no:"Tillat","pt-BR":"Permitir",th:"อนุญาต",tr:"İzin ver",uk:"Дозволити"},"ui.permission.allowSession":{zh:"本次会话允许",en:"Allow for session","zh-TW":"本次會話允許",ko:"세션 동안 허용",ja:"セッション中は許可",de:"Für Sitzung erlauben",es:"Permitir para sesión",fr:"Autoriser pour la session",it:"Consenti per sessione",da:"Tillad for session",pl:"Zezwól na sesję",ru:"Разрешить на сессию",ar:"سماح للجلسة",no:"Tillat for økt","pt-BR":"Permitir para sessão",th:"อนุญาตสำหรับเซสชัน",tr:"Oturum için izin ver",uk:"Дозволити для сесії"},"ui.permission.deny":{zh:"拒绝",en:"Deny","zh-TW":"拒絕",ko:"거부",ja:"拒否",de:"Ablehnen",es:"Denegar",fr:"Refuser",it:"Nega",da:"Afvis",pl:"Odmów",ru:"Отклонить",ar:"رفض",no:"Avslå","pt-BR":"Negar",th:"ปฏิเสธ",tr:"Reddet",uk:"Відхилити"},"ui.permission.allowCountdown":{zh:"允许({seconds}s)",en:"Allow({seconds}s)","zh-TW":"允許({seconds}s)",ko:"허용({seconds}s)",ja:"許可({seconds}s)",de:"Erlauben({seconds}s)",es:"Permitir({seconds}s)",fr:"Autoriser({seconds}s)",it:"Consenti({seconds}s)",da:"Tillad({seconds}s)",pl:"Zezwól({seconds}s)",ru:"Разрешить({seconds}s)",ar:"سماح({seconds}s)",no:"Tillat({seconds}s)","pt-BR":"Permitir({seconds}s)",th:"อนุญาต({seconds}s)",tr:"İzin ver({seconds}s)",uk:"Дозволити({seconds}s)"},"ui.permission.autoApprove.enable":{zh:"开启 {seconds}s 自动审批",en:"Auto-approve {seconds}s","zh-TW":"開啟 {seconds}s 自動審批",ko:"{seconds}s 자동 승인",ja:"{seconds}s 自動承認",de:"Auto-Genehmigung {seconds}s",es:"Auto-aprobar {seconds}s",fr:"Auto-approuver {seconds}s",it:"Auto-approva {seconds}s",da:"Auto-godkend {seconds}s",pl:"Auto-akceptacja {seconds}s",ru:"Авто-одобрение {seconds}s",ar:"موافقة تلقائية {seconds}s",no:"Auto-godkjenn {seconds}s","pt-BR":"Auto-aprovar {seconds}s",th:"อนุมัติอัตโนมัติ {seconds}s",tr:"Otomatik onayla {seconds}s",uk:"Авто-схвалення {seconds}s"},"ui.permission.autoApprove.active":{zh:"自动审批 {seconds}s",en:"Auto-approve {seconds}s","zh-TW":"自動審批 {seconds}s",ko:"자동 승인 {seconds}s",ja:"自動承認 {seconds}s",de:"Auto-Genehmigung {seconds}s",es:"Auto-aprobar {seconds}s",fr:"Auto-approuver {seconds}s",it:"Auto-approva {seconds}s",da:"Auto-godkend {seconds}s",pl:"Auto-akceptacja {seconds}s",ru:"Авто-одобрение {seconds}s",ar:"موافقة تلقائية {seconds}s",no:"Auto-godkjenn {seconds}s","pt-BR":"Auto-aprovar {seconds}s",th:"อนุมัติอัตโนมัติ {seconds}s",tr:"Otomatik onayla {seconds}s",uk:"Авто-схвалення {seconds}s"},"ui.permission.autoApprove.disable":{zh:"关闭自动审批",en:"Disable auto-approve","zh-TW":"關閉自動審批",ko:"자동 승인 끄기",ja:"自動承認を無効化",de:"Auto-Genehmigung deaktivieren",es:"Desactivar auto-aprobar",fr:"Désactiver auto-approuver",it:"Disattiva auto-approva",da:"Deaktiver auto-godkend",pl:"Wyłącz auto-akceptację",ru:"Выключить авто-одобрение",ar:"إيقاف الموافقة التلقائية",no:"Deaktiver auto-godkjenn","pt-BR":"Desativar auto-aprovar",th:"ปิดอนุมัติอัตโนมัติ",tr:"Otomatik onayı kapat",uk:"Вимкнути авто-схвалення"},"ui.subAgentApproval":{zh:"SubAgent",en:"SubAgent","zh-TW":"SubAgent",ko:"SubAgent",ja:"SubAgent",de:"SubAgent",es:"SubAgent",fr:"SubAgent",it:"SubAgent",da:"SubAgent",pl:"SubAgent",ru:"SubAgent",ar:"SubAgent",no:"SubAgent","pt-BR":"SubAgent",th:"SubAgent",tr:"SubAgent",uk:"SubAgent"},"ui.permission.queued":{zh:"+{n} 排队中",en:"+{n} queued","zh-TW":"+{n} 排隊中",ko:"+{n} 대기 중",ja:"+{n} キュー中",de:"+{n} in Warteschlange",es:"+{n} en cola",fr:"+{n} en attente",it:"+{n} in coda",da:"+{n} i kø",pl:"+{n} w kolejce",ru:"+{n} в очереди",ar:"+{n} في الانتظار",no:"+{n} i kø","pt-BR":"+{n} na fila",th:"+{n} รอคิว",tr:"+{n} sırada",uk:"+{n} в черзі"},"ui.teammate.idle_notification":{zh:"{name} 已空闲",en:"{name} is idle","zh-TW":"{name} 已閒置",ko:"{name} 유휴 상태",ja:"{name} がアイドル",de:"{name} ist untätig",es:"{name} está inactivo",fr:"{name} est inactif",it:"{name} è inattivo",da:"{name} er inaktiv",pl:"{name} jest bezczynny",ru:"{name} простаивает",ar:"{name} خامل",no:"{name} er inaktiv","pt-BR":"{name} está ocioso",th:"{name} ว่าง",tr:"{name} boşta",uk:"{name} очікує"},"ui.teammate.shutdown_request":{zh:"请求关闭 {name}",en:"Requesting shutdown of {name}","zh-TW":"請求關閉 {name}",ko:"{name} 종료 요청",ja:"{name} のシャットダウンを要求",de:"Herunterfahren von {name} angefordert",es:"Solicitando cierre de {name}",fr:"Demande d'arrêt de {name}",it:"Richiesta chiusura di {name}",da:"Anmoder nedlukning af {name}",pl:"Żądanie zamknięcia {name}",ru:"Запрос завершения {name}",ar:"طلب إيقاف {name}",no:"Ber om avslutning av {name}","pt-BR":"Solicitando encerramento de {name}",th:"ขอปิด {name}",tr:"{name} kapatılıyor",uk:"Запит завершення {name}"},"ui.teammate.shutdown_response":{zh:"{name} 同意关闭",en:"{name} accepted shutdown","zh-TW":"{name} 同意關閉",ko:"{name} 종료 수락",ja:"{name} がシャットダウンを承認",de:"{name} akzeptiert Herunterfahren",es:"{name} aceptó el cierre",fr:"{name} a accepté l'arrêt",it:"{name} ha accettato la chiusura",da:"{name} accepterede nedlukning",pl:"{name} zaakceptował zamknięcie",ru:"{name} принял завершение",ar:"{name} وافق على الإيقاف",no:"{name} godtok avslutning","pt-BR":"{name} aceitou o encerramento",th:"{name} ยอมรับการปิด",tr:"{name} kapatmayı kabul etti",uk:"{name} прийняв завершення"},"ui.teammate.shutdown_approved":{zh:"{name} 已关闭",en:"{name} shut down","zh-TW":"{name} 已關閉",ko:"{name} 종료됨",ja:"{name} がシャットダウン",de:"{name} heruntergefahren",es:"{name} cerrado",fr:"{name} arrêté",it:"{name} chiuso",da:"{name} lukket ned",pl:"{name} zamknięty",ru:"{name} завершён",ar:"{name} أُغلق",no:"{name} avsluttet","pt-BR":"{name} encerrado",th:"{name} ปิดแล้ว",tr:"{name} kapatıldı",uk:"{name} завершено"},"ui.teammate.teammate_terminated":{zh:"{name} 已终止",en:"{name} terminated","zh-TW":"{name} 已終止",ko:"{name} 종료됨",ja:"{name} が終了",de:"{name} beendet",es:"{name} terminado",fr:"{name} terminé",it:"{name} terminato",da:"{name} afsluttet",pl:"{name} zakończony",ru:"{name} завершён",ar:"{name} أُنهي",no:"{name} avsluttet","pt-BR":"{name} finalizado",th:"{name} สิ้นสุด",tr:"{name} sonlandırıldı",uk:"{name} завершено"},"ui.teammate.plan_approval_request":{zh:"{name} 请求计划审批",en:"{name} requested plan approval","zh-TW":"{name} 請求計畫審批",ko:"{name} 계획 승인 요청",ja:"{name} が計画の承認を要求",de:"{name} fordert Planfreigabe an",es:"{name} solicitó aprobación del plan",fr:"{name} a demandé l'approbation du plan",it:"{name} ha richiesto l'approvazione del piano",da:"{name} anmodede om plangodkendelse",pl:"{name} poprosił o zatwierdzenie planu",ru:"{name} запросил одобрение плана",ar:"{name} طلب الموافقة على الخطة",no:"{name} ba om plangodkjenning","pt-BR":"{name} solicitou aprovação do plano",th:"{name} ขออนุมัติแผน",tr:"{name} plan onayı istedi",uk:"{name} запросив схвалення плану"},"ui.teammate.plan_approval_response":{zh:"{name} 已回应计划审批",en:"{name} responded to plan approval","zh-TW":"{name} 已回應計畫審批",ko:"{name} 계획 승인에 응답",ja:"{name} が計画承認に応答",de:"{name} hat auf Planfreigabe geantwortet",es:"{name} respondió a la aprobación del plan",fr:"{name} a répondu à l'approbation du plan",it:"{name} ha risposto all'approvazione del piano",da:"{name} svarede på plangodkendelse",pl:"{name} odpowiedział na zatwierdzenie planu",ru:"{name} ответил на одобрение плана",ar:"{name} رد على الموافقة على الخطة",no:"{name} svarte på plangodkjenning","pt-BR":"{name} respondeu à aprovação do plano",th:"{name} ตอบกลับการอนุมัติแผน",tr:"{name} plan onayını yanıtladı",uk:"{name} відповів на схвалення плану"},"ui.permission.autoApprove.off":{zh:"关闭",en:"Off","zh-TW":"關閉",ko:"끄기",ja:"オフ",de:"Aus",es:"Desactivar",fr:"Désactiver",it:"Disattiva",da:"Sluk",pl:"Wyłącz",ru:"Выкл",ar:"إيقاف",no:"Av","pt-BR":"Desativar",th:"ปิด",tr:"Kapat",uk:"Вимк"},"ui.permission.autoApprove.instant":{zh:"免审批",en:"Instant","zh-TW":"免審批",ko:"즉시 승인",ja:"即時承認",de:"Sofort",es:"Instantáneo",fr:"Instantané",it:"Istantaneo",da:"Øjeblikkelig",pl:"Natychmiast",ru:"Мгновенно",ar:"فوري",no:"Umiddelbart","pt-BR":"Instantâneo",th:"ทันที",tr:"Anında",uk:"Миттєво"},"ui.permission.autoApprove.setting":{zh:"权限自动审批",en:"Permission auto-approve","zh-TW":"權限自動審批",ko:"권한 자동 승인",ja:"権限の自動承認",de:"Berechtigung auto-genehmigen",es:"Auto-aprobar permisos",fr:"Auto-approuver les permissions",it:"Auto-approva permessi",da:"Auto-godkend tilladelser",pl:"Auto-akceptacja uprawnień",ru:"Авто-одобрение прав",ar:"موافقة تلقائية على الأذونات",no:"Auto-godkjenn tillatelser","pt-BR":"Auto-aprovar permissões",th:"อนุมัติสิทธิ์อัตโนมัติ",tr:"İzinleri otomatik onayla",uk:"Авто-схвалення дозволів"},"ui.permission.autoApprove.help":{zh:"工具/权限请求弹出后,按所选秒数倒计时自动放行(「立即」=免倒计时直接放行,「关闭」=需手动点允许)。",en:"When a tool/permission request appears, auto-approve it after the chosen countdown (Instant = approve immediately, Off = approve manually).","zh-TW":"工具/權限請求彈出後,依所選秒數倒計時自動放行(「立即」=免倒計時直接放行,「關閉」=需手動點允許)。",ko:"도구/권한 요청이 나타나면 선택한 카운트다운 후 자동 승인합니다(즉시=바로 승인, 끄기=수동 승인).",ja:"ツール/権限リクエストが表示されると、選択した秒数のカウントダウン後に自動承認します(「即時」=即承認、「オフ」=手動承認)。",de:"Wenn eine Tool-/Berechtigungsanfrage erscheint, wird sie nach dem gewählten Countdown automatisch genehmigt (Sofort = sofort genehmigen, Aus = manuell genehmigen).",es:"Cuando aparece una solicitud de herramienta/permiso, se aprueba automáticamente tras la cuenta atrás elegida (Inmediato = aprobar al instante, Desactivado = aprobar manualmente).",fr:"Lorsqu'une demande d'outil/permission apparaît, elle est approuvée automatiquement après le compte à rebours choisi (Immédiat = approuver aussitôt, Désactivé = approuver manuellement).",it:"Quando appare una richiesta di strumento/permesso, viene approvata automaticamente dopo il conto alla rovescia scelto (Immediato = approva subito, Off = approva manualmente).",da:"Når en værktøjs-/tilladelsesanmodning vises, godkendes den automatisk efter den valgte nedtælling (Straks = godkend med det samme, Fra = godkend manuelt).",pl:"Gdy pojawi się żądanie narzędzia/uprawnienia, jest automatycznie zatwierdzane po wybranym odliczaniu (Natychmiast = zatwierdź od razu, Wył. = zatwierdź ręcznie).",ru:"Когда появляется запрос инструмента/разрешения, он автоматически одобряется после выбранного отсчёта (Сразу = одобрить немедленно, Выкл. = одобрять вручную).",ar:"عند ظهور طلب أداة/إذن، تتم الموافقة عليه تلقائيًا بعد العدّ التنازلي المختار (فوري = الموافقة فورًا، إيقاف = الموافقة يدويًا).",no:"Når en verktøy-/tillatelsesforespørsel vises, godkjennes den automatisk etter valgt nedtelling (Umiddelbart = godkjenn med en gang, Av = godkjenn manuelt).","pt-BR":"Quando uma solicitação de ferramenta/permissão aparece, é aprovada automaticamente após a contagem escolhida (Imediato = aprovar na hora, Desligado = aprovar manualmente).",th:"เมื่อมีคำขอเครื่องมือ/สิทธิ์ จะอนุมัติอัตโนมัติหลังนับถอยหลังตามที่เลือก (ทันที = อนุมัติทันที, ปิด = อนุมัติเอง)",tr:"Bir araç/izin isteği göründüğünde, seçilen geri sayımdan sonra otomatik onaylanır (Anında = hemen onayla, Kapalı = elle onayla).",uk:"Коли з'являється запит інструмента/дозволу, він автоматично схвалюється після вибраного відліку (Одразу = схвалити негайно, Вимк. = схвалювати вручну)."},"ui.permission.reviewer.setting":{zh:"权限审批代理",en:"Approval reviewer","zh-TW":"權限審批代理",ko:"승인 검토자",ja:"承認レビュアー",de:"Genehmigungsprüfer",es:"Revisor de aprobaciones",fr:"Réviseur d’approbations",it:"Revisore approvazioni",da:"Godkendelsesreviewer",pl:"Recenzent zatwierdzeń",ru:"Проверяющий запросы",ar:"مراجع الموافقات",no:"Godkjenningskontrollør","pt-BR":"Revisor de aprovações",th:"ผู้ตรวจสอบการอนุมัติ",tr:"Onay inceleyici",uk:"Перевіряльник схвалень"},"ui.permission.reviewer.help":{zh:"选择权限请求由你手动审批,还是交给 Codex 审批代理按风险自动审查;变更从下一轮开始生效。",en:"Choose whether permission requests are reviewed by you or by the Codex risk-based reviewer agent. Changes apply from the next turn.","zh-TW":"選擇權限請求由你手動審批,或交給 Codex 審批代理按風險自動審查;變更從下一輪開始生效。"},"ui.permission.reviewer.user":{zh:"人工审批",en:"User review","zh-TW":"人工審批"},"ui.permission.reviewer.auto":{zh:"Codex 自动审查",en:"Codex auto review","zh-TW":"Codex 自動審查"},"ui.permission.reviewer.applied":{zh:"权限审批代理已安排在下一轮生效",en:"Approval reviewer is scheduled for the next turn","zh-TW":"權限審批代理已安排在下一輪生效"},"ui.permission.reviewer.saved":{zh:"权限审批代理已保存,将在下次支持的 Codex 会话生效",en:"Approval reviewer saved for the next supported Codex session","zh-TW":"權限審批代理已儲存,將在下次支援的 Codex 會話生效"},"ui.permission.reviewer.failed":{zh:"权限审批代理切换失败,已恢复先前设置",en:"Failed to change approval reviewer; restored the previous setting","zh-TW":"權限審批代理切換失敗,已恢復先前設定"},"ui.approval.modal.title.ptyPlan":{zh:"计划审批",en:"Plan review","zh-TW":"計劃審批",ko:"계획 검토",ja:"プラン審査",de:"Plan-Überprüfung",es:"Revisar plan",fr:"Examen du plan",it:"Revisione del piano",da:"Plan-gennemgang",pl:"Przegląd planu",ru:"Обзор плана",ar:"مراجعة الخطة",no:"Plan-gjennomgang","pt-BR":"Revisar plano",th:"ตรวจสอบแผน",tr:"Plan incelemesi",uk:"Перегляд плану"},"ui.approval.modal.title.ask":{zh:"需要回答",en:"Question","zh-TW":"需要回答",ko:"질문",ja:"質問",de:"Frage",es:"Pregunta",fr:"Question",it:"Domanda",da:"Spørgsmål",pl:"Pytanie",ru:"Вопрос",ar:"سؤال",no:"Spørsmål","pt-BR":"Pergunta",th:"คำถาม",tr:"Soru",uk:"Питання"},"ui.approval.modal.dismiss":{zh:"最小化(保留待审批)",en:"Minimise (keep pending)","zh-TW":"最小化(保留待審批)",ko:"최소화 (보류 유지)",ja:"最小化 (保留)",de:"Minimieren",es:"Minimizar",fr:"Minimiser",it:"Minimizza",da:"Minimer",pl:"Minimalizuj",ru:"Свернуть",ar:"تصغير",no:"Minimer","pt-BR":"Minimizar",th:"ย่อ",tr:"Küçült",uk:"Згорнути"},"ui.approval.modal.cancelHint":{zh:"⌘/Ctrl+ESC 取消",en:"⌘/Ctrl+ESC to cancel","zh-TW":"⌘/Ctrl+ESC 取消",ko:"⌘/Ctrl+ESC로 취소",ja:"⌘/Ctrl+ESC でキャンセル",de:"⌘/Strg+ESC zum Abbrechen",es:"⌘/Ctrl+ESC para cancelar",fr:"⌘/Ctrl+ESC pour annuler",it:"⌘/Ctrl+ESC per annullare",da:"⌘/Ctrl+ESC for at annullere",pl:"⌘/Ctrl+ESC aby anulować",ru:"⌘/Ctrl+ESC — отмена",ar:"⌘/Ctrl+ESC للإلغاء",no:"⌘/Ctrl+ESC for å avbryte","pt-BR":"⌘/Ctrl+ESC para cancelar",th:"⌘/Ctrl+ESC เพื่อยกเลิก",tr:"⌘/Ctrl+ESC ile iptal",uk:"⌘/Ctrl+ESC — скасувати"},"ui.approval.modal.hintPrefix":{zh:"操作提示:",en:"Hint:","zh-TW":"操作提示:",ko:"안내:",ja:"ヒント:",de:"Hinweis:",es:"Pista:",fr:"Astuce :",it:"Suggerimento:",da:"Tip:",pl:"Wskazówka:",ru:"Подсказка:",ar:"تلميح:",no:"Tips:","pt-BR":"Dica:",th:"คำแนะนำ:",tr:"İpucu:",uk:"Підказка:"},"ui.approval.bell.reopen":{zh:"重新打开审批弹层",en:"Reopen approval modal","zh-TW":"重新開啟審批彈層",ko:"승인 모달 다시 열기",ja:"承認モーダルを再表示",de:"Genehmigungs-Modal erneut öffnen",es:"Reabrir modal de aprobación",fr:"Rouvrir le modal d'approbation",it:"Riapri modal di approvazione",da:"Genåbn godkendelsesmodal",pl:"Otwórz ponownie modal akceptacji",ru:"Открыть окно одобрения",ar:"إعادة فتح نافذة الموافقة",no:"Åpne godkjenningsmodal igjen","pt-BR":"Reabrir modal de aprovação",th:"เปิดโมดอลอนุมัติอีกครั้ง",tr:"Onay modalını yeniden aç",uk:"Знову відкрити вікно схвалення"},"ui.approval.bell.orphan":{zh:"服务端仍有待处理审批",en:"Server has pending approvals","zh-TW":"伺服器仍有待處理審批",ko:"서버에 대기 중인 승인이 있습니다",ja:"サーバーに保留中の承認があります",de:"Server hat ausstehende Genehmigungen",es:"El servidor tiene aprobaciones pendientes",fr:"Le serveur a des approbations en attente",it:"Il server ha approvazioni in sospeso",da:"Serveren har afventende godkendelser",pl:"Serwer ma oczekujące akceptacje",ru:"На сервере есть ожидающие одобрения",ar:"يوجد طلبات موافقة معلقة على الخادم",no:"Serveren har ventende godkjenninger","pt-BR":"O servidor tem aprovações pendentes",th:"เซิร์ฟเวอร์มีการอนุมัติที่รอดำเนินการ",tr:"Sunucuda bekleyen onaylar var",uk:"На сервері є очікуючі схвалення"},"ui.approval.modal.jumpToSession":{zh:"→ 前往 {project}",en:"→ Go to {project}","zh-TW":"→ 前往 {project}",ko:"→ {project}로 이동",ja:"→ {project} へ",de:"→ Zu {project}",es:"→ Ir a {project}",fr:"→ Aller à {project}",it:"→ Vai a {project}",da:"→ Gå til {project}",pl:"→ Idź do {project}",ru:"→ Перейти к {project}",ar:"→ انتقل إلى {project}",no:"→ Gå til {project}","pt-BR":"→ Ir para {project}",th:"→ ไปที่ {project}",tr:"→ {project}'a git",uk:"→ Перейти до {project}"},"ui.approval.settings.modalEnabled":{zh:"弹出全局审批 Modal",en:"Pop-up modal for approvals","zh-TW":"彈出全域審批 Modal",ko:"승인 전역 모달 표시",ja:"承認のグローバルモーダルを表示",de:"Globales Modal für Genehmigungen",es:"Modal global para aprobaciones",fr:"Modal global pour les approbations",it:"Modal globale per approvazioni",da:"Global modal til godkendelser",pl:"Globalny modal dla akceptacji",ru:"Глобальное модальное для одобрения",ar:"نافذة عالمية للموافقات",no:"Global modal for godkjenninger","pt-BR":"Modal global para aprovações",th:"Modal ทั่วโลกสำหรับการอนุมัติ",tr:"Onaylar için global modal",uk:"Глобальне модальне для схвалень"},"ui.approval.settings.modalEnabled.help":{zh:"开启后,权限/计划/提问等审批以居中的全局弹窗提示;关闭则只在对话流中内联显示,不弹窗。",en:"When on, permission/plan/question approvals appear as a centered global pop-up; when off, they show inline in the conversation without a pop-up.","zh-TW":"開啟後,權限/計劃/提問等審批以居中的全域彈窗提示;關閉則只在對話流中內聯顯示,不彈窗。",ko:"켜면 권한/계획/질문 승인이 화면 중앙의 전역 팝업으로 표시됩니다. 끄면 팝업 없이 대화 안에 인라인으로 표시됩니다.",ja:"オンにすると、権限/計画/質問などの承認が中央のグローバルポップアップで表示されます。オフの場合はポップアップせず会話内にインライン表示されます。",de:"Wenn aktiviert, erscheinen Berechtigungs-/Plan-/Fragegenehmigungen als zentriertes globales Pop-up; wenn deaktiviert, werden sie ohne Pop-up inline im Gespräch angezeigt.",es:"Cuando está activado, las aprobaciones de permiso/plan/pregunta aparecen como una ventana emergente global centrada; cuando está desactivado, se muestran en línea en la conversación sin ventana emergente.",fr:"Si activé, les approbations de permission/plan/question apparaissent dans une fenêtre globale centrée ; si désactivé, elles s'affichent en ligne dans la conversation sans fenêtre.",it:"Se attivo, le approvazioni di permesso/piano/domanda appaiono come popup globale centrato; se disattivo, vengono mostrate inline nella conversazione senza popup.",da:"Når aktiveret, vises tilladelses-/plan-/spørgsmålsgodkendelser som et centreret globalt pop-up; når deaktiveret, vises de inline i samtalen uden pop-up.",pl:"Po włączeniu zatwierdzenia uprawnień/planu/pytań pojawiają się jako wyśrodkowane globalne okno; po wyłączeniu są pokazywane w rozmowie bez okna.",ru:"Когда включено, одобрения прав/плана/вопросов появляются как центрированное глобальное всплывающее окно; когда выключено, отображаются внутри беседы без всплывающего окна.",ar:"عند التفعيل، تظهر موافقات الأذونات/الخطط/الأسئلة كنافذة منبثقة عالمية في المنتصف؛ عند الإيقاف تظهر ضمن المحادثة دون نافذة منبثقة.",no:"Når på, vises tillatelses-/plan-/spørsmålsgodkjenninger som et sentrert globalt popup; når av, vises de inline i samtalen uten popup.","pt-BR":"Quando ligado, as aprovações de permissão/plano/pergunta aparecem como um pop-up global centralizado; quando desligado, aparecem na conversa sem pop-up.",th:"เมื่อเปิด การอนุมัติสิทธิ์/แผน/คำถามจะแสดงเป็นป๊อปอัปกลางจอ เมื่อปิดจะแสดงแบบอินไลน์ในบทสนทนาโดยไม่มีป๊อปอัป",tr:"Açıkken izin/plan/soru onayları ortalanmış global açılır pencere olarak görünür; kapalıyken açılır pencere olmadan konuşma içinde gösterilir.",uk:"Коли увімкнено, схвалення дозволів/планів/запитань з'являються як центроване глобальне спливне вікно; коли вимкнено — показуються в розмові без спливного вікна."},"ui.approval.settings.planAutoApprove":{zh:"Plan 自动审批",en:"Plan auto-approve","zh-TW":"Plan 自動審批",ko:"Plan 자동 승인",ja:"Plan 自動承認",de:"Plan automatisch genehmigen",es:"Aprobación automática de plan",fr:"Approbation auto du plan",it:"Approvazione automatica del piano",da:"Auto-godkend plan",pl:"Auto-akceptacja planu",ru:"Авто-одобрение плана",ar:"موافقة تلقائية على الخطة",no:"Auto-godkjenn plan","pt-BR":"Aprovação automática do plano",th:"อนุมัติแผนอัตโนมัติ",tr:"Planı otomatik onayla",uk:"Авто-схвалення плану"},"ui.approval.settings.planAutoApproveHelp":{zh:"开启后,CLI 模式下 Agent 提交的计划会在数秒倒计时后自动批准并继续执行;倒计时期间可点击「取消」转为手动审批。仅作用于 CLI(PTY) 模式。",en:"When on, plans submitted by the agent in CLI mode are auto-approved after a few-second countdown and execution continues; click Cancel during the countdown to switch back to manual. CLI (PTY) mode only.","zh-TW":"開啟後,CLI 模式下 Agent 提交的計劃會在數秒倒計時後自動批准並繼續執行;倒計時期間可點擊「取消」轉為手動審批。僅作用於 CLI(PTY) 模式。",ko:"켜면 CLI 모드에서 에이전트가 제출한 계획이 몇 초 카운트다운 후 자동 승인되어 실행이 계속됩니다. 카운트다운 중 취소를 누르면 수동으로 전환됩니다. CLI(PTY) 모드 전용.",ja:"オンにすると、CLI モードでエージェントが提出した計画は数秒のカウントダウン後に自動承認され実行が続行されます。カウントダウン中に「キャンセル」を押すと手動に切り替わります。CLI(PTY) モードのみ。",de:"Wenn aktiviert, werden im CLI-Modus vom Agenten eingereichte Pläne nach einem kurzen Countdown automatisch genehmigt und die Ausführung fortgesetzt; während des Countdowns auf Abbrechen klicken, um zur manuellen Genehmigung zu wechseln. Nur CLI (PTY)-Modus.",es:"Cuando está activado, los planes enviados por el agente en modo CLI se aprueban automáticamente tras una breve cuenta atrás y la ejecución continúa; pulsa Cancelar durante la cuenta atrás para volver al modo manual. Solo modo CLI (PTY).",fr:"Si activé, les plans soumis par l'agent en mode CLI sont approuvés automatiquement après un court compte à rebours et l'exécution se poursuit ; cliquez sur Annuler pendant le compte à rebours pour repasser en manuel. Mode CLI (PTY) uniquement.",it:"Se attivo, i piani inviati dall'agente in modalità CLI vengono approvati automaticamente dopo un breve conto alla rovescia e l'esecuzione continua; clicca Annulla durante il conto alla rovescia per tornare al manuale. Solo modalità CLI (PTY).",da:"Når aktiveret, godkendes planer indsendt af agenten i CLI-tilstand automatisk efter en kort nedtælling, og udførelsen fortsætter; klik Annuller under nedtællingen for at skifte til manuel. Kun CLI (PTY)-tilstand.",pl:"Po włączeniu plany przesłane przez agenta w trybie CLI są automatycznie akceptowane po krótkim odliczaniu i wykonanie jest kontynuowane; kliknij Anuluj podczas odliczania, aby wrócić do trybu ręcznego. Tylko tryb CLI (PTY).",ru:"Когда включено, планы, отправленные агентом в режиме CLI, автоматически одобряются после короткого обратного отсчёта, и выполнение продолжается; нажмите «Отмена» во время отсчёта, чтобы вернуться к ручному режиму. Только режим CLI (PTY).",ar:"عند التفعيل، تتم الموافقة تلقائيًا على الخطط المقدَّمة من الوكيل في وضع CLI بعد عدّ تنازلي قصير ويستمر التنفيذ؛ اضغط إلغاء أثناء العدّ التنازلي للعودة إلى الوضع اليدوي. وضع CLI (PTY) فقط.",no:"Når på, blir planer sendt av agenten i CLI-modus automatisk godkjent etter en kort nedtelling og kjøringen fortsetter; klikk Avbryt under nedtellingen for å bytte til manuell. Kun CLI (PTY)-modus.","pt-BR":"Quando ligado, os planos enviados pelo agente no modo CLI são aprovados automaticamente após uma breve contagem regressiva e a execução continua; clique em Cancelar durante a contagem para voltar ao manual. Apenas modo CLI (PTY).",th:"เมื่อเปิด แผนที่เอเจนต์ส่งในโหมด CLI จะถูกอนุมัติอัตโนมัติหลังนับถอยหลังไม่กี่วินาทีแล้วทำงานต่อ คลิกยกเลิกระหว่างนับถอยหลังเพื่อกลับเป็นแบบแมนนวล เฉพาะโหมด CLI (PTY)",tr:"Açıkken, CLI modunda ajanın gönderdiği planlar kısa bir geri sayımdan sonra otomatik onaylanır ve yürütme devam eder; geri sayım sırasında İptal'e tıklayarak manuele geçebilirsiniz. Yalnızca CLI (PTY) modu.",uk:"Коли увімкнено, плани, надіслані агентом у режимі CLI, автоматично схвалюються після короткого зворотного відліку, і виконання триває; натисніть «Скасувати» під час відліку, щоб повернутися до ручного режиму. Лише режим CLI (PTY)."},"ui.planAutoApprove.countdown":{zh:"{count}s 后自动批准",en:"Auto-approving in {count}s","zh-TW":"{count}s 後自動批准",ko:"{count}초 후 자동 승인",ja:"{count}秒後に自動承認",de:"Auto-Genehmigung in {count}s",es:"Aprobación automática en {count}s",fr:"Approbation auto dans {count}s",it:"Approvazione automatica tra {count}s",da:"Auto-godkender om {count}s",pl:"Auto-akceptacja za {count}s",ru:"Авто-одобрение через {count}с",ar:"موافقة تلقائية خلال {count}ث",no:"Auto-godkjenner om {count}s","pt-BR":"Aprovação automática em {count}s",th:"อนุมัติอัตโนมัติใน {count} วินาที",tr:"{count}sn sonra otomatik onay",uk:"Авто-схвалення через {count}с"},"ui.planAutoApprove.cancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.approval.settings.soundEnabled":{zh:"审批提示音",en:"Sound on approval","zh-TW":"審批提示音",ko:"승인 효과음",ja:"承認時のサウンド",de:"Ton bei Genehmigung",es:"Sonido al aprobar",fr:"Son lors d'approbation",it:"Suono all'approvazione",da:"Lyd ved godkendelse",pl:"Dźwięk akceptacji",ru:"Звук одобрения",ar:"صوت عند الموافقة",no:"Lyd ved godkjenning","pt-BR":"Som de aprovação",th:"เสียงเตือนอนุมัติ",tr:"Onay sesi",uk:"Звук схвалення"},"ui.approval.settings.soundEnabled.help":{zh:"开启后,出现审批/提问/回合结束等事件时播放提示音(音色与音量在下方设置);关闭则静音。",en:"When on, plays a sound on approval/question/turn-end events (set voice and volume below); when off, stays silent.","zh-TW":"開啟後,出現審批/提問/回合結束等事件時播放提示音(音色與音量在下方設定);關閉則靜音。",ko:"켜면 승인/질문/턴 종료 등의 이벤트에서 알림음을 재생합니다(아래에서 음색과 볼륨 설정). 끄면 무음입니다.",ja:"オンにすると、承認/質問/ターン終了などのイベント時に通知音を再生します(音色と音量は下で設定)。オフの場合は無音です。",de:"Wenn aktiviert, wird bei Genehmigungs-/Frage-/Rundenende-Ereignissen ein Ton abgespielt (Stimme und Lautstärke unten einstellen); wenn deaktiviert, bleibt es stumm.",es:"Cuando está activado, reproduce un sonido en eventos de aprobación/pregunta/fin de turno (ajusta voz y volumen abajo); cuando está desactivado, permanece en silencio.",fr:"Si activé, joue un son lors des événements d'approbation/question/fin de tour (réglez voix et volume ci-dessous) ; si désactivé, reste silencieux.",it:"Se attivo, riproduce un suono per eventi di approvazione/domanda/fine turno (imposta voce e volume sotto); se disattivo, resta silenzioso.",da:"Når aktiveret, afspilles en lyd ved godkendelses-/spørgsmåls-/turslutning-hændelser (indstil stemme og lydstyrke nedenfor); når deaktiveret, forbliver det lydløst.",pl:"Po włączeniu odtwarza dźwięk przy zdarzeniach zatwierdzenia/pytania/końca tury (ustaw głos i głośność poniżej); po wyłączeniu pozostaje wyciszone.",ru:"Когда включено, воспроизводит звук при событиях одобрения/вопроса/конца хода (голос и громкость — ниже); когда выключено, звук отключён.",ar:"عند التفعيل، يشغّل صوتًا عند أحداث الموافقة/السؤال/نهاية الدور (اضبط الصوت ومستواه أدناه)؛ عند الإيقاف يبقى صامتًا.",no:"Når på, spilles en lyd ved godkjennings-/spørsmåls-/turslutt-hendelser (still inn stemme og volum nedenfor); når av, forblir det stille.","pt-BR":"Quando ligado, toca um som em eventos de aprovação/pergunta/fim de turno (defina voz e volume abaixo); quando desligado, fica em silêncio.",th:"เมื่อเปิด จะเล่นเสียงเตือนเมื่อมีเหตุการณ์อนุมัติ/คำถาม/จบรอบ (ตั้งเสียงและระดับเสียงด้านล่าง) เมื่อปิดจะเงียบ",tr:"Açıkken onay/soru/tur sonu olaylarında ses çalar (sesi ve ses düzeyini aşağıdan ayarlayın); kapalıyken sessiz kalır.",uk:"Коли увімкнено, відтворює звук під час подій схвалення/запитання/завершення ходу (голос і гучність — нижче); коли вимкнено, без звуку."},"ui.approval.settings.notifyOnlyWhenHidden":{zh:"仅窗口失焦时通知",en:"Notify only when hidden","zh-TW":"僅視窗失焦時通知",ko:"창이 숨겨졌을 때만 알림",ja:"非表示時のみ通知",de:"Nur bei verstecktem Fenster benachrichtigen",es:"Notificar solo si oculto",fr:"Notifier seulement si masqué",it:"Notifica solo se nascosto",da:"Underret kun ved skjult",pl:"Powiadamiaj tylko gdy ukryte",ru:"Уведомлять только когда скрыто",ar:"إشعار فقط عند الإخفاء",no:"Varsle kun ved skjult","pt-BR":"Notificar apenas se oculto",th:"แจ้งเตือนเฉพาะตอนซ่อน",tr:"Yalnızca gizliyken bildir",uk:"Сповіщати лише коли приховано"},"ui.voicePack.title":{zh:"语音包",en:"Voice pack","zh-TW":"語音包",ko:"음성 팩",ja:"ボイスパック",de:"Sprachpaket",es:"Paquete de voz",fr:"Pack vocal",it:"Pacchetto vocale",da:"Stemmepakke",pl:"Pakiet głosowy",ru:"Голосовой пакет",ar:"حزمة صوتية",no:"Stemmepakke","pt-BR":"Pacote de voz",th:"ชุดเสียง",tr:"Ses paketi",uk:"Голосовий пакет"},"ui.voicePack.volume":{zh:"音量",en:"Volume","zh-TW":"音量",ko:"볼륨",ja:"音量",de:"Lautstärke",es:"Volumen",fr:"Volume",it:"Volume",da:"Lydstyrke",pl:"Głośność",ru:"Громкость",ar:"مستوى الصوت",no:"Lydstyrke","pt-BR":"Volume",th:"ระดับเสียง",tr:"Ses seviyesi",uk:"Гучність"},"ui.voicePack.event.planApproval":{zh:"Plan 审批",en:"Plan approval","zh-TW":"Plan 審批",ko:"플랜 승인",ja:"プラン承認",de:"Plan-Genehmigung",es:"Aprobación del plan",fr:"Approbation du plan",it:"Approvazione del piano",da:"Plangodkendelse",pl:"Zatwierdzenie planu",ru:"Утверждение плана",ar:"موافقة الخطة",no:"Plangodkjenning","pt-BR":"Aprovação do plano",th:"อนุมัติแผน",tr:"Plan onayı",uk:"Затвердження плану"},"ui.voicePack.event.askQuestion":{zh:"用户提问",en:"Ask user question","zh-TW":"使用者提問",ko:"사용자 질문",ja:"ユーザーへの質問",de:"Benutzer fragen",es:"Preguntar al usuario",fr:"Question utilisateur",it:"Domanda all'utente",da:"Spørg bruger",pl:"Pytanie do użytkownika",ru:"Вопрос пользователю",ar:"سؤال المستخدم",no:"Spør bruker","pt-BR":"Pergunta ao usuário",th:"ถามผู้ใช้",tr:"Kullanıcıya sor",uk:"Запит до користувача"},"ui.voicePack.event.turnEnd":{zh:"回合结束 / 任务完成",en:"Turn end / task done","zh-TW":"回合結束 / 任務完成",ko:"턴 종료 / 작업 완료",ja:"ターン終了 / タスク完了",de:"Antwort fertig",es:"Fin del turno",fr:"Fin du tour",it:"Fine turno",da:"Tur slut",pl:"Koniec tury",ru:"Конец хода",ar:"نهاية الدور",no:"Tur slutt","pt-BR":"Fim do turno",th:"จบเทิร์น",tr:"Tur sonu",uk:"Кінець ходу"},"ui.voicePack.binding.default":{zh:"默认 (内置)",en:"Default (built-in)","zh-TW":"預設 (內建)",ko:"기본 (내장)",ja:"デフォルト (内蔵)",de:"Standard (eingebaut)",es:"Predeterminado",fr:"Par défaut (intégré)",it:"Predefinito (incorporato)",da:"Standard (indbygget)",pl:"Domyślne (wbudowane)",ru:"По умолчанию",ar:"افتراضي (مدمج)",no:"Standard (innebygd)","pt-BR":"Padrão (embutido)",th:"ค่าเริ่มต้น (ในตัว)",tr:"Varsayılan (yerleşik)",uk:"За замовчуванням"},"ui.projectAlias.tooltip":{zh:"设置项目别名",en:"Set project alias","zh-TW":"設定專案別名",ko:"프로젝트 별칭 설정",ja:"プロジェクト別名を設定",de:"Projekt-Alias festlegen",es:"Establecer alias del proyecto",fr:"Définir l'alias du projet",it:"Imposta alias progetto",da:"Angiv projektalias",pl:"Ustaw alias projektu",ru:"Задать псевдоним проекта",ar:"تعيين اسم مستعار للمشروع",no:"Sett prosjektalias","pt-BR":"Definir apelido do projeto",th:"ตั้งชื่อเล่นโปรเจกต์",tr:"Proje takma adı belirle",uk:"Задати псевдонім проєкту"},"ui.projectAlias.modalTitle":{zh:"项目别名",en:"Project alias","zh-TW":"專案別名",ko:"프로젝트 별칭",ja:"プロジェクト別名",de:"Projekt-Alias",es:"Alias del proyecto",fr:"Alias du projet",it:"Alias del progetto",da:"Projektalias",pl:"Alias projektu",ru:"Псевдоним проекта",ar:"اسم مستعار للمشروع",no:"Prosjektalias","pt-BR":"Apelido do projeto",th:"ชื่อเล่นโปรเจกต์",tr:"Proje takma adı",uk:"Псевдонім проєкту"},"ui.projectAlias.projectLabel":{zh:"项目",en:"Project","zh-TW":"專案",ko:"프로젝트",ja:"プロジェクト",de:"Projekt",es:"Proyecto",fr:"Projet",it:"Progetto",da:"Projekt",pl:"Projekt",ru:"Проект",ar:"المشروع",no:"Prosjekt","pt-BR":"Projeto",th:"โปรเจกต์",tr:"Proje",uk:"Проєкт"},"ui.projectAlias.placeholder":{zh:"比如:三农优化(留空清除)",en:"e.g. work-prod (empty to clear)","zh-TW":"例如:三農優化(留空清除)",ko:"예: work-prod (비우면 삭제)",ja:"例: work-prod(空欄でクリア)",de:"z. B. work-prod (leer = entfernen)",es:"p. ej. work-prod (vacío para limpiar)",fr:"ex. work-prod (vide = effacer)",it:"es. work-prod (vuoto = cancella)",da:"f.eks. work-prod (tom = ryd)",pl:"np. work-prod (pusty = wyczyść)",ru:"напр. work-prod (пусто = удалить)",ar:"مثلاً work-prod (فارغ للمسح)",no:"f.eks. work-prod (tom = fjern)","pt-BR":"ex. work-prod (vazio = limpar)",th:"เช่น work-prod (เว้นว่าง = ล้าง)",tr:"ör. work-prod (boş = temizle)",uk:"напр. work-prod (порожнє = очистити)"},"ui.projectAlias.save":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.projectAlias.cancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.projectAlias.clear":{zh:"清除别名",en:"Clear alias","zh-TW":"清除別名",ko:"별칭 삭제",ja:"別名を削除",de:"Alias entfernen",es:"Borrar alias",fr:"Effacer l'alias",it:"Cancella alias",da:"Ryd alias",pl:"Usuń alias",ru:"Удалить псевдоним",ar:"مسح الاسم المستعار",no:"Fjern alias","pt-BR":"Limpar apelido",th:"ล้างชื่อเล่น",tr:"Takma adı temizle",uk:"Очистити псевдонім"},"ui.projectAlias.saveFailed":{zh:"保存失败,可能是浏览器隐身模式或存储已满",en:"Save failed — private mode or storage full?","zh-TW":"儲存失敗,可能是瀏覽器隱身模式或儲存空間已滿",ko:"저장 실패 — 비공개 모드이거나 저장 공간 부족",ja:"保存に失敗しました(プライベートモード/容量不足?)",de:"Speichern fehlgeschlagen — Inkognito-Modus oder voller Speicher?",es:"Fallo al guardar — ¿modo privado o almacenamiento lleno?",fr:"Échec — mode privé ou stockage plein ?",it:"Salvataggio fallito — modalità privata o spazio esaurito?",da:"Lagring mislykkedes — privat tilstand eller fuld?",pl:"Zapis nieudany — tryb prywatny lub brak miejsca",ru:"Не удалось сохранить — приватный режим или нет места",ar:"فشل الحفظ — وضع خاص أو ذاكرة ممتلئة؟",no:"Lagring mislyktes — privat modus eller fullt?","pt-BR":"Falha ao salvar — modo privado ou armazenamento cheio?",th:"บันทึกไม่สำเร็จ — โหมดส่วนตัวหรือพื้นที่เต็ม?",tr:"Kaydetme başarısız — gizli mod veya depolama dolu?",uk:"Не вдалося зберегти — приватний режим або немає місця"},"ui.voicePack.binding.placeholder":{zh:"占位音",en:"placeholder","zh-TW":"佔位音",ko:"임시 음원",ja:"プレースホルダー",de:"Platzhalter",es:"marcador",fr:"espace réservé",it:"segnaposto",da:"pladsholder",pl:"zastępczy",ru:"заглушка",ar:"عنصر نائب",no:"plassholder","pt-BR":"espaço reservado",th:"ตัวอย่าง",tr:"yer tutucu",uk:"заповнювач"},"ui.voicePack.pack.default":{zh:"管家 (内置)",en:"Butler (built-in)","zh-TW":"管家 (內建)",ko:"집사 (내장)",ja:"執事 (内蔵)",de:"Butler (eingebaut)",es:"Mayordomo (integrado)",fr:"Majordome (intégré)",it:"Maggiordomo (integrato)",da:"Butler (indbygget)",pl:"Lokaj (wbudowany)",ru:"Дворецкий (встроен)",ar:"خادم (مدمج)",no:"Butler (innebygd)","pt-BR":"Mordomo (embutido)",th:"บัตเลอร์ (ในตัว)",tr:"Uşak (yerleşik)",uk:"Дворецький (вбудовано)"},"ui.voicePack.pack.sanguo":{zh:"三国 (内置)",en:"Three Kingdoms (built-in)","zh-TW":"三國 (內建)",ko:"삼국지 (내장)",ja:"三国志 (内蔵)",de:"Drei Reiche (eingebaut)",es:"Tres Reinos (integrado)",fr:"Trois Royaumes (intégré)",it:"Tre Regni (integrato)",da:"Tre Kongeriger (indbygget)",pl:"Trzy Królestwa (wbudowane)",ru:"Троецарствие (встроен)",ar:"الممالك الثلاث (مدمج)",no:"Tre Kongeriker (innebygd)","pt-BR":"Três Reinos (embutido)",th:"สามก๊ก (ในตัว)",tr:"Üç Krallık (yerleşik)",uk:"Три царства (вбудовано)"},"ui.voicePack.group.bundled":{zh:"内置",en:"Bundled","zh-TW":"內建",ko:"내장",ja:"内蔵",de:"Eingebaut",es:"Integrado",fr:"Intégré",it:"Integrato",da:"Indbygget",pl:"Wbudowane",ru:"Встроенные",ar:"مدمج",no:"Innebygd","pt-BR":"Embutido",th:"ในตัว",tr:"Yerleşik",uk:"Вбудовані"},"ui.voicePack.group.uploaded":{zh:"已上传",en:"Uploaded","zh-TW":"已上傳",ko:"업로드됨",ja:"アップロード済み",de:"Hochgeladen",es:"Subido",fr:"Téléversé",it:"Caricato",da:"Uploadet",pl:"Przesłane",ru:"Загруженные",ar:"تم الرفع",no:"Opplastet","pt-BR":"Enviado",th:"อัปโหลดแล้ว",tr:"Yüklendi",uk:"Завантажені"},"ui.voicePack.group.other":{zh:"其它",en:"Other","zh-TW":"其他",ko:"기타",ja:"その他",de:"Sonstiges",es:"Otro",fr:"Autre",it:"Altro",da:"Andet",pl:"Inne",ru:"Другое",ar:"أخرى",no:"Annet","pt-BR":"Outro",th:"อื่น ๆ",tr:"Diğer",uk:"Інше"},"ui.voicePack.eventHint.turnEnd":{zh:"10 秒内最多一次",en:"At most once per 10s","zh-TW":"10 秒內最多一次",ko:"10초당 최대 1회",ja:"10秒ごとに最大1回",de:"Max. 1×/10s",es:"Máx 1 cada 10 s",fr:"Max 1 toutes les 10 s",it:"Max 1 ogni 10s",da:"Maks. 1 pr. 10s",pl:"Maks 1 / 10 s",ru:"≤1 раз/10с",ar:"مرة واحدة كل 10 ثوانٍ كحد أقصى",no:"Maks 1 per 10s","pt-BR":"Máx 1 a cada 10s",th:"สูงสุด 1 ครั้งต่อ 10 วินาที",tr:"10s'de en fazla 1",uk:"≤1 раз/10с"},"ui.voicePack.binding.disabled":{zh:"禁用",en:"Disabled","zh-TW":"停用",ko:"비활성화",ja:"無効",de:"Deaktiviert",es:"Desactivado",fr:"Désactivé",it:"Disabilitato",da:"Deaktiveret",pl:"Wyłączone",ru:"Отключено",ar:"معطل",no:"Deaktivert","pt-BR":"Desativado",th:"ปิดใช้งาน",tr:"Devre dışı",uk:"Вимкнено"},"ui.voicePack.preview":{zh:"试听",en:"Preview","zh-TW":"試聽",ko:"미리 듣기",ja:"試聴",de:"Vorschau",es:"Vista previa",fr:"Aperçu",it:"Anteprima",da:"Forhåndsvisning",pl:"Podgląd",ru:"Прослушать",ar:"معاينة",no:"Forhåndsvisning","pt-BR":"Pré-escutar",th:"ฟังตัวอย่าง",tr:"Önizleme",uk:"Прослухати"},"ui.voicePack.upload":{zh:"上传音频",en:"Upload audio","zh-TW":"上傳音訊",ko:"오디오 업로드",ja:"音声をアップロード",de:"Audio hochladen",es:"Subir audio",fr:"Téléverser un audio",it:"Carica audio",da:"Upload lyd",pl:"Prześlij audio",ru:"Загрузить аудио",ar:"رفع صوت",no:"Last opp lyd","pt-BR":"Enviar áudio",th:"อัปโหลดเสียง",tr:"Ses yükle",uk:"Завантажити аудіо"},"ui.voicePack.uploadHint":{zh:"mp3 / wav / ogg / m4a · 最大 2MB",en:"mp3 / wav / ogg / m4a · max 2MB","zh-TW":"mp3 / wav / ogg / m4a · 最大 2MB",ko:"mp3 / wav / ogg / m4a · 최대 2MB",ja:"mp3 / wav / ogg / m4a · 最大 2MB",de:"mp3 / wav / ogg / m4a · max 2 MB",es:"mp3 / wav / ogg / m4a · máx 2 MB",fr:"mp3 / wav / ogg / m4a · max 2 Mo",it:"mp3 / wav / ogg / m4a · max 2 MB",da:"mp3 / wav / ogg / m4a · maks 2 MB",pl:"mp3 / wav / ogg / m4a · maks 2 MB",ru:"mp3 / wav / ogg / m4a · макс 2 МБ",ar:"mp3 / wav / ogg / m4a · بحد أقصى 2MB",no:"mp3 / wav / ogg / m4a · maks 2 MB","pt-BR":"mp3 / wav / ogg / m4a · máx 2 MB",th:"mp3 / wav / ogg / m4a · ไม่เกิน 2MB",tr:"mp3 / wav / ogg / m4a · maks 2 MB",uk:"mp3 / wav / ogg / m4a · макс 2 МБ"},"ui.voicePack.uploadSuccess":{zh:"上传成功",en:"Uploaded","zh-TW":"上傳成功",ko:"업로드 완료",ja:"アップロード完了",de:"Hochgeladen",es:"Subido",fr:"Téléversé",it:"Caricato",da:"Uploadet",pl:"Przesłano",ru:"Загружено",ar:"تم الرفع",no:"Lastet opp","pt-BR":"Enviado",th:"อัปโหลดสำเร็จ",tr:"Yüklendi",uk:"Завантажено"},"ui.voicePack.uploadFailed":{zh:"上传失败",en:"Upload failed","zh-TW":"上傳失敗",ko:"업로드 실패",ja:"アップロード失敗",de:"Hochladen fehlgeschlagen",es:"Error al subir",fr:"Échec de l'envoi",it:"Caricamento fallito",da:"Upload mislykkedes",pl:"Przesyłanie nieudane",ru:"Не удалось загрузить",ar:"فشل الرفع",no:"Opplasting mislyktes","pt-BR":"Falha ao enviar",th:"อัปโหลดล้มเหลว",tr:"Yükleme başarısız",uk:"Не вдалось завантажити"},"ui.voicePack.uploadTooLarge":{zh:"文件过大 (最大 2MB)",en:"File too large (max 2MB)","zh-TW":"檔案過大 (最大 2MB)",ko:"파일이 너무 큽니다 (최대 2MB)",ja:"ファイルが大きすぎます (最大 2MB)",de:"Datei zu groß (max 2 MB)",es:"Archivo demasiado grande (máx 2 MB)",fr:"Fichier trop volumineux (max 2 Mo)",it:"File troppo grande (max 2 MB)",da:"Filen er for stor (maks 2 MB)",pl:"Plik za duży (maks 2 MB)",ru:"Файл слишком велик (макс 2 МБ)",ar:"الملف كبير جداً (الحد ٢ ميجابايت)",no:"Filen er for stor (maks 2 MB)","pt-BR":"Arquivo muito grande (máx 2 MB)",th:"ไฟล์ใหญ่เกินไป (สูงสุด 2MB)",tr:"Dosya çok büyük (maks 2 MB)",uk:"Файл завеликий (макс 2 МБ)"},"ui.voicePack.uploadBadFormat":{zh:"不支持的格式 (仅 mp3/wav/ogg/m4a)",en:"Unsupported format (mp3/wav/ogg/m4a only)","zh-TW":"不支援的格式",ko:"지원하지 않는 형식",ja:"サポートされていない形式",de:"Format nicht unterstützt",es:"Formato no compatible",fr:"Format non pris en charge",it:"Formato non supportato",da:"Formatet understøttes ikke",pl:"Nieobsługiwany format",ru:"Формат не поддерживается",ar:"صيغة غير مدعومة",no:"Formatet støttes ikke","pt-BR":"Formato não suportado",th:"รูปแบบไม่รองรับ",tr:"Desteklenmeyen biçim",uk:"Формат не підтримується"},"ui.voicePack.uploadedTitle":{zh:"已上传音频",en:"Uploaded audio","zh-TW":"已上傳音訊",ko:"업로드된 오디오",ja:"アップロード済み音声",de:"Hochgeladene Audios",es:"Audio subido",fr:"Audios téléversés",it:"Audio caricati",da:"Uploadet lyd",pl:"Przesłane pliki audio",ru:"Загруженные аудио",ar:"الصوت المرفوع",no:"Opplastet lyd","pt-BR":"Áudios enviados",th:"เสียงที่อัปโหลด",tr:"Yüklenen sesler",uk:"Завантажені аудіо"},"ui.voicePack.deleteFailed":{zh:"删除失败",en:"Delete failed","zh-TW":"刪除失敗",ko:"삭제 실패",ja:"削除失敗",de:"Löschen fehlgeschlagen",es:"Error al eliminar",fr:"Échec de la suppression",it:"Eliminazione fallita",da:"Sletning mislykkedes",pl:"Usuwanie nieudane",ru:"Не удалось удалить",ar:"فشل الحذف",no:"Sletting mislyktes","pt-BR":"Falha ao excluir",th:"ลบไม่สำเร็จ",tr:"Silme başarısız",uk:"Не вдалось видалити"},"ui.dangerApproval":{zh:"操作待审批",en:"Approval Required","zh-TW":"操作待審批",ko:"승인 필요",ja:"承認が必要",de:"Genehmigung erforderlich",es:"Aprobación requerida",fr:"Approbation requise",it:"Approvazione richiesta",da:"Godkendelse påkrævet",pl:"Wymagana akceptacja",ru:"Требуется одобрение",ar:"موافقة مطلوبة",no:"Godkjenning påkrevd","pt-BR":"Aprovação necessária",th:"ต้องการการอนุมัติ",tr:"Onay gerekli",uk:"Потрібне схвалення"},"ui.dangerDenied":{zh:"已拒绝",en:"Denied","zh-TW":"已拒絕",ko:"거부됨",ja:"拒否",de:"Verweigert",es:"Denegado",fr:"Refusé",it:"Negato",da:"Afvist",pl:"Odmowa",ru:"Отказано",ar:"مرفوض",no:"Avslått","pt-BR":"Negado",th:"ถูกปฏิเสธ",tr:"Reddedildi",uk:"Відмовлено"},"ui.context.systemPrompt":{zh:"系统提示词",en:"System Prompt","zh-TW":"系統提示詞",ko:"시스템 프롬프트",ja:"システムプロンプト",de:"System-Prompt",es:"Prompt del sistema",fr:"Prompt système",it:"Prompt di sistema",da:"System-prompt",pl:"Prompt systemowy",ru:"Системный промпт",ar:"موجه النظام",no:"System-prompt","pt-BR":"Prompt do sistema",th:"System Prompt",tr:"Sistem Prompt'u",uk:"Системний промпт"},"ui.context.messages":{zh:"输入",en:"Input","zh-TW":"輸入",ko:"입력",ja:"入力",de:"Input",es:"Entrada",fr:"Entrée",it:"Input",da:"Input",pl:"Wejście",ru:"Ввод",ar:"الإدخال",no:"Inndata","pt-BR":"Entrada",th:"อินพุต",tr:"Girdi",uk:"Ввід"},"ui.context.tools":{zh:"工具",en:"Tools","zh-TW":"工具",ko:"도구",ja:"ツール",de:"Tools",es:"Herramientas",fr:"Outils",it:"Strumenti",da:"Værktøjer",pl:"Narzędzia",ru:"Инструменты",ar:"الأدوات",no:"Verktøy","pt-BR":"Ferramentas",th:"เครื่องมือ",tr:"Araçlar",uk:"Інструменти"},"ui.context.toolAdded":{zh:"新增",en:"Added","zh-TW":"新增",ko:"추가됨",ja:"追加",de:"Neu",es:"Añadido",fr:"Ajouté",it:"Aggiunto",da:"Tilføjet",pl:"Dodano",ru:"Добавлено",ar:"أُضيف",no:"Lagt til","pt-BR":"Adicionado",th:"เพิ่ม",tr:"Eklendi",uk:"Додано"},"ui.context.toolRemoved":{zh:"移除",en:"Removed","zh-TW":"移除",ko:"제거됨",ja:"削除",de:"Entfernt",es:"Eliminado",fr:"Supprimé",it:"Rimosso",da:"Fjernet",pl:"Usunięto",ru:"Удалено",ar:"أُزيل",no:"Fjernet","pt-BR":"Removido",th:"ลบแล้ว",tr:"Kaldırıldı",uk:"Видалено"},"ui.context.toolRemovedNote":{zh:"该工具在上一条请求中存在,本次请求已移除。",en:"This tool was present in the previous request and removed in this one.","zh-TW":"此工具在上一條請求中存在,本次請求已移除。",ko:"이 도구는 이전 요청에 있었으나 이번 요청에서 제거되었습니다.",ja:"このツールは前のリクエストには存在しましたが、今回のリクエストで削除されました。",de:"Dieses Tool war in der vorherigen Anfrage vorhanden und wurde in dieser entfernt.",es:"Esta herramienta estaba en la solicitud anterior y se eliminó en esta.",fr:"Cet outil était présent dans la requête précédente et a été supprimé ici.",it:"Questo strumento era presente nella richiesta precedente ed è stato rimosso in questa.",da:"Dette værktøj fandtes i den forrige anmodning og er fjernet i denne.",pl:"To narzędzie było obecne w poprzednim żądaniu i zostało usunięte w tym.",ru:"Этот инструмент присутствовал в предыдущем запросе и удалён в текущем.",ar:"كانت هذه الأداة موجودة في الطلب السابق وتمت إزالتها في هذا الطلب.",no:"Dette verktøyet fantes i forrige forespørsel og er fjernet i denne.","pt-BR":"Esta ferramenta estava na solicitação anterior e foi removida nesta.",th:"เครื่องมือนี้มีอยู่ในคำขอก่อนหน้า และถูกลบออกในคำขอนี้",tr:"Bu araç önceki istekte vardı ve bu istekte kaldırıldı.",uk:"Цей інструмент був у попередньому запиті та вилучений у цьому."},"ui.context.noData":{zh:"暂无 Context 数据",en:"No context data","zh-TW":"暫無 Context 資料",ko:"컨텍스트 데이터 없음",ja:"コンテキストデータなし",de:"Keine Kontextdaten",es:"Sin datos de contexto",fr:"Aucune donnée de contexte",it:"Nessun dato di contesto",da:"Ingen kontekstdata",pl:"Brak danych kontekstu",ru:"Нет данных контекста",ar:"لا توجد بيانات سياق",no:"Ingen kontekstdata","pt-BR":"Sem dados de contexto",th:"ไม่มีข้อมูล Context",tr:"Bağlam verisi yok",uk:"Немає даних контексту"},"ui.context.noFields":{zh:"Request body 中未找到 input / instructions / tools",en:"No input / instructions / tools found in request body","zh-TW":"Request body 中未找到 input / instructions / tools",ko:"요청 본문에서 input / instructions / tools를 찾을 수 없음",ja:"リクエストボディに input / instructions / tools が見つかりません",de:"Keine input / instructions / tools im Request-Body gefunden",es:"No se encontraron input / instructions / tools en el cuerpo de la solicitud",fr:"Aucun input / instructions / tools dans le corps de la requête",it:"Nessun input / instructions / tools trovato nel corpo della richiesta",da:"Ingen input / instructions / tools fundet i request body",pl:"Nie znaleziono input / instructions / tools w treści żądania",ru:"В теле запроса не найдено input / instructions / tools",ar:"لم يتم العثور على input / instructions / tools في جسم الطلب",no:"Ingen input / instructions / tools funnet i request body","pt-BR":"Nenhum input / instructions / tools encontrado no corpo da requisição",th:"ไม่พบ input / instructions / tools ใน request body",tr:"İstek gövdesinde input / instructions / tools bulunamadı",uk:"У тілі запиту не знайдено input / instructions / tools"},"ui.context.selectPrompt":{zh:"请在左侧选择一个要查看的内容",en:"Select an item on the left to view","zh-TW":"請在左側選擇一個要查看的內容",ko:"왼쪽에서 항목을 선택하세요",ja:"左側から項目を選択してください",de:"Wählen Sie links einen Eintrag aus",es:"Seleccione un elemento a la izquierda",fr:"Sélectionnez un élément à gauche",it:"Seleziona un elemento a sinistra",da:"Vælg et element til venstre",pl:"Wybierz element po lewej stronie",ru:"Выберите элемент слева",ar:"اختر عنصرًا على اليسار",no:"Velg et element til venstre","pt-BR":"Selecione um item à esquerda",th:"เลือกรายการทางซ้าย",tr:"Soldan bir öğe seçin",uk:"Виберіть елемент ліворуч"},"ui.context.history":{zh:"历史",en:"History","zh-TW":"歷史",ko:"기록",ja:"履歴",de:"Verlauf",es:"Historial",fr:"Historique",it:"Cronologia",da:"Historik",pl:"Historia",ru:"История",ar:"التاريخ",no:"Historikk","pt-BR":"Histórico",th:"ประวัติ",tr:"Geçmiş",uk:"Історія"},"ui.context.currentTurn":{zh:"当前输入",en:"Current Input","zh-TW":"當前輸入",ko:"현재 입력",ja:"現在の入力",de:"Aktueller Input",es:"Entrada actual",fr:"Entrée actuelle",it:"Input corrente",da:"Aktuelt input",pl:"Bieżące wejście",ru:"Текущий ввод",ar:"الإدخال الحالي",no:"Gjeldende inndata","pt-BR":"Entrada atual",th:"อินพุตปัจจุบัน",tr:"Mevcut girdi",uk:"Поточний ввід"},"ui.context.historyTurnNoTime":{zh:"历史输入 {n}",en:"Input {n}","zh-TW":"歷史輸入 {n}",ko:"입력 {n}",ja:"入力 {n}",de:"Input {n}",es:"Entrada {n}",fr:"Entrée {n}",it:"Input {n}",da:"Input {n}",pl:"Wejście {n}",ru:"Ввод {n}",ar:"الإدخال {n}",no:"Inndata {n}","pt-BR":"Entrada {n}",th:"อินพุต {n}",tr:"Girdi {n}",uk:"Ввід {n}"},"ui.context.viewRaw":{zh:"原文",en:"Raw","zh-TW":"原文",ko:"원문",ja:"原文",de:"Rohdaten",es:"Original",fr:"Brut",it:"Grezzo",da:"Rå",pl:"Surowy",ru:"Исходник",ar:"النص الأصلي",no:"Rå","pt-BR":"Bruto",th:"ต้นฉบับ",tr:"Ham",uk:"Вихідний"},"ui.workspaces.title":{zh:"工作区",en:"Workspaces","zh-TW":"工作區",ko:"워크스페이스",ja:"ワークスペース",de:"Arbeitsbereiche",es:"Espacios de trabajo",fr:"Espaces de travail",it:"Aree di lavoro",da:"Arbejdsområder",pl:"Obszary robocze",ru:"Рабочие пространства",ar:"مساحات العمل",no:"Arbeidsområder","pt-BR":"Áreas de trabalho",th:"เวิร์กสเปซ",tr:"Çalışma alanları",uk:"Робочі простори"},"ui.workspaces.closePopup":{zh:"关闭",en:"Close","zh-TW":"關閉",ko:"닫기",ja:"閉じる",de:"Schließen",es:"Cerrar",fr:"Fermer",it:"Chiudi",da:"Luk",pl:"Zamknij",ru:"Закрыть",ar:"إغلاق",no:"Lukk","pt-BR":"Fechar",th:"ปิด",tr:"Kapat",uk:"Закрити"},"ui.workspaces.subtitle":{zh:"选择一个项目目录启动 Codex 会话",en:"Select a project directory to start a Codex session","zh-TW":"選擇一個專案目錄啟動 Codex 會話",ko:"Codex 세션을 시작할 프로젝트 디렉토리를 선택하세요",ja:"Codex セッションを開始するプロジェクトディレクトリを選択",de:"Wählen Sie ein Projektverzeichnis, um eine Codex-Sitzung zu starten",es:"Seleccione un directorio de proyecto para iniciar una sesión de Codex",fr:"Sélectionnez un répertoire de projet pour démarrer une session Codex",it:"Seleziona una directory di progetto per avviare una sessione Codex",da:"Vælg en projektmappe for at starte en Codex-session",pl:"Wybierz katalog projektu, aby rozpocząć sesję Codex",ru:"Выберите каталог проекта для запуска сеанса Codex",ar:"اختر مجلد مشروع لبدء جلسة Codex",no:"Velg en prosjektmappe for å starte en Codex-økt","pt-BR":"Selecione um diretório de projeto para iniciar uma sessão do Codex",th:"เลือกไดเรกทอรีโปรเจกต์เพื่อเริ่มเซสชัน Codex",tr:"Codex oturumu başlatmak için bir proje dizini seçin",uk:"Виберіть каталог проєкту для запуску сеансу Codex"},"ui.workspaces.normalLaunch":{zh:"常规启动",en:"Launch","zh-TW":"常規啟動",ko:"일반 시작",ja:"通常起動",de:"Starten",es:"Iniciar",fr:"Lancer",it:"Avvia",da:"Start",pl:"Uruchom",ru:"Запуск",ar:"تشغيل",no:"Start","pt-BR":"Iniciar",th:"เริ่มต้น",tr:"Başlat",uk:"Запуск"},"ui.workspaces.launch":{zh:"启动",en:"Launch","zh-TW":"啟動",ko:"시작",ja:"起動",de:"Starten",es:"Iniciar",fr:"Lancer",it:"Avvia",da:"Start",pl:"Uruchom",ru:"Запуск",ar:"تشغيل",no:"Start","pt-BR":"Iniciar",th:"เริ่มต้น",tr:"Başlat",uk:"Запуск"},"ui.menu":{zh:"菜单",en:"Menu","zh-TW":"選單",ko:"메뉴",ja:"メニュー",de:"Menü",es:"Menú",fr:"Menu",it:"Menu",da:"Menu",pl:"Menu",ru:"Меню",ar:"القائمة",no:"Meny","pt-BR":"Menu",th:"เมนู",tr:"Menü",uk:"Меню"},"ui.deviceMode.toIpad":{zh:"切换到 iPad 模式",en:"Switch to iPad mode","zh-TW":"切換到 iPad 模式",ko:"iPad 모드로 전환",ja:"iPad モードに切り替え",de:"In iPad-Modus wechseln",es:"Cambiar a modo iPad",fr:"Passer en mode iPad",it:"Passa alla modalità iPad",da:"Skift til iPad-tilstand",pl:"Przełącz na tryb iPad",ru:"Переключить в режим iPad",ar:"التبديل إلى وضع iPad",no:"Bytt til iPad-modus","pt-BR":"Mudar para modo iPad",th:"สลับเป็นโหมด iPad",tr:"iPad moduna geç",uk:"Перейти в режим iPad"},"ui.deviceMode.toPc":{zh:"切换到 PC 模式",en:"Switch to PC mode","zh-TW":"切換到 PC 模式",ko:"PC 모드로 전환",ja:"PC モードに切り替え",de:"In PC-Modus wechseln",es:"Cambiar a modo PC",fr:"Passer en mode PC",it:"Passa alla modalità PC",da:"Skift til PC-tilstand",pl:"Przełącz na tryb PC",ru:"Переключить в режим ПК",ar:"التبديل إلى وضع الكمبيوتر",no:"Bytt til PC-modus","pt-BR":"Mudar para modo PC",th:"สลับเป็นโหมด PC",tr:"PC moduna geç",uk:"Перейти в режим ПК"},"ui.workspaces.skipPermLaunch":{zh:"免审启动",en:"Skip Approval","zh-TW":"免審啟動",ko:"승인 건너뛰기",ja:"承認スキップ",de:"Ohne Genehmigung",es:"Sin aprobación",fr:"Sans approbation",it:"Senza approvazione",da:"Spring godkendelse over",pl:"Pomiń zatwierdzenie",ru:"Без одобрения",ar:"تخطي الموافقة",no:"Hopp over godkjenning","pt-BR":"Sem aprovação",th:"ข้ามการอนุมัติ",tr:"Onay atla",uk:"Без схвалення"},"ui.workspaces.empty":{zh:"暂无工作区,添加一个项目目录开始使用",en:"No workspaces yet. Add a project directory to get started.","zh-TW":"暫無工作區,新增一個專案目錄開始使用",ko:"아직 워크스페이스가 없습니다. 프로젝트 디렉토리를 추가하세요.",ja:"ワークスペースはまだありません。プロジェクトディレクトリを追加してください。",de:"Noch keine Arbeitsbereiche. Fügen Sie ein Projektverzeichnis hinzu.",es:"Aún no hay espacios de trabajo. Añada un directorio de proyecto.",fr:"Aucun espace de travail. Ajoutez un répertoire de projet.",it:"Nessuna area di lavoro. Aggiungi una directory di progetto.",da:"Ingen arbejdsområder endnu. Tilføj en projektmappe.",pl:"Brak obszarów roboczych. Dodaj katalog projektu.",ru:"Пока нет рабочих пространств. Добавьте каталог проекта.",ar:"لا توجد مساحات عمل بعد. أضف مجلد مشروع للبدء.",no:"Ingen arbeidsområder ennå. Legg til en prosjektmappe.","pt-BR":"Nenhuma área de trabalho. Adicione um diretório de projeto.",th:"ยังไม่มีเวิร์กสเปซ เพิ่มไดเรกทอรีโปรเจกต์เพื่อเริ่มใช้งาน",tr:"Henüz çalışma alanı yok. Başlamak için bir proje dizini ekleyin.",uk:"Робочих просторів ще немає. Додайте каталог проєкту."},"ui.workspaces.pathPlaceholder":{zh:"输入项目目录路径",en:"Enter project directory path","zh-TW":"輸入專案目錄路徑",ko:"프로젝트 디렉토리 경로를 입력하세요",ja:"プロジェクトディレクトリのパスを入力",de:"Projektverzeichnispfad eingeben",es:"Ingrese la ruta del directorio del proyecto",fr:"Entrez le chemin du répertoire du projet",it:"Inserisci il percorso della directory del progetto",da:"Indtast projektmappens sti",pl:"Wprowadź ścieżkę katalogu projektu",ru:"Введите путь к каталогу проекта",ar:"أدخل مسار مجلد المشروع",no:"Skriv inn prosjektmappens sti","pt-BR":"Digite o caminho do diretório do projeto",th:"ป้อนเส้นทางไดเรกทอรีโปรเจกต์",tr:"Proje dizini yolunu girin",uk:"Введіть шлях до каталогу проєкту"},"ui.workspaces.confirmRemove":{zh:"确定从列表中移除该工作区?",en:"Remove this workspace from the list?","zh-TW":"確定從列表中移除該工作區?",ko:"이 워크스페이스를 목록에서 제거하시겠습니까?",ja:"このワークスペースをリストから削除しますか?",de:"Diesen Arbeitsbereich aus der Liste entfernen?",es:"¿Eliminar este espacio de trabajo de la lista?",fr:"Supprimer cet espace de travail de la liste ?",it:"Rimuovere quest'area di lavoro dalla lista?",da:"Fjern dette arbejdsområde fra listen?",pl:"Usunąć ten obszar roboczy z listy?",ru:"Удалить это рабочее пространство из списка?",ar:"إزالة مساحة العمل هذه من القائمة؟",no:"Fjerne dette arbeidsområdet fra listen?","pt-BR":"Remover esta área de trabalho da lista?",th:"ลบเวิร์กสเปซนี้ออกจากรายการ?",tr:"Bu çalışma alanı listeden kaldırılsın mı?",uk:"Видалити цей робочий простір зі списку?"},"ui.workspaces.justNow":{zh:"刚刚",en:"just now","zh-TW":"剛剛",ko:"방금",ja:"たった今",de:"gerade eben",es:"justo ahora",fr:"à l'instant",it:"proprio ora",da:"lige nu",pl:"właśnie",ru:"только что",ar:"الآن",no:"akkurat nå","pt-BR":"agora mesmo",th:"เมื่อสักครู่",tr:"az önce",uk:"щойно"},"ui.workspaces.browse":{zh:"浏览目录",en:"Browse Directory","zh-TW":"瀏覽目錄",ko:"디렉토리 탐색",ja:"ディレクトリを参照",de:"Verzeichnis durchsuchen",es:"Explorar directorio",fr:"Parcourir le répertoire",it:"Sfoglia directory",da:"Gennemse mappe",pl:"Przeglądaj katalog",ru:"Обзор каталога",ar:"تصفح المجلد",no:"Bla gjennom mappe","pt-BR":"Explorar diretório",th:"เรียกดูไดเรกทอรี",tr:"Dizine göz at",uk:"Переглянути каталог"},"ui.workspaces.selectDir":{zh:"选择项目目录",en:"Select Project Directory","zh-TW":"選擇專案目錄",ko:"프로젝트 디렉토리 선택",ja:"プロジェクトディレクトリを選択",de:"Projektverzeichnis auswählen",es:"Seleccionar directorio del proyecto",fr:"Sélectionner le répertoire du projet",it:"Seleziona directory del progetto",da:"Vælg projektmappe",pl:"Wybierz katalog projektu",ru:"Выбрать каталог проекта",ar:"اختر مجلد المشروع",no:"Velg prosjektmappe","pt-BR":"Selecionar diretório do projeto",th:"เลือกไดเรกทอรีโปรเจกต์",tr:"Proje dizinini seçin",uk:"Вибрати каталог проєкту"},"ui.workspaces.launchCurrent":{zh:"启动当前目录",en:"Launch Current Directory","zh-TW":"啟動當前目錄",ko:"현재 디렉토리 시작",ja:"現在のディレクトリを起動",de:"Aktuelles Verzeichnis starten",es:"Iniciar directorio actual",fr:"Lancer le répertoire actuel",it:"Avvia directory corrente",da:"Start aktuel mappe",pl:"Uruchom bieżący katalog",ru:"Запустить текущий каталог",ar:"تشغيل المجلد الحالي",no:"Start gjeldende mappe","pt-BR":"Iniciar diretório atual",th:"เริ่มไดเรกทอรีปัจจุบัน",tr:"Mevcut dizini başlat",uk:"Запустити поточний каталог"},"ui.workspaces.goTo":{zh:"前往",en:"Go","zh-TW":"前往",ko:"이동",ja:"移動",de:"Los",es:"Ir",fr:"Aller",it:"Vai",da:"Gå",pl:"Idź",ru:"Перейти",ar:"اذهب",no:"Gå","pt-BR":"Ir",th:"ไป",tr:"Git",uk:"Перейти"},"ui.loadMoreHistory":{zh:"加载更早的消息(隐藏 {count} 条)",en:"Load earlier messages ({count} hidden)","zh-TW":"載入更早的訊息(隱藏 {count} 條)",ko:"이전 메시지 로드 ({count}개 숨겨짐)",ja:"以前のメッセージを読み込む({count}件非表示)",de:"Ältere Nachrichten laden ({count} ausgeblendet)",es:"Cargar mensajes anteriores ({count} ocultos)",fr:"Charger les messages précédents ({count} masqués)",it:"Carica messaggi precedenti ({count} nascosti)",da:"Indlæs ældre beskeder ({count} skjulte)",pl:"Załaduj wcześniejsze wiadomości ({count} ukrytych)",ru:"Загрузить ранние сообщения ({count} скрыто)",ar:"تحميل رسائل أقدم ({count} مخفية)",no:"Last inn eldre meldinger ({count} skjulte)","pt-BR":"Carregar mensagens anteriores ({count} ocultas)",th:"โหลดข้อความเก่า ({count} ถูกซ่อน)",tr:"Eski mesajları yükle ({count} gizli)",uk:"Завантажити старіші повідомлення ({count} приховано)"},"ui.workspaces.emptyDir":{zh:"此目录下没有子目录",en:"No subdirectories in this directory","zh-TW":"此目錄下沒有子目錄",ko:"이 디렉토리에 하위 디렉토리가 없습니다",ja:"このディレクトリにはサブディレクトリがありません",de:"Keine Unterverzeichnisse in diesem Verzeichnis",es:"No hay subdirectorios en este directorio",fr:"Aucun sous-répertoire dans ce répertoire",it:"Nessuna sottodirectory in questa directory",da:"Ingen undermapper i denne mappe",pl:"Brak podkatalogów w tym katalogu",ru:"В этом каталоге нет подкаталогов",ar:"لا توجد أدلة فرعية في هذا المجلد",no:"Ingen undermapper i denne mappen","pt-BR":"Nenhum subdiretório neste diretório",th:"ไม่มีไดเรกทอรีย่อยในไดเรกทอรีนี้",tr:"Bu dizinde alt dizin yok",uk:"У цьому каталозі немає підкаталогів"},"ui.processManagement":{zh:"CXV进程管理",en:"CXV Process Manager","zh-TW":"CXV程序管理",ko:"CXV 프로세스 관리",ja:"CXVプロセス管理",de:"CXV-Prozessverwaltung",es:"Gestión de procesos CXV",fr:"Gestion des processus CXV",it:"Gestione processi CXV",da:"CXV-processtyring",pl:"Zarządzanie procesami CXV",ru:"Управление процессами CXV",ar:"إدارة عمليات CXV",no:"CXV-prosessbehandling","pt-BR":"Gerenciamento de processos CXV",th:"จัดการโปรเซส CXV",tr:"CXV Süreç Yönetimi",uk:"Керування процесами CXV"},"ui.processManagement.command":{zh:"命令",en:"Command","zh-TW":"命令",ko:"명령",ja:"コマンド",de:"Befehl",es:"Comando",fr:"Commande",it:"Comando",da:"Kommando",pl:"Polecenie",ru:"Команда",ar:"أمر",no:"Kommando","pt-BR":"Comando",th:"คำสั่ง",tr:"Komut",uk:"Команда"},"ui.processManagement.port":{zh:"端口",en:"Port","zh-TW":"端口",ko:"포트",ja:"ポート",de:"Port",es:"Puerto",fr:"Port",it:"Porta",da:"Port",pl:"Port",ru:"Порт",ar:"منفذ",no:"Port","pt-BR":"Porta",th:"พอร์ต",tr:"Port",uk:"Порт"},"ui.processManagement.startTime":{zh:"启动时间",en:"Start Time","zh-TW":"啟動時間",ko:"시작 시간",ja:"開始時刻",de:"Startzeit",es:"Hora de inicio",fr:"Heure de démarrage",it:"Ora di avvio",da:"Starttid",pl:"Czas uruchomienia",ru:"Время запуска",ar:"وقت البدء",no:"Starttid","pt-BR":"Hora de início",th:"เวลาเริ่มต้น",tr:"Başlangıç zamanı",uk:"Час запуску"},"ui.processManagement.action":{zh:"操作",en:"Action","zh-TW":"操作",ko:"작업",ja:"操作",de:"Aktion",es:"Acción",fr:"Action",it:"Azione",da:"Handling",pl:"Akcja",ru:"Действие",ar:"إجراء",no:"Handling","pt-BR":"Ação",th:"การดำเนินการ",tr:"İşlem",uk:"Дія"},"ui.processManagement.kill":{zh:"关闭",en:"Stop","zh-TW":"關閉",ko:"서비스 중지",ja:"サービス停止",de:"Dienst beenden",es:"Detener servicio",fr:"Arrêter le service",it:"Arresta servizio",da:"Stop tjeneste",pl:"Zatrzymaj usługę",ru:"Остановить сервис",ar:"إيقاف الخدمة",no:"Stopp tjeneste","pt-BR":"Parar serviço",th:"หยุดบริการ",tr:"Servisi durdur",uk:"Зупинити сервіс"},"ui.processManagement.killConfirm":{zh:"确定要关闭此CXV进程吗?",en:"Are you sure you want to stop this CXV process?","zh-TW":"確定要關閉此CXV程序嗎?",ko:"이 CXV 프로세스를 중지하시겠습니까?",ja:"このCXVプロセスを停止しますか?",de:"Möchten Sie diesen CXV-Prozess wirklich beenden?",es:"¿Seguro que desea detener este proceso CXV?",fr:"Voulez-vous vraiment arrêter ce processus CXV ?",it:"Sei sicuro di voler arrestare questo processo CXV?",da:"Er du sikker på, at du vil stoppe denne CXV-proces?",pl:"Czy na pewno chcesz zatrzymać ten proces CXV?",ru:"Вы уверены, что хотите остановить этот процесс CXV?",ar:"هل أنت متأكد من إيقاف عملية CXV هذه؟",no:"Er du sikker på at du vil stoppe denne CXV-prosessen?","pt-BR":"Tem certeza de que deseja parar este processo CXV?",th:"คุณแน่ใจหรือไม่ว่าต้องการหยุดโปรเซส CXV นี้?",tr:"Bu CXV sürecini durdurmak istediğinizden emin misiniz?",uk:"Ви впевнені, що хочете зупинити цей процес CXV?"},"ui.processManagement.killed":{zh:"进程已关闭",en:"Process stopped","zh-TW":"程序已關閉",ko:"프로세스가 중지되었습니다",ja:"プロセスが停止しました",de:"Prozess beendet",es:"Proceso detenido",fr:"Processus arrêté",it:"Processo arrestato",da:"Proces stoppet",pl:"Proces zatrzymany",ru:"Процесс остановлен",ar:"تم إيقاف العملية",no:"Prosess stoppet","pt-BR":"Processo parado",th:"หยุดโปรเซสแล้ว",tr:"Süreç durduruldu",uk:"Процес зупинено"},"ui.processManagement.killFailed":{zh:"关闭失败",en:"Failed to stop","zh-TW":"關閉失敗",ko:"중지 실패",ja:"停止に失敗しました",de:"Beenden fehlgeschlagen",es:"Error al detener",fr:"Échec de l'arrêt",it:"Arresto fallito",da:"Stop mislykkedes",pl:"Nie udało się zatrzymać",ru:"Не удалось остановить",ar:"فشل الإيقاف",no:"Stopp mislyktes","pt-BR":"Falha ao parar",th:"หยุดไม่สำเร็จ",tr:"Durdurma başarısız",uk:"Не вдалося зупинити"},"ui.processManagement.refresh":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.processManagement.current":{zh:"当前",en:"Current","zh-TW":"目前",ko:"현재",ja:"現在",de:"Aktuell",es:"Actual",fr:"Actuel",it:"Corrente",da:"Aktuel",pl:"Bieżący",ru:"Текущий",ar:"الحالي",no:"Gjeldende","pt-BR":"Atual",th:"ปัจจุบัน",tr:"Mevcut",uk:"Поточний"},"ui.terminal.ctrlCBlocked":{zh:"请在启动 cxv 的终端中按 Ctrl+C 退出",en:"Please press Ctrl+C in the terminal where cxv was launched to exit","zh-TW":"請在啟動 cxv 的終端中按 Ctrl+C 退出",ko:"cxv를 실행한 터미널에서 Ctrl+C를 눌러 종료하세요",ja:"cxv を起動したターミナルで Ctrl+C を押して終了してください",de:"Bitte drücken Sie Ctrl+C im Terminal, in dem cxv gestartet wurde",es:"Presione Ctrl+C en la terminal donde se inició cxv para salir",fr:"Appuyez sur Ctrl+C dans le terminal où cxv a été lancé pour quitter",it:"Premere Ctrl+C nel terminale in cui è stato avviato cxv per uscire",da:"Tryk Ctrl+C i terminalen, hvor cxv blev startet, for at afslutte",pl:"Naciśnij Ctrl+C w terminalu, w którym uruchomiono cxv, aby zakończyć",ru:"Нажмите Ctrl+C в терминале, где был запущен cxv, чтобы выйти",ar:"اضغط Ctrl+C في الطرفية التي تم تشغيل cxv فيها للخروج",no:"Trykk Ctrl+C i terminalen der cxv ble startet for å avslutte","pt-BR":"Pressione Ctrl+C no terminal onde o cxv foi iniciado para sair",th:"กด Ctrl+C ในเทอร์มินัลที่เปิด cxv เพื่อออก",tr:"Çıkmak için cxv'nin başlatıldığı terminalde Ctrl+C'ye basın",uk:"Натисніть Ctrl+C у терміналі, де був запущений cxv, щоб вийти"},"ui.terminal.quickSettings":{zh:"快捷设置",en:"Quick settings","zh-TW":"快捷設定",ko:"빠른 설정",ja:"クイック設定",de:"Schnelleinstellungen",es:"Ajustes rápidos",fr:"Réglages rapides",it:"Impostazioni rapide",da:"Hurtige indstillinger",pl:"Szybkie ustawienia",ru:"Быстрые настройки",ar:"إعدادات سريعة",no:"Hurtiginnstillinger","pt-BR":"Configurações rápidas",th:"การตั้งค่าด่วน",tr:"Hızlı ayarlar",uk:"Швидкі налаштування"},"ui.terminal.agentTeam":{zh:"AgentTeam",en:"AgentTeam","zh-TW":"AgentTeam",ko:"AgentTeam",ja:"AgentTeam",de:"AgentTeam",es:"AgentTeam",fr:"AgentTeam",it:"AgentTeam",da:"AgentTeam",pl:"AgentTeam",ru:"AgentTeam",ar:"AgentTeam",no:"AgentTeam","pt-BR":"AgentTeam",th:"AgentTeam",tr:"AgentTeam",uk:"AgentTeam"},"ui.terminal.scratchTabAdd":{zh:"新建终端",en:"New terminal","zh-TW":"新建終端",ko:"새 터미널",ja:"新しいターミナル",de:"Neues Terminal",es:"Nuevo terminal",fr:"Nouveau terminal",it:"Nuovo terminale",da:"Ny terminal",pl:"Nowy terminal",ru:"Новый терминал",ar:"طرفية جديدة",no:"Ny terminal","pt-BR":"Novo terminal",th:"เทอร์มินัลใหม่",tr:"Yeni terminal",uk:"Новий термінал"},"ui.terminal.scratchTabClose":{zh:"关闭终端",en:"Close terminal","zh-TW":"關閉終端",ko:"터미널 닫기",ja:"ターミナルを閉じる",de:"Terminal schließen",es:"Cerrar terminal",fr:"Fermer le terminal",it:"Chiudi terminale",da:"Luk terminal",pl:"Zamknij terminal",ru:"Закрыть терминал",ar:"إغلاق الطرفية",no:"Lukk terminal","pt-BR":"Fechar terminal",th:"ปิดเทอร์มินัล",tr:"Terminali kapat",uk:"Закрити термінал"},"ui.terminal.scratchResizer":{zh:"拖动调整临时终端高度",en:"Drag to resize scratch terminal","zh-TW":"拖動調整臨時終端高度",ko:"임시 터미널 높이 조정",ja:"スクラッチターミナルの高さを調整",de:"Höhe des Scratch-Terminals anpassen",es:"Ajustar altura del terminal scratch",fr:"Ajuster la hauteur du terminal scratch",it:"Ridimensiona altezza terminale scratch",da:"Træk for at justere højden",pl:"Przeciągnij, aby zmienić wysokość",ru:"Перетащите для изменения высоты",ar:"اسحب لتغيير الارتفاع",no:"Dra for å justere høyden","pt-BR":"Arrastar para redimensionar",th:"ลากเพื่อปรับความสูง",tr:"Yüksekliği ayarlamak için sürükleyin",uk:"Перетягніть, щоб змінити висоту"},"ui.terminal.scratchTerminalOpen":{zh:"打开临时终端",en:"Open scratch terminal","zh-TW":"開啟臨時終端",ko:"임시 터미널 열기",ja:"スクラッチターミナルを開く",de:"Scratch-Terminal öffnen",es:"Abrir terminal scratch",fr:"Ouvrir le terminal scratch",it:"Apri terminale scratch",da:"Åbn scratch-terminal",pl:"Otwórz terminal scratch",ru:"Открыть scratch-терминал",ar:"فتح طرفية مؤقتة",no:"Åpne scratch-terminal","pt-BR":"Abrir terminal scratch",th:"เปิดเทอร์มินัลชั่วคราว",tr:"Geçici terminali aç",uk:"Відкрити тимчасовий термінал"},"ui.terminal.scratchTerminalClose":{zh:"关闭临时终端",en:"Close scratch terminal","zh-TW":"關閉臨時終端",ko:"임시 터미널 닫기",ja:"スクラッチターミナルを閉じる",de:"Scratch-Terminal schließen",es:"Cerrar terminal scratch",fr:"Fermer le terminal scratch",it:"Chiudi terminale scratch",da:"Luk scratch-terminal",pl:"Zamknij terminal scratch",ru:"Закрыть scratch-терминал",ar:"إغلاق الطرفية المؤقتة",no:"Lukk scratch-terminal","pt-BR":"Fechar terminal scratch",th:"ปิดเทอร์มินัลชั่วคราว",tr:"Geçici terminali kapat",uk:"Закрити тимчасовий термінал"},"ui.terminal.presetShortcuts":{zh:"预置快捷方式",en:"Preset Shortcuts","zh-TW":"預置快捷方式",ko:"프리셋 단축키",ja:"プリセットショートカット",de:"Voreingestellte Verknüpfungen",es:"Atajos preestablecidos",fr:"Raccourcis prédéfinis",it:"Scorciatoie preimpostate",da:"Forudindstillede genveje",pl:"Ustawione skróty",ru:"Предустановленные ярлыки",ar:"اختصارات مسبقة",no:"Forhåndsinnstilte snarveier","pt-BR":"Atalhos predefinidos",th:"ทางลัดที่ตั้งไว้ล่วงหน้า",tr:"Önceden ayarlanmış kısayollar",uk:"Попередньо встановлені ярлики"},"ui.terminal.customShortcuts":{zh:"+ 自定义快捷方式",en:"+ Custom Shortcuts","zh-TW":"+ 自訂快捷方式",ko:"+ 사용자 정의 바로가기",ja:"+ カスタムショートカット",de:"+ Benutzerdefinierte Verknüpfungen",es:"+ Atajos personalizados",fr:"+ Raccourcis personnalisés",it:"+ Scorciatoie personalizzate",da:"+ Brugerdefinerede genveje",pl:"+ Niestandardowe skróty",ru:"+ Пользовательские ярлыки",ar:"+ اختصارات مخصصة",no:"+ Egendefinerte snarveier","pt-BR":"+ Atalhos personalizados",th:"+ ทางลัดที่กำหนดเอง",tr:"+ Özel kısayollar",uk:"+ Користувацькі ярлики"},"ui.terminal.agentTeamCustom":{zh:"Agent Team 定制",en:"Agent Team Custom","zh-TW":"Agent Team 定制",ko:"Agent Team 커스텀",ja:"Agent Team カスタム",de:"Agent Team Anpassung",es:"Personalización de Agent Team",fr:"Personnalisation Agent Team",it:"Personalizzazione Agent Team",da:"Agent Team tilpasning",pl:"Dostosowanie Agent Team",ru:"Настройка Agent Team",ar:"تخصيص Agent Team",no:"Agent Team tilpasning","pt-BR":"Personalização Agent Team",th:"ปรับแต่ง Agent Team",tr:"Agent Team özelleştirme",uk:"Налаштування Agent Team"},"ui.preset.codeReview5.name":{zh:"UltraReview",en:"UltraReview","zh-TW":"UltraReview",ko:"UltraReview",ja:"UltraReview",de:"UltraReview",es:"UltraReview",fr:"UltraReview",it:"UltraReview",da:"UltraReview",pl:"UltraReview",ru:"UltraReview",ar:"UltraReview",no:"UltraReview","pt-BR":"UltraReview",th:"UltraReview",tr:"UltraReview",uk:"UltraReview"},"ui.preset.codeReview5.desc":{zh:"使用 `tool_search` 查找可用的 multi-agent/review 工具,根据任务复杂度动态分配 teammate 数量(建议为 5+);\n\n如果当前没有可用的 multi-agent 工具,则在本会话内完成聚焦审查,并明确说明这个限制;\n\n任务:从多角色、多视角对当前 git 变更进行 Code Review;\n\n前置检查:\n- git 仓库可能位于当前目录的子目录中,需先递归查找 .git 所在位置,再执行后续操作;\n- 多仓库的情况下,可以分多任务执行;\n\n审查维度(作为审查的参考框架,各角色结合自身视角按需覆盖,建议尽可能全面):\n- 需求/目标是否已实现,功能是否完整;\n- 新增代码是否引入副作用、破坏已有功能或潜在风险;\n- 代码质量:命名、可读性、复杂度、技术债、可维护性;\n- 测试与文档:是否有充分的测试覆盖,关键逻辑是否有必要的注释或文档;\n- 依赖与兼容性:是否引入新依赖或版本兼容问题;\n- 其他你觉得适合的维度;\n\n流程:\n1. 各 teammate 按照自身角色,逐一覆盖审查维度,独立输出报告;\n2. 汇总报告后进行交叉审视,识别冲突或共同关注点;\n3. 提炼出具体、可执行的修改建议,并标注优先级(P0/P1/P2/P3);\n4. 完成后不要自动执行,先将修改建议呈现给我,等待我的确认;\n5. 执行完成后,使用可用的 shutdown/close 工具关闭已启动的 agents 或 team;\n6. 如果没有对应关闭工具,则分别通知 teammate 退出;",en:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;","zh-TW":"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",ko:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",ja:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",de:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",es:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",fr:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",it:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",da:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",pl:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",ru:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",ar:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",no:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;","pt-BR":"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",th:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",tr:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;",uk:"Use `tool_search` to find available multi-agent/review tools, dynamically allocating teammate count based on task complexity (5+ recommended);\n\nIf no multi-agent tool is available, perform a focused review in this session and state that limitation;\n\nTask: Code Review the current git changes from multiple roles and perspectives;\n\nPre-checks:\n- The git repo may sit in a subdirectory of the current path; recursively locate `.git` first before proceeding;\n- For multi-repo setups, split into multiple tasks;\n\nReview dimensions (a reference framework — each role covers them through their own lens as needed, aiming to be as comprehensive as possible):\n- Whether requirements/goals are implemented and the feature is complete;\n- Whether new code introduces side effects, breaks existing behavior, or carries latent risk;\n- Code quality: naming, readability, complexity, tech debt, maintainability;\n- Tests & docs: adequate test coverage, necessary comments/docs on key logic;\n- Dependencies & compatibility: any new deps introduced or version compatibility issues;\n- Any other dimensions you find appropriate;\n\nWorkflow:\n1. Each teammate covers the review dimensions through their role and produces an independent report;\n2. Cross-examine the aggregated reports — identify conflicts and shared concerns;\n3. Extract concrete, actionable modification suggestions with priority labels (P0/P1/P2/P3);\n4. When done, do NOT execute automatically — present the suggestions to me and wait for my confirmation;\n5. Close any spawned agents or teams using the available shutdown/close tool after execution;\n6. If no close tool is available, notify each teammate to exit individually;"},"ui.terminal.addItem":{zh:"添加",en:"Add","zh-TW":"新增",ko:"추가",ja:"追加",de:"Hinzufügen",es:"Agregar",fr:"Ajouter",it:"Aggiungi",da:"Tilføj",pl:"Dodaj",ru:"Добавить",ar:"إضافة",no:"Legg til","pt-BR":"Adicionar",th:"เพิ่ม",tr:"Ekle",uk:"Додати"},"ui.terminal.deleteSelected":{zh:"删除",en:"Delete","zh-TW":"刪除",ko:"삭제",ja:"削除",de:"Löschen",es:"Eliminar",fr:"Supprimer",it:"Elimina",da:"Slet",pl:"Usuń",ru:"Удалить",ar:"حذف",no:"Slett","pt-BR":"Excluir",th:"ลบ",tr:"Sil",uk:"Видалити"},"ui.ok":{zh:"确定",en:"OK","zh-TW":"確定",ko:"확인",ja:"OK",de:"OK",es:"Aceptar",fr:"OK",it:"OK",da:"OK",pl:"OK",ru:"ОК",ar:"موافق",no:"OK","pt-BR":"OK",th:"ตกลง",tr:"Tamam",uk:"ОК"},"ui.terminal.editItem":{zh:"编辑",en:"Edit","zh-TW":"編輯",ko:"편집",ja:"編集",de:"Bearbeiten",es:"Editar",fr:"Modifier",it:"Modifica",da:"Rediger",pl:"Edytuj",ru:"Редактировать",ar:"تعديل",no:"Rediger","pt-BR":"Editar",th:"แก้ไข",tr:"Düzenle",uk:"Редагувати"},"ui.terminal.teamName":{zh:"名称:",en:"Name:","zh-TW":"名稱:",ko:"이름:",ja:"名前:",de:"Name:",es:"Nombre:",fr:"Nom :",it:"Nome:",da:"Navn:",pl:"Nazwa:",ru:"Имя:",ar:"الاسم:",no:"Navn:","pt-BR":"Nome:",th:"ชื่อ:",tr:"Ad:",uk:"Назва:"},"ui.terminal.teamDesc":{zh:"描述:",en:"Description:","zh-TW":"描述:",ko:"설명:",ja:"説明:",de:"Beschreibung:",es:"Descripción:",fr:"Description :",it:"Descrizione:",da:"Beskrivelse:",pl:"Opis:",ru:"Описание:",ar:"الوصف:",no:"Beskrivelse:","pt-BR":"Descrição:",th:"คำอธิบาย:",tr:"Açıklama:",uk:"Опис:"},"ui.terminal.teamNamePlaceholder":{zh:"输入 Team 名称...",en:"Enter team name...","zh-TW":"輸入 Team 名稱...",ko:"팀 이름 입력...",ja:"チーム名を入力...",de:"Teamname eingeben...",es:"Ingrese nombre del equipo...",fr:"Entrez le nom de l'équipe...",it:"Inserisci nome del team...",da:"Indtast teamnavn...",pl:"Wpisz nazwę zespołu...",ru:"Введите название команды...",ar:"أدخل اسم الفريق...",no:"Skriv inn teamnavn...","pt-BR":"Digite o nome da equipe...",th:"ป้อนชื่อทีม...",tr:"Takım adını girin...",uk:"Введіть назву команди..."},"ui.terminal.presetInputPlaceholder":{zh:"输入快捷方式文本...",en:"Enter shortcut text...","zh-TW":"輸入快捷方式文字...",ko:"단축키 텍스트 입력...",ja:"ショートカットテキストを入力...",de:"Verknüpfungstext eingeben...",es:"Ingrese texto del atajo...",fr:"Entrez le texte du raccourci...",it:"Inserisci testo scorciatoia...",da:"Indtast genvejstekst...",pl:"Wpisz tekst skrótu...",ru:"Введите текст ярлыка...",ar:"أدخل نص الاختصار...",no:"Skriv inn snarveitekst...","pt-BR":"Digite o texto do atalho...",th:"ป้อนข้อความทางลัด...",tr:"Kısayol metnini girin...",uk:"Введіть текст ярлика..."},"ui.terminal.pasteImageFailed":{zh:"粘贴图片上传失败",en:"Failed to upload pasted image","zh-TW":"貼上圖片上傳失敗",ko:"붙여넣은 이미지 업로드 실패",ja:"貼り付けた画像のアップロードに失敗しました",de:"Hochladen des eingefügten Bildes fehlgeschlagen",es:"Error al subir la imagen pegada",fr:"Échec du téléchargement de l'image collée",it:"Caricamento immagine incollata non riuscito",da:"Upload af indsat billede mislykkedes",pl:"Nie udało się przesłać wklejonego obrazu",ru:"Не удалось загрузить вставленное изображение",ar:"فشل رفع الصورة الملصقة",no:"Kunne ikke laste opp limt bilde","pt-BR":"Falha ao enviar imagem colada",th:"อัปโหลดรูปภาพที่วางไม่สำเร็จ",tr:"Yapıştırılan resim yüklenemedi",uk:"Не вдалося завантажити вставлене зображення"},"ui.chatInput.clearContext":{zh:"清空上下文",en:"Clear Context","zh-TW":"清空上下文",ko:"컨텍스트 초기화",ja:"コンテキストをクリア",de:"Kontext leeren",es:"Limpiar contexto",fr:"Effacer le contexte",it:"Cancella contesto",da:"Ryd kontekst",pl:"Wyczyść kontekst",ru:"Очистить контекст",ar:"مسح السياق",no:"Tøm kontekst","pt-BR":"Limpar contexto",th:"ล้างบริบท",tr:"Bağlamı temizle",uk:"Очистити контекст"},"ui.chatInput.voiceStart":{zh:"语音输入",en:"Start voice input","zh-TW":"語音輸入",ko:"음성 입력 시작",ja:"音声入力を開始",de:"Spracheingabe starten",es:"Iniciar dictado por voz",fr:"Démarrer la saisie vocale",it:"Avvia dettatura vocale",da:"Start stemmeinput",pl:"Rozpocznij dyktowanie",ru:"Начать голосовой ввод",ar:"بدء الإدخال الصوتي",no:"Start taleinndata","pt-BR":"Iniciar entrada por voz",th:"เริ่มการป้อนด้วยเสียง",tr:"Sesli girişi başlat",uk:"Почати голосове введення"},"ui.chatInput.voiceStop":{zh:"停止录音",en:"Stop recording","zh-TW":"停止錄音",ko:"녹음 중지",ja:"録音を停止",de:"Aufnahme beenden",es:"Detener grabación",fr:"Arrêter l'enregistrement",it:"Interrompi registrazione",da:"Stop optagelse",pl:"Zatrzymaj nagrywanie",ru:"Остановить запись",ar:"إيقاف التسجيل",no:"Stopp opptak","pt-BR":"Parar gravação",th:"หยุดการบันทึก",tr:"Kaydı durdur",uk:"Зупинити запис"},"ui.chatInput.voicePermissionDenied":{zh:"无法访问麦克风。请在浏览器设置中授予权限,并确保通过 HTTPS 或 localhost 访问。",en:"Cannot access microphone. Please grant permission in browser settings, and ensure you are accessing via HTTPS or localhost.","zh-TW":"無法存取麥克風。請在瀏覽器設定中授予權限,並確保透過 HTTPS 或 localhost 存取。",ko:"마이크에 접근할 수 없습니다. 브라우저 설정에서 권한을 부여하고 HTTPS 또는 localhost로 접속하세요.",ja:"マイクにアクセスできません。ブラウザの設定で権限を許可し、HTTPS または localhost でアクセスしてください。",de:"Kein Mikrofonzugriff. Bitte erteile die Berechtigung in den Browsereinstellungen und greife über HTTPS oder localhost zu.",es:"No se puede acceder al micrófono. Concede el permiso en la configuración del navegador y accede mediante HTTPS o localhost.",fr:"Impossible d'accéder au microphone. Accordez l'autorisation dans les paramètres du navigateur et accédez via HTTPS ou localhost.",it:"Impossibile accedere al microfono. Concedi l'autorizzazione nelle impostazioni del browser e accedi via HTTPS o localhost.",da:"Kan ikke få adgang til mikrofonen. Giv tilladelse i browserindstillingerne, og tilgå via HTTPS eller localhost.",pl:"Nie można uzyskać dostępu do mikrofonu. Udziel uprawnień w ustawieniach przeglądarki i korzystaj przez HTTPS lub localhost.",ru:"Нет доступа к микрофону. Предоставьте разрешение в настройках браузера и используйте HTTPS или localhost.",ar:"تعذر الوصول إلى الميكروفون. يرجى منح الإذن في إعدادات المتصفح والوصول عبر HTTPS أو localhost.",no:"Kan ikke få tilgang til mikrofonen. Gi tillatelse i nettleserinnstillingene, og bruk HTTPS eller localhost.","pt-BR":"Não é possível acessar o microfone. Conceda permissão nas configurações do navegador e acesse via HTTPS ou localhost.",th:"ไม่สามารถเข้าถึงไมโครโฟน โปรดอนุญาตในการตั้งค่าเบราว์เซอร์และเข้าผ่าน HTTPS หรือ localhost",tr:"Mikrofona erişilemiyor. Tarayıcı ayarlarından izin verin ve HTTPS veya localhost üzerinden erişin.",uk:"Немає доступу до мікрофона. Надайте дозвіл у налаштуваннях браузера й використовуйте HTTPS або localhost."},"ui.chatInput.clearContextConfirm":{zh:"确定要清空当前对话上下文吗?",en:"Clear the current conversation context?","zh-TW":"確定要清空當前對話上下文嗎?",ko:"현재 대화 컨텍스트를 초기화하시겠습니까?",ja:"現在の会話コンテキストをクリアしますか?",de:"Den aktuellen Kontext löschen?",es:"¿Limpiar el contexto actual?",fr:"Effacer le contexte actuel ?",it:"Cancellare il contesto attuale?",da:"Ryd den aktuelle kontekst?",pl:"Wyczyścić kontekst?",ru:"Очистить текущий контекст?",ar:"مسح السياق الحالي؟",no:"Tøm konteksten?","pt-BR":"Limpar o contexto atual?",th:"ล้างบริบทปัจจุบัน?",tr:"Mevcut bağlamı temizle?",uk:"Очистити контекст?"},"ui.terminal.upload":{zh:"上传文件",en:"Upload File","zh-TW":"上傳檔案",ko:"파일 업로드",ja:"ファイルをアップロード",de:"Datei hochladen",es:"Subir archivo",fr:"Télécharger un fichier",it:"Carica file",da:"Upload fil",pl:"Prześlij plik",ru:"Загрузить файл",ar:"رفع ملف",no:"Last opp fil","pt-BR":"Enviar arquivo",th:"อัปโหลดไฟล์",tr:"Dosya yükle",uk:"Завантажити файл"},"ui.editorSession.banner":{zh:"保存好以后,点我回到「终端」界面",en:"After saving, click here to return to Terminal","zh-TW":"儲存好以後,點我回到「終端」介面",ko:"저장 후 여기를 클릭하여 터미널로 돌아가기",ja:"保存後、ここをクリックしてターミナルに戻る",de:"Nach dem Speichern hier klicken, um zum Terminal zurückzukehren",es:"Después de guardar, haz clic aquí para volver a la Terminal",fr:"Après avoir enregistré, cliquez ici pour revenir au Terminal",it:"Dopo aver salvato, clicca qui per tornare al Terminale",da:"Klik her for at vende tilbage til Terminalen efter at have gemt",pl:"Po zapisaniu kliknij tutaj, aby wrócić do Terminala",ru:"После сохранения нажмите здесь, чтобы вернуться в Терминал",ar:"بعد الحفظ، انقر هنا للعودة إلى الطرفية",no:"Etter lagring, klikk her for å gå tilbake til Terminalen","pt-BR":"Após salvar, clique aqui para voltar ao Terminal",th:"หลังบันทึกแล้ว คลิกที่นี่เพื่อกลับไปที่เทอร์มินัล",tr:"Kaydettikten sonra Terminal'e dönmek için buraya tıklayın",uk:"Після збереження натисніть тут, щоб повернутися до Терміналу"},"ui.askCancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.askCountdown":{zh:"{time} 后自动取消",en:"Auto-cancel in {time}","zh-TW":"{time} 後自動取消",ko:"{time} 후 자동 취소",ja:"{time} 後に自動キャンセル",de:"Auto-Abbruch in {time}",es:"Auto-cancelar en {time}",fr:"Annulation auto dans {time}",it:"Auto-annulla in {time}",da:"Auto-annullér om {time}",pl:"Auto-anulowanie za {time}",ru:"Авто-отмена через {time}",ar:"إلغاء تلقائي خلال {time}",no:"Auto-avbryt om {time}","pt-BR":"Auto-cancelar em {time}",th:"ยกเลิกอัตโนมัติใน {time}",tr:"{time} sonra otomatik iptal",uk:"Авто-скасування через {time}"},"ui.askCancelledByUser":{zh:"已被用户取消",en:"Cancelled by user","zh-TW":"已被使用者取消",ko:"사용자가 취소함",ja:"ユーザーがキャンセルしました",de:"Vom Benutzer abgebrochen",es:"Cancelado por el usuario",fr:"Annulé par l'utilisateur",it:"Annullato dall'utente",da:"Annulleret af brugeren",pl:"Anulowane przez użytkownika",ru:"Отменено пользователем",ar:"ألغاه المستخدم",no:"Avbrutt av brukeren","pt-BR":"Cancelado pelo usuário",th:"ผู้ใช้ยกเลิก",tr:"Kullanıcı tarafından iptal edildi",uk:"Скасовано користувачем"},"ui.askSubmit":{zh:"提交",en:"Submit","zh-TW":"提交",ko:"제출",ja:"送信",de:"Absenden",es:"Enviar",fr:"Soumettre",it:"Invia",da:"Indsend",pl:"Wyślij",ru:"Отправить",ar:"إرسال",no:"Send inn","pt-BR":"Enviar",th:"ส่ง",tr:"Gönder",uk:"Надіслати"},"ui.askSubmitting":{zh:"提交中...",en:"Submitting...","zh-TW":"提交中...",ko:"제출 중...",ja:"送信中...",de:"Wird gesendet...",es:"Enviando...",fr:"Envoi en cours...",it:"Invio in corso...",da:"Indsender...",pl:"Wysyłanie...",ru:"Отправка...",ar:"جارٍ الإرسال...",no:"Sender inn...","pt-BR":"Enviando...",th:"กำลังส่ง...",tr:"Gönderiliyor...",uk:"Надсилання..."},"ui.askSubmitRetryHint":{zh:"提交未送达,请重试",en:"Submission did not reach the server, please retry","zh-TW":"提交未送達,請重試",ko:"제출이 서버에 도달하지 못했습니다. 다시 시도하세요",ja:"送信が届きませんでした、再試行してください",de:"Übermittlung nicht erfolgreich, bitte erneut versuchen",es:"Envío no recibido, por favor reintenta",fr:"Soumission non reçue, veuillez réessayer",it:"Invio non ricevuto, riprova",da:"Indsendelse mislykkedes, prøv igen",pl:"Nie udało się wysłać, spróbuj ponownie",ru:"Отправка не удалась, повторите попытку",ar:"لم يصل الإرسال، الرجاء إعادة المحاولة",no:"Innsending feilet, prøv igjen","pt-BR":"Envio não recebido, tente novamente",th:"ส่งไม่สำเร็จ โปรดลองใหม่",tr:"Gönderim ulaşmadı, tekrar deneyin",uk:"Не вдалося надіслати, спробуйте ще раз"},"ui.askValidationErrorBadge":{zh:"此提问被 CLI 拒绝(schema 校验失败,未能投递到底层会话)",en:"This question was rejected by the CLI (schema validation failed, never delivered to the underlying session)","zh-TW":"此提問被 CLI 拒絕(schema 校驗失敗,未能投遞到底層會話)",ko:"이 질문은 CLI에서 거부되었습니다 (스키마 검증 실패, 하위 세션에 전달되지 않음)",ja:"この質問は CLI により拒否されました(スキーマ検証失敗、下位セッションには届いていません)",de:"Diese Frage wurde vom CLI abgelehnt (Schema-Validierung fehlgeschlagen, nie an die zugrunde liegende Sitzung übermittelt)",es:"Esta pregunta fue rechazada por la CLI (validación de esquema fallida, no llegó a la sesión subyacente)",fr:"Cette question a été rejetée par la CLI (échec de validation du schéma, jamais transmise à la session sous-jacente)",it:"Questa domanda è stata rifiutata dalla CLI (validazione schema fallita, mai consegnata alla sessione sottostante)",da:"Dette spørgsmål blev afvist af CLI'en (skemavalidering fejlede, blev aldrig leveret til den underliggende session)",pl:"To pytanie zostało odrzucone przez CLI (walidacja schematu nie powiodła się, nigdy nie dotarło do sesji bazowej)",ru:"Этот вопрос был отклонён CLI (ошибка валидации схемы, не был доставлен в нижележащую сессию)",ar:"تم رفض هذا السؤال من قِبل واجهة الأوامر (فشل التحقق من المخطط، ولم يصل إلى الجلسة الأساسية)",no:"Dette spørsmålet ble avvist av CLI-en (skjemavalidering mislyktes, ble aldri levert til den underliggende økten)","pt-BR":"Esta pergunta foi rejeitada pela CLI (validação do esquema falhou, nunca chegou à sessão subjacente)",th:"คำถามนี้ถูกปฏิเสธโดย CLI (การตรวจสอบสคีมาล้มเหลว ไม่ได้ส่งไปยังเซสชันพื้นฐาน)",tr:"Bu soru CLI tarafından reddedildi (şema doğrulaması başarısız oldu, alttaki oturuma hiç ulaşmadı)",uk:"Це запитання було відхилено CLI (помилка валідації схеми, не було доставлено до базової сесії)"},"ui.askValidationErrorRaw":{zh:"查看原始错误",en:"View raw error","zh-TW":"檢視原始錯誤",ko:"원본 오류 보기",ja:"元のエラーを表示",de:"Rohfehler anzeigen",es:"Ver error original",fr:"Voir l'erreur brute",it:"Mostra errore grezzo",da:"Vis rå fejl",pl:"Zobacz surowy błąd",ru:"Показать исходную ошибку",ar:"عرض الخطأ الأصلي",no:"Vis rå feilmelding","pt-BR":"Ver erro original",th:"ดูข้อผิดพลาดต้นฉบับ",tr:"Ham hatayı göster",uk:"Переглянути необроблену помилку"},"ui.askSubmitFailedDetail":{zh:"可能原因:\n• 该提问已被底层 CLI 拒绝(如 sandbox 校验失败 / 工具错误)\n• WebSocket 暂时断开\n• hook bridge 尚未就绪\n\n建议:在终端确认实际状态,或刷新 cx-viewer 后重试。",en:"Possible causes:\n• The ask was rejected by the underlying CLI (e.g. sandbox validation, tool error)\n• WebSocket is temporarily disconnected\n• Hook bridge is not yet ready\n\nSuggested: confirm the real state in the terminal, or refresh cx-viewer and retry.","zh-TW":"可能原因:\n• 該提問已被底層 CLI 拒絕(如 sandbox 校驗失敗 / 工具錯誤)\n• WebSocket 暫時斷開\n• hook bridge 尚未就緒\n\n建議:在終端確認實際狀態,或重新整理 cx-viewer 後重試。",ko:"가능한 원인:\n• 해당 질문이 하위 CLI에서 거부됨 (샌드박스 검증 실패 / 도구 오류 등)\n• WebSocket 일시적 연결 해제\n• Hook bridge가 아직 준비되지 않음\n\n권장: 터미널에서 실제 상태를 확인하거나 cx-viewer를 새로 고침한 후 재시도하세요.",ja:"考えられる原因:\n• この質問が下位の CLI で拒否されました (sandbox 検証失敗 / ツールエラーなど)\n• WebSocket が一時的に切断されている\n• Hook bridge がまだ準備できていない\n\n推奨: ターミナルで実際の状態を確認するか、cx-viewer を更新して再試行してください。",de:"Mögliche Ursachen:\n• Die Anfrage wurde vom zugrunde liegenden CLI abgelehnt (z. B. Sandbox-Validierung, Tool-Fehler)\n• WebSocket vorübergehend getrennt\n• Hook-Bridge noch nicht bereit\n\nEmpfohlen: Tatsächlichen Status im Terminal prüfen oder cx-viewer aktualisieren und erneut versuchen.",es:"Posibles causas:\n• La pregunta fue rechazada por la CLI subyacente (p. ej., validación del sandbox, error de herramienta)\n• WebSocket desconectado temporalmente\n• Hook bridge aún no está listo\n\nSugerencia: confirma el estado real en la terminal o actualiza cx-viewer y reintenta.",fr:"Causes possibles :\n• La question a été rejetée par la CLI sous-jacente (validation sandbox, erreur d'outil, etc.)\n• WebSocket temporairement déconnecté\n• Hook bridge pas encore prêt\n\nSuggéré : vérifier l'état réel dans le terminal, ou rafraîchir cx-viewer et réessayer.",it:"Cause possibili:\n• La domanda è stata rifiutata dalla CLI sottostante (es. validazione sandbox, errore strumento)\n• WebSocket temporaneamente disconnesso\n• Hook bridge non ancora pronto\n\nSuggerito: verifica lo stato reale nel terminale o aggiorna cx-viewer e riprova.",da:"Mulige årsager:\n• Forespørgslen blev afvist af den underliggende CLI (f.eks. sandbox-validering, værktøjsfejl)\n• WebSocket midlertidigt afbrudt\n• Hook bridge er endnu ikke klar\n\nForeslås: bekræft den faktiske status i terminalen, eller genindlæs cx-viewer og prøv igen.",pl:"Możliwe przyczyny:\n• Zapytanie zostało odrzucone przez bazowy CLI (np. walidacja sandboxa, błąd narzędzia)\n• WebSocket chwilowo rozłączony\n• Hook bridge jeszcze niegotowy\n\nSugerowane: sprawdź rzeczywisty stan w terminalu lub odśwież cx-viewer i spróbuj ponownie.",ru:"Возможные причины:\n• Запрос был отклонён нижележащим CLI (например, проверка песочницы, ошибка инструмента)\n• WebSocket временно отключён\n• Hook bridge ещё не готов\n\nРекомендуется: проверьте фактическое состояние в терминале или обновите cx-viewer и повторите попытку.",ar:"الأسباب المحتملة:\n• تم رفض هذا السؤال من قِبل واجهة الأوامر الأساسية (مثل فشل التحقق في sandbox أو خطأ في الأداة)\n• انقطاع مؤقت في WebSocket\n• Hook bridge لم يصبح جاهزًا بعد\n\nمقترح: تحقق من الحالة الفعلية في الطرفية، أو حدّث cx-viewer وحاول مجددًا.",no:"Mulige årsaker:\n• Spørsmålet ble avvist av den underliggende CLI (f.eks. sandkasse-validering, verktøyfeil)\n• WebSocket midlertidig frakoblet\n• Hook bridge er ikke klar ennå\n\nForeslått: bekreft den faktiske statusen i terminalen, eller oppdater cx-viewer og prøv igjen.","pt-BR":"Causas possíveis:\n• A pergunta foi rejeitada pela CLI subjacente (ex.: validação do sandbox, erro de ferramenta)\n• WebSocket temporariamente desconectado\n• Hook bridge ainda não pronto\n\nSugerido: confirme o estado real no terminal, ou atualize o cx-viewer e tente novamente.",th:"สาเหตุที่เป็นไปได้:\n• คำถามถูกปฏิเสธโดย CLI พื้นฐาน (เช่น การตรวจสอบ sandbox ไม่ผ่าน, ข้อผิดพลาดของเครื่องมือ)\n• WebSocket ถูกตัดการเชื่อมต่อชั่วคราว\n• Hook bridge ยังไม่พร้อม\n\nแนะนำ: ตรวจสอบสถานะจริงในเทอร์มินัล หรือรีเฟรช cx-viewer แล้วลองใหม่",tr:"Olası nedenler:\n• Soru, alttaki CLI tarafından reddedildi (örn. sandbox doğrulama hatası, araç hatası)\n• WebSocket geçici olarak bağlantısı kesildi\n• Hook bridge henüz hazır değil\n\nÖneri: terminalde gerçek durumu doğrulayın veya cx-viewer'ı yenileyip yeniden deneyin.",uk:"Можливі причини:\n• Запит було відхилено базовим CLI (наприклад, помилка валідації sandbox, помилка інструмента)\n• WebSocket тимчасово від'єднано\n• Hook bridge ще не готовий\n\nРекомендовано: перевірте реальний стан у терміналі або оновіть cx-viewer і повторіть спробу."},"ui.askOther":{zh:"其他",en:"Other","zh-TW":"其他",ko:"기타",ja:"その他",de:"Andere",es:"Otro",fr:"Autre",it:"Altro",da:"Andet",pl:"Inne",ru:"Другое",ar:"أخرى",no:"Annet","pt-BR":"Outro",th:"อื่นๆ",tr:"Diğer",uk:"Інше"},"ui.askOtherPlaceholder":{zh:"输入你的回答...",en:"Type your answer...","zh-TW":"輸入你的回答...",ko:"답변을 입력하세요...",ja:"回答を入力...",de:"Geben Sie Ihre Antwort ein...",es:"Escribe tu respuesta...",fr:"Tapez votre réponse...",it:"Digita la tua risposta...",da:"Skriv dit svar...",pl:"Wpisz swoją odpowiedź...",ru:"Введите ваш ответ...",ar:"اكتب إجابتك...",no:"Skriv svaret ditt...","pt-BR":"Digite sua resposta...",th:"พิมพ์คำตอบของคุณ...",tr:"Cevabınızı yazın...",uk:"Введіть вашу відповідь..."},"ui.systemPrompt":{zh:"系统提示词",en:"System Prompt","zh-TW":"系統提示詞",ko:"시스템 프롬프트",ja:"システムプロンプト",de:"System-Prompt",es:"Prompt del sistema",fr:"Prompt système",it:"Prompt di sistema",da:"Systemprompt",pl:"Prompt systemowy",ru:"Системный промпт",ar:"موجه النظام",no:"Systemprompt","pt-BR":"Prompt do sistema",th:"พรอมต์ระบบ",tr:"Sistem İstemi",uk:"Системний промпт"},"ui.messages":{zh:"消息",en:"Messages","zh-TW":"訊息",ko:"메시지",ja:"メッセージ",de:"Nachrichten",es:"Mensajes",fr:"Messages",it:"Messaggi",da:"Beskeder",pl:"Wiadomości",ru:"Сообщения",ar:"الرسائل",no:"Meldinger","pt-BR":"Mensagens",th:"ข้อความ",tr:"Mesajlar",uk:"Повідомлення"},"ui.tools":{zh:"工具",en:"Tools","zh-TW":"工具",ko:"도구",ja:"ツール",de:"Werkzeuge",es:"Herramientas",fr:"Outils",it:"Strumenti",da:"Værktøjer",pl:"Narzędzia",ru:"Инструменты",ar:"الأدوات",no:"Verktøy","pt-BR":"Ferramentas",th:"เครื่องมือ",tr:"Araçlar",uk:"Інструменти"},"ui.builtinTools":{zh:"Codex 工具",en:"Codex Tools","zh-TW":"Codex 工具",ko:"공식 도구",ja:"公式ツール",de:"Offizielle Werkzeuge",es:"Herramientas oficiales",fr:"Outils officiels",it:"Strumenti ufficiali",da:"Officielle værktøjer",pl:"Narzędzia oficjalne",ru:"Официальные инструменты",ar:"الأدوات الرسمية",no:"Offisielle verktøy","pt-BR":"Ferramentas oficiais",th:"เครื่องมือทางการ",tr:"Resmi Araçlar",uk:"Офіційні інструменти"},"ui.mcpTools":{zh:"MCP 工具",en:"MCP Tools","zh-TW":"MCP 工具",ko:"MCP 도구",ja:"MCP ツール",de:"MCP-Werkzeuge",es:"Herramientas MCP",fr:"Outils MCP",it:"Strumenti MCP",da:"MCP-værktøjer",pl:"Narzędzia MCP",ru:"Инструменты MCP",ar:"أدوات MCP",no:"MCP-verktøy","pt-BR":"Ferramentas MCP",th:"เครื่องมือ MCP",tr:"MCP Araçları",uk:"Інструменти MCP"},"ui.loadedSkills":{zh:"当前在用 Skill",en:"Active Skills","zh-TW":"目前在用 Skill",ko:"활성 Skill",ja:"有効な Skill",de:"Aktive Skills",es:"Skills activas",fr:"Skills actifs",it:"Skills attive",da:"Aktive Skills",pl:"Aktywne Skille",ru:"Активные Skill",ar:"المهارات النشطة",no:"Aktive Skills","pt-BR":"Skills ativas",th:"Skills ที่ใช้งานอยู่",tr:"Etkin Skiller",uk:"Активні Skill"},"ui.persistentMemory":{zh:"持久记忆",en:"Persistent Memory","zh-TW":"持久記憶",ko:"영구 메모리",ja:"永続メモリ",de:"Persistenter Speicher",es:"Memoria persistente",fr:"Mémoire persistante",it:"Memoria persistente",da:"Vedvarende hukommelse",pl:"Trwała pamięć",ru:"Постоянная память",ar:"الذاكرة الدائمة",no:"Vedvarende minne","pt-BR":"Memória persistente",th:"หน่วยความจำถาวร",tr:"Kalıcı Bellek",uk:"Постійна пам'ять"},"ui.memoryLoading":{zh:"加载中…",en:"Loading…","zh-TW":"載入中…",ko:"불러오는 중…",ja:"読み込み中…",de:"Wird geladen…",es:"Cargando…",fr:"Chargement…",it:"Caricamento…",da:"Indlæser…",pl:"Ładowanie…",ru:"Загрузка…",ar:"جارٍ التحميل…",no:"Laster inn…","pt-BR":"Carregando…",th:"กำลังโหลด…",tr:"Yükleniyor…",uk:"Завантаження…"},"ui.memoryLoadError":{zh:"记忆加载失败",en:"Failed to load memory","zh-TW":"記憶載入失敗",ko:"메모리를 불러오지 못했습니다",ja:"メモリの読み込みに失敗しました",de:"Speicher konnte nicht geladen werden",es:"No se pudo cargar la memoria",fr:"Échec du chargement de la mémoire",it:"Caricamento della memoria non riuscito",da:"Hukommelsen kunne ikke indlæses",pl:"Nie udało się wczytać pamięci",ru:"Не удалось загрузить память",ar:"فشل تحميل الذاكرة",no:"Klarte ikke å laste minnet","pt-BR":"Falha ao carregar a memória",th:"โหลดหน่วยความจำไม่สำเร็จ",tr:"Bellek yüklenemedi",uk:"Не вдалося завантажити пам'ять"},"ui.memoryNotFound":{zh:"当前项目尚未生成记忆文件 (MEMORY.md)",en:"No memory file (MEMORY.md) for this project yet","zh-TW":"目前專案尚未產生記憶檔 (MEMORY.md)",ko:"이 프로젝트에 대한 메모리 파일(MEMORY.md)이 아직 없습니다",ja:"このプロジェクトのメモリファイル (MEMORY.md) はまだありません",de:"Noch keine Speicherdatei (MEMORY.md) für dieses Projekt",es:"Aún no hay archivo de memoria (MEMORY.md) para este proyecto",fr:"Aucun fichier de mémoire (MEMORY.md) pour ce projet pour l'instant",it:"Nessun file di memoria (MEMORY.md) per questo progetto",da:"Ingen hukommelsesfil (MEMORY.md) for dette projekt endnu",pl:"Brak pliku pamięci (MEMORY.md) dla tego projektu",ru:"Файл памяти (MEMORY.md) для этого проекта ещё не создан",ar:"لا يوجد ملف ذاكرة (MEMORY.md) لهذا المشروع حتى الآن",no:"Ingen minnefil (MEMORY.md) for dette prosjektet ennå","pt-BR":"Ainda não há arquivo de memória (MEMORY.md) para este projeto",th:"ยังไม่มีไฟล์หน่วยความจำ (MEMORY.md) สำหรับโปรเจกต์นี้",tr:"Bu proje için henüz bellek dosyası (MEMORY.md) yok",uk:"Файл пам'яті (MEMORY.md) для цього проєкту ще не створено"},"ui.memoryEmpty":{zh:"记忆文件为空",en:"Memory file is empty","zh-TW":"記憶檔為空",ko:"메모리 파일이 비어 있습니다",ja:"メモリファイルが空です",de:"Speicherdatei ist leer",es:"El archivo de memoria está vacío",fr:"Le fichier de mémoire est vide",it:"Il file di memoria è vuoto",da:"Hukommelsesfilen er tom",pl:"Plik pamięci jest pusty",ru:"Файл памяти пуст",ar:"ملف الذاكرة فارغ",no:"Minnefilen er tom","pt-BR":"O arquivo de memória está vazio",th:"ไฟล์หน่วยความจำว่างเปล่า",tr:"Bellek dosyası boş",uk:"Файл пам'яті порожній"},"ui.memoryOpenDir":{zh:"打开记忆目录",en:"Open Memory Folder","zh-TW":"開啟記憶目錄",ko:"메모리 폴더 열기",ja:"メモリフォルダを開く",de:"Speicherordner öffnen",es:"Abrir carpeta de memoria",fr:"Ouvrir le dossier mémoire",it:"Apri cartella memoria",da:"Åbn hukommelsesmappe",pl:"Otwórz folder pamięci",ru:"Открыть папку памяти",ar:"فتح مجلد الذاكرة",no:"Åpne minnemappe","pt-BR":"Abrir pasta de memória",th:"เปิดโฟลเดอร์หน่วยความจำ",tr:"Bellek klasörünü aç",uk:"Відкрити папку пам'яті"},"ui.memoryRefresh":{zh:"刷新",en:"Refresh","zh-TW":"重新整理",ko:"새로고침",ja:"更新",de:"Aktualisieren",es:"Actualizar",fr:"Actualiser",it:"Aggiorna",da:"Opdater",pl:"Odśwież",ru:"Обновить",ar:"تحديث",no:"Oppdater","pt-BR":"Atualizar",th:"รีเฟรช",tr:"Yenile",uk:"Оновити"},"ui.memoryRefreshSuccess":{zh:"记忆已刷新",en:"Memory refreshed","zh-TW":"記憶已重新整理",ko:"메모리가 새로고침되었습니다",ja:"メモリを更新しました",de:"Speicher aktualisiert",es:"Memoria actualizada",fr:"Mémoire actualisée",it:"Memoria aggiornata",da:"Hukommelse opdateret",pl:"Pamięć odświeżona",ru:"Память обновлена",ar:"تم تحديث الذاكرة",no:"Minne oppdatert","pt-BR":"Memória atualizada",th:"รีเฟรชหน่วยความจำแล้ว",tr:"Bellek yenilendi",uk:"Пам'ять оновлено"},"ui.memoryRefreshFailed":{zh:"刷新记忆失败",en:"Failed to refresh memory","zh-TW":"重新整理記憶失敗",ko:"메모리 새로고침 실패",ja:"メモリの更新に失敗しました",de:"Speicher konnte nicht aktualisiert werden",es:"Error al actualizar la memoria",fr:"Échec de l'actualisation de la mémoire",it:"Impossibile aggiornare la memoria",da:"Kunne ikke opdatere hukommelsen",pl:"Nie udało się odświeżyć pamięci",ru:"Не удалось обновить память",ar:"فشل تحديث الذاكرة",no:"Kunne ikke oppdatere minne","pt-BR":"Falha ao atualizar a memória",th:"รีเฟรชหน่วยความจำไม่สำเร็จ",tr:"Bellek yenilenemedi",uk:"Не вдалося оновити пам'ять"},"ui.codexMdSection":{zh:"AGENTS.md",en:"AGENTS.md","zh-TW":"AGENTS.md",ko:"AGENTS.md",ja:"AGENTS.md",de:"AGENTS.md",es:"AGENTS.md",fr:"AGENTS.md",it:"AGENTS.md",da:"AGENTS.md",pl:"AGENTS.md",ru:"AGENTS.md",ar:"AGENTS.md",no:"AGENTS.md","pt-BR":"AGENTS.md",th:"AGENTS.md",tr:"AGENTS.md",uk:"AGENTS.md"},"ui.codexMdScopeProject":{zh:"项目",en:"Project","zh-TW":"專案",ko:"프로젝트",ja:"プロジェクト",de:"Projekt",es:"Proyecto",fr:"Projet",it:"Progetto",da:"Projekt",pl:"Projekt",ru:"Проект",ar:"المشروع",no:"Prosjekt","pt-BR":"Projeto",th:"โปรเจกต์",tr:"Proje",uk:"Проєкт"},"ui.codexMdScopeGlobal":{zh:"全局",en:"Global","zh-TW":"全域",ko:"전역",ja:"グローバル",de:"Global",es:"Global",fr:"Global",it:"Globale",da:"Global",pl:"Globalne",ru:"Глобально",ar:"عام",no:"Global","pt-BR":"Global",th:"ทั่วไป",tr:"Genel",uk:"Глобально"},"ui.noDescription":{zh:"暂无描述",en:"No description","zh-TW":"暫無描述",ko:"설명 없음",ja:"説明なし",de:"Keine Beschreibung",es:"Sin descripción",fr:"Aucune description",it:"Nessuna descrizione",da:"Ingen beskrivelse",pl:"Brak opisu",ru:"Нет описания",ar:"لا يوجد وصف",no:"Ingen beskrivelse","pt-BR":"Sem descrição",th:"ไม่มีคำอธิบาย",tr:"Açıklama yok",uk:"Немає опису"},"ui.skillManage":{zh:"管理",en:"Manage","zh-TW":"管理",ko:"관리",ja:"管理",de:"Verwalten",es:"Gestionar",fr:"Gérer",it:"Gestisci",da:"Administrer",pl:"Zarządzaj",ru:"Управлять",ar:"إدارة",no:"Administrer","pt-BR":"Gerenciar",th:"จัดการ",tr:"Yönet",uk:"Керувати"},"ui.skillManagerTitle":{zh:"Skill 管理",en:"Skill Manager","zh-TW":"Skill 管理",ko:"Skill 관리자",ja:"Skill マネージャー",de:"Skill-Verwaltung",es:"Administrador de Skills",fr:"Gestionnaire de skills",it:"Gestione Skill",da:"Skill-administrator",pl:"Menedżer Skilli",ru:"Менеджер Skill",ar:"مدير المهارات",no:"Skill-behandler","pt-BR":"Gerenciador de Skills",th:"ตัวจัดการ Skill",tr:"Skill Yöneticisi",uk:"Менеджер Skill"},"ui.skills.add":{zh:"添加",en:"Add","zh-TW":"新增",ko:"추가",ja:"追加",de:"Hinzufügen",es:"Añadir",fr:"Ajouter",it:"Aggiungi",da:"Tilføj",pl:"Dodaj",ru:"Добавить",ar:"إضافة",no:"Legg til","pt-BR":"Adicionar",th:"เพิ่ม",tr:"Ekle",uk:"Додати"},"ui.skills.addFolder":{zh:"选择文件夹",en:"Select folder","zh-TW":"選擇資料夾",ko:"폴더 선택",ja:"フォルダを選択",de:"Ordner auswählen",es:"Seleccionar carpeta",fr:"Choisir un dossier",it:"Seleziona cartella",da:"Vælg mappe",pl:"Wybierz folder",ru:"Выбрать папку",ar:"اختر مجلدًا",no:"Velg mappe","pt-BR":"Selecionar pasta",th:"เลือกโฟลเดอร์",tr:"Klasör seç",uk:"Обрати папку"},"ui.skills.addZip":{zh:"上传 .zip",en:"Upload .zip","zh-TW":"上傳 .zip",ko:".zip 업로드",ja:".zip をアップロード",de:".zip hochladen",es:"Subir .zip",fr:"Téléverser .zip",it:"Carica .zip",da:"Upload .zip",pl:"Prześlij .zip",ru:"Загрузить .zip",ar:"رفع .zip",no:"Last opp .zip","pt-BR":"Enviar .zip",th:"อัปโหลด .zip",tr:".zip yükle",uk:"Завантажити .zip"},"ui.skills.addMd":{zh:"上传 SKILL.md",en:"Upload SKILL.md","zh-TW":"上傳 SKILL.md",ko:"SKILL.md 업로드",ja:"SKILL.md をアップロード",de:"SKILL.md hochladen",es:"Subir SKILL.md",fr:"Téléverser SKILL.md",it:"Carica SKILL.md",da:"Upload SKILL.md",pl:"Prześlij SKILL.md",ru:"Загрузить SKILL.md",ar:"رفع SKILL.md",no:"Last opp SKILL.md","pt-BR":"Enviar SKILL.md",th:"อัปโหลด SKILL.md",tr:"SKILL.md yükle",uk:"Завантажити SKILL.md"},"ui.skills.folderMissingSkillMd":{zh:"所选文件夹根目录下未找到 SKILL.md",en:"SKILL.md not found at the root of the selected folder","zh-TW":"所選資料夾根目錄下未找到 SKILL.md",ko:"선택한 폴더의 루트에 SKILL.md가 없습니다",ja:"選択したフォルダのルートに SKILL.md が見つかりません",de:"SKILL.md nicht im ausgewählten Stammordner gefunden",es:"SKILL.md no encontrado en la raíz de la carpeta seleccionada",fr:"SKILL.md introuvable à la racine du dossier sélectionné",it:"SKILL.md non trovato nella radice della cartella selezionata",da:"SKILL.md blev ikke fundet i roden af den valgte mappe",pl:"Nie znaleziono SKILL.md w katalogu głównym wybranego folderu",ru:"SKILL.md не найден в корне выбранной папки",ar:"لم يتم العثور على SKILL.md في جذر المجلد المحدد",no:"SKILL.md ble ikke funnet i roten av den valgte mappen","pt-BR":"SKILL.md não encontrado na raiz da pasta selecionada",th:"ไม่พบ SKILL.md ในโฟลเดอร์รากที่เลือก",tr:"Seçilen klasörün kökünde SKILL.md bulunamadı",uk:"SKILL.md не знайдено в кореневому каталозі вибраної папки"},"ui.skills.uploadSuccess":{zh:"Skill 添加成功",en:"Skill added successfully","zh-TW":"Skill 新增成功",ko:"Skill이 성공적으로 추가되었습니다",ja:"Skill が追加されました",de:"Skill erfolgreich hinzugefügt",es:"Skill añadida correctamente",fr:"Skill ajouté avec succès",it:"Skill aggiunta con successo",da:"Skill tilføjet",pl:"Skill dodany pomyślnie",ru:"Skill успешно добавлен",ar:"تمت إضافة المهارة بنجاح",no:"Skill lagt til","pt-BR":"Skill adicionada com sucesso",th:"เพิ่ม Skill สำเร็จ",tr:"Skill başarıyla eklendi",uk:"Skill успішно додано"},"ui.skills.uploadFailed":{zh:"Skill 添加失败:{{reason}}",en:"Failed to add skill: {{reason}}","zh-TW":"Skill 新增失敗:{{reason}}",ko:"Skill 추가 실패: {{reason}}",ja:"Skill の追加に失敗:{{reason}}",de:"Skill konnte nicht hinzugefügt werden: {{reason}}",es:"Error al añadir la skill: {{reason}}",fr:"Échec de l'ajout du skill : {{reason}}",it:"Aggiunta della Skill non riuscita: {{reason}}",da:"Kunne ikke tilføje Skill: {{reason}}",pl:"Nie udało się dodać Skilla: {{reason}}",ru:"Не удалось добавить Skill: {{reason}}",ar:"فشل في إضافة المهارة: {{reason}}",no:"Kunne ikke legge til Skill: {{reason}}","pt-BR":"Falha ao adicionar skill: {{reason}}",th:"เพิ่ม Skill ไม่สำเร็จ: {{reason}}",tr:"Skill eklenemedi: {{reason}}",uk:"Не вдалося додати Skill: {{reason}}"},"ui.skills.invalidType":{zh:"仅支持 .zip 或 SKILL.md 文件",en:"Only .zip or SKILL.md files are supported","zh-TW":"僅支援 .zip 或 SKILL.md 檔案",ko:".zip 또는 SKILL.md 파일만 지원됩니다",ja:".zip または SKILL.md ファイルのみサポート",de:"Nur .zip oder SKILL.md werden unterstützt",es:"Solo se admiten archivos .zip o SKILL.md",fr:"Seuls les fichiers .zip ou SKILL.md sont pris en charge",it:"Sono supportati solo file .zip o SKILL.md",da:"Kun .zip eller SKILL.md understøttes",pl:"Obsługiwane są tylko pliki .zip lub SKILL.md",ru:"Поддерживаются только .zip или SKILL.md",ar:"يتم دعم ملفات .zip أو SKILL.md فقط",no:"Bare .zip eller SKILL.md støttes","pt-BR":"Apenas arquivos .zip ou SKILL.md são suportados",th:"รองรับเฉพาะไฟล์ .zip หรือ SKILL.md เท่านั้น",tr:"Yalnızca .zip veya SKILL.md dosyaları desteklenir",uk:"Підтримуються лише файли .zip або SKILL.md"},"ui.skills.zipMissingSkillMd":{zh:"zip 中未找到 SKILL.md 文件",en:"SKILL.md not found in the zip","zh-TW":"zip 中未找到 SKILL.md 檔案",ko:"zip에서 SKILL.md를 찾을 수 없습니다",ja:"zip に SKILL.md が見つかりません",de:"SKILL.md nicht im ZIP gefunden",es:"SKILL.md no encontrado en el zip",fr:"SKILL.md introuvable dans le zip",it:"SKILL.md non trovato nello zip",da:"SKILL.md ikke fundet i zip-filen",pl:"Nie znaleziono SKILL.md w pliku zip",ru:"SKILL.md не найден в zip-архиве",ar:"SKILL.md غير موجود في ملف zip",no:"SKILL.md ikke funnet i zip-filen","pt-BR":"SKILL.md não encontrado no zip",th:"ไม่พบ SKILL.md ในไฟล์ zip",tr:"Zip dosyasında SKILL.md bulunamadı",uk:"SKILL.md не знайдено в zip-архіві"},"ui.noSkillsLoaded":{zh:"当前会话未启用任何 Skill",en:"No active skills in the current conversation","zh-TW":"目前會話未啟用任何 Skill",ko:"현재 대화에 활성 Skill이 없습니다",ja:"現在の会話に有効な Skill はありません",de:"In der aktuellen Konversation sind keine Skills aktiv",es:"No hay skills activas en la conversación actual",fr:"Aucun skill actif dans la conversation actuelle",it:"Nessuna skill attiva nella conversazione corrente",da:"Ingen aktive skills i den aktuelle samtale",pl:"Brak aktywnych skilli w bieżącej rozmowie",ru:"В текущей беседе нет активных Skill",ar:"لا توجد مهارات نشطة في المحادثة الحالية",no:"Ingen aktive skills i den gjeldende samtalen","pt-BR":"Nenhuma skill ativa na conversa atual",th:"ไม่มี Skill ที่ใช้งานในการสนทนาปัจจุบัน",tr:"Geçerli konuşmada etkin skill yok",uk:"У поточній розмові немає активних Skill"},"ui.skillSource.user":{zh:"用户",en:"USER","zh-TW":"使用者",ko:"사용자",ja:"ユーザー",de:"USER",es:"USUARIO",fr:"UTILISATEUR",it:"UTENTE",da:"BRUGER",pl:"UŻYT.",ru:"ПОЛЬЗ.",ar:"مستخدم",no:"BRUKER","pt-BR":"USUÁRIO",th:"ผู้ใช้",tr:"KULLANICI",uk:"КОРИСТ."},"ui.skillSource.project":{zh:"项目",en:"PROJECT","zh-TW":"專案",ko:"프로젝트",ja:"プロジェクト",de:"PROJEKT",es:"PROYECTO",fr:"PROJET",it:"PROGETTO",da:"PROJEKT",pl:"PROJEKT",ru:"ПРОЕКТ",ar:"مشروع",no:"PROSJEKT","pt-BR":"PROJETO",th:"โปรเจกต์",tr:"PROJE",uk:"ПРОЕКТ"},"ui.skillSource.plugin":{zh:"插件",en:"PLUGIN","zh-TW":"外掛",ko:"플러그인",ja:"プラグイン",de:"PLUGIN",es:"PLUGIN",fr:"PLUGIN",it:"PLUGIN",da:"PLUGIN",pl:"WTYCZKA",ru:"ПЛАГИН",ar:"إضافة",no:"PLUGIN","pt-BR":"PLUGIN",th:"ปลั๊กอิน",tr:"EKLENTI",uk:"ПЛАГIН"},"ui.skillSource.builtin":{zh:"内置",en:"BUILTIN","zh-TW":"內建",ko:"내장",ja:"組込",de:"BUILTIN",es:"INTEGRADO",fr:"INTÉGRÉ",it:"INCORP.",da:"INDBYGGET",pl:"WBUD.",ru:"ВСТРОЕН.",ar:"مدمج",no:"INNEBYGD","pt-BR":"INTEG.",th:"ในตัว",tr:"YERLEŞIK",uk:"ВБУД."},"ui.skillCannotDisableBuiltin":{zh:"内置 Skill,硬编码在 Codex 里,无法单独禁用",en:"Builtin skill — hardcoded in Codex, cannot be disabled individually","zh-TW":"內建 Skill,硬編碼在 Codex 裡,無法單獨停用",ko:"내장 Skill — Codex에 하드코딩되어 개별 비활성화 불가",ja:"組み込み Skill — Codex にハードコードされており個別無効化不可",de:"Eingebautes Skill — in Codex fest codiert, kann nicht einzeln deaktiviert werden",es:"Skill integrada — codificada en Codex, no se puede desactivar individualmente",fr:"Skill intégré — codé en dur dans Codex, ne peut être désactivé individuellement",it:"Skill integrata — codificata in Codex, non può essere disabilitata singolarmente",da:"Indbygget skill — hardkodet i Codex, kan ikke deaktiveres individuelt",pl:"Wbudowany skill — zakodowany w Codex, nie można wyłączyć osobno",ru:"Встроенный Skill — жёстко задан в Codex, нельзя отключить отдельно",ar:"مهارة مدمجة — مضمنة في Codex، لا يمكن تعطيلها فرديًا",no:"Innebygd skill — hardkodet i Codex, kan ikke deaktiveres individuelt","pt-BR":"Skill integrada — codificada no Codex, não pode ser desativada individualmente",th:"Skill ในตัว — hardcoded ใน Codex ไม่สามารถปิดแยกได้",tr:"Yerleşik skill — Codex'a kodlanmış, tek tek devre dışı bırakılamaz",uk:"Вбудований Skill — жорстко задано в Codex, не можна вимкнути окремо"},"ui.skillCannotDisablePlugin":{zh:"来自插件 {plugin},请用 `codex plugin disable <name>` CLI 禁用整个插件",en:"From plugin {plugin} — use `codex plugin disable <name>` CLI to disable the whole plugin","zh-TW":"來自外掛 {plugin},請用 `codex plugin disable <name>` CLI 停用整個外掛",ko:"플러그인 {plugin}에서 온 것 — `codex plugin disable <name>` CLI로 플러그인 전체 비활성화",ja:"プラグイン {plugin} から — `codex plugin disable <name>` CLI でプラグイン全体を無効化",de:"Aus Plugin {plugin} — verwenden Sie `codex plugin disable <name>` CLI, um das gesamte Plugin zu deaktivieren",es:"Del plugin {plugin} — use `codex plugin disable <name>` CLI para desactivar el plugin completo",fr:"Du plugin {plugin} — utilisez `codex plugin disable <name>` CLI pour désactiver le plugin entier",it:"Dal plugin {plugin} — usa `codex plugin disable <name>` CLI per disabilitare l'intero plugin",da:"Fra plugin {plugin} — brug `codex plugin disable <name>` CLI til at deaktivere hele plugin'et",pl:"Z wtyczki {plugin} — użyj `codex plugin disable <name>` CLI aby wyłączyć całą wtyczkę",ru:"Из плагина {plugin} — используйте `codex plugin disable <name>` CLI для отключения всего плагина",ar:"من الإضافة {plugin} — استخدم `codex plugin disable <name>` لتعطيل الإضافة بأكملها",no:"Fra plugin {plugin} — bruk `codex plugin disable <name>` CLI for å deaktivere hele plugin-et","pt-BR":"Do plugin {plugin} — use `codex plugin disable <name>` CLI para desativar o plugin inteiro",th:"จากปลั๊กอิน {plugin} — ใช้ `codex plugin disable <name>` CLI เพื่อปิดปลั๊กอินทั้งหมด",tr:"{plugin} eklentisinden — tüm eklentiyi devre dışı bırakmak için `codex plugin disable <name>` CLI kullanın",uk:"З плагіна {plugin} — використовуйте `codex plugin disable <name>` CLI, щоб вимкнути весь плагін"},"ui.skillToggleConflict":{zh:"{name} 目标目录已存在同名副本,请手动清理后重试",en:"{name}: target directory already contains a copy with the same name, please clean up manually and retry","zh-TW":"{name} 目標目錄已存在同名副本,請手動清理後重試",ko:"{name}: 대상 디렉토리에 동일 이름 사본이 이미 존재합니다. 수동 정리 후 재시도",ja:"{name}: 対象ディレクトリに同名のコピーが既に存在します。手動でクリーンアップして再試行してください",de:"{name}: Zielverzeichnis enthält bereits eine Kopie mit demselben Namen, bitte manuell bereinigen und erneut versuchen",es:"{name}: el directorio de destino ya contiene una copia con el mismo nombre, limpie manualmente y reintente",fr:"{name}: le répertoire cible contient déjà une copie du même nom, veuillez nettoyer manuellement et réessayer",it:"{name}: la directory di destinazione contiene già una copia con lo stesso nome, pulire manualmente e riprovare",da:"{name}: målkataloget indeholder allerede en kopi med samme navn, ryd op manuelt og prøv igen",pl:"{name}: katalog docelowy zawiera już kopię o tej samej nazwie, wyczyść ręcznie i spróbuj ponownie",ru:"{name}: целевой каталог уже содержит копию с тем же именем, очистите вручную и повторите",ar:"{name}: يحتوي المجلد الهدف بالفعل على نسخة بنفس الاسم، يرجى التنظيف يدويًا وإعادة المحاولة",no:"{name}: målkatalogen inneholder allerede en kopi med samme navn, rydd opp manuelt og prøv igjen","pt-BR":"{name}: o diretório de destino já contém uma cópia com o mesmo nome, limpe manualmente e tente novamente",th:"{name}: ไดเรกทอรีปลายทางมีสำเนาชื่อเดียวกันอยู่แล้ว กรุณาล้างด้วยตนเองแล้วลองอีกครั้ง",tr:"{name}: hedef dizinde aynı adla bir kopya zaten var, manuel olarak temizleyin ve yeniden deneyin",uk:"{name}: цільовий каталог уже містить копію з такою ж назвою, очистіть вручну та повторіть"},"ui.skillToggleDuplicate":{zh:"{name}:同名 Skill 在启用和禁用目录各有一份,开关已暂停,请手动删除其中一份后重试",en:"{name}: a same-named skill exists in both the enabled and disabled directories; toggling is paused — remove one copy manually and retry","zh-TW":"{name}:同名 Skill 在啟用和停用目錄各有一份,開關已暫停,請手動刪除其中一份後重試",ko:"{name}: 동일 이름 Skill이 활성화/비활성화 디렉토리에 각각 존재합니다. 전환이 일시 중지됨 — 하나를 수동으로 삭제한 후 재시도하세요",ja:"{name}: 同名の Skill が有効/無効ディレクトリの両方に存在します。切り替えを一時停止しました。どちらか一方を手動で削除して再試行してください",de:"{name}: Ein Skill mit gleichem Namen existiert sowohl im aktivierten als auch im deaktivierten Verzeichnis; Umschalten pausiert — entfernen Sie eine Kopie manuell und versuchen Sie es erneut",es:"{name}: existe una skill con el mismo nombre en los directorios habilitado y deshabilitado; el cambio está en pausa: elimine una copia manualmente y reintente",fr:"{name} : une skill du même nom existe à la fois dans le répertoire activé et désactivé ; le basculement est suspendu — supprimez une copie manuellement et réessayez",it:"{name}: esiste una skill con lo stesso nome sia nella directory abilitata che disabilitata; commutazione sospesa — rimuovi manualmente una copia e riprova",da:"{name}: en skill med samme navn findes i både den aktiverede og deaktiverede mappe; skift er sat på pause — fjern en kopi manuelt og prøv igen",pl:"{name}: skill o tej samej nazwie istnieje zarówno w katalogu włączonym, jak i wyłączonym; przełączanie wstrzymane — usuń jedną kopię ręcznie i spróbuj ponownie",ru:"{name}: skill с таким же именем существует и во включённом, и в отключённом каталоге; переключение приостановлено — удалите одну копию вручную и повторите",ar:"{name}: توجد مهارة بنفس الاسم في كل من المجلد المُفعّل والمُعطّل؛ تم إيقاف التبديل مؤقتًا — احذف نسخة واحدة يدويًا وأعد المحاولة",no:"{name}: en skill med samme navn finnes i både den aktiverte og deaktiverte katalogen; veksling er satt på pause — fjern én kopi manuelt og prøv igjen","pt-BR":"{name}: uma skill com o mesmo nome existe nos diretórios habilitado e desabilitado; alternância pausada — remova uma cópia manualmente e tente novamente",th:"{name}: มี Skill ชื่อเดียวกันอยู่ทั้งในไดเรกทอรีที่เปิดและปิดใช้งาน การสลับถูกหยุดชั่วคราว — ลบสำเนาหนึ่งด้วยตนเองแล้วลองอีกครั้ง",tr:"{name}: aynı adlı bir skill hem etkin hem de devre dışı dizinde mevcut; geçiş duraklatıldı — bir kopyayı manuel olarak silip yeniden deneyin",uk:"{name}: skill з такою ж назвою існує і в увімкненому, і у вимкненому каталозі; перемикання призупинено — видаліть одну копію вручну та повторіть"},"ui.skillDuplicateBadge":{zh:"同名 Skill 重复:启用与禁用目录各有一份,请手动删除其一",en:"Duplicate skill: a copy exists in both the enabled and disabled directories — remove one manually","zh-TW":"同名 Skill 重複:啟用與停用目錄各有一份,請手動刪除其一",ko:"중복 Skill: 활성화/비활성화 디렉토리에 각각 사본이 있습니다 — 하나를 수동으로 삭제하세요",ja:"重複した Skill: 有効/無効ディレクトリの両方にコピーがあります — どちらか一方を手動で削除してください",de:"Doppeltes Skill: eine Kopie existiert im aktivierten und im deaktivierten Verzeichnis — entfernen Sie eine manuell",es:"Skill duplicada: existe una copia en los directorios habilitado y deshabilitado — elimine una manualmente",fr:"Skill en double : une copie existe dans le répertoire activé et désactivé — supprimez-en une manuellement",it:"Skill duplicata: esiste una copia sia nella directory abilitata che disabilitata — rimuovine una manualmente",da:"Dublet-skill: en kopi findes i både den aktiverede og deaktiverede mappe — fjern én manuelt",pl:"Zduplikowany skill: kopia istnieje w katalogu włączonym i wyłączonym — usuń jedną ręcznie",ru:"Дубликат skill: копия есть и во включённом, и в отключённом каталоге — удалите одну вручную",ar:"مهارة مكررة: توجد نسخة في كل من المجلد المُفعّل والمُعطّل — احذف واحدة يدويًا",no:"Duplikat-skill: en kopi finnes i både aktivert og deaktivert katalog — fjern én manuelt","pt-BR":"Skill duplicada: existe uma cópia nos diretórios habilitado e desabilitado — remova uma manualmente",th:"Skill ซ้ำ: มีสำเนาอยู่ทั้งในไดเรกทอรีที่เปิดและปิดใช้งาน — ลบหนึ่งสำเนาด้วยตนเอง",tr:"Yinelenen skill: etkin ve devre dışı dizinlerde birer kopya var — birini manuel olarak silin",uk:"Дубльований skill: копія є і в увімкненому, і у вимкненому каталозі — видаліть одну вручну"},"ui.skillToggleFailed":{zh:"切换失败:{reason}",en:"Toggle failed: {reason}","zh-TW":"切換失敗:{reason}",ko:"전환 실패: {reason}",ja:"切り替え失敗: {reason}",de:"Umschalten fehlgeschlagen: {reason}",es:"Error al alternar: {reason}",fr:"Échec du basculement: {reason}",it:"Cambio fallito: {reason}",da:"Skift mislykkedes: {reason}",pl:"Przełączenie nieudane: {reason}",ru:"Переключение не удалось: {reason}",ar:"فشل التبديل: {reason}",no:"Bytte mislyktes: {reason}","pt-BR":"Falha ao alternar: {reason}",th:"สลับล้มเหลว: {reason}",tr:"Geçiş başarısız: {reason}",uk:"Перемикання не вдалося: {reason}"},"ui.skillDeleteConfirm":{zh:"永久删除 {name}?此操作不可恢复",en:"Permanently delete {name}? This cannot be undone","zh-TW":"永久刪除 {name}?此操作無法復原",ko:"{name}을(를) 영구 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다",ja:"{name} を完全に削除しますか?この操作は元に戻せません",de:"{name} dauerhaft löschen? Dies kann nicht rückgängig gemacht werden",es:"¿Eliminar {name} permanentemente? Esta acción no se puede deshacer",fr:"Supprimer définitivement {name} ? Cette action est irréversible",it:"Eliminare definitivamente {name}? L'operazione è irreversibile",da:"Slet {name} permanent? Dette kan ikke fortrydes",pl:"Trwale usunąć {name}? Tej operacji nie można cofnąć",ru:"Удалить {name} навсегда? Это действие необратимо",ar:"حذف {name} نهائيًا؟ لا يمكن التراجع عن هذا الإجراء",no:"Slett {name} permanent? Dette kan ikke angres","pt-BR":"Excluir {name} permanentemente? Esta ação não pode ser desfeita",th:"ลบ {name} อย่างถาวรหรือไม่? การดำเนินการนี้ไม่สามารถย้อนกลับได้",tr:"{name} kalıcı olarak silinsin mi? Bu işlem geri alınamaz",uk:"Видалити {name} назавжди? Цю дію не можна скасувати"},"ui.skillDeleteSuccess":{zh:"已永久删除 {name}",en:"Permanently deleted {name}","zh-TW":"已永久刪除 {name}",ko:"{name}을(를) 영구 삭제했습니다",ja:"{name} を完全に削除しました",de:"{name} dauerhaft gelöscht",es:"{name} eliminada permanentemente",fr:"{name} supprimé définitivement",it:"{name} eliminata definitivamente",da:"{name} slettet permanent",pl:"Trwale usunięto {name}",ru:"{name} удалён навсегда",ar:"تم حذف {name} نهائيًا",no:"{name} slettet permanent","pt-BR":"{name} excluída permanentemente",th:"ลบ {name} อย่างถาวรแล้ว",tr:"{name} kalıcı olarak silindi",uk:"{name} видалено назавжди"},"ui.skillDeleteFailed":{zh:"删除失败:{reason}",en:"Delete failed: {reason}","zh-TW":"刪除失敗:{reason}",ko:"삭제 실패: {reason}",ja:"削除に失敗しました: {reason}",de:"Löschen fehlgeschlagen: {reason}",es:"Error al eliminar: {reason}",fr:"Échec de la suppression: {reason}",it:"Eliminazione fallita: {reason}",da:"Sletning mislykkedes: {reason}",pl:"Usuwanie nieudane: {reason}",ru:"Удаление не удалось: {reason}",ar:"فشل الحذف: {reason}",no:"Sletting mislyktes: {reason}","pt-BR":"Falha ao excluir: {reason}",th:"ลบล้มเหลว: {reason}",tr:"Silme başarısız: {reason}",uk:"Не вдалося видалити: {reason}"},"ui.skillsBuiltinLabel":{zh:"内置 Skill(Codex 自带,不可单独禁用)",en:"Builtin skills (bundled with Codex, cannot be disabled individually)","zh-TW":"內建 Skill(Codex 自帶,不可單獨停用)",ko:"내장 Skill (Codex 기본 제공, 개별 비활성화 불가)",ja:"組み込み Skill(Codex 同梱、個別無効化不可)",de:"Eingebaute Skills (mit Codex geliefert, nicht einzeln deaktivierbar)",es:"Skills integradas (incluidas con Codex, no se pueden desactivar individualmente)",fr:"Skills intégrés (fournis avec Codex, non désactivables individuellement)",it:"Skill integrate (incluse con Codex, non disabilitabili singolarmente)",da:"Indbyggede skills (leveret med Codex, kan ikke deaktiveres individuelt)",pl:"Wbudowane skille (dostarczane z Codex, nie można wyłączyć osobno)",ru:"Встроенные Skill (поставляются с Codex, нельзя отключить отдельно)",ar:"مهارات مدمجة (مضمنة مع Codex، لا يمكن تعطيلها فرديًا)",no:"Innebygde skills (følger med Codex, kan ikke deaktiveres individuelt)","pt-BR":"Skills integradas (incluídas no Codex, não podem ser desativadas individualmente)",th:"Skill ในตัว (มาพร้อมกับ Codex ไม่สามารถปิดแยกได้)",tr:"Yerleşik skiller (Codex ile birlikte gelir, tek tek devre dışı bırakılamaz)",uk:"Вбудовані Skill (постачаються з Codex, не можна вимкнути окремо)"},"ui.skillsPluginLabel":{zh:"插件 Skill(请用 `codex plugin disable <name>` CLI 整体禁用)",en:"Plugin skills (use `codex plugin disable <name>` CLI to disable the whole plugin)","zh-TW":"外掛 Skill(請用 `codex plugin disable <name>` CLI 整體停用)",ko:"플러그인 Skill (`codex plugin disable <name>` CLI로 플러그인 전체 비활성화)",ja:"プラグイン Skill(`codex plugin disable <name>` CLI でプラグイン全体を無効化)",de:"Plugin-Skills (verwenden Sie `codex plugin disable <name>` CLI, um das gesamte Plugin zu deaktivieren)",es:"Skills de plugin (use `codex plugin disable <name>` CLI para desactivar el plugin completo)",fr:"Skills de plugin (utilisez `codex plugin disable <name>` CLI pour désactiver le plugin entier)",it:"Skill di plugin (usa `codex plugin disable <name>` CLI per disabilitare l'intero plugin)",da:"Plugin-skills (brug `codex plugin disable <name>` CLI til at deaktivere hele plugin'et)",pl:"Skille wtyczki (użyj `codex plugin disable <name>` CLI aby wyłączyć całą wtyczkę)",ru:"Skill плагина (используйте `codex plugin disable <name>` CLI для отключения всего плагина)",ar:"مهارات الإضافة (استخدم `codex plugin disable <name>` لتعطيل الإضافة بأكملها)",no:"Plugin-skills (bruk `codex plugin disable <name>` CLI for å deaktivere hele plugin-et)","pt-BR":"Skills de plugin (use `codex plugin disable <name>` CLI para desativar o plugin inteiro)",th:"Skill ปลั๊กอิน (ใช้ `codex plugin disable <name>` CLI เพื่อปิดปลั๊กอินทั้งหมด)",tr:"Eklenti skiller (tüm eklentiyi devre dışı bırakmak için `codex plugin disable <name>` CLI kullanın)",uk:"Skill плагіна (використовуйте `codex plugin disable <name>` CLI, щоб вимкнути весь плагін)"},"ui.skillsWarnOveruse":{zh:"过多的 skill 会导致 Codex 运行浪费 token 和出现不必要的幻觉",en:"Too many skills waste tokens and may cause unnecessary hallucinations","zh-TW":"過多的 skill 會導致 Codex 浪費 token 並出現不必要的幻覺",ko:"너무 많은 Skill은 토큰을 낭비하고 불필요한 환각을 일으킬 수 있습니다",ja:"Skill が多すぎるとトークンを浪費し、不要な幻覚を引き起こす可能性があります",de:"Zu viele Skills verschwenden Tokens und können zu unnötigen Halluzinationen führen",es:"Demasiadas skills desperdician tokens y pueden causar alucinaciones innecesarias",fr:"Trop de skills gaspillent des tokens et peuvent provoquer des hallucinations inutiles",it:"Troppe skill sprecano token e possono causare allucinazioni non necessarie",da:"For mange skills spilder tokens og kan forårsage unødvendige hallucinationer",pl:"Zbyt wiele skilli marnuje tokeny i może powodować niepotrzebne halucynacje",ru:"Слишком много Skill тратят токены и могут вызывать ненужные галлюцинации",ar:"وجود العديد من المهارات يهدر الرموز وقد يسبب هلوسات غير ضرورية",no:"For mange skills sløser tokens og kan forårsake unødvendige hallusinasjoner","pt-BR":"Muitas skills desperdiçam tokens e podem causar alucinações desnecessárias",th:"Skill มากเกินไปทำให้สิ้นเปลืองโทเคนและอาจทำให้เกิดภาพหลอนที่ไม่จำเป็น",tr:"Çok fazla skill token'ları boşa harcar ve gereksiz halüsinasyonlara neden olabilir",uk:"Забагато Skill витрачають токени та можуть викликати непотрібні галюцинації"},"ui.skillsWarnPollution":{zh:"超过 20 个 skill 可以被视为 Codex 的上下文被污染了,建议手工清除不必要的 skill",en:"Over 20 skills means the Codex context is polluted — manually remove unused ones","zh-TW":"超過 20 個 skill 可視為 Codex 上下文被汙染,建議手動清除不必要的 skill",ko:"20개가 넘으면 Codex 컨텍스트가 오염된 것으로 간주되므로 불필요한 Skill을 수동으로 제거하세요",ja:"20 を超えると Codex のコンテキストが汚染されたとみなされます。不要な Skill を手動で削除してください",de:"Mehr als 20 Skills gelten als verschmutzter Codex-Code-Kontext — entfernen Sie ungenutzte manuell",es:"Más de 20 skills se considera que contamina el contexto de Codex — elimina las innecesarias manualmente",fr:"Plus de 20 skills pollue le contexte de Codex — supprimez manuellement celles inutiles",it:"Oltre 20 skill inquinano il contesto di Codex — rimuovi manualmente quelle inutili",da:"Over 20 skills forurener Codex-konteksten — fjern ubrugte manuelt",pl:"Ponad 20 skilli zanieczyszcza kontekst Codex — usuń nieużywane ręcznie",ru:"Более 20 Skill загрязняют контекст Codex — удалите ненужные вручную",ar:"أكثر من 20 مهارة تلوث سياق Codex — أزل غير المستخدمة يدوياً",no:"Over 20 skills forurenser Codex-konteksten — fjern ubrukte manuelt","pt-BR":"Mais de 20 skills polui o contexto do Codex — remova as não utilizadas manualmente",th:"เกิน 20 Skill ถือว่าบริบทของ Codex ถูกปนเปื้อน — ลบ Skill ที่ไม่จำเป็นด้วยตนเอง",tr:"20'den fazla skill Codex bağlamının kirlendiği anlamına gelir — kullanılmayanları elle kaldırın",uk:"Понад 20 Skill забруднює контекст Codex — видаліть невикористовувані вручну"},"ui.mcpWarnOverload":{zh:"MCP 工具过多会增加上下文初始占用,并可能造成上下文污染",en:"Too many MCP tools increase initial context usage and risk context pollution","zh-TW":"MCP 工具過多會增加上下文初始佔用,並可能造成上下文汙染",ko:"MCP 도구가 너무 많으면 초기 컨텍스트 사용량이 늘고 컨텍스트 오염 위험이 있습니다",ja:"MCP ツールが多すぎると初期コンテキスト使用量が増え、コンテキスト汚染の恐れがあります",de:"Zu viele MCP-Tools erhöhen die anfängliche Kontextnutzung und können den Kontext verunreinigen",es:"Demasiadas herramientas MCP aumentan el uso inicial del contexto y pueden contaminarlo",fr:"Trop d'outils MCP augmentent l'utilisation initiale du contexte et risquent de le polluer",it:"Troppi strumenti MCP aumentano l'uso iniziale del contesto e rischiano di inquinarlo",da:"For mange MCP-værktøjer øger den indledende kontekstbrug og kan forurene konteksten",pl:"Zbyt wiele narzędzi MCP zwiększa początkowe zużycie kontekstu i może go zanieczyścić",ru:"Слишком много MCP-инструментов увеличивают начальное использование контекста и могут его загрязнить",ar:"وجود الكثير من أدوات MCP يزيد من استهلاك السياق الأولي وقد يلوّث السياق",no:"For mange MCP-verktøy øker den innledende kontekstbruken og kan forurense konteksten","pt-BR":"Muitas ferramentas MCP aumentam o uso inicial de contexto e podem poluí-lo",th:"เครื่องมือ MCP มากเกินไปเพิ่มการใช้บริบทเริ่มต้นและอาจทำให้บริบทปนเปื้อน",tr:"Çok fazla MCP aracı başlangıç bağlam kullanımını artırır ve bağlamı kirletebilir",uk:"Забагато інструментів MCP збільшують початкове використання контексту та можуть його забруднити"},"ui.skillsLoadError.http":{zh:"服务器错误 (HTTP {status})",en:"Server error (HTTP {status})","zh-TW":"伺服器錯誤 (HTTP {status})",ko:"서버 오류 (HTTP {status})",ja:"サーバーエラー (HTTP {status})",de:"Serverfehler (HTTP {status})",es:"Error del servidor (HTTP {status})",fr:"Erreur serveur (HTTP {status})",it:"Errore del server (HTTP {status})",da:"Serverfejl (HTTP {status})",pl:"Błąd serwera (HTTP {status})",ru:"Ошибка сервера (HTTP {status})",ar:"خطأ في الخادم (HTTP {status})",no:"Serverfeil (HTTP {status})","pt-BR":"Erro do servidor (HTTP {status})",th:"ข้อผิดพลาดของเซิร์ฟเวอร์ (HTTP {status})",tr:"Sunucu hatası (HTTP {status})",uk:"Помилка сервера (HTTP {status})"},"ui.skillsLoadError.network":{zh:"网络请求失败",en:"Network request failed","zh-TW":"網路請求失敗",ko:"네트워크 요청 실패",ja:"ネットワーク要求に失敗しました",de:"Netzwerkanfrage fehlgeschlagen",es:"Error de red",fr:"Échec de la requête réseau",it:"Richiesta di rete fallita",da:"Netværksanmodning mislykkedes",pl:"Żądanie sieciowe nie powiodło się",ru:"Ошибка сетевого запроса",ar:"فشل طلب الشبكة",no:"Nettverksforespørsel mislyktes","pt-BR":"Falha na requisição de rede",th:"คำขอเครือข่ายล้มเหลว",tr:"Ağ isteği başarısız",uk:"Мережевий запит не вдався"},"ui.skillsLoadFailed":{zh:"加载 Skill 列表失败:{reason}",en:"Failed to load skills: {reason}","zh-TW":"載入 Skill 列表失敗:{reason}",ko:"Skill 목록 로드 실패: {reason}",ja:"Skill 一覧の読み込み失敗: {reason}",de:"Skills laden fehlgeschlagen: {reason}",es:"Error al cargar skills: {reason}",fr:"Échec du chargement des skills: {reason}",it:"Caricamento skill fallito: {reason}",da:"Kunne ikke indlæse skills: {reason}",pl:"Nie udało się załadować skilli: {reason}",ru:"Не удалось загрузить Skill: {reason}",ar:"فشل تحميل المهارات: {reason}",no:"Kunne ikke laste skills: {reason}","pt-BR":"Falha ao carregar skills: {reason}",th:"โหลด Skill ไม่สำเร็จ: {reason}",tr:"Skill yükleme başarısız: {reason}",uk:"Не вдалося завантажити Skill: {reason}"},"ui.tokens":{zh:"Token",en:"Tokens","zh-TW":"Token",ko:"토큰",ja:"トークン",de:"Token",es:"Tokens",fr:"Jetons",it:"Token",da:"Tokens",pl:"Tokeny",ru:"Токены",ar:"الرموز",no:"Tokens","pt-BR":"Tokens",th:"โทเค็น",tr:"Tokenler",uk:"Токени"},"ui.userPromptNav":{zh:"用户 Prompt 导航",en:"User Prompt Nav","zh-TW":"使用者 Prompt 導航",ko:"사용자 프롬프트 탐색",ja:"ユーザープロンプトナビ",de:"Benutzer-Prompt-Navigation",es:"Navegación de prompts",fr:"Navigation des prompts",it:"Navigazione prompt utente",da:"Bruger-prompt navigation",pl:"Nawigacja promptów",ru:"Навигация по промптам",ar:"تنقل المطالبات",no:"Bruker-prompt navigasjon","pt-BR":"Navegação de prompts",th:"นำทางพรอมต์ผู้ใช้",tr:"Kullanıcı İstemi Gezinme",uk:"Навігація промптів"},"ui.session":{zh:"会话",en:"Session","zh-TW":"會話",ko:"세션",ja:"セッション",de:"Sitzung",es:"Sesión",fr:"Session",it:"Sessione",da:"Session",pl:"Sesja",ru:"Сессия",ar:"جلسة",no:"Økt","pt-BR":"Sessão",th:"เซสชัน",tr:"Oturum",uk:"Сесія"},"ui.loadEarlierConversations":{zh:"加载更早的对话",en:"Load earlier conversations","zh-TW":"載入更早的對話",ko:"이전 대화 로드",ja:"以前の会話を読み込む",de:"Ältere Unterhaltungen laden",es:"Cargar conversaciones anteriores",fr:"Charger les conversations précédentes",it:"Carica conversazioni precedenti",da:"Indlæs ældre samtaler",pl:"Załaduj wcześniejsze rozmowy",ru:"Загрузить ранние разговоры",ar:"تحميل محادثات أقدم",no:"Last inn eldre samtaler","pt-BR":"Carregar conversas anteriores",th:"โหลดบทสนทนาก่อนหน้า",tr:"Eski konuşmaları yükle",uk:"Завантажити попередні розмови"},"ui.loadMoreHistoryFailed":{zh:"加载更早对话失败,请重试",en:"Failed to load earlier conversations, please retry","zh-TW":"載入更早對話失敗,請重試",ko:"이전 대화 로드 실패, 재시도해주세요",ja:"以前の会話の読み込みに失敗、再試行してください",de:"Laden früherer Unterhaltungen fehlgeschlagen, bitte erneut versuchen",es:"Error al cargar conversaciones anteriores, vuelva a intentarlo",fr:"Échec du chargement des conversations précédentes, veuillez réessayer",it:"Caricamento conversazioni precedenti non riuscito, riprova",da:"Kunne ikke indlæse ældre samtaler, prøv igen",pl:"Nie udało się załadować wcześniejszych rozmów, spróbuj ponownie",ru:"Не удалось загрузить ранние разговоры, попробуйте снова",ar:"فشل تحميل المحادثات الأقدم، يرجى المحاولة مرة أخرى",no:"Kunne ikke laste eldre samtaler, prøv igjen","pt-BR":"Falha ao carregar conversas anteriores, tente novamente",th:"โหลดบทสนทนาก่อนหน้าไม่สำเร็จ กรุณาลองใหม่",tr:"Eski konuşmalar yüklenemedi, lütfen tekrar deneyin",uk:"Не вдалося завантажити попередні розмови, спробуйте знову"},"ui.loadingMoreHistory":{zh:"加载中...",en:"Loading...","zh-TW":"載入中...",ko:"로딩 중...",ja:"読み込み中...",de:"Laden...",es:"Cargando...",fr:"Chargement...",it:"Caricamento...",da:"Indlæser...",pl:"Ładowanie...",ru:"Загрузка...",ar:"جارٍ التحميل...",no:"Laster...","pt-BR":"Carregando...",th:"กำลังโหลด...",tr:"Yükleniyor...",uk:"Завантаження..."},"ui.allConversationsLoaded":{zh:"已加载全部对话",en:"All conversations loaded","zh-TW":"已載入全部對話",ko:"모든 대화가 로드됨",ja:"すべての会話を読み込みました",de:"Alle Unterhaltungen geladen",es:"Todas las conversaciones cargadas",fr:"Toutes les conversations chargées",it:"Tutte le conversazioni caricate",da:"Alle samtaler indlæst",pl:"Wszystkie rozmowy załadowane",ru:"Все разговоры загружены",ar:"تم تحميل جميع المحادثات",no:"Alle samtaler lastet","pt-BR":"Todas as conversas carregadas",th:"โหลดบทสนทนาทั้งหมดแล้ว",tr:"Tüm konuşmalar yüklendi",uk:"Всі розмови завантажено"},"ui.loadSessionPlaceholder":{zh:"加载此会话 ({count} 条消息)",en:"Load this session ({count} messages)","zh-TW":"載入此對話 ({count} 則訊息)",ko:"이 세션 로드 ({count}개 메시지)",ja:"このセッションを読み込む ({count} メッセージ)",de:"Diese Sitzung laden ({count} Nachrichten)",es:"Cargar esta sesión ({count} mensajes)",fr:"Charger cette session ({count} messages)",it:"Carica questa sessione ({count} messaggi)",da:"Indlæs denne session ({count} beskeder)",pl:"Załaduj tę sesję ({count} wiadomości)",ru:"Загрузить эту сессию ({count} сообщений)",ar:"تحميل هذه الجلسة ({count} رسائل)",no:"Last inn denne økten ({count} meldinger)","pt-BR":"Carregar esta sessão ({count} mensagens)",th:"โหลดเซสชันนี้ ({count} ข้อความ)",tr:"Bu oturumu yükle ({count} mesaj)",uk:"Завантажити цю сесію ({count} повідомлень)"},"ui.proxySwitch":{zh:"代理热切换",en:"Hot-Switch Proxy","zh-TW":"代理熱切換",ko:"프록시 핫스위칭",ja:"プロキシ ホットスイッチ",de:"Proxy-Hotswitch",es:"Cambio rápido de proxy",fr:"Changement à chaud du proxy",it:"Cambio rapido proxy",da:"Proxy hot-switch",pl:"Szybkie przełączanie proxy",ru:"Горячее переключение прокси",ar:"تبديل الوكيل الفوري",no:"Proxy hot-switch","pt-BR":"Troca rápida de proxy",th:"สลับพร็อกซีแบบร้อน",tr:"Proxy hızlı geçiş",uk:"Гаряче перемикання проксі"},"ui.menuPin":{zh:"钉住",en:"Pin","zh-TW":"釘住",ko:"고정",ja:"ピン留め",de:"Anheften",es:"Fijar",fr:"Épingler",it:"Fissa",da:"Fastgør",pl:"Przypnij",ru:"Закрепить",ar:"تثبيت",no:"Fest","pt-BR":"Fixar",th:"ปักหมุด",tr:"Sabitle",uk:"Закріпити"},"ui.menuUnpin":{zh:"取消钉住",en:"Unpin","zh-TW":"取消釘住",ko:"고정 해제",ja:"ピン留めを解除",de:"Lösen",es:"Quitar fijación",fr:"Détacher",it:"Rimuovi",da:"Frigør",pl:"Odepnij",ru:"Открепить",ar:"إلغاء التثبيت",no:"Løsne","pt-BR":"Desafixar",th:"เลิกปักหมุด",tr:"Sabitlemeyi kaldır",uk:"Відкріпити"},"ui.proxy.builtin":{zh:"内置",en:"Built-in","zh-TW":"內建",ko:"내장",ja:"ビルトイン",de:"Eingebaut",es:"Integrado",fr:"Intégré",it:"Integrato",da:"Indbygget",pl:"Wbudowany",ru:"Встроенный",ar:"مدمج",no:"Innebygd","pt-BR":"Integrado",th:"ในตัว",tr:"Yerleşik",uk:"Вбудований"},"ui.proxy.addProxy":{zh:"添加代理",en:"Add Proxy","zh-TW":"新增代理",ko:"프록시 추가",ja:"プロキシ追加",de:"Proxy hinzufügen",es:"Agregar proxy",fr:"Ajouter un proxy",it:"Aggiungi proxy",da:"Tilføj proxy",pl:"Dodaj proxy",ru:"Добавить прокси",ar:"إضافة وكيل",no:"Legg til proxy","pt-BR":"Adicionar proxy",th:"เพิ่มพร็อกซี",tr:"Proxy ekle",uk:"Додати проксі"},"ui.proxy.editProxy":{zh:"编辑代理",en:"Edit Proxy","zh-TW":"編輯代理",ko:"프록시 편집",ja:"プロキシ編集",de:"Proxy bearbeiten",es:"Editar proxy",fr:"Modifier le proxy",it:"Modifica proxy",da:"Rediger proxy",pl:"Edytuj proxy",ru:"Изменить прокси",ar:"تعديل الوكيل",no:"Rediger proxy","pt-BR":"Editar proxy",th:"แก้ไขพร็อกซี",tr:"Proxy düzenle",uk:"Редагувати проксі"},"ui.proxy.deleteProxy":{zh:"删除代理",en:"Delete Proxy","zh-TW":"刪除代理",ko:"프록시 삭제",ja:"プロキシ削除",de:"Proxy löschen",es:"Eliminar proxy",fr:"Supprimer le proxy",it:"Elimina proxy",da:"Slet proxy",pl:"Usuń proxy",ru:"Удалить прокси",ar:"حذف الوكيل",no:"Slett proxy","pt-BR":"Excluir proxy",th:"ลบพร็อกซี",tr:"Proxy sil",uk:"Видалити проксі"},"ui.proxy.deleteConfirm":{zh:"确定删除「{name}」?",en:'Delete "{name}"?',"zh-TW":"確定刪除「{name}」?",ko:'"{name}"을(를) 삭제하시겠습니까?',ja:"「{name}」を削除しますか?",de:"„{name}“ löschen?",es:'¿Eliminar "{name}"?',fr:"Supprimer « {name} » ?",it:'Eliminare "{name}"?',da:'Slet "{name}"?',pl:'Usunąć "{name}"?',ru:"Удалить «{name}»?",ar:'حذف "{name}"؟',no:'Slette "{name}"?',"pt-BR":'Excluir "{name}"?',th:'ลบ "{name}"?',tr:'"{name}" silinsin mi?',uk:"Видалити «{name}»?"},"ui.proxy.name":{zh:"名称",en:"Name","zh-TW":"名稱",ko:"이름",ja:"名前",de:"Name",es:"Nombre",fr:"Nom",it:"Nome",da:"Navn",pl:"Nazwa",ru:"Название",ar:"الاسم",no:"Navn","pt-BR":"Nome",th:"ชื่อ",tr:"Ad",uk:"Назва"},"ui.proxy.baseURL":{zh:"地址",en:"Base URL","zh-TW":"地址",ko:"주소",ja:"アドレス",de:"Adresse",es:"Dirección",fr:"Adresse",it:"Indirizzo",da:"Adresse",pl:"Adres",ru:"Адрес",ar:"العنوان",no:"Adresse","pt-BR":"Endereço",th:"ที่อยู่",tr:"Adres",uk:"Адреса"},"ui.proxy.apiKey":{zh:"API Key",en:"API Key","zh-TW":"API Key",ko:"API Key",ja:"API Key",de:"API Key",es:"API Key",fr:"API Key",it:"API Key",da:"API Key",pl:"API Key",ru:"API Key",ar:"API Key",no:"API Key","pt-BR":"API Key",th:"API Key",tr:"API Key",uk:"API Key"},"ui.proxy.models":{zh:"模型",en:"Models","zh-TW":"模型",ko:"모델",ja:"モデル",de:"Modelle",es:"Modelos",fr:"Modèles",it:"Modelli",da:"Modeller",pl:"Modele",ru:"Модели",ar:"النماذج",no:"Modeller","pt-BR":"Modelos",th:"โมเดล",tr:"Modeller",uk:"Моделі"},"ui.proxy.activeModel":{zh:"当前模型",en:"Active Model","zh-TW":"目前模型",ko:"현재 모델",ja:"現在のモデル",de:"Aktives Modell",es:"Modelo activo",fr:"Modèle actif",it:"Modello attivo",da:"Aktivt model",pl:"Aktywny model",ru:"Активная модель",ar:"النموذج النشط",no:"Aktiv modell","pt-BR":"Modelo ativo",th:"โมเดลที่ใช้งาน",tr:"Aktif model",uk:"Активна модель"},"ui.proxy.effort":{zh:"努力级别",en:"Effort Level","zh-TW":"努力級別",ko:"노력 수준",ja:"努力レベル",de:"Aufwandsstufe",es:"Nivel de esfuerzo",fr:"Niveau d'effort",it:"Livello di impegno",da:"Indsatsniveau",pl:"Poziom wysiłku",ru:"Уровень усилий",ar:"مستوى الجهد",no:"Innsatsnivå","pt-BR":"Nível de esforço",th:"ระดับความพยายาม",tr:"Çaba düzeyi",uk:"Рівень зусиль"},"ui.proxy.effortDefault":{zh:"默认(不强制)",en:"Default (no override)","zh-TW":"預設(不強制)",ko:"기본값 (재정의 없음)",ja:"デフォルト(上書きなし)",de:"Standard (keine Änderung)",es:"Predeterminado (sin anular)",fr:"Par défaut (sans forçage)",it:"Predefinito (nessuna forzatura)",da:"Standard (ingen tilsidesættelse)",pl:"Domyślnie (bez wymuszania)",ru:"По умолчанию (без переопределения)",ar:"افتراضي (بدون تجاوز)",no:"Standard (ingen overstyring)","pt-BR":"Padrão (sem substituição)",th:"ค่าเริ่มต้น (ไม่บังคับ)",tr:"Varsayılan (geçersiz kılma yok)",uk:"За замовчуванням (без перевизначення)"},"ui.proxy.modelMapHint":{zh:"可选:填写后会把捕获到的请求模型替换为该 OpenAI/Codex 模型;留空则透传原始模型。",en:"Optional: replaces the captured request model with this OpenAI/Codex model. Leave blank to keep the original model.","zh-TW":"可選:填寫後會將捕獲到的請求模型替換為此 OpenAI/Codex 模型;留空則透傳原始模型。",ko:"선택 사항: 입력하면 캡처된 요청 모델을 이 OpenAI/Codex 모델로 바꿉니다. 비워두면 원래 모델을 유지합니다.",ja:"任意:入力すると、捕捉したリクエストモデルをこの OpenAI/Codex モデルに置き換えます。空欄なら元のモデルを保持します。",de:"Optional: ersetzt das erfasste Anfrage-Modell durch dieses OpenAI/Codex-Modell. Leer lassen, um das ursprüngliche Modell zu behalten.",es:"Opcional: reemplaza el modelo capturado de la solicitud por este modelo OpenAI/Codex. Déjalo vacío para conservar el modelo original.",fr:"Facultatif : remplace le modèle de requête capturé par ce modèle OpenAI/Codex. Laisser vide pour conserver le modèle d'origine.",it:"Opzionale: sostituisce il modello della richiesta catturata con questo modello OpenAI/Codex. Lascia vuoto per mantenere il modello originale.",da:"Valgfrit: erstatter den registrerede anmodningsmodel med denne OpenAI/Codex-model. Lad stå tomt for at beholde den oprindelige model.",pl:"Opcjonalnie: zastępuje przechwycony model żądania tym modelem OpenAI/Codex. Pozostaw puste, aby zachować oryginalny model.",ru:"Необязательно: заменяет модель перехваченного запроса этой моделью OpenAI/Codex. Оставьте пустым, чтобы сохранить исходную модель.",ar:"اختياري: يستبدل نموذج الطلب الملتقط بهذا النموذج من OpenAI/Codex. اتركه فارغًا للإبقاء على النموذج الأصلي.",no:"Valgfritt: erstatter den fangede forespørselsmodellen med denne OpenAI/Codex-modellen. La stå tomt for å beholde den opprinnelige modellen.","pt-BR":"Opcional: substitui o modelo capturado da requisição por este modelo OpenAI/Codex. Deixe em branco para manter o modelo original.",th:"ไม่บังคับ: แทนที่โมเดลของคำขอที่จับได้ด้วยโมเดล OpenAI/Codex นี้ เว้นว่างไว้เพื่อใช้โมเดลเดิม",tr:"İsteğe bağlı: yakalanan istek modelini bu OpenAI/Codex modeliyle değiştirir. Özgün modeli korumak için boş bırakın.",uk:"Необов'язково: замінює модель перехопленого запиту цією моделлю OpenAI/Codex. Залиште порожнім, щоб зберегти початкову модель."},"ui.proxy.save":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.proxy.cancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annuller",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.proxy.openConfigDir":{zh:"打开配置文件目录",en:"Open config directory","zh-TW":"開啟設定檔目錄",ko:"설정 파일 디렉토리 열기",ja:"設定ファイルのディレクトリを開く",de:"Konfigurationsverzeichnis öffnen",es:"Abrir directorio de configuración",fr:"Ouvrir le dossier de configuration",it:"Apri cartella di configurazione",da:"Åbn konfigurationsmappe",pl:"Otwórz katalog konfiguracji",ru:"Открыть каталог конфигурации",ar:"فتح مجلد الإعدادات",no:"Åpne konfigurasjonsmappe","pt-BR":"Abrir diretório de configuração",th:"เปิดไดเรกทอรีการกำหนดค่า",tr:"Yapılandırma dizinini aç",uk:"Відкрити каталог конфігурації"},"ui.proxy.maxWarning":{zh:"如果你是 Codex 官方 Max 订阅用户,请勿使用该功能",en:"Do not use this feature if you are a Codex Max subscriber","zh-TW":"如果你是 Codex 官方 Max 訂閱用戶,請勿使用此功能",ko:"Codex Max 구독자인 경우 이 기능을 사용하지 마세요",ja:"Codex Max サブスクリプションをご利用の場合、この機能は使用しないでください",de:"Verwenden Sie diese Funktion nicht, wenn Sie Codex Max abonniert haben",es:"No utilice esta función si tiene suscripción Codex Max",fr:"N'utilisez pas cette fonction si vous êtes abonné Codex Max",it:"Non utilizzare questa funzione se sei abbonato a Codex Max",da:"Brug ikke denne funktion, hvis du har Codex Max-abonnement",pl:"Nie używaj tej funkcji, jeśli masz subskrypcję Codex Max",ru:"Не используйте эту функцию, если у вас подписка Codex Max",ar:"لا تستخدم هذه الميزة إذا كنت مشتركًا في Codex Max",no:"Ikke bruk denne funksjonen hvis du har Codex Max-abonnement","pt-BR":"Não use este recurso se você é assinante do Codex Max",th:"อย่าใช้ฟีเจอร์นี้หากคุณเป็นสมาชิก Codex Max",tr:"Codex Max abonesi iseniz bu özelliği kullanmayın",uk:"Не використовуйте цю функцію, якщо ви підписник Codex Max"},"ui.proxy.requiredFields":{zh:"名称、地址、API Key 为必填项",en:"Name, Base URL, and API Key are required","zh-TW":"名稱、地址、API Key 為必填項",ko:"이름, 주소, API Key는 필수 항목입니다",ja:"名前、アドレス、API Key は必須です",de:"Name, Adresse und API Key sind erforderlich",es:"Nombre, dirección y API Key son obligatorios",fr:"Nom, adresse et API Key sont obligatoires",it:"Nome, indirizzo e API Key sono obbligatori",da:"Navn, adresse og API Key er påkrævet",pl:"Nazwa, adres i API Key są wymagane",ru:"Название, адрес и API Key обязательны",ar:"الاسم والعنوان و API Key مطلوبة",no:"Navn, adresse og API Key er påkrevd","pt-BR":"Nome, endereço e API Key são obrigatórios",th:"ชื่อ ที่อยู่ และ API Key จำเป็นต้องกรอก",tr:"Ad, adres ve API Key zorunludur",uk:"Назва, адреса та API Key є обов'язковими"},"ui.ultraplan":{zh:"UltraPlan",en:"UltraPlan","zh-TW":"UltraPlan",ko:"UltraPlan",ja:"UltraPlan",de:"UltraPlan",es:"UltraPlan",fr:"UltraPlan",it:"UltraPlan",da:"UltraPlan",pl:"UltraPlan",ru:"UltraPlan",ar:"UltraPlan",no:"UltraPlan","pt-BR":"UltraPlan",th:"UltraPlan",tr:"UltraPlan",uk:"UltraPlan"},"ui.ultraplan.resizeHandle":{zh:"拖拽调整大小",en:"Drag to resize","zh-TW":"拖曳調整大小",ko:"드래그하여 크기 조정",ja:"ドラッグでサイズ変更",de:"Zum Ändern der Größe ziehen",es:"Arrastrar para cambiar tamaño",fr:"Glisser pour redimensionner",it:"Trascina per ridimensionare",da:"Træk for at ændre størrelse",pl:"Przeciągnij, aby zmienić rozmiar",ru:"Перетащите, чтобы изменить размер",ar:"اسحب لتغيير الحجم",no:"Dra for å endre størrelse","pt-BR":"Arraste para redimensionar",th:"ลากเพื่อปรับขนาด",tr:"Yeniden boyutlandırmak için sürükleyin",uk:"Перетягніть, щоб змінити розмір"},"ui.ultraplan.title":{zh:"UltraPlan — 至尊许愿机",en:"UltraPlan — Ultimate Wishing Machine","zh-TW":"UltraPlan — 至尊許願機",ko:"UltraPlan — 최고의 소원 기계",ja:"UltraPlan — 究極のウィッシングマシン",de:"UltraPlan — Ultimative Wunschmaschine",es:"UltraPlan — Máquina de deseos suprema",fr:"UltraPlan — Machine à vœux suprême",it:"UltraPlan — Macchina dei desideri suprema",da:"UltraPlan — Den ultimative ønskemaskine",pl:"UltraPlan — Najwyższa maszyna życzeń",ru:"UltraPlan — Супер-машина желаний",ar:"UltraPlan — آلة الأمنيات العظمى",no:"UltraPlan — Den ultimate ønskemaskinen","pt-BR":"UltraPlan — Máquina de desejos suprema",th:"UltraPlan — เครื่องอธิษฐานสูงสุด",tr:"UltraPlan — Nihai dilek makinesi",uk:"UltraPlan — Найвища машина бажань"},"ui.ultraplan.roleCodeExpert":{zh:"代码专家",en:"Code Expert","zh-TW":"程式碼專家",ko:"코드 전문가",ja:"コードエキスパート",de:"Code-Experte",es:"Experto en código",fr:"Expert code",it:"Esperto di codice",da:"Kodeekspert",pl:"Ekspert kodu",ru:"Эксперт по коду",ar:"خبير الكود",no:"Kodeekspert","pt-BR":"Especialista em código",th:"ผู้เชี่ยวชาญโค้ด",tr:"Kod uzmanı",uk:"Експерт з коду"},"ui.ultraplan.roleResearchExpert":{zh:"调研专家",en:"Research Expert","zh-TW":"調研專家",ko:"리서치 전문가",ja:"リサーチエキスパート",de:"Recherche-Experte",es:"Experto en investigación",fr:"Expert recherche",it:"Esperto di ricerca",da:"Forskningsekspert",pl:"Ekspert badawczy",ru:"Эксперт по исследованиям",ar:"خبير الأبحاث",no:"Forskningsekspert","pt-BR":"Especialista em pesquisa",th:"ผู้เชี่ยวชาญวิจัย",tr:"Araştırma uzmanı",uk:"Експерт з досліджень"},"ui.ultraplan.roleCodeExpertDesc":{zh:"资深工程师:多智能体探索 + 计划评审 + 高质量实现,专注代码审查、重构、性能与可维护性。",en:"Senior engineer: multi-agent exploration, plan review and high-quality implementation — code review, refactor, performance, maintainability.","zh-TW":"資深工程師:多智能體探索 + 計畫評審 + 高品質實作,專注程式碼審查、重構、效能與可維護性。",ko:"시니어 엔지니어: 멀티 에이전트 탐색 + 계획 검토 + 고품질 구현 — 코드 리뷰, 리팩터링, 성능, 유지보수성에 집중.",ja:"シニアエンジニア:マルチエージェント探索 + 計画レビュー + 高品質な実装 — コードレビュー、リファクタリング、性能、保守性に注力。",de:"Senior-Ingenieur: Multi-Agent-Exploration, Planprüfung und hochwertige Umsetzung – Code-Review, Refactoring, Performance, Wartbarkeit.",es:"Ingeniero sénior: exploración multiagente, revisión de planes e implementación de alta calidad: revisión de código, refactorización, rendimiento y mantenibilidad.",fr:"Ingénieur senior : exploration multi-agents, revue de plan et implémentation de haute qualité — revue de code, refactorisation, performance, maintenabilité.",it:"Ingegnere senior: esplorazione multi-agente, revisione del piano e implementazione di alta qualità — revisione del codice, refactoring, prestazioni, manutenibilità.",da:"Senioringeniør: multi-agent-udforskning, plangennemgang og implementering af høj kvalitet – kodegennemgang, refaktorering, ydeevne, vedligeholdelse.",pl:"Starszy inżynier: eksploracja wieloagentowa, przegląd planu i wysokiej jakości implementacja — przegląd kodu, refaktoryzacja, wydajność, łatwość utrzymania.",ru:"Старший инженер: многоагентное исследование, ревью плана и качественная реализация — ревью кода, рефакторинг, производительность, поддерживаемость.",ar:"مهندس أول: استكشاف متعدد الوكلاء، ومراجعة الخطة، وتنفيذ عالي الجودة — مراجعة الشيفرة وإعادة الهيكلة والأداء وقابلية الصيانة.",no:"Senioringeniør: multiagent-utforsking, plangjennomgang og implementering av høy kvalitet – kodegjennomgang, refaktorering, ytelse, vedlikeholdbarhet.","pt-BR":"Engenheiro sênior: exploração multiagente, revisão de plano e implementação de alta qualidade — revisão de código, refatoração, desempenho e manutenibilidade.",th:"วิศวกรอาวุโส: การสำรวจแบบหลายเอเจนต์ + การรีวิวแผน + การพัฒนาคุณภาพสูง — เน้นการรีวิวโค้ด รีแฟกเตอร์ ประสิทธิภาพ และการบำรุงรักษา",tr:"Kıdemli mühendis: çoklu ajan keşfi, plan incelemesi ve yüksek kaliteli uygulama — kod incelemesi, yeniden düzenleme, performans, sürdürülebilirlik.",uk:"Senior-інженер: багатоагентне дослідження, рев'ю плану та якісна реалізація — рев'ю коду, рефакторинг, продуктивність, супровід."},"ui.ultraplan.roleResearchExpertDesc":{zh:"资深调研分析师:多源检索 + 交叉求证 + 结构化产出,适合行业调研、竞品分析与可信报告撰写。",en:"Senior research analyst: multi-source search, cross-verification and structured deliverables — industry research, competitive analysis, credible reports.","zh-TW":"資深調研分析師:多源檢索 + 交叉求證 + 結構化產出,適合行業調研、競品分析與可信報告撰寫。",ko:"시니어 리서치 분석가: 다중 출처 검색 + 교차 검증 + 구조화된 산출물 — 산업 리서치, 경쟁사 분석, 신뢰할 수 있는 보고서.",ja:"シニアリサーチアナリスト:多源検索 + クロス検証 + 構造化された成果物 — 業界調査、競合分析、信頼できるレポート。",de:"Senior-Research-Analyst: Multi-Quellen-Suche, Kreuzverifizierung und strukturierte Ergebnisse – Branchenrecherche, Wettbewerbsanalyse, glaubwürdige Berichte.",es:"Analista de investigación sénior: búsqueda multifuente, verificación cruzada y entregables estructurados: investigación de mercado, análisis de la competencia e informes fiables.",fr:"Analyste de recherche senior : recherche multi-sources, vérification croisée et livrables structurés — étude de marché, analyse concurrentielle, rapports fiables.",it:"Analista di ricerca senior: ricerca multi-fonte, verifica incrociata e deliverable strutturati — ricerca di settore, analisi della concorrenza, report affidabili.",da:"Senior researchanalytiker: multikildesøgning, krydsverificering og strukturerede leverancer – brancheresearch, konkurrentanalyse, troværdige rapporter.",pl:"Starszy analityk badawczy: wyszukiwanie wieloźródłowe, weryfikacja krzyżowa i ustrukturyzowane wyniki — badania branżowe, analiza konkurencji, wiarygodne raporty.",ru:"Старший аналитик-исследователь: многоисточниковый поиск, перекрёстная проверка и структурированные результаты — отраслевые исследования, анализ конкурентов, достоверные отчёты.",ar:"محلل أبحاث أول: بحث متعدد المصادر، وتحقق متقاطع، ومخرجات منظمة — أبحاث السوق وتحليل المنافسين وتقارير موثوقة.",no:"Senior researchanalytiker: multikildesøk, kryssverifisering og strukturerte leveranser – bransjeresearch, konkurrentanalyse, troverdige rapporter.","pt-BR":"Analista de pesquisa sênior: busca multifonte, verificação cruzada e entregáveis estruturados — pesquisa de mercado, análise da concorrência e relatórios confiáveis.",th:"นักวิเคราะห์วิจัยอาวุโส: การค้นหาหลายแหล่ง + การตรวจสอบไขว้ + ผลงานเชิงโครงสร้าง — เหมาะกับการวิจัยอุตสาหกรรม การวิเคราะห์คู่แข่ง และการเขียนรายงานที่น่าเชื่อถือ",tr:"Kıdemli araştırma analisti: çok kaynaklı arama, çapraz doğrulama ve yapılandırılmış çıktılar — sektör araştırması, rekabet analizi, güvenilir raporlar.",uk:"Senior-аналітик досліджень: багатоджерельний пошук, перехресна перевірка та структуровані результати — галузеві дослідження, аналіз конкурентів, надійні звіти."},"ui.ultraplan.manageExperts":{zh:"管理专家",en:"Manage experts","zh-TW":"管理專家",ko:"전문가 관리",ja:"エキスパートを管理",de:"Experten verwalten",es:"Gestionar expertos",fr:"Gérer les experts",it:"Gestisci esperti",da:"Administrer eksperter",pl:"Zarządzaj ekspertami",ru:"Управление экспертами",ar:"إدارة الخبراء",no:"Administrer eksperter","pt-BR":"Gerenciar especialistas",th:"จัดการผู้เชี่ยวชาญ",tr:"Uzmanları yönet",uk:"Керування експертами"},"ui.ultraplan.expertShow":{zh:"显示",en:"Show","zh-TW":"顯示",ko:"표시",ja:"表示",de:"Anzeigen",es:"Mostrar",fr:"Afficher",it:"Mostra",da:"Vis",pl:"Pokaż",ru:"Показать",ar:"إظهار",no:"Vis","pt-BR":"Mostrar",th:"แสดง",tr:"Göster",uk:"Показати"},"ui.ultraplan.keepOneVisible":{zh:"至少保留一个可见专家",en:"Keep at least one expert visible","zh-TW":"至少保留一個可見專家",ko:"최소 한 명의 전문가는 표시해야 합니다",ja:"少なくとも 1 人のエキスパートは表示してください",de:"Mindestens ein Experte muss sichtbar bleiben",es:"Mantén al menos un experto visible",fr:"Gardez au moins un expert visible",it:"Mantieni almeno un esperto visibile",da:"Behold mindst én ekspert synlig",pl:"Zachowaj widocznego co najmniej jednego eksperta",ru:"Оставьте хотя бы одного эксперта видимым",ar:"أبقِ خبيرًا واحدًا على الأقل ظاهرًا",no:"Behold minst én ekspert synlig","pt-BR":"Mantenha pelo menos um especialista visível",th:"แสดงผู้เชี่ยวชาญอย่างน้อยหนึ่งคน",tr:"En az bir uzmanı görünür tutun",uk:"Залиште видимим хоча б одного експерта"},"ui.ultraplan.placeholder":{zh:"这是一个超级许愿机,它能完成非常复杂的任务,只有普通输入无法完成的任务才需要启用该功能",en:"This is a super wishing machine for complex tasks. Only use it when normal input can't handle the job.","zh-TW":"這是一個超級許願機,它能完成非常複雜的任務,只有普通輸入無法完成的任務才需要啟用該功能",ko:"복잡한 작업을 위한 슈퍼 위시 머신입니다. 일반 입력으로 처리할 수 없는 작업에만 사용하세요.",ja:"これは超複雑なタスクを処理できるスーパーウィッシングマシンです。通常の入力では対応できないタスクにのみ使用してください。",de:"Dies ist eine Super-Wunschmaschine für komplexe Aufgaben. Verwenden Sie sie nur, wenn normale Eingaben nicht ausreichen.",es:"Esta es una súper máquina de deseos para tareas complejas. Úsala solo cuando la entrada normal no pueda manejar el trabajo.",fr:"C'est une super machine à vœux pour les tâches complexes. Utilisez-la uniquement quand l'entrée normale ne suffit pas.",it:"Questa è una super macchina dei desideri per compiti complessi. Usala solo quando l'input normale non è sufficiente.",da:"Dette er en super-ønskemaskine til komplekse opgaver. Brug den kun, når normal input ikke kan klare opgaven.",pl:"To super maszyna życzeń do złożonych zadań. Używaj jej tylko, gdy normalne dane wejściowe nie wystarczą.",ru:"Это супер-машина желаний для сложных задач. Используйте только когда обычный ввод не справляется.",ar:"هذه آلة أمنيات خارقة للمهام المعقدة. استخدمها فقط عندما لا يكفي الإدخال العادي.",no:"Dette er en super-ønskemaskin for komplekse oppgaver. Bruk den kun når vanlig input ikke kan håndtere jobben.","pt-BR":"Esta é uma super máquina de desejos para tarefas complexas. Use apenas quando a entrada normal não conseguir lidar com o trabalho.",th:"นี่คือเครื่องอธิษฐานสุดยอดสำหรับงานที่ซับซ้อน ใช้เฉพาะเมื่อการป้อนข้อมูลปกติไม่สามารถจัดการได้",tr:"Bu, karmaşık görevler için süper bir dilek makinesidir. Yalnızca normal giriş yeterli olmadığında kullanın.",uk:"Це супер-машина бажань для складних завдань. Використовуйте лише коли звичайний ввід не справляється."},"ui.ultraplan.pasteImageHint":{zh:"可以直接粘贴剪贴板中的图片",en:"You can paste images directly from the clipboard","zh-TW":"可以直接貼上剪貼簿中的圖片",ko:"클립보드의 이미지를 바로 붙여넣을 수 있어요",ja:"クリップボードの画像を直接貼り付けできます",de:"Du kannst Bilder direkt aus der Zwischenablage einfügen",es:"Puedes pegar imágenes directamente desde el portapapeles",fr:"Vous pouvez coller des images directement depuis le presse-papiers",it:"Puoi incollare immagini direttamente dagli appunti",da:"Du kan indsætte billeder direkte fra udklipsholderen",pl:"Możesz wkleić obrazy bezpośrednio ze schowka",ru:"Можно вставить изображение прямо из буфера обмена",ar:"يمكنك لصق الصور مباشرةً من الحافظة",no:"Du kan lime inn bilder direkte fra utklippstavlen","pt-BR":"Você pode colar imagens diretamente da área de transferência",th:"คุณสามารถวางรูปภาพจากคลิปบอร์ดได้โดยตรง",tr:"Panodaki görselleri doğrudan yapıştırabilirsiniz",uk:"Можна вставити зображення прямо з буфера обміну"},"ui.ultraplan.send":{zh:"发送",en:"Send","zh-TW":"發送",ko:"보내기",ja:"送信",de:"Senden",es:"Enviar",fr:"Envoyer",it:"Invia",da:"Send",pl:"Wyślij",ru:"Отправить",ar:"إرسال",no:"Send","pt-BR":"Enviar",th:"ส่ง",tr:"Gönder",uk:"Надіслати"},"ui.ultraplan.upload":{zh:"添加附件",en:"Add Attachment","zh-TW":"新增附件",ko:"첨부 추가",ja:"添付を追加",de:"Anhang hinzufügen",es:"Agregar adjunto",fr:"Ajouter une pièce jointe",it:"Aggiungi allegato",da:"Tilføj vedhæftning",pl:"Dodaj załącznik",ru:"Добавить вложение",ar:"إضافة مرفق",no:"Legg til vedlegg","pt-BR":"Adicionar anexo",th:"เพิ่มไฟล์แนบ",tr:"Ek ekle",uk:"Додати вкладення"},"ui.ultraplan.customExpert":{zh:"自定义专家",en:"Custom Expert","zh-TW":"自訂專家",ko:"커스텀 전문가",ja:"カスタムエキスパート",de:"Eigener Experte",es:"Experto personalizado",fr:"Expert personnalisé",it:"Esperto personalizzato",da:"Tilpasset ekspert",pl:"Własny ekspert",ru:"Пользовательский эксперт",ar:"خبير مخصص",no:"Tilpasset ekspert","pt-BR":"Especialista personalizado",th:"ผู้เชี่ยวชาญกำหนดเอง",tr:"Özel uzman",uk:"Власний експерт"},"ui.ultraplan.customCreateTitle":{zh:"新建自定义专家",en:"New Custom Expert","zh-TW":"新建自訂專家",ko:"새 커스텀 전문가",ja:"新しいカスタムエキスパート",de:"Neuer benutzerdefinierter Experte",es:"Nuevo experto personalizado",fr:"Nouvel expert personnalisé",it:"Nuovo esperto personalizzato",da:"Ny tilpasset ekspert",pl:"Nowy niestandardowy ekspert",ru:"Новый пользовательский эксперт",ar:"خبير مخصص جديد",no:"Ny tilpasset ekspert","pt-BR":"Novo especialista personalizado",th:"ผู้เชี่ยวชาญกำหนดเองใหม่",tr:"Yeni özel uzman",uk:"Новий користувацький експерт"},"ui.ultraplan.customEditTitle":{zh:"编辑自定义专家",en:"Edit Custom Expert","zh-TW":"編輯自訂專家",ko:"커스텀 전문가 편집",ja:"カスタムエキスパートを編集",de:"Benutzerdefinierten Experten bearbeiten",es:"Editar experto personalizado",fr:"Modifier l'expert personnalisé",it:"Modifica esperto personalizzato",da:"Rediger tilpasset ekspert",pl:"Edytuj niestandardowego eksperta",ru:"Редактировать пользовательского эксперта",ar:"تعديل الخبير المخصص",no:"Rediger tilpasset ekspert","pt-BR":"Editar especialista personalizado",th:"แก้ไขผู้เชี่ยวชาญกำหนดเอง",tr:"Özel uzmanı düzenle",uk:"Редагувати користувацького експерта"},"ui.ultraplan.customTitlePlaceholder":{zh:"专家名称,例如:架构师",en:"Expert name, e.g. Architect","zh-TW":"專家名稱,例如:架構師",ko:"전문가 이름, 예: 아키텍트",ja:"エキスパート名、例:アーキテクト",de:"Expertenname, z. B. Architekt",es:"Nombre del experto, p. ej. Arquitecto",fr:"Nom de l'expert, par ex. Architecte",it:"Nome dell'esperto, es. Architetto",da:"Ekspertnavn, f.eks. Arkitekt",pl:"Nazwa eksperta, np. Architekt",ru:"Имя эксперта, например: Архитектор",ar:"اسم الخبير، مثل: المهندس المعماري",no:"Ekspertnavn, f.eks. Arkitekt","pt-BR":"Nome do especialista, ex.: Arquiteto",th:"ชื่อผู้เชี่ยวชาญ เช่น สถาปนิก",tr:"Uzman adı, örn. Mimar",uk:"Ім'я експерта, наприклад: Архітектор"},"ui.ultraplan.customContentPlaceholder":{zh:"输入你的提示词正文。发送时会自动用 <system-reminder> 包裹。",en:"Enter your prompt body. It will be auto-wrapped in <system-reminder> tags when sent.","zh-TW":"輸入你的提示詞正文。發送時會自動用 <system-reminder> 包裹。",ko:"프롬프트 본문을 입력하세요. 전송 시 <system-reminder> 태그로 자동 래핑됩니다.",ja:"プロンプト本文を入力してください。送信時に <system-reminder> タグで自動的にラップされます。",de:"Prompt-Text eingeben. Er wird beim Senden automatisch in <system-reminder>-Tags eingehüllt.",es:"Introduzca el cuerpo del prompt. Se envolverá automáticamente en etiquetas <system-reminder> al enviar.",fr:"Saisissez le corps de l'invite. Il sera automatiquement encapsulé dans des balises <system-reminder> lors de l'envoi.",it:"Inserisci il corpo del prompt. Verrà automaticamente racchiuso in tag <system-reminder> all'invio.",da:"Indtast prompt-teksten. Den bliver automatisk pakket ind i <system-reminder>-tags ved afsendelse.",pl:"Wprowadź treść polecenia. Zostanie automatycznie owinięta tagami <system-reminder> przy wysłaniu.",ru:"Введите текст промпта. При отправке он будет автоматически обёрнут в теги <system-reminder>.",ar:"أدخل نص الموجّه. سيتم لفه تلقائيًا بعلامات <system-reminder> عند الإرسال.",no:"Skriv inn prompt-innholdet. Det pakkes automatisk inn i <system-reminder>-tagger ved sending.","pt-BR":"Digite o corpo do prompt. Será envolvido automaticamente em tags <system-reminder> ao enviar.",th:"ป้อนเนื้อหาพรอมต์ ระบบจะห่อด้วยแท็ก <system-reminder> อัตโนมัติเมื่อส่ง",tr:"Komut gövdesini girin. Gönderildiğinde otomatik olarak <system-reminder> etiketleriyle sarılacaktır.",uk:"Введіть текст запиту. При відправці він буде автоматично обгорнутий тегами <system-reminder>."},"ui.ultraplan.customSave":{zh:"保存",en:"Save","zh-TW":"儲存",ko:"저장",ja:"保存",de:"Speichern",es:"Guardar",fr:"Enregistrer",it:"Salva",da:"Gem",pl:"Zapisz",ru:"Сохранить",ar:"حفظ",no:"Lagre","pt-BR":"Salvar",th:"บันทึก",tr:"Kaydet",uk:"Зберегти"},"ui.ultraplan.customCreate":{zh:"新建自定义专家",en:"Add custom expert","zh-TW":"新增自訂專家",ko:"커스텀 전문가 추가",ja:"カスタムエキスパートを追加",de:"Benutzerdefinierten Experten hinzufügen",es:"Añadir experto personalizado",fr:"Ajouter un expert personnalisé",it:"Aggiungi esperto personalizzato",da:"Tilføj brugerdefineret ekspert",pl:"Dodaj niestandardowego eksperta",ru:"Добавить пользовательского эксперта",ar:"إضافة خبير مخصص",no:"Legg til egendefinert ekspert","pt-BR":"Adicionar especialista personalizado",th:"เพิ่มผู้เชี่ยวชาญที่กำหนดเอง",tr:"Özel uzman ekle",uk:"Додати користувацького експерта"},"ui.ultraplan.customCancel":{zh:"取消",en:"Cancel","zh-TW":"取消",ko:"취소",ja:"キャンセル",de:"Abbrechen",es:"Cancelar",fr:"Annuler",it:"Annulla",da:"Annullér",pl:"Anuluj",ru:"Отмена",ar:"إلغاء",no:"Avbryt","pt-BR":"Cancelar",th:"ยกเลิก",tr:"İptal",uk:"Скасувати"},"ui.ultraplan.customDelete":{zh:"删除",en:"Delete","zh-TW":"刪除",ko:"삭제",ja:"削除",de:"Löschen",es:"Eliminar",fr:"Supprimer",it:"Elimina",da:"Slet",pl:"Usuń",ru:"Удалить",ar:"حذف",no:"Slett","pt-BR":"Excluir",th:"ลบ",tr:"Sil",uk:"Видалити"},"ui.ultraplan.customDeleteConfirm":{zh:"确定删除这个自定义专家吗?",en:"Delete this custom expert?","zh-TW":"確定刪除這個自訂專家嗎?",ko:"이 커스텀 전문가를 삭제하시겠습니까?",ja:"このカスタムエキスパートを削除しますか?",de:"Diesen benutzerdefinierten Experten löschen?",es:"¿Eliminar este experto personalizado?",fr:"Supprimer cet expert personnalisé ?",it:"Eliminare questo esperto personalizzato?",da:"Slet denne tilpassede ekspert?",pl:"Usunąć tego niestandardowego eksperta?",ru:"Удалить этого пользовательского эксперта?",ar:"حذف هذا الخبير المخصص؟",no:"Slette denne tilpassede eksperten?","pt-BR":"Excluir este especialista personalizado?",th:"ลบผู้เชี่ยวชาญกำหนดเองนี้หรือไม่?",tr:"Bu özel uzman silinsin mi?",uk:"Видалити цього користувацького експерта?"},"ui.ultraplan.customContentTemplate":{en:"<system-reminder>\n[SCOPED INSTRUCTION] The following instructions apply only to the next 1-3 interactions. Once the task is complete, these instructions should gradually decrease in priority and no longer affect subsequent interactions. You should be adept at utilizing tools such as `request_user_input`, `update_plan`, and `multi_agent_v${verson}`, rather than relying solely on plain text processing. Before execution, you must ensure that the `update_plan`, `multi_agent_v${verson}`, `request_user_input` and `parellel` tools are loaded.\n\n</system-reminder>"},"ui.ultraplan.collapseDoc":{zh:"折叠参考文档",en:"Collapse reference docs","zh-TW":"摺疊參考文件",ko:"참고 문서 접기",ja:"リファレンス文書を折りたたむ",de:"Referenzdokumente einklappen",es:"Contraer documentos de referencia",fr:"Réduire les documents de référence",it:"Comprimi i documenti di riferimento",da:"Skjul referencedokumenter",pl:"Zwiń dokumenty referencyjne",ru:"Свернуть справочные документы",ar:"طي الوثائق المرجعية",no:"Skjul referansedokumenter","pt-BR":"Recolher documentos de referência",th:"ย่อเอกสารอ้างอิง",tr:"Referans belgelerini daralt",uk:"Згорнути довідкові документи"},"ui.ultraplan.expandDoc":{zh:"展开参考文档",en:"Expand reference docs","zh-TW":"展開參考文件",ko:"참고 문서 펼치기",ja:"リファレンス文書を展開",de:"Referenzdokumente ausklappen",es:"Expandir documentos de referencia",fr:"Développer les documents de référence",it:"Espandi i documenti di riferimento",da:"Vis referencedokumenter",pl:"Rozwiń dokumenty referencyjne",ru:"Развернуть справочные документы",ar:"توسيع الوثائق المرجعية",no:"Vis referansedokumenter","pt-BR":"Expandir documentos de referência",th:"ขยายเอกสารอ้างอิง",tr:"Referans belgelerini genişlet",uk:"Розгорнути довідкові документи"},"ui.ultraplan.presetAdd":{zh:"载入模版",en:"Load template","zh-TW":"載入範本",ko:"템플릿 불러오기",ja:"テンプレートを読み込む",de:"Vorlage laden",es:"Cargar plantilla",fr:"Charger un modèle",it:"Carica modello",da:"Indlæs skabelon",pl:"Wczytaj szablon",ru:"Загрузить шаблон",ar:"تحميل قالب",no:"Last inn mal","pt-BR":"Carregar modelo",th:"โหลดเทมเพลต",tr:"Şablon yükle",uk:"Завантажити шаблон"},"ui.ultraplan.presetPickerTitle":{zh:"选择预设专家",en:"Choose a preset expert","zh-TW":"選擇預設專家",ko:"프리셋 전문가 선택",ja:"プリセット専門家を選択",de:"Voreingestellten Experten wählen",es:"Elegir un experto preestablecido",fr:"Choisir un expert prédéfini",it:"Scegli un esperto predefinito",da:"Vælg en forudindstillet ekspert",pl:"Wybierz eksperta predefiniowanego",ru:"Выберите готового эксперта",ar:"اختر خبيرًا معدًا مسبقًا",no:"Velg en forhåndsdefinert ekspert","pt-BR":"Escolha um especialista predefinido",th:"เลือกผู้เชี่ยวชาญสำเร็จรูป",tr:"Hazır uzman seç",uk:"Виберіть попередньо налаштованого експерта"},"ui.ultraplan.presetLoad":{zh:"载入",en:"Load","zh-TW":"載入",ko:"불러오기",ja:"読み込む",de:"Laden",es:"Cargar",fr:"Charger",it:"Carica",da:"Indlæs",pl:"Wczytaj",ru:"Загрузить",ar:"تحميل",no:"Last inn","pt-BR":"Carregar",th:"โหลด",tr:"Yükle",uk:"Завантажити"},"ui.ultraplan.presetEmpty":{zh:"暂无预设专家",en:"No preset experts","zh-TW":"暫無預設專家",ko:"프리셋 전문가가 없습니다",ja:"プリセット専門家がありません",de:"Keine voreingestellten Experten",es:"No hay expertos preestablecidos",fr:"Aucun expert prédéfini",it:"Nessun esperto predefinito",da:"Ingen forudindstillede eksperter",pl:"Brak ekspertów predefiniowanych",ru:"Нет готовых экспертов",ar:"لا يوجد خبراء معدون مسبقًا",no:"Ingen forhåndsdefinerte eksperter","pt-BR":"Nenhum especialista predefinido",th:"ไม่มีผู้เชี่ยวชาญสำเร็จรูป",tr:"Hazır uzman yok",uk:"Немає попередньо налаштованих експертів"},"ui.ultraplan.presetPreviewPlaceholder":{zh:"从左侧选择一个专家查看内容",en:"Select an expert on the left to preview its content","zh-TW":"從左側選擇一個專家檢視內容",ko:"왼쪽에서 전문가를 선택하면 내용이 표시됩니다",ja:"左側で専門家を選択すると内容が表示されます",de:"Wählen Sie links einen Experten, um den Inhalt anzuzeigen",es:"Selecciona un experto a la izquierda para ver su contenido",fr:"Sélectionnez un expert à gauche pour afficher son contenu",it:"Seleziona un esperto a sinistra per vederne il contenuto",da:"Vælg en ekspert til venstre for at se indholdet",pl:"Wybierz eksperta po lewej, aby zobaczyć treść",ru:"Выберите эксперта слева, чтобы увидеть содержимое",ar:"اختر خبيرًا من اليسار لمعاينة محتواه",no:"Velg en ekspert til venstre for å se innholdet","pt-BR":"Selecione um especialista à esquerda para ver o conteúdo",th:"เลือกผู้เชี่ยวชาญทางซ้ายเพื่อดูเนื้อหา",tr:"İçeriği görmek için soldan bir uzman seçin",uk:"Виберіть експерта ліворуч, щоб переглянути вміст"},"ui.ultraplan.presetLoadError":{zh:"加载预设专家失败",en:"Failed to load preset experts","zh-TW":"載入預設專家失敗",ko:"프리셋 전문가를 불러오지 못했습니다",ja:"プリセット専門家の読み込みに失敗しました",de:"Voreingestellte Experten konnten nicht geladen werden",es:"Error al cargar los expertos preestablecidos",fr:"Échec du chargement des experts prédéfinis",it:"Impossibile caricare gli esperti predefiniti",da:"Kunne ikke indlæse forudindstillede eksperter",pl:"Nie udało się wczytać ekspertów predefiniowanych",ru:"Не удалось загрузить готовых экспертов",ar:"فشل تحميل الخبراء المعدين مسبقًا",no:"Kunne ikke laste forhåndsdefinerte eksperter","pt-BR":"Falha ao carregar especialistas predefinidos",th:"โหลดผู้เชี่ยวชาญสำเร็จรูปไม่สำเร็จ",tr:"Hazır uzmanlar yüklenemedi",uk:"Не вдалося завантажити попередньо налаштованих експертів"},"ui.ultraplan.presetOverwriteConfirm":{zh:"载入将覆盖当前的名称和内容,确定继续?",en:"Loading will overwrite the current name and content. Continue?","zh-TW":"載入將覆蓋目前的名稱和內容,確定繼續?",ko:"불러오면 현재 이름과 내용을 덮어씁니다. 계속할까요?",ja:"読み込むと現在の名前と内容が上書きされます。続行しますか?",de:"Beim Laden werden Name und Inhalt überschrieben. Fortfahren?",es:"Cargar sobrescribirá el nombre y el contenido actuales. ¿Continuar?",fr:"Le chargement écrasera le nom et le contenu actuels. Continuer ?",it:"Il caricamento sovrascriverà nome e contenuto attuali. Continuare?",da:"Indlæsning overskriver det aktuelle navn og indhold. Fortsæt?",pl:"Wczytanie nadpisze bieżącą nazwę i treść. Kontynuować?",ru:"Загрузка перезапишет текущее имя и содержимое. Продолжить?",ar:"سيؤدي التحميل إلى الكتابة فوق الاسم والمحتوى الحاليين. هل تريد المتابعة؟",no:"Innlasting overskriver gjeldende navn og innhold. Fortsette?","pt-BR":"Carregar substituirá o nome e o conteúdo atuais. Continuar?",th:"การโหลดจะเขียนทับชื่อและเนื้อหาปัจจุบัน ดำเนินการต่อหรือไม่?",tr:"Yükleme mevcut adı ve içeriği üzerine yazar. Devam edilsin mi?",uk:"Завантаження перезапише поточну назву та вміст. Продовжити?"},"ui.taskNotification.result":{zh:"结果详情",en:"Result details","zh-TW":"結果詳情",ko:"결과 상세",ja:"結果の詳細",de:"Ergebnisdetails",es:"Detalles del resultado",fr:"Détails du résultat",it:"Dettagli del risultato",da:"Resultatdetaljer",pl:"Szczegóły wyniku",ru:"Подробности результата",ar:"تفاصيل النتيجة",no:"Resultatdetaljer","pt-BR":"Detalhes do resultado",th:"รายละเอียดผลลัพธ์",tr:"Sonuç detayları",uk:"Деталі результату"},"ui.mdEditor.bold":{zh:"粗体",en:"Bold","zh-TW":"粗體",ko:"굵게",ja:"太字",de:"Fett",es:"Negrita",fr:"Gras",it:"Grassetto",da:"Fed",pl:"Pogrubienie",ru:"Полужирный",ar:"غامق",no:"Fet","pt-BR":"Negrito",th:"ตัวหนา",tr:"Kalın",uk:"Жирний"},"ui.mdEditor.italic":{zh:"斜体",en:"Italic","zh-TW":"斜體",ko:"기울임꼴",ja:"斜体",de:"Kursiv",es:"Cursiva",fr:"Italique",it:"Corsivo",da:"Kursiv",pl:"Kursywa",ru:"Курсив",ar:"مائل",no:"Kursiv","pt-BR":"Itálico",th:"ตัวเอียง",tr:"İtalik",uk:"Курсив"},"ui.mdEditor.heading":{zh:"标题",en:"Heading","zh-TW":"標題",ko:"제목",ja:"見出し",de:"Überschrift",es:"Título",fr:"Titre",it:"Titolo",da:"Overskrift",pl:"Nagłówek",ru:"Заголовок",ar:"عنوان",no:"Overskrift","pt-BR":"Título",th:"หัวเรื่อง",tr:"Başlık",uk:"Заголовок"},"ui.mdEditor.list":{zh:"列表",en:"List","zh-TW":"列表",ko:"목록",ja:"リスト",de:"Liste",es:"Lista",fr:"Liste",it:"Elenco",da:"Liste",pl:"Lista",ru:"Список",ar:"قائمة",no:"Liste","pt-BR":"Lista",th:"รายการ",tr:"Liste",uk:"Список"},"ui.mdEditor.link":{zh:"链接",en:"Link","zh-TW":"連結",ko:"링크",ja:"リンク",de:"Link",es:"Enlace",fr:"Lien",it:"Collegamento",da:"Link",pl:"Link",ru:"Ссылка",ar:"رابط",no:"Lenke","pt-BR":"Link",th:"ลิงก์",tr:"Bağlantı",uk:"Посилання"},"ui.mdEditor.code":{zh:"代码",en:"Code","zh-TW":"程式碼",ko:"코드",ja:"コード",de:"Code",es:"Código",fr:"Code",it:"Codice",da:"Kode",pl:"Kod",ru:"Код",ar:"كود",no:"Kode","pt-BR":"Código",th:"โค้ด",tr:"Kod",uk:"Код"},"ui.mdEditor.image":{zh:"图片",en:"Image","zh-TW":"圖片",ko:"이미지",ja:"画像",de:"Bild",es:"Imagen",fr:"Image",it:"Immagine",da:"Billede",pl:"Obraz",ru:"Изображение",ar:"صورة",no:"Bilde","pt-BR":"Imagem",th:"รูปภาพ",tr:"Görsel",uk:"Зображення"},"ui.mdEditor.quote":{zh:"引用",en:"Quote","zh-TW":"引用",ko:"인용",ja:"引用",de:"Zitat",es:"Cita",fr:"Citation",it:"Citazione",da:"Citat",pl:"Cytat",ru:"Цитата",ar:"اقتباس",no:"Sitat","pt-BR":"Citação",th:"คำอ้างอิง",tr:"Alıntı",uk:"Цитата"},"ui.mdEditor.uploadFailed":{zh:"图片处理失败",en:"Image processing failed","zh-TW":"圖片處理失敗",ko:"이미지 처리 실패",ja:"画像の処理に失敗しました",de:"Bildverarbeitung fehlgeschlagen",es:"Error al procesar la imagen",fr:"Échec du traitement de l'image",it:"Elaborazione immagine non riuscita",da:"Billedbehandling mislykkedes",pl:"Przetwarzanie obrazu nie powiodło się",ru:"Ошибка обработки изображения",ar:"فشل معالجة الصورة",no:"Bildebehandling mislyktes","pt-BR":"Falha no processamento da imagem",th:"การประมวลผลรูปภาพล้มเหลว",tr:"Görsel işleme başarısız oldu",uk:"Помилка обробки зображення"},"ui.mdEditor.imageCompressing":{zh:"正在处理图片...",en:"Processing image...","zh-TW":"正在處理圖片...",ko:"이미지 처리 중...",ja:"画像を処理中...",de:"Bild wird verarbeitet...",es:"Procesando imagen...",fr:"Traitement de l'image...",it:"Elaborazione immagine...",da:"Behandler billede...",pl:"Przetwarzanie obrazu...",ru:"Обработка изображения...",ar:"جارٍ معالجة الصورة...",no:"Behandler bilde...","pt-BR":"Processando imagem...",th:"กำลังประมวลผลรูปภาพ...",tr:"Görsel işleniyor...",uk:"Обробка зображення..."},"ui.mdEditor.unsavedConfirmTitle":{zh:"有未保存的修改",en:"Unsaved changes","zh-TW":"有未儲存的修改",ko:"저장되지 않은 변경사항",ja:"未保存の変更があります",de:"Ungespeicherte Änderungen",es:"Cambios sin guardar",fr:"Modifications non enregistrées",it:"Modifiche non salvate",da:"Ikke-gemte ændringer",pl:"Niezapisane zmiany",ru:"Несохранённые изменения",ar:"تغييرات غير محفوظة",no:"Ulagrede endringer","pt-BR":"Alterações não salvas",th:"การเปลี่ยนแปลงที่ยังไม่ได้บันทึก",tr:"Kaydedilmemiş değişiklikler",uk:"Незбережені зміни"},"ui.mdEditor.unsavedConfirmContent":{zh:"切换模式会丢失未保存的修改,是否继续?",en:"Switching mode will discard unsaved changes. Continue?","zh-TW":"切換模式將丟失未儲存的修改,是否繼續?",ko:"모드를 전환하면 저장되지 않은 변경사항이 사라집니다. 계속하시겠습니까?",ja:"モードを切り替えると未保存の変更は失われます。続けますか?",de:"Beim Moduswechsel gehen ungespeicherte Änderungen verloren. Fortfahren?",es:"Cambiar de modo descartará los cambios sin guardar. ¿Continuar?",fr:"Changer de mode supprimera les modifications non enregistrées. Continuer ?",it:"Cambiando modalità le modifiche non salvate andranno perse. Continuare?",da:"Skift af tilstand kasserer ikke-gemte ændringer. Fortsæt?",pl:"Zmiana trybu odrzuci niezapisane zmiany. Kontynuować?",ru:"Переключение режима приведёт к потере несохранённых изменений. Продолжить?",ar:"التبديل بين الأوضاع سيتجاهل التغييرات غير المحفوظة. هل تريد المتابعة؟",no:"Bytting av modus forkaster ulagrede endringer. Fortsette?","pt-BR":"Alternar modo descartará alterações não salvas. Continuar?",th:"การสลับโหมดจะทำให้การเปลี่ยนแปลงที่ยังไม่ได้บันทึกหายไป ดำเนินการต่อหรือไม่?",tr:"Mod değiştirmek kaydedilmemiş değişiklikleri silecek. Devam edilsin mi?",uk:"Перемикання режиму призведе до втрати незбережених змін. Продовжити?"},"ui.mdEditor.unsavedConfirmDiscard":{zh:"丢弃修改",en:"Discard","zh-TW":"丟棄修改",ko:"변경사항 버리기",ja:"変更を破棄",de:"Verwerfen",es:"Descartar",fr:"Abandonner",it:"Scarta",da:"Kassér",pl:"Odrzuć",ru:"Отменить",ar:"تجاهل",no:"Forkast","pt-BR":"Descartar",th:"ละทิ้ง",tr:"Vazgeç",uk:"Скасувати"},"ui.mdEditor.unsavedConfirmKeep":{zh:"保留修改",en:"Keep editing","zh-TW":"保留修改",ko:"계속 편집",ja:"編集を続ける",de:"Weiter bearbeiten",es:"Seguir editando",fr:"Continuer l'édition",it:"Continua a modificare",da:"Fortsæt redigering",pl:"Kontynuuj edycję",ru:"Продолжить редактирование",ar:"متابعة التحرير",no:"Fortsett redigering","pt-BR":"Continuar editando",th:"แก้ไขต่อ",tr:"Düzenlemeye devam et",uk:"Продовжити редагування"},"ui.mdEditor.saveAsImageDisabled":{zh:"GUI 编辑模式下截图视觉与项目主题不一致,请切到 Text 模式后再截图",en:"Screenshot visuals differ from the app theme in GUI editing mode. Switch to Text mode first.","zh-TW":"GUI 編輯模式下截圖視覺與專案主題不一致,請切到 Text 模式後再截圖",ko:"GUI 편집 모드에서는 캡처 시 테마가 다르게 보입니다. 텍스트 모드로 전환 후 사용하세요.",ja:"GUI 編集モードではスクリーンショットの見た目がアプリテーマと異なります。テキストモードに切り替えてから使用してください",de:"Im GUI-Bearbeitungsmodus weicht das Screenshot-Design vom App-Theme ab. Wechseln Sie zuerst in den Text-Modus.",es:"En modo de edición GUI, la captura no coincide con el tema. Cambia al modo Texto primero.",fr:"En mode édition GUI, la capture diffère du thème. Passez d'abord en mode Texte.",it:"In modalità di modifica GUI lo screenshot non corrisponde al tema. Passa prima alla modalità Testo.",da:"I GUI-redigeringstilstand afviger skærmbilleder fra appens tema. Skift først til teksttilstand.",pl:"W trybie edycji GUI zrzut ekranu różni się od motywu aplikacji. Przełącz najpierw na tryb tekstowy.",ru:"В режиме GUI-редактирования скриншот не соответствует теме. Переключитесь в текстовый режим.",ar:"في وضع التحرير الرسومي تختلف لقطة الشاشة عن سمة التطبيق. انتقل إلى وضع النص أولاً.",no:"I GUI-redigeringsmodus avviker skjermbilder fra apptemaet. Bytt først til tekstmodus.","pt-BR":"No modo de edição GUI a captura difere do tema do app. Mude para o modo Texto primeiro.",th:"ในโหมด GUI การจับภาพหน้าจอจะแตกต่างจากธีมแอป โปรดสลับเป็นโหมดข้อความก่อน",tr:"GUI düzenleme modunda ekran görüntüsü tema ile eşleşmez. Önce Metin moduna geçin.",uk:"У режимі GUI-редагування скриншот не відповідає темі додатка. Спочатку перейдіть у текстовий режим."},"ui.mdEditor.extensionFallbackToast":{zh:"检测到 mermaid / 数学公式 / 指令块,已自动切回兼容渲染",en:"Detected mermaid / math / directives — falling back to compatible renderer","zh-TW":"偵測到 mermaid / 數學公式 / 指令區塊,已自動切回相容渲染",ko:"mermaid / 수식 / 디렉티브가 감지되어 호환 렌더러로 전환되었습니다",ja:"mermaid / 数式 / ディレクティブを検出したため互換レンダラーに切り替えました",de:"mermaid / Mathematik / Direktiven erkannt — Wechsel zum kompatiblen Renderer",es:"Detectado mermaid / matemáticas / directivas, usando el renderizador compatible",fr:"mermaid / maths / directives détectés, retour au moteur de rendu compatible",it:"Rilevati mermaid / matematica / direttive, ritorno al renderer compatibile",da:"mermaid / matematik / direktiver registreret — skifter til kompatibel renderer",pl:"Wykryto mermaid / matematykę / dyrektywy — używam kompatybilnego renderera",ru:"Обнаружены mermaid / математика / директивы — переключение на совместимый рендерер",ar:"تم رصد mermaid / رياضيات / توجيهات — العودة إلى العارض المتوافق",no:"Oppdaget mermaid / matematikk / direktiver — bytter til kompatibel renderer","pt-BR":"Detectado mermaid / matemática / diretivas, usando renderizador compatível",th:"ตรวจพบ mermaid / สูตรคณิตศาสตร์ / directives จึงสลับไปใช้ตัวเรนเดอร์ที่รองรับ",tr:"mermaid / matematik / direktifler algılandı, uyumlu oluşturucuya geçiliyor",uk:"Виявлено mermaid / математику / директиви — переключення на сумісний рендерер"},"ui.mdEditor.parseFallbackToast":{zh:"MDXEditor 解析失败,已自动切回兼容渲染",en:"MDXEditor parsing failed — falling back to compatible renderer","zh-TW":"MDXEditor 解析失敗,已自動切回相容渲染",ko:"MDXEditor 구문 분석 실패 — 호환 렌더러로 전환되었습니다",ja:"MDXEditor の解析に失敗しました — 互換レンダラーに切り替えました",de:"MDXEditor-Analyse fehlgeschlagen — Wechsel zum kompatiblen Renderer",es:"Error al analizar con MDXEditor — usando el renderizador compatible",fr:"Échec de l'analyse MDXEditor — retour au moteur de rendu compatible",it:"Analisi MDXEditor non riuscita — ritorno al renderer compatibile",da:"MDXEditor-parsing mislykkedes — skifter til kompatibel renderer",pl:"Parsowanie MDXEditor nie powiodło się — używam kompatybilnego renderera",ru:"Ошибка анализа MDXEditor — переключение на совместимый рендерер",ar:"فشل تحليل MDXEditor — العودة إلى العارض المتوافق",no:"MDXEditor-parsing mislyktes — bytter til kompatibel renderer","pt-BR":"Falha ao analisar com MDXEditor — usando renderizador compatível",th:"MDXEditor วิเคราะห์ล้มเหลว — สลับไปใช้ตัวเรนเดอร์ที่รองรับ",tr:"MDXEditor ayrıştırması başarısız — uyumlu oluşturucuya geçiliyor",uk:"Помилка аналізу MDXEditor — переключення на сумісний рендерер"},"ui.openCachePanel":{zh:"查看项目详情",en:"View project details","zh-TW":"檢視專案詳情",ko:"프로젝트 세부정보 보기",ja:"プロジェクトの詳細を表示",de:"Projektdetails anzeigen",es:"Ver detalles del proyecto",fr:"Voir les détails du projet",it:"Mostra dettagli progetto",da:"Vis projektdetaljer",pl:"Pokaż szczegóły projektu",ru:"Показать детали проекта",ar:"عرض تفاصيل المشروع",no:"Vis prosjektdetaljer","pt-BR":"Ver detalhes do projeto",th:"ดูรายละเอียดโครงการ",tr:"Proje ayrıntılarını göster",uk:"Переглянути деталі проєкту"},"ui.closeCachePanel":{zh:"关闭项目详情",en:"Close project details","zh-TW":"關閉專案詳情",ko:"프로젝트 세부정보 닫기",ja:"プロジェクトの詳細を閉じる",de:"Projektdetails schließen",es:"Cerrar detalles del proyecto",fr:"Fermer les détails du projet",it:"Chiudi dettagli progetto",da:"Luk projektdetaljer",pl:"Zamknij szczegóły projektu",ru:"Закрыть детали проекта",ar:"إغلاق تفاصيل المشروع",no:"Lukk prosjektdetaljer","pt-BR":"Fechar detalhes do projeto",th:"ปิดรายละเอียดโครงการ",tr:"Proje ayrıntılarını kapat",uk:"Закрити деталі проєкту"},"ui.closeDrawer":{zh:"关闭",en:"Close","zh-TW":"關閉",ko:"닫기",ja:"閉じる",de:"Schließen",es:"Cerrar",fr:"Fermer",it:"Chiudi",da:"Luk",pl:"Zamknij",ru:"Закрыть",ar:"إغلاق",no:"Lukk","pt-BR":"Fechar",th:"ปิด",tr:"Kapat",uk:"Закрити"},"ui.slashCommand.clear":{zh:"清空上下文",en:"Clear context","zh-TW":"清空上下文",ko:"컨텍스트 지우기",ja:"コンテキストをクリア",de:"Kontext leeren",es:"Limpiar contexto",fr:"Effacer le contexte",it:"Pulisci contesto",da:"Ryd kontekst",pl:"Wyczyść kontekst",ru:"Очистить контекст",ar:"مسح السياق",no:"Tøm kontekst","pt-BR":"Limpar contexto",th:"ล้างบริบท",tr:"Bağlamı temizle",uk:"Очистити контекст"},"ui.slashCommand.compact":{zh:"压缩对话",en:"Compact context","zh-TW":"壓縮對話",ko:"컨텍스트 압축",ja:"コンテキスト圧縮",de:"Kontext komprimieren",es:"Compactar contexto",fr:"Compacter le contexte",it:"Compatta contesto",da:"Komprimer kontekst",pl:"Skompaktuj kontekst",ru:"Сжать контекст",ar:"ضغط السياق",no:"Komprimer kontekst","pt-BR":"Compactar contexto",th:"ย่อบริบท",tr:"Bağlamı sıkıştır",uk:"Стиснути контекст"},"ui.compactSummary":{zh:"压缩摘要",en:"Compact Summary","zh-TW":"壓縮摘要",ko:"압축 요약",ja:"コンパクト要約",de:"Kompaktzusammenfassung",es:"Resumen compacto",fr:"Résumé compact",it:"Riepilogo compatto",da:"Kompakt resumé",pl:"Skompaktowane podsumowanie",ru:"Сжатое резюме",ar:"ملخص مضغوط",no:"Kompakt sammendrag","pt-BR":"Resumo compactado",th:"สรุปแบบย่อ",tr:"Sıkıştırılmış özet",uk:"Стиснений підсумок"},"ui.slashCommand.theme":{zh:"主题切换",en:"Toggle theme","zh-TW":"主題切換",ko:"테마 전환",ja:"テーマ切替",de:"Theme wechseln",es:"Cambiar tema",fr:"Changer de thème",it:"Cambia tema",da:"Skift tema",pl:"Zmień motyw",ru:"Сменить тему",ar:"تبديل السمة",no:"Bytt tema","pt-BR":"Alternar tema",th:"สลับธีม",tr:"Temayı değiştir",uk:"Змінити тему"},"ui.slashCommand.cost":{zh:"查看花费",en:"View cost","zh-TW":"檢視花費",ko:"비용 보기",ja:"コストを表示",de:"Kosten anzeigen",es:"Ver coste",fr:"Voir le coût",it:"Mostra costo",da:"Vis omkostning",pl:"Pokaż koszt",ru:"Показать стоимость",ar:"عرض التكلفة",no:"Vis kostnad","pt-BR":"Ver custo",th:"ดูค่าใช้จ่าย",tr:"Maliyeti gör",uk:"Показати вартість"},"ui.slashCommand.model":{zh:"切换模型",en:"Switch model","zh-TW":"切換模型",ko:"모델 전환",ja:"モデル切替",de:"Modell wechseln",es:"Cambiar modelo",fr:"Changer de modèle",it:"Cambia modello",da:"Skift model",pl:"Zmień model",ru:"Сменить модель",ar:"تغيير النموذج",no:"Bytt modell","pt-BR":"Trocar modelo",th:"เปลี่ยนโมเดล",tr:"Modeli değiştir",uk:"Змінити модель"},"ui.slashCommand.login":{zh:"登录",en:"Log in","zh-TW":"登入",ko:"로그인",ja:"ログイン",de:"Anmelden",es:"Iniciar sesión",fr:"Connexion",it:"Accedi",da:"Log ind",pl:"Zaloguj",ru:"Войти",ar:"تسجيل الدخول",no:"Logg inn","pt-BR":"Entrar",th:"เข้าสู่ระบบ",tr:"Giriş yap",uk:"Увійти"},"ui.slashCommand.logout":{zh:"退出登录",en:"Log out","zh-TW":"登出",ko:"로그아웃",ja:"ログアウト",de:"Abmelden",es:"Cerrar sesión",fr:"Déconnexion",it:"Esci",da:"Log ud",pl:"Wyloguj",ru:"Выйти",ar:"تسجيل الخروج",no:"Logg ut","pt-BR":"Sair",th:"ออกจากระบบ",tr:"Çıkış yap",uk:"Вийти"},"ui.slashCommand.status":{zh:"状态",en:"Status","zh-TW":"狀態",ko:"상태",ja:"ステータス",de:"Status",es:"Estado",fr:"Statut",it:"Stato",da:"Status",pl:"Status",ru:"Статус",ar:"الحالة",no:"Status","pt-BR":"Status",th:"สถานะ",tr:"Durum",uk:"Статус"},"ui.slashCommand.help":{zh:"帮助",en:"Help","zh-TW":"說明",ko:"도움말",ja:"ヘルプ",de:"Hilfe",es:"Ayuda",fr:"Aide",it:"Aiuto",da:"Hjælp",pl:"Pomoc",ru:"Помощь",ar:"مساعدة",no:"Hjelp","pt-BR":"Ajuda",th:"ช่วยเหลือ",tr:"Yardım",uk:"Допомога"},"ui.slashCommand.init":{zh:"初始化项目",en:"Init project","zh-TW":"初始化專案",ko:"프로젝트 초기화",ja:"プロジェクト初期化",de:"Projekt initialisieren",es:"Iniciar proyecto",fr:"Initialiser projet",it:"Inizializza progetto",da:"Initialiser projekt",pl:"Inicjuj projekt",ru:"Инициализировать проект",ar:"تهيئة المشروع",no:"Initier prosjekt","pt-BR":"Iniciar projeto",th:"เริ่มโปรเจกต์",tr:"Projeyi başlat",uk:"Ініціалізувати проєкт"},"ui.slashCommand.agents":{zh:"子代理管理",en:"Manage agents","zh-TW":"子代理管理",ko:"에이전트 관리",ja:"エージェント管理",de:"Agenten verwalten",es:"Gestionar agentes",fr:"Gérer les agents",it:"Gestisci agenti",da:"Administrer agenter",pl:"Zarządzaj agentami",ru:"Управление агентами",ar:"إدارة الوكلاء",no:"Administrer agenter","pt-BR":"Gerenciar agentes",th:"จัดการเอเจนต์",tr:"Ajanları yönet",uk:"Керування агентами"},"ui.slashCommand.config":{zh:"设置",en:"Settings","zh-TW":"設定",ko:"설정",ja:"設定",de:"Einstellungen",es:"Configuración",fr:"Configuration",it:"Impostazioni",da:"Indstillinger",pl:"Ustawienia",ru:"Настройки",ar:"الإعدادات",no:"Innstillinger","pt-BR":"Configurações",th:"ตั้งค่า",tr:"Ayarlar",uk:"Налаштування"},"ui.slashCommand.memory":{zh:"记忆管理",en:"Manage memory","zh-TW":"記憶管理",ko:"메모리 관리",ja:"メモリ管理",de:"Speicher verwalten",es:"Gestionar memoria",fr:"Gérer la mémoire",it:"Gestisci memoria",da:"Administrer hukommelse",pl:"Zarządzaj pamięcią",ru:"Управление памятью",ar:"إدارة الذاكرة",no:"Administrer minne","pt-BR":"Gerenciar memória",th:"จัดการความจำ",tr:"Belleği yönet",uk:"Керування пам'яттю"},"ui.slashCommand.permissions":{zh:"权限管理",en:"Permissions","zh-TW":"權限管理",ko:"권한 관리",ja:"権限管理",de:"Berechtigungen",es:"Permisos",fr:"Permissions",it:"Permessi",da:"Tilladelser",pl:"Uprawnienia",ru:"Разрешения",ar:"الأذونات",no:"Tillatelser","pt-BR":"Permissões",th:"สิทธิ์",tr:"İzinler",uk:"Дозволи"},"ui.slashCommand.releaseNotes":{zh:"发布说明",en:"Release notes","zh-TW":"發行說明",ko:"릴리스 노트",ja:"リリースノート",de:"Versionshinweise",es:"Notas de versión",fr:"Notes de version",it:"Note di rilascio",da:"Udgivelsesnoter",pl:"Informacje o wydaniu",ru:"Заметки о выпуске",ar:"ملاحظات الإصدار",no:"Versjonsmerknader","pt-BR":"Notas de versão",th:"บันทึกการเผยแพร่",tr:"Sürüm notları",uk:"Примітки до випуску"},"ui.slashCommand.upgrade":{zh:"升级",en:"Upgrade","zh-TW":"升級",ko:"업그레이드",ja:"アップグレード",de:"Upgrade",es:"Actualizar",fr:"Mettre à jour",it:"Aggiorna",da:"Opgrader",pl:"Aktualizuj",ru:"Обновить",ar:"ترقية",no:"Oppgrader","pt-BR":"Atualizar",th:"อัปเกรด",tr:"Yükselt",uk:"Оновити"},"ui.slashCommand.bug":{zh:"反馈问题",en:"Report bug","zh-TW":"回報問題",ko:"버그 신고",ja:"バグ報告",de:"Fehler melden",es:"Reportar error",fr:"Signaler un bug",it:"Segnala bug",da:"Rapportér fejl",pl:"Zgłoś błąd",ru:"Сообщить об ошибке",ar:"الإبلاغ عن خلل",no:"Rapporter feil","pt-BR":"Relatar bug",th:"รายงานข้อผิดพลาด",tr:"Hata bildir",uk:"Повідомити про помилку"},"ui.slashCommand.doctor":{zh:"自检",en:"Diagnose","zh-TW":"自我檢查",ko:"진단",ja:"診断",de:"Diagnose",es:"Diagnosticar",fr:"Diagnostiquer",it:"Diagnostica",da:"Diagnose",pl:"Diagnoza",ru:"Диагностика",ar:"تشخيص",no:"Diagnose","pt-BR":"Diagnóstico",th:"ตรวจสอบ",tr:"Tanı",uk:"Діагностика"},"ui.slashCommand.mcp":{zh:"MCP 服务器",en:"MCP servers","zh-TW":"MCP 伺服器",ko:"MCP 서버",ja:"MCP サーバー",de:"MCP-Server",es:"Servidores MCP",fr:"Serveurs MCP",it:"Server MCP",da:"MCP-servere",pl:"Serwery MCP",ru:"MCP-серверы",ar:"خوادم MCP",no:"MCP-servere","pt-BR":"Servidores MCP",th:"เซิร์ฟเวอร์ MCP",tr:"MCP sunucuları",uk:"MCP-сервери"},"ui.slashCommand.vim":{zh:"Vim 模式",en:"Vim mode","zh-TW":"Vim 模式",ko:"Vim 모드",ja:"Vim モード",de:"Vim-Modus",es:"Modo Vim",fr:"Mode Vim",it:"Modalità Vim",da:"Vim-tilstand",pl:"Tryb Vim",ru:"Режим Vim",ar:"وضع Vim",no:"Vim-modus","pt-BR":"Modo Vim",th:"โหมด Vim",tr:"Vim modu",uk:"Режим Vim"},"ui.slashCommand.export":{zh:"导出对话",en:"Export chat","zh-TW":"匯出對話",ko:"대화 내보내기",ja:"会話をエクスポート",de:"Chat exportieren",es:"Exportar chat",fr:"Exporter la conversation",it:"Esporta chat",da:"Eksportér chat",pl:"Eksportuj rozmowę",ru:"Экспорт чата",ar:"تصدير المحادثة",no:"Eksporter chat","pt-BR":"Exportar conversa",th:"ส่งออกแชต",tr:"Sohbeti dışa aktar",uk:"Експорт чату"},"ui.slashCommand.prComments":{zh:"PR 评论",en:"PR comments","zh-TW":"PR 評論",ko:"PR 댓글",ja:"PR コメント",de:"PR-Kommentare",es:"Comentarios de PR",fr:"Commentaires PR",it:"Commenti PR",da:"PR-kommentarer",pl:"Komentarze PR",ru:"Комментарии PR",ar:"تعليقات PR",no:"PR-kommentarer","pt-BR":"Comentários do PR",th:"ความคิดเห็น PR",tr:"PR yorumları",uk:"Коментарі PR"},"ui.slashCommand.review":{zh:"代码评审",en:"Code review","zh-TW":"程式碼審查",ko:"코드 리뷰",ja:"コードレビュー",de:"Code-Review",es:"Revisión de código",fr:"Revue de code",it:"Revisione codice",da:"Kodegennemgang",pl:"Przegląd kodu",ru:"Ревью кода",ar:"مراجعة الكود",no:"Kodegjennomgang","pt-BR":"Revisão de código",th:"ตรวจสอบโค้ด",tr:"Kod incelemesi",uk:"Огляд коду"},"ui.slashCommand.securityReview":{zh:"安全评审",en:"Security review","zh-TW":"安全審查",ko:"보안 검토",ja:"セキュリティレビュー",de:"Sicherheitsprüfung",es:"Revisión de seguridad",fr:"Revue de sécurité",it:"Revisione sicurezza",da:"Sikkerhedsgennemgang",pl:"Przegląd bezpieczeństwa",ru:"Аудит безопасности",ar:"مراجعة الأمان",no:"Sikkerhetsgjennomgang","pt-BR":"Revisão de segurança",th:"ตรวจสอบความปลอดภัย",tr:"Güvenlik incelemesi",uk:"Аудит безпеки"},"ui.slashCommand.ide":{zh:"IDE 集成",en:"IDE integration","zh-TW":"IDE 整合",ko:"IDE 통합",ja:"IDE 連携",de:"IDE-Integration",es:"Integración IDE",fr:"Intégration IDE",it:"Integrazione IDE",da:"IDE-integration",pl:"Integracja IDE",ru:"Интеграция IDE",ar:"تكامل IDE",no:"IDE-integrasjon","pt-BR":"Integração IDE",th:"เชื่อมต่อ IDE",tr:"IDE entegrasyonu",uk:"Інтеграція IDE"},"ui.slashCommand.resume":{zh:"恢复会话",en:"Resume session","zh-TW":"恢復會話",ko:"세션 재개",ja:"セッション再開",de:"Sitzung fortsetzen",es:"Reanudar sesión",fr:"Reprendre la session",it:"Riprendi sessione",da:"Genoptag session",pl:"Wznów sesję",ru:"Возобновить сессию",ar:"استئناف الجلسة",no:"Gjenoppta økt","pt-BR":"Retomar sessão",th:"เริ่มเซสชันต่อ",tr:"Oturumu sürdür",uk:"Відновити сеанс"},"ui.slashCommand.terminalSetup":{zh:"终端配置",en:"Terminal setup","zh-TW":"終端機設定",ko:"터미널 설정",ja:"ターミナル設定",de:"Terminal-Setup",es:"Configurar terminal",fr:"Configurer terminal",it:"Configura terminale",da:"Terminal-opsætning",pl:"Konfiguracja terminala",ru:"Настройка терминала",ar:"إعداد الطرفية",no:"Terminaloppsett","pt-BR":"Configurar terminal",th:"ตั้งค่าเทอร์มินัล",tr:"Terminal kurulumu",uk:"Налаштування терміналу"},"ui.slashCommand.migrateInstaller":{zh:"迁移安装器",en:"Migrate installer","zh-TW":"遷移安裝程式",ko:"설치 마이그레이션",ja:"インストーラー移行",de:"Installer migrieren",es:"Migrar instalador",fr:"Migrer l'installeur",it:"Migra installer",da:"Migrer installer",pl:"Migracja instalatora",ru:"Миграция установщика",ar:"ترحيل المثبت",no:"Migrer installer","pt-BR":"Migrar instalador",th:"ย้ายตัวติดตั้ง",tr:"Yükleyiciyi taşı",uk:"Міграція встановлювача"},"ui.slashCommand.usage":{zh:"用量统计",en:"Usage stats","zh-TW":"用量統計",ko:"사용량 통계",ja:"使用量統計",de:"Nutzungsstatistik",es:"Estadísticas de uso",fr:"Statistiques d'utilisation",it:"Statistiche d'uso",da:"Forbrugsstatistik",pl:"Statystyki użycia",ru:"Статистика использования",ar:"إحصائيات الاستخدام",no:"Bruksstatistikk","pt-BR":"Estatísticas de uso",th:"สถิติการใช้งาน",tr:"Kullanım istatistikleri",uk:"Статистика використання"},"ui.slashCommand.context":{zh:"上下文用量",en:"Context usage","zh-TW":"上下文用量",ko:"컨텍스트 사용량",ja:"コンテキスト使用量",de:"Kontextnutzung",es:"Uso del contexto",fr:"Utilisation du contexte",it:"Uso contesto",da:"Kontekstforbrug",pl:"Użycie kontekstu",ru:"Использование контекста",ar:"استخدام السياق",no:"Kontekstbruk","pt-BR":"Uso de contexto",th:"การใช้บริบท",tr:"Bağlam kullanımı",uk:"Використання контексту"},"ui.slashCommand.effort":{zh:"思考强度",en:"Thinking effort","zh-TW":"思考強度",ko:"사고 강도",ja:"思考強度",de:"Denkintensität",es:"Esfuerzo de razonamiento",fr:"Effort de réflexion",it:"Intensità ragionamento",da:"Tankeindsats",pl:"Wysiłek rozumowania",ru:"Уровень мышления",ar:"مستوى التفكير",no:"Tenkeintensitet","pt-BR":"Esforço de raciocínio",th:"ระดับการคิด",tr:"Düşünme yoğunluğu",uk:"Зусилля мислення"},"ui.slashCommand.hooks":{zh:"Hook 管理",en:"Manage hooks","zh-TW":"Hook 管理",ko:"Hook 관리",ja:"Hook 管理",de:"Hooks verwalten",es:"Gestionar hooks",fr:"Gérer les hooks",it:"Gestisci hooks",da:"Administrer hooks",pl:"Zarządzaj hookami",ru:"Управление хуками",ar:"إدارة الـ Hooks",no:"Administrer hooks","pt-BR":"Gerenciar hooks",th:"จัดการ hooks",tr:"Hook'ları yönet",uk:"Керування Hooks"},"ui.slashCommand.plugins":{zh:"插件管理",en:"Manage plugins","zh-TW":"外掛管理",ko:"플러그인 관리",ja:"プラグイン管理",de:"Plugins verwalten",es:"Gestionar plugins",fr:"Gérer les plugins",it:"Gestisci plugin",da:"Administrer plugins",pl:"Zarządzaj wtyczkami",ru:"Управление плагинами",ar:"إدارة المكونات الإضافية",no:"Administrer plugins","pt-BR":"Gerenciar plugins",th:"จัดการปลั๊กอิน",tr:"Eklentileri yönet",uk:"Керування плагінами"}},locales={};for(const[key,translations]of Object.entries(i18nData))for(const[lang,text]of Object.entries(translations))locales[lang]||(locales[lang]={}),locales[lang][key]=text;let currentLang="zh";const LANG_MAP={zh:"zh","zh-cn":"zh","zh-hans":"zh","zh-tw":"zh-TW","zh-hk":"zh-TW","zh-hant":"zh-TW",en:"en",ko:"ko",de:"de",es:"es",fr:"fr",it:"it",da:"da",ja:"ja",pl:"pl",ru:"ru",ar:"ar",no:"no",nb:"no",nn:"no",pt:"pt-BR","pt-br":"pt-BR",th:"th",tr:"tr",uk:"uk"};function setLang(lang){currentLang=locales[lang]?lang:"en"}const LANG_OPTIONS=[{value:"zh",label:"简体中文"},{value:"en",label:"English"},{value:"zh-TW",label:"繁體中文"},{value:"ko",label:"한국어"},{value:"ja",label:"日本語"},{value:"de",label:"Deutsch"},{value:"es",label:"Español"},{value:"fr",label:"Français"},{value:"it",label:"Italiano"},{value:"da",label:"Dansk"},{value:"pl",label:"Polski"},{value:"ru",label:"Русский"},{value:"ar",label:"العربية"},{value:"no",label:"Norsk"},{value:"pt-BR",label:"Português (Brasil)"},{value:"th",label:"ไทย"},{value:"tr",label:"Türkçe"},{value:"uk",label:"Українська"}];function getLang(){return currentLang}function t(key,params){var _a2;let text=(null==(_a2=locales[currentLang])?void 0:_a2[key])||locales.en[key]||key;if(params)for(const[k,v]of Object.entries(params))text=text.replaceAll(`{${k}}`,v);return text}setLang("undefined"!=typeof navigator&&navigator.language?function(raw){if(!raw)return"en";const cleaned=raw.toLowerCase().replace(/_/g,"-");if(LANG_MAP[cleaned])return LANG_MAP[cleaned];const primary=cleaned.split("-")[0];return LANG_MAP[primary]?LANG_MAP[primary]:"en"}(navigator.language):"en");let _configDir="~/.codex";function setCodexConfigDir(path){"string"==typeof path&&path.length>0&&(_configDir=path)}function tc(key,params){return t(key,{...params,configDir:_configDir})}const SettingsContext=reactExports.createContext({codexSettings:null,preferences:null,_prefsReady:Promise.resolve({}),_codexSettingsReady:Promise.resolve({}),updatePreferences:()=>Promise.resolve(null),updateCodexSettings:()=>Promise.resolve(null),mergeLocalPreferences:()=>{}});function SettingsProvider({children:children}){const[codexSettings,setCodexSettings]=reactExports.useState(null),[preferences,setPreferences]=reactExports.useState(null),mountedRef=reactExports.useRef(!0),prefsRef=reactExports.useRef(null),[readyPromises]=reactExports.useState(()=>({prefsReady:fetch(apiUrl("/api/preferences")).then(res=>res.json()).then(data=>("string"==typeof(null==data?void 0:data.codexConfigDir)&&setCodexConfigDir(data.codexConfigDir),(null==data?void 0:data.lang)&&setLang(data.lang),data)).catch(()=>({})),codexReady:fetch(apiUrl("/api/codex-settings")).then(res=>res.ok?res.json():{}).then(data=>("string"==typeof(null==data?void 0:data.codexConfigDir)&&setCodexConfigDir(data.codexConfigDir),data)).catch(()=>({}))}));reactExports.useEffect(()=>(mountedRef.current=!0,readyPromises.prefsReady.then(data=>{mountedRef.current&&data&&(prefsRef.current=data,setPreferences(data))}),readyPromises.codexReady.then(data=>{mountedRef.current&&data&&setCodexSettings(data)}),()=>{mountedRef.current=!1}),[readyPromises]);const updatePreferences=reactExports.useCallback(patch=>{const merged={...prefsRef.current||{},...patch};prefsRef.current=merged,mountedRef.current&&setPreferences(merged);const scoped=!!merged._projectScoped,body=scoped?{patch:patch}:patch;return fetch(apiUrl(scoped?"/api/project-prefs/update":"/api/preferences"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(body)}).then(r=>r.ok?r.json():null).catch(()=>null)},[]),mergeLocalPreferences=reactExports.useCallback(partial=>{const merged={...prefsRef.current||{},...partial};prefsRef.current=merged,mountedRef.current&&setPreferences(merged)},[]),refreshPreferences=reactExports.useCallback(()=>fetch(apiUrl("/api/preferences")).then(res=>res.json()).then(data=>("string"==typeof(null==data?void 0:data.codexConfigDir)&&setCodexConfigDir(data.codexConfigDir),(null==data?void 0:data.lang)&&setLang(data.lang),prefsRef.current=data,mountedRef.current&&setPreferences(data),data)).catch(()=>null),[]),updateCodexSettings=reactExports.useCallback(patch=>(mountedRef.current&&setCodexSettings(prev=>({...prev||{},...patch})),fetch(apiUrl("/api/codex-settings"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(patch)}).then(r=>r.ok?r.json():null).then(data=>("string"==typeof(null==data?void 0:data.codexConfigDir)&&setCodexConfigDir(data.codexConfigDir),data)).catch(()=>null)),[]),value=reactExports.useMemo(()=>({codexSettings:codexSettings,preferences:preferences,_prefsReady:readyPromises.prefsReady,_codexSettingsReady:readyPromises.codexReady,updatePreferences:updatePreferences,updateCodexSettings:updateCodexSettings,refreshPreferences:refreshPreferences,mergeLocalPreferences:mergeLocalPreferences}),[codexSettings,preferences,readyPromises,updatePreferences,updateCodexSettings,refreshPreferences,mergeLocalPreferences]);return jsxRuntimeExports.jsx(SettingsContext.Provider,{value:value,children:children})}const root=ReactDOM.createRoot(document.getElementById("root")),onLoadError=err=>{(console.error("Failed to load app module:",err),!shouldReloadStaleChunk(isMobile?"Mobile":"App")||(window.location.reload(),0))&&(document.getElementById("root").textContent="Loading failed. Please refresh the page.")};isMobile?__vitePreload(async()=>{const{default:Mobile}=await import("./Mobile-C7Hy-TIM.js");return{default:Mobile}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url).then(({default:Mobile})=>{root.render(jsxRuntimeExports.jsx(SettingsProvider,{children:jsxRuntimeExports.jsx(Mobile,{})}))}).catch(onLoadError):__vitePreload(async()=>{const{default:App}=await import("./App-BZ9oclBj.js");return{default:App}},__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,12,13]),import.meta.url).then(({default:App})=>{root.render(jsxRuntimeExports.jsx(SettingsProvider,{children:jsxRuntimeExports.jsx(App,{})}))}).catch(onLoadError);export{LANG_OPTIONS as L,SettingsContext as S,apiUrl as a,isPad as b,setLang as c,isMac as d,isMobile as e,isElectron as f,getLang as g,hasNativeZoom as h,isIOS as i,appendToken as j,getBasePath as k,isWindows as l,isAndroid as m,tc as n,handleStaleChunk as o,setViewMode as s,t};