Adding Swedish language translation (#1113)

This commit is contained in:
MOHAMMAD ALBARHAM 2026-03-22 12:11:04 +01:00 committed by GitHub
parent 17277cf6ce
commit 05f6bdfb50
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 597 additions and 0 deletions

View file

@ -33,4 +33,5 @@ export const LANGUAGE_METADATA: Record<
cs: { name: "Czech", nativeName: "Čeština", priority: 15 },
tr: { name: "Turkish", nativeName: "Türkçe", priority: 16 },
ar: { name: "Arabic", nativeName: "العربية", priority: 17, direction: "rtl" },
sv: { name: "Swedish", nativeName: "Svenska", priority: 18 },
};

View file

@ -0,0 +1,596 @@
{
"tray": {
"settings": "Inställningar...",
"checkUpdates": "Sök efter uppdateringar...",
"copyLastTranscript": "Kopiera senaste transkriptionen",
"unloadModel": "Avlasta modell",
"model": "Modell",
"quit": "Avsluta",
"cancel": "Avbryt"
},
"sidebar": {
"general": "Allmänt",
"models": "Modeller",
"advanced": "Avancerat",
"postProcessing": "Efterbearbetning",
"history": "Historik",
"debug": "Felsökning",
"about": "Om"
},
"onboarding": {
"subtitle": "För att komma igång, välj en transkriptionsmodell",
"recommended": "Rekommenderat",
"download": "Ladda ner",
"downloading": "Laddar ner...",
"customModelDescription": "Stöds inte officiellt",
"downloadFailed": "Nedladdningen misslyckades. Försök igen.",
"modelCard": {
"accuracy": "noggrannhet",
"speed": "hastighet"
},
"models": {
"small": {
"name": "Whisper Small",
"description": "Snabb och ganska noggrann."
},
"medium": {
"name": "Whisper Medium",
"description": "Bra noggrannhet, medelhög hastighet"
},
"turbo": {
"name": "Whisper Turbo",
"description": "Balanserad noggrannhet och hastighet."
},
"large": {
"name": "Whisper Large",
"description": "Bra noggrannhet, men långsam."
},
"parakeet-tdt-0.6b-v2": {
"name": "Parakeet V2",
"description": "Endast engelska. Den bästa modellen för engelsktalande."
},
"parakeet-tdt-0.6b-v3": {
"name": "Parakeet V3",
"description": "Snabb och noggrann"
},
"moonshine-base": {
"name": "Moonshine Base",
"description": "Mycket snabb, endast engelska. Hanterar accenter bra."
},
"moonshine-tiny-streaming-en": {
"name": "Moonshine V2 Tiny",
"description": "Blixtsnabb, endast engelska"
},
"moonshine-small-streaming-en": {
"name": "Moonshine V2 Small",
"description": "Snabb, endast engelska. Bra balans mellan hastighet och noggrannhet."
},
"moonshine-medium-streaming-en": {
"name": "Moonshine V2 Medium",
"description": "Endast engelska. Hög kvalitet."
},
"breeze-asr": {
"name": "Breeze ASR",
"description": "Optimerad för taiwanesisk mandarin. Stöd för kodväxling."
},
"sense-voice-int8": {
"name": "SenseVoice",
"description": "Mycket snabb. Kinesiska, engelska, japanska, koreanska, kantonesiska."
},
"gigaam-v3-e2e-ctc": {
"name": "GigaAM v3",
"description": "Rysk taligenkänning. Snabb och noggrann."
},
"canary-180m-flash": {
"name": "Canary 180M Flash",
"description": "Mycket snabb. Engelska, tyska, spanska, franska. Stöder översättning."
},
"canary-1b-v2": {
"name": "Canary 1B v2",
"description": "Noggrann flerspråkig. 25 europeiska språk. Stöder översättning."
}
},
"errors": {
"loadModels": "Misslyckades med att ladda tillgängliga modeller",
"downloadModel": "Misslyckades med att ladda ner modell: {{error}}"
},
"permissions": {
"title": "Behörigheter krävs",
"description": "Handy behöver ett par behörigheter för att fungera korrekt.",
"microphone": {
"title": "Mikrofonåtkomst",
"description": "Krävs för att höra din röst för transkription."
},
"accessibility": {
"title": "Hjälpmedelsåtkomst",
"description": "Krävs för att skriva transkriberad text i dina program."
},
"grant": "Bevilja behörighet",
"granted": "Beviljad",
"waiting": "Väntar...",
"allGranted": "Allt klart!",
"errors": {
"checkFailed": "Misslyckades med att kontrollera behörigheter. Försök igen.",
"requestFailed": "Misslyckades med att begära behörighet. Försök igen."
}
}
},
"modelSelector": {
"custom": "Anpassad",
"active": "Aktiv",
"switching": "Byter...",
"noModelsAvailable": "Inga modeller tillgängliga",
"verifying": "Verifierar {{modelName}}...",
"verifyingGeneric": "Verifierar...",
"extracting": "Extraherar {{modelName}}...",
"extractingMultiple": "Extraherar {{count}} modeller...",
"extractingGeneric": "Extraherar...",
"downloading": "Laddar ner {{percentage}}%",
"downloadingMultiple": "Laddar ner {{count}} modeller...",
"modelReady": "Modell klar",
"loading": "Laddar {{modelName}}...",
"loadingGeneric": "Laddar...",
"modelError": "Modellfel",
"modelUnloaded": "Modell avlastad",
"noModelDownloadRequired": "Ingen modell - Nedladdning krävs",
"deleteModel": "Ta bort {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
"cancel": "Avbryt",
"cancelDownload": "Avbryt nedladdning",
"capabilities": {
"languageSelection": "Stöder flera indataspråk",
"singleLanguage": "Stöder endast detta språk",
"multiLanguage": "Flerspråkig",
"languageOnly": "Endast {{language}}",
"translation": "Kan översätta till engelska",
"translate": "Översätt till engelska"
}
},
"settings": {
"modelSettings": {
"title": "{{model}}-inställningar",
"noSettingsNeeded": "Denna modell fungerar automatiskt utan att någon konfiguration krävs."
},
"general": {
"title": "Allmänt",
"shortcut": {
"title": "Handy-kortkommandon",
"description": "Konfigurera kortkommandon för att starta tal-till-text-inspelning",
"loading": "Laddar kortkommandon...",
"none": "Inga kortkommandon konfigurerade",
"notFound": "Kortkommando hittades inte",
"pressKeys": "Tryck på tangenter...",
"bindings": {
"transcribe": {
"name": "Kortkommando för transkribering",
"description": "Kortkommandot för att spela in och transkribera din röst."
},
"cancel": {
"name": "Kortkommando för att avbryta",
"description": "Kortkommandot för att avbryta den aktuella inspelningen."
},
"transcribe_with_post_process": {
"name": "Snabbkommando för efterbearbetning",
"description": "Valfritt: En dedikerad snabbknapp som alltid tillämpar AI-efterbearbetning på din transkription."
}
},
"errors": {
"restore": "Misslyckades med att återställa ursprungligt kortkommando",
"set": "Misslyckades med att ställa in kortkommando: {{error}}",
"reset": "Misslyckades med att återställa kortkommando till ursprungsvärdet"
}
},
"language": {
"title": "Språk",
"description": "Välj språk för taligenkänning. Auto kommer automatiskt att bestämma språket, medan val av ett specifikt språk kan förbättra noggrannheten för det språket.",
"descriptionUnsupported": "Parakeet-modellen upptäcker automatiskt språket. Inget manuellt val behövs.",
"searchPlaceholder": "Sök språk...",
"noResults": "Inga språk hittades",
"auto": "Auto"
},
"pushToTalk": {
"label": "Tryck för att tala",
"description": "Håll ned för att spela in, släpp för att stoppa"
}
},
"models": {
"title": "Transkriptionsmodeller",
"description": "Välj en transkriptionsmodell eller ladda ner ytterligare modeller. Olika modeller erbjuder varierande nivåer av noggrannhet och hastighet.",
"yourModels": "Nedladdade modeller",
"availableModels": "Tillgängliga att ladda ner",
"downloaded": "Nedladdad",
"available": "Tillgänglig att ladda ner",
"deleteConfirm": "Är du säker på att du vill ta bort {{modelName}}? Du måste ladda ner den igen för att använda den.",
"deleteActiveConfirm": "{{modelName}} är din aktiva modell. Om du tar bort den avbryts transkriptioner tills du väljer en ny modell. Är du säker?",
"deleteTitle": "Ta bort modell",
"filters": {
"all": "Alla",
"multiLanguage": "Flerspråkig",
"translation": "Översättning",
"allLanguages": "Alla språk"
},
"noModelsMatch": "Inga modeller matchar detta filter."
},
"sound": {
"title": "Ljud",
"microphone": {
"title": "Mikrofon",
"description": "Välj din föredragna mikrofonenhet",
"placeholder": "Välj mikrofon...",
"loading": "Laddar..."
},
"audioFeedback": {
"label": "Ljudåterkoppling",
"description": "Spela upp ljud när inspelningen startar och stoppar"
},
"outputDevice": {
"title": "Utmatningsenhet",
"description": "Välj din föredragna ljudutmatningsenhet för återkopplingsljud",
"placeholder": "Välj utmatningsenhet...",
"loading": "Laddar..."
},
"volume": {
"title": "Volym",
"description": "Justera volymen för ljudåterkopplingsljud"
}
},
"advanced": {
"title": "Avancerat",
"groups": {
"app": "App",
"output": "Utmatning",
"transcription": "Transkription",
"history": "Historik",
"experimental": "Experimentellt"
},
"experimentalToggle": {
"label": "Experimentella funktioner",
"description": "Aktivera experimentella funktioner som fortfarande är under utveckling."
},
"lazyStreamClose": {
"label": "Håll mikrofonen öppen mellan transkriptioner",
"description": "Håller mikrofonströmmen öppen i 30 sekunder efter att inspelningen avslutats, vilket minskar latensen för transkriptioner efter varandra. Kan försämra Bluetooth-ljudkvaliteten medan den är aktiv."
},
"acceleration": {
"whisper": {
"title": "Whisper-acceleration",
"description": "Hårdvaruacceleration för Whisper-modeller. Auto använder GPU om tillgängligt (Metal på macOS, Vulkan på Windows/Linux)."
},
"ort": {
"title": "ONNX-acceleration",
"description": "Hårdvaruacceleration för ONNX-modeller (Parakeet, Canary, Moonshine, etc.). DirectML på Windows är experimentellt. Modeller kan misslyckas med att transkribera."
}
},
"startHidden": {
"label": "Starta dold",
"description": "Starta i systemfältet utan att öppna fönstret."
},
"autostart": {
"label": "Starta vid uppstart",
"description": "Starta Handy automatiskt när du loggar in på din dator."
},
"showTrayIcon": {
"label": "Visa ikon i systemfältet",
"description": "Visa Handy-ikonen i systemfältet."
},
"overlay": {
"title": "Överlagringsposition",
"description": "Visa visuell återkoppling under inspelning och transkription. På Linux rekommenderas 'Ingen'.",
"options": {
"none": "Ingen",
"bottom": "Nederst",
"top": "Överst"
}
},
"pasteMethod": {
"title": "Klistra-in-metod",
"description": "Välj hur text infogas. Direkt: simulerar skrivande via systeminmatning. Ingen: hoppar över klistra in, uppdaterar endast historik/urklipp.",
"options": {
"clipboard": "Urklipp ({{modifier}}+V)",
"clipboardCtrlShiftV": "Urklipp (Ctrl+Shift+V)",
"clipboardShiftInsert": "Urklipp (Shift+Insert)",
"direct": "Direkt",
"none": "Ingen",
"externalScript": "Externt skript"
},
"externalScriptPlaceholder": "/sökväg/till/ditt/skript.sh"
},
"typingTool": {
"title": "Skrivverktyg",
"description": "Välj vilket Linux-skrivverktyg som ska användas för metoden Direkt klistra in. Auto kommer automatiskt att upptäcka och använda det bästa tillgängliga verktyget för ditt system.",
"options": {
"auto": "Auto (Rekommenderas)"
}
},
"clipboardHandling": {
"title": "Hantering av urklipp",
"description": "Ändra inte urklipp bevarar ditt nuvarande urklippsinnehåll efter transkription. Kopiera till urklipp lämnar transkriptionsresultatet i ditt urklipp efter att ha klistrat in.",
"options": {
"dontModify": "Ändra inte urklipp",
"copyToClipboard": "Kopiera till urklipp"
}
},
"autoSubmit": {
"title": "Skicka automatiskt",
"description": "Skicka automatiskt den valda tangentkombinationen efter textinsättning. Cmd+Enter gäller på macOS, medan Windows/Linux använder Super+Enter.",
"options": {
"off": "Av",
"enter": "Enter",
"cmdEnter": "Cmd+Enter",
"superEnter": "Super+Enter",
"ctrlEnter": "Ctrl+Enter"
}
},
"translateToEnglish": {
"label": "Översätt till engelska",
"description": "Översätt automatiskt tal från andra språk till engelska under transkription.",
"descriptionUnsupported": "Översättning stöds inte av {{model}}-modellen."
},
"modelUnload": {
"title": "Avlasta modell",
"description": "Frigör automatiskt GPU/CPU-minne när modellen inte har använts under den angivna tiden",
"options": {
"never": "Aldrig",
"immediately": "Omedelbart",
"min2": "Efter 2 minuter",
"min5": "Efter 5 minuter",
"min10": "Efter 10 minuter",
"min15": "Efter 15 minuter",
"hour1": "Efter 1 timme",
"sec15": "Efter 15 sekunder (Felsökning)"
}
},
"customWords": {
"title": "Anpassade ord",
"description": "Lägg till ord som ofta hörs fel eller stavas fel under transkription. Systemet kommer automatiskt att korrigera liknande ord för att matcha din lista.",
"placeholder": "Lägg till ett ord",
"add": "Lägg till",
"remove": "Ta bort {{word}}",
"duplicate": "\"{{word}}\" finns redan"
}
},
"postProcessing": {
"title": "Efterbearbetning",
"hotkey": {
"title": "Snabbkommando"
},
"api": {
"title": "API (OpenAI-kompatibelt)",
"provider": {
"title": "Leverantör",
"description": "Välj en OpenAI-kompatibel leverantör."
},
"appleIntelligence": {
"title": "Apple Intelligence",
"description": "Körs helt lokalt på enheten. Ingen API-nyckel eller nätverksåtkomst krävs.",
"requirements": "Kräver en Apple Silicon Mac som kör macOS Tahoe (26.0) eller senare. Apple Intelligence måste vara aktiverat i systeminställningarna.",
"unavailable": "Apple Intelligence är inte tillgängligt på den här enheten. Kräver en Apple Silicon Mac som kör macOS Tahoe (26.0) eller senare med Apple Intelligence aktiverat i systeminställningarna."
},
"baseUrl": {
"title": "Bas-URL",
"description": "API-bas-URL för den valda leverantören. Endast den anpassade leverantören kan redigeras.",
"placeholder": "https://api.openai.com/v1"
},
"apiKey": {
"title": "API-nyckel",
"description": "API-nyckel för den valda leverantören.",
"placeholder": "sk-..."
},
"model": {
"title": "Modell",
"descriptionApple": "Ange en valfri numerisk tokengräns eller behåll standardinställningen på enheten.",
"descriptionCustom": "Ange den modellidentifierare som förväntas av din anpassade slutpunkt.",
"descriptionDefault": "Välj en modell som exponeras av den valda leverantören.",
"placeholderApple": "Apple Intelligence",
"placeholderWithOptions": "Sök eller välj en modell",
"placeholderNoOptions": "Ange ett modellnamn",
"refreshModels": "Uppdatera modeller"
}
},
"prompts": {
"title": "Prompt",
"selectedPrompt": {
"title": "Vald prompt",
"description": "Välj en mall för att förfina transkriptioner eller skapa en ny. Använd ${output} inuti prompttexten för att referera till den fångade transkriptionen."
},
"noPrompts": "Inga prompter tillgängliga",
"selectPrompt": "Välj en prompt",
"createNew": "Skapa ny prompt",
"promptLabel": "Prompt-etikett",
"promptLabelPlaceholder": "Ange namn på prompt",
"promptInstructions": "Prompt-instruktioner",
"promptInstructionsPlaceholder": "Skriv instruktionerna som ska köras efter transkription. Exempel: Förbättra grammatik och tydlighet för följande text: ${output}",
"promptTip": "Tips: Använd <code>${output}</code> för att infoga den transkriberade texten i din prompt.",
"updatePrompt": "Uppdatera prompt",
"deletePrompt": "Ta bort prompt",
"createPrompt": "Skapa prompt",
"cancel": "Avbryt",
"selectToEdit": "Välj en prompt ovan för att visa och redigera dess detaljer.",
"createFirst": "Klicka på 'Skapa ny prompt' ovan för att skapa din första prompt för efterbearbetning."
}
},
"history": {
"title": "Historik",
"openFolder": "Öppna mapp för inspelningar",
"loading": "Laddar historik...",
"empty": "Inga transkriptioner ännu. Börja spela in för att bygga upp din historik!",
"copyToClipboard": "Kopiera transkription till urklipp",
"save": "Spara transkription",
"unsave": "Ta bort från sparade",
"delete": "Ta bort post",
"deleteError": "Misslyckades med att ta bort post. Försök igen.",
"retranscribe": "Transkribera igen",
"retranscribeError": "Misslyckades med att transkribera igen. Försök igen.",
"transcribing": "Transkriberar...",
"transcriptionFailed": "Transkribering misslyckades. Du kan transkribera igen med hjälp av ikonen för nytt försök."
},
"debug": {
"title": "Felsökning",
"logDirectory": {
"title": "Loggmapp",
"description": "Plats där loggfiler lagras"
},
"logLevel": {
"title": "Loggnivå",
"description": "Ställ in loggningens detaljrikedom"
},
"updateChecks": {
"label": "Sök efter uppdateringar",
"description": "Sök automatiskt efter nya versioner av Handy"
},
"soundTheme": {
"label": "Ljudtema",
"description": "Välj ett ljudtema för återkoppling vid start och stopp av inspelning"
},
"wordCorrectionThreshold": {
"title": "Tröskelvärde för ordkorrigering",
"description": "Känslighet för anpassade ordkorrigeringar"
},
"historyLimit": {
"title": "Historikgräns",
"description": "Maximalt antal historikposter som ska sparas",
"entries": "poster"
},
"recordingRetention": {
"title": "Radera inspelningar automatiskt",
"description": "Radera gamla inspelningar automatiskt för att spara utrymme",
"never": "Aldrig",
"preserveLimit": "Behåll de senaste {{count}}",
"days3": "Efter 3 dagar",
"weeks2": "Efter 2 veckor",
"months3": "Efter 3 månader",
"placeholder": "Välj lagringsperiod..."
},
"alwaysOnMicrophone": {
"label": "Alltid påslagen mikrofon",
"description": "Håll mikrofonen aktiv för snabbare svar"
},
"clamshellMicrophone": {
"title": "Clamshell-mikrofon",
"description": "Mikrofon som ska användas när bärbara datorns lock är stängt"
},
"postProcessingToggle": {
"label": "Efterbearbetning",
"description": "Aktivera AI-driven textförfining efter transkription"
},
"muteWhileRecording": {
"label": "Ljudlös under inspelning",
"description": "Stäng av systemljudet under inspelning"
},
"appendTrailingSpace": {
"label": "Lägg till avslutande mellanslag",
"description": "Lägg till ett mellanslag efter klistrad transkription"
},
"keyboardImplementation": {
"title": "Tangentbordsimplementering",
"description": "Välj tangentbordsgenvägens implementation.",
"bindingsReset": "Kortkommandona var inkompatibla och återställdes till standardvärden"
},
"paths": {
"appData": "Appdata:",
"models": "Modeller:",
"settings": "Inställningar:"
},
"pasteDelay": {
"title": "Fördröjning vid klistra in",
"description": "Fördröjning innan klistra in-tangenttryckning skickas (i millisekunder). Öka om fel text klistras in."
},
"recordingBuffer": {
"title": "Extra inspelningsbuffert",
"description": "Extra tid (i millisekunder) för att fortsätta spela in efter att du släppt tangenten, för att fånga upp avslutande ljud. 0 = ingen extra buffert."
}
},
"about": {
"title": "Om",
"version": {
"title": "Version",
"description": "Nuvarande version av Handy"
},
"appDataDirectory": {
"title": "Mapp för appdata",
"description": "Plats där Handy lagrar sina data"
},
"sourceCode": {
"title": "Källkod",
"description": "Visa källkod och bidra",
"button": "Visa på GitHub"
},
"supportDevelopment": {
"title": "Stöd utvecklingen",
"description": "Hjälp oss att fortsätta bygga Handy",
"button": "Donera"
},
"acknowledgments": {
"title": "Tack till",
"whisper": {
"title": "Whisper.cpp",
"description": "Högpresterande inferens av OpenAI:s Whisper-modell för automatisk taligenkänning",
"details": "Handy använder Whisper.cpp för snabb, lokal tal-till-text-behandling. Tack till det fantastiska arbete som utförts av Georgi Gerganov med medarbetare."
}
}
}
},
"footer": {
"downloadingModel": "Laddar ner {{model}}...",
"checkingUpdates": "Söker efter uppdateringar...",
"updateAvailable": "Uppdatering tillgänglig: {{version}}",
"updateAvailableShort": "Uppdatering tillgänglig",
"upToDate": "Uppdaterad",
"downloadUpdate": "Ladda ner uppdatering",
"restart": "Starta om",
"updateCheckingDisabled": "Uppdateringskontroll inaktiverad",
"downloading": "Laddar ner... {{progress}}%",
"installing": "Installerar...",
"preparing": "Förbereder...",
"checkForUpdates": "Sök efter uppdateringar"
},
"common": {
"loading": "Laddar...",
"save": "Spara",
"cancel": "Avbryt",
"reset": "Återställ",
"add": "Lägg till",
"remove": "Ta bort",
"delete": "Ta bort",
"edit": "Redigera",
"create": "Skapa",
"update": "Uppdatera",
"close": "Stäng",
"open": "Öppna",
"default": "Standard",
"enabled": "Aktiverad",
"disabled": "Inaktiverad",
"on": "På",
"off": "Av",
"yes": "Ja",
"no": "Nej",
"noOptionsFound": "Inga alternativ hittades"
},
"accessibility": {
"permissionsRequired": "Behörigheter för hjälpmedel krävs",
"permissionsDescription": "Handy behöver behörighet för hjälpmedel för att kunna skriva transkriberad text.",
"openSettings": "Öppna systeminställningar",
"dismiss": "Avvisa"
},
"errors": {
"loadDirectory": "Fel vid laddning av mapp: {{error}}",
"micPermissionDeniedTitle": "Mikrofonåtkomst nekad",
"micPermissionDenied": {
"generic": "Mikrofonåtkomst nekades av operativsystemet. Bevilja mikrofonbehörighet i dina systeminställningar.",
"windows": "Aktivera mikrofonåtkomst i Inställningar → Integritet och säkerhet → Mikrofon (inklusive åtkomst till skrivbordsappar).",
"macos": "Bevilja mikrofonåtkomst i Systeminställningar → Integritet och säkerhet → Mikrofon.",
"linux": "Bevilja mikrofonåtkomst i systemets ljud- eller integritetsinställningar."
},
"recordingFailed": "Misslyckades med att starta inspelning: {{error}}",
"modelLoadFailed": "Misslyckades med att ladda modell: {{model}}",
"modelLoadFailedUnknown": "okänd modell"
},
"appLanguage": {
"title": "Applikationsspråk",
"description": "Ändra språket i Handy-gränssnittet"
},
"overlay": {
"transcribing": "Transkriberar...",
"processing": "Bearbetar..."
}
}