@opencode-ai/ui 0.0.0-dev-202609071625 → 0.0.0-dev-19265

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 (299) hide show
  1. package/dist/actions/button/button.d.ts +10 -0
  2. package/dist/actions/icon-button/icon-button.d.ts +11 -0
  3. package/dist/actions/split-button/split-button.d.ts +5 -0
  4. package/dist/components/card.d.ts +1 -1
  5. package/dist/components/list.d.ts +1 -1
  6. package/dist/components/scroll-view.d.ts +14 -4
  7. package/dist/context/i18n.d.ts +10 -7
  8. package/dist/context/marked-base.d.ts +3 -0
  9. package/dist/context/marked-parser.d.ts +1 -2
  10. package/dist/{components → data-display/accordion}/accordion.d.ts +6 -6
  11. package/dist/{v2/components/avatar-v2.d.ts → data-display/avatar/avatar.d.ts} +1 -1
  12. package/dist/data-display/badge/badge.d.ts +7 -0
  13. package/dist/{components → data-display/diff-changes}/diff-changes.d.ts +2 -1
  14. package/dist/data-display/keybind/keybind.d.ts +7 -0
  15. package/dist/{v2/components/line-comment-v2.d.ts → data-display/line-comment/line-comment.d.ts} +9 -9
  16. package/dist/{v2/components/project-avatar-v2.d.ts → data-display/project-avatar/project-avatar.d.ts} +1 -1
  17. package/dist/feedback/loader/loader.d.ts +3 -0
  18. package/dist/{components → feedback/progress-circle}/progress-circle.d.ts +2 -0
  19. package/dist/feedback/toast/toast.d.ts +57 -0
  20. package/dist/{components → forms/checkbox}/checkbox.d.ts +2 -2
  21. package/dist/{v2/components/field-v2.d.ts → forms/field/field.d.ts} +4 -10
  22. package/dist/forms/radio/radio.d.ts +16 -0
  23. package/dist/{v2/components/select-v2.d.ts → forms/select/select.d.ts} +5 -6
  24. package/dist/{components → forms/switch}/switch.d.ts +4 -2
  25. package/dist/{v2/components/text-input-v2.d.ts → forms/text-input/text-input.d.ts} +3 -3
  26. package/dist/forms/textarea/textarea.d.ts +7 -0
  27. package/dist/hooks/use-filtered-list.d.ts +9 -0
  28. package/dist/i18n/ar.d.ts +0 -2
  29. package/dist/i18n/bg.d.ts +0 -2
  30. package/dist/i18n/br.d.ts +0 -2
  31. package/dist/i18n/bs.d.ts +0 -2
  32. package/dist/i18n/da.d.ts +0 -2
  33. package/dist/i18n/de.d.ts +0 -2
  34. package/dist/i18n/en.d.ts +244 -1
  35. package/dist/i18n/es.d.ts +0 -2
  36. package/dist/i18n/fr.d.ts +0 -2
  37. package/dist/i18n/he.d.ts +197 -0
  38. package/dist/i18n/ja.d.ts +0 -2
  39. package/dist/i18n/km.d.ts +0 -2
  40. package/dist/i18n/ko.d.ts +0 -2
  41. package/dist/i18n/lo.d.ts +0 -2
  42. package/dist/i18n/mk.d.ts +0 -2
  43. package/dist/i18n/mn.d.ts +0 -2
  44. package/dist/i18n/my.d.ts +0 -2
  45. package/dist/i18n/pl.d.ts +0 -2
  46. package/dist/i18n/ru.d.ts +0 -2
  47. package/dist/i18n/sr.d.ts +0 -2
  48. package/dist/i18n/tg.d.ts +0 -2
  49. package/dist/i18n/th.d.ts +0 -2
  50. package/dist/i18n/tr.d.ts +0 -2
  51. package/dist/i18n/zh.d.ts +0 -2
  52. package/dist/i18n/zht.d.ts +0 -2
  53. package/dist/{components/icon.d.ts → icons/icon/additional-icons.d.ts} +8 -8
  54. package/dist/{v2/components → icons/icon}/icon.d.ts +60 -1
  55. package/dist/layout/divider/divider.d.ts +5 -0
  56. package/dist/navigation/menu/menu.d.ts +59 -0
  57. package/dist/{v2/components/segmented-control-v2.d.ts → navigation/segmented-control/segmented-control.d.ts} +5 -5
  58. package/dist/{components → navigation/tabs}/tabs.d.ts +15 -8
  59. package/dist/{v2/components/dialog-v2.d.ts → overlays/dialog/dialog.d.ts} +1 -2
  60. package/dist/overlays/tooltip/tooltip.d.ts +15 -0
  61. package/dist/{components → typography/text-shimmer}/text-shimmer.d.ts +1 -0
  62. package/dist/typography/wordmark/wordmark.d.ts +5 -0
  63. package/package.json +141 -35
  64. package/src/{v2/components/button-v2.css → actions/button/button.css} +30 -0
  65. package/src/{components → actions/button}/button.tsx +19 -11
  66. package/src/{v2/components/icon-button-v2.css → actions/icon-button/icon-button.css} +27 -9
  67. package/src/actions/icon-button/icon-button.tsx +32 -0
  68. package/src/{v2/components/split-button-v2.css → actions/split-button/split-button.css} +2 -6
  69. package/src/{v2/components/split-button-v2.tsx → actions/split-button/split-button.tsx} +4 -4
  70. package/src/components/animated-number.css +29 -11
  71. package/src/components/animated-number.tsx +2 -2
  72. package/src/components/card.css +2 -23
  73. package/src/components/card.tsx +4 -4
  74. package/src/components/collapsible.tsx +2 -2
  75. package/src/components/dock-surface.css +2 -9
  76. package/src/components/image-preview.tsx +3 -2
  77. package/src/components/list.css +5 -5
  78. package/src/components/list.tsx +7 -5
  79. package/src/components/popover.tsx +3 -2
  80. package/src/components/scroll-view.css +36 -4
  81. package/src/components/scroll-view.tsx +153 -88
  82. package/src/components/sticky-accordion-header.tsx +1 -1
  83. package/src/components/text-field.tsx +12 -4
  84. package/src/context/dialog.tsx +1 -0
  85. package/src/context/i18n.tsx +17 -14
  86. package/src/context/marked-base.tsx +27 -0
  87. package/src/context/marked-parser.tsx +3 -13
  88. package/src/{components → data-display/accordion}/accordion.css +7 -33
  89. package/src/{components → data-display/accordion}/accordion.tsx +14 -14
  90. package/src/{v2/components/avatar-v2.tsx → data-display/avatar/avatar.tsx} +1 -1
  91. package/src/{v2/components/badge-v2.css → data-display/badge/badge.css} +19 -0
  92. package/src/{v2/components/badge-v2.tsx → data-display/badge/badge.tsx} +6 -4
  93. package/src/{components → data-display/diff-changes}/diff-changes.css +22 -19
  94. package/src/{v2/components/diff-changes-v2.tsx → data-display/diff-changes/diff-changes.tsx} +7 -2
  95. package/src/{v2/components/keybind-v2.css → data-display/keybind/keybind.css} +1 -1
  96. package/src/{v2/components/keybind-v2.tsx → data-display/keybind/keybind.tsx} +3 -3
  97. package/src/{v2/components/line-comment-v2.css → data-display/line-comment/line-comment.css} +4 -4
  98. package/src/{v2/components/line-comment-v2.tsx → data-display/line-comment/line-comment.tsx} +17 -15
  99. package/src/{v2/components/project-avatar-v2.css → data-display/project-avatar/project-avatar.css} +4 -4
  100. package/src/{v2/components/project-avatar-v2.tsx → data-display/project-avatar/project-avatar.tsx} +1 -1
  101. package/src/{v2/components/loader-v2.tsx → feedback/loader/loader.tsx} +2 -2
  102. package/src/feedback/progress-circle/progress-circle.css +28 -0
  103. package/src/feedback/progress-circle/progress-circle.tsx +64 -0
  104. package/src/{v2/components/toast-v2.tsx → feedback/toast/toast.tsx} +60 -58
  105. package/src/{components → forms/checkbox}/checkbox.css +1 -7
  106. package/src/{components → forms/checkbox}/checkbox.tsx +13 -13
  107. package/src/{v2/components/field-v2.css → forms/field/field.css} +1 -1
  108. package/src/{v2/components/field-v2.tsx → forms/field/field.tsx} +9 -11
  109. package/src/{v2/components/radio-v2.tsx → forms/radio/radio.tsx} +30 -20
  110. package/src/{v2/components/select-v2.css → forms/select/select.css} +2 -8
  111. package/src/{v2/components/select-v2.tsx → forms/select/select.tsx} +42 -32
  112. package/src/{v2/components/switch-v2.css → forms/switch/switch.css} +110 -0
  113. package/src/forms/switch/switch.tsx +34 -0
  114. package/src/{v2/components/text-input-v2.css → forms/text-input/text-input.css} +3 -3
  115. package/src/{v2/components/text-input-v2.tsx → forms/text-input/text-input.tsx} +4 -4
  116. package/src/{v2/components/textarea-v2.tsx → forms/textarea/textarea.tsx} +3 -3
  117. package/src/hooks/create-auto-scroll.tsx +20 -0
  118. package/src/i18n/am.ts +7 -9
  119. package/src/i18n/ar.ts +7 -9
  120. package/src/i18n/az.ts +7 -9
  121. package/src/i18n/bg.ts +7 -9
  122. package/src/i18n/bn.ts +7 -9
  123. package/src/i18n/br.ts +7 -9
  124. package/src/i18n/bs.ts +7 -9
  125. package/src/i18n/ca.ts +7 -9
  126. package/src/i18n/cs.ts +7 -9
  127. package/src/i18n/da.ts +7 -9
  128. package/src/i18n/de.ts +1 -3
  129. package/src/i18n/dv.ts +7 -9
  130. package/src/i18n/dz.ts +5 -7
  131. package/src/i18n/el.ts +7 -9
  132. package/src/i18n/en.ts +61 -12
  133. package/src/i18n/es.ts +6 -8
  134. package/src/i18n/et.ts +7 -9
  135. package/src/i18n/fa.ts +7 -9
  136. package/src/i18n/fi.ts +7 -9
  137. package/src/i18n/fo.ts +7 -9
  138. package/src/i18n/fr.ts +6 -8
  139. package/src/i18n/he.ts +199 -0
  140. package/src/i18n/hi.ts +7 -9
  141. package/src/i18n/hr.ts +7 -9
  142. package/src/i18n/hu.ts +7 -9
  143. package/src/i18n/hy.ts +7 -9
  144. package/src/i18n/id.ts +7 -9
  145. package/src/i18n/is.ts +7 -9
  146. package/src/i18n/it.ts +7 -9
  147. package/src/i18n/ja.ts +7 -9
  148. package/src/i18n/ka.ts +7 -9
  149. package/src/i18n/km.ts +7 -9
  150. package/src/i18n/ko.ts +7 -9
  151. package/src/i18n/lo.ts +7 -9
  152. package/src/i18n/lt.ts +7 -9
  153. package/src/i18n/lv.ts +7 -9
  154. package/src/i18n/mk.ts +7 -9
  155. package/src/i18n/mn.ts +7 -9
  156. package/src/i18n/ms.ts +7 -9
  157. package/src/i18n/my.ts +7 -9
  158. package/src/i18n/ne.ts +7 -9
  159. package/src/i18n/nl.ts +7 -9
  160. package/src/i18n/no.ts +7 -9
  161. package/src/i18n/pa.ts +7 -9
  162. package/src/i18n/pl.ts +7 -9
  163. package/src/i18n/ro.ts +7 -9
  164. package/src/i18n/ru.ts +7 -9
  165. package/src/i18n/si.ts +7 -9
  166. package/src/i18n/sk.ts +7 -9
  167. package/src/i18n/sl.ts +7 -9
  168. package/src/i18n/sq.ts +7 -9
  169. package/src/i18n/sr.ts +7 -9
  170. package/src/i18n/sv.ts +7 -9
  171. package/src/i18n/tg.ts +7 -9
  172. package/src/i18n/th.ts +7 -9
  173. package/src/i18n/tk.ts +7 -9
  174. package/src/i18n/tr.ts +7 -9
  175. package/src/i18n/uk.ts +7 -9
  176. package/src/i18n/ur.ts +7 -9
  177. package/src/i18n/uz.ts +7 -9
  178. package/src/i18n/vi.ts +7 -9
  179. package/src/i18n/zh.ts +7 -9
  180. package/src/i18n/zht.ts +7 -9
  181. package/src/{components/icon.tsx → icons/icon/additional-icons.ts} +9 -75
  182. package/src/icons/icon/icon.css +3 -0
  183. package/src/{v2/components → icons/icon}/icon.tsx +96 -12
  184. package/src/{v2/components/divider-v2.tsx → layout/divider/divider.tsx} +3 -3
  185. package/src/{v2/components/menu-v2.css → navigation/menu/menu.css} +124 -2
  186. package/src/{v2/components/menu-v2.tsx → navigation/menu/menu.tsx} +96 -32
  187. package/src/{v2/components/segmented-control-v2.css → navigation/segmented-control/segmented-control.css} +1 -1
  188. package/src/{v2/components/segmented-control-v2.tsx → navigation/segmented-control/segmented-control.tsx} +9 -8
  189. package/src/{v2/components/tabs-v2.css → navigation/tabs/tabs-current.css} +25 -10
  190. package/src/{components → navigation/tabs}/tabs.css +53 -232
  191. package/src/navigation/tabs/tabs.tsx +194 -0
  192. package/src/{v2/components/dialog-v2.css → overlays/dialog/dialog.css} +3 -0
  193. package/src/{v2/components/dialog-v2.tsx → overlays/dialog/dialog.tsx} +11 -13
  194. package/src/{v2/components/tooltip-v2.css → overlays/tooltip/tooltip.css} +33 -0
  195. package/src/{v2/components/tooltip-v2.tsx → overlays/tooltip/tooltip.tsx} +24 -17
  196. package/src/styles/base.css +5 -0
  197. package/src/{v2/components/file-tree-v2.css → styles/file-tree.css} +64 -3
  198. package/src/styles/index.css +4 -20
  199. package/src/styles/tailwind/colors.css +2 -0
  200. package/src/styles/tailwind/index.css +18 -1
  201. package/src/styles/theme.css +2 -2
  202. package/src/{v2/styles → styles/tokens}/colors.css +8 -8
  203. package/src/{v2/styles → styles/tokens}/theme.css +23 -16
  204. package/src/theme/context.tsx +19 -11
  205. package/src/theme/themes/oc-2.json +50 -19
  206. package/src/theme/v2/default-primitives.ts +8 -8
  207. package/src/theme/v2/foreground.ts +1 -0
  208. package/src/theme/v2/mapping.ts +7 -1
  209. package/src/{components → typography/text-shimmer}/text-shimmer.css +2 -1
  210. package/src/{components → typography/text-shimmer}/text-shimmer.tsx +1 -0
  211. package/src/typography/wordmark/wordmark.tsx +39 -0
  212. package/dist/components/avatar.d.ts +0 -9
  213. package/dist/components/button.d.ts +0 -9
  214. package/dist/components/dialog.d.ts +0 -12
  215. package/dist/components/dropdown-menu.d.ts +0 -80
  216. package/dist/components/icon-button.d.ts +0 -10
  217. package/dist/components/keybind.d.ts +0 -6
  218. package/dist/components/radio-group.d.ts +0 -16
  219. package/dist/components/select.d.ts +0 -21
  220. package/dist/components/tag.d.ts +0 -5
  221. package/dist/components/toast.d.ts +0 -56
  222. package/dist/components/tooltip.d.ts +0 -17
  223. package/dist/v2/components/accordion-v2.d.ts +0 -26
  224. package/dist/v2/components/badge-v2.d.ts +0 -6
  225. package/dist/v2/components/button-v2.d.ts +0 -10
  226. package/dist/v2/components/checkbox-v2.d.ts +0 -10
  227. package/dist/v2/components/diff-changes-v2.d.ts +0 -11
  228. package/dist/v2/components/divider-v2.d.ts +0 -5
  229. package/dist/v2/components/icon-button-v2.d.ts +0 -11
  230. package/dist/v2/components/inline-input-v2.d.ts +0 -21
  231. package/dist/v2/components/keybind-v2.d.ts +0 -7
  232. package/dist/v2/components/loader-v2.d.ts +0 -3
  233. package/dist/v2/components/menu-v2.d.ts +0 -52
  234. package/dist/v2/components/progress-circle-v2.d.ts +0 -8
  235. package/dist/v2/components/radio-v2.d.ts +0 -16
  236. package/dist/v2/components/split-button-v2.d.ts +0 -5
  237. package/dist/v2/components/switch-v2.d.ts +0 -7
  238. package/dist/v2/components/tabs-v2.d.ts +0 -34
  239. package/dist/v2/components/text-shimmer-v2.d.ts +0 -9
  240. package/dist/v2/components/textarea-v2.d.ts +0 -7
  241. package/dist/v2/components/toast-v2.d.ts +0 -57
  242. package/dist/v2/components/tooltip-v2.d.ts +0 -13
  243. package/dist/v2/components/wordmark-v2.d.ts +0 -2
  244. package/src/components/avatar.css +0 -49
  245. package/src/components/avatar.tsx +0 -55
  246. package/src/components/button.css +0 -194
  247. package/src/components/dialog.css +0 -181
  248. package/src/components/dialog.tsx +0 -72
  249. package/src/components/diff-changes.tsx +0 -115
  250. package/src/components/dropdown-menu.css +0 -135
  251. package/src/components/dropdown-menu.tsx +0 -308
  252. package/src/components/icon-button.css +0 -181
  253. package/src/components/icon-button.tsx +0 -29
  254. package/src/components/icon.css +0 -39
  255. package/src/components/keybind.css +0 -18
  256. package/src/components/keybind.tsx +0 -20
  257. package/src/components/progress-circle.css +0 -16
  258. package/src/components/progress-circle.tsx +0 -64
  259. package/src/components/radio-group.css +0 -187
  260. package/src/components/radio-group.tsx +0 -83
  261. package/src/components/select.css +0 -201
  262. package/src/components/select.tsx +0 -174
  263. package/src/components/switch.css +0 -136
  264. package/src/components/switch.tsx +0 -29
  265. package/src/components/tabs.tsx +0 -126
  266. package/src/components/tag.css +0 -37
  267. package/src/components/tag.tsx +0 -22
  268. package/src/components/toast.css +0 -236
  269. package/src/components/toast.tsx +0 -185
  270. package/src/components/tooltip.css +0 -74
  271. package/src/components/tooltip.tsx +0 -163
  272. package/src/v2/components/accordion-v2.css +0 -139
  273. package/src/v2/components/accordion-v2.tsx +0 -86
  274. package/src/v2/components/button-v2.tsx +0 -35
  275. package/src/v2/components/checkbox-v2.css +0 -184
  276. package/src/v2/components/checkbox-v2.tsx +0 -65
  277. package/src/v2/components/diff-changes-v2.css +0 -26
  278. package/src/v2/components/icon-button-v2.tsx +0 -37
  279. package/src/v2/components/inline-input-v2.css +0 -225
  280. package/src/v2/components/inline-input-v2.tsx +0 -107
  281. package/src/v2/components/progress-circle-v2.css +0 -13
  282. package/src/v2/components/progress-circle-v2.tsx +0 -52
  283. package/src/v2/components/switch-v2.tsx +0 -28
  284. package/src/v2/components/tabs-v2.tsx +0 -149
  285. package/src/v2/components/text-shimmer-v2.css +0 -125
  286. package/src/v2/components/text-shimmer-v2.tsx +0 -63
  287. package/src/v2/components/wordmark-v2.tsx +0 -71
  288. /package/dist/{components → forms/inline-input}/inline-input.d.ts +0 -0
  289. /package/dist/{v2/components → navigation}/tab-state-indicator.d.ts +0 -0
  290. /package/src/{v2/components/avatar-v2.css → data-display/avatar/avatar.css} +0 -0
  291. /package/src/{v2/components/loader-v2.css → feedback/loader/loader.css} +0 -0
  292. /package/src/{v2/components/toast-v2.css → feedback/toast/toast.css} +0 -0
  293. /package/src/{components → forms/inline-input}/inline-input.css +0 -0
  294. /package/src/{components → forms/inline-input}/inline-input.tsx +0 -0
  295. /package/src/{v2/components/radio-v2.css → forms/radio/radio.css} +0 -0
  296. /package/src/{v2/components/textarea-v2.css → forms/textarea/textarea.css} +0 -0
  297. /package/src/{v2/components/divider-v2.css → layout/divider/divider.css} +0 -0
  298. /package/src/{v2/components → navigation}/tab-state-indicator.tsx +0 -0
  299. /package/src/{v2/styles/tailwind.css → styles/tokens/index.css} +0 -0
package/src/i18n/el.ts CHANGED
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "Προστέθηκε",
11
11
  "ui.sessionReview.change.removed": "Καταργήθηκε",
12
12
  "ui.sessionReview.change.modified": "Τροποποιήθηκε",
13
- "ui.sessionReview.image.loading": "Φόρτωση...",
13
+ "ui.sessionReview.image.loading": "Φόρτωση…",
14
14
  "ui.sessionReview.image.placeholder": "Εικόνα",
15
15
  "ui.sessionReview.largeDiff.title": "Η διαφορά είναι πολύ μεγάλη για απόδοση",
16
16
  "ui.sessionReview.largeDiff.meta": "Όριο: {{limit}} αλλαγμένες γραμμές. Τρέχουσα: {{current}} αλλαγμένες γραμμές.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "Δεν παρακολουθούνται αλλαγές",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "Παρακολούθηση, έλεγχος και αναίρεση αλλαγών σε αυτό το έργο",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "Δημιουργία αποθετηρίου Git",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Δημιουργία αποθετηρίου Git...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Δημιουργία αποθετηρίου Git",
32
32
  "ui.sessionReviewV2.empty.changes.title": "Καμία αλλαγή αρχείου ακόμα",
33
33
  "ui.sessionReviewV2.empty.changes.description": "Οι αλλαγές του έργου θα εμφανιστούν εδώ",
34
34
  "ui.sessionReview.openFile": "Άνοιγμα αρχείου",
@@ -37,7 +37,7 @@ export const dict: Record<string, string> = {
37
37
  "ui.fileMedia.kind.image": "εικόνα",
38
38
  "ui.fileMedia.kind.audio": "ήχος",
39
39
  "ui.fileMedia.state.removed": "Καταργήθηκε {{kind}} αρχείο.",
40
- "ui.fileMedia.state.loading": "Φόρτωση {{kind}}...",
40
+ "ui.fileMedia.state.loading": "Φόρτωση {{kind}}",
41
41
  "ui.fileMedia.state.error": "Δεν είναι δυνατή η φόρτωση του {{kind}}.",
42
42
  "ui.fileMedia.state.unavailable": "{{kind}} μη διαθέσιμη προεπισκόπηση.",
43
43
  "ui.fileMedia.binary.title": "Δυαδικό αρχείο",
@@ -69,7 +69,7 @@ export const dict: Record<string, string> = {
69
69
  "ui.sessionTurn.error.addCredits": "Προσθήκη πιστώσεων",
70
70
  "dialog.usageExceeded.freeTier.title": "Συμπληρώθηκε το δωρεάν όριο",
71
71
  "dialog.usageExceeded.freeTier.description":
72
- "Εγγραφείτε στο OpenCode Go για 10 $/μήνα και αποκτήστε αξιόπιστη πρόσβαση στα καλύτερα μοντέλα ανοιχτού κώδικα.",
72
+ "Εγγραφείτε στο OpenCode Μετάβαση για αξιόπιστη πρόσβαση στα καλύτερα μοντέλα ανοιχτού κώδικα, ξεκινώντας από 5 $/μήνα.",
73
73
  "dialog.usageExceeded.freeTier.actionLabel": "Εγγραφή",
74
74
  "dialog.usageExceeded.accountRateLimit.title": "Συμπληρώθηκε το όριο μετάβασης",
75
75
  "dialog.usageExceeded.accountRateLimit.description":
@@ -115,8 +115,8 @@ export const dict: Record<string, string> = {
115
115
  "ui.promptInput.dropFiles": "Αποθέστε αρχεία για επισύναψη",
116
116
  "ui.promptInput.removeAttachment": "Κατάργηση συνημμένου",
117
117
  "ui.promptInput.label": "Προτροπή",
118
- "ui.promptInput.placeholder.shell": "Εισαγωγή εντολής κελύφους...",
119
- "ui.promptInput.placeholder.normal": "Ρωτήστε οτιδήποτε, {{slash}} για εντολές, {{at}} για περιβάλλον...",
118
+ "ui.promptInput.placeholder.shell": "Εισαγωγή εντολής κελύφους…",
119
+ "ui.promptInput.placeholder.normal": "Ρωτήστε οτιδήποτε, {{slash}} για εντολές, {{at}} για περιβάλλον…",
120
120
  "ui.promptInput.add": "Προσθήκη εικόνων και αρχείων",
121
121
  "ui.promptInput.attachments": "Εικόνες και αρχεία",
122
122
  "ui.promptInput.context": "Πλαίσιο",
@@ -143,8 +143,6 @@ export const dict: Record<string, string> = {
143
143
  "ui.tool.websearch.provider": "{{provider}} Αναζήτηση στον Ιστό",
144
144
  "ui.tool.shell": "Shell",
145
145
  "ui.tool.patch": "Patch",
146
- "ui.tool.todos": "Εκκρεμότητες",
147
- "ui.tool.todos.read": "Διαβάστε τις εργασίες",
148
146
  "ui.tool.questions": "Ερωτήσεις",
149
147
  "ui.tool.questions.numbered": "Ερωτήσεις {{number}}",
150
148
  "ui.tool.agent": "Πράκτορας {{type}}",
@@ -193,5 +191,5 @@ export const dict: Record<string, string> = {
193
191
  "ui.question.review.notAnswered": "(δεν απαντήθηκε)",
194
192
  "ui.question.multiHint": "Επιλογή όλων των απαντήσεων που ισχύουν",
195
193
  "ui.question.singleHint": "Επιλέξτε μία απάντηση",
196
- "ui.question.custom.placeholder": "Πληκτρολογήστε την απάντησή σας...",
194
+ "ui.question.custom.placeholder": "Πληκτρολογήστε την απάντησή σας…",
197
195
  }
package/src/i18n/en.ts CHANGED
@@ -1,4 +1,4 @@
1
- export const dict: Record<string, string> = {
1
+ const source = {
2
2
  "ui.sessionReview.title": "Session changes",
3
3
  "ui.sessionReview.title.git": "Git changes",
4
4
  "ui.sessionReview.title.branch": "Branch changes",
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "Added",
11
11
  "ui.sessionReview.change.removed": "Removed",
12
12
  "ui.sessionReview.change.modified": "Modified",
13
- "ui.sessionReview.image.loading": "Loading...",
13
+ "ui.sessionReview.image.loading": "Loading",
14
14
  "ui.sessionReview.image.placeholder": "Image",
15
15
  "ui.sessionReview.largeDiff.title": "Diff too large to render",
16
16
  "ui.sessionReview.largeDiff.meta": "Limit: {{limit}} changed lines. Current: {{current}} changed lines.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "No tracked changes",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "Track, review, and undo changes in this project",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "Create Git repository",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Creating Git repository...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Creating Git repository",
32
32
  "ui.sessionReviewV2.empty.changes.title": "No file changes yet",
33
33
  "ui.sessionReviewV2.empty.changes.description": "Project changes will appear here",
34
34
 
@@ -39,7 +39,7 @@ export const dict: Record<string, string> = {
39
39
  "ui.fileMedia.kind.image": "image",
40
40
  "ui.fileMedia.kind.audio": "audio",
41
41
  "ui.fileMedia.state.removed": "Removed {{kind}} file.",
42
- "ui.fileMedia.state.loading": "Loading {{kind}}...",
42
+ "ui.fileMedia.state.loading": "Loading {{kind}}",
43
43
  "ui.fileMedia.state.error": "Unable to load {{kind}}.",
44
44
  "ui.fileMedia.state.unavailable": "{{kind}} preview unavailable.",
45
45
  "ui.fileMedia.binary.title": "Binary file",
@@ -69,13 +69,15 @@ export const dict: Record<string, string> = {
69
69
  "ui.sessionTurn.retry.inSeconds": "in {{seconds}}s",
70
70
  "ui.sessionTurn.retry.attempt": "attempt #{{attempt}}",
71
71
  "ui.sessionTurn.retry.attemptLine": "{{line}} - attempt #{{attempt}}",
72
+ "ui.sessionTurn.retry.attemptLabel": "Attempt {{attempt}}",
73
+ "ui.sessionTurn.retry.attemptRetrying": "Attempt {{attempt}} - {{line}}",
72
74
  "ui.sessionTurn.retry.geminiHot": "gemini is way too hot right now",
73
75
  "ui.sessionTurn.error.freeUsageExceeded": "Free usage exceeded",
74
76
  "ui.sessionTurn.error.addCredits": "Add credits",
75
77
 
76
78
  "dialog.usageExceeded.freeTier.title": "Free limit reached",
77
79
  "dialog.usageExceeded.freeTier.description":
78
- "Subscribe to OpenCode Go for reliable access to the best open-source models for $10/month.",
80
+ "Subscribe to OpenCode Go for reliable access to the best open-source models, starting at $5/month.",
79
81
  "dialog.usageExceeded.freeTier.actionLabel": "Subscribe",
80
82
  "dialog.usageExceeded.accountRateLimit.title": "Go limit reached",
81
83
  "dialog.usageExceeded.accountRateLimit.description":
@@ -102,12 +104,21 @@ export const dict: Record<string, string> = {
102
104
  "ui.messagePart.review.title": "Review your answers",
103
105
  "ui.messagePart.questions.dismissed": "Questions dismissed",
104
106
  "ui.messagePart.compaction": "Session compacted",
107
+ "ui.messagePart.providerCompaction": "Session compacted by provider",
108
+ "ui.messagePart.context.details": "Details",
105
109
  "ui.messagePart.context.read.one": "{{count}} read",
106
110
  "ui.messagePart.context.read.other": "{{count}} reads",
107
111
  "ui.messagePart.context.search.one": "{{count}} search",
108
112
  "ui.messagePart.context.search.other": "{{count}} searches",
109
113
  "ui.messagePart.context.list.one": "{{count}} list",
110
114
  "ui.messagePart.context.list.other": "{{count}} lists",
115
+ "ui.messagePart.context.notice.one": "{{count}} Notice",
116
+ "ui.messagePart.context.notice.other": "{{count}} Notices",
117
+ "ui.messagePart.context.thought.one": "{{count}} Thought",
118
+ "ui.messagePart.context.thought.other": "{{count}} Thoughts",
119
+ "ui.messagePart.context.match.one": "({{count}} match)",
120
+ "ui.messagePart.context.match.other": "({{count}} matches)",
121
+ "ui.messagePart.tools.used": "Used {{tools}}",
111
122
 
112
123
  "ui.list.loading": "Loading",
113
124
  "ui.list.empty": "No results",
@@ -124,11 +135,15 @@ export const dict: Record<string, string> = {
124
135
 
125
136
  "ui.promptInput.noMatchingItems": "No matching items",
126
137
  "ui.promptInput.commands": "Commands",
127
- "ui.promptInput.dropFiles": "Drop files to attach",
138
+ "ui.promptInput.dropFiles": "Drop files to add",
139
+ "ui.promptInput.dropFiles.image": "Drop images or files to add",
140
+ "ui.promptInput.dropFiles.pdf": "Drop PDFs or files to add",
141
+ "ui.promptInput.dropFiles.imagePdf": "Drop images, PDFs, or files to add",
128
142
  "ui.promptInput.removeAttachment": "Remove attachment",
129
143
  "ui.promptInput.label": "Prompt",
130
- "ui.promptInput.placeholder.shell": "Enter shell command...",
131
- "ui.promptInput.placeholder.normal": "Ask anything, {{slash}} for commands, {{at}} for context...",
144
+ "ui.promptInput.placeholder.shell": "Enter shell command",
145
+ "ui.promptInput.placeholder.normal": "Ask anything, {{slash}} for commands, {{at}} for context",
146
+ "ui.promptInput.placeholder.followUp": "Add follow-up, {{slash}} for commands, {{at}} for context…",
132
147
  "ui.promptInput.add": "Add images and files",
133
148
  "ui.promptInput.attachments": "Images and files",
134
149
  "ui.promptInput.context": "Context",
@@ -138,6 +153,10 @@ export const dict: Record<string, string> = {
138
153
  "ui.promptInput.chooseVariant": "Choose model variant",
139
154
  "ui.promptInput.send": "Send",
140
155
  "ui.promptInput.stop": "Stop",
156
+ "ui.promptInput.exitShell": "Exit",
157
+ "ui.promptInput.steer": "Steer",
158
+ "ui.promptInput.queue": "Queue",
159
+ "ui.promptInput.steerHint": "Send without interrupting",
141
160
 
142
161
  "ui.tabs.close": "Close tab",
143
162
 
@@ -150,21 +169,30 @@ export const dict: Record<string, string> = {
150
169
 
151
170
  "ui.tool.read": "Read",
152
171
  "ui.tool.loaded": "Loaded",
172
+ "ui.tool.loadedFile": "Loaded {{path}}",
173
+ "ui.tool.loadedSkill": "Loaded {{name}} skill",
174
+ "ui.tool.loadedSkills.one": "Loaded {{name}} skill",
175
+ "ui.tool.loadedSkills.other": "Loaded {{name}} skills",
153
176
  "ui.tool.list": "List",
154
177
  "ui.tool.glob": "Glob",
155
178
  "ui.tool.grep": "Grep",
156
179
  "ui.tool.task": "Task",
180
+ "ui.tool.browser": "Browser",
157
181
  "ui.tool.webfetch": "Webfetch",
158
182
  "ui.tool.websearch": "Web Search",
159
183
  "ui.tool.websearch.provider": "{{provider}} Web Search",
160
184
  "ui.tool.shell": "Shell",
185
+ "ui.tool.shell.writingCommand": "Writing command…",
186
+ "ui.tool.shell.exit": "Command exited with code {{code}}",
187
+ "ui.tool.shell.timeout": "Command timed out",
188
+ "ui.tool.shell.cancelled": "Command cancelled",
189
+ "ui.tool.execute": "Execute",
161
190
  "ui.tool.patch": "Patch",
162
- "ui.tool.todos": "To-dos",
163
- "ui.tool.todos.read": "Read to-dos",
164
191
  "ui.tool.questions": "Questions",
165
192
  "ui.tool.questions.numbered": "Questions {{number}}",
166
193
  "ui.tool.agent": "{{type}} Agent",
167
194
  "ui.tool.agent.default": "Agent",
195
+ "ui.tool.agent.delegating": "Delegating agent…",
168
196
  "ui.tool.skill": "Skill",
169
197
 
170
198
  "ui.basicTool.called": "Called `{{tool}}`",
@@ -187,6 +215,8 @@ export const dict: Record<string, string> = {
187
215
  "ui.common.next": "Next",
188
216
  "ui.common.submit": "Submit",
189
217
  "ui.common.showMore": "Show more",
218
+ "ui.common.moreCount.one": "+{{count}} more",
219
+ "ui.common.moreCount.other": "+{{count}} more",
190
220
 
191
221
  "ui.permission.deny": "Deny",
192
222
  "ui.permission.allowAlways": "Allow always",
@@ -200,9 +230,19 @@ export const dict: Record<string, string> = {
200
230
  "ui.message.revertMessage": "Revert message",
201
231
  "ui.message.copyResponse": "Copy response",
202
232
  "ui.message.copied": "Copied",
233
+ "ui.message.thought": "Thought",
203
234
  "ui.message.duration.seconds": "{{count}}s",
204
235
  "ui.message.duration.minutesSeconds": "{{minutes}}m {{seconds}}s",
205
236
  "ui.message.interrupted": "Interrupted",
237
+ "ui.sessionTimeline.notice.model": "Model",
238
+ "ui.sessionTimeline.notice.modelSwitched": "Switched to {{model}}",
239
+ "ui.sessionTimeline.notice.agentChanged": "Agent changed",
240
+ "ui.sessionTimeline.notice.movedTo": "Moved to",
241
+ "ui.sessionTimeline.notice.movedTooltip": "Session working directory changed",
242
+ "ui.sessionTimeline.notice.failed": "{{actor}} failed",
243
+ "ui.sessionTimeline.notice.cancelled": "{{actor}} cancelled",
244
+ "ui.sessionTimeline.notice.finished": "{{actor}} finished",
245
+ "ui.sessionTimeline.notice.instructionsUpdated": "Instructions updated",
206
246
  "ui.message.queued": "Queued",
207
247
  "ui.message.attachment.alt": "attachment",
208
248
 
@@ -216,5 +256,14 @@ export const dict: Record<string, string> = {
216
256
  "ui.question.review.notAnswered": "(not answered)",
217
257
  "ui.question.multiHint": "Select all answers that apply",
218
258
  "ui.question.singleHint": "Select one answer",
219
- "ui.question.custom.placeholder": "Type your answer...",
220
- }
259
+ "ui.question.custom.placeholder": "Type your answer",
260
+ } satisfies Record<string, string>
261
+
262
+ export type Key = keyof typeof source
263
+ export type PluralCategory = "zero" | "one" | "two" | "few" | "many" | "other"
264
+ export type PluralKey = {
265
+ [Entry in Key]: Entry extends `${infer Base}.other` ? (`${Base}.one` extends Key ? Base : never) : never
266
+ }[Key]
267
+ export type PluralLookupKey = `${PluralKey}.${PluralCategory}`
268
+ export type LocaleKey = Key | PluralLookupKey
269
+ export const dict: typeof source & Record<string, string> = source
package/src/i18n/es.ts CHANGED
@@ -13,7 +13,7 @@ export const dict = {
13
13
  "ui.sessionReview.change.added": "Añadido",
14
14
  "ui.sessionReview.change.removed": "Eliminado",
15
15
  "ui.sessionReview.change.modified": "Modificado",
16
- "ui.sessionReview.image.loading": "Cargando...",
16
+ "ui.sessionReview.image.loading": "Cargando",
17
17
  "ui.sessionReview.image.placeholder": "Imagen",
18
18
  "ui.sessionReview.largeDiff.title": "Diff demasiado grande para renderizar",
19
19
  "ui.sessionReview.largeDiff.meta": "Límite: {{limit}} líneas modificadas. Actual: {{current}} líneas modificadas.",
@@ -31,7 +31,7 @@ export const dict = {
31
31
  "ui.sessionReviewV2.empty.noGit.title": "No hay cambios rastreados",
32
32
  "ui.sessionReviewV2.empty.noGit.description": "Rastrea, revisa y deshaz cambios en este proyecto",
33
33
  "ui.sessionReviewV2.empty.noGit.action": "Crear repositorio Git",
34
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Creando repositorio Git...",
34
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Creando repositorio Git",
35
35
  "ui.sessionReviewV2.empty.changes.title": "Aún no hay cambios en los archivos",
36
36
  "ui.sessionReviewV2.empty.changes.description": "Los cambios del proyecto aparecerán aquí",
37
37
  "ui.fileMedia.kind.image": "imagen",
@@ -74,7 +74,7 @@ export const dict = {
74
74
 
75
75
  "dialog.usageExceeded.freeTier.title": "Límite gratuito alcanzado",
76
76
  "dialog.usageExceeded.freeTier.description":
77
- "Suscríbete a OpenCode Go por 10 USD al mes para acceder de forma fiable a los mejores modelos de código abierto.",
77
+ "Suscríbete a OpenCode Go para acceder de forma fiable a los mejores modelos de código abierto desde 5 USD al mes.",
78
78
  "dialog.usageExceeded.freeTier.actionLabel": "Suscribirse",
79
79
  "dialog.usageExceeded.accountRateLimit.title": "Límite de Go alcanzado",
80
80
  "dialog.usageExceeded.accountRateLimit.description":
@@ -124,8 +124,8 @@ export const dict = {
124
124
  "ui.promptInput.dropFiles": "Suelta los archivos para adjuntarlos",
125
125
  "ui.promptInput.removeAttachment": "Eliminar adjunto",
126
126
  "ui.promptInput.label": "Prompt",
127
- "ui.promptInput.placeholder.shell": "Introduce un comando de shell...",
128
- "ui.promptInput.placeholder.normal": "Pregunta lo que quieras, {{slash}} para comandos, {{at}} para contexto...",
127
+ "ui.promptInput.placeholder.shell": "Introduce un comando de shell",
128
+ "ui.promptInput.placeholder.normal": "Pregunta lo que quieras, {{slash}} para comandos, {{at}} para contexto",
129
129
  "ui.promptInput.add": "Añadir imágenes y archivos",
130
130
  "ui.promptInput.attachments": "Imágenes y archivos",
131
131
  "ui.promptInput.context": "Contexto",
@@ -155,8 +155,6 @@ export const dict = {
155
155
  "ui.tool.websearch.provider": "{{provider}} Búsqueda web",
156
156
  "ui.tool.shell": "Shell",
157
157
  "ui.tool.patch": "Parche",
158
- "ui.tool.todos": "Tareas",
159
- "ui.tool.todos.read": "Leer tareas",
160
158
  "ui.tool.questions": "Preguntas",
161
159
  "ui.tool.questions.numbered": "Preguntas {{number}}",
162
160
  "ui.tool.agent": "Agente {{type}}",
@@ -205,7 +203,7 @@ export const dict = {
205
203
  "ui.question.review.notAnswered": "(no respondida)",
206
204
  "ui.question.multiHint": "Selecciona todas las que correspondan",
207
205
  "ui.question.singleHint": "Selecciona una respuesta",
208
- "ui.question.custom.placeholder": "Escribe tu respuesta...",
206
+ "ui.question.custom.placeholder": "Escribe tu respuesta",
209
207
 
210
208
  "ui.fileSearch.placeholder": "Buscar",
211
209
  "ui.fileSearch.previousMatch": "Anterior",
package/src/i18n/et.ts CHANGED
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "Lisatud",
11
11
  "ui.sessionReview.change.removed": "Eemaldatud",
12
12
  "ui.sessionReview.change.modified": "Muudetud",
13
- "ui.sessionReview.image.loading": "Laadimine...",
13
+ "ui.sessionReview.image.loading": "Laadimine",
14
14
  "ui.sessionReview.image.placeholder": "Pilt",
15
15
  "ui.sessionReview.largeDiff.title": "Diff on renderdamiseks liiga suur",
16
16
  "ui.sessionReview.largeDiff.meta": "Limiit: {{limit}} muudetud rida. Praegune: {{current}} muudetud rida.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "Jälgitud muudatusi pole",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "Selle projekti muudatuste jälgimine, ülevaatamine ja tagasivõtmine",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "Loo Git hoidla",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Git hoidla loomine...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Git hoidla loomine",
32
32
  "ui.sessionReviewV2.empty.changes.title": "Failis pole veel muudatusi tehtud",
33
33
  "ui.sessionReviewV2.empty.changes.description": "Projekti muudatused kuvatakse siin",
34
34
  "ui.sessionReview.openFile": "Ava fail",
@@ -37,7 +37,7 @@ export const dict: Record<string, string> = {
37
37
  "ui.fileMedia.kind.image": "pilt",
38
38
  "ui.fileMedia.kind.audio": "heli",
39
39
  "ui.fileMedia.state.removed": "Eemaldatud {{kind}} fail.",
40
- "ui.fileMedia.state.loading": "Laadimine {{kind}}...",
40
+ "ui.fileMedia.state.loading": "Laadimine {{kind}}",
41
41
  "ui.fileMedia.state.error": "Ei saa laadida {{kind}}.",
42
42
  "ui.fileMedia.state.unavailable": "{{kind}} eelvaade pole saadaval.",
43
43
  "ui.fileMedia.binary.title": "Binaarne fail",
@@ -69,7 +69,7 @@ export const dict: Record<string, string> = {
69
69
  "ui.sessionTurn.error.addCredits": "Lisa krediite",
70
70
  "dialog.usageExceeded.freeTier.title": "Tasuta limiit on täis",
71
71
  "dialog.usageExceeded.freeTier.description":
72
- "Tellige OpenCode Go 10 dollari eest kuus, et saada usaldusväärne juurdepääs parimatele avatud lähtekoodiga mudelitele.",
72
+ "Tellige OpenCode, et saada usaldusväärne juurdepääs parimatele avatud lähtekoodiga mudelitele alates 5 dollarist kuus.",
73
73
  "dialog.usageExceeded.freeTier.actionLabel": "Telli",
74
74
  "dialog.usageExceeded.accountRateLimit.title": "Go limiit on täis",
75
75
  "dialog.usageExceeded.accountRateLimit.description":
@@ -115,8 +115,8 @@ export const dict: Record<string, string> = {
115
115
  "ui.promptInput.dropFiles": "Manustamiseks pukseerige failid",
116
116
  "ui.promptInput.removeAttachment": "Eemalda manus",
117
117
  "ui.promptInput.label": "Viip",
118
- "ui.promptInput.placeholder.shell": "Sisestage shellikäsk...",
119
- "ui.promptInput.placeholder.normal": "Küsi kõike, {{slash}} käske, {{at}} konteksti...",
118
+ "ui.promptInput.placeholder.shell": "Sisestage shellikäsk",
119
+ "ui.promptInput.placeholder.normal": "Küsi kõike, {{slash}} käske, {{at}} konteksti",
120
120
  "ui.promptInput.add": "Lisage pilte ja faile",
121
121
  "ui.promptInput.attachments": "Pildid ja failid",
122
122
  "ui.promptInput.context": "Kontekst",
@@ -143,8 +143,6 @@ export const dict: Record<string, string> = {
143
143
  "ui.tool.websearch.provider": "{{provider}} Veebiotsing",
144
144
  "ui.tool.shell": "Shell",
145
145
  "ui.tool.patch": "Patch",
146
- "ui.tool.todos": "Ülesanded",
147
- "ui.tool.todos.read": "Lugege ülesandeid",
148
146
  "ui.tool.questions": "Küsimused",
149
147
  "ui.tool.questions.numbered": "Küsimused {{number}}",
150
148
  "ui.tool.agent": "{{type}} Agent",
@@ -193,5 +191,5 @@ export const dict: Record<string, string> = {
193
191
  "ui.question.review.notAnswered": "(ei vastanud)",
194
192
  "ui.question.multiHint": "Valige kõik sobivad vastused",
195
193
  "ui.question.singleHint": "Valige üks vastus",
196
- "ui.question.custom.placeholder": "Sisesta oma vastus...",
194
+ "ui.question.custom.placeholder": "Sisesta oma vastus",
197
195
  }
package/src/i18n/fa.ts CHANGED
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "اضافه شد",
11
11
  "ui.sessionReview.change.removed": "حذف شد",
12
12
  "ui.sessionReview.change.modified": "اصلاح شد",
13
- "ui.sessionReview.image.loading": "در حال بارگیری...",
13
+ "ui.sessionReview.image.loading": "در حال بارگیری…",
14
14
  "ui.sessionReview.image.placeholder": "تصویر",
15
15
  "ui.sessionReview.largeDiff.title": "تفاوت برای ارائه خیلی بزرگ است",
16
16
  "ui.sessionReview.largeDiff.meta": "محدودیت: {{limit}} خطوط تغییر کرده است. فعلی: {{current}} خطوط تغییر کرده است.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "هیچ تغییری ردیابی نشده است",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "ردیابی، بررسی، و لغو تغییرات در این پروژه",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "مخزن Git ایجاد کنید",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "ایجاد مخزن Git...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "ایجاد مخزن Git",
32
32
  "ui.sessionReviewV2.empty.changes.title": "هنوز فایلی تغییر نکرده است",
33
33
  "ui.sessionReviewV2.empty.changes.description": "تغییرات پروژه در اینجا ظاهر می شود",
34
34
  "ui.sessionReview.openFile": "باز کردن فایل",
@@ -37,7 +37,7 @@ export const dict: Record<string, string> = {
37
37
  "ui.fileMedia.kind.image": "تصویر",
38
38
  "ui.fileMedia.kind.audio": "صوتی",
39
39
  "ui.fileMedia.state.removed": "فایل {{kind}} حذف شد.",
40
- "ui.fileMedia.state.loading": "در حال بارگیری {{kind}}...",
40
+ "ui.fileMedia.state.loading": "در حال بارگیری {{kind}}",
41
41
  "ui.fileMedia.state.error": "بارگیری {{kind}} ممکن نیست.",
42
42
  "ui.fileMedia.state.unavailable": "پیش نمایش {{kind}} در دسترس نیست.",
43
43
  "ui.fileMedia.binary.title": "فایل باینری",
@@ -69,7 +69,7 @@ export const dict: Record<string, string> = {
69
69
  "ui.sessionTurn.error.addCredits": "اعتبار اضافه کنید",
70
70
  "dialog.usageExceeded.freeTier.title": "به حد مجاز رایگان رسیده است",
71
71
  "dialog.usageExceeded.freeTier.description":
72
- "برای دسترسی مطمئن به بهترین مدل‌های منبع باز، با قیمت 10 دلار در ماه در OpenCode Go مشترک شوید.",
72
+ "برای دسترسی مطمئن به بهترین مدل های منبع باز، از 5 دلار در ماه، در OpenCode Go مشترک شوید.",
73
73
  "dialog.usageExceeded.freeTier.actionLabel": "مشترک شوید",
74
74
  "dialog.usageExceeded.accountRateLimit.title": "به حد مجاز رفتن رسید",
75
75
  "dialog.usageExceeded.accountRateLimit.description":
@@ -115,8 +115,8 @@ export const dict: Record<string, string> = {
115
115
  "ui.promptInput.dropFiles": "فایل ها را برای پیوست رها کنید",
116
116
  "ui.promptInput.removeAttachment": "حذف پیوست",
117
117
  "ui.promptInput.label": "پرامپت",
118
- "ui.promptInput.placeholder.shell": "دستور پوسته Enter...",
119
- "ui.promptInput.placeholder.normal": "هر چیزی را بپرسید، {{slash}} برای دستورات، {{at}} برای زمینه...",
118
+ "ui.promptInput.placeholder.shell": "دستور پوسته Enter",
119
+ "ui.promptInput.placeholder.normal": "هر چیزی را بپرسید، {{slash}} برای دستورات، {{at}} برای زمینه…",
120
120
  "ui.promptInput.add": "تصاویر و فایل ها را اضافه کنید",
121
121
  "ui.promptInput.attachments": "تصاویر و فایل ها",
122
122
  "ui.promptInput.context": "زمینه",
@@ -143,8 +143,6 @@ export const dict: Record<string, string> = {
143
143
  "ui.tool.websearch.provider": "جستجوی وب {{provider}}",
144
144
  "ui.tool.shell": "پوسته",
145
145
  "ui.tool.patch": "پچ",
146
- "ui.tool.todos": "کارها",
147
- "ui.tool.todos.read": "کارها را بخوانید",
148
146
  "ui.tool.questions": "سوالات",
149
147
  "ui.tool.questions.numbered": "سوالات {{number}}",
150
148
  "ui.tool.agent": "عامل {{type}}",
@@ -193,5 +191,5 @@ export const dict: Record<string, string> = {
193
191
  "ui.question.review.notAnswered": "(پاسخ داده نشد)",
194
192
  "ui.question.multiHint": "همه پاسخ هایی که اعمال می شوند را انتخاب کنید",
195
193
  "ui.question.singleHint": "یک پاسخ را انتخاب کنید",
196
- "ui.question.custom.placeholder": "پاسخ خود را تایپ کنید...",
194
+ "ui.question.custom.placeholder": "پاسخ خود را تایپ کنید…",
197
195
  }
package/src/i18n/fi.ts CHANGED
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "Lisätty",
11
11
  "ui.sessionReview.change.removed": "Poistettu",
12
12
  "ui.sessionReview.change.modified": "Muokattu",
13
- "ui.sessionReview.image.loading": "Ladataan...",
13
+ "ui.sessionReview.image.loading": "Ladataan",
14
14
  "ui.sessionReview.image.placeholder": "Kuva",
15
15
  "ui.sessionReview.largeDiff.title": "Diffi on liian suuri hahmonnettavaksi",
16
16
  "ui.sessionReview.largeDiff.meta": "Rajoitus: {{limit}} muutettua riviä. Nykyinen: {{current}} muutettua riviä.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "Ei seurattuja muutoksia",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "Seuraa, tarkista ja kumoa muutoksia tässä projektissa",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "Luo Git-säilö",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Luodaan Git-säilöä...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Luodaan Git-säilöä…",
32
32
  "ui.sessionReviewV2.empty.changes.title": "Ei vielä tiedostomuutoksia",
33
33
  "ui.sessionReviewV2.empty.changes.description": "Projektin muutokset näkyvät täällä",
34
34
  "ui.sessionReview.openFile": "Avaa tiedosto",
@@ -37,7 +37,7 @@ export const dict: Record<string, string> = {
37
37
  "ui.fileMedia.kind.image": "Kuva",
38
38
  "ui.fileMedia.kind.audio": "Ääni",
39
39
  "ui.fileMedia.state.removed": "{{kind}}: tiedosto poistettu.",
40
- "ui.fileMedia.state.loading": "{{kind}}: ladataan...",
40
+ "ui.fileMedia.state.loading": "{{kind}}: ladataan",
41
41
  "ui.fileMedia.state.error": "{{kind}}: lataaminen epäonnistui.",
42
42
  "ui.fileMedia.state.unavailable": "{{kind}}: esikatselu ei ole saatavilla.",
43
43
  "ui.fileMedia.binary.title": "Binääritiedosto",
@@ -68,7 +68,7 @@ export const dict: Record<string, string> = {
68
68
  "ui.sessionTurn.error.addCredits": "Lisää krediittejä",
69
69
  "dialog.usageExceeded.freeTier.title": "Ilmainen raja saavutettu",
70
70
  "dialog.usageExceeded.freeTier.description":
71
- "Tilaa OpenCode Go 10 dollarilla kuukaudessa saadaksesi luotettavan pääsyn parhaisiin avoimen lähdekoodin malleihin.",
71
+ "Tilaa OpenCode Go saadaksesi luotettavan pääsyn parhaisiin avoimen lähdekoodin malleihin alkaen 5 dollarista kuukaudessa.",
72
72
  "dialog.usageExceeded.freeTier.actionLabel": "Tilaa",
73
73
  "dialog.usageExceeded.accountRateLimit.title": "Go-raja saavutettu",
74
74
  "dialog.usageExceeded.accountRateLimit.description":
@@ -125,8 +125,6 @@ export const dict: Record<string, string> = {
125
125
  "ui.tool.websearch.provider": "{{provider}} Verkkohaku",
126
126
  "ui.tool.shell": "Shell",
127
127
  "ui.tool.patch": "Patch",
128
- "ui.tool.todos": "Tehtävät",
129
- "ui.tool.todos.read": "Lue tehtävät",
130
128
  "ui.tool.questions": "Kysymykset",
131
129
  "ui.tool.questions.numbered": "Kysymykset {{number}}",
132
130
  "ui.tool.agent": "{{type}}-agentti",
@@ -175,15 +173,15 @@ export const dict: Record<string, string> = {
175
173
  "ui.question.review.notAnswered": "(ei vastattu)",
176
174
  "ui.question.multiHint": "Valitse kaikki sopivat vastaukset",
177
175
  "ui.question.singleHint": "Valitse yksi vastaus",
178
- "ui.question.custom.placeholder": "Kirjoita vastauksesi...",
176
+ "ui.question.custom.placeholder": "Kirjoita vastauksesi",
179
177
  "ui.lineComment.contextPlaceholder": "Lisää tämän muutoksen konteksti",
180
178
  "ui.promptInput.noMatchingItems": "Ei vastaavia kohteita",
181
179
  "ui.promptInput.commands": "Komennot",
182
180
  "ui.promptInput.dropFiles": "Liitä tiedostoja pudottamalla ne tähän",
183
181
  "ui.promptInput.removeAttachment": "Poista liite",
184
182
  "ui.promptInput.label": "Kehote",
185
- "ui.promptInput.placeholder.shell": "Anna shell-komento...",
186
- "ui.promptInput.placeholder.normal": "Kysy mitä tahansa, {{slash}} komentoja varten, {{at}} kontekstia varten...",
183
+ "ui.promptInput.placeholder.shell": "Anna shell-komento",
184
+ "ui.promptInput.placeholder.normal": "Kysy mitä tahansa, {{slash}} komentoja varten, {{at}} kontekstia varten",
187
185
  "ui.promptInput.add": "Lisää kuvia ja tiedostoja",
188
186
  "ui.promptInput.attachments": "Kuvat ja tiedostot",
189
187
  "ui.promptInput.context": "Konteksti",
package/src/i18n/fo.ts CHANGED
@@ -10,7 +10,7 @@ export const dict: Record<string, string> = {
10
10
  "ui.sessionReview.change.added": "Lagt afturat",
11
11
  "ui.sessionReview.change.removed": "Fjernað",
12
12
  "ui.sessionReview.change.modified": "Broytt",
13
- "ui.sessionReview.image.loading": "Heinta...",
13
+ "ui.sessionReview.image.loading": "Heinta",
14
14
  "ui.sessionReview.image.placeholder": "Mynd",
15
15
  "ui.sessionReview.largeDiff.title": "Munurin er ov stórur at gera",
16
16
  "ui.sessionReview.largeDiff.meta": "Avmarking: {{limit}} broyttar linjur. Núverandi: {{current}} broyttar linjur.",
@@ -28,7 +28,7 @@ export const dict: Record<string, string> = {
28
28
  "ui.sessionReviewV2.empty.noGit.title": "Ongar fylgdar broytingar",
29
29
  "ui.sessionReviewV2.empty.noGit.description": "Fylg við, kanna og angra broytingar í hesi verkætlan",
30
30
  "ui.sessionReviewV2.empty.noGit.action": "Stovna Git goymslu",
31
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Stovna Git goymslu...",
31
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Stovna Git goymslu",
32
32
  "ui.sessionReviewV2.empty.changes.title": "Ongar fílubroytingar enn",
33
33
  "ui.sessionReviewV2.empty.changes.description": "Verkætlanarbroytingar síggjast her",
34
34
  "ui.sessionReview.openFile": "Opna fíluna",
@@ -37,7 +37,7 @@ export const dict: Record<string, string> = {
37
37
  "ui.fileMedia.kind.image": "mynd",
38
38
  "ui.fileMedia.kind.audio": "ljóð",
39
39
  "ui.fileMedia.state.removed": "Strikað {{kind}} fíla.",
40
- "ui.fileMedia.state.loading": "Heinta {{kind}}...",
40
+ "ui.fileMedia.state.loading": "Heinta {{kind}}",
41
41
  "ui.fileMedia.state.error": "Ikki ber til at heinta {{kind}}.",
42
42
  "ui.fileMedia.state.unavailable": "{{kind}} forskoðan ikki tøk.",
43
43
  "ui.fileMedia.binary.title": "Binær fíla",
@@ -69,7 +69,7 @@ export const dict: Record<string, string> = {
69
69
  "ui.sessionTurn.error.addCredits": "Legg stig til",
70
70
  "dialog.usageExceeded.freeTier.title": "Frítt mark er nátt",
71
71
  "dialog.usageExceeded.freeTier.description":
72
- "Tekna teg til OpenCode Go fyri $10 um mánaðin og fá álítandi atgongd til bestu open-source modellini.",
72
+ "Tekna teg til OpenCode Go fyri álítandi atgongd til bestu open-source modellini, frá $5 um mánaðin.",
73
73
  "dialog.usageExceeded.freeTier.actionLabel": "Tekna teg",
74
74
  "dialog.usageExceeded.accountRateLimit.title": "Go-markið er rokkið",
75
75
  "dialog.usageExceeded.accountRateLimit.description":
@@ -115,8 +115,8 @@ export const dict: Record<string, string> = {
115
115
  "ui.promptInput.dropFiles": "Slepp fílum at viðhefta",
116
116
  "ui.promptInput.removeAttachment": "Strika viðheftið",
117
117
  "ui.promptInput.label": "Prompt",
118
- "ui.promptInput.placeholder.shell": "Skriva eina shell-skipan...",
119
- "ui.promptInput.placeholder.normal": "Spyr um alt, {{slash}} um skipanir, {{at}} um samanhang...",
118
+ "ui.promptInput.placeholder.shell": "Skriva eina shell-skipan",
119
+ "ui.promptInput.placeholder.normal": "Spyr um alt, {{slash}} um skipanir, {{at}} um samanhang",
120
120
  "ui.promptInput.add": "Legg myndir og fílur til",
121
121
  "ui.promptInput.attachments": "Myndir og fílur",
122
122
  "ui.promptInput.context": "Samanhangur",
@@ -143,8 +143,6 @@ export const dict: Record<string, string> = {
143
143
  "ui.tool.websearch.provider": "{{provider}} Leitan á netinum",
144
144
  "ui.tool.shell": "Shell",
145
145
  "ui.tool.patch": "Patch",
146
- "ui.tool.todos": "Uppgávur",
147
- "ui.tool.todos.read": "Les uppgávur",
148
146
  "ui.tool.questions": "Spurningar",
149
147
  "ui.tool.questions.numbered": "Spurningar {{number}}",
150
148
  "ui.tool.agent": "{{type}} agentur",
@@ -193,5 +191,5 @@ export const dict: Record<string, string> = {
193
191
  "ui.question.review.notAnswered": "(ikki svarað)",
194
192
  "ui.question.multiHint": "Vel øll svar, sum eru galdandi",
195
193
  "ui.question.singleHint": "Vel eitt svar",
196
- "ui.question.custom.placeholder": "Skriva títt svar...",
194
+ "ui.question.custom.placeholder": "Skriva títt svar",
197
195
  }
package/src/i18n/fr.ts CHANGED
@@ -13,7 +13,7 @@ export const dict = {
13
13
  "ui.sessionReview.change.added": "Ajout",
14
14
  "ui.sessionReview.change.removed": "Suppression",
15
15
  "ui.sessionReview.change.modified": "Modification",
16
- "ui.sessionReview.image.loading": "Chargement...",
16
+ "ui.sessionReview.image.loading": "Chargement",
17
17
  "ui.sessionReview.image.placeholder": "Image",
18
18
  "ui.sessionReview.largeDiff.title": "Diff trop volumineux pour être affiché",
19
19
  "ui.sessionReview.largeDiff.meta":
@@ -32,7 +32,7 @@ export const dict = {
32
32
  "ui.sessionReviewV2.empty.noGit.title": "Aucune modification suivie",
33
33
  "ui.sessionReviewV2.empty.noGit.description": "Suivre, examiner et annuler les modifications dans ce projet",
34
34
  "ui.sessionReviewV2.empty.noGit.action": "Créer un dépôt Git",
35
- "ui.sessionReviewV2.empty.noGit.actionLoading": "Création du dépôt Git...",
35
+ "ui.sessionReviewV2.empty.noGit.actionLoading": "Création du dépôt Git",
36
36
  "ui.sessionReviewV2.empty.changes.title": "Aucune modification de fichier pour l'instant",
37
37
  "ui.sessionReviewV2.empty.changes.description": "Les modifications du projet apparaîtront ici",
38
38
  "ui.fileMedia.kind.image": "image",
@@ -75,7 +75,7 @@ export const dict = {
75
75
 
76
76
  "dialog.usageExceeded.freeTier.title": "Limite gratuite atteinte",
77
77
  "dialog.usageExceeded.freeTier.description":
78
- "Abonnez-vous à OpenCode Go pour 10 $ US par mois et accédez de manière fiable aux meilleurs modèles à code source ouvert.",
78
+ "Abonnez-vous à OpenCode Go pour un accès fiable aux meilleurs modèles à code source ouvert, à partir de 5 $ US par mois.",
79
79
  "dialog.usageExceeded.freeTier.actionLabel": "S'abonner",
80
80
  "dialog.usageExceeded.accountRateLimit.title": "Limite Go atteinte",
81
81
  "dialog.usageExceeded.accountRateLimit.description":
@@ -125,9 +125,9 @@ export const dict = {
125
125
  "ui.promptInput.dropFiles": "Déposez des fichiers pour les joindre",
126
126
  "ui.promptInput.removeAttachment": "Supprimer la pièce jointe",
127
127
  "ui.promptInput.label": "Invite",
128
- "ui.promptInput.placeholder.shell": "Entrez une commande shell...",
128
+ "ui.promptInput.placeholder.shell": "Entrez une commande shell",
129
129
  "ui.promptInput.placeholder.normal":
130
- "Demandez n'importe quoi, {{slash}} pour les commandes, {{at}} pour le contexte...",
130
+ "Demandez n'importe quoi, {{slash}} pour les commandes, {{at}} pour le contexte",
131
131
  "ui.promptInput.add": "Ajouter des images et des fichiers",
132
132
  "ui.promptInput.attachments": "Images et fichiers",
133
133
  "ui.promptInput.context": "Contexte",
@@ -157,8 +157,6 @@ export const dict = {
157
157
  "ui.tool.websearch.provider": "{{provider}} Recherche Web",
158
158
  "ui.tool.shell": "Shell",
159
159
  "ui.tool.patch": "Patch",
160
- "ui.tool.todos": "Tâches",
161
- "ui.tool.todos.read": "Lire les tâches",
162
160
  "ui.tool.questions": "Questions",
163
161
  "ui.tool.questions.numbered": "Questions {{number}}",
164
162
  "ui.tool.agent": "Agent {{type}}",
@@ -207,7 +205,7 @@ export const dict = {
207
205
  "ui.question.review.notAnswered": "(non répondu)",
208
206
  "ui.question.multiHint": "Sélectionnez tout ce qui s'applique",
209
207
  "ui.question.singleHint": "Sélectionnez une réponse",
210
- "ui.question.custom.placeholder": "Tapez votre réponse...",
208
+ "ui.question.custom.placeholder": "Tapez votre réponse",
211
209
 
212
210
  "ui.fileSearch.placeholder": "Rechercher",
213
211
  "ui.fileSearch.previousMatch": "Précédent",