diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 54d889d..c37131c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,3 @@
-
# Contributing to Page Assist
Thank you for your interest in contributing to Page Assist! We welcome contributions from anyone, whether it's reporting bugs, suggesting improvements, or submitting code changes.
diff --git a/README.md b/README.md
index 750271b..d659a0b 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,6 @@ Page Assist supports Chromium-based browsers like Chrome, Brave, Edge, and Firef
[](https://chrome.google.com/webstore/detail/page-assist/jfgfiigpkhlkbnfnbobbkinehhfdhndo)
[](https://addons.mozilla.org/en-US/firefox/addon/page-assist/)
-
Checkout the Demo (v1.0.0):
@@ -30,15 +29,13 @@ Checkout the Demo (v1.0.0):
want more features? Create an issue and let me know.
-
### Manual Installation
#### Pre-requisites
-- Node.js (v18 or higher) - [Installation Guide](https://nodejs.org)
-- npm
+- Bun - [Installation Guide](https://bun.sh/)
- Ollama (Local AI Provider) - [Installation Guide](https://ollama.com)
-
+- Any OpenAI API Compatible Endpoint (like LM Studio, llamafile etc.)
1. Clone the repository
@@ -50,19 +47,19 @@ cd page-assist
2. Install the dependencies
```bash
-npm install
+bun install
```
3. Build the extension (by default it will build for Chrome)
```bash
-npm run build
+bun run build
```
or you can build for Firefox
```bash
-npm run build:firefox
+bun build:firefox
```
4. Load the extension (chrome)
@@ -101,45 +98,43 @@ Note: You can change the keyboard shortcuts from the extension settings on the C
You can run the extension in development mode to make changes and test them.
```bash
-npm run dev
+bun dev
```
This will start a development server and watch for changes in the source files. You can load the extension in your browser and test the changes.
## Browser Support
-| Browser | Sidebar | Chat With Webpage | Web UI |
-| -------- | ------- | ----------------- | ------ |
-| Chrome | ✅ | ✅ | ✅ |
-| Brave | ✅ | ✅ | ✅ |
-| Firefox | ✅ | ✅ | ✅ |
-| Vivaldi | ✅ | ✅ | ✅ |
-| Edge | ✅ | ❌ | ✅ |
-| Opera | ❌ | ❌ | ✅ |
-| Arc | ❌ | ❌ | ✅ |
-
-
+| Browser | Sidebar | Chat With Webpage | Web UI |
+| ----------- | ------- | ----------------- | ------ |
+| Chrome | ✅ | ✅ | ✅ |
+| Brave | ✅ | ✅ | ✅ |
+| Firefox | ✅ | ✅ | ✅ |
+| Vivaldi | ✅ | ✅ | ✅ |
+| Edge | ✅ | ❌ | ✅ |
+| LibreWolf | ✅ | ✅ | ✅ |
+| Zen Browser | ✅ | ✅ | ✅ |
+| Opera | ❌ | ❌ | ✅ |
+| Arc | ❌ | ❌ | ✅ |
## Local AI Provider
- [Ollama](https://github.com/ollama/ollama)
-- Chrome AI (Gemini Nano)
+- Chrome AI (Gemini Nano)
-More providers will be added in the future.
+- OpenAI API Compatible endpoints (like LM Studio, llamafile etc.)
## Roadmap
-- [X] Firefox Support
-- [ ] Code Completion support for Web based IDEs (like Colab, Jupyter, etc.)
-- [ ] More Local AI Providers
+- [x] Firefox Support
+- [x] More Local AI Providers
- [ ] More Customization Options
- [ ] Better UI/UX
-
## Privacy
-Page Assist does not collect any personal data. The only time the extension communicates with the server is when you are using the share feature, which can be disabled from the settings.
+Page Assist does not collect any personal data. The only time the extension communicates with the server is when you are using the share feature, which can be disabled from the settings.
All the data is stored locally in the browser storage. You can view the source code and verify it yourself.
@@ -155,7 +150,6 @@ If you like the project and want to support it, you can buy me a coffee. It will
or you can sponsor me on GitHub.
-
## Blogs and Videos About Page Assist
This are some of the blogs and videos about Page Assist. If you have written a blog or made a video about Page Assist, feel free to create a PR and add it here.
diff --git a/bun.lockb b/bun.lockb
index 546445c..deaa93f 100644
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/docs/connection-issue.md b/docs/connection-issue.md
index a5681f4..7498dfd 100644
--- a/docs/connection-issue.md
+++ b/docs/connection-issue.md
@@ -28,6 +28,8 @@ Since Ollama has connection issues when directly accessed from the browser exten
5. (Optional) If Ollama is running on a different port or host, then change the URL in the `Custom Origin URL` field; otherwise, leave it as it is.
+6. Make sure click on the `Save` button to save the changes.
+
This will resolve the connection issue, and you will be able to use Ollama without any issues on Page Assist ❤
If you still face any issues, feel free to contact us [here](https://github.com/n4ze3m/page-assist/issues/new), and we will be happy to help you out.
\ No newline at end of file
diff --git a/package.json b/package.json
index 43057df..c088aa4 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"@headlessui/react": "^1.7.18",
"@heroicons/react": "^2.1.1",
"@langchain/community": "^0.0.41",
+ "@langchain/openai": "0.0.24",
"@mantine/form": "^7.5.0",
"@mantine/hooks": "^7.5.3",
"@mozilla/readability": "^0.5.0",
@@ -39,6 +40,7 @@
"lucide-react": "^0.350.0",
"mammoth": "^1.7.2",
"ml-distance": "^4.0.1",
+ "openai": "^4.65.0",
"pdfjs-dist": "4.0.379",
"property-information": "^6.4.1",
"pubsub-js": "^1.9.4",
diff --git a/src/assets/locale/da/chrome.json b/src/assets/locale/da/chrome.json
new file mode 100644
index 0000000..7c5e6d9
--- /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 understø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/openai.json b/src/assets/locale/da/openai.json
new file mode 100644
index 0000000..3410ae6
--- /dev/null
+++ b/src/assets/locale/da/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI Kompatibel API",
+ "heading": "OpenAI kompatibel API",
+ "subheading": "Administrer og konfigurer dine OpenAI API-kompatible udbydere her.",
+ "addBtn": "Tilføj Udbyder",
+ "table": {
+ "name": "Udbyders Navn",
+ "baseUrl": "Basis URL",
+ "actions": "Handling"
+ },
+ "modal": {
+ "titleAdd": "Tilføj Ny Udbyder",
+ "name": {
+ "label": "Udbyders Navn",
+ "required": "Udbyders navn er påkrævet.",
+ "placeholder": "Indtast udbyders navn"
+ },
+ "baseUrl": {
+ "label": "Basis URL",
+ "help": "Basis URL'en for OpenAI API-udbyderen. f.eks. (http://localhost:1234/v1)",
+ "required": "Basis URL er påkrævet.",
+ "placeholder": "Indtast basis URL"
+ },
+ "apiKey": {
+ "label": "API Nøgle",
+ "required": "API Nøgle er påkrævet.",
+ "placeholder": "Indtast API Nøgle"
+ },
+ "submit": "Gem",
+ "update": "Opdater",
+ "deleteConfirm": "Er du sikker på, at du vil slette denne udbyder?",
+ "model": {
+ "title": "Modelliste",
+ "subheading": "Vælg venligst de chatmodeller, du ønsker at bruge med denne udbyder.",
+ "success": "Nye modeller tilføjet med succes."
+ },
+ "tipLMStudio": "Page Assist vil automatisk hente de modeller, du har indlæst på LM Studio. Du behøver ikke at tilføje dem manuelt."
+ },
+ "addSuccess": "Udbyder tilføjet med succes.",
+ "deleteSuccess": "Udbyder slettet med succes.",
+ "updateSuccess": "Udbyder opdateret med succes.",
+ "delete": "Slet",
+ "edit": "Rediger",
+ "newModel": "Tilføj Modeller til Udbyder",
+ "noNewModel": "For LMStudio henter vi dynamisk. Ingen manuel tilføjelse nødvendig.",
+ "searchModel": "Søg Model",
+ "selectAll": "Vælg Alle",
+ "save": "Gem",
+ "saving": "Gemmer...",
+ "manageModels": {
+ "columns": {
+ "name": "Modelnavn",
+ "model_type": "Modeltype",
+ "model_id": "Model-ID",
+ "provider": "Udbyders Navn",
+ "actions": "Handling"
+ },
+ "tooltip": {
+ "delete": "Slet"
+ },
+ "confirm": {
+ "delete": "Er du sikker på, at du vil slette denne model?"
+ },
+ "modal": {
+ "title": "Tilføj Brugerdefineret Model",
+ "form": {
+ "name": {
+ "label": "Model-ID",
+ "placeholder": "llama3.2",
+ "required": "Model-ID er påkrævet."
+ },
+ "provider": {
+ "label": "Udbyder",
+ "placeholder": "Vælg udbyder",
+ "required": "Udbyder er påkrævet."
+ },
+ "type": {
+ "label": "Modeltype"
+ }
+ }
+ }
+ },
+ "noModelFound": "Ingen model fundet. Sørg for, at du har tilføjet korrekt udbyder med basis URL og API-nøgle.",
+ "radio": {
+ "chat": "Chatmodel",
+ "embedding": "Indlejringsmodel",
+ "chatInfo": "bruges til chatfuldførelse og samtalegeneration",
+ "embeddingInfo": "bruges til RAG og andre semantiske søgerelaterede opgaver."
+ }
+}
\ 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..372213f
--- /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 chat model indstillinger"
+ },
+ "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 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/assets/locale/de/openai.json b/src/assets/locale/de/openai.json
new file mode 100644
index 0000000..23a684e
--- /dev/null
+++ b/src/assets/locale/de/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI-kompatible API",
+ "heading": "OpenAI-kompatible API",
+ "subheading": "Verwalten und konfigurieren Sie hier Ihre OpenAI-API-kompatiblen Anbieter.",
+ "addBtn": "Anbieter hinzufügen",
+ "table": {
+ "name": "Anbietername",
+ "baseUrl": "Basis-URL",
+ "actions": "Aktion"
+ },
+ "modal": {
+ "titleAdd": "Neuen Anbieter hinzufügen",
+ "name": {
+ "label": "Anbietername",
+ "required": "Anbietername ist erforderlich.",
+ "placeholder": "Anbieternamen eingeben"
+ },
+ "baseUrl": {
+ "label": "Basis-URL",
+ "help": "Die Basis-URL des OpenAI-API-Anbieters. z.B. (http://localhost:1234/v1)",
+ "required": "Basis-URL ist erforderlich.",
+ "placeholder": "Basis-URL eingeben"
+ },
+ "apiKey": {
+ "label": "API-Schlüssel",
+ "required": "API-Schlüssel ist erforderlich.",
+ "placeholder": "API-Schlüssel eingeben"
+ },
+ "submit": "Speichern",
+ "update": "Aktualisieren",
+ "deleteConfirm": "Sind Sie sicher, dass Sie diesen Anbieter löschen möchten?",
+ "model": {
+ "title": "Modellliste",
+ "subheading": "Bitte wählen Sie die Chat-Modelle aus, die Sie mit diesem Anbieter verwenden möchten.",
+ "success": "Neue Modelle erfolgreich hinzugefügt."
+ },
+ "tipLMStudio": "Page Assist wird automatisch die Modelle abrufen, die Sie in LM Studio geladen haben. Sie müssen sie nicht manuell hinzufügen."
+ },
+ "addSuccess": "Anbieter erfolgreich hinzugefügt.",
+ "deleteSuccess": "Anbieter erfolgreich gelöscht.",
+ "updateSuccess": "Anbieter erfolgreich aktualisiert.",
+ "delete": "Löschen",
+ "edit": "Bearbeiten",
+ "newModel": "Modelle zum Anbieter hinzufügen",
+ "noNewModel": "Für LMStudio holen wir die Daten dynamisch. Keine manuelle Hinzufügung erforderlich.",
+ "searchModel": "Modell suchen",
+ "selectAll": "Alle auswählen",
+ "save": "Speichern",
+ "saving": "Speichern...",
+ "manageModels": {
+ "columns": {
+ "name": "Modellname",
+ "model_type": "Modelltyp",
+ "model_id": "Modell-ID",
+ "provider": "Anbietername",
+ "actions": "Aktion"
+ },
+ "tooltip": {
+ "delete": "Löschen"
+ },
+ "confirm": {
+ "delete": "Sind Sie sicher, dass Sie dieses Modell löschen möchten?"
+ },
+ "modal": {
+ "title": "Benutzerdefiniertes Modell hinzufügen",
+ "form": {
+ "name": {
+ "label": "Modell-ID",
+ "placeholder": "llama3.2",
+ "required": "Modell-ID ist erforderlich."
+ },
+ "provider": {
+ "label": "Anbieter",
+ "placeholder": "Anbieter auswählen",
+ "required": "Anbieter ist erforderlich."
+ },
+ "type": {
+ "label": "Modelltyp"
+ }
+ }
+ }
+ },
+ "noModelFound": "Kein Modell gefunden. Stellen Sie sicher, dass Sie den korrekten Anbieter mit Basis-URL und API-Schlüssel hinzugefügt haben.",
+ "radio": {
+ "chat": "Chat-Modell",
+ "embedding": "Embedding-Modell",
+ "chatInfo": "wird für Chat-Vervollständigung und Gesprächsgenerierung verwendet",
+ "embeddingInfo": "wird für RAG und andere semantische suchbezogene Aufgaben verwendet."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/en/common.json b/src/assets/locale/en/common.json
index 28be4d1..7198457 100644
--- a/src/assets/locale/en/common.json
+++ b/src/assets/locale/en/common.json
@@ -101,5 +101,9 @@
"translate": "Translate",
"custom": "Custom"
},
- "citations": "Citations"
+ "citations": "Citations",
+ "segmented": {
+ "ollama": "Ollama Models",
+ "custom": "Custom Models"
+ }
}
\ No newline at end of file
diff --git a/src/assets/locale/en/openai.json b/src/assets/locale/en/openai.json
new file mode 100644
index 0000000..c0838cb
--- /dev/null
+++ b/src/assets/locale/en/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI Compatible API",
+ "heading": "OpenAI compatible API",
+ "subheading": "Manage and configure your OpenAI API Compatible providers here.",
+ "addBtn": "Add Provider",
+ "table": {
+ "name": "Provider Name",
+ "baseUrl": "Base URL",
+ "actions": "Action"
+ },
+ "modal": {
+ "titleAdd": "Add New Provider",
+ "name": {
+ "label": "Provider Name",
+ "required": "Provider name is required.",
+ "placeholder": "Enter provider name"
+ },
+ "baseUrl": {
+ "label": "Base URL",
+ "help": "The base URL of the OpenAI API provider. eg (http://localhost:1234/v1)",
+ "required": "Base URL is required.",
+ "placeholder": "Enter base URL"
+ },
+ "apiKey": {
+ "label": "API Key",
+ "required": "API Key is required.",
+ "placeholder": "Enter API Key"
+ },
+ "submit": "Save",
+ "update": "Update",
+ "deleteConfirm": "Are you sure you want to delete this provider?",
+ "model": {
+ "title": "Model List",
+ "subheading": "Please select the chat models you want to use with this provider.",
+ "success": "Successfully added new models."
+ },
+ "tipLMStudio": "Page Assist will automatically fetch the models you loaded on LM Studio. You don't need to add them manually."
+ },
+ "addSuccess": "Provider added successfully.",
+ "deleteSuccess": "Provider deleted successfully.",
+ "updateSuccess": "Provider updated successfully.",
+ "delete": "Delete",
+ "edit": "Edit",
+ "newModel": "Add Models to Provider",
+ "noNewModel": "For LMStudio, we fetch dynamically. No manual addition needed.",
+ "searchModel": "Search Model",
+ "selectAll": "Select All",
+ "save": "Save",
+ "saving": "Saving...",
+ "manageModels": {
+ "columns": {
+ "name": "Model Name",
+ "model_type": "Model Type",
+ "model_id": "Model ID",
+ "provider": "Provider Name",
+ "actions": "Action"
+ },
+ "tooltip": {
+ "delete": "Delete"
+ },
+ "confirm": {
+ "delete": "Are you sure you want to delete this model?"
+ },
+ "modal": {
+ "title": "Add Custom Model",
+ "form": {
+ "name": {
+ "label": "Model ID",
+ "placeholder": "llama3.2",
+ "required": "Model ID is required."
+ },
+ "provider": {
+ "label": "Provider",
+ "placeholder": "Select provider",
+ "required": "Provider is required."
+ },
+ "type": {
+ "label": "Model Type"
+ }
+ }
+ }
+ },
+ "noModelFound": "No model found. Make sure you have added correct provider with base URL and API key.",
+ "radio": {
+ "chat": "Chat Model",
+ "embedding": "Embedding Model",
+ "chatInfo": "is used for chat completion and conversation generation",
+ "embeddingInfo": "is used for RAG and other semantic search related tasks."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/es/openai.json b/src/assets/locale/es/openai.json
new file mode 100644
index 0000000..2e84a19
--- /dev/null
+++ b/src/assets/locale/es/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API compatible con OpenAI",
+ "heading": "API compatible con OpenAI",
+ "subheading": "Gestiona y configura tus proveedores compatibles con la API de OpenAI aquí.",
+ "addBtn": "Añadir Proveedor",
+ "table": {
+ "name": "Nombre del Proveedor",
+ "baseUrl": "URL Base",
+ "actions": "Acción"
+ },
+ "modal": {
+ "titleAdd": "Añadir Nuevo Proveedor",
+ "name": {
+ "label": "Nombre del Proveedor",
+ "required": "El nombre del proveedor es obligatorio.",
+ "placeholder": "Introduce el nombre del proveedor"
+ },
+ "baseUrl": {
+ "label": "URL Base",
+ "help": "La URL base del proveedor de la API de OpenAI. ej. (http://localhost:1234/v1)",
+ "required": "La URL base es obligatoria.",
+ "placeholder": "Introduce la URL base"
+ },
+ "apiKey": {
+ "label": "Clave API",
+ "required": "La clave API es obligatoria.",
+ "placeholder": "Introduce la clave API"
+ },
+ "submit": "Guardar",
+ "update": "Actualizar",
+ "deleteConfirm": "¿Estás seguro de que quieres eliminar este proveedor?",
+ "model": {
+ "title": "Lista de Modelos",
+ "subheading": "Por favor, selecciona los modelos de chat que quieres usar con este proveedor.",
+ "success": "Nuevos modelos añadidos con éxito."
+ },
+ "tipLMStudio": "Page Assist obtendrá automáticamente los modelos que hayas cargado en LM Studio. No necesitas añadirlos manualmente."
+ },
+ "addSuccess": "Proveedor añadido con éxito.",
+ "deleteSuccess": "Proveedor eliminado con éxito.",
+ "updateSuccess": "Proveedor actualizado con éxito.",
+ "delete": "Eliminar",
+ "edit": "Editar",
+ "newModel": "Añadir Modelos al Proveedor",
+ "noNewModel": "Para LMStudio, obtenemos dinámicamente. No se necesita adición manual.",
+ "searchModel": "Buscar Modelo",
+ "selectAll": "Seleccionar Todo",
+ "save": "Guardar",
+ "saving": "Guardando...",
+ "manageModels": {
+ "columns": {
+ "name": "Nombre del Modelo",
+ "model_type": "Tipo de Modelo",
+ "model_id": "ID del Modelo",
+ "provider": "Nombre del Proveedor",
+ "actions": "Acción"
+ },
+ "tooltip": {
+ "delete": "Eliminar"
+ },
+ "confirm": {
+ "delete": "¿Estás seguro de que quieres eliminar este modelo?"
+ },
+ "modal": {
+ "title": "Añadir Modelo Personalizado",
+ "form": {
+ "name": {
+ "label": "ID del Modelo",
+ "placeholder": "llama3.2",
+ "required": "El ID del modelo es obligatorio."
+ },
+ "provider": {
+ "label": "Proveedor",
+ "placeholder": "Seleccionar proveedor",
+ "required": "El proveedor es obligatorio."
+ },
+ "type": {
+ "label": "Tipo de Modelo"
+ }
+ }
+ }
+ },
+ "noModelFound": "No se encontró ningún modelo. Asegúrate de haber añadido el proveedor correcto con la URL base y la clave API.",
+ "radio": {
+ "chat": "Modelo de Chat",
+ "embedding": "Modelo de Incrustación",
+ "chatInfo": "se utiliza para la finalización de chat y la generación de conversaciones",
+ "embeddingInfo": "se utiliza para RAG y otras tareas relacionadas con la búsqueda semántica."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/fa/openai.json b/src/assets/locale/fa/openai.json
new file mode 100644
index 0000000..479e509
--- /dev/null
+++ b/src/assets/locale/fa/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API سازگار با OpenAI",
+ "heading": "API سازگار با OpenAI",
+ "subheading": "ارائهدهندگان API سازگار با OpenAI خود را در اینجا مدیریت و پیکربندی کنید.",
+ "addBtn": "افزودن ارائهدهنده",
+ "table": {
+ "name": "نام ارائهدهنده",
+ "baseUrl": "آدرس پایه",
+ "actions": "عملیات"
+ },
+ "modal": {
+ "titleAdd": "افزودن ارائهدهنده جدید",
+ "name": {
+ "label": "نام ارائهدهنده",
+ "required": "نام ارائهدهنده الزامی است.",
+ "placeholder": "نام ارائهدهنده را وارد کنید"
+ },
+ "baseUrl": {
+ "label": "آدرس پایه",
+ "help": "آدرس پایه ارائهدهنده API OpenAI. مثال (http://localhost:1234/v1)",
+ "required": "آدرس پایه الزامی است.",
+ "placeholder": "آدرس پایه را وارد کنید"
+ },
+ "apiKey": {
+ "label": "کلید API",
+ "required": "کلید API الزامی است.",
+ "placeholder": "کلید API را وارد کنید"
+ },
+ "submit": "ذخیره",
+ "update": "بهروزرسانی",
+ "deleteConfirm": "آیا مطمئن هستید که میخواهید این ارائهدهنده را حذف کنید؟",
+ "model": {
+ "title": "لیست مدلها",
+ "subheading": "لطفاً مدلهای گفتگویی که میخواهید با این ارائهدهنده استفاده کنید را انتخاب کنید.",
+ "success": "مدلهای جدید با موفقیت اضافه شدند."
+ },
+ "tipLMStudio": "Page Assist به طور خودکار مدلهایی را که در LM Studio بارگذاری کردهاید، دریافت میکند. نیازی به افزودن دستی آنها نیست."
+ },
+ "addSuccess": "ارائهدهنده با موفقیت اضافه شد.",
+ "deleteSuccess": "ارائهدهنده با موفقیت حذف شد.",
+ "updateSuccess": "ارائهدهنده با موفقیت بهروزرسانی شد.",
+ "delete": "حذف",
+ "edit": "ویرایش",
+ "newModel": "افزودن مدلها به ارائهدهنده",
+ "noNewModel": "برای LMStudio، ما به صورت پویا دریافت میکنیم. نیازی به افزودن دستی نیست.",
+ "searchModel": "جستجوی مدل",
+ "selectAll": "انتخاب همه",
+ "save": "ذخیره",
+ "saving": "در حال ذخیره...",
+ "manageModels": {
+ "columns": {
+ "name": "نام مدل",
+ "model_type": "نوع مدل",
+ "model_id": "شناسه مدل",
+ "provider": "نام ارائهدهنده",
+ "actions": "عملیات"
+ },
+ "tooltip": {
+ "delete": "حذف"
+ },
+ "confirm": {
+ "delete": "آیا مطمئن هستید که میخواهید این مدل را حذف کنید؟"
+ },
+ "modal": {
+ "title": "افزودن مدل سفارشی",
+ "form": {
+ "name": {
+ "label": "شناسه مدل",
+ "placeholder": "llama3.2",
+ "required": "شناسه مدل الزامی است."
+ },
+ "provider": {
+ "label": "ارائهدهنده",
+ "placeholder": "ارائهدهنده را انتخاب کنید",
+ "required": "ارائهدهنده الزامی است."
+ },
+ "type": {
+ "label": "نوع مدل"
+ }
+ }
+ }
+ },
+ "noModelFound": "هیچ مدلی یافت نشد. اطمینان حاصل کنید که ارائهدهنده صحیح را با آدرس پایه و کلید API اضافه کردهاید.",
+ "radio": {
+ "chat": "مدل گفتگو",
+ "embedding": "مدل تعبیه",
+ "chatInfo": "برای تکمیل گفتگو و تولید مکالمه استفاده میشود",
+ "embeddingInfo": "برای RAG و سایر وظایف مرتبط با جستجوی معنایی استفاده میشود."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/fr/openai.json b/src/assets/locale/fr/openai.json
new file mode 100644
index 0000000..a71256c
--- /dev/null
+++ b/src/assets/locale/fr/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API compatible OpenAI",
+ "heading": "API compatible OpenAI",
+ "subheading": "Gérez et configurez ici vos fournisseurs d'API compatibles OpenAI.",
+ "addBtn": "Ajouter un fournisseur",
+ "table": {
+ "name": "Nom du fournisseur",
+ "baseUrl": "URL de base",
+ "actions": "Action"
+ },
+ "modal": {
+ "titleAdd": "Ajouter un nouveau fournisseur",
+ "name": {
+ "label": "Nom du fournisseur",
+ "required": "Le nom du fournisseur est requis.",
+ "placeholder": "Entrez le nom du fournisseur"
+ },
+ "baseUrl": {
+ "label": "URL de base",
+ "help": "L'URL de base du fournisseur d'API OpenAI. ex (http://localhost:1234/v1)",
+ "required": "L'URL de base est requise.",
+ "placeholder": "Entrez l'URL de base"
+ },
+ "apiKey": {
+ "label": "Clé API",
+ "required": "La clé API est requise.",
+ "placeholder": "Entrez la clé API"
+ },
+ "submit": "Enregistrer",
+ "update": "Mettre à jour",
+ "deleteConfirm": "Êtes-vous sûr de vouloir supprimer ce fournisseur ?",
+ "model": {
+ "title": "Liste des modèles",
+ "subheading": "Veuillez sélectionner les modèles de chat que vous souhaitez utiliser avec ce fournisseur.",
+ "success": "Nouveaux modèles ajoutés avec succès."
+ },
+ "tipLMStudio": "Page Assist récupérera automatiquement les modèles que vous avez chargés sur LM Studio. Vous n'avez pas besoin de les ajouter manuellement."
+ },
+ "addSuccess": "Fournisseur ajouté avec succès.",
+ "deleteSuccess": "Fournisseur supprimé avec succès.",
+ "updateSuccess": "Fournisseur mis à jour avec succès.",
+ "delete": "Supprimer",
+ "edit": "Modifier",
+ "newModel": "Ajouter des modèles au fournisseur",
+ "noNewModel": "Pour LMStudio, nous récupérons dynamiquement. Pas besoin d'ajout manuel.",
+ "searchModel": "Rechercher un modèle",
+ "selectAll": "Tout sélectionner",
+ "save": "Enregistrer",
+ "saving": "Enregistrement...",
+ "manageModels": {
+ "columns": {
+ "name": "Nom du modèle",
+ "model_type": "Type de modèle",
+ "model_id": "ID du modèle",
+ "provider": "Nom du fournisseur",
+ "actions": "Action"
+ },
+ "tooltip": {
+ "delete": "Supprimer"
+ },
+ "confirm": {
+ "delete": "Êtes-vous sûr de vouloir supprimer ce modèle ?"
+ },
+ "modal": {
+ "title": "Ajouter un modèle personnalisé",
+ "form": {
+ "name": {
+ "label": "ID du modèle",
+ "placeholder": "llama3.2",
+ "required": "L'ID du modèle est requis."
+ },
+ "provider": {
+ "label": "Fournisseur",
+ "placeholder": "Sélectionner un fournisseur",
+ "required": "Le fournisseur est requis."
+ },
+ "type": {
+ "label": "Type de modèle"
+ }
+ }
+ }
+ },
+ "noModelFound": "Aucun modèle trouvé. Assurez-vous d'avoir ajouté le bon fournisseur avec l'URL de base et la clé API.",
+ "radio": {
+ "chat": "Modèle de chat",
+ "embedding": "Modèle d'embedding",
+ "chatInfo": "est utilisé pour la complétion de chat et la génération de conversation",
+ "embeddingInfo": "est utilisé pour RAG et d'autres tâches liées à la recherche sémantique."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/it/openai.json b/src/assets/locale/it/openai.json
new file mode 100644
index 0000000..c9d27ef
--- /dev/null
+++ b/src/assets/locale/it/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API compatibile con OpenAI",
+ "heading": "API compatibile con OpenAI",
+ "subheading": "Gestisci e configura qui i tuoi provider API compatibili con OpenAI.",
+ "addBtn": "Aggiungi Provider",
+ "table": {
+ "name": "Nome Provider",
+ "baseUrl": "URL di Base",
+ "actions": "Azione"
+ },
+ "modal": {
+ "titleAdd": "Aggiungi Nuovo Provider",
+ "name": {
+ "label": "Nome Provider",
+ "required": "Il nome del provider è obbligatorio.",
+ "placeholder": "Inserisci il nome del provider"
+ },
+ "baseUrl": {
+ "label": "URL di Base",
+ "help": "L'URL di base del provider API OpenAI. es. (http://localhost:1234/v1)",
+ "required": "L'URL di base è obbligatorio.",
+ "placeholder": "Inserisci l'URL di base"
+ },
+ "apiKey": {
+ "label": "Chiave API",
+ "required": "La chiave API è obbligatoria.",
+ "placeholder": "Inserisci la chiave API"
+ },
+ "submit": "Salva",
+ "update": "Aggiorna",
+ "deleteConfirm": "Sei sicuro di voler eliminare questo provider?",
+ "model": {
+ "title": "Lista Modelli",
+ "subheading": "Seleziona i modelli di chat che desideri utilizzare con questo provider.",
+ "success": "Nuovi modelli aggiunti con successo."
+ },
+ "tipLMStudio": "Page Assist recupererà automaticamente i modelli caricati su LM Studio. Non è necessario aggiungerli manualmente."
+ },
+ "addSuccess": "Provider aggiunto con successo.",
+ "deleteSuccess": "Provider eliminato con successo.",
+ "updateSuccess": "Provider aggiornato con successo.",
+ "delete": "Elimina",
+ "edit": "Modifica",
+ "newModel": "Aggiungi Modelli al Provider",
+ "noNewModel": "Per LMStudio, recuperiamo dinamicamente. Non è necessaria l'aggiunta manuale.",
+ "searchModel": "Cerca Modello",
+ "selectAll": "Seleziona Tutto",
+ "save": "Salva",
+ "saving": "Salvataggio in corso...",
+ "manageModels": {
+ "columns": {
+ "name": "Nome Modello",
+ "model_type": "Tipo di Modello",
+ "model_id": "ID Modello",
+ "provider": "Nome Provider",
+ "actions": "Azione"
+ },
+ "tooltip": {
+ "delete": "Elimina"
+ },
+ "confirm": {
+ "delete": "Sei sicuro di voler eliminare questo modello?"
+ },
+ "modal": {
+ "title": "Aggiungi Modello Personalizzato",
+ "form": {
+ "name": {
+ "label": "ID Modello",
+ "placeholder": "llama3.2",
+ "required": "L'ID del modello è obbligatorio."
+ },
+ "provider": {
+ "label": "Provider",
+ "placeholder": "Seleziona provider",
+ "required": "Il provider è obbligatorio."
+ },
+ "type": {
+ "label": "Tipo di Modello"
+ }
+ }
+ }
+ },
+ "noModelFound": "Nessun modello trovato. Assicurati di aver aggiunto il provider corretto con l'URL di base e la chiave API.",
+ "radio": {
+ "chat": "Modello di Chat",
+ "embedding": "Modello di Embedding",
+ "chatInfo": "è utilizzato per il completamento della chat e la generazione di conversazioni",
+ "embeddingInfo": "è utilizzato per RAG e altri compiti correlati alla ricerca semantica."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/ja-JP/openai.json b/src/assets/locale/ja-JP/openai.json
new file mode 100644
index 0000000..829e886
--- /dev/null
+++ b/src/assets/locale/ja-JP/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI互換API",
+ "heading": "OpenAI互換API",
+ "subheading": "OpenAI API互換プロバイダーの管理と設定はこちらで行います。",
+ "addBtn": "プロバイダーを追加",
+ "table": {
+ "name": "プロバイダー名",
+ "baseUrl": "ベースURL",
+ "actions": "アクション"
+ },
+ "modal": {
+ "titleAdd": "新規プロバイダーを追加",
+ "name": {
+ "label": "プロバイダー名",
+ "required": "プロバイダー名は必須です。",
+ "placeholder": "プロバイダー名を入力"
+ },
+ "baseUrl": {
+ "label": "ベースURL",
+ "help": "OpenAI APIプロバイダーのベースURL。例:(http://localhost:1234/v1)",
+ "required": "ベースURLは必須です。",
+ "placeholder": "ベースURLを入力"
+ },
+ "apiKey": {
+ "label": "APIキー",
+ "required": "APIキーは必須です。",
+ "placeholder": "APIキーを入力"
+ },
+ "submit": "保存",
+ "update": "更新",
+ "deleteConfirm": "このプロバイダーを削除してもよろしいですか?",
+ "model": {
+ "title": "モデルリスト",
+ "subheading": "このプロバイダーで使用したいチャットモデルを選択してください。",
+ "success": "新しいモデルが正常に追加されました。"
+ },
+ "tipLMStudio": "Page AssistはLM Studioにロードしたモデルを自動的に取得します。手動で追加する必要はありません。"
+ },
+ "addSuccess": "プロバイダーが正常に追加されました。",
+ "deleteSuccess": "プロバイダーが正常に削除されました。",
+ "updateSuccess": "プロバイダーが正常に更新されました。",
+ "delete": "削除",
+ "edit": "編集",
+ "newModel": "プロバイダーにモデルを追加",
+ "noNewModel": "LMStudioの場合、動的に取得します。手動での追加は不要です。",
+ "searchModel": "モデルを検索",
+ "selectAll": "すべて選択",
+ "save": "保存",
+ "saving": "保存中...",
+ "manageModels": {
+ "columns": {
+ "name": "モデル名",
+ "model_type": "モデルタイプ",
+ "model_id": "モデルID",
+ "provider": "プロバイダー名",
+ "actions": "アクション"
+ },
+ "tooltip": {
+ "delete": "削除"
+ },
+ "confirm": {
+ "delete": "このモデルを削除してもよろしいですか?"
+ },
+ "modal": {
+ "title": "カスタムモデルを追加",
+ "form": {
+ "name": {
+ "label": "モデルID",
+ "placeholder": "llama3.2",
+ "required": "モデルIDは必須です。"
+ },
+ "provider": {
+ "label": "プロバイダー",
+ "placeholder": "プロバイダーを選択",
+ "required": "プロバイダーは必須です。"
+ },
+ "type": {
+ "label": "モデルタイプ"
+ }
+ }
+ }
+ },
+ "noModelFound": "モデルが見つかりません。正しいベースURLとAPIキーを持つプロバイダーを追加したことを確認してください。",
+ "radio": {
+ "chat": "チャットモデル",
+ "embedding": "埋め込みモデル",
+ "chatInfo": "はチャット完了と会話生成に使用されます",
+ "embeddingInfo": "はRAGやその他の意味検索関連タスクに使用されます。"
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/ml/openai.json b/src/assets/locale/ml/openai.json
new file mode 100644
index 0000000..6fe486e
--- /dev/null
+++ b/src/assets/locale/ml/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI അനുയോജ്യമായ API",
+ "heading": "OpenAI അനുയോജ്യമായ API",
+ "subheading": "നിങ്ങളുടെ OpenAI API അനുയോജ്യമായ ദാതാക്കളെ ഇവിടെ നിയന്ത്രിക്കുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുക.",
+ "addBtn": "ദാതാവിനെ ചേർക്കുക",
+ "table": {
+ "name": "ദാതാവിന്റെ പേര്",
+ "baseUrl": "അടിസ്ഥാന URL",
+ "actions": "പ്രവർത്തനം"
+ },
+ "modal": {
+ "titleAdd": "പുതിയ ദാതാവിനെ ചേർക്കുക",
+ "name": {
+ "label": "ദാതാവിന്റെ പേര്",
+ "required": "ദാതാവിന്റെ പേര് ആവശ്യമാണ്.",
+ "placeholder": "ദാതാവിന്റെ പേര് നൽകുക"
+ },
+ "baseUrl": {
+ "label": "അടിസ്ഥാന URL",
+ "help": "OpenAI API ദാതാവിന്റെ അടിസ്ഥാന URL. ഉദാ. (http://localhost:1234/v1)",
+ "required": "അടിസ്ഥാന URL ആവശ്യമാണ്.",
+ "placeholder": "അടിസ്ഥാന URL നൽകുക"
+ },
+ "apiKey": {
+ "label": "API കീ",
+ "required": "API കീ ആവശ്യമാണ്.",
+ "placeholder": "API കീ നൽകുക"
+ },
+ "submit": "സംരക്ഷിക്കുക",
+ "update": "അപ്ഡേറ്റ് ചെയ്യുക",
+ "deleteConfirm": "ഈ ദാതാവിനെ ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?",
+ "model": {
+ "title": "മോഡൽ പട്ടിക",
+ "subheading": "ഈ ദാതാവിനോടൊപ്പം ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന ചാറ്റ് മോഡലുകൾ തിരഞ്ഞെടുക്കുക.",
+ "success": "പുതിയ മോഡലുകൾ വിജയകരമായി ചേർത്തു."
+ },
+ "tipLMStudio": "LM Studio-യിൽ നിങ്ങൾ ലോഡ് ചെയ്ത മോഡലുകൾ Page Assist സ്വയമേവ ലഭ്യമാക്കും. അവ മാനുവലായി ചേർക്കേണ്ടതില്ല."
+ },
+ "addSuccess": "ദാതാവിനെ വിജയകരമായി ചേർത്തു.",
+ "deleteSuccess": "ദാതാവിനെ വിജയകരമായി ഇല്ലാതാക്കി.",
+ "updateSuccess": "ദാതാവിനെ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു.",
+ "delete": "ഇല്ലാതാക്കുക",
+ "edit": "തിരുത്തുക",
+ "newModel": "ദാതാവിലേക്ക് മോഡലുകൾ ചേർക്കുക",
+ "noNewModel": "LMStudio-യ്ക്കായി, ഞങ്ങൾ ഡൈനാമിക്കായി ലഭ്യമാക്കുന്നു. മാനുവലായി ചേർക്കേണ്ടതില്ല.",
+ "searchModel": "മോഡൽ തിരയുക",
+ "selectAll": "എല്ലാം തിരഞ്ഞെടുക്കുക",
+ "save": "സംരക്ഷിക്കുക",
+ "saving": "സംരക്ഷിക്കുന്നു...",
+ "manageModels": {
+ "columns": {
+ "name": "മോഡൽ പേര്",
+ "model_type": "മോഡൽ തരം",
+ "model_id": "മോഡൽ ID",
+ "provider": "ദാതാവിന്റെ പേര്",
+ "actions": "പ്രവർത്തനം"
+ },
+ "tooltip": {
+ "delete": "ഇല്ലാതാക്കുക"
+ },
+ "confirm": {
+ "delete": "ഈ മോഡൽ ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?"
+ },
+ "modal": {
+ "title": "ഇഷ്ടാനുസൃത മോഡൽ ചേർക്കുക",
+ "form": {
+ "name": {
+ "label": "മോഡൽ ID",
+ "placeholder": "llama3.2",
+ "required": "മോഡൽ ID ആവശ്യമാണ്."
+ },
+ "provider": {
+ "label": "ദാതാവ്",
+ "placeholder": "ദാതാവിനെ തിരഞ്ഞെടുക്കുക",
+ "required": "ദാതാവ് ആവശ്യമാണ്."
+ },
+ "type": {
+ "label": "മോഡൽ തരം"
+ }
+ }
+ }
+ },
+ "noModelFound": "മോഡൽ കണ്ടെത്തിയില്ല. അടിസ്ഥാന URL-ഉം API കീയും ഉള്ള ശരിയായ ദാതാവിനെ നിങ്ങൾ ചേർത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.",
+ "radio": {
+ "chat": "ചാറ്റ് മോഡൽ",
+ "embedding": "എംബെഡിംഗ് മോഡൽ",
+ "chatInfo": "ചാറ്റ് പൂർത്തീകരണത്തിനും സംഭാഷണ നിർമ്മാണത്തിനും ഉപയോഗിക്കുന്നു",
+ "embeddingInfo": "RAG-നും മറ്റ് സെമാന്റിക് തിരയൽ അനുബന്ധ ടാസ്കുകൾക്കും ഉപയോഗിക്കുന്നു."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/no/chrome.json b/src/assets/locale/no/chrome.json
new file mode 100644
index 0000000..a37c08d
--- /dev/null
+++ b/src/assets/locale/no/chrome.json
@@ -0,0 +1,13 @@
+{
+ "heading": "Konfigurer Chrome AI",
+ "status": {
+ "label": "Slå Chrome AI Support på eller av på Page Assist"
+ },
+ "error": {
+ "browser_not_supported": "Denne versjonen av Chrome støttes ikke av Gemini Nano-modellen. Vennligst oppdater til versjon 127 eller nyere",
+ "ai_not_supported": "Innstillingen chrome://flags/#prompt-api-for-gemini-nano er ikke tændt. Slå på innstillingen..",
+ "ai_not_ready": "Gemini Nano er ikke tilgjengelig; du må dobbeltsjekke Chrome-innstillingene.",
+ "internal_error": "Det oppsto en intern feil. Vennligst prøv på nytt senere."
+ },
+ "errorDescription": "For å bruke Chrome AI trenger du en nettleserversjon nyere enn 127, som kun er tilgjengelig i Dev - og Canary-kanaler. Etter å ha lastet ned den støttede versjonen, følg disse trinnene:\n\n1. Gå til `chrome://flags/#prompt-api-for-gemini-nano` and select \"Enable\".\n2. Gå til `://flags/#optimization-guide-on-device-model` og velge \"EnabledBypassPrefRequirement\".\n3. Gå til URL-linjen `://components`, søk på \"Optimization Guide On Device Model\", og klikk \"Search for update\". Dette vil laste ned modellen. Hvis du ikke ser innstillingene, gjentar du trinn 1 og 2 og starter nettleseren på nytt."
+}
\ No newline at end of file
diff --git a/src/assets/locale/no/common.json b/src/assets/locale/no/common.json
new file mode 100644
index 0000000..99c91ce
--- /dev/null
+++ b/src/assets/locale/no/common.json
@@ -0,0 +1,105 @@
+{
+ "pageAssist": "Sideassistent",
+ "selectAModel": "Velg en modell",
+ "save": "Lagre",
+ "saved": "Lagret",
+ "cancel": "Avbryt",
+ "retry": "Prøv igjen",
+ "share": {
+ "tooltip": {
+ "share": "Del"
+ },
+ "modal": {
+ "title": "Del lenke til chatten"
+ },
+ "form": {
+ "defaultValue": {
+ "name": "Anonym",
+ "title": "Navnløs chat"
+ },
+ "title": {
+ "label": "Chattittel",
+ "placeholder": "Skriv inn chattittel",
+ "required": "Chattittel er nødvendig"
+ },
+ "name": {
+ "label": "Ditt navn",
+ "placeholder": "Skriv inn ditt navn",
+ "required": "Ditt navn er nødvendig"
+ },
+ "btn": {
+ "save": "Generer en lenke",
+ "saving": "Genererer lenke..."
+ }
+ },
+ "notification": {
+ "successGenerate": "Lenke kopiert til utklippstavle",
+ "failGenerate": "Kunne ikke generere lenke"
+ }
+ },
+ "copyToClipboard": "Kopier til utklippstavle",
+ "webSearch": "Søker på internett",
+ "regenerate": "Regenerer",
+ "edit": "Endre",
+ "saveAndSubmit": "Lagre & Send inn",
+ "editMessage": {
+ "placeholder": "Skriv en melding..."
+ },
+ "submit": "Send inn",
+ "noData": "Ingen data",
+ "noHistory": "Ingen chathistorikk",
+ "chatWithCurrentPage": "Chat med nåværende side",
+ "beta": "Beta",
+ "tts": "Les opp",
+ "currentChatModelSettings": "Nåværende chatmodellinnstillinger",
+ "modelSettings": {
+ "label": "Modellinnstillinger",
+ "description": "Konfigurer modellinnstillingene for alle chatter",
+ "form": {
+ "keepAlive": {
+ "label": "Hold i live",
+ "help": "kontrollerer hvor lenge modellen vil forbli lastet i minnet etter forespørselen (standard: 5m)",
+ "placeholder": "Skriv inn lengden på økten (f.eks. 5m, 10m, 1t)"
+ },
+ "temperature": {
+ "label": "Temperatur",
+ "placeholder": "Skriv inn temperaturverdi (f.eks. 0.7, 1.0)"
+ },
+ "numCtx": {
+ "label": "Kontekstlengde",
+ "placeholder": "Skriv inn kontekstlengdeverdi (standard: 2048)"
+ },
+ "seed": {
+ "label": "Seed",
+ "placeholder": "Skriv inn seedverdi (f.eks. 1234)",
+ "help": "Reproduserbarhet av modellutdata"
+ },
+ "topK": {
+ "label": "Topp K",
+ "placeholder": "Skriv inn Topp K-verdi (f.eks. 40, 100)"
+ },
+ "topP": {
+ "label": "Topp P",
+ "placeholder": "Skriv inn Topp P-verdi (f.eks. 0.9, 0.95)"
+ },
+ "numGpu": {
+ "label": "Antall GPUer",
+ "placeholder": "Skriv inn antall lag som sendes til GPU(er)"
+ },
+ "systemPrompt": {
+ "label": "Midlertidig systemprompt",
+ "placeholder": "Skriv inn systemprompt",
+ "help": "Dette er en rask måte å sette systemprompt i den nåværende chatten, som vil overstyre den valgte systemprompt hvis den finnes."
+ }
+ },
+ "advanced": "Flere modellinnstillinger"
+ },
+ "copilot": {
+ "summary": "Oppsummer",
+ "explain": "Forklar",
+ "rephrase": "Omformulér",
+ "translate": "Oversett",
+ "custom": "Egendefinert"
+ },
+ "citations": "Sitater"
+}
\ No newline at end of file
diff --git a/src/assets/locale/no/knowledge.json b/src/assets/locale/no/knowledge.json
new file mode 100644
index 0000000..c5f7311
--- /dev/null
+++ b/src/assets/locale/no/knowledge.json
@@ -0,0 +1,43 @@
+{
+ "addBtn": "Legg Til Ny Kunnskap",
+ "columns": {
+ "title": "Tittel",
+ "status": "Status",
+ "embeddings": "Embedding Modell",
+ "createdAt": "Opprettet På",
+ "action": "Handlinger"
+ },
+ "expandedColumns": {
+ "name": "Navn"
+ },
+ "tooltip": {
+ "delete": "Slett"
+ },
+ "confirm": {
+ "delete": "Er du sikker på at du vil slette denne kunnskapen?"
+ },
+ "deleteSuccess": "Kunnskap slettet med suksess",
+ "status": {
+ "pending": "Venter",
+ "finished": "Ferdig",
+ "processing": "Behandler",
+ "failed": "Mislyktes"
+ },
+ "addKnowledge": "Legg Til Kunnskap",
+ "form": {
+ "title": {
+ "label": "Kunnskapstittel",
+ "placeholder": "Skriv inn kunnskapstittel",
+ "required": "Kunnskapstittel er nødvendig"
+ },
+ "uploadFile": {
+ "label": "Last Opp Filer",
+ "uploadText": "Dra og slipp filen her og klikk for å laste opp",
+ "uploadHint": "Støttede filtyper: .pdf, .csv, .txt, .md, .docx",
+ "required": "En fil er nødvendig"
+ },
+ "submit": "Send Inn",
+ "success": "Kunnskap lagt til med suksess"
+ },
+ "noEmbeddingModel": "Vennligst legg til en embedding-modell fra RAG-innstillingene først"
+}
\ No newline at end of file
diff --git a/src/assets/locale/no/openai.json b/src/assets/locale/no/openai.json
new file mode 100644
index 0000000..91ddc3d
--- /dev/null
+++ b/src/assets/locale/no/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI-kompatibel API",
+ "heading": "OpenAI-kompatibel API",
+ "subheading": "Administrer og konfigurer dine OpenAI API-kompatible leverandører her.",
+ "addBtn": "Legg til leverandør",
+ "table": {
+ "name": "Leverandørnavn",
+ "baseUrl": "Base-URL",
+ "actions": "Handling"
+ },
+ "modal": {
+ "titleAdd": "Legg til ny leverandør",
+ "name": {
+ "label": "Leverandørnavn",
+ "required": "Leverandørnavn er påkrevd.",
+ "placeholder": "Skriv inn leverandørnavn"
+ },
+ "baseUrl": {
+ "label": "Base-URL",
+ "help": "Base-URL-en til OpenAI API-leverandøren. f.eks. (http://localhost:1234/v1)",
+ "required": "Base-URL er påkrevd.",
+ "placeholder": "Skriv inn base-URL"
+ },
+ "apiKey": {
+ "label": "API-nøkkel",
+ "required": "API-nøkkel er påkrevd.",
+ "placeholder": "Skriv inn API-nøkkel"
+ },
+ "submit": "Lagre",
+ "update": "Oppdater",
+ "deleteConfirm": "Er du sikker på at du vil slette denne leverandøren?",
+ "model": {
+ "title": "Modelliste",
+ "subheading": "Vennligst velg chatmodellene du ønsker å bruke med denne leverandøren.",
+ "success": "Nye modeller ble lagt til."
+ },
+ "tipLMStudio": "Page Assist vil automatisk hente modellene du lastet inn i LM Studio. Du trenger ikke å legge dem til manuelt."
+ },
+ "addSuccess": "Leverandør ble lagt til.",
+ "deleteSuccess": "Leverandør ble slettet.",
+ "updateSuccess": "Leverandør ble oppdatert.",
+ "delete": "Slett",
+ "edit": "Rediger",
+ "newModel": "Legg til modeller for leverandør",
+ "noNewModel": "For LMStudio henter vi dynamisk. Ingen manuell tillegging nødvendig.",
+ "searchModel": "Søk etter modell",
+ "selectAll": "Velg alle",
+ "save": "Lagre",
+ "saving": "Lagrer...",
+ "manageModels": {
+ "columns": {
+ "name": "Modellnavn",
+ "model_type": "Modelltype",
+ "model_id": "Modell-ID",
+ "provider": "Leverandørnavn",
+ "actions": "Handling"
+ },
+ "tooltip": {
+ "delete": "Slett"
+ },
+ "confirm": {
+ "delete": "Er du sikker på at du vil slette denne modellen?"
+ },
+ "modal": {
+ "title": "Legg til tilpasset modell",
+ "form": {
+ "name": {
+ "label": "Modell-ID",
+ "placeholder": "llama3.2",
+ "required": "Modell-ID er påkrevd."
+ },
+ "provider": {
+ "label": "Leverandør",
+ "placeholder": "Velg leverandør",
+ "required": "Leverandør er påkrevd."
+ },
+ "type": {
+ "label": "Modelltype"
+ }
+ }
+ }
+ },
+ "noModelFound": "Ingen modell funnet. Sørg for at du har lagt til riktig leverandør med base-URL og API-nøkkel.",
+ "radio": {
+ "chat": "Chatmodell",
+ "embedding": "Innbyggingsmodell",
+ "chatInfo": "brukes for chatfullføring og samtalegenering",
+ "embeddingInfo": "brukes for RAG og andre semantiske søkerelaterte oppgaver."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/no/option.json b/src/assets/locale/no/option.json
new file mode 100644
index 0000000..76d335e
--- /dev/null
+++ b/src/assets/locale/no/option.json
@@ -0,0 +1,12 @@
+{
+ "newChat": "Ny Chat",
+ "selectAPrompt": "Velg en Prompt",
+ "githubRepository": "GitHub Repository",
+ "settings": "Innstillinger",
+ "sidebarTitle": "Chathistorikk",
+ "error": "Feil",
+ "somethingWentWrong": "Noe gikk galt",
+ "validationSelectModel": "Vennligst velg en modell for å fortsette",
+ "deleteHistoryConfirmation": "Er du sikker på at du vil slette denne historikken?",
+ "editHistoryTitle": "Skriv inn en ny tittel"
+}
diff --git a/src/assets/locale/no/playground.json b/src/assets/locale/no/playground.json
new file mode 100644
index 0000000..b812649
--- /dev/null
+++ b/src/assets/locale/no/playground.json
@@ -0,0 +1,29 @@
+{
+ "ollamaState": {
+ "searching": "Søker etter din Ollama 🦙",
+ "running": "Ollama kjører 🦙",
+ "notRunning": "Kan ikke koble til Ollama 🦙",
+ "connectionError": "Det ser ut til at du har en tilkoblingsfeil. Vennligst se denne
dokumentasjonen for feilsøking."
+ },
+ "formError": {
+ "noModel": "Vennligst velg en modell",
+ "noEmbeddingModel": "Vennligst velg en embedding-modell under innstillinger > RAG-siden"
+ },
+ "form": {
+ "textarea": {
+ "placeholder": "Skriv en melding..."
+ },
+ "webSearch": {
+ "on": "På",
+ "off": "Av"
+ }
+ },
+ "tooltip": {
+ "searchInternet": "Søk på Internett",
+ "speechToText": "Tale til Tekst",
+ "uploadImage": "Last opp Bilde",
+ "stopStreaming": "Stopp Streaming",
+ "knowledge": "Kunnskap"
+ },
+ "sendWhenEnter": "Søk når Enter trykkes"
+}
diff --git a/src/assets/locale/no/settings.json b/src/assets/locale/no/settings.json
new file mode 100644
index 0000000..fb90aa5
--- /dev/null
+++ b/src/assets/locale/no/settings.json
@@ -0,0 +1,262 @@
+{
+ "generalSettings": {
+ "title": "Generelle Innstillinger",
+ "settings": {
+ "heading": "Web UI Innstillinger",
+ "speechRecognitionLang": {
+ "label": "Talegjenkjenning Språk",
+ "placeholder": "Velg et språk"
+ },
+ "language": {
+ "label": "Språk",
+ "placeholder": "Velg et språk"
+ },
+ "darkMode": {
+ "label": "Endre Tema",
+ "options": {
+ "light": "Lyst",
+ "dark": "Mørkt"
+ }
+ },
+ "copilotResumeLastChat": {
+ "label": "Gjenoppta siste chat ved åpning av SidePanel (copilot)"
+ },
+ "hideCurrentChatModelSettings": {
+ "label": "Skjul gjeldende chat modell innstillinger"
+ },
+ "restoreLastChatModel": {
+ "label": "Gjenopprett sist brukte chatmodell for fremtidig bruk"
+ },
+ "sendNotificationAfterIndexing": {
+ "label": "Send varsel etter ferdigbehandling av kunnskapsbasen"
+ },
+ "generateTitle" :{
+ "label": "Generer tittel med AI"
+ }
+ },
+ "sidepanelRag": {
+ "heading": "Copilot Chat med Nettsted Innstillinger",
+ "ragEnabled": {
+ "label": "Chat med nettstedet ved bruk av vektorinnleggelser (vector embeddings)"
+ },
+ "maxWebsiteContext": {
+ "label": "Normal nettstedinnholds størrelse",
+ "placeholder": "Innholdsstørrelse (standard 4028)"
+ }
+ },
+ "webSearch": {
+ "heading": "Administrer Web Søk",
+ "searchMode": {
+ "label": "Søkemodus"
+ },
+ "provider": {
+ "label": "Søkemotor",
+ "placeholder": "Velg en søkemotor"
+ },
+ "totalSearchResults": {
+ "label": "Antall søkeresultater",
+ "placeholder": "Skriv inn antall søkeresultater"
+ },
+ "visitSpecificWebsite": {
+ "label": "Besøk nettstedet nevnt i samtalen"
+ }
+ },
+ "system": {
+ "heading": "Systeminnstillinger",
+ "deleteChatHistory": {
+ "label": "Slett Chathistorikk",
+ "button": "Slett",
+ "confirm": "Er du sikker på at du vil slette chathistorikken din? Denne handlingen kan ikke angres."
+ },
+ "export": {
+ "label": "Eksporter chathistorikk, kunnskapsbase og prompts",
+ "button": "Eksporter Data",
+ "success": "Eksport vellykket"
+ },
+ "import": {
+ "label": "Importer chathistorikk, kunnskapsbase og prompts",
+ "button": "Importer Data",
+ "success": "Import vellykket",
+ "error": "Importfeil"
+ }
+ },
+ "tts": {
+ "heading": "Tekst-til-tale Innstillinger",
+ "ttsEnabled": {
+ "label": "Legg til Tekst-til-Tale"
+ },
+ "ttsProvider": {
+ "label": "Tekst-til-Tale Tilbyder",
+ "placeholder": "Velg en tilbyder"
+ },
+ "ttsVoice": {
+ "label": "Tekst-til-Tale Stemme",
+ "placeholder": "Velg en stemme"
+ },
+ "ssmlEnabled": {
+ "label": "Aktiver SSML (Speech Synthesis Markup Language)"
+ }
+ }
+ },
+ "manageModels": {
+ "title": "Administrer Modeller",
+ "addBtn": "Legg til ny Modell",
+ "columns": {
+ "name": "Navn",
+ "digest": "Digest",
+ "modifiedAt": "Endret den",
+ "size": "Størrelse",
+ "actions": "Handlinger"
+ },
+ "expandedColumns": {
+ "parentModel": "Overordnet modell",
+ "format": "Format",
+ "family": "Familie",
+ "parameterSize": "Parameterstørrelse",
+ "quantizationLevel": "Kvantifiseringsnivå"
+ },
+ "tooltip": {
+ "delete": "Slett Modell",
+ "repull": "Hent Modell På Nytt"
+ },
+ "confirm": {
+ "delete": "Er du sikker på at du vil slette denne modellen?",
+ "repull": "Er du sikker på at du vil hente denne modellen på nytt?"
+ },
+ "modal": {
+ "title": "Legg til Ny Modell",
+ "placeholder": "Skriv inn Modellnavn",
+ "pull": "Hent Modell"
+ },
+ "notification": {
+ "pullModel": "Henter Modell",
+ "pullModelDescription": "Henter {{modelName}} modell. For flere detaljer, sjekk utvidelsesikonet.",
+ "success": "Suksess",
+ "error": "Feil",
+ "successDescription": "Modellen ble hentet vellykket",
+ "successDeleteDescription": "Modellen ble slettet vellykket",
+ "someError": "Noe gikk galt. Vennligst prøv igjen senere"
+ }
+ },
+ "managePrompts": {
+ "title": "Administrer Prompts",
+ "addBtn": "Legg til Ny Prompt",
+ "option1": "Normal",
+ "option2": "RAG",
+ "questionPrompt": "Spørsmålsprompt",
+ "segmented": {
+ "custom": "Tilpassede Prompts",
+ "copilot": "Copilot Prompts"
+ },
+ "columns": {
+ "title": "Tittel",
+ "prompt": "Prompt",
+ "type": "Prompttype",
+ "actions": "Handlinger"
+ },
+ "systemPrompt": "Systemprompt",
+ "quickPrompt": "Hurtigprompt",
+ "tooltip": {
+ "delete": "Slett Prompt",
+ "edit": "Endre Prompt"
+ },
+ "confirm": {
+ "delete": "Er du sikker på at du vil slette denne prompten? Denne handlingen kan ikke angres."
+ },
+ "modal": {
+ "addTitle": "Legg til ny Prompt",
+ "editTitle": "Endre Prompt"
+ },
+ "form": {
+ "title": {
+ "label": "Tittel",
+ "placeholder": "Min Kule Prompt",
+ "required": "Vennligst skriv inn en tittel"
+ },
+ "prompt": {
+ "label": "Prompt",
+ "placeholder": "Skriv inn Prompt",
+ "required": "Vennligst skriv inn en prompt",
+ "help": "Du kan bruke {key} som variabel i din prompt.",
+ "missingTextPlaceholder": "Variabelen {text} mangler i prompten. Vennligst legg til dette."
+ },
+ "isSystem": {
+ "label": "Er Systemprompt"
+ },
+ "btnSave": {
+ "saving": "Legger til Prompt...",
+ "save": "Legg til Prompt"
+ },
+ "btnEdit": {
+ "saving": "Oppdaterer Prompt...",
+ "save": "Oppdater Prompt"
+ }
+ },
+ "notification": {
+ "addSuccess": "Prompt Lagt Til",
+ "addSuccessDesc": "Prompt ble lagt til vellykket",
+ "error": "Feil",
+ "someError": "Noe gikk galt. Vennligst prøv igjen senere",
+ "updatedSuccess": "Prompt Oppdatert",
+ "updatedSuccessDesc": "Prompt ble oppdatert vellykket",
+ "deletedSuccess": "Prompt Slettet",
+ "deletedSuccessDesc": "Prompt ble slettet vellykket"
+ }
+ },
+ "manageShare": {
+ "title": "Administrer Deling",
+ "heading": "Konfigurer Side deling URL",
+ "form": {
+ "url": {
+ "label": "Side Deling URL",
+ "placeholder": "Skriv inn side deling URL",
+ "required": "Vennligst skriv inn din Side deling URL!",
+ "help": "For personvern kan du selv hoste side delingen og angi URL-en her.
Lær Mer."
+ }
+ },
+ "webshare": {
+ "heading": "Web Deling",
+ "columns": {
+ "title": "Tittel",
+ "url": "URL",
+ "actions": "Handlinger"
+ },
+ "tooltip": {
+ "delete": "Slett Deling"
+ },
+ "confirm": {
+ "delete": "Er du sikker på at du vil slette denne delingen? Dette kan ikke angres."
+ },
+ "label": "Administrer Side Deling",
+ "description": "Legg til eller deaktiver side delingsfunksjonen"
+ },
+ "notification": {
+ "pageShareSuccess": "Side Deling URL oppdatert vellykket",
+ "someError": "Noe gikk galt. Vennligst prøv igjen senere",
+ "webShareDeleteSuccess": "Webdeling ble slettet vellykket"
+ }
+ },
+ "ollamaSettings": {
+ "title": "Ollama Innstillinger",
+ "heading": "Konfigurer Ollama Plugin",
+ "enabled": {
+ "label": "Aktiver Ollama Plugin"
+ },
+ "provider": {
+ "label": "Ollama Tilbyder",
+ "placeholder": "Velg en Ollama tilbyder"
+ },
+ "apiKey": {
+ "label": "Ollama API Nøkkel",
+ "placeholder": "Skriv inn Ollama API Nøkkel",
+ "required": "API Nøkkel er påkrevd"
+ },
+ "saveBtn": {
+ "save": "Lagre"
+ },
+ "notification": {
+ "saveSuccess": "Ollama Plugin lagret vellykket",
+ "someError": "Noe gikk galt. Vennligst prøv igjen senere"
+ }
+ }
+}
diff --git a/src/assets/locale/no/sidepanel.json b/src/assets/locale/no/sidepanel.json
new file mode 100644
index 0000000..6df9d20
--- /dev/null
+++ b/src/assets/locale/no/sidepanel.json
@@ -0,0 +1,7 @@
+{
+ "tooltip": {
+ "embed": "Det kan ta noen minutter å bygge din siden. Vennligst vent...",
+ "clear": "Slett chathistorikken",
+ "history": "Chathistorikk"
+ }
+}
diff --git a/src/assets/locale/pt-BR/openai.json b/src/assets/locale/pt-BR/openai.json
new file mode 100644
index 0000000..0a97f79
--- /dev/null
+++ b/src/assets/locale/pt-BR/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API Compatível com OpenAI",
+ "heading": "API compatível com OpenAI",
+ "subheading": "Gerencie e configure seus provedores compatíveis com a API OpenAI aqui.",
+ "addBtn": "Adicionar Provedor",
+ "table": {
+ "name": "Nome do Provedor",
+ "baseUrl": "URL Base",
+ "actions": "Ação"
+ },
+ "modal": {
+ "titleAdd": "Adicionar Novo Provedor",
+ "name": {
+ "label": "Nome do Provedor",
+ "required": "O nome do provedor é obrigatório.",
+ "placeholder": "Digite o nome do provedor"
+ },
+ "baseUrl": {
+ "label": "URL Base",
+ "help": "A URL base do provedor da API OpenAI. ex. (http://localhost:1234/v1)",
+ "required": "A URL base é obrigatória.",
+ "placeholder": "Digite a URL base"
+ },
+ "apiKey": {
+ "label": "Chave da API",
+ "required": "A chave da API é obrigatória.",
+ "placeholder": "Digite a chave da API"
+ },
+ "submit": "Salvar",
+ "update": "Atualizar",
+ "deleteConfirm": "Tem certeza de que deseja excluir este provedor?",
+ "model": {
+ "title": "Lista de Modelos",
+ "subheading": "Por favor, selecione os modelos de chat que você deseja usar com este provedor.",
+ "success": "Novos modelos adicionados com sucesso."
+ },
+ "tipLMStudio": "O Page Assist buscará automaticamente os modelos que você carregou no LM Studio. Você não precisa adicioná-los manualmente."
+ },
+ "addSuccess": "Provedor adicionado com sucesso.",
+ "deleteSuccess": "Provedor excluído com sucesso.",
+ "updateSuccess": "Provedor atualizado com sucesso.",
+ "delete": "Excluir",
+ "edit": "Editar",
+ "newModel": "Adicionar Modelos ao Provedor",
+ "noNewModel": "Para o LMStudio, buscamos dinamicamente. Não é necessária adição manual.",
+ "searchModel": "Pesquisar Modelo",
+ "selectAll": "Selecionar Tudo",
+ "save": "Salvar",
+ "saving": "Salvando...",
+ "manageModels": {
+ "columns": {
+ "name": "Nome do Modelo",
+ "model_type": "Tipo de Modelo",
+ "model_id": "ID do Modelo",
+ "provider": "Nome do Provedor",
+ "actions": "Ação"
+ },
+ "tooltip": {
+ "delete": "Excluir"
+ },
+ "confirm": {
+ "delete": "Tem certeza de que deseja excluir este modelo?"
+ },
+ "modal": {
+ "title": "Adicionar Modelo Personalizado",
+ "form": {
+ "name": {
+ "label": "ID do Modelo",
+ "placeholder": "llama3.2",
+ "required": "O ID do modelo é obrigatório."
+ },
+ "provider": {
+ "label": "Provedor",
+ "placeholder": "Selecione o provedor",
+ "required": "O provedor é obrigatório."
+ },
+ "type": {
+ "label": "Tipo de Modelo"
+ }
+ }
+ }
+ },
+ "noModelFound": "Nenhum modelo encontrado. Certifique-se de ter adicionado o provedor correto com URL base e chave da API.",
+ "radio": {
+ "chat": "Modelo de Chat",
+ "embedding": "Modelo de Incorporação",
+ "chatInfo": "é usado para conclusão de chat e geração de conversas",
+ "embeddingInfo": "é usado para RAG e outras tarefas relacionadas à busca semântica."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/ru/openai.json b/src/assets/locale/ru/openai.json
new file mode 100644
index 0000000..436c676
--- /dev/null
+++ b/src/assets/locale/ru/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "API, совместимый с OpenAI",
+ "heading": "API, совместимый с OpenAI",
+ "subheading": "Управляйте и настраивайте ваши провайдеры, совместимые с API OpenAI, здесь.",
+ "addBtn": "Добавить провайдера",
+ "table": {
+ "name": "Имя провайдера",
+ "baseUrl": "Базовый URL",
+ "actions": "Действие"
+ },
+ "modal": {
+ "titleAdd": "Добавить нового провайдера",
+ "name": {
+ "label": "Имя провайдера",
+ "required": "Имя провайдера обязательно.",
+ "placeholder": "Введите имя провайдера"
+ },
+ "baseUrl": {
+ "label": "Базовый URL",
+ "help": "Базовый URL провайдера API OpenAI. например (http://localhost:1234/v1)",
+ "required": "Базовый URL обязателен.",
+ "placeholder": "Введите базовый URL"
+ },
+ "apiKey": {
+ "label": "Ключ API",
+ "required": "Ключ API обязателен.",
+ "placeholder": "Введите ключ API"
+ },
+ "submit": "Сохранить",
+ "update": "Обновить",
+ "deleteConfirm": "Вы уверены, что хотите удалить этого провайдера?",
+ "model": {
+ "title": "Список моделей",
+ "subheading": "Пожалуйста, выберите модели чата, которые вы хотите использовать с этим провайдером.",
+ "success": "Новые модели успешно добавлены."
+ },
+ "tipLMStudio": "Page Assist автоматически загрузит модели, которые вы загрузили в LM Studio. Вам не нужно добавлять их вручную."
+ },
+ "addSuccess": "Провайдер успешно добавлен.",
+ "deleteSuccess": "Провайдер успешно удален.",
+ "updateSuccess": "Провайдер успешно обновлен.",
+ "delete": "Удалить",
+ "edit": "Редактировать",
+ "newModel": "Добавить модели к провайдеру",
+ "noNewModel": "Для LMStudio мы загружаем динамически. Ручное добавление не требуется.",
+ "searchModel": "Поиск модели",
+ "selectAll": "Выбрать все",
+ "save": "Сохранить",
+ "saving": "Сохранение...",
+ "manageModels": {
+ "columns": {
+ "name": "Название модели",
+ "model_type": "Тип модели",
+ "model_id": "ID модели",
+ "provider": "Имя провайдера",
+ "actions": "Действие"
+ },
+ "tooltip": {
+ "delete": "Удалить"
+ },
+ "confirm": {
+ "delete": "Вы уверены, что хотите удалить эту модель?"
+ },
+ "modal": {
+ "title": "Добавить пользовательскую модель",
+ "form": {
+ "name": {
+ "label": "ID модели",
+ "placeholder": "llama3.2",
+ "required": "ID модели обязателен."
+ },
+ "provider": {
+ "label": "Провайдер",
+ "placeholder": "Выберите провайдера",
+ "required": "Провайдер обязателен."
+ },
+ "type": {
+ "label": "Тип модели"
+ }
+ }
+ }
+ },
+ "noModelFound": "Модели не найдены. Убедитесь, что вы добавили правильного провайдера с базовым URL и ключом API.",
+ "radio": {
+ "chat": "Модель чата",
+ "embedding": "Модель встраивания",
+ "chatInfo": "используется для завершения чата и генерации разговоров",
+ "embeddingInfo": "используется для RAG и других задач, связанных с семантическим поиском."
+ }
+}
\ No newline at end of file
diff --git a/src/assets/locale/zh/openai.json b/src/assets/locale/zh/openai.json
new file mode 100644
index 0000000..1b02184
--- /dev/null
+++ b/src/assets/locale/zh/openai.json
@@ -0,0 +1,90 @@
+{
+ "settings": "OpenAI 兼容 API",
+ "heading": "OpenAI 兼容 API",
+ "subheading": "在此管理和配置您的 OpenAI API 兼容提供商。",
+ "addBtn": "添加提供商",
+ "table": {
+ "name": "提供商名称",
+ "baseUrl": "基础 URL",
+ "actions": "操作"
+ },
+ "modal": {
+ "titleAdd": "添加新提供商",
+ "name": {
+ "label": "提供商名称",
+ "required": "提供商名称为必填项。",
+ "placeholder": "输入提供商名称"
+ },
+ "baseUrl": {
+ "label": "基础 URL",
+ "help": "OpenAI API 提供商的基础 URL。例如 (http://localhost:1234/v1)",
+ "required": "基础 URL 为必填项。",
+ "placeholder": "输入基础 URL"
+ },
+ "apiKey": {
+ "label": "API 密钥",
+ "required": "API 密钥为必填项。",
+ "placeholder": "输入 API 密钥"
+ },
+ "submit": "保存",
+ "update": "更新",
+ "deleteConfirm": "您确定要删除此提供商吗?",
+ "model": {
+ "title": "模型列表",
+ "subheading": "请选择您想要与此提供商一起使用的聊天模型。",
+ "success": "成功添加新模型。"
+ },
+ "tipLMStudio": "Page Assist 将自动获取您在 LM Studio 中加载的模型。您无需手动添加它们。"
+ },
+ "addSuccess": "提供商添加成功。",
+ "deleteSuccess": "提供商删除成功。",
+ "updateSuccess": "提供商更新成功。",
+ "delete": "删除",
+ "edit": "编辑",
+ "newModel": "向提供商添加模型",
+ "noNewModel": "对于 LMStudio,我们动态获取。无需手动添加。",
+ "searchModel": "搜索模型",
+ "selectAll": "全选",
+ "save": "保存",
+ "saving": "保存中...",
+ "manageModels": {
+ "columns": {
+ "name": "模型名称",
+ "model_type": "模型类型",
+ "model_id": "模型 ID",
+ "provider": "提供商名称",
+ "actions": "操作"
+ },
+ "tooltip": {
+ "delete": "删除"
+ },
+ "confirm": {
+ "delete": "您确定要删除此模型吗?"
+ },
+ "modal": {
+ "title": "添加自定义模型",
+ "form": {
+ "name": {
+ "label": "模型 ID",
+ "placeholder": "llama3.2",
+ "required": "模型 ID 为必填项。"
+ },
+ "provider": {
+ "label": "提供商",
+ "placeholder": "选择提供商",
+ "required": "提供商为必填项。"
+ },
+ "type": {
+ "label": "模型类型"
+ }
+ }
+ }
+ },
+ "noModelFound": "未找到模型。请确保您已添加正确的提供商,包括基础 URL 和 API 密钥。",
+ "radio": {
+ "chat": "聊天模型",
+ "embedding": "嵌入模型",
+ "chatInfo": "用于聊天补全和对话生成",
+ "embeddingInfo": "用于 RAG 和其他语义搜索相关任务。"
+ }
+}
\ No newline at end of file
diff --git a/src/components/Common/ModelSelect.tsx b/src/components/Common/ModelSelect.tsx
index e39a9f6..1a9e8d0 100644
--- a/src/components/Common/ModelSelect.tsx
+++ b/src/components/Common/ModelSelect.tsx
@@ -38,10 +38,10 @@ export const ModelSelect: React.FC = () => {
),
onClick: () => {
- if (selectedModel === d.name) {
+ if (selectedModel === d.model) {
setSelectedModel(null)
} else {
- setSelectedModel(d.name)
+ setSelectedModel(d.model)
}
}
})) || [],
diff --git a/src/components/Common/Playground/EditMessageForm.tsx b/src/components/Common/Playground/EditMessageForm.tsx
index e864e1c..e818f24 100644
--- a/src/components/Common/Playground/EditMessageForm.tsx
+++ b/src/components/Common/Playground/EditMessageForm.tsx
@@ -49,13 +49,13 @@ export const EditMessageForm = (props: Props) => {
- {t('citations')}
+ {t("citations")}
),
children: (
diff --git a/src/components/Common/ProviderIcon.tsx b/src/components/Common/ProviderIcon.tsx
index a97776f..38ba504 100644
--- a/src/components/Common/ProviderIcon.tsx
+++ b/src/components/Common/ProviderIcon.tsx
@@ -1,5 +1,11 @@
-import { ChromeIcon } from "lucide-react"
+import { ChromeIcon, CpuIcon } from "lucide-react"
import { OllamaIcon } from "../Icons/Ollama"
+import { FireworksMonoIcon } from "../Icons/Fireworks"
+import { GroqMonoIcon } from "../Icons/Groq"
+import { LMStudioIcon } from "../Icons/LMStudio"
+import { OpenAiIcon } from "../Icons/OpenAI"
+import { TogtherMonoIcon } from "../Icons/Togther"
+import { OpenRouterIcon } from "../Icons/OpenRouter"
export const ProviderIcons = ({
provider,
@@ -11,6 +17,20 @@ export const ProviderIcons = ({
switch (provider) {
case "chrome":
return