gloomberb 0.9.9 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/README.md +41 -3
  2. package/README.zh-CN.md +294 -0
  3. package/package.json +10 -4
  4. package/patches/@opentui%2Fcore@0.3.2.patch +26 -69
  5. package/src/api-client/auth.ts +2 -0
  6. package/src/api-client/index.test.ts +4 -0
  7. package/src/api-client/types.ts +3 -0
  8. package/src/app/pane-runtime/pane-settings-runtime.tsx +1 -0
  9. package/src/app/pane-template-dialog-wizard.test.tsx +36 -0
  10. package/src/app/pane-template-dialog-wizard.tsx +10 -3
  11. package/src/app/runtime/desktop-deeplink.test.ts +15 -0
  12. package/src/app/runtime/desktop-deeplink.ts +21 -6
  13. package/src/app.tsx +40 -33
  14. package/src/capabilities/service-capabilities.ts +7 -2
  15. package/src/cli/commands/automation.test.ts +202 -0
  16. package/src/cli/commands/automation.ts +153 -36
  17. package/src/cli/commands/market.ts +1 -14
  18. package/src/cli/commands/system.ts +4 -1
  19. package/src/cli/context.ts +1 -1
  20. package/src/cli/desktop-pane-shot.ts +65 -4
  21. package/src/cli/entry.ts +1 -1
  22. package/src/cli/pane-functions/capabilities.ts +532 -0
  23. package/src/cli/pane-functions/catalog.ts +39 -4
  24. package/src/cli/pane-functions/data.test.ts +17 -0
  25. package/src/cli/pane-functions/data.ts +55 -13
  26. package/src/cli/pane-functions/discovery.ts +36 -9
  27. package/src/cli/pane-functions/index.test.ts +104 -1
  28. package/src/cli/pane-functions/index.ts +64 -5
  29. package/src/cli/pane-functions/options.ts +21 -6
  30. package/src/cli/pane-functions/report.ts +735 -72
  31. package/src/cli/pane-functions/resolver.ts +70 -6
  32. package/src/cli/pane-functions/screenshot.test.ts +431 -0
  33. package/src/cli/pane-functions/screenshot.ts +952 -8
  34. package/src/components/chart/composite/column-layout.ts +215 -0
  35. package/src/components/chart/composite/composite-chart.test.tsx +630 -0
  36. package/src/components/chart/composite/composite-chart.tsx +1148 -0
  37. package/src/components/chart/composite/format.test.ts +137 -0
  38. package/src/components/chart/composite/format.ts +135 -0
  39. package/src/components/chart/composite/index.ts +38 -0
  40. package/src/components/chart/composite/interactions.test.ts +109 -0
  41. package/src/components/chart/composite/interactions.ts +247 -0
  42. package/src/components/chart/composite/price-series.test.ts +39 -0
  43. package/src/components/chart/composite/price-series.ts +78 -0
  44. package/src/components/chart/composite/rasterizer.ts +359 -0
  45. package/src/components/chart/composite/renderers.test.ts +610 -0
  46. package/src/components/chart/composite/scene.test.ts +464 -0
  47. package/src/components/chart/composite/scene.ts +553 -0
  48. package/src/components/chart/composite/text-renderer.ts +285 -0
  49. package/src/components/chart/composite/time-scale.test.ts +88 -0
  50. package/src/components/chart/composite/time-scale.ts +217 -0
  51. package/src/components/chart/composite/types.ts +141 -0
  52. package/src/components/chart/core/data.ts +81 -5
  53. package/src/components/chart/core/index.test.ts +128 -43
  54. package/src/components/chart/core/resolution.ts +0 -6
  55. package/src/components/chart/native/chart-rasterizer.ts +1 -3
  56. package/src/components/chart/native/kitty/index.test.ts +99 -120
  57. package/src/components/chart/native/kitty/manager.ts +3 -0
  58. package/src/components/chart/native/kitty/protocol.ts +4 -1
  59. package/src/components/chart/native/raster/crosshair.ts +79 -46
  60. package/src/components/chart/native/raster/types.ts +2 -11
  61. package/src/components/chart/native/surface/manager.ts +48 -3
  62. package/src/components/chart/price-axis-labels.tsx +18 -4
  63. package/src/components/command-bar/commands/direct/index.ts +25 -0
  64. package/src/components/command-bar/commands/registry.ts +9 -0
  65. package/src/components/command-bar/helpers.test.ts +4 -1
  66. package/src/components/command-bar/list/view.tsx +18 -6
  67. package/src/components/command-bar/multi-select-picker.tsx +6 -5
  68. package/src/components/command-bar/pane-settings.test.ts +141 -0
  69. package/src/components/command-bar/pane-settings.ts +61 -1
  70. package/src/components/command-bar/panel/body.tsx +7 -6
  71. package/src/components/command-bar/routes/root/command-items.ts +4 -4
  72. package/src/components/command-bar/routes/root/results.ts +10 -1
  73. package/src/components/command-bar/routes/root/selection.test.ts +54 -0
  74. package/src/components/command-bar/routes/root/selection.ts +13 -0
  75. package/src/components/command-bar/routing/actions.ts +18 -2
  76. package/src/components/command-bar/routing/list-state.ts +2 -1
  77. package/src/components/command-bar/surface/index.test.tsx +36 -4
  78. package/src/components/command-bar/surface/pane.test.tsx +93 -0
  79. package/src/components/command-bar/theme-picker.tsx +2 -1
  80. package/src/components/command-bar/view-model.ts +19 -20
  81. package/src/components/command-bar/workflow/body.tsx +2 -1
  82. package/src/components/command-bar/workflow/field-row.tsx +3 -2
  83. package/src/components/command-bar/workflow/fields.ts +4 -2
  84. package/src/components/command-bar/workflow/ops.test.ts +161 -0
  85. package/src/components/command-bar/workflow/ops.ts +20 -50
  86. package/src/components/command-bar/workflow/route-actions.test.ts +34 -0
  87. package/src/components/command-bar/workflow/route-actions.ts +4 -0
  88. package/src/components/command-bar/workflow/types.ts +1 -0
  89. package/src/components/feed-data-table/stack-view.tsx +6 -5
  90. package/src/components/index.ts +13 -1
  91. package/src/components/layout/detached-pane-shell.tsx +2 -1
  92. package/src/components/layout/floating-pane.tsx +3 -0
  93. package/src/components/layout/header.tsx +15 -8
  94. package/src/components/layout/pane/footer/index.test.tsx +22 -3
  95. package/src/components/layout/pane/footer/index.tsx +3 -1
  96. package/src/components/layout/pane/footer/model.ts +9 -2
  97. package/src/components/layout/pane/header.tsx +4 -6
  98. package/src/components/layout/pane/index.tsx +3 -0
  99. package/src/components/layout/pane/sidebar.test.tsx +100 -0
  100. package/src/components/layout/pane/sidebar.tsx +239 -0
  101. package/src/components/layout/pane/title.ts +4 -3
  102. package/src/components/layout/shell/action-menu-overlay.tsx +5 -3
  103. package/src/components/layout/shell/drag/runtime.ts +2 -0
  104. package/src/components/layout/shell/menu.test.ts +19 -0
  105. package/src/components/layout/shell/menu.ts +8 -5
  106. package/src/components/layout/shell/native/pointer-runtime.ts +4 -1
  107. package/src/components/layout/shell/pane/layers.tsx +2 -2
  108. package/src/components/layout/status-bar.tsx +8 -7
  109. package/src/components/layout/window-controls.tsx +4 -3
  110. package/src/components/metric-treemap/index.tsx +3 -2
  111. package/src/components/onboarding/onboarding-steps.tsx +30 -29
  112. package/src/components/onboarding/onboarding-wizard.tsx +5 -4
  113. package/src/components/onboarding/portfolio-step/broker-fields-panel.tsx +15 -12
  114. package/src/components/onboarding/portfolio-step/broker-setup-panel.tsx +17 -16
  115. package/src/components/onboarding/portfolio-step/broker-sync-panel.tsx +6 -5
  116. package/src/components/onboarding/portfolio-step/choose-panel.tsx +5 -4
  117. package/src/components/pane-settings-dialog/desktop.tsx +25 -3
  118. package/src/components/pane-settings-dialog/field-dialogs.tsx +5 -4
  119. package/src/components/pane-settings-dialog/tui.tsx +11 -9
  120. package/src/components/pane-settings-dialog/value.ts +8 -5
  121. package/src/components/pane-settings-dialog.test.tsx +235 -0
  122. package/src/components/pane-settings-dialog.tsx +24 -0
  123. package/src/components/pane-template-wizard.tsx +6 -2
  124. package/src/components/ticker/list-table-view.tsx +3 -2
  125. package/src/components/ui/button.tsx +3 -1
  126. package/src/components/ui/choice-dialog.tsx +6 -1
  127. package/src/components/ui/confirm-dialog.tsx +3 -2
  128. package/src/components/ui/fields.tsx +10 -1
  129. package/src/components/ui/frame.tsx +4 -1
  130. package/src/components/ui/index.ts +5 -0
  131. package/src/components/ui/inline-quick-add.tsx +104 -0
  132. package/src/components/ui/list-view.tsx +5 -4
  133. package/src/components/ui/loading.tsx +2 -1
  134. package/src/components/ui/multi-select/dialog.tsx +188 -44
  135. package/src/components/ui/popover.tsx +10 -0
  136. package/src/components/ui/shortcut-hint.tsx +2 -0
  137. package/src/components/ui/status.tsx +4 -3
  138. package/src/components/ui/tabs.tsx +19 -8
  139. package/src/components/ui/toggle.tsx +44 -3
  140. package/src/components/ui/ui.test.tsx +67 -5
  141. package/src/core/app-services.ts +4 -6
  142. package/src/core/state/session-persistence.ts +3 -2
  143. package/src/data/config/chart-settings.ts +712 -0
  144. package/src/data/config/layout.ts +24 -5
  145. package/src/data/config/store/index.test.ts +377 -14
  146. package/src/data/config/store/normalize.ts +79 -65
  147. package/src/data/fred-series.ts +137 -0
  148. package/src/i18n/index.test.ts +114 -0
  149. package/src/i18n/index.ts +147 -0
  150. package/src/i18n/ja.ts +1013 -0
  151. package/src/i18n/ko.ts +1011 -0
  152. package/src/i18n/languages.test.ts +31 -0
  153. package/src/i18n/languages.ts +72 -0
  154. package/src/i18n/zh-cn.ts +1013 -0
  155. package/src/i18n/zh-tw.ts +1013 -0
  156. package/src/plugins/builtin/account-management/footer.ts +3 -2
  157. package/src/plugins/builtin/account-management/form-components.tsx +3 -2
  158. package/src/plugins/builtin/account-management/keyboard.ts +6 -0
  159. package/src/plugins/builtin/account-management/model.ts +25 -21
  160. package/src/plugins/builtin/account-management/navigation.test.ts +27 -0
  161. package/src/plugins/builtin/account-management/navigation.ts +24 -0
  162. package/src/plugins/builtin/account-management/pane.tsx +120 -85
  163. package/src/plugins/builtin/account-management/password-dialog.tsx +10 -9
  164. package/src/plugins/builtin/ai/agent-history.ts +139 -0
  165. package/src/plugins/builtin/ai/ask-ai-detail-tab.tsx +133 -51
  166. package/src/plugins/builtin/ai/ask-ai.test.tsx +83 -22
  167. package/src/plugins/builtin/ai/index.test.ts +302 -0
  168. package/src/plugins/builtin/ai/index.tsx +374 -40
  169. package/src/plugins/builtin/ai/pane-settings.test.ts +155 -0
  170. package/src/plugins/builtin/ai/pane-settings.ts +319 -0
  171. package/src/plugins/builtin/ai/pi/credential-store.test.ts +80 -0
  172. package/src/plugins/builtin/ai/pi/credential-store.ts +138 -0
  173. package/src/plugins/builtin/ai/pi/file-store.ts +138 -0
  174. package/src/plugins/builtin/ai/pi/host.test.ts +500 -0
  175. package/src/plugins/builtin/ai/pi/host.ts +564 -0
  176. package/src/plugins/builtin/ai/pi/index.ts +5 -0
  177. package/src/plugins/builtin/ai/pi/models-store.test.ts +44 -0
  178. package/src/plugins/builtin/ai/pi/models-store.ts +141 -0
  179. package/src/plugins/builtin/ai/pi/providers.ts +68 -0
  180. package/src/plugins/builtin/ai/pi/runtime.test.ts +240 -0
  181. package/src/plugins/builtin/ai/pi/runtime.ts +635 -0
  182. package/src/plugins/builtin/ai/providers.test.ts +68 -0
  183. package/src/plugins/builtin/ai/providers.ts +163 -38
  184. package/src/plugins/builtin/ai/runner-selection.test.ts +174 -0
  185. package/src/plugins/builtin/ai/runner-selection.ts +193 -0
  186. package/src/plugins/builtin/ai/runner-selector.tsx +153 -0
  187. package/src/plugins/builtin/ai/runner.test.ts +198 -0
  188. package/src/plugins/builtin/ai/runner.ts +276 -73
  189. package/src/plugins/builtin/ai/screener/contract.test.ts +26 -73
  190. package/src/plugins/builtin/ai/screener/contract.ts +14 -52
  191. package/src/plugins/builtin/ai/screener/editor-runtime.ts +55 -5
  192. package/src/plugins/builtin/ai/screener/editor.tsx +42 -36
  193. package/src/plugins/builtin/ai/screener/footer.ts +82 -67
  194. package/src/plugins/builtin/ai/screener/keyboard.ts +27 -11
  195. package/src/plugins/builtin/ai/screener/model.test.ts +24 -0
  196. package/src/plugins/builtin/ai/screener/model.ts +9 -3
  197. package/src/plugins/builtin/ai/screener/pane.test.tsx +142 -55
  198. package/src/plugins/builtin/ai/screener/pane.tsx +95 -97
  199. package/src/plugins/builtin/ai/screener/results-view.tsx +8 -41
  200. package/src/plugins/builtin/ai/screener/runner.ts +41 -25
  201. package/src/plugins/builtin/ai/screener/tabs-bar.tsx +2 -2
  202. package/src/plugins/builtin/ai/use-runtime-providers.ts +28 -0
  203. package/src/plugins/builtin/ai/workspace/model.test.ts +227 -0
  204. package/src/plugins/builtin/ai/workspace/model.ts +308 -0
  205. package/src/plugins/builtin/ai/workspace/pane.test.tsx +197 -0
  206. package/src/plugins/builtin/ai/workspace/pane.tsx +896 -0
  207. package/src/plugins/builtin/analytics/index.test.tsx +3 -3
  208. package/src/plugins/builtin/analytics/index.tsx +3 -8
  209. package/src/plugins/builtin/broker-manager/detail.tsx +25 -24
  210. package/src/plugins/builtin/broker-manager/index.test.tsx +1 -1
  211. package/src/plugins/builtin/broker-manager/index.tsx +9 -11
  212. package/src/plugins/builtin/broker-manager/model.ts +11 -10
  213. package/src/plugins/builtin/broker-manager/pane-actions.tsx +22 -21
  214. package/src/plugins/builtin/broker-manager/table.ts +9 -8
  215. package/src/plugins/builtin/changelog/index.tsx +3 -8
  216. package/src/plugins/builtin/chart-composer/chart-spec.ts +89 -0
  217. package/src/plugins/builtin/chart-composer/cli-options.ts +98 -0
  218. package/src/plugins/builtin/chart-composer/date-window-dialog.tsx +120 -0
  219. package/src/plugins/builtin/chart-composer/editor.test.tsx +332 -0
  220. package/src/plugins/builtin/chart-composer/editor.tsx +1107 -0
  221. package/src/plugins/builtin/chart-composer/index.tsx +228 -0
  222. package/src/plugins/builtin/chart-composer/pane.tsx +645 -0
  223. package/src/plugins/builtin/chart-composer/presets.test.ts +561 -0
  224. package/src/plugins/builtin/chart-composer/presets.ts +759 -0
  225. package/src/plugins/builtin/chart-composer/quick-add.test.tsx +245 -0
  226. package/src/plugins/builtin/chart-composer/quick-add.tsx +409 -0
  227. package/src/plugins/builtin/chart-composer/semantic.ts +86 -0
  228. package/src/plugins/builtin/chart-composer/series-catalog.test.ts +65 -0
  229. package/src/plugins/builtin/chart-composer/series-catalog.ts +295 -0
  230. package/src/plugins/builtin/chart-composer/settings.test.ts +163 -0
  231. package/src/plugins/builtin/chart-composer/settings.ts +397 -0
  232. package/src/plugins/builtin/chart-composer/shortcuts.test.ts +44 -0
  233. package/src/plugins/builtin/chart-composer/shortcuts.ts +35 -0
  234. package/src/plugins/builtin/chart-composer/use-series-catalog.ts +103 -0
  235. package/src/plugins/builtin/chat/channel-labels.ts +5 -4
  236. package/src/plugins/builtin/chat/channels.ts +12 -11
  237. package/src/plugins/builtin/chat/chat.test.tsx +32 -0
  238. package/src/plugins/builtin/chat/content/composer-runtime.ts +6 -1
  239. package/src/plugins/builtin/chat/content/composer.tsx +9 -8
  240. package/src/plugins/builtin/chat/content/index.tsx +36 -1
  241. package/src/plugins/builtin/chat/content/new-dm-dialog.tsx +8 -7
  242. package/src/plugins/builtin/chat/content/transcript.tsx +9 -3
  243. package/src/plugins/builtin/chat/controller/utils.ts +10 -9
  244. package/src/plugins/builtin/chat/message/desktop.tsx +17 -10
  245. package/src/plugins/builtin/chat/message/profile-popover.test.tsx +122 -3
  246. package/src/plugins/builtin/chat/message/profile-popover.tsx +38 -1
  247. package/src/plugins/builtin/chat/message/terminal.tsx +19 -10
  248. package/src/plugins/builtin/chat/pane-state.test.ts +31 -0
  249. package/src/plugins/builtin/chat/pane-state.ts +30 -0
  250. package/src/plugins/builtin/chat/pane.tsx +27 -4
  251. package/src/plugins/builtin/chat/profile-popover.ts +62 -5
  252. package/src/plugins/builtin/chat/sidebar.test.tsx +4 -7
  253. package/src/plugins/builtin/chat/sidebar.tsx +107 -168
  254. package/src/plugins/builtin/chat/test-harness.tsx +6 -0
  255. package/src/plugins/builtin/cloud/auth-actions.tsx +5 -4
  256. package/src/plugins/builtin/cloud/plugin.tsx +150 -127
  257. package/src/plugins/builtin/composite-plugins.ts +71 -0
  258. package/src/plugins/builtin/correlation/index.test.tsx +4 -4
  259. package/src/plugins/builtin/correlation/index.tsx +3 -8
  260. package/src/plugins/builtin/earnings/index.tsx +37 -21
  261. package/src/plugins/builtin/earnings/model.test.ts +52 -0
  262. package/src/plugins/builtin/earnings/model.ts +32 -0
  263. package/src/plugins/builtin/econ/detail-view.tsx +17 -4
  264. package/src/plugins/builtin/econ/fred-cache.test.ts +57 -11
  265. package/src/plugins/builtin/econ/index.tsx +16 -20
  266. package/src/plugins/builtin/fear-greed/index.tsx +2 -8
  267. package/src/plugins/builtin/fx-matrix/index.tsx +3 -8
  268. package/src/plugins/builtin/help/components.tsx +5 -4
  269. package/src/plugins/builtin/help/index.tsx +14 -17
  270. package/src/plugins/builtin/holders/index.tsx +2 -8
  271. package/src/plugins/builtin/insider/index.tsx +2 -7
  272. package/src/plugins/builtin/kelly-sizer/index.test.tsx +2 -2
  273. package/src/plugins/builtin/kelly-sizer/index.tsx +3 -7
  274. package/src/plugins/builtin/kelly-sizer/test-support.tsx +3 -3
  275. package/src/plugins/builtin/layout-manager/index.tsx +3 -7
  276. package/src/plugins/builtin/market-heatmap/index.tsx +3 -8
  277. package/src/plugins/builtin/market-movers/index.tsx +3 -8
  278. package/src/plugins/builtin/news/index.tsx +12 -16
  279. package/src/plugins/builtin/news/wire/breaking/pane.test.tsx +3 -3
  280. package/src/plugins/builtin/news/wire/index.tsx +83 -73
  281. package/src/plugins/builtin/options/index.tsx +2 -8
  282. package/src/plugins/builtin/plugin-module.test.ts +89 -0
  283. package/src/plugins/builtin/plugin-module.ts +116 -0
  284. package/src/plugins/builtin/portfolio-list/header.tsx +4 -3
  285. package/src/plugins/builtin/portfolio-list/index.test.ts +17 -0
  286. package/src/plugins/builtin/portfolio-list/index.tsx +3 -5
  287. package/src/plugins/builtin/portfolio-list/pane/index.test.tsx +3 -3
  288. package/src/plugins/builtin/portfolio-list/quick-add/index.tsx +53 -53
  289. package/src/plugins/builtin/portfolio-list/settings.ts +5 -3
  290. package/src/plugins/builtin/portfolio-list/summary/index.tsx +4 -3
  291. package/src/plugins/builtin/research/index.tsx +2 -8
  292. package/src/plugins/builtin/sec/index.tsx +2 -8
  293. package/src/plugins/builtin/sectors/index.tsx +3 -8
  294. package/src/plugins/builtin/thirteenf/index.tsx +3 -8
  295. package/src/plugins/builtin/thirteenf/pane.test.tsx +1 -1
  296. package/src/plugins/builtin/ticker-detail/chart-tab-switch.test.tsx +49 -23
  297. package/src/plugins/builtin/ticker-detail/index.test.tsx +15 -136
  298. package/src/plugins/builtin/ticker-detail/index.tsx +2 -93
  299. package/src/plugins/builtin/ticker-detail/overview/components.tsx +6 -5
  300. package/src/plugins/builtin/ticker-detail/overview-tab.tsx +41 -17
  301. package/src/plugins/builtin/ticker-detail/pane.tsx +4 -3
  302. package/src/plugins/builtin/ticker-detail/quote-monitor/index.test.tsx +1 -1
  303. package/src/plugins/builtin/ticker-detail/settings.ts +3 -50
  304. package/src/plugins/builtin/ticker-research-backend-plugin.ts +17 -0
  305. package/src/plugins/builtin/ticker-research-plugin.ts +27 -0
  306. package/src/plugins/builtin/tv/channels.ts +27 -0
  307. package/src/plugins/builtin/tv/index.tsx +40 -0
  308. package/src/plugins/builtin/tv/pane.tsx +286 -0
  309. package/src/plugins/builtin/tv/youtube-stream.ts +100 -0
  310. package/src/plugins/builtin/world-indices/index.tsx +3 -8
  311. package/src/plugins/builtin/yield-curve/index.tsx +8 -8
  312. package/src/plugins/catalog-backend.test.ts +21 -0
  313. package/src/plugins/catalog-backend.ts +42 -0
  314. package/src/plugins/catalog-ui.ts +6 -14
  315. package/src/plugins/ibkr/instance-selection.test.ts +0 -1
  316. package/src/plugins/ownership.ts +143 -0
  317. package/src/plugins/prediction-markets/backend-plugin.ts +19 -0
  318. package/src/plugins/prediction-markets/chart.test.tsx +7 -5
  319. package/src/plugins/prediction-markets/chart.tsx +25 -7
  320. package/src/plugins/registry/index.test.ts +51 -0
  321. package/src/plugins/registry/index.ts +8 -0
  322. package/src/plugins/registry/pane-settings.ts +1 -1
  323. package/src/plugins/runtime/index.test.tsx +2 -2
  324. package/src/remote/app-host.tsx +16 -3
  325. package/src/remote/controller.test.ts +102 -1
  326. package/src/remote/controller.ts +122 -0
  327. package/src/remote/types.ts +11 -0
  328. package/src/renderers/electrobun/bun/core-capabilities.ts +123 -27
  329. package/src/renderers/electrobun/bun/desktop/backend-requests.ts +5 -1
  330. package/src/renderers/electrobun/bun/desktop/initialization.ts +5 -1
  331. package/src/renderers/electrobun/bun/desktop/media.ts +15 -0
  332. package/src/renderers/electrobun/bun/desktop/window-style.ts +4 -1
  333. package/src/renderers/electrobun/bun/desktop/workspace/index.test.ts +32 -1
  334. package/src/renderers/electrobun/bun/desktop/workspace/index.ts +10 -0
  335. package/src/renderers/electrobun/bun/index.ts +5 -0
  336. package/src/renderers/electrobun/bun/tui-entry.ts +1 -6
  337. package/src/renderers/electrobun/view/ai-host.ts +124 -19
  338. package/src/renderers/electrobun/view/backend-rpc.ts +4 -0
  339. package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +151 -39
  340. package/src/renderers/electrobun/view/desktop/popover.tsx +166 -0
  341. package/src/renderers/electrobun/view/dialog-host.test.ts +25 -0
  342. package/src/renderers/electrobun/view/dialog-host.tsx +75 -12
  343. package/src/renderers/electrobun/view/host/box.tsx +5 -0
  344. package/src/renderers/electrobun/view/host/chart-surface.tsx +10 -9
  345. package/src/renderers/electrobun/view/host/input.tsx +9 -19
  346. package/src/renderers/electrobun/view/host/media-surface.tsx +170 -0
  347. package/src/renderers/electrobun/view/host/mouse.ts +1 -0
  348. package/src/renderers/electrobun/view/host/style.ts +1 -1
  349. package/src/renderers/electrobun/view/host/tabs.tsx +4 -3
  350. package/src/renderers/electrobun/view/main.tsx +10 -3
  351. package/src/renderers/electrobun/view/styles.css +17 -0
  352. package/src/renderers/electrobun/view/ui-host.tsx +7 -0
  353. package/src/renderers/opentui/chart-surface.test.tsx +52 -6
  354. package/src/renderers/opentui/chart-surface.tsx +95 -11
  355. package/src/renderers/opentui/dialog-host.tsx +36 -5
  356. package/src/renderers/opentui/host.tsx +39 -0
  357. package/src/renderers/opentui/start.tsx +30 -0
  358. package/src/renderers/opentui/ui-host.tsx +2 -0
  359. package/src/sources/provider-router/index.test.ts +43 -0
  360. package/src/sources/provider-router/index.ts +4 -0
  361. package/src/sources/provider-router/supplemental.ts +46 -0
  362. package/src/sources/sec-edgar.test.ts +203 -2
  363. package/src/sources/sec-edgar.ts +70 -15
  364. package/src/state/app/context/index.tsx +13 -1
  365. package/src/state/app/context/selector.test.tsx +62 -1
  366. package/src/state/session-persistence.test.ts +13 -2
  367. package/src/sync/controller.test.ts +190 -3
  368. package/src/sync/controller.ts +76 -45
  369. package/src/sync/core-contributors.test.ts +121 -0
  370. package/src/sync/core-contributors.ts +104 -27
  371. package/src/sync/react.ts +6 -8
  372. package/src/sync/types.ts +3 -0
  373. package/src/time-series/alignment.ts +158 -0
  374. package/src/time-series/economic.ts +49 -0
  375. package/src/time-series/field-catalog.ts +306 -0
  376. package/src/time-series/fundamentals.test.ts +505 -0
  377. package/src/time-series/fundamentals.ts +842 -0
  378. package/src/time-series/hooks.ts +45 -0
  379. package/src/time-series/index.ts +14 -0
  380. package/src/time-series/live-quotes.test.ts +219 -0
  381. package/src/time-series/live-quotes.ts +203 -0
  382. package/src/time-series/market-resolution.ts +53 -0
  383. package/src/time-series/market.ts +125 -0
  384. package/src/time-series/reporting.ts +98 -0
  385. package/src/time-series/resolve.test.ts +1281 -0
  386. package/src/time-series/resolve.ts +783 -0
  387. package/src/time-series/spec-studies.test.ts +400 -0
  388. package/src/time-series/spec.ts +487 -0
  389. package/src/time-series/studies.ts +563 -0
  390. package/src/time-series/transforms.test.ts +105 -0
  391. package/src/time-series/transforms.ts +152 -0
  392. package/src/time-series/types.ts +162 -0
  393. package/src/time-series/use-chart-resolution.ts +166 -0
  394. package/src/types/config.ts +9 -11
  395. package/src/types/desktop-window.ts +1 -0
  396. package/src/types/financials.ts +4 -0
  397. package/src/types/media.ts +17 -0
  398. package/src/types/plugin.ts +32 -1
  399. package/src/ui/context-menu.tsx +15 -3
  400. package/src/ui/dialog.tsx +14 -2
  401. package/src/ui/host.tsx +40 -1
  402. package/src/ui/index.tsx +9 -0
  403. package/src/utils/exchanges.test.ts +13 -1
  404. package/src/utils/exchanges.ts +10 -0
  405. package/src/utils/financial-statements.test.ts +138 -0
  406. package/src/utils/financial-statements.ts +115 -8
  407. package/src/utils/format.test.ts +11 -1
  408. package/src/utils/format.ts +7 -0
  409. package/src/version.ts +1 -1
  410. package/src/components/chart/bar-chart-renderer.test.ts +0 -233
  411. package/src/components/chart/bar-chart-renderer.ts +0 -445
  412. package/src/components/chart/comparison/data.test.ts +0 -159
  413. package/src/components/chart/comparison/data.ts +0 -302
  414. package/src/components/chart/comparison/renderer.test.ts +0 -187
  415. package/src/components/chart/comparison/renderer.ts +0 -282
  416. package/src/components/chart/comparison/scene.ts +0 -178
  417. package/src/components/chart/comparison-stock-chart/axis-width.ts +0 -99
  418. package/src/components/chart/comparison-stock-chart/canvas.ts +0 -148
  419. package/src/components/chart/comparison-stock-chart/controls.ts +0 -252
  420. package/src/components/chart/comparison-stock-chart/helpers.ts +0 -101
  421. package/src/components/chart/comparison-stock-chart/interactions.ts +0 -208
  422. package/src/components/chart/comparison-stock-chart/layout-metrics.ts +0 -62
  423. package/src/components/chart/comparison-stock-chart/layout.tsx +0 -155
  424. package/src/components/chart/comparison-stock-chart/legend.tsx +0 -74
  425. package/src/components/chart/comparison-stock-chart/native-surfaces.ts +0 -89
  426. package/src/components/chart/comparison-stock-chart/render-data.ts +0 -227
  427. package/src/components/chart/comparison-stock-chart/render-output.ts +0 -140
  428. package/src/components/chart/comparison-stock-chart/selection-runtime.ts +0 -128
  429. package/src/components/chart/comparison-stock-chart/sources.ts +0 -51
  430. package/src/components/chart/comparison-stock-chart/surface-runtime.ts +0 -159
  431. package/src/components/chart/comparison-stock-chart/toolbar.tsx +0 -117
  432. package/src/components/chart/comparison-stock-chart/types.ts +0 -22
  433. package/src/components/chart/comparison-stock-chart/view.tsx +0 -572
  434. package/src/components/chart/comparison-stock-chart/viewport-runtime.ts +0 -239
  435. package/src/components/chart/comparison-stock-chart.tsx +0 -24
  436. package/src/components/chart/core/axis-measure.ts +0 -33
  437. package/src/components/chart/core/controller.test.ts +0 -157
  438. package/src/components/chart/core/controller.ts +0 -349
  439. package/src/components/chart/core/indicator-selector.tsx +0 -75
  440. package/src/components/chart/core/keyboard.ts +0 -24
  441. package/src/components/chart/core/pane-settings.test.ts +0 -52
  442. package/src/components/chart/core/pane-settings.ts +0 -141
  443. package/src/components/chart/core/scroll.test.ts +0 -64
  444. package/src/components/chart/core/scroll.ts +0 -82
  445. package/src/components/chart/core/window-viewport.test.ts +0 -69
  446. package/src/components/chart/core/window-viewport.ts +0 -162
  447. package/src/components/chart/display-cursor.ts +0 -153
  448. package/src/components/chart/indicators/bands.test.ts +0 -36
  449. package/src/components/chart/indicators/bands.ts +0 -29
  450. package/src/components/chart/indicators/moving-averages.test.ts +0 -39
  451. package/src/components/chart/indicators/moving-averages.ts +0 -42
  452. package/src/components/chart/indicators/options.test.ts +0 -32
  453. package/src/components/chart/indicators/options.ts +0 -107
  454. package/src/components/chart/indicators/oscillators.test.ts +0 -58
  455. package/src/components/chart/indicators/oscillators.ts +0 -92
  456. package/src/components/chart/native/canvas-bitmaps.ts +0 -140
  457. package/src/components/chart/native/raster/comparison-chart.ts +0 -162
  458. package/src/components/chart/native/surface/hooks.ts +0 -144
  459. package/src/components/chart/native/surface/rendering.ts +0 -211
  460. package/src/components/chart/static/bar-chart-surface.test.tsx +0 -101
  461. package/src/components/chart/static/bar-chart-surface.tsx +0 -292
  462. package/src/components/chart/stock-chart/auto.ts +0 -216
  463. package/src/components/chart/stock-chart/axis-width.ts +0 -146
  464. package/src/components/chart/stock-chart/bitmaps.ts +0 -22
  465. package/src/components/chart/stock-chart/canvas.ts +0 -202
  466. package/src/components/chart/stock-chart/controls.tsx +0 -149
  467. package/src/components/chart/stock-chart/cursor.ts +0 -60
  468. package/src/components/chart/stock-chart/data-runtime.ts +0 -128
  469. package/src/components/chart/stock-chart/footer.test.ts +0 -65
  470. package/src/components/chart/stock-chart/footer.ts +0 -303
  471. package/src/components/chart/stock-chart/geometry.ts +0 -160
  472. package/src/components/chart/stock-chart/index.test.ts +0 -532
  473. package/src/components/chart/stock-chart/index.tsx +0 -29
  474. package/src/components/chart/stock-chart/indicators.ts +0 -226
  475. package/src/components/chart/stock-chart/interaction-runtime.ts +0 -44
  476. package/src/components/chart/stock-chart/interactions.ts +0 -300
  477. package/src/components/chart/stock-chart/keyboard.ts +0 -373
  478. package/src/components/chart/stock-chart/layout-metrics.ts +0 -62
  479. package/src/components/chart/stock-chart/layout.tsx +0 -177
  480. package/src/components/chart/stock-chart/native-surfaces.ts +0 -121
  481. package/src/components/chart/stock-chart/presentation.ts +0 -67
  482. package/src/components/chart/stock-chart/renderer-switch.test.tsx +0 -263
  483. package/src/components/chart/stock-chart/rendering/bounds.ts +0 -116
  484. package/src/components/chart/stock-chart/rendering/candidates.ts +0 -145
  485. package/src/components/chart/stock-chart/rendering/data.ts +0 -370
  486. package/src/components/chart/stock-chart/rendering/invalidation.ts +0 -68
  487. package/src/components/chart/stock-chart/rendering/output.ts +0 -304
  488. package/src/components/chart/stock-chart/rendering/planning.ts +0 -122
  489. package/src/components/chart/stock-chart/rendering/projection.test.tsx +0 -98
  490. package/src/components/chart/stock-chart/rendering/projection.ts +0 -112
  491. package/src/components/chart/stock-chart/rendering/state.test.ts +0 -70
  492. package/src/components/chart/stock-chart/rendering/state.ts +0 -283
  493. package/src/components/chart/stock-chart/requests.ts +0 -337
  494. package/src/components/chart/stock-chart/resolution-support.ts +0 -96
  495. package/src/components/chart/stock-chart/resolved/runtime.ts +0 -289
  496. package/src/components/chart/stock-chart/resolved.tsx +0 -359
  497. package/src/components/chart/stock-chart/settings.ts +0 -81
  498. package/src/components/chart/stock-chart/surface-runtime.ts +0 -62
  499. package/src/components/chart/stock-chart/types.ts +0 -25
  500. package/src/components/chart/stock-chart/view.tsx +0 -155
  501. package/src/components/chart/stock-chart/viewport/effects.ts +0 -293
  502. package/src/components/chart/stock-chart/viewport/index.ts +0 -144
  503. package/src/components/chart/stock-chart/viewport/runtime.ts +0 -375
  504. package/src/components/chart/time-axis-label.tsx +0 -175
  505. package/src/plugins/builtin/ai/gloomberb-cli.ts +0 -71
  506. package/src/plugins/builtin/ai/screener/action-bar.tsx +0 -58
  507. package/src/plugins/builtin/comparison-chart/index.test.tsx +0 -848
  508. package/src/plugins/builtin/comparison-chart/index.tsx +0 -194
  509. package/src/plugins/builtin/econ/fred-cache.ts +0 -106
  510. package/src/plugins/builtin/plugin-groups.ts +0 -130
  511. package/src/plugins/builtin/ticker-detail/chart-pane.tsx +0 -91
  512. package/src/plugins/builtin/ticker-detail/chart-tab.tsx +0 -100
  513. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph/content.tsx +0 -296
  514. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph/data.ts +0 -62
  515. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph/model.ts +0 -608
  516. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph/settings.ts +0 -65
  517. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph/types.ts +0 -58
  518. package/src/plugins/builtin/ticker-detail/data-panes/fundamental-graph.tsx +0 -138
  519. package/src/plugins/builtin/ticker-detail/data-panes.test.ts +0 -220
package/src/i18n/ko.ts ADDED
@@ -0,0 +1,1011 @@
1
+ /**
2
+ * Korean dictionary, keyed by the original English UI text.
3
+ * Keep finance terminology precise and translations concise for dense layouts.
4
+ */
5
+ export const ko: Record<string, string> = {
6
+ // ── Common UI ────────────────────────────────────────────────
7
+ "Back": "뒤로",
8
+ "Done": "완료",
9
+ "Save": "저장",
10
+ "Apply": "적용",
11
+ "Cancel": "취소",
12
+ "Close": "닫기",
13
+ "Open": "열기",
14
+ "Working…": "처리 중…",
15
+ "Searching…": "검색 중…",
16
+ "Loading...": "불러오는 중...",
17
+ "Loading…": "불러오는 중…",
18
+ "Filter": "필터",
19
+ "On": "켜짐",
20
+ "Off": "꺼짐",
21
+ "on": "켜짐",
22
+ "off": "꺼짐",
23
+ "current": "현재",
24
+ "Unset": "미설정",
25
+ "None": "없음",
26
+ "Default": "기본값",
27
+ "Enabled": "활성화",
28
+ "Disabled": "비활성화",
29
+ "Hidden": "숨김",
30
+ "General": "일반",
31
+ "Other": "기타",
32
+ "Time": "시간",
33
+ "Date": "날짜",
34
+ "Name": "이름",
35
+ "Title": "제목",
36
+ "Source": "출처",
37
+ "Headline": "헤드라인",
38
+ "Symbol": "종목코드",
39
+ "Price": "가격",
40
+ "Volume": "거래량",
41
+ "Description": "설명",
42
+ "Detail": "상세",
43
+ "Category": "분류",
44
+ "Version": "버전",
45
+ "View": "보기",
46
+ "Mode": "모드",
47
+ "Range": "범위",
48
+ "Table": "표",
49
+ "Grid": "그리드",
50
+ "Percent": "퍼센트",
51
+ "Email": "이메일",
52
+ "Password": "비밀번호",
53
+ "Live": "실시간",
54
+ "Paper": "모의",
55
+ "Manual": "수동",
56
+ "Cached": "캐시됨",
57
+ "Nothing to show.": "표시할 내용이 없습니다.",
58
+ "No choices.": "선택 항목이 없습니다.",
59
+ "No settings available.": "사용 가능한 설정이 없습니다.",
60
+ "No matches": "일치하는 항목 없음",
61
+ "No settings match": "일치하는 설정이 없습니다",
62
+ "Press esc to cancel": "취소하려면 Esc를 누르세요",
63
+ "This pane is no longer configurable.": "이 패널은 더 이상 설정할 수 없습니다.",
64
+ "Could not save this value.": "이 값을 저장할 수 없습니다.",
65
+ "Could not apply that setting.": "해당 설정을 적용할 수 없습니다.",
66
+ "Enter {action} · Esc cancel": "Enter {action} · Esc 취소",
67
+ "Published {date}": "게시일 {date}",
68
+ "Language": "언어",
69
+ "Unsupported language": "지원하지 않는 언어",
70
+ "Restart to apply everywhere": "전체 적용하려면 다시 시작",
71
+
72
+ // ── Command bar chrome ───────────────────────────────────────
73
+ "Search commands": "명령 검색",
74
+ "Search tickers": "종목 검색",
75
+ "Type a command or prefix": "명령 또는 접두사 입력",
76
+ "Filtering for \"{query}\"": "\"{query}\" 필터링 중",
77
+ "No matches for \"{query}\"": "\"{query}\"과(와) 일치하는 항목이 없습니다",
78
+ "Run {label}": "{label} 실행",
79
+ "Open security details for a ticker": "종목 상세 정보 열기",
80
+ "Preview with arrows, Enter to save, Esc to revert": "화살표로 미리보기, 저장하려면 Enter, 되돌리려면 Esc",
81
+ "Toggle plugins without leaving the list": "목록에서 바로 플러그인 켜기/끄기",
82
+ "Organize panes, history, and saved layouts": "패널, 기록 및 저장된 레이아웃 관리",
83
+ "Type a ticker symbol": "종목코드 입력",
84
+ "Open security details after resolving a ticker": "종목코드 확인 후 상세 정보 열기",
85
+ "Try a symbol, company name, or exchange variant": "종목코드, 회사명 또는 거래소 코드를 입력해 보세요",
86
+ "Try a symbol, company name, exchange, or asset type": "종목코드, 회사명, 거래소 또는 자산 유형을 입력해 보세요",
87
+ "Try a command name or prefix. Use T for ticker search": "명령명 또는 접두사를 입력하세요. 종목 검색은 T",
88
+ "No plugins match": "일치하는 플러그인이 없습니다",
89
+ "Toggleable plugins will appear here": "전환 가능한 플러그인이 여기에 표시됩니다",
90
+ "No themes match": "일치하는 테마가 없습니다",
91
+ "Installed themes will appear here": "설치된 테마가 여기에 표시됩니다",
92
+ "No layout actions match": "일치하는 레이아웃 작업이 없습니다",
93
+ "Focused-pane and layout actions will appear here": "포커스 패널 및 레이아웃 작업이 여기에 표시됩니다",
94
+ "No results yet": "아직 결과가 없습니다",
95
+ "Suggested commands will appear here": "추천 명령어가 여기에 표시됩니다",
96
+ "No focused pane": "포커스된 패널 없음",
97
+ "Search failed": "검색 실패",
98
+ "Check your connection": "연결을 확인하세요",
99
+ "Commands": "명령",
100
+
101
+ // ── Command bar categories ───────────────────────────────────
102
+ "Actions": "작업",
103
+ "Config": "설정",
104
+ "Create": "만들기",
105
+ "Current Layout": "현재 레이아웃",
106
+ "Danger": "위험",
107
+ "Debug": "디버그",
108
+ "Exact Match": "정확한 일치",
109
+ "Focused Pane": "포커스 패널",
110
+ "Funds & Derivatives": "펀드 및 파생상품",
111
+ "Layout": "레이아웃",
112
+ "Navigation": "탐색",
113
+ "Panes": "패널",
114
+ "Plugins": "플러그인",
115
+ "Portfolio": "포트폴리오",
116
+ "Primary Listing": "주 상장",
117
+ "Other Listings": "기타 상장",
118
+ "Saved Layouts": "저장된 레이아웃",
119
+ "Saved": "저장됨",
120
+ "Search Results": "검색결과",
121
+ "Search": "검색",
122
+ "Themes": "테마",
123
+ "Tickers": "종목",
124
+ "Core Panes": "핵심 패널",
125
+ "Plugin Shortcuts": "플러그인 단축키",
126
+
127
+ // ── Core commands ────────────────────────────────────────────
128
+ "Help": "도움말",
129
+ "Add to Watchlist": "관심 목록에 추가",
130
+ "Add to Portfolio": "포트폴리오에 추가",
131
+ "Remove from Watchlist": "관심 목록에서 제거",
132
+ "Remove from Portfolio": "포트폴리오에서 제거",
133
+ "Set Portfolio Position": "포트폴리오 포지션 설정",
134
+ "New Portfolio": "새 포트폴리오",
135
+ "New Watchlist": "새 관심 목록",
136
+ "Delete Portfolio": "포트폴리오 삭제",
137
+ "Delete Watchlist": "관심 목록 삭제",
138
+ "Add Broker Account": "브로커 계좌 추가",
139
+ "Disconnect Broker Account": "브로커 계좌 연결 해제",
140
+ "Disconnect Broker": "브로커 연결 끊기",
141
+ "Pane Settings": "패널 설정",
142
+ "Layout Actions": "레이아웃 작업",
143
+ "Window Mode": "창 모드",
144
+ "Toggle Status Bar": "상태 표시줄 전환",
145
+ "Toggle Value Flashing": "값 깜박임 전환",
146
+ "Check for Updates": "업데이트 확인",
147
+ "Change Theme": "테마 변경",
148
+ "Change Language": "언어 변경",
149
+ "Switch the interface language": "인터페이스 언어 전환",
150
+ "Cycle Chart Renderer": "차트 렌더러 전환",
151
+ "Manage Plugins": "플러그인 관리",
152
+ "Export Config": "설정 내보내기",
153
+ "Import Config": "설정 가져오기",
154
+ "Reset All Data": "모든 데이터 재설정",
155
+ "Reset Everything": "모든 것을 재설정",
156
+ "Reset Layout": "레이아웃 재설정",
157
+ "Reset Current Layout": "현재 레이아웃 재설정",
158
+ "Security Description": "종목 상세",
159
+
160
+ // ── Core command descriptions ────────────────────────────────
161
+ "Show or hide the keyboard shortcuts bar": "키보드 단축키 표시줄 표시 또는 숨기기",
162
+ "Turn quote update flashing on or off": "시세 업데이트 깜박임 켜기/끄기",
163
+ "Check GitHub releases for a newer version": "GitHub 릴리스에서 새 버전 확인",
164
+ "Switch color theme": "색상 테마 전환",
165
+ "Cycle chart rendering between Auto, Kitty, and Braille": "Auto, Kitty, Braille 차트 렌더링 전환",
166
+ "Toggle plugins on/off": "플러그인 켜기/끄기 전환",
167
+ "Save config to ~/gloomberb-config-backup.json": "설정을 ~/gloomberb-config-backup.json에 저장",
168
+ "Load config from ~/gloomberb-config-backup.json": "~/gloomberb-config-backup.json에서 설정 불러오기",
169
+ "Delete all data and reset to first-run state": "모든 데이터를 삭제하고 최초 실행 상태로 재설정",
170
+ "Edit settings for the focused pane": "포커스 패널 설정 편집",
171
+ "Move or resize the focused window": "포커스 창 이동 또는 크기 조정",
172
+ "Add current ticker to active portfolio": "현재 종목을 활성 포트폴리오에 추가",
173
+ "Add current ticker to active watchlist": "현재 종목을 활성 관심 목록에 추가",
174
+ "Run command": "명령 실행",
175
+
176
+ // ── Confirm / workflow ───────────────────────────────────────
177
+ "Close Pane": "패널 닫기",
178
+ "Close All Floating Panes": "모든 플로팅 패널 닫기",
179
+ "Close Floating Panes": "플로팅 패널 닫기",
180
+ "Portfolio Name": "포트폴리오 이름",
181
+ "Watchlist Name": "관심 목록 이름",
182
+ "Layout Name": "레이아웃 이름",
183
+ "Layout name": "레이아웃 이름",
184
+ "New name": "새 이름",
185
+ "Ticker": "종목코드",
186
+ "Broker": "브로커",
187
+ "Account": "계좌",
188
+ "Condition": "조건",
189
+ "Target Price": "목표가격",
190
+ "Above": "초과",
191
+ "Below": "미만",
192
+ "Crosses": "돌파",
193
+ "Add Alert": "알림 추가",
194
+ "Set Alert": "알림 설정",
195
+ "Choose a portfolio and optionally record the manual position now.": "포트폴리오를 선택하고 필요하면 수동 포지션을 입력하세요.",
196
+ "Create or update a manual position without leaving the command bar.": "명령 팔레트에서 수동 포지션을 만들거나 업데이트합니다.",
197
+ "Create a new watchlist inside the command bar.": "명령 팔레트에서 새 관심 목록을 만듭니다.",
198
+ "Organize panes and saved layouts.": "패널과 저장된 레이아웃을 관리합니다.",
199
+ "Resolve a ticker, then open its Ticker Research pane.": "종목코드를 확인한 뒤 종목 리서치 패널을 엽니다.",
200
+ "Toggle optional plugins without leaving the command bar.": "명령 팔레트에서 선택 플러그인을 켜거나 끕니다.",
201
+
202
+ // ── Layout actions ───────────────────────────────────────────
203
+ "New Layout": "새 레이아웃",
204
+ "Rename Layout": "레이아웃 이름 바꾸기",
205
+ "Duplicate Layout": "레이아웃 복제",
206
+ "Delete Layout": "레이아웃 삭제",
207
+ "Rename Layout...": "레이아웃 이름 바꾸기...",
208
+ "New Layout...": "새 레이아웃...",
209
+ "Delete Layout...": "레이아웃 삭제...",
210
+ "Layout Actions...": "레이아웃 작업...",
211
+ "Switch to {name}": "{name}로 전환",
212
+ "Undo Layout Change": "레이아웃 변경 실행 취소",
213
+ "Redo Layout Change": "레이아웃 변경 다시 실행",
214
+ "Swap With…": "교환 대상…",
215
+ "Swap Panes": "패널 교환",
216
+ "Duplicate Pane": "패널 복제",
217
+ "Remove Pane": "패널 제거",
218
+ "Float Pane": "패널 띄우기",
219
+ "Dock Pane": "패널 도킹",
220
+ "Settings": "설정",
221
+ "Copy Screenshot": "스크린샷 복사",
222
+ "Pop Out": "별도 창으로 열기",
223
+ "Move Window...": "창 이동...",
224
+ "Resize Window...": "창 크기 조정...",
225
+ "Move Window": "창 이동",
226
+ "Resize Window": "창 크기 조정",
227
+ "Gridlock All Windows": "모든 창 격자 정렬",
228
+ "Change the current saved layout name": "현재 저장된 레이아웃 이름 변경",
229
+ "Create a copy of the current layout": "현재 레이아웃의 복사본 만들기",
230
+ "Create a fresh saved layout": "새로 저장된 레이아웃 만들기",
231
+ "Create a new layout": "새 레이아웃 만들기",
232
+ "Rename the current layout preset": "현재 레이아웃 사전 설정 이름 바꾸기",
233
+ "Delete the current layout preset": "현재 레이아웃 사전 설정 삭제",
234
+ "Detach a docked pane into a floating window": "도킹된 패널을 플로팅 창으로 분리",
235
+ "Dock a floating pane back into the layout": "플로팅 패널을 레이아웃에 다시 도킹",
236
+ "Remove a pane from the layout": "레이아웃에서 패널 제거",
237
+ "Swap two pane positions": "두 패널 위치 교환",
238
+ "Arrange all visible panes into a tiled grid": "표시된 모든 패널을 격자로 정렬",
239
+ "Create another instance next to the focused pane": "포커스 패널 옆에 새 인스턴스 만들기",
240
+ "Restore the default two-pane layout": "기본 2패널 레이아웃 복원",
241
+ "Remove the focused pane from the layout": "레이아웃에서 포커스 패널 제거",
242
+ "Enter window edit mode with Tab cycling windows": "Tab으로 창을 순환하는 창 편집 모드 진입",
243
+ "Enter window edit mode with Tab cycling resize handles": "Tab으로 크기 조절점을 순환하는 창 편집 모드 진입",
244
+ "Focus a pane to show pane-specific layout actions": "패널을 포커스해 전용 레이아웃 작업 표시",
245
+ "Pane layout management commands": "패널 레이아웃 관리 명령",
246
+
247
+ // ── Context menu ─────────────────────────────────────────────
248
+ "Command Bar": "명령 팔레트",
249
+ "Manage Plugins...": "플러그인 관리...",
250
+ "Change Theme...": "테마 변경...",
251
+ "Copy": "복사",
252
+ "Copy Symbol": "종목코드 복사",
253
+ "Copy Link": "링크 복사",
254
+ "Open Link": "링크 열기",
255
+ "Open Ticker Research": "종목 리서치 열기",
256
+ "Open {symbol} Ticker Research": "{symbol} 종목 리서치 열기",
257
+ "Open {symbol} in New Floating Ticker Research": "새 플로팅 종목 리서치에서 {symbol} 열기",
258
+ "Add to Watchlist...": "관심 목록에 추가...",
259
+ "Add to Portfolio...": "포트폴리오에 추가...",
260
+ "Remove from Watchlist...": "관심 목록에서 제거...",
261
+ "Remove from Portfolio...": "포트폴리오에서 제거...",
262
+ "Context menu action failed.": "컨텍스트 메뉴 작업에 실패했습니다.",
263
+
264
+ // ── Plugin & pane names ──────────────────────────────────────
265
+ "Ticker News": "종목 뉴스",
266
+ "Top News": "주요 뉴스",
267
+ "Breaking News": "속보",
268
+ "Sector News": "섹터 뉴스",
269
+ "News Feed": "뉴스피드",
270
+ "Ticker Research": "종목 리서치",
271
+ "Portfolio List": "포트폴리오 목록",
272
+ "Portfolio Analytics": "포트폴리오 분석",
273
+ "Quote Monitor": "시세 모니터",
274
+ "Chart": "차트",
275
+ "Compare": "비교",
276
+ "Comparison Chart": "비교 차트",
277
+ "Financials": "재무제표",
278
+ "Financial Analysis": "재무 분석",
279
+ "Fundamental Graph": "펀더멘털 그래프",
280
+ "Valuation Graph": "밸류에이션 그래프",
281
+ "Relative Valuation": "상대평가",
282
+ "Relationship Graph": "관계 그래프",
283
+ "Graphs": "그래프",
284
+ "Historical Prices": "과거 주가",
285
+ "Intraday Price Graph": "장중 가격 그래프",
286
+ "Overview": "개요",
287
+ "Events": "이벤트",
288
+ "Earnings Calendar": "실적 캘린더",
289
+ "Earnings Estimates": "실적 추정치",
290
+ "Earnings Monitor": "실적 모니터",
291
+ "Economic Calendar": "경제 캘린더",
292
+ "Corporate Actions": "기업행사",
293
+ "Analyst Research": "애널리스트 리서치",
294
+ "Analyst": "애널리스트",
295
+ "Analysts": "애널리스트",
296
+ "Options": "옵션",
297
+ "Holders": "보유 현황",
298
+ "Insider": "내부자",
299
+ "Insider Trading": "내부자 거래",
300
+ "SEC": "SEC",
301
+ "Notes": "메모",
302
+ "Alerts": "알림",
303
+ "Market Heatmap": "시장 히트맵",
304
+ "Market Movers": "급등락 종목",
305
+ "Sector Performance": "섹터 성과",
306
+ "World Equity Indices": "글로벌 주가지수",
307
+ "World Indices": "글로벌 지수",
308
+ "US Treasury Yield Curve": "미국 국채 수익률 곡선",
309
+ "Yield Curve": "수익률 곡선",
310
+ "FX Cross Rates": "FX 교차 환율",
311
+ "Fear & Greed": "공포·탐욕",
312
+ "Correlation Matrix": "상관 행렬",
313
+ "13F Funds": "13F 펀드",
314
+ "Position Sizer": "포지션 규모 계산",
315
+ "AI": "AI",
316
+ "Ask AI": "AI에 질문",
317
+ "Broker Manager": "브로커 관리",
318
+ "Brokers": "브로커",
319
+ "Open Brokers": "브로커 관리 열기",
320
+ "Layout Manager": "레이아웃 관리",
321
+ "Debug Log": "디버그 로그",
322
+ "Changelog": "변경 내역",
323
+ "Substack": "Substack",
324
+ "Yahoo Finance": "Yahoo Finance",
325
+ "Yahoo Fallback": "Yahoo 보조 소스",
326
+ "Provider Search": "데이터 소스 검색",
327
+ "Research": "리서치",
328
+ "Chat": "채팅",
329
+ "Prediction Markets": "예측 시장",
330
+ "Economics": "경제",
331
+ "Collections": "컬렉션",
332
+ "Workspace": "작업공간",
333
+ "Account Management": "계정 관리",
334
+ "Gloom Cloud": "Gloom Cloud",
335
+
336
+ // ── Plugin descriptions ──────────────────────────────────────
337
+ "View latest news for each ticker": "각 종목별 최신 뉴스 보기",
338
+ "Company news for the selected ticker.": "선택 종목의 기업 뉴스.",
339
+ "Curated top market stories ranked by importance": "중요도순으로 엄선한 주요 시장 뉴스",
340
+ "Breaking and urgent market news": "속보 및 긴급 시장 뉴스",
341
+ "Chronological market news firehose": "시간순 실시간 시장 뉴스",
342
+ "Market news filtered by sector": "섹터별 시장 뉴스",
343
+ "Add a custom RSS news feed": "사용자 정의 RSS 뉴스 피드 추가",
344
+ "Add markdown notes to your tickers.": "종목에 Markdown 메모를 추가합니다.",
345
+ "Open a general-purpose notes scratchpad": "범용 메모장 열기",
346
+ "Analyst research, corporate actions, and relative valuation": "애널리스트 리서치, 기업행사 및 상대가치",
347
+ "Price targets, recommendations, and recent analyst actions.": "목표가, 투자의견 및 최근 애널리스트 조정.",
348
+ "Dividends, splits, reported earnings, and analyst estimates.": "배당, 액면분할, 발표 실적 및 애널리스트 추정치.",
349
+ "Options chain for the selected ticker.": "선택 종목의 옵션 체인.",
350
+ "View options chain for tickers": "종목 옵션 체인 보기",
351
+ "Institutional holders by value and position change": "보유가치 및 포지션 변동별 기관투자자",
352
+ "Institutional holders for the selected ticker.": "선택 종목의 기관투자자.",
353
+ "SEC Form 4 insider transaction activity": "SEC Form 4 내부자 거래 내역",
354
+ "Insider transaction activity for the selected ticker.": "선택 종목의 내부자 거래 내역.",
355
+ "Recent SEC filings for US equities": "미국 주식의 최신 SEC 공시",
356
+ "Recent SEC filings for the selected ticker.": "선택 종목의 최신 SEC 공시.",
357
+ "Price trigger alerts with desktop notifications": "데스크톱 알림이 있는 목표가 알림",
358
+ "Price trigger alerts with notifications": "알림이 있는 목표가 알림",
359
+ "Create a price alert from a symbol, condition, and target price": "종목코드, 조건 및 목표가로 가격 알림 생성",
360
+ "Public market heatmap for the largest US stocks and ETFs.": "미국 대형주 및 ETF 시장 히트맵.",
361
+ "Largest US stocks and ETFs, sized by market cap or assets and colored by daily move.": "미국 대형주와 ETF를 시가총액·자산 규모 및 일일 변동률로 표시.",
362
+ "Top gainers, losers, most active, and trending tickers": "상승률·하락률·거래량 상위 및 인기 종목",
363
+ "Top gainers, losers, most active, and trending tickers.": "상승률·하락률·거래량 상위 및 인기 종목.",
364
+ "S&P 500 sector and industry performance via ETF proxies": "ETF 기준 S&P 500 섹터 및 산업 성과",
365
+ "S&P 500 sector and industry performance sorted by daily change.": "일일 변동률순 S&P 500 섹터 및 산업 성과.",
366
+ "Global equity index monitor grouped by region": "지역별로 그룹화된 글로벌 주가지수 모니터",
367
+ "Monitor global equity indices grouped by region.": "지역별 글로벌 주가지수를 모니터링합니다.",
368
+ "US Treasury yield curve charted from FRED data.": "FRED 데이터로 작성된 미국 국채 수익률 곡선.",
369
+ "Currency cross-rate matrix for major FX pairs": "주요 FX 통화쌍의 교차환율 행렬",
370
+ "Currency cross-rate matrix for major FX pairs.": "주요 FX 통화쌍의 교차환율 행렬.",
371
+ "CNN Fear & Greed sentiment gauge and market indicator charts.": "CNN 공포·탐욕 지수 및 시장 지표 차트.",
372
+ "CNN Fear & Greed sentiment gauge with the seven indicator charts.": "CNN 공포·탐욕 지수와 7개 지표 차트.",
373
+ "NxN Pearson correlation matrix for tickers in portfolios/watchlists": "포트폴리오/관심 목록 종목의 NxN Pearson 상관행렬",
374
+ "Date-aligned Pearson correlation matrix for ticker returns.": "날짜를 맞춘 종목 수익률 Pearson 상관행렬.",
375
+ "Browse 13F fund filings, estimated long-book performance, holdings, changes, and filing history.": "13F 공시, 추정 롱 포트폴리오 성과, 보유종목, 변동 및 공시 이력을 봅니다.",
376
+ "Browse institutional 13F fund filings and estimated long-book performance.": "기관 13F 공시와 추정 롱 포트폴리오 성과를 봅니다.",
377
+ "Size positions from Kelly, risk budget, and asymmetric payoff assumptions.": "Kelly 기준, 위험 예산 및 비대칭 손익 가정으로 포지션 규모를 계산합니다.",
378
+ "Open Kelly-based position sizing for a ticker.": "종목의 Kelly 기반 포지션 규모 계산을 엽니다.",
379
+ "Sharpe ratio, beta vs S&P 500, and sector allocation for your portfolio.": "포트폴리오의 샤프지수, S&P 500 대비 베타 및 섹터 배분.",
380
+ "Sharpe ratio, beta, and sector allocation for the active portfolio": "활성 포트폴리오의 샤프지수, 베타 및 섹터 배분",
381
+ "Upcoming earnings dates and estimates for your tickers.": "관심 종목의 예정 실적 발표일과 추정치.",
382
+ "Upcoming earnings dates and estimates, optionally scoped to tickers.": "예정 실적 발표일과 추정치. 종목 범위 선택 가능.",
383
+ "Upcoming earnings dates for tracked tickers": "추적 종목의 예정 실적 발표일",
384
+ "Upcoming economic events, releases, and indicators.": "다가오는 경제 이벤트, 발표 및 지표.",
385
+ "Open upcoming earnings, optionally scoped to tickers.": "예정 실적을 열고 필요하면 종목 범위를 지정합니다.",
386
+ "Open the Events view with EPS and revenue estimates.": "EPS 및 매출 추정치가 있는 이벤트 보기를 엽니다.",
387
+ "Manage broker profiles and connection status": "브로커 프로필 및 연결 상태 관리",
388
+ "Broker profiles, account sync, and connection status.": "브로커 프로필, 계좌 동기화 및 연결 상태.",
389
+ "Open broker profiles and connection status": "브로커 프로필 및 연결 상태 열기",
390
+ "Compare up to 10 ticker charts overlaid on one chart.": "한 차트에 최대 10개 종목을 겹쳐 비교합니다.",
391
+ "Compare valuation and operating metrics across peers.": "동종 기업의 밸류에이션 및 영업 지표를 비교합니다.",
392
+ "Graph statement metrics for one or more tickers.": "하나 이상의 종목에 대한 재무제표 지표를 그래프로 표시합니다.",
393
+ "Graph valuation multiples for one or more tickers.": "하나 이상의 종목에 대한 밸류에이션 배수를 그래프로 표시합니다.",
394
+ "Graph ratio, rolling correlation, and regression between two tickers.": "두 종목의 비율, 이동 상관관계 및 회귀를 그래프로 표시합니다.",
395
+ "Open a price chart for a ticker.": "종목 가격 차트를 엽니다.",
396
+ "Open an intraday price chart for a ticker.": "종목 장중 가격 차트를 엽니다.",
397
+ "Open a historical OHLCV table for a ticker.": "종목의 과거 OHLCV 표를 엽니다.",
398
+ "Open financial statements for a ticker.": "종목 재무제표를 엽니다.",
399
+ "Open a compact quote monitor for one or more tickers": "하나 이상의 종목에 대한 간결한 시세 모니터 열기",
400
+ "Open another pane for the current portfolio or watchlist": "현재 포트폴리오 또는 관심 목록 패널 추가",
401
+ "Open another portfolio list pane": "포트폴리오 목록 패널 추가",
402
+ "Open another watchlist pane": "관심 목록 패널 추가",
403
+ "Open another research pane for the selected ticker or current collection": "선택 종목 또는 현재 컬렉션의 리서치 패널 추가",
404
+ "Shortcut and layout help": "단축키 및 레이아웃 도움말",
405
+ "Browse Gloomberb release notes.": "Gloomberb 릴리스 노트를 봅니다.",
406
+ "Browse version history and release notes.": "버전 이력과 릴리스 노트를 봅니다.",
407
+ "View and export debug logs": "디버그 로그 보기 및 내보내기",
408
+ "Open the debug log viewer": "디버그 로그 뷰어 열기",
409
+ "Export debug logs to ~/Downloads": "디버그 로그를 ~/Downloads(으)로 내보내기",
410
+ "Export Debug Log": "디버그 로그 내보내기",
411
+ "Use local AI CLI with your financial data.": "금융 데이터와 함께 로컬 AI CLI를 사용합니다.",
412
+ "Create a prompt-driven AI screener pane with reusable screening tabs.": "재사용 가능한 탭이 있는 프롬프트 기반 AI 스크리너 패널을 만듭니다.",
413
+ "Authenticated Substack reader feed and subscriptions": "인증된 Substack 독자 피드 및 구독",
414
+ "Open the authenticated Substack reader feed.": "인증된 Substack 독자 피드를 엽니다.",
415
+ "Built-in delayed fallback for quotes, fundamentals, charts, and unsupported cloud data.": "시세·펀더멘털·차트 및 클라우드 미지원 데이터를 위한 내장 지연 데이터 소스.",
416
+ "Show positions in the portfolio grid.": "포트폴리오 그리드에 포지션을 표시합니다.",
417
+ "Show positions in the portfolio table.": "포트폴리오 표에 포지션을 표시합니다.",
418
+ "Show portfolios and watchlists in this pane.": "이 패널에 포트폴리오와 관심 목록을 표시합니다.",
419
+ "Show chart values as raw prices or percent change from the first visible point.": "차트를 실제 가격 또는 첫 표시점 대비 등락률로 표시합니다.",
420
+ "Show prices or percent change from the first visible point on the shared chart.": "공유 차트를 가격 또는 첫 표시점 대비 등락률로 표시합니다.",
421
+ "Set the period used for quote sparklines and range labels.": "시세 스파크라인과 범위 라벨의 기간을 설정합니다.",
422
+ "Choose exactly which collections this pane should show.": "이 패널에 표시할 컬렉션을 선택합니다.",
423
+ "Limit the pane to portfolios.": "패널을 포트폴리오로 제한합니다.",
424
+ "Limit the pane to watchlists.": "패널을 관심 목록으로 제한합니다.",
425
+ "Hide Ticker Research tabs and lock this pane to one view.": "종목 리서치 탭을 숨기고 패널을 한 보기로 고정합니다.",
426
+ "Notify when new breaking stories arrive, even while this pane is closed.": "패널이 닫혀 있어도 새 속보가 도착하면 알립니다.",
427
+ "Merge Polymarket and Kalshi into one browser.": "Polymarket과 Kalshi를 한 브라우저에 통합합니다.",
428
+ "Lock this pane to Kalshi.": "이 패널을 Kalshi로 고정합니다.",
429
+ "Lock this pane to Polymarket.": "이 패널을 Polymarket으로 고정합니다.",
430
+ "Hide the top venue tabs and lock this pane to one scope.": "상단 거래소 탭을 숨기고 패널을 한 범위로 고정합니다.",
431
+ "Interactive Brokers market data, account sync, and trading.": "Interactive Brokers 시장 데이터, 계좌 동기화 및 거래.",
432
+ "Free market, macro, and chat services. Chat requires signup.": "무료 시장 데이터, 거시경제 및 채팅 서비스. 채팅은 가입 필요.",
433
+
434
+ // ── Settings fields ──────────────────────────────────────────
435
+ "Columns": "열",
436
+ "Visible Collections": "표시할 컬렉션",
437
+ "All Collections": "모든 컬렉션",
438
+ "Portfolios Only": "포트폴리오만",
439
+ "Watchlists Only": "관심 목록만",
440
+ "Custom Selection": "맞춤 선택",
441
+ "Collection Pane": "컬렉션 패널",
442
+ "Hide Cash Positions": "현금 포지션 숨기기",
443
+ "Hide Header Bar": "헤더 표시줄 숨기기",
444
+ "Hide Header": "헤더 숨기기",
445
+ "Hide Tabs": "탭 숨기기",
446
+ "Hide Venue Tabs": "거래소 탭 숨기기",
447
+ "Locked Tab": "고정 탭",
448
+ "Locked Venue Scope": "고정 거래소 범위",
449
+ "Chart Period": "차트 기간",
450
+ "Chart Y-Axis": "차트 Y축",
451
+ "Graph Price": "가격 그래프",
452
+ "Quote Tickers": "시세 종목",
453
+ "Comparison Tickers": "비교 종목",
454
+ "Correlation Tickers": "상관관계 종목",
455
+ "Feed Name": "피드 이름",
456
+ "Feed URL": "피드 URL",
457
+ "Add News Feed": "뉴스피드 추가",
458
+ "Notifications": "알림",
459
+ "Screener Prompt": "스크리너 프롬프트",
460
+ "AI Provider": "AI 제공업체",
461
+ "Default Browse Tab": "기본 탐색 탭",
462
+ "Basics": "기초",
463
+ "Functions": "기능",
464
+ "Shortcuts": "단축키",
465
+ "Issues": "이슈",
466
+ "Portfolio Pane Settings": "포트폴리오 패널 설정",
467
+ "Quote Monitor Settings": "시세 모니터 설정",
468
+ "Chart Pane Settings": "차트 패널 설정",
469
+ "Graph Pane Settings": "그래프 패널 설정",
470
+ "Breaking News Settings": "속보 설정",
471
+ "AI Screener Settings": "AI 스크리너 설정",
472
+
473
+ // ── Pane templates ───────────────────────────────────────────
474
+ "New Chat Pane": "새 채팅 패널",
475
+ "New IBKR Trading Pane": "새 IBKR 거래 패널",
476
+ "New Portfolio Pane": "새 포트폴리오 패널",
477
+ "New Watchlist Pane": "새 관심 목록 패널",
478
+ "New Screener": "새 스크리너",
479
+ "Pin Ticker": "종목 고정",
480
+
481
+ // ── Help pane ────────────────────────────────────────────────
482
+ "How To Use Gloomberb": "Gloomberb 사용 방법",
483
+ "Gloomberb is command-bar first.": "Gloomberb은 명령 팔레트를 중심으로 작동합니다.",
484
+ "Use the keyboard for speed, and the mouse for windows.": "빠른 조작은 키보드로, 창 관리는 마우스로 하세요.",
485
+ "Command Prefixes": "명령 접두사",
486
+ "Window Templates": "창 템플릿",
487
+ "No shortcut window templates are currently registered.": "현재 등록된 바로가기 창 템플릿이 없습니다.",
488
+ "Global Keys": "전역 키",
489
+ "Pane Management": "패널 관리",
490
+ "Scrolling": "스크롤",
491
+ "If There Is A Bug": "버그가 있다면",
492
+ "Open Debug Log": "디버그 로그 열기",
493
+ "GitHub Issues": "GitHub 이슈",
494
+ "Open Debug Log, then run Export Debug Log from the command bar.": "디버그 로그를 연 뒤 명령 팔레트에서 디버그 로그 내보내기를 실행하세요.",
495
+ "The file lands in ~/Downloads. Include steps, ticker or layout, plugin, and a screenshot if it is visual.": "파일은 ~/Downloads에 저장됩니다. 재현 단계, 종목 또는 레이아웃, 플러그인과 화면 문제라면 스크린샷을 첨부하세요.",
496
+ "Docked panes stay in the saved layout.": "도킹된 패널은 저장된 레이아웃에 유지됩니다.",
497
+ "Floating panes can be dragged by the title bar and resized from the lower-right corner.": "플로팅 패널은 제목 표시줄로 이동하고 오른쪽 아래에서 크기를 조절할 수 있습니다.",
498
+ "Use Layout Actions for split, move, duplicate, close all floating panes, undo, redo, and layout presets.": "레이아웃 작업에서 분할, 이동, 복제, 플로팅 패널 모두 닫기, 실행 취소, 다시 실행 및 프리셋을 관리합니다.",
499
+ "Move through focused table and list rows.": "포커스된 표와 목록의 행을 이동합니다.",
500
+ "Open or activate the selected row.": "선택한 행을 열거나 활성화합니다.",
501
+ "Switch tabs when a tab bar is focused.": "탭 바가 포커스되면 탭을 전환합니다.",
502
+ "Go back from detail views that support back navigation.": "뒤로 이동을 지원하는 상세 보기에서 돌아갑니다.",
503
+ "Scroll focused pane content by page.": "포커스 패널 내용을 페이지 단위로 스크롤합니다.",
504
+ "Scroll focused pane content to the start or end.": "포커스 패널 내용을 처음 또는 끝으로 이동합니다.",
505
+ "Move focus between panes and floating windows.": "패널과 플로팅 창 사이에서 포커스를 이동합니다.",
506
+ "Switch saved layouts by number.": "저장된 레이아웃을 번호별로 전환합니다.",
507
+ "Refresh the focused ticker or refresh everything.": "포커스 종목 또는 전체를 새로고침합니다.",
508
+ "Quit the terminal app.": "터미널 앱을 종료합니다.",
509
+ "Copy the active terminal selection.": "활성 터미널 선택을 복사합니다.",
510
+ "Paste clipboard text into the active input.": "클립보드 텍스트를 활성 입력에 붙여넣습니다.",
511
+ "Install an available app update when one is shown.": "사용 가능한 앱 업데이트가 표시되면 설치하세요.",
512
+ "Close the focused pane, docked or floating.": "도킹 또는 플로팅된 포커스 패널을 닫습니다.",
513
+ "Close all floating panes.": "모든 플로팅 패널을 닫습니다.",
514
+ "Edit settings for the focused pane.": "포커스 패널 설정을 편집합니다.",
515
+ "Dock or float the focused pane.": "포커스 패널을 도킹하거나 띄웁니다.",
516
+ "Pop the focused pane out to a desktop window.": "포커스 패널을 데스크톱 창으로 분리합니다.",
517
+ "Copy a screenshot of the focused pane.": "포커스 패널의 스크린샷을 복사합니다.",
518
+ "Open layout actions.": "레이아웃 작업을 엽니다.",
519
+ "Gridlock all windows.": "모든 창을 격자에 맞춥니다.",
520
+ "Enter window move mode.": "창 이동 모드로 들어갑니다.",
521
+ "Enter window resize mode.": "창 크기 조절 모드로 들어갑니다.",
522
+ "Cancel an active pane drag.": "진행 중인 패널 드래그를 취소합니다.",
523
+ "Close the focused pane when nothing is being dragged.": "드래그 중이 아닐 때 포커스 패널을 닫습니다.",
524
+ "Switch between move and resize.": "이동과 크기 조정 사이를 전환합니다.",
525
+ "Dock or float the selected window.": "선택한 창을 도킹하거나 띄웁니다.",
526
+ "Move, resize, or choose a dock target.": "이동·크기 조절 또는 도킹 대상을 선택합니다.",
527
+ "Use larger move and resize steps with direction keys.": "방향키로 더 큰 단위로 이동하거나 크기를 조절합니다.",
528
+ "Cycle windows or resize handles.": "창 또는 크기 조절점을 순환합니다.",
529
+ "Commit pending changes or exit window mode.": "변경 사항을 적용하거나 창 모드를 종료합니다.",
530
+ "Open command mode for actions, pane commands, and typed prefixes.": "작업, 패널 명령 및 접두사를 위한 명령 모드를 엽니다.",
531
+ "Open ticker search directly.": "종목 검색을 바로 엽니다.",
532
+ "Open security details for a specific ticker.": "특정 종목의 상세 정보를 엽니다.",
533
+ "Move through command bar results.": "명령 팔레트 결과 사이를 이동합니다.",
534
+ "Run the selected result or its secondary action.": "선택한 결과 또는 해당 보조 작업을 실행합니다.",
535
+ "Accept a suggested command argument when one is available.": "사용 가능한 경우 제안된 명령 인수를 수락합니다.",
536
+ "Close the command bar.": "명령 팔레트를 닫습니다.",
537
+ "Clear command text.": "명령 텍스트를 지웁니다.",
538
+ "Delete the previous word in command text.": "명령 텍스트에서 이전 단어를 삭제합니다.",
539
+ "Go back from a nested command screen when the query is empty.": "쿼리가 비어 있으면 중첩된 명령 화면에서 돌아갑니다.",
540
+ "Toggle command-bar plugin rows, toggles, and multi-select choices.": "명령 팔레트의 플러그인 행, 토글 및 다중 선택 항목을 전환합니다.",
541
+ "Reorder ordered multi-select choices.": "순서가 있는 다중 선택 항목을 재정렬합니다.",
542
+ "Submit multiline command forms.": "여러 줄 명령 양식을 제출합니다.",
543
+ "Layout Basics": "레이아웃 기본 사항",
544
+
545
+ // ── Onboarding ───────────────────────────────────────────────
546
+ "The open terminal for modern finance.": "현대 금융을 위한 오픈 소스 터미널.",
547
+ "Let's set things up (~30s).": "빠른 설정을 시작합니다(~30초).",
548
+ "Theme": "테마",
549
+ "Change it later from the command bar with ": "나중에 명령 팔레트에서 변경: ",
550
+ "Use ↑↓ to browse": "↑↓로 탐색",
551
+ "Use ↑↓ to choose": "↑↓로 선택",
552
+ "After launch shortcuts": "실행 후 단축키",
553
+ "Basic command prefixes": "기본 명령 접두사",
554
+ "Type these in the command bar (": "명령 팔레트에 입력(",
555
+ "Everything is searchable, just type what you want.": "모든 기능을 검색할 수 있습니다. 원하는 것을 입력하세요.",
556
+ "You're all set": "모든 준비가 완료되었습니다",
557
+ "Launching Gloomberb...": "Gloomberb 실행 중...",
558
+ "Your broker portfolio is ready and will open directly after launch.": "브로커 포트폴리오가 준비되었습니다. 실행 후 바로 열립니다.",
559
+ "Broker sync finished. If you expected holdings, check the selected account or connection mode.": "브로커 동기화 완료. 보유종목이 없다면 선택한 계좌나 연결 모드를 확인하세요.",
560
+ "Search for broker names in the command bar to connect.": "명령 팔레트에서 브로커명을 검색해 연결하세요.",
561
+ "Data stored in ": "데이터 저장 위치: ",
562
+ "Open command mode": "명령 모드 열기",
563
+ "Open ticker search": "종목 검색 열기",
564
+ "Switch between panels": "패널 간 전환",
565
+ "Close the focused pane": "포커스 패널 닫기",
566
+ "Dock or float the focused pane": "포커스 패널 도킹 또는 띄우기",
567
+ "Quit": "종료",
568
+ "Open security details": "종목 상세 정보 열기",
569
+ "Switch theme": "테마 전환",
570
+ "Toggle plugins": "플러그인 전환",
571
+ "Open the help window": "도움말 창 열기",
572
+ "Set up a portfolio": "포트폴리오 설정",
573
+ "How would you like to get started?": "어떻게 시작하시겠습니까?",
574
+ "Edits later from the command bar.": "나중에 명령 팔레트에서 수정할 수 있습니다.",
575
+ "Create Manual Portfolio": "수동 포트폴리오 만들기",
576
+ "Add tickers and positions by hand": "종목과 포지션 직접 추가",
577
+ "Credentials are saved locally.": "자격 증명은 로컬에 저장됩니다.",
578
+ "Check your broker's documentation for setup instructions.": "설정 지침은 브로커 설명서를 확인하세요.",
579
+ "enter ->": "Enter ->",
580
+ "enter to launch": "Enter로 실행",
581
+ "launching...": "실행 중...",
582
+
583
+ // ── Extended onboarding / broker setup ──────────────────────
584
+ "Setup Guide - {broker}": "설정 가이드 - {broker}",
585
+ "Connect ": "연결: ",
586
+ "Connect {broker}": "{broker} 연결",
587
+ "Step {step}: ": "{step}단계: ",
588
+ "Enter {field}": "{field} 입력",
589
+ "Press enter to type...": "Enter를 눌러 입력하세요...",
590
+ "Press enter to use {value}": "{value}을 사용하려면 Enter를 누르세요",
591
+ "Selected: {value}": "선택: {value}",
592
+ "Field {current} of {total}": "필드 {current}/{total}",
593
+ "You'll need 2 things from IBKR Account Management:": "IBKR Account Management에서 다음 2개 항목 필요:",
594
+ "1. Go to ": "1. 이동: ",
595
+ "2. Create a Flex Query that includes positions data": "2. 포지션 데이터가 포함된 Flex Query 생성",
596
+ "3. Note the ": "3. 다음을 기록: ",
597
+ "Query ID": "쿼리 ID",
598
+ " (numeric)": " (숫자)",
599
+ "4. Under ": "4. 다음 메뉴에서: ",
600
+ ", generate a ": ", 생성: ",
601
+ "Flex Web Service Token": "Flex 웹 서비스 토큰",
602
+ "You'll need IB Gateway or TWS running locally:": "로컬에서 실행되는 IB Gateway 또는 TWS가 필요합니다:",
603
+ "1. Download and install ": "1. 다운로드 및 설치: ",
604
+ " (or use TWS)": " (또는 TWS 사용)",
605
+ "2. Log in with your IBKR credentials": "2. IBKR 자격 증명으로 로그인",
606
+ "3. In ": "3. 다음 메뉴에서: ",
607
+ " Enable \"ActiveX and Socket Clients\"": " \"ActiveX and Socket Clients\" 활성화",
608
+ " Gloomberb can auto-detect local API ports (4001, 4002, 7496, 7497)": " Gloomberb 로컬 API 포트 자동 감지(4001, 4002, 7496, 7497)",
609
+ " Use Manual setup only if you need a custom host or exact socket port": " 사용자 지정 호스트나 정확한 소켓 포트가 필요할 때만 수동 설정 사용",
610
+ "4. Keep it running while using Gloomberb": "4. Gloomberb 사용 중 실행 상태 유지",
611
+ "You'll need your {broker} API credentials.": "{broker} API 자격 증명이 필요합니다.",
612
+ "Connecting to {broker} and importing accounts and positions...": "{broker} 연결 및 계좌·포지션 가져오는 중...",
613
+ "Unable to sync {broker}.": "{broker}을(를) 동기화할 수 없습니다.",
614
+ "This happens now so your portfolio is ready before onboarding finishes.": "온보딩 완료 전에 포트폴리오를 준비하기 위해 지금 동기화합니다.",
615
+ "Press Enter to retry, or Backspace to edit the broker settings.": "Enter로 재시도, Backspace로 브로커 설정 편집.",
616
+ "Flex (read-only)": "Flex (읽기 전용)",
617
+ "Syncs via IBKR's Flex API. No software needed.": "IBKR의 Flex API를 통해 동기화됩니다. 소프트웨어가 필요하지 않습니다.",
618
+ "Gateway / TWS": "Gateway / TWS",
619
+ "Use IB Gateway or TWS for live data and trading.": "실시간 데이터와 거래에 IB Gateway 또는 TWS를 사용합니다.",
620
+ "Flex Token": "Flex 토큰",
621
+ "Your Flex Web Service token": "Flex Web Service 토큰",
622
+ "Numeric Flex Query ID": "숫자 Flex 쿼리 ID",
623
+ "IB Gateway": "IB Gateway",
624
+ "Reports > Flex Queries": "Reports > Flex Queries",
625
+ "Reports > Settings": "Reports > Settings",
626
+ "Configuration > API > Settings": "Configuration > API > Settings",
627
+ "Detect the local IBKR API port and choose a client ID automatically.": "로컬 IBKR API 포트를 감지하고 클라이언트 ID를 자동으로 선택합니다.",
628
+ "Gateway Host": "Gateway 호스트",
629
+ "Gateway Port": "Gateway 포트",
630
+
631
+ // ── Account management ──────────────────────────────────────
632
+ "Profile": "프로필",
633
+ "Emails": "이메일",
634
+ "Pro": "Pro",
635
+ "Advanced": "고급",
636
+ "Free": "무료",
637
+ "Market data": "시장 데이터",
638
+ "Delayed": "지연",
639
+ "Real-time": "실시간",
640
+ "News": "뉴스",
641
+ "12h delay": "12시간 지연",
642
+ "Real-time wire": "실시간 속보",
643
+ "Cloud sync": "클라우드 동기화",
644
+ "Included": "포함",
645
+ "X data": "X 데이터",
646
+ "No": "아니요",
647
+ "Soon": "출시 예정",
648
+ "AI Screener": "AI 스크리너",
649
+ "Capability": "기능",
650
+ "$49/mo": "$49/월",
651
+ "Public Profile": "공개 프로필",
652
+ "Incoming DMs": "받은 DM",
653
+ "Username": "사용자명",
654
+ "username": "사용자명",
655
+ "Full Name": "이름",
656
+ "Full name": "이름",
657
+ "Company": "회사",
658
+ "X Account": "X 계정",
659
+ "handle": "사용자명",
660
+ "Public Email": "공개 이메일",
661
+ "Bio": "소개",
662
+ "Short profile bio": "짧은 프로필 소개",
663
+ "Public Stats:": "공개 통계:",
664
+ "Public Stats": "공개 통계",
665
+ "Only 1Y return and SPY Beta are shared. Positions are not shared.": "1년 수익률과 SPY 베타만 공개됩니다. 포지션은 공개되지 않습니다.",
666
+ "Offline Chat": "오프라인 채팅",
667
+ "Replies and private messages while offline.": "오프라인 중 받은 답글과 비공개 메시지.",
668
+ "Weekly Roundup": "주간 요약",
669
+ "Friday after market close.": "금요일 장 마감 후.",
670
+ "Smart Alerts": "스마트 알림",
671
+ "Unusual portfolio or watchlist moves.": "포트폴리오 또는 관심 목록의 이상 변동.",
672
+ "Turning Off...": "끄는 중...",
673
+ "Turn Off All": "모두 끄기",
674
+ "Status": "상태",
675
+ "Manage Pro": "Pro 관리",
676
+ "Opening...": "여는 중...",
677
+ "Upgrade to Pro": "Pro로 업그레이드",
678
+ "Change Password": "비밀번호 변경",
679
+ "Delete Account": "계정 삭제",
680
+ "Deleting...": "삭제 중...",
681
+ "Loading account profile...": "계정 프로필 로드 중...",
682
+ "Failed to load account profile.": "계정 프로필을 로드하지 못했습니다.",
683
+ "Changing password...": "비밀번호 변경 중...",
684
+ "Password changed.": "비밀번호가 변경되었습니다.",
685
+ "Failed to change password.": "비밀번호를 변경하지 못했습니다.",
686
+ "Current Password": "현재 비밀번호",
687
+ "New Password": "새 비밀번호",
688
+ "Confirm Password": "비밀번호 확인",
689
+ "Changing...": "변경 중...",
690
+ "Update Password": "비밀번호 업데이트",
691
+ "Current and new password are required.": "현재 비밀번호와 새 비밀번호가 필요합니다.",
692
+ "New password must be at least 8 characters.": "새 비밀번호는 8자 이상이어야 합니다.",
693
+ "New passwords do not match.": "새 비밀번호가 일치하지 않습니다.",
694
+ "Username and full name are required.": "사용자명과 이름은 필수입니다.",
695
+ "Saving account profile...": "계정 프로필을 저장하는 중...",
696
+ "Saving...": "저장 중...",
697
+ "Save Profile": "프로필 저장",
698
+ "Account profile saved.": "계정 프로필이 저장되었습니다.",
699
+ "Failed to save account profile.": "계정 프로필을 저장하지 못했습니다.",
700
+ "Turning off email alerts...": "이메일 알림을 끄는 중...",
701
+ "Email alerts are off.": "이메일 알림이 꺼져 있습니다.",
702
+ "Failed to update alert settings.": "알림 설정을 업데이트하지 못했습니다.",
703
+ "Opening Pro upgrade...": "Pro 업그레이드를 여는 중...",
704
+ "Failed to open upgrade page.": "업그레이드 페이지를 열지 못했습니다.",
705
+ "Delete your Gloom Cloud account?": "Gloom Cloud 계정을 삭제하시겠습니까?",
706
+ "This removes cloud profile, chat, sync, and billing-linked account data.": "이렇게 하면 클라우드 프로필, 채팅, 동기화 및 결제 연결 계정 데이터가 제거됩니다.",
707
+ "Deleting account...": "계정 삭제 중...",
708
+ "Account deleted.": "계정이 삭제되었습니다.",
709
+ "Failed to delete account.": "계정을 삭제하지 못했습니다.",
710
+ "Log in to manage your Gloom Cloud account.": "Gloom Cloud 계정을 관리하려면 로그인하세요.",
711
+ "Configured": "설정됨",
712
+ "No public portfolio analytics": "공개 포트폴리오 분석 없음",
713
+ "Choose a portfolio to preview the public profile metrics.": "공개 프로필 지표를 미리 볼 포트폴리오를 선택하세요.",
714
+ "Portfolio not found": "포트폴리오를 찾을 수 없습니다",
715
+ "No positions to preview yet.": "미리 볼 포지션이 아직 없습니다.",
716
+ "Pending": "보류 중",
717
+ "needs price history": "가격 내역이 필요합니다",
718
+ "needs SPY overlap": "SPY와 겹치는 기간 필요",
719
+ "Choose a portfolio to publish 1Y return and SPY Beta.": "1년 수익률과 SPY 베타를 공개할 포트폴리오를 선택하세요.",
720
+ "Loading published metrics.": "공개 지표를 불러오는 중입니다.",
721
+ "Save profile to update published metrics.": "공개 지표를 업데이트하려면 프로필을 저장하세요.",
722
+ "Public profile is off.": "공개 프로필이 꺼져 있습니다.",
723
+ "Public profile is off": "공개 프로필 꺼짐",
724
+ "Syncing published metrics.": "공개 지표를 동기화하는 중입니다.",
725
+ "Syncing published metrics": "공개 지표 동기화 중",
726
+ "Waiting for published metrics.": "공개 지표를 기다리는 중입니다.",
727
+ "Waiting for published metrics": "공개 지표 대기 중",
728
+ "Loading published metrics": "공개 지표 불러오는 중",
729
+ "Save profile to update published metrics": "공개 지표를 업데이트하려면 프로필을 저장하세요",
730
+ "Published public metrics": "공개된 프로필 지표",
731
+ "{count} tickers": "종목 {count}개",
732
+ "Do not show portfolio analytics on your public profile.": "공개 프로필에 포트폴리오 분석을 표시하지 마세요.",
733
+ "Shares this portfolio's 1Y return and SPY Beta on your public profile.": "이 포트폴리오의 1년 수익률과 SPY 베타를 공개 프로필에 공유합니다.",
734
+ "SPY Beta": "SPY 베타",
735
+ "save": "저장",
736
+ "public": "공개",
737
+ "private": "비공개",
738
+
739
+ // ── Chat ────────────────────────────────────────────────────
740
+ "Direct message": "DM",
741
+ "Group chat": "그룹 채팅",
742
+ "Group": "그룹",
743
+ "DM": "DM",
744
+ "Conversations": "대화",
745
+ "Start or open direct message": "DM 시작 또는 열기",
746
+ "Start group chat": "그룹 채팅 시작",
747
+ "Use @username, or multiple usernames for a group chat": "그룹 채팅에는 @username 또는 여러 사용자 이름을 사용하세요",
748
+ "Type DM @username to start one": "DM @username을 입력하여 시작하세요",
749
+ "Read-only chat. Log in or sign up to send.": "읽기 전용 채팅. 보내려면 로그인하거나 회원가입하세요.",
750
+ "Saved login found. Log in again to send.": "저장된 로그인을 찾았습니다. 보내려면 다시 로그인하세요.",
751
+ "Verify your email to send messages.": "메시지를 보내려면 이메일을 인증하세요.",
752
+ "Verify your email to use Cloud tweets.": "Cloud 게시물을 사용하려면 이메일을 인증하세요.",
753
+ "Resend Verification Email": "확인 이메일 다시 보내기",
754
+ "Ctrl+P, then Resend Verification Email": "Ctrl+P 후 인증 이메일 재전송",
755
+ "editing": "편집 중",
756
+ "replying to": "답장 대상",
757
+ "Reply": "답장",
758
+ "Edit": "편집",
759
+ "Edit message...": "메시지 수정...",
760
+ "Reply to @{username}...": "@{username}에 답장을 보내세요...",
761
+ "Type a message...": "메시지를 입력하세요...",
762
+ "Loading earlier messages...": "이전 메시지 로드 중...",
763
+ "No messages yet. Be the first to say something!": "아직 메시지가 없습니다. 가장 먼저 말해보세요!",
764
+ "New DM": "신규 DM",
765
+ "Recent users": "최근 사용자",
766
+ "No recent users": "최근 사용자 없음",
767
+ "Enter at least one @username.": "@username을 하나 이상 입력하세요.",
768
+ "Could not start conversation.": "대화를 시작할 수 없습니다.",
769
+ "Starting": "시작 중",
770
+ "Start": "시작",
771
+
772
+ // ── Broker manager ──────────────────────────────────────────
773
+ "Unavailable": "사용 불가",
774
+ "Sync only": "동기화만",
775
+ "Ready to test or sync": "테스트 또는 동기화 준비 완료",
776
+ "Profile is disabled": "프로필이 비활성화되었습니다",
777
+ "Broker plugin is not available": "브로커 플러그인을 사용할 수 없습니다",
778
+ "Flex profiles sync on demand": "Flex 프로필은 요청 시 동기화됩니다",
779
+ "Connected": "연결됨",
780
+ "Connecting": "연결 중",
781
+ "Disconnected": "연결 안 됨",
782
+ "Error": "오류",
783
+ "Profile Label": "프로필 이름",
784
+ "Edit Profile": "프로필 편집",
785
+ "Accounts": "계좌",
786
+ "No accounts loaded. Test/connect or sync this profile.": "불러온 계좌가 없습니다. 프로필을 테스트/연결하거나 동기화하세요.",
787
+ "Test": "테스트",
788
+ "Sync": "동기화",
789
+ "Disconnect": "연결 해제",
790
+ "No status message.": "상태 메시지가 없습니다.",
791
+ "Last sync {time}": "최근 동기화 {time}",
792
+ "Status updated {time}": "상태 업데이트 {time}",
793
+ "{value} net liq": "순청산가치 {value}",
794
+ "{value} buying power": "{value} 구매력",
795
+ "{profiles} profiles · {connected} connected · {issues} issues": "프로필 {profiles}개 · 연결 {connected}개 · 문제 {issues}개",
796
+ "Manage broker profiles, connection tests, and position syncs.": "브로커 프로필, 연결 테스트 및 포지션 동기화를 관리합니다.",
797
+ "No broker profiles.": "브로커 프로필이 없습니다.",
798
+ "Add a broker profile to test connections and sync positions.": "브로커 프로필을 추가해 연결을 테스트하고 포지션을 동기화하세요.",
799
+ "Broker plugin is not available.": "브로커 플러그인을 사용할 수 없습니다.",
800
+ "Profile label is required.": "프로필 이름은 필수입니다.",
801
+ "Saved {label}.": "{label}을(를) 저장했습니다.",
802
+ "Failed to save broker profile.": "브로커 프로필을 저장하지 못했습니다.",
803
+ "Tested {label}.": "{label}을 테스트했습니다.",
804
+ "Failed to test {label}.": "{label}을(를) 테스트하지 못했습니다.",
805
+ "Synced {label}.": "{label} 동기화 완료.",
806
+ "Failed to sync {label}.": "{label}을(를) 동기화하지 못했습니다.",
807
+ "{action} is unavailable for this profile.": "{action}은(는) 이 프로필에 사용할 수 없습니다.",
808
+ "Disconnect broker?": "브로커를 연결 해제하시겠습니까?",
809
+ "Remove \"{label}\" and imported broker data?": "\"{label}\" 및 가져온 브로커 데이터를 제거하시겠습니까?",
810
+ "Broker-managed portfolios, positions, and contracts will be removed.": "브로커가 관리하는 포트폴리오, 포지션 및 계약이 제거됩니다.",
811
+ "Enter disconnect · Esc cancel": "Enter 연결 해제 · Esc 취소",
812
+ "Disconnecting…": "연결 해제 중…",
813
+ "Removed {label}.": "{label}을(를) 제거했습니다.",
814
+ "Failed to remove {label}.": "{label}을(를) 제거하지 못했습니다.",
815
+ "Saving…": "저장 중…",
816
+ "Testing…": "테스트 중…",
817
+ "Syncing…": "동기화 중…",
818
+ "PROFILE": "프로필",
819
+ "STATUS": "상태",
820
+ "BROKER": "브로커",
821
+ "MODE": "모드",
822
+ "ACCOUNTS": "계좌",
823
+ "SYNCED": "동기화됨",
824
+
825
+ // ── AI ──────────────────────────────────────────────────────
826
+ "Select a ticker to ask AI.": "AI에 질문할 종목을 선택하세요.",
827
+ "No AI CLI tools are ready:": "사용 가능한 AI CLI 도구가 없습니다:",
828
+ "Ask questions about {ticker}. Financial data will be included as context.": "{ticker}에 대해 질문하세요. 재무 데이터는 컨텍스트로 포함됩니다.",
829
+ "You": "나",
830
+ "thinking...": "생각 중...",
831
+ "Generating...": "생성 중...",
832
+ "Ask a question...": "질문하세요...",
833
+ "Choose which local AI CLI should run the initial screener.": "초기 스크리너를 실행할 로컬 AI CLI를 선택하세요.",
834
+ "Describe the screening idea in plain English.": "스크리닝 아이디어를 쉬운 영어로 설명하세요.",
835
+ "The AI will return validated ticker ideas with a short reason for each one.": "AI가 검증된 종목 아이디어와 각각의 짧은 근거를 제시합니다.",
836
+ "Examples: humanoid robot suppliers, defense software compounders, EM payment rails, obesity-drug picks-and-shovels...": "예: 휴머노이드 로봇 공급사, 복리 성장 방산 소프트웨어 기업, 신흥국 결제망, 비만 치료제 인프라 수혜주...",
837
+ "Describe the companies or setups you want this screener to discover.": "스크리너로 찾고 싶은 기업이나 투자 조건을 설명하세요.",
838
+ "Update the screener prompt or provider. Saving does not rerun it automatically.": "스크리너 프롬프트 또는 제공업체를 수정하세요. 저장해도 자동 재실행되지는 않습니다.",
839
+ "No AI screeners yet.": "아직 AI 스크리너가 없습니다.",
840
+ "Click + to create one.": "하나를 만들려면 +를 클릭하세요.",
841
+ "Running AI screener...": "AI 스크리너 실행 중...",
842
+ "No supported AI CLI tools detected. Install one to run screeners.": "지원되는 AI CLI 도구가 감지되지 않았습니다. 스크리너를 실행하려면 하나를 설치하세요.",
843
+ "Force Refreshing...": "강제 새로고침 중...",
844
+ "Refreshing...": "새로고침 중...",
845
+ "Stop": "중지",
846
+ "Refresh": "새로고침",
847
+ "Run Screener": "스크리너 실행",
848
+ "Run Updated Prompt": "업데이트된 프롬프트 실행",
849
+ "Confirm Force Refresh": "강제 새로고침 확인",
850
+ "Force Refresh": "강제 새로고침",
851
+ "Edit Prompt": "프롬프트 편집",
852
+ "Force refreshing": "강제 새로고침 중",
853
+ "Refreshing": "새로고침 중",
854
+ "{mode} with {provider}...": "{provider}로 {mode} 중...",
855
+ "Last ran {time}": "마지막 실행: {time}",
856
+ "Never run": "실행한 적 없음",
857
+ "No screener selected": "선택한 스크리너 없음",
858
+ "force refresh armed": "강제 새로고침 준비됨",
859
+ "provider": "제공업체",
860
+ "new": "새로 만들기",
861
+ "close tab": "탭 닫기",
862
+ "efresh": "새로고침",
863
+ "force refresh": "강제 새로고침",
864
+ "dit": "편집",
865
+ "syncing": "동기화 중",
866
+ "{count} online": "{count}명 온라인",
867
+ "reply": "답장",
868
+ "Someone": "누군가",
869
+ "@{author} mentioned you in chat.": "@{author}님이 채팅에서 나를 멘션했습니다.",
870
+ "@{author} mentioned you: {snippet}": "@{author}님이 나를 멘션했습니다: {snippet}",
871
+ "@{author} replied to you.": "@{author}님이 내게 답글을 남겼습니다.",
872
+ "@{author} replied to you: {snippet}": "@{author}님이 내게 답글을 남겼습니다: {snippet}",
873
+ "@{author} sent a message.": "@{author}님이 메시지를 보냈습니다.",
874
+ "{channel} @{author} sent a message.": "{channel} @{author}님이 메시지를 보냈습니다.",
875
+
876
+ // ── Main dashboard ──────────────────────────────────────────
877
+ "Installing update...": "업데이트 설치 중...",
878
+ "Update installed, restart to apply": "업데이트 설치 완료. 적용하려면 다시 시작하세요",
879
+ "Checking for updates...": "업데이트 확인 중...",
880
+ "Downloading v{version}: {percent}%": "v{version} 다운로드 중: {percent}%",
881
+ "Update failed: {error}": "업데이트 실패: {error}",
882
+ "v{version} available — run {command}": "v{version} 사용 가능 — {command} 실행",
883
+ "v{version} available — starting download...": "v{version} 사용 가능 — 다운로드 시작 중...",
884
+ "command bar": "명령 팔레트",
885
+ "Snapped a window?": "창을 맞춰 배치했나요?",
886
+ "Gridlock All": "모두 격자 정렬",
887
+ "Dismiss": "닫기",
888
+ "Minimize": "최소화",
889
+ "Maximize": "최대화",
890
+ "Pane unavailable.": "패널을 사용할 수 없습니다.",
891
+ "Cash & Margin": "현금·증거금",
892
+ "No non-zero cash balances.": "표시할 현금 잔액이 없습니다.",
893
+ "adding...": "추가 중...",
894
+ "{query} checking...": "{query} 확인 중...",
895
+ "{symbol} already in {collection}": "{symbol}이(가) 이미 {collection}에 있습니다",
896
+ "{symbol} is already in {collection}.": "{symbol}이(가) 이미 {collection}에 있습니다.",
897
+ "Ticker lookup unavailable.": "종목 조회를 사용할 수 없습니다.",
898
+ "Added {symbol} to {collection}.": "{collection}에 {symbol}을(를) 추가했습니다.",
899
+ "Failed to add {symbol}.": "{symbol}을(를) 추가하지 못했습니다.",
900
+ "ticker": "종목코드",
901
+ "Use a ticker symbol": "종목코드를 입력하세요",
902
+ "Ticker lookup failed": "종목 조회 실패",
903
+ "Ticker add failed": "종목 추가 실패",
904
+ "Ticker symbol is required.": "종목코드는 필수입니다.",
905
+ "No ticker selected.": "선택한 종목이 없습니다.",
906
+ "No comparison tickers configured.": "비교 종목이 설정되지 않았습니다.",
907
+ "Loading chart...": "차트 불러오는 중...",
908
+ "updating": "업데이트 중",
909
+ "native unavailable": "네이티브 사용 불가",
910
+ "Waiting for quote...": "시세 대기 중...",
911
+ "Pre-Market": "장전",
912
+ "After-Hours": "장후",
913
+ "Price Return": "가격 수익률",
914
+ "Fundamentals": "펀더멘털",
915
+ "Positions": "포지션",
916
+ "Type": "유형",
917
+ "Sector": "섹터",
918
+ "Industry": "산업",
919
+ "ISIN": "ISIN",
920
+ "Bid": "매수호가",
921
+ "Ask": "매도호가",
922
+ "Spr": "스프레드",
923
+ "Qty": "수량",
924
+ "Avg": "평균",
925
+ "Mark": "평가가",
926
+ "Cost": "원가",
927
+ "Value": "가치",
928
+ "Ret": "수익률",
929
+ "Market Cap": "시가총액",
930
+ "Shares Out": "발행주식수",
931
+ "P/E (TTM)": "P/E (TTM)",
932
+ "Fwd P/E": "선행 P/E",
933
+ "Div Yield": "배당수익률",
934
+ "Net Income": "순이익",
935
+ "Op Margin": "영업이익률",
936
+ "Profit Marg": "순이익률",
937
+ "Rev Growth": "매출 성장률",
938
+ "Avg Day": "일평균",
939
+ "Net Liq": "순청산가치",
940
+ "Val": "평가액",
941
+ "Day": "당일",
942
+ "Realized": "실현",
943
+ "Settled": "결제 완료",
944
+ "Avail": "가용",
945
+ "Excess": "초과 유동성",
946
+ "Unreal": "미실현",
947
+ "Init": "개시증거금",
948
+ "Maint": "유지증거금",
949
+ "NAME": "이름",
950
+ "TYPE": "유형",
951
+ "EXCH": "거래소",
952
+ "CCY": "통화",
953
+ "SECTOR": "섹터",
954
+ "INDUSTRY": "산업",
955
+ "TAGS": "태그",
956
+ "VOL": "거래량",
957
+ "$VOL": "거래대금",
958
+ "BID": "매수",
959
+ "ASK": "매도",
960
+ "SPREAD": "스프레드",
961
+ "B/A SZ": "호가수량",
962
+ "CHG": "등락",
963
+ "TARGET": "목표가",
964
+ "RATING": "의견",
965
+ "SHARES": "주식 수",
966
+ "AVG COST": "평균 원가",
967
+ "MKT VAL": "평가액",
968
+ "WEIGHT": "비중",
969
+ "ACQ": "취득",
970
+ "HELD": "보유",
971
+ "position": "포지션",
972
+ "positions": "포지션",
973
+
974
+ // ── Context-scoped entries (see tc() in ./index.ts) ─────────
975
+ "picker-headingOptions": "선택지",
976
+
977
+ // ── Runtime status / misc ────────────────────────────────────
978
+ "Theme configured": "테마 설정됨",
979
+ "Plugins enabled": "플러그인 활성화됨",
980
+ "Portfolio \"{name}\" created": "포트폴리오 \"{name}\"이(가) 생성되었습니다",
981
+ "{broker} connected. Imported {count} {label}": "{broker} 연결됨. {label} {count}개를 가져왔습니다.",
982
+ "No tickers.": "종목이 없습니다.",
983
+ "No portfolio positions": "포트폴리오 포지션 없음",
984
+ "No watchlist tickers": "관심 목록에 종목 없음",
985
+ "No tickers in {name}.": "{name}에 종목이 없습니다.",
986
+ "this collection": "이 컬렉션",
987
+ "Press Ctrl+P to add one.": "Ctrl+P를 눌러 추가하세요.",
988
+ "PRE-MKT": "장전",
989
+ "OPEN": "장중",
990
+ "AFTER-HRS": "장후",
991
+ "CLOSED": "휴장",
992
+ "Log In": "로그인",
993
+ "Sign Up": "가입",
994
+ "Log Out": "로그아웃",
995
+ "Congress Trades": "미국 의원 거래",
996
+ "Collection": "컬렉션",
997
+ "Auto": "자동",
998
+
999
+ // ── Feeds / tables ───────────────────────────────────────────
1000
+ "No news.": "뉴스가 없습니다.",
1001
+ "No items.": "항목이 없습니다.",
1002
+ "Loading preview...": "미리보기 불러오는 중...",
1003
+ "No preview available.": "미리보기를 사용할 수 없습니다.",
1004
+ "No top stories yet": "아직 주요뉴스가 없습니다",
1005
+ "No feed stories yet": "아직 피드 뉴스가 없습니다",
1006
+ "No DMs yet": "아직 DM이 없습니다",
1007
+ "Most Active": "거래량 상위",
1008
+ "Gainers": "상승률 상위",
1009
+ "Losers": "하락률 상위",
1010
+ "Trending": "인기",
1011
+ };