宿主 MarkdownText 出于聊天安全把 raw HTML 按字面文本渲染,预览 GitHub 风格 README(徽章墙 div、details 折叠块内嵌 markdown、表格单元格内联 标签、video/picture)时全是源码文本。本次在不动渲染器的前提下: - markdown-html.ts(纯函数):fence 感知切分器把文档切成 markdown/html 段(CommonMark type-6 块级标签名单 + 注释段 + 空行终止);段内标签 tokenizer 归约 open/close/html parts;全文档引用定义收集(每段追加 保持 [text][id] 跨段语义) - MarkdownHtml.tsx:DOMPurify 白名单消毒(显式禁 script/iframe/form 等;a 强制 _blank+noopener;本地媒体 src 经 /sidebar/file 重写); MarkdownDocument 帧栈状态机让 <details> 跨段嵌套内部 markdown; MarkdownSegment 内联替换(MutationObserver 幂等 pass,把表格单元格 等处标签文本消毒还原为元素,纯散文不误伤) - md-toc.tsx:零高度 sticky 浮动目录按钮(≥3 标题)+ 弹出大纲,跳转 平滑滚动 + 自动展开折叠 details + 高亮闪现。关键修复:子组件读父 ref 在 React layout 阶段恒为 null(子先于父),改为经自身 bar ref 的 parentElement 定位容器(jsdom 单测传预填 ref 掩盖了该 bug,仅 真实挂载 e2e 抓到) - 纯 markdown 文档走原单次解析路径零变化(现有 mermaid e2e 守卫一字 不动);新增 readme-style.md 种子 + 探针(消毒渲染/嵌套/内联/TOC 全链路);19 语言词典新增 toc 键;dompurify 提升为直接依赖(与 mermaid 传递依赖去重单版本) 设计文档 docs/plans/2026-08-24-markdown-html-toc-design.md
334 lines
21 KiB
TypeScript
334 lines
21 KiB
TypeScript
export const sv: Record<string, string> = {
|
||
files: 'Filer',
|
||
explorer: 'Utforskare',
|
||
git: 'Källkodshantering',
|
||
terminal: 'Terminal',
|
||
editor: 'Editor',
|
||
editorExplorer: 'Filers öppningsbeteende',
|
||
editorExplorerDesc: 'Styr hur filer öppnas',
|
||
editorExplorerMerged: 'Sammanslagen',
|
||
editorExplorerMergedDesc: 'Filer växlas på plats i samma fönster; nya fönster startar med trädet öppet',
|
||
editorExplorerSplit: 'Separat',
|
||
editorExplorerSplitDesc: 'Fönster utan sökväg är den fristående utforskaren (endast träd); varje fil öppnar ett eget fönster (träd dockat, stängt som standard)',
|
||
editorTreeToggle: 'Filträdspanel',
|
||
editorPathPlaceholder: 'Filsökväg (relativ sessionskatalogen eller absolut), Enter för att öppna',
|
||
editorSearchPlaceholder: 'Sök filer efter namn…',
|
||
editorSearchNoResults: 'Inga matchande filer',
|
||
editorSearchTruncated: 'För många resultat — visar en delvis lista',
|
||
editorEmptyHint: 'Välj en fil från trädpanelen eller sökvägsinmatningen ovan för att börja förhandsgranska',
|
||
openFileNewTab: 'Öppna i ny flik',
|
||
openFileSide: 'Öppna vid sidan',
|
||
openWithMenu: 'Öppna med',
|
||
openWithSshSuffix: ' (SSH)',
|
||
pinOpenWith: 'Fäst i meny',
|
||
unpinOpenWith: 'Lossa',
|
||
openWithExplorer: 'Filhanterare',
|
||
openWithVscode: 'VS Code',
|
||
openWithCursor: 'Cursor',
|
||
openWithZed: 'Zed',
|
||
openWithSettingsSshTitle: 'SSH-fjärrvärd',
|
||
openWithSettingsSshDesc: 'Tomt = lokal arbetsyta; med user@host eller SSH-alias byter VSCode-familjens öppnare till vscode-remote/ssh-remote-protokollet och Filhanterare / Zed / icke-VSCode-familjens anpassade editorer döljs från menyn',
|
||
openWithSettingsSshPlaceholder: 'user@host eller SSH-alias',
|
||
openWithSettingsCustomTitle: 'Anpassade editorer',
|
||
openWithSettingsCustomDesc: 'Namn + URL-mall ({path}-platshållare) + VSCode-familj-flagga; i fjärrläge kan endast VSCode-familjens editorer öppna en fjärrsökväg',
|
||
openWithSettingsAdd: 'Lägg till',
|
||
openWithSettingsName: 'Namn',
|
||
openWithSettingsTemplate: 't.ex. cursor://file/{path}',
|
||
openWithSettingsFamily: 'VSCode-familj',
|
||
openWithSettingsFamilyDesc: 'Denna editor talar VSCode:s URL-dialekt (stöder SSH-fjärröppning)',
|
||
openWithSettingsRemove: 'Ta bort',
|
||
openWithSettingsInvalidHint: 'Editorer med saknat namn eller en mall utan {path} / scheme:// visas inte i menyn',
|
||
newTab: 'Ny flik',
|
||
openExplorer: 'Utforskare',
|
||
brokenSymlink: 'Bruten symbolisk länk',
|
||
openGit: 'Git-panel',
|
||
newTerminal: 'Ny terminal',
|
||
terminalLimit: 'Terminalgräns nådd (3)',
|
||
close: 'Stäng',
|
||
closeOtherTabs: 'Stäng andra flikar',
|
||
closeLeftTabs: 'Stäng flikar till vänster',
|
||
closeRightTabs: 'Stäng flikar till höger',
|
||
moveToFreeWindow: 'Flytta till fritt fönster',
|
||
floatDropHint: 'Släpp för att öppna i ett fritt fönster',
|
||
dockToSidebar: 'Tillbaka till sidopanelen',
|
||
collapse: 'Komprimera sidopanel',
|
||
expand: 'Expandera sidopanel',
|
||
collapseBottomPanel: 'Komprimera bottenpanel',
|
||
expandBottomPanel: 'Expandera bottenpanel',
|
||
terminalError: 'Terminalanslutning misslyckades',
|
||
terminalConnectFailed: 'Terminal misslyckades att ansluta upprepade gånger',
|
||
terminalRetry: 'Försök igen',
|
||
terminalDepsFailed: 'Terminalberoendet node-pty kunde inte laddas',
|
||
terminalDepsHint: 'Kör kommandot nedan i en terminal eller cmd på DSH-maskinen för att reparera det, försök sedan igen (node-pty hålls synkad med DSH-kärnversionen):',
|
||
terminalDepsProfile: ' (upptäckt profil: {profile})',
|
||
preview: 'Förhandsgranska',
|
||
toc: 'Innehållsförteckning',
|
||
edit: 'Redigera',
|
||
mermaidError: 'Mermaid-rendering misslyckades',
|
||
mermaidZoomIn: 'Zooma in',
|
||
mermaidZoomOut: 'Zooma ut',
|
||
mermaidZoomReset: 'Återställ',
|
||
mermaidZoomHint: 'Rulla för att zooma · dra för att panorera · Esc för att stänga',
|
||
refresh: 'Uppdatera',
|
||
save: 'Spara',
|
||
saved: 'Sparad',
|
||
unsaved: 'Osparad',
|
||
saveFailed: 'Kunde inte spara',
|
||
truncation: 'Filen är för stor — visar de första 512KB',
|
||
binary: 'Binärfil, förhandsgranskning otillgänglig',
|
||
loading: 'Laddar…',
|
||
error: 'Kunde inte ladda',
|
||
retry: 'Försök igen',
|
||
splitLeft: 'Dela vänster',
|
||
splitRight: 'Dela höger',
|
||
splitUp: 'Dela upp',
|
||
splitDown: 'Dela ner',
|
||
notRepo: 'Denna katalog är inte ett Git-arkiv',
|
||
noChanges: 'Inga ändringar',
|
||
stage: 'Köa',
|
||
unstage: 'Avköa',
|
||
stageAll: 'Köa alla',
|
||
unstageAll: 'Avköa alla',
|
||
commitPlaceholder: 'Commit-meddelande (Ctrl+Enter)',
|
||
commit: 'Commit',
|
||
commitError: 'Commit misslyckades',
|
||
branch: 'Gren',
|
||
worktree: 'Arbetsträd',
|
||
checkoutError: 'Grenbyte misslyckades',
|
||
history: 'Historik',
|
||
changes: 'Ändringar',
|
||
staged: 'Köade',
|
||
unstaged: 'Avköade',
|
||
cancel: 'Avbryt',
|
||
diffEmpty: 'Inga textändringar',
|
||
diffLoadError: 'Kunde inte ladda diff',
|
||
diffBinary: 'Binär',
|
||
diffAdded: 'Tillagd',
|
||
diffDeleted: 'Borttagen',
|
||
diffRenamed: 'Omdöpt',
|
||
diffExpand: 'Expandera {count} fler rader',
|
||
diffCollapse: 'Komprimera',
|
||
discard: 'Förkasta ändringar',
|
||
discardTitle: 'Förkasta ändringar',
|
||
discardDesc: 'Detta förkastar arbetskopians ändringar av ”{path}” (kan inte ångras).',
|
||
viewCommitDiff: 'Visa commit-diff',
|
||
copyShortHash: 'Kopiera kort hash',
|
||
copyFullHash: 'Kopiera full hash',
|
||
copySubject: 'Kopiera ämne',
|
||
revertCommit: 'Återställ commit',
|
||
revertTitle: 'Återställ commit',
|
||
revertDesc: 'Skapa en ny commit på aktuell gren som återställer ”{subject}”.',
|
||
cherryPickCommit: 'Cherry-picka commit',
|
||
cherryPickTitle: 'Cherry-picka commit',
|
||
cherryPickDesc: 'Tillämpa ändringarna från ”{subject}” på aktuell gren.',
|
||
timeJustNow: 'just nu',
|
||
timeMinutesAgo: '{n} min sedan',
|
||
timeHoursAgo: '{n} h sedan',
|
||
timeYesterday: 'igår',
|
||
loadMore: 'Ladda fler',
|
||
historyLoadError: 'Kunde inte ladda mer historik',
|
||
produced: 'Producerat',
|
||
producedOpen: 'Öppna i sidopanelen',
|
||
disconnected: 'Terminalen frånkopplad, ansluter igen…',
|
||
exited: 'Terminalprocess avslutad',
|
||
noSession: 'Välj en konversation för att använda sidopanelen',
|
||
pluginNotLoaded: 'Plugin inte laddad; flik otillgänglig:',
|
||
hiddenFiles: 'Dolda filer',
|
||
parent: 'Överordnad katalog',
|
||
copied: 'Kopierades',
|
||
copy: 'Kopiera',
|
||
newFile: 'Ny fil',
|
||
openEditor: 'Öppna editor',
|
||
gitDetail: 'Visa ändringsdetaljer',
|
||
referenceFile: '@fil',
|
||
addToConversation: 'Lägg till i konversation',
|
||
copyRelative: 'Kopiera relativ sökväg',
|
||
copyAbsolute: 'Kopiera absolut sökväg',
|
||
download: 'Ladda ner',
|
||
uploadFiles: 'Ladda upp filer',
|
||
uploadFolder: 'Ladda upp mapp',
|
||
uploadHere: 'Ladda upp hit',
|
||
uploadDropHint: 'Släpp filer/mappar här för att ladda upp',
|
||
uploadDropChat: 'Släpp på chatareat för att lägga till bilder',
|
||
uploadTo: 'Ladda upp till {dir}',
|
||
uploadingTo: 'Laddar upp till {dir}…',
|
||
uploadProgress: 'Laddar upp {done}/{total}: {name}',
|
||
uploadDone: 'Laddade upp {count} fil(er)',
|
||
uploadFailed: 'Uppladdning misslyckades: {error}',
|
||
uploadFailedUnknown: 'Okänt fel',
|
||
uploadTooLarge: 'Filen för stor (över uppladdningsgränsen)',
|
||
uploadCancelled: 'Uppladdning avbruten',
|
||
settingsNav: 'Sidokort',
|
||
settingsIntro: 'Hantera vad sidokortet visar och hur det beter sig',
|
||
settingsPopupDesc: 'Konfigurera relaterade alternativ för {feature}',
|
||
settingsDone: 'Klar',
|
||
settingsOpenTitle: 'Öppna som standard för nya konversationer',
|
||
settingsOpenDesc: 'Expandera sidokortet automatiskt för helt nya konversationer; befintliga konversationer behåller sina egna layouter',
|
||
settingsWidthTitle: 'Standardbreddandel',
|
||
settingsWidthDesc: 'Sidokortets standardandel av fönsterbredden för nya konversationer (20–60)',
|
||
settingsWidthSuffix: '%',
|
||
settingsOpenPathTitle: 'Öppna chattfiler i sidopanelen',
|
||
settingsOpenPathDesc: 'Öppna fillänkar i chatten (verktygsrader, producerade filer, omnämnanden) i sidopanelens editor i stället för systemets standardapp',
|
||
settingsTitleBarTitle: 'Positions kompatibilitetsläge',
|
||
settingsTitleBarDesc: 'Välj titelfälts kompatibilitetsschema: auto-detektera (standard, konservativt) / DSH officiella webb / kända skrivbordsskal / anpassat (förskjutningsavstånd + egen CSS)',
|
||
settingsTitleBarStripTitle: 'Förskjutningsavstånd',
|
||
settingsTitleBarStripDesc: 'Titelfältsremsans höjd: hur långt sidopanelens knappar och innehåll flyttas ner i px (0–120, standard 40; gäller under det anpassade schemat)',
|
||
settingsSchemeAutoTitle: 'Auto-detektera',
|
||
settingsSchemeAutoDesc: 'Konservativt: endast standard Window Controls Overlay API bidrar (reell caption-overlay-höjd); vanliga webbmiljöer får ingen ändring',
|
||
settingsSchemeWebTitle: 'DSH officiella webb',
|
||
settingsSchemeWebDesc: 'Explicit deklarera det officiella webbgränssnittet: ingen anpassning alls (inte ens standard WCO-geometri)',
|
||
settingsSchemeCustomTitle: 'Anpassat',
|
||
settingsSchemeCustomDesc: 'Full kontroll: injicera egen CSS (kan åsidosätta inbyggda stilar) och sätt titelfältets förskjutningsavstånd',
|
||
settingsSchemeDetectedSuffix: 'upptäckt',
|
||
settingsCustomCssTitle: 'Anpassad CSS',
|
||
settingsCustomCssDesc: 'Stilar tillagda på slutet av sidan (senare i kaskaden vinner vid oavgjort; använd !important för att åsidosätta JS-skrivna inline-variabler)',
|
||
settingsCustomCssPlaceholder: '/* t.ex. reservera 36px för ett skal med egenritat titelfält */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
|
||
settingsSaveFailed: 'Kunde inte spara',
|
||
settingsConflict: 'Inställningen ändrades i ett annat fönster — vänligen försök igen',
|
||
binaryNoPreview: 'Denna filtyp kan inte förhandsgranskas',
|
||
downloadToView: 'Ladda ner för att visa',
|
||
settingsSubagentTitle: 'Öppna automatiskt Uppgiftssidan när en subagent dyker upp',
|
||
settingsSubagentDesc: 'Expandera sidokortet och öppna Uppgiftssidan när aktuell konversation skapar en ny subagent; stäng av för att öppna manuellt',
|
||
settingsJobsTitle: 'Öppna automatiskt Jobbsidan vid nytt bakgrundsjobb',
|
||
settingsJobsDesc: 'Expandera sidokortet och öppna Jobbsidan när ett nytt bakgrundsjobb dyker upp för aktuell konversation (varje nytt jobb utlöser); stäng av för att öppna manuellt',
|
||
settingsToolsTitle: 'Injicera terminalverktyg för modellen',
|
||
settingsToolsDesc: 'När aktiverat kan modellen skapa och styra sidopanelsterminaler via de 8 terminal_*-verktygen (av som standard)',
|
||
settingsBottomTerminalTitle: 'Öppna automatiskt en terminal vid bottenpanelens första expandering',
|
||
settingsBottomTerminalDesc: 'När bottenpanelen expanderas för första gången i en session, försök öppna en ny terminalflik där (terminalgränsen gäller fortfarande; på som standard)',
|
||
settingsFontFamilyTitle: 'Terminalens teckensnittsfamilj',
|
||
settingsFontFamilyDesc: 'Anpassad teckensnittsfamilj för terminalen (en CSS font-family-stack som "JetBrains Mono", monospace; lämna tomt för att följa temats monospaced-teckensnitt)',
|
||
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
|
||
settingsFontSizeTitle: 'Terminalens teckenstorlek',
|
||
settingsFontSizeDesc: 'Terminalens teckenstorlek i px (9–32, standard 13)',
|
||
settingsFontSizeSuffix: 'px',
|
||
settingsShellTitle: 'Skalsökväg',
|
||
settingsShellDesc: 'Skal som startas för UI- och modellterminaler (absolut sökväg ellerbart körbart namn). Tomt behåller den äldre ordningen: yaml config.shell → $SHELL / inloggningsskal / Windows powershell.exe. Gäller terminaler som öppnas senare',
|
||
settingsShellPlaceholder: 't.ex. /bin/zsh (tomt = auto)',
|
||
settingsShellArgsTitle: 'Skalargument',
|
||
settingsShellArgsDesc: 'Uttryckliga skalargument, mellanslagsseparerade; när icke-tomma ersätter de helt standardvärdena (samma kontrakt som yaml shellArgs)',
|
||
settingsShellArgsPlaceholder: 't.ex. -l (tomt = standard)',
|
||
settingsTabsTitle: 'Sidopanelens innehåll',
|
||
settingsViewersTitle: 'Filvisare',
|
||
settingsGeneralTitle: 'Allmänt',
|
||
settingsPopup: 'Funktionsinställningar',
|
||
settingsViewerCatchAll: 'Fånga alla: alla filer',
|
||
viewerImage: 'Bild',
|
||
viewerPdf: 'PDF',
|
||
viewerMarkdown: 'Markdown',
|
||
viewerCode: 'Kod',
|
||
viewerBinary: 'Binär nedladdning',
|
||
viewerHtml: 'HTML',
|
||
browser: 'Webbläsare',
|
||
browserPlaceholder: 'Ange en URL, t.ex. example.com',
|
||
browserGo: 'Gå',
|
||
browserBack: 'Bakåt',
|
||
browserForward: 'Framåt',
|
||
browserStart: 'Ange en URL för att börja surfa (sandlådeläge)',
|
||
browserBlockedScheme: 'Blockerat: endast http/https-URL:er är tillåtna',
|
||
browserBlockedLoopback: 'Blockerat: lokala och interna adresser kan inte surfas här',
|
||
browserInvalid: 'Ogiltig URL',
|
||
browserNoSandboxWarning: 'Sandlåda av: den aktuella sidan kör med fullständiga GUI-privilegier (återaktivera i inställningarna)',
|
||
htmlNoSandboxWarning: 'Sandlåda av: denna HTML kör med fullständiga GUI-privilegier (återaktivera i inställningarna)',
|
||
sandboxStatusOn: 'Sandlådeläge: på · sidor kan inte komma åt GUI:ts data eller lokala filer; inloggningar och tredjepartscookies kanske inte fungerar',
|
||
sandboxUnlock: 'Avaktivera tillfälligt (osäkert)',
|
||
sandboxRestore: 'Återställ sandlåda',
|
||
settingsHtmlDefaultUnsafeTitle: 'Öppna HTML-förhandsgranskningar osandlådade som standard (osäkert)',
|
||
settingsHtmlDefaultUnsafeDesc: 'När på, startar varje nyöppnad HTML-förhandsgranskning i osandlådat tillstånd (samma ursprung som GUI — kan läsa sessionsfiler och interna API:er); statusraden erbjuder fortfarande en återställning med ett klick',
|
||
settingsHtmlSandboxTitle: 'Avaktivera sandlåda för HTML-förhandsgranskning (osäkert)',
|
||
settingsHtmlSandboxDesc: 'Med sandlådan av körs förhandsgranskad HTML med samma ursprung som GUI: kan läsa sessionsfiler, lokal lagring och anropa interna API:er. Aktivera endast för fullt betrodda filer',
|
||
settingsBrowserSandboxTitle: 'Avaktivera webbläsarsandlåda (osäkert)',
|
||
settingsBrowserSandboxDesc: 'Med sandlådan av körs alla besökta sajter med samma ursprung som GUI: kan läsa sessionsdata och agera som er inloggade session. Aktivera endast för fullt betrodda sajter',
|
||
settingsBrowserLinksTitle: 'Öppna chattens externa länkar i sidopanelen',
|
||
settingsBrowserLinksDesc: 'När på, klick på en extern länk i chatten eller GUI öppnar sidopanelen i stället för ett nytt fönster; HTTP och HTTPS styrs separat av knapparna nedan; Ctrl/Cmd+klick kringgår alltid',
|
||
settingsBrowserHttpTitle: 'Öppna HTTP-sidor i sidopanelen',
|
||
settingsBrowserHttpDesc: 'När på, klick på en extern HTTP-länk i chatten eller GUI öppnar sidopanelen (pluginsidor som deklarerar urlTarget vinner); Ctrl/Cmd+klick kringgår alltid',
|
||
settingsBrowserHttpsTitle: 'Öppna HTTPS-sidor i sidopanelen',
|
||
settingsBrowserHttpsDesc: 'När på, klick på en extern HTTPS-länk i chatten eller GUI öppnar sidopanelen. Av som standard: de flesta HTTPS-sajter vägrar bli inbäddade, så systemwebbläsaren är det smidigare standardvalet',
|
||
browserOpenExternal: 'Öppna i webbläsare',
|
||
browserEmbedBlocked: '{host} vägrade bli inbäddad',
|
||
browserEmbedBlockedDesc: 'Sajten förbjuder att visas inuti andra sidor (X-Frame-Options / frame-ancestors), så den kan inte ladda i sidopanelen. Öppna den direkt i er webbläsare i stället.',
|
||
browserEmbedAnyway: 'Ladda ändå',
|
||
subagent: 'Uppgifter',
|
||
openSubagent: 'Uppgifter',
|
||
subagentMainAgent: 'Huvudagent',
|
||
subagentEmpty: 'Inga subagenter',
|
||
subagentEmptyDesc: 'Subagenter skapade under huvudagenten visas här',
|
||
subagentRunning: 'Kör',
|
||
subagentInactive: 'Inaktiv',
|
||
subagentModeOneShot: 'Engångs',
|
||
subagentModeContinuable: 'Fortsättbar',
|
||
subagentCount: '{count} subagenter',
|
||
subagentCountRunning: '{count} subagenter · {running} kör',
|
||
subagentDiagCorrupt: 'Korrupt',
|
||
subagentDiagUnsupported: 'Stöds ej',
|
||
subagentDiagUnavailable: 'Otillgänglig',
|
||
subagentThinking: 'Tänker…',
|
||
sideChat: 'Sidochatt (beta)',
|
||
sideChatNew: 'Ny tråd',
|
||
sideChatUntitled: 'Ny tråd',
|
||
sideChatEmpty: 'Inga sidokonversationer',
|
||
sideChatEmptyDesc: 'Varje sidokonversation är en egen flik i flikraden — den ärver den aktuella sessionens kontext och kommer aldrig in i huvudkonversationen',
|
||
sideChatCreating: 'Skapar sidokonversation…',
|
||
sideChatRetry: 'Försök igen',
|
||
sideChatThreads: 'Byt tråd / ny',
|
||
sideChatSave: 'Spara som ny session',
|
||
sideChatSaveTitle: 'Höj denna tråd till en toppnivå-session i huvudsessionslistan',
|
||
sideChatSaved: 'Sparad som ny session',
|
||
sideChatNoTurn: 'Spara är tillgängligt efter den första slutförda vändan',
|
||
sideChatPendingDrop: 'Den senaste obesvarade följdfrågan inkluderas inte i den sparade sessionen',
|
||
sideChatFirstPlaceholder: 'Ställ den första frågan — kontext ärvd…',
|
||
sideChatComposerPlaceholder: 'Ställ en följdfråga…',
|
||
sideChatThinking: 'Dyk djupare…',
|
||
sideChatThink: 'Tänker',
|
||
sideChatInjection: 'Kontext injicerad',
|
||
sideChatSend: 'Skicka',
|
||
sideChatCancel: 'Stoppa',
|
||
sideChatCancelTitle: 'Avbryt den pågående vändan (köat arbete behålls)',
|
||
sideChatClose: 'Stäng tråd',
|
||
sideChatCloseTitle: 'Frigör trådens agent (historik behålls)',
|
||
sideChatError: 'Sidochattsfel: {message}',
|
||
jobs: 'Bakgrundsjobb',
|
||
jobsCount: '{count} bakgrundsjobb',
|
||
jobsCountRunning: '{count} bakgrundsjobb · {running} kör',
|
||
jobStatusRunning: 'Kör',
|
||
jobStatusStopping: 'Stoppar',
|
||
jobStatusCompleted: 'Klar',
|
||
jobStatusKilled: 'Dödad',
|
||
jobStatusFailed: 'Misslyckades',
|
||
jobDurationSeconds: '{seconds}s',
|
||
jobDurationMinutes: '{minutes}m {seconds}s',
|
||
jobDurationHours: '{hours}t {minutes}m',
|
||
jobViewOutput: 'Visa utdata',
|
||
jobHideOutput: 'Dölj utdata',
|
||
jobNoOutput: 'Ingen utdata än',
|
||
jobNotReadYet: 'Väntar på att modellen ska läsa detta jobb; dess utdata visas här när modellen kör job_output',
|
||
jobOutputTruncated: 'Utdata avkortad',
|
||
jobOutputError: 'Kunde inte läsa utdata',
|
||
jobKill: 'Döda',
|
||
jobKillConfirm: 'Klicka igen för att bekräfta dödande',
|
||
jobKillError: 'Kunde inte döda',
|
||
addPluginsTabCard: 'Lägg till flik-plugins',
|
||
addPluginsTabCardDesc: 'Registrera en ny sidopanelssida',
|
||
addPluginsViewerCard: 'Lägg till förhandsgransknings-plugins',
|
||
addPluginsViewerCardDesc: 'Registrera en filtypsförhandsgranskning',
|
||
addPluginsTabDesc: 'Sidopanelens sidor (flikar) kan utökas av plugins. Plugins registreras via ctx.betterSidebar-tjänsten; att klicka på Installera kopierar installationskommandot — klistra in det i en terminal där er DSH-profil lever och kör det.',
|
||
addPluginsViewerDesc: 'Filförhandsgranskare kan utökas av plugins. Plugins registreras via ctx.betterSidebar-tjänsten; att klicka på Installera kopierar installationskommandot — klistra in det i en terminal där er DSH-profil lever och kör det.',
|
||
addPluginsBrowseMore: 'Bläddra bland fler plugins på GitHub (topic: dsh-better-sidebar)',
|
||
addPluginsSearch: 'Sök på plugin-namn eller beskrivning…',
|
||
addPluginsNoMatch: 'Inga plugins matchar',
|
||
addPluginsRecommended: 'Rekommenderade plugins',
|
||
addPluginsEmpty: 'Inga plugins kurerade ännu — publicera er egen under GitHub-topic:n',
|
||
openPlugin: 'Öppna',
|
||
copyInstall: 'Kopiera installationskommando',
|
||
pluginOfficeDesc: 'Office-svitförhandsgranskning (.docx / .xlsx / .pptx) för better-sidebar-editorn, som håller de tunga Office-renderingsbiblioteken utanför kärnbundlen',
|
||
pluginFlowglassDesc: 'Live sessionsflödesgraf med tre banor för användare, assistent och verktygsanrop, plus parallella grupper, subagent-grenar, djupdykning och live-status; registrerar en inbyggd Flowglass-flik när better-sidebar är installerat och behåller sin fristående låda som reserv',
|
||
pluginGitForgeDesc: 'Git Forge-flik: GitHub/Gitea (och andra forge) kontobibliotek + per-projekt-tillstånd + hård push-policy; token stannar i lokala secrets (aldrig i modellkontext); skrivskyddat GitForge-verktyg och agent-HTTPS credential helper',
|
||
pluginGitRemotesDesc: 'Git Remotes-flik: gren/upstream/ahead-behind, fetch (valbar prune), ff-only pull och push endast efter bekräftelse i fliken. Ersätter inte den inbyggda Git-köa/commit-fliken, och erbjuder inte force-push eller ett model-auto-push-verktyg',
|
||
pluginSentinelDesc: 'Villkorsdriven agentväckning: fil-/process-/port-/http-/kommando-/webhook-sensorer väcker vilande sessioner när villkor utlöses; registrerar en "Sentinel"-flik med serverns globala bevakningstabell',
|
||
pluginSidebarQaDesc: 'Markera-och-fråga: Markera konversationstext → fråga i högra panelen → en dedikerad följdfrågesession (❓ följdfråga) i samma arbetsyta; en snabb no-thinking-modell komprimerar huvudkontexten och injicerar den tillsammans med citatet, utan att avbryta huvudkonversationen. Följdfrågor kan nästlas, fortsättas och arkiveras',
|
||
pluginSshTunnelDesc: 'SSH Tunnel-flik: flervärd-inventering + per-projekt-tillstånd + lokala secrets; SSHManager-verktyg (exec/SFTP/sessionsstrategier); central interaktiv terminal och dubbelpanelig SFTP',
|
||
pluginTurnReviewDesc: 'En mänsklig grinds för den just avslutade vändan: Godkänn / Begär ändringar per sökväg med valfri kommentar; sökvägar grupperade per huvudsession / subagent / oattribuerade; inline ögonblicksbild-mot-nu-diff innan ni bestämmer er. Ingen förgrening, ingen /rewind',
|
||
pluginVideoPreviewDesc: 'Inline videoförhandsgranskning (.mp4/.webm/.mov/.mkv/.avi etc.) för better-sidebar-editorn, backad av en dedikerad /video-värdroute med HTTP Range (206)-stöd — sökning fungerar och filer begränsas inte av 20MB mediaLimit',
|
||
pluginDocsPanelDesc: 'Globala dokument i DSH-sidopanelen: läs era egna Markdown-anteckningar från valfri arbetsyta — en fillista, en översikt, öppna i Chrome / VS Code och kopieringsknappar; dokumentkatalogen är konfigurerbar (standard ~/.dsh/docs)',
|
||
}
|