diff --git a/src/assets/locale/da/chrome.json b/src/assets/locale/da/chrome.json
new file mode 100644
index 0000000..2b05470
--- /dev/null
+++ b/src/assets/locale/da/chrome.json
@@ -0,0 +1,13 @@
+{
+ "heading": "Konfigurer Chrome AI",
+ "status": {
+ "label": "Tænd eller sluk Chrome AI Support på Page Assist"
+ },
+ "error": {
+ "browser_not_supported": "Denne version af Chrome er ikke undersøttet af Gemini Nano modelen. Opdater venligst til version 127 eller nyere",
+ "ai_not_supported": "Indstillingen chrome://flags/#prompt-api-for-gemini-nano er ikke tændt. Venligst tænd for indstillingen.",
+ "ai_not_ready": "Gemini Nano er ikke tilgængelig; du er nødt til at double-cheke Chrome indstillingerne.",
+ "internal_error": "Der opstod en intern fejl. Prøv venligst igen senere."
+ },
+ "errorDescription": "For at bruge Chrome AI skal du bruge en browserversion, der er nyere end 127, hvilket kun er tilgængelig i Dev og Canary channels. Efter at have downloadet den undersøttet version, følg disse steps:\n\n1. Gå til `chrome://flags/#prompt-api-for-gemini-nano` og vælg \"Enable\".\n2. Gå til `chrome://flags/#optimization-guide-on-device-model` og vælg \"EnabledBypassPrefRequirement\".\n3. Gå til `chrome://components`, søg efter \"Optimization Guide On Device Model\", og click \"Søg efter opdatering\". Dette vil downloade modelen. Hvis du ikke kan se indstillingerne, gentag trin 1 og 2 og genstart din browser."
+}
\ No newline at end of file
diff --git a/src/assets/locale/da/common.json b/src/assets/locale/da/common.json
new file mode 100644
index 0000000..5a60ec5
--- /dev/null
+++ b/src/assets/locale/da/common.json
@@ -0,0 +1,105 @@
+{
+ "pageAssist": "Page Assist",
+ "selectAModel": "Vælg en Model",
+ "save": "Gem",
+ "saved": "Gemt",
+ "cancel": "Fortryd",
+ "retry": "Prøv igen",
+ "share": {
+ "tooltip": {
+ "share": "Del"
+ },
+ "modal": {
+ "title": "Del link til Chatten"
+ },
+ "form": {
+ "defaultValue": {
+ "name": "Anonym",
+ "title": "Unavngivet chat"
+ },
+ "title": {
+ "label": "Chattitel",
+ "placeholder": "Indtast chattitel",
+ "required": "Chattitel er nødvendig"
+ },
+ "name": {
+ "label": "Dit navn",
+ "placeholder": "Indtast dit navn",
+ "required": "Dit navn er nødvendig"
+ },
+ "btn": {
+ "save": "Generer et Link",
+ "saving": "Generering af link..."
+ }
+ },
+ "notification": {
+ "successGenerate": "Link kopied til udklipsholder",
+ "failGenerate": "Kunne ikke generere link"
+ }
+ },
+ "copyToClipboard": "Kopier til udklipsholder",
+ "webSearch": "Søger på internettet",
+ "regenerate": "Regenerer",
+ "edit": "Ændre",
+ "saveAndSubmit": "Gem & Indsend",
+ "editMessage": {
+ "placeholder": "Skriv en besked..."
+ },
+ "submit": "Indsend",
+ "noData": "Igen data",
+ "noHistory": "Igen chat history",
+ "chatWithCurrentPage": "Chat med nuværende side",
+ "beta": "Beta",
+ "tts": "Læs op",
+ "currentChatModelSettings": "Nuværende chat model indstillinger",
+ "modelSettings": {
+ "label": "Model Indstillinger",
+ "description": "Konfigurer model indstillingerne alle chats",
+ "form": {
+ "keepAlive": {
+ "label": "Hold i live",
+ "help": "controls how long the model will stay loaded into memory following the request (standard: 5m)",
+ "placeholder": "Indtast længden af sessionen (fx. 5m, 10m, 1t)"
+ },
+ "temperature": {
+ "label": "Temperatur",
+ "placeholder": "Indtast Temperatur værdi (fx. 0.7, 1.0)"
+ },
+ "numCtx": {
+ "label": "Længden af Kontekst",
+ "placeholder": "Instast Længden af Kontekst værdien (standard: 2048)"
+ },
+ "seed": {
+ "label": "Seed",
+ "placeholder": "Indtast Seed værdi (fx. 1234)",
+ "help": "Reproducerbarhed af modeloutput"
+ },
+ "topK": {
+ "label": "Top K",
+ "placeholder": "Indtast Top K værdi (fx. 40, 100)"
+ },
+ "topP": {
+ "label": "Top P",
+ "placeholder": "Indtast Top P value (fx. 0.9, 0.95)"
+ },
+ "numGpu": {
+ "label": "Antal GPU'er",
+ "placeholder": "Indtast antallet af lag, som sendes til GPU('er)"
+ },
+ "systemPrompt": {
+ "label": "Midlertidige System Prompt",
+ "placeholder": "Indtast System Prompt",
+ "help": "Dette er en hurtig måde at indstille systemprompten i den aktuelle chat, som vil tilsidesætte den valgte systemprompt, hvis den findes."
+ }
+ },
+ "advanced": "Flere Model Indstillinger"
+ },
+ "copilot": {
+ "summary": "Opsummer",
+ "explain": "Forklar",
+ "rephrase": "Omskriv",
+ "translate": "Oversæt",
+ "custom": "Brugerdefineret"
+ },
+ "citations": "Citater"
+}
\ No newline at end of file
diff --git a/src/assets/locale/da/knowledge.json b/src/assets/locale/da/knowledge.json
new file mode 100644
index 0000000..b1ae090
--- /dev/null
+++ b/src/assets/locale/da/knowledge.json
@@ -0,0 +1,43 @@
+{
+ "addBtn": "Tilføj Ny Viden",
+ "columns": {
+ "title": "Titel",
+ "status": "Status",
+ "embeddings": "Embedding Model",
+ "createdAt": "Oprettet At",
+ "action": "Handlinger"
+ },
+ "expandedColumns": {
+ "name": "Navn"
+ },
+ "tooltip": {
+ "delete": "Slet"
+ },
+ "confirm": {
+ "delete": "Er du sikker på du vil slette denne viden?"
+ },
+ "deleteSuccess": "Viden slettet med success",
+ "status": {
+ "pending": "Venter",
+ "finished": "Færdig",
+ "processing": "Processerer",
+ "failed": "Fejlet"
+ },
+ "addKnowledge": "Tilføj Viden",
+ "form": {
+ "title": {
+ "label": "Viden Titel",
+ "placeholder": "Indtast viden titel",
+ "required": "Viden titel er nødvendig"
+ },
+ "uploadFile": {
+ "label": "Upload Filer",
+ "uploadText": "Træk og slip denne fil here og klik upload",
+ "uploadHint": "Understøttet filtyper: .pdf, .csv, .txt, .md, .docx",
+ "required": "En fil er nødvendig"
+ },
+ "submit": "Indsend",
+ "success": "Viden tilføjet med success"
+ },
+ "noEmbeddingModel": "Tilføj venligst en embedding model fra RAG indstillingerne først"
+}
\ No newline at end of file
diff --git a/src/assets/locale/da/option.json b/src/assets/locale/da/option.json
new file mode 100644
index 0000000..4548680
--- /dev/null
+++ b/src/assets/locale/da/option.json
@@ -0,0 +1,12 @@
+{
+ "newChat": "Ny Chat",
+ "selectAPrompt": "Vælg en Prompt",
+ "githubRepository": "GitHub Repository",
+ "settings": "Indstillinger",
+ "sidebarTitle": "Chathistorik",
+ "error": "Fejl",
+ "somethingWentWrong": "Noget gik galt",
+ "validationSelectModel": "Venligst vælg en model for at forsæætte",
+ "deleteHistoryConfirmation": "Er du sikker på at du vil slette denne historik?",
+ "editHistoryTitle": "Indtast en ny titel"
+}
\ No newline at end of file
diff --git a/src/assets/locale/da/playground.json b/src/assets/locale/da/playground.json
new file mode 100644
index 0000000..f8df2b2
--- /dev/null
+++ b/src/assets/locale/da/playground.json
@@ -0,0 +1,29 @@
+{
+ "ollamaState": {
+ "searching": "Søger efter din Ollama 🦙",
+ "running": "Ollama kør 🦙",
+ "notRunning": "Kan ikke oprette forbindelse til Ollama 🦙",
+ "connectionError": "Det lader til, at du har en forbindelsesfejl. Se venligst denne dokumentation for fejlfinding."
+ },
+ "formError": {
+ "noModel": "Vælg venligst en model",
+ "noEmbeddingModel": "Vælg venligst en embedding model under indstillinger > RAG side"
+ },
+ "form": {
+ "textarea": {
+ "placeholder": "Skriv en besked..."
+ },
+ "webSearch": {
+ "on": "Til",
+ "off": "Fra"
+ }
+ },
+ "tooltip": {
+ "searchInternet": "Søg Internettet",
+ "speechToText": "Tal til Tekst",
+ "uploadImage": "Upload Billed",
+ "stopStreaming": "Stop Streaming",
+ "knowledge": "Viden"
+ },
+ "sendWhenEnter": "Søg, når Indtast trykkes"
+}
\ No newline at end of file
diff --git a/src/assets/locale/da/settings.json b/src/assets/locale/da/settings.json
new file mode 100644
index 0000000..7c98035
--- /dev/null
+++ b/src/assets/locale/da/settings.json
@@ -0,0 +1,339 @@
+{
+ "generalSettings": {
+ "title": "Generelle Indstillinger",
+ "settings": {
+ "heading": "Web UI Indstillinger",
+ "speechRecognitionLang": {
+ "label": "Talegenkendelse Sprog",
+ "placeholder": "Vælg et sprog"
+ },
+ "language": {
+ "label": "Sprog",
+ "placeholder": "Vælg et sprog"
+ },
+ "darkMode": {
+ "label": "Ændre Tema",
+ "options": {
+ "light": "Lyst",
+ "dark": "Mørkt"
+ }
+ },
+ "copilotResumeLastChat": {
+ "label": "Genoptag den sidste chat, når du åbner SidePanel (copilot)"
+ },
+ "hideCurrentChatModelSettings": {
+ "label": "Skjul nuværende chatmodelindstillinger"
+ },
+ "restoreLastChatModel": {
+ "label": "Gendan sidste brugte chatmodel fremtidigt"
+ },
+ "sendNotificationAfterIndexing": {
+ "label": "Send besked efter færdigbehandling af vidensbasen"
+ },
+ "generateTitle" :{
+ "label": "Generer titel med AI"
+ }
+ },
+ "sidepanelRag": {
+ "heading": "Copilot Chat med Website Indstillinger",
+ "ragEnabled": {
+ "label": "Chat med websitet ved brug af vektorindlejringer (vector embeddings)"
+ },
+ "maxWebsiteContext": {
+ "label": "Normal webstedsindhold størrelse",
+ "placeholder": "Indholdsstørrelse (standard 4028)"
+ }
+ },
+ "webSearch": {
+ "heading": "Administrer Web Søgning",
+ "searchMode": {
+ "label": "Søge Tilstand"
+ },
+ "provider": {
+ "label": "Søgemaskine",
+ "placeholder": "Vælg en søgemaskine"
+ },
+ "totalSearchResults": {
+ "label": "Antal søgeresultater",
+ "placeholder": "Indtast antal Søgeresultater"
+ },
+ "visitSpecificWebsite": {
+ "label": "Besøg websitet nævnt i samtalen"
+ }
+ },
+ "system": {
+ "heading": "Systemindstillinger",
+ "deleteChatHistory": {
+ "label": "Slet Chathistorik",
+ "button": "Slet",
+ "confirm": "Er du sikker på, at du vil slette din chathistorik? Denne handling kan ikke fortrydes."
+
+ },
+ "export": {
+ "label": "Eksporter chathistorik, vidensbase og prompts",
+ "button": "Eksporter Data",
+ "success": "Export lykkedes"
+ },
+ "import": {
+ "label": "Importer chathistorik, vidensbase og prompts",
+ "button": "Importer Data",
+ "success": "Import lykkedes",
+ "error": "Importfejl"
+ }
+ },
+ "tts": {
+ "heading": "Tekst-til-tale Indstillinger",
+ "ttsEnabled": {
+ "label": "Tilføj Teskt-til-Tale"
+ },
+ "ttsProvider": {
+ "label": "Tekst-til-Tale Udbyder",
+ "placeholder": "Vælg en udbyder"
+ },
+ "ttsVoice": {
+ "label": "Tekst-til-Tale Stemme",
+ "placeholder": "Vælg en stemme"
+ },
+ "ssmlEnabled": {
+ "label": "Aktiver SSML (Speech Synthesis Markup Language)"
+ }
+ }
+ },
+ "manageModels": {
+ "title": "Administer Modeller",
+ "addBtn": "Tilføj ny Model",
+ "columns": {
+ "name": "Navn",
+ "digest": "Digest",
+ "modifiedAt": "Ændret den",
+ "size": "Størrelse",
+ "actions": "Handlinger"
+ },
+ "expandedColumns": {
+ "parentModel": "Forælder model",
+ "format": "Format",
+ "family": "Familie",
+ "parameterSize": "Parameterstørrelse",
+ "quantizationLevel": "kvantificeringsniveau"
+ },
+ "tooltip": {
+ "delete": "Slet Model",
+ "repull": "Hent Model Igen"
+ },
+ "confirm": {
+ "delete": "Er du sikker på, at du vil slette denne model?",
+ "repull": "Er du sikker på, at du vil hente denne model igen?"
+ },
+ "modal": {
+ "title": "Tilføj Ny Model",
+ "placeholder": "Indtast Modelnavn",
+ "pull": "Hent Model"
+ },
+ "notification": {
+ "pullModel": "Henter Model",
+ "pullModelDescription": "Henter {{modelName}} model. For flere detaljer, tjek udvidelsesikonet.",
+ "success": "Det virkede",
+ "error": "Fejl",
+ "successDescription": "Det lykkedes at hente modellen",
+ "successDeleteDescription": "Det lykkedes at slette modellen",
+ "someError": "Noget gik galt. Venligst prøv igen senere"
+ }
+ },
+ "managePrompts": {
+ "title": "Administrer Prompts",
+ "addBtn": "Tilføj Ny Prompt",
+ "option1": "Normal",
+ "option2": "RAG",
+ "questionPrompt": "Spørgsmålsprompt",
+ "segmented": {
+ "custom": "Brugerdefinerede Prompts",
+ "copilot": "Copilot Prompts"
+ },
+ "columns": {
+ "title": "Titel",
+ "prompt": "Prompt",
+ "type": "Prompttype",
+ "actions": "Handlinger"
+ },
+ "systemPrompt": "Systemprompt",
+ "quickPrompt": "Hurtig Prompt",
+ "tooltip": {
+ "delete": "Slet Prompt",
+ "edit": "Ændre Prompt"
+ },
+ "confirm": {
+ "delete": "Er du sikker på, at du vil slette denne prompt? Denne handling kan ikke fortrydes." },
+ "modal": {
+ "addTitle": "Tilføj ny Prompt",
+ "editTitle": "Ændre Prompt"
+ },
+ "form": {
+ "title": {
+ "label": "Titel",
+ "placeholder": "Min Seje Prompt",
+ "required": "Indtast venligst en titel"
+ },
+ "prompt": {
+ "label": "Prompt",
+ "placeholder": "Indtast Prompt",
+ "required": "Venligst indtast en prompt",
+ "help": "Du kan bruge {key} som variabel i din prompt.",
+ "missingTextPlaceholder": "Variablen {text} mangler i prompten. Tilføj venligst dette."
+ },
+ "isSystem": {
+ "label": "Er Systemprompt"
+ },
+ "btnSave": {
+ "saving": "Tilføjer Prompt...",
+ "save": "Tilføj Prompt"
+ },
+ "btnEdit": {
+ "saving": "Opdaterer Prompt...",
+ "save": "Opdater Prompt"
+ }
+ },
+ "notification": {
+ "addSuccess": "Prompt Tilføjet",
+ "addSuccessDesc": "Prompt blev tilføjet med succes",
+ "error": "Fejl",
+ "someError": "Noget gik galt. Prøv venligst igen senere",
+ "updatedSuccess": "Prompt Opdateret",
+ "updatedSuccessDesc": "Prompt blev opdateret med succes",
+ "deletedSuccess": "Prompt Slettet",
+ "deletedSuccessDesc": "Prompt blev slettet med succes"
+ }
+ },
+ "manageShare": {
+ "title": "Administrer Deling",
+ "heading": "Konfigurerer Page deling URL",
+ "form": {
+ "url": {
+ "label": "Page Deling URL",
+ "placeholder": "Indtast websted deling URL",
+ "required": "Venligst indstast din Page deling URL!",
+ "help": "Af hensyn til privatliv kan du selv hoste side delingen og angive URL'en her. Lær Mere." }
+ },
+ "webshare": {
+ "heading": "Web Deling",
+ "columns": {
+ "title": "Titel",
+ "url": "URL",
+ "actions": "Handlinger"
+ },
+ "tooltip": {
+ "delete": "Slet Deling"
+ },
+ "confirm": {
+ "delete": "Er du sikker på du vil slette denne deling? Dette kan ikke fortrydes."
+ },
+ "label": "Administrer Page Deling",
+ "description": "Tilføj eller disable the page share feature"
+ },
+ "notification": {
+ "pageShareSuccess": "Page Deling URL Updateret korrekt",
+ "someError": "Noget gik galt. Prøv venligst igen senere",
+ "webShareDeleteSuccess": "Webdeling er slettet korrekt"
+ }
+ },
+ "ollamaSettings": {
+ "title": "Ollama Indstillinger",
+ "heading": "Konfigurerer Ollama",
+ "settings": {
+ "ollamaUrl": {
+ "label": "Ollama URL",
+ "placeholder": "Indtast Ollama URL"
+ },
+ "advanced": {
+ "label": "Avanceret Ollama URL Konfiguration",
+ "urlRewriteEnabled": {
+ "label": "Aktiver eller Deaktiver Tilpasset Oprindelses-URL"
+ },
+ "rewriteUrl": {
+ "label": "Tilpasset Oprindelses URL",
+ "placeholder": "Indtast tilpasset oprindelses URL"
+ },
+ "headers": {
+ "label": "Tilpas Headers",
+ "Tilføj": "Tilføj Header",
+ "key": {
+ "label": "Header Værdi",
+ "placeholder": "Autorisation"
+ },
+ "value": {
+ "label": "Header Value",
+ "placeholder": "Bearer token"
+ }
+ },
+ "help": "Hvis du har forbindelsesproblemer med Ollama på Page Assist, kan du konfigurere en brugerdefineret oprindelses-URL. For mere information om konfigurationen, klik her." }
+ }
+ },
+ "manageSearch": {
+ "title": "Administrer Web Search",
+ "heading": "Konfigurerer Web Search"
+ },
+ "about": {
+ "title": "Om",
+ "heading": "Om",
+ "chromeVersion": "Page Assist Version",
+ "ollamaVersion": "Ollama Version",
+ "support": "Du kan støtte Page Assist-projektet ved at donere eller sponsorere via følgende platforme:",
+ "koFi": "Støt på Ko-fi",
+ "githubSponsor": "Sponsor på GitHub",
+ "githubRepo": "GitHub Repository"
+ },
+ "manageKnowledge": {
+ "title": "Administrer Viden",
+ "heading": "konfigurer Videnbase"
+ },
+ "rag": {
+ "title": "RAG Indstillinger",
+ "ragSettings": {
+ "label": "RAG Indstillinger",
+ "model": {
+ "label": "Embedding Model",
+ "required": "Vælg venligst en model",
+ "help": "Det anbefales stærkt at bruge indlejringsmodeller som `nomic-embed-text`.",
+ "placeholder": "Vælg a model"
+ },
+ "chunkSize": {
+ "label": "Chunk Størrelse",
+ "placeholder": "Indtast Chunk Størrelse",
+ "required": "Venligst indtast en chunk størrelse"
+ },
+ "chunkOverlap": {
+ "label": "Chunk Overlap",
+ "placeholder": "Indtast Chunk Overlap",
+ "required": "Indtast venligst chunk overlap"
+ },
+ "totalFilePerKB": {
+ "label": "Videnbase Standard Fil Upload Grænse",
+ "placeholder": "Indtast standard fil upload grænse (f.eks. 10)",
+ "required": "Indtast venligst standard fil upload grænsen"
+ },
+ "noOfRetrievedDocs": {
+ "label": "Antal Hentede Dokumenter",
+ "placeholder": "Indtast Number of Retrieved Documents",
+ "required": "Venligst indtast the number of retrieved documents"
+ }
+ },
+ "prompt": {
+ "label": "Konfigurer RAG Prompt",
+ "option1": "Normal",
+ "option2": "Web",
+ "alert": "Konfigurering af systemprompt her er forældet. Venligst brug Administrer Prompts sektionen til, at tilføje eller ændre prompts. Denne sektion vil blive fjernet i fremtidige versioner.",
+ "systemPrompt": "System Prompt",
+ "systemPromptPlaceholder": "Indtast System Prompt",
+ "webSearchPrompt": "Websøgningsprompt",
+ "webSearchPromptHelp": "Fjern ikke `{search_results}` fra prompten.",
+ "webSearchPromptError": "Venligst indtast a web search prompt",
+ "webSearchPromptPlaceholder": "Indtast Websøgningsprompt",
+ "webSearchFollowUpPrompt": "Web Search Follow Up Prompt",
+ "webSearchFollowUpPromptHelp": "Do not remove `{chat_history}` og `{question}` from the prompt.",
+ "webSearchFollowUpPromptError": "Indtast venligst din websøgning opfølgende prompt!",
+ "webSearchFollowUpPromptPlaceholder": "Din Websøgnings opfølgende Prompt"
+ }
+ },
+ "chromeAiSettings": {
+ "title": "Chrome AI Indstillinger"
+ }
+}
diff --git a/src/assets/locale/da/sidepanel.json b/src/assets/locale/da/sidepanel.json
new file mode 100644
index 0000000..d9abf2f
--- /dev/null
+++ b/src/assets/locale/da/sidepanel.json
@@ -0,0 +1,7 @@
+{
+ "tooltip": {
+ "embed": "Det kan tage et par minutter at indlejre siden. Vent venligst...",
+ "clear": "Slet chat historiken",
+ "history": "Chat historik"
+ }
+}
\ No newline at end of file
diff --git a/src/i18n/support-language.ts b/src/i18n/support-language.ts
index 17658dc..c9bbfa1 100644
--- a/src/i18n/support-language.ts
+++ b/src/i18n/support-language.ts
@@ -43,5 +43,13 @@ export const supportLanguage = [
{
label: "Deutsch",
value: "de"
+ },
+ {
+ label: "Dansk",
+ value: "da"
+ },
+ {
+ label: "Norsk",
+ value: "no"
}
]