@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/no.ts ADDED
@@ -0,0 +1,602 @@
1
+ import { dict as en } from "./en"
2
+ type Keys = keyof typeof en
3
+
4
+ export const dict = {
5
+ "command.category.suggested": "Foreslått",
6
+ "command.category.view": "Visning",
7
+ "command.category.project": "Prosjekt",
8
+ "command.category.provider": "Leverandør",
9
+ "command.category.server": "Server",
10
+ "command.category.session": "Sesjon",
11
+ "command.category.theme": "Tema",
12
+ "command.category.language": "Språk",
13
+ "command.category.file": "Fil",
14
+ "command.category.terminal": "Terminal",
15
+ "command.category.model": "Modell",
16
+ "command.category.mcp": "MCP",
17
+ "command.category.agent": "Agent",
18
+ "command.category.permissions": "Tillatelser",
19
+ "command.category.workspace": "Arbeidsområde",
20
+ "command.category.settings": "Innstillinger",
21
+
22
+ "theme.scheme.system": "System",
23
+ "theme.scheme.light": "Lys",
24
+ "theme.scheme.dark": "Mørk",
25
+
26
+ "command.sidebar.toggle": "Veksle sidepanel",
27
+ "command.project.open": "Åpne prosjekt",
28
+ "command.provider.connect": "Koble til leverandør",
29
+ "command.server.switch": "Bytt server",
30
+ "command.settings.open": "Åpne innstillinger",
31
+ "command.session.previous": "Forrige sesjon",
32
+ "command.session.next": "Neste sesjon",
33
+ "command.session.archive": "Arkiver sesjon",
34
+
35
+ "command.palette": "Kommandopalett",
36
+
37
+ "command.theme.cycle": "Bytt tema",
38
+ "command.theme.set": "Bruk tema: {{theme}}",
39
+ "command.theme.scheme.cycle": "Bytt fargevalg",
40
+ "command.theme.scheme.set": "Bruk fargevalg: {{scheme}}",
41
+
42
+ "command.language.cycle": "Bytt språk",
43
+ "command.language.set": "Bruk språk: {{language}}",
44
+
45
+ "command.session.new": "Ny sesjon",
46
+ "command.file.open": "Åpne fil",
47
+ "command.file.open.description": "Søk i filer og kommandoer",
48
+ "command.terminal.toggle": "Veksle terminal",
49
+ "command.review.toggle": "Veksle gjennomgang",
50
+ "command.terminal.new": "Ny terminal",
51
+ "command.terminal.new.description": "Opprett en ny terminalfane",
52
+ "command.steps.toggle": "Veksle trinn",
53
+ "command.steps.toggle.description": "Vis eller skjul trinn for gjeldende melding",
54
+ "command.message.previous": "Forrige melding",
55
+ "command.message.previous.description": "Gå til forrige brukermelding",
56
+ "command.message.next": "Neste melding",
57
+ "command.message.next.description": "Gå til neste brukermelding",
58
+ "command.model.choose": "Velg modell",
59
+ "command.model.choose.description": "Velg en annen modell",
60
+ "command.mcp.toggle": "Veksle MCP-er",
61
+ "command.mcp.toggle.description": "Veksle MCP-er",
62
+ "command.agent.cycle": "Bytt agent",
63
+ "command.agent.cycle.description": "Bytt til neste agent",
64
+ "command.agent.cycle.reverse": "Bytt agent bakover",
65
+ "command.agent.cycle.reverse.description": "Bytt til forrige agent",
66
+ "command.model.variant.cycle": "Bytt tenkeinnsats",
67
+ "command.model.variant.cycle.description": "Bytt til neste innsatsnivå",
68
+ "command.permissions.autoaccept.enable": "Godta endringer automatisk",
69
+ "command.permissions.autoaccept.disable": "Slutt å godta endringer automatisk",
70
+ "command.session.undo": "Angre",
71
+ "command.session.undo.description": "Angre siste melding",
72
+ "command.session.redo": "Gjør om",
73
+ "command.session.redo.description": "Gjør om siste angrede melding",
74
+ "command.session.compact": "Komprimer sesjon",
75
+ "command.session.compact.description": "Oppsummer sesjonen for å redusere kontekststørrelsen",
76
+ "command.session.fork": "Forgren fra melding",
77
+ "command.session.fork.description": "Opprett en ny sesjon fra en tidligere melding",
78
+ "command.session.share": "Del sesjon",
79
+ "command.session.share.description": "Del denne sesjonen og kopier URL-en til utklippstavlen",
80
+ "command.session.unshare": "Slutt å dele sesjon",
81
+ "command.session.unshare.description": "Slutt å dele denne sesjonen",
82
+
83
+ "palette.search.placeholder": "Søk i filer og kommandoer",
84
+ "palette.empty": "Ingen resultater funnet",
85
+ "palette.group.commands": "Kommandoer",
86
+ "palette.group.files": "Filer",
87
+
88
+ "dialog.provider.search.placeholder": "Søk etter leverandører",
89
+ "dialog.provider.empty": "Ingen leverandører funnet",
90
+ "dialog.provider.group.popular": "Populære",
91
+ "dialog.provider.group.other": "Andre",
92
+ "dialog.provider.tag.recommended": "Anbefalt",
93
+ "dialog.provider.anthropic.note": "Koble til med Claude Pro/Max eller API-nøkkel",
94
+ "dialog.provider.openai.note": "Koble til med ChatGPT Pro/Plus eller API-nøkkel",
95
+ "dialog.provider.copilot.note": "Koble til med Copilot eller API-nøkkel",
96
+
97
+ "dialog.model.select.title": "Velg modell",
98
+ "dialog.model.search.placeholder": "Søk etter modeller",
99
+ "dialog.model.empty": "Ingen modellresultater",
100
+ "dialog.model.manage": "Administrer modeller",
101
+ "dialog.model.manage.description": "Tilpass hvilke modeller som vises i modellvelgeren.",
102
+
103
+ "dialog.model.unpaid.freeModels.title": "Gratis modeller levert av JonsOC",
104
+ "dialog.model.unpaid.addMore.title": "Legg til flere modeller fra populære leverandører",
105
+
106
+ "dialog.provider.viewAll": "Vis alle leverandører",
107
+
108
+ "provider.connect.title": "Koble til {{provider}}",
109
+ "provider.connect.title.anthropicProMax": "Logg inn med Claude Pro/Max",
110
+ "provider.connect.selectMethod": "Velg innloggingsmetode for {{provider}}.",
111
+ "provider.connect.method.apiKey": "API-nøkkel",
112
+ "provider.connect.status.inProgress": "Autorisering pågår...",
113
+ "provider.connect.status.waiting": "Venter på autorisering...",
114
+ "provider.connect.status.failed": "Autorisering mislyktes: {{error}}",
115
+ "provider.connect.apiKey.description":
116
+ "Skriv inn din {{provider}} API-nøkkel for å koble til kontoen din og bruke {{provider}}-modeller i JonsOC.",
117
+ "provider.connect.apiKey.label": "{{provider}} API-nøkkel",
118
+ "provider.connect.apiKey.placeholder": "API-nøkkel",
119
+ "provider.connect.apiKey.required": "API-nøkkel er påkrevd",
120
+ "provider.connect.jonsocZen.line1":
121
+ "JonsOC Zen gir deg tilgang til et utvalg av pålitelige optimaliserte modeller for kodeagenter.",
122
+ "provider.connect.jonsocZen.line2":
123
+ "Med én enkelt API-nøkkel får du tilgang til modeller som Claude, GPT, Gemini, GLM og flere.",
124
+ "provider.connect.jonsocZen.visit.prefix": "Besøk ",
125
+ "provider.connect.jonsocZen.visit.link": "jonsoc.com/zen",
126
+ "provider.connect.jonsocZen.visit.suffix": " for å hente API-nøkkelen din.",
127
+ "provider.connect.oauth.code.visit.prefix": "Besøk ",
128
+ "provider.connect.oauth.code.visit.link": "denne lenken",
129
+ "provider.connect.oauth.code.visit.suffix":
130
+ " for å hente autorisasjonskoden din for å koble til kontoen din og bruke {{provider}}-modeller i JonsOC.",
131
+ "provider.connect.oauth.code.label": "{{method}} autorisasjonskode",
132
+ "provider.connect.oauth.code.placeholder": "Autorisasjonskode",
133
+ "provider.connect.oauth.code.required": "Autorisasjonskode er påkrevd",
134
+ "provider.connect.oauth.code.invalid": "Ugyldig autorisasjonskode",
135
+ "provider.connect.oauth.auto.visit.prefix": "Besøk ",
136
+ "provider.connect.oauth.auto.visit.link": "denne lenken",
137
+ "provider.connect.oauth.auto.visit.suffix":
138
+ " og skriv inn koden nedenfor for å koble til kontoen din og bruke {{provider}}-modeller i JonsOC.",
139
+ "provider.connect.oauth.auto.confirmationCode": "Bekreftelseskode",
140
+ "provider.connect.toast.connected.title": "{{provider}} tilkoblet",
141
+ "provider.connect.toast.connected.description": "{{provider}}-modeller er nå tilgjengelige.",
142
+
143
+ "model.tag.free": "Gratis",
144
+ "model.tag.latest": "Nyeste",
145
+ "model.provider.anthropic": "Anthropic",
146
+ "model.provider.openai": "OpenAI",
147
+ "model.provider.google": "Google",
148
+ "model.provider.xai": "xAI",
149
+ "model.provider.meta": "Meta",
150
+ "model.input.text": "tekst",
151
+ "model.input.image": "bilde",
152
+ "model.input.audio": "lyd",
153
+ "model.input.video": "video",
154
+ "model.input.pdf": "pdf",
155
+ "model.tooltip.allows": "Tillater: {{inputs}}",
156
+ "model.tooltip.reasoning.allowed": "Tillater resonnering",
157
+ "model.tooltip.reasoning.none": "Ingen resonnering",
158
+ "model.tooltip.context": "Kontekstgrense {{limit}}",
159
+
160
+ "common.search.placeholder": "Søk",
161
+ "common.goBack": "Gå tilbake",
162
+ "common.loading": "Laster",
163
+ "common.loading.ellipsis": "...",
164
+ "common.cancel": "Avbryt",
165
+ "common.submit": "Send inn",
166
+ "common.save": "Lagre",
167
+ "common.saving": "Lagrer...",
168
+ "common.default": "Standard",
169
+ "common.attachment": "vedlegg",
170
+
171
+ "prompt.placeholder.shell": "Skriv inn shell-kommando...",
172
+ "prompt.placeholder.normal": 'Spør om hva som helst... "{{example}}"',
173
+ "prompt.mode.shell": "Shell",
174
+ "prompt.mode.shell.exit": "ESC for å avslutte",
175
+
176
+ "prompt.example.1": "Fiks en TODO i kodebasen",
177
+ "prompt.example.2": "Hva er teknologistabelen i dette prosjektet?",
178
+ "prompt.example.3": "Fiks ødelagte tester",
179
+ "prompt.example.4": "Forklar hvordan autentisering fungerer",
180
+ "prompt.example.5": "Finn og fiks sikkerhetssårbarheter",
181
+ "prompt.example.6": "Legg til enhetstester for brukerservicen",
182
+ "prompt.example.7": "Refaktorer denne funksjonen for bedre lesbarhet",
183
+ "prompt.example.8": "Hva betyr denne feilen?",
184
+ "prompt.example.9": "Hjelp meg med å feilsøke dette problemet",
185
+ "prompt.example.10": "Generer API-dokumentasjon",
186
+ "prompt.example.11": "Optimaliser databasespørringer",
187
+ "prompt.example.12": "Legg til inputvalidering",
188
+ "prompt.example.13": "Lag en ny komponent for...",
189
+ "prompt.example.14": "Hvordan deployer jeg dette prosjektet?",
190
+ "prompt.example.15": "Gjennomgå koden min for beste praksis",
191
+ "prompt.example.16": "Legg til feilhåndtering i denne funksjonen",
192
+ "prompt.example.17": "Forklar dette regex-mønsteret",
193
+ "prompt.example.18": "Konverter dette til TypeScript",
194
+ "prompt.example.19": "Legg til logging i hele kodebasen",
195
+ "prompt.example.20": "Hvilke avhengigheter er utdaterte?",
196
+ "prompt.example.21": "Hjelp meg med å skrive et migreringsskript",
197
+ "prompt.example.22": "Implementer caching for dette endepunktet",
198
+ "prompt.example.23": "Legg til paginering i denne listen",
199
+ "prompt.example.24": "Lag en CLI-kommando for...",
200
+ "prompt.example.25": "Hvordan fungerer miljøvariabler her?",
201
+
202
+ "prompt.popover.emptyResults": "Ingen matchende resultater",
203
+ "prompt.popover.emptyCommands": "Ingen matchende kommandoer",
204
+ "prompt.dropzone.label": "Slipp bilder eller PDF-er her",
205
+ "prompt.slash.badge.custom": "egendefinert",
206
+ "prompt.context.active": "aktiv",
207
+ "prompt.context.includeActiveFile": "Inkluder aktiv fil",
208
+ "prompt.context.removeActiveFile": "Fjern aktiv fil fra kontekst",
209
+ "prompt.context.removeFile": "Fjern fil fra kontekst",
210
+ "prompt.action.attachFile": "Legg ved fil",
211
+ "prompt.attachment.remove": "Fjern vedlegg",
212
+ "prompt.action.send": "Send",
213
+ "prompt.action.stop": "Stopp",
214
+
215
+ "prompt.toast.pasteUnsupported.title": "Liming ikke støttet",
216
+ "prompt.toast.pasteUnsupported.description": "Kun bilder eller PDF-er kan limes inn her.",
217
+ "prompt.toast.modelAgentRequired.title": "Velg en agent og modell",
218
+ "prompt.toast.modelAgentRequired.description": "Velg en agent og modell før du sender en forespørsel.",
219
+ "prompt.toast.worktreeCreateFailed.title": "Kunne ikke opprette worktree",
220
+ "prompt.toast.sessionCreateFailed.title": "Kunne ikke opprette sesjon",
221
+ "prompt.toast.shellSendFailed.title": "Kunne ikke sende shell-kommando",
222
+ "prompt.toast.commandSendFailed.title": "Kunne ikke sende kommando",
223
+ "prompt.toast.promptSendFailed.title": "Kunne ikke sende forespørsel",
224
+
225
+ "dialog.mcp.title": "MCP-er",
226
+ "dialog.mcp.description": "{{enabled}} av {{total}} aktivert",
227
+ "dialog.mcp.empty": "Ingen MCP-er konfigurert",
228
+
229
+ "mcp.status.connected": "tilkoblet",
230
+ "mcp.status.failed": "mislyktes",
231
+ "mcp.status.needs_auth": "trenger autentisering",
232
+ "mcp.status.disabled": "deaktivert",
233
+
234
+ "dialog.fork.empty": "Ingen meldinger å forgrene fra",
235
+
236
+ "dialog.directory.search.placeholder": "Søk etter mapper",
237
+ "dialog.directory.empty": "Ingen mapper funnet",
238
+
239
+ "dialog.server.title": "Servere",
240
+ "dialog.server.description": "Bytt hvilken JonsOC-server denne appen kobler til.",
241
+ "dialog.server.search.placeholder": "Søk etter servere",
242
+ "dialog.server.empty": "Ingen servere ennå",
243
+ "dialog.server.add.title": "Legg til en server",
244
+ "dialog.server.add.url": "Server-URL",
245
+ "dialog.server.add.placeholder": "http://localhost:4096",
246
+ "dialog.server.add.error": "Kunne ikke koble til server",
247
+ "dialog.server.add.checking": "Sjekker...",
248
+ "dialog.server.add.button": "Legg til",
249
+ "dialog.server.default.title": "Standardserver",
250
+ "dialog.server.default.description":
251
+ "Koble til denne serveren ved oppstart i stedet for å starte en lokal server. Krever omstart.",
252
+ "dialog.server.default.none": "Ingen server valgt",
253
+ "dialog.server.default.set": "Sett gjeldende server som standard",
254
+ "dialog.server.default.clear": "Tøm",
255
+ "dialog.server.action.remove": "Fjern server",
256
+
257
+ "dialog.project.edit.title": "Rediger prosjekt",
258
+ "dialog.project.edit.name": "Navn",
259
+ "dialog.project.edit.icon": "Ikon",
260
+ "dialog.project.edit.icon.alt": "Prosjektikon",
261
+ "dialog.project.edit.icon.hint": "Klikk eller dra et bilde",
262
+ "dialog.project.edit.icon.recommended": "Anbefalt: 128x128px",
263
+ "dialog.project.edit.color": "Farge",
264
+ "dialog.project.edit.color.select": "Velg fargen {{color}}",
265
+
266
+ "context.breakdown.title": "Kontekstfordeling",
267
+ "context.breakdown.note": 'Omtrentlig fordeling av input-tokens. "Annet" inkluderer verktøydefinisjoner og overhead.',
268
+ "context.breakdown.system": "System",
269
+ "context.breakdown.user": "Bruker",
270
+ "context.breakdown.assistant": "Assistent",
271
+ "context.breakdown.tool": "Verktøykall",
272
+ "context.breakdown.other": "Annet",
273
+
274
+ "context.systemPrompt.title": "Systemprompt",
275
+ "context.rawMessages.title": "Rå meldinger",
276
+
277
+ "context.stats.session": "Sesjon",
278
+ "context.stats.messages": "Meldinger",
279
+ "context.stats.provider": "Leverandør",
280
+ "context.stats.model": "Modell",
281
+ "context.stats.limit": "Kontekstgrense",
282
+ "context.stats.totalTokens": "Totalt antall tokens",
283
+ "context.stats.usage": "Forbruk",
284
+ "context.stats.inputTokens": "Input-tokens",
285
+ "context.stats.outputTokens": "Output-tokens",
286
+ "context.stats.reasoningTokens": "Resonnerings-tokens",
287
+ "context.stats.cacheTokens": "Cache-tokens (les/skriv)",
288
+ "context.stats.userMessages": "Brukermeldinger",
289
+ "context.stats.assistantMessages": "Assistentmeldinger",
290
+ "context.stats.totalCost": "Total kostnad",
291
+ "context.stats.sessionCreated": "Sesjon opprettet",
292
+ "context.stats.lastActivity": "Siste aktivitet",
293
+
294
+ "context.usage.tokens": "Tokens",
295
+ "context.usage.usage": "Forbruk",
296
+ "context.usage.cost": "Kostnad",
297
+ "context.usage.clickToView": "Klikk for å se kontekst",
298
+ "context.usage.view": "Se kontekstforbruk",
299
+
300
+ "language.en": "Engelsk",
301
+ "language.zh": "Kinesisk (forenklet)",
302
+ "language.zht": "Kinesisk (tradisjonell)",
303
+ "language.ko": "Koreansk",
304
+ "language.de": "Tysk",
305
+ "language.es": "Spansk",
306
+ "language.fr": "Fransk",
307
+ "language.ja": "Japansk",
308
+ "language.da": "Dansk",
309
+ "language.ru": "Russisk",
310
+ "language.pl": "Polsk",
311
+ "language.ar": "Arabisk",
312
+ "language.no": "Norsk",
313
+ "language.br": "Portugisisk (Brasil)",
314
+
315
+ "toast.language.title": "Språk",
316
+ "toast.language.description": "Byttet til {{language}}",
317
+
318
+ "toast.theme.title": "Tema byttet",
319
+ "toast.scheme.title": "Fargevalg",
320
+
321
+ "toast.permissions.autoaccept.on.title": "Godtar endringer automatisk",
322
+ "toast.permissions.autoaccept.on.description": "Redigerings- og skrivetillatelser vil bli godkjent automatisk",
323
+ "toast.permissions.autoaccept.off.title": "Sluttet å godta endringer automatisk",
324
+ "toast.permissions.autoaccept.off.description": "Redigerings- og skrivetillatelser vil kreve godkjenning",
325
+
326
+ "toast.model.none.title": "Ingen modell valgt",
327
+ "toast.model.none.description": "Koble til en leverandør for å oppsummere denne sesjonen",
328
+
329
+ "toast.file.loadFailed.title": "Kunne ikke laste fil",
330
+
331
+ "toast.session.share.copyFailed.title": "Kunne ikke kopiere URL til utklippstavlen",
332
+ "toast.session.share.success.title": "Sesjon delt",
333
+ "toast.session.share.success.description": "Delings-URL kopiert til utklippstavlen!",
334
+ "toast.session.share.failed.title": "Kunne ikke dele sesjon",
335
+ "toast.session.share.failed.description": "Det oppstod en feil under deling av sesjonen",
336
+
337
+ "toast.session.unshare.success.title": "Deling av sesjon stoppet",
338
+ "toast.session.unshare.success.description": "Sesjonen deles ikke lenger!",
339
+ "toast.session.unshare.failed.title": "Kunne ikke stoppe deling av sesjon",
340
+ "toast.session.unshare.failed.description": "Det oppstod en feil da delingen av sesjonen skulle stoppes",
341
+
342
+ "toast.session.listFailed.title": "Kunne ikke laste sesjoner for {{project}}",
343
+
344
+ "toast.update.title": "Oppdatering tilgjengelig",
345
+ "toast.update.description": "En ny versjon av JonsOC ({{version}}) er nå tilgjengelig for installasjon.",
346
+ "toast.update.action.installRestart": "Installer og start på nytt",
347
+ "toast.update.action.notYet": "Ikke nå",
348
+
349
+ "error.page.title": "Noe gikk galt",
350
+ "error.page.description": "Det oppstod en feil under lasting av applikasjonen.",
351
+ "error.page.details.label": "Feildetaljer",
352
+ "error.page.action.restart": "Start på nytt",
353
+ "error.page.action.checking": "Sjekker...",
354
+ "error.page.action.checkUpdates": "Se etter oppdateringer",
355
+ "error.page.action.updateTo": "Oppdater til {{version}}",
356
+ "error.page.report.prefix": "Vennligst rapporter denne feilen til JonsOC-teamet",
357
+ "error.page.report.discord": "på Discord",
358
+ "error.page.version": "Versjon: {{version}}",
359
+
360
+ "error.dev.rootNotFound":
361
+ "Rotelement ikke funnet. Glemte du å legge det til i index.html? Eller kanskje id-attributten er feilstavet?",
362
+
363
+ "error.globalSync.connectFailed": "Kunne ikke koble til server. Kjører det en server på `{{url}}`?",
364
+
365
+ "error.chain.unknown": "Ukjent feil",
366
+ "error.chain.causedBy": "Forårsaket av:",
367
+ "error.chain.apiError": "API-feil",
368
+ "error.chain.status": "Status: {{status}}",
369
+ "error.chain.retryable": "Kan prøves på nytt: {{retryable}}",
370
+ "error.chain.responseBody": "Responsinnhold:\n{{body}}",
371
+ "error.chain.didYouMean": "Mente du: {{suggestions}}",
372
+ "error.chain.modelNotFound": "Modell ikke funnet: {{provider}}/{{model}}",
373
+ "error.chain.checkConfig": "Sjekk leverandør-/modellnavnene i konfigurasjonen din (jonsoc.json)",
374
+ "error.chain.mcpFailed": 'MCP-server "{{name}}" mislyktes. Merk at JonsOC ikke støtter MCP-autentisering ennå.',
375
+ "error.chain.providerAuthFailed": "Leverandørautentisering mislyktes ({{provider}}): {{message}}",
376
+ "error.chain.providerInitFailed":
377
+ 'Kunne ikke initialisere leverandør "{{provider}}". Sjekk legitimasjon og konfigurasjon.',
378
+ "error.chain.configJsonInvalid": "Konfigurasjonsfilen på {{path}} er ikke gyldig JSON(C)",
379
+ "error.chain.configJsonInvalidWithMessage": "Konfigurasjonsfilen på {{path}} er ikke gyldig JSON(C): {{message}}",
380
+ "error.chain.configDirectoryTypo":
381
+ 'Mappen "{{dir}}" i {{path}} er ikke gyldig. Gi mappen nytt navn til "{{suggestion}}" eller fjern den. Dette er en vanlig skrivefeil.',
382
+ "error.chain.configFrontmatterError": "Kunne ikke analysere frontmatter i {{path}}:\n{{message}}",
383
+ "error.chain.configInvalid": "Konfigurasjonsfilen på {{path}} er ugyldig",
384
+ "error.chain.configInvalidWithMessage": "Konfigurasjonsfilen på {{path}} er ugyldig: {{message}}",
385
+
386
+ "notification.permission.title": "Tillatelse påkrevd",
387
+ "notification.permission.description": "{{sessionTitle}} i {{projectName}} trenger tillatelse",
388
+ "notification.question.title": "Spørsmål",
389
+ "notification.question.description": "{{sessionTitle}} i {{projectName}} har et spørsmål",
390
+ "notification.action.goToSession": "Gå til sesjon",
391
+
392
+ "notification.session.responseReady.title": "Svar klart",
393
+ "notification.session.error.title": "Sesjonsfeil",
394
+ "notification.session.error.fallbackDescription": "Det oppstod en feil",
395
+
396
+ "home.recentProjects": "Nylige prosjekter",
397
+ "home.empty.title": "Ingen nylige prosjekter",
398
+ "home.empty.description": "Kom i gang ved å åpne et lokalt prosjekt",
399
+
400
+ "session.tab.session": "Sesjon",
401
+ "session.tab.review": "Gjennomgang",
402
+ "session.tab.context": "Kontekst",
403
+ "session.panel.reviewAndFiles": "Gjennomgang og filer",
404
+ "session.review.filesChanged": "{{count}} filer endret",
405
+ "session.review.loadingChanges": "Laster endringer...",
406
+ "session.review.empty": "Ingen endringer i denne sesjonen ennå",
407
+ "session.messages.renderEarlier": "Vis tidligere meldinger",
408
+ "session.messages.loadingEarlier": "Laster inn tidligere meldinger...",
409
+ "session.messages.loadEarlier": "Last inn tidligere meldinger",
410
+ "session.messages.loading": "Laster meldinger...",
411
+ "session.messages.jumpToLatest": "Hopp til nyeste",
412
+
413
+ "session.context.addToContext": "Legg til {{selection}} i kontekst",
414
+
415
+ "session.new.worktree.main": "Hovedgren",
416
+ "session.new.worktree.mainWithBranch": "Hovedgren ({{branch}})",
417
+ "session.new.worktree.create": "Opprett nytt worktree",
418
+ "session.new.lastModified": "Sist endret",
419
+
420
+ "session.header.search.placeholder": "Søk i {{project}}",
421
+ "session.header.searchFiles": "Søk etter filer",
422
+
423
+ "session.share.popover.title": "Publiser på nett",
424
+ "session.share.popover.description.shared":
425
+ "Denne sesjonen er offentlig på nettet. Den er tilgjengelig for alle med lenken.",
426
+ "session.share.popover.description.unshared":
427
+ "Del sesjonen offentlig på nettet. Den vil være tilgjengelig for alle med lenken.",
428
+ "session.share.action.share": "Del",
429
+ "session.share.action.publish": "Publiser",
430
+ "session.share.action.publishing": "Publiserer...",
431
+ "session.share.action.unpublish": "Avpubliser",
432
+ "session.share.action.unpublishing": "Avpubliserer...",
433
+ "session.share.action.view": "Vis",
434
+ "session.share.copy.copied": "Kopiert",
435
+ "session.share.copy.copyLink": "Kopier lenke",
436
+
437
+ "lsp.tooltip.none": "Ingen LSP-servere",
438
+ "lsp.label.connected": "{{count}} LSP",
439
+
440
+ "prompt.loading": "Laster prompt...",
441
+ "terminal.loading": "Laster terminal...",
442
+ "terminal.title": "Terminal",
443
+ "terminal.title.numbered": "Terminal {{number}}",
444
+ "terminal.close": "Lukk terminal",
445
+ "terminal.connectionLost.title": "Tilkobling mistet",
446
+ "terminal.connectionLost.description":
447
+ "Terminalforbindelsen ble avbrutt. Dette kan skje når serveren starter på nytt.",
448
+
449
+ "common.closeTab": "Lukk fane",
450
+ "common.dismiss": "Avvis",
451
+ "common.requestFailed": "Forespørsel mislyktes",
452
+ "common.moreOptions": "Flere alternativer",
453
+ "common.learnMore": "Lær mer",
454
+ "common.rename": "Gi nytt navn",
455
+ "common.reset": "Tilbakestill",
456
+ "common.delete": "Slett",
457
+ "common.close": "Lukk",
458
+ "common.edit": "Rediger",
459
+ "common.loadMore": "Last flere",
460
+ "common.key.esc": "ESC",
461
+
462
+ "sidebar.menu.toggle": "Veksle meny",
463
+ "sidebar.nav.projectsAndSessions": "Prosjekter og sesjoner",
464
+ "sidebar.settings": "Innstillinger",
465
+ "sidebar.help": "Hjelp",
466
+ "sidebar.workspaces.enable": "Aktiver arbeidsområder",
467
+ "sidebar.workspaces.disable": "Deaktiver arbeidsområder",
468
+ "sidebar.gettingStarted.title": "Kom i gang",
469
+ "sidebar.gettingStarted.line1": "JonsOC inkluderer gratis modeller så du kan starte umiddelbart.",
470
+ "sidebar.gettingStarted.line2": "Koble til en leverandør for å bruke modeller, inkl. Claude, GPT, Gemini osv.",
471
+ "sidebar.project.recentSessions": "Nylige sesjoner",
472
+ "sidebar.project.viewAllSessions": "Vis alle sesjoner",
473
+
474
+ "settings.section.desktop": "Skrivebord",
475
+ "settings.tab.general": "Generelt",
476
+ "settings.tab.shortcuts": "Snarveier",
477
+
478
+ "settings.general.section.appearance": "Utseende",
479
+ "settings.general.section.notifications": "Systemvarsler",
480
+ "settings.general.section.sounds": "Lydeffekter",
481
+
482
+ "settings.general.row.language.title": "Språk",
483
+ "settings.general.row.language.description": "Endre visningsspråket for JonsOC",
484
+ "settings.general.row.appearance.title": "Utseende",
485
+ "settings.general.row.appearance.description": "Tilpass hvordan JonsOC ser ut på enheten din",
486
+ "settings.general.row.theme.title": "Tema",
487
+ "settings.general.row.theme.description": "Tilpass hvordan JonsOC er tematisert.",
488
+ "settings.general.row.font.title": "Skrift",
489
+ "settings.general.row.font.description": "Tilpass mono-skriften som brukes i kodeblokker",
490
+
491
+ "settings.general.notifications.agent.title": "Agent",
492
+ "settings.general.notifications.agent.description":
493
+ "Vis systemvarsel når agenten er ferdig eller trenger oppmerksomhet",
494
+ "settings.general.notifications.permissions.title": "Tillatelser",
495
+ "settings.general.notifications.permissions.description": "Vis systemvarsel når en tillatelse er påkrevd",
496
+ "settings.general.notifications.errors.title": "Feil",
497
+ "settings.general.notifications.errors.description": "Vis systemvarsel når det oppstår en feil",
498
+
499
+ "settings.general.sounds.agent.title": "Agent",
500
+ "settings.general.sounds.agent.description": "Spill av lyd når agenten er ferdig eller trenger oppmerksomhet",
501
+ "settings.general.sounds.permissions.title": "Tillatelser",
502
+ "settings.general.sounds.permissions.description": "Spill av lyd når en tillatelse er påkrevd",
503
+ "settings.general.sounds.errors.title": "Feil",
504
+ "settings.general.sounds.errors.description": "Spill av lyd når det oppstår en feil",
505
+
506
+ "settings.shortcuts.title": "Tastatursnarveier",
507
+ "settings.shortcuts.reset.button": "Tilbakestill til standard",
508
+ "settings.shortcuts.reset.toast.title": "Snarveier tilbakestilt",
509
+ "settings.shortcuts.reset.toast.description": "Tastatursnarveier er tilbakestilt til standard.",
510
+ "settings.shortcuts.conflict.title": "Snarvei allerede i bruk",
511
+ "settings.shortcuts.conflict.description": "{{keybind}} er allerede tilordnet til {{titles}}.",
512
+ "settings.shortcuts.unassigned": "Ikke tilordnet",
513
+ "settings.shortcuts.pressKeys": "Trykk taster",
514
+ "settings.shortcuts.search.placeholder": "Søk etter snarveier",
515
+ "settings.shortcuts.search.empty": "Ingen snarveier funnet",
516
+
517
+ "settings.shortcuts.group.general": "Generelt",
518
+ "settings.shortcuts.group.session": "Sesjon",
519
+ "settings.shortcuts.group.navigation": "Navigasjon",
520
+ "settings.shortcuts.group.modelAndAgent": "Modell og agent",
521
+ "settings.shortcuts.group.terminal": "Terminal",
522
+ "settings.shortcuts.group.prompt": "Prompt",
523
+
524
+ "settings.providers.title": "Leverandører",
525
+ "settings.providers.description": "Leverandørinnstillinger vil kunne konfigureres her.",
526
+ "settings.models.title": "Modeller",
527
+ "settings.models.description": "Modellinnstillinger vil kunne konfigureres her.",
528
+ "settings.agents.title": "Agenter",
529
+ "settings.agents.description": "Agentinnstillinger vil kunne konfigureres her.",
530
+ "settings.commands.title": "Kommandoer",
531
+ "settings.commands.description": "Kommandoinnstillinger vil kunne konfigureres her.",
532
+ "settings.mcp.title": "MCP",
533
+ "settings.mcp.description": "MCP-innstillinger vil kunne konfigureres her.",
534
+
535
+ "settings.permissions.title": "Tillatelser",
536
+ "settings.permissions.description": "Kontroller hvilke verktøy serveren kan bruke som standard.",
537
+ "settings.permissions.section.tools": "Verktøy",
538
+ "settings.permissions.toast.updateFailed.title": "Kunne ikke oppdatere tillatelser",
539
+
540
+ "settings.permissions.action.allow": "Tillat",
541
+ "settings.permissions.action.ask": "Spør",
542
+ "settings.permissions.action.deny": "Avslå",
543
+
544
+ "settings.permissions.tool.read.title": "Les",
545
+ "settings.permissions.tool.read.description": "Lesing av en fil (matcher filbanen)",
546
+ "settings.permissions.tool.edit.title": "Rediger",
547
+ "settings.permissions.tool.edit.description":
548
+ "Endre filer, inkludert redigeringer, skriving, patcher og multi-redigeringer",
549
+ "settings.permissions.tool.glob.title": "Glob",
550
+ "settings.permissions.tool.glob.description": "Match filer ved hjelp av glob-mønstre",
551
+ "settings.permissions.tool.grep.title": "Grep",
552
+ "settings.permissions.tool.grep.description": "Søk i filinnhold ved hjelp av regulære uttrykk",
553
+ "settings.permissions.tool.list.title": "Liste",
554
+ "settings.permissions.tool.list.description": "List filer i en mappe",
555
+ "settings.permissions.tool.bash.title": "Bash",
556
+ "settings.permissions.tool.bash.description": "Kjør shell-kommandoer",
557
+ "settings.permissions.tool.task.title": "Oppgave",
558
+ "settings.permissions.tool.task.description": "Start underagenter",
559
+ "settings.permissions.tool.skill.title": "Ferdighet",
560
+ "settings.permissions.tool.skill.description": "Last en ferdighet etter navn",
561
+ "settings.permissions.tool.lsp.title": "LSP",
562
+ "settings.permissions.tool.lsp.description": "Kjør språkserverforespørsler",
563
+ "settings.permissions.tool.todoread.title": "Les gjøremål",
564
+ "settings.permissions.tool.todoread.description": "Les gjøremålslisten",
565
+ "settings.permissions.tool.todowrite.title": "Skriv gjøremål",
566
+ "settings.permissions.tool.todowrite.description": "Oppdater gjøremålslisten",
567
+ "settings.permissions.tool.webfetch.title": "Webhenting",
568
+ "settings.permissions.tool.webfetch.description": "Hent innhold fra en URL",
569
+ "settings.permissions.tool.websearch.title": "Websøk",
570
+ "settings.permissions.tool.websearch.description": "Søk på nettet",
571
+ "settings.permissions.tool.codesearch.title": "Kodesøk",
572
+ "settings.permissions.tool.codesearch.description": "Søk etter kode på nettet",
573
+ "settings.permissions.tool.external_directory.title": "Ekstern mappe",
574
+ "settings.permissions.tool.external_directory.description": "Få tilgang til filer utenfor prosjektmappen",
575
+ "settings.permissions.tool.doom_loop.title": "Doom Loop",
576
+ "settings.permissions.tool.doom_loop.description": "Oppdager gjentatte verktøykall med identisk input",
577
+
578
+ "workspace.new": "Nytt arbeidsområde",
579
+ "workspace.type.local": "lokal",
580
+ "workspace.type.sandbox": "sandkasse",
581
+ "workspace.create.failed.title": "Kunne ikke opprette arbeidsområde",
582
+ "workspace.delete.failed.title": "Kunne ikke slette arbeidsområde",
583
+ "workspace.resetting.title": "Tilbakestiller arbeidsområde",
584
+ "workspace.resetting.description": "Dette kan ta et minutt.",
585
+ "workspace.reset.failed.title": "Kunne ikke tilbakestille arbeidsområde",
586
+ "workspace.reset.success.title": "Arbeidsområde tilbakestilt",
587
+ "workspace.reset.success.description": "Arbeidsområdet samsvarer nå med standardgrenen.",
588
+ "workspace.status.checking": "Sjekker for ikke-sammenslåtte endringer...",
589
+ "workspace.status.error": "Kunne ikke bekrefte git-status.",
590
+ "workspace.status.clean": "Ingen ikke-sammenslåtte endringer oppdaget.",
591
+ "workspace.status.dirty": "Ikke-sammenslåtte endringer oppdaget i dette arbeidsområdet.",
592
+ "workspace.delete.title": "Slett arbeidsområde",
593
+ "workspace.delete.confirm": 'Slette arbeidsområdet "{{name}}"?',
594
+ "workspace.delete.button": "Slett arbeidsområde",
595
+ "workspace.reset.title": "Tilbakestill arbeidsområde",
596
+ "workspace.reset.confirm": 'Tilbakestille arbeidsområdet "{{name}}"?',
597
+ "workspace.reset.button": "Tilbakestill arbeidsområde",
598
+ "workspace.reset.archived.none": "Ingen aktive sesjoner vil bli arkivert.",
599
+ "workspace.reset.archived.one": "1 sesjon vil bli arkivert.",
600
+ "workspace.reset.archived.many": "{{count}} sesjoner vil bli arkivert.",
601
+ "workspace.reset.note": "Dette vil tilbakestille arbeidsområdet til å samsvare med standardgrenen.",
602
+ } satisfies Partial<Record<Keys, string>>