@jonsoc/app 1.1.34

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 (139) hide show
  1. package/AGENTS.md +30 -0
  2. package/README.md +51 -0
  3. package/bunfig.toml +2 -0
  4. package/e2e/context.spec.ts +45 -0
  5. package/e2e/file-open.spec.ts +23 -0
  6. package/e2e/file-viewer.spec.ts +35 -0
  7. package/e2e/fixtures.ts +40 -0
  8. package/e2e/home.spec.ts +21 -0
  9. package/e2e/model-picker.spec.ts +43 -0
  10. package/e2e/navigation.spec.ts +9 -0
  11. package/e2e/palette.spec.ts +15 -0
  12. package/e2e/prompt-mention.spec.ts +26 -0
  13. package/e2e/prompt-slash-open.spec.ts +22 -0
  14. package/e2e/prompt.spec.ts +62 -0
  15. package/e2e/session.spec.ts +21 -0
  16. package/e2e/settings.spec.ts +44 -0
  17. package/e2e/sidebar.spec.ts +21 -0
  18. package/e2e/terminal-init.spec.ts +25 -0
  19. package/e2e/terminal.spec.ts +16 -0
  20. package/e2e/tsconfig.json +8 -0
  21. package/e2e/utils.ts +38 -0
  22. package/happydom.ts +75 -0
  23. package/index.html +23 -0
  24. package/package.json +72 -0
  25. package/playwright.config.ts +43 -0
  26. package/public/_headers +17 -0
  27. package/public/apple-touch-icon-v3.png +1 -0
  28. package/public/apple-touch-icon.png +1 -0
  29. package/public/favicon-96x96-v3.png +1 -0
  30. package/public/favicon-96x96.png +1 -0
  31. package/public/favicon-v3.ico +1 -0
  32. package/public/favicon-v3.svg +1 -0
  33. package/public/favicon.ico +1 -0
  34. package/public/favicon.svg +1 -0
  35. package/public/oc-theme-preload.js +28 -0
  36. package/public/site.webmanifest +1 -0
  37. package/public/social-share-zen.png +1 -0
  38. package/public/social-share.png +1 -0
  39. package/public/web-app-manifest-192x192.png +1 -0
  40. package/public/web-app-manifest-512x512.png +1 -0
  41. package/script/e2e-local.ts +143 -0
  42. package/src/addons/serialize.test.ts +319 -0
  43. package/src/addons/serialize.ts +591 -0
  44. package/src/app.tsx +150 -0
  45. package/src/components/dialog-connect-provider.tsx +428 -0
  46. package/src/components/dialog-edit-project.tsx +259 -0
  47. package/src/components/dialog-fork.tsx +104 -0
  48. package/src/components/dialog-manage-models.tsx +59 -0
  49. package/src/components/dialog-select-directory.tsx +208 -0
  50. package/src/components/dialog-select-file.tsx +196 -0
  51. package/src/components/dialog-select-mcp.tsx +96 -0
  52. package/src/components/dialog-select-model-unpaid.tsx +130 -0
  53. package/src/components/dialog-select-model.tsx +162 -0
  54. package/src/components/dialog-select-provider.tsx +70 -0
  55. package/src/components/dialog-select-server.tsx +249 -0
  56. package/src/components/dialog-settings.tsx +112 -0
  57. package/src/components/file-tree.tsx +112 -0
  58. package/src/components/link.tsx +17 -0
  59. package/src/components/model-tooltip.tsx +91 -0
  60. package/src/components/prompt-input.tsx +2076 -0
  61. package/src/components/session/index.ts +5 -0
  62. package/src/components/session/session-context-tab.tsx +428 -0
  63. package/src/components/session/session-header.tsx +343 -0
  64. package/src/components/session/session-new-view.tsx +93 -0
  65. package/src/components/session/session-sortable-tab.tsx +56 -0
  66. package/src/components/session/session-sortable-terminal-tab.tsx +187 -0
  67. package/src/components/session-context-usage.tsx +113 -0
  68. package/src/components/session-lsp-indicator.tsx +42 -0
  69. package/src/components/session-mcp-indicator.tsx +34 -0
  70. package/src/components/settings-agents.tsx +15 -0
  71. package/src/components/settings-commands.tsx +15 -0
  72. package/src/components/settings-general.tsx +306 -0
  73. package/src/components/settings-keybinds.tsx +437 -0
  74. package/src/components/settings-mcp.tsx +15 -0
  75. package/src/components/settings-models.tsx +15 -0
  76. package/src/components/settings-permissions.tsx +234 -0
  77. package/src/components/settings-providers.tsx +15 -0
  78. package/src/components/terminal.tsx +315 -0
  79. package/src/components/titlebar.tsx +156 -0
  80. package/src/context/command.tsx +308 -0
  81. package/src/context/comments.tsx +140 -0
  82. package/src/context/file.tsx +409 -0
  83. package/src/context/global-sdk.tsx +106 -0
  84. package/src/context/global-sync.tsx +898 -0
  85. package/src/context/language.tsx +161 -0
  86. package/src/context/layout-scroll.test.ts +73 -0
  87. package/src/context/layout-scroll.ts +118 -0
  88. package/src/context/layout.tsx +648 -0
  89. package/src/context/local.tsx +578 -0
  90. package/src/context/notification.tsx +173 -0
  91. package/src/context/permission.tsx +167 -0
  92. package/src/context/platform.tsx +59 -0
  93. package/src/context/prompt.tsx +245 -0
  94. package/src/context/sdk.tsx +48 -0
  95. package/src/context/server.tsx +214 -0
  96. package/src/context/settings.tsx +166 -0
  97. package/src/context/sync.tsx +320 -0
  98. package/src/context/terminal.tsx +267 -0
  99. package/src/custom-elements.d.ts +17 -0
  100. package/src/entry.tsx +76 -0
  101. package/src/env.d.ts +8 -0
  102. package/src/hooks/use-providers.ts +31 -0
  103. package/src/i18n/ar.ts +656 -0
  104. package/src/i18n/br.ts +667 -0
  105. package/src/i18n/da.ts +582 -0
  106. package/src/i18n/de.ts +591 -0
  107. package/src/i18n/en.ts +665 -0
  108. package/src/i18n/es.ts +585 -0
  109. package/src/i18n/fr.ts +592 -0
  110. package/src/i18n/ja.ts +579 -0
  111. package/src/i18n/ko.ts +580 -0
  112. package/src/i18n/no.ts +602 -0
  113. package/src/i18n/pl.ts +661 -0
  114. package/src/i18n/ru.ts +664 -0
  115. package/src/i18n/zh.ts +574 -0
  116. package/src/i18n/zht.ts +570 -0
  117. package/src/index.css +57 -0
  118. package/src/index.ts +2 -0
  119. package/src/pages/directory-layout.tsx +57 -0
  120. package/src/pages/error.tsx +290 -0
  121. package/src/pages/home.tsx +125 -0
  122. package/src/pages/layout.tsx +2599 -0
  123. package/src/pages/session.tsx +2505 -0
  124. package/src/sst-env.d.ts +10 -0
  125. package/src/utils/dom.ts +51 -0
  126. package/src/utils/id.ts +99 -0
  127. package/src/utils/index.ts +1 -0
  128. package/src/utils/perf.ts +135 -0
  129. package/src/utils/persist.ts +377 -0
  130. package/src/utils/prompt.ts +203 -0
  131. package/src/utils/same.ts +6 -0
  132. package/src/utils/solid-dnd.tsx +55 -0
  133. package/src/utils/sound.ts +110 -0
  134. package/src/utils/speech.ts +302 -0
  135. package/src/utils/worktree.ts +58 -0
  136. package/sst-env.d.ts +9 -0
  137. package/tsconfig.json +26 -0
  138. package/vite.config.ts +15 -0
  139. package/vite.js +26 -0
package/src/i18n/da.ts ADDED
@@ -0,0 +1,582 @@
1
+ export const dict = {
2
+ "command.category.suggested": "Foreslået",
3
+ "command.category.view": "Vis",
4
+ "command.category.project": "Projekt",
5
+ "command.category.provider": "Udbyder",
6
+ "command.category.server": "Server",
7
+ "command.category.session": "Session",
8
+ "command.category.theme": "Tema",
9
+ "command.category.language": "Sprog",
10
+ "command.category.file": "Fil",
11
+ "command.category.terminal": "Terminal",
12
+ "command.category.model": "Model",
13
+ "command.category.mcp": "MCP",
14
+ "command.category.agent": "Agent",
15
+ "command.category.permissions": "Tilladelser",
16
+ "command.category.workspace": "Arbejdsområde",
17
+
18
+ "theme.scheme.system": "System",
19
+ "theme.scheme.light": "Lys",
20
+ "theme.scheme.dark": "Mørk",
21
+
22
+ "command.sidebar.toggle": "Skift sidebjælke",
23
+ "command.project.open": "Åbn projekt",
24
+ "command.provider.connect": "Tilslut udbyder",
25
+ "command.server.switch": "Skift server",
26
+ "command.session.previous": "Forrige session",
27
+ "command.session.next": "Næste session",
28
+ "command.session.archive": "Arkivér session",
29
+
30
+ "command.palette": "Kommandopalette",
31
+
32
+ "command.theme.cycle": "Skift tema",
33
+ "command.theme.set": "Brug tema: {{theme}}",
34
+ "command.theme.scheme.cycle": "Skift farveskema",
35
+ "command.theme.scheme.set": "Brug farveskema: {{scheme}}",
36
+
37
+ "command.language.cycle": "Skift sprog",
38
+ "command.language.set": "Brug sprog: {{language}}",
39
+
40
+ "command.session.new": "Ny session",
41
+ "command.file.open": "Åbn fil",
42
+ "command.file.open.description": "Søg i filer og kommandoer",
43
+ "command.terminal.toggle": "Skift terminal",
44
+ "command.review.toggle": "Skift gennemgang",
45
+ "command.terminal.new": "Ny terminal",
46
+ "command.terminal.new.description": "Opret en ny terminalfane",
47
+ "command.steps.toggle": "Skift trin",
48
+ "command.steps.toggle.description": "Vis eller skjul trin for den aktuelle besked",
49
+ "command.message.previous": "Forrige besked",
50
+ "command.message.previous.description": "Gå til den forrige brugerbesked",
51
+ "command.message.next": "Næste besked",
52
+ "command.message.next.description": "Gå til den næste brugerbesked",
53
+ "command.model.choose": "Vælg model",
54
+ "command.model.choose.description": "Vælg en anden model",
55
+ "command.mcp.toggle": "Skift MCP'er",
56
+ "command.mcp.toggle.description": "Skift MCP'er",
57
+ "command.agent.cycle": "Skift agent",
58
+ "command.agent.cycle.description": "Skift til næste agent",
59
+ "command.agent.cycle.reverse": "Skift agent baglæns",
60
+ "command.agent.cycle.reverse.description": "Skift til forrige agent",
61
+ "command.model.variant.cycle": "Skift tænkeindsats",
62
+ "command.model.variant.cycle.description": "Skift til næste indsatsniveau",
63
+ "command.permissions.autoaccept.enable": "Accepter ændringer automatisk",
64
+ "command.permissions.autoaccept.disable": "Stop automatisk accept af ændringer",
65
+ "command.session.undo": "Fortryd",
66
+ "command.session.undo.description": "Fortryd den sidste besked",
67
+ "command.session.redo": "Omgør",
68
+ "command.session.redo.description": "Omgør den sidste fortrudte besked",
69
+ "command.session.compact": "Komprimér session",
70
+ "command.session.compact.description": "Opsummer sessionen for at reducere kontekststørrelsen",
71
+ "command.session.fork": "Forgren fra besked",
72
+ "command.session.fork.description": "Opret en ny session fra en tidligere besked",
73
+ "command.session.share": "Del session",
74
+ "command.session.share.description": "Del denne session og kopier URL'en til udklipsholderen",
75
+ "command.session.unshare": "Stop deling af session",
76
+ "command.session.unshare.description": "Stop med at dele denne session",
77
+
78
+ "palette.search.placeholder": "Søg i filer og kommandoer",
79
+ "palette.empty": "Ingen resultater fundet",
80
+ "palette.group.commands": "Kommandoer",
81
+ "palette.group.files": "Filer",
82
+
83
+ "dialog.provider.search.placeholder": "Søg udbydere",
84
+ "dialog.provider.empty": "Ingen udbydere fundet",
85
+ "dialog.provider.group.popular": "Populære",
86
+ "dialog.provider.group.other": "Andre",
87
+ "dialog.provider.tag.recommended": "Anbefalet",
88
+ "dialog.provider.anthropic.note": "Forbind med Claude Pro/Max eller API-nøgle",
89
+ "dialog.provider.openai.note": "Forbind med ChatGPT Pro/Plus eller API-nøgle",
90
+ "dialog.provider.copilot.note": "Forbind med Copilot eller API-nøgle",
91
+
92
+ "dialog.model.select.title": "Vælg model",
93
+ "dialog.model.search.placeholder": "Søg modeller",
94
+ "dialog.model.empty": "Ingen modeller fundet",
95
+ "dialog.model.manage": "Administrer modeller",
96
+ "dialog.model.manage.description": "Tilpas hvilke modeller der vises i modelvælgeren.",
97
+
98
+ "dialog.model.unpaid.freeModels.title": "Gratis modeller leveret af JonsOC",
99
+ "dialog.model.unpaid.addMore.title": "Tilføj flere modeller fra populære udbydere",
100
+
101
+ "dialog.provider.viewAll": "Vis alle udbydere",
102
+
103
+ "provider.connect.title": "Forbind {{provider}}",
104
+ "provider.connect.title.anthropicProMax": "Log ind med Claude Pro/Max",
105
+ "provider.connect.selectMethod": "Vælg loginmetode for {{provider}}.",
106
+ "provider.connect.method.apiKey": "API-nøgle",
107
+ "provider.connect.status.inProgress": "Godkendelse i gang...",
108
+ "provider.connect.status.waiting": "Venter på godkendelse...",
109
+ "provider.connect.status.failed": "Godkendelse mislykkedes: {{error}}",
110
+ "provider.connect.apiKey.description":
111
+ "Indtast din {{provider}} API-nøgle for at forbinde din konto og bruge {{provider}} modeller i JonsOC.",
112
+ "provider.connect.apiKey.label": "{{provider}} API-nøgle",
113
+ "provider.connect.apiKey.placeholder": "API-nøgle",
114
+ "provider.connect.apiKey.required": "API-nøgle er påkrævet",
115
+ "provider.connect.jonsocZen.line1":
116
+ "JonsOC Zen giver dig adgang til et udvalg af pålidelige optimerede modeller til kodningsagenter.",
117
+ "provider.connect.jonsocZen.line2":
118
+ "Med en enkelt API-nøgle får du adgang til modeller som Claude, GPT, Gemini, GLM og flere.",
119
+ "provider.connect.jonsocZen.visit.prefix": "Besøg ",
120
+ "provider.connect.jonsocZen.visit.suffix": " for at hente din API-nøgle.",
121
+ "provider.connect.oauth.code.visit.prefix": "Besøg ",
122
+ "provider.connect.oauth.code.visit.link": "dette link",
123
+ "provider.connect.oauth.code.visit.suffix":
124
+ " for at hente din godkendelseskode for at forbinde din konto og bruge {{provider}} modeller i JonsOC.",
125
+ "provider.connect.oauth.code.label": "{{method}} godkendelseskode",
126
+ "provider.connect.oauth.code.placeholder": "Godkendelseskode",
127
+ "provider.connect.oauth.code.required": "Godkendelseskode er påkrævet",
128
+ "provider.connect.oauth.code.invalid": "Ugyldig godkendelseskode",
129
+ "provider.connect.oauth.auto.visit.prefix": "Besøg ",
130
+ "provider.connect.oauth.auto.visit.link": "dette link",
131
+ "provider.connect.oauth.auto.visit.suffix":
132
+ " og indtast koden nedenfor for at forbinde din konto og bruge {{provider}} modeller i JonsOC.",
133
+ "provider.connect.oauth.auto.confirmationCode": "Bekræftelseskode",
134
+ "provider.connect.toast.connected.title": "{{provider}} forbundet",
135
+ "provider.connect.toast.connected.description": "{{provider}} modeller er nu tilgængelige.",
136
+
137
+ "model.tag.free": "Gratis",
138
+ "model.tag.latest": "Nyeste",
139
+
140
+ "common.search.placeholder": "Søg",
141
+ "common.goBack": "Gå tilbage",
142
+ "common.loading": "Indlæser",
143
+ "common.cancel": "Annuller",
144
+ "common.submit": "Indsend",
145
+ "common.save": "Gem",
146
+ "common.saving": "Gemmer...",
147
+ "common.default": "Standard",
148
+ "common.attachment": "vedhæftning",
149
+
150
+ "prompt.placeholder.shell": "Indtast shell-kommando...",
151
+ "prompt.placeholder.normal": 'Spørg om hvad som helst... "{{example}}"',
152
+ "prompt.mode.shell": "Shell",
153
+ "prompt.mode.shell.exit": "esc for at afslutte",
154
+
155
+ "prompt.example.1": "Ret en TODO i koden",
156
+ "prompt.example.2": "Hvad er teknologistakken for dette projekt?",
157
+ "prompt.example.3": "Ret ødelagte tests",
158
+ "prompt.example.4": "Forklar hvordan godkendelse fungerer",
159
+ "prompt.example.5": "Find og ret sikkerhedshuller",
160
+ "prompt.example.6": "Tilføj enhedstests for brugerservice",
161
+ "prompt.example.7": "Refaktorer denne funktion så den er mere læsbar",
162
+ "prompt.example.8": "Hvad betyder denne fejl?",
163
+ "prompt.example.9": "Hjælp mig med at debugge dette problem",
164
+ "prompt.example.10": "Generer API-dokumentation",
165
+ "prompt.example.11": "Optimer databaseforespørgsler",
166
+ "prompt.example.12": "Tilføj validering af input",
167
+ "prompt.example.13": "Opret en ny komponent til...",
168
+ "prompt.example.14": "Hvordan deployerer jeg dette projekt?",
169
+ "prompt.example.15": "Gennemgå min kode for bedste praksis",
170
+ "prompt.example.16": "Tilføj fejlhåndtering til denne funktion",
171
+ "prompt.example.17": "Forklar dette regex-mønster",
172
+ "prompt.example.18": "Konverter dette til TypeScript",
173
+ "prompt.example.19": "Tilføj logning i hele koden",
174
+ "prompt.example.20": "Hvilke afhængigheder er forældede?",
175
+ "prompt.example.21": "Hjælp mig med at skrive et migreringsscript",
176
+ "prompt.example.22": "Implementer caching for dette endpoint",
177
+ "prompt.example.23": "Tilføj sideinddeling til denne liste",
178
+ "prompt.example.24": "Opret en CLI-kommando til...",
179
+ "prompt.example.25": "Hvordan fungerer miljøvariabler her?",
180
+
181
+ "prompt.popover.emptyResults": "Ingen matchende resultater",
182
+ "prompt.popover.emptyCommands": "Ingen matchende kommandoer",
183
+ "prompt.dropzone.label": "Slip billeder eller PDF'er her",
184
+ "prompt.slash.badge.custom": "brugerdefineret",
185
+ "prompt.context.active": "aktiv",
186
+ "prompt.context.includeActiveFile": "Inkluder aktiv fil",
187
+ "prompt.context.removeActiveFile": "Fjern aktiv fil fra kontekst",
188
+ "prompt.context.removeFile": "Fjern fil fra kontekst",
189
+ "prompt.action.attachFile": "Vedhæft fil",
190
+ "prompt.attachment.remove": "Fjern vedhæftning",
191
+ "prompt.action.send": "Send",
192
+ "prompt.action.stop": "Stop",
193
+
194
+ "prompt.toast.pasteUnsupported.title": "Ikke understøttet indsæt",
195
+ "prompt.toast.pasteUnsupported.description": "Kun billeder eller PDF'er kan indsættes her.",
196
+ "prompt.toast.modelAgentRequired.title": "Vælg en agent og model",
197
+ "prompt.toast.modelAgentRequired.description": "Vælg en agent og model før du sender en forespørgsel.",
198
+ "prompt.toast.worktreeCreateFailed.title": "Kunne ikke oprette worktree",
199
+ "prompt.toast.sessionCreateFailed.title": "Kunne ikke oprette session",
200
+ "prompt.toast.shellSendFailed.title": "Kunne ikke sende shell-kommando",
201
+ "prompt.toast.commandSendFailed.title": "Kunne ikke sende kommando",
202
+ "prompt.toast.promptSendFailed.title": "Kunne ikke sende forespørgsel",
203
+
204
+ "dialog.mcp.title": "MCP'er",
205
+ "dialog.mcp.description": "{{enabled}} af {{total}} aktiveret",
206
+ "dialog.mcp.empty": "Ingen MCP'er konfigureret",
207
+
208
+ "mcp.status.connected": "forbundet",
209
+ "mcp.status.failed": "mislykkedes",
210
+ "mcp.status.needs_auth": "kræver godkendelse",
211
+ "mcp.status.disabled": "deaktiveret",
212
+
213
+ "dialog.fork.empty": "Ingen beskeder at forgrene fra",
214
+
215
+ "dialog.directory.search.placeholder": "Søg mapper",
216
+ "dialog.directory.empty": "Ingen mapper fundet",
217
+
218
+ "dialog.server.title": "Servere",
219
+ "dialog.server.description": "Skift hvilken JonsOC-server denne app forbinder til.",
220
+ "dialog.server.search.placeholder": "Søg servere",
221
+ "dialog.server.empty": "Ingen servere endnu",
222
+ "dialog.server.add.title": "Tilføj en server",
223
+ "dialog.server.add.url": "Server URL",
224
+ "dialog.server.add.placeholder": "http://localhost:4096",
225
+ "dialog.server.add.error": "Kunne ikke forbinde til server",
226
+ "dialog.server.add.checking": "Tjekker...",
227
+ "dialog.server.add.button": "Tilføj",
228
+ "dialog.server.default.title": "Standardserver",
229
+ "dialog.server.default.description":
230
+ "Forbind til denne server ved start af app i stedet for at starte en lokal server. Kræver genstart.",
231
+ "dialog.server.default.none": "Ingen server valgt",
232
+ "dialog.server.default.set": "Sæt nuværende server som standard",
233
+ "dialog.server.default.clear": "Ryd",
234
+ "dialog.server.action.remove": "Fjern server",
235
+
236
+ "dialog.project.edit.title": "Rediger projekt",
237
+ "dialog.project.edit.name": "Navn",
238
+ "dialog.project.edit.icon": "Ikon",
239
+ "dialog.project.edit.icon.alt": "Projektikon",
240
+ "dialog.project.edit.icon.hint": "Klik eller træk et billede",
241
+ "dialog.project.edit.icon.recommended": "Anbefalet: 128x128px",
242
+ "dialog.project.edit.color": "Farve",
243
+ "dialog.project.edit.color.select": "Vælg farven {{color}}",
244
+
245
+ "context.breakdown.title": "Kontekstfordeling",
246
+ "context.breakdown.note":
247
+ 'Omtrentlig fordeling af input-tokens. "Andre" inkluderer værktøjsdefinitioner og overhead.',
248
+ "context.breakdown.system": "System",
249
+ "context.breakdown.user": "Bruger",
250
+ "context.breakdown.assistant": "Assistent",
251
+ "context.breakdown.tool": "Værktøjskald",
252
+ "context.breakdown.other": "Andre",
253
+
254
+ "context.systemPrompt.title": "Systemprompt",
255
+ "context.rawMessages.title": "Rå beskeder",
256
+
257
+ "context.stats.session": "Session",
258
+ "context.stats.messages": "Beskeder",
259
+ "context.stats.provider": "Udbyder",
260
+ "context.stats.model": "Model",
261
+ "context.stats.limit": "Kontekstgrænse",
262
+ "context.stats.totalTokens": "Total Tokens",
263
+ "context.stats.usage": "Forbrug",
264
+ "context.stats.inputTokens": "Input Tokens",
265
+ "context.stats.outputTokens": "Output Tokens",
266
+ "context.stats.reasoningTokens": "Tænke Tokens",
267
+ "context.stats.cacheTokens": "Cache Tokens (læs/skriv)",
268
+ "context.stats.userMessages": "Brugerbeskeder",
269
+ "context.stats.assistantMessages": "Assistentbeskeder",
270
+ "context.stats.totalCost": "Samlede omkostninger",
271
+ "context.stats.sessionCreated": "Session oprettet",
272
+ "context.stats.lastActivity": "Seneste aktivitet",
273
+
274
+ "context.usage.tokens": "Tokens",
275
+ "context.usage.usage": "Forbrug",
276
+ "context.usage.cost": "Omkostning",
277
+ "context.usage.clickToView": "Klik for at se kontekst",
278
+ "context.usage.view": "Se kontekstforbrug",
279
+
280
+ "language.en": "Engelsk",
281
+ "language.zh": "Kinesisk (forenklet)",
282
+ "language.zht": "Kinesisk (traditionelt)",
283
+ "language.ko": "Koreansk",
284
+ "language.de": "Tysk",
285
+ "language.es": "Spansk",
286
+ "language.fr": "Fransk",
287
+ "language.ja": "Japansk",
288
+ "language.da": "Dansk",
289
+ "language.ru": "Russisk",
290
+ "language.pl": "Polsk",
291
+ "language.ar": "Arabisk",
292
+ "language.no": "Norsk",
293
+ "language.br": "Portugisisk (Brasilien)",
294
+
295
+ "toast.language.title": "Sprog",
296
+ "toast.language.description": "Skiftede til {{language}}",
297
+
298
+ "toast.theme.title": "Tema skiftet",
299
+ "toast.scheme.title": "Farveskema",
300
+
301
+ "toast.permissions.autoaccept.on.title": "Accepterer ændringer automatisk",
302
+ "toast.permissions.autoaccept.on.description": "Redigerings- og skrivetilladelser vil automatisk blive godkendt",
303
+ "toast.permissions.autoaccept.off.title": "Stoppede automatisk accept af ændringer",
304
+ "toast.permissions.autoaccept.off.description": "Redigerings- og skrivetilladelser vil kræve godkendelse",
305
+
306
+ "toast.model.none.title": "Ingen model valgt",
307
+ "toast.model.none.description": "Forbind en udbyder for at opsummere denne session",
308
+
309
+ "toast.file.loadFailed.title": "Kunne ikke indlæse fil",
310
+
311
+ "toast.session.share.copyFailed.title": "Kunne ikke kopiere URL til udklipsholder",
312
+ "toast.session.share.success.title": "Session delt",
313
+ "toast.session.share.success.description": "Delings-URL kopieret til udklipsholder!",
314
+ "toast.session.share.failed.title": "Kunne ikke dele session",
315
+ "toast.session.share.failed.description": "Der opstod en fejl under deling af sessionen",
316
+
317
+ "toast.session.unshare.success.title": "Deling af session stoppet",
318
+ "toast.session.unshare.success.description": "Deling af session blev stoppet!",
319
+ "toast.session.unshare.failed.title": "Kunne ikke stoppe deling af session",
320
+ "toast.session.unshare.failed.description": "Der opstod en fejl under stop af sessionsdeling",
321
+
322
+ "toast.session.listFailed.title": "Kunne ikke indlæse sessioner for {{project}}",
323
+
324
+ "toast.update.title": "Opdatering tilgængelig",
325
+ "toast.update.description": "En ny version af JonsOC ({{version}}) er nu tilgængelig til installation.",
326
+ "toast.update.action.installRestart": "Installer og genstart",
327
+ "toast.update.action.notYet": "Ikke endnu",
328
+
329
+ "error.page.title": "Noget gik galt",
330
+ "error.page.description": "Der opstod en fejl under indlæsning af applikationen.",
331
+ "error.page.details.label": "Fejldetaljer",
332
+ "error.page.action.restart": "Genstart",
333
+ "error.page.action.checking": "Tjekker...",
334
+ "error.page.action.checkUpdates": "Tjek for opdateringer",
335
+ "error.page.action.updateTo": "Opdater til {{version}}",
336
+ "error.page.report.prefix": "Rapporter venligst denne fejl til JonsOC-teamet",
337
+ "error.page.report.discord": "på Discord",
338
+ "error.page.version": "Version: {{version}}",
339
+
340
+ "error.dev.rootNotFound":
341
+ "Rodelement ikke fundet. Har du glemt at tilføje det til din index.html? Eller måske er id-attributten stavet forkert?",
342
+
343
+ "error.globalSync.connectFailed": "Kunne ikke forbinde til server. Kører der en server på `{{url}}`?",
344
+
345
+ "error.chain.unknown": "Ukendt fejl",
346
+ "error.chain.causedBy": "Forårsaget af:",
347
+ "error.chain.apiError": "API-fejl",
348
+ "error.chain.status": "Status: {{status}}",
349
+ "error.chain.retryable": "Kan forsøges igen: {{retryable}}",
350
+ "error.chain.responseBody": "Svarindhold:\n{{body}}",
351
+ "error.chain.didYouMean": "Mente du: {{suggestions}}",
352
+ "error.chain.modelNotFound": "Model ikke fundet: {{provider}}/{{model}}",
353
+ "error.chain.checkConfig": "Tjek dine konfigurations (jonsoc.json) udbyder/modelnavne",
354
+ "error.chain.mcpFailed": 'MCP-server "{{name}}" fejlede. Bemærk, JonsOC understøtter ikke MCP-godkendelse endnu.',
355
+ "error.chain.providerAuthFailed": "Udbydergodkendelse mislykkedes ({{provider}}): {{message}}",
356
+ "error.chain.providerInitFailed":
357
+ 'Kunne ikke initialisere udbyder "{{provider}}". Tjek legitimationsoplysninger og konfiguration.',
358
+ "error.chain.configJsonInvalid": "Konfigurationsfil på {{path}} er ikke gyldig JSON(C)",
359
+ "error.chain.configJsonInvalidWithMessage": "Konfigurationsfil på {{path}} er ikke gyldig JSON(C): {{message}}",
360
+ "error.chain.configDirectoryTypo":
361
+ 'Mappe "{{dir}}" i {{path}} er ikke gyldig. Omdøb mappen til "{{suggestion}}" eller fjern den. Dette er en almindelig slåfejl.',
362
+ "error.chain.configFrontmatterError": "Kunne ikke parse frontmatter i {{path}}:\n{{message}}",
363
+ "error.chain.configInvalid": "Konfigurationsfil på {{path}} er ugyldig",
364
+ "error.chain.configInvalidWithMessage": "Konfigurationsfil på {{path}} er ugyldig: {{message}}",
365
+
366
+ "notification.permission.title": "Tilladelse påkrævet",
367
+ "notification.permission.description": "{{sessionTitle}} i {{projectName}} kræver tilladelse",
368
+ "notification.question.title": "Spørgsmål",
369
+ "notification.question.description": "{{sessionTitle}} i {{projectName}} har et spørgsmål",
370
+ "notification.action.goToSession": "Gå til session",
371
+
372
+ "notification.session.responseReady.title": "Svar klar",
373
+ "notification.session.error.title": "Sessionsfejl",
374
+ "notification.session.error.fallbackDescription": "Der opstod en fejl",
375
+
376
+ "home.recentProjects": "Seneste projekter",
377
+ "home.empty.title": "Ingen seneste projekter",
378
+ "home.empty.description": "Kom i gang ved at åbne et lokalt projekt",
379
+
380
+ "session.tab.session": "Session",
381
+ "session.tab.review": "Gennemgang",
382
+ "session.tab.context": "Kontekst",
383
+ "session.panel.reviewAndFiles": "Gennemgang og filer",
384
+ "session.review.filesChanged": "{{count}} Filer ændret",
385
+ "session.review.loadingChanges": "Indlæser ændringer...",
386
+ "session.review.empty": "Ingen ændringer i denne session endnu",
387
+ "session.messages.renderEarlier": "Vis tidligere beskeder",
388
+ "session.messages.loadingEarlier": "Indlæser tidligere beskeder...",
389
+ "session.messages.loadEarlier": "Indlæs tidligere beskeder",
390
+ "session.messages.loading": "Indlæser beskeder...",
391
+
392
+ "session.context.addToContext": "Tilføj {{selection}} til kontekst",
393
+
394
+ "session.new.worktree.main": "Hovedgren",
395
+ "session.new.worktree.mainWithBranch": "Hovedgren ({{branch}})",
396
+ "session.new.worktree.create": "Opret nyt worktree",
397
+ "session.new.lastModified": "Sidst ændret",
398
+
399
+ "session.header.search.placeholder": "Søg {{project}}",
400
+ "session.header.searchFiles": "Søg efter filer",
401
+
402
+ "session.share.popover.title": "Udgiv på nettet",
403
+ "session.share.popover.description.shared":
404
+ "Denne session er offentlig på nettet. Den er tilgængelig for alle med linket.",
405
+ "session.share.popover.description.unshared":
406
+ "Del session offentligt på nettet. Den vil være tilgængelig for alle med linket.",
407
+ "session.share.action.share": "Del",
408
+ "session.share.action.publish": "Udgiv",
409
+ "session.share.action.publishing": "Udgiver...",
410
+ "session.share.action.unpublish": "Afpublicer",
411
+ "session.share.action.unpublishing": "Afpublicerer...",
412
+ "session.share.action.view": "Vis",
413
+ "session.share.copy.copied": "Kopieret",
414
+ "session.share.copy.copyLink": "Kopier link",
415
+
416
+ "lsp.tooltip.none": "Ingen LSP-servere",
417
+ "lsp.label.connected": "{{count}} LSP",
418
+
419
+ "prompt.loading": "Indlæser prompt...",
420
+ "terminal.loading": "Indlæser terminal...",
421
+ "terminal.title": "Terminal",
422
+ "terminal.title.numbered": "Terminal {{number}}",
423
+ "terminal.close": "Luk terminal",
424
+
425
+ "common.closeTab": "Luk fane",
426
+ "common.dismiss": "Afvis",
427
+ "common.requestFailed": "Forespørgsel mislykkedes",
428
+ "common.moreOptions": "Flere muligheder",
429
+ "common.learnMore": "Lær mere",
430
+ "common.rename": "Omdøb",
431
+ "common.reset": "Nulstil",
432
+ "common.archive": "Arkivér",
433
+ "common.delete": "Slet",
434
+ "common.close": "Luk",
435
+ "common.edit": "Rediger",
436
+ "common.loadMore": "Indlæs flere",
437
+
438
+ "sidebar.nav.projectsAndSessions": "Projekter og sessioner",
439
+ "sidebar.settings": "Indstillinger",
440
+ "sidebar.help": "Hjælp",
441
+ "sidebar.workspaces.enable": "Aktiver arbejdsområder",
442
+ "sidebar.workspaces.disable": "Deaktiver arbejdsområder",
443
+ "sidebar.gettingStarted.title": "Kom i gang",
444
+ "sidebar.gettingStarted.line1": "JonsOC inkluderer gratis modeller så du kan starte med det samme.",
445
+ "sidebar.gettingStarted.line2": "Forbind enhver udbyder for at bruge modeller, inkl. Claude, GPT, Gemini osv.",
446
+ "sidebar.project.recentSessions": "Seneste sessioner",
447
+ "sidebar.project.viewAllSessions": "Vis alle sessioner",
448
+
449
+ "settings.section.desktop": "Desktop",
450
+ "settings.tab.general": "Generelt",
451
+ "settings.tab.shortcuts": "Genveje",
452
+
453
+ "settings.general.section.appearance": "Udseende",
454
+ "settings.general.section.notifications": "Systemmeddelelser",
455
+ "settings.general.section.sounds": "Lydeffekter",
456
+
457
+ "settings.general.row.language.title": "Sprog",
458
+ "settings.general.row.language.description": "Ændr visningssproget for JonsOC",
459
+ "settings.general.row.appearance.title": "Udseende",
460
+ "settings.general.row.appearance.description": "Tilpas hvordan JonsOC ser ud på din enhed",
461
+ "settings.general.row.theme.title": "Tema",
462
+ "settings.general.row.theme.description": "Tilpas hvordan JonsOC er temabestemt.",
463
+ "settings.general.row.font.title": "Skrifttype",
464
+ "settings.general.row.font.description": "Tilpas mono-skrifttypen brugt i kodeblokke",
465
+
466
+ "settings.general.notifications.agent.title": "Agent",
467
+ "settings.general.notifications.agent.description":
468
+ "Vis systemmeddelelse når agenten er færdig eller kræver opmærksomhed",
469
+ "settings.general.notifications.permissions.title": "Tilladelser",
470
+ "settings.general.notifications.permissions.description": "Vis systemmeddelelse når en tilladelse er påkrævet",
471
+ "settings.general.notifications.errors.title": "Fejl",
472
+ "settings.general.notifications.errors.description": "Vis systemmeddelelse når der opstår en fejl",
473
+
474
+ "settings.general.sounds.agent.title": "Agent",
475
+ "settings.general.sounds.agent.description": "Afspil lyd når agenten er færdig eller kræver opmærksomhed",
476
+ "settings.general.sounds.permissions.title": "Tilladelser",
477
+ "settings.general.sounds.permissions.description": "Afspil lyd når en tilladelse er påkrævet",
478
+ "settings.general.sounds.errors.title": "Fejl",
479
+ "settings.general.sounds.errors.description": "Afspil lyd når der opstår en fejl",
480
+
481
+ "settings.shortcuts.title": "Tastaturgenveje",
482
+ "settings.shortcuts.reset.button": "Nulstil til standard",
483
+ "settings.shortcuts.reset.toast.title": "Genveje nulstillet",
484
+ "settings.shortcuts.reset.toast.description": "Tastaturgenveje er blevet nulstillet til standard.",
485
+ "settings.shortcuts.conflict.title": "Genvej allerede i brug",
486
+ "settings.shortcuts.conflict.description": "{{keybind}} er allerede tildelt til {{titles}}.",
487
+ "settings.shortcuts.unassigned": "Ikke tildelt",
488
+ "settings.shortcuts.pressKeys": "Tryk på taster",
489
+ "settings.shortcuts.search.placeholder": "Søg genveje",
490
+ "settings.shortcuts.search.empty": "Ingen genveje fundet",
491
+
492
+ "settings.shortcuts.group.general": "Generelt",
493
+ "settings.shortcuts.group.session": "Session",
494
+ "settings.shortcuts.group.navigation": "Navigation",
495
+ "settings.shortcuts.group.modelAndAgent": "Model og agent",
496
+ "settings.shortcuts.group.terminal": "Terminal",
497
+ "settings.shortcuts.group.prompt": "Prompt",
498
+
499
+ "settings.providers.title": "Udbydere",
500
+ "settings.providers.description": "Udbyderindstillinger vil kunne konfigureres her.",
501
+ "settings.models.title": "Modeller",
502
+ "settings.models.description": "Modelindstillinger vil kunne konfigureres her.",
503
+ "settings.agents.title": "Agenter",
504
+ "settings.agents.description": "Agentindstillinger vil kunne konfigureres her.",
505
+ "settings.commands.title": "Kommandoer",
506
+ "settings.commands.description": "Kommandoindstillinger vil kunne konfigureres her.",
507
+ "settings.mcp.title": "MCP",
508
+ "settings.mcp.description": "MCP-indstillinger vil kunne konfigureres her.",
509
+
510
+ "settings.permissions.title": "Tilladelser",
511
+ "settings.permissions.description": "Styr hvilke værktøjer serveren kan bruge som standard.",
512
+ "settings.permissions.section.tools": "Værktøjer",
513
+ "settings.permissions.toast.updateFailed.title": "Kunne ikke opdatere tilladelser",
514
+
515
+ "settings.permissions.action.allow": "Tillad",
516
+ "settings.permissions.action.ask": "Spørg",
517
+ "settings.permissions.action.deny": "Afvis",
518
+
519
+ "settings.permissions.tool.read.title": "Læs",
520
+ "settings.permissions.tool.read.description": "Læsning af en fil (matcher filstien)",
521
+ "settings.permissions.tool.edit.title": "Rediger",
522
+ "settings.permissions.tool.edit.description":
523
+ "Ændre filer, herunder redigeringer, skrivninger, patches og multi-redigeringer",
524
+ "settings.permissions.tool.glob.title": "Glob",
525
+ "settings.permissions.tool.glob.description": "Match filer ved hjælp af glob-mønstre",
526
+ "settings.permissions.tool.grep.title": "Grep",
527
+ "settings.permissions.tool.grep.description": "Søg i filindhold ved hjælp af regulære udtryk",
528
+ "settings.permissions.tool.list.title": "Liste",
529
+ "settings.permissions.tool.list.description": "List filer i en mappe",
530
+ "settings.permissions.tool.bash.title": "Bash",
531
+ "settings.permissions.tool.bash.description": "Kør shell-kommandoer",
532
+ "settings.permissions.tool.task.title": "Opgave",
533
+ "settings.permissions.tool.task.description": "Start underagenter",
534
+ "settings.permissions.tool.skill.title": "Færdighed",
535
+ "settings.permissions.tool.skill.description": "Indlæs en færdighed efter navn",
536
+ "settings.permissions.tool.lsp.title": "LSP",
537
+ "settings.permissions.tool.lsp.description": "Kør sprogserverforespørgsler",
538
+ "settings.permissions.tool.todoread.title": "Læs To-do",
539
+ "settings.permissions.tool.todoread.description": "Læs to-do listen",
540
+ "settings.permissions.tool.todowrite.title": "Skriv To-do",
541
+ "settings.permissions.tool.todowrite.description": "Opdater to-do listen",
542
+ "settings.permissions.tool.webfetch.title": "Webhentning",
543
+ "settings.permissions.tool.webfetch.description": "Hent indhold fra en URL",
544
+ "settings.permissions.tool.websearch.title": "Websøgning",
545
+ "settings.permissions.tool.websearch.description": "Søg på nettet",
546
+ "settings.permissions.tool.codesearch.title": "Kodesøgning",
547
+ "settings.permissions.tool.codesearch.description": "Søg kode på nettet",
548
+ "settings.permissions.tool.external_directory.title": "Ekstern mappe",
549
+ "settings.permissions.tool.external_directory.description": "Få adgang til filer uden for projektmappen",
550
+ "settings.permissions.tool.doom_loop.title": "Doom Loop",
551
+ "settings.permissions.tool.doom_loop.description": "Opdag gentagne værktøjskald med identisk input",
552
+
553
+ "session.delete.failed.title": "Kunne ikke slette session",
554
+ "session.delete.title": "Slet session",
555
+ "session.delete.confirm": 'Slet session "{{name}}"?',
556
+ "session.delete.button": "Slet session",
557
+
558
+ "workspace.new": "Nyt arbejdsområde",
559
+ "workspace.type.local": "lokal",
560
+ "workspace.type.sandbox": "sandkasse",
561
+ "workspace.create.failed.title": "Kunne ikke oprette arbejdsområde",
562
+ "workspace.delete.failed.title": "Kunne ikke slette arbejdsområde",
563
+ "workspace.resetting.title": "Nulstiller arbejdsområde",
564
+ "workspace.resetting.description": "Dette kan tage et minut.",
565
+ "workspace.reset.failed.title": "Kunne ikke nulstille arbejdsområde",
566
+ "workspace.reset.success.title": "Arbejdsområde nulstillet",
567
+ "workspace.reset.success.description": "Arbejdsområdet matcher nu hovedgrenen.",
568
+ "workspace.status.checking": "Tjekker for uflettede ændringer...",
569
+ "workspace.status.error": "Kunne ikke bekræfte git-status.",
570
+ "workspace.status.clean": "Ingen uflettede ændringer fundet.",
571
+ "workspace.status.dirty": "Uflettede ændringer fundet i dette arbejdsområde.",
572
+ "workspace.delete.title": "Slet arbejdsområde",
573
+ "workspace.delete.confirm": 'Slet arbejdsområde "{{name}}"?',
574
+ "workspace.delete.button": "Slet arbejdsområde",
575
+ "workspace.reset.title": "Nulstil arbejdsområde",
576
+ "workspace.reset.confirm": 'Nulstil arbejdsområde "{{name}}"?',
577
+ "workspace.reset.button": "Nulstil arbejdsområde",
578
+ "workspace.reset.archived.none": "Ingen aktive sessioner vil blive arkiveret.",
579
+ "workspace.reset.archived.one": "1 session vil blive arkiveret.",
580
+ "workspace.reset.archived.many": "{{count}} sessioner vil blive arkiveret.",
581
+ "workspace.reset.note": "Dette vil nulstille arbejdsområdet til at matche hovedgrenen.",
582
+ }