Sfoglia il codice sorgente

Merge remote-tracking branch 'upstream/dev' into feat/model-config

Jun Siang Cheah 11 mesi fa
parent
commit
7ccef3e77a
52 ha cambiato i file con 3963 aggiunte e 4839 eliminazioni
  1. 37 7
      .github/workflows/docker-build.yaml
  2. 5 1
      .github/workflows/integration-test.yml
  3. 6 0
      backend/apps/rag/main.py
  4. 1 0
      backend/requirements.txt
  5. 23 0
      cypress/e2e/chat.cy.ts
  6. 31 0
      docker-compose.a1111-test.yaml
  7. 1075 0
      src/lib/components/chat/Chat.svelte
  8. 2 2
      src/lib/components/chat/Messages/CodeBlock.svelte
  9. 40 36
      src/lib/components/chat/Messages/CompareMessages.svelte
  10. 2 1
      src/lib/components/chat/Messages/ProfileImage.svelte
  11. 2 2
      src/lib/components/chat/Messages/ResponseMessage.svelte
  12. 2 2
      src/lib/components/chat/Messages/UserMessage.svelte
  13. 1 1
      src/lib/components/chat/Settings/Personalization/ManageModal.svelte
  14. 1 1
      src/lib/components/common/Image.svelte
  15. 3 1
      src/lib/constants.ts
  16. 38 38
      src/lib/i18n/locales/ar-BH/translation.json
  17. 144 144
      src/lib/i18n/locales/bg-BG/translation.json
  18. 139 139
      src/lib/i18n/locales/bn-BD/translation.json
  19. 142 142
      src/lib/i18n/locales/ca-ES/translation.json
  20. 30 30
      src/lib/i18n/locales/de-DE/translation.json
  21. 2 2
      src/lib/i18n/locales/dg-DG/translation.json
  22. 141 141
      src/lib/i18n/locales/es-ES/translation.json
  23. 141 141
      src/lib/i18n/locales/fa-IR/translation.json
  24. 19 19
      src/lib/i18n/locales/fi-FI/translation.json
  25. 143 143
      src/lib/i18n/locales/fr-CA/translation.json
  26. 143 143
      src/lib/i18n/locales/fr-FR/translation.json
  27. 92 92
      src/lib/i18n/locales/he-IL/translation.json
  28. 92 92
      src/lib/i18n/locales/hi-IN/translation.json
  29. 14 14
      src/lib/i18n/locales/hr-HR/translation.json
  30. 15 15
      src/lib/i18n/locales/it-IT/translation.json
  31. 144 144
      src/lib/i18n/locales/ja-JP/translation.json
  32. 143 143
      src/lib/i18n/locales/ka-GE/translation.json
  33. 145 145
      src/lib/i18n/locales/ko-KR/translation.json
  34. 24 24
      src/lib/i18n/locales/languages.json
  35. 1 1
      src/lib/i18n/locales/lt-LT/translation.json
  36. 143 143
      src/lib/i18n/locales/nl-NL/translation.json
  37. 10 10
      src/lib/i18n/locales/pa-IN/translation.json
  38. 15 15
      src/lib/i18n/locales/pl-PL/translation.json
  39. 143 143
      src/lib/i18n/locales/pt-BR/translation.json
  40. 143 143
      src/lib/i18n/locales/pt-PT/translation.json
  41. 141 141
      src/lib/i18n/locales/ru-RU/translation.json
  42. 4 4
      src/lib/i18n/locales/sr-RS/translation.json
  43. 141 141
      src/lib/i18n/locales/sv-SE/translation.json
  44. 15 15
      src/lib/i18n/locales/tr-TR/translation.json
  45. 15 15
      src/lib/i18n/locales/uk-UA/translation.json
  46. 51 51
      src/lib/i18n/locales/vi-VN/translation.json
  47. 13 13
      src/lib/i18n/locales/zh-CN/translation.json
  48. 141 141
      src/lib/i18n/locales/zh-TW/translation.json
  49. 1 1
      src/lib/workers/pyodide.worker.ts
  50. 2 1020
      src/routes/(app)/+page.svelte
  51. 2 1037
      src/routes/(app)/c/[id]/+page.svelte
  52. BIN
      test/test_files/image_gen/sd-empty.pt

+ 37 - 7
.github/workflows/docker-build.yaml

@@ -63,6 +63,16 @@ jobs:
           flavor: |
             latest=${{ github.ref == 'refs/heads/main' }}
 
+      - name: Extract metadata for Docker cache
+        id: cache-meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.FULL_IMAGE_NAME }}
+          tags: |
+            type=ref,event=branch
+          flavor: |
+            prefix=cache-${{ matrix.platform }}-
+
       - name: Build Docker image (latest)
         uses: docker/build-push-action@v5
         id: build
@@ -72,8 +82,8 @@ jobs:
           platforms: ${{ matrix.platform }}
           labels: ${{ steps.meta.outputs.labels }}
           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
-          cache-from: type=gha
-          cache-to: type=gha,mode=max
+          cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }}
+          cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max
 
       - name: Export digest
         run: |
@@ -123,7 +133,7 @@ jobs:
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
 
-      - name: Extract metadata for Docker images (default latest tag)
+      - name: Extract metadata for Docker images (cuda tag)
         id: meta
         uses: docker/metadata-action@v5
         with:
@@ -139,6 +149,16 @@ jobs:
             latest=${{ github.ref == 'refs/heads/main' }}
             suffix=-cuda,onlatest=true
 
+      - name: Extract metadata for Docker cache
+        id: cache-meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.FULL_IMAGE_NAME }}
+          tags: |
+            type=ref,event=branch
+          flavor: |
+            prefix=cache-cuda-${{ matrix.platform }}-
+
       - name: Build Docker image (cuda)
         uses: docker/build-push-action@v5
         id: build
@@ -148,8 +168,8 @@ jobs:
           platforms: ${{ matrix.platform }}
           labels: ${{ steps.meta.outputs.labels }}
           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
-          cache-from: type=gha
-          cache-to: type=gha,mode=max
+          cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }}
+          cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max
           build-args: USE_CUDA=true
 
       - name: Export digest
@@ -216,6 +236,16 @@ jobs:
             latest=${{ github.ref == 'refs/heads/main' }}
             suffix=-ollama,onlatest=true
 
+      - name: Extract metadata for Docker cache
+        id: cache-meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.FULL_IMAGE_NAME }}
+          tags: |
+            type=ref,event=branch
+          flavor: |
+            prefix=cache-ollama-${{ matrix.platform }}-
+
       - name: Build Docker image (ollama)
         uses: docker/build-push-action@v5
         id: build
@@ -225,8 +255,8 @@ jobs:
           platforms: ${{ matrix.platform }}
           labels: ${{ steps.meta.outputs.labels }}
           outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
-          cache-from: type=gha
-          cache-to: type=gha,mode=max
+          cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }}
+          cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max
           build-args: USE_OLLAMA=true
 
       - name: Export digest

+ 5 - 1
.github/workflows/integration-test.yml

@@ -20,7 +20,11 @@ jobs:
 
       - name: Build and run Compose Stack
         run: |
-          docker compose --file docker-compose.yaml --file docker-compose.api.yaml up --detach --build
+          docker compose \
+            --file docker-compose.yaml \
+            --file docker-compose.api.yaml \
+            --file docker-compose.a1111-test.yaml \
+            up --detach --build
           
       - name: Wait for Ollama to be up
         timeout-minutes: 5

+ 6 - 0
backend/apps/rag/main.py

@@ -28,6 +28,7 @@ from langchain_community.document_loaders import (
     UnstructuredXMLLoader,
     UnstructuredRSTLoader,
     UnstructuredExcelLoader,
+    UnstructuredPowerPointLoader,
     YoutubeLoader,
 )
 from langchain.text_splitter import RecursiveCharacterTextSplitter
@@ -768,6 +769,11 @@ def get_loader(filename: str, file_content_type: str, file_path: str):
         "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
     ] or file_ext in ["xls", "xlsx"]:
         loader = UnstructuredExcelLoader(file_path)
+    elif file_content_type in [
+        "application/vnd.ms-powerpoint",
+        "application/vnd.openxmlformats-officedocument.presentationml.presentation",
+    ] or file_ext in ["ppt", "pptx"]:
+        loader = UnstructuredPowerPointLoader(file_path)
     elif file_ext in known_source_ext or (
         file_content_type and file_content_type.find("text/") >= 0
     ):

+ 1 - 0
backend/requirements.txt

@@ -35,6 +35,7 @@ chromadb==0.4.24
 sentence-transformers==2.7.0
 pypdf==4.2.0
 docx2txt==0.8
+python-pptx==0.6.23
 unstructured==0.11.8
 Markdown==3.6
 pypandoc==1.13

+ 23 - 0
cypress/e2e/chat.cy.ts

@@ -74,5 +74,28 @@ describe('Settings', () => {
 				expect(spy).to.be.callCount(2);
 			});
 		});
+
+		it('user can generate image', () => {
+			// Click on the model selector
+			cy.get('button[aria-label="Select a model"]').click();
+			// Select the first model
+			cy.get('button[aria-label="model-item"]').first().click();
+			// Type a message
+			cy.get('#chat-textarea').type('Hi, what can you do? A single sentence only please.', {
+				force: true
+			});
+			// Send the message
+			cy.get('button[type="submit"]').click();
+			// User's message should be visible
+			cy.get('.chat-user').should('exist');
+			// Wait for the response
+			cy.get('.chat-assistant', { timeout: 120_000 }) // .chat-assistant is created after the first token is received
+				.find('div[aria-label="Generation Info"]', { timeout: 120_000 }) // Generation Info is created after the stop token is received
+				.should('exist');
+			// Click on the generate image button
+			cy.get('[aria-label="Generate Image"]').click();
+			// Wait for image to be visible
+			cy.get('img[data-cy="image"]', { timeout: 60_000 }).should('be.visible');
+		});
 	});
 });

+ 31 - 0
docker-compose.a1111-test.yaml

@@ -0,0 +1,31 @@
+# This is an overlay that spins up stable-diffusion-webui for integration testing
+# This is not designed to be used in production
+services:
+  stable-diffusion-webui:
+    # Not built for ARM64
+    platform: linux/amd64
+    image: ghcr.io/neggles/sd-webui-docker:latest
+    restart: unless-stopped
+    environment:
+      CLI_ARGS: "--api --use-cpu all --precision full --no-half --skip-torch-cuda-test --ckpt /empty.pt --do-not-download-clip --disable-nan-check --disable-opt-split-attention"
+      PYTHONUNBUFFERED: "1"
+      TERM: "vt100"
+      SD_WEBUI_VARIANT: "default"
+    # Hack to get container working on Apple Silicon
+    # Rosetta creates a conflict ${HOME}/.cache folder
+    entrypoint: /bin/bash
+    command:
+      - -c
+      - |
+        export HOME=/root-home
+        rm -rf $${HOME}/.cache
+        /docker/entrypoint.sh python -u webui.py --listen --port $${WEBUI_PORT} --skip-version-check $${CLI_ARGS}
+    volumes:
+      - ./test/test_files/image_gen/sd-empty.pt:/empty.pt
+
+  open-webui:
+    environment:
+      ENABLE_IMAGE_GENERATION: "true"
+      AUTOMATIC1111_BASE_URL: http://stable-diffusion-webui:7860
+      IMAGE_SIZE: "64x64"
+      IMAGE_STEPS: "3"

+ 1075 - 0
src/lib/components/chat/Chat.svelte

@@ -0,0 +1,1075 @@
+<script lang="ts">
+	import { v4 as uuidv4 } from 'uuid';
+	import { toast } from 'svelte-sonner';
+
+	import { getContext, onMount, tick } from 'svelte';
+	import { goto } from '$app/navigation';
+	import { page } from '$app/stores';
+
+	import {
+		chatId,
+		chats,
+		config,
+		type Model,
+		modelfiles,
+		models,
+		settings,
+		showSidebar,
+		tags as _tags,
+		WEBUI_NAME
+	} from '$lib/stores';
+	import { convertMessagesToHistory, copyToClipboard, splitStream } from '$lib/utils';
+
+	import { cancelOllamaRequest, generateChatCompletion } from '$lib/apis/ollama';
+	import {
+		addTagById,
+		createNewChat,
+		deleteTagById,
+		getAllChatTags,
+		getChatById,
+		getChatList,
+		getTagsById,
+		updateChatById
+	} from '$lib/apis/chats';
+	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
+
+	import MessageInput from '$lib/components/chat/MessageInput.svelte';
+	import Messages from '$lib/components/chat/Messages.svelte';
+	import Navbar from '$lib/components/layout/Navbar.svelte';
+	import {
+		LITELLM_API_BASE_URL,
+		OLLAMA_API_BASE_URL,
+		OPENAI_API_BASE_URL,
+		WEBUI_BASE_URL
+	} from '$lib/constants';
+	import { createOpenAITextStream } from '$lib/apis/streaming';
+	import { queryMemory } from '$lib/apis/memories';
+	import type { Writable } from 'svelte/store';
+	import type { i18n as i18nType } from 'i18next';
+
+	const i18n: Writable<i18nType> = getContext('i18n');
+
+	export let chatIdProp = '';
+	let loaded = false;
+
+	let stopResponseFlag = false;
+	let autoScroll = true;
+	let processing = '';
+	let messagesContainerElement: HTMLDivElement;
+	let currentRequestId = null;
+
+	let showModelSelector = true;
+
+	let selectedModels = [''];
+	let atSelectedModel: Model | undefined;
+
+	let selectedModelfile = null;
+	$: selectedModelfile =
+		selectedModels.length === 1 &&
+		$modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0]).length > 0
+			? $modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0])[0]
+			: null;
+
+	let selectedModelfiles = {};
+	$: selectedModelfiles = selectedModels.reduce((a, tagName, i, arr) => {
+		const modelfile =
+			$modelfiles.filter((modelfile) => modelfile.tagName === tagName)?.at(0) ?? undefined;
+
+		return {
+			...a,
+			...(modelfile && { [tagName]: modelfile })
+		};
+	}, {});
+
+	let chat = null;
+	let tags = [];
+
+	let title = '';
+	let prompt = '';
+	let files = [];
+	let messages = [];
+	let history = {
+		messages: {},
+		currentId: null
+	};
+
+	$: if (history.currentId !== null) {
+		let _messages = [];
+
+		let currentMessage = history.messages[history.currentId];
+		while (currentMessage !== null) {
+			_messages.unshift({ ...currentMessage });
+			currentMessage =
+				currentMessage.parentId !== null ? history.messages[currentMessage.parentId] : null;
+		}
+		messages = _messages;
+	} else {
+		messages = [];
+	}
+
+	$: if (chatIdProp) {
+		(async () => {
+			if (await loadChat()) {
+				await tick();
+				loaded = true;
+
+				window.setTimeout(() => scrollToBottom(), 0);
+				const chatInput = document.getElementById('chat-textarea');
+				chatInput?.focus();
+			} else {
+				await goto('/');
+			}
+		})();
+	}
+
+	onMount(async () => {
+		if (!chatId) {
+			await initNewChat();
+		} else {
+			if (!($settings.saveChatHistory ?? true)) {
+				await goto('/');
+			}
+		}
+	});
+
+	//////////////////////////
+	// Web functions
+	//////////////////////////
+
+	const initNewChat = async () => {
+		if (currentRequestId !== null) {
+			await cancelOllamaRequest(localStorage.token, currentRequestId);
+			currentRequestId = null;
+		}
+		window.history.replaceState(history.state, '', `/`);
+		await chatId.set('');
+
+		autoScroll = true;
+
+		title = '';
+		messages = [];
+		history = {
+			messages: {},
+			currentId: null
+		};
+
+		if ($page.url.searchParams.get('models')) {
+			selectedModels = $page.url.searchParams.get('models')?.split(',');
+		} else if ($settings?.models) {
+			selectedModels = $settings?.models;
+		} else if ($config?.default_models) {
+			selectedModels = $config?.default_models.split(',');
+		} else {
+			selectedModels = [''];
+		}
+
+		if ($page.url.searchParams.get('q')) {
+			prompt = $page.url.searchParams.get('q') ?? '';
+			if (prompt) {
+				await tick();
+				submitPrompt(prompt);
+			}
+		}
+
+		selectedModels = selectedModels.map((modelId) =>
+			$models.map((m) => m.id).includes(modelId) ? modelId : ''
+		);
+
+		let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
+		settings.set({
+			..._settings
+		});
+
+		const chatInput = document.getElementById('chat-textarea');
+		setTimeout(() => chatInput?.focus(), 0);
+	};
+
+	const loadChat = async () => {
+		chatId.set(chatIdProp);
+		chat = await getChatById(localStorage.token, $chatId).catch(async (error) => {
+			await goto('/');
+			return null;
+		});
+
+		if (chat) {
+			tags = await getTags();
+			const chatContent = chat.chat;
+
+			if (chatContent) {
+				console.log(chatContent);
+
+				selectedModels =
+					(chatContent?.models ?? undefined) !== undefined
+						? chatContent.models
+						: [chatContent.models ?? ''];
+				history =
+					(chatContent?.history ?? undefined) !== undefined
+						? chatContent.history
+						: convertMessagesToHistory(chatContent.messages);
+				title = chatContent.title;
+
+				let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
+				await settings.set({
+					..._settings,
+					system: chatContent.system ?? _settings.system,
+					options: chatContent.options ?? _settings.options
+				});
+				autoScroll = true;
+				await tick();
+
+				if (messages.length > 0) {
+					history.messages[messages.at(-1).id].done = true;
+				}
+				await tick();
+
+				return true;
+			} else {
+				return null;
+			}
+		}
+	};
+
+	const scrollToBottom = async () => {
+		await tick();
+		if (messagesContainerElement) {
+			messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
+		}
+	};
+
+	//////////////////////////
+	// Ollama functions
+	//////////////////////////
+
+	const submitPrompt = async (userPrompt, _user = null) => {
+		console.log('submitPrompt', $chatId);
+
+		selectedModels = selectedModels.map((modelId) =>
+			$models.map((m) => m.id).includes(modelId) ? modelId : ''
+		);
+
+		if (selectedModels.includes('')) {
+			toast.error($i18n.t('Model not selected'));
+		} else if (messages.length != 0 && messages.at(-1).done != true) {
+			// Response not done
+			console.log('wait');
+		} else if (
+			files.length > 0 &&
+			files.filter((file) => file.upload_status === false).length > 0
+		) {
+			// Upload not done
+			toast.error(
+				$i18n.t(
+					`Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.`
+				)
+			);
+		} else {
+			// Reset chat message textarea height
+			document.getElementById('chat-textarea').style.height = '';
+
+			// Create user message
+			let userMessageId = uuidv4();
+			let userMessage = {
+				id: userMessageId,
+				parentId: messages.length !== 0 ? messages.at(-1).id : null,
+				childrenIds: [],
+				role: 'user',
+				user: _user ?? undefined,
+				content: userPrompt,
+				files: files.length > 0 ? files : undefined,
+				timestamp: Math.floor(Date.now() / 1000), // Unix epoch
+				models: selectedModels.filter((m, mIdx) => selectedModels.indexOf(m) === mIdx)
+			};
+
+			// Add message to history and Set currentId to messageId
+			history.messages[userMessageId] = userMessage;
+			history.currentId = userMessageId;
+
+			// Append messageId to childrenIds of parent message
+			if (messages.length !== 0) {
+				history.messages[messages.at(-1).id].childrenIds.push(userMessageId);
+			}
+
+			// Wait until history/message have been updated
+			await tick();
+
+			// Create new chat if only one message in messages
+			if (messages.length == 1) {
+				if ($settings.saveChatHistory ?? true) {
+					chat = await createNewChat(localStorage.token, {
+						id: $chatId,
+						title: $i18n.t('New Chat'),
+						models: selectedModels,
+						system: $settings.system ?? undefined,
+						options: {
+							...($settings.options ?? {})
+						},
+						messages: messages,
+						history: history,
+						tags: [],
+						timestamp: Date.now()
+					});
+					await chats.set(await getChatList(localStorage.token));
+					await chatId.set(chat.id);
+				} else {
+					await chatId.set('local');
+				}
+				await tick();
+			}
+
+			// Reset chat input textarea
+			prompt = '';
+			files = [];
+
+			// Send prompt
+			await sendPrompt(userPrompt, userMessageId);
+		}
+	};
+
+	const sendPrompt = async (prompt, parentId, modelId = null) => {
+		const _chatId = JSON.parse(JSON.stringify($chatId));
+
+		await Promise.all(
+			(modelId
+				? [modelId]
+				: atSelectedModel !== undefined
+				? [atSelectedModel.id]
+				: selectedModels
+			).map(async (modelId) => {
+				console.log('modelId', modelId);
+				const model = $models.filter((m) => m.id === modelId).at(0);
+
+				if (model) {
+					// If there are image files, check if model is vision capable
+					const hasImages = messages.some((message) =>
+						message.files?.some((file) => file.type === 'image')
+					);
+					if (hasImages && !(model.custom_info?.params.vision_capable ?? true)) {
+						toast.error(
+							$i18n.t('Model {{modelName}} is not vision capable', {
+								modelName: model.custom_info?.name ?? model.name ?? model.id
+							})
+						);
+					}
+
+					// Create response message
+					let responseMessageId = uuidv4();
+					let responseMessage = {
+						parentId: parentId,
+						id: responseMessageId,
+						childrenIds: [],
+						role: 'assistant',
+						content: '',
+						model: model.id,
+						modelName: model.custom_info?.name ?? model.name ?? model.id,
+						userContext: null,
+						timestamp: Math.floor(Date.now() / 1000) // Unix epoch
+					};
+
+					// Add message to history and Set currentId to messageId
+					history.messages[responseMessageId] = responseMessage;
+					history.currentId = responseMessageId;
+
+					// Append messageId to childrenIds of parent message
+					if (parentId !== null) {
+						history.messages[parentId].childrenIds = [
+							...history.messages[parentId].childrenIds,
+							responseMessageId
+						];
+					}
+
+					await tick();
+
+					let userContext = null;
+					if ($settings?.memory ?? false) {
+						if (userContext === null) {
+							const res = await queryMemory(localStorage.token, prompt).catch((error) => {
+								toast.error(error);
+								return null;
+							});
+
+							if (res) {
+								if (res.documents[0].length > 0) {
+									userContext = res.documents.reduce((acc, doc, index) => {
+										const createdAtTimestamp = res.metadatas[index][0].created_at;
+										const createdAtDate = new Date(createdAtTimestamp * 1000)
+											.toISOString()
+											.split('T')[0];
+										acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
+										return acc;
+									}, []);
+								}
+
+								console.log(userContext);
+							}
+						}
+					}
+					responseMessage.userContext = userContext;
+
+					if (model?.external) {
+						await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
+					} else if (model) {
+						await sendPromptOllama(model, prompt, responseMessageId, _chatId);
+					}
+				} else {
+					toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
+				}
+			})
+		);
+
+		await chats.set(await getChatList(localStorage.token));
+	};
+
+	const sendPromptOllama = async (model, userPrompt, responseMessageId, _chatId) => {
+		model = model.id;
+		const responseMessage = history.messages[responseMessageId];
+
+		// Wait until history/message have been updated
+		await tick();
+
+		// Scroll down
+		scrollToBottom();
+
+		const messagesBody = [
+			$settings.system || (responseMessage?.userContext ?? null)
+				? {
+						role: 'system',
+						content: `${$settings?.system ?? ''}${
+							responseMessage?.userContext ?? null
+								? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
+								: ''
+						}`
+				  }
+				: undefined,
+			...messages
+		]
+			.filter((message) => message)
+			.filter((message) => message.content != '')
+			.map((message, idx, arr) => {
+				// Prepare the base message object
+				const baseMessage = {
+					role: message.role,
+					content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content
+				};
+
+				// Extract and format image URLs if any exist
+				const imageUrls = message.files
+					?.filter((file) => file.type === 'image')
+					.map((file) => file.url.slice(file.url.indexOf(',') + 1));
+
+				// Add images array only if it contains elements
+				if (imageUrls && imageUrls.length > 0 && message.role === 'user') {
+					baseMessage.images = imageUrls;
+				}
+
+				return baseMessage;
+			});
+
+		let lastImageIndex = -1;
+
+		// Find the index of the last object with images
+		messagesBody.forEach((item, index) => {
+			if (item.images) {
+				lastImageIndex = index;
+			}
+		});
+
+		// Remove images from all but the last one
+		messagesBody.forEach((item, index) => {
+			if (index !== lastImageIndex) {
+				delete item.images;
+			}
+		});
+
+		const docs = messages
+			.filter((message) => message?.files ?? null)
+			.map((message) =>
+				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
+			)
+			.flat(1);
+
+		const [res, controller] = await generateChatCompletion(localStorage.token, {
+			model: model,
+			messages: messagesBody,
+			options: {
+				...($settings.options ?? {}),
+				stop:
+					$settings?.options?.stop ?? undefined
+						? $settings.options.stop.map((str) =>
+								decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
+						  )
+						: undefined
+			},
+			format: $settings.requestFormat ?? undefined,
+			keep_alive: $settings.keepAlive ?? undefined,
+			docs: docs.length > 0 ? docs : undefined,
+			citations: docs.length > 0
+		});
+
+		if (res && res.ok) {
+			console.log('controller', controller);
+
+			const reader = res.body
+				.pipeThrough(new TextDecoderStream())
+				.pipeThrough(splitStream('\n'))
+				.getReader();
+
+			while (true) {
+				const { value, done } = await reader.read();
+				if (done || stopResponseFlag || _chatId !== $chatId) {
+					responseMessage.done = true;
+					messages = messages;
+
+					if (stopResponseFlag) {
+						controller.abort('User: Stop Response');
+						await cancelOllamaRequest(localStorage.token, currentRequestId);
+					}
+
+					currentRequestId = null;
+
+					break;
+				}
+
+				try {
+					let lines = value.split('\n');
+
+					for (const line of lines) {
+						if (line !== '') {
+							console.log(line);
+							let data = JSON.parse(line);
+
+							if ('citations' in data) {
+								responseMessage.citations = data.citations;
+								continue;
+							}
+
+							if ('detail' in data) {
+								throw data;
+							}
+
+							if ('id' in data) {
+								console.log(data);
+								currentRequestId = data.id;
+							} else {
+								if (data.done == false) {
+									if (responseMessage.content == '' && data.message.content == '\n') {
+										continue;
+									} else {
+										responseMessage.content += data.message.content;
+										messages = messages;
+									}
+								} else {
+									responseMessage.done = true;
+
+									if (responseMessage.content == '') {
+										responseMessage.error = true;
+										responseMessage.content =
+											'Oops! No text generated from Ollama, Please try again.';
+									}
+
+									responseMessage.context = data.context ?? null;
+									responseMessage.info = {
+										total_duration: data.total_duration,
+										load_duration: data.load_duration,
+										sample_count: data.sample_count,
+										sample_duration: data.sample_duration,
+										prompt_eval_count: data.prompt_eval_count,
+										prompt_eval_duration: data.prompt_eval_duration,
+										eval_count: data.eval_count,
+										eval_duration: data.eval_duration
+									};
+									messages = messages;
+
+									if ($settings.notificationEnabled && !document.hasFocus()) {
+										const notification = new Notification(
+											selectedModelfile
+												? `${
+														selectedModelfile.title.charAt(0).toUpperCase() +
+														selectedModelfile.title.slice(1)
+												  }`
+												: `${model}`,
+											{
+												body: responseMessage.content,
+												icon: selectedModelfile?.imageUrl ?? `${WEBUI_BASE_URL}/static/favicon.png`
+											}
+										);
+									}
+
+									if ($settings.responseAutoCopy) {
+										copyToClipboard(responseMessage.content);
+									}
+
+									if ($settings.responseAutoPlayback) {
+										await tick();
+										document.getElementById(`speak-button-${responseMessage.id}`)?.click();
+									}
+								}
+							}
+						}
+					}
+				} catch (error) {
+					console.log(error);
+					if ('detail' in error) {
+						toast.error(error.detail);
+					}
+					break;
+				}
+
+				if (autoScroll) {
+					scrollToBottom();
+				}
+			}
+
+			if ($chatId == _chatId) {
+				if ($settings.saveChatHistory ?? true) {
+					chat = await updateChatById(localStorage.token, _chatId, {
+						messages: messages,
+						history: history
+					});
+					await chats.set(await getChatList(localStorage.token));
+				}
+			}
+		} else {
+			if (res !== null) {
+				const error = await res.json();
+				console.log(error);
+				if ('detail' in error) {
+					toast.error(error.detail);
+					responseMessage.content = error.detail;
+				} else {
+					toast.error(error.error);
+					responseMessage.content = error.error;
+				}
+			} else {
+				toast.error(
+					$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, { provider: 'Ollama' })
+				);
+				responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
+					provider: 'Ollama'
+				});
+			}
+
+			responseMessage.error = true;
+			responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
+				provider: 'Ollama'
+			});
+			responseMessage.done = true;
+			messages = messages;
+		}
+
+		stopResponseFlag = false;
+		await tick();
+
+		if (autoScroll) {
+			scrollToBottom();
+		}
+
+		if (messages.length == 2 && messages.at(1).content !== '') {
+			window.history.replaceState(history.state, '', `/c/${_chatId}`);
+			const _title = await generateChatTitle(userPrompt);
+			await setChatTitle(_chatId, _title);
+		}
+	};
+
+	const sendPromptOpenAI = async (model, userPrompt, responseMessageId, _chatId) => {
+		const responseMessage = history.messages[responseMessageId];
+
+		const docs = messages
+			.filter((message) => message?.files ?? null)
+			.map((message) =>
+				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
+			)
+			.flat(1);
+
+		console.log(docs);
+
+		scrollToBottom();
+
+		try {
+			const [res, controller] = await generateOpenAIChatCompletion(
+				localStorage.token,
+				{
+					model: model.id,
+					stream: true,
+					messages: [
+						$settings.system || (responseMessage?.userContext ?? null)
+							? {
+									role: 'system',
+									content: `${$settings?.system ?? ''}${
+										responseMessage?.userContext ?? null
+											? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
+											: ''
+									}`
+							  }
+							: undefined,
+						...messages
+					]
+						.filter((message) => message)
+						.map((message, idx, arr) => ({
+							role: message.role,
+							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
+							message.role === 'user'
+								? {
+										content: [
+											{
+												type: 'text',
+												text:
+													arr.length - 1 !== idx
+														? message.content
+														: message?.raContent ?? message.content
+											},
+											...message.files
+												.filter((file) => file.type === 'image')
+												.map((file) => ({
+													type: 'image_url',
+													image_url: {
+														url: file.url
+													}
+												}))
+										]
+								  }
+								: {
+										content:
+											arr.length - 1 !== idx
+												? message.content
+												: message?.raContent ?? message.content
+								  })
+						})),
+					seed: $settings?.options?.seed ?? undefined,
+					stop:
+						$settings?.options?.stop ?? undefined
+							? $settings.options.stop.map((str) =>
+									decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
+							  )
+							: undefined,
+					temperature: $settings?.options?.temperature ?? undefined,
+					top_p: $settings?.options?.top_p ?? undefined,
+					num_ctx: $settings?.options?.num_ctx ?? undefined,
+					frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
+					max_tokens: $settings?.options?.num_predict ?? undefined,
+					docs: docs.length > 0 ? docs : undefined,
+					citations: docs.length > 0
+				},
+				model?.source?.toLowerCase() === 'litellm'
+					? `${LITELLM_API_BASE_URL}/v1`
+					: `${OPENAI_API_BASE_URL}`
+			);
+
+			// Wait until history/message have been updated
+			await tick();
+
+			scrollToBottom();
+
+			if (res && res.ok && res.body) {
+				const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
+
+				for await (const update of textStream) {
+					const { value, done, citations, error } = update;
+					if (error) {
+						await handleOpenAIError(error, null, model, responseMessage);
+						break;
+					}
+					if (done || stopResponseFlag || _chatId !== $chatId) {
+						responseMessage.done = true;
+						messages = messages;
+
+						if (stopResponseFlag) {
+							controller.abort('User: Stop Response');
+						}
+
+						break;
+					}
+
+					if (citations) {
+						responseMessage.citations = citations;
+						continue;
+					}
+
+					if (responseMessage.content == '' && value == '\n') {
+						continue;
+					} else {
+						responseMessage.content += value;
+						messages = messages;
+					}
+
+					if ($settings.notificationEnabled && !document.hasFocus()) {
+						const notification = new Notification(`OpenAI ${model}`, {
+							body: responseMessage.content,
+							icon: `${WEBUI_BASE_URL}/static/favicon.png`
+						});
+					}
+
+					if ($settings.responseAutoCopy) {
+						copyToClipboard(responseMessage.content);
+					}
+
+					if ($settings.responseAutoPlayback) {
+						await tick();
+						document.getElementById(`speak-button-${responseMessage.id}`)?.click();
+					}
+
+					if (autoScroll) {
+						scrollToBottom();
+					}
+				}
+
+				if ($chatId == _chatId) {
+					if ($settings.saveChatHistory ?? true) {
+						chat = await updateChatById(localStorage.token, _chatId, {
+							messages: messages,
+							history: history
+						});
+						await chats.set(await getChatList(localStorage.token));
+					}
+				}
+			} else {
+				await handleOpenAIError(null, res, model, responseMessage);
+			}
+		} catch (error) {
+			await handleOpenAIError(error, null, model, responseMessage);
+		}
+		messages = messages;
+
+		stopResponseFlag = false;
+		await tick();
+
+		if (autoScroll) {
+			scrollToBottom();
+		}
+
+		if (messages.length == 2) {
+			window.history.replaceState(history.state, '', `/c/${_chatId}`);
+
+			const _title = await generateChatTitle(userPrompt);
+			await setChatTitle(_chatId, _title);
+		}
+	};
+
+	const handleOpenAIError = async (error, res: Response | null, model, responseMessage) => {
+		let errorMessage = '';
+		let innerError;
+
+		if (error) {
+			innerError = error;
+		} else if (res !== null) {
+			innerError = await res.json();
+		}
+		console.error(innerError);
+		if ('detail' in innerError) {
+			toast.error(innerError.detail);
+			errorMessage = innerError.detail;
+		} else if ('error' in innerError) {
+			if ('message' in innerError.error) {
+				toast.error(innerError.error.message);
+				errorMessage = innerError.error.message;
+			} else {
+				toast.error(innerError.error);
+				errorMessage = innerError.error;
+			}
+		} else if ('message' in innerError) {
+			toast.error(innerError.message);
+			errorMessage = innerError.message;
+		}
+
+		responseMessage.error = true;
+		responseMessage.content =
+			$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
+				provider: model.custom_info?.name ?? model.name ?? model.id
+			}) +
+			'\n' +
+			errorMessage;
+		responseMessage.done = true;
+
+		messages = messages;
+	};
+
+	const stopResponse = () => {
+		stopResponseFlag = true;
+		console.log('stopResponse');
+	};
+
+	const regenerateResponse = async (message) => {
+		console.log('regenerateResponse');
+
+		if (messages.length != 0) {
+			let userMessage = history.messages[message.parentId];
+			let userPrompt = userMessage.content;
+
+			if ((userMessage?.models ?? [...selectedModels]).length == 1) {
+				await sendPrompt(userPrompt, userMessage.id);
+			} else {
+				await sendPrompt(userPrompt, userMessage.id, message.model);
+			}
+		}
+	};
+
+	const continueGeneration = async () => {
+		console.log('continueGeneration');
+		const _chatId = JSON.parse(JSON.stringify($chatId));
+
+		if (messages.length != 0 && messages.at(-1).done == true) {
+			const responseMessage = history.messages[history.currentId];
+			responseMessage.done = false;
+			await tick();
+
+			const model = $models.filter((m) => m.id === responseMessage.model).at(0);
+
+			if (model) {
+				if (model?.external) {
+					await sendPromptOpenAI(
+						model,
+						history.messages[responseMessage.parentId].content,
+						responseMessage.id,
+						_chatId
+					);
+				} else
+					await sendPromptOllama(
+						model,
+						history.messages[responseMessage.parentId].content,
+						responseMessage.id,
+						_chatId
+					);
+			}
+		} else {
+			toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
+		}
+	};
+
+	const generateChatTitle = async (userPrompt) => {
+		if ($settings?.title?.auto ?? true) {
+			const model = $models.find((model) => model.id === selectedModels[0]);
+
+			const titleModelId =
+				model?.external ?? false
+					? $settings?.title?.modelExternal ?? selectedModels[0]
+					: $settings?.title?.model ?? selectedModels[0];
+			const titleModel = $models.find((model) => model.id === titleModelId);
+
+			console.log(titleModel);
+			const title = await generateTitle(
+				localStorage.token,
+				$settings?.title?.prompt ??
+					$i18n.t(
+						"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':"
+					) + ' {{prompt}}',
+				titleModelId,
+				userPrompt,
+				titleModel?.external ?? false
+					? titleModel?.source?.toLowerCase() === 'litellm'
+						? `${LITELLM_API_BASE_URL}/v1`
+						: `${OPENAI_API_BASE_URL}`
+					: `${OLLAMA_API_BASE_URL}/v1`
+			);
+
+			return title;
+		} else {
+			return `${userPrompt}`;
+		}
+	};
+
+	const setChatTitle = async (_chatId, _title) => {
+		if (_chatId === $chatId) {
+			title = _title;
+		}
+
+		if ($settings.saveChatHistory ?? true) {
+			chat = await updateChatById(localStorage.token, _chatId, { title: _title });
+			await chats.set(await getChatList(localStorage.token));
+		}
+	};
+
+	const getTags = async () => {
+		return await getTagsById(localStorage.token, $chatId).catch(async (error) => {
+			return [];
+		});
+	};
+
+	const addTag = async (tagName) => {
+		const res = await addTagById(localStorage.token, $chatId, tagName);
+		tags = await getTags();
+
+		chat = await updateChatById(localStorage.token, $chatId, {
+			tags: tags
+		});
+
+		_tags.set(await getAllChatTags(localStorage.token));
+	};
+
+	const deleteTag = async (tagName) => {
+		const res = await deleteTagById(localStorage.token, $chatId, tagName);
+		tags = await getTags();
+
+		chat = await updateChatById(localStorage.token, $chatId, {
+			tags: tags
+		});
+
+		_tags.set(await getAllChatTags(localStorage.token));
+	};
+</script>
+
+<svelte:head>
+	<title>
+		{title
+			? `${title.length > 30 ? `${title.slice(0, 30)}...` : title} | ${$WEBUI_NAME}`
+			: `${$WEBUI_NAME}`}
+	</title>
+</svelte:head>
+
+{#if !chatIdProp || (loaded && chatIdProp)}
+	<div
+		class="min-h-screen max-h-screen {$showSidebar
+			? 'md:max-w-[calc(100%-260px)]'
+			: ''} w-full max-w-full flex flex-col"
+	>
+		<Navbar
+			{title}
+			bind:selectedModels
+			bind:showModelSelector
+			shareEnabled={messages.length > 0}
+			{chat}
+			{initNewChat}
+		/>
+		<div class="flex flex-col flex-auto">
+			<div
+				class=" pb-2.5 flex flex-col justify-between w-full flex-auto overflow-auto h-0 max-w-full"
+				id="messages-container"
+				bind:this={messagesContainerElement}
+				on:scroll={(e) => {
+					autoScroll =
+						messagesContainerElement.scrollHeight - messagesContainerElement.scrollTop <=
+						messagesContainerElement.clientHeight + 5;
+				}}
+			>
+				<div class=" h-full w-full flex flex-col {chatIdProp ? 'py-4' : 'pt-2 pb-4'}">
+					<Messages
+						chatId={$chatId}
+						{selectedModels}
+						{selectedModelfiles}
+						{processing}
+						bind:history
+						bind:messages
+						bind:autoScroll
+						bind:prompt
+						bottomPadding={files.length > 0}
+						suggestionPrompts={chatIdProp
+							? []
+							: selectedModelfile?.suggestionPrompts ?? $config.default_prompt_suggestions}
+						{sendPrompt}
+						{continueGeneration}
+						{regenerateResponse}
+					/>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<MessageInput
+		bind:files
+		bind:prompt
+		bind:autoScroll
+		bind:selectedModel={atSelectedModel}
+		{selectedModels}
+		{messages}
+		{submitPrompt}
+		{stopResponse}
+	/>
+{/if}

+ 2 - 2
src/lib/components/chat/Messages/CodeBlock.svelte

@@ -101,7 +101,7 @@
 			try {
 				const micropip = pyodide.pyimport('micropip');
 
-				await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
+				// await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
 
 				let packages = [
 					code.includes('requests') ? 'requests' : null,
@@ -213,7 +213,7 @@ __builtins__.input = input`);
 			<div class="p-1">{@html lang}</div>
 
 			<div class="flex items-center">
-				{#if ['', 'python'].includes(lang) && (lang === 'python' || checkPythonCode(code))}
+				{#if lang === 'python' || (lang === '' && checkPythonCode(code))}
 					{#if executing}
 						<div class="copy-code-button bg-none border-none p-1 cursor-not-allowed">Running</div>
 					{:else}

+ 40 - 36
src/lib/components/chat/Messages/CompareMessages.svelte

@@ -41,6 +41,44 @@
 		};
 	}, {});
 
+	const showPreviousMessage = (model) => {
+		groupedMessagesIdx[model] = Math.max(0, groupedMessagesIdx[model] - 1);
+		let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
+
+		console.log(messageId);
+		let messageChildrenIds = history.messages[messageId].childrenIds;
+
+		while (messageChildrenIds.length !== 0) {
+			messageId = messageChildrenIds.at(-1);
+			messageChildrenIds = history.messages[messageId].childrenIds;
+		}
+
+		history.currentId = messageId;
+
+		dispatch('change');
+	};
+
+	const showNextMessage = (model) => {
+		groupedMessagesIdx[model] = Math.min(
+			groupedMessages[model].messages.length - 1,
+			groupedMessagesIdx[model] + 1
+		);
+
+		let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
+		console.log(messageId);
+
+		let messageChildrenIds = history.messages[messageId].childrenIds;
+
+		while (messageChildrenIds.length !== 0) {
+			messageId = messageChildrenIds.at(-1);
+			messageChildrenIds = history.messages[messageId].childrenIds;
+		}
+
+		history.currentId = messageId;
+
+		dispatch('change');
+	};
+
 	onMount(async () => {
 		await tick();
 		currentMessageId = messages[messageIdx].id;
@@ -97,42 +135,8 @@
 						isLastMessage={true}
 						{updateChatMessages}
 						{confirmEditResponseMessage}
-						showPreviousMessage={() => {
-							groupedMessagesIdx[model] = Math.max(0, groupedMessagesIdx[model] - 1);
-							let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
-
-							console.log(messageId);
-							let messageChildrenIds = history.messages[messageId].childrenIds;
-
-							while (messageChildrenIds.length !== 0) {
-								messageId = messageChildrenIds.at(-1);
-								messageChildrenIds = history.messages[messageId].childrenIds;
-							}
-
-							history.currentId = messageId;
-
-							dispatch('change');
-						}}
-						showNextMessage={() => {
-							groupedMessagesIdx[model] = Math.min(
-								groupedMessages[model].messages.length - 1,
-								groupedMessagesIdx[model] + 1
-							);
-
-							let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
-							console.log(messageId);
-
-							let messageChildrenIds = history.messages[messageId].childrenIds;
-
-							while (messageChildrenIds.length !== 0) {
-								messageId = messageChildrenIds.at(-1);
-								messageChildrenIds = history.messages[messageId].childrenIds;
-							}
-
-							history.currentId = messageId;
-
-							dispatch('change');
-						}}
+						showPreviousMessage={() => showPreviousMessage(model)}
+						showNextMessage={() => showNextMessage(model)}
 						{rateMessage}
 						{copyToClipboard}
 						{continueGeneration}

+ 2 - 1
src/lib/components/chat/Messages/ProfileImage.svelte

@@ -10,7 +10,8 @@
 		crossorigin="anonymous"
 		src={src.startsWith(WEBUI_BASE_URL) ||
 		src.startsWith('https://www.gravatar.com/avatar/') ||
-		src.startsWith('data:')
+		src.startsWith('data:') ||
+		src.startsWith('/')
 			? src
 			: `/user.png`}
 		class=" w-8 object-cover rounded-full"

+ 2 - 2
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -391,7 +391,7 @@
 							<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium">
 								<button
 									id="close-edit-message-button"
-									class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
+									class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
 									on:click={() => {
 										cancelEditMessage();
 									}}
@@ -401,7 +401,7 @@
 
 								<button
 									id="save-edit-message-button"
-									class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
+									class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
 									on:click={() => {
 										editMessageConfirmHandler();
 									}}

+ 2 - 2
src/lib/components/chat/Messages/UserMessage.svelte

@@ -201,7 +201,7 @@
 					<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium">
 						<button
 							id="close-edit-message-button"
-							class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
+							class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
 							on:click={() => {
 								cancelEditMessage();
 							}}
@@ -211,7 +211,7 @@
 
 						<button
 							id="save-edit-message-button"
-							class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
+							class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
 							on:click={() => {
 								editMessageConfirmHandler();
 							}}

+ 1 - 1
src/lib/components/chat/Settings/Personalization/ManageModal.svelte

@@ -54,7 +54,7 @@
 				class=" flex flex-col w-full sm:flex-row sm:justify-center sm:space-x-6 h-[28rem] max-h-screen outline outline-1 rounded-xl outline-gray-100 dark:outline-gray-800 mb-4 mt-1"
 			>
 				{#if memories.length > 0}
-					<div class="text-left text-sm w-full mb-4 max-h-[22rem] overflow-y-scroll">
+					<div class="text-left text-sm w-full mb-4 overflow-y-scroll">
 						<div class="relative overflow-x-auto">
 							<table class="w-full text-sm text-left text-gray-600 dark:text-gray-400 table-auto">
 								<thead

+ 1 - 1
src/lib/components/common/Image.svelte

@@ -19,5 +19,5 @@
 		showImagePreview = true;
 	}}
 >
-	<img src={_src} {alt} class=" max-h-96 rounded-lg" draggable="false" />
+	<img src={_src} {alt} class=" max-h-96 rounded-lg" draggable="false" data-cy="image" />
 </button>

+ 3 - 1
src/lib/constants.ts

@@ -86,7 +86,9 @@ export const SUPPORTED_FILE_EXTENSIONS = [
 	'csv',
 	'txt',
 	'xls',
-	'xlsx'
+	'xlsx',
+	'pptx',
+	'ppt'
 ];
 
 // Source: https://kit.svelte.dev/docs/modules#$env-static-public

+ 38 - 38
src/lib/i18n/locales/ar-BH/translation.json

@@ -1,26 +1,26 @@
 {
-	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "",
+	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' أو '-1' لا توجد انتهاء",
 	"(Beta)": "(تجريبي)",
 	"(e.g. `sh webui.sh --api`)": "( `sh webui.sh --api`مثال)",
 	"(latest)": "(الأخير)",
 	"{{modelName}} is thinking...": "{{modelName}} ...يفكر",
-	"{{user}}'s Chats": "{{user}}' الدردشات",
+	"{{user}}'s Chats": "دردشات {{user}}",
 	"{{webUIName}} Backend Required": "{{webUIName}} مطلوب",
 	"A selected model does not support image input": "",
-	"a user": "المستخدم",
+	"a user": "مستخدم",
 	"About": "عن",
 	"Account": "الحساب",
 	"Accurate information": "معلومات دقيقة",
-	"Add": "",
-	"Add a model": "أضافة موديل",
-	"Add a model tag name": "ضع تاق للأسم الموديل",
+	"Add": "أضف",
+	"Add a model": "أضف موديل",
+	"Add a model tag name": "ضع علامة للأسم الموديل",
 	"Add a short description about what this modelfile does": "أضف وصفًا قصيرًا حول ما يفعله ملف الموديل هذا",
 	"Add a short title for this prompt": "أضف عنوانًا قصيرًا لبداء المحادثة",
 	"Add a tag": "أضافة تاق",
 	"Add custom prompt": "أضافة مطالبة مخصصه",
 	"Add Docs": "إضافة المستندات",
 	"Add Files": "إضافة ملفات",
-	"Add Memory": "",
+	"Add Memory": "إضافة ذكرايات",
 	"Add message": "اضافة رسالة",
 	"Add Model": "اضافة موديل",
 	"Add Tags": "اضافة تاق",
@@ -40,11 +40,11 @@
 	"Already have an account?": "هل تملك حساب ؟",
 	"an assistant": "مساعد",
 	"and": "و",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "و أنشئ رابط مشترك جديد.",
 	"API Base URL": "API الرابط الرئيسي",
 	"API Key": "API مفتاح",
 	"API Key created.": "API تم أنشاء المفتاح",
-	"API keys": "API المفاتيح",
+	"API keys": "مفاتيح واجهة برمجة التطبيقات",
 	"API RPM": "API RPM",
 	"April": "أبريل",
 	"Archive": "الأرشيف",
@@ -65,13 +65,13 @@
 	"before": "قبل",
 	"Being lazy": "كون كسول",
 	"Builder Mode": "بناء الموديل",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "تجاوز التحقق من SSL للموقع",
 	"Cancel": "اللغاء",
 	"Categories": "التصنيفات",
 	"Change Password": "تغير الباسورد",
 	"Chat": "المحادثة",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI الدردشة",
+	"Chat direction": "اتجاه المحادثة",
 	"Chat History": "تاريخ المحادثة",
 	"Chat History is off for this browser.": "سجل الدردشة معطل لهذا المتصفح",
 	"Chats": "المحادثات",
@@ -166,7 +166,7 @@
 	"Edit Doc": "تعديل الملف",
 	"Edit User": "تعديل المستخدم",
 	"Email": "البريد",
-	"Embedding Model": "",
+	"Embedding Model": "نموذج التضمين",
 	"Embedding Model Engine": "تضمين محرك النموذج",
 	"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
 	"Enable Chat History": "تمكين سجل الدردشة",
@@ -174,8 +174,8 @@
 	"Enabled": "تفعيل",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.",
 	"Enter {{role}} message here": "أدخل رسالة {{role}} هنا",
-	"Enter a detail about yourself for your LLMs to recall": "",
-	"Enter Chunk Overlap": "أدخل Chunk المتداخل",
+	"Enter a detail about yourself for your LLMs to recall": "ادخل معلومات عنك تريد أن يتذكرها الموديل",
+	"Enter Chunk Overlap": "أدخل الChunk Overlap",
 	"Enter Chunk Size": "أدخل Chunk الحجم",
 	"Enter Image Size (e.g. 512x512)": "(e.g. 512x512) أدخل حجم الصورة ",
 	"Enter language codes": "أدخل كود اللغة",
@@ -189,9 +189,9 @@
 	"Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات",
 	"Enter Score": "أدخل النتيجة",
 	"Enter stop sequence": "أدخل تسلسل التوقف",
-	"Enter Top K": "Enter Top K",
+	"Enter Top K": "أدخل Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "URL (e.g. http://localhost:11434)",
 	"Enter Your Email": "أدخل البريد الاكتروني",
 	"Enter Your Full Name": "أدخل الاسم كامل",
 	"Enter Your Password": "ادخل كلمة المرور",
@@ -219,7 +219,7 @@
 	"General Settings": "الاعدادات العامة",
 	"Generation Info": "معلومات الجيل",
 	"Good Response": "استجابة جيدة",
-	"h:mm a": "",
+	"h:mm a": "الساعة:الدقائق صباحا/مساء",
 	"has no conversations.": "ليس لديه محادثات.",
 	"Hello, {{name}}": " {{name}} مرحبا",
 	"Help": "مساعدة",
@@ -254,30 +254,30 @@
 	"Light": "فاتح",
 	"Listening...": "جاري الاستماع",
 	"LLMs can make mistakes. Verify important information.": "يمكن أن تصدر بعض الأخطاء. لذلك يجب التحقق من المعلومات المهمة",
-	"LTR": "",
+	"LTR": "من جهة اليسار إلى اليمين",
 	"Made by OpenWebUI Community": "OpenWebUI تم إنشاؤه بواسطة مجتمع ",
 	"Make sure to enclose them with": "تأكد من إرفاقها",
 	"Manage LiteLLM Models": "LiteLLM إدارة نماذج ",
 	"Manage Model Information": "",
 	"Manage Models": "إدارة النماذج",
 	"Manage Ollama Models": "Ollama إدارة موديلات ",
-	"March": "",
+	"March": "مارس",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
-	"May": "",
+	"May": "مايو",
 	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memory": "الذاكرة",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "لن تتم مشاركة الرسائل التي ترسلها بعد إنشاء الرابط الخاص بك. سيتمكن المستخدمون الذين لديهم عنوان URL من عرض الدردشة المشتركة",
 	"Minimum Score": "الحد الأدنى من النقاط",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
 	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
-	"Model '{{modelName}}' has been successfully downloaded.": "موديل '{{modelName}}'تم تحميله بنجاح",
-	"Model '{{modelTag}}' is already in queue for downloading.": "موديل '{{modelTag}}' جاري تحميلة الرجاء الانتظار",
-	"Model {{modelId}} not found": "موديل {{modelId}} لم يوجد",
-	"Model {{modelName}} already exists.": "موجود {{modelName}} موديل ",
+	"Model '{{modelName}}' has been successfully downloaded.": "تم تحميل النموذج '{{modelName}}' بنجاح",
+	"Model '{{modelTag}}' is already in queue for downloading.": "النموذج '{{modelTag}}' موجود بالفعل في قائمة الانتظار للتحميل",
+	"Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.",
+	"Model {{modelName}} already exists.": "موجود {{modelName}} موديل بالفعل",
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
 	"pending": "قيد الانتظار",
 	"Permission denied when accessing microphone: {{error}}": "{{error}} تم رفض الإذن عند الوصول إلى الميكروفون ",
-	"Personalization": "",
+	"Personalization": "التخصيص",
 	"Plain text (.txt)": "نص عادي (.txt)",
 	"Playground": "مكان التجربة",
 	"Positive attitude": "موقف ايجابي",
@@ -370,7 +370,7 @@
 	"Repeat Last N": "N كرر آخر",
 	"Repeat Penalty": "كرر المخالفة",
 	"Request Mode": "وضع الطلب",
-	"Reranking Model": "",
+	"Reranking Model": "إعادة تقييم النموذج",
 	"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
 	"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
 	"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
@@ -378,7 +378,7 @@
 	"Role": "منصب",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "من اليمين إلى اليسار",
 	"Save": "حفظ",
 	"Save & Create": "حفظ وإنشاء",
 	"Save & Update": "حفظ وتحديث",
@@ -398,17 +398,17 @@
 	"Select an Ollama instance": "أختار سيرفر ",
 	"Select model": " أختار موديل",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "تم",
 	"Send a Message": "يُرجى إدخال طلبك هنا",
 	"Send message": "يُرجى إدخال طلبك هنا.",
 	"September": "سبتمبر",
 	"Server connection verified": "تم التحقق من اتصال الخادم",
 	"Set as default": "الافتراضي",
 	"Set Default Model": "تفعيد الموديل الافتراضي",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "ضبط نموذج المتجهات (على سبيل المثال: {{model}})",
 	"Set Image Size": "حجم الصورة",
 	"Set Model": "ضبط النموذج",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "ضبط نموذج إعادة الترتيب (على سبيل المثال: {{model}})",
 	"Set Steps": "ضبط الخطوات",
 	"Set Title Auto-Generation Model": "قم بتعيين نموذج إنشاء العنوان تلقائيًا",
 	"Set Voice": "ضبط الصوت",
@@ -493,8 +493,8 @@
 	"Version": "إصدار",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
+	"Web Loader Settings": "Web تحميل اعدادات",
+	"Web Params": "Web تحميل اعدادات",
 	"Webhook URL": "Webhook الرابط",
 	"WebUI Add-ons": "WebUI الأضافات",
 	"WebUI Settings": "WebUI اعدادات",
@@ -502,16 +502,16 @@
 	"What’s New in": "ما هو الجديد",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "عند إيقاف تشغيل السجل، لن تظهر الدردشات الجديدة على هذا المتصفح في سجلك على أي من أجهزتك.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "مساحة العمل",
 	"Write a prompt suggestion (e.g. Who are you?)": "اكتب اقتراحًا سريعًا (على سبيل المثال، من أنت؟)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية]",
 	"Yes": "",
 	"Yesterday": "أمس",
-	"You": "",
+	"You": "انت",
 	"You have no archived conversations.": "لا تملك محادثات محفوظه",
 	"You have shared this chat": "تم مشاركة هذه المحادثة",
 	"You're a helpful assistant.": "مساعدك المفيد هنا",
 	"You're now logged in.": "لقد قمت الآن بتسجيل الدخول.",
 	"Youtube": "Youtube",
-	"Youtube Loader Settings": ""
+	"Youtube Loader Settings": "Youtube تحميل اعدادات"
 }

+ 144 - 144
src/lib/i18n/locales/bg-BG/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(например `sh webui.sh --api`)",
 	"(latest)": "(последна)",
 	"{{modelName}} is thinking...": "{{modelName}} мисли ...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s чатове",
 	"{{webUIName}} Backend Required": "{{webUIName}} Изисква се Бекенд",
 	"A selected model does not support image input": "",
 	"a user": "потребител",
 	"About": "Относно",
 	"Account": "Акаунт",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Точни информация",
+	"Add": "Добавяне",
 	"Add a model": "Добавяне на модел",
 	"Add a model tag name": "Добавяне на име на таг за модел",
 	"Add a short description about what this modelfile does": "Добавяне на кратко описание за това какво прави този модфайл",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Добавяне на собствен промпт",
 	"Add Docs": "Добавяне на Документи",
 	"Add Files": "Добавяне на Файлове",
-	"Add Memory": "",
+	"Add Memory": "Добавяне на Памет",
 	"Add message": "Добавяне на съобщение",
-	"Add Model": "",
+	"Add Model": "Добавяне на Модел",
 	"Add Tags": "добавяне на тагове",
-	"Add User": "",
+	"Add User": "Добавяне на потребител",
 	"Adjusting these settings will apply changes universally to all users.": "При промяна на тези настройки промените се прилагат за всички потребители.",
 	"admin": "админ",
 	"Admin Panel": "Панел на Администратор",
 	"Admin Settings": "Настройки на Администратор",
 	"Advanced Parameters": "Разширени Параметри",
 	"all": "всички",
-	"All Documents": "",
+	"All Documents": "Всички Документи",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Всички Потребители",
 	"Allow": "Позволи",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Вече имате акаунт? ",
 	"an assistant": "асистент",
 	"and": "и",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "и създай нов общ линк.",
 	"API Base URL": "API Базов URL",
 	"API Key": "API Ключ",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API Ключ създаден.",
+	"API keys": "API Ключове",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
-	"Archived Chats": "",
+	"April": "Април",
+	"Archive": "Архивирани Чатове",
+	"Archived Chats": "Архивирани Чатове",
 	"are allowed - Activate this command by typing": "са разрешени - Активирайте тази команда чрез въвеждане",
 	"Are you sure?": "Сигурни ли сте?",
 	"Attach file": "Прикачване на файл",
-	"Attention to detail": "",
+	"Attention to detail": "Внимание към детайлите",
 	"Audio": "Аудио",
-	"August": "",
+	"August": "Август",
 	"Auto-playback response": "Аувтоматично възпроизвеждане на Отговора",
 	"Auto-send input after 3 sec.": "Аувтоматично изпращане на входа след 3 сек.",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Базов URL",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Базов URL е задължителен.",
 	"available!": "наличен!",
 	"Back": "Назад",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Невалиден отговор от API",
+	"before": "преди",
+	"Being lazy": "Да бъдеш мързелив",
 	"Builder Mode": "Режим на Създаване",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Изключване на SSL проверката за сайтове",
 	"Cancel": "Отказ",
 	"Categories": "Категории",
 	"Change Password": "Промяна на Парола",
 	"Chat": "Чат",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI за чат бублон",
+	"Chat direction": "Направление на чата",
 	"Chat History": "Чат История",
 	"Chat History is off for this browser.": "Чат История е изключен за този браузър.",
 	"Chats": "Чатове",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Chunk Size",
 	"Citation": "Цитат",
 	"Click here for help.": "Натиснете тук за помощ.",
-	"Click here to": "",
+	"Click here to": "Натиснете тук за",
 	"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
 	"Click here to select": "Натиснете тук, за да изберете",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Натиснете тук, за да изберете csv файл.",
 	"Click here to select documents.": "Натиснете тук, за да изберете документи.",
 	"click here.": "натиснете тук.",
 	"Click on the user role button to change a user's role.": "Натиснете върху бутона за промяна на ролята на потребителя.",
 	"Close": "Затвори",
 	"Collection": "Колекция",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL е задължително.",
 	"Command": "Команда",
 	"Confirm Password": "Потвърди Парола",
 	"Connections": "Връзки",
 	"Content": "Съдържание",
 	"Context Length": "Дължина на Контекста",
-	"Continue Response": "",
+	"Continue Response": "Продължи отговора",
 	"Conversation Mode": "Режим на Чат",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "Копирана е връзката за чат!",
+	"Copy": "Копирай",
 	"Copy last code block": "Копиране на последен код блок",
 	"Copy last response": "Копиране на последен отговор",
-	"Copy Link": "",
+	"Copy Link": "Копиране на връзка",
 	"Copying to clipboard was successful!": "Копирането в клипборда беше успешно!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Създайте кратка фраза от 3-5 думи като заглавие за следващото запитване, като стриктно спазвате ограничението от 3-5 думи и избягвате използването на думата 'заглавие':",
 	"Create a modelfile": "Създаване на модфайл",
 	"Create Account": "Създаване на Акаунт",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Създаване на нов ключ",
+	"Create new secret key": "Създаване на нов секретен ключ",
 	"Created at": "Създадено на",
-	"Created At": "",
+	"Created At": "Създадено на",
 	"Current Model": "Текущ модел",
 	"Current Models": "",
 	"Current Password": "Текуща Парола",
 	"Custom": "Персонализиран",
 	"Customize Ollama models for a specific purpose": "Персонализиране на Ollama моделите за конкретна цел",
 	"Dark": "Тъмен",
-	"Dashboard": "",
+	"Dashboard": "Панел",
 	"Database": "База данни",
-	"December": "",
+	"December": "Декември",
 	"Default": "По подразбиране",
 	"Default (Automatic1111)": "По подразбиране (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "По подразбиране (SentenceTransformers)",
 	"Default (Web API)": "По подразбиране (Web API)",
 	"Default model updated": "Моделът по подразбиране е обновен",
 	"Default Prompt Suggestions": "Промпт Предложения по подразбиране",
 	"Default User Role": "Роля на потребителя по подразбиране",
 	"delete": "изтриване",
-	"Delete": "",
+	"Delete": "Изтриване",
 	"Delete a model": "Изтриване на модел",
 	"Delete chat": "Изтриване на чат",
-	"Delete Chat": "",
+	"Delete Chat": "Изтриване на Чат",
 	"Delete Chats": "Изтриване на Чатове",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "Изтриване на този линк",
+	"Delete User": "Изтриване на потребител",
 	"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "Изтрито {{tagName}}",
 	"Description": "Описание",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Не следва инструкциите",
 	"Disabled": "Деактивиран",
 	"Discover a modelfile": "Откриване на модфайл",
 	"Discover a prompt": "Откриване на промпт",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "няма външни връзки, и вашите данни остават сигурни на локално назначен сървър.",
 	"Don't Allow": "Не Позволявай",
 	"Don't have an account?": "Нямате акаунт?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Не харесваш стила?",
+	"Download": "Изтегляне отменено",
+	"Download canceled": "Изтегляне отменено",
 	"Download Database": "Сваляне на база данни",
 	"Drop any files here to add to the conversation": "Пускане на файлове тук, за да ги добавите в чата",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.",
-	"Edit": "",
+	"Edit": "Редактиране",
 	"Edit Doc": "Редактиране на документ",
 	"Edit User": "Редактиране на потребител",
 	"Email": "Имейл",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Модел за вграждане",
+	"Embedding Model Engine": "Модел за вграждане",
+	"Embedding model set to \"{{embedding_model}}\"": "Модел за вграждане е настроен на \"{{embedding_model}}\"",
 	"Enable Chat History": "Вклюване на Чат История",
 	"Enable New Sign Ups": "Вклюване на Нови Потребители",
 	"Enabled": "Включено",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверете се, че вашият CSV файл включва 4 колони в следния ред: Име, Имейл, Парола, Роля.",
 	"Enter {{role}} message here": "Въведете съобщение за {{role}} тук",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Въведете подробности за себе си, за да се herinnerат вашите LLMs",
 	"Enter Chunk Overlap": "Въведете Chunk Overlap",
 	"Enter Chunk Size": "Въведете Chunk Size",
 	"Enter Image Size (e.g. 512x512)": "Въведете размер на изображението (напр. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Въведете кодове на езика",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Въведете LiteLLM API Base URL (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Въведете LiteLLM API Key (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Въведете LiteLLM API RPM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Въведете таг на модел (напр. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Въведете брой стъпки (напр. 50)",
-	"Enter Score": "",
+	"Enter Score": "Въведете оценка",
 	"Enter stop sequence": "Въведете стоп последователност",
 	"Enter Top K": "Въведете Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Въведете URL (напр. http://localhost:11434)",
 	"Enter Your Email": "Въведете имейл",
 	"Enter Your Full Name": "Въведете вашето пълно име",
 	"Enter Your Password": "Въведете вашата парола",
-	"Enter Your Role": "",
+	"Enter Your Role": "Въведете вашата роля",
 	"Experimental": "Експериментално",
 	"Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)",
 	"Export Chats": "Експортване на чатове",
 	"Export Documents Mapping": "Експортване на документен мапинг",
 	"Export Modelfiles": "Експортване на модфайлове",
 	"Export Prompts": "Експортване на промптове",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Неуспешно създаване на API ключ.",
 	"Failed to read clipboard contents": "Грешка при четене на съдържанието от клипборда",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Февруари",
+	"Feel free to add specific details": "Feel free to add specific details",
 	"File Mode": "Файл Мод",
 	"File not found.": "Файл не е намерен.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Потвърждаване на отпечатък: Не може да се използва инициализационна буква като аватар. Потребителят се връща към стандартна аватарка.",
 	"Fluidly stream large external response chunks": "Плавно предаване на големи части от външен отговор",
 	"Focus chat input": "Фокусиране на чат вход",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Следвайте инструкциите перфектно",
 	"Format your variables using square brackets like this:": "Форматирайте вашите променливи, като използвате квадратни скоби, както следва:",
 	"From (Base Model)": "От (Базов модел)",
 	"Full Screen Mode": "На Цял екран",
 	"General": "Основни",
 	"General Settings": "Основни Настройки",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Информация за Генерация",
+	"Good Response": "Добра отговор",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "няма разговори.",
 	"Hello, {{name}}": "Здравей, {{name}}",
-	"Help": "",
+	"Help": "Помощ",
 	"Hide": "Скрий",
 	"Hide Additional Params": "Скрий допълнителни параметри",
 	"How can I help you today?": "Как мога да ви помогна днес?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Hybrid Search",
 	"Image Generation (Experimental)": "Генерация на изображения (Експериментално)",
 	"Image Generation Engine": "Двигател за генериране на изображения",
 	"Image Settings": "Настройки на изображения",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Включете флага `--api`, когато стартирате stable-diffusion-webui",
 	"Input commands": "Въведете команди",
 	"Interface": "Интерфейс",
-	"Invalid Tag": "",
+	"Invalid Tag": "Невалиден тег",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Януари",
 	"join our Discord for help.": "свържете се с нашия Discord за помощ.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Июл",
+	"June": "Июн",
 	"JWT Expiration": "JWT Expiration",
 	"JWT Token": "JWT Token",
 	"Keep Alive": "Keep Alive",
 	"Keyboard shortcuts": "Клавиши за бърз достъп",
 	"Language": "Език",
-	"Last Active": "",
+	"Last Active": "Последни активни",
 	"Light": "Светъл",
 	"Listening...": "Слушам...",
 	"LLMs can make mistakes. Verify important information.": "LLMs могат да правят грешки. Проверете важните данни.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Направено от OpenWebUI общността",
 	"Make sure to enclose them with": "Уверете се, че са заключени с",
 	"Manage LiteLLM Models": "Управление на LiteLLM Моделите",
 	"Manage Model Information": "",
 	"Manage Models": "Управление на Моделите",
 	"Manage Ollama Models": "Управление на Ollama Моделите",
-	"March": "",
+	"March": "Март",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Май",
+	"Memories accessible by LLMs will be shown here.": "Мемории достъпни от LLMs ще бъдат показани тук.",
+	"Memory": "Мемория",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Съобщенията, които изпращате след създаването на връзката, няма да бъдат споделяни. Потребителите с URL адреса ще могат да видят споделения чат.",
+	"Minimum Score": "Минимална оценка",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Моделът '{{modelName}}' беше успешно свален.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Моделът '{{modelTag}}' е вече в очакване за сваляне.",
 	"Model {{modelId}} not found": "Моделът {{modelId}} не е намерен",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Открит е път до файловата система на модела. За актуализацията се изисква съкратено име на модела, не може да продължи.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Име на модел",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Съдържание на модфайл",
 	"Modelfiles": "Модфайлове",
 	"Models": "Модели",
-	"More": "",
+	"More": "Повече",
 	"Name": "Име",
 	"Name Tag": "Име Таг",
 	"Name your modelfile": "Име на модфайла",
 	"New Chat": "Нов чат",
 	"New Password": "Нова парола",
 	"No": "",
-	"No results found": "",
+	"No results found": "Няма намерени резултати",
 	"No source available": "Няма наличен източник",
-	"Not factually correct": "",
+	"Not factually correct": "Не е фактологически правилно",
 	"Not sure what to add?": "Не сте сигурни, какво да добавите?",
 	"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Забележка: Ако зададете минимален резултат, търсенето ще върне само документи с резултат, по-голям или равен на минималния резултат.",
 	"Notifications": "Десктоп Известия",
-	"November": "",
-	"October": "",
+	"November": "Ноември",
+	"October": "Октомври",
 	"Off": "Изкл.",
 	"Okay, Let's Go!": "ОК, Нека започваме!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED тъмно",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama Базов URL",
 	"Ollama Version": "Ollama Версия",
 	"On": "Вкл.",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Отвори нов чат",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API Config",
 	"OpenAI API Key is required.": "OpenAI API ключ е задължителен.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Key е задължителен.",
 	"or": "или",
-	"Other": "",
-	"Overview": "",
+	"Other": "Other",
+	"Overview": "Обзор",
 	"Parameters": "Параметри",
 	"Password": "Парола",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF документ (.pdf)",
 	"PDF Extract Images (OCR)": "PDF Extract Images (OCR)",
 	"pending": "в очакване",
 	"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Персонализация",
+	"Plain text (.txt)": "Plain text (.txt)",
 	"Playground": "Плейграунд",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Позитивна ативност",
+	"Previous 30 days": "Предыдущите 30 дни",
+	"Previous 7 days": "Предыдущите 7 дни",
+	"Profile Image": "Профилна снимка",
+	"Prompt": "Промпт",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Промпт (напр. Обмисли ме забавна факт за Римската империя)",
 	"Prompt Content": "Съдържание на промпта",
 	"Prompt suggestions": "Промпт предложения",
 	"Prompts": "Промптове",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Извади \"{{searchValue}}\" от Ollama.com",
 	"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
 	"Pull Progress": "Прогрес на издърпването",
 	"Query Params": "Query Параметри",
 	"RAG Template": "RAG Шаблон",
 	"Raw Format": "Raw Формат",
-	"Read Aloud": "",
+	"Read Aloud": "Прочети на Голос",
 	"Record voice": "Записване на глас",
 	"Redirecting you to OpenWebUI Community": "Пренасочване към OpenWebUI общността",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Отказано, когато не трябва да бъде",
+	"Regenerate": "Регенериране",
 	"Release Notes": "Бележки по изданието",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Изтриване",
+	"Remove Model": "Изтриване на модела",
+	"Rename": "Преименуване",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request Mode",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Reranking Model",
+	"Reranking model disabled": "Reranking model disabled",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Ресет Vector Storage",
 	"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
 	"Role": "Роля",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Запис",
 	"Save & Create": "Запис & Създаване",
 	"Save & Update": "Запис & Актуализиране",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Сканиране завършено!",
 	"Scan for documents from {{path}}": "Сканиране за документи в {{path}}",
 	"Search": "Търси",
-	"Search a model": "",
+	"Search a model": "Търси модел",
 	"Search Documents": "Търси Документи",
 	"Search Prompts": "Търси Промптове",
 	"See readme.md for instructions": "Виж readme.md за инструкции",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Изберете Ollama инстанция",
 	"Select model": "Изберете модел",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Изпрати",
 	"Send a Message": "Изпращане на Съобщение",
 	"Send message": "Изпращане на съобщение",
-	"September": "",
+	"September": "Септември",
 	"Server connection verified": "Server connection verified",
 	"Set as default": "Задай по подразбиране",
 	"Set Default Model": "Задай Модел По Подразбиране",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Задай embedding model (e.g. {{model}})",
 	"Set Image Size": "Задай Размер на Изображението",
 	"Set Model": "Задай Модел",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Задай reranking model (e.g. {{model}})",
 	"Set Steps": "Задай Стъпки",
 	"Set Title Auto-Generation Model": "Задай Модел за Автоматично Генериране на Заглавие",
 	"Set Voice": "Задай Глас",
 	"Settings": "Настройки",
 	"Settings saved successfully!": "Настройките са запазени успешно!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Подели",
+	"Share Chat": "Подели Чат",
 	"Share to OpenWebUI Community": "Споделите с OpenWebUI Общността",
 	"short-summary": "short-summary",
 	"Show": "Покажи",
 	"Show Additional Params": "Покажи допълнителни параметри",
 	"Show shortcuts": "Покажи",
-	"Showcased creativity": "",
+	"Showcased creativity": "Показана креативност",
 	"sidebar": "sidebar",
 	"Sign in": "Вписване",
 	"Sign Out": "Изход",
 	"Sign up": "Регистрация",
-	"Signing in": "",
+	"Signing in": "Вписване",
 	"Source": "Източник",
 	"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
 	"Speech-to-Text Engine": "Speech-to-Text Engine",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Stop Sequence",
 	"STT Settings": "STT Настройки",
 	"Submit": "Изпращане",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Подтитул (напр. за Римска империя)",
 	"Success": "Успех",
 	"Successfully updated.": "Успешно обновено.",
-	"Suggested": "",
+	"Suggested": "Препоръчано",
 	"Sync All": "Синхронизиране на всички",
 	"System": "Система",
 	"System Prompt": "Системен Промпт",
 	"Tags": "Тагове",
-	"Tell us more:": "",
+	"Tell us more:": "Повече информация:",
 	"Temperature": "Температура",
 	"Template": "Шаблон",
 	"Text Completion": "Text Completion",
 	"Text-to-Speech Engine": "Text-to-Speech Engine",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Благодарим ви за вашия отзив!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "The score should be a value between 0.0 (0%) and 1.0 (100%).",
 	"Theme": "Тема",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Това гарантира, че ценните ви разговори се запазват сигурно във вашата бекенд база данни. Благодарим ви!",
 	"This setting does not sync across browsers or devices.": "Тази настройка не се синхронизира между браузъри или устройства.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Това е подробно описание.",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Съвет: Актуализирайте няколко слота за променливи последователно, като натискате клавиша Tab в чат входа след всяка подмяна.",
 	"Title": "Заглавие",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Заглавие (напр. Моля, кажете ми нещо забавно)",
 	"Title Auto-Generation": "Автоматично Генериране на Заглавие",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Заглавието не може да бъде празно.",
 	"Title Generation Prompt": "Промпт за Генериране на Заглавие",
 	"to": "в",
 	"To access the available model names for downloading,": "За да получите достъп до наличните имена на модели за изтегляне,",
 	"To access the GGUF models available for downloading,": "За да получите достъп до GGUF моделите, налични за изтегляне,",
 	"to chat input.": "към чат входа.",
-	"Today": "",
+	"Today": "днес",
 	"Toggle settings": "Toggle settings",
 	"Toggle sidebar": "Toggle sidebar",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Обнови и копирай връзка",
 	"Update password": "Обновяване на парола",
 	"Upload a GGUF model": "Качване на GGUF модел",
 	"Upload files": "Качване на файлове",
@@ -482,7 +482,7 @@
 	"URL Mode": "URL Mode",
 	"Use '#' in the prompt input to load and select your documents.": "Използвайте '#' във промпта за да заредите и изберете вашите документи.",
 	"Use Gravatar": "Използвайте Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Използвайте Инициали",
 	"user": "потребител",
 	"User Permissions": "Права на потребителя",
 	"Users": "Потребители",
@@ -491,27 +491,27 @@
 	"variable": "променлива",
 	"variable to have them replaced with clipboard content.": "променливи да се заменят съдържанието от клипборд.",
 	"Version": "Версия",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Ако актуализирате или промените вашия модел за вграждане, трябва да повторите импортирането на всички документи.",
 	"Web": "Уеб",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Настройки за зареждане на уеб",
+	"Web Params": "Параметри за уеб",
+	"Webhook URL": "Уебхук URL",
 	"WebUI Add-ons": "WebUI Добавки",
 	"WebUI Settings": "WebUI Настройки",
 	"WebUI will make requests to": "WebUI ще направи заявки към",
 	"What’s New in": "Какво е новото в",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Когато историята е изключена, нови чатове в този браузър ще не се показват в историята на никои от вашия профил.",
 	"Whisper (Local)": "Whisper (Локален)",
-	"Workspace": "",
+	"Workspace": "Работно пространство",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напиши предложение за промпт (напр. Кой сте вие?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "вчера",
+	"You": "вие",
+	"You have no archived conversations.": "Нямате архивирани разговори.",
+	"You have shared this chat": "Вие сте споделели този чат",
 	"You're a helpful assistant.": "Вие сте полезен асистент.",
 	"You're now logged in.": "Сега, вие влязохте в системата.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Youtube Loader Settings"
 }

+ 139 - 139
src/lib/i18n/locales/bn-BD/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(যেমন `sh webui.sh --api`)",
 	"(latest)": "(সর্বশেষ)",
 	"{{modelName}} is thinking...": "{{modelName}} চিন্তা করছে...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}র চ্যাটস",
 	"{{webUIName}} Backend Required": "{{webUIName}} ব্যাকএন্ড আবশ্যক",
 	"A selected model does not support image input": "",
 	"a user": "একজন ব্যাবহারকারী",
 	"About": "সম্পর্কে",
 	"Account": "একাউন্ট",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "সঠিক তথ্য",
+	"Add": "যোগ করুন",
 	"Add a model": "একটি মডেল যোগ করুন",
 	"Add a model tag name": "একটি মডেল ট্যাগ যোগ করুন",
 	"Add a short description about what this modelfile does": "এই মডেলফাইলটির সম্পর্কে সংক্ষিপ্ত বিবরণ যোগ করুন",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "একটি কাস্টম প্রম্পট যোগ করুন",
 	"Add Docs": "ডকুমেন্ট যোগ করুন",
 	"Add Files": "ফাইল যোগ করুন",
-	"Add Memory": "",
+	"Add Memory": "মেমোরি যোগ করুন",
 	"Add message": "মেসেজ যোগ করুন",
-	"Add Model": "",
+	"Add Model": "মডেল যোগ করুন",
 	"Add Tags": "ট্যাগ যোগ করুন",
-	"Add User": "",
+	"Add User": "ইউজার যোগ করুন",
 	"Adjusting these settings will apply changes universally to all users.": "এই সেটিংগুলো পরিবর্তন করলে তা সব ইউজারের উপরেই প্রয়োগ করা হবে",
 	"admin": "এডমিন",
 	"Admin Panel": "এডমিন প্যানেল",
 	"Admin Settings": "এডমিন সেটিংস",
 	"Advanced Parameters": "এডভান্সড প্যারামিটার্স",
 	"all": "সব",
-	"All Documents": "",
+	"All Documents": "সব ডকুমেন্ট",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "সব ইউজার",
 	"Allow": "অনুমোদন",
@@ -40,38 +40,38 @@
 	"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
 	"an assistant": "একটা এসিস্ট্যান্ট",
 	"and": "এবং",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "এবং একটি নতুন শেয়ারে লিংক তৈরি করুন.",
 	"API Base URL": "এপিআই বেজ ইউআরএল",
 	"API Key": "এপিআই কোড",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "একটি এপিআই কোড তৈরি করা হয়েছে.",
+	"API keys": "এপিআই কোডস",
 	"API RPM": "এপিআই আরপিএম",
-	"April": "",
-	"Archive": "",
+	"April": "আপ্রিল",
+	"Archive": "আর্কাইভ",
 	"Archived Chats": "চ্যাট ইতিহাস সংরক্ষণাগার",
 	"are allowed - Activate this command by typing": "অনুমোদিত - কমান্ডটি চালু করার জন্য লিখুন",
 	"Are you sure?": "আপনি নিশ্চিত?",
 	"Attach file": "ফাইল যুক্ত করুন",
 	"Attention to detail": "বিস্তারিত বিশেষতা",
 	"Audio": "অডিও",
-	"August": "",
+	"August": "আগস্ট",
 	"Auto-playback response": "রেসপন্স অটো-প্লেব্যাক",
 	"Auto-send input after 3 sec.": "৩ সেকেন্ড পর ইনপুট সংয়ক্রিয়ভাবে পাঠান",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 বেজ ইউআরএল",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 বেজ ইউআরএল আবশ্যক",
 	"available!": "উপলব্ধ!",
 	"Back": "পেছনে",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "খারাপ প্রতিক্রিয়া",
+	"before": "পূর্ববর্তী",
+	"Being lazy": "অলস হওয়া",
 	"Builder Mode": "বিল্ডার মোড",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "ওয়েবসাইটের জন্য SSL যাচাই বাতিল করুন",
 	"Cancel": "বাতিল",
 	"Categories": "ক্যাটাগরিসমূহ",
 	"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
 	"Chat": "চ্যাট",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "চ্যাট বাবল UI",
+	"Chat direction": "চ্যাট দিকনির্দেশ",
 	"Chat History": "চ্যাট হিস্টোরি",
 	"Chat History is off for this browser.": "এই ব্রাউজারের জন্য চ্যাট হিস্টোরি বন্ধ আছে",
 	"Chats": "চ্যাটসমূহ",
@@ -84,66 +84,66 @@
 	"Chunk Size": "চাঙ্ক সাইজ",
 	"Citation": "উদ্ধৃতি",
 	"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
-	"Click here to": "",
+	"Click here to": "এখানে ক্লিক করুন",
 	"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
 	"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "একটি csv ফাইল নির্বাচন করার জন্য এখানে ক্লিক করুন",
 	"Click here to select documents.": "ডকুমেন্টগুলো নির্বাচন করার জন্য এখানে ক্লিক করুন",
 	"click here.": "এখানে ক্লিক করুন",
 	"Click on the user role button to change a user's role.": "ইউজারের পদবি পরিবর্তন করার জন্য ইউজারের পদবি বাটনে ক্লিক করুন",
 	"Close": "বন্ধ",
 	"Collection": "সংগ্রহ",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL আবশ্যক।",
 	"Command": "কমান্ড",
 	"Confirm Password": "পাসওয়ার্ড নিশ্চিত করুন",
 	"Connections": "কানেকশনগুলো",
 	"Content": "বিষয়বস্তু",
 	"Context Length": "কনটেক্সটের দৈর্ঘ্য",
-	"Continue Response": "",
+	"Continue Response": "যাচাই করুন",
 	"Conversation Mode": "কথোপকথন মোড",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!",
+	"Copy": "অনুলিপি",
 	"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",
 	"Copy last response": "সর্বশেষ রেসপন্স কপি করুন",
-	"Copy Link": "",
+	"Copy Link": "লিংক কপি করুন",
 	"Copying to clipboard was successful!": "ক্লিপবোর্ডে কপি করা সফল হয়েছে",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
 	"Create a modelfile": "একটি মডেলফাইল তৈরি করুন",
 	"Create Account": "একাউন্ট তৈরি করুন",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "একটি নতুন কী তৈরি করুন",
+	"Create new secret key": "একটি নতুন সিক্রেট কী তৈরি করুন",
 	"Created at": "নির্মানকাল",
-	"Created At": "",
+	"Created At": "নির্মানকাল",
 	"Current Model": "বর্তমান মডেল",
 	"Current Models": "",
 	"Current Password": "বর্তমান পাসওয়ার্ড",
 	"Custom": "কাস্টম",
 	"Customize Ollama models for a specific purpose": "নির্দিষ্ট উদ্দেশ্যে Ollama মডেল পরিবর্তন করুন",
 	"Dark": "ডার্ক",
-	"Dashboard": "",
+	"Dashboard": "ড্যাশবোর্ড",
 	"Database": "ডেটাবেজ",
-	"December": "",
+	"December": "ডেসেম্বর",
 	"Default": "ডিফল্ট",
 	"Default (Automatic1111)": "ডিফল্ট (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "ডিফল্ট (SentenceTransformers)",
 	"Default (Web API)": "ডিফল্ট (Web API)",
 	"Default model updated": "ডিফল্ট মডেল আপডেট হয়েছে",
 	"Default Prompt Suggestions": "ডিফল্ট প্রম্পট সাজেশন",
 	"Default User Role": "ইউজারের ডিফল্ট পদবি",
 	"delete": "মুছে ফেলুন",
-	"Delete": "",
+	"Delete": "মুছে ফেলুন",
 	"Delete a model": "একটি মডেল মুছে ফেলুন",
 	"Delete chat": "চ্যাট মুছে ফেলুন",
-	"Delete Chat": "",
+	"Delete Chat": "চ্যাট মুছে ফেলুন",
 	"Delete Chats": "চ্যাটগুলো মুছে ফেলুন",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "এই লিংক মুছে ফেলুন",
+	"Delete User": "ইউজার মুছে ফেলুন",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} মুছে ফেলা হয়েছে",
 	"Description": "বিবরণ",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "ইনস্ট্রাকশন সম্পূর্ণ অনুসরণ করা হয়নি",
 	"Disabled": "অক্ষম",
 	"Discover a modelfile": "একটি মডেলফাইল খুঁজে বের করুন",
 	"Discover a prompt": "একটি প্রম্পট খুঁজে বের করুন",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "কোন এক্সটার্নাল কানেকশন তৈরি করে না, এবং আপনার ডেটা আর লোকালি হোস্টেড সার্ভারেই নিরাপদে থাকে।",
 	"Don't Allow": "অনুমোদন দেবেন না",
 	"Don't have an account?": "একাউন্ট নেই?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "স্টাইল পছন্দ করেন না",
+	"Download": "ডাউনলোড",
+	"Download canceled": "ডাউনলোড বাতিল করা হয়েছে",
 	"Download Database": "ডেটাবেজ ডাউনলোড করুন",
 	"Drop any files here to add to the conversation": "আলোচনায় যুক্ত করার জন্য যে কোন ফাইল এখানে ড্রপ করুন",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "এডিট করুন",
 	"Edit Doc": "ডকুমেন্ট এডিট করুন",
 	"Edit User": "ইউজার এডিট করুন",
 	"Email": "ইমেইল",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "ইমেজ ইমেবডিং মডেল",
+	"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
+	"Embedding model set to \"{{embedding_model}}\"": "ইমেজ ইমেবডিং মডেল সেট করা হয়েছে - \"{{embedding_model}}\"",
 	"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
 	"Enable New Sign Ups": "নতুন সাইনআপ চালু করুন",
 	"Enabled": "চালু করা হয়েছে",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "আপনার সিএসভি ফাইলটিতে এই ক্রমে 4 টি কলাম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন: নাম, ইমেল, পাসওয়ার্ড, ভূমিকা।.",
 	"Enter {{role}} message here": "{{role}} মেসেজ এখানে লিখুন",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "আপনার এলএলএমগুলি স্মরণ করার জন্য নিজের সম্পর্কে একটি বিশদ লিখুন",
 	"Enter Chunk Overlap": "চাঙ্ক ওভারল্যাপ লিখুন",
 	"Enter Chunk Size": "চাংক সাইজ লিখুন",
 	"Enter Image Size (e.g. 512x512)": "ছবির মাপ লিখুন (যেমন 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "ল্যাঙ্গুয়েজ কোড লিখুন",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "LiteLLM এপিআই বেজ ইউআরএল লিখুন (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "LiteLLM এপিআই কোড লিখুন (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "LiteLLM এপিআই RPM দিন (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "মডেল ট্যাগ লিখুন (e.g. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "ধাপের সংখ্যা দিন (যেমন: 50)",
-	"Enter Score": "",
+	"Enter Score": "স্কোর দিন",
 	"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
 	"Enter Top K": "Top K লিখুন",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "ইউআরএল দিন (যেমন http://localhost:11434)",
 	"Enter Your Email": "আপনার ইমেইল লিখুন",
 	"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
 	"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
-	"Enter Your Role": "",
+	"Enter Your Role": "আপনার রোল লিখুন",
 	"Experimental": "পরিক্ষামূলক",
 	"Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)",
 	"Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন",
 	"Export Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং এক্সপোর্ট করুন",
 	"Export Modelfiles": "মডেলফাইলগুলো এক্সপোর্ট করুন",
 	"Export Prompts": "প্রম্পটগুলো একপোর্ট করুন",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "API Key তৈরি করা যায়নি।",
 	"Failed to read clipboard contents": "ক্লিপবোর্ডের বিষয়বস্তু পড়া সম্ভব হয়নি",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "ফেব্রুয়ারি",
+	"Feel free to add specific details": "নির্দিষ্ট বিবরণ যোগ করতে বিনা দ্বিধায়",
 	"File Mode": "ফাইল মোড",
 	"File not found.": "ফাইল পাওয়া যায়নি",
 	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "ফিঙ্গারপ্রিন্ট স্পুফিং ধরা পড়েছে: অ্যাভাটার হিসেবে নামের আদ্যক্ষর ব্যবহার করা যাচ্ছে না। ডিফল্ট প্রোফাইল পিকচারে ফিরিয়ে নেয়া হচ্ছে।",
 	"Fluidly stream large external response chunks": "বড় এক্সটার্নাল রেসপন্স চাঙ্কগুলো মসৃণভাবে প্রবাহিত করুন",
 	"Focus chat input": "চ্যাট ইনপুট ফোকাস করুন",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "নির্দেশাবলী নিখুঁতভাবে অনুসরণ করা হয়েছে",
 	"Format your variables using square brackets like this:": "আপনার ভেরিয়বলগুলো এভাবে স্কয়ার ব্রাকেটের মাধ্যমে সাজান",
 	"From (Base Model)": "উৎস (বেজ মডেল)",
 	"Full Screen Mode": "ফুলস্ক্রিন মোড",
 	"General": "সাধারণ",
 	"General Settings": "সাধারণ সেটিংসমূহ",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "জেনারেশন ইনফো",
+	"Good Response": "ভালো সাড়া",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "কোন কনভার্সেশন আছে না।",
 	"Hello, {{name}}": "হ্যালো, {{name}}",
-	"Help": "",
+	"Help": "সহায়তা",
 	"Hide": "লুকান",
 	"Hide Additional Params": "অতিরিক্ত প্যারামিটাগুলো লুকান",
 	"How can I help you today?": "আপনাকে আজ কিভাবে সাহায্য করতে পারি?",
-	"Hybrid Search": "",
+	"Hybrid Search": "হাইব্রিড অনুসন্ধান",
 	"Image Generation (Experimental)": "ইমেজ জেনারেশন (পরিক্ষামূলক)",
 	"Image Generation Engine": "ইমেজ জেনারেশন ইঞ্জিন",
 	"Image Settings": "ছবির সেটিংসমূহ",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui চালু করার সময় `--api` ফ্ল্যাগ সংযুক্ত করুন",
 	"Input commands": "ইনপুট কমান্ডস",
 	"Interface": "ইন্টারফেস",
-	"Invalid Tag": "",
+	"Invalid Tag": "অবৈধ ট্যাগ",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "জানুয়ারী",
 	"join our Discord for help.": "সাহায্যের জন্য আমাদের Discord-এ যুক্ত হোন",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "জুলাই",
+	"June": "জুন",
 	"JWT Expiration": "JWT-র মেয়াদ",
 	"JWT Token": "JWT টোকেন",
 	"Keep Alive": "সচল রাখুন",
 	"Keyboard shortcuts": "কিবোর্ড শর্টকাটসমূহ",
 	"Language": "ভাষা",
-	"Last Active": "",
+	"Last Active": "সর্বশেষ সক্রিয়",
 	"Light": "লাইট",
 	"Listening...": "শুনছে...",
 	"LLMs can make mistakes. Verify important information.": "LLM ভুল করতে পারে। গুরুত্বপূর্ণ তথ্য যাচাই করে নিন।",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "OpenWebUI কমিউনিটিকর্তৃক নির্মিত",
 	"Make sure to enclose them with": "এটা দিয়ে বন্ধনী দিতে ভুলবেন না",
 	"Manage LiteLLM Models": "LiteLLM মডেল ব্যবস্থাপনা করুন",
 	"Manage Model Information": "",
 	"Manage Models": "মডেলসমূহ ব্যবস্থাপনা করুন",
 	"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
-	"March": "",
+	"March": "মার্চ",
 	"Max Tokens": "সর্বোচ্চ টোকন",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "মে",
+	"Memories accessible by LLMs will be shown here.": "LLMs দ্বারা অ্যাক্সেসযোগ্য মেমোরিগুলি এখানে দেখানো হবে।",
+	"Memory": "মেমোরি",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "আপনার লিঙ্ক তৈরি করার পরে আপনার পাঠানো বার্তাগুলি শেয়ার করা হবে না। ইউআরএল ব্যবহারকারীরা শেয়ার করা চ্যাট দেখতে পারবেন।",
+	"Minimum Score": "Minimum Score",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' মডেল সফলভাবে ডাউনলোড হয়েছে।",
 	"Model '{{modelTag}}' is already in queue for downloading.": "{{modelTag}} ডাউনলোডের জন্য আগে থেকেই অপেক্ষমান আছে।",
 	"Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "মডেলফাইল কনটেন্ট",
 	"Modelfiles": "মডেলফাইলসমূহ",
 	"Models": "মডেলসমূহ",
-	"More": "",
+	"More": "আরো",
 	"Name": "নাম",
 	"Name Tag": "নামের ট্যাগ",
 	"Name your modelfile": "আপনার মডেলফাইলের নাম দিন",
 	"New Chat": "নতুন চ্যাট",
 	"New Password": "নতুন পাসওয়ার্ড",
 	"No": "",
-	"No results found": "",
+	"No results found": "কোন ফলাফল পাওয়া যায়নি",
 	"No source available": "কোন উৎস পাওয়া যায়নি",
-	"Not factually correct": "",
+	"Not factually correct": "তথ্যগত দিক থেকে সঠিক নয়",
 	"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
 	"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "দ্রষ্টব্য: আপনি যদি ন্যূনতম স্কোর সেট করেন তবে অনুসন্ধানটি কেবলমাত্র ন্যূনতম স্কোরের চেয়ে বেশি বা সমান স্কোর সহ নথিগুলি ফেরত দেবে।",
 	"Notifications": "নোটিফিকেশনসমূহ",
-	"November": "",
-	"October": "",
+	"November": "নভেম্বর",
+	"October": "অক্টোবর",
 	"Off": "বন্ধ",
 	"Okay, Let's Go!": "ঠিক আছে, চলুন যাই!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED ডার্ক",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama বেজ ইউআরএল",
 	"Ollama Version": "Ollama ভার্সন",
 	"On": "চালু",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "নতুন চ্যাট খুলুন",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI এপিআই",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI এপিআই কনফিগ",
 	"OpenAI API Key is required.": "OpenAI API কোড আবশ্যক",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Key আবশ্যক",
 	"or": "অথবা",
-	"Other": "",
-	"Overview": "",
+	"Other": "অন্যান্য",
+	"Overview": "বিবরণ",
 	"Parameters": "প্যারামিটারসমূহ",
 	"Password": "পাসওয়ার্ড",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF ডকুমেন্ট (.pdf)",
 	"PDF Extract Images (OCR)": "পিডিএফ এর ছবি থেকে লেখা বের করুন (OCR)",
 	"pending": "অপেক্ষমান",
 	"Permission denied when accessing microphone: {{error}}": "মাইক্রোফোন ব্যবহারের অনুমতি পাওয়া যায়নি: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "ডিজিটাল বাংলা",
+	"Plain text (.txt)": "প্লায়েন টেক্সট (.txt)",
 	"Playground": "খেলাঘর",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "পজিটিভ আক্রমণ",
+	"Previous 30 days": "পূর্ব ৩০ দিন",
+	"Previous 7 days": "পূর্ব ৭ দিন",
+	"Profile Image": "প্রোফাইল ইমেজ",
+	"Prompt": "প্রম্প্ট",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "প্রম্প্ট (উদাহরণস্বরূপ, আমি রোমান ইমপার্টের সম্পর্কে একটি উপস্থিতি জানতে বল)",
 	"Prompt Content": "প্রম্পট কন্টেন্ট",
 	"Prompt suggestions": "প্রম্পট সাজেশনসমূহ",
 	"Prompts": "প্রম্পটসমূহ",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com থেকে \"{{searchValue}}\" টানুন",
 	"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
 	"Pull Progress": "Pull চলমান",
 	"Query Params": "Query প্যারামিটারসমূহ",
 	"RAG Template": "RAG টেম্পলেট",
 	"Raw Format": "Raw ফরম্যাট",
-	"Read Aloud": "",
+	"Read Aloud": "পড়াশোনা করুন",
 	"Record voice": "ভয়েস রেকর্ড করুন",
 	"Redirecting you to OpenWebUI Community": "আপনাকে OpenWebUI কমিউনিটিতে পাঠানো হচ্ছে",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "যদি উপযুক্ত নয়, তবে রেজিগেনেট করা হচ্ছে",
+	"Regenerate": "রেজিগেনেট করুন",
 	"Release Notes": "রিলিজ নোটসমূহ",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "রিমুভ করুন",
+	"Remove Model": "মডেল রিমুভ করুন",
+	"Rename": "রেনেম",
 	"Repeat Last N": "রিপিট Last N",
 	"Repeat Penalty": "রিপিট প্যানাল্টি",
 	"Request Mode": "রিকোয়েস্ট মোড",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "রির্যাক্টিং মডেল",
+	"Reranking model disabled": "রির্যাক্টিং মডেল নিষ্ক্রিয় করা",
+	"Reranking model set to \"{{reranking_model}}\"": "রির ্যাঙ্কিং মডেল \"{{reranking_model}}\" -এ সেট করা আছে",
 	"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
 	"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
 	"Role": "পদবি",
 	"Rosé Pine": "রোজ পাইন",
 	"Rosé Pine Dawn": "ভোরের রোজ পাইন",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "সংরক্ষণ",
 	"Save & Create": "সংরক্ষণ এবং তৈরি করুন",
 	"Save & Update": "সংরক্ষণ এবং আপডেট করুন",
@@ -387,7 +387,7 @@
 	"Scan complete!": "স্ক্যান সম্পন্ন হয়েছে!",
 	"Scan for documents from {{path}}": "ডকুমেন্টসমূহের জন্য {{path}} স্ক্যান করুন",
 	"Search": "অনুসন্ধান",
-	"Search a model": "",
+	"Search a model": "মডেল অনুসন্ধান করুন",
 	"Search Documents": "ডকুমেন্টসমূহ অনুসন্ধান করুন",
 	"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
 	"See readme.md for instructions": "নির্দেশিকার জন্য readme.md দেখুন",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "একটি Ollama ইন্সট্যান্স নির্বাচন করুন",
 	"Select model": "মডেল নির্বাচন করুন",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "পাঠান",
 	"Send a Message": "একটি মেসেজ পাঠান",
 	"Send message": "মেসেজ পাঠান",
-	"September": "",
+	"September": "সেপ্টেম্বর",
 	"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
 	"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
 	"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "ইমেম্বিং মডেল নির্ধারণ করুন (উদাহরণ {{model}})",
 	"Set Image Size": "ছবির সাইজ নির্ধারণ করুন",
 	"Set Model": "মডেল নির্ধারণ করুন",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "রি-র্যাংকিং মডেল নির্ধারণ করুন (উদাহরণ {{model}})",
 	"Set Steps": "পরবর্তী ধাপসমূহ",
 	"Set Title Auto-Generation Model": "শিরোনাম অটোজেনারেশন মডেন নির্ধারণ করুন",
 	"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
 	"Settings": "সেটিংসমূহ",
 	"Settings saved successfully!": "সেটিংগুলো সফলভাবে সংরক্ষিত হয়েছে",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "শেয়ার করুন",
+	"Share Chat": "চ্যাট শেয়ার করুন",
 	"Share to OpenWebUI Community": "OpenWebUI কমিউনিটিতে শেয়ার করুন",
 	"short-summary": "সংক্ষিপ্ত বিবরণ",
 	"Show": "দেখান",
 	"Show Additional Params": "অতিরিক্ত প্যারামিটারগুলো দেখান",
 	"Show shortcuts": "শর্টকাটগুলো দেখান",
-	"Showcased creativity": "",
+	"Showcased creativity": "সৃজনশীলতা প্রদর্শন",
 	"sidebar": "সাইডবার",
 	"Sign in": "সাইন ইন",
 	"Sign Out": "সাইন আউট",
 	"Sign up": "সাইন আপ",
-	"Signing in": "",
+	"Signing in": "সাইন ইন",
 	"Source": "উৎস",
 	"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
 	"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "সিকোয়েন্স থামান",
 	"STT Settings": "STT সেটিংস",
 	"Submit": "সাবমিট",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "সাবটাইটল (রোমান ইম্পার্টের সম্পর্কে)",
 	"Success": "সফল",
 	"Successfully updated.": "সফলভাবে আপডেট হয়েছে",
-	"Suggested": "",
+	"Suggested": "প্রস্তাবিত",
 	"Sync All": "সব সিংক্রোনাইজ করুন",
 	"System": "সিস্টেম",
 	"System Prompt": "সিস্টেম প্রম্পট",
 	"Tags": "ট্যাগসমূহ",
-	"Tell us more:": "",
+	"Tell us more:": "আরও বলুন:",
 	"Temperature": "তাপমাত্রা",
 	"Template": "টেম্পলেট",
 	"Text Completion": "লেখা সম্পন্নকরণ",
 	"Text-to-Speech Engine": "টেক্সট-টু-স্পিচ ইঞ্জিন",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "আপনার মতামত ধন্যবাদ!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "স্কোর একটি 0.0 (0%) এবং 1.0 (100%) এর মধ্যে একটি মান হওয়া উচিত।",
 	"Theme": "থিম",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "এটা নিশ্চিত করে যে, আপনার গুরুত্বপূর্ণ আলোচনা নিরাপদে আপনার ব্যাকএন্ড ডেটাবেজে সংরক্ষিত আছে। ধন্যবাদ!",
 	"This setting does not sync across browsers or devices.": "এই সেটিং অন্যন্য ব্রাউজার বা ডিভাইসের সাথে সিঙ্ক্রোনাইজ নয় না।",
-	"Thorough explanation": "",
+	"Thorough explanation": "পুঙ্খানুপুঙ্খ ব্যাখ্যা",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "পরামর্শ: একাধিক ভেরিয়েবল স্লট একের পর এক রিপ্লেস করার জন্য চ্যাট ইনপুটে কিবোর্ডের Tab বাটন ব্যবহার করুন।",
 	"Title": "শিরোনাম",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "শিরোনাম (একটি উপস্থিতি বিবরণ জানান)",
 	"Title Auto-Generation": "স্বয়ংক্রিয় শিরোনামগঠন",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "শিরোনাম অবশ্যই একটি পাশাপাশি শব্দ হতে হবে।",
 	"Title Generation Prompt": "শিরোনামগঠন প্রম্পট",
 	"to": "প্রতি",
 	"To access the available model names for downloading,": "ডাউনলোডের জন্য এভেইলএবল মডেলের নামগুলো এক্সেস করতে,",
 	"To access the GGUF models available for downloading,": "ডাউলোডের জন্য এভেইলএবল GGUF মডেলগুলো এক্সেস করতে,",
 	"to chat input.": "চ্যাট ইনপুটে",
-	"Today": "",
+	"Today": "আজ",
 	"Toggle settings": "সেটিংস টোগল",
 	"Toggle sidebar": "সাইডবার টোগল",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "আপডেট এবং লিংক কপি করুন",
 	"Update password": "পাসওয়ার্ড আপডেট করুন",
 	"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
 	"Upload files": "ফাইলগুলো আপলোড করুন",
@@ -491,27 +491,27 @@
 	"variable": "ভেরিয়েবল",
 	"variable to have them replaced with clipboard content.": "ক্লিপবোর্ডের কন্টেন্ট দিয়ে যেই ভেরিয়েবল রিপ্লেস করা যাবে।",
 	"Version": "ভার্সন",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "সতর্কীকরণ: আপনি যদি আপনার এম্বেডিং মডেল আপডেট বা পরিবর্তন করেন, তাহলে আপনাকে সমস্ত নথি পুনরায় আমদানি করতে হবে।.",
 	"Web": "ওয়েব",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "ওয়েব লোডার সেটিংস",
+	"Web Params": "ওয়েব প্যারামিটারসমূহ",
+	"Webhook URL": "ওয়েবহুক URL",
 	"WebUI Add-ons": "WebUI এড-অনসমূহ",
 	"WebUI Settings": "WebUI সেটিংসমূহ",
 	"WebUI will make requests to": "WebUI যেখানে রিকোয়েস্ট পাঠাবে",
 	"What’s New in": "এতে নতুন কী",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "যদি হিস্টোরি বন্ধ থাকে তাহলে এই ব্রাউজারের নতুন চ্যাটগুলো আপনার কোন ডিভাইসের হিস্টোরিতেই দেখা যাবে না।",
 	"Whisper (Local)": "Whisper (লোকাল)",
-	"Workspace": "",
+	"Workspace": "ওয়ার্কস্পেস",
 	"Write a prompt suggestion (e.g. Who are you?)": "একটি প্রম্পট সাজেশন লিখুন (যেমন Who are you?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "আগামী",
+	"You": "আপনি",
+	"You have no archived conversations.": "আপনার কোনও আর্কাইভ করা কথোপকথন নেই।",
+	"You have shared this chat": "আপনি এই চ্যাটটি শেয়ার করেছেন",
 	"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
 	"You're now logged in.": "আপনি এখন লগইন করা অবস্থায় আছেন",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "YouTube",
+	"Youtube Loader Settings": "YouTube লোডার সেটিংস"
 }

+ 142 - 142
src/lib/i18n/locales/ca-ES/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(p. ex. `sh webui.sh --api`)",
 	"(latest)": "(últim)",
 	"{{modelName}} is thinking...": "{{modelName}} està pensant...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "Es requereix Backend de {{webUIName}}",
 	"A selected model does not support image input": "",
 	"a user": "un usuari",
 	"About": "Sobre",
 	"Account": "Compte",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Informació precisa",
+	"Add": "Afegir",
 	"Add a model": "Afegeix un model",
 	"Add a model tag name": "Afegeix un nom d'etiqueta de model",
 	"Add a short description about what this modelfile does": "Afegeix una descripció curta del que fa aquest arxiu de model",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Afegir un prompt personalitzat",
 	"Add Docs": "Afegeix Documents",
 	"Add Files": "Afegeix Arxius",
-	"Add Memory": "",
+	"Add Memory": "Afegir Memòria",
 	"Add message": "Afegeix missatge",
-	"Add Model": "",
+	"Add Model": "Afegir Model",
 	"Add Tags": "afegeix etiquetes",
-	"Add User": "",
+	"Add User": "Afegir Usuari",
 	"Adjusting these settings will apply changes universally to all users.": "Ajustar aquests paràmetres aplicarà canvis de manera universal a tots els usuaris.",
 	"admin": "administrador",
 	"Admin Panel": "Panell d'Administració",
 	"Admin Settings": "Configuració d'Administració",
 	"Advanced Parameters": "Paràmetres Avançats",
 	"all": "tots",
-	"All Documents": "",
+	"All Documents": "Tots els Documents",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Tots els Usuaris",
 	"Allow": "Permet",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Ja tens un compte?",
 	"an assistant": "un assistent",
 	"and": "i",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "i crear un nou enllaç compartit.",
 	"API Base URL": "URL Base de l'API",
 	"API Key": "Clau de l'API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Clau de l'API creada.",
+	"API keys": "Claus de l'API",
 	"API RPM": "RPM de l'API",
-	"April": "",
-	"Archive": "",
+	"April": "Abril",
+	"Archive": "Arxiu",
 	"Archived Chats": "Arxiu d'historial de xat",
 	"are allowed - Activate this command by typing": "estan permesos - Activa aquesta comanda escrivint",
 	"Are you sure?": "Estàs segur?",
 	"Attach file": "Adjuntar arxiu",
 	"Attention to detail": "Detall atent",
 	"Audio": "Àudio",
-	"August": "",
+	"August": "Agost",
 	"Auto-playback response": "Resposta de reproducció automàtica",
 	"Auto-send input after 3 sec.": "Enviar entrada automàticament després de 3 segons",
 	"AUTOMATIC1111 Base URL": "URL Base AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "Es requereix l'URL Base AUTOMATIC1111.",
 	"available!": "disponible!",
 	"Back": "Enrere",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Resposta Erroni",
+	"before": "abans",
+	"Being lazy": "Ser l'estupidez",
 	"Builder Mode": "Mode Constructor",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Desactivar la verificació SSL per a l'accés a l'Internet",
 	"Cancel": "Cancel·la",
 	"Categories": "Categories",
 	"Change Password": "Canvia la Contrasenya",
 	"Chat": "Xat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Chat Bubble UI",
+	"Chat direction": "Direcció del Xat",
 	"Chat History": "Històric del Xat",
 	"Chat History is off for this browser.": "L'historial de xat està desactivat per a aquest navegador.",
 	"Chats": "Xats",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Mida del Bloc",
 	"Citation": "Citació",
 	"Click here for help.": "Fes clic aquí per ajuda.",
-	"Click here to": "",
+	"Click here to": "Fes clic aquí per",
 	"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
 	"Click here to select": "Fes clic aquí per seleccionar",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Fes clic aquí per seleccionar un fitxer csv.",
 	"Click here to select documents.": "Fes clic aquí per seleccionar documents.",
 	"click here.": "fes clic aquí.",
 	"Click on the user role button to change a user's role.": "Fes clic al botó de rol d'usuari per canviar el rol d'un usuari.",
 	"Close": "Tanca",
 	"Collection": "Col·lecció",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "URL base de ComfyUI",
+	"ComfyUI Base URL is required.": "URL base de ComfyUI és obligatòria.",
 	"Command": "Comanda",
 	"Confirm Password": "Confirma la Contrasenya",
 	"Connections": "Connexions",
 	"Content": "Contingut",
 	"Context Length": "Longitud del Context",
-	"Continue Response": "",
+	"Continue Response": "Continua la Resposta",
 	"Conversation Mode": "Mode de Conversa",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!",
+	"Copy": "Copiar",
 	"Copy last code block": "Copia l'últim bloc de codi",
 	"Copy last response": "Copia l'última resposta",
-	"Copy Link": "",
+	"Copy Link": "Copiar l'enllaç",
 	"Copying to clipboard was successful!": "La còpia al porta-retalls ha estat exitosa!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
 	"Create a modelfile": "Crea un fitxer de model",
 	"Create Account": "Crea un Compte",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Crea una nova clau",
+	"Create new secret key": "Crea una nova clau secreta",
 	"Created at": "Creat el",
-	"Created At": "",
+	"Created At": "Creat el",
 	"Current Model": "Model Actual",
 	"Current Models": "",
 	"Current Password": "Contrasenya Actual",
 	"Custom": "Personalitzat",
 	"Customize Ollama models for a specific purpose": "Personalitza els models Ollama per a un propòsit específic",
 	"Dark": "Fosc",
-	"Dashboard": "",
+	"Dashboard": "Tauler",
 	"Database": "Base de Dades",
-	"December": "",
+	"December": "Desembre",
 	"Default": "Per defecte",
 	"Default (Automatic1111)": "Per defecte (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Per defecte (SentenceTransformers)",
 	"Default (Web API)": "Per defecte (Web API)",
 	"Default model updated": "Model per defecte actualitzat",
 	"Default Prompt Suggestions": "Suggeriments de Prompt Per Defecte",
 	"Default User Role": "Rol d'Usuari Per Defecte",
 	"delete": "esborra",
-	"Delete": "",
+	"Delete": "Esborra",
 	"Delete a model": "Esborra un model",
 	"Delete chat": "Esborra xat",
-	"Delete Chat": "",
+	"Delete Chat": "Esborra Xat",
 	"Delete Chats": "Esborra Xats",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "Esborra aquest enllaç",
+	"Delete User": "Esborra Usuari",
 	"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "Esborrat {{tagName}}",
 	"Description": "Descripció",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "No s'ha completat els instruccions",
 	"Disabled": "Desactivat",
 	"Discover a modelfile": "Descobreix un fitxer de model",
 	"Discover a prompt": "Descobreix un prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "no realitza connexions externes, i les teves dades romanen segures al teu servidor allotjat localment.",
 	"Don't Allow": "No Permetre",
 	"Don't have an account?": "No tens un compte?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "No t'agrada l'estil?",
+	"Download": "Descarregar",
+	"Download canceled": "Descàrrega cancel·lada",
 	"Download Database": "Descarrega Base de Dades",
 	"Drop any files here to add to the conversation": "Deixa qualsevol arxiu aquí per afegir-lo a la conversa",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s','10m'. Les unitats de temps vàlides són 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Editar",
 	"Edit Doc": "Edita Document",
 	"Edit User": "Edita Usuari",
 	"Email": "Correu electrònic",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Model d'embutiment",
+	"Embedding Model Engine": "Motor de model d'embutiment",
+	"Embedding model set to \"{{embedding_model}}\"": "Model d'embutiment configurat a \"{{embedding_model}}\"",
 	"Enable Chat History": "Activa Historial de Xat",
 	"Enable New Sign Ups": "Permet Noves Inscripcions",
 	"Enabled": "Activat",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assegura't que el fitxer CSV inclou 4 columnes en aquest ordre: Nom, Correu Electrònic, Contrasenya, Rol.",
 	"Enter {{role}} message here": "Introdueix aquí el missatge de {{role}}",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Introdueix un detall sobre tu per que els LLMs puguin recordar-te",
 	"Enter Chunk Overlap": "Introdueix el Solapament de Blocs",
 	"Enter Chunk Size": "Introdueix la Mida del Bloc",
 	"Enter Image Size (e.g. 512x512)": "Introdueix la Mida de la Imatge (p. ex. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Introdueix els codis de llenguatge",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Introdueix l'URL Base de LiteLLM API (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Introdueix la Clau de LiteLLM API (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Introdueix RPM de LiteLLM API (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Introdueix el Nombre de Passos (p. ex. 50)",
-	"Enter Score": "",
+	"Enter Score": "Introdueix el Puntuació",
 	"Enter stop sequence": "Introdueix la seqüència de parada",
 	"Enter Top K": "Introdueix Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Introdueix l'URL (p. ex. http://localhost:11434)",
 	"Enter Your Email": "Introdueix el Teu Correu Electrònic",
 	"Enter Your Full Name": "Introdueix el Teu Nom Complet",
 	"Enter Your Password": "Introdueix la Teva Contrasenya",
-	"Enter Your Role": "",
+	"Enter Your Role": "Introdueix el Teu Ròl",
 	"Experimental": "Experimental",
 	"Export All Chats (All Users)": "Exporta Tots els Xats (Tots els Usuaris)",
 	"Export Chats": "Exporta Xats",
 	"Export Documents Mapping": "Exporta el Mapatge de Documents",
 	"Export Modelfiles": "Exporta Fitxers de Model",
 	"Export Prompts": "Exporta Prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "No s'ha pogut crear la clau d'API.",
 	"Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Febrer",
+	"Feel free to add specific details": "Siusplau, afegeix detalls específics",
 	"File Mode": "Mode Arxiu",
 	"File not found.": "Arxiu no trobat.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "S'ha detectat la suplantació d'identitat d'empremtes digitals: no es poden utilitzar les inicials com a avatar. Per defecte a la imatge de perfil predeterminada.",
 	"Fluidly stream large external response chunks": "Transmita con fluidez grandes fragmentos de respuesta externa",
 	"Focus chat input": "Enfoca l'entrada del xat",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Siguiu les instruccions perfeicte",
 	"Format your variables using square brackets like this:": "Formata les teves variables utilitzant claudàtors així:",
 	"From (Base Model)": "Des de (Model Base)",
 	"Full Screen Mode": "Mode de Pantalla Completa",
 	"General": "General",
 	"General Settings": "Configuració General",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Informació de Generació",
+	"Good Response": "Resposta bona",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "no té converses.",
 	"Hello, {{name}}": "Hola, {{name}}",
-	"Help": "",
+	"Help": "Ajuda",
 	"Hide": "Amaga",
 	"Hide Additional Params": "Amaga Paràmetres Addicionals",
 	"How can I help you today?": "Com et puc ajudar avui?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Cerca Hibrida",
 	"Image Generation (Experimental)": "Generació d'Imatges (Experimental)",
 	"Image Generation Engine": "Motor de Generació d'Imatges",
 	"Image Settings": "Configuració d'Imatges",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inclou la bandera `--api` quan executis stable-diffusion-webui",
 	"Input commands": "Entra ordres",
 	"Interface": "Interfície",
-	"Invalid Tag": "",
+	"Invalid Tag": "Etiqueta Inválida",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Gener",
 	"join our Discord for help.": "uneix-te al nostre Discord per ajuda.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Juliol",
+	"June": "Juny",
 	"JWT Expiration": "Expiració de JWT",
 	"JWT Token": "Token JWT",
 	"Keep Alive": "Mantén Actiu",
 	"Keyboard shortcuts": "Dreceres de Teclat",
 	"Language": "Idioma",
-	"Last Active": "",
+	"Last Active": "Últim Actiu",
 	"Light": "Clar",
 	"Listening...": "Escoltant...",
 	"LLMs can make mistakes. Verify important information.": "Els LLMs poden cometre errors. Verifica la informació important.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Creat per la Comunitat OpenWebUI",
 	"Make sure to enclose them with": "Assegura't d'envoltar-los amb",
 	"Manage LiteLLM Models": "Gestiona Models LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Gestiona Models",
 	"Manage Ollama Models": "Gestiona Models Ollama",
-	"March": "",
+	"March": "Març",
 	"Max Tokens": "Màxim de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Maig",
+	"Memories accessible by LLMs will be shown here.": "Els memòries accessible per a LLMs es mostraran aquí.",
+	"Memory": "Memòria",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Els missatges que envieu després de crear el vostre enllaç no es compartiran. Els usuaris amb l'URL podran veure el xat compartit.",
+	"Minimum Score": "Puntuació mínima",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Eta de Mirostat",
 	"Mirostat Tau": "Tau de Mirostat",
 	"MMMM DD, YYYY": "DD de MMMM, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "DD de MMMM, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "El model '{{modelName}}' s'ha descarregat amb èxit.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "El model '{{modelTag}}' ja està en cua per ser descarregat.",
 	"Model {{modelId}} not found": "Model {{modelId}} no trobat",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "S'ha detectat el camí del sistema de fitxers del model. És necessari un nom curt del model per a actualitzar, no es pot continuar.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Nom del Model",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Contingut del Fitxer de Model",
 	"Modelfiles": "Fitxers de Model",
 	"Models": "Models",
-	"More": "",
+	"More": "Més",
 	"Name": "Nom",
 	"Name Tag": "Etiqueta de Nom",
 	"Name your modelfile": "Nomena el teu fitxer de model",
 	"New Chat": "Xat Nou",
 	"New Password": "Nova Contrasenya",
 	"No": "",
-	"No results found": "",
+	"No results found": "No s'han trobat resultats",
 	"No source available": "Sense font disponible",
-	"Not factually correct": "",
+	"Not factually correct": "No està clarament correcte",
 	"Not sure what to add?": "No estàs segur del que afegir?",
 	"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si establiscs una puntuació mínima, la cerca només retornarà documents amb una puntuació major o igual a la puntuació mínima.",
 	"Notifications": "Notificacions d'Escriptori",
-	"November": "",
-	"October": "",
+	"November": "Novembre",
+	"October": "Octubre",
 	"Off": "Desactivat",
 	"Okay, Let's Go!": "D'acord, Anem!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Fosc",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL Base d'Ollama",
 	"Ollama Version": "Versió d'Ollama",
 	"On": "Activat",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Obre un nou xat",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API d'OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Configuració de l'API d'OpenAI",
 	"OpenAI API Key is required.": "Es requereix la Clau API d'OpenAI.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "URL/Clau d'OpenAI requerides.",
 	"or": "o",
-	"Other": "",
-	"Overview": "",
+	"Other": "Altres",
+	"Overview": "Visió general",
 	"Parameters": "Paràmetres",
 	"Password": "Contrasenya",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Document PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Extreu Imatges de PDF (OCR)",
 	"pending": "pendent",
 	"Permission denied when accessing microphone: {{error}}": "Permís denegat en accedir al micròfon: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalització",
+	"Plain text (.txt)": "Text pla (.txt)",
 	"Playground": "Zona de Jocs",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Attitudin positiva",
+	"Previous 30 days": "30 dies anteriors",
+	"Previous 7 days": "7 dies anteriors",
+	"Profile Image": "Imatge de perfil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (p.ex. diu-me un fàcte divertit sobre l'Imperi Roman)",
 	"Prompt Content": "Contingut del Prompt",
 	"Prompt suggestions": "Suggeriments de Prompt",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Treu \"{{searchValue}}\" de Ollama.com",
 	"Pull a model from Ollama.com": "Treu un model d'Ollama.com",
 	"Pull Progress": "Progrés de Tracció",
 	"Query Params": "Paràmetres de Consulta",
 	"RAG Template": "Plantilla RAG",
 	"Raw Format": "Format Brut",
-	"Read Aloud": "",
+	"Read Aloud": "Llegiu al voltant",
 	"Record voice": "Enregistra veu",
 	"Redirecting you to OpenWebUI Community": "Redirigint-te a la Comunitat OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Refusat quan no hauria d'haver-ho",
+	"Regenerate": "Regenerar",
 	"Release Notes": "Notes de la Versió",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Elimina",
+	"Remove Model": "Elimina Model",
+	"Rename": "Canvia el nom",
 	"Repeat Last N": "Repeteix Últim N",
 	"Repeat Penalty": "Penalització de Repetició",
 	"Request Mode": "Mode de Sol·licitud",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Model de Reranking desactivat",
+	"Reranking model disabled": "Model de Reranking desactivat",
+	"Reranking model set to \"{{reranking_model}}\"": "Model de Reranking establert a \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Reinicia l'Emmagatzematge de Vectors",
 	"Response AutoCopy to Clipboard": "Resposta AutoCopiar al Portapapers",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Albada Rosé Pine",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Guarda",
 	"Save & Create": "Guarda i Crea",
 	"Save & Update": "Guarda i Actualitza",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Escaneig completat!",
 	"Scan for documents from {{path}}": "Escaneja documents des de {{path}}",
 	"Search": "Cerca",
-	"Search a model": "",
+	"Search a model": "Cerca un model",
 	"Search Documents": "Cerca Documents",
 	"Search Prompts": "Cerca Prompts",
 	"See readme.md for instructions": "Consulta el readme.md per a instruccions",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Selecciona una instància d'Ollama",
 	"Select model": "Selecciona un model",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Envia",
 	"Send a Message": "Envia un Missatge",
 	"Send message": "Envia missatge",
-	"September": "",
+	"September": "Setembre",
 	"Server connection verified": "Connexió al servidor verificada",
 	"Set as default": "Estableix com a predeterminat",
 	"Set Default Model": "Estableix Model Predeterminat",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Estableix el model d'emboscada (p.ex. {{model}})",
 	"Set Image Size": "Estableix Mida de la Imatge",
 	"Set Model": "Estableix Model",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Estableix el model de reranking (p.ex. {{model}})",
 	"Set Steps": "Estableix Passos",
 	"Set Title Auto-Generation Model": "Estableix Model d'Auto-Generació de Títol",
 	"Set Voice": "Estableix Veu",
 	"Settings": "Configuracions",
 	"Settings saved successfully!": "Configuracions guardades amb èxit!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Compartir",
+	"Share Chat": "Compartir el Chat",
 	"Share to OpenWebUI Community": "Comparteix amb la Comunitat OpenWebUI",
 	"short-summary": "resum curt",
 	"Show": "Mostra",
 	"Show Additional Params": "Mostra Paràmetres Addicionals",
 	"Show shortcuts": "Mostra dreceres",
-	"Showcased creativity": "",
+	"Showcased creativity": "Mostra la creativitat",
 	"sidebar": "barra lateral",
 	"Sign in": "Inicia sessió",
 	"Sign Out": "Tanca sessió",
 	"Sign up": "Registra't",
-	"Signing in": "",
+	"Signing in": "Iniciant sessió",
 	"Source": "Font",
 	"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
 	"Speech-to-Text Engine": "Motor de Veu a Text",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Atura Seqüència",
 	"STT Settings": "Configuracions STT",
 	"Submit": "Envia",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Subtítol (per exemple, sobre l'Imperi Romà)",
 	"Success": "Èxit",
 	"Successfully updated.": "Actualitzat amb èxit.",
-	"Suggested": "",
+	"Suggested": "Suggerit",
 	"Sync All": "Sincronitza Tot",
 	"System": "Sistema",
 	"System Prompt": "Prompt del Sistema",
 	"Tags": "Etiquetes",
-	"Tell us more:": "",
+	"Tell us more:": "Dóna'ns més informació:",
 	"Temperature": "Temperatura",
 	"Template": "Plantilla",
 	"Text Completion": "Completació de Text",
 	"Text-to-Speech Engine": "Motor de Text a Veu",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Gràcies pel teu comentari!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "El puntuatge ha de ser un valor entre 0.0 (0%) i 1.0 (100%).",
 	"Theme": "Tema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Això assegura que les teves converses valuoses queden segurament guardades a la teva base de dades backend. Gràcies!",
 	"This setting does not sync across browsers or devices.": "Aquesta configuració no es sincronitza entre navegadors ni dispositius.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explacació exhaustiva",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Consell: Actualitza diversos espais de variables consecutivament prement la tecla de tabulació en l'entrada del xat després de cada reemplaçament.",
 	"Title": "Títol",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Títol (p. ex. diu-me un fet divertit)",
 	"Title Auto-Generation": "Auto-Generació de Títol",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "El títol no pot ser una cadena buida.",
 	"Title Generation Prompt": "Prompt de Generació de Títol",
 	"to": "a",
 	"To access the available model names for downloading,": "Per accedir als noms dels models disponibles per descarregar,",
 	"To access the GGUF models available for downloading,": "Per accedir als models GGUF disponibles per descarregar,",
 	"to chat input.": "a l'entrada del xat.",
-	"Today": "",
+	"Today": "Avui",
 	"Toggle settings": "Commuta configuracions",
 	"Toggle sidebar": "Commuta barra lateral",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Escriu URL de Resolució (Descàrrega) de Hugging Face",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Actualitza i Copia enllaç",
 	"Update password": "Actualitza contrasenya",
 	"Upload a GGUF model": "Puja un model GGUF",
 	"Upload files": "Puja arxius",
@@ -482,7 +482,7 @@
 	"URL Mode": "Mode URL",
 	"Use '#' in the prompt input to load and select your documents.": "Utilitza '#' a l'entrada del prompt per carregar i seleccionar els teus documents.",
 	"Use Gravatar": "Utilitza Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Utilitza Inicials",
 	"user": "usuari",
 	"User Permissions": "Permisos d'Usuari",
 	"Users": "Usuaris",
@@ -491,27 +491,27 @@
 	"variable": "variable",
 	"variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.",
 	"Version": "Versió",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si actualitzeu o canvieu el model d'incrustació, haureu de tornar a importar tots els documents.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Configuració del carregador web",
+	"Web Params": "Paràmetres web",
+	"Webhook URL": "URL del webhook",
 	"WebUI Add-ons": "Complements de WebUI",
 	"WebUI Settings": "Configuració de WebUI",
 	"WebUI will make requests to": "WebUI farà peticions a",
 	"What’s New in": "Què hi ha de Nou en",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Quan l'historial està desactivat, els nous xats en aquest navegador no apareixeran en el teu historial en cap dels teus dispositius.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Treball",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència de prompt (p. ex. Qui ets tu?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "Ayer",
+	"You": "Tu",
+	"You have no archived conversations.": "No tens converses arxivades.",
+	"You have shared this chat": "Has compartit aquest xat",
 	"You're a helpful assistant.": "Ets un assistent útil.",
 	"You're now logged in.": "Ara estàs connectat.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Configuració del carregador de Youtube"
 }

+ 30 - 30
src/lib/i18n/locales/de-DE/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)",
 	"(latest)": "(neueste)",
 	"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
 	"A selected model does not support image input": "",
 	"a user": "ein Benutzer",
 	"About": "Über",
 	"Account": "Account",
 	"Accurate information": "Genaue Information",
-	"Add": "",
+	"Add": "Hinzufügen",
 	"Add a model": "Füge ein Modell hinzu",
 	"Add a model tag name": "Benenne deinen Modell-Tag",
 	"Add a short description about what this modelfile does": "Füge eine kurze Beschreibung hinzu, was dieses Modelfile kann",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Eigenen Prompt hinzufügen",
 	"Add Docs": "Dokumente hinzufügen",
 	"Add Files": "Dateien hinzufügen",
-	"Add Memory": "",
+	"Add Memory": "Speicher hinzufügen",
 	"Add message": "Nachricht eingeben",
 	"Add Model": "Modell hinzufügen",
 	"Add Tags": "Tags hinzufügen",
@@ -70,8 +70,8 @@
 	"Categories": "Kategorien",
 	"Change Password": "Passwort ändern",
 	"Chat": "Chat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Chat Bubble UI",
+	"Chat direction": "Chat Richtung",
 	"Chat History": "Chat Verlauf",
 	"Chat History is off for this browser.": "Chat Verlauf ist für diesen Browser ausgeschaltet.",
 	"Chats": "Chats",
@@ -93,8 +93,8 @@
 	"Click on the user role button to change a user's role.": "Klicke auf die Benutzerrollenschaltfläche, um die Rolle eines Benutzers zu ändern.",
 	"Close": "Schließe",
 	"Collection": "Kollektion",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
 	"ComfyUI Base URL is required.": "ComfyUI Base URL wird benötigt.",
 	"Command": "Befehl",
 	"Confirm Password": "Passwort bestätigen",
@@ -166,19 +166,19 @@
 	"Edit Doc": "Dokument bearbeiten",
 	"Edit User": "Benutzer bearbeiten",
 	"Email": "E-Mail",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Embedding-Modell",
+	"Embedding Model Engine": "Embedding-Modell-Engine",
+	"Embedding model set to \"{{embedding_model}}\"": "Embedding-Modell auf \"{{embedding_model}}\" gesetzt",
 	"Enable Chat History": "Chat-Verlauf aktivieren",
 	"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
 	"Enabled": "Aktiviert",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Stellen Sie sicher, dass Ihre CSV-Datei 4 Spalten in dieser Reihenfolge enthält: Name, E-Mail, Passwort, Rolle.",
 	"Enter {{role}} message here": "Gib die {{role}} Nachricht hier ein",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Geben Sie einen Detail über sich selbst ein, um für Ihre LLMs zu erinnern",
 	"Enter Chunk Overlap": "Gib den Chunk Overlap ein",
 	"Enter Chunk Size": "Gib die Chunk Size ein",
 	"Enter Image Size (e.g. 512x512)": "Gib die Bildgröße ein (z.B. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Geben Sie die Sprachcodes ein",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Gib die LiteLLM API BASE URL ein (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Gib den LiteLLM API Key ein (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Gib die LiteLLM API RPM ein (litellm_params.rpm)",
@@ -219,7 +219,7 @@
 	"General Settings": "Allgemeine Einstellungen",
 	"Generation Info": "Generierungsinformationen",
 	"Good Response": "Gute Antwort",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "hat keine Unterhaltungen.",
 	"Hello, {{name}}": "Hallo, {{name}}",
 	"Help": "Hilfe",
@@ -254,7 +254,7 @@
 	"Light": "Hell",
 	"Listening...": "Hören...",
 	"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Von der OpenWebUI-Community",
 	"Make sure to enclose them with": "Formatiere deine Variablen mit:",
 	"Manage LiteLLM Models": "LiteLLM-Modelle verwalten",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Maximale Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
 	"May": "Mai",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Memories, die von LLMs zugänglich sind, werden hier angezeigt.",
+	"Memory": "Memory",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Nachdem Sie Ihren Link erstellt haben, werden Ihre Nachrichten nicht geteilt. Benutzer mit dem Link können den geteilten Chat sehen.",
 	"Minimum Score": "Mindestscore",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -302,11 +302,11 @@
 	"New Password": "Neues Passwort",
 	"No": "",
 	"No results found": "Keine Ergebnisse gefunden",
-	"No source available": "",
+	"No source available": "Keine Quelle verfügbar.",
 	"Not factually correct": "Nicht sachlich korrekt.",
 	"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
 	"Not sure what to write? Switch to": "Nicht sicher, was du schreiben sollst? Wechsel zu",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Hinweis: Wenn du einen Mindestscore festlegst, wird die Suche nur Dokumente zurückgeben, deren Score größer oder gleich dem Mindestscore ist.",
 	"Notifications": "Desktop-Benachrichtigungen",
 	"November": "November",
 	"October": "Oktober",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "Text von Bildern aus PDFs extrahieren (OCR)",
 	"pending": "ausstehend",
 	"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
-	"Personalization": "",
+	"Personalization": "Personalisierung",
 	"Plain text (.txt)": "Nur Text (.txt)",
 	"Playground": "Testumgebung",
 	"Positive attitude": "Positive Einstellung",
@@ -372,13 +372,13 @@
 	"Request Mode": "Request-Modus",
 	"Reranking Model": "Reranking Modell",
 	"Reranking model disabled": "Rranking Modell deaktiviert",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking Modell auf \"{{reranking_model}}\" gesetzt",
 	"Reset Vector Storage": "Vektorspeicher zurücksetzen",
 	"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
 	"Role": "Rolle",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Speichern",
 	"Save & Create": "Speichern und erstellen",
 	"Save & Update": "Speichern und aktualisieren",
@@ -398,17 +398,17 @@
 	"Select an Ollama instance": "Eine Ollama Instanz auswählen",
 	"Select model": "Modell auswählen",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Senden",
 	"Send a Message": "Eine Nachricht senden",
 	"Send message": "Nachricht senden",
 	"September": "September",
 	"Server connection verified": "Serververbindung überprüft",
 	"Set as default": "Als Standard festlegen",
 	"Set Default Model": "Standardmodell festlegen",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Eingabemodell festlegen (z.B. {{model}})",
 	"Set Image Size": "Bildgröße festlegen",
 	"Set Model": "Modell festlegen",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Rerankingmodell festlegen (z.B. {{model}})",
 	"Set Steps": "Schritte festlegen",
 	"Set Title Auto-Generation Model": "Modell für automatische Titelgenerierung festlegen",
 	"Set Voice": "Stimme festlegen",
@@ -493,7 +493,7 @@
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
 	"Web": "Web",
-	"Web Loader Settings": "",
+	"Web Loader Settings": "Web Loader Einstellungen",
 	"Web Params": "Web Parameter",
 	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI-Add-Ons",
@@ -502,16 +502,16 @@
 	"What’s New in": "Was gibt's Neues in",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Wenn die Historie ausgeschaltet ist, werden neue Chats nicht in deiner Historie auf deine Geräte angezeigt.",
 	"Whisper (Local)": "Whisper (Lokal)",
-	"Workspace": "",
+	"Workspace": "Arbeitsbereich",
 	"Write a prompt suggestion (e.g. Who are you?)": "Gebe einen Prompt-Vorschlag ein (z.B. Wer bist du?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
 	"Yes": "",
 	"Yesterday": "Gestern",
-	"You": "",
+	"You": "Du",
 	"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
 	"You have shared this chat": "Du hast diesen Chat",
 	"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
 	"You're now logged in.": "Du bist nun eingeloggt.",
 	"Youtube": "YouTube",
-	"Youtube Loader Settings": ""
+	"Youtube Loader Settings": "YouTube-Ladeeinstellungen"
 }

+ 2 - 2
src/lib/i18n/locales/dg-DG/translation.json

@@ -340,8 +340,8 @@
 	"PDF Extract Images (OCR)": "PDF Extract Wowmages (OCR)",
 	"pending": "pending",
 	"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalization",
+	"Plain text (.txt)": "Plain text (.txt)",
 	"Playground": "Playground",
 	"Positive attitude": "",
 	"Previous 30 days": "",

+ 141 - 141
src/lib/i18n/locales/es-ES/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(p.ej. `sh webui.sh --api`)",
 	"(latest)": "(latest)",
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Servidor Requerido",
 	"A selected model does not support image input": "",
 	"a user": "un usuario",
 	"About": "Sobre nosotros",
 	"Account": "Cuenta",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Información precisa",
+	"Add": "Agregar",
 	"Add a model": "Agregar un modelo",
 	"Add a model tag name": "Agregar un nombre de etiqueta de modelo",
 	"Add a short description about what this modelfile does": "Agregue una descripción corta de lo que este modelfile hace",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Agregar un prompt personalizado",
 	"Add Docs": "Agregar Documentos",
 	"Add Files": "Agregar Archivos",
-	"Add Memory": "",
+	"Add Memory": "Agregar Memoria",
 	"Add message": "Agregar Prompt",
-	"Add Model": "",
+	"Add Model": "Agregar Modelo",
 	"Add Tags": "agregar etiquetas",
-	"Add User": "",
+	"Add User": "Agregar Usuario",
 	"Adjusting these settings will apply changes universally to all users.": "Ajustar estas opciones aplicará los cambios universalmente a todos los usuarios.",
 	"admin": "admin",
 	"Admin Panel": "Panel de Administración",
 	"Admin Settings": "Configuración de Administrador",
 	"Advanced Parameters": "Parámetros Avanzados",
 	"all": "todo",
-	"All Documents": "",
+	"All Documents": "Todos los Documentos",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Todos los Usuarios",
 	"Allow": "Permitir",
@@ -40,38 +40,38 @@
 	"Already have an account?": "¿Ya tienes una cuenta?",
 	"an assistant": "un asistente",
 	"and": "y",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "y crear un nuevo enlace compartido.",
 	"API Base URL": "Dirección URL de la API",
 	"API Key": "Clave de la API ",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Clave de la API creada.",
+	"API keys": "Claves de la API",
 	"API RPM": "RPM de la API",
-	"April": "",
-	"Archive": "",
+	"April": "Abril",
+	"Archive": "Archivar",
 	"Archived Chats": "Chats archivados",
 	"are allowed - Activate this command by typing": "están permitidos - Active este comando escribiendo",
 	"Are you sure?": "¿Está seguro?",
 	"Attach file": "Adjuntar archivo",
 	"Attention to detail": "Detalle preciso",
 	"Audio": "Audio",
-	"August": "",
+	"August": "Agosto",
 	"Auto-playback response": "Respuesta de reproducción automática",
 	"Auto-send input after 3 sec.": "Envía la información entrada automáticamente luego de 3 segundos.",
 	"AUTOMATIC1111 Base URL": "Dirección URL de AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "La dirección URL de AUTOMATIC1111 es requerida.",
 	"available!": "¡disponible!",
 	"Back": "Volver",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Respuesta incorrecta",
+	"before": "antes",
+	"Being lazy": "Ser perezoso",
 	"Builder Mode": "Modo de Constructor",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Desactivar la verificación SSL para sitios web",
 	"Cancel": "Cancelar",
 	"Categories": "Categorías",
 	"Change Password": "Cambia la Contraseña",
 	"Chat": "Chat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Burbuja de chat UI",
+	"Chat direction": "Dirección del Chat",
 	"Chat History": "Historial del Chat",
 	"Chat History is off for this browser.": "El Historial del Chat está apagado para este navegador.",
 	"Chats": "Chats",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Tamaño de fragmentos",
 	"Citation": "Cita",
 	"Click here for help.": "Presiona aquí para obtener ayuda.",
-	"Click here to": "",
+	"Click here to": "Presiona aquí para",
 	"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
 	"Click here to select": "Presiona aquí para seleccionar",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Presiona aquí para seleccionar un archivo csv.",
 	"Click here to select documents.": "Presiona aquí para seleccionar documentos",
 	"click here.": "Presiona aquí.",
 	"Click on the user role button to change a user's role.": "Presiona en el botón de roles del usuario para cambiar su rol.",
 	"Close": "Cerrar",
 	"Collection": "Colección",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL es requerido.",
 	"Command": "Comando",
 	"Confirm Password": "Confirmar Contraseña",
 	"Connections": "Conexiones",
 	"Content": "Contenido",
 	"Context Length": "Longitud del contexto",
-	"Continue Response": "",
+	"Continue Response": "Continuar Respuesta",
 	"Conversation Mode": "Modo de Conversación",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "¡URL de chat compartido copiado al portapapeles!",
+	"Copy": "Copiar",
 	"Copy last code block": "Copia el último bloque de código",
 	"Copy last response": "Copia la última respuesta",
-	"Copy Link": "",
+	"Copy Link": "Copiar enlace",
 	"Copying to clipboard was successful!": "¡La copia al portapapeles se ha realizado correctamente!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Cree una frase concisa de 3 a 5 palabras como encabezado para la siguiente consulta, respetando estrictamente el límite de 3 a 5 palabras y evitando el uso de la palabra 'título':",
 	"Create a modelfile": "Crea un modelfile",
 	"Create Account": "Crear una cuenta",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Crear una nueva clave",
+	"Create new secret key": "Crear una nueva clave secreta",
 	"Created at": "Creado en",
-	"Created At": "",
+	"Created At": "Creado en",
 	"Current Model": "Modelo Actual",
 	"Current Models": "",
 	"Current Password": "Contraseña Actual",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personaliza los modelos de Ollama para un propósito específico",
 	"Dark": "Oscuro",
-	"Dashboard": "",
+	"Dashboard": "Tablero",
 	"Database": "Base de datos",
-	"December": "",
+	"December": "Diciembre",
 	"Default": "Por defecto",
 	"Default (Automatic1111)": "Por defecto (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Por defecto (SentenceTransformers)",
 	"Default (Web API)": "Por defecto (Web API)",
 	"Default model updated": "El modelo por defecto ha sido actualizado",
 	"Default Prompt Suggestions": "Sugerencias de mensajes por defecto",
 	"Default User Role": "Rol por defecto para usuarios",
 	"delete": "borrar",
-	"Delete": "",
+	"Delete": "Borrar",
 	"Delete a model": "Borra un modelo",
 	"Delete chat": "Borrar chat",
-	"Delete Chat": "",
+	"Delete Chat": "Borrar Chat",
 	"Delete Chats": "Borrar Chats",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "Borrar este enlace",
+	"Delete User": "Borrar Usuario",
 	"Deleted {{deleteModelTag}}": "Se borró {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "Se borró {{tagName}}",
 	"Description": "Descripción",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "No siguió las instrucciones",
 	"Disabled": "Desactivado",
 	"Discover a modelfile": "Descubre un modelfile",
 	"Discover a prompt": "Descubre un Prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "no realiza ninguna conexión externa y sus datos permanecen seguros en su servidor alojado localmente.",
 	"Don't Allow": "No Permitir",
 	"Don't have an account?": "¿No tienes una cuenta?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "No te gusta el estilo?",
+	"Download": "Descargar",
+	"Download canceled": "Descarga cancelada",
 	"Download Database": "Descarga la Base de Datos",
 	"Drop any files here to add to the conversation": "Suelta cualquier archivo aquí para agregarlo a la conversación",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p.ej. '30s','10m'. Unidades válidas de tiempo son 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Editar",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuario",
 	"Email": "Email",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Modelo de Embedding",
+	"Embedding Model Engine": "Motor de Modelo de Embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding configurado a \"{{embedding_model}}\"",
 	"Enable Chat History": "Activa el Historial de Chat",
 	"Enable New Sign Ups": "Habilitar Nuevos Registros",
 	"Enabled": "Activado",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asegúrese de que su archivo CSV incluya 4 columnas en este orden: Nombre, Correo Electrónico, Contraseña, Rol.",
 	"Enter {{role}} message here": "Ingrese el mensaje {{role}} aquí",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Ingrese un detalle sobre usted para que sus LLMs recuerden",
 	"Enter Chunk Overlap": "Ingresar superposición de fragmentos",
 	"Enter Chunk Size": "Ingrese el tamaño del fragmento",
 	"Enter Image Size (e.g. 512x512)": "Ingrese el tamaño de la imagen (p.ej. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Ingrese códigos de idioma",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Ingrese la URL base de la API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Ingrese la clave API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Ingrese el RPM de la API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Ingrese la etiqueta del modelo (p.ej. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Ingrese el número de pasos (p.ej., 50)",
-	"Enter Score": "",
+	"Enter Score": "Ingrese la puntuación",
 	"Enter stop sequence": "Ingrese la secuencia de parada",
 	"Enter Top K": "Ingrese el Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ingrese la URL (p.ej., http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Ingrese la URL (p.ej., http://localhost:11434)",
 	"Enter Your Email": "Ingrese su correo electrónico",
 	"Enter Your Full Name": "Ingrese su nombre completo",
 	"Enter Your Password": "Ingrese su contraseña",
-	"Enter Your Role": "",
+	"Enter Your Role": "Ingrese su rol",
 	"Experimental": "Experimental",
 	"Export All Chats (All Users)": "Exportar todos los chats (Todos los usuarios)",
 	"Export Chats": "Exportar Chats",
 	"Export Documents Mapping": "Exportar el mapeo de documentos",
 	"Export Modelfiles": "Exportar Modelfiles",
 	"Export Prompts": "Exportar Prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "No se pudo crear la clave API.",
 	"Failed to read clipboard contents": "No se pudo leer el contenido del portapapeles",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Febrero",
+	"Feel free to add specific details": "Libre de agregar detalles específicos",
 	"File Mode": "Modo de archivo",
 	"File not found.": "Archivo no encontrado.",
 	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Se detectó suplantación de huellas: No se pueden usar las iniciales como avatar. Por defecto se utiliza la imagen de perfil predeterminada.",
 	"Fluidly stream large external response chunks": "Transmita con fluidez grandes fragmentos de respuesta externa",
 	"Focus chat input": "Enfoca la entrada del chat",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Siguió las instrucciones perfectamente",
 	"Format your variables using square brackets like this:": "Formatea tus variables usando corchetes de la siguiente manera:",
 	"From (Base Model)": "Desde (Modelo Base)",
 	"Full Screen Mode": "Modo de Pantalla Completa",
 	"General": "General",
 	"General Settings": "Opciones Generales",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Información de Generación",
+	"Good Response": "Buena Respuesta",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "no tiene conversaciones.",
 	"Hello, {{name}}": "Hola, {{name}}",
-	"Help": "",
+	"Help": "Ayuda",
 	"Hide": "Esconder",
 	"Hide Additional Params": "Esconde los Parámetros Adicionales",
 	"How can I help you today?": "¿Cómo puedo ayudarte hoy?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Búsqueda Híbrida",
 	"Image Generation (Experimental)": "Generación de imágenes (experimental)",
 	"Image Generation Engine": "Motor de generación de imágenes",
 	"Image Settings": "Ajustes de la Imágen",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Incluir el indicador `--api` al ejecutar stable-diffusion-webui",
 	"Input commands": "Ingresar comandos",
 	"Interface": "Interfaz",
-	"Invalid Tag": "",
+	"Invalid Tag": "Etiqueta Inválida",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Enero",
 	"join our Discord for help.": "Únase a nuestro Discord para obtener ayuda.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Julio",
+	"June": "Junio",
 	"JWT Expiration": "Expiración del JWT",
 	"JWT Token": "Token JWT",
 	"Keep Alive": "Mantener Vivo",
 	"Keyboard shortcuts": "Atajos de teclado",
 	"Language": "Lenguaje",
-	"Last Active": "",
+	"Last Active": "Última Actividad",
 	"Light": "Claro",
 	"Listening...": "Escuchando...",
 	"LLMs can make mistakes. Verify important information.": "Los LLM pueden cometer errores. Verifica la información importante.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Hecho por la comunidad de OpenWebUI",
 	"Make sure to enclose them with": "Asegúrese de adjuntarlos con",
 	"Manage LiteLLM Models": "Administrar Modelos LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Administrar Modelos",
 	"Manage Ollama Models": "Administrar Modelos Ollama",
-	"March": "",
+	"March": "Marzo",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Se pueden descargar un máximo de 3 modelos simultáneamente. Por favor, inténtelo de nuevo más tarde.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Mayo",
+	"Memories accessible by LLMs will be shown here.": "Las memorias accesibles por los LLMs se mostrarán aquí.",
+	"Memory": "Memoria",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Los mensajes que envíe después de crear su enlace no se compartirán. Los usuarios con el enlace podrán ver el chat compartido.",
+	"Minimum Score": "Puntuación mínima",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "El modelo '{{modelName}}' se ha descargado correctamente.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "El modelo '{{modelTag}}' ya está en cola para descargar.",
 	"Model {{modelId}} not found": "El modelo {{modelId}} no fue encontrado",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Contenido del Modelfile",
 	"Modelfiles": "Modelfiles",
 	"Models": "Modelos",
-	"More": "",
+	"More": "Más",
 	"Name": "Nombre",
 	"Name Tag": "Nombre de etiqueta",
 	"Name your modelfile": "Nombra tu modelfile",
 	"New Chat": "Nuevo Chat",
 	"New Password": "Nueva Contraseña",
 	"No": "",
-	"No results found": "",
+	"No results found": "No se han encontrado resultados",
 	"No source available": "No hay fuente disponible",
-	"Not factually correct": "",
+	"Not factually correct": "No es correcto en todos los aspectos",
 	"Not sure what to add?": "¿No sabes qué añadir?",
 	"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
-	"Notifications": "",
-	"November": "",
-	"October": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si estableces una puntuación mínima, la búsqueda sólo devolverá documentos con una puntuación mayor o igual a la puntuación mínima.",
+	"Notifications": "Notificaciones",
+	"November": "Noviembre",
+	"October": "Octubre",
 	"Off": "Desactivado",
 	"Okay, Let's Go!": "Bien, ¡Vamos!",
 	"OLED Dark": "OLED oscuro",
-	"Ollama": "",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL base de Ollama",
 	"Ollama Version": "Versión de Ollama",
 	"On": "Activado",
@@ -326,59 +326,59 @@
 	"Open AI": "Abrir AI",
 	"Open AI (Dall-E)": "Abrir AI (Dall-E)",
 	"Open new chat": "Abrir nuevo chat",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API Config",
 	"OpenAI API Key is required.": "La Clave de la API de OpenAI es requerida.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "URL/Clave de OpenAI es requerida.",
 	"or": "o",
-	"Other": "",
-	"Overview": "",
+	"Other": "Otro",
+	"Overview": "Resumen",
 	"Parameters": "Parámetros",
 	"Password": "Contraseña",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF document (.pdf)",
 	"PDF Extract Images (OCR)": "Extraer imágenes de PDF (OCR)",
 	"pending": "pendiente",
 	"Permission denied when accessing microphone: {{error}}": "Permiso denegado al acceder al micrófono: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalización",
+	"Plain text (.txt)": "Texto plano (.txt)",
 	"Playground": "Patio de juegos",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Actitud positiva",
+	"Previous 30 days": "Últimos 30 días",
+	"Previous 7 days": "Últimos 7 días",
+	"Profile Image": "Imagen de perfil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (por ejemplo, cuéntame una cosa divertida sobre el Imperio Romano)",
 	"Prompt Content": "Contenido del Prompt",
 	"Prompt suggestions": "Sugerencias de Prompts",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Extraer \"{{searchValue}}\" de Ollama.com",
 	"Pull a model from Ollama.com": "Obtener un modelo de Ollama.com",
 	"Pull Progress": "Progreso de extracción",
 	"Query Params": "Parámetros de consulta",
 	"RAG Template": "Plantilla de RAG",
 	"Raw Format": "Formato sin procesar",
-	"Read Aloud": "",
+	"Read Aloud": "Leer al oído",
 	"Record voice": "Grabar voz",
 	"Redirecting you to OpenWebUI Community": "Redireccionándote a la comunidad OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Rechazado cuando no debería",
+	"Regenerate": "Regenerar",
 	"Release Notes": "Notas de la versión",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Eliminar",
+	"Remove Model": "Eliminar modelo",
+	"Rename": "Renombrar",
 	"Repeat Last N": "Repetir las últimas N",
 	"Repeat Penalty": "Penalidad de repetición",
 	"Request Mode": "Modo de petición",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Modelo de reranking",
+	"Reranking model disabled": "Modelo de reranking deshabilitado",
+	"Reranking model set to \"{{reranking_model}}\"": "Modelo de reranking establecido en \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Restablecer almacenamiento vectorial",
 	"Response AutoCopy to Clipboard": "Copiar respuesta automáticamente al portapapeles",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Guardar",
 	"Save & Create": "Guardar y Crear",
 	"Save & Update": "Guardar y Actualizar",
@@ -387,7 +387,7 @@
 	"Scan complete!": "¡Escaneo completado!",
 	"Scan for documents from {{path}}": "Escanear en busca de documentos desde {{path}}",
 	"Search": "Buscar",
-	"Search a model": "",
+	"Search a model": "Buscar un modelo",
 	"Search Documents": "Buscar Documentos",
 	"Search Prompts": "Buscar Prompts",
 	"See readme.md for instructions": "Vea el readme.md para instrucciones",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Seleccione una instancia de Ollama",
 	"Select model": "Selecciona un modelo",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Enviar",
 	"Send a Message": "Enviar un Mensaje",
 	"Send message": "Enviar Mensaje",
-	"September": "",
+	"September": "Septiembre",
 	"Server connection verified": "Conexión del servidor verificada",
 	"Set as default": "Establecer por defecto",
 	"Set Default Model": "Establecer modelo predeterminado",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Establecer modelo de embedding (ej. {{model}})",
 	"Set Image Size": "Establecer tamaño de imagen",
 	"Set Model": "Establecer el modelo",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Establecer modelo de reranking (ej. {{model}})",
 	"Set Steps": "Establecer Pasos",
 	"Set Title Auto-Generation Model": "Establecer modelo de generación automática de títulos",
 	"Set Voice": "Establecer la voz",
 	"Settings": "Configuración",
 	"Settings saved successfully!": "¡Configuración guardada exitosamente!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Compartir",
+	"Share Chat": "Compartir Chat",
 	"Share to OpenWebUI Community": "Compartir con la comunidad OpenWebUI",
 	"short-summary": "resumen-corto",
 	"Show": "Mostrar",
 	"Show Additional Params": "Mostrar parámetros adicionales",
 	"Show shortcuts": "Mostrar atajos",
-	"Showcased creativity": "",
+	"Showcased creativity": "Mostrar creatividad",
 	"sidebar": "barra lateral",
 	"Sign in": "Iniciar sesión",
 	"Sign Out": "Cerrar sesión",
 	"Sign up": "Crear una cuenta",
-	"Signing in": "",
+	"Signing in": "Iniciando sesión",
 	"Source": "Fuente",
 	"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
 	"Speech-to-Text Engine": "Motor de voz a texto",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Detener secuencia",
 	"STT Settings": "Configuraciones de STT",
 	"Submit": "Enviar",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Subtítulo (por ejemplo, sobre el Imperio Romano)",
 	"Success": "Éxito",
 	"Successfully updated.": "Actualizado exitosamente.",
-	"Suggested": "",
+	"Suggested": "Sugerido",
 	"Sync All": "Sincronizar todo",
 	"System": "Sistema",
 	"System Prompt": "Prompt del sistema",
 	"Tags": "Etiquetas",
-	"Tell us more:": "",
+	"Tell us more:": "Dinos más:",
 	"Temperature": "Temperatura",
 	"Template": "Plantilla",
 	"Text Completion": "Finalización de texto",
 	"Text-to-Speech Engine": "Motor de texto a voz",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "¡Gracias por tu retroalimentación!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "El puntaje debe ser un valor entre 0.0 (0%) y 1.0 (100%).",
 	"Theme": "Tema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Esto garantiza que sus valiosas conversaciones se guarden de forma segura en su base de datos en el backend. ¡Gracias!",
 	"This setting does not sync across browsers or devices.": "Esta configuración no se sincroniza entre navegadores o dispositivos.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explicación exhaustiva",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Consejo: Actualice múltiples variables consecutivamente presionando la tecla tab en la entrada del chat después de cada reemplazo.",
 	"Title": "Título",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Título (por ejemplo, cuéntame una curiosidad)",
 	"Title Auto-Generation": "Generación automática de títulos",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "El título no puede ser una cadena vacía.",
 	"Title Generation Prompt": "Prompt de generación de título",
 	"to": "para",
 	"To access the available model names for downloading,": "Para acceder a los nombres de modelos disponibles para descargar,",
 	"To access the GGUF models available for downloading,": "Para acceder a los modelos GGUF disponibles para descargar,",
 	"to chat input.": "a la entrada del chat.",
-	"Today": "",
+	"Today": "Hoy",
 	"Toggle settings": "Alternar configuración",
 	"Toggle sidebar": "Alternar barra lateral",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Escriba la URL (Descarga) de Hugging Face Resolve",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Actualizar y copiar enlace",
 	"Update password": "Actualizar contraseña",
 	"Upload a GGUF model": "Subir un modelo GGUF",
 	"Upload files": "Subir archivos",
@@ -491,27 +491,27 @@
 	"variable": "variable",
 	"variable to have them replaced with clipboard content.": "variable para reemplazarlos con el contenido del portapapeles.",
 	"Version": "Versión",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Advertencia: Si actualiza o cambia su modelo de inserción, necesitará volver a importar todos los documentos.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Web Loader Settings",
+	"Web Params": "Web Params",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Settings": "Configuración del WebUI",
 	"WebUI will make requests to": "WebUI realizará solicitudes a",
 	"What’s New in": "Novedades en",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Cuando el historial está desactivado, los nuevos chats en este navegador no aparecerán en el historial de ninguno de sus dispositivos..",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Espacio de trabajo",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escribe una sugerencia para un prompt (por ejemplo, ¿quién eres?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
-	"You're a helpful assistant.": "Eres un asistente útil.",
-	"You're now logged in.": "Has iniciado sesión.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Yesterday": "Ayer",
+	"You": "Usted",
+	"You have no archived conversations.": "No tiene conversaciones archivadas.",
+	"You have shared this chat": "Usted ha compartido esta conversación",
+	"You're a helpful assistant.": "Usted es un asistente útil.",
+	"You're now logged in.": "Usted ahora está conectado.",
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Configuración del cargador de Youtube"
 }

+ 141 - 141
src/lib/i18n/locales/fa-IR/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)",
 	"(latest)": "(آخرین)",
 	"{{modelName}} is thinking...": "{{modelName}} در حال فکر کردن است...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}} چت ها",
 	"{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.",
 	"A selected model does not support image input": "",
 	"a user": "یک کاربر",
 	"About": "درباره",
 	"Account": "حساب کاربری",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "اطلاعات دقیق",
+	"Add": "اضافه کردن",
 	"Add a model": "اضافه کردن یک مدل",
 	"Add a model tag name": "اضافه کردن یک نام تگ برای مدل",
 	"Add a short description about what this modelfile does": "توضیح کوتاهی در مورد کاری که این فایل\u200cمدل انجام می دهد اضافه کنید",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "اضافه کردن یک درخواست سفارشی",
 	"Add Docs": "اضافه کردن اسناد",
 	"Add Files": "اضافه کردن فایل\u200cها",
-	"Add Memory": "",
+	"Add Memory": "اضافه کردن یادگیری",
 	"Add message": "اضافه کردن پیغام",
-	"Add Model": "",
+	"Add Model": "اضافه کردن مدل",
 	"Add Tags": "اضافه کردن تگ\u200cها",
-	"Add User": "",
+	"Add User": "اضافه کردن کاربر",
 	"Adjusting these settings will apply changes universally to all users.": "با تنظیم این تنظیمات، تغییرات به طور کلی برای همه کاربران اعمال می شود.",
 	"admin": "مدیر",
 	"Admin Panel": "پنل مدیریت",
 	"Admin Settings": "تنظیمات مدیریت",
 	"Advanced Parameters": "پارامترهای پیشرفته",
 	"all": "همه",
-	"All Documents": "",
+	"All Documents": "تمام سند ها",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "همه کاربران",
 	"Allow": "اجازه دادن",
@@ -40,38 +40,38 @@
 	"Already have an account?": "از قبل حساب کاربری دارید؟",
 	"an assistant": "یک دستیار",
 	"and": "و",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "و یک لینک به اشتراک گذاری جدید ایجاد کنید.",
 	"API Base URL": "API Base URL",
 	"API Key": "API Key",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API Key created.",
+	"API keys": "API keys",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "ژوئن",
+	"Archive": "آرشیو",
 	"Archived Chats": "آرشیو تاریخچه چت",
 	"are allowed - Activate this command by typing": "مجاز هستند - این دستور را با تایپ کردن این فعال کنید:",
 	"Are you sure?": "آیا مطمئن هستید؟",
 	"Attach file": "پیوست فایل",
 	"Attention to detail": "دقیق",
 	"Audio": "صدا",
-	"August": "",
+	"August": "آگوست",
 	"Auto-playback response": "پخش خودکار پاسخ ",
 	"Auto-send input after 3 sec.": "به طور خودکار ورودی را پس از 3 ثانیه ارسال کن.",
 	"AUTOMATIC1111 Base URL": "پایه URL AUTOMATIC1111 ",
 	"AUTOMATIC1111 Base URL is required.": "به URL پایه AUTOMATIC1111 مورد نیاز است.",
 	"available!": "در دسترس!",
 	"Back": "بازگشت",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "پاسخ خوب نیست",
+	"before": "قبل",
+	"Being lazy": "حالت سازنده",
 	"Builder Mode": "حالت سازنده",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "عبور از تأیید SSL برای وب سایت ها",
 	"Cancel": "لغو",
 	"Categories": "دسته\u200cبندی\u200cها",
 	"Change Password": "تغییر رمز عبور",
 	"Chat": "گپ",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI\u200cی\u200c گفتگو\u200c",
+	"Chat direction": "جهت\u200cگفتگو",
 	"Chat History": "تاریخچه\u200cی گفتگو",
 	"Chat History is off for this browser.": "سابقه گپ برای این مرورگر خاموش است.",
 	"Chats": "گپ\u200cها",
@@ -84,66 +84,66 @@
 	"Chunk Size": "اندازه تکه",
 	"Citation": "استناد",
 	"Click here for help.": "برای کمک اینجا را کلیک کنید.",
-	"Click here to": "",
+	"Click here to": "برای کمک اینجا را کلیک کنید.",
 	"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
 	"Click here to select": "برای انتخاب اینجا کلیک کنید",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "برای انتخاب یک فایل csv اینجا را کلیک کنید.",
 	"Click here to select documents.": "برای انتخاب اسناد اینجا را کلیک کنید.",
 	"click here.": "اینجا کلیک کنید.",
 	"Click on the user role button to change a user's role.": "برای تغییر نقش کاربر، روی دکمه نقش کاربر کلیک کنید.",
 	"Close": "بسته",
 	"Collection": "مجموعه",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "کومیوآی",
+	"ComfyUI Base URL": "URL پایه کومیوآی",
+	"ComfyUI Base URL is required.": "URL پایه کومیوآی الزامی است.",
 	"Command": "دستور",
 	"Confirm Password": "تایید رمز عبور",
 	"Connections": "ارتباطات",
 	"Content": "محتوا",
 	"Context Length": "طول زمینه",
-	"Continue Response": "",
+	"Continue Response": "ادامه پاسخ",
 	"Conversation Mode": "حالت مکالمه",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!",
+	"Copy": "کپی",
 	"Copy last code block": "کپی آخرین بلوک کد",
 	"Copy last response": "کپی آخرین پاسخ",
-	"Copy Link": "",
+	"Copy Link": "کپی لینک",
 	"Copying to clipboard was successful!": "کپی کردن در کلیپ بورد با موفقیت انجام شد!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "یک عبارت مختصر و ۳ تا ۵ کلمه ای را به عنوان سرفصل برای پرس و جو زیر ایجاد کنید، به شدت محدودیت ۳-۵ کلمه را رعایت کنید و از استفاده از کلمه 'عنوان' خودداری کنید:",
 	"Create a modelfile": "ایجاد یک فایل مدل",
 	"Create Account": "ساخت حساب کاربری",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "ساخت کلید جدید",
+	"Create new secret key": "ساخت کلید gehez جدید",
 	"Created at": "ایجاد شده در",
-	"Created At": "",
+	"Created At": "ایجاد شده در",
 	"Current Model": "مدل فعلی",
 	"Current Models": "",
 	"Current Password": "رمز عبور فعلی",
 	"Custom": "دلخواه",
 	"Customize Ollama models for a specific purpose": "مدل های اولاما را برای یک هدف خاص سفارشی کنید",
 	"Dark": "تیره",
-	"Dashboard": "",
+	"Dashboard": "داشبورد",
 	"Database": "پایگاه داده",
-	"December": "",
+	"December": "دسامبر",
 	"Default": "پیشفرض",
 	"Default (Automatic1111)": "پیشفرض (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "پیشفرض (SentenceTransformers)",
 	"Default (Web API)": "پیشفرض (Web API)",
 	"Default model updated": "مدل پیشفرض به\u200cروزرسانی شد",
 	"Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض",
 	"Default User Role": "نقش کاربر پیش فرض",
 	"delete": "حذف",
-	"Delete": "",
+	"Delete": "حذف",
 	"Delete a model": "حذف یک مدل",
 	"Delete chat": "حذف گپ",
-	"Delete Chat": "",
+	"Delete Chat": "حذف گپ",
 	"Delete Chats": "حذف گپ\u200cها",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "حذف این لینک",
+	"Delete User": "حذف کاربر",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} پاک شد",
 	"Description": "توضیحات",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "نمی تواند دستورالعمل را کامل پیگیری کند",
 	"Disabled": "غیرفعال",
 	"Discover a modelfile": "فایل مدل را کشف کنید",
 	"Discover a prompt": "یک اعلان را کشف کنید",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.",
 	"Don't Allow": "اجازه نده",
 	"Don't have an account?": "حساب کاربری ندارید؟",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "نظری ندارید؟",
+	"Download": "دانلود کن",
+	"Download canceled": "دانلود لغو شد",
 	"Download Database": "دانلود پایگاه داده",
 	"Drop any files here to add to the conversation": "هر فایلی را اینجا رها کنید تا به مکالمه اضافه شود",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.",
-	"Edit": "",
+	"Edit": "ویرایش",
 	"Edit Doc": "ویرایش سند",
 	"Edit User": "ویرایش کاربر",
 	"Email": "ایمیل",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "مدل پیدائش",
+	"Embedding Model Engine": "محرک مدل پیدائش",
+	"Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید",
 	"Enable Chat History": "تاریخچه چت را فعال کنید",
 	"Enable New Sign Ups": "فعال کردن ثبت نام\u200cهای جدید",
 	"Enabled": "فعال",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "اطمینان حاصل کنید که فایل CSV شما شامل چهار ستون در این ترتیب است: نام، ایمیل، رمز عبور، نقش.",
 	"Enter {{role}} message here": "پیام {{role}} را اینجا وارد کنید",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "برای ذخیره سازی اطلاعات خود، یک توضیح کوتاه درباره خود را وارد کنید",
 	"Enter Chunk Overlap": "مقدار Chunk Overlap را وارد کنید",
 	"Enter Chunk Size": "مقدار Chunk Size را وارد کنید",
 	"Enter Image Size (e.g. 512x512)": "اندازه تصویر را وارد کنید (مثال: 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "کد زبان را وارد کنید",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "URL پایه مربوط به LiteLLM API را وارد کنید (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "کلید API مربوط به LiteLLM را وارد کنید (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "RPM API مربوط به LiteLLM را وارد کنید (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "تگ مدل را وارد کنید (مثلا {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "تعداد گام ها را وارد کنید (مثال: 50)",
-	"Enter Score": "",
+	"Enter Score": "امتیاز را وارد کنید",
 	"Enter stop sequence": "توالی توقف را وارد کنید",
 	"Enter Top K": "مقدار Top K را وارد کنید",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "مقدار URL را وارد کنید (مثال http://localhost:11434)",
 	"Enter Your Email": "ایمیل خود را وارد کنید",
 	"Enter Your Full Name": "نام کامل خود را وارد کنید",
 	"Enter Your Password": "رمز عبور خود را وارد کنید",
-	"Enter Your Role": "",
+	"Enter Your Role": "نقش خود را وارد کنید",
 	"Experimental": "آزمایشی",
 	"Export All Chats (All Users)": "اکسپورت از همه گپ\u200cها(همه کاربران)",
 	"Export Chats": "اکسپورت از گپ\u200cها",
 	"Export Documents Mapping": "اکسپورت از نگاشت اسناد",
 	"Export Modelfiles": "اکسپورت از فایل\u200cهای مدل",
 	"Export Prompts": "اکسپورت از پرامپت\u200cها",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "ایجاد کلید API با خطا مواجه شد.",
 	"Failed to read clipboard contents": "خواندن محتوای کلیپ بورد ناموفق بود",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "فوری",
+	"Feel free to add specific details": "اگر به دلخواه، معلومات خاصی اضافه کنید",
 	"File Mode": "حالت فایل",
 	"File not found.": "فایل یافت نشد.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "فانگ سرفیس شناسایی شد: نمی توان از نمایه شما به عنوان آواتار استفاده کرد. پیش فرض به عکس پروفایل پیش فرض برگشت داده شد.",
 	"Fluidly stream large external response chunks": "تکه های پاسخ خارجی بزرگ را به صورت سیال پخش کنید",
 	"Focus chat input": "فوکوس کردن ورودی گپ",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "دستورالعمل ها را کاملا دنبال کرد",
 	"Format your variables using square brackets like this:": "متغیرهای خود را با استفاده از براکت مربع به شکل زیر قالب بندی کنید:",
 	"From (Base Model)": "از (مدل پایه)",
 	"Full Screen Mode": "حالت تمام صفحه",
 	"General": "عمومی",
 	"General Settings": "تنظیمات عمومی",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "اطلاعات تولید",
+	"Good Response": "پاسخ خوب",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "ندارد.",
 	"Hello, {{name}}": "سلام، {{name}}",
-	"Help": "",
+	"Help": "کمک",
 	"Hide": "پنهان",
 	"Hide Additional Params": "پنهان کردن پارامترهای اضافه",
 	"How can I help you today?": "امروز چطور می توانم کمک تان کنم؟",
-	"Hybrid Search": "",
+	"Hybrid Search": "جستجوی همزمان",
 	"Image Generation (Experimental)": "تولید تصویر (آزمایشی)",
 	"Image Generation Engine": "موتور تولید تصویر",
 	"Image Settings": "تنظیمات تصویر",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "فلگ `--api` را هنکام اجرای stable-diffusion-webui استفاده کنید.",
 	"Input commands": "ورودی دستورات",
 	"Interface": "رابط",
-	"Invalid Tag": "",
+	"Invalid Tag": "تگ نامعتبر",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "ژانویه",
 	"join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "ژوئن",
+	"June": "جولای",
 	"JWT Expiration": "JWT انقضای",
 	"JWT Token": "JWT توکن",
 	"Keep Alive": "Keep Alive",
 	"Keyboard shortcuts": "میانبرهای صفحه کلید",
 	"Language": "زبان",
-	"Last Active": "",
+	"Last Active": "آخرین فعال",
 	"Light": "روشن",
 	"Listening...": "در حال گوش دادن...",
 	"LLMs can make mistakes. Verify important information.": "مدل\u200cهای زبانی بزرگ می\u200cتوانند اشتباه کنند. اطلاعات مهم را راستی\u200cآزمایی کنید.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "ساخته شده توسط OpenWebUI Community",
 	"Make sure to enclose them with": "مطمئن شوید که آنها را با این محصور کنید:",
 	"Manage LiteLLM Models": "Manage LiteLLM Models",
 	"Manage Model Information": "",
 	"Manage Models": "مدیریت مدل\u200cها",
 	"Manage Ollama Models": "مدیریت مدل\u200cهای اولاما",
-	"March": "",
+	"March": "مارچ",
 	"Max Tokens": "حداکثر توکن",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "ماهی",
+	"Memories accessible by LLMs will be shown here.": "حافظه های دسترسی به LLMs در اینجا نمایش داده می شوند.",
+	"Memory": "حافظه",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "پیام های شما بعد از ایجاد لینک شما به اشتراک نمی گردد. کاربران با لینک URL می توانند چت اشتراک را مشاهده کنند.",
+	"Minimum Score": "نماد کمینه",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "مدل '{{modelName}}' با موفقیت دانلود شد.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "مدل '{{modelTag}}' در حال حاضر در صف برای دانلود است.",
 	"Model {{modelId}} not found": "مدل {{modelId}} یافت نشد",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "مسیر فایل سیستم مدل یافت شد. برای بروزرسانی نیاز است نام کوتاه مدل وجود داشته باشد.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "نام مدل",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "محتویات فایل مدل",
 	"Modelfiles": "فایل\u200cهای مدل",
 	"Models": "مدل\u200cها",
-	"More": "",
+	"More": "بیشتر",
 	"Name": "نام",
 	"Name Tag": "نام تگ",
 	"Name your modelfile": "فایل مدل را نام\u200cگذاری کنید",
 	"New Chat": "گپ جدید",
 	"New Password": "رمز عبور جدید",
 	"No": "",
-	"No results found": "",
+	"No results found": "نتیجه\u200cای یافت نشد",
 	"No source available": "منبعی در دسترس نیست",
-	"Not factually correct": "",
+	"Not factually correct": "اشتباهی فکری نیست",
 	"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
 	"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
 	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
 	"Notifications": "اعلان",
-	"November": "",
-	"October": "",
+	"November": "نوامبر",
+	"October": "اکتبر",
 	"Off": "خاموش",
 	"Okay, Let's Go!": "باشه، بزن بریم!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED تیره",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL پایه اولاما",
 	"Ollama Version": "نسخه اولاما",
 	"On": "روشن",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "باز کردن گپ جدید",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API Config",
 	"OpenAI API Key is required.": "مقدار کلید OpenAI API مورد نیاز است.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "URL/Key OpenAI مورد نیاز است.",
 	"or": "روشن",
-	"Other": "",
-	"Overview": "",
+	"Other": "دیگر",
+	"Overview": "نمای کلی",
 	"Parameters": "پارامترها",
 	"Password": "رمز عبور",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF سند (.pdf)",
 	"PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)",
 	"pending": "در انتظار",
 	"Permission denied when accessing microphone: {{error}}": "هنگام دسترسی به میکروفون، اجازه داده نشد: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "شخصی سازی",
+	"Plain text (.txt)": "متن ساده (.txt)",
 	"Playground": "زمین بازی",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "نظرات مثبت",
+	"Previous 30 days": "30 روز قبل",
+	"Previous 7 days": "7 روز قبل",
+	"Profile Image": "تصویر پروفایل",
+	"Prompt": "پیشنهاد",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "پیشنهاد (برای مثال: به من بگوید چیزی که برای من یک کاربرد داره درباره ایران)",
 	"Prompt Content": "محتویات پرامپت",
 	"Prompt suggestions": "پیشنهادات پرامپت",
 	"Prompts": "پرامپت\u200cها",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "بازگرداندن \"{{searchValue}}\" از Ollama.com",
 	"Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com",
 	"Pull Progress": "پیشرفت دریافت",
 	"Query Params": "پارامترهای پرس و جو",
 	"RAG Template": "RAG الگوی",
 	"Raw Format": "فرمت خام",
-	"Read Aloud": "",
+	"Read Aloud": "خواندن به صورت صوتی",
 	"Record voice": "ضبط صدا",
 	"Redirecting you to OpenWebUI Community": "در حال هدایت به OpenWebUI Community",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "رد شده زمانی که باید نباشد",
+	"Regenerate": "ری\u200cسازی",
 	"Release Notes": "یادداشت\u200cهای انتشار",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "حذف",
+	"Remove Model": "حذف مدل",
+	"Rename": "تغییر نام",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "حالت درخواست",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "مدل ری\u200cشناسی مجدد غیرفعال است",
+	"Reranking model disabled": "مدل ری\u200cشناسی مجدد غیرفعال است",
+	"Reranking model set to \"{{reranking_model}}\"": "مدل ری\u200cشناسی مجدد به \"{{reranking_model}}\" تنظیم شده است",
 	"Reset Vector Storage": "بازنشانی ذخیره سازی برداری",
 	"Response AutoCopy to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
 	"Role": "نقش",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "ذخیره",
 	"Save & Create": "ذخیره و ایجاد",
 	"Save & Update": "ذخیره و به\u200cروزرسانی",
@@ -387,7 +387,7 @@
 	"Scan complete!": "اسکن کامل شد!",
 	"Scan for documents from {{path}}": "اسکن اسناد از {{path}}",
 	"Search": "جستجو",
-	"Search a model": "",
+	"Search a model": "جستجوی مدل",
 	"Search Documents": "جستجوی اسناد",
 	"Search Prompts": "جستجوی پرامپت\u200cها",
 	"See readme.md for instructions": "برای مشاهده دستورالعمل\u200cها به readme.md مراجعه کنید",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "انتخاب یک نمونه از اولاما",
 	"Select model": "انتخاب یک مدل",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "ارسال",
 	"Send a Message": "ارسال یک پیام",
 	"Send message": "ارسال پیام",
-	"September": "",
+	"September": "سپتامبر",
 	"Server connection verified": "اتصال سرور تأیید شد",
 	"Set as default": "تنظیم به عنوان پیشفرض",
 	"Set Default Model": "تنظیم مدل پیش فرض",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "تنظیم مدل پیچشی (برای مثال {{model}})",
 	"Set Image Size": "تنظیم اندازه تصویر",
 	"Set Model": "تنظیم مدل",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "تنظیم مدل ری\u200cراینگ (برای مثال {{model}})",
 	"Set Steps": "تنظیم گام\u200cها",
 	"Set Title Auto-Generation Model": "تنظیم مدل تولید خودکار عنوان",
 	"Set Voice": "تنظیم صدا",
 	"Settings": "تنظیمات",
 	"Settings saved successfully!": "تنظیمات با موفقیت ذخیره شد!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "اشتراک\u200cگذاری",
+	"Share Chat": "اشتراک\u200cگذاری چت",
 	"Share to OpenWebUI Community": "اشتراک گذاری با OpenWebUI Community",
 	"short-summary": "خلاصه کوتاه",
 	"Show": "نمایش",
 	"Show Additional Params": "نمایش پارامترهای اضافه",
 	"Show shortcuts": "نمایش میانبرها",
-	"Showcased creativity": "",
+	"Showcased creativity": "ایده\u200cآفرینی",
 	"sidebar": "نوار کناری",
 	"Sign in": "ورود",
 	"Sign Out": "خروج",
 	"Sign up": "ثبت نام",
-	"Signing in": "",
+	"Signing in": "ورود",
 	"Source": "منبع",
 	"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
 	"Speech-to-Text Engine": "موتور گفتار به متن",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "توالی توقف",
 	"STT Settings": "STT تنظیمات",
 	"Submit": "ارسال",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "زیرنویس (برای مثال: درباره رمانی)",
 	"Success": "موفقیت",
 	"Successfully updated.": "با موفقیت به روز شد",
-	"Suggested": "",
+	"Suggested": "پیشنهادی",
 	"Sync All": "همگام سازی همه",
 	"System": "سیستم",
 	"System Prompt": "پرامپت سیستم",
 	"Tags": "تگ\u200cها",
-	"Tell us more:": "",
+	"Tell us more:": "بیشتر بگویید:",
 	"Temperature": "دما",
 	"Template": "الگو",
 	"Text Completion": "تکمیل متن",
 	"Text-to-Speech Engine": "موتور تبدیل متن به گفتار",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "با تشکر از بازخورد شما!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "امتیاز باید یک مقدار بین 0.0 (0%) و 1.0 (100%) باشد.",
 	"Theme": "قالب",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "این تضمین می کند که مکالمات ارزشمند شما به طور ایمن در پایگاه داده بکند ذخیره می شود. تشکر!",
 	"This setting does not sync across browsers or devices.": "این تنظیم در مرورگرها یا دستگاه\u200cها همگام\u200cسازی نمی\u200cشود.",
-	"Thorough explanation": "",
+	"Thorough explanation": "توضیح کامل",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "با فشردن کلید Tab در ورودی چت پس از هر بار تعویض، چندین متغیر را به صورت متوالی به روزرسانی کنید.",
 	"Title": "عنوان",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "عنوان (برای مثال: به من بگوید چیزی که دوست دارید)",
 	"Title Auto-Generation": "تولید خودکار عنوان",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "عنوان نمی تواند یک رشته خالی باشد.",
 	"Title Generation Prompt": "پرامپت تولید عنوان",
 	"to": "به",
 	"To access the available model names for downloading,": "برای دسترسی به نام مدل های موجود برای دانلود،",
 	"To access the GGUF models available for downloading,": "برای دسترسی به مدل\u200cهای GGUF موجود برای دانلود،",
 	"to chat input.": "در ورودی گپ.",
-	"Today": "",
+	"Today": "امروز",
 	"Toggle settings": "نمایش/عدم نمایش تنظیمات",
 	"Toggle sidebar": "نمایش/عدم نمایش نوار کناری",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "به روزرسانی و کپی لینک",
 	"Update password": "به روزرسانی رمزعبور",
 	"Upload a GGUF model": "آپلود یک مدل GGUF",
 	"Upload files": "بارگذاری فایل\u200cها",
@@ -482,7 +482,7 @@
 	"URL Mode": "حالت URL",
 	"Use '#' in the prompt input to load and select your documents.": "در پرامپت از '#' برای لود و انتخاب اسناد خود استفاده کنید.",
 	"Use Gravatar": "استفاده از گراواتار",
-	"Use Initials": "",
+	"Use Initials": "استفاده از آبزوده",
 	"user": "کاربر",
 	"User Permissions": "مجوزهای کاربر",
 	"Users": "کاربران",
@@ -491,27 +491,27 @@
 	"variable": "متغیر",
 	"variable to have them replaced with clipboard content.": "متغیر برای جایگزینی آنها با محتوای کلیپ بورد.",
 	"Version": "نسخه",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "هشدار: اگر شما به روز کنید یا تغییر دهید مدل شما، باید تمام سند ها را مجددا وارد کنید.",
 	"Web": "وب",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "تنظیمات لودر وب",
+	"Web Params": "پارامترهای وب",
+	"Webhook URL": "URL وبهوک",
 	"WebUI Add-ons": "WebUI افزونه\u200cهای",
 	"WebUI Settings": "تنظیمات WebUI",
 	"WebUI will make requests to": "WebUI درخواست\u200cها را ارسال خواهد کرد به",
 	"What’s New in": "موارد جدید در",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "وقتی سابقه خاموش است، چت\u200cهای جدید در این مرورگر در سابقه شما در هیچ یک از دستگاه\u200cهایتان ظاهر نمی\u200cشوند.",
 	"Whisper (Local)": "ویسپر (محلی)",
-	"Workspace": "",
+	"Workspace": "محیط کار",
 	"Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "دیروز",
+	"You": "شما",
+	"You have no archived conversations.": "شما هیچ گفتگوی ذخیره شده ندارید.",
+	"You have shared this chat": "شما این گفتگو را به اشتراک گذاشته اید",
 	"You're a helpful assistant.": "تو یک دستیار سودمند هستی.",
 	"You're now logged in.": "شما اکنون وارد شده\u200cاید.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "یوتیوب",
+	"Youtube Loader Settings": "تنظیمات لودر یوتیوب"
 }

+ 19 - 19
src/lib/i18n/locales/fi-FI/translation.json

@@ -11,7 +11,7 @@
 	"About": "Tietoja",
 	"Account": "Tili",
 	"Accurate information": "Tarkkaa tietoa",
-	"Add": "",
+	"Add": "Lisää",
 	"Add a model": "Lisää malli",
 	"Add a model tag name": "Lisää mallitagi",
 	"Add a short description about what this modelfile does": "Lisää lyhyt kuvaus siitä, mitä tämä mallitiedosto tekee",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Lisää mukautettu kehote",
 	"Add Docs": "Lisää asiakirjoja",
 	"Add Files": "Lisää tiedostoja",
-	"Add Memory": "",
+	"Add Memory": "Lisää muistia",
 	"Add message": "Lisää viesti",
 	"Add Model": "Lisää malli",
 	"Add Tags": "Lisää tageja",
@@ -70,8 +70,8 @@
 	"Categories": "Kategoriat",
 	"Change Password": "Vaihda salasana",
 	"Chat": "Keskustelu",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Keskustelu-pallojen käyttöliittymä",
+	"Chat direction": "Keskustelun suunta",
 	"Chat History": "Keskusteluhistoria",
 	"Chat History is off for this browser.": "Keskusteluhistoria on pois päältä tällä selaimella.",
 	"Chats": "Keskustelut",
@@ -174,11 +174,11 @@
 	"Enabled": "Käytössä",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Varmista, että CSV-tiedostossasi on 4 saraketta seuraavassa järjestyksessä: Nimi, Sähköposti, Salasana, Rooli.",
 	"Enter {{role}} message here": "Kirjoita {{role}} viesti tähän",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Kirjoita tieto itseestäsi LLM:ien muistamiseksi",
 	"Enter Chunk Overlap": "Syötä osien päällekkäisyys",
 	"Enter Chunk Size": "Syötä osien koko",
 	"Enter Image Size (e.g. 512x512)": "Syötä kuvan koko (esim. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Syötä kielikoodit",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Syötä LiteLLM-APIn perus-URL (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Syötä LiteLLM-APIn avain (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Syötä LiteLLM-APIn RPM (litellm_params.rpm)",
@@ -219,7 +219,7 @@
 	"General Settings": "Yleisasetukset",
 	"Generation Info": "Generointitiedot",
 	"Good Response": "Hyvä vastaus",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "ei ole keskusteluja.",
 	"Hello, {{name}}": "Terve, {{name}}",
 	"Help": "Apua",
@@ -254,7 +254,7 @@
 	"Light": "Vaalea",
 	"Listening...": "Kuunnellaan...",
 	"LLMs can make mistakes. Verify important information.": "Kielimallit voivat tehdä virheitä. Varmista tärkeät tiedot.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Tehnyt OpenWebUI-yhteisö",
 	"Make sure to enclose them with": "Varmista, että suljet ne",
 	"Manage LiteLLM Models": "Hallitse LiteLLM-malleja",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Maksimitokenit",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Enintään 3 mallia voidaan ladata samanaikaisesti. Yritä myöhemmin uudelleen.",
 	"May": "toukokuu",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Muistitiedostot, joita LLM-ohjelmat käyttävät, näkyvät tässä.",
+	"Memory": "Muisti",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Linkin luomisen jälkeen lähettämiäsi viestejä ei jaeta. Käyttäjät, joilla on URL-osoite, voivat tarkastella jaettua keskustelua.",
 	"Minimum Score": "Vähimmäispisteet",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF-tiedoston kuvien erottelu (OCR)",
 	"pending": "odottaa",
 	"Permission denied when accessing microphone: {{error}}": "Mikrofonin käyttöoikeus evätty: {{error}}",
-	"Personalization": "",
+	"Personalization": "Henkilökohtaisuus",
 	"Plain text (.txt)": "Pelkkä teksti (.txt)",
 	"Playground": "Leikkipaikka",
 	"Positive attitude": "Positiivinen asenne",
@@ -378,7 +378,7 @@
 	"Role": "Rooli",
 	"Rosé Pine": "Rosee-mänty",
 	"Rosé Pine Dawn": "Aamuinen Rosee-mänty",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Tallenna",
 	"Save & Create": "Tallenna ja luo",
 	"Save & Update": "Tallenna ja päivitä",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Valitse Ollama-instanssi",
 	"Select model": "Valitse malli",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Lähetä",
 	"Send a Message": "Lähetä viesti",
 	"Send message": "Lähetä viesti",
 	"September": "syyskuu",
@@ -407,7 +407,7 @@
 	"Set Default Model": "Aseta oletusmalli",
 	"Set embedding model (e.g. {{model}})": "Aseta upotusmalli (esim. {{model}})",
 	"Set Image Size": "Aseta kuvan koko",
-	"Set Model": "",
+	"Set Model": "Aseta malli",
 	"Set reranking model (e.g. {{model}})": "Aseta uudelleenpisteytysmalli (esim. {{model}})",
 	"Set Steps": "Aseta askelmäärä",
 	"Set Title Auto-Generation Model": "Aseta otsikon automaattisen luonnin malli",
@@ -493,7 +493,7 @@
 	"Version": "Versio",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Varoitus: Jos päivität tai vaihdat upotusmallia, sinun on tuotava kaikki asiakirjat uudelleen.",
 	"Web": "Web",
-	"Web Loader Settings": "",
+	"Web Loader Settings": "Web Loader asetukset",
 	"Web Params": "Web-parametrit",
 	"Webhook URL": "Webhook-URL",
 	"WebUI Add-ons": "WebUI-lisäosat",
@@ -502,16 +502,16 @@
 	"What’s New in": "Mitä uutta",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Kun historia on pois päältä, uudet keskustelut tässä selaimessa eivät näy historiassasi millään laitteellasi.",
 	"Whisper (Local)": "Whisper (paikallinen)",
-	"Workspace": "",
+	"Workspace": "Työtilat",
 	"Write a prompt suggestion (e.g. Who are you?)": "Kirjoita ehdotettu kehote (esim. Kuka olet?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Kirjoita 50 sanan yhteenveto, joka tiivistää [aihe tai avainsana].",
 	"Yes": "",
 	"Yesterday": "Eilen",
-	"You": "",
+	"You": "Sinä",
 	"You have no archived conversations.": "Sinulla ei ole arkistoituja keskusteluja.",
 	"You have shared this chat": "Olet jakanut tämän keskustelun",
 	"You're a helpful assistant.": "Olet avulias apulainen.",
 	"You're now logged in.": "Olet nyt kirjautunut sisään.",
 	"Youtube": "Youtube",
-	"Youtube Loader Settings": ""
+	"Youtube Loader Settings": "Youtube Loader-asetukset"
 }

+ 143 - 143
src/lib/i18n/locales/fr-CA/translation.json

@@ -2,16 +2,16 @@
 	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ou '-1' pour aucune expiration.",
 	"(Beta)": "(Bêta)",
 	"(e.g. `sh webui.sh --api`)": "(par ex. `sh webui.sh --api`)",
-	"(latest)": "",
+	"(latest)": "(dernière)",
 	"{{modelName}} is thinking...": "{{modelName}} réfléchit...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
 	"A selected model does not support image input": "",
 	"a user": "un utilisateur",
 	"About": "À propos",
 	"Account": "Compte",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Information précise",
+	"Add": "Ajouter",
 	"Add a model": "Ajouter un modèle",
 	"Add a model tag name": "Ajouter un nom de tag pour le modèle",
 	"Add a short description about what this modelfile does": "Ajouter une courte description de ce que fait ce fichier de modèle",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Ajouter un prompt personnalisé",
 	"Add Docs": "Ajouter des documents",
 	"Add Files": "Ajouter des fichiers",
-	"Add Memory": "",
+	"Add Memory": "Ajouter une mémoire",
 	"Add message": "Ajouter un message",
-	"Add Model": "",
+	"Add Model": "Ajouter un modèle",
 	"Add Tags": "ajouter des tags",
-	"Add User": "",
+	"Add User": "Ajouter un utilisateur",
 	"Adjusting these settings will apply changes universally to all users.": "L'ajustement de ces paramètres appliquera les changements à tous les utilisateurs.",
 	"admin": "Administrateur",
 	"Admin Panel": "Panneau d'administration",
 	"Admin Settings": "Paramètres d'administration",
 	"Advanced Parameters": "Paramètres avancés",
 	"all": "tous",
-	"All Documents": "",
+	"All Documents": "Tous les documents",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Tous les utilisateurs",
 	"Allow": "Autoriser",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"an assistant": "un assistant",
 	"and": "et",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "et créer un nouveau lien partagé.",
 	"API Base URL": "URL de base de l'API",
 	"API Key": "Clé API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Clé API créée.",
+	"API keys": "Clés API",
 	"API RPM": "RPM API",
-	"April": "",
-	"Archive": "",
+	"April": "Avril",
+	"Archive": "Archiver",
 	"Archived Chats": "enregistrement du chat",
 	"are allowed - Activate this command by typing": "sont autorisés - Activez cette commande en tapant",
 	"Are you sure?": "Êtes-vous sûr ?",
 	"Attach file": "Joindre un fichier",
 	"Attention to detail": "Attention aux détails",
 	"Audio": "Audio",
-	"August": "",
+	"August": "Août",
 	"Auto-playback response": "Réponse en lecture automatique",
 	"Auto-send input after 3 sec.": "Envoyer automatiquement l'entrée après 3 sec.",
 	"AUTOMATIC1111 Base URL": "URL de base AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "L'URL de base AUTOMATIC1111 est requise.",
 	"available!": "disponible !",
 	"Back": "Retour",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Mauvaise réponse",
+	"before": "avant",
+	"Being lazy": "En manque de temps",
 	"Builder Mode": "Mode Constructeur",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Parcourir la vérification SSL pour les sites Web",
 	"Cancel": "Annuler",
 	"Categories": "Catégories",
 	"Change Password": "Changer le mot de passe",
 	"Chat": "Discussion",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Bubble UI de discussion",
+	"Chat direction": "Direction de discussion",
 	"Chat History": "Historique des discussions",
 	"Chat History is off for this browser.": "L'historique des discussions est désactivé pour ce navigateur.",
 	"Chats": "Discussions",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Taille de bloc",
 	"Citation": "Citations",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
-	"Click here to": "",
+	"Click here to": "Cliquez ici pour",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to select": "Cliquez ici pour sélectionner",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Cliquez ici pour sélectionner un fichier csv.",
 	"Click here to select documents.": "Cliquez ici pour sélectionner des documents.",
 	"click here.": "cliquez ici.",
 	"Click on the user role button to change a user's role.": "Cliquez sur le bouton de rôle d'utilisateur pour changer le rôle d'un utilisateur.",
 	"Close": "Fermer",
 	"Collection": "Collection",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL est requis.",
 	"Command": "Commande",
 	"Confirm Password": "Confirmer le mot de passe",
 	"Connections": "Connexions",
 	"Content": "Contenu",
 	"Context Length": "Longueur du contexte",
-	"Continue Response": "",
+	"Continue Response": "Continuer la réponse",
 	"Conversation Mode": "Mode de conversation",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL de chat partagé copié dans le presse-papier !",
+	"Copy": "Copier",
 	"Copy last code block": "Copier le dernier bloc de code",
 	"Copy last response": "Copier la dernière réponse",
-	"Copy Link": "",
+	"Copy Link": "Copier le lien",
 	"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3 à 5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3 à 5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create Account": "Créer un compte",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Créer une nouvelle clé",
+	"Create new secret key": "Créer une nouvelle clé secrète",
 	"Created at": "Créé le",
-	"Created At": "",
+	"Created At": "Créé le",
 	"Current Model": "Modèle actuel",
 	"Current Models": "",
 	"Current Password": "Mot de passe actuel",
 	"Custom": "Personnalisé",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Dark": "Sombre",
-	"Dashboard": "",
+	"Dashboard": "Tableau de bord",
 	"Database": "Base de données",
-	"December": "",
+	"December": "Décembre",
 	"Default": "Par défaut",
 	"Default (Automatic1111)": "Par défaut (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Par défaut (SentenceTransformers)",
 	"Default (Web API)": "Par défaut (API Web)",
 	"Default model updated": "Modèle par défaut mis à jour",
 	"Default Prompt Suggestions": "Suggestions de prompt par défaut",
 	"Default User Role": "Rôle d'utilisateur par défaut",
 	"delete": "supprimer",
-	"Delete": "",
+	"Delete": "Supprimer",
 	"Delete a model": "Supprimer un modèle",
 	"Delete chat": "Supprimer la discussion",
-	"Delete Chat": "",
+	"Delete Chat": "Supprimer la discussion",
 	"Delete Chats": "Supprimer les discussions",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "supprimer ce lien",
+	"Delete User": "Supprimer l'utilisateur",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} supprimé",
 	"Description": "Description",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Ne suit pas les instructions",
 	"Disabled": "Désactivé",
 	"Discover a modelfile": "Découvrir un fichier de modèle",
 	"Discover a prompt": "Découvrir un prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "ne fait aucune connexion externe, et vos données restent en sécurité sur votre serveur hébergé localement.",
 	"Don't Allow": "Ne pas autoriser",
 	"Don't have an account?": "Vous n'avez pas de compte ?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Vous n'aimez pas le style ?",
+	"Download": "Télécharger",
+	"Download canceled": "Téléchargement annulé",
 	"Download Database": "Télécharger la base de données",
 	"Drop any files here to add to the conversation": "Déposez n'importe quel fichier ici pour les ajouter à la conversation",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Éditer",
 	"Edit Doc": "Éditer le document",
 	"Edit User": "Éditer l'utilisateur",
 	"Email": "Email",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Modèle d'embedding",
+	"Embedding Model Engine": "Moteur du modèle d'embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Modèle d'embedding défini sur \"{{embedding_model}}\"",
 	"Enable Chat History": "Activer l'historique des discussions",
 	"Enable New Sign Ups": "Activer les nouvelles inscriptions",
 	"Enabled": "Activé",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assurez-vous que votre fichier CSV inclut 4 colonnes dans cet ordre : Nom, Email, Mot de passe, Rôle.",
 	"Enter {{role}} message here": "Entrez le message {{role}} ici",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Entrez un détail sur vous pour que vos LLMs puissent le rappeler",
 	"Enter Chunk Overlap": "Entrez le chevauchement de bloc",
 	"Enter Chunk Size": "Entrez la taille du bloc",
 	"Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (p. ex. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Entrez les codes de langue",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Entrez l'URL de base de l'API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Entrez la clé API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Entrez le RPM de l'API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Entrez le tag du modèle (p. ex. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Entrez le nombre d'étapes (p. ex. 50)",
-	"Enter Score": "",
+	"Enter Score": "Entrez le score",
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter Top K": "Entrez Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Entrez l'URL (p. ex. http://localhost:11434)",
 	"Enter Your Email": "Entrez votre adresse email",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Password": "Entrez votre mot de passe",
-	"Enter Your Role": "",
+	"Enter Your Role": "Entrez votre rôle",
 	"Experimental": "Expérimental",
 	"Export All Chats (All Users)": "Exporter toutes les discussions (Tous les utilisateurs)",
 	"Export Chats": "Exporter les discussions",
 	"Export Documents Mapping": "Exporter le mappage des documents",
 	"Export Modelfiles": "Exporter les fichiers de modèle",
 	"Export Prompts": "Exporter les prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Impossible de créer la clé API.",
 	"Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Février",
+	"Feel free to add specific details": "Vous pouvez ajouter des détails spécifiques",
 	"File Mode": "Mode fichier",
 	"File not found.": "Fichier introuvable.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Détection de falsification de empreinte digitale\u00a0: impossible d'utiliser les initiales comme avatar. Par défaut, l'image de profil par défaut est utilisée.",
 	"Fluidly stream large external response chunks": "Diffusez de manière fluide de gros morceaux de réponses externes",
 	"Focus chat input": "Se concentrer sur l'entrée de la discussion",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Suivi des instructions parfaitement",
 	"Format your variables using square brackets like this:": "Formatez vos variables en utilisant des crochets comme ceci :",
 	"From (Base Model)": "De (Modèle de base)",
 	"Full Screen Mode": "Mode plein écran",
 	"General": "Général",
 	"General Settings": "Paramètres généraux",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Informations de génération",
+	"Good Response": "Bonne réponse",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "n'a pas de conversations.",
 	"Hello, {{name}}": "Bonjour, {{name}}",
-	"Help": "",
+	"Help": "Aide",
 	"Hide": "Cacher",
 	"Hide Additional Params": "Cacher les paramètres supplémentaires",
 	"How can I help you today?": "Comment puis-je vous aider aujourd'hui ?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Recherche hybride",
 	"Image Generation (Experimental)": "Génération d'image (Expérimental)",
 	"Image Generation Engine": "Moteur de génération d'image",
 	"Image Settings": "Paramètres de l'image",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inclure l'indicateur `--api` lors de l'exécution de stable-diffusion-webui",
 	"Input commands": "Entrez des commandes d'entrée",
 	"Interface": "Interface",
-	"Invalid Tag": "",
+	"Invalid Tag": "Tag invalide",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Janvier",
 	"join our Discord for help.": "rejoignez notre Discord pour obtenir de l'aide.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Juillet",
+	"June": "Juin",
 	"JWT Expiration": "Expiration du JWT",
 	"JWT Token": "Jeton JWT",
 	"Keep Alive": "Garder actif",
 	"Keyboard shortcuts": "Raccourcis clavier",
 	"Language": "Langue",
-	"Last Active": "",
+	"Last Active": "Dernière activité",
 	"Light": "Lumière",
 	"Listening...": "Écoute...",
 	"LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Réalisé par la communauté OpenWebUI",
 	"Make sure to enclose them with": "Assurez-vous de les entourer avec",
 	"Manage LiteLLM Models": "Gérer les modèles LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Gérer les modèles",
 	"Manage Ollama Models": "Gérer les modèles Ollama",
-	"March": "",
+	"March": "Mars",
 	"Max Tokens": "Tokens maximaux",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Mai",
+	"Memories accessible by LLMs will be shown here.": "Les mémoires accessibles par les LLM seront affichées ici.",
+	"Memory": "Mémoire",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Les messages que vous envoyez après la création de votre lien ne seront pas partagés. Les utilisateurs avec l'URL pourront voir le chat partagé.",
+	"Minimum Score": "Score minimum",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.",
 	"Model {{modelId}} not found": "Modèle {{modelId}} non trouvé",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Le chemin du système de fichiers du modèle a été détecté. Le nom court du modèle est nécessaire pour la mise à jour, impossible de continuer.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Nom du modèle",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Contenu du fichier de modèle",
 	"Modelfiles": "Fichiers de modèle",
 	"Models": "Modèles",
-	"More": "",
+	"More": "Plus",
 	"Name": "Nom",
 	"Name Tag": "Tag de nom",
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"New Chat": "Nouvelle discussion",
 	"New Password": "Nouveau mot de passe",
 	"No": "",
-	"No results found": "",
+	"No results found": "Aucun résultat trouvé",
 	"No source available": "Aucune source disponible",
-	"Not factually correct": "",
+	"Not factually correct": "Non, pas exactement correct",
 	"Not sure what to add?": "Pas sûr de quoi ajouter ?",
 	"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Note: Si vous définissez un score minimum, la recherche ne retournera que les documents avec un score supérieur ou égal au score minimum.",
 	"Notifications": "Notifications de bureau",
-	"November": "",
-	"October": "",
+	"November": "Novembre",
+	"October": "Octobre",
 	"Off": "Éteint",
 	"Okay, Let's Go!": "Okay, Allons-y !",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Sombre",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL de Base Ollama",
 	"Ollama Version": "Version Ollama",
 	"On": "Activé",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Ouvrir une nouvelle discussion",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Configuration API OpenAI",
 	"OpenAI API Key is required.": "La clé API OpenAI est requise.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "L'URL/Clé OpenAI est requise.",
 	"or": "ou",
-	"Other": "",
-	"Overview": "",
+	"Other": "Autre",
+	"Overview": "Aperçu",
 	"Parameters": "Paramètres",
 	"Password": "Mot de passe",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Document PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
 	"pending": "en attente",
 	"Permission denied when accessing microphone: {{error}}": "Permission refusée lors de l'accès au microphone : {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personnalisation",
+	"Plain text (.txt)": "Texte brut (.txt)",
 	"Playground": "Aire de jeu",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Attitude positive",
+	"Previous 30 days": "30 derniers jours",
+	"Previous 7 days": "7 derniers jours",
+	"Profile Image": "Image de profil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (par exemple, Dites-moi un fait amusant sur l'Imperium romain)",
 	"Prompt Content": "Contenu du prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Tirer \"{{searchValue}}\" de Ollama.com",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull Progress": "Progression du téléchargement",
 	"Query Params": "Paramètres de requête",
 	"RAG Template": "Modèle RAG",
 	"Raw Format": "Format brut",
-	"Read Aloud": "",
+	"Read Aloud": "Lire à l'échelle",
 	"Record voice": "Enregistrer la voix",
 	"Redirecting you to OpenWebUI Community": "Vous redirige vers la communauté OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Refusé quand il ne devrait pas l'être",
+	"Regenerate": "Régénérer",
 	"Release Notes": "Notes de version",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Supprimer",
+	"Remove Model": "Supprimer le modèle",
+	"Rename": "Renommer",
 	"Repeat Last N": "Répéter les N derniers",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Request Mode": "Mode de requête",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Modèle de reranking",
+	"Reranking model disabled": "Modèle de reranking désactivé",
+	"Reranking model set to \"{{reranking_model}}\"": "Modèle de reranking défini sur \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Réinitialiser le stockage vectoriel",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
 	"Role": "Rôle",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Enregistrer",
 	"Save & Create": "Enregistrer & Créer",
 	"Save & Update": "Enregistrer & Mettre à jour",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Scan terminé !",
 	"Scan for documents from {{path}}": "Scanner des documents depuis {{path}}",
 	"Search": "Recherche",
-	"Search a model": "",
+	"Search a model": "Rechercher un modèle",
 	"Search Documents": "Rechercher des documents",
 	"Search Prompts": "Rechercher des prompts",
 	"See readme.md for instructions": "Voir readme.md pour les instructions",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Sélectionner une instance Ollama",
 	"Select model": "Sélectionnez un modèle",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Envoyer",
 	"Send a Message": "Envoyer un message",
 	"Send message": "Envoyer un message",
-	"September": "",
+	"September": "Septembre",
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Set as default": "Définir par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Définir le modèle d'embedding (par exemple {{model}})",
 	"Set Image Size": "Définir la taille de l'image",
 	"Set Model": "Configurer le modèle",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Définir le modèle de reranking (par exemple {{model}})",
 	"Set Steps": "Définir les étapes",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Voice": "Définir la voix",
 	"Settings": "Paramètres",
 	"Settings saved successfully!": "Paramètres enregistrés avec succès !",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Partager",
+	"Share Chat": "Partager le chat",
 	"Share to OpenWebUI Community": "Partager avec la communauté OpenWebUI",
 	"short-summary": "résumé court",
 	"Show": "Afficher",
 	"Show Additional Params": "Afficher les paramètres supplémentaires",
 	"Show shortcuts": "Afficher les raccourcis",
-	"Showcased creativity": "",
+	"Showcased creativity": "Créativité affichée",
 	"sidebar": "barre latérale",
 	"Sign in": "Se connecter",
 	"Sign Out": "Se déconnecter",
 	"Sign up": "S'inscrire",
-	"Signing in": "",
+	"Signing in": "Connexion",
 	"Source": "Source",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech-to-Text Engine": "Moteur reconnaissance vocale",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Séquence d'arrêt",
 	"STT Settings": "Paramètres de STT",
 	"Submit": "Soumettre",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Sous-titre (par exemple, sur l'empire romain)",
 	"Success": "Succès",
 	"Successfully updated.": "Mis à jour avec succès.",
-	"Suggested": "",
+	"Suggested": "Suggéré",
 	"Sync All": "Synchroniser tout",
 	"System": "Système",
 	"System Prompt": "Prompt Système",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "Donnez-nous plus:",
 	"Temperature": "Température",
 	"Template": "Modèle",
 	"Text Completion": "Complétion de texte",
 	"Text-to-Speech Engine": "Moteur de texte à la parole",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Merci pour votre feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Le score doit être une valeur entre 0.0 (0%) et 1.0 (100%).",
 	"Theme": "Thème",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cela garantit que vos précieuses conversations sont enregistrées en toute sécurité dans votre base de données backend. Merci !",
 	"This setting does not sync across browsers or devices.": "Ce réglage ne se synchronise pas entre les navigateurs ou les appareils.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explication approfondie",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Astuce : Mettez à jour plusieurs emplacements de variables consécutivement en appuyant sur la touche tabulation dans l'entrée de chat après chaque remplacement.",
 	"Title": "Titre",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Titre (par exemple, Dites-moi un fait amusant)",
 	"Title Auto-Generation": "Génération automatique de titre",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Le titre ne peut pas être une chaîne vide.",
 	"Title Generation Prompt": "Prompt de génération de titre",
 	"to": "à",
 	"To access the available model names for downloading,": "Pour accéder aux noms de modèles disponibles pour le téléchargement,",
 	"To access the GGUF models available for downloading,": "Pour accéder aux modèles GGUF disponibles pour le téléchargement,",
 	"to chat input.": "à l'entrée du chat.",
-	"Today": "",
+	"Today": "Aujourd'hui",
 	"Toggle settings": "Basculer les paramètres",
 	"Toggle sidebar": "Basculer la barre latérale",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Entrez l'URL de résolution (téléchargement) Hugging Face",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Mettre à jour et copier le lien",
 	"Update password": "Mettre à jour le mot de passe",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload files": "Téléverser des fichiers",
@@ -482,7 +482,7 @@
 	"URL Mode": "Mode URL",
 	"Use '#' in the prompt input to load and select your documents.": "Utilisez '#' dans l'entrée de prompt pour charger et sélectionner vos documents.",
 	"Use Gravatar": "Utiliser Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Utiliser les Initiales",
 	"user": "utilisateur",
 	"User Permissions": "Permissions de l'utilisateur",
 	"Users": "Utilisateurs",
@@ -491,27 +491,27 @@
 	"variable": "variable",
 	"variable to have them replaced with clipboard content.": "variable pour les remplacer par le contenu du presse-papiers.",
 	"Version": "Version",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Attention : Si vous mettez à jour ou changez votre modèle d'intégration, vous devrez réimporter tous les documents.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Paramètres du chargeur Web",
+	"Web Params": "Paramètres Web",
+	"Webhook URL": "URL Webhook",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Settings": "Paramètres WebUI",
 	"WebUI will make requests to": "WebUI effectuera des demandes à",
 	"What’s New in": "Quoi de neuf dans",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Lorsque l'historique est désactivé, les nouvelles discussions sur ce navigateur n'apparaîtront pas dans votre historique sur aucun de vos appareils.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Espace de travail",
 	"Write a prompt suggestion (e.g. Who are you?)": "Rédigez une suggestion de prompt (p. ex. Qui êtes-vous ?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé en 50 mots qui résume [sujet ou mot-clé].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "hier",
+	"You": "Vous",
+	"You have no archived conversations.": "Vous n'avez aucune conversation archivée.",
+	"You have shared this chat": "Vous avez partagé cette conversation",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Paramètres du chargeur Youtube"
 }

+ 143 - 143
src/lib/i18n/locales/fr-FR/translation.json

@@ -2,16 +2,16 @@
 	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ou '-1' pour aucune expiration.",
 	"(Beta)": "(Bêta)",
 	"(e.g. `sh webui.sh --api`)": "(par ex. `sh webui.sh --api`)",
-	"(latest)": "",
+	"(latest)": "(dernière)",
 	"{{modelName}} is thinking...": "{{modelName}} réfléchit...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "Backend {{webUIName}} requis",
 	"A selected model does not support image input": "",
 	"a user": "un utilisateur",
 	"About": "À propos",
 	"Account": "Compte",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Information précise",
+	"Add": "Ajouter",
 	"Add a model": "Ajouter un modèle",
 	"Add a model tag name": "Ajouter un nom de tag pour le modèle",
 	"Add a short description about what this modelfile does": "Ajouter une courte description de ce que fait ce fichier de modèle",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Ajouter un prompt personnalisé",
 	"Add Docs": "Ajouter des documents",
 	"Add Files": "Ajouter des fichiers",
-	"Add Memory": "",
+	"Add Memory": "Ajouter une mémoire",
 	"Add message": "Ajouter un message",
-	"Add Model": "",
+	"Add Model": "Ajouter un modèle",
 	"Add Tags": "ajouter des tags",
-	"Add User": "",
+	"Add User": "Ajouter un utilisateur",
 	"Adjusting these settings will apply changes universally to all users.": "L'ajustement de ces paramètres appliquera les changements à tous les utilisateurs.",
 	"admin": "Administrateur",
 	"Admin Panel": "Panneau d'administration",
 	"Admin Settings": "Paramètres d'administration",
 	"Advanced Parameters": "Paramètres avancés",
 	"all": "tous",
-	"All Documents": "",
+	"All Documents": "Tous les documents",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Tous les utilisateurs",
 	"Allow": "Autoriser",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"an assistant": "un assistant",
 	"and": "et",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "et créer un nouveau lien partagé.",
 	"API Base URL": "URL de base de l'API",
 	"API Key": "Clé API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Clé API créée.",
+	"API keys": "Clés API",
 	"API RPM": "RPM API",
-	"April": "",
-	"Archive": "",
+	"April": "Avril",
+	"Archive": "Archiver",
 	"Archived Chats": "enregistrement du chat",
 	"are allowed - Activate this command by typing": "sont autorisés - Activez cette commande en tapant",
 	"Are you sure?": "Êtes-vous sûr ?",
 	"Attach file": "Joindre un fichier",
 	"Attention to detail": "Attention aux détails",
 	"Audio": "Audio",
-	"August": "",
+	"August": "Août",
 	"Auto-playback response": "Réponse en lecture automatique",
 	"Auto-send input after 3 sec.": "Envoyer automatiquement l'entrée après 3 sec.",
 	"AUTOMATIC1111 Base URL": "URL de base AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "L'URL de base AUTOMATIC1111 est requise.",
 	"available!": "disponible !",
 	"Back": "Retour",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Mauvaise réponse",
+	"before": "avant",
+	"Being lazy": "En manque de temps",
 	"Builder Mode": "Mode Constructeur",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Parcourir la vérification SSL pour les sites Web",
 	"Cancel": "Annuler",
 	"Categories": "Catégories",
 	"Change Password": "Changer le mot de passe",
 	"Chat": "Chat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Chat Bubble UI",
+	"Chat direction": "Direction du chat",
 	"Chat History": "Historique du chat",
 	"Chat History is off for this browser.": "L'historique du chat est désactivé pour ce navigateur.",
 	"Chats": "Chats",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Taille de bloc",
 	"Citation": "Citations",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
-	"Click here to": "",
+	"Click here to": "Cliquez ici pour",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to select": "Cliquez ici pour sélectionner",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Cliquez ici pour sélectionner un fichier csv.",
 	"Click here to select documents.": "Cliquez ici pour sélectionner des documents.",
 	"click here.": "cliquez ici.",
 	"Click on the user role button to change a user's role.": "Cliquez sur le bouton de rôle d'utilisateur pour changer le rôle d'un utilisateur.",
 	"Close": "Fermer",
 	"Collection": "Collection",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL est requis.",
 	"Command": "Commande",
 	"Confirm Password": "Confirmer le mot de passe",
 	"Connections": "Connexions",
 	"Content": "Contenu",
 	"Context Length": "Longueur du contexte",
-	"Continue Response": "",
+	"Continue Response": "Continuer la réponse",
 	"Conversation Mode": "Mode de conversation",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL de chat partagé copié dans le presse-papier !",
+	"Copy": "Copier",
 	"Copy last code block": "Copier le dernier bloc de code",
 	"Copy last response": "Copier la dernière réponse",
-	"Copy Link": "",
+	"Copy Link": "Copier le lien",
 	"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3-5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3-5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create Account": "Créer un compte",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Créer une nouvelle clé",
+	"Create new secret key": "Créer une nouvelle clé secrète",
 	"Created at": "Créé le",
-	"Created At": "",
+	"Created At": "Créé le",
 	"Current Model": "Modèle actuel",
 	"Current Models": "",
 	"Current Password": "Mot de passe actuel",
 	"Custom": "Personnalisé",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Dark": "Sombre",
-	"Dashboard": "",
+	"Dashboard": "Tableau de bord",
 	"Database": "Base de données",
-	"December": "",
+	"December": "Décembre",
 	"Default": "Par défaut",
 	"Default (Automatic1111)": "Par défaut (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Par défaut (SentenceTransformers)",
 	"Default (Web API)": "Par défaut (API Web)",
 	"Default model updated": "Modèle par défaut mis à jour",
 	"Default Prompt Suggestions": "Suggestions de prompt par défaut",
 	"Default User Role": "Rôle d'utilisateur par défaut",
 	"delete": "supprimer",
-	"Delete": "",
+	"Delete": "Supprimer",
 	"Delete a model": "Supprimer un modèle",
 	"Delete chat": "Supprimer le chat",
-	"Delete Chat": "",
+	"Delete Chat": "Supprimer le chat",
 	"Delete Chats": "Supprimer les chats",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "supprimer ce lien",
+	"Delete User": "Supprimer l'utilisateur",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} supprimé",
 	"Description": "Description",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Ne suit pas les instructions",
 	"Disabled": "Désactivé",
 	"Discover a modelfile": "Découvrir un fichier de modèle",
 	"Discover a prompt": "Découvrir un prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "ne fait aucune connexion externe, et vos données restent en sécurité sur votre serveur hébergé localement.",
 	"Don't Allow": "Ne pas autoriser",
 	"Don't have an account?": "Vous n'avez pas de compte ?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Vous n'aimez pas le style ?",
+	"Download": "Télécharger",
+	"Download canceled": "Téléchargement annulé",
 	"Download Database": "Télécharger la base de données",
 	"Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Éditer",
 	"Edit Doc": "Éditer le document",
 	"Edit User": "Éditer l'utilisateur",
 	"Email": "Email",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Modèle d'embedding",
+	"Embedding Model Engine": "Moteur du modèle d'embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Modèle d'embedding défini sur \"{{embedding_model}}\"",
 	"Enable Chat History": "Activer l'historique du chat",
 	"Enable New Sign Ups": "Activer les nouvelles inscriptions",
 	"Enabled": "Activé",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assurez-vous que votre fichier CSV inclut 4 colonnes dans cet ordre : Nom, Email, Mot de passe, Rôle.",
 	"Enter {{role}} message here": "Entrez le message {{role}} ici",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Entrez un détail sur vous pour que vos LLM puissent le rappeler",
 	"Enter Chunk Overlap": "Entrez le chevauchement de bloc",
 	"Enter Chunk Size": "Entrez la taille du bloc",
 	"Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (p. ex. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Entrez les codes de langue",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Entrez l'URL de base de l'API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Entrez la clé API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Entrez le RPM de l'API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Entrez le tag du modèle (p. ex. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Entrez le nombre d'étapes (p. ex. 50)",
-	"Enter Score": "",
+	"Enter Score": "Entrez le score",
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter Top K": "Entrez Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Entrez l'URL (p. ex. http://localhost:11434)",
 	"Enter Your Email": "Entrez votre email",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Password": "Entrez votre mot de passe",
-	"Enter Your Role": "",
+	"Enter Your Role": "Entrez votre rôle",
 	"Experimental": "Expérimental",
 	"Export All Chats (All Users)": "Exporter tous les chats (tous les utilisateurs)",
 	"Export Chats": "Exporter les chats",
 	"Export Documents Mapping": "Exporter la correspondance des documents",
 	"Export Modelfiles": "Exporter les fichiers de modèle",
 	"Export Prompts": "Exporter les prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Impossible de créer la clé API.",
 	"Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Février",
+	"Feel free to add specific details": "Vous pouvez ajouter des détails spécifiques",
 	"File Mode": "Mode fichier",
 	"File not found.": "Fichier non trouvé.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Détection de falsification de empreinte digitale\u00a0: impossible d'utiliser les initiales comme avatar. Par défaut, l'image de profil par défaut est utilisée.",
 	"Fluidly stream large external response chunks": "Diffusez de manière fluide de gros morceaux de réponses externes",
 	"Focus chat input": "Concentrer sur l'entrée du chat",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Suivi des instructions parfaitement",
 	"Format your variables using square brackets like this:": "Formatez vos variables en utilisant des crochets comme ceci :",
 	"From (Base Model)": "De (Modèle de base)",
 	"Full Screen Mode": "Mode plein écran",
 	"General": "Général",
 	"General Settings": "Paramètres généraux",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Informations de génération",
+	"Good Response": "Bonne réponse",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "n'a pas de conversations.",
 	"Hello, {{name}}": "Bonjour, {{name}}",
-	"Help": "",
+	"Help": "Aide",
 	"Hide": "Cacher",
 	"Hide Additional Params": "Hide additional params",
 	"How can I help you today?": "Comment puis-je vous aider aujourd'hui ?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Recherche hybride",
 	"Image Generation (Experimental)": "Génération d'image (Expérimental)",
 	"Image Generation Engine": "Moteur de génération d'image",
 	"Image Settings": "Paramètres d'image",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inclure le drapeau `--api` lors de l'exécution de stable-diffusion-webui",
 	"Input commands": "Entrez les commandes d'entrée",
 	"Interface": "Interface",
-	"Invalid Tag": "",
+	"Invalid Tag": "Tag invalide",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Janvier",
 	"join our Discord for help.": "rejoignez notre Discord pour obtenir de l'aide.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Juillet",
+	"June": "Juin",
 	"JWT Expiration": "Expiration JWT",
 	"JWT Token": "Jeton JWT",
 	"Keep Alive": "Garder en vie",
 	"Keyboard shortcuts": "Raccourcis clavier",
 	"Language": "Langue",
-	"Last Active": "",
+	"Last Active": "Dernière activité",
 	"Light": "Clair",
 	"Listening...": "Écoute...",
 	"LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Réalisé par la communauté OpenWebUI",
 	"Make sure to enclose them with": "Assurez-vous de les entourer avec",
 	"Manage LiteLLM Models": "Gérer les modèles LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Gérer les modèles",
 	"Manage Ollama Models": "Gérer les modèles Ollama",
-	"March": "",
+	"March": "Mars",
 	"Max Tokens": "Tokens maximaux",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Mai",
+	"Memories accessible by LLMs will be shown here.": "Les mémoires accessibles par les LLM seront affichées ici.",
+	"Memory": "Mémoire",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Les messages que vous envoyez après la création de votre lien ne seront pas partagés. Les utilisateurs avec l'URL pourront voir le chat partagé.",
+	"Minimum Score": "Score minimum",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.",
 	"Model {{modelId}} not found": "Modèle {{modelId}} non trouvé",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Le chemin du système de fichiers du modèle a été détecté. Le nom court du modèle est nécessaire pour la mise à jour, impossible de continuer.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Nom du modèle",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Contenu du fichier de modèle",
 	"Modelfiles": "Fichiers de modèle",
 	"Models": "Modèles",
-	"More": "",
+	"More": "Plus",
 	"Name": "Nom",
 	"Name Tag": "Tag de nom",
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"New Chat": "Nouveau chat",
 	"New Password": "Nouveau mot de passe",
 	"No": "",
-	"No results found": "",
+	"No results found": "Aucun résultat trouvé",
 	"No source available": "Aucune source disponible",
-	"Not factually correct": "",
+	"Not factually correct": "Non, pas exactement correct",
 	"Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
 	"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Note: Si vous définissez un score minimum, la recherche ne retournera que les documents avec un score supérieur ou égal au score minimum.",
 	"Notifications": "Notifications de bureau",
-	"November": "",
-	"October": "",
+	"November": "Novembre",
+	"October": "Octobre",
 	"Off": "Désactivé",
 	"Okay, Let's Go!": "D'accord, allons-y !",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Sombre",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL de Base Ollama",
 	"Ollama Version": "Version Ollama",
 	"On": "Activé",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Ouvrir un nouveau chat",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Configuration API OpenAI",
 	"OpenAI API Key is required.": "La clé API OpenAI est requise.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "L'URL/Clé OpenAI est requise.",
 	"or": "ou",
-	"Other": "",
-	"Overview": "",
+	"Other": "Autre",
+	"Overview": "Aperçu",
 	"Parameters": "Paramètres",
 	"Password": "Mot de passe",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Document PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
 	"pending": "en attente",
 	"Permission denied when accessing microphone: {{error}}": "Permission refusée lors de l'accès au microphone : {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personnalisation",
+	"Plain text (.txt)": "Texte brut (.txt)",
 	"Playground": "Aire de jeu",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Attitude positive",
+	"Previous 30 days": "30 derniers jours",
+	"Previous 7 days": "7 derniers jours",
+	"Profile Image": "Image de profil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (par exemple, Dites-moi un fait amusant sur l'Imperium romain)",
 	"Prompt Content": "Contenu du prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Tirer \"{{searchValue}}\" de Ollama.com",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull Progress": "Progression du tirage",
 	"Query Params": "Paramètres de requête",
 	"RAG Template": "Modèle RAG",
 	"Raw Format": "Format brut",
-	"Read Aloud": "",
+	"Read Aloud": "Lire à l'oreille",
 	"Record voice": "Enregistrer la voix",
 	"Redirecting you to OpenWebUI Community": "Vous redirige vers la communauté OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Refusé quand il ne devrait pas l'être",
+	"Regenerate": "Régénérer",
 	"Release Notes": "Notes de version",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Supprimer",
+	"Remove Model": "Supprimer le modèle",
+	"Rename": "Renommer",
 	"Repeat Last N": "Répéter les derniers N",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Request Mode": "Mode de demande",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Modèle de reranking",
+	"Reranking model disabled": "Modèle de reranking désactivé",
+	"Reranking model set to \"{{reranking_model}}\"": "Modèle de reranking défini sur \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Réinitialiser le stockage de vecteur",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse dans le presse-papiers",
 	"Role": "Rôle",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Enregistrer",
 	"Save & Create": "Enregistrer & Créer",
 	"Save & Update": "Enregistrer & Mettre à jour",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Scan terminé !",
 	"Scan for documents from {{path}}": "Scanner des documents depuis {{path}}",
 	"Search": "Recherche",
-	"Search a model": "",
+	"Search a model": "Rechercher un modèle",
 	"Search Documents": "Rechercher des documents",
 	"Search Prompts": "Rechercher des prompts",
 	"See readme.md for instructions": "Voir readme.md pour les instructions",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Sélectionner une instance Ollama",
 	"Select model": "Sélectionner un modèle",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Envoyer",
 	"Send a Message": "Envoyer un message",
 	"Send message": "Envoyer un message",
-	"September": "",
+	"September": "Septembre",
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Set as default": "Définir par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Définir le modèle d'embedding (par exemple {{model}})",
 	"Set Image Size": "Définir la taille de l'image",
 	"Set Model": "Définir le modèle",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Définir le modèle de reranking (par exemple {{model}})",
 	"Set Steps": "Définir les étapes",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Voice": "Définir la voix",
 	"Settings": "Paramètres",
 	"Settings saved successfully!": "Paramètres enregistrés avec succès !",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Partager",
+	"Share Chat": "Partager le chat",
 	"Share to OpenWebUI Community": "Partager avec la communauté OpenWebUI",
 	"short-summary": "résumé court",
 	"Show": "Montrer",
 	"Show Additional Params": "Afficher les paramètres supplémentaires",
 	"Show shortcuts": "Afficher les raccourcis",
-	"Showcased creativity": "",
+	"Showcased creativity": "Créativité affichée",
 	"sidebar": "barre latérale",
 	"Sign in": "Se connecter",
 	"Sign Out": "Se déconnecter",
 	"Sign up": "S'inscrire",
-	"Signing in": "",
+	"Signing in": "Connexion en cours",
 	"Source": "Source",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Séquence d'arrêt",
 	"STT Settings": "Paramètres STT",
 	"Submit": "Soumettre",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Sous-titre (par exemple, sur l'empire romain)",
 	"Success": "Succès",
 	"Successfully updated.": "Mis à jour avec succès.",
-	"Suggested": "",
+	"Suggested": "Suggéré",
 	"Sync All": "Synchroniser tout",
 	"System": "Système",
 	"System Prompt": "Invite de système",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "Donnez-nous plus:",
 	"Temperature": "Température",
 	"Template": "Modèle",
 	"Text Completion": "Complétion de texte",
 	"Text-to-Speech Engine": "Moteur de synthèse vocale",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Merci pour votre feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Le score doit être une valeur comprise entre 0.0 (0%) et 1.0 (100%).",
 	"Theme": "Thème",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cela garantit que vos précieuses conversations sont en sécurité dans votre base de données. Merci !",
 	"This setting does not sync across browsers or devices.": "Ce paramètre ne se synchronise pas entre les navigateurs ou les appareils.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explication approfondie",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.",
 	"Title": "Titre",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Titre (par exemple, Dites-moi un fait amusant)",
 	"Title Auto-Generation": "Génération automatique de titre",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Le titre ne peut pas être une chaîne vide.",
 	"Title Generation Prompt": "Prompt de génération de titre",
 	"to": "à",
 	"To access the available model names for downloading,": "Pour accéder aux noms de modèles disponibles pour le téléchargement,",
 	"To access the GGUF models available for downloading,": "Pour accéder aux modèles GGUF disponibles pour le téléchargement,",
 	"to chat input.": "à l'entrée du chat.",
-	"Today": "",
+	"Today": "Aujourd'hui",
 	"Toggle settings": "Basculer les paramètres",
 	"Toggle sidebar": "Basculer la barre latérale",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Entrez l'URL de résolution (téléchargement) Hugging Face",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Mettre à jour et copier le lien",
 	"Update password": "Mettre à jour le mot de passe",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload files": "Téléverser des fichiers",
@@ -482,7 +482,7 @@
 	"URL Mode": "Mode URL",
 	"Use '#' in the prompt input to load and select your documents.": "Utilisez '#' dans l'entrée du prompt pour charger et sélectionner vos documents.",
 	"Use Gravatar": "Utiliser Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Utiliser les Initiales",
 	"user": "utilisateur",
 	"User Permissions": "Permissions d'utilisateur",
 	"Users": "Utilisateurs",
@@ -491,27 +491,27 @@
 	"variable": "variable",
 	"variable to have them replaced with clipboard content.": "variable pour les remplacer par le contenu du presse-papiers.",
 	"Version": "Version",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Attention : Si vous mettez à jour ou changez votre modèle d'intégration, vous devrez réimporter tous les documents.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Paramètres du chargeur Web",
+	"Web Params": "Paramètres Web",
+	"Webhook URL": "URL Webhook",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Settings": "Paramètres WebUI",
 	"WebUI will make requests to": "WebUI effectuera des demandes à",
 	"What’s New in": "Quoi de neuf dans",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Lorsque l'historique est désactivé, les nouveaux chats sur ce navigateur n'apparaîtront pas dans votre historique sur aucun de vos appareils.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Espace de travail",
 	"Write a prompt suggestion (e.g. Who are you?)": "Écrivez un prompt (e.x. Qui est-tu ?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Ecrivez un résumé en 50 mots [sujet ou mot-clé]",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "hier",
+	"You": "Vous",
+	"You have no archived conversations.": "Vous n'avez aucune conversation archivée.",
+	"You have shared this chat": "Vous avez partagé cette conversation.",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Paramètres du chargeur de Youtube"
 }

+ 92 - 92
src/lib/i18n/locales/he-IL/translation.json

@@ -11,7 +11,7 @@
 	"About": "אודות",
 	"Account": "חשבון",
 	"Accurate information": "מידע מדויק",
-	"Add": "",
+	"Add": "הוסף",
 	"Add a model": "הוסף מודל",
 	"Add a model tag name": "הוסף שם תג למודל",
 	"Add a short description about what this modelfile does": "הוסף תיאור קצר על מה שהקובץ מודל עושה",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "הוסף פקודה מותאמת אישית",
 	"Add Docs": "הוסף מסמכים",
 	"Add Files": "הוסף קבצים",
-	"Add Memory": "",
+	"Add Memory": "הוסף זיכרון",
 	"Add message": "הוסף הודעה",
 	"Add Model": "הוסף מודל",
 	"Add Tags": "הוסף תגים",
@@ -70,8 +70,8 @@
 	"Categories": "קטגוריות",
 	"Change Password": "שנה סיסמה",
 	"Chat": "צ'אט",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI של תיבת הדיבור",
+	"Chat direction": "כיוון צ'אט",
 	"Chat History": "היסטוריית צ'אט",
 	"Chat History is off for this browser.": "היסטוריית הצ'אט כבויה לדפדפן זה.",
 	"Chats": "צ'אטים",
@@ -174,7 +174,7 @@
 	"Enabled": "מופעל",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ודא שקובץ ה-CSV שלך כולל 4 עמודות בסדר הבא: שם, דוא\"ל, סיסמה, תפקיד.",
 	"Enter {{role}} message here": "הזן הודעת {{role}} כאן",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "הזן פרטים על עצמך כדי שLLMs יזכור",
 	"Enter Chunk Overlap": "הזן חפיפת נתונים",
 	"Enter Chunk Size": "הזן גודל נתונים",
 	"Enter Image Size (e.g. 512x512)": "הזן גודל תמונה (למשל 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "הגדרות כלליות",
 	"Generation Info": "מידע על היצירה",
 	"Good Response": "תגובה טובה",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "אין שיחות.",
 	"Hello, {{name}}": "שלום, {{name}}",
 	"Help": "עזרה",
@@ -254,7 +254,7 @@
 	"Light": "בהיר",
 	"Listening...": "מאזין...",
 	"LLMs can make mistakes. Verify important information.": "מודלים בשפה טבעית יכולים לטעות. אמת מידע חשוב.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "נוצר על ידי קהילת OpenWebUI",
 	"Make sure to enclose them with": "ודא להקיף אותם עם",
 	"Manage LiteLLM Models": "נהל מודלים של LiteLLM",
@@ -265,9 +265,9 @@
 	"Max Tokens": "מקסימום טוקנים",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "ניתן להוריד מקסימום 3 מודלים בו זמנית. אנא נסה שוב מאוחר יותר.",
 	"May": "מאי",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "מזכירים נגישים על ידי LLMs יוצגו כאן.",
+	"Memory": "זיכרון",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "הודעות שתשלח לאחר יצירת הקישור לא ישותפו. משתמשים עם כתובת האתר יוכלו לצפות בצ'אט המשותף.",
 	"Minimum Score": "ציון מינימלי",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "חילוץ תמונות מ-PDF (OCR)",
 	"pending": "ממתין",
 	"Permission denied when accessing microphone: {{error}}": "ההרשאה נדחתה בעת גישה למיקרופון: {{error}}",
-	"Personalization": "",
+	"Personalization": "תאור",
 	"Plain text (.txt)": "טקסט פשוט (.txt)",
 	"Playground": "אזור משחקים",
 	"Positive attitude": "גישה חיובית",
@@ -378,7 +378,7 @@
 	"Role": "תפקיד",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "שמור",
 	"Save & Create": "שמור וצור",
 	"Save & Update": "שמור ועדכן",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "בחר מופע של Ollama",
 	"Select model": "בחר מודל",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "שלח",
 	"Send a Message": "שלח הודעה",
 	"Send message": "שלח הודעה",
 	"September": "ספטמבר",
@@ -423,95 +423,95 @@
 	"Show shortcuts": "הצג קיצורי דרך",
 	"Showcased creativity": "הצגת יצירתיות",
 	"sidebar": "סרגל צד",
-	"Sign in": "",
-	"Sign Out": "",
-	"Sign up": "",
-	"Signing in": "",
-	"Source": "",
-	"Speech recognition error: {{error}}": "",
-	"Speech-to-Text Engine": "",
-	"SpeechRecognition API is not supported in this browser.": "",
-	"Stop Sequence": "",
-	"STT Settings": "",
+	"Sign in": "הירשם",
+	"Sign Out": "התנתקות",
+	"Sign up": "הרשמה",
+	"Signing in": "כניסה",
+	"Source": "מקור",
+	"Speech recognition error: {{error}}": "שגיאת תחקור שמע: {{error}}",
+	"Speech-to-Text Engine": "מנוע תחקור שמע",
+	"SpeechRecognition API is not supported in this browser.": "מנוע תחקור שמע אינו נתמך בדפדפן זה.",
+	"Stop Sequence": "סידור עצירה",
+	"STT Settings": "הגדרות חקירה של TTS",
 	"Submit": "שלח",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "תחקור (לדוגמה: על מעמד הרומי)",
 	"Success": "הצלחה",
-	"Successfully updated.": "",
-	"Suggested": "",
-	"Sync All": "",
+	"Successfully updated.": "עדכון הצלחה.",
+	"Suggested": "מומלץ",
+	"Sync All": "סנכרן הכל",
 	"System": "מערכת",
-	"System Prompt": "",
-	"Tags": "",
-	"Tell us more:": "",
-	"Temperature": "",
+	"System Prompt": "תגובת מערכת",
+	"Tags": "תגיות",
+	"Tell us more:": "תרשמו יותר:",
+	"Temperature": "טמפרטורה",
 	"Template": "תבנית",
-	"Text Completion": "",
+	"Text Completion": "תחילת טקסט",
 	"Text-to-Speech Engine": "מנוע טקסט לדיבור",
-	"Tfs Z": "",
+	"Tfs Z": "Tfs Z",
 	"Thanks for your feedback!": "תודה על המשוב שלך!",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "ציון צריך להיות ערך בין 0.0 (0%) ל-1.0 (100%)",
 	"Theme": "נושא",
-	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "",
-	"This setting does not sync across browsers or devices.": "",
-	"Thorough explanation": "",
-	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "",
-	"Title": "",
-	"Title (e.g. Tell me a fun fact)": "",
-	"Title Auto-Generation": "",
-	"Title cannot be an empty string.": "",
-	"Title Generation Prompt": "",
-	"to": "",
-	"To access the available model names for downloading,": "",
-	"To access the GGUF models available for downloading,": "",
-	"to chat input.": "",
-	"Today": "",
-	"Toggle settings": "",
-	"Toggle sidebar": "",
-	"Top K": "",
-	"Top P": "",
-	"Trouble accessing Ollama?": "",
-	"TTS Settings": "",
-	"Type Hugging Face Resolve (Download) URL": "",
-	"Uh-oh! There was an issue connecting to {{provider}}.": "",
-	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
-	"Update and Copy Link": "",
-	"Update password": "",
-	"Upload a GGUF model": "",
-	"Upload files": "",
-	"Upload Progress": "",
-	"URL Mode": "",
-	"Use '#' in the prompt input to load and select your documents.": "",
-	"Use Gravatar": "",
-	"Use Initials": "",
-	"user": "",
-	"User Permissions": "",
+	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "פעולה זו מבטיחה שהשיחות בעלות הערך שלך יישמרו באופן מאובטח במסד הנתונים העורפי שלך. תודה!",
+	"This setting does not sync across browsers or devices.": "הגדרה זו אינה מסתנכרנת בין דפדפנים או מכשירים.",
+	"Thorough explanation": "תיאור מפורט",
+	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "טיפ: עדכן חריצים משתנים מרובים ברציפות על-ידי לחיצה על מקש Tab בקלט הצ'אט לאחר כל החלפה.",
+	"Title": "שם",
+	"Title (e.g. Tell me a fun fact)": "שם (לדוגמה: תרגום)",
+	"Title Auto-Generation": "יצירת שם אוטומטית",
+	"Title cannot be an empty string.": "שם לא יכול להיות מחרוזת ריקה.",
+	"Title Generation Prompt": "שאלה ליצירת שם",
+	"to": "ל",
+	"To access the available model names for downloading,": "כדי לגשת לשמות הדגמים הזמינים להורדה,",
+	"To access the GGUF models available for downloading,": "כדי לגשת לדגמי GGUF הזמינים להורדה,",
+	"to chat input.": "לקלטת שיחה.",
+	"Today": "היום",
+	"Toggle settings": "החלפת מצב של הגדרות",
+	"Toggle sidebar": "החלפת מצב של סרגל הצד",
+	"Top K": "Top K",
+	"Top P": "Top P",
+	"Trouble accessing Ollama?": "קשה לגשת לOllama?",
+	"TTS Settings": "הגדרות TTS",
+	"Type Hugging Face Resolve (Download) URL": "הקלד כתובת URL של פתרון פנים מחבק (הורד)",
+	"Uh-oh! There was an issue connecting to {{provider}}.": "או-הו! אירעה בעיה בהתחברות ל- {{provider}}.",
+	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "סוג קובץ לא ידוע '{{file_type}}', אך מקבל ומתייחס אליו כטקסט רגיל",
+	"Update and Copy Link": "עדכן ושכפל קישור",
+	"Update password": "עדכן סיסמה",
+	"Upload a GGUF model": "העלה מודל GGUF",
+	"Upload files": "העלה קבצים",
+	"Upload Progress": "תקדמות העלאה",
+	"URL Mode": "מצב URL",
+	"Use '#' in the prompt input to load and select your documents.": "השתמש ב- '#' בקלט הבקשה כדי לטעון ולבחור את המסמכים שלך.",
+	"Use Gravatar": "שימוש ב Gravatar",
+	"Use Initials": "שימוש ב initials",
+	"user": "משתמש",
+	"User Permissions": "הרשאות משתמש",
 	"Users": "משתמשים",
-	"Utilize": "",
-	"Valid time units:": "",
-	"variable": "",
-	"variable to have them replaced with clipboard content.": "",
+	"Utilize": "שימוש",
+	"Valid time units:": "יחידות זמן תקינות:",
+	"variable": "משתנה",
+	"variable to have them replaced with clipboard content.": "משתנה להחליפו ב- clipboard תוכן.",
 	"Version": "גרסה",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "אזהרה: אם תעדכן או תשנה את מודל ההטבעה שלך, יהיה עליך לייבא מחדש את כל המסמכים.",
 	"Web": "רשת",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
-	"WebUI Add-ons": "",
-	"WebUI Settings": "",
-	"WebUI will make requests to": "",
-	"What’s New in": "",
-	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "",
-	"Whisper (Local)": "",
-	"Workspace": "",
-	"Write a prompt suggestion (e.g. Who are you?)": "",
-	"Write a summary in 50 words that summarizes [topic or keyword].": "",
+	"Web Loader Settings": "הגדרות טעינת אתר",
+	"Web Params": "פרמטרים Web",
+	"Webhook URL": "URL Webhook",
+	"WebUI Add-ons": "נסיונות WebUI",
+	"WebUI Settings": "הגדרות WebUI",
+	"WebUI will make requests to": "WebUI יבקש לבקש",
+	"What’s New in": "מה חדש ב",
+	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "כאשר ההיסטוריה מושבתת, צ'אטים חדשים בדפדפן זה לא יופיעו בהיסטוריה שלך באף אחד מהמכשירים שלך.",
+	"Whisper (Local)": "ושפה (מקומית)",
+	"Workspace": "סביבה",
+	"Write a prompt suggestion (e.g. Who are you?)": "כתוב הצעה מהירה (למשל, מי אתה?)",
+	"Write a summary in 50 words that summarizes [topic or keyword].": "כתוב סיכום ב-50 מילים שמסכם [נושא או מילת מפתח].",
 	"Yes": "",
 	"Yesterday": "אתמול",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
-	"You're a helpful assistant.": "",
-	"You're now logged in.": "",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"You": "אתה",
+	"You have no archived conversations.": "אין לך שיחות בארכיון.",
+	"You have shared this chat": "שיתפת את השיחה הזו",
+	"You're a helpful assistant.": "אתה עוזר מועיל.",
+	"You're now logged in.": "כעת אתה מחובר.",
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "הגדרות Youtube Loader"
 }

+ 92 - 92
src/lib/i18n/locales/hi-IN/translation.json

@@ -11,7 +11,7 @@
 	"About": "हमारे बारे में",
 	"Account": "खाता",
 	"Accurate information": "सटीक जानकारी",
-	"Add": "",
+	"Add": "जोड़ें",
 	"Add a model": "एक मॉडल जोड़ें",
 	"Add a model tag name": "एक मॉडल टैग नाम जोड़ें",
 	"Add a short description about what this modelfile does": "यह मॉडलफ़ाइल क्या करती है इसके बारे में एक संक्षिप्त विवरण जोड़ें",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "अनुकूल संकेत जोड़ें",
 	"Add Docs": "दस्तावेज़ जोड़ें",
 	"Add Files": "फाइलें जोड़ें",
-	"Add Memory": "",
+	"Add Memory": "मेमोरी जोड़ें",
 	"Add message": "संदेश डालें",
 	"Add Model": "मॉडल जोड़ें",
 	"Add Tags": "टैगों को जोड़ें",
@@ -31,7 +31,7 @@
 	"Admin Settings": "व्यवस्थापक सेटिंग्स",
 	"Advanced Parameters": "उन्नत पैरामीटर",
 	"all": "सभी",
-	"All Documents": "",
+	"All Documents": "सभी डॉक्यूमेंट्स",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "सभी उपयोगकर्ता",
 	"Allow": "अनुमति दें",
@@ -40,13 +40,13 @@
 	"Already have an account?": "क्या आपके पास पहले से एक खाता मौजूद है?",
 	"an assistant": "एक सहायक",
 	"and": "और",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "और एक नई साझा लिंक बनाएं.",
 	"API Base URL": "एपीआई बेस यूआरएल",
 	"API Key": "एपीआई कुंजी",
 	"API Key created.": "एपीआई कुंजी बनाई गई",
 	"API keys": "एपीआई कुंजियाँ",
-	"API RPM": "",
-	"April": "",
+	"API RPM": "एपीआई रीपीएम",
+	"April": "अप्रैल",
 	"Archive": "पुरालेख",
 	"Archived Chats": "संग्रहीत चैट",
 	"are allowed - Activate this command by typing": "अनुमति है - टाइप करके इस कमांड को सक्रिय करें",
@@ -54,7 +54,7 @@
 	"Attach file": "फ़ाइल atta",
 	"Attention to detail": "विस्तार पर ध्यान",
 	"Audio": "ऑडियो",
-	"August": "",
+	"August": "अगस्त",
 	"Auto-playback response": "ऑटो-प्लेबैक प्रतिक्रिया",
 	"Auto-send input after 3 sec.": "3 सेकंड के बाद स्वचालित रूप से इनपुट भेजें।",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 बेस यूआरएल",
@@ -62,16 +62,16 @@
 	"available!": "उपलब्ध!",
 	"Back": "पीछे",
 	"Bad Response": "ख़राब प्रतिक्रिया",
-	"before": "",
+	"before": "पहले",
 	"Being lazy": "आलसी होना",
 	"Builder Mode": "बिल्डर मोड",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "वेबसाइटों के लिए SSL सुनिश्चिती को छोड़ें",
 	"Cancel": "रद्द करें",
 	"Categories": "श्रेणियाँ",
 	"Change Password": "पासवर्ड बदलें",
 	"Chat": "चैट करें",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "चैट बॉली",
+	"Chat direction": "चैट दिशा",
 	"Chat History": "चैट का इतिहास",
 	"Chat History is off for this browser.": "इस ब्राउज़र के लिए चैट इतिहास बंद है।",
 	"Chats": "सभी चैट",
@@ -84,7 +84,7 @@
 	"Chunk Size": "चंक आकार",
 	"Citation": "उद्धरण",
 	"Click here for help.": "सहायता के लिए यहां क्लिक करें।",
-	"Click here to": "",
+	"Click here to": "यहां क्लिक करें",
 	"Click here to check other modelfiles.": "अन्य मॉडल फ़ाइलों की जांच के लिए यहां क्लिक करें।",
 	"Click here to select": "चयन करने के लिए यहां क्लिक करें।",
 	"Click here to select a csv file.": "सीएसवी फ़ाइल का चयन करने के लिए यहां क्लिक करें।",
@@ -112,8 +112,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "निम्नलिखित क्वेरी के लिए हेडर के रूप में एक संक्षिप्त, 3-5 शब्द वाक्यांश बनाएं, 3-5 शब्द सीमा का सख्ती से पालन करें और 'शीर्षक' शब्द के उपयोग से बचें:",
 	"Create a modelfile": "एक मॉडल फ़ाइल बनाएं",
 	"Create Account": "खाता बनाएं",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "नया क्रिप्टोग्राफिक क्षेत्र बनाएं",
+	"Create new secret key": "नया क्रिप्टोग्राफिक क्षेत्र बनाएं",
 	"Created at": "किस समय बनाया गया",
 	"Created At": "किस समय बनाया गया",
 	"Current Model": "वर्तमान मॉडल",
@@ -121,10 +121,10 @@
 	"Current Password": "वर्तमान पासवर्ड",
 	"Custom": "कस्टम संस्करण",
 	"Customize Ollama models for a specific purpose": "किसी विशिष्ट उद्देश्य के लिए ओलामा मॉडल को अनुकूलित करें",
-	"Dark": "",
-	"Dashboard": "",
+	"Dark": "डार्क",
+	"Dashboard": "डैशबोर्ड",
 	"Database": "डेटाबेस",
-	"December": "",
+	"December": "डिसेंबर",
 	"Default": "डिफ़ॉल्ट",
 	"Default (Automatic1111)": "डिफ़ॉल्ट (Automatic1111)",
 	"Default (SentenceTransformers)": "डिफ़ॉल्ट (SentenceTransformers)",
@@ -138,13 +138,13 @@
 	"Delete chat": "चैट हटाएं",
 	"Delete Chat": "चैट हटाएं",
 	"Delete Chats": "चैट हटाएं",
-	"delete this link": "",
+	"delete this link": "इस लिंक को हटाएं",
 	"Delete User": "उपभोक्ता मिटायें",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} हटा दिया गया",
 	"Deleted {{tagName}}": "{{tagName}} हटा दिया गया",
 	"Description": "विवरण",
 	"Didn't fully follow instructions": "निर्देशों का पूरी तरह से पालन नहीं किया",
-	"Disabled": "",
+	"Disabled": "अक्षरण",
 	"Discover a modelfile": "मॉडल फ़ाइल खोजें",
 	"Discover a prompt": "प्रॉम्प्ट खोजें",
 	"Discover, download, and explore custom prompts": "कस्टम प्रॉम्प्ट को खोजें, डाउनलोड करें और एक्सप्लोर करें",
@@ -158,7 +158,7 @@
 	"Don't have an account?": "कोई खाता नहीं है?",
 	"Don't like the style": "शैली पसंद नहीं है",
 	"Download": "डाउनलोड",
-	"Download canceled": "",
+	"Download canceled": "डाउनलोड रद्द किया गया",
 	"Download Database": "डेटाबेस डाउनलोड करें",
 	"Drop any files here to add to the conversation": "बातचीत में जोड़ने के लिए कोई भी फ़ाइल यहां छोड़ें",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "जैसे '30s', '10m', मान्य समय इकाइयाँ 's', 'm', 'h' हैं।",
@@ -166,7 +166,7 @@
 	"Edit Doc": "दस्तावेज़ संपादित करें",
 	"Edit User": "यूजर को संपादित करो",
 	"Email": "ईमेल",
-	"Embedding Model": "",
+	"Embedding Model": "मॉडेल अनुकूलन",
 	"Embedding Model Engine": "एंबेडिंग मॉडल इंजन",
 	"Embedding model set to \"{{embedding_model}}\"": "एम्बेडिंग मॉडल को \"{{embedding_model}}\" पर सेट किया गया",
 	"Enable Chat History": "चैट इतिहास सक्रिय करें",
@@ -174,11 +174,11 @@
 	"Enabled": "सक्रिय",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "सुनिश्चित करें कि आपकी CSV फ़ाइल में इस क्रम में 4 कॉलम शामिल हैं: नाम, ईमेल, पासवर्ड, भूमिका।",
 	"Enter {{role}} message here": "यहां {{role}} संदेश दर्ज करें",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "अपने एलएलएम को याद करने के लिए अपने बारे में एक विवरण दर्ज करें",
 	"Enter Chunk Overlap": "चंक ओवरलैप दर्ज करें",
 	"Enter Chunk Size": "खंड आकार दर्ज करें",
 	"Enter Image Size (e.g. 512x512)": "छवि का आकार दर्ज करें (उदा. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "भाषा कोड दर्ज करें",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "LiteLLM API Base URL दर्ज करें (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "LiteLLM API Key दर्ज करें (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "LiteLLM API RPM दर्ज करें (litellm_params.rpm) ",
@@ -191,7 +191,7 @@
 	"Enter stop sequence": "स्टॉप अनुक्रम दर्ज करें",
 	"Enter Top K": "शीर्ष K दर्ज करें",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "यूआरएल दर्ज करें (उदा. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "यूआरएल दर्ज करें (उदा. http://localhost:11434)",
 	"Enter Your Email": "अपना ईमेल दर्ज करें",
 	"Enter Your Full Name": "अपना पूरा नाम भरें",
 	"Enter Your Password": "अपना पासवर्ड भरें",
@@ -204,7 +204,7 @@
 	"Export Prompts": "प्रॉम्प्ट निर्यात करें",
 	"Failed to create API Key.": "एपीआई कुंजी बनाने में विफल.",
 	"Failed to read clipboard contents": "क्लिपबोर्ड सामग्री पढ़ने में विफल",
-	"February": "",
+	"February": "फरवरी",
 	"Feel free to add specific details": "विशिष्ट विवरण जोड़ने के लिए स्वतंत्र महसूस करें",
 	"File Mode": "फ़ाइल मोड",
 	"File not found.": "फ़ाइल प्राप्त नहीं हुई।",
@@ -219,10 +219,10 @@
 	"General Settings": "सामान्य सेटिंग्स",
 	"Generation Info": "जनरेशन की जानकारी",
 	"Good Response": "अच्छी प्रतिक्रिया",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "कोई बातचीत नहीं है",
 	"Hello, {{name}}": "नमस्ते, {{name}}",
-	"Help": "",
+	"Help": "मदद",
 	"Hide": "छुपाएं",
 	"Hide Additional Params": "अतिरिक्त पैरामीटर छिपाएँ",
 	"How can I help you today?": "आज मैं आपकी कैसे मदद कर सकता हूँ?",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui चलाते समय `--api` ध्वज शामिल करें",
 	"Input commands": "इनपुट क命",
 	"Interface": "इंटरफेस",
-	"Invalid Tag": "",
+	"Invalid Tag": "अवैध टैग",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "जनवरी",
 	"join our Discord for help.": "मदद के लिए हमारे डिस्कोर्ड में शामिल हों।",
-	"JSON": "",
-	"July": "",
-	"June": "",
+	"JSON": "ज्ञान प्रकार",
+	"July": "जुलाई",
+	"June": "जुन",
 	"JWT Expiration": "JWT समाप्ति",
-	"JWT Token": "",
+	"JWT Token": "जट टोकन",
 	"Keep Alive": "क्रियाशील रहो",
 	"Keyboard shortcuts": "कीबोर्ड शॉर्टकट",
 	"Language": "भाषा",
 	"Last Active": "पिछली बार सक्रिय",
-	"Light": "",
+	"Light": "सुन",
 	"Listening...": "सुन रहा हूँ...",
 	"LLMs can make mistakes. Verify important information.": "एलएलएम गलतियाँ कर सकते हैं। महत्वपूर्ण जानकारी सत्यापित करें.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "OpenWebUI समुदाय द्वारा निर्मित",
 	"Make sure to enclose them with": "उन्हें संलग्न करना सुनिश्चित करें",
 	"Manage LiteLLM Models": "LiteLLM मॉडल प्रबंधित करें",
 	"Manage Model Information": "",
 	"Manage Models": "मॉडल प्रबंधित करें",
 	"Manage Ollama Models": "Ollama मॉडल प्रबंधित करें",
-	"March": "",
+	"March": "मार्च",
 	"Max Tokens": "अधिकतम टोकन",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "अधिकतम 3 मॉडल एक साथ डाउनलोड किये जा सकते हैं। कृपया बाद में पुन: प्रयास करें।",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"May": "मेई",
+	"Memories accessible by LLMs will be shown here.": "एलएलएम द्वारा सुलभ यादें यहां दिखाई जाएंगी।",
+	"Memory": "मेमोरी",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "अपना लिंक बनाने के बाद आपके द्वारा भेजे गए संदेश साझा नहीं किए जाएंगे। यूआरएल वाले यूजर्स शेयर की गई चैट देख पाएंगे।",
 	"Minimum Score": "न्यूनतम स्कोर",
-	"Mirostat": "",
-	"Mirostat Eta": "",
-	"Mirostat Tau": "",
-	"MMMM DD, YYYY": "",
-	"MMMM DD, YYYY HH:mm": "",
+	"Mirostat": "मिरोस्टा",
+	"Mirostat Eta": "मिरोस्टा ईटा",
+	"Mirostat Tau": "मिरोस्तात ताऊ",
+	"MMMM DD, YYYY": "MMMM DD, YYYY",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "मॉडल '{{modelName}}' सफलतापूर्वक डाउनलोड हो गया है।",
 	"Model '{{modelTag}}' is already in queue for downloading.": "मॉडल '{{modelTag}}' पहले से ही डाउनलोड करने के लिए कतार में है।",
 	"Model {{modelId}} not found": "मॉडल {{modelId}} नहीं मिला",
@@ -301,21 +301,21 @@
 	"New Chat": "नई चैट",
 	"New Password": "नया पासवर्ड",
 	"No": "",
-	"No results found": "",
+	"No results found": "कोई परिणाम नहीं मिला",
 	"No source available": "कोई स्रोत उपलब्ध नहीं है",
 	"Not factually correct": "तथ्यात्मक रूप से सही नहीं है",
 	"Not sure what to add?": "निश्चित नहीं कि क्या जोड़ें?",
 	"Not sure what to write? Switch to": "मैं आश्वस्त नहीं हूं कि क्या लिखना है? स्विच करें",
 	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "ध्यान दें: यदि आप न्यूनतम स्कोर निर्धारित करते हैं, तो खोज केवल न्यूनतम स्कोर से अधिक या उसके बराबर स्कोर वाले दस्तावेज़ वापस लाएगी।",
 	"Notifications": "सूचनाएं",
-	"November": "",
-	"October": "",
+	"November": "नवंबर",
+	"October": "अक्टूबर",
 	"Off": "बंद",
 	"Okay, Let's Go!": "ठीक है, चलिए चलते हैं!",
-	"OLED Dark": "",
-	"Ollama": "",
-	"Ollama Base URL": "",
-	"Ollama Version": "",
+	"OLED Dark": "OLEDescuro",
+	"Ollama": "Ollama",
+	"Ollama Base URL": "Ollama URL",
+	"Ollama Version": "Ollama Version",
 	"On": "चालू",
 	"Only": "केवल",
 	"Only alphanumeric characters and hyphens are allowed in the command string.": "कमांड स्ट्रिंग में केवल अल्फ़ान्यूमेरिक वर्ण और हाइफ़न की अनुमति है।",
@@ -323,36 +323,36 @@
 	"Oops! Looks like the URL is invalid. Please double-check and try again.": "उफ़! ऐसा लगता है कि यूआरएल अमान्य है. कृपया दोबारा जांचें और पुनः प्रयास करें।",
 	"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "उफ़! आप एक असमर्थित विधि (केवल फ्रंटएंड) का उपयोग कर रहे हैं। कृपया बैकएंड से WebUI सर्वे करें।",
 	"Open": "खोलें",
-	"Open AI": "",
-	"Open AI (Dall-E)": "",
+	"Open AI": "Open AI",
+	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "नई चैट खोलें",
-	"OpenAI": "",
-	"OpenAI API": "",
-	"OpenAI API Config": "",
+	"OpenAI": "OpenAI",
+	"OpenAI API": "OpenAI API",
+	"OpenAI API Config": "OpenAI API कॉन्फिग",
 	"OpenAI API Key is required.": "OpenAI API कुंजी आवश्यक है",
 	"OpenAI URL/Key required.": "OpenAI URL/Key आवश्यक है।",
 	"or": "या",
 	"Other": "अन्य",
-	"Overview": "",
+	"Overview": "अवलोकन",
 	"Parameters": "पैरामीटर",
 	"Password": "पासवर्ड",
 	"PDF document (.pdf)": "PDF दस्तावेज़ (.pdf)",
 	"PDF Extract Images (OCR)": "PDF छवियाँ निकालें (OCR)",
 	"pending": "लंबित",
 	"Permission denied when accessing microphone: {{error}}": "माइक्रोफ़ोन तक पहुँचने पर अनुमति अस्वीकृत: {{error}}",
-	"Personalization": "",
+	"Personalization": "पेरसनलाइज़मेंट",
 	"Plain text (.txt)": "सादा पाठ (.txt)",
 	"Playground": "कार्यक्षेत्र",
 	"Positive attitude": "सकारात्मक रवैया",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
+	"Previous 30 days": "पिछले 30 दिन",
+	"Previous 7 days": "पिछले 7 दिन",
 	"Profile Image": "प्रोफ़ाइल छवि",
-	"Prompt": "",
+	"Prompt": "प्रचलन",
 	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "प्रॉम्प्ट (उदाहरण के लिए मुझे रोमन साम्राज्य के बारे में एक मजेदार तथ्य बताएं)",
 	"Prompt Content": "प्रॉम्प्ट सामग्री",
 	"Prompt suggestions": "प्रॉम्प्ट सुझाव",
 	"Prompts": "प्रॉम्प्ट",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" को Ollama.com से खींचें",
 	"Pull a model from Ollama.com": "Ollama.com से एक मॉडल खींचें",
 	"Pull Progress": "प्रगति खींचें",
 	"Query Params": "क्वेरी पैरामीटर",
@@ -365,20 +365,20 @@
 	"Regenerate": "पुनः जेनरेट",
 	"Release Notes": "रिलीज नोट्स",
 	"Remove": "हटा दें",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove Model": "मोडेल हटाएँ",
+	"Rename": "नाम बदलें",
 	"Repeat Last N": "अंतिम N दोहराएँ",
 	"Repeat Penalty": "पुन: दंड",
 	"Request Mode": "अनुरोध मोड",
-	"Reranking Model": "",
+	"Reranking Model": "रीरैकिंग मोड",
 	"Reranking model disabled": "पुनर्रैंकिंग मॉडल अक्षम किया गया",
 	"Reranking model set to \"{{reranking_model}}\"": "रीरैंकिंग मॉडल को \"{{reranking_model}}\" पर \u200b\u200bसेट किया गया",
 	"Reset Vector Storage": "वेक्टर संग्रहण रीसेट करें",
 	"Response AutoCopy to Clipboard": "क्लिपबोर्ड पर प्रतिक्रिया ऑटोकॉपी",
 	"Role": "भूमिका",
-	"Rosé Pine": "",
-	"Rosé Pine Dawn": "",
-	"RTL": "",
+	"Rosé Pine": "रोसे पिन",
+	"Rosé Pine Dawn": "रोसे पिन डेन",
+	"RTL": "RTL",
 	"Save": "सहेजें",
 	"Save & Create": "सहेजें और बनाएं",
 	"Save & Update": "सहेजें और अपडेट करें",
@@ -398,17 +398,17 @@
 	"Select an Ollama instance": "एक Ollama Instance चुनें",
 	"Select model": "मॉडल चुनें",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "भेज",
 	"Send a Message": "एक संदेश भेजो",
 	"Send message": "मेसेज भेजें",
-	"September": "",
+	"September": "सितंबर",
 	"Server connection verified": "सर्वर कनेक्शन सत्यापित",
 	"Set as default": "डिफाल्ट के रूप में सेट",
 	"Set Default Model": "डिफ़ॉल्ट मॉडल सेट करें",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "ईम्बेडिंग मॉडल सेट करें (उदाहरण: {{model}})",
 	"Set Image Size": "छवि का आकार सेट करें",
-	"Set Model": "",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set Model": "मॉडल सेट करें",
+	"Set reranking model (e.g. {{model}})": "रीकरण मॉडल सेट करें (उदाहरण: {{model}})",
 	"Set Steps": "चरण निर्धारित करें",
 	"Set Title Auto-Generation Model": "शीर्षक ऑटो-जेनरेशन मॉडल सेट करें",
 	"Set Voice": "आवाज सेट करें",
@@ -437,7 +437,7 @@
 	"Subtitle (e.g. about the Roman Empire)": "उपशीर्षक (जैसे रोमन साम्राज्य के बारे में)",
 	"Success": "संपन्न",
 	"Successfully updated.": "सफलतापूर्वक उत्परिवर्तित।",
-	"Suggested": "",
+	"Suggested": "सुझावी",
 	"Sync All": "सभी को सिंक करें",
 	"System": "सिस्टम",
 	"System Prompt": "सिस्टम प्रॉम्प्ट",
@@ -447,7 +447,7 @@
 	"Template": "टेम्पलेट",
 	"Text Completion": "पाठ समापन",
 	"Text-to-Speech Engine": "टेक्स्ट-टू-स्पीच इंजन",
-	"Tfs Z": "",
+	"Tfs Z": "टफ्स Z",
 	"Thanks for your feedback!": "आपकी प्रतिक्रिया के लिए धन्यवाद!",
 	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "स्कोर का मान 0.0 (0%) और 1.0 (100%) के बीच होना चाहिए।",
 	"Theme": "थीम",
@@ -458,13 +458,13 @@
 	"Title": "शीर्षक",
 	"Title (e.g. Tell me a fun fact)": "शीर्षक (उदा. मुझे एक मज़ेदार तथ्य बताएं)",
 	"Title Auto-Generation": "शीर्षक ऑटो-जेनरेशन",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "शीर्षक नहीं खाली पाठ हो सकता है.",
 	"Title Generation Prompt": "शीर्षक जनरेशन प्रॉम्प्ट",
-	"to": "",
+	"to": "तक",
 	"To access the available model names for downloading,": "डाउनलोड करने के लिए उपलब्ध मॉडल नामों तक पहुंचने के लिए,",
 	"To access the GGUF models available for downloading,": "डाउनलोडिंग के लिए उपलब्ध GGUF मॉडल तक पहुँचने के लिए,",
 	"to chat input.": "इनपुट चैट करने के लिए.",
-	"Today": "",
+	"Today": "आज",
 	"Toggle settings": "सेटिंग्स टॉगल करें",
 	"Toggle sidebar": "साइडबार टॉगल करें",
 	"Top K": "शीर्ष  K",
@@ -479,7 +479,7 @@
 	"Upload a GGUF model": "GGUF मॉडल अपलोड करें",
 	"Upload files": "फाइलें अपलोड करें",
 	"Upload Progress": "प्रगति अपलोड करें",
-	"URL Mode": "",
+	"URL Mode": "URL मोड",
 	"Use '#' in the prompt input to load and select your documents.": "अपने दस्तावेज़ों को लोड करने और चुनने के लिए शीघ्र इनपुट में '#' का उपयोग करें।",
 	"Use Gravatar": "Gravatar का प्रयोग करें",
 	"Use Initials": "प्रथमाक्षर का प्रयोग करें",
@@ -488,30 +488,30 @@
 	"Users": "उपयोगकर्ताओं",
 	"Utilize": "उपयोग करें",
 	"Valid time units:": "मान्य समय इकाइयाँ:",
-	"variable": "",
+	"variable": "वेरिएबल",
 	"variable to have them replaced with clipboard content.": "उन्हें क्लिपबोर्ड सामग्री से बदलने के लिए वेरिएबल।",
 	"Version": "संस्करण",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "चेतावनी: यदि आप अपने एम्बेडिंग मॉडल को अपडेट या बदलते हैं, तो आपको सभी दस्तावेज़ों को फिर से आयात करने की आवश्यकता होगी।",
 	"Web": "वेब",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
-	"WebUI Add-ons": "",
+	"Web Loader Settings": "वेब लोडर सेटिंग्स",
+	"Web Params": "वेब पैरामीटर",
+	"Webhook URL": "वेबहुक URL",
+	"WebUI Add-ons": "वेबयू ऐड-ons",
 	"WebUI Settings": "WebUI सेटिंग्स",
 	"WebUI will make requests to": "WebUI अनुरोध करेगा",
 	"What’s New in": "इसमें नया क्या है",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "जब इतिहास बंद हो जाता है, तो इस ब्राउज़र पर नई चैट आपके किसी भी डिवाइस पर इतिहास में दिखाई नहीं देंगी।",
 	"Whisper (Local)": "Whisper (स्थानीय)",
-	"Workspace": "",
+	"Workspace": "वर्कस्पेस",
 	"Write a prompt suggestion (e.g. Who are you?)": "एक त्वरित सुझाव लिखें (जैसे कि आप कौन हैं?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "50 शब्दों में एक सारांश लिखें जो [विषय या कीवर्ड] का सारांश प्रस्तुत करता हो।",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "कल",
+	"You": "आप",
+	"You have no archived conversations.": "आपको कोई अंकित चैट नहीं है।",
+	"You have shared this chat": "आपने इस चैट को शेयर किया है",
 	"You're a helpful assistant.": "आप एक सहायक सहायक हैं",
 	"You're now logged in.": "अब आप लॉग इन हो गए हैं",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "यूट्यूब लोडर सेटिंग्स"
 }

+ 14 - 14
src/lib/i18n/locales/hr-HR/translation.json

@@ -11,7 +11,7 @@
 	"About": "O",
 	"Account": "Račun",
 	"Accurate information": "Točne informacije",
-	"Add": "",
+	"Add": "Dodaj",
 	"Add a model": "Dodaj model",
 	"Add a model tag name": "Dodaj oznaku modela",
 	"Add a short description about what this modelfile does": "Dodajte kratak opis što ova datoteka modela radi",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Dodaj prilagođeni prompt",
 	"Add Docs": "Dodaj dokumente",
 	"Add Files": "Dodaj datoteke",
-	"Add Memory": "",
+	"Add Memory": "Dodaj memoriju",
 	"Add message": "Dodaj poruku",
 	"Add Model": "Dodaj model",
 	"Add Tags": "Dodaj oznake",
@@ -70,8 +70,8 @@
 	"Categories": "Kategorije",
 	"Change Password": "Promijeni lozinku",
 	"Chat": "Razgovor",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Buble UI razgovora",
+	"Chat direction": "Razgovor smer",
 	"Chat History": "Povijest razgovora",
 	"Chat History is off for this browser.": "Povijest razgovora je isključena za ovaj preglednik.",
 	"Chats": "Razgovori",
@@ -174,7 +174,7 @@
 	"Enabled": "Omogućeno",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Provjerite da vaša CSV datoteka uključuje 4 stupca u ovom redoslijedu: Ime, Email, Lozinka, Uloga.",
 	"Enter {{role}} message here": "Unesite poruku {{role}} ovdje",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Unesite detalje o sebi za LLM-e da ih podsjećaju",
 	"Enter Chunk Overlap": "Unesite preklapanje dijelova",
 	"Enter Chunk Size": "Unesite veličinu dijela",
 	"Enter Image Size (e.g. 512x512)": "Unesite veličinu slike (npr. 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "Opće postavke",
 	"Generation Info": "Informacije o generaciji",
 	"Good Response": "Dobar odgovor",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "nema razgovora.",
 	"Hello, {{name}}": "Bok, {{name}}",
 	"Help": "Pomoć",
@@ -254,7 +254,7 @@
 	"Light": "Svijetlo",
 	"Listening...": "Slušanje...",
 	"LLMs can make mistakes. Verify important information.": "LLM-ovi mogu pogriješiti. Provjerite važne informacije.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Izradio OpenWebUI Community",
 	"Make sure to enclose them with": "Provjerite da ih zatvorite s",
 	"Manage LiteLLM Models": "Upravljajte LiteLLM modelima",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Maksimalni tokeni",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maksimalno 3 modela mogu se preuzeti istovremeno. Pokušajte ponovo kasnije.",
 	"May": "Svibanj",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Memorije dostupne za LLM-ove će se ovdje prikazati.",
+	"Memory": "Memorija",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Poruke koje šaljete nakon kreiranja veze neće biti deljene. Korisnici sa URL adresom će moći da vide deljeno ćaskanje.",
 	"Minimum Score": "Minimalna ocjena",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF izdvajanje slika (OCR)",
 	"pending": "u tijeku",
 	"Permission denied when accessing microphone: {{error}}": "Dopuštenje odbijeno prilikom pristupa mikrofonu: {{error}}",
-	"Personalization": "",
+	"Personalization": "Personalizacija",
 	"Plain text (.txt)": "Običan tekst (.txt)",
 	"Playground": "Igralište",
 	"Positive attitude": "Pozitivan stav",
@@ -378,7 +378,7 @@
 	"Role": "Uloga",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Spremi",
 	"Save & Create": "Spremi i stvori",
 	"Save & Update": "Spremi i ažuriraj",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Odaberite Ollama instancu",
 	"Select model": "Odaberite model",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Pošalji",
 	"Send a Message": "Pošaljite poruku",
 	"Send message": "Pošalji poruku",
 	"September": "Rujan",
@@ -502,7 +502,7 @@
 	"What’s New in": "Što je novo u",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Kada je povijest isključena, novi razgovori na ovom pregledniku neće se pojaviti u vašoj povijesti na bilo kojem od vaših uređaja.",
 	"Whisper (Local)": "Whisper (lokalno)",
-	"Workspace": "",
+	"Workspace": "Radni prostor",
 	"Write a prompt suggestion (e.g. Who are you?)": "Napišite prijedlog prompta (npr. Tko si ti?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Napišite sažetak u 50 riječi koji sažima [temu ili ključnu riječ].",
 	"Yes": "",

+ 15 - 15
src/lib/i18n/locales/it-IT/translation.json

@@ -11,7 +11,7 @@
 	"About": "Informazioni",
 	"Account": "Account",
 	"Accurate information": "Informazioni accurate",
-	"Add": "",
+	"Add": "Aggiungi",
 	"Add a model": "Aggiungi un modello",
 	"Add a model tag name": "Aggiungi un nome tag del modello",
 	"Add a short description about what this modelfile does": "Aggiungi una breve descrizione di ciò che fa questo file modello",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Aggiungi un prompt custom",
 	"Add Docs": "Aggiungi documenti",
 	"Add Files": "Aggiungi file",
-	"Add Memory": "",
+	"Add Memory": "Aggiungi memoria",
 	"Add message": "Aggiungi messaggio",
 	"Add Model": "Aggiungi modello",
 	"Add Tags": "Aggiungi tag",
@@ -70,8 +70,8 @@
 	"Categories": "Categorie",
 	"Change Password": "Cambia password",
 	"Chat": "Chat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI bolle chat",
+	"Chat direction": "Direzione chat",
 	"Chat History": "Cronologia chat",
 	"Chat History is off for this browser.": "La cronologia chat è disattivata per questo browser.",
 	"Chats": "Chat",
@@ -174,7 +174,7 @@
 	"Enabled": "Abilitato",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assicurati che il tuo file CSV includa 4 colonne in questo ordine: Nome, Email, Password, Ruolo.",
 	"Enter {{role}} message here": "Inserisci il messaggio per {{role}} qui",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Inserisci un dettaglio su di te per che i LLM possano ricordare",
 	"Enter Chunk Overlap": "Inserisci la sovrapposizione chunk",
 	"Enter Chunk Size": "Inserisci la dimensione chunk",
 	"Enter Image Size (e.g. 512x512)": "Inserisci la dimensione dell'immagine (ad esempio 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "Impostazioni generali",
 	"Generation Info": "Informazioni generazione",
 	"Good Response": "Buona risposta",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "non ha conversazioni.",
 	"Hello, {{name}}": "Ciao, {{name}}",
 	"Help": "Aiuto",
@@ -254,7 +254,7 @@
 	"Light": "Chiaro",
 	"Listening...": "Ascolto...",
 	"LLMs can make mistakes. Verify important information.": "Gli LLM possono commettere errori. Verifica le informazioni importanti.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Realizzato dalla comunità OpenWebUI",
 	"Make sure to enclose them with": "Assicurati di racchiuderli con",
 	"Manage LiteLLM Models": "Gestisci modelli LiteLLM",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Max token",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "È possibile scaricare un massimo di 3 modelli contemporaneamente. Riprova più tardi.",
 	"May": "Maggio",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "I memori accessibili ai LLM saranno mostrati qui.",
+	"Memory": "Memoria",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "I messaggi inviati dopo la creazione del link non verranno condivisi. Gli utenti con l'URL saranno in grado di visualizzare la chat condivisa.",
 	"Minimum Score": "Punteggio minimo",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "Estrazione immagini PDF (OCR)",
 	"pending": "in sospeso",
 	"Permission denied when accessing microphone: {{error}}": "Autorizzazione negata durante l'accesso al microfono: {{error}}",
-	"Personalization": "",
+	"Personalization": "Personalizzazione",
 	"Plain text (.txt)": "Testo normale (.txt)",
 	"Playground": "Terreno di gioco",
 	"Positive attitude": "Attitudine positiva",
@@ -378,7 +378,7 @@
 	"Role": "Ruolo",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Salva",
 	"Save & Create": "Salva e crea",
 	"Save & Update": "Salva e aggiorna",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Seleziona un'istanza Ollama",
 	"Select model": "Seleziona modello",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Invia",
 	"Send a Message": "Invia un messaggio",
 	"Send message": "Invia messaggio",
 	"September": "Settembre",
@@ -502,12 +502,12 @@
 	"What’s New in": "Novità in",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Quando la cronologia è disattivata, le nuove chat su questo browser non verranno visualizzate nella cronologia su nessuno dei tuoi dispositivi.",
 	"Whisper (Local)": "Whisper (locale)",
-	"Workspace": "",
+	"Workspace": "Area di lavoro",
 	"Write a prompt suggestion (e.g. Who are you?)": "Scrivi un suggerimento per il prompt (ad esempio Chi sei?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Scrivi un riassunto in 50 parole che riassume [argomento o parola chiave].",
 	"Yes": "",
 	"Yesterday": "Ieri",
-	"You": "",
+	"You": "Tu",
 	"You have no archived conversations.": "Non hai conversazioni archiviate.",
 	"You have shared this chat": "Hai condiviso questa chat",
 	"You're a helpful assistant.": "Sei un assistente utile.",

+ 144 - 144
src/lib/i18n/locales/ja-JP/translation.json

@@ -1,17 +1,17 @@
 {
 	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' または '-1' で無期限。",
 	"(Beta)": "(ベータ版)",
-	"(e.g. `sh webui.sh --api`)": "",
+	"(e.g. `sh webui.sh --api`)": "(例: `sh webui.sh --api`)",
 	"(latest)": "(最新)",
 	"{{modelName}} is thinking...": "{{modelName}} は思考中です...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}} のチャット",
 	"{{webUIName}} Backend Required": "{{webUIName}} バックエンドが必要です",
 	"A selected model does not support image input": "",
 	"a user": "ユーザー",
 	"About": "概要",
 	"Account": "アカウント",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "情報の正確性",
+	"Add": "追加",
 	"Add a model": "モデルを追加",
 	"Add a model tag name": "モデルタグ名を追加",
 	"Add a short description about what this modelfile does": "このモデルファイルの機能に関する簡単な説明を追加",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "カスタムプロンプトを追加",
 	"Add Docs": "ドキュメントを追加",
 	"Add Files": "ファイルを追加",
-	"Add Memory": "",
+	"Add Memory": "メモリを追加",
 	"Add message": "メッセージを追加",
-	"Add Model": "",
+	"Add Model": "モデルを追加",
 	"Add Tags": "タグを追加",
-	"Add User": "",
+	"Add User": "ユーザーを追加",
 	"Adjusting these settings will apply changes universally to all users.": "これらの設定を調整すると、すべてのユーザーに普遍的に変更が適用されます。",
 	"admin": "管理者",
 	"Admin Panel": "管理者パネル",
 	"Admin Settings": "管理者設定",
 	"Advanced Parameters": "詳細パラメーター",
 	"all": "すべて",
-	"All Documents": "",
+	"All Documents": "全てのドキュメント",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "すべてのユーザー",
 	"Allow": "許可",
@@ -40,38 +40,38 @@
 	"Already have an account?": "すでにアカウントをお持ちですか?",
 	"an assistant": "アシスタント",
 	"and": "および",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "し、新しい共有リンクを作成します。",
 	"API Base URL": "API ベース URL",
 	"API Key": "API キー",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API キーが作成されました。",
+	"API keys": "API キー",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "4月",
+	"Archive": "アーカイブ",
 	"Archived Chats": "チャット記録",
 	"are allowed - Activate this command by typing": "が許可されています - 次のように入力してこのコマンドをアクティブ化します",
 	"Are you sure?": "よろしいですか?",
 	"Attach file": "ファイルを添付する",
 	"Attention to detail": "詳細に注意する",
 	"Audio": "オーディオ",
-	"August": "",
+	"August": "8月",
 	"Auto-playback response": "応答の自動再生",
 	"Auto-send input after 3 sec.": "3 秒後に自動的に出力を送信",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 ベース URL",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 ベース URL が必要です。",
 	"available!": "利用可能!",
 	"Back": "戻る",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "応答が悪い",
+	"before": "より前",
+	"Being lazy": "怠惰な",
 	"Builder Mode": "ビルダーモード",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "SSL 検証をバイパスする",
 	"Cancel": "キャンセル",
 	"Categories": "カテゴリ",
 	"Change Password": "パスワードを変更",
 	"Chat": "チャット",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "チャットバブルUI",
+	"Chat direction": "チャットの方向",
 	"Chat History": "チャット履歴",
 	"Chat History is off for this browser.": "このブラウザではチャット履歴が無効になっています。",
 	"Chats": "チャット",
@@ -84,66 +84,66 @@
 	"Chunk Size": "チャンクサイズ",
 	"Citation": "引用文",
 	"Click here for help.": "ヘルプについてはここをクリックしてください。",
-	"Click here to": "",
+	"Click here to": "ここをクリックして",
 	"Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。",
 	"Click here to select": "選択するにはここをクリックしてください",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "CSVファイルを選択するにはここをクリックしてください。",
 	"Click here to select documents.": "ドキュメントを選択するにはここをクリックしてください。",
 	"click here.": "ここをクリックしてください。",
 	"Click on the user role button to change a user's role.": "ユーザーの役割を変更するには、ユーザー役割ボタンをクリックしてください。",
 	"Close": "閉じる",
 	"Collection": "コレクション",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUIベースURL",
+	"ComfyUI Base URL is required.": "ComfyUIベースURLが必要です。",
 	"Command": "コマンド",
 	"Confirm Password": "パスワードを確認",
 	"Connections": "接続",
 	"Content": "コンテンツ",
 	"Context Length": "コンテキストの長さ",
-	"Continue Response": "",
+	"Continue Response": "続きの応答",
 	"Conversation Mode": "会話モード",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "共有チャットURLをクリップボードにコピーしました!",
+	"Copy": "コピー",
 	"Copy last code block": "最後のコードブロックをコピー",
 	"Copy last response": "最後の応答をコピー",
-	"Copy Link": "",
+	"Copy Link": "リンクをコピー",
 	"Copying to clipboard was successful!": "クリップボードへのコピーが成功しました!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "次のクエリの見出しとして、3〜5語の簡潔なフレーズを作成してください。3〜5語の制限を厳守し、「タイトル」という単語の使用を避けてください。",
 	"Create a modelfile": "モデルファイルを作成",
 	"Create Account": "アカウントを作成",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "新しいキーを作成",
+	"Create new secret key": "新しいシークレットキーを作成",
 	"Created at": "作成日時",
-	"Created At": "",
+	"Created At": "作成日時",
 	"Current Model": "現在のモデル",
 	"Current Models": "",
 	"Current Password": "現在のパスワード",
 	"Custom": "カスタム",
 	"Customize Ollama models for a specific purpose": "特定の目的に合わせて Ollama モデルをカスタマイズ",
 	"Dark": "ダーク",
-	"Dashboard": "",
+	"Dashboard": "ダッシュボード",
 	"Database": "データベース",
-	"December": "",
+	"December": "12月",
 	"Default": "デフォルト",
 	"Default (Automatic1111)": "デフォルト (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "デフォルト (SentenceTransformers)",
 	"Default (Web API)": "デフォルト (Web API)",
 	"Default model updated": "デフォルトモデルが更新されました",
 	"Default Prompt Suggestions": "デフォルトのプロンプトの提案",
 	"Default User Role": "デフォルトのユーザー役割",
 	"delete": "削除",
-	"Delete": "",
+	"Delete": "削除",
 	"Delete a model": "モデルを削除",
 	"Delete chat": "チャットを削除",
-	"Delete Chat": "",
+	"Delete Chat": "チャットを削除",
 	"Delete Chats": "チャットを削除",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "このリンクを削除します",
+	"Delete User": "ユーザーを削除",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} を削除しました",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} を削除しました",
 	"Description": "説明",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "説明に沿って操作していませんでした",
 	"Disabled": "無効",
 	"Discover a modelfile": "モデルファイルを見つける",
 	"Discover a prompt": "プロンプトを見つける",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "外部接続を行わず、データはローカルでホストされているサーバー上に安全に保持されます。",
 	"Don't Allow": "許可しない",
 	"Don't have an account?": "アカウントをお持ちではありませんか?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "デザインが好きでない",
+	"Download": "ダウンロードをキャンセルしました",
+	"Download canceled": "ダウンロードをキャンセルしました",
 	"Download Database": "データベースをダウンロード",
 	"Drop any files here to add to the conversation": "会話を追加するには、ここにファイルをドロップしてください",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例: '30秒'、'10分'。有効な時間単位は '秒'、'分'、'時間' です。",
-	"Edit": "",
+	"Edit": "編集",
 	"Edit Doc": "ドキュメントを編集",
 	"Edit User": "ユーザーを編集",
 	"Email": "メールアドレス",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "埋め込みモデル",
+	"Embedding Model Engine": "埋め込みモデルエンジン",
+	"Embedding model set to \"{{embedding_model}}\"": "埋め込みモデルを\"{{embedding_model}}\"に設定しました",
 	"Enable Chat History": "チャット履歴を有効化",
 	"Enable New Sign Ups": "新規登録を有効化",
 	"Enabled": "有効",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSVファイルに4つの列が含まれていることを確認してください: Name, Email, Password, Role.",
 	"Enter {{role}} message here": "{{role}} メッセージをここに入力してください",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "LLM が記憶するために、自分についての詳細を入力してください",
 	"Enter Chunk Overlap": "チャンクオーバーラップを入力してください",
 	"Enter Chunk Size": "チャンクサイズを入力してください",
 	"Enter Image Size (e.g. 512x512)": "画像サイズを入力してください (例: 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "言語コードを入力してください",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "LiteLLM API ベース URL を入力してください (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "LiteLLM API キーを入力してください (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "LiteLLM API RPM を入力してください (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "モデルタグを入力してください (例: {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "ステップ数を入力してください (例: 50)",
-	"Enter Score": "",
+	"Enter Score": "スコアを入力してください",
 	"Enter stop sequence": "ストップシーケンスを入力してください",
 	"Enter Top K": "トップ K を入力してください",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL を入力してください (例: http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "URL を入力してください (例: http://localhost:11434)",
 	"Enter Your Email": "メールアドレスを入力してください",
 	"Enter Your Full Name": "フルネームを入力してください",
 	"Enter Your Password": "パスワードを入力してください",
-	"Enter Your Role": "",
+	"Enter Your Role": "ロールを入力してください",
 	"Experimental": "実験的",
 	"Export All Chats (All Users)": "すべてのチャットをエクスポート (すべてのユーザー)",
 	"Export Chats": "チャットをエクスポート",
 	"Export Documents Mapping": "ドキュメントマッピングをエクスポート",
 	"Export Modelfiles": "モデルファイルをエクスポート",
 	"Export Prompts": "プロンプトをエクスポート",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "APIキーの作成に失敗しました。",
 	"Failed to read clipboard contents": "クリップボードの内容を読み取れませんでした",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "2月",
+	"Feel free to add specific details": "詳細を追加してください",
 	"File Mode": "ファイルモード",
 	"File not found.": "ファイルが見つかりません。",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "指紋のなりすましが検出されました: イニシャルをアバターとして使用できません。デフォルトのプロファイル画像にデフォルト設定されています。",
 	"Fluidly stream large external response chunks": "大規模な外部応答チャンクを流動的にストリーミングする",
 	"Focus chat input": "チャット入力をフォーカス",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "完全に指示に従った",
 	"Format your variables using square brackets like this:": "次のように角括弧を使用して変数をフォーマットします。",
 	"From (Base Model)": "From (ベースモデル)",
 	"Full Screen Mode": "フルスクリーンモード",
 	"General": "一般",
 	"General Settings": "一般設定",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "生成情報",
+	"Good Response": "良い応答",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "対話はありません。",
 	"Hello, {{name}}": "こんにちは、{{name}} さん",
-	"Help": "",
+	"Help": "ヘルプ",
 	"Hide": "非表示",
 	"Hide Additional Params": "追加パラメーターを非表示",
 	"How can I help you today?": "今日はどのようにお手伝いしましょうか?",
-	"Hybrid Search": "",
+	"Hybrid Search": "ブリッジ検索",
 	"Image Generation (Experimental)": "画像生成 (実験的)",
 	"Image Generation Engine": "画像生成エンジン",
 	"Image Settings": "画像設定",
@@ -235,45 +235,45 @@
 	"Import Documents Mapping": "ドキュメントマッピングをインポート",
 	"Import Modelfiles": "モデルファイルをインポート",
 	"Import Prompts": "プロンプトをインポート",
-	"Include `--api` flag when running stable-diffusion-webui": "",
+	"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webuiを実行する際に`--api`フラグを含める",
 	"Input commands": "入力コマンド",
 	"Interface": "インターフェース",
-	"Invalid Tag": "",
+	"Invalid Tag": "無効なタグ",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "1月",
 	"join our Discord for help.": "ヘルプについては、Discord に参加してください。",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "7月",
+	"June": "6月",
 	"JWT Expiration": "JWT 有効期限",
 	"JWT Token": "JWT トークン",
 	"Keep Alive": "キープアライブ",
 	"Keyboard shortcuts": "キーボードショートカット",
 	"Language": "言語",
-	"Last Active": "",
+	"Last Active": "最終アクティブ",
 	"Light": "ライト",
 	"Listening...": "聞いています...",
 	"LLMs can make mistakes. Verify important information.": "LLM は間違いを犯す可能性があります。重要な情報を検証してください。",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "OpenWebUI コミュニティによって作成",
 	"Make sure to enclose them with": "必ず次で囲んでください",
 	"Manage LiteLLM Models": "LiteLLM モデルを管理",
 	"Manage Model Information": "",
 	"Manage Models": "モデルを管理",
 	"Manage Ollama Models": "Ollama モデルを管理",
-	"March": "",
+	"March": "3月",
 	"Max Tokens": "最大トークン数",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "同時にダウンロードできるモデルは最大 3 つです。後でもう一度お試しください。",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "5月",
+	"Memories accessible by LLMs will be shown here.": "LLM がアクセスできるメモリはここに表示されます。",
+	"Memory": "メモリ",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "リンクを作成した後、送信したメッセージは共有されません。URL を持つユーザーは共有チャットを閲覧できます。",
+	"Minimum Score": "最低スコア",
 	"Mirostat": "ミロスタット",
 	"Mirostat Eta": "ミロスタット Eta",
 	"Mirostat Tau": "ミロスタット Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "モデル '{{modelName}}' が正常にダウンロードされました。",
 	"Model '{{modelTag}}' is already in queue for downloading.": "モデル '{{modelTag}}' はすでにダウンロード待ち行列に入っています。",
 	"Model {{modelId}} not found": "モデル {{modelId}} が見つかりません",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "モデルファイルシステムパスが検出されました。モデルの短縮名が必要です。更新できません。",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "モデル名",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "モデルファイルの内容",
 	"Modelfiles": "モデルファイル",
 	"Models": "モデル",
-	"More": "",
+	"More": "もっと見る",
 	"Name": "名前",
 	"Name Tag": "名前タグ",
 	"Name your modelfile": "モデルファイルに名前を付ける",
 	"New Chat": "新しいチャット",
 	"New Password": "新しいパスワード",
 	"No": "",
-	"No results found": "",
+	"No results found": "結果が見つかりません",
 	"No source available": "使用可能なソースがありません",
-	"Not factually correct": "",
+	"Not factually correct": "実事上正しくない",
 	"Not sure what to add?": "何を追加すればよいかわからない?",
 	"Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "注意:最小スコアを設定した場合、検索は最小スコア以上のスコアを持つドキュメントのみを返します。",
 	"Notifications": "デスクトップ通知",
-	"November": "",
-	"October": "",
+	"November": "11月",
+	"October": "10月",
 	"Off": "オフ",
 	"Okay, Let's Go!": "OK、始めましょう!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED ダーク",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama ベース URL",
 	"Ollama Version": "Ollama バージョン",
 	"On": "オン",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "新しいチャットを開く",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API 設定",
 	"OpenAI API Key is required.": "OpenAI API キーが必要です。",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Key が必要です。",
 	"or": "または",
-	"Other": "",
-	"Overview": "",
+	"Other": "その他",
+	"Overview": "概要",
 	"Parameters": "パラメーター",
 	"Password": "パスワード",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF ドキュメント (.pdf)",
 	"PDF Extract Images (OCR)": "PDF 画像抽出 (OCR)",
 	"pending": "保留中",
 	"Permission denied when accessing microphone: {{error}}": "マイクへのアクセス時に権限が拒否されました: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "個人化",
+	"Plain text (.txt)": "プレーンテキスト (.txt)",
 	"Playground": "プレイグラウンド",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "陽気な態度",
+	"Previous 30 days": "前の30日間",
+	"Previous 7 days": "前の7日間",
+	"Profile Image": "プロフィール画像",
+	"Prompt": "プロンプト",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "プロンプト(例:ローマ帝国についての楽しい事を教えてください)",
 	"Prompt Content": "プロンプトの内容",
 	"Prompt suggestions": "プロンプトの提案",
 	"Prompts": "プロンプト",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com から \"{{searchValue}}\" をプル",
 	"Pull a model from Ollama.com": "Ollama.com からモデルをプル",
 	"Pull Progress": "プルの進行状況",
 	"Query Params": "クエリパラメーター",
 	"RAG Template": "RAG テンプレート",
 	"Raw Format": "Raw 形式",
-	"Read Aloud": "",
+	"Read Aloud": "読み上げ",
 	"Record voice": "音声を録音",
 	"Redirecting you to OpenWebUI Community": "OpenWebUI コミュニティにリダイレクトしています",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "許可されないのに許可されました",
+	"Regenerate": "再生成",
 	"Release Notes": "リリースノート",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "削除",
+	"Remove Model": "モデルを削除",
+	"Rename": "名前を変更",
 	"Repeat Last N": "最後の N を繰り返す",
 	"Repeat Penalty": "繰り返しペナルティ",
 	"Request Mode": "リクエストモード",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "モデルの再ランキング",
+	"Reranking model disabled": "再ランキングモデルが無効です",
+	"Reranking model set to \"{{reranking_model}}\"": "再ランキングモデルを \"{{reranking_model}}\" に設定しました",
 	"Reset Vector Storage": "ベクトルストレージをリセット",
 	"Response AutoCopy to Clipboard": "クリップボードへの応答の自動コピー",
 	"Role": "役割",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "保存",
 	"Save & Create": "保存して作成",
 	"Save & Update": "保存して更新",
@@ -387,7 +387,7 @@
 	"Scan complete!": "スキャン完了!",
 	"Scan for documents from {{path}}": "{{path}} からドキュメントをスキャン",
 	"Search": "検索",
-	"Search a model": "",
+	"Search a model": "モデルを検索",
 	"Search Documents": "ドキュメントを検索",
 	"Search Prompts": "プロンプトを検索",
 	"See readme.md for instructions": "手順については readme.md を参照してください",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Ollama インスタンスを選択",
 	"Select model": "モデルを選択",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "送信",
 	"Send a Message": "メッセージを送信",
 	"Send message": "メッセージを送信",
-	"September": "",
+	"September": "9月",
 	"Server connection verified": "サーバー接続が確認されました",
 	"Set as default": "デフォルトに設定",
 	"Set Default Model": "デフォルトモデルを設定",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "埋め込みモデルを設定します(例:{{model}})",
 	"Set Image Size": "画像サイズを設定",
 	"Set Model": "モデルを設定",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "モデルを設定します(例:{{model}})",
 	"Set Steps": "ステップを設定",
 	"Set Title Auto-Generation Model": "タイトル自動生成モデルを設定",
 	"Set Voice": "音声を設定",
 	"Settings": "設定",
 	"Settings saved successfully!": "設定が正常に保存されました!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "共有",
+	"Share Chat": "チャットを共有",
 	"Share to OpenWebUI Community": "OpenWebUI コミュニティに共有",
 	"short-summary": "short-summary",
 	"Show": "表示",
 	"Show Additional Params": "追加パラメーターを表示",
 	"Show shortcuts": "表示",
-	"Showcased creativity": "",
+	"Showcased creativity": "創造性を披露",
 	"sidebar": "サイドバー",
 	"Sign in": "サインイン",
 	"Sign Out": "サインアウト",
 	"Sign up": "サインアップ",
-	"Signing in": "",
+	"Signing in": "サインイン中",
 	"Source": "ソース",
 	"Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
 	"Speech-to-Text Engine": "音声テキスト変換エンジン",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "ストップシーケンス",
 	"STT Settings": "STT 設定",
 	"Submit": "送信",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "タイトル (例: ロマ帝国)",
 	"Success": "成功",
 	"Successfully updated.": "正常に更新されました。",
-	"Suggested": "",
+	"Suggested": "提案",
 	"Sync All": "すべてを同期",
 	"System": "システム",
 	"System Prompt": "システムプロンプト",
 	"Tags": "タグ",
-	"Tell us more:": "",
+	"Tell us more:": "もっと話してください:",
 	"Temperature": "温度",
 	"Template": "テンプレート",
 	"Text Completion": "テキスト補完",
 	"Text-to-Speech Engine": "テキスト音声変換エンジン",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "ご意見ありがとうございます!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "スコアは0.0(0%)から1.0(100%)の間の値にしてください。",
 	"Theme": "テーマ",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "これは、貴重な会話がバックエンドデータベースに安全に保存されることを保証します。ありがとうございます!",
 	"This setting does not sync across browsers or devices.": "この設定は、ブラウザやデバイス間で同期されません。",
-	"Thorough explanation": "",
+	"Thorough explanation": "詳細な説明",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "ヒント: 各置換後にチャット入力で Tab キーを押すことで、複数の変数スロットを連続して更新できます。",
 	"Title": "タイトル",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "タイトル (例: 楽しい事を教えて)",
 	"Title Auto-Generation": "タイトル自動生成",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "タイトルは空文字列にできません。",
 	"Title Generation Prompt": "タイトル生成プロンプト",
 	"to": "まで",
 	"To access the available model names for downloading,": "ダウンロード可能なモデル名にアクセスするには、",
 	"To access the GGUF models available for downloading,": "ダウンロード可能な GGUF モデルにアクセスするには、",
 	"to chat input.": "チャット入力へ。",
-	"Today": "",
+	"Today": "今日",
 	"Toggle settings": "設定を切り替え",
 	"Toggle sidebar": "サイドバーを切り替え",
 	"Top K": "トップ K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ダウンロード) URL を入力してください",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "リンクの更新とコピー",
 	"Update password": "パスワードを更新",
 	"Upload a GGUF model": "GGUF モデルをアップロード",
 	"Upload files": "ファイルをアップロード",
@@ -482,7 +482,7 @@
 	"URL Mode": "URL モード",
 	"Use '#' in the prompt input to load and select your documents.": "プロンプト入力で '#' を使用して、ドキュメントを読み込んで選択します。",
 	"Use Gravatar": "Gravatar を使用する",
-	"Use Initials": "",
+	"Use Initials": "初期値を使用する",
 	"user": "ユーザー",
 	"User Permissions": "ユーザー権限",
 	"Users": "ユーザー",
@@ -491,27 +491,27 @@
 	"variable": "変数",
 	"variable to have them replaced with clipboard content.": "クリップボードの内容に置き換える変数。",
 	"Version": "バージョン",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告: 埋め込みモデルを更新または変更した場合は、すべてのドキュメントを再インポートする必要があります。",
 	"Web": "ウェブ",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Web 読み込み設定",
+	"Web Params": "Web パラメータ",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI アドオン",
 	"WebUI Settings": "WebUI 設定",
 	"WebUI will make requests to": "WebUI は次に対してリクエストを行います",
 	"What’s New in": "新機能",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "履歴が無効になっている場合、このブラウザでの新しいチャットは、どのデバイスの履歴にも表示されません。",
 	"Whisper (Local)": "Whisper (ローカル)",
-	"Workspace": "",
+	"Workspace": "ワークスペース",
 	"Write a prompt suggestion (e.g. Who are you?)": "プロンプトの提案を書いてください (例: あなたは誰ですか?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[トピックまたはキーワード] を要約する 50 語の概要を書いてください。",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "昨日",
+	"You": "あなた",
+	"You have no archived conversations.": "これまでにアーカイブされた会話はありません。",
+	"You have shared this chat": "このチャットを共有しました",
 	"You're a helpful assistant.": "あなたは役に立つアシスタントです。",
 	"You're now logged in.": "ログインしました。",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "YouTube",
+	"Youtube Loader Settings": "Youtubeローダー設定"
 }

+ 143 - 143
src/lib/i18n/locales/ka-GE/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(მაგ. `sh webui.sh --api`)",
 	"(latest)": "(უახლესი)",
 	"{{modelName}} is thinking...": "{{modelName}} ფიქრობს...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}-ის ჩათები",
 	"{{webUIName}} Backend Required": "{{webUIName}} საჭიროა ბექენდი",
 	"A selected model does not support image input": "",
 	"a user": "მომხმარებელი",
 	"About": "შესახებ",
 	"Account": "ანგარიში",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "დიდი ინფორმაცია",
+	"Add": "დამატება",
 	"Add a model": "მოდელის დამატება",
 	"Add a model tag name": "მოდელის ტეგის სახელის დამატება",
 	"Add a short description about what this modelfile does": "დაამატე მოკლე აღწერა იმის შესახებ, თუ რას აკეთებს ეს მოდელური ფაილი",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "პირველადი მოთხოვნის დამატება",
 	"Add Docs": "დოკუმენტის დამატება",
 	"Add Files": "ფაილების დამატება",
-	"Add Memory": "",
+	"Add Memory": "მემორიის დამატება",
 	"Add message": "შეტყობინების დამატება",
-	"Add Model": "",
+	"Add Model": "მოდელის დამატება",
 	"Add Tags": "ტეგების დამატება",
-	"Add User": "",
+	"Add User": "მომხმარებლის დამატება",
 	"Adjusting these settings will apply changes universally to all users.": "ამ პარამეტრების რეგულირება ცვლილებებს უნივერსალურად გამოიყენებს ყველა მომხმარებლისთვის",
 	"admin": "ადმინისტრატორი",
 	"Admin Panel": "ადმინ პანელი",
 	"Admin Settings": "ადმინისტრატორის ხელსაწყოები",
 	"Advanced Parameters": "დამატებითი პარამეტრები",
 	"all": "ყველა",
-	"All Documents": "",
+	"All Documents": "ყველა დოკუმენტი",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "ყველა მომხმარებელი",
 	"Allow": "ნების დართვა",
@@ -40,38 +40,38 @@
 	"Already have an account?": "უკვე გაქვს ანგარიში?",
 	"an assistant": "ასისტენტი",
 	"and": "და",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "და შექმენით ახალი გაზიარებული ბმული.",
 	"API Base URL": "API საბაზისო URL",
 	"API Key": "API გასაღები",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API გასაღები შექმნილია.",
+	"API keys": "API გასაღები",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "აპრილი",
+	"Archive": "არქივი",
 	"Archived Chats": "ჩატის ისტორიის არქივი",
 	"are allowed - Activate this command by typing": "დაშვებულია - ბრძანების გასააქტიურებლად აკრიფეთ:",
 	"Are you sure?": "დარწმუნებული ხარ?",
 	"Attach file": "ფაილის ჩაწერა",
 	"Attention to detail": "დეტალური მიმართვა",
 	"Audio": "ხმოვანი",
-	"August": "",
+	"August": "აგვისტო",
 	"Auto-playback response": "ავტომატური დაკვრის პასუხი",
 	"Auto-send input after 3 sec.": "შეყვანის ავტომატური გაგზავნა 3 წამის შემდეგ ",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 საბაზისო მისამართი",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 საბაზისო მისამართი აუცილებელია",
 	"available!": "ხელმისაწვდომია!",
 	"Back": "უკან",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "ხარვეზი",
+	"before": "ადგილზე",
+	"Being lazy": "ჩაიტყვევა",
 	"Builder Mode": "მოდელის შექმნა",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "SSL-ის ვერიფიკაციის გააუქმება ვებსაიტებზე",
 	"Cancel": "გაუქმება",
 	"Categories": "კატეგორიები",
 	"Change Password": "პაროლის შეცვლა",
 	"Chat": "მიმოწერა",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "ჩატის ბულბი",
+	"Chat direction": "ჩატის მიმართულება",
 	"Chat History": "მიმოწერის ისტორია",
 	"Chat History is off for this browser.": "მიმოწერის ისტორია ამ ბრაუზერისთვის გათიშულია",
 	"Chats": "მიმოწერები",
@@ -84,66 +84,66 @@
 	"Chunk Size": "გადახურვის ზომა",
 	"Citation": "ციტატა",
 	"Click here for help.": "დახმარებისთვის, დააკლიკე აქ",
-	"Click here to": "",
+	"Click here to": "დააკლიკე აქ",
 	"Click here to check other modelfiles.": "სხვა მოდელური ფაილების სანახავად, დააკლიკე აქ",
 	"Click here to select": "ასარჩევად, დააკლიკე აქ",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "ასარჩევად, დააკლიკე აქ",
 	"Click here to select documents.": "დოკუმენტების ასარჩევად, დააკლიკე აქ",
 	"click here.": "დააკლიკე აქ",
 	"Click on the user role button to change a user's role.": "დააკლიკეთ მომხმარებლის როლის ღილაკს რომ შეცვალოთ მომხმარების როლი",
 	"Close": "დახურვა",
 	"Collection": "ნაკრები",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI საბაზისო URL",
+	"ComfyUI Base URL is required.": "ComfyUI საბაზისო URL აუცილებელია.",
 	"Command": "ბრძანება",
 	"Confirm Password": "პაროლის დამოწმება",
 	"Connections": "კავშირები",
 	"Content": "კონტენტი",
 	"Context Length": "კონტექსტის სიგრძე",
-	"Continue Response": "",
+	"Continue Response": "პასუხის გაგრძელება",
 	"Conversation Mode": "საუბრი რეჟიმი",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "ყავს ჩათის URL-ი კლიპბორდში!",
+	"Copy": "კოპირება",
 	"Copy last code block": "ბოლო ბლოკის კოპირება",
 	"Copy last response": "ბოლო პასუხის კოპირება",
-	"Copy Link": "",
+	"Copy Link": "კოპირება",
 	"Copying to clipboard was successful!": "კლავიატურაზე კოპირება წარმატებით დასრულდა",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "შექმენით მოკლე, 3-5 სიტყვიანი ფრაზა, როგორც სათაური თქვენი შემდეგი შეკითხვისთვის, მკაცრად დაიცავით 3-5 სიტყვის ლიმიტი და მოერიდეთ გამოიყენოთ სიტყვა „სათაური“.",
 	"Create a modelfile": "მოდელური ფაილის შექმნა",
 	"Create Account": "ანგარიშის შექმნა",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "პირადი ღირებულბრის შექმნა",
+	"Create new secret key": "პირადი ღირებულბრის შექმნა",
 	"Created at": "შექმნილია",
-	"Created At": "",
+	"Created At": "შექმნილია",
 	"Current Model": "მიმდინარე მოდელი",
 	"Current Models": "",
 	"Current Password": "მიმდინარე პაროლი",
 	"Custom": "საკუთარი",
 	"Customize Ollama models for a specific purpose": "Ollama მოდელების დამუშავება სპეციფიური დანიშნულებისთვის",
 	"Dark": "მუქი",
-	"Dashboard": "",
+	"Dashboard": "პანელი",
 	"Database": "მონაცემთა ბაზა",
-	"December": "",
+	"December": "დეკემბერი",
 	"Default": "დეფოლტი",
 	"Default (Automatic1111)": "დეფოლტ (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "დეფოლტ (SentenceTransformers)",
 	"Default (Web API)": "დეფოლტ (Web API)",
 	"Default model updated": "დეფოლტ მოდელი განახლებულია",
-	"Default Prompt Suggestions": "",
+	"Default Prompt Suggestions": "დეფოლტ პრომპტი პირველი პირველი",
 	"Default User Role": "მომხმარებლის დეფოლტ როლი",
 	"delete": "წაშლა",
-	"Delete": "",
+	"Delete": "წაშლა",
 	"Delete a model": "მოდელის წაშლა",
 	"Delete chat": "შეტყობინების წაშლა",
-	"Delete Chat": "",
+	"Delete Chat": "შეტყობინების წაშლა",
 	"Delete Chats": "შეტყობინებების წაშლა",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "ბმულის წაშლა",
+	"Delete User": "მომხმარებლის წაშლა",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} წაშლილია",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} წაშლილია",
 	"Description": "აღწერა",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "ვერ ყველა ინფორმაციისთვის ვერ ხელახლა ჩაწერე",
 	"Disabled": "გაუქმებულია",
 	"Discover a modelfile": "აღმოაჩინეთ მოდელური ფაილი",
 	"Discover a prompt": "აღმოაჩინეთ მოთხოვნა",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "არ ამყარებს გარე კავშირებს და თქვენი მონაცემები უსაფრთხოდ რჩება თქვენს ადგილობრივ სერვერზე.",
 	"Don't Allow": "არ დაუშვა",
 	"Don't have an account?": "არ გაქვს ანგარიში?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "არ ეთიკურია ფართოდ",
+	"Download": "ჩამოტვირთვა გაუქმებულია",
+	"Download canceled": "ჩამოტვირთვა გაუქმებულია",
 	"Download Database": "გადმოწერე მონაცემთა ბაზა",
 	"Drop any files here to add to the conversation": "გადაიტანეთ ფაილები აქ, რათა დაამატოთ ისინი მიმოწერაში",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგალითად, '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.",
-	"Edit": "",
+	"Edit": "რედაქტირება",
 	"Edit Doc": "დოკუმენტის ედიტირება",
 	"Edit User": "მომხმარებლის ედიტირება",
 	"Email": "ელ-ფოსტა",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "ჩასმის ძირითადი პროგრამა",
+	"Embedding Model Engine": "ჩასმის ძირითადი პროგრამა",
+	"Embedding model set to \"{{embedding_model}}\"": "ჩასმის ძირითადი პროგრამა ჩართულია \"{{embedding_model}}\"",
 	"Enable Chat History": "მიმოწერის ისტორიის ჩართვა",
 	"Enable New Sign Ups": "ახალი რეგისტრაციების ჩართვა",
 	"Enabled": "ჩართულია",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "გთხოვთ, უზრუნველყოთ, რომთქვევის CSV-ფაილი შეიცავს 4 ველი, ჩაწერილი ორივე ველი უდრის პირველი ველით.",
 	"Enter {{role}} message here": "შეიყვანე {{role}} შეტყობინება აქ",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "შეიყვანე დეტალი ჩემთათვის, რომ ჩვენი LLMs-ს შეიძლოს აღაქვს",
 	"Enter Chunk Overlap": "შეიყვანეთ ნაწილის გადახურვა",
 	"Enter Chunk Size": "შეიყვანე ბლოკის ზომა",
 	"Enter Image Size (e.g. 512x512)": "შეიყვანეთ სურათის ზომა (მაგ. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "შეიყვანეთ ენის კოდი",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "შეიყვანეთ LiteLLM API ბაზის მისამართი (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "შეიყვანეთ LiteLLM API გასაღები (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "შეიყვანეთ LiteLLM API RPM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "შეიყვანეთ მოდელის ტეგი (მაგ. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "შეიყვანეთ ნაბიჯების რაოდენობა (მაგ. 50)",
-	"Enter Score": "",
+	"Enter Score": "შეიყვანეთ ქულა",
 	"Enter stop sequence": "შეიყვანეთ ტოპ თანმიმდევრობა",
 	"Enter Top K": "შეიყვანეთ Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ მისამართი (მაგალითად http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "შეიყვანეთ მისამართი (მაგალითად http://localhost:11434)",
 	"Enter Your Email": "შეიყვანეთ თქვენი ელ-ფოსტა",
 	"Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი",
 	"Enter Your Password": "შეიყვანეთ თქვენი პაროლი",
-	"Enter Your Role": "",
+	"Enter Your Role": "შეიყვანეთ თქვენი როლი",
 	"Experimental": "ექსპერიმენტალური",
-	"Export All Chats (All Users)": "",
+	"Export All Chats (All Users)": "ექსპორტი ყველა ჩათი (ყველა მომხმარებელი)",
 	"Export Chats": "მიმოწერის ექსპორტირება",
 	"Export Documents Mapping": "დოკუმენტების კავშირის ექსპორტი",
 	"Export Modelfiles": "მოდელური ფაილების ექსპორტი",
 	"Export Prompts": "მოთხოვნების ექსპორტი",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "API ღილაკის შექმნა ვერ მოხერხდა.",
 	"Failed to read clipboard contents": "ბუფერში შიგთავსის წაკითხვა ვერ მოხერხდა",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "თებერვალი",
+	"Feel free to add specific details": "უფასოდ დაამატეთ დეტალები",
 	"File Mode": "ფაილური რეჟიმი",
 	"File not found.": "ფაილი ვერ მოიძებნა",
 	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "აღმოჩენილია თითის ანაბეჭდის გაყალბება: ინიციალების გამოყენება ავატარად შეუძლებელია. დეფოლტ პროფილის დეფოლტ სურათი.",
 	"Fluidly stream large external response chunks": "თხევადი ნაკადი დიდი გარე საპასუხო ნაწილაკების",
 	"Focus chat input": "ჩეთის შეყვანის ფოკუსი",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "ყველა ინსტრუქცია უზრუნველყოფა",
 	"Format your variables using square brackets like this:": "დააფორმატეთ თქვენი ცვლადები კვადრატული ფრჩხილების გამოყენებით:",
 	"From (Base Model)": "(საბაზო მოდელი) დან",
 	"Full Screen Mode": "Სრული ეკრანის რეჟიმი",
 	"General": "ზოგადი",
 	"General Settings": "ზოგადი პარამეტრები",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "გენერაციის ინფორმაცია",
+	"Good Response": "დიდი პასუხი",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "არა უფლება ჩაწერა",
 	"Hello, {{name}}": "გამარჯობა, {{name}}",
-	"Help": "",
+	"Help": "დახმარება",
 	"Hide": "დამალვა",
 	"Hide Additional Params": "დამატებითი პარამეტრების დამალვა",
 	"How can I help you today?": "როგორ შემიძლია დაგეხმარო დღეს?",
-	"Hybrid Search": "",
+	"Hybrid Search": "ჰიბრიდური ძებნა",
 	"Image Generation (Experimental)": "სურათების გენერაცია (ექსპერიმენტული)",
 	"Image Generation Engine": "სურათის გენერაციის ძრავა",
 	"Image Settings": "სურათის პარამეტრები",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "ჩართეთ `--api` დროშა stable-diffusion-webui-ის გაშვებისას",
 	"Input commands": "შეყვანით ბრძანებებს",
 	"Interface": "ინტერფეისი",
-	"Invalid Tag": "",
+	"Invalid Tag": "არასწორი ტეგი",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "იანვარი",
 	"join our Discord for help.": "შეუერთდით ჩვენს Discord-ს დახმარებისთვის",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "ივნისი",
+	"June": "ივლა",
 	"JWT Expiration": "JWT-ის ვადა",
 	"JWT Token": "JWT ტოკენი",
 	"Keep Alive": "აქტიურად დატოვება",
 	"Keyboard shortcuts": "კლავიატურის მალსახმობები",
 	"Language": "ენა",
-	"Last Active": "",
+	"Last Active": "ბოლო აქტიური",
 	"Light": "მსუბუქი",
 	"Listening...": "გისმენ...",
 	"LLMs can make mistakes. Verify important information.": "შესაძლოა LLM-ებმა შეცდომები დაუშვან. გადაამოწმეთ მნიშვნელოვანი ინფორმაცია.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "დამზადებულია OpenWebUI საზოგადოების მიერ",
 	"Make sure to enclose them with": "დარწმუნდით, რომ დაურთეთ ისინი",
 	"Manage LiteLLM Models": "LiteLLM მოდელების მართვა",
 	"Manage Model Information": "",
 	"Manage Models": "მოდელების მართვა",
 	"Manage Ollama Models": "Ollama მოდელების მართვა",
-	"March": "",
+	"March": "მარტივი",
 	"Max Tokens": "მაქსიმალური ტოკენები",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "მაქსიმუმ 3 მოდელის ჩამოტვირთვა შესაძლებელია ერთდროულად. Გთხოვთ სცადოთ მოგვიანებით.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
+	"May": "მაი",
+	"Memories accessible by LLMs will be shown here.": "ლლმ-ს აქვს ხელმისაწვდომი მემორიები აქ იქნება.",
+	"Memory": "მემორია",
 	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"Minimum Score": "მინიმალური ქულა",
 	"Mirostat": "მიროსტატი",
 	"Mirostat Eta": "მიროსტატი ეტა",
 	"Mirostat Tau": "მიროსტატი ტაუ",
 	"MMMM DD, YYYY": "თვე დღე, წელი",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "თვე დღე, წელი HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "მოდელი „{{modelName}}“ წარმატებით ჩამოიტვირთა.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "მოდელი „{{modelTag}}“ უკვე ჩამოტვირთვის რიგშია.",
 	"Model {{modelId}} not found": "მოდელი {{modelId}} ვერ მოიძებნა",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "მოდელური ფაილის კონტენტი",
 	"Modelfiles": "მოდელური ფაილები",
 	"Models": "მოდელები",
-	"More": "",
+	"More": "ვრცლად",
 	"Name": "სახელი",
 	"Name Tag": "სახელის ტეგი",
 	"Name your modelfile": "თქვენი მოდელური ფაილის სახელი",
 	"New Chat": "ახალი მიმოწერა",
 	"New Password": "ახალი პაროლი",
 	"No": "",
-	"No results found": "",
+	"No results found": "ჩვენ ვერ პოულობით ნაპოვნი ჩაწერები",
 	"No source available": "წყარო არ არის ხელმისაწვდომი",
-	"Not factually correct": "",
+	"Not factually correct": "არ ვეთანხმები პირდაპირ ვერც ვეთანხმები",
 	"Not sure what to add?": "არ იცი რა დაამატო?",
-	"Not sure what to write? Switch to": "არ იცი რა დაწერო? გადართვა:",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Not sure what to write? Switch to": "არ იცით რა დაწეროთ? გადადით:",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "შენიშვნა: თუ თქვენ დააყენებთ მინიმალურ ქულას, ძებნა დააბრუნებს მხოლოდ დოკუმენტებს მინიმალური ქულის მეტი ან ტოლი ქულით.",
 	"Notifications": "შეტყობინება",
-	"November": "",
-	"October": "",
+	"November": "ნოემბერი",
+	"October": "ოქტომბერი",
 	"Off": "გამორთვა",
 	"Okay, Let's Go!": "კარგი, წავედით!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED მუქი",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama ბაზისური მისამართი",
 	"Ollama Version": "Ollama ვერსია",
 	"On": "ჩართვა",
@@ -326,59 +326,59 @@
 	"Open AI": "ღია AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "ახალი მიმოწერის გახსნა",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API პარამეტრები",
 	"OpenAI API Key is required.": "OpenAI API გასაღები აუცილებელია",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Key აუცილებელია",
 	"or": "ან",
-	"Other": "",
-	"Overview": "",
+	"Other": "სხვა",
+	"Overview": "ოვერვიუ",
 	"Parameters": "პარამეტრები",
 	"Password": "პაროლი",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF დოკუმენტი (.pdf)",
 	"PDF Extract Images (OCR)": "PDF იდან ამოღებული სურათები (OCR)",
 	"pending": "ლოდინის რეჟიმშია",
 	"Permission denied when accessing microphone: {{error}}": "ნებართვა უარყოფილია მიკროფონზე წვდომისას: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "პერსონალიზაცია",
+	"Plain text (.txt)": "ტექსტი (.txt)",
 	"Playground": "სათამაშო მოედანი",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "პოზიტიური ანგარიში",
+	"Previous 30 days": "უკან 30 დღე",
+	"Previous 7 days": "უკან 7 დღე",
+	"Profile Image": "პროფილის სურათი",
+	"Prompt": "პრომპტი",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (მაგ. მითხარი სახალისო ფაქტი რომის იმპერიის შესახებ)",
 	"Prompt Content": "მოთხოვნის შინაარსი",
 	"Prompt suggestions": "მოთხოვნის რჩევები",
 	"Prompts": "მოთხოვნები",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "ჩაიამოვეთ \"{{searchValue}}\" Ollama.com-იდან",
 	"Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ",
 	"Pull Progress": "პროგრესის გადაწერა",
 	"Query Params": "პარამეტრების ძიება",
 	"RAG Template": "RAG შაბლონი",
 	"Raw Format": "საწყისი ფორმატი",
-	"Read Aloud": "",
+	"Read Aloud": "ხმის ჩაწერა",
 	"Record voice": "ხმის ჩაწერა",
 	"Redirecting you to OpenWebUI Community": "გადამისამართდებით OpenWebUI საზოგადოებაში",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "უარა, როგორც უნდა იყოს",
+	"Regenerate": "ხელახლა გენერირება",
 	"Release Notes": "Გამოშვების შენიშვნები",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "პოპულარობის რაოდენობა",
+	"Remove Model": "პოპულარობის რაოდენობა",
+	"Rename": "პოპულარობის რაოდენობა",
 	"Repeat Last N": "გაიმეორეთ ბოლო N",
 	"Repeat Penalty": "გაიმეორეთ პენალტი",
 	"Request Mode": "მოთხოვნის რეჟიმი",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "რექვექტირება",
+	"Reranking model disabled": "რექვექტირება არაა ჩართული",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
 	"Reset Vector Storage": "ვექტორული მეხსიერების გადატვირთვა",
 	"Response AutoCopy to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
 	"Role": "როლი",
 	"Rosé Pine": "ვარდისფერი ფიჭვის ხე",
 	"Rosé Pine Dawn": "ვარდისფერი ფიჭვის გარიჟრაჟი",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "შენახვა",
 	"Save & Create": "დამახსოვრება და შექმნა",
 	"Save & Update": "დამახსოვრება და განახლება",
@@ -387,7 +387,7 @@
 	"Scan complete!": "სკანირება დასრულდა!",
 	"Scan for documents from {{path}}": "დოკუმენტების სკანირება {{ path}}-დან",
 	"Search": "ძიება",
-	"Search a model": "",
+	"Search a model": "მოდელის ძიება",
 	"Search Documents": "დოკუმენტების ძიება",
 	"Search Prompts": "მოთხოვნების ძიება",
 	"See readme.md for instructions": "იხილეთ readme.md ინსტრუქციებისთვის",
@@ -395,38 +395,38 @@
 	"Seed": "სიდი",
 	"Select a mode": "რეჟიმის არჩევა",
 	"Select a model": "მოდელის არჩევა",
-	"Select an Ollama instance": "",
+	"Select an Ollama instance": "Ollama ინსტანსის არჩევა",
 	"Select model": "მოდელის არჩევა",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "გაგზავნა",
 	"Send a Message": "შეტყობინების გაგზავნა",
 	"Send message": "შეტყობინების გაგზავნა",
-	"September": "",
+	"September": "სექტემბერი",
 	"Server connection verified": "სერვერთან კავშირი დადასტურებულია",
 	"Set as default": "დეფოლტად დაყენება",
 	"Set Default Model": "დეფოლტ მოდელის დაყენება",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "ჩვენება მოდელის დაყენება (მაგ. {{model}})",
 	"Set Image Size": "სურათის ზომის დაყენება",
 	"Set Model": "მოდელის დაყენება",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "რეტარირება მოდელის დაყენება (მაგ. {{model}})",
 	"Set Steps": "ნაბიჯების დაყენება",
 	"Set Title Auto-Generation Model": "სათაურის ავტომატური გენერაციის მოდელის დაყენება",
 	"Set Voice": "ხმის დაყენება",
 	"Settings": "ხელსაწყოები",
 	"Settings saved successfully!": "პარამეტრები წარმატებით განახლდა!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "გაზიარება",
+	"Share Chat": "გაზიარება",
 	"Share to OpenWebUI Community": "გააზიარე OpenWebUI საზოგადოებაში ",
 	"short-summary": "მოკლე შინაარსი",
 	"Show": "ჩვენება",
 	"Show Additional Params": "დამატებითი პარამეტრების ჩვენება",
 	"Show shortcuts": "მალსახმობების ჩვენება",
-	"Showcased creativity": "",
+	"Showcased creativity": "ჩვენებული ქონება",
 	"sidebar": "საიდბარი",
 	"Sign in": "ავტორიზაცია",
 	"Sign Out": "გასვლა",
 	"Sign up": "რეგისტრაცია",
-	"Signing in": "",
+	"Signing in": "ავტორიზაცია",
 	"Source": "წყარო",
 	"Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}",
 	"Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "შეჩერების თანმიმდევრობა",
 	"STT Settings": "მეტყველების ამოცნობის პარამეტრები",
 	"Submit": "გაგზავნა",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "სუბტიტრები (მაგ. რომის იმპერიის შესახებ)",
 	"Success": "წარმატება",
 	"Successfully updated.": "წარმატებით განახლდა",
-	"Suggested": "",
+	"Suggested": "პირდაპირ პოპულარული",
 	"Sync All": "სინქრონიზაცია",
 	"System": "სისტემა",
 	"System Prompt": "სისტემური მოთხოვნა",
 	"Tags": "ტეგები",
-	"Tell us more:": "",
+	"Tell us more:": "ჩვენთან დავუკავშირდით",
 	"Temperature": "ტემპერატურა",
 	"Template": "შაბლონი",
 	"Text Completion": "ტექსტის დასრულება",
 	"Text-to-Speech Engine": "ტექსტურ-ხმოვანი ძრავი",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "მადლობა გამოხმაურებისთვის!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "ქულა 0.0 (0%) და 1.0 (100%) ჩაშენებული უნდა იყოს.",
 	"Theme": "თემა",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "ეს უზრუნველყოფს, რომ თქვენი ძვირფასი საუბრები უსაფრთხოდ შეინახება თქვენს backend მონაცემთა ბაზაში. Გმადლობთ!",
 	"This setting does not sync across browsers or devices.": "ეს პარამეტრი არ სინქრონიზდება ბრაუზერებსა და მოწყობილობებში",
-	"Thorough explanation": "",
+	"Thorough explanation": "ვრცლად აღწერა",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "რჩევა: განაახლეთ რამდენიმე ცვლადი სლოტი თანმიმდევრულად, ყოველი ჩანაცვლების შემდეგ ჩატის ღილაკზე დაჭერით.",
 	"Title": "სათაური",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "სათაური (მაგ. გაიხსნე რაღაც ხარისხი)",
 	"Title Auto-Generation": "სათაურის ავტო-გენერაცია",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "სათაური ცარიელი ველი ვერ უნდა იყოს.",
 	"Title Generation Prompt": "სათაურის გენერაციის მოთხოვნა ",
 	"to": "ში",
 	"To access the available model names for downloading,": "ჩამოტვირთვისთვის ხელმისაწვდომი მოდელების სახელებზე წვდომისთვის",
 	"To access the GGUF models available for downloading,": "ჩასატვირთად ხელმისაწვდომი GGUF მოდელებზე წვდომისთვის",
 	"to chat input.": "ჩატში",
-	"Today": "",
+	"Today": "დღეს",
 	"Toggle settings": "პარამეტრების გადართვა",
 	"Toggle sidebar": "გვერდითი ზოლის გადართვა",
 	"Top K": "ტოპ K",
@@ -474,13 +474,13 @@
 	"Type Hugging Face Resolve (Download) URL": "სცადე გადმოწერო Hugging Face Resolve URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "განახლება და ბმულის კოპირება",
 	"Update password": "პაროლის განახლება",
 	"Upload a GGUF model": "GGUF მოდელის ატვირთვა",
 	"Upload files": "ფაილების ატვირთვა",
 	"Upload Progress": "პროგრესის ატვირთვა",
 	"URL Mode": "URL რეჟიმი",
-	"Use '#' in the prompt input to load and select your documents.": "",
+	"Use '#' in the prompt input to load and select your documents.": "პრომტში გამოიყენე '#' რომელიც გაიტანს დოკუმენტებს",
 	"Use Gravatar": "გამოიყენე Gravatar",
 	"Use Initials": "გამოიყენე ინიციალები",
 	"user": "მომხმარებელი",
@@ -491,27 +491,27 @@
 	"variable": "ცვლადი",
 	"variable to have them replaced with clipboard content.": "ცვლადი, რომ შეცვალოს ისინი ბუფერში შიგთავსით.",
 	"Version": "ვერსია",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "გაფრთხილება: თუ განაახლებთ ან შეცვლით ჩანერგვის მოდელს, მოგიწევთ ყველა დოკუმენტის ხელახლა იმპორტი.",
 	"Web": "ვები",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "ვების ჩატარების პარამეტრები",
+	"Web Params": "ვების პარამეტრები",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI დანამატები",
 	"WebUI Settings": "WebUI პარამეტრები",
 	"WebUI will make requests to": "WebUI გამოგიგზავნით მოთხოვნებს",
 	"What’s New in": "რა არის ახალი",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "როდესაც ისტორია გამორთულია, ახალი ჩეთები ამ ბრაუზერში არ გამოჩნდება თქვენს ისტორიაში არცერთ მოწყობილობაზე.",
 	"Whisper (Local)": "ჩურჩული (ადგილობრივი)",
-	"Workspace": "",
+	"Workspace": "ვულერი",
 	"Write a prompt suggestion (e.g. Who are you?)": "დაწერეთ მოკლე წინადადება (მაგ. ვინ ხარ?",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "აღდგენა",
+	"You": "ჩემი",
+	"You have no archived conversations.": "არ ხართ არქივირებული განხილვები.",
+	"You have shared this chat": "ამ ჩატის გააგზავნა",
 	"You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ხართ.",
 	"You're now logged in.": "თქვენ შესული ხართ.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Youtube Loader Settings"
 }

+ 145 - 145
src/lib/i18n/locales/ko-KR/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(예: `sh webui.sh --api`)",
 	"(latest)": "(latest)",
 	"{{modelName}} is thinking...": "{{modelName}} 이(가) 생각중입니다....",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}의 채팅",
 	"{{webUIName}} Backend Required": "{{webUIName}} 백엔드가 필요합니다.",
 	"A selected model does not support image input": "",
 	"a user": "사용자",
 	"About": "소개",
 	"Account": "계정",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "정확한 정보",
+	"Add": "추가",
 	"Add a model": "모델 추가",
 	"Add a model tag name": "모델 태그명 추가",
 	"Add a short description about what this modelfile does": "이 모델파일이 하는 일에 대한 간단한 설명 추가",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "프롬프트 추가",
 	"Add Docs": "문서 추가",
 	"Add Files": "파일 추가",
-	"Add Memory": "",
+	"Add Memory": "메모리 추가",
 	"Add message": "메시지 추가",
-	"Add Model": "",
+	"Add Model": "모델 추가",
 	"Add Tags": "태그들 추가",
-	"Add User": "",
+	"Add User": "사용자 추가",
 	"Adjusting these settings will apply changes universally to all users.": "이 설정을 조정하면 모든 사용자에게 적용됩니다.",
 	"admin": "관리자",
 	"Admin Panel": "관리자 패널",
 	"Admin Settings": "관리자 설정",
 	"Advanced Parameters": "고급 매개변수",
 	"all": "모두",
-	"All Documents": "",
+	"All Documents": "모든 문서",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "모든 사용자",
 	"Allow": "허용",
@@ -40,38 +40,38 @@
 	"Already have an account?": "이미 계정이 있으신가요?",
 	"an assistant": "어시스턴트",
 	"and": "그리고",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "새로운 공유 링크를 생성합니다.",
 	"API Base URL": "API 기본 URL",
 	"API Key": "API키",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API 키가 생성되었습니다.",
+	"API keys": "API 키",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "4월",
+	"Archive": "아카이브",
 	"Archived Chats": "채팅 기록 아카이브",
 	"are allowed - Activate this command by typing": "허용됩니다 - 이 명령을 활성화하려면 입력하세요.",
 	"Are you sure?": "확실합니까?",
 	"Attach file": "파일 첨부",
 	"Attention to detail": "상세한 주의",
 	"Audio": "오디오",
-	"August": "",
+	"August": "8월",
 	"Auto-playback response": "응답 자동 재생",
 	"Auto-send input after 3 sec.": "3초 후 입력 자동 전송",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Base URL",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Base URL이 필요합니다.",
 	"available!": "사용 가능!",
 	"Back": "뒤로가기",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "응답이 좋지 않습니다.",
+	"before": "이전",
+	"Being lazy": "게으름 피우기",
 	"Builder Mode": "빌더 모드",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "SSL 검증을 무시하려면 웹 사이트를 선택하세요.",
 	"Cancel": "취소",
 	"Categories": "분류",
 	"Change Password": "비밀번호 변경",
 	"Chat": "채팅",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "채팅 버블 UI",
+	"Chat direction": "채팅 방향",
 	"Chat History": "채팅 기록",
 	"Chat History is off for this browser.": "이 브라우저에서 채팅 기록이 꺼져 있습니다.",
 	"Chats": "채팅",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Chunk Size",
 	"Citation": "인용",
 	"Click here for help.": "도움말을 보려면 여기를 클릭하세요.",
-	"Click here to": "",
+	"Click here to": "여기를 클릭하면",
 	"Click here to check other modelfiles.": "다른 모델파일을 확인하려면 여기를 클릭하세요.",
 	"Click here to select": "선택하려면 여기를 클릭하세요.",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "csv 파일을 선택하려면 여기를 클릭하세요.",
 	"Click here to select documents.": "문서를 선택하려면 여기를 클릭하세요.",
 	"click here.": "여기를 클릭하세요.",
 	"Click on the user role button to change a user's role.": "사용자 역할 버튼을 클릭하여 사용자의 역할을 변경하세요.",
 	"Close": "닫기",
 	"Collection": "컬렉션",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI 기본 URL",
+	"ComfyUI Base URL is required.": "ComfyUI 기본 URL이 필요합니다.",
 	"Command": "명령",
 	"Confirm Password": "비밀번호 확인",
 	"Connections": "연결",
 	"Content": "내용",
 	"Context Length": "내용 길이",
-	"Continue Response": "",
+	"Continue Response": "대화 계속",
 	"Conversation Mode": "대화 모드",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "공유 채팅 URL이 클립보드에 복사되었습니다!",
+	"Copy": "복사",
 	"Copy last code block": "마지막 코드 블록 복사",
 	"Copy last response": "마지막 응답 복사",
-	"Copy Link": "",
+	"Copy Link": "링크 복사",
 	"Copying to clipboard was successful!": "클립보드에 복사되었습니다!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "다음 질문에 대한 제목으로 간결한 3-5 단어 문구를 만드되 3-5 단어 제한을 엄격히 준수하고 'title' 단어 사용을 피하세요:",
 	"Create a modelfile": "모델파일 만들기",
 	"Create Account": "계정 만들기",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "새 키 만들기",
+	"Create new secret key": "새 비밀 키 만들기",
 	"Created at": "생성일",
-	"Created At": "",
+	"Created At": "생성일",
 	"Current Model": "현재 모델",
 	"Current Models": "",
 	"Current Password": "현재 비밀번호",
 	"Custom": "사용자 정의",
 	"Customize Ollama models for a specific purpose": "특정 목적으로 Ollama 모델 사용자 정의",
 	"Dark": "어두운",
-	"Dashboard": "",
+	"Dashboard": "대시보드",
 	"Database": "데이터베이스",
-	"December": "",
+	"December": "12월",
 	"Default": "기본값",
 	"Default (Automatic1111)": "기본값 (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "기본값 (SentenceTransformers)",
 	"Default (Web API)": "기본값 (Web API)",
 	"Default model updated": "기본 모델이 업데이트되었습니다.",
 	"Default Prompt Suggestions": "기본 프롬프트 제안",
 	"Default User Role": "기본 사용자 역할",
 	"delete": "삭제",
-	"Delete": "",
+	"Delete": "삭제",
 	"Delete a model": "모델 삭제",
 	"Delete chat": "채팅 삭제",
-	"Delete Chat": "",
+	"Delete Chat": "채팅 삭제",
 	"Delete Chats": "채팅들 삭제",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "이 링크를 삭제합니다.",
+	"Delete User": "사용자 삭제",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} 삭제됨",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} 삭제됨",
 	"Description": "설명",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "완전히 지침을 따르지 않음",
 	"Disabled": "비활성화",
 	"Discover a modelfile": "모델파일 검색",
 	"Discover a prompt": "프롬프트 검색",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "어떠한 외부 연결도 하지 않으며, 데이터는 로컬에서 호스팅되는 서버에 안전하게 유지됩니다.",
 	"Don't Allow": "허용 안 함",
 	"Don't have an account?": "계정이 없으신가요?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "스타일을 좋아하지 않으세요?",
+	"Download": "다운로드 취소",
+	"Download canceled": "다운로드 취소됨",
 	"Download Database": "데이터베이스 다운로드",
 	"Drop any files here to add to the conversation": "대화에 추가할 파일을 여기에 드롭하세요.",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "예: '30s','10m'. 유효한 시간 단위는 's', 'm', 'h'입니다.",
-	"Edit": "",
+	"Edit": "편집",
 	"Edit Doc": "문서 편집",
 	"Edit User": "사용자 편집",
 	"Email": "이메일",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "임베딩 모델",
+	"Embedding Model Engine": "임베딩 모델 엔진",
+	"Embedding model set to \"{{embedding_model}}\"": "임베딩 모델을 \"{{embedding_model}}\"로 설정됨",
 	"Enable Chat History": "채팅 기록 활성화",
 	"Enable New Sign Ups": "새 회원가입 활성화",
 	"Enabled": "활성화",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSV 파일에 이름, 이메일, 비밀번호, 역할 4개의 컬럼이 순서대로 포함되어 있는지 확인하세요.",
 	"Enter {{role}} message here": "여기에 {{role}} 메시지 입력",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "자신에 대한 세부사항을 입력하여 LLMs가 기억할 수 있도록 하세요",
 	"Enter Chunk Overlap": "청크 오버랩 입력",
 	"Enter Chunk Size": "청크 크기 입력",
 	"Enter Image Size (e.g. 512x512)": "이미지 크기 입력(예: 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "언어 코드 입력",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "LiteLLM API 기본 URL 입력(litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "LiteLLM API 키 입력(litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "LiteLLM API RPM 입력(litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "모델 태그 입력(예: {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "단계 수 입력(예: 50)",
-	"Enter Score": "",
+	"Enter Score": "점수 입력",
 	"Enter stop sequence": "중지 시퀀스 입력",
 	"Enter Top K": "Top K 입력",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL 입력(예: http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "URL 입력(예: http://localhost:11434)",
 	"Enter Your Email": "이메일 입력",
 	"Enter Your Full Name": "전체 이름 입력",
 	"Enter Your Password": "비밀번호 입력",
-	"Enter Your Role": "",
+	"Enter Your Role": "역할 입력",
 	"Experimental": "실험적",
 	"Export All Chats (All Users)": "모든 채팅 내보내기 (모든 사용자)",
 	"Export Chats": "채팅 내보내기",
 	"Export Documents Mapping": "문서 매핑 내보내기",
 	"Export Modelfiles": "모델파일 내보내기",
 	"Export Prompts": "프롬프트 내보내기",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "API 키 생성에 실패했습니다.",
 	"Failed to read clipboard contents": "클립보드 내용을 읽는 데 실패했습니다.",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "2월",
+	"Feel free to add specific details": "자세한 내용을 추가할 수 있습니다.",
 	"File Mode": "파일 모드",
 	"File not found.": "파일을 찾을 수 없습니다.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "지문 스푸핑 감지됨: 이니셜을 아바타로 사용할 수 없습니다. 기본값은 기본 프로필 이미지입니다.",
 	"Fluidly stream large external response chunks": "대규모 외부 응답 청크를 유동적으로 스트리밍",
 	"Focus chat input": "채팅 입력 포커스",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "명령을 완벽히 따름",
 	"Format your variables using square brackets like this:": "이렇게 대괄호를 사용하여 변수를 형식화하세요:",
 	"From (Base Model)": "출처(기본 모델)",
 	"Full Screen Mode": "전체 화면 모드",
 	"General": "일반",
 	"General Settings": "일반 설정",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "생성 정보",
+	"Good Response": "좋은 응답",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "대화가 없습니다.",
 	"Hello, {{name}}": "안녕하세요, {{name}}",
-	"Help": "",
+	"Help": "도움말",
 	"Hide": "숨기기",
 	"Hide Additional Params": "추가 매개변수 숨기기",
 	"How can I help you today?": "오늘 어떻게 도와드릴까요?",
-	"Hybrid Search": "",
+	"Hybrid Search": "혼합 검색",
 	"Image Generation (Experimental)": "이미지 생성(실험적)",
 	"Image Generation Engine": "이미지 생성 엔진",
 	"Image Settings": "이미지 설정",
@@ -235,45 +235,45 @@
 	"Import Documents Mapping": "문서 매핑 가져오기",
 	"Import Modelfiles": "모델파일 가져오기",
 	"Import Prompts": "프롬프트 가져오기",
-	"Include `--api` flag when running stable-diffusion-webui": "",
+	"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui를 실행할 때 '--api' 플래그 포함",
 	"Input commands": "입력 명령",
 	"Interface": "인터페이스",
-	"Invalid Tag": "",
+	"Invalid Tag": "잘못된 태그",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "1월",
 	"join our Discord for help.": "도움말을 보려면 Discord에 가입하세요.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "7월",
+	"June": "6월",
 	"JWT Expiration": "JWT 만료",
 	"JWT Token": "JWT 토큰",
 	"Keep Alive": "계속 유지하기",
 	"Keyboard shortcuts": "키보드 단축키",
 	"Language": "언어",
-	"Last Active": "",
+	"Last Active": "최근 활동",
 	"Light": "밝음",
 	"Listening...": "청취 중...",
 	"LLMs can make mistakes. Verify important information.": "LLM은 실수를 할 수 있습니다. 중요한 정보를 확인하세요.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "OpenWebUI 커뮤니티에서 제작",
 	"Make sure to enclose them with": "다음으로 묶는 것을 잊지 마세요:",
 	"Manage LiteLLM Models": "LiteLLM 모델 관리",
 	"Manage Model Information": "",
 	"Manage Models": "모델 관리",
 	"Manage Ollama Models": "Ollama 모델 관리",
-	"March": "",
+	"March": "3월",
 	"Max Tokens": "최대 토큰 수",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "최대 3개의 모델을 동시에 다운로드할 수 있습니다. 나중에 다시 시도하세요.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "5월",
+	"Memories accessible by LLMs will be shown here.": "LLM에서 액세스할 수 있는 메모리는 여기에 표시됩니다.",
+	"Memory": "메모리",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "링크를 만든 후 보낸 메시지는 공유되지 않습니다. URL이 있는 사용자는 공유 채팅을 볼 수 있습니다.",
+	"Minimum Score": "최소 점수",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
-	"MMMM DD, YYYY": "",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY": "MMMM DD, YYYY",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "모델 '{{modelName}}'이(가) 성공적으로 다운로드되었습니다.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "모델 '{{modelTag}}'이(가) 이미 다운로드 대기열에 있습니다.",
 	"Model {{modelId}} not found": "모델 {{modelId}}를 찾을 수 없습니다.",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "모델 파일 시스템 경로가 감지되었습니다. 업데이트하려면 모델 단축 이름이 필요하며 계속할 수 없습니다.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "모델 이름",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "모델파일 내용",
 	"Modelfiles": "모델파일",
 	"Models": "모델",
-	"More": "",
+	"More": "더보기",
 	"Name": "이름",
 	"Name Tag": "이름 태그",
 	"Name your modelfile": "모델파일 이름 지정",
 	"New Chat": "새 채팅",
 	"New Password": "새 비밀번호",
 	"No": "",
-	"No results found": "",
+	"No results found": "결과 없음",
 	"No source available": "사용 가능한 소스 없음",
-	"Not factually correct": "",
+	"Not factually correct": "사실상 맞지 않음",
 	"Not sure what to add?": "추가할 것이 궁금하세요?",
 	"Not sure what to write? Switch to": "무엇을 쓸지 모르겠나요? 전환하세요.",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "참고: 최소 점수를 설정하면 검색 결과는 최소 점수 이상의 점수를 가진 문서만 반환됩니다.",
 	"Notifications": "알림",
-	"November": "",
-	"October": "",
+	"November": "11월",
+	"October": "10월",
 	"Off": "끄기",
 	"Okay, Let's Go!": "그렇습니다, 시작합시다!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED 어두운",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama 기본 URL",
 	"Ollama Version": "Ollama 버전",
 	"On": "켜기",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "OpenAI (Dall-E)",
 	"Open new chat": "새 채팅 열기",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API 설정",
 	"OpenAI API Key is required.": "OpenAI API 키가 필요합니다.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Key가 필요합니다.",
 	"or": "또는",
-	"Other": "",
-	"Overview": "",
+	"Other": "기타",
+	"Overview": "개요",
 	"Parameters": "매개변수",
 	"Password": "비밀번호",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF 문서 (.pdf)",
 	"PDF Extract Images (OCR)": "PDF에서 이미지 추출 (OCR)",
 	"pending": "보류 중",
 	"Permission denied when accessing microphone: {{error}}": "마이크 액세스가 거부되었습니다: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "개인화",
+	"Plain text (.txt)": "일반 텍스트 (.txt)",
 	"Playground": "놀이터",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "긍정적인 자세",
+	"Previous 30 days": "이전 30일",
+	"Previous 7 days": "이전 7일",
+	"Profile Image": "프로필 이미지",
+	"Prompt": "프롬프트",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "프롬프트 (예: 로마 황제에 대해 재미있는 사실을 알려주세요)",
 	"Prompt Content": "프롬프트 내용",
 	"Prompt suggestions": "프롬프트 제안",
 	"Prompts": "프롬프트",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com에서 \"{{searchValue}}\" 가져오기",
 	"Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기",
 	"Pull Progress": "가져오기 진행 상황",
 	"Query Params": "쿼리 매개변수",
 	"RAG Template": "RAG 템플릿",
 	"Raw Format": "Raw 형식",
-	"Read Aloud": "",
+	"Read Aloud": "읽어주기",
 	"Record voice": "음성 녹음",
 	"Redirecting you to OpenWebUI Community": "OpenWebUI 커뮤니티로 리디렉션하는 중",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "허용되지 않았지만 허용되어야 합니다.",
+	"Regenerate": "재생성",
 	"Release Notes": "릴리스 노트",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "삭제",
+	"Remove Model": "모델 삭제",
+	"Rename": "이름 변경",
 	"Repeat Last N": "마지막 N 반복",
 	"Repeat Penalty": "반복 패널티",
 	"Request Mode": "요청 모드",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "랭킹 모델 재설정",
+	"Reranking model disabled": "랭킹 모델 재설정 비활성화",
+	"Reranking model set to \"{{reranking_model}}\"": "랭킹 모델 재설정을 \"{{reranking_model}}\"로 설정",
 	"Reset Vector Storage": "벡터 스토리지 초기화",
 	"Response AutoCopy to Clipboard": "응답 자동 클립보드 복사",
 	"Role": "역할",
 	"Rosé Pine": "로제 파인",
 	"Rosé Pine Dawn": "로제 파인 던",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "저장",
 	"Save & Create": "저장 및 생성",
 	"Save & Update": "저장 및 업데이트",
@@ -387,7 +387,7 @@
 	"Scan complete!": "스캔 완료!",
 	"Scan for documents from {{path}}": "{{path}}에서 문서 스캔",
 	"Search": "검색",
-	"Search a model": "",
+	"Search a model": "모델 검색",
 	"Search Documents": "문서 검색",
 	"Search Prompts": "프롬프트 검색",
 	"See readme.md for instructions": "설명은 readme.md를 참조하세요.",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Ollama 인스턴스 선택",
 	"Select model": "모델 선택",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "보내기",
 	"Send a Message": "메시지 보내기",
 	"Send message": "메시지 보내기",
-	"September": "",
+	"September": "9월",
 	"Server connection verified": "서버 연결 확인됨",
 	"Set as default": "기본값으로 설정",
 	"Set Default Model": "기본 모델 설정",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "임베딩 모델 설정 (예: {{model}})",
 	"Set Image Size": "이미지 크기 설정",
 	"Set Model": "모델 설정",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "랭킹 모델 설정 (예: {{model}})",
 	"Set Steps": "단계 설정",
 	"Set Title Auto-Generation Model": "제목 자동 생성 모델 설정",
 	"Set Voice": "음성 설정",
 	"Settings": "설정",
 	"Settings saved successfully!": "설정이 성공적으로 저장되었습니다!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "공유",
+	"Share Chat": "채팅 공유",
 	"Share to OpenWebUI Community": "OpenWebUI 커뮤니티에 공유",
 	"short-summary": "간단한 요약",
 	"Show": "보이기",
 	"Show Additional Params": "추가 매개변수 보기",
 	"Show shortcuts": "단축키 보기",
-	"Showcased creativity": "",
+	"Showcased creativity": "쇼케이스된 창의성",
 	"sidebar": "사이드바",
 	"Sign in": "로그인",
 	"Sign Out": "로그아웃",
 	"Sign up": "가입",
-	"Signing in": "",
+	"Signing in": "로그인 중",
 	"Source": "출처",
 	"Speech recognition error: {{error}}": "음성 인식 오류: {{error}}",
 	"Speech-to-Text Engine": "음성-텍스트 엔진",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "중지 시퀀스",
 	"STT Settings": "STT 설정",
 	"Submit": "제출",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "캡션 (예: 로마 황제)",
 	"Success": "성공",
 	"Successfully updated.": "성공적으로 업데이트되었습니다.",
-	"Suggested": "",
+	"Suggested": "제안",
 	"Sync All": "모두 동기화",
 	"System": "시스템",
 	"System Prompt": "시스템 프롬프트",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "더 알려주세요:",
 	"Temperature": "Temperature",
 	"Template": "Template",
 	"Text Completion": "텍스트 완성",
 	"Text-to-Speech Engine": "텍스트-음성 엔진",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "너의 피드백 감사합니다!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "점수는 0.0 (0%)에서 1.0 (100%) 사이의 값이어야 합니다.",
 	"Theme": "테마",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "이렇게 하면 소중한 대화 내용이 백엔드 데이터베이스에 안전하게 저장됩니다. 감사합니다!",
 	"This setting does not sync across browsers or devices.": "이 설정은 브라우저 또는 장치 간에 동기화되지 않습니다.",
-	"Thorough explanation": "",
+	"Thorough explanation": "철저한 설명",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "팁: 각 대체 후 채팅 입력에서 탭 키를 눌러 여러 개의 변수 슬롯을 연속적으로 업데이트하세요.",
 	"Title": "제목",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "제목 (예: 재미있는 사실을 알려주세요)",
 	"Title Auto-Generation": "제목 자동 생성",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "제목은 빈 문자열일 수 없습니다.",
 	"Title Generation Prompt": "제목 생성 프롬프트",
 	"to": "~까지",
 	"To access the available model names for downloading,": "다운로드 가능한 모델명을 확인하려면,",
 	"To access the GGUF models available for downloading,": "다운로드 가능한 GGUF 모델을 확인하려면,",
 	"to chat input.": "채팅 입력으로.",
-	"Today": "",
+	"Today": "오늘",
 	"Toggle settings": "설정 전환",
 	"Toggle sidebar": "사이드바 전환",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (다운로드) URL 입력",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "링크 업데이트 및 복사",
 	"Update password": "비밀번호 업데이트",
 	"Upload a GGUF model": "GGUF 모델 업로드",
 	"Upload files": "파일 업로드",
@@ -482,7 +482,7 @@
 	"URL Mode": "URL 모드",
 	"Use '#' in the prompt input to load and select your documents.": "프롬프트 입력에서 '#'를 사용하여 문서를 로드하고 선택하세요.",
 	"Use Gravatar": "Gravatar 사용",
-	"Use Initials": "",
+	"Use Initials": "초성 사용",
 	"user": "사용자",
 	"User Permissions": "사용자 권한",
 	"Users": "사용자",
@@ -491,27 +491,27 @@
 	"variable": "변수",
 	"variable to have them replaced with clipboard content.": "변수를 사용하여 클립보드 내용으로 바꾸세요.",
 	"Version": "버전",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "웹 로더를 업데이트하거나 변경할 경우 모든 문서를 다시 가져와야 합니다.",
 	"Web": "웹",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "웹 로더 설정",
+	"Web Params": "웹 파라미터",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI 애드온",
 	"WebUI Settings": "WebUI 설정",
 	"WebUI will make requests to": "WebUI가 요청할 대상:",
-	"What’s New in": "",
+	"What’s New in": "새로운 기능:",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "기록 기능이 꺼져 있으면 이 브라우저의 새 채팅이 다른 장치의 채팅 기록에 나타나지 않습니다.",
 	"Whisper (Local)": "위스퍼 (Local)",
-	"Workspace": "",
+	"Workspace": "워크스페이스",
 	"Write a prompt suggestion (e.g. Who are you?)": "프롬프트 제안 작성 (예: 당신은 누구인가요?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[주제 또는 키워드]에 대한 50단어 요약문 작성.",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "어제",
+	"You": "당신",
+	"You have no archived conversations.": "채팅을 아카이브한 적이 없습니다.",
+	"You have shared this chat": "이 채팅을 공유했습니다.",
 	"You're a helpful assistant.": "당신은 유용한 어시스턴트입니다.",
 	"You're now logged in.": "로그인되었습니다.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "유튜브",
+	"Youtube Loader Settings": "유튜브 로더 설정"
 }

+ 24 - 24
src/lib/i18n/locales/languages.json

@@ -9,35 +9,35 @@
 	},
 	{
 		"code": "ar-BH",
-		"title": "العربية (AR)"
+		"title": "Arabic (عربي)"
 	},
 	{
-		"code": "bg-BG",
-		"title": "Bulgarian (BG)"
+		"code": "bn-BD",
+		"title": "Bengali (বাংলা)"
 	},
 	{
-		"code": "bn-BD",
-		"title": "Bangla (বাংলা)"
+		"code": "bg-BG",
+		"title": "Bulgarian (български)"
 	},
 	{
 		"code": "ca-ES",
-		"title": "Catalan"
+		"title": "Catalan (català)"
 	},
 	{
 		"code": "de-DE",
-		"title": "Deutsch"
+		"title": "German (Deutsch)"
 	},
 	{
 		"code": "es-ES",
-		"title": "Spanish"
+		"title": "Spanish (Español)"
 	},
 	{
 		"code": "fa-IR",
-		"title": "فارسی (Farsi)"
+		"title": "Persian (فارسی)"
 	},
 	{
 		"code": "fi-FI",
-		"title": "Finnish"
+		"title": "Finnish (Suomalainen)"
 	},
 	{
 		"code": "fr-CA",
@@ -49,7 +49,7 @@
 	},
 	{
 		"code": "he-IL",
-		"title": "עברית (Hebrew)"
+		"title": "Hebrew (עברית)"
 	},
 	{
 		"code": "hi-IN",
@@ -57,23 +57,23 @@
 	},
 	{
 		"code": "hr-HR",
-		"title": "Croatian"
+		"title": "Croatian (Hrvatski)"
 	},
 	{
 		"code": "it-IT",
-		"title": "Italian"
+		"title": "Italian (Italiano)"
 	},
 	{
 		"code": "ja-JP",
-		"title": "Japanese"
+		"title": "Japanese (日本語)"
 	},
 	{
 		"code": "ka-GE",
-		"title": "Georgian"
+		"title": "Georgian (ქართული)"
 	},
 	{
 		"code": "ko-KR",
-		"title": "Korean"
+		"title": "Korean (한국어)"
 	},
 	{
 		"code": "nl-NL",
@@ -85,7 +85,7 @@
 	},
 	{
 		"code": "pl-PL",
-		"title": "Polish"
+		"title": "Polish (Polski)"
 	},
 	{
 		"code": "pt-BR",
@@ -101,7 +101,7 @@
 	},
 	{
 		"code": "sv-SE",
-		"title": "Swedish"
+		"title": "Swedish (Svenska)"
 	},
 	{
 		"code": "sr-RS",
@@ -109,26 +109,26 @@
 	},
 	{
 		"code": "tr-TR",
-		"title": "Turkish"
+		"title": "Turkish (Türkçe)"
 	},
 	{
 		"code": "uk-UA",
-		"title": "Ukrainian"
+		"title": "Ukrainian (Українська)"
 	},
 	{
 		"code": "vi-VN",
-		"title": "Tiếng Việt"
+		"title": "Vietnamese (Tiếng Việt)"
 	},
 	{
 		"code": "zh-CN",
-		"title": "Chinese (Simplified)"
+		"title": "Chinese (简体中文)"
 	},
 	{
 		"code": "zh-TW",
-		"title": "Chinese (Traditional)"
+		"title": "Chinese (繁體中文)"
 	},
 	{
 		"code": "dg-DG",
-		"title": "Doge 🐶"
+		"title": "Doge (🐶)"
 	}
 ]

+ 1 - 1
src/lib/i18n/locales/lt-LT/translation.json

@@ -264,7 +264,7 @@
 	"Model '{{modelTag}}' is already in queue for downloading.": "Modelis '{{modelTag}}' jau atsisiuntimų eilėje.",
 	"Model {{modelId}} not found": "Modelis {{modelId}} nerastas",
 	"Model {{modelName}} already exists.": "Modelis {{modelName}} jau egzistuoja.",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modelio failų sistemos kelias aptiktas. Reikalingas trumpas modelio pavadinimas atnaujinimui.",
 	"Model Name": "Modelio pavadinimas",
 	"Model not selected": "Modelis nepasirinktas",
 	"Model Tag Name": "Modelio žymos pavadinimas",

+ 143 - 143
src/lib/i18n/locales/nl-NL/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)",
 	"(latest)": "(nieuwste)",
 	"{{modelName}} is thinking...": "{{modelName}} is aan het denken...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Verlpicht",
 	"A selected model does not support image input": "",
 	"a user": "een gebruiker",
 	"About": "Over",
 	"Account": "Account",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Accurate informatie",
+	"Add": "Toevoegen",
 	"Add a model": "Voeg een model toe",
 	"Add a model tag name": "Voeg een model tag naam toe",
 	"Add a short description about what this modelfile does": "Voeg een korte beschrijving toe over wat dit modelfile doet",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Voeg een aangepaste prompt toe",
 	"Add Docs": "Voeg Docs toe",
 	"Add Files": "Voege Bestanden toe",
-	"Add Memory": "",
+	"Add Memory": "Voeg Geheugen toe",
 	"Add message": "Voeg bericht toe",
-	"Add Model": "",
+	"Add Model": "Voeg Model toe",
 	"Add Tags": "voeg tags toe",
-	"Add User": "",
+	"Add User": "Voeg Gebruiker toe",
 	"Adjusting these settings will apply changes universally to all users.": "Het aanpassen van deze instellingen zal universeel worden toegepast op alle gebruikers.",
 	"admin": "admin",
 	"Admin Panel": "Administratieve Paneel",
 	"Admin Settings": "Administratieve Settings",
 	"Advanced Parameters": "Geavanceerde Parameters",
 	"all": "alle",
-	"All Documents": "",
+	"All Documents": "Alle Documenten",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Alle Gebruikers",
 	"Allow": "Toestaan",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Heb je al een account?",
 	"an assistant": "een assistent",
 	"and": "en",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "en maak een nieuwe gedeelde link.",
 	"API Base URL": "API Base URL",
 	"API Key": "API Key",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API Key gemaakt.",
+	"API keys": "API keys",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "April",
+	"Archive": "Archief",
 	"Archived Chats": "chatrecord",
 	"are allowed - Activate this command by typing": "zijn toegestaan - Activeer deze commando door te typen",
 	"Are you sure?": "Zeker weten?",
 	"Attach file": "Voeg een bestand toe",
-	"Attention to detail": "",
+	"Attention to detail": "Attention to detail",
 	"Audio": "Audio",
-	"August": "",
+	"August": "Augustus",
 	"Auto-playback response": "Automatisch afspelen van antwoord",
 	"Auto-send input after 3 sec.": "Automatisch verzenden van input na 3 sec.",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Base URL",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Basis URL is verplicht",
 	"available!": "beschikbaar!",
 	"Back": "Terug",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Ongeldig antwoord",
+	"before": "voor",
+	"Being lazy": "Lustig zijn",
 	"Builder Mode": "Bouwer Modus",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "SSL-verificatie omzeilen voor websites",
 	"Cancel": "Annuleren",
 	"Categories": "Categorieën",
 	"Change Password": "Wijzig Wachtwoord",
 	"Chat": "Chat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Chat Bubble UI",
+	"Chat direction": "Chat Richting",
 	"Chat History": "Chat Geschiedenis",
 	"Chat History is off for this browser.": "Chat Geschiedenis is uitgeschakeld voor deze browser.",
 	"Chats": "Chats",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Chunk Grootte",
 	"Citation": "Citaat",
 	"Click here for help.": "Klik hier voor hulp.",
-	"Click here to": "",
+	"Click here to": "Klik hier om",
 	"Click here to check other modelfiles.": "Klik hier om andere modelfiles te controleren.",
 	"Click here to select": "Klik hier om te selecteren",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Klik hier om een csv file te selecteren.",
 	"Click here to select documents.": "Klik hier om documenten te selecteren",
 	"click here.": "klik hier.",
 	"Click on the user role button to change a user's role.": "Klik op de gebruikersrol knop om de rol van een gebruiker te wijzigen.",
 	"Close": "Sluiten",
 	"Collection": "Verzameling",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL is required.",
 	"Command": "Commando",
 	"Confirm Password": "Bevestig Wachtwoord",
 	"Connections": "Verbindingen",
 	"Content": "Inhoud",
 	"Context Length": "Context Lengte",
-	"Continue Response": "",
+	"Continue Response": "Doorgaan met Antwoord",
 	"Conversation Mode": "Gespreksmodus",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL van gedeelde gesprekspagina gekopieerd naar klembord!",
+	"Copy": "Kopieer",
 	"Copy last code block": "Kopieer laatste code blok",
 	"Copy last response": "Kopieer laatste antwoord",
-	"Copy Link": "",
+	"Copy Link": "Kopieer Link",
 	"Copying to clipboard was successful!": "Kopiëren naar klembord was succesvol!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Maak een beknopte, 3-5 woorden tellende zin als kop voor de volgende query, strikt aanhoudend aan de 3-5 woorden limiet en het vermijden van het gebruik van het woord 'titel':",
 	"Create a modelfile": "Maak een modelfile",
 	"Create Account": "Maak Account",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Maak nieuwe sleutel",
+	"Create new secret key": "Maak nieuwe geheim sleutel",
 	"Created at": "Gemaakt op",
-	"Created At": "",
+	"Created At": "Gemaakt op",
 	"Current Model": "Huidig Model",
 	"Current Models": "",
 	"Current Password": "Huidig Wachtwoord",
 	"Custom": "Aangepast",
 	"Customize Ollama models for a specific purpose": "Pas Ollama modellen aan voor een specifiek doel",
 	"Dark": "Donker",
-	"Dashboard": "",
+	"Dashboard": "Dashboard",
 	"Database": "Database",
-	"December": "",
+	"December": "December",
 	"Default": "Standaard",
 	"Default (Automatic1111)": "Standaard (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Standaard (SentenceTransformers)",
 	"Default (Web API)": "Standaard (Web API)",
 	"Default model updated": "Standaard model bijgewerkt",
 	"Default Prompt Suggestions": "Standaard Prompt Suggesties",
 	"Default User Role": "Standaard Gebruikersrol",
 	"delete": "verwijderen",
-	"Delete": "",
+	"Delete": "Verwijderen",
 	"Delete a model": "Verwijder een model",
 	"Delete chat": "Verwijder chat",
-	"Delete Chat": "",
+	"Delete Chat": "Verwijder Chat",
 	"Delete Chats": "Verwijder Chats",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "verwijder deze link",
+	"Delete User": "Verwijder Gebruiker",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} is verwijderd",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} is verwijderd",
 	"Description": "Beschrijving",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Ik heb niet alle instructies volgt",
 	"Disabled": "Uitgeschakeld",
 	"Discover a modelfile": "Ontdek een modelfile",
 	"Discover a prompt": "Ontdek een prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "maakt geen externe verbindingen, en je gegevens blijven veilig op je lokaal gehoste server.",
 	"Don't Allow": "Niet Toestaan",
 	"Don't have an account?": "Heb je geen account?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Je vindt het stijl niet?",
+	"Download": "Download",
+	"Download canceled": "Download geannuleerd",
 	"Download Database": "Download Database",
 	"Drop any files here to add to the conversation": "Sleep bestanden hier om toe te voegen aan het gesprek",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "bijv. '30s', '10m'. Geldige tijdseenheden zijn 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Wijzig",
 	"Edit Doc": "Wijzig Doc",
 	"Edit User": "Wijzig Gebruiker",
 	"Email": "Email",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Embedding Model",
+	"Embedding Model Engine": "Embedding Model Engine",
+	"Embedding model set to \"{{embedding_model}}\"": "Embedding model ingesteld op \"{{embedding_model}}\"",
 	"Enable Chat History": "Schakel Chat Geschiedenis in",
 	"Enable New Sign Ups": "Schakel Nieuwe Registraties in",
 	"Enabled": "Ingeschakeld",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Zorg ervoor dat uw CSV-bestand de volgende vier kolommen in deze volgorde bevat: Naam, E-mail, Wachtwoord, Rol.",
 	"Enter {{role}} message here": "Voeg {{role}} bericht hier toe",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Voer een detail over jezelf in voor je LLMs om het her te onthouden",
 	"Enter Chunk Overlap": "Voeg Chunk Overlap toe",
 	"Enter Chunk Size": "Voeg Chunk Size toe",
 	"Enter Image Size (e.g. 512x512)": "Voeg afbeelding formaat toe (Bijv. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Voeg taal codes toe",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Voeg LiteLLM API Base URL toe (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Voeg LiteLLM API Sleutel toe (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Voeg LiteLLM API RPM toe (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Voeg model tag toe (Bijv. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Voeg aantal stappen toe (Bijv. 50)",
-	"Enter Score": "",
+	"Enter Score": "Voeg score toe",
 	"Enter stop sequence": "Zet stop sequentie",
 	"Enter Top K": "Voeg Top K toe",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Zet URL (Bijv. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Zet URL (Bijv. http://localhost:11434)",
 	"Enter Your Email": "Voer je Email in",
 	"Enter Your Full Name": "Voer je Volledige Naam in",
 	"Enter Your Password": "Voer je Wachtwoord in",
-	"Enter Your Role": "",
+	"Enter Your Role": "Voer je Rol in",
 	"Experimental": "Experimenteel",
 	"Export All Chats (All Users)": "Exporteer Alle Chats (Alle Gebruikers)",
 	"Export Chats": "Exporteer Chats",
 	"Export Documents Mapping": "Exporteer Documenten Mapping",
 	"Export Modelfiles": "Exporteer Modelfiles",
 	"Export Prompts": "Exporteer Prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Kan API Key niet aanmaken.",
 	"Failed to read clipboard contents": "Kan klembord inhoud niet lezen",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Februarij",
+	"Feel free to add specific details": "Voeg specifieke details toe",
 	"File Mode": "Bestandsmodus",
 	"File not found.": "Bestand niet gevonden.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Vingerafdruk spoofing gedetecteerd: kan initialen niet gebruiken als avatar. Standaardprofielafbeelding wordt gebruikt.",
 	"Fluidly stream large external response chunks": "Stream vloeiend grote externe responsbrokken",
 	"Focus chat input": "Focus chat input",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Volgde instructies perfect",
 	"Format your variables using square brackets like this:": "Formatteer je variabelen met vierkante haken zoals dit:",
 	"From (Base Model)": "Van (Basis Model)",
 	"Full Screen Mode": "Volledig Scherm Modus",
 	"General": "Algemeen",
 	"General Settings": "Algemene Instellingen",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Generatie Info",
+	"Good Response": "Goede Antwoord",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "heeft geen gesprekken.",
 	"Hello, {{name}}": "Hallo, {{name}}",
-	"Help": "",
+	"Help": "Help",
 	"Hide": "Verberg",
 	"Hide Additional Params": "Verberg Extra Params",
 	"How can I help you today?": "Hoe kan ik je vandaag helpen?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Hybride Zoeken",
 	"Image Generation (Experimental)": "Afbeelding Generatie (Experimenteel)",
 	"Image Generation Engine": "Afbeelding Generatie Engine",
 	"Image Settings": "Afbeelding Instellingen",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Voeg `--api` vlag toe bij het uitvoeren van stable-diffusion-webui",
 	"Input commands": "Voer commando's in",
 	"Interface": "Interface",
-	"Invalid Tag": "",
+	"Invalid Tag": "Ongeldige Tag",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Januari",
 	"join our Discord for help.": "join onze Discord voor hulp.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Juli",
+	"June": "Juni",
 	"JWT Expiration": "JWT Expiration",
 	"JWT Token": "JWT Token",
 	"Keep Alive": "Houd Actief",
 	"Keyboard shortcuts": "Toetsenbord snelkoppelingen",
 	"Language": "Taal",
-	"Last Active": "",
+	"Last Active": "Laatst Actief",
 	"Light": "Licht",
 	"Listening...": "Luisteren...",
 	"LLMs can make mistakes. Verify important information.": "LLMs kunnen fouten maken. Verifieer belangrijke informatie.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Gemaakt door OpenWebUI Community",
 	"Make sure to enclose them with": "Zorg ervoor dat je ze omringt met",
 	"Manage LiteLLM Models": "Beheer LiteLLM Modellen",
 	"Manage Model Information": "",
 	"Manage Models": "Beheer Modellen",
 	"Manage Ollama Models": "Beheer Ollama Modellen",
-	"March": "",
+	"March": "Maart",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximaal 3 modellen kunnen tegelijkertijd worden gedownload. Probeer het later opnieuw.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Mei",
+	"Memories accessible by LLMs will be shown here.": "Geheugen toegankelijk voor LLMs wordt hier getoond.",
+	"Memory": "Geheugen",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Berichten die u verzendt nadat u uw link hebt gemaakt, worden niet gedeeld. Gebruikers met de URL kunnen de gedeelde chat bekijken.",
+	"Minimum Score": "Minimale Score",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' is succesvol gedownload.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' staat al in de wachtrij voor downloaden.",
 	"Model {{modelId}} not found": "Model {{modelId}} niet gevonden",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Model filesystem path gedetecteerd. Model shortname is vereist voor update, kan niet doorgaan.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Model Naam",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Modelfile Inhoud",
 	"Modelfiles": "Modelfiles",
 	"Models": "Modellen",
-	"More": "",
+	"More": "Meer",
 	"Name": "Naam",
 	"Name Tag": "Naam Tag",
 	"Name your modelfile": "Benoem je modelfile",
 	"New Chat": "Nieuwe Chat",
 	"New Password": "Nieuw Wachtwoord",
 	"No": "",
-	"No results found": "",
+	"No results found": "Geen resultaten gevonden",
 	"No source available": "Geen bron beschikbaar",
-	"Not factually correct": "",
+	"Not factually correct": "Feitelijk niet juist",
 	"Not sure what to add?": "Niet zeker wat toe te voegen?",
 	"Not sure what to write? Switch to": "Niet zeker wat te schrijven? Schakel over naar",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Opmerking: Als u een minimumscore instelt, levert de zoekopdracht alleen documenten op met een score groter dan of gelijk aan de minimumscore.",
 	"Notifications": "Desktop Notificaties",
-	"November": "",
-	"October": "",
+	"November": "November",
+	"October": "Oktober",
 	"Off": "Uit",
 	"Okay, Let's Go!": "Okay, Laten we gaan!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Donker",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama Basis URL",
 	"Ollama Version": "Ollama Versie",
 	"On": "Aan",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Open nieuwe chat",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API Config",
 	"OpenAI API Key is required.": "OpenAI API Sleutel is verplicht",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI URL/Sleutel vereist.",
 	"or": "of",
-	"Other": "",
-	"Overview": "",
+	"Other": "Andere",
+	"Overview": "Overzicht",
 	"Parameters": "Parameters",
 	"Password": "Wachtwoord",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF document (.pdf)",
 	"PDF Extract Images (OCR)": "PDF Extract Afbeeldingen (OCR)",
 	"pending": "wachtend",
 	"Permission denied when accessing microphone: {{error}}": "Toestemming geweigerd bij toegang tot microfoon: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalisatie",
+	"Plain text (.txt)": "Platte tekst (.txt)",
 	"Playground": "Speeltuin",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Positieve positie",
+	"Previous 30 days": "Vorige 30 dagen",
+	"Previous 7 days": "Vorige 7 dagen",
+	"Profile Image": "Profielafbeelding",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (bijvoorbeeld: vertel me een leuke gebeurtenis over het Romeinse eeuw)",
 	"Prompt Content": "Prompt Inhoud",
 	"Prompt suggestions": "Prompt suggesties",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Haal \"{{searchValue}}\" uit Ollama.com",
 	"Pull a model from Ollama.com": "Haal een model van Ollama.com",
 	"Pull Progress": "Haal Voortgang op",
 	"Query Params": "Query Params",
 	"RAG Template": "RAG Template",
 	"Raw Format": "Raw Formaat",
-	"Read Aloud": "",
+	"Read Aloud": "Voorlezen",
 	"Record voice": "Neem stem op",
 	"Redirecting you to OpenWebUI Community": "Je wordt doorgestuurd naar OpenWebUI Community",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Geweigerd terwijl het niet had moeten",
+	"Regenerate": "Regenereren",
 	"Release Notes": "Release Notes",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Verwijderen",
+	"Remove Model": "Verwijder Model",
+	"Rename": "Hervatten",
 	"Repeat Last N": "Herhaal Laatste N",
 	"Repeat Penalty": "Herhaal Straf",
 	"Request Mode": "Request Modus",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Reranking Model",
+	"Reranking model disabled": "Reranking model uitgeschakeld",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking model ingesteld op \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Reset Vector Opslag",
 	"Response AutoCopy to Clipboard": "Antwoord Automatisch Kopiëren naar Klembord",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Opslaan",
 	"Save & Create": "Opslaan & Creëren",
 	"Save & Update": "Opslaan & Bijwerken",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Scan voltooid!",
 	"Scan for documents from {{path}}": "Scan voor documenten van {{path}}",
 	"Search": "Zoeken",
-	"Search a model": "",
+	"Search a model": "Zoek een model",
 	"Search Documents": "Zoek Documenten",
 	"Search Prompts": "Zoek Prompts",
 	"See readme.md for instructions": "Zie readme.md voor instructies",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Selecteer een Ollama instantie",
 	"Select model": "Selecteer een model",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Verzenden",
 	"Send a Message": "Stuur een Bericht",
 	"Send message": "Stuur bericht",
-	"September": "",
+	"September": "September",
 	"Server connection verified": "Server verbinding geverifieerd",
 	"Set as default": "Stel in als standaard",
 	"Set Default Model": "Stel Standaard Model in",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Stel embedding model in (bv. {{model}})",
 	"Set Image Size": "Stel Afbeelding Grootte in",
 	"Set Model": "Stel die model op",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Stel reranking model in (bv. {{model}})",
 	"Set Steps": "Stel Stappen in",
 	"Set Title Auto-Generation Model": "Stel Titel Auto-Generatie Model in",
 	"Set Voice": "Stel Stem in",
 	"Settings": "Instellingen",
 	"Settings saved successfully!": "Instellingen succesvol opgeslagen!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Deel Chat",
+	"Share Chat": "Deel Chat",
 	"Share to OpenWebUI Community": "Deel naar OpenWebUI Community",
 	"short-summary": "korte-samenvatting",
 	"Show": "Toon",
 	"Show Additional Params": "Toon Extra Params",
 	"Show shortcuts": "Toon snelkoppelingen",
-	"Showcased creativity": "",
+	"Showcased creativity": "Tooncase creativiteit",
 	"sidebar": "sidebar",
 	"Sign in": "Inloggen",
 	"Sign Out": "Uitloggen",
 	"Sign up": "Registreren",
-	"Signing in": "",
+	"Signing in": "Aanmelden",
 	"Source": "Bron",
 	"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
 	"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Stop Sequentie",
 	"STT Settings": "STT Instellingen",
 	"Submit": "Verzenden",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Ondertitel (bijv. over de Romeinse Empire)",
 	"Success": "Succes",
 	"Successfully updated.": "Succesvol bijgewerkt.",
-	"Suggested": "",
+	"Suggested": "Suggestie",
 	"Sync All": "Synchroniseer Alles",
 	"System": "Systeem",
 	"System Prompt": "Systeem Prompt",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "Vertel ons meer:",
 	"Temperature": "Temperatuur",
 	"Template": "Template",
 	"Text Completion": "Tekst Aanvulling",
 	"Text-to-Speech Engine": "Tekst-naar-Spraak Engine",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Bedankt voor uw feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Het score moet een waarde zijn tussen 0.0 (0%) en 1.0 (100%).",
 	"Theme": "Thema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Dit zorgt ervoor dat je waardevolle gesprekken veilig worden opgeslagen in je backend database. Dank je wel!",
 	"This setting does not sync across browsers or devices.": "Deze instelling wordt niet gesynchroniseerd tussen browsers of apparaten.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Gevorderde uitleg",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tip: Werk meerdere variabele slots achtereenvolgens bij door op de tab-toets te drukken in de chat input na elke vervanging.",
 	"Title": "Titel",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Titel (bv. Vertel me een leuke gebeurtenis)",
 	"Title Auto-Generation": "Titel Auto-Generatie",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Titel kan niet leeg zijn.",
 	"Title Generation Prompt": "Titel Generatie Prompt",
 	"to": "naar",
 	"To access the available model names for downloading,": "Om de beschikbare modelnamen voor downloaden te openen,",
 	"To access the GGUF models available for downloading,": "Om toegang te krijgen tot de GGUF modellen die beschikbaar zijn voor downloaden,",
 	"to chat input.": "naar chat input.",
-	"Today": "",
+	"Today": "Vandaag",
 	"Toggle settings": "Wissel instellingen",
 	"Toggle sidebar": "Wissel sidebar",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Update en Kopieer Link",
 	"Update password": "Wijzig wachtwoord",
 	"Upload a GGUF model": "Upload een GGUF model",
 	"Upload files": "Upload bestanden",
@@ -482,7 +482,7 @@
 	"URL Mode": "URL Modus",
 	"Use '#' in the prompt input to load and select your documents.": "Gebruik '#' in de prompt input om je documenten te laden en te selecteren.",
 	"Use Gravatar": "Gebruik Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Gebruik Initials",
 	"user": "user",
 	"User Permissions": "Gebruikers Rechten",
 	"Users": "Gebruikers",
@@ -491,27 +491,27 @@
 	"variable": "variabele",
 	"variable to have them replaced with clipboard content.": "variabele om ze te laten vervangen door klembord inhoud.",
 	"Version": "Versie",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warning: Als je de embedding model bijwerkt of wijzigt, moet je alle documenten opnieuw importeren.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Web Loader instellingen",
+	"Web Params": "Web Params",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Settings": "WebUI Instellingen",
 	"WebUI will make requests to": "WebUI zal verzoeken doen naar",
 	"What’s New in": "Wat is nieuw in",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Wanneer geschiedenis is uitgeschakeld, zullen nieuwe chats op deze browser niet verschijnen in je geschiedenis op een van je apparaten.",
 	"Whisper (Local)": "Fluister (Lokaal)",
-	"Workspace": "",
+	"Workspace": "Werkruimte",
 	"Write a prompt suggestion (e.g. Who are you?)": "Schrijf een prompt suggestie (bijv. Wie ben je?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schrijf een samenvatting in 50 woorden die [onderwerp of trefwoord] samenvat.",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "gisteren",
+	"You": "U",
+	"You have no archived conversations.": "U heeft geen gearchiveerde gesprekken.",
+	"You have shared this chat": "U heeft dit gesprek gedeeld",
 	"You're a helpful assistant.": "Jij bent een behulpzame assistent.",
 	"You're now logged in.": "Je bent nu ingelogd.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Youtube-laderinstellingen"
 }

+ 10 - 10
src/lib/i18n/locales/pa-IN/translation.json

@@ -11,7 +11,7 @@
 	"About": "ਬਾਰੇ",
 	"Account": "ਖਾਤਾ",
 	"Accurate information": "ਸਹੀ ਜਾਣਕਾਰੀ",
-	"Add": "",
+	"Add": "ਸ਼ਾਮਲ ਕਰੋ",
 	"Add a model": "ਇੱਕ ਮਾਡਲ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add a model tag name": "ਇੱਕ ਮਾਡਲ ਟੈਗ ਨਾਮ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add a short description about what this modelfile does": "ਇਸ ਮਾਡਲਫਾਈਲ ਦੇ ਕੀ ਕਰਨ ਬਾਰੇ ਇੱਕ ਛੋਟੀ ਵਰਣਨਾ ਸ਼ਾਮਲ ਕਰੋ",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "ਕਸਟਮ ਪ੍ਰੰਪਟ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add Docs": "ਡਾਕੂਮੈਂਟ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add Files": "ਫਾਈਲਾਂ ਸ਼ਾਮਲ ਕਰੋ",
-	"Add Memory": "",
+	"Add Memory": "ਮਿਹਾਨ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add message": "ਸੁਨੇਹਾ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add Model": "ਮਾਡਲ ਸ਼ਾਮਲ ਕਰੋ",
 	"Add Tags": "ਟੈਗ ਸ਼ਾਮਲ ਕਰੋ",
@@ -71,7 +71,7 @@
 	"Change Password": "ਪਾਸਵਰਡ ਬਦਲੋ",
 	"Chat": "ਗੱਲਬਾਤ",
 	"Chat Bubble UI": "ਗੱਲਬਾਤ ਬਬਲ UI",
-	"Chat direction": "",
+	"Chat direction": "ਗੱਲਬਾਤ ਡਿਰੈਕਟਨ",
 	"Chat History": "ਗੱਲਬਾਤ ਦਾ ਇਤਿਹਾਸ",
 	"Chat History is off for this browser.": "ਇਸ ਬ੍ਰਾਊਜ਼ਰ ਲਈ ਗੱਲਬਾਤ ਦਾ ਇਤਿਹਾਸ ਬੰਦ ਹੈ।",
 	"Chats": "ਗੱਲਾਂ",
@@ -174,7 +174,7 @@
 	"Enabled": "ਯੋਗ ਕੀਤਾ ਗਿਆ",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ਸੁਨਿਸ਼ਚਿਤ ਕਰੋ ਕਿ ਤੁਹਾਡੀ CSV ਫਾਈਲ ਵਿੱਚ ਇਸ ਕ੍ਰਮ ਵਿੱਚ 4 ਕਾਲਮ ਹਨ: ਨਾਮ, ਈਮੇਲ, ਪਾਸਵਰਡ, ਭੂਮਿਕਾ।",
 	"Enter {{role}} message here": "{{role}} ਸੁਨੇਹਾ ਇੱਥੇ ਦਰਜ ਕਰੋ",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "ਤੁਹਾਡੇ LLMs ਨੂੰ ਸੁਨੇਹਾ ਕਰਨ ਲਈ ਸੁਨੇਹਾ ਇੱਥੇ ਦਰਜ ਕਰੋ",
 	"Enter Chunk Overlap": "ਚੰਕ ਓਵਰਲੈਪ ਦਰਜ ਕਰੋ",
 	"Enter Chunk Size": "ਚੰਕ ਆਕਾਰ ਦਰਜ ਕਰੋ",
 	"Enter Image Size (e.g. 512x512)": "ਚਿੱਤਰ ਆਕਾਰ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ 512x512)",
@@ -254,7 +254,7 @@
 	"Light": "ਹਲਕਾ",
 	"Listening...": "ਸੁਣ ਰਿਹਾ ਹੈ...",
 	"LLMs can make mistakes. Verify important information.": "LLMs ਗਲਤੀਆਂ ਕਰ ਸਕਦੇ ਹਨ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "ਓਪਨਵੈਬਯੂਆਈ ਕਮਿਊਨਿਟੀ ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ",
 	"Make sure to enclose them with": "ਸੁਨਿਸ਼ਚਿਤ ਕਰੋ ਕਿ ਉਨ੍ਹਾਂ ਨੂੰ ਘੇਰੋ",
 	"Manage LiteLLM Models": "LiteLLM ਮਾਡਲਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ",
@@ -265,9 +265,9 @@
 	"Max Tokens": "ਅਧਿਕਤਮ ਟੋਕਨ",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਵੱਧ ਤੋਂ ਵੱਧ 3 ਮਾਡਲ ਡਾਊਨਲੋਡ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ। ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
 	"May": "ਮਈ",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "LLMs ਲਈ ਸਮਰੱਥ ਕਾਰਨ ਇੱਕ ਸੂਚਨਾ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ।",
+	"Memory": "ਮੀਮਰ",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "ਤੁਹਾਡਾ ਲਿੰਕ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡੇ ਵੱਲੋਂ ਭੇਜੇ ਗਏ ਸੁਨੇਹੇ ਸਾਂਝੇ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ। URL ਵਾਲੇ ਉਪਭੋਗਤਾ ਸਾਂਝੀ ਚੈਟ ਨੂੰ ਵੇਖ ਸਕਣਗੇ।",
 	"Minimum Score": "ਘੱਟੋ-ਘੱਟ ਸਕੋਰ",
 	"Mirostat": "ਮਿਰੋਸਟੈਟ",
 	"Mirostat Eta": "ਮਿਰੋਸਟੈਟ ਈਟਾ",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF ਚਿੱਤਰ ਕੱਢੋ (OCR)",
 	"pending": "ਬਕਾਇਆ",
 	"Permission denied when accessing microphone: {{error}}": "ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚਣ ਸਮੇਂ ਆਗਿਆ ਰੱਦ ਕੀਤੀ ਗਈ: {{error}}",
-	"Personalization": "",
+	"Personalization": "ਪਰਸੋਨਲਿਸ਼ਮ",
 	"Plain text (.txt)": "ਸਧਾਰਨ ਪਾਠ (.txt)",
 	"Playground": "ਖੇਡ ਦਾ ਮੈਦਾਨ",
 	"Positive attitude": "ਸਕਾਰਾਤਮਕ ਰਵੱਈਆ",
@@ -378,7 +378,7 @@
 	"Role": "ਭੂਮਿਕਾ",
 	"Rosé Pine": "ਰੋਜ਼ ਪਾਈਨ",
 	"Rosé Pine Dawn": "ਰੋਜ਼ ਪਾਈਨ ਡਾਨ",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "ਸੰਭਾਲੋ",
 	"Save & Create": "ਸੰਭਾਲੋ ਅਤੇ ਬਣਾਓ",
 	"Save & Update": "ਸੰਭਾਲੋ ਅਤੇ ਅੱਪਡੇਟ ਕਰੋ",

+ 15 - 15
src/lib/i18n/locales/pl-PL/translation.json

@@ -11,7 +11,7 @@
 	"About": "O nas",
 	"Account": "Konto",
 	"Accurate information": "Dokładna informacja",
-	"Add": "",
+	"Add": "Dodaj",
 	"Add a model": "Dodaj model",
 	"Add a model tag name": "Dodaj nazwę tagu modelu",
 	"Add a short description about what this modelfile does": "Dodaj krótki opis tego, co robi ten plik modelu",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Dodaj własne polecenie",
 	"Add Docs": "Dodaj dokumenty",
 	"Add Files": "Dodaj pliki",
-	"Add Memory": "",
+	"Add Memory": "Dodaj pamięć",
 	"Add message": "Dodaj wiadomość",
 	"Add Model": "Dodaj model",
 	"Add Tags": "Dodaj tagi",
@@ -70,8 +70,8 @@
 	"Categories": "Kategorie",
 	"Change Password": "Zmień hasło",
 	"Chat": "Czat",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Bąbelki czatu",
+	"Chat direction": "Kierunek czatu",
 	"Chat History": "Historia czatu",
 	"Chat History is off for this browser.": "Historia czatu jest wyłączona dla tej przeglądarki.",
 	"Chats": "Czaty",
@@ -174,7 +174,7 @@
 	"Enabled": "Włączone",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Upewnij się, że twój plik CSV zawiera 4 kolumny w następującym porządku: Nazwa, Email, Hasło, Rola.",
 	"Enter {{role}} message here": "Wprowadź wiadomość {{role}} tutaj",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Wprowadź szczegóły o sobie, aby LLMs mogli pamiętać",
 	"Enter Chunk Overlap": "Wprowadź zakchodzenie bloku",
 	"Enter Chunk Size": "Wprowadź rozmiar bloku",
 	"Enter Image Size (e.g. 512x512)": "Wprowadź rozmiar obrazu (np. 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "Ogólne ustawienia",
 	"Generation Info": "Informacja o generacji",
 	"Good Response": "Dobra odpowiedź",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "nie ma rozmów.",
 	"Hello, {{name}}": "Witaj, {{name}}",
 	"Help": "Pomoc",
@@ -254,7 +254,7 @@
 	"Light": "Jasny",
 	"Listening...": "Nasłuchiwanie...",
 	"LLMs can make mistakes. Verify important information.": "LLMy mogą popełniać błędy. Zweryfikuj ważne informacje.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Stworzone przez społeczność OpenWebUI",
 	"Make sure to enclose them with": "Upewnij się, że są one zamknięte w",
 	"Manage LiteLLM Models": "Zarządzaj modelami LiteLLM",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Maksymalna liczba tokenów",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maksymalnie 3 modele można pobierać jednocześnie. Spróbuj ponownie później.",
 	"May": "Maj",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Pamięci używane przez LLM będą tutaj widoczne.",
+	"Memory": "Pamięć",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Wiadomości wysyłane po utworzeniu linku nie będą udostępniane. Użytkownicy z adresem URL będą mogli wyświetlić udostępniony czat.",
 	"Minimum Score": "Minimalny wynik",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF Wyodrębnij obrazy (OCR)",
 	"pending": "oczekujące",
 	"Permission denied when accessing microphone: {{error}}": "Odmowa dostępu do mikrofonu: {{error}}",
-	"Personalization": "",
+	"Personalization": "Personalizacja",
 	"Plain text (.txt)": "Zwykły tekst (.txt)",
 	"Playground": "Plac zabaw",
 	"Positive attitude": "Pozytywne podejście",
@@ -378,7 +378,7 @@
 	"Role": "Rola",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RLT",
 	"Save": "Zapisz",
 	"Save & Create": "Zapisz i utwórz",
 	"Save & Update": "Zapisz i zaktualizuj",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Wybierz instancję Ollama",
 	"Select model": "Wybierz model",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Wyślij",
 	"Send a Message": "Wyślij Wiadomość",
 	"Send message": "Wyślij wiadomość",
 	"September": "Wrzesień",
@@ -502,12 +502,12 @@
 	"What’s New in": "Co nowego w",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Kiedy historia jest wyłączona, nowe czaty na tej przeglądarce nie będą widoczne w historii na żadnym z twoich urządzeń.",
 	"Whisper (Local)": "Whisper (Lokalnie)",
-	"Workspace": "",
+	"Workspace": "Obszar roboczy",
 	"Write a prompt suggestion (e.g. Who are you?)": "Napisz sugestię do polecenia (np. Kim jesteś?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Napisz podsumowanie w 50 słowach, które podsumowuje [temat lub słowo kluczowe].",
 	"Yes": "",
 	"Yesterday": "Wczoraj",
-	"You": "",
+	"You": "Ty",
 	"You have no archived conversations.": "Nie masz zarchiwizowanych rozmów.",
 	"You have shared this chat": "Udostępniłeś ten czat",
 	"You're a helpful assistant.": "Jesteś pomocnym asystentem.",

+ 143 - 143
src/lib/i18n/locales/pt-BR/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)",
 	"(latest)": "(mais recente)",
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Necessário",
 	"A selected model does not support image input": "",
 	"a user": "um usuário",
 	"About": "Sobre",
 	"Account": "Conta",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Informações precisas",
+	"Add": "Adicionar",
 	"Add a model": "Adicionar um modelo",
 	"Add a model tag name": "Adicionar um nome de tag de modelo",
 	"Add a short description about what this modelfile does": "Adicione uma breve descrição sobre o que este arquivo de modelo faz",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Adicionar prompt personalizado",
 	"Add Docs": "Adicionar Documentos",
 	"Add Files": "Adicionar Arquivos",
-	"Add Memory": "",
+	"Add Memory": "Adicionar memória",
 	"Add message": "Adicionar mensagem",
-	"Add Model": "",
+	"Add Model": "Adicionar modelo",
 	"Add Tags": "adicionar tags",
-	"Add User": "",
+	"Add User": "Adicionar Usuário",
 	"Adjusting these settings will apply changes universally to all users.": "Ajustar essas configurações aplicará alterações universalmente a todos os usuários.",
 	"admin": "administrador",
 	"Admin Panel": "Painel do Administrador",
 	"Admin Settings": "Configurações do Administrador",
 	"Advanced Parameters": "Parâmetros Avançados",
 	"all": "todos",
-	"All Documents": "",
+	"All Documents": "Todos os Documentos",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Todos os Usuários",
 	"Allow": "Permitir",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Já tem uma conta?",
 	"an assistant": "um assistente",
 	"and": "e",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "e criar um novo link compartilhado.",
 	"API Base URL": "URL Base da API",
 	"API Key": "Chave da API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Chave da API criada.",
+	"API keys": "Chaves da API",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "Abril",
+	"Archive": "Arquivo",
 	"Archived Chats": "Bate-papos arquivados",
 	"are allowed - Activate this command by typing": "são permitidos - Ative este comando digitando",
 	"Are you sure?": "Tem certeza?",
 	"Attach file": "Anexar arquivo",
-	"Attention to detail": "",
+	"Attention to detail": "Detalhado",
 	"Audio": "Áudio",
-	"August": "",
+	"August": "Agosto",
 	"Auto-playback response": "Reprodução automática da resposta",
 	"Auto-send input after 3 sec.": "Enviar entrada automaticamente após 3 segundos.",
 	"AUTOMATIC1111 Base URL": "URL Base do AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "A URL Base do AUTOMATIC1111 é obrigatória.",
 	"available!": "disponível!",
 	"Back": "Voltar",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Resposta ruim",
+	"before": "antes",
+	"Being lazy": "Ser preguiçoso",
 	"Builder Mode": "Modo de Construtor",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Ignorar verificação SSL para sites",
 	"Cancel": "Cancelar",
 	"Categories": "Categorias",
 	"Change Password": "Alterar Senha",
 	"Chat": "Bate-papo",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI de Bala de Bate-papo",
+	"Chat direction": "Direção do Bate-papo",
 	"Chat History": "Histórico de Bate-papo",
 	"Chat History is off for this browser.": "O histórico de bate-papo está desativado para este navegador.",
 	"Chats": "Bate-papos",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Tamanho do Fragmento",
 	"Citation": "Citação",
 	"Click here for help.": "Clique aqui para obter ajuda.",
-	"Click here to": "",
+	"Click here to": "Clique aqui para",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to select": "Clique aqui para selecionar",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Clique aqui para selecionar um arquivo csv.",
 	"Click here to select documents.": "Clique aqui para selecionar documentos.",
 	"click here.": "clique aqui.",
 	"Click on the user role button to change a user's role.": "Clique no botão de função do usuário para alterar a função de um usuário.",
 	"Close": "Fechar",
 	"Collection": "Coleção",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "URL Base do ComfyUI",
+	"ComfyUI Base URL is required.": "A URL Base do ComfyUI é obrigatória.",
 	"Command": "Comando",
 	"Confirm Password": "Confirmar Senha",
 	"Connections": "Conexões",
 	"Content": "Conteúdo",
 	"Context Length": "Comprimento do Contexto",
-	"Continue Response": "",
+	"Continue Response": "Continuar resposta",
 	"Conversation Mode": "Modo de Conversa",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL de bate-papo compartilhado copiada com sucesso!",
+	"Copy": "Copiar",
 	"Copy last code block": "Copiar último bloco de código",
 	"Copy last response": "Copiar última resposta",
-	"Copy Link": "",
+	"Copy Link": "Copiar link",
 	"Copying to clipboard was successful!": "Cópia para a área de transferência bem-sucedida!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create Account": "Criar Conta",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Criar nova chave",
+	"Create new secret key": "Criar nova chave secreta",
 	"Created at": "Criado em",
-	"Created At": "",
+	"Created At": "Criado em",
 	"Current Model": "Modelo Atual",
 	"Current Models": "",
 	"Current Password": "Senha Atual",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Dark": "Escuro",
-	"Dashboard": "",
+	"Dashboard": "Painel",
 	"Database": "Banco de dados",
-	"December": "",
+	"December": "Dezembro",
 	"Default": "Padrão",
 	"Default (Automatic1111)": "Padrão (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Padrão (SentenceTransformers)",
 	"Default (Web API)": "Padrão (API Web)",
 	"Default model updated": "Modelo padrão atualizado",
 	"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
 	"Default User Role": "Função de Usuário Padrão",
 	"delete": "excluir",
-	"Delete": "",
+	"Delete": "Excluir",
 	"Delete a model": "Excluir um modelo",
 	"Delete chat": "Excluir bate-papo",
-	"Delete Chat": "",
+	"Delete Chat": "Excluir Bate-papo",
 	"Delete Chats": "Excluir Bate-papos",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "excluir este link",
+	"Delete User": "Excluir Usuário",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} excluído",
 	"Description": "Descrição",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Não seguiu instruções com precisão",
 	"Disabled": "Desativado",
 	"Discover a modelfile": "Descobrir um arquivo de modelo",
 	"Discover a prompt": "Descobrir um prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "não faz conexões externas e seus dados permanecem seguros em seu servidor hospedado localmente.",
 	"Don't Allow": "Não Permitir",
 	"Don't have an account?": "Não tem uma conta?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Não gosta do estilo",
+	"Download": "Baixar",
+	"Download canceled": "Download cancelado",
 	"Download Database": "Baixar Banco de Dados",
 	"Drop any files here to add to the conversation": "Solte os arquivos aqui para adicionar à conversa",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Editar",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuário",
 	"Email": "E-mail",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Modelo de Embedding",
+	"Embedding Model Engine": "Motor de Modelo de Embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding definido como \"{{embedding_model}}\"",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
 	"Enable New Sign Ups": "Ativar Novas Inscrições",
 	"Enabled": "Ativado",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Garanta que seu arquivo CSV inclua 4 colunas nesta ordem: Nome, E-mail, Senha, Função.",
 	"Enter {{role}} message here": "Digite a mensagem de {{role}} aqui",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Digite um detalhe sobre você para que seus LLMs possam lembrar",
 	"Enter Chunk Overlap": "Digite a Sobreposição de Fragmento",
 	"Enter Chunk Size": "Digite o Tamanho do Fragmento",
 	"Enter Image Size (e.g. 512x512)": "Digite o Tamanho da Imagem (por exemplo, 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Digite os códigos de idioma",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Digite a URL Base da API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Digite a Chave da API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Digite o RPM da API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Digite o Número de Etapas (por exemplo, 50)",
-	"Enter Score": "",
+	"Enter Score": "Digite a Pontuação",
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter Top K": "Digite o Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Digite a URL (por exemplo, http://localhost:11434)",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Password": "Digite sua Senha",
-	"Enter Your Role": "",
+	"Enter Your Role": "Digite sua Função",
 	"Experimental": "Experimental",
 	"Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)",
 	"Export Chats": "Exportar Bate-papos",
 	"Export Documents Mapping": "Exportar Mapeamento de Documentos",
 	"Export Modelfiles": "Exportar Arquivos de Modelo",
 	"Export Prompts": "Exportar Prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Falha ao criar a Chave da API.",
 	"Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Fevereiro",
+	"Feel free to add specific details": "Sinta-se à vontade para adicionar detalhes específicos",
 	"File Mode": "Modo de Arquivo",
 	"File not found.": "Arquivo não encontrado.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Impostação de impressão digital detectada: Não é possível usar iniciais como avatar. Padronizando para imagem de perfil padrão.",
 	"Fluidly stream large external response chunks": "Transmita com fluidez grandes blocos de resposta externa",
 	"Focus chat input": "Focar entrada de bate-papo",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Seguiu instruções perfeitamente",
 	"Format your variables using square brackets like this:": "Formate suas variáveis usando colchetes como este:",
 	"From (Base Model)": "De (Modelo Base)",
 	"Full Screen Mode": "Modo de Tela Cheia",
 	"General": "Geral",
 	"General Settings": "Configurações Gerais",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Informações de Geração",
+	"Good Response": "Boa Resposta",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "não possui bate-papos.",
 	"Hello, {{name}}": "Olá, {{name}}",
-	"Help": "",
+	"Help": "Ajuda",
 	"Hide": "Ocultar",
 	"Hide Additional Params": "Ocultar Parâmetros Adicionais",
 	"How can I help you today?": "Como posso ajudá-lo hoje?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Pesquisa Híbrida",
 	"Image Generation (Experimental)": "Geração de Imagens (Experimental)",
 	"Image Generation Engine": "Mecanismo de Geração de Imagens",
 	"Image Settings": "Configurações de Imagem",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inclua a flag `--api` ao executar stable-diffusion-webui",
 	"Input commands": "Comandos de entrada",
 	"Interface": "Interface",
-	"Invalid Tag": "",
+	"Invalid Tag": "Etiqueta Inválida",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Janeiro",
 	"join our Discord for help.": "junte-se ao nosso Discord para obter ajuda.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Julho",
+	"June": "Junho",
 	"JWT Expiration": "Expiração JWT",
 	"JWT Token": "Token JWT",
 	"Keep Alive": "Manter Vivo",
 	"Keyboard shortcuts": "Atalhos de teclado",
 	"Language": "Idioma",
-	"Last Active": "",
+	"Last Active": "Último Ativo",
 	"Light": "Claro",
 	"Listening...": "Ouvindo...",
 	"LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Feito pela Comunidade OpenWebUI",
 	"Make sure to enclose them with": "Certifique-se de colocá-los entre",
 	"Manage LiteLLM Models": "Gerenciar Modelos LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Gerenciar Modelos",
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
-	"March": "",
+	"March": "Março",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Maio",
+	"Memories accessible by LLMs will be shown here.": "Memórias acessíveis por LLMs serão mostradas aqui.",
+	"Memory": "Memória",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mensagens que você enviar após criar seu link não serão compartilhadas. Os usuários com o URL poderão visualizar o bate-papo compartilhado.",
+	"Minimum Score": "Pontuação Mínima",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "DD/MM/YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi baixado com sucesso.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para download.",
 	"Model {{modelId}} not found": "Modelo {{modelId}} não encontrado",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Otkrivena putanja datoteke modela. Skraćeno ime modela je potrebno za ažuriranje, ne može se nastaviti.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Nome do Modelo",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Conteúdo do Arquivo de Modelo",
 	"Modelfiles": "Arquivos de Modelo",
 	"Models": "Modelos",
-	"More": "",
+	"More": "Mais",
 	"Name": "Nome",
 	"Name Tag": "Nome da Tag",
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"New Chat": "Novo Bate-papo",
 	"New Password": "Nova Senha",
 	"No": "",
-	"No results found": "",
+	"No results found": "Nenhum resultado encontrado",
 	"No source available": "Nenhuma fonte disponível",
-	"Not factually correct": "",
+	"Not factually correct": "Não é correto em termos factuais",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Se você definir uma pontuação mínima, a pesquisa só retornará documentos com uma pontuação maior ou igual à pontuação mínima.",
 	"Notifications": "Notificações da Área de Trabalho",
-	"November": "",
-	"October": "",
+	"November": "Novembro",
+	"October": "Outubro",
 	"Off": "Desligado",
 	"Okay, Let's Go!": "Ok, Vamos Lá!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Escuro",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL Base do Ollama",
 	"Ollama Version": "Versão do Ollama",
 	"On": "Ligado",
@@ -326,59 +326,59 @@
 	"Open AI": "OpenAI",
 	"Open AI (Dall-E)": "OpenAI (Dall-E)",
 	"Open new chat": "Abrir novo bate-papo",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Configuração da API OpenAI",
 	"OpenAI API Key is required.": "A Chave da API OpenAI é obrigatória.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "URL/Chave da API OpenAI é necessária.",
 	"or": "ou",
-	"Other": "",
-	"Overview": "",
+	"Other": "Outro",
+	"Overview": "Visão Geral",
 	"Parameters": "Parâmetros",
 	"Password": "Senha",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Documento PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Extrair Imagens de PDF (OCR)",
 	"pending": "pendente",
 	"Permission denied when accessing microphone: {{error}}": "Permissão negada ao acessar o microfone: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalização",
+	"Plain text (.txt)": "Texto sem formatação (.txt)",
 	"Playground": "Parque infantil",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Atitude Positiva",
+	"Previous 30 days": "Últimos 30 dias",
+	"Previous 7 days": "Últimos 7 dias",
+	"Profile Image": "Imagem de Perfil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (ex.: Dê-me um fatídico sobre o Império Romano)",
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Extrair \"{{searchValue}}\" do Ollama.com",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull Progress": "Progresso da Extração",
 	"Query Params": "Parâmetros de Consulta",
 	"RAG Template": "Modelo RAG",
 	"Raw Format": "Formato Bruto",
-	"Read Aloud": "",
+	"Read Aloud": "Ler em Voz Alta",
 	"Record voice": "Gravar voz",
 	"Redirecting you to OpenWebUI Community": "Redirecionando você para a Comunidade OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Recusado quando não deveria",
+	"Regenerate": "Regenerar",
 	"Release Notes": "Notas de Lançamento",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Remover",
+	"Remove Model": "Remover Modelo",
+	"Rename": "Renomear",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Request Mode": "Modo de Solicitação",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Modelo de Reranking",
+	"Reranking model disabled": "Modelo de Reranking desativado",
+	"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reranking definido como \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
 	"Role": "Função",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Salvar",
 	"Save & Create": "Salvar e Criar",
 	"Save & Update": "Salvar e Atualizar",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Digitalização concluída!",
 	"Scan for documents from {{path}}": "Digitalizar documentos de {{path}}",
 	"Search": "Pesquisar",
-	"Search a model": "",
+	"Search a model": "Pesquisar um modelo",
 	"Search Documents": "Pesquisar Documentos",
 	"Search Prompts": "Pesquisar Prompts",
 	"See readme.md for instructions": "Consulte readme.md para obter instruções",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Selecione uma instância Ollama",
 	"Select model": "Selecione um modelo",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Enviar",
 	"Send a Message": "Enviar uma Mensagem",
 	"Send message": "Enviar mensagem",
-	"September": "",
+	"September": "Setembro",
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Set as default": "Definir como padrão",
 	"Set Default Model": "Definir Modelo Padrão",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Definir modelo de vetorização (ex.: {{model}})",
 	"Set Image Size": "Definir Tamanho da Imagem",
 	"Set Model": "Definir Modelo",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Definir modelo de reranking (ex.: {{model}})",
 	"Set Steps": "Definir Etapas",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Voice": "Definir Voz",
 	"Settings": "Configurações",
 	"Settings saved successfully!": "Configurações salvas com sucesso!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Compartilhar",
+	"Share Chat": "Compartilhar Bate-papo",
 	"Share to OpenWebUI Community": "Compartilhar com a Comunidade OpenWebUI",
 	"short-summary": "resumo-curto",
 	"Show": "Mostrar",
 	"Show Additional Params": "Mostrar Parâmetros Adicionais",
 	"Show shortcuts": "Mostrar",
-	"Showcased creativity": "",
+	"Showcased creativity": "Criatividade Exibida",
 	"sidebar": "barra lateral",
 	"Sign in": "Entrar",
 	"Sign Out": "Sair",
 	"Sign up": "Inscrever-se",
-	"Signing in": "",
+	"Signing in": "Entrando",
 	"Source": "Fonte",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Sequência de Parada",
 	"STT Settings": "Configurações STT",
 	"Submit": "Enviar",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Subtítulo (ex.: sobre o Império Romano)",
 	"Success": "Sucesso",
 	"Successfully updated.": "Atualizado com sucesso.",
-	"Suggested": "",
+	"Suggested": "Sugerido",
 	"Sync All": "Sincronizar Tudo",
 	"System": "Sistema",
 	"System Prompt": "Prompt do Sistema",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "Dê-nos mais:",
 	"Temperature": "Temperatura",
 	"Template": "Modelo",
 	"Text Completion": "Complemento de Texto",
 	"Text-to-Speech Engine": "Mecanismo de Texto para Fala",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Obrigado pelo seu feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "O score deve ser um valor entre 0.0 (0%) e 1.0 (100%).",
 	"Theme": "Tema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Isso garante que suas conversas valiosas sejam salvas com segurança em seu banco de dados de backend. Obrigado!",
 	"This setting does not sync across browsers or devices.": "Esta configuração não sincroniza entre navegadores ou dispositivos.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explicação Completa",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Dica: Atualize vários slots de variáveis consecutivamente pressionando a tecla Tab na entrada de bate-papo após cada substituição.",
 	"Title": "Título",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Título (ex.: Dê-me um fatídico fatídico)",
 	"Title Auto-Generation": "Geração Automática de Título",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Título não pode ser uma string vazia.",
 	"Title Generation Prompt": "Prompt de Geração de Título",
 	"to": "para",
 	"To access the available model names for downloading,": "Para acessar os nomes de modelo disponíveis para download,",
 	"To access the GGUF models available for downloading,": "Para acessar os modelos GGUF disponíveis para download,",
 	"to chat input.": "para a entrada de bate-papo.",
-	"Today": "",
+	"Today": "Hoje",
 	"Toggle settings": "Alternar configurações",
 	"Toggle sidebar": "Alternar barra lateral",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Atualizar e Copiar Link",
 	"Update password": "Atualizar senha",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload files": "Carregar arquivos",
@@ -482,7 +482,7 @@
 	"URL Mode": "Modo de URL",
 	"Use '#' in the prompt input to load and select your documents.": "Use '#' na entrada do prompt para carregar e selecionar seus documentos.",
 	"Use Gravatar": "Usar Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Usar Iniciais",
 	"user": "usuário",
 	"User Permissions": "Permissões do Usuário",
 	"Users": "Usuários",
@@ -491,27 +491,27 @@
 	"variable": "variável",
 	"variable to have them replaced with clipboard content.": "variável para que sejam substituídos pelo conteúdo da área de transferência.",
 	"Version": "Versão",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Aviso: Se você atualizar ou alterar seu modelo de incorporação, você precisará reimportar todos os documentos.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Configurações do Carregador da Web",
+	"Web Params": "Parâmetros da Web",
+	"Webhook URL": "URL do Webhook",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Settings": "Configurações WebUI",
 	"WebUI will make requests to": "WebUI fará solicitações para",
 	"What’s New in": "O que há de novo em",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Quando o histórico está desativado, novos bate-papos neste navegador não aparecerão em seu histórico em nenhum dos seus dispositivos.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Espaço de trabalho",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "Ontem",
+	"You": "Você",
+	"You have no archived conversations.": "Você não tem conversas arquivadas.",
+	"You have shared this chat": "Você compartilhou esta conversa",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're now logged in.": "Você está conectado agora.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Configurações do carregador do Youtube"
 }

+ 143 - 143
src/lib/i18n/locales/pt-PT/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)",
 	"(latest)": "(mais recente)",
 	"{{modelName}} is thinking...": "{{modelName}} está pensando...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend Necessário",
 	"A selected model does not support image input": "",
 	"a user": "um usuário",
 	"About": "Sobre",
 	"Account": "Conta",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Informações precisas",
+	"Add": "Adicionar",
 	"Add a model": "Adicionar um modelo",
 	"Add a model tag name": "Adicionar um nome de tag de modelo",
 	"Add a short description about what this modelfile does": "Adicione uma breve descrição sobre o que este arquivo de modelo faz",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Adicionar um prompt curto",
 	"Add Docs": "Adicionar Documentos",
 	"Add Files": "Adicionar Arquivos",
-	"Add Memory": "",
+	"Add Memory": "Adicionar memória",
 	"Add message": "Adicionar mensagem",
-	"Add Model": "",
+	"Add Model": "Adicionar modelo",
 	"Add Tags": "adicionar tags",
-	"Add User": "",
+	"Add User": "Adicionar Usuário",
 	"Adjusting these settings will apply changes universally to all users.": "Ajustar essas configurações aplicará alterações universalmente a todos os usuários.",
 	"admin": "administrador",
 	"Admin Panel": "Painel do Administrador",
 	"Admin Settings": "Configurações do Administrador",
 	"Advanced Parameters": "Parâmetros Avançados",
 	"all": "todos",
-	"All Documents": "",
+	"All Documents": "Todos os Documentos",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Todos os Usuários",
 	"Allow": "Permitir",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Já tem uma conta?",
 	"an assistant": "um assistente",
 	"and": "e",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "e criar um novo link compartilhado.",
 	"API Base URL": "URL Base da API",
 	"API Key": "Chave da API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Chave da API criada.",
+	"API keys": "Chaves da API",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "Abril",
+	"Archive": "Arquivo",
 	"Archived Chats": "Bate-papos arquivados",
 	"are allowed - Activate this command by typing": "são permitidos - Ative este comando digitando",
 	"Are you sure?": "Tem certeza?",
 	"Attach file": "Anexar arquivo",
-	"Attention to detail": "",
+	"Attention to detail": "Detalhado",
 	"Audio": "Áudio",
-	"August": "",
+	"August": "Agosto",
 	"Auto-playback response": "Reprodução automática da resposta",
 	"Auto-send input after 3 sec.": "Enviar entrada automaticamente após 3 segundos.",
 	"AUTOMATIC1111 Base URL": "URL Base do AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "A URL Base do AUTOMATIC1111 é obrigatória.",
 	"available!": "disponível!",
 	"Back": "Voltar",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Resposta ruim",
+	"before": "antes",
+	"Being lazy": "Ser preguiçoso",
 	"Builder Mode": "Modo de Construtor",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Ignorar verificação SSL para sites",
 	"Cancel": "Cancelar",
 	"Categories": "Categorias",
 	"Change Password": "Alterar Senha",
 	"Chat": "Bate-papo",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "UI de Bala de Bate-papo",
+	"Chat direction": "Direção do Bate-papo",
 	"Chat History": "Histórico de Bate-papo",
 	"Chat History is off for this browser.": "O histórico de bate-papo está desativado para este navegador.",
 	"Chats": "Bate-papos",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Tamanho do Fragmento",
 	"Citation": "Citação",
 	"Click here for help.": "Clique aqui para obter ajuda.",
-	"Click here to": "",
+	"Click here to": "Clique aqui para",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to select": "Clique aqui para selecionar",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Clique aqui para selecionar um arquivo csv.",
 	"Click here to select documents.": "Clique aqui para selecionar documentos.",
 	"click here.": "clique aqui.",
 	"Click on the user role button to change a user's role.": "Clique no botão de função do usuário para alterar a função de um usuário.",
 	"Close": "Fechar",
 	"Collection": "Coleção",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "URL Base do ComfyUI",
+	"ComfyUI Base URL is required.": "A URL Base do ComfyUI é obrigatória.",
 	"Command": "Comando",
 	"Confirm Password": "Confirmar Senha",
 	"Connections": "Conexões",
 	"Content": "Conteúdo",
 	"Context Length": "Comprimento do Contexto",
-	"Continue Response": "",
+	"Continue Response": "Continuar resposta",
 	"Conversation Mode": "Modo de Conversa",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "URL de bate-papo compartilhado copiada com sucesso!",
+	"Copy": "Copiar",
 	"Copy last code block": "Copiar último bloco de código",
 	"Copy last response": "Copiar última resposta",
-	"Copy Link": "",
+	"Copy Link": "Copiar link",
 	"Copying to clipboard was successful!": "Cópia para a área de transferência bem-sucedida!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create Account": "Criar Conta",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Criar nova chave",
+	"Create new secret key": "Criar nova chave secreta",
 	"Created at": "Criado em",
-	"Created At": "",
+	"Created At": "Criado em",
 	"Current Model": "Modelo Atual",
 	"Current Models": "",
 	"Current Password": "Senha Atual",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Dark": "Escuro",
-	"Dashboard": "",
+	"Dashboard": "Painel",
 	"Database": "Banco de dados",
-	"December": "",
+	"December": "Dezembro",
 	"Default": "Padrão",
 	"Default (Automatic1111)": "Padrão (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Padrão (SentenceTransformers)",
 	"Default (Web API)": "Padrão (API Web)",
 	"Default model updated": "Modelo padrão atualizado",
 	"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
 	"Default User Role": "Função de Usuário Padrão",
 	"delete": "excluir",
-	"Delete": "",
+	"Delete": "Excluir",
 	"Delete a model": "Excluir um modelo",
 	"Delete chat": "Excluir bate-papo",
-	"Delete Chat": "",
+	"Delete Chat": "Excluir Bate-papo",
 	"Delete Chats": "Excluir Bate-papos",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "excluir este link",
+	"Delete User": "Excluir Usuário",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "{{tagName}} excluído",
 	"Description": "Descrição",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Não seguiu instruções com precisão",
 	"Disabled": "Desativado",
 	"Discover a modelfile": "Descobrir um arquivo de modelo",
 	"Discover a prompt": "Descobrir um prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "não faz conexões externas e seus dados permanecem seguros em seu servidor hospedado localmente.",
 	"Don't Allow": "Não Permitir",
 	"Don't have an account?": "Não tem uma conta?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Não gosta do estilo",
+	"Download": "Baixar",
+	"Download canceled": "Download cancelado",
 	"Download Database": "Baixar Banco de Dados",
 	"Drop any files here to add to the conversation": "Solte os arquivos aqui para adicionar à conversa",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Editar",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuário",
 	"Email": "E-mail",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Modelo de Embedding",
+	"Embedding Model Engine": "Motor de Modelo de Embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding definido como \"{{embedding_model}}\"",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
 	"Enable New Sign Ups": "Ativar Novas Inscrições",
 	"Enabled": "Ativado",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Garanta que seu arquivo CSV inclua 4 colunas nesta ordem: Nome, E-mail, Senha, Função.",
 	"Enter {{role}} message here": "Digite a mensagem de {{role}} aqui",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Digite um detalhe sobre você para que seus LLMs possam lembrá-lo",
 	"Enter Chunk Overlap": "Digite a Sobreposição de Fragmento",
 	"Enter Chunk Size": "Digite o Tamanho do Fragmento",
 	"Enter Image Size (e.g. 512x512)": "Digite o Tamanho da Imagem (por exemplo, 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Digite os códigos de idioma",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Digite a URL Base da API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Digite a Chave da API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Digite o RPM da API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Digite o Número de Etapas (por exemplo, 50)",
-	"Enter Score": "",
+	"Enter Score": "Digite a Pontuação",
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter Top K": "Digite o Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Digite a URL (por exemplo, http://localhost:11434)",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Password": "Digite sua Senha",
-	"Enter Your Role": "",
+	"Enter Your Role": "Digite sua Função",
 	"Experimental": "Experimental",
 	"Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)",
 	"Export Chats": "Exportar Bate-papos",
 	"Export Documents Mapping": "Exportar Mapeamento de Documentos",
 	"Export Modelfiles": "Exportar Arquivos de Modelo",
 	"Export Prompts": "Exportar Prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Falha ao criar a Chave da API.",
 	"Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Fevereiro",
+	"Feel free to add specific details": "Sinta-se à vontade para adicionar detalhes específicos",
 	"File Mode": "Modo de Arquivo",
 	"File not found.": "Arquivo não encontrado.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Impostação de impressão digital detectada: Não é possível usar iniciais como avatar. Padronizando para imagem de perfil padrão.",
 	"Fluidly stream large external response chunks": "Transmita com fluidez grandes blocos de resposta externa",
 	"Focus chat input": "Focar entrada de bate-papo",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Seguiu instruções perfeitamente",
 	"Format your variables using square brackets like this:": "Formate suas variáveis usando colchetes como este:",
 	"From (Base Model)": "De (Modelo Base)",
 	"Full Screen Mode": "Modo de Tela Cheia",
 	"General": "Geral",
 	"General Settings": "Configurações Gerais",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Informações de Geração",
+	"Good Response": "Boa Resposta",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "não possui bate-papos.",
 	"Hello, {{name}}": "Olá, {{name}}",
-	"Help": "",
+	"Help": "Help",
 	"Hide": "Ocultar",
 	"Hide Additional Params": "Ocultar Parâmetros Adicionais",
 	"How can I help you today?": "Como posso ajudá-lo hoje?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Pesquisa Híbrida",
 	"Image Generation (Experimental)": "Geração de Imagens (Experimental)",
 	"Image Generation Engine": "Mecanismo de Geração de Imagens",
 	"Image Settings": "Configurações de Imagem",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inclua a flag `--api` ao executar stable-diffusion-webui",
 	"Input commands": "Comandos de entrada",
 	"Interface": "Interface",
-	"Invalid Tag": "",
+	"Invalid Tag": "Etiqueta Inválida",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Janeiro",
 	"join our Discord for help.": "junte-se ao nosso Discord para obter ajuda.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Julho",
+	"June": "Junho",
 	"JWT Expiration": "Expiração JWT",
 	"JWT Token": "Token JWT",
 	"Keep Alive": "Manter Vivo",
 	"Keyboard shortcuts": "Atalhos de teclado",
 	"Language": "Idioma",
-	"Last Active": "",
+	"Last Active": "Último Ativo",
 	"Light": "Claro",
 	"Listening...": "Ouvindo...",
 	"LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Feito pela Comunidade OpenWebUI",
 	"Make sure to enclose them with": "Certifique-se de colocá-los entre",
 	"Manage LiteLLM Models": "Gerenciar Modelos LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Gerenciar Modelos",
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
-	"March": "",
+	"March": "Março",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Maio",
+	"Memories accessible by LLMs will be shown here.": "Memórias acessíveis por LLMs serão mostradas aqui.",
+	"Memory": "Memória",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mensagens que você enviar após criar seu link não serão compartilhadas. Os usuários com o URL poderão visualizar o bate-papo compartilhado.",
+	"Minimum Score": "Mínimo de Pontuação",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "DD/MM/YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi baixado com sucesso.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para download.",
 	"Model {{modelId}} not found": "Modelo {{modelId}} não encontrado",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Caminho do sistema de arquivos do modelo detectado. É necessário o nome curto do modelo para atualização, não é possível continuar.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Nome do Modelo",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Conteúdo do Arquivo de Modelo",
 	"Modelfiles": "Arquivos de Modelo",
 	"Models": "Modelos",
-	"More": "",
+	"More": "Mais",
 	"Name": "Nome",
 	"Name Tag": "Tag de Nome",
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"New Chat": "Novo Bate-papo",
 	"New Password": "Nova Senha",
 	"No": "",
-	"No results found": "",
+	"No results found": "Nenhum resultado encontrado",
 	"No source available": "Nenhuma fonte disponível",
-	"Not factually correct": "",
+	"Not factually correct": "Não é correto em termos factuais",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Se você definir uma pontuação mínima, a pesquisa só retornará documentos com uma pontuação maior ou igual à pontuação mínima.",
 	"Notifications": "Notificações da Área de Trabalho",
-	"November": "",
-	"October": "",
+	"November": "Novembro",
+	"October": "Outubro",
 	"Off": "Desligado",
 	"Okay, Let's Go!": "Ok, Vamos Lá!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Escuro",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "URL Base do Ollama",
 	"Ollama Version": "Versão do Ollama",
 	"On": "Ligado",
@@ -326,59 +326,59 @@
 	"Open AI": "OpenAI",
 	"Open AI (Dall-E)": "OpenAI (Dall-E)",
 	"Open new chat": "Abrir novo bate-papo",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Configuração da API OpenAI",
 	"OpenAI API Key is required.": "A Chave da API OpenAI é obrigatória.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "URL/Chave da API OpenAI é necessária.",
 	"or": "ou",
-	"Other": "",
-	"Overview": "",
+	"Other": "Outro",
+	"Overview": "Visão Geral",
 	"Parameters": "Parâmetros",
 	"Password": "Senha",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Documento PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Extrair Imagens de PDF (OCR)",
 	"pending": "pendente",
 	"Permission denied when accessing microphone: {{error}}": "Permissão negada ao acessar o microfone: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalização",
+	"Plain text (.txt)": "Texto sem formatação (.txt)",
 	"Playground": "Parque infantil",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Atitude Positiva",
+	"Previous 30 days": "Últimos 30 dias",
+	"Previous 7 days": "Últimos 7 dias",
+	"Profile Image": "Imagem de Perfil",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (ex.: Dê-me um fatídico sobre o Império Romano)",
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Extrair \"{{searchValue}}\" do Ollama.com",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull Progress": "Progresso da Extração",
 	"Query Params": "Parâmetros de Consulta",
 	"RAG Template": "Modelo RAG",
 	"Raw Format": "Formato Bruto",
-	"Read Aloud": "",
+	"Read Aloud": "Ler em Voz Alta",
 	"Record voice": "Gravar voz",
 	"Redirecting you to OpenWebUI Community": "Redirecionando você para a Comunidade OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Recusado quando não deveria",
+	"Regenerate": "Regenerar",
 	"Release Notes": "Notas de Lançamento",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Remover",
+	"Remove Model": "Remover Modelo",
+	"Rename": "Renomear",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Request Mode": "Modo de Solicitação",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Modelo de Reranking",
+	"Reranking model disabled": "Modelo de Reranking desativado",
+	"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reranking definido como \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
 	"Role": "Função",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Salvar",
 	"Save & Create": "Salvar e Criar",
 	"Save & Update": "Salvar e Atualizar",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Digitalização concluída!",
 	"Scan for documents from {{path}}": "Digitalizar documentos de {{path}}",
 	"Search": "Pesquisar",
-	"Search a model": "",
+	"Search a model": "Pesquisar um modelo",
 	"Search Documents": "Pesquisar Documentos",
 	"Search Prompts": "Pesquisar Prompts",
 	"See readme.md for instructions": "Consulte readme.md para obter instruções",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Selecione uma instância Ollama",
 	"Select model": "Selecione um modelo",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Enviar",
 	"Send a Message": "Enviar uma Mensagem",
 	"Send message": "Enviar mensagem",
-	"September": "",
+	"September": "Setembro",
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Set as default": "Definir como padrão",
 	"Set Default Model": "Definir Modelo Padrão",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Definir modelo de vetorização (ex.: {{model}})",
 	"Set Image Size": "Definir Tamanho da Imagem",
 	"Set Model": "Definir Modelo",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Definir modelo de reranking (ex.: {{model}})",
 	"Set Steps": "Definir Etapas",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Voice": "Definir Voz",
 	"Settings": "Configurações",
 	"Settings saved successfully!": "Configurações salvas com sucesso!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Compartilhar",
+	"Share Chat": "Compartilhar Bate-papo",
 	"Share to OpenWebUI Community": "Compartilhar com a Comunidade OpenWebUI",
 	"short-summary": "resumo-curto",
 	"Show": "Mostrar",
 	"Show Additional Params": "Mostrar Parâmetros Adicionais",
 	"Show shortcuts": "Mostrar",
-	"Showcased creativity": "",
+	"Showcased creativity": "Criatividade Exibida",
 	"sidebar": "barra lateral",
 	"Sign in": "Entrar",
 	"Sign Out": "Sair",
 	"Sign up": "Inscrever-se",
-	"Signing in": "",
+	"Signing in": "Entrando",
 	"Source": "Fonte",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Sequência de Parada",
 	"STT Settings": "Configurações STT",
 	"Submit": "Enviar",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Subtítulo (ex.: sobre o Império Romano)",
 	"Success": "Sucesso",
 	"Successfully updated.": "Atualizado com sucesso.",
-	"Suggested": "",
+	"Suggested": "Sugerido",
 	"Sync All": "Sincronizar Tudo",
 	"System": "Sistema",
 	"System Prompt": "Prompt do Sistema",
 	"Tags": "Tags",
-	"Tell us more:": "",
+	"Tell us more:": "Dê-nos mais:",
 	"Temperature": "Temperatura",
 	"Template": "Modelo",
 	"Text Completion": "Complemento de Texto",
 	"Text-to-Speech Engine": "Mecanismo de Texto para Fala",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Obrigado pelo feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "O score deve ser um valor entre 0.0 (0%) e 1.0 (100%).",
 	"Theme": "Tema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Isso garante que suas conversas valiosas sejam salvas com segurança em seu banco de dados de backend. Obrigado!",
 	"This setting does not sync across browsers or devices.": "Esta configuração não sincroniza entre navegadores ou dispositivos.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Explicação Completa",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Dica: Atualize vários slots de variáveis consecutivamente pressionando a tecla Tab na entrada de bate-papo após cada substituição.",
 	"Title": "Título",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Título (ex.: Dê-me um fatídico fatídico)",
 	"Title Auto-Generation": "Geração Automática de Título",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Título não pode ser uma string vazia.",
 	"Title Generation Prompt": "Prompt de Geração de Título",
 	"to": "para",
 	"To access the available model names for downloading,": "Para acessar os nomes de modelo disponíveis para download,",
 	"To access the GGUF models available for downloading,": "Para acessar os modelos GGUF disponíveis para download,",
 	"to chat input.": "para a entrada de bate-papo.",
-	"Today": "",
+	"Today": "Hoje",
 	"Toggle settings": "Alternar configurações",
 	"Toggle sidebar": "Alternar barra lateral",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Atualizar e Copiar Link",
 	"Update password": "Atualizar senha",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload files": "Carregar arquivos",
@@ -482,7 +482,7 @@
 	"URL Mode": "Modo de URL",
 	"Use '#' in the prompt input to load and select your documents.": "Use '#' na entrada do prompt para carregar e selecionar seus documentos.",
 	"Use Gravatar": "Usar Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Usar Iniciais",
 	"user": "usuário",
 	"User Permissions": "Permissões do Usuário",
 	"Users": "Usuários",
@@ -491,27 +491,27 @@
 	"variable": "variável",
 	"variable to have them replaced with clipboard content.": "variável para que sejam substituídos pelo conteúdo da área de transferência.",
 	"Version": "Versão",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Aviso: Se você atualizar ou alterar seu modelo de vetorização, você precisará reimportar todos os documentos.",
 	"Web": "Web",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Configurações do Carregador da Web",
+	"Web Params": "Parâmetros da Web",
+	"Webhook URL": "URL do Webhook",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Settings": "Configurações WebUI",
 	"WebUI will make requests to": "WebUI fará solicitações para",
 	"What’s New in": "O que há de novo em",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Quando o histórico está desativado, novos bate-papos neste navegador não aparecerão em seu histórico em nenhum dos seus dispositivos.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Espaço de Trabalho",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "Ontem",
+	"You": "Você",
+	"You have no archived conversations.": "Você não tem bate-papos arquivados.",
+	"You have shared this chat": "Você compartilhou este bate-papo",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're now logged in.": "Você está conectado agora.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Configurações do Carregador do Youtube"
 }

+ 141 - 141
src/lib/i18n/locales/ru-RU/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(например: `sh webui.sh --api`)",
 	"(latest)": "(последний)",
 	"{{modelName}} is thinking...": "{{modelName}} думает...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}} чаты",
 	"{{webUIName}} Backend Required": "{{webUIName}} бэкенд требуемый",
 	"A selected model does not support image input": "",
 	"a user": "пользователь",
 	"About": "Об",
 	"Account": "Аккаунт",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Точная информация",
+	"Add": "Добавить",
 	"Add a model": "Добавьте модель",
 	"Add a model tag name": "Добавьте имя тэга модели",
 	"Add a short description about what this modelfile does": "Добавьте краткое описание, что делает этот моделфайл",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Добавьте пользовательский ввод",
 	"Add Docs": "Добавьте документы",
 	"Add Files": "Добавьте файлы",
-	"Add Memory": "",
+	"Add Memory": "Добавьте память",
 	"Add message": "Добавьте сообщение",
-	"Add Model": "",
+	"Add Model": "Добавьте модель",
 	"Add Tags": "Добавьте тэгы",
-	"Add User": "",
+	"Add User": "Добавьте пользователя",
 	"Adjusting these settings will apply changes universally to all users.": "Регулирующий этих настроек приведет к изменениям для все пользователей.",
 	"admin": "админ",
 	"Admin Panel": "Панель админ",
 	"Admin Settings": "Настройки админ",
 	"Advanced Parameters": "Расширенные Параметры",
 	"all": "всё",
-	"All Documents": "",
+	"All Documents": "Все документы",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Все пользователи",
 	"Allow": "Разрешить",
@@ -40,38 +40,38 @@
 	"Already have an account?": "у вас уже есть аккаунт?",
 	"an assistant": "ассистент",
 	"and": "и",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "и создайте новый общий ссылку.",
 	"API Base URL": "Базовый адрес API",
 	"API Key": "Ключ API",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Ключ API создан.",
+	"API keys": "Ключи API",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "Апрель",
+	"Archive": "Архив",
 	"Archived Chats": "запис на чат",
 	"are allowed - Activate this command by typing": "разрешено - активируйте эту команду вводом",
 	"Are you sure?": "Вы уверены?",
 	"Attach file": "Прикрепить файл",
 	"Attention to detail": "детализированный",
 	"Audio": "Аудио",
-	"August": "",
+	"August": "Август",
 	"Auto-playback response": "Автоматическое воспроизведение ответа",
 	"Auto-send input after 3 sec.": "Автоматическая отправка ввода через 3 секунды.",
 	"AUTOMATIC1111 Base URL": "Базовый адрес URL AUTOMATIC1111",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Необходима базовый адрес URL.",
 	"available!": "доступный!",
 	"Back": "Назад",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Недопустимый ответ",
+	"before": "до",
+	"Being lazy": "ленивый",
 	"Builder Mode": "Режим конструктор",
 	"Bypass SSL verification for Websites": "",
 	"Cancel": "Аннулировать",
 	"Categories": "Категории",
 	"Change Password": "Изменить пароль",
 	"Chat": "Чат",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Bubble UI чат",
+	"Chat direction": "Направление чат",
 	"Chat History": "История чат",
 	"Chat History is off for this browser.": "История чат отключен для этого браузера.",
 	"Chats": "Чаты",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Размер фрагмента",
 	"Citation": "Цитата",
 	"Click here for help.": "Нажмите здесь для помощи.",
-	"Click here to": "",
+	"Click here to": "Нажмите здесь чтобы",
 	"Click here to check other modelfiles.": "Нажмите тут чтобы проверить другие файлы моделей.",
 	"Click here to select": "Нажмите тут чтобы выберите",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Нажмите здесь чтобы выбрать файл csv.",
 	"Click here to select documents.": "Нажмите здесь чтобы выберите документы.",
 	"click here.": "нажмите здесь.",
 	"Click on the user role button to change a user's role.": "Нажмите кнопку роли пользователя чтобы изменить роль пользователя.",
 	"Close": "Закрывать",
 	"Collection": "Коллекция",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "Базовый адрес URL ComfyUI",
+	"ComfyUI Base URL is required.": "ComfyUI Необходима базовый адрес URL.",
 	"Command": "Команда",
 	"Confirm Password": "Подтвердите пароль",
 	"Connections": "Соединение",
 	"Content": "Содержание",
 	"Context Length": "Длина контексту",
-	"Continue Response": "",
+	"Continue Response": "Продолжить ответ",
 	"Conversation Mode": "Режим разговора",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "Копирование общей ссылки чат в буфер обмена!",
+	"Copy": "Копировать",
 	"Copy last code block": "Копировать последний блок кода",
 	"Copy last response": "Копировать последний ответ",
-	"Copy Link": "",
+	"Copy Link": "Копировать ссылку",
 	"Copying to clipboard was successful!": "Копирование в буфер обмена прошло успешно!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a modelfile": "Создать модельный файл",
 	"Create Account": "Создать аккаунт",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Создать новый ключ",
+	"Create new secret key": "Создать новый секретный ключ",
 	"Created at": "Создано в",
-	"Created At": "",
+	"Created At": "Создано в",
 	"Current Model": "Текущая модель",
 	"Current Models": "",
 	"Current Password": "Текущий пароль",
 	"Custom": "Пользовательский",
 	"Customize Ollama models for a specific purpose": "Настроить модели Ollama для конкретной цели",
 	"Dark": "Тёмный",
-	"Dashboard": "",
+	"Dashboard": "Панель управления",
 	"Database": "База данных",
-	"December": "",
+	"December": "Декабрь",
 	"Default": "По умолчанию",
 	"Default (Automatic1111)": "По умолчанию (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "По умолчанию (SentenceTransformers)",
 	"Default (Web API)": "По умолчанию (Web API)",
 	"Default model updated": "Модель по умолчанию обновлена",
 	"Default Prompt Suggestions": "Предложения промтов по умолчанию",
 	"Default User Role": "Роль пользователя по умолчанию",
 	"delete": "удалить",
-	"Delete": "",
+	"Delete": "Удалить",
 	"Delete a model": "Удалить модель",
 	"Delete chat": "Удалить чат",
-	"Delete Chat": "",
+	"Delete Chat": "Удалить чат",
 	"Delete Chats": "Удалить чаты",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "удалить эту ссылку",
+	"Delete User": "Удалить пользователя",
 	"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "Удалено {{tagName}}",
 	"Description": "Описание",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Не полностью следул инструкциям",
 	"Disabled": "Отключено",
 	"Discover a modelfile": "Найти файл модели",
 	"Discover a prompt": "Найти промт",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "не устанавливает никаких внешних соединений, и ваши данные остаются безопасно на вашем локальном сервере.",
 	"Don't Allow": "Не разрешать",
 	"Don't have an account?": "у вас не есть аккаунт?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Не нравится стиль",
+	"Download": "Загрузить",
+	"Download canceled": "Загрузка отменена",
 	"Download Database": "Загрузить базу данных",
 	"Drop any files here to add to the conversation": "Перетащите сюда файлы, чтобы добавить их в разговор",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30с','10м'. Допустимые единицы времени: 'с', 'м', 'ч'.",
-	"Edit": "",
+	"Edit": "Редактировать",
 	"Edit Doc": "Редактировать документ",
 	"Edit User": "Редактировать пользователя",
 	"Email": "Электронная почта",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Модель эмбеддинга",
+	"Embedding Model Engine": "Модель эмбеддинга",
+	"Embedding model set to \"{{embedding_model}}\"": "Эмбеддинг-модель установлена в \"{{embedding_model}}\"",
 	"Enable Chat History": "Включить историю чата",
 	"Enable New Sign Ups": "Разрешить новые регистрации",
 	"Enabled": "Включено",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Убедитесь, что ваш CSV-файл включает в себя 4 столбца в следующем порядке: Имя, Электронная почта, Пароль, Роль.",
 	"Enter {{role}} message here": "Введите сообщение {{role}} здесь",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Введите детали о себе, чтобы LLMs могли запомнить",
 	"Enter Chunk Overlap": "Введите перекрытие фрагмента",
 	"Enter Chunk Size": "Введите размер фрагмента",
 	"Enter Image Size (e.g. 512x512)": "Введите размер изображения (например, 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Введите коды языков",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Введите базовый URL API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Введите ключ API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Введите RPM API LiteLLM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Введите тег модели (например, {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Введите количество шагов (например, 50)",
-	"Enter Score": "",
+	"Enter Score": "Введите оценку",
 	"Enter stop sequence": "Введите последовательность остановки",
 	"Enter Top K": "Введите Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Введите URL-адрес (например, http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Введите URL-адрес (например, http://localhost:11434)",
 	"Enter Your Email": "Введите вашу электронную почту",
 	"Enter Your Full Name": "Введите ваше полное имя",
 	"Enter Your Password": "Введите ваш пароль",
-	"Enter Your Role": "",
+	"Enter Your Role": "Введите вашу роль",
 	"Experimental": "Экспериментальное",
 	"Export All Chats (All Users)": "Экспортировать все чаты (все пользователи)",
 	"Export Chats": "Экспортировать чаты",
 	"Export Documents Mapping": "Экспортировать отображение документов",
 	"Export Modelfiles": "Экспортировать файлы модели",
 	"Export Prompts": "Экспортировать промты",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Не удалось создать ключ API.",
 	"Failed to read clipboard contents": "Не удалось прочитать содержимое буфера обмена",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Февраль",
+	"Feel free to add specific details": "Feel free to add specific details",
 	"File Mode": "Режим файла",
 	"File not found.": "Файл не найден.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Определение подделки отпечатка: Невозможно использовать инициалы в качестве аватара. По умолчанию используется изображение профиля по умолчанию.",
 	"Fluidly stream large external response chunks": "Плавная потоковая передача больших фрагментов внешних ответов",
 	"Focus chat input": "Фокус ввода чата",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Учитывая инструкции идеально",
 	"Format your variables using square brackets like this:": "Форматируйте ваши переменные, используя квадратные скобки, как здесь:",
 	"From (Base Model)": "Из (базой модель)",
 	"Full Screen Mode": "Полноэкранный режим",
 	"General": "Общее",
 	"General Settings": "Общие настройки",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Информация о генерации",
+	"Good Response": "Хороший ответ",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "не имеет разговоров.",
 	"Hello, {{name}}": "Привет, {{name}}",
-	"Help": "",
+	"Help": "Помощь",
 	"Hide": "Скрыть",
 	"Hide Additional Params": "Скрыть дополнительные параметры",
 	"How can I help you today?": "Чем я могу помочь вам сегодня?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Гибридная поисковая система",
 	"Image Generation (Experimental)": "Генерация изображений (Экспериментально)",
 	"Image Generation Engine": "Механизм генерации изображений",
 	"Image Settings": "Настройки изображения",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Добавьте флаг `--api` при запуске stable-diffusion-webui",
 	"Input commands": "Введите команды",
 	"Interface": "Интерфейс",
-	"Invalid Tag": "",
+	"Invalid Tag": "Недопустимый тег",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "Январь",
 	"join our Discord for help.": "присоединяйтесь к нашему Discord для помощи.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "Июль",
+	"June": "Июнь",
 	"JWT Expiration": "Истечение срока JWT",
 	"JWT Token": "Токен JWT",
 	"Keep Alive": "Поддерживать активность",
 	"Keyboard shortcuts": "Горячие клавиши",
 	"Language": "Язык",
-	"Last Active": "",
+	"Last Active": "Последний активный",
 	"Light": "Светлый",
 	"Listening...": "Слушаю...",
 	"LLMs can make mistakes. Verify important information.": "LLMs могут допускать ошибки. Проверяйте важную информацию.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Сделано сообществом OpenWebUI",
 	"Make sure to enclose them with": "Убедитесь, что они заключены в",
 	"Manage LiteLLM Models": "Управление моделями LiteLLM",
 	"Manage Model Information": "",
 	"Manage Models": "Управление моделями",
 	"Manage Ollama Models": "Управление моделями Ollama",
-	"March": "",
+	"March": "Март",
 	"Max Tokens": "Максимальное количество токенов",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимальное количество моделей для загрузки одновременно - 3. Пожалуйста, попробуйте позже.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "Май",
+	"Memories accessible by LLMs will be shown here.": "Мемории, доступные LLMs, будут отображаться здесь.",
+	"Memory": "Мемория",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Сообщения, которые вы отправляете после создания ссылки, не будут распространяться. Пользователи с URL смогут просматривать общий чат.",
+	"Minimum Score": "Минимальный балл",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "DD MMMM YYYY г.",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успешно загружена.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' уже находится в очереди на загрузку.",
 	"Model {{modelId}} not found": "Модель {{modelId}} не найдена",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Модель файловой системы обнаружена. Требуется имя тега модели для обновления, не удается продолжить.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Имя модели",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Содержимое файла модели",
 	"Modelfiles": "Файлы моделей",
 	"Models": "Модели",
-	"More": "",
+	"More": "Более",
 	"Name": "Имя",
 	"Name Tag": "Имя тега",
 	"Name your modelfile": "Назовите свой файл модели",
 	"New Chat": "Новый чат",
 	"New Password": "Новый пароль",
 	"No": "",
-	"No results found": "",
+	"No results found": "Результатов не найдено",
 	"No source available": "Нет доступных источников",
-	"Not factually correct": "",
+	"Not factually correct": "Не фактически правильно",
 	"Not sure what to add?": "Не уверены, что добавить?",
 	"Not sure what to write? Switch to": "Не уверены, что написать? Переключитесь на",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Обратите внимание: Если вы установите минимальный балл, поиск будет возвращать только документы с баллом больше или равным минимальному баллу.",
 	"Notifications": "Уведомления на рабочем столе",
-	"November": "",
-	"October": "",
+	"November": "Ноябрь",
+	"October": "Октябрь",
 	"Off": "Выключено.",
 	"Okay, Let's Go!": "Давайте начнём!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED темная",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Базовый адрес URL Ollama",
 	"Ollama Version": "Версия Ollama",
 	"On": "Включено.",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Открыть новый чат",
-	"OpenAI": "",
+	"OpenAI": "Open AI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Конфигурация API OpenAI",
 	"OpenAI API Key is required.": "Требуется ключ API OpenAI.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "Требуется URL-адрес API OpenAI или ключ API.",
 	"or": "или",
-	"Other": "",
-	"Overview": "",
+	"Other": "Прочее",
+	"Overview": "Обзор",
 	"Parameters": "Параметры",
 	"Password": "Пароль",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF-документ (.pdf)",
 	"PDF Extract Images (OCR)": "Извлечение изображений из PDF (OCR)",
 	"pending": "ожидание",
 	"Permission denied when accessing microphone: {{error}}": "Отказано в доступе к микрофону: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Персонализация",
+	"Plain text (.txt)": "Текст в формате .txt",
 	"Playground": "Площадка",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Позитивная атмосфера",
+	"Previous 30 days": "Предыдущие 30 дней",
+	"Previous 7 days": "Предыдущие 7 дней",
+	"Profile Image": "Изображение профиля",
+	"Prompt": "Промпт",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Промпт (например. Расскажи мне интересную факт о Римской империи)",
 	"Prompt Content": "Содержание промпта",
 	"Prompt suggestions": "Предложения промптов",
 	"Prompts": "Промпты",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Загрузить модель из Ollama.com",
 	"Pull a model from Ollama.com": "Загрузить модель с Ollama.com",
 	"Pull Progress": "Прогресс загрузки",
 	"Query Params": "Параметры запроса",
 	"RAG Template": "Шаблон RAG",
 	"Raw Format": "Сырой формат",
-	"Read Aloud": "",
+	"Read Aloud": "Прочитать вслух",
 	"Record voice": "Записать голос",
 	"Redirecting you to OpenWebUI Community": "Перенаправляем вас в сообщество OpenWebUI",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Отказано в доступе, когда это не должно было произойти.",
+	"Regenerate": "Перезаписать",
 	"Release Notes": "Примечания к выпуску",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Удалить",
+	"Remove Model": "Удалить модель",
+	"Rename": "Переименовать",
 	"Repeat Last N": "Повторить последние N",
 	"Repeat Penalty": "Штраф за повтор",
 	"Request Mode": "Режим запроса",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Reranking модель",
+	"Reranking model disabled": "Модель реранжирования отключена",
+	"Reranking model set to \"{{reranking_model}}\"": "Модель реранжирования установлена на \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Сбросить векторное хранилище",
 	"Response AutoCopy to Clipboard": "Автоматическое копирование ответа в буфер обмена",
 	"Role": "Роль",
 	"Rosé Pine": "Розовое сосновое дерево",
 	"Rosé Pine Dawn": "Розовое сосновое дерево рассвет",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Сохранить",
 	"Save & Create": "Сохранить и создать",
 	"Save & Update": "Сохранить и обновить",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Сканирование завершено!",
 	"Scan for documents from {{path}}": "Сканирование документов из {{path}}",
 	"Search": "Поиск",
-	"Search a model": "",
+	"Search a model": "Поиск модели",
 	"Search Documents": "Поиск документов",
 	"Search Prompts": "Поиск промтов",
 	"See readme.md for instructions": "Смотрите readme.md для инструкций",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Выберите экземпляр Ollama",
 	"Select model": "Выберите модель",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Отправить",
 	"Send a Message": "Отправить сообщение",
 	"Send message": "Отправить сообщение",
-	"September": "",
+	"September": "Сентябрь",
 	"Server connection verified": "Соединение с сервером проверено",
 	"Set as default": "Установить по умолчанию",
 	"Set Default Model": "Установить модель по умолчанию",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Установить модель эмбеддинга (например. {{model}})",
 	"Set Image Size": "Установить размер изображения",
 	"Set Model": "Установить модель",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Установить модель реранжирования (например. {{model}})",
 	"Set Steps": "Установить шаги",
 	"Set Title Auto-Generation Model": "Установить модель автогенерации заголовков",
 	"Set Voice": "Установить голос",
 	"Settings": "Настройки",
 	"Settings saved successfully!": "Настройки успешно сохранены!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Поделиться",
+	"Share Chat": "Поделиться чатом",
 	"Share to OpenWebUI Community": "Поделиться с сообществом OpenWebUI",
 	"short-summary": "краткое описание",
 	"Show": "Показать",
 	"Show Additional Params": "Показать дополнительные параметры",
 	"Show shortcuts": "Показать клавиатурные сокращения",
-	"Showcased creativity": "",
+	"Showcased creativity": "Показать творчество",
 	"sidebar": "боковая панель",
 	"Sign in": "Войти",
 	"Sign Out": "Выход",
 	"Sign up": "зарегистрировать",
-	"Signing in": "",
+	"Signing in": "Вход в систему",
 	"Source": "Источник",
 	"Speech recognition error: {{error}}": "Ошибка распознавания речи: {{error}}",
 	"Speech-to-Text Engine": "Система распознавания речи",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Последовательность остановки",
 	"STT Settings": "Настройки распознавания речи",
 	"Submit": "Отправить",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Подзаголовок (например. о Римской империи)",
 	"Success": "Успех",
 	"Successfully updated.": "Успешно обновлено.",
-	"Suggested": "",
+	"Suggested": "Предложено",
 	"Sync All": "Синхронизировать все",
 	"System": "Система",
 	"System Prompt": "Системный промпт",
 	"Tags": "Теги",
-	"Tell us more:": "",
+	"Tell us more:": "Пожалуйста, расскажите нам больше:",
 	"Temperature": "Температура",
 	"Template": "Шаблон",
 	"Text Completion": "Завершение текста",
 	"Text-to-Speech Engine": "Система синтеза речи",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Спасибо за ваше мнение!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Оценка должна быть значением между 0,0 (0%) и 1,0 (100%).",
 	"Theme": "Тема",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Это обеспечивает сохранение ваших ценных разговоров в безопасной базе данных на вашем сервере. Спасибо!",
 	"This setting does not sync across browsers or devices.": "Эта настройка не синхронизируется между браузерами или устройствами.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Повнимательнее",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Совет: Обновляйте несколько переменных подряд, нажимая клавишу Tab в поле ввода чата после каждой замены.",
 	"Title": "Заголовок",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Заголовок (например. Расскажи мне интересную факт)",
 	"Title Auto-Generation": "Автогенерация заголовка",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Заголовок не может быть пустой строкой.",
 	"Title Generation Prompt": "Промпт для генерации заголовка",
 	"to": "в",
 	"To access the available model names for downloading,": "Чтобы получить доступ к доступным для загрузки именам моделей,",
 	"To access the GGUF models available for downloading,": "Чтобы получить доступ к моделям GGUF, доступным для загрузки,",
 	"to chat input.": "в чате.",
-	"Today": "",
+	"Today": "Сегодня",
 	"Toggle settings": "Переключить настройки",
 	"Toggle sidebar": "Переключить боковую панель",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Обновить и скопировать ссылку",
 	"Update password": "Обновить пароль",
 	"Upload a GGUF model": "Загрузить модель GGUF",
 	"Upload files": "Загрузить файлы",
@@ -482,7 +482,7 @@
 	"URL Mode": "Режим URL",
 	"Use '#' in the prompt input to load and select your documents.": "Используйте '#' в поле ввода промпта для загрузки и выбора ваших документов.",
 	"Use Gravatar": "Использовать Gravatar",
-	"Use Initials": "",
+	"Use Initials": "Использовать инициалы",
 	"user": "пользователь",
 	"User Permissions": "Права пользователя",
 	"Users": "Пользователи",
@@ -491,27 +491,27 @@
 	"variable": "переменная",
 	"variable to have them replaced with clipboard content.": "переменная, чтобы их заменить содержимым буфера обмена.",
 	"Version": "Версия",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Если вы обновите или измените модель эмбеддинга, вам нужно будет повторно импортировать все документы.",
 	"Web": "Веб",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Настройки загрузчика Web",
+	"Web Params": "Параметры Web",
+	"Webhook URL": "URL-адрес веб-хука",
 	"WebUI Add-ons": "Дополнения для WebUI",
 	"WebUI Settings": "Настройки WebUI",
 	"WebUI will make requests to": "WebUI будет отправлять запросы на",
 	"What’s New in": "Что нового в",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Когда история отключена, новые чаты в этом браузере не будут отображаться в вашей истории на любом из ваших устройств.",
 	"Whisper (Local)": "Шепот (локальный)",
-	"Workspace": "",
+	"Workspace": "Рабочая область",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишите предложение промпта (например, Кто вы?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "Вчера",
+	"You": "Вы",
+	"You have no archived conversations.": "У вас нет архивированных бесед.",
+	"You have shared this chat": "Вы поделились этим чатом",
 	"You're a helpful assistant.": "Вы полезный ассистент.",
 	"You're now logged in.": "Вы вошли в систему.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Ютуб",
+	"Youtube Loader Settings": "Настройки загрузчика YouTube"
 }

+ 4 - 4
src/lib/i18n/locales/sr-RS/translation.json

@@ -11,7 +11,7 @@
 	"About": "О нама",
 	"Account": "Налог",
 	"Accurate information": "Прецизне информације",
-	"Add": "",
+	"Add": "Додај",
 	"Add a model": "Додај модел",
 	"Add a model tag name": "Додај ознаку модела",
 	"Add a short description about what this modelfile does": "Додај кратак опис ове модел-датотеке",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Додај прилагођен упит",
 	"Add Docs": "Додај документе",
 	"Add Files": "Додај датотеке",
-	"Add Memory": "",
+	"Add Memory": "Додај меморију",
 	"Add message": "Додај поруку",
 	"Add Model": "Додај модел",
 	"Add Tags": "Додај ознаке",
@@ -174,7 +174,7 @@
 	"Enabled": "Омогућено",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверите се да ваша CSV датотека укључује 4 колоне у овом редоследу: Име, Е-пошта, Лозинка, Улога.",
 	"Enter {{role}} message here": "Унесите {{role}} поруку овде",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Унесите детаље за себе да ће LLMs преузимати",
 	"Enter Chunk Overlap": "Унесите преклапање делова",
 	"Enter Chunk Size": "Унесите величину дела",
 	"Enter Image Size (e.g. 512x512)": "Унесите величину слике (нпр. 512x512)",
@@ -265,7 +265,7 @@
 	"Max Tokens": "Највише жетона",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Највише 3 модела могу бити преузета истовремено. Покушајте поново касније.",
 	"May": "Мај",
-	"Memories accessible by LLMs will be shown here.": "",
+	"Memories accessible by LLMs will be shown here.": "Памћења које ће бити појављена од овог LLM-а ће бити приказана овде.",
 	"Memory": "Памћење",
 	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Поруке које пошаљете након стварања ваше везе неће бити подељене. Корисници са URL-ом ће моћи да виде дељено ћаскање.",
 	"Minimum Score": "Најмањи резултат",

+ 141 - 141
src/lib/i18n/locales/sv-SE/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(t.ex. `sh webui.sh --api`)",
 	"(latest)": "(senaste)",
 	"{{modelName}} is thinking...": "{{modelName}} tänker...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Backend krävs",
 	"A selected model does not support image input": "",
 	"a user": "en användare",
 	"About": "Om",
 	"Account": "Konto",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "Exakt information",
+	"Add": "Lägg till",
 	"Add a model": "Lägg till en modell",
 	"Add a model tag name": "Lägg till ett modellnamn",
 	"Add a short description about what this modelfile does": "Lägg till en kort beskrivning av vad den här modelfilen gör",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "Lägg till en anpassad prompt",
 	"Add Docs": "Lägg till dokument",
 	"Add Files": "Lägg till filer",
-	"Add Memory": "",
+	"Add Memory": "Lägg till minne",
 	"Add message": "Lägg till meddelande",
-	"Add Model": "",
-	"Add Tags": "",
-	"Add User": "",
+	"Add Model": "Lägg till modell",
+	"Add Tags": "Lägg till taggar",
+	"Add User": "Lägg till användare",
 	"Adjusting these settings will apply changes universally to all users.": "Justering av dessa inställningar kommer att tillämpa ändringar universellt för alla användare.",
 	"admin": "administratör",
 	"Admin Panel": "Administrationspanel",
 	"Admin Settings": "Administratörsinställningar",
 	"Advanced Parameters": "Avancerade parametrar",
 	"all": "alla",
-	"All Documents": "",
+	"All Documents": "Alla dokument",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "Alla användare",
 	"Allow": "Tillåt",
@@ -40,38 +40,38 @@
 	"Already have an account?": "Har du redan ett konto?",
 	"an assistant": "en assistent",
 	"and": "och",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "och skapa en ny delad länk.",
 	"API Base URL": "API-bas-URL",
 	"API Key": "API-nyckel",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "API-nyckel skapad.",
+	"API keys": "API-nycklar",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
-	"Archived Chats": "",
+	"April": "April",
+	"Archive": "Arkiv",
+	"Archived Chats": "Arkiverade chattar",
 	"are allowed - Activate this command by typing": "är tillåtna - Aktivera detta kommando genom att skriva",
 	"Are you sure?": "Är du säker?",
 	"Attach file": "Bifoga fil",
 	"Attention to detail": "Detaljerad uppmärksamhet",
 	"Audio": "Ljud",
-	"August": "",
+	"August": "Augusti",
 	"Auto-playback response": "Automatisk uppspelning",
 	"Auto-send input after 3 sec.": "Skicka automatiskt indata efter 3 sek.",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 bas-URL",
 	"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 bas-URL krävs.",
 	"available!": "tillgänglig!",
 	"Back": "Tillbaka",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "Felaktig respons",
+	"before": "før",
+	"Being lazy": "Lägg till",
 	"Builder Mode": "Byggarläge",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Kringgå SSL-verifiering för webbplatser",
 	"Cancel": "Avbryt",
 	"Categories": "Kategorier",
 	"Change Password": "Ändra lösenord",
 	"Chat": "Chatt",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Chatbubblar UI",
+	"Chat direction": "Chattriktning",
 	"Chat History": "Chatthistorik",
 	"Chat History is off for this browser.": "Chatthistoriken är avstängd för denna webbläsare.",
 	"Chats": "Chattar",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Chunk-storlek",
 	"Citation": "Citat",
 	"Click here for help.": "Klicka här för hjälp.",
-	"Click here to": "",
+	"Click here to": "Klicka här för att",
 	"Click here to check other modelfiles.": "Klicka här för att kontrollera andra modelfiler.",
 	"Click here to select": "Klicka här för att välja",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "Klicka här för att välja en csv-fil.",
 	"Click here to select documents.": "Klicka här för att välja dokument.",
 	"click here.": "klicka här.",
 	"Click on the user role button to change a user's role.": "Klicka på knappen för användarroll för att ändra en användares roll.",
 	"Close": "Stäng",
 	"Collection": "Samling",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "ComfyUI Base URL krävs.",
 	"Command": "Kommando",
 	"Confirm Password": "Bekräfta lösenord",
 	"Connections": "Anslutningar",
 	"Content": "Innehåll",
 	"Context Length": "Kontextlängd",
-	"Continue Response": "",
+	"Continue Response": "Fortsätt svar",
 	"Conversation Mode": "Samtalsläge",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "Kopierad delad chatt-URL till urklipp!",
+	"Copy": "Kopiera",
 	"Copy last code block": "Kopiera sista kodblock",
 	"Copy last response": "Kopiera sista svar",
-	"Copy Link": "",
+	"Copy Link": "Kopiera länk",
 	"Copying to clipboard was successful!": "Kopiering till urklipp lyckades!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Skapa en kort, 3-5 ords fras som rubrik för följande fråga, strikt följa 3-5 ordsgränsen och undvika användning av ordet 'titel':",
 	"Create a modelfile": "Skapa en modelfil",
 	"Create Account": "Skapa konto",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "Skapa ny nyckel",
+	"Create new secret key": "Skapa ny hemlig nyckel",
 	"Created at": "Skapad",
-	"Created At": "",
+	"Created At": "Skapad",
 	"Current Model": "Aktuell modell",
 	"Current Models": "",
 	"Current Password": "Nuvarande lösenord",
 	"Custom": "Anpassad",
 	"Customize Ollama models for a specific purpose": "Anpassa Ollama-modeller för ett specifikt ändamål",
 	"Dark": "Mörk",
-	"Dashboard": "",
+	"Dashboard": "Instrumentbräda",
 	"Database": "Databas",
-	"December": "",
+	"December": "December",
 	"Default": "Standard",
 	"Default (Automatic1111)": "Standard (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Standard (SentenceTransformers)",
 	"Default (Web API)": "Standard (Web API)",
 	"Default model updated": "Standardmodell uppdaterad",
 	"Default Prompt Suggestions": "Standardpromptförslag",
 	"Default User Role": "Standardanvändarroll",
 	"delete": "radera",
-	"Delete": "",
+	"Delete": "Radera",
 	"Delete a model": "Ta bort en modell",
 	"Delete chat": "Radera chatt",
-	"Delete Chat": "",
+	"Delete Chat": "Radera chatt",
 	"Delete Chats": "Radera chattar",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "radera denna länk",
+	"Delete User": "Radera användare",
 	"Deleted {{deleteModelTag}}": "Raderad {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "Raderad {{tagName}}",
 	"Description": "Beskrivning",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "Följde inte instruktionerna",
 	"Disabled": "Inaktiverad",
 	"Discover a modelfile": "Upptäck en modelfil",
 	"Discover a prompt": "Upptäck en prompt",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "gör inga externa anslutningar, och dina data förblir säkra på din lokalt värdade server.",
 	"Don't Allow": "Tillåt inte",
 	"Don't have an account?": "Har du inte ett konto?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "Du tycker inte om utseendet",
+	"Download": "Ladda ner",
+	"Download canceled": "Nedladdning avbruten",
 	"Download Database": "Ladda ner databas",
 	"Drop any files here to add to the conversation": "Släpp filer här för att lägga till i konversationen",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "t.ex. '30s', '10m'. Giltiga tidsenheter är 's', 'm', 'h'.",
-	"Edit": "",
+	"Edit": "Redigera",
 	"Edit Doc": "Redigera dokument",
 	"Edit User": "Redigera användare",
 	"Email": "E-post",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Embeddingsmodell",
+	"Embedding Model Engine": "Embeddingsmodellmotor",
+	"Embedding model set to \"{{embedding_model}}\"": "Embeddingsmodell inställd på \"{{embedding_model}}\"",
 	"Enable Chat History": "Aktivera chatthistorik",
 	"Enable New Sign Ups": "Aktivera nya registreringar",
 	"Enabled": "Aktiverad",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Se till att din CSV-fil innehåller fyra kolumner i denna ordning: Namn, E-post, Lösenord, Roll.",
 	"Enter {{role}} message here": "Skriv {{role}} meddelande här",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Skriv en detalj om dig själv för att dina LLMs ska komma ihåg",
 	"Enter Chunk Overlap": "Ange Chunk-överlappning",
 	"Enter Chunk Size": "Ange Chunk-storlek",
 	"Enter Image Size (e.g. 512x512)": "Ange bildstorlek (t.ex. 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Skriv språkkoder",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Ange LiteLLM API-bas-URL (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Ange LiteLLM API-nyckel (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Ange LiteLLM API RPM (litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "Ange modelltagg (t.ex. {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "Ange antal steg (t.ex. 50)",
-	"Enter Score": "",
+	"Enter Score": "Ange poäng",
 	"Enter stop sequence": "Ange stoppsekvens",
 	"Enter Top K": "Ange Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ange URL (t.ex. http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Ange URL (t.ex. http://localhost:11434)",
 	"Enter Your Email": "Ange din e-post",
 	"Enter Your Full Name": "Ange ditt fullständiga namn",
 	"Enter Your Password": "Ange ditt lösenord",
-	"Enter Your Role": "",
+	"Enter Your Role": "Ange din roll",
 	"Experimental": "Experimentell",
 	"Export All Chats (All Users)": "Exportera alla chattar (alla användare)",
 	"Export Chats": "Exportera chattar",
 	"Export Documents Mapping": "Exportera dokumentmappning",
 	"Export Modelfiles": "Exportera modelfiler",
 	"Export Prompts": "Exportera prompts",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "Misslyckades med att skapa API-nyckel.",
 	"Failed to read clipboard contents": "Misslyckades med att läsa urklippsinnehåll",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "Februar",
+	"Feel free to add specific details": "Förfoga att lägga till specifika detaljer",
 	"File Mode": "Fil-läge",
 	"File not found.": "Fil hittades inte.",
 	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Fingeravtrycksmanipulering upptäckt: Kan inte använda initialer som avatar. Återställning till standardprofilbild.",
 	"Fluidly stream large external response chunks": "Flytande ström stora externa svarsblock",
 	"Focus chat input": "Fokusera chattindata",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "Följde instruktionerna perfekt",
 	"Format your variables using square brackets like this:": "Formatera dina variabler med hakparenteser så här:",
 	"From (Base Model)": "Från (basmodell)",
 	"Full Screen Mode": "Helskärmsläge",
 	"General": "Allmän",
 	"General Settings": "Allmänna inställningar",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "Generasjon Info",
+	"Good Response": "Bra svar",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "har ingen samtaler.",
 	"Hello, {{name}}": "Hej, {{name}}",
-	"Help": "",
+	"Help": "Hjelp",
 	"Hide": "Dölj",
 	"Hide Additional Params": "Dölj ytterligare parametrar",
 	"How can I help you today?": "Hur kan jag hjälpa dig idag?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Hybrid sökning",
 	"Image Generation (Experimental)": "Bildgenerering (experimentell)",
 	"Image Generation Engine": "Bildgenereringsmotor",
 	"Image Settings": "Bildinställningar",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "Inkludera `--api`-flagga när du kör stabil-diffusion-webui",
 	"Input commands": "Indatakommandon",
 	"Interface": "Gränssnitt",
-	"Invalid Tag": "",
+	"Invalid Tag": "Ogiltig tagg",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "januar",
 	"join our Discord for help.": "gå med i vår Discord för hjälp.",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "juli",
+	"June": "juni",
 	"JWT Expiration": "JWT-utgång",
 	"JWT Token": "JWT-token",
 	"Keep Alive": "Håll vid liv",
 	"Keyboard shortcuts": "Tangentbordsgenvägar",
 	"Language": "Språk",
-	"Last Active": "",
+	"Last Active": "Senast aktiv",
 	"Light": "Ljus",
 	"Listening...": "Lyssnar...",
 	"LLMs can make mistakes. Verify important information.": "LLM:er kan göra misstag. Verifiera viktig information.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Skapad av OpenWebUI Community",
 	"Make sure to enclose them with": "Se till att bifoga dem med",
 	"Manage LiteLLM Models": "Hantera LiteLLM-modeller",
 	"Manage Model Information": "",
 	"Manage Models": "Hantera modeller",
 	"Manage Ollama Models": "Hantera Ollama-modeller",
-	"March": "",
+	"March": "mars",
 	"Max Tokens": "Max antal tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Högst 3 modeller kan laddas ner samtidigt. Vänligen försök igen senare.",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "mai",
+	"Memories accessible by LLMs will be shown here.": "Minnen som kan komma ihåg av LLM:er kommer att visas här.",
+	"Memory": "Minnen",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Meddelanden du skickar efter att ha skapat din länk kommer inte att delas. Användare med URL:en kommer att kunna se delad chatt.",
+	"Minimum Score": "Minimum poäng",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, ÅÅÅÅ",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, ÅÅÅÅ HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Modellen '{{modelName}}' har laddats ner framgångsrikt.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Modellen '{{modelTag}}' är redan i kö för nedladdning.",
 	"Model {{modelId}} not found": "Modell {{modelId}} hittades inte",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Modelfilens innehåll",
 	"Modelfiles": "Modelfiler",
 	"Models": "Modeller",
-	"More": "",
+	"More": "Mer",
 	"Name": "Namn",
 	"Name Tag": "Namntag",
 	"Name your modelfile": "Namnge din modelfil",
 	"New Chat": "Ny chatt",
 	"New Password": "Nytt lösenord",
 	"No": "",
-	"No results found": "",
+	"No results found": "Inga resultat hittades",
 	"No source available": "Ingen tilgjengelig kilde",
-	"Not factually correct": "",
+	"Not factually correct": "Inte faktiskt korrekt",
 	"Not sure what to add?": "Inte säker på vad du ska lägga till?",
 	"Not sure what to write? Switch to": "Inte säker på vad du ska skriva? Växla till",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Merk: Hvis du angir en minimumspoengsum, returnerer søket bare dokumenter med en poengsum som er større enn eller lik minimumspoengsummen.",
 	"Notifications": "Notifikationer",
-	"November": "",
-	"October": "",
+	"November": "november",
+	"October": "oktober",
 	"Off": "Av",
 	"Okay, Let's Go!": "Okej, nu kör vi!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED mörkt",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama bas-URL",
 	"Ollama Version": "Ollama-version",
 	"On": "På",
@@ -326,59 +326,59 @@
 	"Open AI": "Öppna AI",
 	"Open AI (Dall-E)": "Öppna AI (Dall-E)",
 	"Open new chat": "Öppna ny chatt",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API-konfig",
 	"OpenAI API Key is required.": "OpenAI API-nyckel krävs.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "OpenAI-URL/nyckel krävs.",
 	"or": "eller",
-	"Other": "",
-	"Overview": "",
+	"Other": "Andra",
+	"Overview": "Översikt",
 	"Parameters": "Parametrar",
 	"Password": "Lösenord",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF-dokument (.pdf)",
 	"PDF Extract Images (OCR)": "PDF Extrahera bilder (OCR)",
 	"pending": "väntande",
 	"Permission denied when accessing microphone: {{error}}": "Tillstånd nekades vid åtkomst till mikrofon: {{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "Personalisering",
+	"Plain text (.txt)": "Rå text (.txt)",
 	"Playground": "Lekplats",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "Positivt humör",
+	"Previous 30 days": "Föregående 30 dagar",
+	"Previous 7 days": "Föregående 7 dagar",
+	"Profile Image": "Profilbild",
+	"Prompt": "Prompt",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (t.ex. Berätta mig en rolig faktor om Romerska Imperiet)",
 	"Prompt Content": "Promptinnehåll",
 	"Prompt suggestions": "Förslag",
 	"Prompts": "Prompts",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Dra \"{{searchValue}}\" från Ollama.com",
 	"Pull a model from Ollama.com": "Dra en modell från Ollama.com",
 	"Pull Progress": "Dra framsteg",
 	"Query Params": "Frågeparametrar",
 	"RAG Template": "RAG-mall",
 	"Raw Format": "Råformat",
-	"Read Aloud": "",
+	"Read Aloud": "Läs igenom",
 	"Record voice": "Spela in röst",
 	"Redirecting you to OpenWebUI Community": "Omdirigerar dig till OpenWebUI Community",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "Avvisades när det inte borde ha",
+	"Regenerate": "Regenerera",
 	"Release Notes": "Versionsinformation",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "Ta bort",
+	"Remove Model": "Ta bort modell",
+	"Rename": "Byt namn",
 	"Repeat Last N": "Upprepa senaste N",
 	"Repeat Penalty": "Upprepa straff",
 	"Request Mode": "Begär läge",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Reranking modell",
+	"Reranking model disabled": "Reranking modell inaktiverad",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking modell inställd på \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Återställ vektorlager",
 	"Response AutoCopy to Clipboard": "Svara AutoCopy till urklipp",
 	"Role": "Roll",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Spara",
 	"Save & Create": "Spara och skapa",
 	"Save & Update": "Spara och uppdatera",
@@ -387,7 +387,7 @@
 	"Scan complete!": "Skanning klar!",
 	"Scan for documents from {{path}}": "Skanna efter dokument från {{path}}",
 	"Search": "Sök",
-	"Search a model": "",
+	"Search a model": "Sök efter en modell",
 	"Search Documents": "Sök dokument",
 	"Search Prompts": "Sök promptar",
 	"See readme.md for instructions": "Se readme.md för instruktioner",
@@ -398,35 +398,35 @@
 	"Select an Ollama instance": "Välj en Ollama-instans",
 	"Select model": "Välj en modell",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Skicka",
 	"Send a Message": "Skicka ett meddelande",
 	"Send message": "Skicka meddelande",
-	"September": "",
+	"September": "september",
 	"Server connection verified": "Serveranslutning verifierad",
 	"Set as default": "Ange som standard",
 	"Set Default Model": "Ange standardmodell",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Ställ in embedding modell (t.ex. {{model}})",
 	"Set Image Size": "Ange bildstorlek",
 	"Set Model": "Ställ in modell",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Ställ in reranking modell (t.ex. {{model}})",
 	"Set Steps": "Ange steg",
 	"Set Title Auto-Generation Model": "Ange modell för automatisk generering av titel",
 	"Set Voice": "Ange röst",
 	"Settings": "Inställningar",
 	"Settings saved successfully!": "Inställningar sparades framgångsrikt!",
-	"Share": "",
-	"Share Chat": "",
+	"Share": "Dela",
+	"Share Chat": "Dela chatt",
 	"Share to OpenWebUI Community": "Dela till OpenWebUI Community",
 	"short-summary": "kort sammanfattning",
 	"Show": "Visa",
 	"Show Additional Params": "Visa ytterligare parametrar",
 	"Show shortcuts": "Visa genvägar",
-	"Showcased creativity": "",
+	"Showcased creativity": "Visuell kreativitet",
 	"sidebar": "sidofält",
 	"Sign in": "Logga in",
 	"Sign Out": "Logga ut",
 	"Sign up": "Registrera dig",
-	"Signing in": "",
+	"Signing in": "Loggar in",
 	"Source": "Källa",
 	"Speech recognition error: {{error}}": "Fel vid taligenkänning: {{error}}",
 	"Speech-to-Text Engine": "Tal-till-text-motor",
@@ -434,37 +434,37 @@
 	"Stop Sequence": "Stoppsekvens",
 	"STT Settings": "STT-inställningar",
 	"Submit": "Skicka in",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Undertext (t.ex. om Romerska Imperiet)",
 	"Success": "Framgång",
 	"Successfully updated.": "Uppdaterades framgångsrikt.",
-	"Suggested": "",
+	"Suggested": "Föreslagen",
 	"Sync All": "Synkronisera allt",
 	"System": "System",
 	"System Prompt": "Systemprompt",
 	"Tags": "Taggar",
-	"Tell us more:": "",
+	"Tell us more:": "Berätta mer:",
 	"Temperature": "Temperatur",
 	"Template": "Mall",
 	"Text Completion": "Textslutförande",
 	"Text-to-Speech Engine": "Text-till-tal-motor",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "Tack för din feedback!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Poäng ska vara ett värde mellan 0,0 (0%) och 1,0 (100%).",
 	"Theme": "Tema",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Detta säkerställer att dina värdefulla konversationer sparas säkert till din backend-databas. Tack!",
 	"This setting does not sync across browsers or devices.": "Denna inställning synkroniseras inte mellan webbläsare eller enheter.",
-	"Thorough explanation": "",
+	"Thorough explanation": "Djupare förklaring",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tips: Uppdatera flera variabelplatser efter varandra genom att trycka på tabb-tangenten i chattinmatningen efter varje ersättning.",
 	"Title": "Titel",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "Tittel (f.eks. Fortell meg en fun fact)",
 	"Title Auto-Generation": "Automatisk generering av titel",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "Tittel kan ikke være en tom streng.",
 	"Title Generation Prompt": "Titelgenereringsprompt",
 	"to": "till",
 	"To access the available model names for downloading,": "För att komma åt de tillgängliga modellnamnen för nedladdning,",
 	"To access the GGUF models available for downloading,": "För att komma åt de GGUF-modeller som finns tillgängliga för nedladdning,",
 	"to chat input.": "till chattinmatning.",
-	"Today": "",
+	"Today": "Idag",
 	"Toggle settings": "Växla inställningar",
 	"Toggle sidebar": "Växla sidofält",
 	"Top K": "Topp K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "Skriv Hugging Face Resolve (nedladdning) URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med att ansluta till {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "Uppdatera och kopiera länk",
 	"Update password": "Uppdatera lösenord",
 	"Upload a GGUF model": "Ladda upp en GGUF-modell",
 	"Upload files": "Ladda upp filer",
@@ -491,27 +491,27 @@
 	"variable": "variabel",
 	"variable to have them replaced with clipboard content.": "variabel för att få dem ersatta med urklippsinnehåll.",
 	"Version": "Version",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Varning: Om du uppdaterar eller ändrar din embedding modell måste du importera alla dokument igen.",
 	"Web": "Webb",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Web Loader-inställningar",
+	"Web Params": "Web-parametrar",
+	"Webhook URL": "Webhook-URL",
 	"WebUI Add-ons": "WebUI-tillägg",
 	"WebUI Settings": "WebUI-inställningar",
 	"WebUI will make requests to": "WebUI kommer att skicka förfrågningar till",
 	"What’s New in": "Vad är nytt i",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "När historiken är avstängd visas inte nya chattar i denna webbläsare i din historik på någon av dina enheter.",
 	"Whisper (Local)": "Whisper (lokal)",
-	"Workspace": "",
+	"Workspace": "arbetsyta",
 	"Write a prompt suggestion (e.g. Who are you?)": "Skriv ett förslag (t.ex. Vem är du?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en sammanfattning på 50 ord som sammanfattar [ämne eller nyckelord].",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "Igenom",
+	"You": "du",
+	"You have no archived conversations.": "Du har inga arkiverade konversationer.",
+	"You have shared this chat": "Du har delat denna chatt",
 	"You're a helpful assistant.": "Du är en hjälpsam assistent.",
 	"You're now logged in.": "Du är nu inloggad.",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Youtube Loader-inställningar"
 }

+ 15 - 15
src/lib/i18n/locales/tr-TR/translation.json

@@ -11,7 +11,7 @@
 	"About": "Hakkında",
 	"Account": "Hesap",
 	"Accurate information": "Doğru bilgi",
-	"Add": "",
+	"Add": "Ekle",
 	"Add a model": "Bir model ekleyin",
 	"Add a model tag name": "Bir model etiket adı ekleyin",
 	"Add a short description about what this modelfile does": "Bu model dosyasının ne yaptığı hakkında kısa bir açıklama ekleyin",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Özel prompt ekle",
 	"Add Docs": "Dökümanlar Ekle",
 	"Add Files": "Dosyalar Ekle",
-	"Add Memory": "",
+	"Add Memory": "Yerelleştirme Ekle",
 	"Add message": "Mesaj ekle",
 	"Add Model": "Model Ekle",
 	"Add Tags": "Etiketler ekle",
@@ -70,8 +70,8 @@
 	"Categories": "Kategoriler",
 	"Change Password": "Parola Değiştir",
 	"Chat": "Sohbet",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Sohbet Balonu UI",
+	"Chat direction": "Sohbet Yönü",
 	"Chat History": "Sohbet Geçmişi",
 	"Chat History is off for this browser.": "Bu tarayıcı için sohbet geçmişi kapalı.",
 	"Chats": "Sohbetler",
@@ -174,7 +174,7 @@
 	"Enabled": "Etkin",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSV dosyanızın şu sırayla 4 sütun içerdiğinden emin olun: İsim, E-posta, Şifre, Rol.",
 	"Enter {{role}} message here": "Buraya {{role}} mesajını girin",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "LLM'lerin hatırlaması için kendiniz hakkında bir detay girin",
 	"Enter Chunk Overlap": "Chunk Örtüşmesini Girin",
 	"Enter Chunk Size": "Chunk Boyutunu Girin",
 	"Enter Image Size (e.g. 512x512)": "Görüntü Boyutunu Girin (örn. 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "Genel Ayarlar",
 	"Generation Info": "Üretim Bilgisi",
 	"Good Response": "İyi Yanıt",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "hiç konuşması yok.",
 	"Hello, {{name}}": "Merhaba, {{name}}",
 	"Help": "Yardım",
@@ -254,7 +254,7 @@
 	"Light": "Açık",
 	"Listening...": "Dinleniyor...",
 	"LLMs can make mistakes. Verify important information.": "LLM'ler hata yapabilir. Önemli bilgileri doğrulayın.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "OpenWebUI Topluluğu tarafından yapılmıştır",
 	"Make sure to enclose them with": "Değişkenlerinizi şu şekilde biçimlendirin:",
 	"Manage LiteLLM Models": "LiteLLM Modellerini Yönet",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Maksimum Token",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Aynı anda en fazla 3 model indirilebilir. Lütfen daha sonra tekrar deneyin.",
 	"May": "Mayıs",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "LLM'ler tarafından erişilebilecek hatalar burada gösterilecektir.",
+	"Memory": "Hatalar",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Bağlantınızı oluşturduktan sonra gönderdiğiniz mesajlar paylaşılmaz. URL'ye sahip kullanıcılar paylaşılan sohbeti görüntüleyebilir.",
 	"Minimum Score": "Minimum Skor",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "PDF Görüntülerini Çıkart (OCR)",
 	"pending": "beklemede",
 	"Permission denied when accessing microphone: {{error}}": "Mikrofona erişim izni reddedildi: {{error}}",
-	"Personalization": "",
+	"Personalization": "Kullanıcı Özelleştirme",
 	"Plain text (.txt)": "Düz metin (.txt)",
 	"Playground": "Oyun Alanı",
 	"Positive attitude": "Olumlu yaklaşım",
@@ -378,7 +378,7 @@
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Kaydet",
 	"Save & Create": "Kaydet ve Oluştur",
 	"Save & Update": "Kaydet ve Güncelle",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Bir Ollama örneği seçin",
 	"Select model": "Model seç",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Gönder",
 	"Send a Message": "Bir Mesaj Gönder",
 	"Send message": "Mesaj gönder",
 	"September": "Eylül",
@@ -502,12 +502,12 @@
 	"What’s New in": "Yenilikler:",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Geçmiş kapatıldığında, bu tarayıcıdaki yeni sohbetler hiçbir cihazınızdaki geçmişinizde görünmez.",
 	"Whisper (Local)": "Whisper (Yerel)",
-	"Workspace": "",
+	"Workspace": "Çalışma Alanı",
 	"Write a prompt suggestion (e.g. Who are you?)": "Bir prompt önerisi yazın (örn. Sen kimsin?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[Konuyu veya anahtar kelimeyi] özetleyen 50 kelimelik bir özet yazın.",
 	"Yes": "",
 	"Yesterday": "Dün",
-	"You": "",
+	"You": "Sen",
 	"You have no archived conversations.": "Arşivlenmiş sohbetleriniz yok.",
 	"You have shared this chat": "Bu sohbeti paylaştınız",
 	"You're a helpful assistant.": "Sen yardımcı bir asistansın.",

+ 15 - 15
src/lib/i18n/locales/uk-UA/translation.json

@@ -11,7 +11,7 @@
 	"About": "Про програму",
 	"Account": "Обліковий запис",
 	"Accurate information": "Точна інформація",
-	"Add": "",
+	"Add": "Додати",
 	"Add a model": "Додати модель",
 	"Add a model tag name": "Додати ім'я тегу моделі",
 	"Add a short description about what this modelfile does": "Додати короткий опис того, що робить цей файл моделі",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Додати користувацьку підказку",
 	"Add Docs": "Додати документи",
 	"Add Files": "Додати файли",
-	"Add Memory": "",
+	"Add Memory": "Додати пам'ять",
 	"Add message": "Додати повідомлення",
 	"Add Model": "Додати модель",
 	"Add Tags": "додати теги",
@@ -70,8 +70,8 @@
 	"Categories": "Категорії",
 	"Change Password": "Змінити пароль",
 	"Chat": "Чат",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Бульбашковий UI чату",
+	"Chat direction": "Напрям чату",
 	"Chat History": "Історія чату",
 	"Chat History is off for this browser.": "Історія чату вимкнена для цього браузера.",
 	"Chats": "Чати",
@@ -174,7 +174,7 @@
 	"Enabled": "Увімкнено",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Переконайтеся, що ваш CSV-файл містить 4 колонки в такому порядку: Ім'я, Email, Пароль, Роль.",
 	"Enter {{role}} message here": "Введіть повідомлення {{role}} тут",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Введіть відомості про себе для запам'ятовування вашими LLM.",
 	"Enter Chunk Overlap": "Введіть перекриття фрагменту",
 	"Enter Chunk Size": "Введіть розмір фрагменту",
 	"Enter Image Size (e.g. 512x512)": "Введіть розмір зображення (напр., 512x512)",
@@ -219,7 +219,7 @@
 	"General Settings": "Загальні налаштування",
 	"Generation Info": "Інформація про генерацію",
 	"Good Response": "Гарна відповідь",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "не має розмов.",
 	"Hello, {{name}}": "Привіт, {{name}}",
 	"Help": "Допоможіть",
@@ -254,7 +254,7 @@
 	"Light": "Світла",
 	"Listening...": "Слухаю...",
 	"LLMs can make mistakes. Verify important information.": "LLMs можуть помилятися. Перевірте важливу інформацію.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Зроблено спільнотою OpenWebUI",
 	"Make sure to enclose them with": "Переконайтеся, що вони закриті",
 	"Manage LiteLLM Models": "Керування моделями LiteLLM",
@@ -265,9 +265,9 @@
 	"Max Tokens": "Максимальна кількість токенів",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 моделі можна завантажити одночасно. Будь ласка, спробуйте пізніше.",
 	"May": "Травень",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Пам'ять, яка доступна LLM, буде показана тут.",
+	"Memory": "Пам'ять",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Повідомлення, які ви надішлете після створення посилання, не будуть доступні для інших. Користувачі, які мають URL, зможуть переглядати спільний чат.",
 	"Minimum Score": "Мінімальний бал",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,7 +340,7 @@
 	"PDF Extract Images (OCR)": "Розпізнавання зображень з PDF (OCR)",
 	"pending": "на розгляді",
 	"Permission denied when accessing microphone: {{error}}": "Доступ до мікрофона заборонено: {{error}}",
-	"Personalization": "",
+	"Personalization": "Персоналізація",
 	"Plain text (.txt)": "Простий текст (.txt)",
 	"Playground": "Майданчик",
 	"Positive attitude": "Позитивне ставлення",
@@ -378,7 +378,7 @@
 	"Role": "Роль",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Зберегти",
 	"Save & Create": "Зберегти та створити",
 	"Save & Update": "Зберегти та оновити",
@@ -398,7 +398,7 @@
 	"Select an Ollama instance": "Виберіть екземпляр Ollama",
 	"Select model": "Вибрати модель",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "Надіслати",
 	"Send a Message": "Надіслати повідомлення",
 	"Send message": "Надіслати повідомлення",
 	"September": "Вересень",
@@ -502,12 +502,12 @@
 	"What’s New in": "Що нового в",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Коли історія вимкнена, нові чати в цьому браузері не будуть відображатися в історії на жодному з ваших пристроїв.",
 	"Whisper (Local)": "Whisper (локально)",
-	"Workspace": "",
+	"Workspace": "Робочий простір",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишіть промт (напр., Хто ти?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишіть стислий зміст у 50 слів, який узагальнює [тема або ключове слово].",
 	"Yes": "",
 	"Yesterday": "Вчора",
-	"You": "",
+	"You": "Ви",
 	"You have no archived conversations.": "У вас немає архівованих розмов.",
 	"You have shared this chat": "Ви поділилися цим чатом",
 	"You're a helpful assistant.": "Ви корисний асистент.",

+ 51 - 51
src/lib/i18n/locales/vi-VN/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(vd: `sh webui.sh --api`)",
 	"(latest)": "(mới nhất)",
 	"{{modelName}} is thinking...": "{{modelName}} đang suy nghĩ...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}}'s Chats",
 	"{{webUIName}} Backend Required": "{{webUIName}} Yêu cầu Backend",
 	"A selected model does not support image input": "",
 	"a user": "người sử dụng",
 	"About": "Giới thiệu",
 	"Account": "Tài khoản",
 	"Accurate information": "Thông tin chính xác",
-	"Add": "",
+	"Add": "Thêm",
 	"Add a model": "Thêm mô hình",
 	"Add a model tag name": "Thêm tên thẻ mô hình (tag)",
 	"Add a short description about what this modelfile does": "Thêm mô tả ngắn về việc tệp mô tả mô hình (modelfile) này làm gì",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "Thêm prompt tùy chỉnh",
 	"Add Docs": "Thêm tài liệu",
 	"Add Files": "Thêm tệp",
-	"Add Memory": "",
+	"Add Memory": "Thêm bộ nhớ",
 	"Add message": "Thêm tin nhắn",
 	"Add Model": "Thêm model",
 	"Add Tags": "thêm thẻ",
@@ -43,8 +43,8 @@
 	"and create a new shared link.": "và tạo một link chia sẻ mới",
 	"API Base URL": "Đường dẫn tới API (API Base URL)",
 	"API Key": "API Key",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key created.": "Khóa API đã tạo",
+	"API keys": "API Keys",
 	"API RPM": "API RPM",
 	"April": "Tháng 4",
 	"Archive": "Lưu trữ",
@@ -65,13 +65,13 @@
 	"before": "trước",
 	"Being lazy": "Lười biếng",
 	"Builder Mode": "Chế độ Builder",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "Bỏ qua xác thực SSL cho các trang web",
 	"Cancel": "Hủy bỏ",
 	"Categories": "Danh mục",
 	"Change Password": "Đổi Mật khẩu",
 	"Chat": "Trò chuyện",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "Bảng chat",
+	"Chat direction": "Hướng chat",
 	"Chat History": "Lịch sử chat",
 	"Chat History is off for this browser.": "Lịch sử chat đã tắt cho trình duyệt này.",
 	"Chats": "Chat",
@@ -93,9 +93,9 @@
 	"Click on the user role button to change a user's role.": "Bấm vào nút trong cột VAI TRÒ để thay đổi quyền của người sử dụng.",
 	"Close": "Đóng",
 	"Collection": "Tổng hợp mọi tài liệu",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI Base URL",
+	"ComfyUI Base URL is required.": "Base URL của ComfyUI là bắt buộc.",
 	"Command": "Lệnh",
 	"Confirm Password": "Xác nhận Mật khẩu",
 	"Connections": "Kết nối",
@@ -103,7 +103,7 @@
 	"Context Length": "Độ dài ngữ cảnh (Context Length)",
 	"Continue Response": "Tiếp tục trả lời",
 	"Conversation Mode": "Chế độ hội thoại",
-	"Copied shared chat URL to clipboard!": "",
+	"Copied shared chat URL to clipboard!": "Đã sao chép link chia sẻ trò chuyện vào clipboard!",
 	"Copy": "Sao chép",
 	"Copy last code block": "Sao chép khối mã cuối cùng",
 	"Copy last response": "Sao chép phản hồi cuối cùng",
@@ -122,12 +122,12 @@
 	"Custom": "Tùy chỉnh",
 	"Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể",
 	"Dark": "Tối",
-	"Dashboard": "",
+	"Dashboard": "Trang tổng quan",
 	"Database": "Cơ sở dữ liệu",
 	"December": "Tháng 12",
 	"Default": "Mặc định",
 	"Default (Automatic1111)": "Mặc định (Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "Mặc định (SentenceTransformers)",
 	"Default (Web API)": "Mặc định (Web API)",
 	"Default model updated": "Mô hình mặc định đã được cập nhật",
 	"Default Prompt Suggestions": "Đề xuất prompt mặc định",
@@ -166,19 +166,19 @@
 	"Edit Doc": "Thay đổi tài liệu",
 	"Edit User": "Thay đổi thông tin người sử dụng",
 	"Email": "Email",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "Mô hình embedding",
+	"Embedding Model Engine": "Trình xử lý embedding",
+	"Embedding model set to \"{{embedding_model}}\"": "Mô hình embedding đã được thiết lập thành \"{{embedding_model}}\"",
 	"Enable Chat History": "Bật Lịch sử chat",
 	"Enable New Sign Ups": "Cho phép đăng ký mới",
 	"Enabled": "Đã bật",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Đảm bảo tệp CSV của bạn bao gồm 4 cột theo thứ tự sau: Name, Email, Password, Role.",
 	"Enter {{role}} message here": "Nhập yêu cầu của {{role}} ở đây",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "Nhập chi tiết về bản thân của bạn để LLMs có thể nhớ",
 	"Enter Chunk Overlap": "Nhập Chunk chồng lấn (overlap)",
 	"Enter Chunk Size": "Nhập Kích thước Chunk",
 	"Enter Image Size (e.g. 512x512)": "Nhập Kích thước ảnh (vd: 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "Nhập mã ngôn ngữ",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "Nhập URL Cơ bản API LiteLLM (litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "Nhập Khóa API LiteLLM (litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "Nhập RPM API LiteLLM (litellm_params.rpm)",
@@ -191,7 +191,7 @@
 	"Enter stop sequence": "Nhập stop sequence",
 	"Enter Top K": "Nhập Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "Nhập URL (vd: http://localhost:11434)",
 	"Enter Your Email": "Nhập Email của bạn",
 	"Enter Your Full Name": "Nhập Họ và Tên của bạn",
 	"Enter Your Password": "Nhập Mật khẩu của bạn",
@@ -208,7 +208,7 @@
 	"Feel free to add specific details": "Mô tả chi tiết về chất lượng của câu hỏi và phương án trả lời",
 	"File Mode": "Chế độ Tệp văn bản",
 	"File not found.": "Không tìm thấy tệp.",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Phát hiện giả mạo vân tay: Không thể sử dụng tên viết tắt làm hình đại diện. Mặc định là hình ảnh hồ sơ mặc định.",
 	"Fluidly stream large external response chunks": "Truyền tải các khối phản hồi bên ngoài lớn một cách trôi chảy",
 	"Focus chat input": "Tập trung vào nội dung chat",
 	"Followed instructions perfectly": "Tuân theo chỉ dẫn một cách hoàn hảo",
@@ -219,14 +219,14 @@
 	"General Settings": "Cấu hình chung",
 	"Generation Info": "Thông tin chung",
 	"Good Response": "Trả lời tốt",
-	"h:mm a": "",
+	"h:mm a": "h:mm a",
 	"has no conversations.": "không có hội thoại",
 	"Hello, {{name}}": "Xin chào, {{name}}",
 	"Help": "Trợ giúp",
 	"Hide": "Ẩn",
 	"Hide Additional Params": "Ẩn Các tham số bổ sung",
 	"How can I help you today?": "Tôi có thể giúp gì cho bạn hôm nay?",
-	"Hybrid Search": "",
+	"Hybrid Search": "Tìm kiếm Hybrid",
 	"Image Generation (Experimental)": "Tạo ảnh (thử nghiệm)",
 	"Image Generation Engine": "Công cụ tạo ảnh",
 	"Image Settings": "Cài đặt ảnh",
@@ -254,7 +254,7 @@
 	"Light": "Sáng",
 	"Listening...": "Đang nghe...",
 	"LLMs can make mistakes. Verify important information.": "Hệ thống có thể tạo ra nội dung không chính xác hoặc sai. Hãy kiểm chứng kỹ lưỡng thông tin trước khi tiếp nhận và sử dụng.",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "Được tạo bởi Cộng đồng OpenWebUI",
 	"Make sure to enclose them with": "Hãy chắc chắn bao quanh chúng bằng",
 	"Manage LiteLLM Models": "Quản lý mô hình với LiteLLM",
@@ -265,15 +265,15 @@
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.",
 	"May": "Tháng 5",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "Memory có thể truy cập bởi LLMs sẽ hiển thị ở đây.",
+	"Memory": "Memory",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Tin nhắn bạn gửi sau khi tạo liên kết sẽ không được chia sẻ. Người dùng có URL sẽ có thể xem cuộc trò chuyện được chia sẻ.",
 	"Minimum Score": "Score tối thiểu",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "Mô hình '{{modelName}}' đã được tải xuống thành công.",
 	"Model '{{modelTag}}' is already in queue for downloading.": "Mô hình '{{modelTag}}' đã có trong hàng đợi để tải xuống.",
 	"Model {{modelId}} not found": "Không tìm thấy Mô hình {{modelId}}",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Đường dẫn hệ thống tệp mô hình được phát hiện. Tên viết tắt mô hình là bắt buộc để cập nhật, không thể tiếp tục.",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "Tên Mô hình",
@@ -312,8 +312,8 @@
 	"October": "Tháng 10",
 	"Off": "Tắt",
 	"Okay, Let's Go!": "Được rồi, Bắt đầu thôi!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "OLED Dark",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Đường dẫn tới API của Ollama (Ollama Base URL)",
 	"Ollama Version": "Phiên bản Ollama",
 	"On": "Bật",
@@ -326,33 +326,33 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "Mở nội dung chat mới",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "API OpenAI",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "Cấu hình API OpenAI",
 	"OpenAI API Key is required.": "Bắt buộc nhập API OpenAI Key.",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "Yêu cầu URL/Key API OpenAI.",
 	"or": "hoặc",
 	"Other": "Khác",
 	"Overview": "Tổng quan",
 	"Parameters": "Tham số",
 	"Password": "Mật khẩu",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "Tập tin PDF (.pdf)",
 	"PDF Extract Images (OCR)": "Trích xuất ảnh từ PDF (OCR)",
 	"pending": "đang chờ phê duyệt",
 	"Permission denied when accessing microphone: {{error}}": "Quyền truy cập micrô bị từ chối: {{error}}",
 	"Personalization": "Cá nhân hóa",
-	"Plain text (.txt)": "",
+	"Plain text (.txt)": "Văn bản thô (.txt)",
 	"Playground": "Thử nghiệm (Playground)",
 	"Positive attitude": "Thái độ tích cực",
 	"Previous 30 days": "30 ngày trước",
 	"Previous 7 days": "7 ngày trước",
 	"Profile Image": "Ảnh đại diện",
-	"Prompt": "",
+	"Prompt": "Prompt",
 	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (ví dụ: Hãy kể cho tôi một sự thật thú vị về Đế chế La Mã)",
 	"Prompt Content": "Nội dung prompt",
 	"Prompt suggestions": "Gợi ý prompt",
 	"Prompts": "Prompt",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Tải \"{{searchValue}}\" từ Ollama.com",
 	"Pull a model from Ollama.com": "Tải mô hình từ Ollama.com",
 	"Pull Progress": "Tiến trình Tải xuống",
 	"Query Params": "Tham số Truy vấn",
@@ -370,15 +370,15 @@
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request Mode",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "Reranking Model",
+	"Reranking model disabled": "Reranking model disabled",
+	"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
 	"Reset Vector Storage": "Cài đặt lại Vector Storage",
 	"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
 	"Role": "Vai trò",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "Lưu",
 	"Save & Create": "Lưu & Tạo",
 	"Save & Update": "Lưu & Cập nhật",
@@ -405,10 +405,10 @@
 	"Server connection verified": "Kết nối máy chủ đã được xác minh",
 	"Set as default": "Đặt làm mặc định",
 	"Set Default Model": "Đặt Mô hình Mặc định",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "Thiết lập mô hình embedding (ví dụ: {{model}})",
 	"Set Image Size": "Đặt Kích thước ảnh",
 	"Set Model": "Thiết lập mô hình",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "Thiết lập mô hình reranking (ví dụ: {{model}})",
 	"Set Steps": "Đặt Số Bước",
 	"Set Title Auto-Generation Model": "Đặt tiêu đề tự động",
 	"Set Voice": "Đặt Giọng nói",
@@ -426,7 +426,7 @@
 	"Sign in": "Đăng nhập",
 	"Sign Out": "Đăng xuất",
 	"Sign up": "Đăng ký",
-	"Signing in": "",
+	"Signing in": "Đăng nhập",
 	"Source": "Nguồn",
 	"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
 	"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
@@ -434,7 +434,7 @@
 	"Stop Sequence": "Trình tự Dừng",
 	"STT Settings": "Cài đặt Nhận dạng Giọng nói",
 	"Submit": "Gửi",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "Phụ đề (ví dụ: về Đế chế La Mã)",
 	"Success": "Thành công",
 	"Successfully updated.": "Đã cập nhật thành công.",
 	"Suggested": "Gợi ý một số mẫu prompt",
@@ -494,15 +494,15 @@
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Cảnh báo: Nếu cập nhật hoặc thay đổi embedding model, bạn sẽ cần cập nhật lại tất cả tài liệu.",
 	"Web": "Web",
 	"Web Loader Settings": "Cài đặt Web Loader",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Params": "Web Params",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "Tiện ích WebUI",
 	"WebUI Settings": "Cài đặt WebUI",
 	"WebUI will make requests to": "WebUI sẽ thực hiện các yêu cầu đến",
-	"What’s New in": "",
+	"What’s New in": "Thông tin mới về",
 	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Khi chế độ lịch sử chat đã tắt, các nội dung chat mới trên trình duyệt này sẽ không xuất hiện trên bất kỳ thiết bị nào của bạn.",
 	"Whisper (Local)": "Whisper (Local)",
-	"Workspace": "",
+	"Workspace": "Workspace",
 	"Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].",
 	"Yes": "",
@@ -512,6 +512,6 @@
 	"You have shared this chat": "Bạn vừa chia sẻ chat này",
 	"You're a helpful assistant.": "Bạn là một trợ lý hữu ích.",
 	"You're now logged in.": "Bạn đã đăng nhập.",
-	"Youtube": "",
+	"Youtube": "Youtube",
 	"Youtube Loader Settings": "Cài đặt Youtube Loader"
 }

+ 13 - 13
src/lib/i18n/locales/zh-CN/translation.json

@@ -11,7 +11,7 @@
 	"About": "关于",
 	"Account": "账户",
 	"Accurate information": "准确信息",
-	"Add": "",
+	"Add": "添加",
 	"Add a model": "添加模型",
 	"Add a model tag name": "添加模型标签名称",
 	"Add a short description about what this modelfile does": "为这个模型文件添加一段简短的描述",
@@ -20,7 +20,7 @@
 	"Add custom prompt": "添加自定义提示词",
 	"Add Docs": "添加文档",
 	"Add Files": "添加文件",
-	"Add Memory": "",
+	"Add Memory": "添加记忆",
 	"Add message": "添加消息",
 	"Add Model": "添加模型",
 	"Add Tags": "添加标签",
@@ -70,8 +70,8 @@
 	"Categories": "分类",
 	"Change Password": "更改密码",
 	"Chat": "聊天",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "聊天气泡 UI",
+	"Chat direction": "聊天方向",
 	"Chat History": "聊天历史",
 	"Chat History is off for this browser.": "此浏览器已关闭聊天历史功能。",
 	"Chats": "聊天",
@@ -174,7 +174,7 @@
 	"Enabled": "启用",
 	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "确保您的 CSV 文件按以下顺序包含 4 列: 姓名、电子邮件、密码、角色。",
 	"Enter {{role}} message here": "在此处输入 {{role}} 信息",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "输入 LLM 可以记住的信息",
 	"Enter Chunk Overlap": "输入块重叠 (Chunk Overlap)",
 	"Enter Chunk Size": "输入块大小 (Chunk Size)",
 	"Enter Image Size (e.g. 512x512)": "输入图片大小 (例如 512x512)",
@@ -254,7 +254,7 @@
 	"Light": "浅色",
 	"Listening...": "监听中...",
 	"LLMs can make mistakes. Verify important information.": "LLM 可能会生成错误信息,请验证重要信息。",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "由 OpenWebUI 社区制作",
 	"Make sure to enclose them with": "确保将它们包含在内",
 	"Manage LiteLLM Models": "管理 LiteLLM 模型",
@@ -265,9 +265,9 @@
 	"Max Tokens": "最大令牌数",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载 3 个模型,请稍后重试。",
 	"May": "五月",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
+	"Memories accessible by LLMs will be shown here.": "LLMs 可以访问的记忆将显示在这里。",
+	"Memory": "记忆",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "创建链接后发送的消息不会被共享。具有 URL 的用户将能够查看共享聊天。",
 	"Minimum Score": "最低分",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
@@ -340,8 +340,8 @@
 	"PDF Extract Images (OCR)": "PDF 图像处理 (使用 OCR)",
 	"pending": "待定",
 	"Permission denied when accessing microphone: {{error}}": "访问麦克风时权限被拒绝:{{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "PDF 文档 (.pdf)",
+	"Personalization": "个性化",
+	"Plain text (.txt)": "TXT 文档 (.txt)",
 	"Playground": "AI 对话游乐场",
 	"Positive attitude": "积极态度",
 	"Previous 30 days": "过去 30 天",
@@ -378,7 +378,7 @@
 	"Role": "角色",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "保存",
 	"Save & Create": "保存并创建",
 	"Save & Update": "保存并更新",
@@ -507,7 +507,7 @@
 	"Write a summary in 50 words that summarizes [topic or keyword].": "用 50 个字写一个总结 [主题或关键词]。",
 	"Yes": "",
 	"Yesterday": "昨天",
-	"You": "",
+	"You": "",
 	"You have no archived conversations.": "你没有存档的对话。",
 	"You have shared this chat": "你分享了这次聊天",
 	"You're a helpful assistant.": "你是一个有帮助的助手。",

+ 141 - 141
src/lib/i18n/locales/zh-TW/translation.json

@@ -4,14 +4,14 @@
 	"(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)",
 	"(latest)": "(最新版)",
 	"{{modelName}} is thinking...": "{{modelName}} 正在思考...",
-	"{{user}}'s Chats": "",
+	"{{user}}'s Chats": "{{user}} 的聊天",
 	"{{webUIName}} Backend Required": "需要 {{webUIName}} 後台",
 	"A selected model does not support image input": "",
 	"a user": "使用者",
 	"About": "關於",
 	"Account": "帳號",
-	"Accurate information": "",
-	"Add": "",
+	"Accurate information": "準確信息",
+	"Add": "新增",
 	"Add a model": "新增模型",
 	"Add a model tag name": "新增模型標籤",
 	"Add a short description about what this modelfile does": "為這個 Modelfile 添加一段簡短的描述",
@@ -20,18 +20,18 @@
 	"Add custom prompt": "新增自定義提示詞",
 	"Add Docs": "新增文件",
 	"Add Files": "新增檔案",
-	"Add Memory": "",
+	"Add Memory": "新增記憶",
 	"Add message": "新增訊息",
-	"Add Model": "",
+	"Add Model": "新增模型",
 	"Add Tags": "新增標籤",
-	"Add User": "",
+	"Add User": "新增用户",
 	"Adjusting these settings will apply changes universally to all users.": "調整這些設定將對所有使用者進行更改。",
 	"admin": "管理員",
 	"Admin Panel": "管理員控制台",
 	"Admin Settings": "管理設定",
 	"Advanced Parameters": "進階參數",
 	"all": "所有",
-	"All Documents": "",
+	"All Documents": "所有文件",
 	"All selected models do not support image input, removed images": "",
 	"All Users": "所有使用者",
 	"Allow": "允許",
@@ -40,38 +40,38 @@
 	"Already have an account?": "已經有帳號了嗎?",
 	"an assistant": "助手",
 	"and": "和",
-	"and create a new shared link.": "",
+	"and create a new shared link.": "創建一個新的共享連結。",
 	"API Base URL": "API 基本 URL",
-	"API Key": "API 金鑰",
-	"API Key created.": "",
-	"API keys": "",
+	"API Key": "API Key",
+	"API Key created.": "API Key",
+	"API keys": "API Keys",
 	"API RPM": "API RPM",
-	"April": "",
-	"Archive": "",
+	"April": "4月",
+	"Archive": "存檔",
 	"Archived Chats": "聊天記錄存檔",
 	"are allowed - Activate this command by typing": "是允許的 - 透過輸入",
 	"Are you sure?": "你確定嗎?",
 	"Attach file": "附加檔案",
-	"Attention to detail": "",
+	"Attention to detail": "細節精確",
 	"Audio": "音訊",
-	"August": "",
+	"August": "8月",
 	"Auto-playback response": "自動播放回答",
 	"Auto-send input after 3 sec.": "3 秒後自動傳送輸入內容",
 	"AUTOMATIC1111 Base URL": "AUTOMATIC1111 基本 URL",
 	"AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基本 URL",
 	"available!": "可以使用!",
 	"Back": "返回",
-	"Bad Response": "",
-	"before": "",
-	"Being lazy": "",
+	"Bad Response": "錯誤回應",
+	"before": "",
+	"Being lazy": "懶人模式",
 	"Builder Mode": "建構模式",
-	"Bypass SSL verification for Websites": "",
+	"Bypass SSL verification for Websites": "跳過 SSL 驗證",
 	"Cancel": "取消",
 	"Categories": "分類",
 	"Change Password": "修改密碼",
 	"Chat": "聊天",
-	"Chat Bubble UI": "",
-	"Chat direction": "",
+	"Chat Bubble UI": "聊天氣泡介面",
+	"Chat direction": "聊天方向",
 	"Chat History": "聊天紀錄功能",
 	"Chat History is off for this browser.": "此瀏覽器已關閉聊天紀錄功能。",
 	"Chats": "聊天",
@@ -84,66 +84,66 @@
 	"Chunk Size": "Chunk 大小",
 	"Citation": "引文",
 	"Click here for help.": "點擊這裡尋找幫助。",
-	"Click here to": "",
+	"Click here to": "點擊這裡",
 	"Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。",
 	"Click here to select": "點擊這裡選擇",
-	"Click here to select a csv file.": "",
+	"Click here to select a csv file.": "點擊這裡選擇 csv 檔案。",
 	"Click here to select documents.": "點擊這裡選擇文件。",
 	"click here.": "點擊這裡。",
 	"Click on the user role button to change a user's role.": "點擊使用者 Role 按鈕以更改使用者的 Role。",
 	"Close": "關閉",
 	"Collection": "收藏",
-	"ComfyUI": "",
-	"ComfyUI Base URL": "",
-	"ComfyUI Base URL is required.": "",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI Base URL": "ComfyUI 基本 URL",
+	"ComfyUI Base URL is required.": "需要 ComfyUI 基本 URL",
 	"Command": "命令",
 	"Confirm Password": "確認密碼",
 	"Connections": "連線",
 	"Content": "內容",
 	"Context Length": "上下文長度",
-	"Continue Response": "",
+	"Continue Response": "繼續回答",
 	"Conversation Mode": "對話模式",
-	"Copied shared chat URL to clipboard!": "",
-	"Copy": "",
+	"Copied shared chat URL to clipboard!": "已複製共享聊天連結到剪貼簿!",
+	"Copy": "複製",
 	"Copy last code block": "複製最後一個程式碼區塊",
 	"Copy last response": "複製最後一個回答",
-	"Copy Link": "",
+	"Copy Link": "複製連結",
 	"Copying to clipboard was successful!": "成功複製到剪貼簿!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:",
 	"Create a modelfile": "建立 Modelfile",
 	"Create Account": "建立帳號",
-	"Create new key": "",
-	"Create new secret key": "",
+	"Create new key": "建立新密鑰",
+	"Create new secret key": "建立新密鑰",
 	"Created at": "建立於",
-	"Created At": "",
+	"Created At": "建立於",
 	"Current Model": "目前模型",
 	"Current Models": "",
 	"Current Password": "目前密碼",
 	"Custom": "自訂",
 	"Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
 	"Dark": "暗色",
-	"Dashboard": "",
+	"Dashboard": "儀表板",
 	"Database": "資料庫",
-	"December": "",
+	"December": "12月",
 	"Default": "預設",
 	"Default (Automatic1111)": "預設(Automatic1111)",
-	"Default (SentenceTransformers)": "",
+	"Default (SentenceTransformers)": "預設(SentenceTransformers)",
 	"Default (Web API)": "預設(Web API)",
 	"Default model updated": "預設模型已更新",
 	"Default Prompt Suggestions": "預設提示詞建議",
 	"Default User Role": "預設用戶 Role",
 	"delete": "刪除",
-	"Delete": "",
+	"Delete": "刪除",
 	"Delete a model": "刪除一個模型",
 	"Delete chat": "刪除聊天紀錄",
-	"Delete Chat": "",
+	"Delete Chat": "刪除聊天紀錄",
 	"Delete Chats": "刪除聊天紀錄",
-	"delete this link": "",
-	"Delete User": "",
+	"delete this link": "刪除此連結",
+	"Delete User": "刪除用戶",
 	"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
-	"Deleted {{tagName}}": "",
+	"Deleted {{tagName}}": "已刪除 {{tagName}}",
 	"Description": "描述",
-	"Didn't fully follow instructions": "",
+	"Didn't fully follow instructions": "無法完全遵循指示",
 	"Disabled": "已停用",
 	"Discover a modelfile": "發現新 Modelfile",
 	"Discover a prompt": "發現新提示詞",
@@ -156,29 +156,29 @@
 	"does not make any external connections, and your data stays securely on your locally hosted server.": "不會與外部溝通,你的數據會安全地留在你的本機伺服器上。",
 	"Don't Allow": "不允許",
 	"Don't have an account?": "還沒有註冊帳號?",
-	"Don't like the style": "",
-	"Download": "",
-	"Download canceled": "",
+	"Don't like the style": "不喜歡這個樣式?",
+	"Download": "下載",
+	"Download canceled": "下載已取消",
 	"Download Database": "下載資料庫",
 	"Drop any files here to add to the conversation": "拖拽文件到此處以新增至對話",
 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s', '10m'。有效的時間單位為 's', 'm', 'h'。",
-	"Edit": "",
+	"Edit": "編輯",
 	"Edit Doc": "編輯文件",
 	"Edit User": "編輯使用者",
 	"Email": "電子郵件",
-	"Embedding Model": "",
-	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "",
+	"Embedding Model": "嵌入模型",
+	"Embedding Model Engine": "嵌入模型引擎",
+	"Embedding model set to \"{{embedding_model}}\"": "嵌入模型已設定為 \"{{embedding_model}}\"",
 	"Enable Chat History": "啟用聊天歷史",
 	"Enable New Sign Ups": "允許註冊新帳號",
 	"Enabled": "已啟用",
-	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "請確保你的 CSV 檔案包含這四個欄位,並按照此順序:名稱、電子郵件、密碼、角色。",
 	"Enter {{role}} message here": "在這裡輸入 {{role}} 訊息",
-	"Enter a detail about yourself for your LLMs to recall": "",
+	"Enter a detail about yourself for your LLMs to recall": "輸入 LLM 記憶的詳細內容",
 	"Enter Chunk Overlap": "輸入 Chunk Overlap",
 	"Enter Chunk Size": "輸入 Chunk 大小",
 	"Enter Image Size (e.g. 512x512)": "輸入圖片大小(例如 512x512)",
-	"Enter language codes": "",
+	"Enter language codes": "輸入語言代碼",
 	"Enter LiteLLM API Base URL (litellm_params.api_base)": "輸入 LiteLLM API 基本 URL(litellm_params.api_base)",
 	"Enter LiteLLM API Key (litellm_params.api_key)": "輸入 LiteLLM API 金鑰(litellm_params.api_key)",
 	"Enter LiteLLM API RPM (litellm_params.rpm)": "輸入 LiteLLM API RPM(litellm_params.rpm)",
@@ -187,46 +187,46 @@
 	"Enter Model Display Name": "",
 	"Enter model tag (e.g. {{modelTag}})": "輸入模型標籤(例如 {{modelTag}})",
 	"Enter Number of Steps (e.g. 50)": "輸入步數(例如 50)",
-	"Enter Score": "",
+	"Enter Score": "輸入分數",
 	"Enter stop sequence": "輸入停止序列",
 	"Enter Top K": "輸入 Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如 http://127.0.0.1:7860/)",
-	"Enter URL (e.g. http://localhost:11434)": "",
+	"Enter URL (e.g. http://localhost:11434)": "輸入 URL(例如 http://localhost:11434)",
 	"Enter Your Email": "輸入你的電子郵件",
 	"Enter Your Full Name": "輸入你的全名",
 	"Enter Your Password": "輸入你的密碼",
-	"Enter Your Role": "",
+	"Enter Your Role": "輸入你的角色",
 	"Experimental": "實驗功能",
 	"Export All Chats (All Users)": "匯出所有聊天紀錄(所有使用者)",
 	"Export Chats": "匯出聊天紀錄",
 	"Export Documents Mapping": "匯出文件映射",
 	"Export Modelfiles": "匯出 Modelfiles",
 	"Export Prompts": "匯出提示詞",
-	"Failed to create API Key.": "",
+	"Failed to create API Key.": "無法創建 API 金鑰。",
 	"Failed to read clipboard contents": "無法讀取剪貼簿內容",
-	"February": "",
-	"Feel free to add specific details": "",
+	"February": "2月",
+	"Feel free to add specific details": "請自由添加詳細內容。",
 	"File Mode": "檔案模式",
 	"File not found.": "找不到檔案。",
-	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "偽裝偽裝檢測:無法使用頭像作為頭像。預設為預設頭像。",
 	"Fluidly stream large external response chunks": "流暢地傳輸大型外部響應區塊",
 	"Focus chat input": "聚焦聊天輸入框",
-	"Followed instructions perfectly": "",
+	"Followed instructions perfectly": "完全遵循指示",
 	"Format your variables using square brackets like this:": "像這樣使用方括號來格式化你的變數:",
 	"From (Base Model)": "來自(基礎模型)",
 	"Full Screen Mode": "全螢幕模式",
 	"General": "常用",
 	"General Settings": "常用設定",
-	"Generation Info": "",
-	"Good Response": "",
-	"h:mm a": "",
-	"has no conversations.": "",
+	"Generation Info": "生成信息",
+	"Good Response": "優秀的回應",
+	"h:mm a": "h:mm a",
+	"has no conversations.": "沒有對話",
 	"Hello, {{name}}": "你好,{{name}}",
-	"Help": "",
+	"Help": "幫助",
 	"Hide": "隱藏",
 	"Hide Additional Params": "隱藏額外參數",
 	"How can I help you today?": "今天能為你做什麼?",
-	"Hybrid Search": "",
+	"Hybrid Search": "混合搜索",
 	"Image Generation (Experimental)": "圖像生成(實驗功能)",
 	"Image Generation Engine": "圖像生成引擎",
 	"Image Settings": "圖片設定",
@@ -238,42 +238,42 @@
 	"Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌",
 	"Input commands": "輸入命令",
 	"Interface": "介面",
-	"Invalid Tag": "",
+	"Invalid Tag": "無效標籤",
 	"Is Model Vision Capable": "",
-	"January": "",
+	"January": "1月",
 	"join our Discord for help.": "加入我們的 Discord 尋找幫助。",
 	"JSON": "JSON",
-	"July": "",
-	"June": "",
+	"July": "7月",
+	"June": "6月",
 	"JWT Expiration": "JWT 過期時間",
 	"JWT Token": "JWT Token",
 	"Keep Alive": "保持活躍",
 	"Keyboard shortcuts": "鍵盤快速鍵",
 	"Language": "語言",
-	"Last Active": "",
+	"Last Active": "最後活動",
 	"Light": "亮色",
 	"Listening...": "正在聽取...",
 	"LLMs can make mistakes. Verify important information.": "LLM 可能會產生錯誤。請驗證重要資訊。",
-	"LTR": "",
+	"LTR": "LTR",
 	"Made by OpenWebUI Community": "由 OpenWebUI 社區製作",
 	"Make sure to enclose them with": "請確保變數有被以下符號框住:",
 	"Manage LiteLLM Models": "管理 LiteLLM 模型",
 	"Manage Model Information": "",
 	"Manage Models": "管理模組",
 	"Manage Ollama Models": "管理 Ollama 模型",
-	"March": "",
+	"March": "3月",
 	"Max Tokens": "最大 Token 數",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。",
-	"May": "",
-	"Memories accessible by LLMs will be shown here.": "",
-	"Memory": "",
-	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
-	"Minimum Score": "",
+	"May": "5月",
+	"Memories accessible by LLMs will be shown here.": "LLM 記憶將會顯示在此處。",
+	"Memory": "記憶",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "創建連結後發送的訊息將不會被共享。具有 URL 的用戶將會能夠檢視共享的聊天。",
+	"Minimum Score": "最小分數",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Tau": "Mirostat Tau",
 	"MMMM DD, YYYY": "MMMM DD, YYYY",
-	"MMMM DD, YYYY HH:mm": "",
+	"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
 	"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' 模型已成功下載。",
 	"Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' 模型已經在下載佇列中。",
 	"Model {{modelId}} not found": "找不到 {{modelId}} 模型",
@@ -281,7 +281,7 @@
 	"Model {{modelName}} is not vision capable": "",
 	"Model Description": "",
 	"Model Display Name": "",
-	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "模型文件系統路徑已檢測。需要更新模型短名,無法繼續。",
 	"Model info for {{modelName}} added successfully": "",
 	"Model info for {{modelName}} deleted successfully": "",
 	"Model Name": "模型名稱",
@@ -294,26 +294,26 @@
 	"Modelfile Content": "Modelfile 內容",
 	"Modelfiles": "Modelfiles",
 	"Models": "模型",
-	"More": "",
+	"More": "更多",
 	"Name": "名稱",
 	"Name Tag": "名稱標籤",
 	"Name your modelfile": "命名你的 Modelfile",
 	"New Chat": "新增聊天",
 	"New Password": "新密碼",
 	"No": "",
-	"No results found": "",
+	"No results found": "沒有找到結果",
 	"No source available": "沒有可用的來源",
-	"Not factually correct": "",
+	"Not factually correct": "與真實資訊不相符",
 	"Not sure what to add?": "不確定要新增什麼嗎?",
 	"Not sure what to write? Switch to": "不確定要寫什麼?切換到",
-	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
+	"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "註:如果設置最低分數,則搜索將只返回分數大於或等於最低分數的文檔。",
 	"Notifications": "桌面通知",
-	"November": "",
-	"October": "",
+	"November": "11月",
+	"October": "10 月",
 	"Off": "關閉",
 	"Okay, Let's Go!": "好的,啟動吧!",
-	"OLED Dark": "",
-	"Ollama": "",
+	"OLED Dark": "`",
+	"Ollama": "Ollama",
 	"Ollama Base URL": "Ollama 基本 URL",
 	"Ollama Version": "Ollama 版本",
 	"On": "開啟",
@@ -326,59 +326,59 @@
 	"Open AI": "Open AI",
 	"Open AI (Dall-E)": "Open AI (Dall-E)",
 	"Open new chat": "開啟新聊天",
-	"OpenAI": "",
+	"OpenAI": "OpenAI",
 	"OpenAI API": "OpenAI API",
-	"OpenAI API Config": "",
+	"OpenAI API Config": "OpenAI API 設定",
 	"OpenAI API Key is required.": "需要 OpenAI API 金鑰。",
-	"OpenAI URL/Key required.": "",
+	"OpenAI URL/Key required.": "需要 OpenAI URL/金鑰。",
 	"or": "或",
-	"Other": "",
-	"Overview": "",
+	"Other": "其他",
+	"Overview": "總覽",
 	"Parameters": "參數",
 	"Password": "密碼",
-	"PDF document (.pdf)": "",
+	"PDF document (.pdf)": "PDF 文件 (.pdf)",
 	"PDF Extract Images (OCR)": "PDF 圖像擷取(OCR 光學文字辨識)",
 	"pending": "待審查",
 	"Permission denied when accessing microphone: {{error}}": "存取麥克風時被拒絕權限:{{error}}",
-	"Personalization": "",
-	"Plain text (.txt)": "",
+	"Personalization": "個人化",
+	"Plain text (.txt)": "純文字 (.txt)",
 	"Playground": "AI 對話遊樂場",
-	"Positive attitude": "",
-	"Previous 30 days": "",
-	"Previous 7 days": "",
-	"Profile Image": "",
-	"Prompt": "",
-	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
+	"Positive attitude": "積極態度",
+	"Previous 30 days": "前 30 天",
+	"Previous 7 days": "前 7 天",
+	"Profile Image": "個人圖像",
+	"Prompt": "提示詞",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "提示詞(例如:告訴我關於羅馬帝國的趣味事)",
 	"Prompt Content": "提示詞內容",
 	"Prompt suggestions": "提示詞建議",
 	"Prompts": "提示詞",
-	"Pull \"{{searchValue}}\" from Ollama.com": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "從 Ollama.com 下載 \"{{searchValue}}\"",
 	"Pull a model from Ollama.com": "從 Ollama.com 下載模型",
 	"Pull Progress": "下載進度",
 	"Query Params": "查詢參數",
 	"RAG Template": "RAG 範例",
 	"Raw Format": "原始格式",
-	"Read Aloud": "",
+	"Read Aloud": "讀出",
 	"Record voice": "錄音",
 	"Redirecting you to OpenWebUI Community": "將你重新導向到 OpenWebUI 社群",
-	"Refused when it shouldn't have": "",
-	"Regenerate": "",
+	"Refused when it shouldn't have": "拒絕時不該拒絕",
+	"Regenerate": "重新生成",
 	"Release Notes": "發布說明",
-	"Remove": "",
-	"Remove Model": "",
-	"Rename": "",
+	"Remove": "移除",
+	"Remove Model": "移除模型",
+	"Rename": "重命名",
 	"Repeat Last N": "重複最後 N 次",
 	"Repeat Penalty": "重複懲罰",
 	"Request Mode": "請求模式",
-	"Reranking Model": "",
-	"Reranking model disabled": "",
-	"Reranking model set to \"{{reranking_model}}\"": "",
+	"Reranking Model": "重新排序模型",
+	"Reranking model disabled": "重新排序模型已禁用",
+	"Reranking model set to \"{{reranking_model}}\"": "重新排序模型設定為 \"{{reranking_model}}\"",
 	"Reset Vector Storage": "重置向量儲存空間",
 	"Response AutoCopy to Clipboard": "自動複製回答到剪貼簿",
 	"Role": "Role",
 	"Rosé Pine": "玫瑰松",
 	"Rosé Pine Dawn": "黎明玫瑰松",
-	"RTL": "",
+	"RTL": "RTL",
 	"Save": "儲存",
 	"Save & Create": "儲存並建立",
 	"Save & Update": "儲存並更新",
@@ -387,7 +387,7 @@
 	"Scan complete!": "掃描完成!",
 	"Scan for documents from {{path}}": "從 {{path}} 掃描文件",
 	"Search": "搜尋",
-	"Search a model": "",
+	"Search a model": "搜尋模型",
 	"Search Documents": "搜尋文件",
 	"Search Prompts": "搜尋提示詞",
 	"See readme.md for instructions": "查看 readme.md 獲取指南",
@@ -398,17 +398,17 @@
 	"Select an Ollama instance": "選擇 Ollama 實例",
 	"Select model": "選擇模型",
 	"Selected models do not support image inputs": "",
-	"Send": "",
+	"Send": "傳送",
 	"Send a Message": "傳送訊息",
 	"Send message": "傳送訊息",
 	"September": "九月",
 	"Server connection verified": "已驗證伺服器連線",
 	"Set as default": "設為預設",
 	"Set Default Model": "設定預設模型",
-	"Set embedding model (e.g. {{model}})": "",
+	"Set embedding model (e.g. {{model}})": "設定嵌入模型(例如:{{model}})",
 	"Set Image Size": "設定圖片大小",
 	"Set Model": "設定模型",
-	"Set reranking model (e.g. {{model}})": "",
+	"Set reranking model (e.g. {{model}})": "設定重新排序模型(例如:{{model}})",
 	"Set Steps": "設定步數",
 	"Set Title Auto-Generation Model": "設定自動生成標題用模型",
 	"Set Voice": "設定語音",
@@ -421,7 +421,7 @@
 	"Show": "顯示",
 	"Show Additional Params": "顯示額外參數",
 	"Show shortcuts": "顯示快速鍵",
-	"Showcased creativity": "",
+	"Showcased creativity": "展示創造性",
 	"sidebar": "側邊欄",
 	"Sign in": "登入",
 	"Sign Out": "登出",
@@ -434,7 +434,7 @@
 	"Stop Sequence": "停止序列",
 	"STT Settings": "語音轉文字設定",
 	"Submit": "提交",
-	"Subtitle (e.g. about the Roman Empire)": "",
+	"Subtitle (e.g. about the Roman Empire)": "標題(例如:關於羅馬帝國)",
 	"Success": "成功",
 	"Successfully updated.": "更新成功。",
 	"Suggested": "建議",
@@ -442,29 +442,29 @@
 	"System": "系統",
 	"System Prompt": "系統提示詞",
 	"Tags": "標籤",
-	"Tell us more:": "",
+	"Tell us more:": "告訴我們更多:",
 	"Temperature": "溫度",
 	"Template": "模板",
 	"Text Completion": "文本補全(Text Completion)",
 	"Text-to-Speech Engine": "文字轉語音引擎",
 	"Tfs Z": "Tfs Z",
-	"Thanks for your feedback!": "",
-	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
+	"Thanks for your feedback!": "感謝你的回饋!",
+	"The score should be a value between 0.0 (0%) and 1.0 (100%).": "分數應該介於 0.0(0%)和 1.0(100%)之間。",
 	"Theme": "主題",
 	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "這確保你寶貴的對話安全地儲存到你的後台資料庫。謝謝!",
 	"This setting does not sync across browsers or devices.": "此設定不會在瀏覽器或裝置間同步。",
-	"Thorough explanation": "",
+	"Thorough explanation": "詳細說明",
 	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:透過在每次替換後在聊天輸入框中按 Tab 鍵連續更新多個變數。",
 	"Title": "標題",
-	"Title (e.g. Tell me a fun fact)": "",
+	"Title (e.g. Tell me a fun fact)": "標題(例如:告訴我一個有趣的事)",
 	"Title Auto-Generation": "自動生成標題",
-	"Title cannot be an empty string.": "",
+	"Title cannot be an empty string.": "標題不能為空字串",
 	"Title Generation Prompt": "自動生成標題的提示詞",
 	"to": "到",
 	"To access the available model names for downloading,": "若想查看可供下載的模型名稱,",
 	"To access the GGUF models available for downloading,": "若想查看可供下載的 GGUF 模型名稱,",
 	"to chat input.": "到聊天輸入框來啟動此命令。",
-	"Today": "",
+	"Today": "今天",
 	"Toggle settings": "切換設定",
 	"Toggle sidebar": "切換側邊欄",
 	"Top K": "Top K",
@@ -474,7 +474,7 @@
 	"Type Hugging Face Resolve (Download) URL": "輸入 Hugging Face 解析後的(下載)URL",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
-	"Update and Copy Link": "",
+	"Update and Copy Link": "更新並複製連結",
 	"Update password": "更新密碼",
 	"Upload a GGUF model": "上傳一個 GGUF 模型",
 	"Upload files": "上傳文件",
@@ -482,36 +482,36 @@
 	"URL Mode": "URL 模式",
 	"Use '#' in the prompt input to load and select your documents.": "在輸入框中輸入 '#' 以載入並選擇你的文件。",
 	"Use Gravatar": "使用 Gravatar",
-	"Use Initials": "",
+	"Use Initials": "使用初始头像",
 	"user": "使用者",
 	"User Permissions": "使用者權限",
 	"Users": "使用者",
 	"Utilize": "使用",
 	"Valid time units:": "有效時間單位:",
 	"variable": "變數",
-	"variable to have them replaced with clipboard content.": "變數將替換為剪貼簿內容",
+	"variable to have them replaced with clipboard content.": "變數將替換為剪貼簿內容",
 	"Version": "版本",
-	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告:如果更新或更改你的嵌入模型,則需要重新導入所有文件",
 	"Web": "網頁",
-	"Web Loader Settings": "",
-	"Web Params": "",
-	"Webhook URL": "",
+	"Web Loader Settings": "Web 載入器設定",
+	"Web Params": "Web 參數",
+	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI 擴充套件",
 	"WebUI Settings": "WebUI 設定",
 	"WebUI will make requests to": "WebUI 將會存取",
 	"What’s New in": "全新內容",
-	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "當歷史被關閉時,這個瀏覽器上的新聊天將不會出現在任何裝置的歷史記錄中",
+	"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "當歷史被關閉時,這個瀏覽器上的新聊天將不會出現在任何裝置的歷史記錄中",
 	"Whisper (Local)": "Whisper(本機)",
-	"Workspace": "",
+	"Workspace": "工作區",
 	"Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "寫一個 50 字的摘要來概括 [主題或關鍵詞]。",
 	"Yes": "",
-	"Yesterday": "",
-	"You": "",
-	"You have no archived conversations.": "",
-	"You have shared this chat": "",
+	"Yesterday": "昨天",
+	"You": "",
+	"You have no archived conversations.": "你沒有任何已封存的對話",
+	"You have shared this chat": "你已分享此聊天",
 	"You're a helpful assistant.": "你是一位善於協助他人的助手。",
 	"You're now logged in.": "已登入。",
-	"Youtube": "",
-	"Youtube Loader Settings": ""
+	"Youtube": "Youtube",
+	"Youtube Loader Settings": "Youtube 載入器設定"
 }

+ 1 - 1
src/lib/workers/pyodide.worker.ts

@@ -42,7 +42,7 @@ async function loadPyodideAndPackages(packages: string[] = []) {
 
 	const micropip = self.pyodide.pyimport('micropip');
 
-	await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
+	// await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
 	await micropip.install(packages);
 }
 

+ 2 - 1020
src/routes/(app)/+page.svelte

@@ -1,1023 +1,5 @@
 <script lang="ts">
-	import { v4 as uuidv4 } from 'uuid';
-	import { toast } from 'svelte-sonner';
-
-	import { onMount, tick, getContext } from 'svelte';
-	import { goto } from '$app/navigation';
-	import { page } from '$app/stores';
-
-	import {
-		models,
-		modelfiles,
-		user,
-		settings,
-		chats,
-		chatId,
-		config,
-		WEBUI_NAME,
-		tags as _tags,
-		showSidebar,
-		type Model
-	} from '$lib/stores';
-	import { copyToClipboard, splitStream } from '$lib/utils';
-
-	import { generateChatCompletion, cancelOllamaRequest } from '$lib/apis/ollama';
-	import {
-		addTagById,
-		createNewChat,
-		deleteTagById,
-		getAllChatTags,
-		getChatList,
-		getTagsById,
-		updateChatById
-	} from '$lib/apis/chats';
-	import { queryCollection, queryDoc } from '$lib/apis/rag';
-	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
-
-	import MessageInput from '$lib/components/chat/MessageInput.svelte';
-	import Messages from '$lib/components/chat/Messages.svelte';
-	import ModelSelector from '$lib/components/chat/ModelSelector.svelte';
-	import Navbar from '$lib/components/layout/Navbar.svelte';
-	import { RAGTemplate } from '$lib/utils/rag';
-	import { LITELLM_API_BASE_URL, OLLAMA_API_BASE_URL, OPENAI_API_BASE_URL } from '$lib/constants';
-	import { WEBUI_BASE_URL } from '$lib/constants';
-	import { createOpenAITextStream } from '$lib/apis/streaming';
-	import { queryMemory } from '$lib/apis/memories';
-
-	const i18n = getContext('i18n');
-
-	let stopResponseFlag = false;
-	let autoScroll = true;
-	let processing = '';
-	let messagesContainerElement: HTMLDivElement;
-	let currentRequestId = null;
-
-	let showModelSelector = true;
-
-	let selectedModels = [''];
-	let atSelectedModel: Model | undefined;
-
-	let selectedModelfile = null;
-	$: selectedModelfile =
-		selectedModels.length === 1 &&
-		$modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0]).length > 0
-			? $modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0])[0]
-			: null;
-
-	let selectedModelfiles = {};
-	$: selectedModelfiles = selectedModels.reduce((a, tagName, i, arr) => {
-		const modelfile =
-			$modelfiles.filter((modelfile) => modelfile.tagName === tagName)?.at(0) ?? undefined;
-
-		return {
-			...a,
-			...(modelfile && { [tagName]: modelfile })
-		};
-	}, {});
-
-	let chat = null;
-	let tags = [];
-
-	let title = '';
-	let prompt = '';
-	let files = [];
-	let messages = [];
-	let history = {
-		messages: {},
-		currentId: null
-	};
-
-	$: if (history.currentId !== null) {
-		let _messages = [];
-
-		let currentMessage = history.messages[history.currentId];
-		while (currentMessage !== null) {
-			_messages.unshift({ ...currentMessage });
-			currentMessage =
-				currentMessage.parentId !== null ? history.messages[currentMessage.parentId] : null;
-		}
-		messages = _messages;
-	} else {
-		messages = [];
-	}
-
-	onMount(async () => {
-		await initNewChat();
-	});
-
-	//////////////////////////
-	// Web functions
-	//////////////////////////
-
-	const initNewChat = async () => {
-		if (currentRequestId !== null) {
-			await cancelOllamaRequest(localStorage.token, currentRequestId);
-			currentRequestId = null;
-		}
-		window.history.replaceState(history.state, '', `/`);
-		await chatId.set('');
-
-		autoScroll = true;
-
-		title = '';
-		messages = [];
-		history = {
-			messages: {},
-			currentId: null
-		};
-
-		if ($page.url.searchParams.get('models')) {
-			selectedModels = $page.url.searchParams.get('models')?.split(',');
-		} else if ($settings?.models) {
-			selectedModels = $settings?.models;
-		} else if ($config?.default_models) {
-			selectedModels = $config?.default_models.split(',');
-		} else {
-			selectedModels = [''];
-		}
-
-		if ($page.url.searchParams.get('q')) {
-			prompt = $page.url.searchParams.get('q') ?? '';
-			if (prompt) {
-				await tick();
-				submitPrompt(prompt);
-			}
-		}
-
-		selectedModels = selectedModels.map((modelId) =>
-			$models.map((m) => m.id).includes(modelId) ? modelId : ''
-		);
-
-		let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
-		settings.set({
-			..._settings
-		});
-
-		const chatInput = document.getElementById('chat-textarea');
-		setTimeout(() => chatInput?.focus(), 0);
-	};
-
-	const scrollToBottom = async () => {
-		await tick();
-		if (messagesContainerElement) {
-			messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
-		}
-	};
-
-	//////////////////////////
-	// Ollama functions
-	//////////////////////////
-
-	const submitPrompt = async (userPrompt, _user = null) => {
-		console.log('submitPrompt', $chatId);
-
-		selectedModels = selectedModels.map((modelId) =>
-			$models.map((m) => m.id).includes(modelId) ? modelId : ''
-		);
-
-		if (selectedModels.includes('')) {
-			toast.error($i18n.t('Model not selected'));
-		} else if (messages.length != 0 && messages.at(-1).done != true) {
-			// Response not done
-			console.log('wait');
-		} else if (
-			files.length > 0 &&
-			files.filter((file) => file.upload_status === false).length > 0
-		) {
-			// Upload not done
-			toast.error(
-				$i18n.t(
-					`Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.`
-				)
-			);
-		} else {
-			// Reset chat message textarea height
-			document.getElementById('chat-textarea').style.height = '';
-
-			// Create user message
-			let userMessageId = uuidv4();
-			let userMessage = {
-				id: userMessageId,
-				parentId: messages.length !== 0 ? messages.at(-1).id : null,
-				childrenIds: [],
-				role: 'user',
-				user: _user ?? undefined,
-				content: userPrompt,
-				files: files.length > 0 ? files : undefined,
-				models: selectedModels.filter((m, mIdx) => selectedModels.indexOf(m) === mIdx),
-				timestamp: Math.floor(Date.now() / 1000) // Unix epoch
-			};
-
-			// Add message to history and Set currentId to messageId
-			history.messages[userMessageId] = userMessage;
-			history.currentId = userMessageId;
-
-			// Append messageId to childrenIds of parent message
-			if (messages.length !== 0) {
-				history.messages[messages.at(-1).id].childrenIds.push(userMessageId);
-			}
-
-			// Wait until history/message have been updated
-			await tick();
-
-			// Create new chat if only one message in messages
-			if (messages.length == 1) {
-				if ($settings.saveChatHistory ?? true) {
-					chat = await createNewChat(localStorage.token, {
-						id: $chatId,
-						title: $i18n.t('New Chat'),
-						models: selectedModels,
-						system: $settings.system ?? undefined,
-						options: {
-							...($settings.options ?? {})
-						},
-						messages: messages,
-						history: history,
-						tags: [],
-						timestamp: Date.now()
-					});
-					await chats.set(await getChatList(localStorage.token));
-					await chatId.set(chat.id);
-				} else {
-					await chatId.set('local');
-				}
-				await tick();
-			}
-
-			// Reset chat input textarea
-			prompt = '';
-			files = [];
-
-			// Send prompt
-			await sendPrompt(userPrompt, userMessageId);
-		}
-	};
-
-	const sendPrompt = async (prompt, parentId, modelId = null) => {
-		const _chatId = JSON.parse(JSON.stringify($chatId));
-
-		let userContext = null;
-
-		if ($settings?.memory ?? false) {
-			const res = await queryMemory(localStorage.token, prompt).catch((error) => {
-				toast.error(error);
-				return null;
-			});
-
-			if (res) {
-				if (res.documents[0].length > 0) {
-					userContext = res.documents.reduce((acc, doc, index) => {
-						const createdAtTimestamp = res.metadatas[index][0].created_at;
-						const createdAtDate = new Date(createdAtTimestamp * 1000).toISOString().split('T')[0];
-						acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
-						return acc;
-					}, []);
-				}
-
-				console.log(userContext);
-			}
-		}
-
-		await Promise.all(
-			(modelId
-				? [modelId]
-				: atSelectedModel !== undefined
-				? [atSelectedModel.id]
-				: selectedModels
-			).map(async (modelId) => {
-				console.log('modelId', modelId);
-				const model = $models.filter((m) => m.id === modelId).at(0);
-
-				if (model) {
-					// If there are image files, check if model is vision capable
-					const hasImages = messages.some((message) =>
-						message.files?.some((file) => file.type === 'image')
-					);
-					if (hasImages && !(model.custom_info?.params.vision_capable ?? true)) {
-						toast.error(
-							$i18n.t('Model {{modelName}} is not vision capable', {
-								modelName: model.custom_info?.name ?? model.name ?? model.id
-							})
-						);
-						// Create response message
-						let responseMessageId = uuidv4();
-						let responseMessage = {
-							parentId: parentId,
-							id: responseMessageId,
-							childrenIds: [],
-							role: 'assistant',
-							content: '',
-							model: model.id,
-							userContext: userContext,
-							timestamp: Math.floor(Date.now() / 1000) // Unix epoch
-						};
-
-						// Add message to history and Set currentId to messageId
-						history.messages[responseMessageId] = responseMessage;
-						history.currentId = responseMessageId;
-
-						// Append messageId to childrenIds of parent message
-						if (parentId !== null) {
-							history.messages[parentId].childrenIds = [
-								...history.messages[parentId].childrenIds,
-								responseMessageId
-							];
-						}
-
-						if (model?.external) {
-							await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
-						} else if (model) {
-							await sendPromptOllama(model, prompt, responseMessageId, _chatId);
-						}
-					} else {
-						toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-					}
-
-					// Create response message
-					let responseMessageId = uuidv4();
-					let responseMessage = {
-						parentId: parentId,
-						id: responseMessageId,
-						childrenIds: [],
-						role: 'assistant',
-						content: '',
-						model: model.id,
-						modelName: model.custom_info?.name ?? model.name ?? model.id,
-						timestamp: Math.floor(Date.now() / 1000) // Unix epoch
-					};
-
-					// Add message to history and Set currentId to messageId
-					history.messages[responseMessageId] = responseMessage;
-					history.currentId = responseMessageId;
-
-					// Append messageId to childrenIds of parent message
-					if (parentId !== null) {
-						history.messages[parentId].childrenIds = [
-							...history.messages[parentId].childrenIds,
-							responseMessageId
-						];
-					}
-
-					if (model?.external) {
-						await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
-					} else if (model) {
-						await sendPromptOllama(model, prompt, responseMessageId, _chatId);
-					}
-				} else {
-					toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-				}
-			})
-		);
-
-		await chats.set(await getChatList(localStorage.token));
-	};
-
-	const sendPromptOllama = async (model, userPrompt, responseMessageId, _chatId) => {
-		const modelName = model.custom_info?.name ?? model.name ?? model.id;
-		model = model.id;
-		const responseMessage = history.messages[responseMessageId];
-
-		// Wait until history/message have been updated
-		await tick();
-
-		// Scroll down
-		scrollToBottom();
-
-		const messagesBody = [
-			$settings.system || (responseMessage?.userContext ?? null)
-				? {
-						role: 'system',
-						content:
-							$settings.system + (responseMessage?.userContext ?? null)
-								? `\n\nUser Context:\n${responseMessage.userContext.join('\n')}`
-								: ''
-				  }
-				: undefined,
-			...messages
-		]
-			.filter((message) => message)
-			.map((message, idx, arr) => {
-				// Prepare the base message object
-				const baseMessage = {
-					role: message.role,
-					content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content
-				};
-
-				// Extract and format image URLs if any exist
-				const imageUrls = message.files
-					?.filter((file) => file.type === 'image')
-					.map((file) => file.url.slice(file.url.indexOf(',') + 1));
-
-				// Add images array only if it contains elements
-				if (imageUrls && imageUrls.length > 0 && message.role === 'user') {
-					baseMessage.images = imageUrls;
-				}
-
-				return baseMessage;
-			});
-
-		let lastImageIndex = -1;
-
-		// Find the index of the last object with images
-		messagesBody.forEach((item, index) => {
-			if (item.images) {
-				lastImageIndex = index;
-			}
-		});
-
-		// Remove images from all but the last one
-		messagesBody.forEach((item, index) => {
-			if (index !== lastImageIndex) {
-				delete item.images;
-			}
-		});
-
-		const docs = messages
-			.filter((message) => message?.files ?? null)
-			.map((message) =>
-				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
-			)
-			.flat(1);
-
-		const [res, controller] = await generateChatCompletion(localStorage.token, {
-			model: model,
-			messages: messagesBody,
-			options: {
-				...($settings.options ?? {}),
-				stop:
-					$settings?.options?.stop ?? undefined
-						? $settings.options.stop.map((str) =>
-								decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
-						  )
-						: undefined
-			},
-			format: $settings.requestFormat ?? undefined,
-			keep_alive: $settings.keepAlive ?? undefined,
-			docs: docs.length > 0 ? docs : undefined,
-			citations: docs.length > 0
-		});
-
-		if (res && res.ok) {
-			console.log('controller', controller);
-
-			const reader = res.body
-				.pipeThrough(new TextDecoderStream())
-				.pipeThrough(splitStream('\n'))
-				.getReader();
-
-			while (true) {
-				const { value, done } = await reader.read();
-				if (done || stopResponseFlag || _chatId !== $chatId) {
-					responseMessage.done = true;
-					messages = messages;
-
-					if (stopResponseFlag) {
-						controller.abort('User: Stop Response');
-						await cancelOllamaRequest(localStorage.token, currentRequestId);
-					}
-
-					currentRequestId = null;
-
-					break;
-				}
-
-				try {
-					let lines = value.split('\n');
-
-					for (const line of lines) {
-						if (line !== '') {
-							console.log(line);
-							let data = JSON.parse(line);
-
-							if ('citations' in data) {
-								responseMessage.citations = data.citations;
-								continue;
-							}
-
-							if ('detail' in data) {
-								throw data;
-							}
-
-							if ('id' in data) {
-								console.log(data);
-								currentRequestId = data.id;
-							} else {
-								if (data.done == false) {
-									if (responseMessage.content == '' && data.message.content == '\n') {
-										continue;
-									} else {
-										responseMessage.content += data.message.content;
-										messages = messages;
-									}
-								} else {
-									responseMessage.done = true;
-
-									if (responseMessage.content == '') {
-										responseMessage.error = true;
-										responseMessage.content =
-											'Oops! No text generated from Ollama, Please try again.';
-									}
-
-									responseMessage.context = data.context ?? null;
-									responseMessage.info = {
-										total_duration: data.total_duration,
-										load_duration: data.load_duration,
-										sample_count: data.sample_count,
-										sample_duration: data.sample_duration,
-										prompt_eval_count: data.prompt_eval_count,
-										prompt_eval_duration: data.prompt_eval_duration,
-										eval_count: data.eval_count,
-										eval_duration: data.eval_duration
-									};
-									messages = messages;
-
-									if ($settings.notificationEnabled && !document.hasFocus()) {
-										const notification = new Notification(
-											selectedModelfile
-												? `${
-														selectedModelfile.title.charAt(0).toUpperCase() +
-														selectedModelfile.title.slice(1)
-												  }`
-												: `${model}`,
-											{
-												body: responseMessage.content,
-												icon: selectedModelfile?.imageUrl ?? `${WEBUI_BASE_URL}/static/favicon.png`
-											}
-										);
-									}
-
-									if ($settings.responseAutoCopy) {
-										copyToClipboard(responseMessage.content);
-									}
-
-									if ($settings.responseAutoPlayback) {
-										await tick();
-										document.getElementById(`speak-button-${responseMessage.id}`)?.click();
-									}
-								}
-							}
-						}
-					}
-				} catch (error) {
-					console.log(error);
-					if ('detail' in error) {
-						toast.error(error.detail);
-					}
-					break;
-				}
-
-				if (autoScroll) {
-					scrollToBottom();
-				}
-			}
-
-			if ($chatId == _chatId) {
-				if ($settings.saveChatHistory ?? true) {
-					chat = await updateChatById(localStorage.token, _chatId, {
-						messages: messages,
-						history: history
-					});
-					await chats.set(await getChatList(localStorage.token));
-				}
-			}
-		} else {
-			if (res !== null) {
-				const error = await res.json();
-				console.log(error);
-				if ('detail' in error) {
-					toast.error(error.detail);
-					responseMessage.content = error.detail;
-				} else {
-					toast.error(error.error);
-					responseMessage.content = error.error;
-				}
-			} else {
-				toast.error(
-					$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, { provider: 'Ollama' })
-				);
-				responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-					provider: 'Ollama'
-				});
-			}
-
-			responseMessage.error = true;
-			responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-				provider: 'Ollama'
-			});
-			responseMessage.done = true;
-			messages = messages;
-		}
-
-		stopResponseFlag = false;
-		await tick();
-
-		if (autoScroll) {
-			scrollToBottom();
-		}
-
-		if (messages.length == 2 && messages.at(1).content !== '') {
-			window.history.replaceState(history.state, '', `/c/${_chatId}`);
-			const _title = await generateChatTitle(userPrompt);
-			await setChatTitle(_chatId, _title);
-		}
-	};
-
-	const sendPromptOpenAI = async (model, userPrompt, responseMessageId, _chatId) => {
-		const responseMessage = history.messages[responseMessageId];
-
-		const docs = messages
-			.filter((message) => message?.files ?? null)
-			.map((message) =>
-				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
-			)
-			.flat(1);
-
-		console.log(docs);
-
-		scrollToBottom();
-
-		try {
-			const [res, controller] = await generateOpenAIChatCompletion(
-				localStorage.token,
-				{
-					model: model.id,
-					stream: true,
-					messages: [
-						$settings.system || (responseMessage?.userContext ?? null)
-							? {
-									role: 'system',
-									content:
-										$settings.system + (responseMessage?.userContext ?? null)
-											? `\n\nUser Context:\n${responseMessage.userContext.join('\n')}`
-											: ''
-							  }
-							: undefined,
-						...messages
-					]
-						.filter((message) => message)
-						.map((message, idx, arr) => ({
-							role: message.role,
-							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
-							message.role === 'user'
-								? {
-										content: [
-											{
-												type: 'text',
-												text:
-													arr.length - 1 !== idx
-														? message.content
-														: message?.raContent ?? message.content
-											},
-											...message.files
-												.filter((file) => file.type === 'image')
-												.map((file) => ({
-													type: 'image_url',
-													image_url: {
-														url: file.url
-													}
-												}))
-										]
-								  }
-								: {
-										content:
-											arr.length - 1 !== idx
-												? message.content
-												: message?.raContent ?? message.content
-								  })
-						})),
-					seed: $settings?.options?.seed ?? undefined,
-					stop:
-						$settings?.options?.stop ?? undefined
-							? $settings.options.stop.map((str) =>
-									decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
-							  )
-							: undefined,
-					temperature: $settings?.options?.temperature ?? undefined,
-					top_p: $settings?.options?.top_p ?? undefined,
-					num_ctx: $settings?.options?.num_ctx ?? undefined,
-					frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
-					max_tokens: $settings?.options?.num_predict ?? undefined,
-					docs: docs.length > 0 ? docs : undefined,
-					citations: docs.length > 0
-				},
-				model?.source?.toLowerCase() === 'litellm'
-					? `${LITELLM_API_BASE_URL}/v1`
-					: `${OPENAI_API_BASE_URL}`
-			);
-
-			// Wait until history/message have been updated
-			await tick();
-
-			scrollToBottom();
-
-			if (res && res.ok && res.body) {
-				const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
-
-				for await (const update of textStream) {
-					const { value, done, citations, error } = update;
-					if (error) {
-						await handleOpenAIError(error, null, model, responseMessage);
-						break;
-					}
-					if (done || stopResponseFlag || _chatId !== $chatId) {
-						responseMessage.done = true;
-						messages = messages;
-
-						if (stopResponseFlag) {
-							controller.abort('User: Stop Response');
-						}
-
-						break;
-					}
-
-					if (citations) {
-						responseMessage.citations = citations;
-						continue;
-					}
-
-					if (responseMessage.content == '' && value == '\n') {
-						continue;
-					} else {
-						responseMessage.content += value;
-						messages = messages;
-					}
-
-					if ($settings.notificationEnabled && !document.hasFocus()) {
-						const notification = new Notification(`OpenAI ${model}`, {
-							body: responseMessage.content,
-							icon: `${WEBUI_BASE_URL}/static/favicon.png`
-						});
-					}
-
-					if ($settings.responseAutoCopy) {
-						copyToClipboard(responseMessage.content);
-					}
-
-					if ($settings.responseAutoPlayback) {
-						await tick();
-						document.getElementById(`speak-button-${responseMessage.id}`)?.click();
-					}
-
-					if (autoScroll) {
-						scrollToBottom();
-					}
-				}
-
-				if ($chatId == _chatId) {
-					if ($settings.saveChatHistory ?? true) {
-						chat = await updateChatById(localStorage.token, _chatId, {
-							messages: messages,
-							history: history
-						});
-						await chats.set(await getChatList(localStorage.token));
-					}
-				}
-			} else {
-				await handleOpenAIError(null, res, model, responseMessage);
-			}
-		} catch (error) {
-			await handleOpenAIError(error, null, model, responseMessage);
-		}
-		messages = messages;
-
-		stopResponseFlag = false;
-		await tick();
-
-		if (autoScroll) {
-			scrollToBottom();
-		}
-
-		if (messages.length == 2) {
-			window.history.replaceState(history.state, '', `/c/${_chatId}`);
-
-			const _title = await generateChatTitle(userPrompt);
-			await setChatTitle(_chatId, _title);
-		}
-	};
-
-	const handleOpenAIError = async (error, res: Response | null, model, responseMessage) => {
-		let errorMessage = '';
-		let innerError;
-
-		if (error) {
-			innerError = error;
-		} else if (res !== null) {
-			innerError = await res.json();
-		}
-		console.error(innerError);
-		if ('detail' in innerError) {
-			toast.error(innerError.detail);
-			errorMessage = innerError.detail;
-		} else if ('error' in innerError) {
-			if ('message' in innerError.error) {
-				toast.error(innerError.error.message);
-				errorMessage = innerError.error.message;
-			} else {
-				toast.error(innerError.error);
-				errorMessage = innerError.error;
-			}
-		} else if ('message' in innerError) {
-			toast.error(innerError.message);
-			errorMessage = innerError.message;
-		}
-
-		responseMessage.error = true;
-		responseMessage.content =
-			$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-				provider: model.custom_info?.name ?? model.name ?? model.id
-			}) +
-			'\n' +
-			errorMessage;
-		responseMessage.done = true;
-
-		messages = messages;
-	};
-
-	const stopResponse = () => {
-		stopResponseFlag = true;
-		console.log('stopResponse');
-	};
-
-	const regenerateResponse = async (message) => {
-		console.log('regenerateResponse');
-
-		if (messages.length != 0) {
-			let userMessage = history.messages[message.parentId];
-			let userPrompt = userMessage.content;
-
-			if ((userMessage?.models ?? [...selectedModels]).length == 1) {
-				await sendPrompt(userPrompt, userMessage.id);
-			} else {
-				await sendPrompt(userPrompt, userMessage.id, message.model);
-			}
-		}
-	};
-
-	const continueGeneration = async () => {
-		console.log('continueGeneration');
-		const _chatId = JSON.parse(JSON.stringify($chatId));
-
-		if (messages.length != 0 && messages.at(-1).done == true) {
-			const responseMessage = history.messages[history.currentId];
-			responseMessage.done = false;
-			await tick();
-
-			const model = $models.filter((m) => m.id === responseMessage.model).at(0);
-
-			if (model) {
-				if (model?.external) {
-					await sendPromptOpenAI(
-						model,
-						history.messages[responseMessage.parentId].content,
-						responseMessage.id,
-						_chatId
-					);
-				} else
-					await sendPromptOllama(
-						model,
-						history.messages[responseMessage.parentId].content,
-						responseMessage.id,
-						_chatId
-					);
-			}
-		} else {
-			toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-		}
-	};
-
-	const generateChatTitle = async (userPrompt) => {
-		if ($settings?.title?.auto ?? true) {
-			const model = $models.find((model) => model.id === selectedModels[0]);
-
-			const titleModelId =
-				model?.external ?? false
-					? $settings?.title?.modelExternal ?? selectedModels[0]
-					: $settings?.title?.model ?? selectedModels[0];
-			const titleModel = $models.find((model) => model.id === titleModelId);
-
-			console.log(titleModel);
-			const title = await generateTitle(
-				localStorage.token,
-				$settings?.title?.prompt ??
-					$i18n.t(
-						"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':"
-					) + ' {{prompt}}',
-				titleModelId,
-				userPrompt,
-				titleModel?.external ?? false
-					? titleModel?.source?.toLowerCase() === 'litellm'
-						? `${LITELLM_API_BASE_URL}/v1`
-						: `${OPENAI_API_BASE_URL}`
-					: `${OLLAMA_API_BASE_URL}/v1`
-			);
-
-			return title;
-		} else {
-			return `${userPrompt}`;
-		}
-	};
-
-	const setChatTitle = async (_chatId, _title) => {
-		if (_chatId === $chatId) {
-			title = _title;
-		}
-
-		if ($settings.saveChatHistory ?? true) {
-			chat = await updateChatById(localStorage.token, _chatId, { title: _title });
-			await chats.set(await getChatList(localStorage.token));
-		}
-	};
-
-	const getTags = async () => {
-		return await getTagsById(localStorage.token, $chatId).catch(async (error) => {
-			return [];
-		});
-	};
-
-	const addTag = async (tagName) => {
-		const res = await addTagById(localStorage.token, $chatId, tagName);
-		tags = await getTags();
-
-		chat = await updateChatById(localStorage.token, $chatId, {
-			tags: tags
-		});
-
-		_tags.set(await getAllChatTags(localStorage.token));
-	};
-
-	const deleteTag = async (tagName) => {
-		const res = await deleteTagById(localStorage.token, $chatId, tagName);
-		tags = await getTags();
-
-		chat = await updateChatById(localStorage.token, $chatId, {
-			tags: tags
-		});
-
-		_tags.set(await getAllChatTags(localStorage.token));
-	};
+	import Chat from '$lib/components/chat/Chat.svelte';
 </script>
 
-<svelte:head>
-	<title>
-		{title
-			? `${title.length > 30 ? `${title.slice(0, 30)}...` : title} | ${$WEBUI_NAME}`
-			: `${$WEBUI_NAME}`}
-	</title>
-</svelte:head>
-
-<div
-	class="min-h-screen max-h-screen {$showSidebar
-		? 'md:max-w-[calc(100%-260px)]'
-		: ''} w-full max-w-full flex flex-col"
->
-	<Navbar
-		{title}
-		bind:selectedModels
-		bind:showModelSelector
-		shareEnabled={messages.length > 0}
-		{chat}
-		{initNewChat}
-	/>
-	<div class="flex flex-col flex-auto">
-		<div
-			class=" pb-2.5 flex flex-col justify-between w-full flex-auto overflow-auto h-0 max-w-full"
-			id="messages-container"
-			bind:this={messagesContainerElement}
-			on:scroll={(e) => {
-				autoScroll =
-					messagesContainerElement.scrollHeight - messagesContainerElement.scrollTop <=
-					messagesContainerElement.clientHeight + 5;
-			}}
-		>
-			<div class=" h-full w-full flex flex-col pt-2 pb-4">
-				<Messages
-					chatId={$chatId}
-					{selectedModels}
-					{selectedModelfiles}
-					{processing}
-					bind:history
-					bind:messages
-					bind:autoScroll
-					bind:prompt
-					bottomPadding={files.length > 0}
-					suggestionPrompts={selectedModelfile?.suggestionPrompts ??
-						$config.default_prompt_suggestions}
-					{sendPrompt}
-					{continueGeneration}
-					{regenerateResponse}
-				/>
-			</div>
-		</div>
-	</div>
-</div>
-
-<MessageInput
-	bind:files
-	bind:prompt
-	bind:autoScroll
-	bind:selectedModel={atSelectedModel}
-	{selectedModels}
-	{messages}
-	{submitPrompt}
-	{stopResponse}
-/>
+<Chat />

+ 2 - 1037
src/routes/(app)/c/[id]/+page.svelte

@@ -1,1041 +1,6 @@
 <script lang="ts">
-	import { v4 as uuidv4 } from 'uuid';
-	import { toast } from 'svelte-sonner';
-
-	import { onMount, tick, getContext } from 'svelte';
-	import { goto } from '$app/navigation';
+	import Chat from '$lib/components/chat/Chat.svelte';
 	import { page } from '$app/stores';
-	import {
-		models,
-		modelfiles,
-		user,
-		settings,
-		chats,
-		chatId,
-		config,
-		WEBUI_NAME,
-		tags as _tags,
-		showSidebar,
-		type Model
-	} from '$lib/stores';
-	import { copyToClipboard, splitStream, convertMessagesToHistory } from '$lib/utils';
-
-	import { generateChatCompletion, cancelOllamaRequest } from '$lib/apis/ollama';
-	import {
-		addTagById,
-		createNewChat,
-		deleteTagById,
-		getAllChatTags,
-		getChatById,
-		getChatList,
-		getTagsById,
-		updateChatById
-	} from '$lib/apis/chats';
-	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
-
-	import MessageInput from '$lib/components/chat/MessageInput.svelte';
-	import Messages from '$lib/components/chat/Messages.svelte';
-	import Navbar from '$lib/components/layout/Navbar.svelte';
-
-	import {
-		LITELLM_API_BASE_URL,
-		OPENAI_API_BASE_URL,
-		OLLAMA_API_BASE_URL,
-		WEBUI_BASE_URL
-	} from '$lib/constants';
-	import { createOpenAITextStream } from '$lib/apis/streaming';
-	import { queryMemory } from '$lib/apis/memories';
-
-	const i18n = getContext('i18n');
-
-	let loaded = false;
-
-	let stopResponseFlag = false;
-	let autoScroll = true;
-	let processing = '';
-	let messagesContainerElement: HTMLDivElement;
-	let currentRequestId = null;
-
-	// let chatId = $page.params.id;
-	let showModelSelector = true;
-	let selectedModels = [''];
-	let atSelectedModel: Model | undefined;
-
-	let selectedModelfile = null;
-
-	$: selectedModelfile =
-		selectedModels.length === 1 &&
-		$modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0]).length > 0
-			? $modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0])[0]
-			: null;
-
-	let selectedModelfiles = {};
-	$: selectedModelfiles = selectedModels.reduce((a, tagName, i, arr) => {
-		const modelfile =
-			$modelfiles.filter((modelfile) => modelfile.tagName === tagName)?.at(0) ?? undefined;
-
-		return {
-			...a,
-			...(modelfile && { [tagName]: modelfile })
-		};
-	}, {});
-
-	let chat = null;
-	let tags = [];
-
-	let title = '';
-	let prompt = '';
-	let files = [];
-
-	let messages = [];
-	let history = {
-		messages: {},
-		currentId: null
-	};
-
-	$: if (history.currentId !== null) {
-		let _messages = [];
-
-		let currentMessage = history.messages[history.currentId];
-		while (currentMessage !== null) {
-			_messages.unshift({ ...currentMessage });
-			currentMessage =
-				currentMessage.parentId !== null ? history.messages[currentMessage.parentId] : null;
-		}
-		messages = _messages;
-	} else {
-		messages = [];
-	}
-
-	$: if ($page.params.id) {
-		(async () => {
-			if (await loadChat()) {
-				await tick();
-				loaded = true;
-
-				window.setTimeout(() => scrollToBottom(), 0);
-				const chatInput = document.getElementById('chat-textarea');
-				chatInput?.focus();
-			} else {
-				await goto('/');
-			}
-		})();
-	}
-
-	//////////////////////////
-	// Web functions
-	//////////////////////////
-
-	const loadChat = async () => {
-		await chatId.set($page.params.id);
-		chat = await getChatById(localStorage.token, $chatId).catch(async (error) => {
-			await goto('/');
-			return null;
-		});
-
-		if (chat) {
-			tags = await getTags();
-			const chatContent = chat.chat;
-
-			if (chatContent) {
-				console.log(chatContent);
-
-				selectedModels =
-					(chatContent?.models ?? undefined) !== undefined
-						? chatContent.models
-						: [chatContent.models ?? ''];
-				history =
-					(chatContent?.history ?? undefined) !== undefined
-						? chatContent.history
-						: convertMessagesToHistory(chatContent.messages);
-				title = chatContent.title;
-
-				let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
-				await settings.set({
-					..._settings,
-					system: chatContent.system ?? _settings.system,
-					options: chatContent.options ?? _settings.options
-				});
-				autoScroll = true;
-				await tick();
-
-				if (messages.length > 0) {
-					history.messages[messages.at(-1).id].done = true;
-				}
-				await tick();
-
-				return true;
-			} else {
-				return null;
-			}
-		}
-	};
-
-	const scrollToBottom = async () => {
-		await tick();
-		if (messagesContainerElement) {
-			messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
-		}
-	};
-
-	//////////////////////////
-	// Ollama functions
-	//////////////////////////
-
-	const submitPrompt = async (userPrompt, _user = null) => {
-		console.log('submitPrompt', $chatId);
-
-		if (selectedModels.includes('')) {
-			toast.error($i18n.t('Model not selected'));
-		} else if (messages.length != 0 && messages.at(-1).done != true) {
-			// Response not done
-			console.log('wait');
-		} else if (
-			files.length > 0 &&
-			files.filter((file) => file.upload_status === false).length > 0
-		) {
-			// Upload not done
-			toast.error(
-				`Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.`
-			);
-		} else {
-			// Reset chat message textarea height
-			document.getElementById('chat-textarea').style.height = '';
-
-			// Create user message
-			let userMessageId = uuidv4();
-			let userMessage = {
-				id: userMessageId,
-				parentId: messages.length !== 0 ? messages.at(-1).id : null,
-				childrenIds: [],
-				role: 'user',
-				user: _user ?? undefined,
-				content: userPrompt,
-				files: files.length > 0 ? files : undefined,
-				timestamp: Math.floor(Date.now() / 1000), // Unix epoch
-				models: selectedModels
-			};
-
-			// Add message to history and Set currentId to messageId
-			history.messages[userMessageId] = userMessage;
-			history.currentId = userMessageId;
-
-			// Append messageId to childrenIds of parent message
-			if (messages.length !== 0) {
-				history.messages[messages.at(-1).id].childrenIds.push(userMessageId);
-			}
-
-			// Wait until history/message have been updated
-			await tick();
-
-			// Create new chat if only one message in messages
-			if (messages.length == 1) {
-				if ($settings.saveChatHistory ?? true) {
-					chat = await createNewChat(localStorage.token, {
-						id: $chatId,
-						title: $i18n.t('New Chat'),
-						models: selectedModels,
-						system: $settings.system ?? undefined,
-						options: {
-							...($settings.options ?? {})
-						},
-						messages: messages,
-						history: history,
-						timestamp: Date.now()
-					});
-					await chats.set(await getChatList(localStorage.token));
-					await chatId.set(chat.id);
-				} else {
-					await chatId.set('local');
-				}
-				await tick();
-			}
-			// Reset chat input textarea
-			prompt = '';
-			files = [];
-
-			// Send prompt
-			await sendPrompt(userPrompt, userMessageId);
-		}
-	};
-
-	const sendPrompt = async (prompt, parentId, modelId = null) => {
-		const _chatId = JSON.parse(JSON.stringify($chatId));
-
-		let userContext = null;
-
-		if ($settings?.memory ?? false) {
-			const res = await queryMemory(localStorage.token, prompt).catch((error) => {
-				toast.error(error);
-				return null;
-			});
-
-			if (res) {
-				if (res.documents[0].length > 0) {
-					userContext = res.documents.reduce((acc, doc, index) => {
-						const createdAtTimestamp = res.metadatas[index][0].created_at;
-						const createdAtDate = new Date(createdAtTimestamp * 1000).toISOString().split('T')[0];
-						acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
-						return acc;
-					}, []);
-				}
-
-				console.log(userContext);
-			}
-		}
-
-		await Promise.all(
-			(modelId
-				? [modelId]
-				: atSelectedModel !== undefined
-				? [atSelectedModel.id]
-				: selectedModels
-			).map(async (modelId) => {
-				console.log('modelId', modelId);
-				const model = $models.filter((m) => m.id === modelId).at(0);
-
-				if (model) {
-					// If there are image files, check if model is vision capable
-					const hasImages = messages.some((message) =>
-						message.files?.some((file) => file.type === 'image')
-					);
-					if (hasImages && !(model.custom_info?.params.vision_capable ?? true)) {
-						toast.error(
-							$i18n.t('Model {{modelName}} is not vision capable', {
-								modelName: model.custom_info?.name ?? model.name ?? model.id
-							})
-						);
-						// Create response message
-						let responseMessageId = uuidv4();
-						let responseMessage = {
-							parentId: parentId,
-							id: responseMessageId,
-							childrenIds: [],
-							role: 'assistant',
-							content: '',
-							model: model.id,
-							userContext: userContext,
-							timestamp: Math.floor(Date.now() / 1000) // Unix epoch
-						};
-
-						// Add message to history and Set currentId to messageId
-						history.messages[responseMessageId] = responseMessage;
-						history.currentId = responseMessageId;
-
-						// Append messageId to childrenIds of parent message
-						if (parentId !== null) {
-							history.messages[parentId].childrenIds = [
-								...history.messages[parentId].childrenIds,
-								responseMessageId
-							];
-						}
-
-						if (model?.external) {
-							await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
-						} else if (model) {
-							await sendPromptOllama(model, prompt, responseMessageId, _chatId);
-						}
-					} else {
-						toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-					}
-
-					// Create response message
-					let responseMessageId = uuidv4();
-					let responseMessage = {
-						parentId: parentId,
-						id: responseMessageId,
-						childrenIds: [],
-						role: 'assistant',
-						content: '',
-						model: model.id,
-						modelName: model.custom_info?.name ?? model.name ?? model.id,
-						timestamp: Math.floor(Date.now() / 1000) // Unix epoch
-					};
-
-					// Add message to history and Set currentId to messageId
-					history.messages[responseMessageId] = responseMessage;
-					history.currentId = responseMessageId;
-
-					// Append messageId to childrenIds of parent message
-					if (parentId !== null) {
-						history.messages[parentId].childrenIds = [
-							...history.messages[parentId].childrenIds,
-							responseMessageId
-						];
-					}
-
-					if (model?.external) {
-						await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
-					} else if (model) {
-						await sendPromptOllama(model, prompt, responseMessageId, _chatId);
-					}
-				} else {
-					toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-				}
-			})
-		);
-
-		await chats.set(await getChatList(localStorage.token));
-	};
-
-	const sendPromptOllama = async (model, userPrompt, responseMessageId, _chatId) => {
-		model = model.id;
-		const responseMessage = history.messages[responseMessageId];
-
-		// Wait until history/message have been updated
-		await tick();
-
-		// Scroll down
-		scrollToBottom();
-
-		const messagesBody = [
-			$settings.system || (responseMessage?.userContext ?? null)
-				? {
-						role: 'system',
-						content:
-							$settings.system + (responseMessage?.userContext ?? null)
-								? `\n\nUser Context:\n${responseMessage.userContext.join('\n')}`
-								: ''
-				  }
-				: undefined,
-			...messages
-		]
-			.filter((message) => message)
-			.map((message, idx, arr) => {
-				// Prepare the base message object
-				const baseMessage = {
-					role: message.role,
-					content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content
-				};
-
-				// Extract and format image URLs if any exist
-				const imageUrls = message.files
-					?.filter((file) => file.type === 'image')
-					.map((file) => file.url.slice(file.url.indexOf(',') + 1));
-
-				// Add images array only if it contains elements
-				if (imageUrls && imageUrls.length > 0 && message.role === 'user') {
-					baseMessage.images = imageUrls;
-				}
-
-				return baseMessage;
-			});
-
-		let lastImageIndex = -1;
-
-		// Find the index of the last object with images
-		messagesBody.forEach((item, index) => {
-			if (item.images) {
-				lastImageIndex = index;
-			}
-		});
-
-		// Remove images from all but the last one
-		messagesBody.forEach((item, index) => {
-			if (index !== lastImageIndex) {
-				delete item.images;
-			}
-		});
-
-		const docs = messages
-			.filter((message) => message?.files ?? null)
-			.map((message) =>
-				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
-			)
-			.flat(1);
-
-		const [res, controller] = await generateChatCompletion(localStorage.token, {
-			model: model,
-			messages: messagesBody,
-			options: {
-				...($settings.options ?? {}),
-				stop:
-					$settings?.options?.stop ?? undefined
-						? $settings.options.stop.map((str) =>
-								decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
-						  )
-						: undefined
-			},
-			format: $settings.requestFormat ?? undefined,
-			keep_alive: $settings.keepAlive ?? undefined,
-			docs: docs.length > 0 ? docs : undefined,
-			citations: docs.length > 0
-		});
-
-		if (res && res.ok) {
-			console.log('controller', controller);
-
-			const reader = res.body
-				.pipeThrough(new TextDecoderStream())
-				.pipeThrough(splitStream('\n'))
-				.getReader();
-
-			while (true) {
-				const { value, done } = await reader.read();
-				if (done || stopResponseFlag || _chatId !== $chatId) {
-					responseMessage.done = true;
-					messages = messages;
-
-					if (stopResponseFlag) {
-						controller.abort('User: Stop Response');
-						await cancelOllamaRequest(localStorage.token, currentRequestId);
-					}
-
-					currentRequestId = null;
-
-					break;
-				}
-
-				try {
-					let lines = value.split('\n');
-
-					for (const line of lines) {
-						if (line !== '') {
-							console.log(line);
-							let data = JSON.parse(line);
-
-							if ('citations' in data) {
-								responseMessage.citations = data.citations;
-								continue;
-							}
-
-							if ('detail' in data) {
-								throw data;
-							}
-
-							if ('id' in data) {
-								console.log(data);
-								currentRequestId = data.id;
-							} else {
-								if (data.done == false) {
-									if (responseMessage.content == '' && data.message.content == '\n') {
-										continue;
-									} else {
-										responseMessage.content += data.message.content;
-										messages = messages;
-									}
-								} else {
-									responseMessage.done = true;
-
-									if (responseMessage.content == '') {
-										responseMessage.error = true;
-										responseMessage.content =
-											'Oops! No text generated from Ollama, Please try again.';
-									}
-
-									responseMessage.context = data.context ?? null;
-									responseMessage.info = {
-										total_duration: data.total_duration,
-										load_duration: data.load_duration,
-										sample_count: data.sample_count,
-										sample_duration: data.sample_duration,
-										prompt_eval_count: data.prompt_eval_count,
-										prompt_eval_duration: data.prompt_eval_duration,
-										eval_count: data.eval_count,
-										eval_duration: data.eval_duration
-									};
-									messages = messages;
-
-									if ($settings.notificationEnabled && !document.hasFocus()) {
-										const notification = new Notification(
-											selectedModelfile
-												? `${
-														selectedModelfile.title.charAt(0).toUpperCase() +
-														selectedModelfile.title.slice(1)
-												  }`
-												: `${model}`,
-											{
-												body: responseMessage.content,
-												icon: selectedModelfile?.imageUrl ?? `${WEBUI_BASE_URL}/static/favicon.png`
-											}
-										);
-									}
-
-									if ($settings.responseAutoCopy) {
-										copyToClipboard(responseMessage.content);
-									}
-
-									if ($settings.responseAutoPlayback) {
-										await tick();
-										document.getElementById(`speak-button-${responseMessage.id}`)?.click();
-									}
-								}
-							}
-						}
-					}
-				} catch (error) {
-					console.log(error);
-					if ('detail' in error) {
-						toast.error(error.detail);
-					}
-					break;
-				}
-
-				if (autoScroll) {
-					scrollToBottom();
-				}
-			}
-
-			if ($chatId == _chatId) {
-				if ($settings.saveChatHistory ?? true) {
-					chat = await updateChatById(localStorage.token, _chatId, {
-						messages: messages,
-						history: history
-					});
-					await chats.set(await getChatList(localStorage.token));
-				}
-			}
-		} else {
-			if (res !== null) {
-				const error = await res.json();
-				console.log(error);
-				if ('detail' in error) {
-					toast.error(error.detail);
-					responseMessage.content = error.detail;
-				} else {
-					toast.error(error.error);
-					responseMessage.content = error.error;
-				}
-			} else {
-				toast.error(
-					$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, { provider: 'Ollama' })
-				);
-				responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-					provider: 'Ollama'
-				});
-			}
-
-			responseMessage.error = true;
-			responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-				provider: 'Ollama'
-			});
-			responseMessage.done = true;
-			messages = messages;
-		}
-
-		stopResponseFlag = false;
-		await tick();
-
-		if (autoScroll) {
-			scrollToBottom();
-		}
-
-		if (messages.length == 2 && messages.at(1).content !== '') {
-			window.history.replaceState(history.state, '', `/c/${_chatId}`);
-			const _title = await generateChatTitle(userPrompt);
-			await setChatTitle(_chatId, _title);
-		}
-	};
-
-	const sendPromptOpenAI = async (model, userPrompt, responseMessageId, _chatId) => {
-		const responseMessage = history.messages[responseMessageId];
-
-		const docs = messages
-			.filter((message) => message?.files ?? null)
-			.map((message) =>
-				message.files.filter((item) => item.type === 'doc' || item.type === 'collection')
-			)
-			.flat(1);
-
-		console.log(docs);
-
-		scrollToBottom();
-
-		try {
-			const [res, controller] = await generateOpenAIChatCompletion(
-				localStorage.token,
-				{
-					model: model.id,
-					stream: true,
-					messages: [
-						$settings.system || (responseMessage?.userContext ?? null)
-							? {
-									role: 'system',
-									content:
-										$settings.system + (responseMessage?.userContext ?? null)
-											? `\n\nUser Context:\n${responseMessage.userContext.join('\n')}`
-											: ''
-							  }
-							: undefined,
-						...messages
-					]
-						.filter((message) => message)
-						.map((message, idx, arr) => ({
-							role: message.role,
-							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
-							message.role === 'user'
-								? {
-										content: [
-											{
-												type: 'text',
-												text:
-													arr.length - 1 !== idx
-														? message.content
-														: message?.raContent ?? message.content
-											},
-											...message.files
-												.filter((file) => file.type === 'image')
-												.map((file) => ({
-													type: 'image_url',
-													image_url: {
-														url: file.url
-													}
-												}))
-										]
-								  }
-								: {
-										content:
-											arr.length - 1 !== idx
-												? message.content
-												: message?.raContent ?? message.content
-								  })
-						})),
-					seed: $settings?.options?.seed ?? undefined,
-					stop:
-						$settings?.options?.stop ?? undefined
-							? $settings.options.stop.map((str) =>
-									decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
-							  )
-							: undefined,
-					temperature: $settings?.options?.temperature ?? undefined,
-					top_p: $settings?.options?.top_p ?? undefined,
-					num_ctx: $settings?.options?.num_ctx ?? undefined,
-					frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
-					max_tokens: $settings?.options?.num_predict ?? undefined,
-					docs: docs.length > 0 ? docs : undefined,
-					citations: docs.length > 0
-				},
-				model?.source?.toLowerCase() === 'litellm'
-					? `${LITELLM_API_BASE_URL}/v1`
-					: `${OPENAI_API_BASE_URL}`
-			);
-
-			// Wait until history/message have been updated
-			await tick();
-
-			scrollToBottom();
-
-			if (res && res.ok && res.body) {
-				const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
-
-				for await (const update of textStream) {
-					const { value, done, citations, error } = update;
-					if (error) {
-						await handleOpenAIError(error, null, model, responseMessage);
-						break;
-					}
-					if (done || stopResponseFlag || _chatId !== $chatId) {
-						responseMessage.done = true;
-						messages = messages;
-
-						if (stopResponseFlag) {
-							controller.abort('User: Stop Response');
-						}
-
-						break;
-					}
-
-					if (citations) {
-						responseMessage.citations = citations;
-						continue;
-					}
-
-					if (responseMessage.content == '' && value == '\n') {
-						continue;
-					} else {
-						responseMessage.content += value;
-						messages = messages;
-					}
-
-					if ($settings.notificationEnabled && !document.hasFocus()) {
-						const notification = new Notification(`OpenAI ${model}`, {
-							body: responseMessage.content,
-							icon: `${WEBUI_BASE_URL}/static/favicon.png`
-						});
-					}
-
-					if ($settings.responseAutoCopy) {
-						copyToClipboard(responseMessage.content);
-					}
-
-					if ($settings.responseAutoPlayback) {
-						await tick();
-						document.getElementById(`speak-button-${responseMessage.id}`)?.click();
-					}
-
-					if (autoScroll) {
-						scrollToBottom();
-					}
-				}
-
-				if ($chatId == _chatId) {
-					if ($settings.saveChatHistory ?? true) {
-						chat = await updateChatById(localStorage.token, _chatId, {
-							messages: messages,
-							history: history
-						});
-						await chats.set(await getChatList(localStorage.token));
-					}
-				}
-			} else {
-				await handleOpenAIError(null, res, model, responseMessage);
-			}
-		} catch (error) {
-			await handleOpenAIError(error, null, model, responseMessage);
-		}
-		messages = messages;
-
-		stopResponseFlag = false;
-		await tick();
-
-		if (autoScroll) {
-			scrollToBottom();
-		}
-
-		if (messages.length == 2) {
-			window.history.replaceState(history.state, '', `/c/${_chatId}`);
-
-			const _title = await generateChatTitle(userPrompt);
-			await setChatTitle(_chatId, _title);
-		}
-	};
-
-	const handleOpenAIError = async (error, res: Response | null, model, responseMessage) => {
-		let errorMessage = '';
-		let innerError;
-
-		if (error) {
-			innerError = error;
-		} else if (res !== null) {
-			innerError = await res.json();
-		}
-		console.error(innerError);
-		if ('detail' in innerError) {
-			toast.error(innerError.detail);
-			errorMessage = innerError.detail;
-		} else if ('error' in innerError) {
-			if ('message' in innerError.error) {
-				toast.error(innerError.error.message);
-				errorMessage = innerError.error.message;
-			} else {
-				toast.error(innerError.error);
-				errorMessage = innerError.error;
-			}
-		} else if ('message' in innerError) {
-			toast.error(innerError.message);
-			errorMessage = innerError.message;
-		}
-
-		responseMessage.error = true;
-		responseMessage.content =
-			$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
-				provider: model.custom_info?.name ?? model.name ?? model.id
-			}) +
-			'\n' +
-			errorMessage;
-		responseMessage.done = true;
-
-		messages = messages;
-	};
-
-	const stopResponse = () => {
-		stopResponseFlag = true;
-		console.log('stopResponse');
-	};
-
-	const regenerateResponse = async (message) => {
-		console.log('regenerateResponse');
-
-		if (messages.length != 0) {
-			let userMessage = history.messages[message.parentId];
-			let userPrompt = userMessage.content;
-
-			if ((userMessage?.models ?? [...selectedModels]).length == 1) {
-				await sendPrompt(userPrompt, userMessage.id);
-			} else {
-				await sendPrompt(userPrompt, userMessage.id, message.model);
-			}
-		}
-	};
-
-	const continueGeneration = async () => {
-		console.log('continueGeneration');
-		const _chatId = JSON.parse(JSON.stringify($chatId));
-
-		if (messages.length != 0 && messages.at(-1).done == true) {
-			const responseMessage = history.messages[history.currentId];
-			responseMessage.done = false;
-			await tick();
-
-			const model = $models.filter((m) => m.id === responseMessage.model).at(0);
-
-			if (model) {
-				if (model?.external) {
-					await sendPromptOpenAI(
-						model,
-						history.messages[responseMessage.parentId].content,
-						responseMessage.id,
-						_chatId
-					);
-				} else
-					await sendPromptOllama(
-						model,
-						history.messages[responseMessage.parentId].content,
-						responseMessage.id,
-						_chatId
-					);
-			}
-		} else {
-			toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
-		}
-	};
-
-	const generateChatTitle = async (userPrompt) => {
-		if ($settings?.title?.auto ?? true) {
-			const model = $models.find((model) => model.id === selectedModels[0]);
-
-			const titleModelId =
-				model?.external ?? false
-					? $settings?.title?.modelExternal ?? selectedModels[0]
-					: $settings?.title?.model ?? selectedModels[0];
-			const titleModel = $models.find((model) => model.id === titleModelId);
-
-			console.log(titleModel);
-			const title = await generateTitle(
-				localStorage.token,
-				$settings?.title?.prompt ??
-					$i18n.t(
-						"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':"
-					) + ' {{prompt}}',
-				titleModelId,
-				userPrompt,
-				titleModel?.external ?? false
-					? titleModel?.source?.toLowerCase() === 'litellm'
-						? `${LITELLM_API_BASE_URL}/v1`
-						: `${OPENAI_API_BASE_URL}`
-					: `${OLLAMA_API_BASE_URL}/v1`
-			);
-
-			return title;
-		} else {
-			return `${userPrompt}`;
-		}
-	};
-
-	const setChatTitle = async (_chatId, _title) => {
-		if (_chatId === $chatId) {
-			title = _title;
-		}
-
-		if ($settings.saveChatHistory ?? true) {
-			chat = await updateChatById(localStorage.token, _chatId, { title: _title });
-			await chats.set(await getChatList(localStorage.token));
-		}
-	};
-
-	const getTags = async () => {
-		return await getTagsById(localStorage.token, $chatId).catch(async (error) => {
-			return [];
-		});
-	};
-
-	const addTag = async (tagName) => {
-		const res = await addTagById(localStorage.token, $chatId, tagName);
-		tags = await getTags();
-
-		chat = await updateChatById(localStorage.token, $chatId, {
-			tags: tags
-		});
-
-		_tags.set(await getAllChatTags(localStorage.token));
-	};
-
-	const deleteTag = async (tagName) => {
-		const res = await deleteTagById(localStorage.token, $chatId, tagName);
-		tags = await getTags();
-
-		chat = await updateChatById(localStorage.token, $chatId, {
-			tags: tags
-		});
-
-		_tags.set(await getAllChatTags(localStorage.token));
-	};
-
-	onMount(async () => {
-		if (!($settings.saveChatHistory ?? true)) {
-			await goto('/');
-		}
-	});
 </script>
 
-<svelte:head>
-	<title>
-		{title
-			? `${title.length > 30 ? `${title.slice(0, 30)}...` : title} | ${$WEBUI_NAME}`
-			: `${$WEBUI_NAME}`}
-	</title>
-</svelte:head>
-
-{#if loaded}
-	<div
-		class="min-h-screen max-h-screen {$showSidebar
-			? 'md:max-w-[calc(100%-260px)]'
-			: ''} w-full max-w-full flex flex-col"
-	>
-		<Navbar
-			{title}
-			{chat}
-			bind:selectedModels
-			bind:showModelSelector
-			shareEnabled={messages.length > 0}
-			initNewChat={async () => {
-				if (currentRequestId !== null) {
-					await cancelOllamaRequest(localStorage.token, currentRequestId);
-					currentRequestId = null;
-				}
-
-				goto('/');
-			}}
-		/>
-		<div class="flex flex-col flex-auto">
-			<div
-				class=" pb-2.5 flex flex-col justify-between w-full flex-auto overflow-auto h-0 max-w-full"
-				id="messages-container"
-				bind:this={messagesContainerElement}
-				on:scroll={(e) => {
-					autoScroll =
-						messagesContainerElement.scrollHeight - messagesContainerElement.scrollTop <=
-						messagesContainerElement.clientHeight + 5;
-				}}
-			>
-				<div class=" h-full w-full flex flex-col py-4">
-					<Messages
-						chatId={$chatId}
-						{selectedModels}
-						{selectedModelfiles}
-						{processing}
-						bind:history
-						bind:messages
-						bind:autoScroll
-						bind:prompt
-						bottomPadding={files.length > 0}
-						{sendPrompt}
-						{continueGeneration}
-						{regenerateResponse}
-					/>
-				</div>
-			</div>
-		</div>
-	</div>
-
-	<MessageInput
-		bind:files
-		bind:prompt
-		bind:autoScroll
-		bind:selectedModel={atSelectedModel}
-		{selectedModels}
-		{messages}
-		{submitPrompt}
-		{stopResponse}
-	/>
-{/if}
+<Chat chatIdProp={$page.params.id} />

BIN
test/test_files/image_gen/sd-empty.pt