add swedish (sv-SE) locale — all three catalogues, wired in all four registration points

538 app.* + 541 panel.* + 43 ui.* = 1122 keys, full parity with en-GB. Registered in
catalogues.ts, locales.ts SHIPPED_LOCALES, and both workspace locales/index.ts —
the four-edit checklist docs/localization.md calls out, since a missed import is
what shipped es-ES/de-DE/fr-FR dead the first time.

files.menu.selected (officerdev) was number-invariant in English ("selected") but
needs one/other in Swedish ("vald"/"valda"), same class of bug as the "1
seleccionados" fix in es-ES — split it rather than copying the English shape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-24 01:59:09 +00:00
co-authored by Claude Opus 5
parent 2a0f688e10
commit 1600a57b66
7 changed files with 1435 additions and 1 deletions
+2
View File
@@ -7,6 +7,7 @@ import appEnGB from '../locales/en-GB.json';
import appEsES from '../locales/es-ES.json';
import appFrFR from '../locales/fr-FR.json';
import appPtPT from '../locales/pt-PT.json';
import appSvSE from '../locales/sv-SE.json';
/**
* The three per-workspace catalogues, merged into one map per shipped locale (D6): `app.*` from
@@ -33,6 +34,7 @@ const appCatalogs: TranslationMap = {
'es-ES': appEsES,
'de-DE': appDeDE,
'fr-FR': appFrFR,
'sv-SE': appSvSE,
};
export const catalogues: TranslationMap = Object.fromEntries(
+1 -1
View File
@@ -19,7 +19,7 @@ const autonym = (code: string): string => {
return name.charAt(0).toUpperCase() + name.slice(1);
};
export const SHIPPED_LOCALES: ShippedLocale[] = ['en-GB', 'pt-PT', 'fr-FR', 'de-DE', 'es-ES'].map((code) => ({
export const SHIPPED_LOCALES: ShippedLocale[] = ['en-GB', 'pt-PT', 'fr-FR', 'de-DE', 'es-ES', 'sv-SE'].map((code) => ({
code,
label: autonym(code),
}));
+704
View File
@@ -0,0 +1,704 @@
{
"common": {
"save": "Spara",
"saving": "Sparar...",
"cancel": "Avbryt"
},
"settings": {
"profile": {
"userData": {
"email": "E-post",
"username": "Användarnamn",
"name": "Namn",
"namePlaceholder": "Ditt namn",
"updated": "Profilen uppdaterad",
"updateFailed": "Det gick inte att uppdatera profilen",
"selectImage": "Välj en bildfil",
"imageTooLarge": "Bilden måste vara mindre än 384 kB"
},
"apiKeys": {
"intro": "En API-nyckel loggar in som dig, utan lösenord och utan att gå ut. En nyckel fungerar överallt — en nyckel är inte knuten till en app. Att ge varje enhet sin egen är bara så att du kan stänga av en utan att röra resten. Skicka den som",
"loading": "Läser in nycklar…",
"mintedTitle": "Nyckel för ”{{name}}” — visas en gång",
"savedIt": "Jag har sparat den",
"copyKey": "Kopiera nyckel",
"copied": "Nyckel kopierad",
"copyFailed": "Det gick inte att kopiera — markera och kopiera manuellt",
"newKey": "Ny nyckel",
"namePlaceholder": "iPhone, Musik-appen, laptop-CLI…",
"create": "Skapa",
"createFailed": "Det gick inte att skapa nyckeln",
"noneYet": "Inga nycklar än.",
"noneInUse": "Inga nycklar används.",
"revoked": "återkallad",
"expired": "utgången",
"lastUsed": "senast använd {{date}}",
"neverUsed": "aldrig använd",
"forget": "Ta bort denna post",
"forgetFailed": "Det gick inte att ta bort den",
"revoke": "Återkalla",
"revokeDone": "Återkallad — allt som använder den nyckeln loggas ut",
"revokeFailed": "Det gick inte att återkalla",
"hideDead": "Dölj återkallade och utgångna",
"showDead": {
"one": "Visa {{count}} återkallad eller utgången nyckel",
"other": "Visa {{count}} återkallade eller utgångna nycklar"
}
},
"voice": {
"label": "Röst",
"refresh": "Uppdatera röster",
"serverDefault": "Serverstandard",
"hint": "Välj en röst för text-till-tal. Behåll serverstandard för att använda rösten administratören har konfigurerat.",
"stop": "Stoppa",
"listen": "Lyssna"
},
"dock": {
"visible": "Synlig",
"hidden": "Dold",
"dragToShow": "Dra objekt hit för att visa i dockan",
"allVisible": "Alla objekt synliga",
"reset": "Återställ till standard"
},
"languages": {
"spokenLabel": "Språk du talar",
"addLanguage": "Lägg till ett språk...",
"defaultLabel": "Standardspråk",
"defaultHint": "Används för lokalisering av gränssnittet.",
"translateToLabel": "Översätt till",
"translateToHint": "Målspråk vid översättning av innehåll du inte talar."
},
"changePassword": {
"currentPasswordLabel": "Nuvarande lösenord",
"currentPasswordPlaceholder": "Nuvarande lösenord",
"newPasswordLabel": "Nytt lösenord",
"newPasswordPlaceholder": "Nytt lösenord",
"confirmPasswordLabel": "Bekräfta nytt lösenord",
"confirmPasswordPlaceholder": "Bekräfta nytt lösenord",
"changeButton": "Byt lösenord",
"changingButton": "Byter...",
"passwordChanged": "Lösenordet ändrat",
"passwordChangeFailed": "Det gick inte att byta lösenord"
},
"models": {
"defaultModel": "Standardmodell",
"sameAsChat": "Samma som chattstandard",
"taskDefaultsSaved": "Standardvärden för uppgifter sparade",
"saveFailed": "Det gick inte att spara inställningarna",
"defaultChat": "Standardmodell för chatt",
"defaultChatHint": "Används när en ny chatt startas från hemskärmen",
"defaultProject": "Standardmodell för projekt",
"defaultProjectHint": "Används när en ny chatt startas inuti en projektdashboard",
"defaultTask": "Standardmodell för uppgifter",
"defaultTaskHint": "Används när uppgifter körs från filhanteraren",
"aiDefaultsSaved": "Standardvärden för AI-modell sparade"
}
},
"sections": {
"profile": {
"label": "Profil",
"hint": "avatar, namn, e-post",
"description": "Avatar, namn och e-post"
},
"changePassword": {
"label": "Byt lösenord",
"description": "Uppdatera ditt lösenord"
},
"apiKeys": {
"label": "API-nycklar",
"hint": "nycklar som loggar in som dig",
"description": "Nycklar som loggar in som dig, kan återkallas en i taget"
},
"languages": {
"label": "Språk",
"hint": "talade och översättning",
"description": "Talade, standard och översättning"
},
"voice": {
"label": "Röst",
"hint": "text-till-tal",
"description": "Inställning för text-till-tal-röst"
},
"dock": {
"label": "Docka",
"hint": "välj och ordna om",
"description": "Välj och ordna om objekt i dockan"
},
"myModels": {
"label": "Mina modeller",
"description": "Visa eller dölj modeller för dig själv"
},
"channelModels": {
"label": "Kanalmodeller",
"description": "Modeller som andra konton än ägaren kan nå"
},
"defaultModels": {
"label": "Standardmodeller",
"description": "Standardmodeller för chatt, projekt och uppgifter"
},
"providers": {
"label": "Leverantörer",
"hint": "körmiljöer",
"description": "Fjärran och lokala AI-leverantörer"
},
"tts": {
"label": "Text till tal",
"description": "TTS-leverantör och röst"
},
"stt": {
"label": "Tal till text",
"description": "Whisper-serverns URL"
},
"ocr": {
"label": "OCR",
"description": "Synmodell för textextrahering"
},
"maintenance": {
"label": "Bygg om och starta om",
"hint": "underhåll",
"description": "Läs in ändringar utan en terminal"
},
"smtp": {
"label": "SMTP",
"hint": "utgående e-post",
"description": "Leverantör för e-postleverans"
},
"googleOauth": {
"label": "Google OAuth",
"description": "Klient-ID och hemlighet för Google-API:er"
},
"apify": {
"label": "Apify",
"description": "API-token för webbskrapningsaktörer"
},
"davSync": {
"label": "Kalender- och kontaktsynkronisering",
"hint": "applösenord",
"description": "Lösenord per enhet för CalDAV-/CardDAV-klienter"
},
"accounts": {
"label": "Konton",
"hint": "användare",
"description": "Vem som har åtkomst, och som vad"
},
"permissions": {
"label": "Behörigheter",
"description": "Vad varje roll kan nå"
}
},
"searchPlaceholder": "Sök inställningar…",
"selectSection": "Välj en sektion",
"groups": {
"models": "Modeller",
"defaults": "Standardvärden",
"providers": "Leverantörer",
"ai": "AI",
"maintenance": "Underhåll",
"email": "E-post"
},
"nav": {
"profile": "Profil",
"ai": "AI",
"system": "System",
"integrations": "Integrationer",
"users": "Användare"
},
"ai": {
"noModels": "Inga modeller tillgängliga. Konfigurera API-nycklar under Leverantörer.",
"dragToShow": "Dra modeller hit för att visa",
"allVisible": "Alla modeller synliga",
"dragToEnable": "Dra modeller hit för att aktivera",
"allEnabled": "Alla modeller aktiverade",
"visible": "Synlig",
"hidden": "Dold",
"enabled": "Aktiverad",
"disabled": "Inaktiverad",
"refresh": "Uppdatera modeller från leverantörer",
"refreshed": "Modeller uppdaterade",
"refreshFailed": "Det gick inte att uppdatera modellerna"
},
"integrations": {
"enterprise": "Företag",
"personal": "Personligt"
},
"server": {
"loading": "Läser in…",
"provider": "Leverantör",
"model": "Modell",
"voice": "Röst",
"ocr": {
"serverUrl": "URL till synmodellsserver",
"refreshModels": "Uppdatera modeller",
"selectModel": "Välj en modell",
"saved": "OCR-inställningarna sparade",
"saveFailed": "Det gick inte att spara OCR-inställningarna",
"reachable": "Synmodellsservern är nåbar"
},
"stt": {
"serverUrl": "URL till Whisper-server",
"saved": "STT-inställningarna sparade",
"saveFailed": "Det gick inte att spara STT-inställningarna",
"reachable": "Whisper-servern är nåbar"
},
"tts": {
"openaiCompatible": "OpenAI-kompatibel (Kokoro, OpenAI, m.fl.)",
"elevenLabs": "ElevenLabs",
"refreshVoices": "Uppdatera röster",
"selectVoice": "Välj en röst",
"saved": "TTS-inställningarna sparade",
"saveFailed": "Det gick inte att spara TTS-inställningarna",
"playing": "Spelar upp testljud",
"testFailed": "Testet misslyckades — det gick inte att nå TTS-servern"
},
"smtp": {
"mailhog": "MailHog (lokal testning)",
"resend": "Resend",
"custom": "Anpassad SMTP",
"apiKey": "API-nyckel",
"host": "Värd",
"port": "Port",
"username": "Användarnamn",
"password": "Lösenord",
"tls": "TLS/SSL",
"fromName": "Avsändarnamn",
"fromEmail": "Avsändaradress",
"sendTest": "Skicka testmejl",
"userExample": "user@example.com",
"recipientExample": "recipient@example.com",
"saved": "SMTP-inställningarna sparade",
"saveFailed": "Det gick inte att spara SMTP-inställningarna",
"connected": "Anslutningen lyckades",
"testSent": "Testmejl skickat till {{email}}"
},
"maintenance": {
"updateTitle": "Uppdatera plattformen",
"updateHint": "Ändrar ingenting som körs. Allt uppdateringen behöver listas här, och det är alltid ditt beslut.",
"rebuild": "Bygg om gränssnittet",
"restart": "Starta om servern",
"upToDate": "Redan uppdaterad",
"rebuilt": "Gränssnittet ombyggt — uppdatera sidan för att se det",
"restarting": "Startar om — sidan återansluter av sig själv",
"pulled": {
"one": "Hämtade {{count}} commit",
"other": "Hämtade {{count}} commits"
}
},
"harnesses": {
"piMono": "Pi Mono",
"checking": "Kontrollerar…",
"localProviders": "Lokala leverantörer",
"remoteProviders": "Fjärrleverantörer",
"connect": "Anslut",
"authenticate": "Autentisera",
"connectLocal": "Anslut lokal leverantör",
"connectProvider": "Anslut leverantör",
"none": "Inga leverantörer hittades.",
"updatePiMono": "Uppdatera Pi Mono",
"removeProvider": "Ta bort leverantör",
"namePlaceholder": "Namn (t.ex. Min Ollama)",
"username": "Användarnamn",
"password": "Lösenord",
"apiKey": "API-nyckel",
"editKey": "Redigera nyckel",
"disconnect": "Koppla från leverantör",
"saveKey": "Spara nyckel",
"enterKey": "Ange API-nyckel",
"search": "Sök leverantörer…",
"connectFailed": "Det gick inte att ansluta",
"authFailed": "Autentiseringen misslyckades",
"saveFailed": "Det gick inte att spara leverantören",
"connectedTo": "Ansluten till {{name}}"
}
},
"users": {
"loadingPermissions": "Läser in behörigheter…",
"permissionsFailed": "Det gick inte att läsa in behörigheterna.",
"deniedUnlessGranted": "Allt nekas om det inte beviljas här.",
"read": "Läs",
"full": "Fullständig",
"noAccess": "Ingen åtkomst",
"role": "Roll",
"permissionsSaved": "Sparade vad {{role}} kan nå",
"copyBeforeClosing": "Kopiera det du behöver innan du stänger — inget av det kan visas igen.",
"password": "Lösenord",
"linuxAccount": "Linuxkonto",
"sshKey": "Deras publika SSH-nyckel",
"addToGitea": "Lägg till detta i deras Gitea-konto",
"linuxIncomplete": "Kontot fungerar, men dess Linux-del blev inte klar",
"done": "Klar",
"addAccount": "Lägg till konto",
"newAccount": "Nytt konto",
"email": "E-post",
"name": "Namn",
"username": "Användarnamn",
"usernameHint": "Bokstäver, siffror, punkter, bindestreck och understreck.",
"generatePassword": "Generera ett lösenord",
"copyPassword": "Kopiera lösenordet",
"passwordHint": "Minst 12 tecken, med stora och små bokstäver, en siffra och ett specialtecken.",
"sshPlaceholder": "ssh-ed25519 AAAAC3Nza… ana@laptop",
"passwordCopied": "Lösenordet kopierat",
"loadingAccounts": "Läser in konton…",
"accountsFailed": "Det gick inte att läsa in kontona.",
"removeAccount": "Ta bort konto",
"generateNewPassword": "Generera ett nytt lösenord",
"serverOwner": "Serverägare",
"copySshTitle": "Kopiera deras publika SSH-nyckel (lägg till den i deras Gitea-konto)",
"resetPasswordTitle": "Generera ett nytt lösenord — visas en gång, och loggar ut dem överallt",
"copyNewPassword": "Kopiera det nya lösenordet",
"publicKeyCopied": "Publik nyckel kopierad",
"copyFailed": "Det gick inte att kopiera — markera den och kopiera för hand",
"repairFor": "Reparera {{email}}s Linuxkonto",
"linuxAccountFor": "Linuxkonto: {{osUser}} — klicka för att reparera eller ersätta deras SSH-nyckel",
"copySshFor": "Kopiera {{email}}s publika SSH-nyckel",
"resetPasswordFor": "Återställ {{email}}s lösenord",
"removeFor": "Ta bort {{email}}",
"provisionPrompt": "Linuxkonto för {{email}}.\n\nKlistra in en publik SSH-nyckel för att tillåta dem att SSH:a in, eller lämna tomt för att behålla den nuvarande.",
"createLinux": "Skapa ett Linuxkonto",
"noLinux": "Inget Linuxkonto — klicka för att skapa ett",
"removeTitle": "Ta bort {{email}}?",
"removeBody": "Detta tar bort kontot och allt som tillhör det — passkeys, dashboards, sparade layouter och allt en installerad plugin sparar åt dem. Det kan inte ångras.",
"resetTitle": "Återställa lösenordet för {{email}}?",
"resetBody": "Ett nytt lösenord genereras och visas för dig en gång — det sparas ingenstans och kan inte hämtas i efterhand. Deras befintliga lösenord slutar fungera omedelbart, och de loggas ut överallt.",
"resetLinuxNote": "Deras Linuxkonto ({{osUser}}) påverkas inte: det har inget lösenord, och SSH-nycklarna är oförändrade."
},
"dav": {
"newDevice": "Ny enhet",
"create": "Skapa",
"none": "Inga enheter än.",
"placeholder": "Pixel 9, iPad, Thunderbird…",
"revoke": "Återkalla",
"delete": "Ta bort",
"copyFailed": "Det gick inte att kopiera — markera och kopiera manuellt",
"createFailed": "Det gick inte att skapa applösenordet",
"revoked": "Återkallat — den enheten slutar synkronisera",
"revokeFailed": "Det gick inte att återkalla",
"deleteFailed": "Det gick inte att ta bort",
"copyField": "Kopiera {{field}}",
"copied": "{{what}} kopierat"
},
"google": {
"guideToggle": "Steg-för-steg-guide",
"step1": {
"title": "Skapa ett Google Cloud-projekt",
"body": "Öppna sidan för att skapa projekt, ge det ett namn (till exempel ”Officer”), och klicka på:",
"link": "New Project"
},
"step2": {
"title": "Aktivera API:erna",
"body": "Öppna API-biblioteket och sök efter var och en av dessa, klicka sedan på:",
"link": "API Library"
},
"step3": {
"title": "Konfigurera OAuth-samtyckesskärmen",
"link": "OAuth Branding",
"appName": "Ange din organisations namn, eller ”Officer”, som:",
"supportEmail": "Ange din administratörs e-post som:",
"devContact": "Lägg till din administratörs e-post under:",
"save": "Klicka sedan på:"
},
"step4": {
"title": "Ställ in målgruppen",
"link": "OAuth Audience",
"internal": "Om ditt team använder Google Workspace, välj — ingen verifiering behövs:",
"external": "Välj annars, och lägg till ditt teams e-postadresser under Test users (krävs medan appen är overifierad; gräns på 100 testanvändare):"
},
"step5": {
"title": "Lägg till scopes",
"link": "Data Access",
"body": "Öppna dataåtkomst, sök efter och lägg till scopen nedan, klicka sedan på:",
"note": "Google klassar kalenderscopet som känsligt och Gmail-scopet som begränsat. Det är okej för Interna appar (Google Workspace) och för Externa appar i testläge; publicering i produktion med begränsade scopes kräver Google-verifiering."
},
"step6": {
"title": "Skapa OAuth-inloggningsuppgifter",
"link": "Clients",
"body": "Öppna klientsidan och klicka på:",
"appType": "Application type:",
"nameAnything": "Namn: vad som helst (till exempel ”Officer”)",
"redirectUris": "Authorized redirect URIs — lägg till:",
"thenClick": "Klicka sedan på:"
},
"step7": {
"title": "Kopiera inloggningsuppgifterna",
"body": "En dialog visar ditt klient-ID och din klienthemlighet. Kopiera båda och klistra in dem i fälten nedan."
},
"scopeGmail": "Läs e-post",
"scopeCalendar": "Läs kalenderhändelser",
"verifying": "Verifierar inloggningsuppgifter…",
"valid": "Inloggningsuppgifterna är giltiga",
"invalid": "Ogiltiga inloggningsuppgifter",
"verifyFailed": "Verifieringsförfrågan misslyckades",
"clientId": "Klient-ID",
"clientSecret": "Klienthemlighet",
"redirectUri": "Omdirigerings-URI",
"redirectUriHint": "Lägg till denna URI i din Google OAuth-klients auktoriserade omdirigerings-URI:er",
"saved": "Google OAuth-konfigurationen sparad",
"saveFailed": "Det gick inte att spara Google OAuth-konfigurationen"
},
"googleAccount": {
"title": "Googlekonto",
"hint": "Anslut ditt Googlekonto för Kalender, Kontakter och andra Google-tjänster.",
"connected": "Anslutet",
"disconnect": "Koppla från",
"connect": "Anslut Googlekonto",
"connectedToast": "Googlekontot anslutet",
"connectFailed": "Det gick inte att ansluta Googlekontot",
"disconnectedToast": "Googlekontot frånkopplat",
"disconnectFailed": "Det gick inte att koppla från Googlekontot"
},
"apify": {
"token": "API-token",
"saved": "Apify API-token sparad",
"saveFailed": "Det gick inte att spara Apify API-token"
}
},
"header": {
"userMenu": {
"profile": "Profil",
"systemSettings": "Systeminställningar",
"signOut": "Logga ut",
"ai": "AI",
"integrations": "Integrationer",
"userManagement": "Användarhantering"
},
"tabName": "Flikens namn",
"tabNameHint": "Klicka för att döpa om denna flik — rensa den för att gå tillbaka till sidans namn",
"logoAlt": "Officer",
"navigation": "Navigering",
"jobsRunning": "Körande jobb",
"jobsNothingRunning": "Inget körs",
"jobsQueued": "Köade jobb"
},
"nav": {
"home": "Hem",
"files": "Filer",
"chat": "Chatt",
"commandHq": "Command HQ",
"editor": "Editor",
"jobs": "Jobb",
"terminal": "Terminal",
"browser": "Webbläsare",
"monitor": "Monitor",
"activity": "Aktivitet",
"dashboards": "Dashboards",
"sendOff": "SendOff",
"calendar": "Kalender",
"contacts": "Kontakter",
"appStore": "Appbutik",
"marketplace": "Marketplace",
"codeEditor": "Kod-editor"
},
"theme": {
"pillTitle": "Tema: {{name}} · ctrl+shift+←/→ bläddra · ctrl+shift+space bläddra i galleri · ctrl+shift+f {{starAction}}",
"pillLabel": "Tema: {{name}}",
"star": "stjärnmärk",
"unstar": "avmarkera stjärna",
"cycleHint": "ctrl+shift+←/→ bläddra · ctrl+shift+space galleri",
"everyShortcutHint": "ctrl+? för alla kortkommandon",
"favouritesOnly": "Endast favoriter ({{count}})",
"favourites": "Favoriter ({{count}})",
"noFavourites": "Inga favoriter än — stjärnmärk en med knappen på dess rad.",
"starNamed": "Stjärnmärk {{name}}",
"unstarNamed": "Avmarkera stjärna för {{name}}",
"addToFavourites": "Lägg till i favoriter",
"removeFromFavourites": "Ta bort från favoriter",
"addToFavouritesKey": "Lägg till i favoriter (f)",
"removeFromFavouritesKey": "Ta bort från favoriter (f)",
"active": "aktiv",
"browseHint": "j/k eller ↑/↓ flytta · l eller → förhandsgranska · f stjärna · h eller ← återställ · enter behåll · esc avbryt"
},
"spotlight": {
"placeholder": "Gå till…",
"noResults": "Inget matchar ”{{query}}”."
},
"shortcutsModal": {
"title": "Kortkommandon",
"hint": "Ctrl+? · Esc för att stänga"
},
"screenError": {
"title": "Den här skärmen kunde inte renderas",
"description": "Inget gick förlorat — detta är ett visningsfel, inte ett datafel. Agenttranskript, jobb och filer är opåverkade.",
"unknownError": "Okänt fel",
"tryAgain": "Försök igen",
"reload": "Läs om",
"goHome": "Gå hem",
"resetHint": "Om det misslyckas igen på samma ställe är en sparad panellayout den vanliga orsaken. Återställning sätter tillbaka varje skärms paneler till standardläget.",
"dashboardsSafe": "Dina dashboards påverkas inte.",
"resetting": "Återställer…",
"resetConfirm": "Ja — återställ alla skärmlayouter",
"reset": "Återställ skärmlayouter"
},
"rescan": {
"label": "Skanna om objekt",
"title": "Skanna om officer-items (tillämpa ändringar utan omstart)",
"failed": "Det gick inte att skanna om objekten",
"done": "Skannade om objekt — {{summary}}",
"counts": {
"tasks": {
"one": "{{count}} uppgift",
"other": "{{count}} uppgifter"
},
"agents": {
"one": "{{count}} agent",
"other": "{{count}} agenter"
},
"tools": {
"one": "{{count}} verktyg",
"other": "{{count}} verktyg"
},
"skills": {
"one": "{{count}} skill",
"other": "{{count}} skills"
},
"processes": {
"one": "{{count}} process",
"other": "{{count}} processer"
},
"affordances": {
"one": "{{count}} affordance",
"other": "{{count}} affordances"
}
},
"newChatsOnly": "Gäller nya chattar — en öppen chatt behåller det den startade med.",
"noDescription": {
"one": "{{count}} skill saknar beskrivning, så ingen agent erbjuds den.",
"other": "{{count}} skills saknar beskrivning, så ingen agent erbjuds dem."
}
},
"bugReport": {
"label": "Rapportera ett fel",
"title": "Rapportera ett fel",
"describePlaceholder": "Beskriv vad som gick fel...",
"screenshot": "Skärmbild",
"noScreenshot": "Ingen skärmbild togs",
"collectedNote": "Konsolloggar, webbläsarinfo och nyliga API-fel samlas in automatiskt.",
"submitted": "Felrapport skickad",
"failed": "Det gick inte att skicka felrapporten",
"submit": "Skicka"
},
"auth": {
"signInTitle": "Välkommen tillbaka",
"signInSubtitle": "Logga in på ditt konto",
"emailOrUsername": "E-post eller användarnamn",
"password": "Lösenord",
"forgotPassword": "Glömt lösenordet?",
"emailPlaceholder": "you@example.com",
"passwordPlaceholder": "Ditt lösenord",
"forgotTitle": "Glömt lösenord",
"forgotSubtitle": "Ange din e-post för att få en återställningslänk",
"email": "E-post",
"backToLogin": "Tillbaka till inloggning",
"checkEmail": "Kolla din e-post",
"checkEmailHint": "Klicka på den för att återställa ditt lösenord.",
"resetOk": "Lösenordet återställdes. Logga in.",
"verifying": "Verifierar…",
"invalidLink": "Ogiltig länk",
"invalidLinkHint": "Den här återställningslänken är ogiltig eller har gått ut.",
"resetTitle": "Återställ lösenord",
"resetSubtitle": "Ange ditt nya lösenord",
"confirmPassword": "Bekräfta lösenord",
"minChars": "Minst 12 tecken",
"confirmPlaceholder": "Bekräfta ditt lösenord",
"bootstrapTitle": "Välkommen, administratör",
"bootstrapSubtitle": "Skapa ditt administratörskonto",
"name": "Namn",
"username": "Användarnamn",
"namePlaceholder": "Ditt namn",
"adminEmailPlaceholder": "admin@example.com",
"bootstrapOk": "Administratörskontot skapades. Logga in.",
"debug": {
"controls": "Kontroller:",
"camera": "Kamera:",
"model": "Modell:"
}
},
"shortcuts": {
"navigation": "Navigering",
"spotlight": "Spotlight — gå till vilken skärm, plugin eller inställning som helst med namn",
"thisList": "Denna lista",
"themes": "Teman",
"themesNote": "Webbläsaren tillämpar temat medan du flyttar dig, så du ser appen förändras i stället för att läsa namn.",
"openBrowser": "Öppna temabläddraren",
"prevNextTheme": "Föregående/nästa tema, utan att öppna något",
"starCurrent": "Stjärnmärk eller avmarkera det aktuella temat, varifrån som helst",
"inBrowser": "I temabläddraren",
"moveList": "Flytta genom listan",
"applyKeepBrowsing": "Tillämpa det markerade temat och fortsätt bläddra",
"restoreStart": "Sätt tillbaka temat du började med",
"starFocused": "Stjärnmärk eller avmarkera det markerade temat",
"keepLooking": "Behåll det du tittar på",
"cancelRestore": "Avbryt och återställ",
"inSpotlight": "I Spotlight",
"moveResults": "Flytta genom resultaten",
"goThere": "Gå dit",
"close": "Stäng",
"chat": "Chatt",
"chatNote": "Återkallning tar bara piltangenten från ett TOMT skrivfält, och varje annan tangent avslutar återkallningen — så ett utkast skrivs aldrig över.",
"prevNextPrompt": "Föregående/nästa prompt du skickade, i skalstil",
"send": "Skicka · på ett tomt skrivfält med något köat, skicka det nu",
"newline": "Ny rad",
"stopTurn": "Stoppa turen som genereras"
},
"jobs": {
"runningQueued": "Körs och köade",
"loading": "Läser in…",
"nothingRunning": "Inget körs",
"history": "Historik",
"clearAll": "Rensa alla",
"selectJob": "Välj ett jobb",
"notFound": "Jobbet hittades inte.",
"backToJobs": "Tillbaka till jobb",
"stop": "Stoppa",
"testNotification": "Skicka en testnotis till varje konfigurerad kanal",
"search": "Sök…",
"deleteFinished": "Ta bort alla avslutade jobb",
"noChannels": "Inga kanaler konfigurerade",
"notifyFailed": "Det gick inte att skicka notisen",
"stopRequested": "Stopp begärt",
"stopFailed": "Det gick inte att stoppa",
"titles": "Titlar",
"download": "Ladda ner",
"input": "Indata",
"output": "Utdata",
"steps": "Steg",
"selectStep": "Välj ett steg eller en deluppgift för att visa utdata",
"noOutput": "Ingen utdata än",
"tokens": "Tokens:",
"cost": "Kostnad:",
"status": {
"running": "Körs",
"queued": "Köad",
"completed": "Klar",
"failed": "Misslyckades",
"stopped": "Stoppad",
"interrupted": "Avbruten"
},
"failedWithCode": "Misslyckades (avslut {{code}})"
},
"activity": {
"title": "Aktivitet",
"backgroundTasks": "Bakgrundsuppgifter",
"detached": "Frikopplad",
"backToList": "Tillbaka till listan",
"selectTask": "Välj en uppgift för att följa dess utdata live",
"noneRunning": "inget körs"
},
"passkeyGate": {
"setUp": "Ställ in din passkey"
},
"chatHistory": {
"loadFailed": "Det gick inte att läsa in den här konversationen: {{reason}}"
},
"capability": {
"frontmatter": "Frontmatter",
"noMatches": "Inga träffar",
"emptyFile": "Tom fil",
"createFailed": "Det gick inte att skapa {{kind}}",
"deleteFailed": "Det gick inte att ta bort {{kind}}",
"searchPlaceholder": "Sök {{kind}}…",
"selectOne": "Välj en {{kind}}",
"selectToView": "Välj en {{kind}} för att visa dess innehåll",
"delete": "Ta bort",
"createPrompt": "Hjälp mig skapa innehållet för den här nya {{kind}}-filen",
"improvePrompt": "Hjälp mig förstå och förbättra den här {{kind}}-filen"
}
}
@@ -4,6 +4,7 @@ import enGB from './en-GB.json';
import esES from './es-ES.json';
import frFR from './fr-FR.json';
import ptPT from './pt-PT.json';
import svSE from './sv-SE.json';
/** Shared components' own catalog, per locale — merged into the app-wide map by `I18nBridge` under `ui.*`. */
export const uiCatalogs: TranslationMap = {
@@ -12,6 +13,7 @@ export const uiCatalogs: TranslationMap = {
'es-ES': esES,
'de-DE': deDE,
'fr-FR': frFR,
'sv-SE': svSE,
};
export { useTranslation } from './useTranslation';
@@ -0,0 +1,81 @@
{
"button": {
"cancel": "Avbryt",
"confirm": "Bekräfta",
"ok": "Ok",
"close": "Stäng"
},
"search": {
"placeholder": "Sök",
"open": "Öppna sökning",
"close": "Stäng sökning",
"clear": "Rensa sökning"
},
"select": {
"placeholder": "Välj..."
},
"tabs": {
"filterPlaceholder": "Filtrera"
},
"commandBlock": {
"run": "Kör i terminalen",
"copy": "Kopiera kommando"
},
"colorPicker": {
"placeholder": "Hexfärg"
},
"state": {
"loading": "Läser in…"
},
"dataTable": {
"empty": "Ingen data hittades.",
"pagination": {
"showingPage": "Visar sida {{current}} av {{total}}",
"showingPageShort": "s {{current}}/{{total}}",
"rowsPerPage": "Rader per sida",
"perPage": "{{size}} / sida",
"perPageShort": "{{size}}/s",
"first": "Första",
"prev": "Föreg.",
"next": "Nästa",
"last": "Sista"
}
},
"pagination": {
"label": "Sidnumrering",
"previous": "Föregående",
"next": "Nästa",
"morePages": "Fler sidor",
"goToPrevious": "Gå till föregående sida",
"goToNext": "Gå till nästa sida"
},
"carousel": {
"previous": "Föregående bild",
"next": "Nästa bild"
},
"breadcrumb": {
"more": "Mer"
},
"theme": {
"toggle": "Växla färgläge"
},
"error": {
"forbidden": {
"title": "Obehörig åtkomst",
"description": "Du har inte behörighet att utföra denna åtgärd.",
"hint": "Om du tror att detta är ett fel, kontakta din ansvariga person."
},
"unauthorized": {
"title": "Ogiltiga inloggningsuppgifter",
"description": "Din åtkomsttoken har gått ut",
"hint": "Logga in igen"
},
"server": {
"title": "Serverfel"
}
},
"logo": {
"icon": "Officer-ikon",
"logo": "Officer-logotyp"
}
}
@@ -4,6 +4,7 @@ import enGB from './en-GB.json';
import esES from './es-ES.json';
import frFR from './fr-FR.json';
import ptPT from './pt-PT.json';
import svSE from './sv-SE.json';
/** Panel apps' own catalog, per locale — merged into the app-wide map by `I18nBridge` under `panel.*`. */
export const panelCatalogs: TranslationMap = {
@@ -12,6 +13,7 @@ export const panelCatalogs: TranslationMap = {
'es-ES': esES,
'de-DE': deDE,
'fr-FR': frFR,
'sv-SE': svSE,
};
export { useTranslation } from './useTranslation';
@@ -0,0 +1,643 @@
{
"common": {
"save": "Spara",
"delete": "Ta bort"
},
"qrTransfer": {
"chooseFile": "Välj en fil att skicka",
"startScanning": "Börja skanna",
"receiveAnother": "Ta emot en till",
"stop": "Stoppa"
},
"dav": {
"empty": "Inget här än. Lägg till en från en telefon eller stationär klient via CalDAV/CardDAV.",
"calendar": "Kalender",
"contacts": "Kontakter",
"readFailed": "Det gick inte att läsa {{name}}: {{reason}}"
},
"terminal": {
"title": "Terminal",
"find": "Sök",
"runningShells": "Körande skal",
"loading": "Läser in…",
"noShells": "Inga skal körs.",
"refresh": "Uppdatera",
"kill": "Döda detta skal"
},
"appStore": {
"loading": "Läser in",
"loadFailed": "Det gick inte att läsa in appbutiken.",
"installed": "Installerad",
"available": "Tillgänglig",
"needsYou": "Behöver dig",
"needsYouShort": "behöver dig",
"selectApp": "Välj en app",
"installFailed": "Installationen misslyckades",
"uninstall": "Avinstallera",
"enable": "Aktivera",
"disable": "Inaktivera",
"enabled": "aktiverad",
"disabled": "inaktiverad",
"removalNote": "Att inaktivera stoppar sidovagnen och dess container. Att avinstallera tar också bort containrarna — din data, konfiguration och den här appens tabeller sparas i båda fallen.",
"installing": "installerar",
"failed": "misslyckades",
"installedIcon": "installerad"
},
"systemMonitor": {
"cpuPackage": "CPU-paket",
"user": "Användare",
"cpuPct": "CPU%",
"memPct": "MEM%",
"command": "Kommando",
"memory": "Minne",
"disks": "Diskar",
"temperature": "Temperatur",
"network": "Nätverk",
"power": "Ström",
"topProcesses": "Mest aktiva processer",
"filterPlaceholder": "filtrera namn eller image…",
"name": "Namn",
"status": "Status",
"mem": "Minne",
"uptime": "Drifttid",
"scopeDockers": "dockers"
},
"codeEditor": {
"closeFile": "Stäng {{name}}",
"loading": "Läser in…",
"noFiles": "Inga filer",
"explorer": "Utforskare",
"openAFile": "Öppna en fil från utforskaren för att börja redigera",
"refresh": "Uppdatera trädet och läs om oförändrade öppna filer",
"readFailed": "Det gick inte att läsa filen",
"saved": "Filen sparad",
"saveFailed": "Det gick inte att spara filen",
"title": "Kodeditor"
},
"widgets": {
"resync": "Synka om widgetar (läs om för att fånga upp nyligen distribuerade widgetar)"
},
"preview": {
"title": "Förhandsgranskning",
"reload": "Läs om",
"changeUrl": "Ändra URL",
"openNewTab": "Öppna i en ny flik",
"pointAtApp": "Peka den här panelen mot en körande app",
"open": "Öppna",
"hint": "Allt webbläsaren kan nå. Det stannar kvar på den här panelen och överlever en omläsning.",
"connecting": "Ansluter…"
},
"sendOff": {
"files": "Filer",
"where": "Vart",
"loading": "Läser in…",
"landsIn": "Hamnar i deras",
"landedIn": "Hamnade i",
"whoMaySend": "Vem som får skicka till mig",
"allowedLandIn": "Filer från alla du tillåter hamnar i",
"removeFile": "Ta bort {{name}}",
"sendTo": "Skicka till {{name}}",
"turningOff": "Att stänga av någon stoppar framtida sändningar och lämnar det de redan skickat orört."
},
"panelName": {
"appStore": "Appbutik",
"appDetail": "Appdetaljer",
"calendar": "Kalender",
"contacts": "Kontakter",
"categories": "Kategorier",
"chat": "Chatt",
"chatSessions": "Sessioner",
"codeEditor": "Kodeditor",
"commander": "Commander",
"commanders": "Commanders",
"dashboardPreview": "Dashboard-förhandsgranskning",
"dashboards": "Dashboards",
"fileBrowser": "Filhanterare",
"pluginDetail": "Plugin-detaljer",
"plugins": "Plugins",
"preview": "Förhandsgranskning",
"qrReceive": "QR-mottagning",
"qrSend": "QR-sändning",
"scope": "Omfattning",
"systemMonitor": "Systemövervakning",
"widgets": "Widgetar",
"terminal": "Terminal",
"hostTerminal": "Värdterminal",
"runningShells": "Körande skal",
"pm2Processes": "pm2-processer"
},
"dashboards": {
"title": "Dashboards",
"new": "Ny dashboard",
"delete": "Ta bort dashboard",
"confirmDelete": "Är du säker på att du vill ta bort",
"search": "Sök dashboards",
"name": "Namn",
"description": "Beskrivning",
"open": "Öppna dashboard",
"selectOne": "Välj en dashboard eller skapa en ny",
"namePlaceholder": "Min Dashboard",
"descriptionPlaceholder": "Vad är den här dashboarden till för?",
"template": "Mall",
"create": "Skapa",
"templates": {
"single": "Enkel",
"twoColumns": "2 kolumner",
"mainSide": "Huvud + sido",
"sidebar": "Sidopanel",
"grid": "2x2-rutnät",
"colsBottom": "Kolumner + botten"
}
},
"fileViewer": {
"readAloud": "Läs upp",
"ocr": "Extrahera text (OCR)",
"transcribe": "Transkribera",
"extractAudio": "Extrahera ljud",
"extract": "Extrahera",
"saveNextTo": "Spara bredvid originalet",
"download": "Ladda ner",
"pdfViewer": "PDF-visare",
"videoFailed": "Det gick inte att läsa in videon",
"imageFailed": "Det gick inte att läsa in bilden",
"audioFailed": "Det gick inte att läsa in ljudfilen",
"audioTrack": "Ljudspår",
"subtitles": "Undertexter",
"track": "Spår {{n}}",
"saved": "Filen sparad",
"saveFailed": "Det gick inte att spara filen",
"scrollTop": "Rulla till toppen",
"speechFailed": "Det gick inte att generera talljud",
"ocrFailed": "Det gick inte att extrahera text från bilden",
"transcribeFailed": "Det gick inte att transkribera ljudet",
"extractAudioFailed": "Det gick inte att extrahera ljud från videon",
"extractFailed": "Det gick inte att extrahera arkivet",
"savedAs": "Sparad som ”{{name}}”",
"extractedTo": "Extraherad till ”{{name}}”",
"downloadInstead": "Ladda ner i stället",
"archiveFile": "Arkivfil"
},
"plugins": {
"loading": "Läser in…",
"onThisMachine": "På den här maskinen",
"noPluginsIn": "Inga plugins i",
"available": "Tillgänglig",
"needsOnThisMachine": "Behöver på den här maskinen",
"install": "Installera",
"clonesInto": "Klonar förvaret till",
"deleteData": "Ta även bort all dess data",
"noTables": "Denna plugin deklarerar inga tabeller, så det finns ingen data att spara.",
"selectOne": "Välj en plugin.",
"disable": "Inaktivera",
"enable": "Aktivera",
"publisher": "Utgivare",
"version": "Version",
"needsPlatform": "Behöver plattform",
"wouldMount": "Skulle montera",
"ships": "Levererar",
"permissions": "Behörigheter",
"source": "Källa",
"mountsAt": "Monteras på",
"sidecar": "Sidovagn",
"deleteNamed": "Ta bort {{name}}",
"updateTo": "Uppdatera till {{version}}"
},
"commandHq": {
"selectOne": "Välj en commander, eller starta en ny.",
"startConversation": "Starta konversationen",
"name": "Namn",
"nameHint": "Används för konversationen från start, i stället för att harnesset döper den efter ditt första meddelande.",
"referencePath": "Referenssökväg",
"referencePathHint": "Vad denna commander bevakar eller arbetar med — inte var den bor. Den kan lägga till fler av dessa själv när den väl körs.",
"new": "Ny commander",
"spawned": "Startade",
"deleteQ": "Ta bort?",
"uncategorised": "Okategoriserad",
"loading": "Läser in…",
"platformDeploys": "Plattformsdistributioner",
"endSession": "Avsluta session — släpper den så den kan återupptas någon annanstans",
"confirmDeleteHint": "Bekräfta borttagning — tar även bort konversationen, inte bara Command HQ-posten",
"confirmDelete": "Bekräfta borttagning",
"cancelDelete": "Avbryt borttagning",
"deleteCommander": "Ta bort commander",
"none": "Inga commanders här än.",
"startOne": "Starta en",
"confirmDeleteNamed": "Bekräfta borttagning av {{name}}",
"deleteNamed": "Ta bort {{name}}",
"categories": "Kategorier",
"noCategories": "Inga kategorier än",
"newCategory": "Ny kategori",
"allCommanders": "Alla commanders",
"categoryName": "Kategorinamn",
"guide": {
"whatIsIt": "Vad en commander är",
"starting": "Starta en",
"examples": "Exempel på ett första meddelande",
"whileRunning": "Medan den körs",
"whatIsItBody1": "En agent som fortsätter arbeta när du inte är här — den väntar på att något ska hända, agerar på det, och rapporterar tillbaka.",
"whatIsItBody2": "Det är en vanlig konversation. Du börjar med att berätta vad den ska bevaka och vad den ska göra åt det, med dina egna ord.",
"startingBody1": "Beskriv jobbet här, precis som du skulle till vem som helst. Säg vad den ska bevaka, var, och vad den ska göra när det utlöses.",
"startingBody2": "TODO: de konkreta stegen, när skapandeflödet är fastställt. Detta ersätter ”öppna bakgrundsjobbsdialogen och aktivera en bevakare”, vilket ingen kunde förväntas gissa sig till.",
"examplesBody1": "TODO: två eller tre exempel på inledande prompter, när skapandeflödet är fastställt. De är det som gör ”beskriv jobbet” till något en förstagångsanvändare kan agera på, i stället för bara en instruktion.",
"whileRunningBody1": "TODO: vad ägaren ser — var kostnaden visas, hur man läser vad dess startade agenter gör, och hur man stoppar den.",
"draft": "utkast"
},
"startHint": "Den tittar på det du pekade den mot, och frågar dig sedan vad den ska bevaka.",
"startBlocked": "{{missing}} — sedan startar detta den.",
"confirmDeletingNamed": "Bekräfta borttagning av {{name}}"
},
"chatHistory": {
"newChat": "Ny chatt",
"tryAgain": "Försök igen",
"refresh": "Uppdatera",
"refreshSessions": "Uppdatera sessioner",
"newChatInDir": "Ny chatt i en katalog…",
"loadFailed": "Det gick inte att läsa in sessioner",
"reading": "Läser transkript…",
"noSessions": "Inga sessioner än",
"liveFailed": "Det gick inte att läsa live-sessioner",
"asking": "Frågar agenten…",
"tabs": {
"tree": "Träd",
"latest": "Senaste",
"live": "Live",
"agents": "Agenter",
"commanders": "Commanders"
},
"notifyPreference": "Notisinställning",
"notify": {
"everyTurn": "Vid varje turs slut",
"inputNeeded": "Bara när indata behövs",
"none": "Ingen"
},
"notificationsLabel": "Notiser: {{choice}}",
"chooseDir": "Välj en arbetskatalog",
"create": "Skapa",
"newFolder": "Ny mapp",
"selectFolder": "Välj denna mapp",
"newFolderName": "Nytt mappnamn",
"noSubfolders": {
"one": "Inga synliga undermappar — {{count}} dold mapp är filtrerad bort",
"other": "Inga synliga undermappar — {{count}} dolda mappar är filtrerade bort"
},
"showHidden": "Visa dolda",
"showHiddenCount": "Visa dolda ({{count}})",
"selectSession": "Välj en session att visa",
"endSession": "Avsluta session — dödar en pågående tur och släpper den så den kan återupptas någon annanstans",
"noReadable": "Inga läsbara konversationer här.",
"noConversations": "Inga konversationer än",
"newChatIn": "Ny chatt i {{path}}",
"sessionTitle": "Sessionstitel",
"saveTitle": "Spara titel",
"cancelRename": "Avbryt namnändring",
"confirmDelete": "Bekräfta borttagning",
"cancelDelete": "Avbryt borttagning",
"rename": "Byt namn",
"deleteSession": "Ta bort session",
"renameFailed": "Det gick inte att byta namn på sessionen: {{reason}}",
"deleteFailed": "Det gick inte att ta bort sessionen: {{reason}}",
"deleteAll": "Ta bort alla {{count}}?",
"confirmDeletingNamed": "Bekräfta borttagning av {{name}}",
"renameNamed": "Byt namn på {{name}}",
"deleteNamed": "Ta bort {{name}}",
"newChatTitle": "Ny chatt",
"renameHint": "Klicka för att byta namn på denna chatt",
"hideHidden": "Dölj dolda"
},
"chat": {
"newChat": "Ny chatt",
"rename": "Byt namn",
"deleteQ": "Ta bort ”{{title}}”?",
"duplicateAgent": "Det finns redan en agent som heter ”{{name}}” på denna dashboard",
"composerPlaceholder": "Vad vill du jobba på nu?",
"turnFinished": "Turen avslutad · inget avslutande meddelande",
"job": {
"title": "Bakgrundsjobb",
"runsIn": "Körs i",
"command": "Kommando — kör exakt detta",
"prompt": "Prompt — beskriv det, agenten löser det",
"watch": "Bevaka något",
"watchHint": "I löptext. Agenten frågar innan den aktiveras om något är oklart.",
"handBack": "Avsluta och lämna tillbaka till agenten, aktivera sedan igen",
"keepGoing": "Fortsätt — agera varje gång och kör vidare",
"stopAfter": "Stoppa efter",
"start": "Starta",
"watchExample": "bevaka våra Gitea-förvar; vid varje ny push, hämta den och push:a till GitHub-spegeln",
"startJob": "Starta ett bakgrundsjobb eller en bevakare"
},
"tasks": {
"restart": "Starta om",
"pinned": "Fäst",
"clearFinished": "Rensa alla avslutade",
"clearFinishedTasks": "Rensa alla avslutade uppgifter",
"stopJob": "Stoppa detta jobb",
"dismiss": "Avfärda",
"rerun": "Stoppa det och kör samma kommando igen",
"collapse": "Fäll ihop",
"collapseDetail": "Fäll ihop uppgiftsdetaljer",
"stopNamed": "Stoppa {{label}}",
"dismissNamed": "Avfärda {{label}}",
"status": "Uppgift {{status}}."
},
"usage": {
"noSignIn": "Ingen sparad inloggning — kör /login för att använda den här",
"updating": "Uppdaterar…",
"unreadable": "Kunde inte läsa användning på den här maskinen.",
"loading": "Läser in…",
"limits": "Gränser",
"byDay": "Tokens per dag",
"byModel": "Tokens per modell",
"title": "Användning och gränser",
"modelBreakdown": "In {{input}} · ut {{output}} · cacheläsning {{cacheRead}} · cacheskrivning {{cacheWrite}}",
"switchTo": "Byt till {{account}}",
"switchToOrg": "Byt till {{account}} ({{org}})",
"signInExpired": "{{account}} — inloggningen har gått ut, kör /login"
},
"attach": {
"image": "Bild",
"textFile": "Textfil",
"webpageUrl": "Webbsidans URL",
"attach": "Bifoga",
"readFailed": "Det gick inte att läsa {{name}}: {{reason}}",
"unknownError": "okänt fel",
"webpageTitle": "Bifoga webbsida",
"webpageHint": "Ange en URL att skrapa och bifoga som kontext.",
"scrapeFailed": "Det gick inte att skrapa webbsidan",
"uploadFailed": "Det gick inte att ladda upp bilden",
"dropImages": "Släpp bilder för att bifoga"
},
"signIn": {
"title": "Logga in på Claude",
"done": "Inloggad. Nya turer använder dessa inloggningsuppgifter — ingen omstart behövs.",
"asking": "Frågar CLI:n efter en inloggningslänk…",
"openHint": "Öppna den här, godkänn, och klistra tillbaka koden du får.",
"authorise": "Godkänn på claude.com",
"copyLink": "Kopiera länken, för att öppna den i en annan webbläsare eller på din telefon",
"pasteCode": "klistra in koden"
},
"message": {
"copyCode": "Kopiera koden",
"copyMarkdown": "Kopiera som ett markdown-block",
"showMore": "Visa mer ({{count}} rader till)",
"subagent": "Underagent",
"outputError": "Utdata — fel",
"contextCleared": "Kontexten rensad — inget ovanför detta finns kvar i minnet",
"interrupted": "Avbruten av användaren",
"agentRestarted": "Agenten omstartad — turen avbröts",
"retry": "Försök igen",
"planUnchanged": "Planläge oförändrat",
"approve": "Godkänn",
"frontmatter": "Frontmatter",
"systemPrompt": "Systemprompt",
"reviseHint": "Vad ska ändras? Agenten omarbetar planen utifrån detta.",
"waiting": "Väntar på ett svar",
"narrationFailed": "Uppläsningen genererades men kunde inte spelas upp.",
"readAloudFailed": "Det gick inte att läsa upp detta meddelande: {{reason}}",
"compacted": "Kontexten komprimerad",
"compactedAuto": "Kontexten komprimerad automatiskt",
"answerSent": "Svar skickat — väntar på agenten",
"other": "Annat..."
},
"composer": {
"stop": "Stoppa",
"sendIntoTurn": "Skicka dessa till turen som redan körs",
"removeFromQueue": "Ta bort från kön",
"send": "Skicka",
"startHint": "Skicka ett meddelande för att börja",
"jumpToLatest": "Hoppa till senaste meddelandet",
"noAudio": "Inget ljud spelades in"
},
"agent": {
"gone": "Den här panelens agent finns inte längre.",
"forget": "Glöm den",
"name": "Namnge denna agent",
"peers": "Motparter: {{names}}"
},
"copy": "Kopiera"
},
"files": {
"folderGone": "Den mappen är borta — tillbaka till starten",
"searchFailed": "Sökningen misslyckades",
"createFolderFailed": "Det gick inte att skapa mappen",
"createFileFailed": "Det gick inte att skapa filen",
"uploadFailed": "Det gick inte att ladda upp filerna",
"renameFailed": "Det gick inte att byta namn",
"deleteFailed": "Det gick inte att ta bort",
"deleteSomeFailed": "Det gick inte att ta bort vissa objekt",
"downloadFailed": "Det gick inte att ladda ner",
"pathCopied": "Sökvägen kopierad",
"generatingSpeech": "Genererar talljud…",
"speechFailed": "Det gick inte att generera talljud",
"extracting": "Extraherar arkiv…",
"extractFailed": "Det gick inte att extrahera arkivet",
"cloned": "Förvaret klonat",
"cloneFailed": "Det gick inte att klona förvaret",
"cloning": "Klonar…",
"duplicateFailed": "Det gick inte att duplicera",
"compressing": "Komprimerar…",
"compressFailed": "Det gick inte att komprimera",
"pasteFailed": "Det gick inte att klistra in",
"pasteNeedsSecure": "Att klistra in från urklipp kräver en säker kontext (https). Dra in filen i stället.",
"copiedItems": {
"one": "Kopierade {{count}} objekt",
"other": "Kopierade {{count}} objekt"
},
"cutItems": {
"one": "Klippte ut {{count}} objekt",
"other": "Klippte ut {{count}} objekt"
},
"pastedItems": {
"one": "Klistrade in {{count}} objekt",
"other": "Klistrade in {{count}} objekt"
},
"uploadedFiles": {
"one": "Laddade upp {{count}} fil",
"other": "Laddade upp {{count}} filer"
},
"deleteItemsQ": {
"one": "Ta bort {{count}} objekt?",
"other": "Ta bort {{count}} objekt?"
},
"deletedItems": {
"one": "Tog bort {{count}} objekt",
"other": "Tog bort {{count}} objekt"
},
"createdFolder": "Skapade mappen ”{{name}}”",
"created": "Skapade ”{{name}}”",
"renamedTo": "Bytte namn till ”{{name}}”",
"deleteQ": "Ta bort ”{{name}}”?",
"deleted": "Tog bort ”{{name}}”",
"extractedTo": "Extraherad till ”{{name}}”",
"duplicated": "Duplicerade ”{{name}}”",
"pastedInto": "Klistrade in i ”{{name}}”",
"unpinned": "Lossade ”{{name}}”",
"pinned": "Fäste ”{{name}}”",
"menu": {
"copyPath": "Kopiera sökväg",
"chatAboutThis": "Chatta om detta",
"paste": "Klistra in",
"newFile": "Ny fil",
"newFolder": "Ny mapp",
"uploadFiles": "Ladda upp filer",
"uploadFolder": "Ladda upp mapp",
"cloneRepository": "Klona förvar",
"hideHiddenFiles": "Dölj dolda filer",
"showHiddenFiles": "Visa dolda filer",
"createDashboardHere": "Skapa dashboard här",
"downloadVideo": "Ladda ner video",
"dictate": "Diktera",
"dropToUpload": "Släpp filer för att ladda upp",
"openFolder": "Öppna mapp",
"showLocation": "Visa plats",
"download": "Ladda ner",
"noResults": "Inga resultat hittades",
"open": "Öppna",
"openInEditor": "Öppna i editorn",
"openInEditorTooLarge": "Öppna i editorn (för stor)",
"pasteIntoFolder": "Klistra in i mapp",
"readAloud": "Läs upp",
"extract": "Extrahera",
"runTask": "Kör uppgift",
"runAgent": "Kör agent",
"cut": "Klipp ut",
"copy": "Kopiera",
"duplicate": "Duplicera",
"rename": "Byt namn",
"compress": "Komprimera",
"compressSelection": "Komprimera markering",
"unpin": "Lossa",
"pin": "Fäst",
"chat": "Chatta...",
"delete": "Ta bort",
"gitClone": "Git-klon",
"searchFiles": "Sök filer...",
"clearSelection": "Rensa markering",
"selected": {
"one": "vald",
"other": "valda"
},
"refresh": "Uppdatera"
},
"grid": {
"empty": "Denna mapp är tom",
"sort": "Sortera:",
"folderType": "Mapp",
"name": "Namn",
"type": "Typ",
"size": "Storlek",
"date": "Datum"
}
},
"taskRunner": {
"stop": "Stoppa",
"taskFailed": "Uppgiften misslyckades",
"taskComplete": "Uppgiften klar",
"noSubtitles": "Inga undertexter",
"none": "Ingen",
"noVideos": "Inga videor hittades i denna mapp.",
"differentLayout": "Annan layout — kör dessa separat:",
"skipped": "Hoppade över (konvertera separat):",
"analyzing": "Analyserar filer…",
"close": "Stäng",
"runningOn": "Körs på",
"queue": "Kö",
"concurrency": "Samtidighet",
"model": "Modell",
"steps": "Steg",
"stopPipeline": "Stoppa pipeline",
"pipelineFailed": "Pipeline misslyckades",
"pipelineComplete": "Pipeline klar",
"viewInJobs": "Visa i Jobb",
"copyOutput": "Kopiera utdata",
"track": "Spår {{n}}",
"runFromStep": "Kör från steg {{n}}"
},
"newEntry": {
"nameReserved": "Det namnet är reserverat",
"nameSlash": "Namnet får inte innehålla \"/\"",
"nameExists": "\"{{name}}\" finns redan här",
"urlSpaces": "En URL kan inte innehålla mellanslag",
"cancel": "Avbryt",
"file": {
"title": "Ny fil",
"description": "Inkludera filändelsen — det är vad editorn använder för att välja språk. Den öppnas när den skapats.",
"label": "Filnamn",
"placeholder": "notes.txt",
"submit": "Skapa och öppna"
},
"folder": {
"title": "Ny mapp",
"description": "Skapas i mappen du tittar på.",
"label": "Mappnamn",
"placeholder": "documents",
"submit": "Skapa mapp"
},
"clone": {
"title": "Klona förvar",
"description": "Klonas till mappen du tittar på, under sitt eget namn.",
"label": "Förvarets URL",
"placeholder": "https://github.com/owner/repo.git",
"submit": "Klona"
}
},
"videoDownload": {
"title": "Ladda ner video",
"descriptionInput": "Klistra in en video- eller spellista-URL — den hämtar detaljer innan nedladdning.",
"descriptionPreview": "Granska och ladda ner.",
"urlPlaceholder": "https://www.youtube.com/watch?v=… eller …/playlist?list=…",
"audioOnly": "Extrahera endast ljud (mp3)",
"fetch": "Hämta",
"back": "Tillbaka",
"audioOnlyLabel": "Endast ljud",
"video": "Video",
"itemCount": {
"one": "{{count}} objekt",
"other": "{{count}} objekt"
},
"subfolderPlaceholder": "Undermapp (valfritt) — lämna tomt för denna mapp",
"downloadAll": "Ladda ner alla",
"couldNotFetch": "Det gick inte att hämta",
"downloading": "Laddar ner…",
"saving": "Sparar…",
"saved": "Sparad",
"retry": "Försök igen",
"download": "Ladda ner",
"couldNotFetchInfo": "Det gick inte att hämta information",
"timedOut": "Tidsgränsen överskreds",
"downloadFailed": "Nedladdningen misslyckades",
"couldNotStart": "Det gick inte att starta nedladdningen"
},
"fileBrowserWidget": {
"title": "Filhanterare",
"search": "Sök...",
"browse": "Bläddra",
"recent": "Senaste",
"pinned": "Fäst",
"noResults": "Inga resultat",
"emptyDirectory": "Tom katalog",
"noPinnedFiles": "Inga fästa filer",
"noRecentFiles": "Inga senaste filer",
"uploading": "Laddar upp...",
"empty": "Denna mapp är tom",
"sort": "Sortera:"
},
"agentRunner": {
"agentRunning": "Agenten körs",
"keepsGoing": "Den fortsätter oavsett om den här är öppen. Följ den i chatten — senaste sessionen överst.",
"openChat": "Öppna chatt",
"target": "Mål",
"starting": "Startar…",
"runAgent": "Kör agent",
"startFailed": "Det gick inte att starta agenten"
},
"dictate": {
"title": "Diktera",
"description": "Spelar in ljud. Tryck Enter eller klicka Stoppa för att spara.",
"recording": "Spelar in...",
"startingStatus": "Startar...",
"stopSave": "Stoppa och spara",
"noAudioCaptured": "Inget ljud spelades in",
"micAccessFailed": "Det gick inte att komma åt mikrofonen",
"recordingFailed": "Inspelningen misslyckades"
}
}