From 35f3824932833fe77ef3bce54b86803cda4838a6 Mon Sep 17 00:00:00 2001 From: Mazurek Michal Date: Fri, 7 Feb 2025 13:44:47 +0100 Subject: [PATCH 01/58] feat: Implement Document Intelligence as Content Extraction Engine --- backend/open_webui/config.py | 12 +++++++ backend/open_webui/main.py | 4 +++ backend/open_webui/retrieval/loaders/main.py | 22 ++++++++++++ backend/open_webui/routers/retrieval.py | 27 +++++++++++++- backend/requirements.txt | 1 + pyproject.toml | 1 + src/lib/apis/retrieval/index.ts | 6 ++++ .../admin/Settings/Documents.svelte | 36 ++++++++++++++++++- 8 files changed, 107 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index bf6f1d025..e46a87cd5 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1431,6 +1431,18 @@ TIKA_SERVER_URL = PersistentConfig( os.getenv("TIKA_SERVER_URL", "http://tika:9998"), # Default for sidecar deployment ) +DOCUMENT_INTELLIGENCE_ENDPOINT = PersistentConfig( + "DOCUMENT_INTELLIGENCE_ENDPOINT", + "rag.document_intelligence_endpoint", + os.getenv("DOCUMENT_INTELLIGENCE_ENDPOINT", ""), +) + +DOCUMENT_INTELLIGENCE_KEY = PersistentConfig( + "DOCUMENT_INTELLIGENCE_KEY", + "rag.document_intelligence_key", + os.getenv("DOCUMENT_INTELLIGENCE_KEY", ""), +) + RAG_TOP_K = PersistentConfig( "RAG_TOP_K", "rag.top_k", int(os.environ.get("RAG_TOP_K", "3")) ) diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 863f58dea..2f1b92b1d 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -154,6 +154,8 @@ from open_webui.config import ( CHUNK_SIZE, CONTENT_EXTRACTION_ENGINE, TIKA_SERVER_URL, + DOCUMENT_INTELLIGENCE_ENDPOINT, + DOCUMENT_INTELLIGENCE_KEY, RAG_TOP_K, RAG_TEXT_SPLITTER, TIKTOKEN_ENCODING_NAME, @@ -478,6 +480,8 @@ app.state.config.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = ( app.state.config.CONTENT_EXTRACTION_ENGINE = CONTENT_EXTRACTION_ENGINE app.state.config.TIKA_SERVER_URL = TIKA_SERVER_URL +app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT = DOCUMENT_INTELLIGENCE_ENDPOINT +app.state.config.DOCUMENT_INTELLIGENCE_KEY = DOCUMENT_INTELLIGENCE_KEY app.state.config.TEXT_SPLITTER = RAG_TEXT_SPLITTER app.state.config.TIKTOKEN_ENCODING_NAME = TIKTOKEN_ENCODING_NAME diff --git a/backend/open_webui/retrieval/loaders/main.py b/backend/open_webui/retrieval/loaders/main.py index a9372f65a..19d590f5c 100644 --- a/backend/open_webui/retrieval/loaders/main.py +++ b/backend/open_webui/retrieval/loaders/main.py @@ -4,6 +4,7 @@ import ftfy import sys from langchain_community.document_loaders import ( + AzureAIDocumentIntelligenceLoader, BSHTMLLoader, CSVLoader, Docx2txtLoader, @@ -147,6 +148,27 @@ class Loader: file_path=file_path, mime_type=file_content_type, ) + elif ( + self.engine == "document_intelligence" + and self.kwargs.get("DOCUMENT_INTELLIGENCE_ENDPOINT") != "" + and self.kwargs.get("DOCUMENT_INTELLIGENCE_KEY") != "" + and ( + file_ext in ["pdf", "xls", "xlsx", "docx", "ppt", "pptx"] + or file_content_type + in [ + "application/vnd.ms-excel", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "application/vnd.ms-powerpoint", + "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ] + ) + ): + loader = AzureAIDocumentIntelligenceLoader( + file_path=file_path, + api_endpoint=self.kwargs.get("DOCUMENT_INTELLIGENCE_ENDPOINT"), + api_key=self.kwargs.get("DOCUMENT_INTELLIGENCE_KEY"), + ) else: if file_ext == "pdf": loader = PyPDFLoader( diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 77f04a4be..4cfcd490d 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -352,6 +352,10 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "content_extraction": { "engine": request.app.state.config.CONTENT_EXTRACTION_ENGINE, "tika_server_url": request.app.state.config.TIKA_SERVER_URL, + "document_intelligence_config": { + "endpoint": request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, + "key": request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, + }, }, "chunk": { "text_splitter": request.app.state.config.TEXT_SPLITTER, @@ -402,9 +406,15 @@ class FileConfig(BaseModel): max_count: Optional[int] = None +class DocumentIntelligenceConfigForm(BaseModel): + endpoint: str + key: str + + class ContentExtractionConfig(BaseModel): engine: str = "" tika_server_url: Optional[str] = None + document_intelligence_config: Optional[DocumentIntelligenceConfigForm] = None class ChunkParamUpdateForm(BaseModel): @@ -479,13 +489,22 @@ async def update_rag_config( request.app.state.config.FILE_MAX_COUNT = form_data.file.max_count if form_data.content_extraction is not None: - log.info(f"Updating text settings: {form_data.content_extraction}") + log.info( + f"Updating content extraction: {request.app.state.config.CONTENT_EXTRACTION_ENGINE} to {form_data.content_extraction.engine}" + ) request.app.state.config.CONTENT_EXTRACTION_ENGINE = ( form_data.content_extraction.engine ) request.app.state.config.TIKA_SERVER_URL = ( form_data.content_extraction.tika_server_url ) + if form_data.content_extraction.document_intelligence_config is not None: + request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT = ( + form_data.content_extraction.document_intelligence_config.endpoint + ) + request.app.state.config.DOCUMENT_INTELLIGENCE_KEY = ( + form_data.content_extraction.document_intelligence_config.key + ) if form_data.chunk is not None: request.app.state.config.TEXT_SPLITTER = form_data.chunk.text_splitter @@ -564,6 +583,10 @@ async def update_rag_config( "content_extraction": { "engine": request.app.state.config.CONTENT_EXTRACTION_ENGINE, "tika_server_url": request.app.state.config.TIKA_SERVER_URL, + "document_intelligence_config": { + "endpoint": request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, + "key": request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, + }, }, "chunk": { "text_splitter": request.app.state.config.TEXT_SPLITTER, @@ -887,6 +910,8 @@ def process_file( engine=request.app.state.config.CONTENT_EXTRACTION_ENGINE, TIKA_SERVER_URL=request.app.state.config.TIKA_SERVER_URL, PDF_EXTRACT_IMAGES=request.app.state.config.PDF_EXTRACT_IMAGES, + DOCUMENT_INTELLIGENCE_ENDPOINT=request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, + DOCUMENT_INTELLIGENCE_KEY=request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, ) docs = loader.load( file.filename, file.meta.get("content_type"), file_path diff --git a/backend/requirements.txt b/backend/requirements.txt index 14ad4b9cd..4a39e77b5 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -72,6 +72,7 @@ validators==0.34.0 psutil sentencepiece soundfile==0.13.1 +azure-ai-documentintelligence==1.0.0 opencv-python-headless==4.11.0.86 rapidocr-onnxruntime==1.3.24 diff --git a/pyproject.toml b/pyproject.toml index f121089e8..60d54afd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,6 +77,7 @@ dependencies = [ "psutil", "sentencepiece", "soundfile==0.13.1", + "azure-ai-documentintelligence==1.0.0", "opencv-python-headless==4.11.0.86", "rapidocr-onnxruntime==1.3.24", diff --git a/src/lib/apis/retrieval/index.ts b/src/lib/apis/retrieval/index.ts index c35c37847..ed07ab5d0 100644 --- a/src/lib/apis/retrieval/index.ts +++ b/src/lib/apis/retrieval/index.ts @@ -32,9 +32,15 @@ type ChunkConfigForm = { chunk_overlap: number; }; +type DocumentIntelligenceConfigForm = { + key: string; + endpoint: string; +}; + type ContentExtractConfigForm = { engine: string; tika_server_url: string | null; + document_intelligence_config: DocumentIntelligenceConfigForm | null; }; type YoutubeConfigForm = { diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index d3b7cfa01..e624a51b3 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -50,6 +50,9 @@ let contentExtractionEngine = 'default'; let tikaServerUrl = ''; let showTikaServerUrl = false; + let documentIntelligenceEndpoint = ''; + let documentIntelligenceKey = ''; + let showDocumentIntelligenceConfig = false; let textSplitter = ''; let chunkSize = 0; @@ -175,6 +178,13 @@ toast.error($i18n.t('Tika Server URL required.')); return; } + if ( + contentExtractionEngine === 'document_intelligence' && + (documentIntelligenceEndpoint === '' || documentIntelligenceKey === '') + ) { + toast.error($i18n.t('Document Intelligence endpoint and key required.')); + return; + } const res = await updateRAGConfig(localStorage.token, { pdf_extract_images: pdfExtractImages, enable_google_drive_integration: enableGoogleDriveIntegration, @@ -189,7 +199,11 @@ }, content_extraction: { engine: contentExtractionEngine, - tika_server_url: tikaServerUrl + tika_server_url: tikaServerUrl, + document_intelligence_config: { + key: documentIntelligenceKey, + endpoint: documentIntelligenceEndpoint + } } }); @@ -245,6 +259,9 @@ contentExtractionEngine = res.content_extraction.engine; tikaServerUrl = res.content_extraction.tika_server_url; showTikaServerUrl = contentExtractionEngine === 'tika'; + documentIntelligenceEndpoint = res.content_extraction.document_intelligence_config.endpoint; + documentIntelligenceKey = res.content_extraction.document_intelligence_config.key; + showDocumentIntelligenceConfig = contentExtractionEngine === 'document_intelligence'; fileMaxSize = res?.file.max_size ?? ''; fileMaxCount = res?.file.max_count ?? ''; @@ -568,10 +585,12 @@ bind:value={contentExtractionEngine} on:change={(e) => { showTikaServerUrl = e.target.value === 'tika'; + showDocumentIntelligenceConfig = e.target.value === 'document_intelligence'; }} > + @@ -587,6 +606,21 @@ {/if} + + {#if showDocumentIntelligenceConfig} +
+ + + +
+ {/if}
From 6d62e71c3431f3305a3802970bf5a18055a7fe39 Mon Sep 17 00:00:00 2001 From: Didier FOURNOUT Date: Thu, 13 Feb 2025 15:29:26 +0000 Subject: [PATCH 02/58] Add x-Open-Webui headers for ollama + more for openai --- backend/open_webui/main.py | 4 +- backend/open_webui/routers/ollama.py | 144 ++++++++++++++++++++++++--- backend/open_webui/routers/openai.py | 43 ++++++-- backend/open_webui/utils/chat.py | 4 +- backend/open_webui/utils/models.py | 11 +- 5 files changed, 173 insertions(+), 33 deletions(-) diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 88b5b3f69..3e5f20cee 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -858,7 +858,7 @@ async def get_models(request: Request, user=Depends(get_verified_user)): return filtered_models - models = await get_all_models(request) + models = await get_all_models(request, user=user) # Filter out filter pipelines models = [ @@ -898,7 +898,7 @@ async def chat_completion( user=Depends(get_verified_user), ): if not request.app.state.MODELS: - await get_all_models(request) + await get_all_models(request, user=user) model_item = form_data.pop("model_item", {}) tasks = form_data.pop("background_tasks", None) diff --git a/backend/open_webui/routers/ollama.py b/backend/open_webui/routers/ollama.py index 64373c616..e825848d4 100644 --- a/backend/open_webui/routers/ollama.py +++ b/backend/open_webui/routers/ollama.py @@ -14,6 +14,11 @@ from urllib.parse import urlparse import aiohttp from aiocache import cached import requests +from open_webui.models.users import UserModel + +from open_webui.env import ( + ENABLE_FORWARD_USER_INFO_HEADERS, +) from fastapi import ( Depends, @@ -66,12 +71,26 @@ log.setLevel(SRC_LOG_LEVELS["OLLAMA"]) ########################################## -async def send_get_request(url, key=None): +async def send_get_request(url, key=None, user: UserModel = None): timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST) try: async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: async with session.get( - url, headers={**({"Authorization": f"Bearer {key}"} if key else {})} + url, + headers={ + "Content-Type": "application/json", + **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), + }, ) as response: return await response.json() except Exception as e: @@ -96,6 +115,7 @@ async def send_post_request( stream: bool = True, key: Optional[str] = None, content_type: Optional[str] = None, + user: UserModel = None ): r = None @@ -110,6 +130,16 @@ async def send_post_request( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, ) r.raise_for_status() @@ -191,7 +221,19 @@ async def verify_connection( try: async with session.get( f"{url}/api/version", - headers={**({"Authorization": f"Bearer {key}"} if key else {})}, + headers={ + **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), + }, ) as r: if r.status != 200: detail = f"HTTP Error: {r.status}" @@ -254,7 +296,7 @@ async def update_config( @cached(ttl=3) -async def get_all_models(request: Request): +async def get_all_models(request: Request, user: UserModel=None): log.info("get_all_models()") if request.app.state.config.ENABLE_OLLAMA_API: request_tasks = [] @@ -262,7 +304,7 @@ async def get_all_models(request: Request): if (str(idx) not in request.app.state.config.OLLAMA_API_CONFIGS) and ( url not in request.app.state.config.OLLAMA_API_CONFIGS # Legacy support ): - request_tasks.append(send_get_request(f"{url}/api/tags")) + request_tasks.append(send_get_request(f"{url}/api/tags", user=user)) else: api_config = request.app.state.config.OLLAMA_API_CONFIGS.get( str(idx), @@ -275,7 +317,7 @@ async def get_all_models(request: Request): key = api_config.get("key", None) if enable: - request_tasks.append(send_get_request(f"{url}/api/tags", key)) + request_tasks.append(send_get_request(f"{url}/api/tags", key, user=user)) else: request_tasks.append(asyncio.ensure_future(asyncio.sleep(0, None))) @@ -360,7 +402,7 @@ async def get_ollama_tags( models = [] if url_idx is None: - models = await get_all_models(request) + models = await get_all_models(request, user=user) else: url = request.app.state.config.OLLAMA_BASE_URLS[url_idx] key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS) @@ -370,7 +412,19 @@ async def get_ollama_tags( r = requests.request( method="GET", url=f"{url}/api/tags", - headers={**({"Authorization": f"Bearer {key}"} if key else {})}, + headers={ + **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), + }, ) r.raise_for_status() @@ -477,6 +531,7 @@ async def get_ollama_loaded_models(request: Request, user=Depends(get_verified_u url, {} ), # Legacy support ).get("key", None), + user=user ) for idx, url in enumerate(request.app.state.config.OLLAMA_BASE_URLS) ] @@ -509,6 +564,7 @@ async def pull_model( url=f"{url}/api/pull", payload=json.dumps(payload), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -527,7 +583,7 @@ async def push_model( user=Depends(get_admin_user), ): if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS if form_data.name in models: @@ -545,6 +601,7 @@ async def push_model( url=f"{url}/api/push", payload=form_data.model_dump_json(exclude_none=True).encode(), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -571,6 +628,7 @@ async def create_model( url=f"{url}/api/create", payload=form_data.model_dump_json(exclude_none=True).encode(), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -588,7 +646,7 @@ async def copy_model( user=Depends(get_admin_user), ): if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS if form_data.source in models: @@ -609,6 +667,16 @@ async def copy_model( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, data=form_data.model_dump_json(exclude_none=True).encode(), ) @@ -643,7 +711,7 @@ async def delete_model( user=Depends(get_admin_user), ): if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS if form_data.name in models: @@ -665,6 +733,16 @@ async def delete_model( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, ) r.raise_for_status() @@ -693,7 +771,7 @@ async def delete_model( async def show_model_info( request: Request, form_data: ModelNameForm, user=Depends(get_verified_user) ): - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS if form_data.name not in models: @@ -714,6 +792,16 @@ async def show_model_info( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, data=form_data.model_dump_json(exclude_none=True).encode(), ) @@ -757,7 +845,7 @@ async def embed( log.info(f"generate_ollama_batch_embeddings {form_data}") if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS model = form_data.model @@ -783,6 +871,16 @@ async def embed( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, data=form_data.model_dump_json(exclude_none=True).encode(), ) @@ -826,7 +924,7 @@ async def embeddings( log.info(f"generate_ollama_embeddings {form_data}") if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS model = form_data.model @@ -852,6 +950,16 @@ async def embeddings( headers={ "Content-Type": "application/json", **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS and user + else {} + ), }, data=form_data.model_dump_json(exclude_none=True).encode(), ) @@ -901,7 +1009,7 @@ async def generate_completion( user=Depends(get_verified_user), ): if url_idx is None: - await get_all_models(request) + await get_all_models(request, user=user) models = request.app.state.OLLAMA_MODELS model = form_data.model @@ -931,6 +1039,7 @@ async def generate_completion( url=f"{url}/api/generate", payload=form_data.model_dump_json(exclude_none=True).encode(), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -1047,6 +1156,7 @@ async def generate_chat_completion( stream=form_data.stream, key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), content_type="application/x-ndjson", + user=user, ) @@ -1149,6 +1259,7 @@ async def generate_openai_completion( payload=json.dumps(payload), stream=payload.get("stream", False), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -1227,6 +1338,7 @@ async def generate_openai_chat_completion( payload=json.dumps(payload), stream=payload.get("stream", False), key=get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS), + user=user, ) @@ -1240,7 +1352,7 @@ async def get_openai_models( models = [] if url_idx is None: - model_list = await get_all_models(request) + model_list = await get_all_models(request, user=user) models = [ { "id": model["model"], diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index afda36237..f0d5d81dd 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -26,6 +26,7 @@ from open_webui.env import ( ENABLE_FORWARD_USER_INFO_HEADERS, BYPASS_MODEL_ACCESS_CONTROL, ) +from open_webui.models.users import UserModel from open_webui.constants import ERROR_MESSAGES from open_webui.env import ENV, SRC_LOG_LEVELS @@ -51,12 +52,25 @@ log.setLevel(SRC_LOG_LEVELS["OPENAI"]) ########################################## -async def send_get_request(url, key=None): +async def send_get_request(url, key=None, user: UserModel=None): timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST) try: async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: async with session.get( - url, headers={**({"Authorization": f"Bearer {key}"} if key else {})} + url, + headers={ + **({"Authorization": f"Bearer {key}"} if key else {}), + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS + else {} + ), + } ) as response: return await response.json() except Exception as e: @@ -247,7 +261,7 @@ async def speech(request: Request, user=Depends(get_verified_user)): raise HTTPException(status_code=401, detail=ERROR_MESSAGES.OPENAI_NOT_FOUND) -async def get_all_models_responses(request: Request) -> list: +async def get_all_models_responses(request: Request, user: UserModel) -> list: if not request.app.state.config.ENABLE_OPENAI_API: return [] @@ -271,7 +285,9 @@ async def get_all_models_responses(request: Request) -> list: ): request_tasks.append( send_get_request( - f"{url}/models", request.app.state.config.OPENAI_API_KEYS[idx] + f"{url}/models", + request.app.state.config.OPENAI_API_KEYS[idx], + user=user, ) ) else: @@ -291,6 +307,7 @@ async def get_all_models_responses(request: Request) -> list: send_get_request( f"{url}/models", request.app.state.config.OPENAI_API_KEYS[idx], + user=user, ) ) else: @@ -352,13 +369,13 @@ async def get_filtered_models(models, user): @cached(ttl=3) -async def get_all_models(request: Request) -> dict[str, list]: +async def get_all_models(request: Request, user: UserModel) -> dict[str, list]: log.info("get_all_models()") if not request.app.state.config.ENABLE_OPENAI_API: return {"data": []} - responses = await get_all_models_responses(request) + responses = await get_all_models_responses(request, user=user) def extract_data(response): if response and "data" in response: @@ -418,7 +435,7 @@ async def get_models( } if url_idx is None: - models = await get_all_models(request) + models = await get_all_models(request, user=user) else: url = request.app.state.config.OPENAI_API_BASE_URLS[url_idx] key = request.app.state.config.OPENAI_API_KEYS[url_idx] @@ -515,6 +532,16 @@ async def verify_connection( headers={ "Authorization": f"Bearer {key}", "Content-Type": "application/json", + **( + { + "X-OpenWebUI-User-Name": user.name, + "X-OpenWebUI-User-Id": user.id, + "X-OpenWebUI-User-Email": user.email, + "X-OpenWebUI-User-Role": user.role, + } + if ENABLE_FORWARD_USER_INFO_HEADERS + else {} + ), }, ) as r: if r.status != 200: @@ -587,7 +614,7 @@ async def generate_chat_completion( detail="Model not found", ) - await get_all_models(request) + await get_all_models(request, user=user) model = request.app.state.OPENAI_MODELS.get(model_id) if model: idx = model["urlIdx"] diff --git a/backend/open_webui/utils/chat.py b/backend/open_webui/utils/chat.py index 253eaedfb..d8f44590b 100644 --- a/backend/open_webui/utils/chat.py +++ b/backend/open_webui/utils/chat.py @@ -285,7 +285,7 @@ chat_completion = generate_chat_completion async def chat_completed(request: Request, form_data: dict, user: Any): if not request.app.state.MODELS: - await get_all_models(request) + await get_all_models(request, user=user) if getattr(request.state, "direct", False) and hasattr(request.state, "model"): models = { @@ -351,7 +351,7 @@ async def chat_action(request: Request, action_id: str, form_data: dict, user: A raise Exception(f"Action not found: {action_id}") if not request.app.state.MODELS: - await get_all_models(request) + await get_all_models(request, user=user) if getattr(request.state, "direct", False) and hasattr(request.state, "model"): models = { diff --git a/backend/open_webui/utils/models.py b/backend/open_webui/utils/models.py index 975f8cb09..00f8fd666 100644 --- a/backend/open_webui/utils/models.py +++ b/backend/open_webui/utils/models.py @@ -22,6 +22,7 @@ from open_webui.config import ( ) from open_webui.env import SRC_LOG_LEVELS, GLOBAL_LOG_LEVEL +from open_webui.models.users import UserModel logging.basicConfig(stream=sys.stdout, level=GLOBAL_LOG_LEVEL) @@ -29,17 +30,17 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["MAIN"]) -async def get_all_base_models(request: Request): +async def get_all_base_models(request: Request, user: UserModel=None): function_models = [] openai_models = [] ollama_models = [] if request.app.state.config.ENABLE_OPENAI_API: - openai_models = await openai.get_all_models(request) + openai_models = await openai.get_all_models(request, user=user) openai_models = openai_models["data"] if request.app.state.config.ENABLE_OLLAMA_API: - ollama_models = await ollama.get_all_models(request) + ollama_models = await ollama.get_all_models(request, user=user) ollama_models = [ { "id": model["model"], @@ -58,8 +59,8 @@ async def get_all_base_models(request: Request): return models -async def get_all_models(request): - models = await get_all_base_models(request) +async def get_all_models(request, user: UserModel=None): + models = await get_all_base_models(request, user=user) # If there are no models, return an empty list if len(models) == 0: From 06062568c7f24a6c3a7e76c9070c11941b4018d5 Mon Sep 17 00:00:00 2001 From: Didier FOURNOUT Date: Thu, 13 Feb 2025 16:12:46 +0000 Subject: [PATCH 03/58] black formatting --- backend/open_webui/routers/ollama.py | 10 ++++++---- backend/open_webui/routers/openai.py | 4 ++-- backend/open_webui/utils/models.py | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/open_webui/routers/ollama.py b/backend/open_webui/routers/ollama.py index e825848d4..a3d506449 100644 --- a/backend/open_webui/routers/ollama.py +++ b/backend/open_webui/routers/ollama.py @@ -115,7 +115,7 @@ async def send_post_request( stream: bool = True, key: Optional[str] = None, content_type: Optional[str] = None, - user: UserModel = None + user: UserModel = None, ): r = None @@ -296,7 +296,7 @@ async def update_config( @cached(ttl=3) -async def get_all_models(request: Request, user: UserModel=None): +async def get_all_models(request: Request, user: UserModel = None): log.info("get_all_models()") if request.app.state.config.ENABLE_OLLAMA_API: request_tasks = [] @@ -317,7 +317,9 @@ async def get_all_models(request: Request, user: UserModel=None): key = api_config.get("key", None) if enable: - request_tasks.append(send_get_request(f"{url}/api/tags", key, user=user)) + request_tasks.append( + send_get_request(f"{url}/api/tags", key, user=user) + ) else: request_tasks.append(asyncio.ensure_future(asyncio.sleep(0, None))) @@ -531,7 +533,7 @@ async def get_ollama_loaded_models(request: Request, user=Depends(get_verified_u url, {} ), # Legacy support ).get("key", None), - user=user + user=user, ) for idx, url in enumerate(request.app.state.config.OLLAMA_BASE_URLS) ] diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index f0d5d81dd..1ef913df4 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -52,7 +52,7 @@ log.setLevel(SRC_LOG_LEVELS["OPENAI"]) ########################################## -async def send_get_request(url, key=None, user: UserModel=None): +async def send_get_request(url, key=None, user: UserModel = None): timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST) try: async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: @@ -70,7 +70,7 @@ async def send_get_request(url, key=None, user: UserModel=None): if ENABLE_FORWARD_USER_INFO_HEADERS else {} ), - } + }, ) as response: return await response.json() except Exception as e: diff --git a/backend/open_webui/utils/models.py b/backend/open_webui/utils/models.py index 00f8fd666..872049f0f 100644 --- a/backend/open_webui/utils/models.py +++ b/backend/open_webui/utils/models.py @@ -30,7 +30,7 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["MAIN"]) -async def get_all_base_models(request: Request, user: UserModel=None): +async def get_all_base_models(request: Request, user: UserModel = None): function_models = [] openai_models = [] ollama_models = [] @@ -59,7 +59,7 @@ async def get_all_base_models(request: Request, user: UserModel=None): return models -async def get_all_models(request, user: UserModel=None): +async def get_all_models(request, user: UserModel = None): models = await get_all_base_models(request, user=user) # If there are no models, return an empty list From 1a2d81bc01ecfbd0578902196834ab317f1e8d5a Mon Sep 17 00:00:00 2001 From: silentoplayz <50341825+silentoplayz@users.noreply.github.com> Date: Fri, 14 Feb 2025 12:48:33 -0500 Subject: [PATCH 04/58] Update main.py Change ASCII font for "Open WebUI" from "Standard" to "ANSI Shadow" --- backend/open_webui/main.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index a36323151..71142978c 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -348,12 +348,12 @@ class SPAStaticFiles(StaticFiles): print( rf""" - ___ __ __ _ _ _ ___ - / _ \ _ __ ___ _ __ \ \ / /__| |__ | | | |_ _| -| | | | '_ \ / _ \ '_ \ \ \ /\ / / _ \ '_ \| | | || | -| |_| | |_) | __/ | | | \ V V / __/ |_) | |_| || | - \___/| .__/ \___|_| |_| \_/\_/ \___|_.__/ \___/|___| - |_| + ██████╗ ██████╗ ███████╗███╗ ██╗ ██╗ ██╗███████╗██████╗ ██╗ ██╗██╗ +██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██║ ██║██╔════╝██╔══██╗██║ ██║██║ +██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ █╗ ██║█████╗ ██████╔╝██║ ██║██║ +██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║██║ +╚██████╔╝██║ ███████╗██║ ╚████║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║ + ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝ v{VERSION} - building the best open-source AI user interface. From 08df5f6d7cc43d478d96fd00c801db773e0ebe3d Mon Sep 17 00:00:00 2001 From: Aleix Dorca Date: Thu, 20 Feb 2025 20:24:58 +0100 Subject: [PATCH 05/58] Update catalan translation.json --- src/lib/i18n/locales/ca-ES/translation.json | 100 ++++++++++---------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index e99cbbce4..963fdcd60 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -20,7 +20,7 @@ "Account Activation Pending": "Activació del compte pendent", "Accurate information": "Informació precisa", "Actions": "Accions", - "Activate": "", + "Activate": "Activar", "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Activa aquest comanda escrivint \"{{COMMAND}}\" en el xat", "Active Users": "Usuaris actius", "Add": "Afegir", @@ -100,7 +100,7 @@ "Audio": "Àudio", "August": "Agost", "Authenticate": "Autenticar", - "Authentication": "", + "Authentication": "Autenticació", "Auto-Copy Response to Clipboard": "Copiar la resposta automàticament al porta-retalls", "Auto-playback response": "Reproduir la resposta automàticament", "Autocomplete Generation": "Generació automàtica", @@ -124,11 +124,11 @@ "Beta": "Beta", "Bing Search V7 Endpoint": "Punt de connexió a Bing Search V7", "Bing Search V7 Subscription Key": "Clau de subscripció a Bing Search V7", - "Bocha Search API Key": "", + "Bocha Search API Key": "Clau API de Bocha Search", "Brave Search API Key": "Clau API de Brave Search", "By {{name}}": "Per {{name}}", "Bypass SSL verification for Websites": "Desactivar la verificació SSL per a l'accés a Internet", - "Calendar": "", + "Calendar": "Calendari", "Call": "Trucada", "Call feature is not supported when using Web STT engine": "La funció de trucada no s'admet quan s'utilitza el motor Web STT", "Camera": "Càmera", @@ -180,13 +180,13 @@ "Clone of {{TITLE}}": "Clon de {{TITLE}}", "Close": "Tancar", "Code execution": "Execució de codi", - "Code Execution": "", - "Code Execution Engine": "", - "Code Execution Timeout": "", + "Code Execution": "Excució de Codi", + "Code Execution Engine": "Motor d'execució de codi", + "Code Execution Timeout": "Temps màxim d'execució de codi", "Code formatted successfully": "Codi formatat correctament", "Code Interpreter": "Intèrpret de codi", - "Code Interpreter Engine": "", - "Code Interpreter Prompt Template": "", + "Code Interpreter Engine": "Motor de l'intèrpret de codi", + "Code Interpreter Prompt Template": "Plantilla de la indicació de l'intèrpret de codi", "Collection": "Col·lecció", "Color": "Color", "ComfyUI": "ComfyUI", @@ -203,7 +203,7 @@ "Confirm Password": "Confirmar la contrasenya", "Confirm your action": "Confirma la teva acció", "Confirm your new password": "Confirma la teva nova contrasenya", - "Connect to your own OpenAI compatible API endpoints.": "", + "Connect to your own OpenAI compatible API endpoints.": "Connecta als teus propis punts de connexió de l'API compatible amb OpenAI", "Connections": "Connexions", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort. (Default: medium)": "Restringeix l'esforç de raonament dels models de raonament. Només aplicable a models de raonament de proveïdors específics que donen suport a l'esforç de raonament. (Per defecte: mitjà)", "Contact Admin for WebUI Access": "Posat en contacte amb l'administrador per accedir a WebUI", @@ -215,7 +215,7 @@ "Continue with Email": "Continuar amb el correu", "Continue with LDAP": "Continuar amb LDAP", "Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "Controlar com es divideix el text del missatge per a les sol·licituds TTS. 'Puntuació' divideix en frases, 'paràgrafs' divideix en paràgrafs i 'cap' manté el missatge com una cadena única.", - "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled. (Default: 1.1)": "", + "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled. (Default: 1.1)": "Controlar la repetició de seqüències de tokens en el text generat. Un valor més alt (p. ex., 1,5) penalitzarà les repeticions amb més força, mentre que un valor més baix (p. ex., 1,1) serà més indulgent. A l'1, està desactivat. (Per defecte: 1.1)", "Controls": "Controls", "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "Controlar l'equilibri entre la coherència i la diversitat de la sortida. Un valor més baix donarà lloc a un text més enfocat i coherent. (Per defecte: 5.0)", "Copied": "Copiat", @@ -227,7 +227,7 @@ "Copy Link": "Copiar l'enllaç", "Copy to clipboard": "Copiar al porta-retalls", "Copying to clipboard was successful!": "La còpia al porta-retalls s'ha realitzat correctament", - "CORS must be properly configured by the provider to allow requests from Open WebUI.": "", + "CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS ha de ser configurat correctament pel proveïdor per permetre les sol·licituds d'Open WebUI", "Create": "Crear", "Create a knowledge base": "Crear una base de coneixement", "Create a model": "Crear un model", @@ -271,7 +271,7 @@ "Delete folder?": "Eliminar la carpeta?", "Delete function?": "Eliminar funció?", "Delete Message": "Eleiminar el missatge", - "Delete message?": "", + "Delete message?": "Eliminar el missatge?", "Delete prompt?": "Eliminar indicació?", "delete this link": "Eliminar aquest enllaç", "Delete tool?": "Eliminar eina?", @@ -282,15 +282,15 @@ "Describe your knowledge base and objectives": "Descriu la teva base de coneixement i objectius", "Description": "Descripció", "Didn't fully follow instructions": "No s'han seguit les instruccions completament", - "Direct Connections": "", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", - "Direct Connections settings updated": "", + "Direct Connections": "Connexions directes", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permeten als usuaris connectar-se als seus propis endpoints d'API compatibles amb OpenAI.", + "Direct Connections settings updated": "Configuració de les connexions directes actualitzada", "Disabled": "Deshabilitat", "Discover a function": "Descobrir una funció", "Discover a model": "Descobrir un model", "Discover a prompt": "Descobrir una indicació", "Discover a tool": "Descobrir una eina", - "Discover how to use Open WebUI and seek support from the community.": "", + "Discover how to use Open WebUI and seek support from the community.": "Descobreix com utilitzar Open WebUI i demana suport a la comunitat.", "Discover wonders": "Descobrir meravelles", "Discover, download, and explore custom functions": "Descobrir, descarregar i explorar funcions personalitzades", "Discover, download, and explore custom prompts": "Descobrir, descarregar i explorar indicacions personalitzades", @@ -315,14 +315,14 @@ "Don't like the style": "No t'agrada l'estil?", "Done": "Fet", "Download": "Descarregar", - "Download as SVG": "", + "Download as SVG": "Descarrega com a SVG", "Download canceled": "Descàrrega cancel·lada", "Download Database": "Descarregar la base de dades", "Drag and drop a file to upload or select a file to view": "Arrossegar un arxiu per pujar o escull un arxiu a veure", "Draw": "Dibuixar", "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'.", - "e.g. 60": "", + "e.g. 60": "p. ex. 60", "e.g. A filter to remove profanity from text": "p. ex. Un filtre per eliminar paraules malsonants del text", "e.g. My Filter": "p. ex. El meu filtre", "e.g. My Tools": "p. ex. Les meves eines", @@ -346,7 +346,7 @@ "Embedding model set to \"{{embedding_model}}\"": "Model d'incrustació configurat a \"{{embedding_model}}\"", "Enable API Key": "Activar la Clau API", "Enable autocomplete generation for chat messages": "Activar la generació automàtica per als missatges del xat", - "Enable Code Interpreter": "", + "Enable Code Interpreter": "Activar l'intèrpret de codi", "Enable Community Sharing": "Activar l'ús compartit amb la comunitat", "Enable Google Drive": "Activar Google Drive", "Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Activar el bloqueig de memòria (mlock) per evitar que les dades del model s'intercanviïn fora de la memòria RAM. Aquesta opció bloqueja el conjunt de pàgines de treball del model a la memòria RAM, assegurant-se que no s'intercanviaran al disc. Això pot ajudar a mantenir el rendiment evitant errors de pàgina i garantint un accés ràpid a les dades.", @@ -365,7 +365,7 @@ "Enter Application DN Password": "Introdueix la contrasenya del DN d'aplicació", "Enter Bing Search V7 Endpoint": "Introdueix el punt de connexió de Bing Search V7", "Enter Bing Search V7 Subscription Key": "Introdueix la clau de subscripció de Bing Search V7", - "Enter Bocha Search API Key": "", + "Enter Bocha Search API Key": "Introdueix la clau API de Bocha Search", "Enter Brave Search API Key": "Introdueix la clau API de Brave Search", "Enter certificate path": "Introdueix el camí del certificat", "Enter CFG Scale (e.g. 7.0)": "Entra l'escala CFG (p.ex. 7.0)", @@ -379,9 +379,9 @@ "Enter Google PSE Engine Id": "Introdueix l'identificador del motor PSE de Google", "Enter Image Size (e.g. 512x512)": "Introdueix la mida de la imatge (p. ex. 512x512)", "Enter Jina API Key": "Introdueix la clau API de Jina", - "Enter Jupyter Password": "", - "Enter Jupyter Token": "", - "Enter Jupyter URL": "", + "Enter Jupyter Password": "Introdueix la contrasenya de Jupyter", + "Enter Jupyter Token": "Introdueix el token de Jupyter", + "Enter Jupyter URL": "Introdueix la URL de Jupyter", "Enter Kagi Search API Key": "Introdueix la clau API de Kagi Search", "Enter language codes": "Introdueix els codis de llenguatge", "Enter Model ID": "Introdueix l'identificador del model", @@ -397,8 +397,8 @@ "Enter SearchApi Engine": "Introdueix el motor SearchApi", "Enter Searxng Query URL": "Introdueix l'URL de consulta de Searxng", "Enter Seed": "Introdueix la llavor", - "Enter SerpApi API Key": "", - "Enter SerpApi Engine": "", + "Enter SerpApi API Key": "Introdueix la clau API SerpApi", + "Enter SerpApi Engine": "Introdueix el motor API SerpApi", "Enter Serper API Key": "Introdueix la clau API Serper", "Enter Serply API Key": "Introdueix la clau API Serply", "Enter Serpstack API Key": "Introdueix la clau API Serpstack", @@ -410,7 +410,7 @@ "Enter Tavily API Key": "Introdueix la clau API de Tavily", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Entra la URL pública de WebUI. Aquesta URL s'utilitzarà per generar els enllaços en les notificacions.", "Enter Tika Server URL": "Introdueix l'URL del servidor Tika", - "Enter timeout in seconds": "", + "Enter timeout in seconds": "Entra el temps màxim en segons", "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)": "Introdueix l'URL (p. ex. http://localhost:11434)", @@ -458,7 +458,7 @@ "Failed to save models configuration": "No s'ha pogut desar la configuració dels models", "Failed to update settings": "No s'han pogut actualitzar les preferències", "Failed to upload file.": "No s'ha pogut pujar l'arxiu.", - "Features": "", + "Features": "Característiques", "Features Permissions": "Permisos de les característiques", "February": "Febrer", "Feedback History": "Històric de comentaris", @@ -488,7 +488,7 @@ "Form": "Formulari", "Format your variables using brackets like this:": "Formata les teves variables utilitzant claudàtors així:", "Frequency Penalty": "Penalització per freqüència", - "Full Context Mode": "", + "Full Context Mode": "Mode de context complert", "Function": "Funció", "Function Calling": "Crida a funcions", "Function created successfully": "La funció s'ha creat correctament", @@ -503,9 +503,9 @@ "Functions allow arbitrary code execution": "Les funcions permeten l'execució de codi arbitrari", "Functions allow arbitrary code execution.": "Les funcions permeten l'execució de codi arbitrari.", "Functions imported successfully": "Les funcions s'han importat correctament", - "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", + "Gemini": "Gemini", + "Gemini API Config": "Configuració de Gemini API", + "Gemini API Key is required.": "La clau API de Gemini és necessària", "General": "General", "General Settings": "Preferències generals", "Generate an image": "Generar una imatge", @@ -532,7 +532,7 @@ "Hex Color": "Color hexadecimal", "Hex Color - Leave empty for default color": "Color hexadecimal - Deixar buit per a color per defecte", "Hide": "Amaga", - "Home": "", + "Home": "Inici", "Host": "Servidor", "How can I help you today?": "Com et puc ajudar avui?", "How would you rate this response?": "Com avaluaries aquesta resposta?", @@ -576,8 +576,8 @@ "JSON Preview": "Vista prèvia del document JSON", "July": "Juliol", "June": "Juny", - "Jupyter Auth": "", - "Jupyter URL": "", + "Jupyter Auth": "Autenticació Jupyter", + "Jupyter URL": "URL de Jupyter", "JWT Expiration": "Caducitat del JWT", "JWT Token": "Token JWT", "Kagi Search API Key": "Clau API de Kagi Search", @@ -607,12 +607,12 @@ "Leave empty to include all models or select specific models": "Deixa-ho en blanc per incloure tots els models o selecciona models específics", "Leave empty to use the default prompt, or enter a custom prompt": "Deixa-ho en blanc per utilitzar la indicació predeterminada o introdueix una indicació personalitzada", "Leave model field empty to use the default model.": "Deixa el camp de model buit per utilitzar el model per defecte.", - "License": "", + "License": "Llicència", "Light": "Clar", "Listening...": "Escoltant...", "Llama.cpp": "Llama.cpp", "LLMs can make mistakes. Verify important information.": "Els models de llenguatge poden cometre errors. Verifica la informació important.", - "Loading Kokoro.js...": "", + "Loading Kokoro.js...": "Carregant Kokoro.js", "Local": "Local", "Local Models": "Models locals", "Lost": "Perdut", @@ -622,7 +622,7 @@ "Make sure to export a workflow.json file as API format from ComfyUI.": "Assegura't d'exportar un fitxer workflow.json com a format API des de ComfyUI.", "Manage": "Gestionar", "Manage Arena Models": "Gestionar els models de l'Arena", - "Manage Direct Connections": "", + "Manage Direct Connections": "Gestionar les connexions directes", "Manage Models": "Gestionar els models", "Manage Ollama": "Gestionar Ollama", "Manage Ollama API Connections": "Gestionar les connexions a l'API d'Ollama", @@ -766,7 +766,7 @@ "Plain text (.txt)": "Text pla (.txt)", "Playground": "Zona de jocs", "Please carefully review the following warnings:": "Si us plau, revisa els següents avisos amb cura:", - "Please do not close the settings page while loading the model.": "", + "Please do not close the settings page while loading the model.": "No tanquis la pàgina de configuració mentre carregues el model.", "Please enter a prompt": "Si us plau, entra una indicació", "Please fill in all fields.": "Emplena tots els camps, si us plau.", "Please select a model first.": "Si us plau, selecciona un model primer", @@ -776,7 +776,7 @@ "Positive attitude": "Actitud positiva", "Prefix ID": "Identificador del prefix", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "L'identificador de prefix s'utilitza per evitar conflictes amb altres connexions afegint un prefix als ID de model; deixa'l en blanc per desactivar-lo.", - "Presence Penalty": "", + "Presence Penalty": "Penalització de presència", "Previous 30 days": "30 dies anteriors", "Previous 7 days": "7 dies anteriors", "Profile Image": "Imatge de perfil", @@ -813,7 +813,7 @@ "Rename": "Canviar el nom", "Reorder Models": "Reordenar els models", "Repeat Last N": "Repeteix els darrers N", - "Repeat Penalty (Ollama)": "", + "Repeat Penalty (Ollama)": "Penalització per repetició (Ollama)", "Reply in Thread": "Respondre al fil", "Request Mode": "Mode de sol·licitud", "Reranking Model": "Model de reavaluació", @@ -876,7 +876,7 @@ "Select a pipeline": "Seleccionar una Pipeline", "Select a pipeline url": "Seleccionar l'URL d'una Pipeline", "Select a tool": "Seleccionar una eina", - "Select an auth method": "", + "Select an auth method": "Seleccionar un mètode d'autenticació", "Select an Ollama instance": "Seleccionar una instància d'Ollama", "Select Engine": "Seleccionar el motor", "Select Knowledge": "Seleccionar coneixement", @@ -889,8 +889,8 @@ "Send message": "Enviar missatge", "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "Envia `stream_options: { include_usage: true }` a la sol·licitud.\nEls proveïdors compatibles retornaran la informació d'ús del token a la resposta quan s'estableixi.", "September": "Setembre", - "SerpApi API Key": "", - "SerpApi Engine": "", + "SerpApi API Key": "Clau API de SerpApi", + "SerpApi Engine": "Motor de SerpApi", "Serper API Key": "Clau API de Serper", "Serply API Key": "Clau API de Serply", "Serpstack API Key": "Clau API de Serpstack", @@ -910,8 +910,8 @@ "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "Establir el nombre de fils de treball utilitzats per al càlcul. Aquesta opció controla quants fils s'utilitzen per processar les sol·licituds entrants simultàniament. Augmentar aquest valor pot millorar el rendiment amb càrregues de treball de concurrència elevada, però també pot consumir més recursos de CPU.", "Set Voice": "Establir la veu", "Set whisper model": "Establir el model whisper", - "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 0)": "", - "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 1.1)": "", + "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 0)": "Estableix un biaix pla contra tokens que han aparegut almenys una vegada. Un valor més alt (p. ex., 1,5) penalitzarà les repeticions amb més força, mentre que un valor més baix (p. ex., 0,9) serà més indulgent. A 0, està desactivat. (Per defecte: 0)", + "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 1.1)": "Estableix un biaix d'escala contra tokens per penalitzar les repeticions, en funció de quantes vegades han aparegut. Un valor més alt (p. ex., 1,5) penalitzarà les repeticions amb més força, mentre que un valor més baix (p. ex., 0,9) serà més indulgent. A 0, està desactivat. (Per defecte: 1.1)", "Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "Establir fins a quin punt el model mira enrere per evitar la repetició. (Per defecte: 64, 0 = desactivat, -1 = num_ctx)", "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "Establir la llavor del nombre aleatori que s'utilitzarà per a la generació. Establir-ho a un número específic farà que el model generi el mateix text per a la mateixa sol·licitud. (Per defecte: aleatori)", "Sets the size of the context window used to generate the next token. (Default: 2048)": "Estableix la mida de la finestra de context utilitzada per generar el següent token. (Per defecte: 2048)", @@ -958,7 +958,7 @@ "Tags Generation Prompt": "Indicació per a la generació d'etiquetes", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "El mostreig sense cua s'utilitza per reduir l'impacte de tokens menys probables de la sortida. Un valor més alt (p. ex., 2,0) reduirà més l'impacte, mentre que un valor d'1,0 desactiva aquesta configuració. (per defecte: 1)", "Tap to interrupt": "Prem per interrompre", - "Tasks": "", + "Tasks": "Tasques", "Tavily API Key": "Clau API de Tavily", "Tell us more:": "Dona'ns més informació:", "Temperature": "Temperatura", @@ -1005,7 +1005,7 @@ "Title (e.g. Tell me a fun fact)": "Títol (p. ex. Digues-me quelcom divertit)", "Title Auto-Generation": "Generació automàtica de títol", "Title cannot be an empty string.": "El títol no pot ser una cadena buida.", - "Title Generation": "", + "Title Generation": "Generació de títols", "Title Generation Prompt": "Indicació de generació de títol", "TLS": "TLS", "To access the available model names for downloading,": "Per accedir als noms dels models disponibles per descarregar,", @@ -1062,7 +1062,7 @@ "Updated": "Actualitzat", "Updated at": "Actualitzat el", "Updated At": "Actualitzat el", - "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", + "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Actualitzar a un pla amb llicència per obtenir capacitats millorades, com ara la temàtica personalitzada i la marca, i assistència dedicada.", "Upload": "Pujar", "Upload a GGUF model": "Pujar un model GGUF", "Upload directory": "Pujar directori", @@ -1101,7 +1101,7 @@ "Warning:": "Avís:", "Warning: Enabling this will allow users to upload arbitrary code on the server.": "Avís: Habilitar això permetrà als usuaris penjar codi arbitrari al servidor.", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si s'actualitza o es canvia el model d'incrustació, s'hauran de tornar a importar tots els documents.", - "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", + "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Avís: l'execució de Jupyter permet l'execució de codi arbitrari, la qual cosa comporta greus riscos de seguretat; procediu amb extrema precaució.", "Web": "Web", "Web API": "Web API", "Web Loader Settings": "Preferències del carregador web", From a8859a81454a55f80c15a72a3c87507ef23459a0 Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 20 Feb 2025 21:25:32 +0100 Subject: [PATCH 06/58] Fix on ollama to openai conversion - stream can return a single message with content --- backend/open_webui/utils/response.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/utils/response.py b/backend/open_webui/utils/response.py index bc47e1e13..8c3f1a58e 100644 --- a/backend/open_webui/utils/response.py +++ b/backend/open_webui/utils/response.py @@ -104,7 +104,7 @@ async def convert_streaming_response_ollama_to_openai(ollama_streaming_response) data = json.loads(data) model = data.get("model", "ollama") - message_content = data.get("message", {}).get("content", "") + message_content = data.get("message", {}).get("content", None) tool_calls = data.get("message", {}).get("tool_calls", None) openai_tool_calls = None @@ -118,7 +118,7 @@ async def convert_streaming_response_ollama_to_openai(ollama_streaming_response) usage = convert_ollama_usage_to_openai(data) data = openai_chat_chunk_message_template( - model, message_content if not done else None, openai_tool_calls, usage + model, message_content, openai_tool_calls, usage ) line = f"data: {json.dumps(data)}\n\n" From 1332a0d3815c46bff5d4bf55c6ce1f6373cdd5f2 Mon Sep 17 00:00:00 2001 From: "Richard (Huangrui) Chu" <65276824+HuangruiChu@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:07:32 -0500 Subject: [PATCH 07/58] Update zh-CN translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. remove the typo ”‘’" for -1 表示无限制,正整数表示具体限制” 2. Token should be kept rather than translated as "标记" 3. Max Tokens (num_predict) should be "最大Token数量 (num_predict)" 4. "Enter Jupyter Token" here “Token" could be translated as ”令牌“ just as "JWT Token": "JWT 令牌", (line 582) 5. "TLS" which means "Transport Layer Security" should be translated to "传输层安全协议" 6. "Tokens To Keep On Context Refresh (num_keep)" "在语境刷新时需保留的 Token 数量" 7. change token to "Token" in the Chinese translation. --- src/lib/i18n/locales/zh-CN/translation.json | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index 66f6a5913..6bf556aa4 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -1,5 +1,5 @@ { - "-1 for no limit, or a positive integer for a specific limit": "-1 表示无限制,正整数表示具体限制”", + "-1 for no limit, or a positive integer for a specific limit": "-1 表示无限制,正整数表示具体限制", "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' 或 '-1' 表示无过期时间。", "(e.g. `sh webui.sh --api --api-auth username_password`)": "(例如 `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)", @@ -63,7 +63,7 @@ "Allow Voice Interruption in Call": "允许通话中的打断语音", "Allowed Endpoints": "允许的端点", "Already have an account?": "已经拥有账号了?", - "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "top_p的替代方法,目标是在质量和多样性之间取得平衡。参数p表示一个token相对于最有可能的token所需的最低概率。比如,当p=0.05且最有可能的token概率为0.9时,概率低于0.045的logits会被排除。(默认值:0.0)", + "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "top_p的替代方法,目标是在质量和多样性之间取得平衡。参数p表示一个Token相对于最有可能的Token所需的最低概率。比如,当p=0.05且最有可能的Token概率为0.9时,概率低于0.045的logits会被排除。(默认值:0.0)", "Always": "保持", "Amazing": "很棒", "an assistant": "一个助手", @@ -380,7 +380,7 @@ "Enter Image Size (e.g. 512x512)": "输入图像分辨率 (例如:512x512)", "Enter Jina API Key": "输入 Jina API 密钥", "Enter Jupyter Password": "输入 Jupyter 密码", - "Enter Jupyter Token": "输入 Jupyter Token", + "Enter Jupyter Token": "输入 Jupyter 令牌", "Enter Jupyter URL": "输入 Jupyter URL", "Enter Kagi Search API Key": "输入 Kagi Search API 密钥", "Enter language codes": "输入语言代码", @@ -629,7 +629,7 @@ "Manage OpenAI API Connections": "管理OpenAI API连接", "Manage Pipelines": "管理 Pipeline", "March": "三月", - "Max Tokens (num_predict)": "最多 Token (num_predict)", + "Max Tokens (num_predict)": "最大Token数量 (num_predict)", "Max Upload Count": "最大上传数量", "Max Upload Size": "最大上传大小", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载 3 个模型,请稍后重试。", @@ -910,14 +910,14 @@ "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "设置用于计算的工作线程数量。该选项可控制并发处理传入请求的线程数量。增加该值可以提高高并发工作负载下的性能,但也可能消耗更多的 CPU 资源。", "Set Voice": "设置音色", "Set whisper model": "设置 whisper 模型", - "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 0)": "这个设置项用于调整对重复 tokens 的抑制强度。当某个 token 至少出现过一次后,系统会通过 flat bias 参数施加惩罚力度:数值越大(如 1.5),抑制重复的效果越强烈;数值较小(如 0.9)则相对宽容。当设为 0 时,系统会完全关闭这个重复抑制功能(默认值为 0)。", - "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 1.1)": "这个参数用于通过 scaling bias 机制抑制重复内容:当某些 tokens 重复出现时,系统会根据它们已出现的次数自动施加惩罚。数值越大(如 1.5)惩罚力度越强,能更有效减少重复;数值较小(如 0.9)则允许更多重复。当设为 0 时完全关闭该功能,默认值设置为 1.1 保持适度抑制。", + "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 0)": "这个设置项用于调整对重复 Token 的抑制强度。当某个 Token 至少出现过一次后,系统会通过 flat bias 参数施加惩罚力度:数值越大(如 1.5),抑制重复的效果越强烈;数值较小(如 0.9)则相对宽容。当设为 0 时,系统会完全关闭这个重复抑制功能(默认值为 0)。", + "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled. (Default: 1.1)": "这个参数用于通过 scaling bias 机制抑制重复内容:当某些 Token 重复出现时,系统会根据它们已出现的次数自动施加惩罚。数值越大(如 1.5)惩罚力度越强,能更有效减少重复;数值较小(如 0.9)则允许更多重复。当设为 0 时完全关闭该功能,默认值设置为 1.1 保持适度抑制。", "Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "设置模型回溯多远以防止重复。(默认值:64,0 = 禁用,-1 = num_ctx)", "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "设置 random number seed 可以控制模型生成文本的随机起点。如果指定一个具体数字,当输入相同的提示语时,模型每次都会生成完全相同的文本内容(默认是随机选取 seed)。", "Sets the size of the context window used to generate the next token. (Default: 2048)": "设置用于生成下一个 Token 的上下文大小。(默认值:2048)", "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "设置要使用的停止序列。遇到这种模式时,大语言模型将停止生成文本并返回。可以通过在模型文件中指定多个单独的停止参数来设置多个停止模式。", "Settings": "设置", - "Settings saved successfully!": "设置已保存", + "Settings saved successfully!": "设置已成功保存!", "Share": "分享", "Share Chat": "分享对话", "Share to Open WebUI Community": "分享到 OpenWebUI 社区", @@ -956,7 +956,7 @@ "System Prompt": "系统提示词 (System Prompt)", "Tags Generation": "标签生成", "Tags Generation Prompt": "标签生成提示词", - "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling 用于减少输出中可能性较低的标记的影响。数值越大(如 2.0),影响就越小,而数值为 1.0 则会禁用此设置。(默认值:1)", + "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling 用于减少输出中可能性较低的Token的影响。数值越大(如 2.0),影响就越小,而数值为 1.0 则会禁用此设置。(默认值:1)", "Tap to interrupt": "点击以中断", "Tasks": "任务", "Tavily API Key": "Tavily API 密钥", @@ -985,7 +985,7 @@ "This action cannot be undone. Do you wish to continue?": "此操作无法撤销。是否确认继续?", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "这将确保您的宝贵对话被安全地保存到后台数据库中。感谢!", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "这是一个实验功能,可能不会如预期那样工作,而且可能随时发生变化。", - "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "该选项控制刷新上下文时保留多少标记。例如,如果设置为 2,就会保留对话上下文的最后 2 个标记。保留上下文有助于保持对话的连续性,但可能会降低回复新话题的能力。(默认值:24)", + "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "该选项控制刷新上下文时保留多少Token。例如,如果设置为 2,就会保留对话上下文的最后 2 个Token。保留上下文有助于保持对话的连续性,但可能会降低回复新话题的能力。(默认值:24)", "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "此选项设置了模型在回答中可以生成的最大 Token 数。增加这个限制可以让模型提供更长的答案,但也可能增加生成无用或不相关内容的可能性。 (默认值:128)", "This option will delete all existing files in the collection and replace them with newly uploaded files.": "此选项将会删除文件集中所有文件,并用新上传的文件替换。", "This response was generated by \"{{model}}\"": "此回复由 \"{{model}}\" 生成", @@ -1007,7 +1007,7 @@ "Title cannot be an empty string.": "标题不能为空。", "Title Generation": "标题生成", "Title Generation Prompt": "用于自动生成标题的提示词", - "TLS": "TLS", + "TLS": "传输层安全协议", "To access the available model names for downloading,": "要访问可下载的模型名称,", "To access the GGUF models available for downloading,": "要访问可下载的 GGUF 模型,", "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "请联系管理员以访问。管理员可以在后台管理面板中管理用户状态。", @@ -1022,7 +1022,7 @@ "Toggle settings": "切换设置", "Toggle sidebar": "切换侧边栏", "Token": "Token", - "Tokens To Keep On Context Refresh (num_keep)": "在语境刷新时需保留的 Tokens", + "Tokens To Keep On Context Refresh (num_keep)": "在语境刷新时需保留的 Token 数量", "Too verbose": "过于冗长", "Tool created successfully": "工具创建成功", "Tool deleted successfully": "工具删除成功", From e31f680788910b04a1709271979c1b416f1b839a Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 20 Feb 2025 20:46:00 -0800 Subject: [PATCH 08/58] refac --- backend/open_webui/routers/tasks.py | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/backend/open_webui/routers/tasks.py b/backend/open_webui/routers/tasks.py index 0328cefe0..b63c9732a 100644 --- a/backend/open_webui/routers/tasks.py +++ b/backend/open_webui/routers/tasks.py @@ -20,6 +20,10 @@ from open_webui.utils.auth import get_admin_user, get_verified_user from open_webui.constants import TASKS from open_webui.routers.pipelines import process_pipeline_inlet_filter +from open_webui.utils.filter import ( + get_sorted_filter_ids, + process_filter_functions, +) from open_webui.utils.task import get_task_model_id from open_webui.config import ( @@ -221,6 +225,12 @@ async def generate_title( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -290,6 +300,12 @@ async def generate_chat_tags( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -356,6 +372,12 @@ async def generate_image_prompt( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -433,6 +455,12 @@ async def generate_queries( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -514,6 +542,12 @@ async def generate_autocompletion( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -584,6 +618,12 @@ async def generate_emoji( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: @@ -644,6 +684,12 @@ async def generate_moa_response( }, } + # Process the payload through the pipeline + try: + payload = await process_pipeline_inlet_filter(request, payload, user, models) + except Exception as e: + raise e + try: return await generate_chat_completion(request, form_data=payload, user=user) except Exception as e: From 68e33b53867de331ed71682d2dff869c55fb0856 Mon Sep 17 00:00:00 2001 From: Karl Lee <61072264+KarlLee830@users.noreply.github.com> Date: Fri, 21 Feb 2025 14:58:40 +0800 Subject: [PATCH 09/58] i18n: Update Chinese Translation --- src/lib/i18n/locales/zh-CN/translation.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index 6bf556aa4..b0db571ba 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -995,8 +995,8 @@ "This will delete all models including custom models and cannot be undone.": "这将删除所有模型,包括自定义模型,且无法撤销。", "This will reset the knowledge base and sync all files. Do you wish to continue?": "这将重置知识库并替换所有文件为目录下文件。确认继续?", "Thorough explanation": "解释较为详细", - "Thought for {{DURATION}}": "已推理 持续 {{DURATION}}", - "Thought for {{DURATION}} seconds": "已推理 持续 {{DURATION}} 秒", + "Thought for {{DURATION}}": "思考用时 {{DURATION}}", + "Thought for {{DURATION}} seconds": "思考用时 {{DURATION}} 秒", "Tika": "Tika", "Tika Server URL required.": "请输入 Tika 服务器地址。", "Tiktoken": "Tiktoken", From ab1f2ae914301dfa080a3495813c98901e0c870c Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Fri, 21 Feb 2025 08:24:48 +0100 Subject: [PATCH 10/58] feat/async-pipes --- backend/open_webui/functions.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/open_webui/functions.py b/backend/open_webui/functions.py index 274be56ec..2f94f701e 100644 --- a/backend/open_webui/functions.py +++ b/backend/open_webui/functions.py @@ -2,6 +2,7 @@ import logging import sys import inspect import json +import asyncio from pydantic import BaseModel from typing import AsyncGenerator, Generator, Iterator @@ -76,11 +77,13 @@ async def get_function_models(request): if hasattr(function_module, "pipes"): sub_pipes = [] - # Check if pipes is a function or a list - + # Handle pipes being a list, sync function, or async function try: if callable(function_module.pipes): - sub_pipes = function_module.pipes() + if asyncio.iscoroutinefunction(function_module.pipes): + sub_pipes = await function_module.pipes() + else: + sub_pipes = function_module.pipes() else: sub_pipes = function_module.pipes except Exception as e: From 2993332b387c4230a4f5676c178bf4ece4384cdf Mon Sep 17 00:00:00 2001 From: huanght Date: Fri, 21 Feb 2025 16:10:11 +0800 Subject: [PATCH 11/58] fix:Quick selection tool lost --- src/lib/components/chat/Chat.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index fcd5177d7..98be06f5c 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -187,15 +187,20 @@ setToolIds(); } + $: if (atSelectedModel || selectedModels) { + setToolIds(); + } + const setToolIds = async () => { if (!$tools) { tools.set(await getTools(localStorage.token)); } - if (selectedModels.length !== 1) { + if (selectedModels.length !== 1 && !atSelectedModel) { return; } - const model = $models.find((m) => m.id === selectedModels[0]); + + const model = atSelectedModel ?? $models.find((m) => m.id === selectedModels[0]); if (model) { selectedToolIds = (model?.info?.meta?.toolIds ?? []).filter((id) => $tools.find((t) => t.id === id) From cdf620e6eedd797a01a984e510bc67761a051b14 Mon Sep 17 00:00:00 2001 From: Coleton M Date: Fri, 21 Feb 2025 04:41:45 -0600 Subject: [PATCH 12/58] Update audio.py to fetch custom URL voices and models --- backend/open_webui/routers/audio.py | 40 ++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/backend/open_webui/routers/audio.py b/backend/open_webui/routers/audio.py index a970366d1..a8cd3d14a 100644 --- a/backend/open_webui/routers/audio.py +++ b/backend/open_webui/routers/audio.py @@ -679,8 +679,21 @@ def transcription( def get_available_models(request: Request) -> list[dict]: available_models = [] + """if request.app.state.config.TTS_ENGINE == "openai": + available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}]""" if request.app.state.config.TTS_ENGINE == "openai": - available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}] + # Use custom endpoint if not using the official OpenAI API URL + if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): + try: + response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models") + response.raise_for_status() + data = response.json() + available_models = data.get("models", []) + except Exception as e: + log.error(f"Error fetching models from custom endpoint: {str(e)}") + available_models = [] + else: + available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}] elif request.app.state.config.TTS_ENGINE == "elevenlabs": try: response = requests.get( @@ -710,7 +723,7 @@ async def get_models(request: Request, user=Depends(get_verified_user)): def get_available_voices(request) -> dict: """Returns {voice_id: voice_name} dict""" available_voices = {} - if request.app.state.config.TTS_ENGINE == "openai": + """if request.app.state.config.TTS_ENGINE == "openai": available_voices = { "alloy": "alloy", "echo": "echo", @@ -718,7 +731,28 @@ def get_available_voices(request) -> dict: "onyx": "onyx", "nova": "nova", "shimmer": "shimmer", - } + }""" + if request.app.state.config.TTS_ENGINE == "openai": + # Use custom endpoint if not using the official OpenAI API URL + if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): + try: + response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices") + response.raise_for_status() + data = response.json() + voices_list = data.get("voices", []) + available_voices = {voice["id"]: voice["name"] for voice in voices_list} + except Exception as e: + log.error(f"Error fetching voices from custom endpoint: {str(e)}") + available_voices = {} + else: + available_voices = { + "alloy": "alloy", + "echo": "echo", + "fable": "fable", + "onyx": "onyx", + "nova": "nova", + "shimmer": "shimmer", + } elif request.app.state.config.TTS_ENGINE == "elevenlabs": try: available_voices = get_elevenlabs_voices( From f789ad59a9e57b15e8218e7b5d36293051fbf44f Mon Sep 17 00:00:00 2001 From: Synergyst Date: Fri, 21 Feb 2025 04:47:46 -0600 Subject: [PATCH 13/58] Update audio.py Removed original code that was commented out --- backend/open_webui/routers/audio.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/backend/open_webui/routers/audio.py b/backend/open_webui/routers/audio.py index a8cd3d14a..12c9dbc6d 100644 --- a/backend/open_webui/routers/audio.py +++ b/backend/open_webui/routers/audio.py @@ -679,8 +679,6 @@ def transcription( def get_available_models(request: Request) -> list[dict]: available_models = [] - """if request.app.state.config.TTS_ENGINE == "openai": - available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}]""" if request.app.state.config.TTS_ENGINE == "openai": # Use custom endpoint if not using the official OpenAI API URL if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): @@ -723,15 +721,6 @@ async def get_models(request: Request, user=Depends(get_verified_user)): def get_available_voices(request) -> dict: """Returns {voice_id: voice_name} dict""" available_voices = {} - """if request.app.state.config.TTS_ENGINE == "openai": - available_voices = { - "alloy": "alloy", - "echo": "echo", - "fable": "fable", - "onyx": "onyx", - "nova": "nova", - "shimmer": "shimmer", - }""" if request.app.state.config.TTS_ENGINE == "openai": # Use custom endpoint if not using the official OpenAI API URL if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): From c4b441de6518d1c8bf0fa59b2c837984158fb9a8 Mon Sep 17 00:00:00 2001 From: Bob McElrath Date: Fri, 21 Feb 2025 09:12:34 -0500 Subject: [PATCH 14/58] Support thinking tags used by Openthinker --- backend/open_webui/utils/middleware.py | 53 ++++++++++++++++++-------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 7ec764fc0..8c82b7074 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -1127,12 +1127,12 @@ async def process_chat_response( if reasoning_duration is not None: if raw: - content = f'{content}\n<{block["tag"]}>{block["content"]}\n' + content = f'{content}\n<{block["start_tag"]}>{block["content"]}<{block["end_tag"]}>\n' else: content = f'{content}\n
\nThought for {reasoning_duration} seconds\n{reasoning_display_content}\n
\n' else: if raw: - content = f'{content}\n<{block["tag"]}>{block["content"]}\n' + content = f'{content}\n<{block["start_tag"]}>{block["content"]}<{block["end_tag"]}>\n' else: content = f'{content}\n
\nThinking…\n{reasoning_display_content}\n
\n' @@ -1228,9 +1228,9 @@ async def process_chat_response( return attributes if content_blocks[-1]["type"] == "text": - for tag in tags: + for start_tag, end_tag in tags: # Match start tag e.g., or - start_tag_pattern = rf"<{tag}(\s.*?)?>" + start_tag_pattern = rf"<{re.escape(start_tag)}(\s.*?)?>" match = re.search(start_tag_pattern, content) if match: attr_content = ( @@ -1263,7 +1263,8 @@ async def process_chat_response( content_blocks.append( { "type": content_type, - "tag": tag, + "start_tag": start_tag, + "end_tag": end_tag, "attributes": attributes, "content": "", "started_at": time.time(), @@ -1275,9 +1276,10 @@ async def process_chat_response( break elif content_blocks[-1]["type"] == content_type: - tag = content_blocks[-1]["tag"] + start_tag = content_blocks[-1]["start_tag"] + end_tag = content_blocks[-1]["end_tag"] # Match end tag e.g., - end_tag_pattern = rf"" + end_tag_pattern = rf"<{re.escape(end_tag)}>" # Check if the content has the end tag if re.search(end_tag_pattern, content): @@ -1285,7 +1287,7 @@ async def process_chat_response( block_content = content_blocks[-1]["content"] # Strip start and end tags from the content - start_tag_pattern = rf"<{tag}(.*?)>" + start_tag_pattern = rf"<{re.escape(start_tag)}(.*?)>" block_content = re.sub( start_tag_pattern, "", block_content ).strip() @@ -1350,7 +1352,7 @@ async def process_chat_response( # Clean processed content content = re.sub( - rf"<{tag}(.*?)>(.|\n)*?", + rf"<{re.escape(start_tag)}(.*?)>(.|\n)*?<{re.escape(end_tag)}>", "", content, flags=re.DOTALL, @@ -1388,19 +1390,28 @@ async def process_chat_response( # We might want to disable this by default DETECT_REASONING = True + DETECT_SOLUTION = True DETECT_CODE_INTERPRETER = metadata.get("features", {}).get( "code_interpreter", False ) reasoning_tags = [ - "think", - "thinking", - "reason", - "reasoning", - "thought", - "Thought", + ("think", "/think"), + ("thinking", "/thinking"), + ("reason", "/reason"), + ("reasoning", "/reasoning"), + ("thought", "/thought"), + ("Thought", "/Thought"), + ("|begin_of_thought|", "|end_of_thought|") + ] + + code_interpreter_tags = [ + ("code_interpreter", "/code_interpreter") + ] + + solution_tags = [ + ("|begin_of_solution|", "|end_of_solution|") ] - code_interpreter_tags = ["code_interpreter"] try: for event in events: @@ -1533,6 +1544,16 @@ async def process_chat_response( if end: break + if DETECT_SOLUTION: + content, content_blocks, _ = ( + tag_content_handler( + "solution", + solution_tags, + content, + content_blocks, + ) + ) + if ENABLE_REALTIME_CHAT_SAVE: # Save message in the database Chats.upsert_message_to_chat_by_id_and_message_id( From fb3886cf04d1431e7dae6968f607634999404b45 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Feb 2025 18:46:10 +0100 Subject: [PATCH 15/58] Added support for stop parameter --- backend/open_webui/utils/payload.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/open_webui/utils/payload.py b/backend/open_webui/utils/payload.py index 51e8d50cc..4c1bbad9a 100644 --- a/backend/open_webui/utils/payload.py +++ b/backend/open_webui/utils/payload.py @@ -230,6 +230,12 @@ def convert_payload_openai_to_ollama(openai_payload: dict) -> dict: "system" ] # To prevent Ollama warning of invalid option provided + # If there is the "stop" parameter in the openai_payload, remap it to the ollama_payload.options + if "stop" in openai_payload: + ollama_options = ollama_payload.get("options", {}) + ollama_options["stop"] = openai_payload.get("stop") + ollama_payload["options"] = ollama_options + if "metadata" in openai_payload: ollama_payload["metadata"] = openai_payload["metadata"] From 613a087387c094e71ee91d29c015195ef401e160 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 10:55:03 -0800 Subject: [PATCH 16/58] refac --- backend/open_webui/routers/audio.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/backend/open_webui/routers/audio.py b/backend/open_webui/routers/audio.py index 12c9dbc6d..8eb111205 100644 --- a/backend/open_webui/routers/audio.py +++ b/backend/open_webui/routers/audio.py @@ -681,15 +681,19 @@ def get_available_models(request: Request) -> list[dict]: available_models = [] if request.app.state.config.TTS_ENGINE == "openai": # Use custom endpoint if not using the official OpenAI API URL - if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): + if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith( + "https://api.openai.com" + ): try: - response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models") + response = requests.get( + f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/models" + ) response.raise_for_status() data = response.json() available_models = data.get("models", []) except Exception as e: log.error(f"Error fetching models from custom endpoint: {str(e)}") - available_models = [] + available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}] else: available_models = [{"id": "tts-1"}, {"id": "tts-1-hd"}] elif request.app.state.config.TTS_ENGINE == "elevenlabs": @@ -723,16 +727,27 @@ def get_available_voices(request) -> dict: available_voices = {} if request.app.state.config.TTS_ENGINE == "openai": # Use custom endpoint if not using the official OpenAI API URL - if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith("https://api.openai.com"): + if not request.app.state.config.TTS_OPENAI_API_BASE_URL.startswith( + "https://api.openai.com" + ): try: - response = requests.get(f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices") + response = requests.get( + f"{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/voices" + ) response.raise_for_status() data = response.json() voices_list = data.get("voices", []) available_voices = {voice["id"]: voice["name"] for voice in voices_list} except Exception as e: log.error(f"Error fetching voices from custom endpoint: {str(e)}") - available_voices = {} + available_voices = { + "alloy": "alloy", + "echo": "echo", + "fable": "fable", + "onyx": "onyx", + "nova": "nova", + "shimmer": "shimmer", + } else: available_voices = { "alloy": "alloy", From a7d8ed0c6dc6b66ee9d37dc3a7d9812da71a7d7f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 12:11:21 -0800 Subject: [PATCH 17/58] refac --- src/lib/components/chat/Chat.svelte | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 98be06f5c..7de69f693 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1493,7 +1493,10 @@ params?.system ?? $settings?.system ?? '', $user.name, $settings?.userLocation - ? await getAndUpdateUserLocation(localStorage.token) + ? await getAndUpdateUserLocation(localStorage.token).catch((err) => { + console.error(err); + return undefined; + }) : undefined )}${ (responseMessage?.userContext ?? null) @@ -1578,7 +1581,12 @@ variables: { ...getPromptVariables( $user.name, - $settings?.userLocation ? await getAndUpdateUserLocation(localStorage.token) : undefined + $settings?.userLocation + ? await getAndUpdateUserLocation(localStorage.token).catch((err) => { + console.error(err); + return undefined; + }) + : undefined ) }, model_item: $models.find((m) => m.id === model.id), From 642dcd4b702a8e189c0d04e6899218797763a083 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 13:19:11 -0800 Subject: [PATCH 18/58] fix: model import --- .../components/workspace/Models/ModelEditor.svelte | 1 - .../(app)/workspace/models/create/+page.svelte | 12 ++++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lib/components/workspace/Models/ModelEditor.svelte b/src/lib/components/workspace/Models/ModelEditor.svelte index 34b5a4b7b..170c37f22 100644 --- a/src/lib/components/workspace/Models/ModelEditor.svelte +++ b/src/lib/components/workspace/Models/ModelEditor.svelte @@ -180,7 +180,6 @@ } if (model) { - console.log(model); name = model.name; await tick(); diff --git a/src/routes/(app)/workspace/models/create/+page.svelte b/src/routes/(app)/workspace/models/create/+page.svelte index fddf8277b..48fd5ccab 100644 --- a/src/routes/(app)/workspace/models/create/+page.svelte +++ b/src/routes/(app)/workspace/models/create/+page.svelte @@ -62,9 +62,17 @@ !['https://openwebui.com', 'https://www.openwebui.com', 'http://localhost:5173'].includes( event.origin ) - ) + ) { return; - model = JSON.parse(event.data); + } + + let data = JSON.parse(event.data); + + if (data?.info) { + data = data.info; + } + + model = data; }); if (window.opener ?? false) { From d50098b62272203b5999edff735e18fff91a2446 Mon Sep 17 00:00:00 2001 From: Jeannot Damoiseaux <62134006+jeannotdamoiseaux@users.noreply.github.com> Date: Fri, 21 Feb 2025 22:25:22 +0100 Subject: [PATCH 19/58] Fix: Ensure `user_oauth_groups` defaults to an empty list to prevent TypeError When the OAuth groups claim does not yield a list, `user_oauth_groups` was previously set to None, causing a TypeError during membership checks. Changed this default to an empty list (`[]`) to ensure the variable is always iterable, preventing errors for non-admin users while logging in. This fix ensures stability in the `update_user_groups` function. --- backend/open_webui/utils/oauth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 13835e784..0b68be2de 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -146,7 +146,7 @@ class OAuthManager: nested_claims = oauth_claim.split(".") for nested_claim in nested_claims: claim_data = claim_data.get(nested_claim, {}) - user_oauth_groups = claim_data if isinstance(claim_data, list) else None + user_oauth_groups = claim_data if isinstance(claim_data, list) else [] user_current_groups: list[GroupModel] = Groups.get_groups_by_member_id(user.id) all_available_groups: list[GroupModel] = Groups.get_groups() From b14e75dd6cd4887202940bb99f649540ab3d7a1f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 13:40:11 -0800 Subject: [PATCH 20/58] feat: added Trust Proxy Environment switch in Web Search admin settings tab. Co-Authored-By: harry zhou <67385896+harryzhou2000@users.noreply.github.com> --- backend/open_webui/routers/retrieval.py | 1 + src/lib/components/admin/Settings/WebSearch.svelte | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 9611051b3..c2cb68c5d 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -403,6 +403,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "bing_search_v7_subscription_key": request.app.state.config.BING_SEARCH_V7_SUBSCRIPTION_KEY, "exa_api_key": request.app.state.config.EXA_API_KEY, "result_count": request.app.state.config.RAG_WEB_SEARCH_RESULT_COUNT, + "trust_env": request.app.state.config.RAG_WEB_SEARCH_TRUST_ENV, "concurrent_requests": request.app.state.config.RAG_WEB_SEARCH_CONCURRENT_REQUESTS, "domain_filter_list": request.app.state.config.RAG_WEB_SEARCH_DOMAIN_FILTER_LIST, }, diff --git a/src/lib/components/admin/Settings/WebSearch.svelte b/src/lib/components/admin/Settings/WebSearch.svelte index 84e9d0e5a..84729117b 100644 --- a/src/lib/components/admin/Settings/WebSearch.svelte +++ b/src/lib/components/admin/Settings/WebSearch.svelte @@ -130,6 +130,19 @@ +
+
{$i18n.t('Trust Proxy Environment')}
+
+ + + +
+
+ {#if webConfig.search.engine !== ''}
{#if webConfig.search.engine === 'searxng'} From 9bada6421e0e2f06a396ffbec501471aed3cc81f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 16:39:56 -0800 Subject: [PATCH 21/58] refac: code block image styling --- src/lib/components/chat/Messages/CodeBlock.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/chat/Messages/CodeBlock.svelte b/src/lib/components/chat/Messages/CodeBlock.svelte index a5d08356f..06743265a 100644 --- a/src/lib/components/chat/Messages/CodeBlock.svelte +++ b/src/lib/components/chat/Messages/CodeBlock.svelte @@ -514,7 +514,7 @@
{#each files as file} {#if file.type.startsWith('image')} - Output + Output {/if} {/each}
From 7bfa29fa815a8707f011377576c77daa74fa0db4 Mon Sep 17 00:00:00 2001 From: hopeless <99332743+pwnless@users.noreply.github.com> Date: Sat, 22 Feb 2025 12:13:14 +0800 Subject: [PATCH 22/58] Update payload.py Fixes ollama native tool calling because native tool calling content will be str '', and tool call processing will be completely ignored. --- backend/open_webui/utils/payload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/open_webui/utils/payload.py b/backend/open_webui/utils/payload.py index 4c1bbad9a..869e70895 100644 --- a/backend/open_webui/utils/payload.py +++ b/backend/open_webui/utils/payload.py @@ -124,7 +124,7 @@ def convert_messages_openai_to_ollama(messages: list[dict]) -> list[dict]: tool_call_id = message.get("tool_call_id", None) # Check if the content is a string (just a simple message) - if isinstance(content, str): + if isinstance(content, str) and not tool_calls: # If the content is a string, it's pure text new_message["content"] = content From 50dec1207299c04717b83e7df8826155b01f2a6f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 21 Feb 2025 22:15:22 -0800 Subject: [PATCH 23/58] refac --- backend/open_webui/routers/auths.py | 13 ------------- backend/open_webui/utils/oauth.py | 9 --------- 2 files changed, 22 deletions(-) diff --git a/backend/open_webui/routers/auths.py b/backend/open_webui/routers/auths.py index 3fa2ffe2e..b5a5a645a 100644 --- a/backend/open_webui/routers/auths.py +++ b/backend/open_webui/routers/auths.py @@ -252,14 +252,6 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): if not user: try: user_count = Users.get_num_users() - if ( - request.app.state.USER_COUNT - and user_count >= request.app.state.USER_COUNT - ): - raise HTTPException( - status.HTTP_403_FORBIDDEN, - detail=ERROR_MESSAGES.ACCESS_PROHIBITED, - ) role = ( "admin" @@ -439,11 +431,6 @@ async def signup(request: Request, response: Response, form_data: SignupForm): ) user_count = Users.get_num_users() - if request.app.state.USER_COUNT and user_count >= request.app.state.USER_COUNT: - raise HTTPException( - status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACCESS_PROHIBITED - ) - if not validate_email_format(form_data.email.lower()): raise HTTPException( status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.INVALID_EMAIL_FORMAT diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 0b68be2de..2af54c19d 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -315,15 +315,6 @@ class OAuthManager: if not user: user_count = Users.get_num_users() - if ( - request.app.state.USER_COUNT - and user_count >= request.app.state.USER_COUNT - ): - raise HTTPException( - 403, - detail=ERROR_MESSAGES.ACCESS_PROHIBITED, - ) - # If the user does not exist, check if signups are enabled if auth_manager_config.ENABLE_OAUTH_SIGNUP: # Check if an existing user with the same email already exists From 667d26ca12e9e640759e94f5fe69a8f88464cf16 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 22 Feb 2025 01:16:58 -0800 Subject: [PATCH 24/58] refac --- .../components/admin/Functions/FunctionEditor.svelte | 4 ++-- src/lib/components/chat/Messages/CodeBlock.svelte | 4 ++-- src/lib/components/common/CodeEditor.svelte | 11 ++++++++--- .../components/workspace/Tools/ToolkitEditor.svelte | 4 ++-- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/lib/components/admin/Functions/FunctionEditor.svelte b/src/lib/components/admin/Functions/FunctionEditor.svelte index cbdec2425..fe9b62053 100644 --- a/src/lib/components/admin/Functions/FunctionEditor.svelte +++ b/src/lib/components/admin/Functions/FunctionEditor.svelte @@ -371,10 +371,10 @@ class Pipe: value={content} lang="python" {boilerplate} - on:change={(e) => { + onChange={(e) => { _content = e.detail.value; }} - on:save={async () => { + onSave={async () => { if (formElement) { formElement.requestSubmit(); } diff --git a/src/lib/components/chat/Messages/CodeBlock.svelte b/src/lib/components/chat/Messages/CodeBlock.svelte index 06743265a..4cfaff3e5 100644 --- a/src/lib/components/chat/Messages/CodeBlock.svelte +++ b/src/lib/components/chat/Messages/CodeBlock.svelte @@ -468,10 +468,10 @@ value={code} {id} {lang} - on:save={() => { + onSave={() => { saveCode(); }} - on:change={(e) => { + onChange={(e) => { _code = e.detail.value; }} /> diff --git a/src/lib/components/common/CodeEditor.svelte b/src/lib/components/common/CodeEditor.svelte index 7d9f3a55a..d45c9eb27 100644 --- a/src/lib/components/common/CodeEditor.svelte +++ b/src/lib/components/common/CodeEditor.svelte @@ -21,6 +21,10 @@ export let boilerplate = ''; export let value = ''; + + export let onSave = () => {}; + export let onChange = () => {}; + let _value = ''; $: if (value) { @@ -75,7 +79,7 @@ }); _value = formattedCode; - dispatch('change', { value: _value }); + onChange({ value: _value }); await tick(); toast.success($i18n.t('Code formatted successfully')); @@ -94,7 +98,7 @@ EditorView.updateListener.of((e) => { if (e.docChanged) { _value = e.state.doc.toString(); - dispatch('change', { value: _value }); + onChange({ value: _value }); } }), editorTheme.of([]), @@ -170,7 +174,8 @@ const keydownHandler = async (e) => { if ((e.ctrlKey || e.metaKey) && e.key === 's') { e.preventDefault(); - dispatch('save'); + + onSave(); } // Format code when Ctrl + Shift + F is pressed diff --git a/src/lib/components/workspace/Tools/ToolkitEditor.svelte b/src/lib/components/workspace/Tools/ToolkitEditor.svelte index 60d231763..40d4715c1 100644 --- a/src/lib/components/workspace/Tools/ToolkitEditor.svelte +++ b/src/lib/components/workspace/Tools/ToolkitEditor.svelte @@ -284,10 +284,10 @@ class Tools: value={content} {boilerplate} lang="python" - on:change={(e) => { + onChange={(e) => { _content = e.detail.value; }} - on:save={() => { + onSave={() => { if (formElement) { formElement.requestSubmit(); } From 794919e91d24200f8911d307dc597a57f06843b5 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 22 Feb 2025 01:22:17 -0800 Subject: [PATCH 25/58] refac --- .../components/chat/Messages/CodeBlock.svelte | 21 +++++++------------ .../Messages/Markdown/MarkdownTokens.svelte | 4 ++-- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/lib/components/chat/Messages/CodeBlock.svelte b/src/lib/components/chat/Messages/CodeBlock.svelte index 4cfaff3e5..02879a674 100644 --- a/src/lib/components/chat/Messages/CodeBlock.svelte +++ b/src/lib/components/chat/Messages/CodeBlock.svelte @@ -1,18 +1,9 @@ @@ -802,10 +815,11 @@
{#if !edit} - {#if message.done || siblings.length > 1} -
+
+ {#if message.done || siblings.length > 1} {#if siblings.length > 1}
{/if}
From 7a63947b945a1f53c060d6da55f16c05fc2cbfcd Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 23 Feb 2025 18:41:33 -0800 Subject: [PATCH 40/58] fix: tailwind v4 ios 16.4 compatibility issue --- src/tailwind.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tailwind.css b/src/tailwind.css index f4e0c0cdd..2b672c5cc 100644 --- a/src/tailwind.css +++ b/src/tailwind.css @@ -35,6 +35,11 @@ button { @apply cursor-pointer; } + + input::placeholder, + textarea::placeholder { + color: theme(--color-gray-400); + } } @custom-variant hover (&:hover); From 802f8809dd603b047bfe1e6107e120e4c0d6ac02 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 23 Feb 2025 21:39:34 -0800 Subject: [PATCH 41/58] fix: codeblock --- src/lib/components/chat/Messages/CodeBlock.svelte | 4 ++-- .../components/chat/Messages/Markdown/MarkdownTokens.svelte | 6 +++--- src/lib/components/common/CodeEditor.svelte | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/components/chat/Messages/CodeBlock.svelte b/src/lib/components/chat/Messages/CodeBlock.svelte index 6e5e2359a..f92c66210 100644 --- a/src/lib/components/chat/Messages/CodeBlock.svelte +++ b/src/lib/components/chat/Messages/CodeBlock.svelte @@ -464,8 +464,8 @@ onSave={() => { saveCode(); }} - onChange={(e) => { - _code = e; + onChange={(value) => { + _code = value; }} /> diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte index ae5020f10..18a4585c6 100644 --- a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte +++ b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte @@ -88,14 +88,14 @@ code={token?.text ?? ''} {attributes} {save} - onCode={(e) => { - dispatch('code', e); + onCode={(value) => { + dispatch('code', value); }} onSave={(e) => { dispatch('update', { raw: token.raw, oldContent: token.text, - newContent: e + newContent: value }); }} /> diff --git a/src/lib/components/common/CodeEditor.svelte b/src/lib/components/common/CodeEditor.svelte index d45c9eb27..0c4a008f1 100644 --- a/src/lib/components/common/CodeEditor.svelte +++ b/src/lib/components/common/CodeEditor.svelte @@ -79,7 +79,7 @@ }); _value = formattedCode; - onChange({ value: _value }); + onChange(_value); await tick(); toast.success($i18n.t('Code formatted successfully')); @@ -98,7 +98,7 @@ EditorView.updateListener.of((e) => { if (e.docChanged) { _value = e.state.doc.toString(); - onChange({ value: _value }); + onChange(_value); } }), editorTheme.of([]), From dcaab9d6b57721a77e0b448c1189a95cdba62b28 Mon Sep 17 00:00:00 2001 From: Ekaterine Papava Date: Mon, 24 Feb 2025 09:07:45 +0100 Subject: [PATCH 42/58] Update Georgian translation --- src/lib/i18n/locales/ka-GE/translation.json | 994 ++++++++++---------- 1 file changed, 497 insertions(+), 497 deletions(-) diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json index 63527dc05..0ad6aa76b 100644 --- a/src/lib/i18n/locales/ka-GE/translation.json +++ b/src/lib/i18n/locales/ka-GE/translation.json @@ -1,179 +1,179 @@ { - "-1 for no limit, or a positive integer for a specific limit": "", - "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ან '-1' ვადის გასვლისთვის.", - "(e.g. `sh webui.sh --api --api-auth username_password`)": "", - "(e.g. `sh webui.sh --api`)": "(მაგ. `sh webui.sh --api`)", + "-1 for no limit, or a positive integer for a specific limit": "-1 ლიმიტის გამოსართავად, ან დადებითი მთელი რიცხვი კონკრეტული ლიმიტისთვის", + "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ან '-1' - უვადოსთვის.", + "(e.g. `sh webui.sh --api --api-auth username_password`)": "(მაგ: `sh webui.sh --api --api-auth username_password`)", + "(e.g. `sh webui.sh --api`)": "(მაგ: `sh webui.sh --api`)", "(latest)": "(უახლესი)", - "{{ models }}": "{{ models }}", - "{{COUNT}} Replies": "", + "{{ models }}": "{{ მოდელები }}", + "{{COUNT}} Replies": "{{COUNT}} პასუხი", "{{user}}'s Chats": "{{user}}-ის ჩათები", - "{{webUIName}} Backend Required": "{{webUIName}} საჭიროა ბექენდი", + "{{webUIName}} Backend Required": "{{webUIName}} საჭიროა უკანაბოლო", "*Prompt node ID(s) are required for image generation": "", - "A new version (v{{LATEST_VERSION}}) is now available.": "", + "A new version (v{{LATEST_VERSION}}) is now available.": "ხელმისაწვდომია ახალი ვერსია (v{{LATEST_VERSION}}).", "A task model is used when performing tasks such as generating titles for chats and web search queries": "დავალების მოდელი გამოიყენება ისეთი ამოცანების შესრულებისას, როგორიცაა ჩეთების სათაურების გენერირება და ვებ – ძიების მოთხოვნები", "a user": "მომხმარებელი", "About": "შესახებ", - "Access": "", - "Access Control": "", - "Accessible to all users": "", + "Access": "წვდომა", + "Access Control": "წვდომის კონტროლი", + "Accessible to all users": "ხელმისაწვდომია ყველა მომხმარებლისთვის", "Account": "ანგარიში", - "Account Activation Pending": "", - "Accurate information": "დიდი ინფორმაცია", - "Actions": "", - "Activate": "", + "Account Activation Pending": "დარჩენილი ანგარიშის აქტივაცია", + "Accurate information": "სწორი ინფორმაცია", + "Actions": "ქმედებები", + "Activate": "აქტივაცია", "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "", - "Active Users": "", + "Active Users": "აქტიური მომხმარებლები", "Add": "დამატება", - "Add a model ID": "", + "Add a model ID": "მოდელის ID-ის დამატება", "Add a short description about what this model does": "დაამატეთ მოკლე აღწერა იმის შესახებ, თუ რას აკეთებს ეს მოდელი", - "Add a tag": "დაამატე ტეგი", - "Add Arena Model": "", - "Add Connection": "", - "Add Content": "", - "Add content here": "", - "Add custom prompt": "პირველადი მოთხოვნის დამატება", + "Add a tag": "ჭდის დამატება", + "Add Arena Model": "არენის მოდელის დამატება", + "Add Connection": "შეერთების დამატება", + "Add Content": "შემცველობის დამატება", + "Add content here": "შემცველობის აქ დამატება", + "Add custom prompt": "მორგებული მოთხოვნის დამატება", "Add Files": "ფაილების დამატება", - "Add Group": "", - "Add Memory": "მემორიის დამატება", + "Add Group": "ჯგუფის დამატება", + "Add Memory": "მეხსიერების დამატება", "Add Model": "მოდელის დამატება", - "Add Reaction": "", - "Add Tag": "", - "Add Tags": "ტეგების დამატება", - "Add text content": "", + "Add Reaction": "რეაქციის დამატება", + "Add Tag": "ჭდის დამატება", + "Add Tags": "ჭდეების დამატება", + "Add text content": "ტექსტური შემცველობის დამატება", "Add User": "მომხმარებლის დამატება", - "Add User Group": "", - "Adjusting these settings will apply changes universally to all users.": "ამ პარამეტრების რეგულირება ცვლილებებს უნივერსალურად გამოიყენებს ყველა მომხმარებლისთვის", + "Add User Group": "მომხმარებლის ჯგუფის დამატება", + "Adjusting these settings will apply changes universally to all users.": "ამ პარამეტრების რეგულირება ცვლილებებს უნივერსალურად გამოიყენებს ყველა მომხმარებლისთვის.", "admin": "ადმინისტრატორი", - "Admin": "", - "Admin Panel": "ადმინ პანელი", - "Admin Settings": "ადმინისტრატორის ხელსაწყოები", + "Admin": "ადმინი", + "Admin Panel": "ადმინისტრატორის პანელი", + "Admin Settings": "ადმინისტრატორის მორგება", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "", "Advanced Parameters": "დამატებითი პარამეტრები", - "Advanced Params": "მოწინავე პარამები", + "Advanced Params": "დამატებითი პარამეტრები", "All Documents": "ყველა დოკუმენტი", - "All models deleted successfully": "", - "Allow Chat Controls": "", - "Allow Chat Delete": "", - "Allow Chat Deletion": "მიმოწერის წაშლის დაშვება", - "Allow Chat Edit": "", - "Allow File Upload": "", - "Allow non-local voices": "", - "Allow Temporary Chat": "", - "Allow User Location": "", + "All models deleted successfully": "ყველა მოდელი წარმატებით წაიშალა", + "Allow Chat Controls": "ჩატის კონტროლის ელემენტების დაშვება", + "Allow Chat Delete": "ჩატის წაშლის დაშვება", + "Allow Chat Deletion": "ჩატის წაშლის დაშვება", + "Allow Chat Edit": "ჩატის ჩასწორების დაშვება", + "Allow File Upload": "ფაილის ატვირთვის დაშვება", + "Allow non-local voices": "არალოკალური ხმების დაშვება", + "Allow Temporary Chat": "დროებითი ჩატის დაშვება", + "Allow User Location": "მომხმარებლის მდებარეობის დაშვება", "Allow Voice Interruption in Call": "", - "Allowed Endpoints": "", - "Already have an account?": "უკვე გაქვს ანგარიში?", + "Allowed Endpoints": "დაშვებული ბოლოწერტილები", + "Already have an account?": "უკვე გაქვთ ანგარიში?", "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "", - "Always": "", - "Amazing": "", - "an assistant": "ასისტენტი", - "Analyzed": "", - "Analyzing...": "", + "Always": "ყოველთვის", + "Amazing": "გადასარევია", + "an assistant": "დამხმარე", + "Analyzed": "გაანაზლიებულია", + "Analyzing...": "ანალიზი...", "and": "და", - "and {{COUNT}} more": "", - "and create a new shared link.": "და შექმენით ახალი გაზიარებული ბმული.", - "API Base URL": "API საბაზისო URL", + "and {{COUNT}} more": "და კიდევ {{COUNT}}", + "and create a new shared link.": "და ახალი გაზიარებული ბმულის შექმნა.", + "API Base URL": "API-ის საბაზისო URL", "API Key": "API გასაღები", - "API Key created.": "API გასაღები შექმნილია.", + "API Key created.": "API გასაღები შეიქმნა.", "API Key Endpoint Restrictions": "", - "API keys": "API გასაღები", - "Application DN": "", - "Application DN Password": "", + "API keys": "API გასაღებები", + "Application DN": "აპლიკაციის DN", + "Application DN Password": "აპლიკაციის DN-ის პაროლი", "applies to all users with the \"user\" role": "", "April": "აპრილი", - "Archive": "არქივი", - "Archive All Chats": "არქივი ყველა ჩატი", - "Archived Chats": "ჩატის ისტორიის არქივი", + "Archive": "დაარქივება", + "Archive All Chats": "ყველა ჩატის დაარქივება", + "Archived Chats": "დაარქივებული ჩატები", "archived-chat-export": "", "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", - "Are you sure?": "დარწმუნებული ხარ?", - "Arena Models": "", - "Artifacts": "", - "Ask a question": "", - "Assistant": "", - "Attach file": "ფაილის ჩაწერა", - "Attention to detail": "დეტალური მიმართვა", - "Attribute for Mail": "", - "Attribute for Username": "", - "Audio": "ხმოვანი", + "Are you sure?": "დარწმუნებული ბრძანდებით?", + "Arena Models": "არენის მოდელები", + "Artifacts": "არტეფაქტები", + "Ask a question": "კითხვის დასმა", + "Assistant": "დამხმარე", + "Attach file": "ფაილის მიმაგრება", + "Attention to detail": "ყურადღებით დეტალებთან", + "Attribute for Mail": "ატრიბუტი ფოსტისთვის", + "Attribute for Username": "ატრიბუტი მომხმარებლის სახელისთვის", + "Audio": "აუდიო", "August": "აგვისტო", - "Authenticate": "", - "Authentication": "", + "Authenticate": "ავთენტიკაცია", + "Authentication": "ავთენტიკაცია", "Auto-Copy Response to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში", "Auto-playback response": "ავტომატური დაკვრის პასუხი", "Autocomplete Generation": "", "Autocomplete Generation Input Max Length": "", - "Automatic1111": "", + "Automatic1111": "Automatic1111", "AUTOMATIC1111 Api Auth String": "", "AUTOMATIC1111 Base URL": "AUTOMATIC1111 საბაზისო მისამართი", - "AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 საბაზისო მისამართი აუცილებელია", - "Available list": "", + "AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 საბაზისო მისამართი აუცილებელია.", + "Available list": "ხელმისაწვდომი სია", "available!": "ხელმისაწვდომია!", - "Awful": "", + "Awful": "საშინელი", "Azure AI Speech": "", - "Azure Region": "", + "Azure Region": "Azure-ის რეგიონი", "Back": "უკან", - "Bad Response": "ხარვეზი", - "Banners": "რეკლამა", - "Base Model (From)": "საბაზო მოდელი (-დან)", + "Bad Response": "არასწორი პასუხი", + "Banners": "ბანერები", + "Base Model (From)": "საბაზისო მოდელი (საიდან)", "Batch Size (num_batch)": "", - "before": "ადგილზე", - "Being lazy": "ჩაიტყვევა", - "Beta": "", + "before": "მითითებულ დრომდე", + "Being lazy": "ზარმაცობა", + "Beta": "ბეტა", "Bing Search V7 Endpoint": "", "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", - "Brave Search API Key": "Brave Search API გასაღები", - "By {{name}}": "", + "Brave Search API Key": "Brave Search API-ის გასაღები", + "By {{name}}": "ავტორი {{name}}", "Bypass SSL verification for Websites": "SSL-ის ვერიფიკაციის გააუქმება ვებსაიტებზე", - "Calendar": "", - "Call": "", + "Calendar": "კალენდარი", + "Call": "ზარი", "Call feature is not supported when using Web STT engine": "", - "Camera": "", + "Camera": "კამერა", "Cancel": "გაუქმება", "Capabilities": "შესაძლებლობები", - "Capture": "", - "Certificate Path": "", + "Capture": "ჩაჭერა", + "Certificate Path": "სერტიფიკატის ბილიკი", "Change Password": "პაროლის შეცვლა", - "Channel Name": "", - "Channels": "", - "Character": "", + "Channel Name": "არხის სახელი", + "Channels": "არხები", + "Character": "სიმბოლო", "Character limit for autocomplete generation input": "", "Chart new frontiers": "", - "Chat": "მიმოწერა", + "Chat": "ჩატი", "Chat Background Image": "", - "Chat Bubble UI": "ჩატის ბულბი", + "Chat Bubble UI": "ჩატის ბუშტის ინტერფეისი", "Chat Controls": "", "Chat direction": "ჩატის მიმართულება", "Chat Overview": "", "Chat Permissions": "", "Chat Tags Auto-Generation": "", - "Chats": "მიმოწერები", + "Chats": "საუბრები", "Check Again": "თავიდან შემოწმება", - "Check for updates": "განახლებების ძიება", - "Checking for updates...": "მიმდინარეობს განახლებების ძიება...", + "Check for updates": "განახლებების შემოწმება", + "Checking for updates...": "განახლებების შემოწმება...", "Choose a model before saving...": "აირჩიეთ მოდელი შენახვამდე...", - "Chunk Overlap": "გადახურვა ფრაგმენტულია", - "Chunk Params": "გადახურვის პარამეტრები", - "Chunk Size": "გადახურვის ზომა", + "Chunk Overlap": "ფრაგმენტის გადაფარვა", + "Chunk Params": "ფრაგმენტის პარამეტრები", + "Chunk Size": "ფრაგმენტის ზომა", "Ciphers": "", "Citation": "ციტატა", "Clear memory": "", - "click here": "", + "click here": "აქ დააწკაპუნეთ", "Click here for filter guides.": "", - "Click here for help.": "დახმარებისთვის, დააკლიკე აქ", - "Click here to": "დააკლიკე აქ", + "Click here for help.": "დახმარებისთვის დააწკაპუნეთ აქ.", + "Click here to": "დააწკაპუნეთ აქ", "Click here to download user import template file.": "", "Click here to learn more about faster-whisper and see the available models.": "", "Click here to see available models.": "", - "Click here to select": "ასარჩევად, დააკლიკე აქ", - "Click here to select a csv file.": "ასარჩევად, დააკლიკე აქ", + "Click here to select": "ასარჩევად დააწკაპუნეთ აქ", + "Click here to select a csv file.": "დააწკაპუნეთ აქ csv ფაილის ასარჩევად.", "Click here to select a py file.": "", "Click here to upload a workflow.json file.": "", - "click here.": "დააკლიკე აქ", - "Click on the user role button to change a user's role.": "დააკლიკეთ მომხმარებლის როლის ღილაკს რომ შეცვალოთ მომხმარების როლი", + "click here.": "დააწკაპუნეთ აქ.", + "Click on the user role button to change a user's role.": "მომხმარებლის როლის შესაცვლელად დააწკაპუნეთ მომხმარებლის როლზე.", "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "", "Clone": "კლონი", "Clone Chat": "", @@ -187,8 +187,8 @@ "Code Interpreter": "", "Code Interpreter Engine": "", "Code Interpreter Prompt Template": "", - "Collection": "ნაკრები", - "Color": "", + "Collection": "კოლექცია", + "Color": "ფერი", "ComfyUI": "ComfyUI", "ComfyUI API Key": "", "ComfyUI Base URL": "ComfyUI საბაზისო URL", @@ -197,17 +197,17 @@ "ComfyUI Workflow Nodes": "", "Command": "ბრძანება", "Completions": "", - "Concurrent Requests": "თანმხლები მოთხოვნები", - "Configure": "", - "Confirm": "", - "Confirm Password": "პაროლის დამოწმება", + "Concurrent Requests": "ერთდროული მოთხოვნები", + "Configure": "მორგება", + "Confirm": "დადასტურება", + "Confirm Password": "გაიმეორეთ პაროლი", "Confirm your action": "", "Confirm your new password": "", "Connect to your own OpenAI compatible API endpoints.": "", "Connections": "კავშირები", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort. (Default: medium)": "", "Contact Admin for WebUI Access": "", - "Content": "კონტენტი", + "Content": "შემცველობა", "Content Extraction": "", "Context Length": "კონტექსტის სიგრძე", "Continue Response": "პასუხის გაგრძელება", @@ -216,134 +216,134 @@ "Continue with LDAP": "", "Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "", "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled. (Default: 1.1)": "", - "Controls": "", + "Controls": "მმართველები", "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "", - "Copied": "", - "Copied shared chat URL to clipboard!": "ყავს ჩათის URL-ი კლიპბორდში!", - "Copied to clipboard": "", + "Copied": "დაკოპირდა", + "Copied shared chat URL to clipboard!": "გაზიარებული ჩატის ბმული დაკოპირდა ბუფერში!", + "Copied to clipboard": "დაკოპირდა გაცვლის ბაფერში", "Copy": "კოპირება", - "Copy last code block": "ბოლო ბლოკის კოპირება", + "Copy last code block": "ბოლო კოდის ბლოკის კოპირება", "Copy last response": "ბოლო პასუხის კოპირება", - "Copy Link": "კოპირება", - "Copy to clipboard": "", - "Copying to clipboard was successful!": "კლავიატურაზე კოპირება წარმატებით დასრულდა", + "Copy Link": "ბმულის კოპირება", + "Copy to clipboard": "ბუფერში კოპირება", + "Copying to clipboard was successful!": "გაცვლის ბუფერში კოპირება წარმატებულია!", "CORS must be properly configured by the provider to allow requests from Open WebUI.": "", - "Create": "", + "Create": "შექმნა", "Create a knowledge base": "", - "Create a model": "შექმენით მოდელი", + "Create a model": "მოდელის შექმნა", "Create Account": "ანგარიშის შექმნა", "Create Admin Account": "", - "Create Channel": "", - "Create Group": "", + "Create Channel": "არხის შექმნა", + "Create Group": "ჯგუფის შექმნა", "Create Knowledge": "", - "Create new key": "პირადი ღირებულბრის შექმნა", - "Create new secret key": "პირადი ღირებულბრის შექმნა", - "Created at": "შექმნილია", - "Created At": "შექმნილია", - "Created by": "", - "CSV Import": "", + "Create new key": "ახალი გასაღების შექმნა", + "Create new secret key": "ახალი საიდუმლო გასაღების შექმნა", + "Created at": "შექმნის დრო", + "Created At": "შექმნის დრო", + "Created by": "ავტორი", + "CSV Import": "CSV-ის შემოტანა", "Current Model": "მიმდინარე მოდელი", "Current Password": "მიმდინარე პაროლი", - "Custom": "საკუთარი", + "Custom": "ხელით", "Dark": "მუქი", "Database": "მონაცემთა ბაზა", "December": "დეკემბერი", - "Default": "დეფოლტი", + "Default": "ნაგულისხმევი", "Default (Open AI)": "", - "Default (SentenceTransformers)": "დეფოლტ (SentenceTransformers)", + "Default (SentenceTransformers)": "ნაგულისხმევი (SentenceTransformers)", "Default mode works with a wider range of models by calling tools once before execution. Native mode leverages the model’s built-in tool-calling capabilities, but requires the model to inherently support this feature.": "", - "Default Model": "ნაგულისხმები მოდელი", - "Default model updated": "დეფოლტ მოდელი განახლებულია", + "Default Model": "ნაგულისხმევი მოდელი", + "Default model updated": "ნაგულისხმევი მოდელი განახლდა", "Default Models": "", - "Default permissions": "", + "Default permissions": "ნაგულისხმები წვდომები", "Default permissions updated successfully": "", - "Default Prompt Suggestions": "დეფოლტ პრომპტი პირველი პირველი", + "Default Prompt Suggestions": "ნაგულისხმევი მოთხოვნის მინიშნებები", "Default to 389 or 636 if TLS is enabled": "", "Default to ALL": "", - "Default User Role": "მომხმარებლის დეფოლტ როლი", + "Default User Role": "მომხმარებლის ნაგულისხმევი როლი", "Delete": "წაშლა", "Delete a model": "მოდელის წაშლა", "Delete All Chats": "ყველა ჩატის წაშლა", "Delete All Models": "", - "Delete chat": "შეტყობინების წაშლა", - "Delete Chat": "შეტყობინების წაშლა", - "Delete chat?": "", - "Delete folder?": "", - "Delete function?": "", - "Delete Message": "", - "Delete message?": "", - "Delete prompt?": "", - "delete this link": "ბმულის წაშლა", - "Delete tool?": "", + "Delete chat": "საუბრის წაშლა", + "Delete Chat": "საუბრის წაშლა", + "Delete chat?": "წავშალო ჩატი?", + "Delete folder?": "წავშალო საქაღალდეები?", + "Delete function?": "წავშალო ფუნქცია?", + "Delete Message": "შეტყობინების წაშლა", + "Delete message?": "წავშალო შეტყობინება?", + "Delete prompt?": "წავშალო მოთხოვნის ზოლი?", + "delete this link": "ამ ბმული წაშლა", + "Delete tool?": "წავშალო ხელსაწყო?", "Delete User": "მომხმარებლის წაშლა", "Deleted {{deleteModelTag}}": "{{deleteModelTag}} წაშლილია", "Deleted {{name}}": "Deleted {{name}}", - "Deleted User": "", + "Deleted User": "წაშლილი მომხმარებელი", "Describe your knowledge base and objectives": "", "Description": "აღწერა", - "Didn't fully follow instructions": "ვერ ყველა ინფორმაციისთვის ვერ ხელახლა ჩაწერე", - "Direct Connections": "", + "Didn't fully follow instructions": "ინსტრუქციებს სრულად არ მივყევი", + "Direct Connections": "პირდაპირი მიერთება", "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", "Direct Connections settings updated": "", - "Disabled": "", + "Disabled": "გამორთული", "Discover a function": "", - "Discover a model": "გაიგეთ მოდელი", + "Discover a model": "აღმოაჩინეთ მოდელი", "Discover a prompt": "აღმოაჩინეთ მოთხოვნა", "Discover a tool": "", "Discover how to use Open WebUI and seek support from the community.": "", "Discover wonders": "", "Discover, download, and explore custom functions": "", - "Discover, download, and explore custom prompts": "აღმოაჩინეთ, ჩამოტვირთეთ და შეისწავლეთ მორგებული მოთხოვნები", + "Discover, download, and explore custom prompts": "აღმოაჩინეთ, გადმოწერეთ და შეისწავლეთ მორგებული მოთხოვნები", "Discover, download, and explore custom tools": "", - "Discover, download, and explore model presets": "აღმოაჩინეთ, ჩამოტვირთეთ და შეისწავლეთ მოდელის წინასწარ პარამეტრები", + "Discover, download, and explore model presets": "აღმოაჩინეთ, გადმოწერეთ და შეისწავლეთ მოდელის პარამეტრები", "Dismissible": "", - "Display": "", + "Display": "ჩვენება", "Display Emoji in Call": "", - "Display the username instead of You in the Chat": "ჩატში აჩვენე მომხმარებლის სახელი თქვენს ნაცვლად", + "Display the username instead of You in the Chat": "ჩატში თქვენს მაგიერ მომხმარებლის სახელის ჩვენება", "Displays citations in the response": "", "Dive into knowledge": "", "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "დოკუმენტი", - "Documentation": "", + "Documentation": "დოკუმენტაცია", "Documents": "დოკუმენტები", - "does not make any external connections, and your data stays securely on your locally hosted server.": "არ ამყარებს გარე კავშირებს და თქვენი მონაცემები უსაფრთხოდ რჩება თქვენს ადგილობრივ სერვერზე.", + "does not make any external connections, and your data stays securely on your locally hosted server.": "არ ამყარებს გარე კავშირებს და თქვენი მონაცემები უსაფრთხოდ რჩება თქვენს ლოკალურ სერვერზე.", "Domain Filter List": "", - "Don't have an account?": "არ გაქვს ანგარიში?", + "Don't have an account?": "არ გაქვთ ანგარიში?", "don't install random functions from sources you don't trust.": "", "don't install random tools from sources you don't trust.": "", - "Don't like the style": "არ ეთიკურია ფართოდ", - "Done": "", - "Download": "ჩამოტვირთვა გაუქმებულია", + "Don't like the style": "არ მომწონს სტილი", + "Done": "დასრულებული", + "Download": "გადმოწერა", "Download as SVG": "", - "Download canceled": "ჩამოტვირთვა გაუქმებულია", - "Download Database": "გადმოწერე მონაცემთა ბაზა", + "Download canceled": "გადმოწერა გაუქმდა", + "Download Database": "მონაცემთა ბაზის გადმოწერა", "Drag and drop a file to upload or select a file to view": "", - "Draw": "", - "Drop any files here to add to the conversation": "გადაიტანეთ ფაილები აქ, რათა დაამატოთ ისინი მიმოწერაში", - "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგალითად, '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.", - "e.g. 60": "", + "Draw": "ხატვა", + "Drop any files here to add to the conversation": "დაყარეთ ფაილები აქ მათი საუბარში ჩასამატებლად", + "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგ: '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.", + "e.g. 60": "მაგ: 60", "e.g. A filter to remove profanity from text": "", - "e.g. My Filter": "", - "e.g. My Tools": "", - "e.g. my_filter": "", - "e.g. my_tools": "", + "e.g. My Filter": "მაგ: ჩემი ფილტრი", + "e.g. My Tools": "მაგ: ჩემი ხელსაწყოები", + "e.g. my_filter": "მაგ: ჩემი_ფილტრი", + "e.g. my_tools": "მაგ: ჩემი_ხელსაწყოები", "e.g. Tools for performing various operations": "", - "Edit": "რედაქტირება", - "Edit Arena Model": "", - "Edit Channel": "", - "Edit Connection": "", - "Edit Default Permissions": "", - "Edit Memory": "", - "Edit User": "მომხმარებლის ედიტირება", - "Edit User Group": "", - "ElevenLabs": "", - "Email": "ელ-ფოსტა", + "Edit": "ჩასწორება", + "Edit Arena Model": "არენის მოდელის ჩასწორება", + "Edit Channel": "არხის ჩასწორება", + "Edit Connection": "შეერთების ჩასწორება", + "Edit Default Permissions": "ნაგულისხმევი წვდომების ჩასწორება", + "Edit Memory": "მეხსიერების ჩასწორება", + "Edit User": "მომხმარებლის ჩასწორება", + "Edit User Group": "მომხმარებლის ჯგუფის ჩასწორება", + "ElevenLabs": "ElevenLabs", + "Email": "ელფოსტა", "Embark on adventures": "", "Embedding Batch Size": "", - "Embedding Model": "ჩასმის ძირითადი პროგრამა", - "Embedding Model Engine": "ჩასმის ძირითადი პროგრამა", - "Embedding model set to \"{{embedding_model}}\"": "ჩასმის ძირითადი პროგრამა ჩართულია \"{{embedding_model}}\"", + "Embedding Model": "მოდელის ჩაშენება", + "Embedding Model Engine": "ჩაშენებული მოდელის ძრავა", + "Embedding model set to \"{{embedding_model}}\"": "ჩაშენებული მოდელი დაყენებულია მნიშვნელობაზე \"{{embedding_model}}\"", "Enable API Key": "", "Enable autocomplete generation for chat messages": "", "Enable Code Interpreter": "", @@ -355,27 +355,27 @@ "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "ახალი რეგისტრაციების ჩართვა", "Enable Web Search": "ვებ ძიების ჩართვა", - "Enabled": "", - "Engine": "", - "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "გთხოვთ, უზრუნველყოთ, რომთქვევის CSV-ფაილი შეიცავს 4 ველი, ჩაწერილი ორივე ველი უდრის პირველი ველით.", + "Enabled": "ჩართულია", + "Engine": "ძრავი", + "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": "შეიყვანე დეტალი ჩემთათვის, რომ ჩვენი LLMs-ს შეიძლოს აღაქვს", + "Enter a detail about yourself for your LLMs to recall": "შეიყვანეთ რამე თქვენს შესახებ, რომ თქვენმა LLM-მა გაიხსენოს", "Enter api auth string (e.g. username:password)": "", "Enter Application DN": "", "Enter Application DN Password": "", "Enter Bing Search V7 Endpoint": "", "Enter Bing Search V7 Subscription Key": "", "Enter Bocha Search API Key": "", - "Enter Brave Search API Key": "შეიყვანეთ Brave Search API გასაღები", + "Enter Brave Search API Key": "შეიყვანეთ Brave Search API-ის გასაღები", "Enter certificate path": "", "Enter CFG Scale (e.g. 7.0)": "", - "Enter Chunk Overlap": "შეიყვანეთ ნაწილის გადახურვა", - "Enter Chunk Size": "შეიყვანე ბლოკის ზომა", - "Enter description": "", + "Enter Chunk Overlap": "შეიყვანეთ ფრაგმენტის გადაფარვა", + "Enter Chunk Size": "შეიყვანე ფრაგმენტის ზომა", + "Enter description": "შეიყვანეთ აღწერა", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "შეიყვანეთ Github Raw URL", - "Enter Google PSE API Key": "შეიყვანეთ Google PSE API გასაღები", + "Enter Google PSE API Key": "შეიყვანეთ Google PSE API-ის გასაღები", "Enter Google PSE Engine Id": "შეიყვანეთ Google PSE ძრავის ID", "Enter Image Size (e.g. 512x512)": "შეიყვანეთ სურათის ზომა (მაგ. 512x512)", "Enter Jina API Key": "", @@ -383,9 +383,9 @@ "Enter Jupyter Token": "", "Enter Jupyter URL": "", "Enter Kagi Search API Key": "", - "Enter language codes": "შეიყვანეთ ენის კოდი", + "Enter language codes": "შეიყვანეთ ენის კოდები", "Enter Model ID": "", - "Enter model tag (e.g. {{modelTag}})": "შეიყვანეთ მოდელის ტეგი (მაგ. {{modelTag}})", + "Enter model tag (e.g. {{modelTag}})": "შეიყვანეთ მოდელის ჭდე (მაგ: {{modelTag}})", "Enter Mojeek Search API Key": "", "Enter Number of Steps (e.g. 50)": "შეიყვანეთ ნაბიჯების რაოდენობა (მაგ. 50)", "Enter proxy URL (e.g. https://user:password@host:port)": "", @@ -405,26 +405,26 @@ "Enter server host": "", "Enter server label": "", "Enter server port": "", - "Enter stop sequence": "შეიყვანეთ ტოპ თანმიმდევრობა", + "Enter stop sequence": "შეიყვანეთ გაჩერების მიმდევრობა", "Enter system prompt": "", "Enter Tavily API Key": "", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "", "Enter Tika Server URL": "", "Enter timeout in seconds": "", "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)": "შეიყვანეთ მისამართი (მაგალითად http://localhost:11434)", - "Enter your current password": "", - "Enter Your Email": "შეიყვანეთ თქვენი ელ-ფოსტა", + "Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ ბმული (მაგ: http://127.0.0.1:7860/)", + "Enter URL (e.g. http://localhost:11434)": "შეიყვანეთ ბმული (მაგ: http://localhost:11434)", + "Enter your current password": "შეიყვანეთ თქვენი მიმდინარე პაროლი", + "Enter Your Email": "შეიყვანეთ თქვენი ელფოსტა", "Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი", "Enter your message": "", - "Enter your new password": "", + "Enter your new password": "შეიყვანეთ თქვენი ახალი პაროლი", "Enter Your Password": "შეიყვანეთ თქვენი პაროლი", "Enter Your Role": "შეიყვანეთ თქვენი როლი", "Enter Your Username": "", "Enter your webhook URL": "", "Error": "შეცდომა", - "ERROR": "", + "ERROR": "ERROR", "Error accessing Google Drive: {{error}}": "", "Error uploading file: {{error}}": "", "Evaluations": "", @@ -434,62 +434,62 @@ "Example: mail": "", "Example: ou=users,dc=foo,dc=example": "", "Example: sAMAccountName or uid or userPrincipalName": "", - "Exclude": "", + "Exclude": "გამორიცხვა", "Execute code for analysis": "", - "Experimental": "ექსპერიმენტალური", + "Experimental": "ექსპერიმენტული", "Explore the cosmos": "", - "Export": "ექსპორტი", + "Export": "გატანა", "Export All Archived Chats": "", - "Export All Chats (All Users)": "ექსპორტი ყველა ჩათი (ყველა მომხმარებელი)", + "Export All Chats (All Users)": "ყველა ჩატის გატანა (ყველა მომხმარებელი)", "Export chat (.json)": "", - "Export Chats": "მიმოწერის ექსპორტირება", + "Export Chats": "ჩატების გატანა", "Export Config to JSON File": "", "Export Functions": "", - "Export Models": "ექსპორტის მოდელები", - "Export Presets": "", - "Export Prompts": "მოთხოვნების ექსპორტი", - "Export to CSV": "", + "Export Models": "მოდელების გატანა", + "Export Presets": "პრესეტების გატანა", + "Export Prompts": "მოთხოვნების გატანა", + "Export to CSV": "CVS-ში გატანა", "Export Tools": "", "External Models": "", - "Failed to add file.": "", - "Failed to create API Key.": "API ღილაკის შექმნა ვერ მოხერხდა.", + "Failed to add file.": "ფაილის დამატების შეცდომა.", + "Failed to create API Key.": "API-ის გასაღების შექმნა ჩავარდა.", "Failed to fetch models": "", - "Failed to read clipboard contents": "ბუფერში შიგთავსის წაკითხვა ვერ მოხერხდა", + "Failed to read clipboard contents": "ბუფერის შემცველობის წაკითხვა ჩავარდა", "Failed to save models configuration": "", "Failed to update settings": "", "Failed to upload file.": "", - "Features": "", + "Features": "მახასიათებლები", "Features Permissions": "", "February": "თებერვალი", "Feedback History": "", "Feedbacks": "", - "Feel free to add specific details": "უფასოდ დაამატეთ დეტალები", - "File": "", + "Feel free to add specific details": "სპეციფიკური დეტალების დამატება პრობლემა არაა", + "File": "ფაილი", "File added successfully.": "", "File content updated successfully.": "", - "File Mode": "ფაილური რეჟიმი", - "File not found.": "ფაილი ვერ მოიძებნა", + "File Mode": "ფაილის რეჟიმი", + "File not found.": "ფაილი ნაპოვნი არაა.", "File removed successfully.": "", "File size should not exceed {{maxSize}} MB.": "", "File uploaded successfully": "", - "Files": "", + "Files": "ფაილი", "Filter is now globally disabled": "", "Filter is now globally enabled": "", - "Filters": "", - "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "აღმოჩენილია თითის ანაბეჭდის გაყალბება: ინიციალების გამოყენება ავატარად შეუძლებელია. დეფოლტ პროფილის დეფოლტ სურათი.", - "Fluidly stream large external response chunks": "თხევადი ნაკადი დიდი გარე საპასუხო ნაწილაკების", - "Focus chat input": "ჩეთის შეყვანის ფოკუსი", + "Filters": "ფილტრები", + "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "აღმოჩენილია ანაბეჭდის გაყალბება: ინიციალების გამოყენება ავატარად შეუძლებელია. გამოყენებული იქნეა ნაგულისხმევი პროფილის სურათი.", + "Fluidly stream large external response chunks": "დიდი გარე პასუხის ფრაგმენტების გლუვად დასტრიმვა", + "Focus chat input": "ჩატში შეყვანის ფოკუსი", "Folder deleted successfully": "", "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", - "Followed instructions perfectly": "ყველა ინსტრუქცია უზრუნველყოფა", + "Followed instructions perfectly": "ინსტრუქციების ზუსტად მიჰყევით", "Forge new paths": "", - "Form": "", + "Form": "ფორმა", "Format your variables using brackets like this:": "", "Frequency Penalty": "სიხშირის ჯარიმა", "Full Context Mode": "", - "Function": "", + "Function": "ფუნქცია", "Function Calling": "", "Function created successfully": "", "Function deleted successfully": "", @@ -499,128 +499,128 @@ "Function is now globally enabled": "", "Function Name": "", "Function updated successfully": "", - "Functions": "", + "Functions": "ფუნქციები", "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", - "Gemini": "", + "Gemini": "მარჩბივი", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "ზოგადი", "General Settings": "ზოგადი პარამეტრები", "Generate an image": "", "Generate Image": "", - "Generating search query": "საძიებო მოთხოვნის გენერირება", - "Get started": "", + "Generating search query": "ძებნის მოთხოვნის გენერაცია", + "Get started": "დაიწყეთ", "Get started with {{WEBUI_NAME}}": "", - "Global": "", - "Good Response": "დიდი პასუხი", - "Google Drive": "", + "Global": "გლობალური", + "Good Response": "კარგი პასუხი", + "Google Drive": "Google Drive", "Google PSE API Key": "Google PSE API გასაღები", "Google PSE Engine Id": "Google PSE ძრავის Id", "Group created successfully": "", "Group deleted successfully": "", "Group Description": "", - "Group Name": "", + "Group Name": "ჯგუფის სახელი", "Group updated successfully": "", - "Groups": "", + "Groups": "ჯგუფები", "Haptic Feedback": "", - "has no conversations.": "არა უფლება ჩაწერა", + "has no conversations.": "არ აქვს საუბრები.", "Hello, {{name}}": "გამარჯობა, {{name}}", "Help": "დახმარება", "Help us create the best community leaderboard by sharing your feedback history!": "", - "Hex Color": "", + "Hex Color": "თექვსმეტობითი ფერი", "Hex Color - Leave empty for default color": "", "Hide": "დამალვა", - "Home": "", - "Host": "", - "How can I help you today?": "როგორ შემიძლია დაგეხმარო დღეს?", + "Home": "მთავარი", + "Host": "ჰოსტი", + "How can I help you today?": "რით შემიძლია დაგეხმაროთ დღეს?", "How would you rate this response?": "", "Hybrid Search": "ჰიბრიდური ძებნა", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "", - "ID": "", + "ID": "ID", "Ignite curiosity": "", - "Image": "", + "Image": "გამოსახულება", "Image Compression": "", - "Image Generation": "", - "Image Generation (Experimental)": "სურათების გენერაცია (ექსპერიმენტული)", - "Image Generation Engine": "სურათის გენერაციის ძრავა", + "Image Generation": "გამოსახულების გენერაცია", + "Image Generation (Experimental)": "გამოსახულებების გენერაცია (ექსპერიმენტული)", + "Image Generation Engine": "გამოსახულებების გენერაციის ძრავა", "Image Max Compression Size": "", "Image Prompt Generation": "", "Image Prompt Generation Prompt": "", - "Image Settings": "სურათის პარამეტრები", - "Images": "სურათები", - "Import Chats": "მიმოწერების იმპორტი", + "Image Settings": "გამოსახულების პარამეტრები", + "Images": "გამოსახულებები", + "Import Chats": "ჩატების შემოტანა", "Import Config from JSON File": "", "Import Functions": "", - "Import Models": "იმპორტის მოდელები", - "Import Presets": "", - "Import Prompts": "მოთხოვნების იმპორტი", + "Import Models": "მოდელების შემოტანა", + "Import Presets": "პრესეტების შემოტანა", + "Import Prompts": "მოთხოვნების შემოტანა", "Import Tools": "", - "Include": "", + "Include": "ჩართვა", "Include `--api-auth` flag when running stable-diffusion-webui": "", - "Include `--api` flag when running stable-diffusion-webui": "ჩართეთ `--api` დროშა stable-diffusion-webui-ის გაშვებისას", + "Include `--api` flag when running stable-diffusion-webui": "`--api` ალმის ჩასმა stable-diffusion-webui-ის გამოყენებისას", "Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "", "Info": "ინფორმაცია", - "Input commands": "შეყვანით ბრძანებებს", - "Install from Github URL": "დააინსტალირეთ Github URL- დან", + "Input commands": "შეიყვანეთ ბრძანებები", + "Install from Github URL": "დაყენება Github-ის ბმულიდან", "Instant Auto-Send After Voice Transcription": "", "Interface": "ინტერფეისი", - "Invalid file format.": "", - "Invalid Tag": "არასწორი ტეგი", + "Invalid file format.": "არასწორი ფაილის ფორმატი.", + "Invalid Tag": "არასწორი ჭდე", "is typing...": "", "January": "იანვარი", "Jina API Key": "", - "join our Discord for help.": "შეუერთდით ჩვენს Discord-ს დახმარებისთვის", + "join our Discord for help.": "დახმარებისთვის შემოდით ჩვენს Discord-ზე.", "JSON": "JSON", "JSON Preview": "JSON გადახედვა", - "July": "ივნისი", - "June": "ივლა", + "July": "ივლისი", + "June": "ივნისი", "Jupyter Auth": "", "Jupyter URL": "", "JWT Expiration": "JWT-ის ვადა", "JWT Token": "JWT ტოკენი", "Kagi Search API Key": "", "Keep Alive": "აქტიურად დატოვება", - "Key": "", + "Key": "გასაღები", "Keyboard shortcuts": "კლავიატურის მალსახმობები", - "Knowledge": "", + "Knowledge": "ცოდნა", "Knowledge Access": "", "Knowledge created successfully.": "", "Knowledge deleted successfully.": "", "Knowledge reset successfully.": "", "Knowledge updated successfully": "", - "Kokoro.js (Browser)": "", - "Kokoro.js Dtype": "", - "Label": "", + "Kokoro.js (Browser)": "Kokoro.js (ბრაუზერი)", + "Kokoro.js Dtype": "Kokoro.js Dtype", + "Label": "ჭდე", "Landing Page Mode": "", "Language": "ენა", - "Last Active": "ბოლო აქტიური", - "Last Modified": "", + "Last Active": "ბოლოს აქტიური", + "Last Modified": "ბოლო ცვლილება", "Last reply": "", - "LDAP": "", + "LDAP": "LDAP", "LDAP server updated": "", - "Leaderboard": "", + "Leaderboard": "ლიდერების დაფა", "Leave empty for unlimited": "", "Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "", "Leave empty to include all models from \"{{URL}}/models\" endpoint": "", "Leave empty to include all models or select specific models": "", "Leave empty to use the default prompt, or enter a custom prompt": "", "Leave model field empty to use the default model.": "", - "License": "", - "Light": "მსუბუქი", + "License": "ლიცენზია", + "Light": "ღია", "Listening...": "", - "Llama.cpp": "", - "LLMs can make mistakes. Verify important information.": "შესაძლოა LLM-ებმა შეცდომები დაუშვან. გადაამოწმეთ მნიშვნელოვანი ინფორმაცია.", + "Llama.cpp": "Llama.cpp", + "LLMs can make mistakes. Verify important information.": "LLM-ებმა, შეიძლება, შეცდომები დაუშვან. გადაამოწმეთ მნიშვნელოვანი ინფორმაცია.", "Loading Kokoro.js...": "", - "Local": "", - "Local Models": "", - "Lost": "", + "Local": "ლოკალური", + "Local Models": "ლოკალური მოდელები", + "Lost": "წაგება", "LTR": "LTR", - "Made by Open WebUI Community": "დამზადებულია OpenWebUI საზოგადოების მიერ", - "Make sure to enclose them with": "დარწმუნდით, რომ დაურთეთ ისინი", + "Made by Open WebUI Community": "შექმნილია OpenWebUI საზოგადოების მიერ", + "Make sure to enclose them with": "დარწმუნდით, რომ ჩასვით ისინი", "Make sure to export a workflow.json file as API format from ComfyUI.": "", - "Manage": "", + "Manage": "მართვა", "Manage Arena Models": "", "Manage Direct Connections": "", "Manage Models": "", @@ -628,261 +628,261 @@ "Manage Ollama API Connections": "", "Manage OpenAI API Connections": "", "Manage Pipelines": "მილსადენების მართვა", - "March": "მარტივი", - "Max Tokens (num_predict)": "მაქს ტოკენსი (num_predict)", + "March": "მარტი", + "Max Tokens (num_predict)": "მაქს. ტოკეტები (num_predict)", "Max Upload Count": "", "Max Upload Size": "", - "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "მაქსიმუმ 3 მოდელის ჩამოტვირთვა შესაძლებელია ერთდროულად. Გთხოვთ სცადოთ მოგვიანებით.", - "May": "მაი", - "Memories accessible by LLMs will be shown here.": "ლლმ-ს აქვს ხელმისაწვდომი მემორიები აქ იქნება.", - "Memory": "მემორია", + "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "ერთდროულად მაქსიმუმ 3 მოდელის ჩამოტვირთვაა შესაძლებელია. მოგვიანებით სცადეთ.", + "May": "მაისი", + "Memories accessible by LLMs will be shown here.": "LLM-ებისთვის ხელმისაწვდომი მეხსიერებები აქ გამოჩნდება.", + "Memory": "მეხსიერება", "Memory added successfully": "", "Memory cleared successfully": "", "Memory deleted successfully": "", "Memory updated successfully": "", - "Merge Responses": "", + "Merge Responses": "პასუხების შერწყმა", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "შეტყობინებები, რომელსაც თქვენ აგზავნით თქვენი ბმულის შექმნის შემდეგ, არ იქნება გაზიარებული. URL– ის მქონე მომხმარებლებს შეეძლებათ ნახონ საერთო ჩატი.", "Min P": "", "Minimum Score": "მინიმალური ქულა", - "Mirostat": "მიროსტატი", - "Mirostat Eta": "მიროსტატი ეტა", - "Mirostat Tau": "მიროსტატი ტაუ", - "Model": "", - "Model '{{modelName}}' has been successfully downloaded.": "მოდელი „{{modelName}}“ წარმატებით ჩამოიტვირთა.", - "Model '{{modelTag}}' is already in queue for downloading.": "მოდელი „{{modelTag}}“ უკვე ჩამოტვირთვის რიგშია.", - "Model {{modelId}} not found": "მოდელი {{modelId}} ვერ მოიძებნა", + "Mirostat": "Mirostat", + "Mirostat Eta": "Mirostat Eta", + "Mirostat Tau": "Mirostat Tau", + "Model": "მოდელი", + "Model '{{modelName}}' has been successfully downloaded.": "მოდელის „{{modelName}}“ გადმოწერა წარმატებით დასრულდა.", + "Model '{{modelTag}}' is already in queue for downloading.": "მოდელი „{{modelTag}}“ უკვე გადმოწერის რიგშია.", + "Model {{modelId}} not found": "მოდელი {{modelId}} აღმოჩენილი არაა", "Model {{modelName}} is not vision capable": "Model {{modelName}} is not vision capable", "Model {{name}} is now {{status}}": "Model {{name}} is now {{status}}", "Model accepts image inputs": "", "Model created successfully!": "", - "Model filesystem path detected. Model shortname is required for update, cannot continue.": "აღმოჩენილია მოდელის ფაილური სისტემის გზა. განახლებისთვის საჭიროა მოდელის მოკლე სახელი, გაგრძელება შეუძლებელია.", - "Model Filtering": "", + "Model filesystem path detected. Model shortname is required for update, cannot continue.": "აღმოჩენილია მოდელის ფაილური სისტემის ბილიკი. განახლებისთვის საჭიროა მოდელის მოკლე სახელი, გაგრძელება შეუძლებელია.", + "Model Filtering": "მოდელების გაფილტვრა", "Model ID": "მოდელის ID", - "Model IDs": "", - "Model Name": "", - "Model not selected": "მოდელი არ არის არჩეული", - "Model Params": "მოდელის პარამები", - "Model Permissions": "", + "Model IDs": "მოდელის ID-ები", + "Model Name": "Მოდელის სახელი", + "Model not selected": "მოდელი არჩეული არაა", + "Model Params": "მოდელის პარამეტრები", + "Model Permissions": "მოდელის წვდომები", "Model updated successfully": "", - "Modelfile Content": "მოდელური ფაილის კონტენტი", + "Modelfile Content": "მოდელის ფაილის შემცველობა", "Models": "მოდელები", - "Models Access": "", + "Models Access": "მოდელის წვდომა", "Models configuration saved successfully": "", "Mojeek Search API Key": "", - "more": "", - "More": "ვრცლად", + "more": "მეტი", + "More": "მეტი", "Name": "სახელი", "Name your knowledge base": "", - "Native": "", + "Native": "საკუთარი", "New Chat": "ახალი მიმოწერა", - "New Folder": "", + "New Folder": "ახალი საქაღალდე", "New Password": "ახალი პაროლი", - "new-channel": "", - "No content found": "", - "No content to speak": "", - "No distance available": "", + "new-channel": "new-channel", + "No content found": "შემცველობა აღმოჩენილი არაა", + "No content to speak": "წარმოსათქმელი შემცველობის გარეშე", + "No distance available": "მანძილი ხელმისაწვდომი არაა", "No feedbacks found": "", - "No file selected": "", - "No files found.": "", + "No file selected": "ფაილი არჩეული არაა", + "No files found.": "ფაილები ვერ მოიძებნა.", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", "No knowledge found": "", - "No model IDs": "", - "No models found": "", - "No models selected": "", - "No results found": "ჩვენ ვერ პოულობით ნაპოვნი ჩაწერები", - "No search query generated": "ძიების მოთხოვნა არ არის გენერირებული", - "No source available": "წყარო არ არის ხელმისაწვდომი", - "No users were found.": "", + "No model IDs": "მოდელის ID-ების გარეშე", + "No models found": "მოდელები აღმოჩენილი არაა", + "No models selected": "მოდელები არჩეული არაა", + "No results found": "შედეგების გარეშე", + "No search query generated": "ძებნის მოთხოვნა არ შექმნილა", + "No source available": "წყარო ხელმისაწვდომი არაა", + "No users were found.": "მომხმარებლები აღმოჩენილი არაა.", "No valves to update": "", "None": "არცერთი", - "Not factually correct": "არ ვეთანხმები პირდაპირ ვერც ვეთანხმები", - "Not helpful": "", + "Not factually correct": "მთლად სწორი არაა", + "Not helpful": "სასარგებლო არაა", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "შენიშვნა: თუ თქვენ დააყენებთ მინიმალურ ქულას, ძებნა დააბრუნებს მხოლოდ დოკუმენტებს მინიმალური ქულის მეტი ან ტოლი ქულით.", - "Notes": "", - "Notification Sound": "", + "Notes": "შენიშვნები", + "Notification Sound": "გაფრთხილების ხმა", "Notification Webhook": "", - "Notifications": "შეტყობინება", + "Notifications": "გაფრთხილებები", "November": "ნოემბერი", - "num_gpu (Ollama)": "", + "num_gpu (Ollama)": "num_gpu (Ollama)", "num_thread (Ollama)": "num_thread (ოლამა)", - "OAuth ID": "", + "OAuth ID": "OAuth ID", "October": "ოქტომბერი", - "Off": "გამორთვა", - "Okay, Let's Go!": "კარგი, წავედით!", + "Off": "გამორთ", + "Okay, Let's Go!": "აბა, წავედით!", "OLED Dark": "OLED მუქი", "Ollama": "Ollama", "Ollama API": "Ollama API", "Ollama API settings updated": "", "Ollama Version": "Ollama ვერსია", - "On": "ჩართვა", + "On": "ჩართული", "Only alphanumeric characters and hyphens are allowed": "", - "Only alphanumeric characters and hyphens are allowed in the command string.": "ბრძანების სტრიქონში დაშვებულია მხოლოდ ალფანუმერული სიმბოლოები და დეფისები.", + "Only alphanumeric characters and hyphens are allowed in the command string.": "ბრძანების სტრიქონში დაშვებულია, მხოლოდ, ალფარიცხვითი სიმბოლოები და ტირეები.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "უი! როგორც ჩანს, მისამართი არასწორია. გთხოვთ, გადაამოწმოთ და ისევ სცადოთ.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", "Oops! There was an error in the previous response.": "", - "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "უპს! თქვენ იყენებთ მხარდაუჭერელ მეთოდს (მხოლოდ frontend). გთხოვთ, მოემსახუროთ WebUI-ს ბექენდიდან", - "Open file": "", - "Open in full screen": "", - "Open new chat": "ახალი მიმოწერის გახსნა", + "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "ვაი! იყენებთ მხარდაუჭერელ მეთოდს (მხოლოდ წინაბოლო). შედით WebUI-ზე უკანაბოლოდან.", + "Open file": "ფაილის გახსნა", + "Open in full screen": "მთელ ეკრანზე გახსნა", + "Open new chat": "ახალი ჩატის გახსნა", "Open WebUI uses faster-whisper internally.": "", "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "", "OpenAI": "OpenAI", "OpenAI API": "OpenAI API", "OpenAI API Config": "OpenAI API პარამეტრები", - "OpenAI API Key is required.": "OpenAI API გასაღები აუცილებელია", + "OpenAI API Key is required.": "OpenAI API გასაღები აუცილებელია.", "OpenAI API settings updated": "", - "OpenAI URL/Key required.": "OpenAI URL/Key აუცილებელია", + "OpenAI URL/Key required.": "OpenAI URL/Key აუცილებელია.", "or": "ან", "Organize your users": "", "Other": "სხვა", "OUTPUT": "", - "Output format": "", - "Overview": "", - "page": "", + "Output format": "გამოტანის ფორმატი", + "Overview": "მიმოხილვა", + "page": "პანელი", "Password": "პაროლი", "Paste Large Text as File": "", "PDF document (.pdf)": "PDF დოკუმენტი (.pdf)", "PDF Extract Images (OCR)": "PDF იდან ამოღებული სურათები (OCR)", - "pending": "ლოდინის რეჟიმშია", + "pending": "დარჩენილი", "Permission denied when accessing media devices": "", "Permission denied when accessing microphone": "", "Permission denied when accessing microphone: {{error}}": "ნებართვა უარყოფილია მიკროფონზე წვდომისას: {{error}}", - "Permissions": "", + "Permissions": "ნებართვები", "Personalization": "პერსონალიზაცია", - "Pin": "", - "Pinned": "", + "Pin": "მიმაგრება", + "Pinned": "მიმაგრებულია", "Pioneer insights": "", "Pipeline deleted successfully": "", "Pipeline downloaded successfully": "", "Pipelines": "მილსადენები", "Pipelines Not Detected": "", - "Pipelines Valves": "მილსადენების სარქველები", - "Plain text (.txt)": "ტექსტი (.txt)", - "Playground": "სათამაშო მოედანი", + "Pipelines Valves": "მილსადენის სარქველები", + "Plain text (.txt)": "უბრალო ტექსტი (.txt)", + "Playground": "საცდელი ფუნქციები", "Please carefully review the following warnings:": "", "Please do not close the settings page while loading the model.": "", "Please enter a prompt": "", - "Please fill in all fields.": "", - "Please select a model first.": "", - "Please select a model.": "", - "Please select a reason": "", - "Port": "", - "Positive attitude": "პოზიტიური ანგარიში", - "Prefix ID": "", + "Please fill in all fields.": "შეავსეთ ყველა ველი ბოლომდე.", + "Please select a model first.": "ჯერ აირჩიეთ მოდელი, გეთაყვა.", + "Please select a model.": "აირჩიეთ მოდელი.", + "Please select a reason": "აირჩიეთ მიზეზი", + "Port": "პორტი", + "Positive attitude": "პოზიტიური დამოკიდებულება", + "Prefix ID": "პრეფიქსის ", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "", "Presence Penalty": "", - "Previous 30 days": "უკან 30 დღე", - "Previous 7 days": "უკან 7 დღე", + "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 (მაგ. მითხარი სახალისო ფაქტი რომის იმპერიის შესახებ)", - "Prompt Content": "მოთხოვნის შინაარსი", + "Prompt Content": "მოთხოვნის შემცველობა", "Prompt created successfully": "", "Prompt suggestions": "მოთხოვნის რჩევები", "Prompt updated successfully": "", "Prompts": "მოთხოვნები", "Prompts Access": "", - "Proxy URL": "", - "Pull \"{{searchValue}}\" from Ollama.com": "ჩაიამოვეთ \"{{searchValue}}\" Ollama.com-იდან", - "Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ", + "Proxy URL": "პროქსის URL", + "Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\"-ის გადმოწერა Ollama.com-იდან", + "Pull a model from Ollama.com": "მოდელის გადმოწერა Ollama.com-დან", "Query Generation Prompt": "", - "Query Params": "პარამეტრების ძიება", + "Query Params": "პარამეტრების მოთხოვნა", "RAG Template": "RAG შაბლონი", - "Rating": "", + "Rating": "ხმის მიცემა", "Re-rank models by topic similarity": "", - "Read": "", - "Read Aloud": "ხმის ჩაწერა", + "Read": "წაკითხვა", + "Read Aloud": "ხმამაღლა წაკითხვა", "Reasoning Effort": "", "Record voice": "ხმის ჩაწერა", - "Redirecting you to Open WebUI Community": "გადამისამართდებით OpenWebUI საზოგადოებაში", + "Redirecting you to Open WebUI Community": "მიმდინარეობს გადამისამართება OpenWebUI-ის საზოგადოების საიტზე", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "", "References from": "", "Refused when it shouldn't have": "უარა, როგორც უნდა იყოს", - "Regenerate": "ხელახლა გენერირება", - "Release Notes": "Გამოშვების შენიშვნები", - "Relevance": "", - "Remove": "პოპულარობის რაოდენობა", - "Remove Model": "პოპულარობის რაოდენობა", - "Rename": "პოპულარობის რაოდენობა", + "Regenerate": "თავიდან გენერაცია", + "Release Notes": "გამოცემის შენიშვნები", + "Relevance": "შესაბამისობა", + "Remove": "წაშლა", + "Remove Model": "მოდელის წაშლა", + "Rename": "სახელის გადარქმევა", "Reorder Models": "", - "Repeat Last N": "გაიმეორეთ ბოლო N", + "Repeat Last N": "ბოლო N-ის გამეორება", "Repeat Penalty (Ollama)": "", - "Reply in Thread": "", + "Reply in Thread": "ნაკადში პასუხი", "Request Mode": "მოთხოვნის რეჟიმი", - "Reranking Model": "რექვექტირება", - "Reranking model disabled": "რექვექტირება არაა ჩართული", + "Reranking Model": "Reranking მოდელი", + "Reranking model disabled": "Reranking მოდელი გათიშულია", "Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"", - "Reset": "", + "Reset": "ჩამოყრა", "Reset All Models": "", "Reset Upload Directory": "", "Reset Vector Storage/Knowledge": "", "Reset view": "", "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "", "Response splitting": "", - "Result": "", + "Result": "შედეგი", "Retrieval Query Generation": "", "Rich Text Input for Chat": "", - "RK": "", + "RK": "RK", "Role": "როლი", - "Rosé Pine": "ვარდისფერი ფიჭვის ხე", + "Rosé Pine": "ვარდისფერი ფიჭვი", "Rosé Pine Dawn": "ვარდისფერი ფიჭვის გარიჟრაჟი", "RTL": "RTL", - "Run": "", - "Running": "", + "Run": "გაშვება", + "Running": "გაშვებულია", "Save": "შენახვა", - "Save & Create": "დამახსოვრება და შექმნა", - "Save & Update": "დამახსოვრება და განახლება", - "Save As Copy": "", - "Save Tag": "", - "Saved": "", + "Save & Create": "შენახვა და შექმნა", + "Save & Update": "შენახვა და განახლება", + "Save As Copy": "ასლის შენახვა", + "Save Tag": "ჭდის შენახვა", + "Saved": "შენახულია", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "ჩეთის ისტორიის შენახვა პირდაპირ თქვენი ბრაუზერის საცავში აღარ არის მხარდაჭერილი. გთხოვთ, დაუთმოთ და წაშალოთ თქვენი ჩატის ჟურნალები ქვემოთ მოცემულ ღილაკზე დაწკაპუნებით. არ ინერვიულოთ, თქვენ შეგიძლიათ მარტივად ხელახლა შემოიტანოთ თქვენი ჩეთის ისტორია ბექენდში", "Scroll to bottom when switching between branches": "", - "Search": "ძიება", - "Search a model": "მოდელის ძიება", - "Search Base": "", - "Search Chats": "ჩატების ძებნა", - "Search Collection": "", - "Search Filters": "", - "search for tags": "", - "Search Functions": "", + "Search": "ძებნა", + "Search a model": "მოდელის ძებნა", + "Search Base": "ბაზის ძებნა", + "Search Chats": "ძებნა ჩატებში", + "Search Collection": "კოლექციის ძებნა", + "Search Filters": "ფილტრების ძებნა", + "search for tags": "ჭდეების ძებნა", + "Search Functions": "ფუნქციების ძებნა", "Search Knowledge": "", - "Search Models": "საძიებო მოდელები", - "Search options": "", - "Search Prompts": "მოთხოვნების ძიება", + "Search Models": "მოდელების ძებნა", + "Search options": "ძებნის მორგება", + "Search Prompts": "მოთხოვნების ძებნა", "Search Result Count": "ძიების შედეგების რაოდენობა", - "Search the internet": "", - "Search Tools": "", - "SearchApi API Key": "", - "SearchApi Engine": "", - "Searched {{count}} sites": "", - "Searching \"{{searchQuery}}\"": "", + "Search the internet": "ინტერნეტში ძებნა", + "Search Tools": "ძებნის ხელსაწყოები", + "SearchApi API Key": "SearchApi API-ის გასაღები", + "SearchApi Engine": "ძრავა SearchApi", + "Searched {{count}} sites": "მოძებნილია {{count}} საიტზე", + "Searching \"{{searchQuery}}\"": "მიმდინარეობს ძებნა \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", "Searxng Query URL": "Searxng Query URL", - "See readme.md for instructions": "იხილეთ readme.md ინსტრუქციებისთვის", - "See what's new": "სიახლეების ნახვა", - "Seed": "სიდი", - "Select a base model": "აირჩიეთ ბაზის მოდელი", - "Select a engine": "", - "Select a function": "", - "Select a group": "", - "Select a model": "მოდელის არჩევა", + "See readme.md for instructions": "ინსტრუქციებისთვის იხილეთ readme.md", + "See what's new": "ნახეთ, რა არის ახალი", + "Seed": "თესლი", + "Select a base model": "აირჩიეთ საბაზისო მოდელი", + "Select a engine": "აირჩიეთ ძრავა", + "Select a function": "აირჩიეთ ფუნქცია", + "Select a group": "აირჩიეთ ჯგუფი", + "Select a model": "აირჩიეთ მოდელი", "Select a pipeline": "აირჩიეთ მილსადენი", "Select a pipeline url": "აირჩიეთ მილსადენის url", - "Select a tool": "", + "Select a tool": "აირჩიეთ ხელსაწყო", "Select an auth method": "", "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", "Select model": "მოდელის არჩევა", "Select only one model to call": "", - "Selected model(s) do not support image inputs": "შერჩეული მოდელი (ებ) ი არ უჭერს მხარს გამოსახულების შეყვანას", + "Selected model(s) do not support image inputs": "მონიშნულ მოდელებს გამოსახულების შეყვანის მხარდაჭერა არ გააჩნიათ", "Semantic distance to query": "", "Send": "გაგზავნა", "Send a Message": "შეტყობინების გაგზავნა", @@ -891,21 +891,21 @@ "September": "სექტემბერი", "SerpApi API Key": "", "SerpApi Engine": "", - "Serper API Key": "Serper API Key", + "Serper API Key": "Serper API-ის გასაღები", "Serply API Key": "", - "Serpstack API Key": "Serpstack API Key", - "Server connection verified": "სერვერთან კავშირი დადასტურებულია", - "Set as default": "დეფოლტად დაყენება", + "Serpstack API Key": "Serpstack API-ის გასაღები", + "Server connection verified": "სერვერთან კავშირი გადამოწმებულია", + "Set as default": "ნაგულისხმევად დაყენება", "Set CFG Scale": "", - "Set Default Model": "დეფოლტ მოდელის დაყენება", + "Set Default Model": "ნაგულისხმევი მოდელის დაყენება", "Set embedding model": "", - "Set embedding model (e.g. {{model}})": "ჩვენება მოდელის დაყენება (მაგ. {{model}})", - "Set Image Size": "სურათის ზომის დაყენება", - "Set reranking model (e.g. {{model}})": "რეტარირება მოდელის დაყენება (მაგ. {{model}})", + "Set embedding model (e.g. {{model}})": "ჩვენება ჩაშენებული მოდელის დაყენება (მაგ. {{model}})", + "Set Image Size": "გამოსახულების ზომის დაყენება", + "Set reranking model (e.g. {{model}})": "Reranking მოდელის დაყენება (მაგ. {{model}})", "Set Sampler": "", "Set Scheduler": "", "Set Steps": "ნაბიჯების დაყენება", - "Set Task Model": "დააყენეთ სამუშაო მოდელი", + "Set Task Model": "დავალების მოდელის დაყენება", "Set the number of layers, which will be off-loaded to GPU. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "", "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "", "Set Voice": "ხმის დაყენება", @@ -916,18 +916,18 @@ "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "", "Sets the size of the context window used to generate the next token. (Default: 2048)": "", "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "", - "Settings": "ხელსაწყოები", - "Settings saved successfully!": "პარამეტრები წარმატებით განახლდა!", + "Settings": "მორგება", + "Settings saved successfully!": "პარამეტრები შენახვა წარმატებულია!", "Share": "გაზიარება", - "Share Chat": "გაზიარება", - "Share to Open WebUI Community": "გააზიარე OpenWebUI საზოგადოებაში ", + "Share Chat": "ჩატის გაზიარება", + "Share to Open WebUI Community": "გაზიარება Open WebUI-ის საზოგადოებასთან", "Show": "ჩვენება", "Show \"What's New\" modal on login": "", "Show Admin Details in Account Pending Overlay": "", "Show shortcuts": "მალსახმობების ჩვენება", "Show your support!": "", - "Showcased creativity": "ჩვენებული ქონება", - "Sign in": "ავტორიზაცია", + "Showcased creativity": "გამოკვეთილი კრეატიულობა", + "Sign in": "შესვლა", "Sign in to {{WEBUI_NAME}}": "", "Sign in to {{WEBUI_NAME}} with LDAP": "", "Sign Out": "გასვლა", @@ -937,18 +937,18 @@ "sk-1234": "", "Source": "წყარო", "Speech Playback Speed": "", - "Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}", - "Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი", - "Stop": "", - "Stop Sequence": "შეჩერების თანმიმდევრობა", + "Speech recognition error: {{error}}": "საუბრის ამოცნობის შეცდომა: {{error}}", + "Speech-to-Text Engine": "საუბრიდან-ტექსტამდე-ის ძრავი", + "Stop": "გაჩერება", + "Stop Sequence": "შეჩერების მიმდევრობა", "Stream Chat Response": "", "STT Model": "", - "STT Settings": "მეტყველების ამოცნობის პარამეტრები", + "STT Settings": "STT-ის მორგება", "Subtitle (e.g. about the Roman Empire)": "სუბტიტრები (მაგ. რომის იმპერიის შესახებ)", "Success": "წარმატება", - "Successfully updated.": "წარმატებით განახლდა", - "Suggested": "პირდაპირ პოპულარული", - "Support": "", + "Successfully updated.": "წარმატებით განახლდა.", + "Suggested": "შეთავაზებულია", + "Support": "მხარდაჭერა", "Support this plugin:": "", "Sync directory": "", "System": "სისტემა", @@ -958,11 +958,11 @@ "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", "Tap to interrupt": "", - "Tasks": "", + "Tasks": "ამოცანები", "Tavily API Key": "", - "Tell us more:": "ჩვენთან დავუკავშირდით", + "Tell us more:": "გვითხარით მეტი:", "Temperature": "ტემპერატურა", - "Template": "შაბლონი", + "Template": "ნიმუში", "Temporary Chat": "", "Text Splitter": "", "Text-to-Speech Engine": "ტექსტურ-ხმოვანი ძრავი", @@ -978,12 +978,12 @@ "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "", "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "", "The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "", - "The score should be a value between 0.0 (0%) and 1.0 (100%).": "ქულა 0.0 (0%) და 1.0 (100%) ჩაშენებული უნდა იყოს.", + "The score should be a value between 0.0 (0%) and 1.0 (100%).": "რეიტინგი უნდა იყოს მნიშვნელობ შუალედიდან 0.0 (0%) - 1.0 (100%).", "The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "", "Theme": "თემა", "Thinking...": "", "This action cannot be undone. Do you wish to continue?": "", - "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "ეს უზრუნველყოფს, რომ თქვენი ძვირფასი საუბრები უსაფრთხოდ შეინახება თქვენს backend მონაცემთა ბაზაში. Გმადლობთ!", + "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "ეს უზრუნველყოფს, რომ თქვენი ღირებული საუბრები უსაფრთხოდ შეინახება თქვენს უკანაბოლო მონაცემთა ბაზაში. მადლობა!", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "", "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "", "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "", @@ -994,7 +994,7 @@ "This will delete all models including custom models": "", "This will delete all models including custom models and cannot be undone.": "", "This will reset the knowledge base and sync all files. Do you wish to continue?": "", - "Thorough explanation": "ვრცლად აღწერა", + "Thorough explanation": "საფუძვლიანი ახსნა", "Thought for {{DURATION}}": "", "Thought for {{DURATION}} seconds": "", "Tika": "", @@ -1002,14 +1002,14 @@ "Tiktoken": "", "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 (e.g. Tell me a fun fact)": "სათაური (მაგ. მითხარი რამე სასაცილო)", + "Title Auto-Generation": "სათაურის ავტოგენერაცია", + "Title cannot be an empty string.": "სათაურის ველი ცარიელი სტრიქონი ვერ იქნება.", "Title Generation": "", - "Title Generation Prompt": "სათაურის გენერაციის მოთხოვნა ", - "TLS": "", - "To access the available model names for downloading,": "ჩამოტვირთვისთვის ხელმისაწვდომი მოდელების სახელებზე წვდომისთვის", - "To access the GGUF models available for downloading,": "ჩასატვირთად ხელმისაწვდომი GGUF მოდელებზე წვდომისთვის", + "Title Generation Prompt": "სათაურის შექმნის მოთხოვნა", + "TLS": "TLS", + "To access the available model names for downloading,": "ხელმისაწვდომი მოდელის სახელებთან წვდომისთვის, რომ გადმოწეროთ,", + "To access the GGUF models available for downloading,": "გადმოსაწერად ხელმისაწვდომი GGUF მოდელებზე წვდომისთვის,", "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "", "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "", "To learn more about available endpoints, visit our documentation.": "", @@ -1020,8 +1020,8 @@ "Toast notifications for new updates": "", "Today": "დღეს", "Toggle settings": "პარამეტრების გადართვა", - "Toggle sidebar": "გვერდითი ზოლის გადართვა", - "Token": "", + "Toggle sidebar": "გვერდითი ზოლის ჩართ/გამორთ", + "Token": "კოდი", "Tokens To Keep On Context Refresh (num_keep)": "", "Too verbose": "", "Tool created successfully": "", @@ -1029,9 +1029,9 @@ "Tool Description": "", "Tool ID": "", "Tool imported successfully": "", - "Tool Name": "", + "Tool Name": "ხელსაწყოს სახელი", "Tool updated successfully": "", - "Tools": "", + "Tools": "ხელსაწყოები", "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", @@ -1045,67 +1045,67 @@ "TTS Settings": "TTS პარამეტრები", "TTS Voice": "", "Type": "ტიპი", - "Type Hugging Face Resolve (Download) URL": "სცადე გადმოწერო Hugging Face Resolve URL", + "Type Hugging Face Resolve (Download) URL": "აკრიფეთ HuggingFace-ის ამოხსნის (გადმოწერის) URL", "Uh-oh! There was an issue with the response.": "", - "UI": "", + "UI": "UI", "Unarchive All": "", "Unarchive All Archived Chats": "", "Unarchive Chat": "", "Unlock mysteries": "", - "Unpin": "", + "Unpin": "ჩამოხსნა", "Unravel secrets": "", - "Untagged": "", - "Update": "", + "Untagged": "ჭდის გარეშე", + "Update": "განახლება", "Update and Copy Link": "განახლება და ბმულის კოპირება", "Update for the latest features and improvements.": "", "Update password": "პაროლის განახლება", - "Updated": "", - "Updated at": "", + "Updated": "განახლებულია", + "Updated at": "განახლების დრო", "Updated At": "", "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", - "Upload": "", + "Upload": "ატვირთვა", "Upload a GGUF model": "GGUF მოდელის ატვირთვა", - "Upload directory": "", - "Upload files": "", - "Upload Files": "ატვირთეთ ფაილები", + "Upload directory": "ატვირთვის დირექტორია", + "Upload files": "ფაილების ატვირთვა", + "Upload Files": "ფაილების ატვირთვა", "Upload Pipeline": "", - "Upload Progress": "პროგრესის ატვირთვა", - "URL": "", + "Upload Progress": "ატვირთვის მიმდინარეობა", + "URL": "URL", "URL Mode": "URL რეჟიმი", "Use '#' in the prompt input to load and include your knowledge.": "", - "Use Gravatar": "გამოიყენე Gravatar", + "Use Gravatar": "Gravatar-ის გამოყენება", "Use groups to group your users and assign permissions.": "", - "Use Initials": "გამოიყენე ინიციალები", - "use_mlock (Ollama)": "use_mlock (ოლამა)", - "use_mmap (Ollama)": "use_mmap (ოლამა)", + "Use Initials": "ინიციალების გამოყენება", + "use_mlock (Ollama)": "use_mlock (Ollama)", + "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "მომხმარებელი", - "User": "", + "User": "მომხმარებელი", "User location successfully retrieved.": "", - "Username": "", + "Username": "მომხმარებლის სახელი", "Users": "მომხმარებლები", "Using the default arena model with all models. Click the plus button to add custom models.": "", "Utilize": "გამოყენება", - "Valid time units:": "მოქმედი დროის ერთეულები", + "Valid time units:": "სწორი დროის ერთეულები:", "Valves": "", "Valves updated": "", "Valves updated successfully": "", "variable": "ცვლადი", - "variable to have them replaced with clipboard content.": "ცვლადი, რომ შეცვალოს ისინი ბუფერში შიგთავსით.", + "variable to have them replaced with clipboard content.": "ცვლადი მისი ბუფერის მნიშვნელობით ჩასანაცვლებლად.", "Version": "ვერსია", "Version {{selectedVersion}} of {{totalVersions}}": "", "View Replies": "", - "Visibility": "", - "Voice": "", + "Visibility": "ხილვადობა", + "Voice": "ხმა", "Voice Input": "", "Warning": "გაფრთხილება", - "Warning:": "", + "Warning:": "გაფრთხილება:", "Warning: Enabling this will allow users to upload arbitrary code on the server.": "", - "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: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", "Web": "ვები", "Web API": "", - "Web Loader Settings": "ვების ჩატარების პარამეტრები", - "Web Search": "ვებ ძებნა", + "Web Loader Settings": "ვებჩამტვირთავის მორგება", + "Web Search": "ვებში ძებნა", "Web Search Engine": "ვებ საძიებო სისტემა", "Web Search in Chat": "", "Web Search Query Generation": "", @@ -1120,29 +1120,29 @@ "When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "", "wherever you are": "", "Whisper (Local)": "", - "Why?": "", + "Why?": "რატომ?", "Widescreen Mode": "", - "Won": "", + "Won": "ვონი", "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "", - "Workspace": "ვულერი", + "Workspace": "სამუშაო სივრცე", "Workspace Permissions": "", - "Write": "", + "Write": "ჩაწერა", "Write a prompt suggestion (e.g. Who are you?)": "დაწერეთ მოკლე წინადადება (მაგ. ვინ ხარ?", "Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].", "Write something...": "", "Write your model template content here": "", - "Yesterday": "აღდგენა", - "You": "ჩემი", + "Yesterday": "გუშინ", + "You": "თქვენ", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", "You do not have permission to access this feature.": "", "You do not have permission to upload files": "", "You do not have permission to upload files.": "", - "You have no archived conversations.": "არ ხართ არქივირებული განხილვები.", - "You have shared this chat": "ამ ჩატის გააგზავნა", - "You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ხართ.", - "You're now logged in.": "თქვენ შესული ხართ.", + "You have no archived conversations.": "დაარქივებული საუბრები არ გაქვთ.", + "You have shared this chat": "თქვენ გააზიარეთ ეს ჩატი", + "You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ბრძანდებით.", + "You're now logged in.": "ახლა შესული ბრძანდებით.", "Your account status is currently pending activation.": "", "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "", "Youtube": "Youtube", From 0335d479f9b3be4054a022c77ff55db1e4684268 Mon Sep 17 00:00:00 2001 From: Gunwoo Hur Date: Mon, 24 Feb 2025 17:27:37 +0900 Subject: [PATCH 43/58] feat: add onedrive file picker --- package-lock.json | 22 ++ package.json | 1 + src/lib/components/chat/MessageInput.svelte | 21 ++ .../chat/MessageInput/InputMenu.svelte | 31 +++ src/lib/utils/onedrive-auth.ts | 42 ++++ src/lib/utils/onedrive-file-picker.ts | 211 ++++++++++++++++++ 6 files changed, 328 insertions(+) create mode 100644 src/lib/utils/onedrive-auth.ts create mode 100644 src/lib/utils/onedrive-file-picker.ts diff --git a/package-lock.json b/package-lock.json index c65870772..066cf2be5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "open-webui", "version": "0.5.16", "dependencies": { + "@azure/msal-browser": "^4.4.0", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-python": "^6.1.6", "@codemirror/language-data": "^6.5.1", @@ -134,6 +135,27 @@ "node": ">=6.0.0" } }, + "node_modules/@azure/msal-browser": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.4.0.tgz", + "integrity": "sha512-rU6juYXk67CKQmpgi6fDgZoPQ9InZ1760z1BSAH7RbeIc4lHZM/Tu+H0CyRk7cnrfvTkexyYE4pjYhMghpzheA==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "15.2.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.2.0.tgz", + "integrity": "sha512-HiYfGAKthisUYqHG1nImCf/uzcyS31wng3o+CycWLIM9chnYJ9Lk6jZ30Y6YiYYpTQ9+z/FGUpiKKekd3Arc0A==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@babel/runtime": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", diff --git a/package.json b/package.json index 86568869f..0e8fe2bc6 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ }, "type": "module", "dependencies": { + "@azure/msal-browser": "^4.4.0", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-python": "^6.1.6", "@codemirror/language-data": "^6.5.1", diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 38cb91cc0..a81139d2f 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -2,6 +2,7 @@ import { toast } from 'svelte-sonner'; import { v4 as uuidv4 } from 'uuid'; import { createPicker, getAuthToken } from '$lib/utils/google-drive-picker'; + import { openOneDrivePicker } from '$lib/utils/onedrive-file-picker'; import { onMount, tick, getContext, createEventDispatcher, onDestroy } from 'svelte'; const dispatch = createEventDispatcher(); @@ -1108,6 +1109,26 @@ ); } }} + uploadOneDriveHandler={async () => { + try { + const fileData = await openOneDrivePicker(); + if (fileData) { + const file = new File([fileData.blob], fileData.name, { + type: fileData.blob.type + }); + await uploadFileHandler(file); + } else { + console.log('No file was selected from OneDrive'); + } + } catch (error) { + console.error('OneDrive Error:', error); + toast.error( + $i18n.t('Error accessing OneDrive: {{error}}', { + error: error.message + }) + ); + } + }} onClose={async () => { await tick(); diff --git a/src/lib/components/chat/MessageInput/InputMenu.svelte b/src/lib/components/chat/MessageInput/InputMenu.svelte index 801093d8f..91f9cf81b 100644 --- a/src/lib/components/chat/MessageInput/InputMenu.svelte +++ b/src/lib/components/chat/MessageInput/InputMenu.svelte @@ -5,6 +5,7 @@ import { config, user, tools as _tools, mobile } from '$lib/stores'; import { createPicker } from '$lib/utils/google-drive-picker'; + import { getTools } from '$lib/apis/tools'; import Dropdown from '$lib/components/common/Dropdown.svelte'; @@ -24,6 +25,7 @@ export let inputFilesHandler: Function; export let uploadGoogleDriveHandler: Function; + export let uploadOneDriveHandler: Function; export let selectedToolIds: string[] = []; @@ -225,6 +227,35 @@
{$i18n.t('Google Drive')}
{/if} + + {#if $config?.features?.enable_onedrive_integration || true} + { + uploadOneDriveHandler(); + }} + > + + + + + + +
{$i18n.t('OneDrive')}
+
+ {/if} diff --git a/src/lib/utils/onedrive-auth.ts b/src/lib/utils/onedrive-auth.ts new file mode 100644 index 000000000..be2de44a0 --- /dev/null +++ b/src/lib/utils/onedrive-auth.ts @@ -0,0 +1,42 @@ +import { PublicClientApplication } from '@azure/msal-browser'; + +const msalParams = { + auth: { + authority: 'https://login.microsoftonline.com/consumers', + clientId: '2ab80a1e-7300-4cb1-beac-c38c730e8b7f' + } +}; + +// MSAL 초기화 +const app = new PublicClientApplication(msalParams); + +export async function initializeMsal() { + try { + await app.initialize(); + console.log('MSAL initialized successfully'); + } catch (error) { + console.error('MSAL initialization error:', error); + } + } + + export async function getToken(): Promise { + const authParams = { scopes: ['OneDrive.ReadWrite'] }; + let accessToken = ''; + + try { + // Ensure initialization happens early + await initializeMsal(); + const resp = await app.acquireTokenSilent(authParams); + accessToken = resp.accessToken; + } catch (err) { + const resp = await app.loginPopup(authParams); + app.setActiveAccount(resp.account); + + if (resp.idToken) { + const resp2 = await app.acquireTokenSilent(authParams); + accessToken = resp2.accessToken; + } + } + + return accessToken; + } diff --git a/src/lib/utils/onedrive-file-picker.ts b/src/lib/utils/onedrive-file-picker.ts new file mode 100644 index 000000000..d003e38ec --- /dev/null +++ b/src/lib/utils/onedrive-file-picker.ts @@ -0,0 +1,211 @@ +// src/lib/utils/onedrive-file-picker.ts +import { getToken } from './onedrive-auth'; + + +const baseUrl = "https://onedrive.live.com/picker"; +const params = { + sdk: '8.0', + entry: { + oneDrive: { + files: {} + } + }, + authentication: {}, + messaging: { + origin: 'http://localhost:3000', // 현재 부모 페이지의 origin + channelId: '27' // 메시징 채널용 임의의 ID + }, + typesAndSources: { + mode: 'files', + pivots: { + oneDrive: true, + recent: true + } + } +}; + +/** + * OneDrive 파일 피커 창을 열고, 사용자가 선택한 파일 메타데이터를 받아오는 함수 + */ +export async function openOneDrivePicker(): Promise { + // SSR 환경(SvelteKit)에서 window 객체가 없을 수 있으므로 가드 + if (typeof window === 'undefined') { + throw new Error('Not in browser environment'); + } + + return new Promise(async (resolve, reject) => { + let pickerWindow: Window | null = null; + let channelPort: MessagePort | null = null; + + try { + const authToken = await getToken(); + if (!authToken) { + return reject(new Error('Failed to acquire access token')); + } + + // 팝업 창 오픈 + pickerWindow = window.open('', 'OneDrivePicker', 'width=800,height=600'); + if (!pickerWindow) { + return reject(new Error('Failed to open OneDrive picker window')); + } + + // 쿼리스트링 구성 + const queryString = new URLSearchParams({ + filePicker: JSON.stringify(params) + }); + const url = `${baseUrl}?${queryString.toString()}`; + + // 새로 연 window에 form을 동적으로 추가하여 POST + const form = pickerWindow.document.createElement('form'); + form.setAttribute('action', url); + form.setAttribute('method', 'POST'); + + const input = pickerWindow.document.createElement('input'); + input.setAttribute('type', 'hidden'); + input.setAttribute('name', 'access_token'); + input.setAttribute('value', authToken); + + form.appendChild(input); + pickerWindow.document.body.appendChild(form); + form.submit(); + + // 부모 창에서 message 이벤트 수신 + const handleWindowMessage = (event: MessageEvent) => { + // pickerWindow가 아닌 다른 window에서 온 메시지는 무시 + if (event.source !== pickerWindow) return; + + const message = event.data; + + // 초기화 메시지 => SharedWorker(MessageChannel) 식으로 포트 받기 + if ( + message?.type === 'initialize' && + message?.channelId === params.messaging.channelId + ) { + channelPort = event.ports?.[0]; + if (!channelPort) return; + + channelPort.addEventListener('message', handlePortMessage); + channelPort.start(); + + // picker iframe에 'activate' 전달 + channelPort.postMessage({ + type: 'activate' + }); + } + }; + + // 포트 메시지 핸들러 + const handlePortMessage = async (portEvent: MessageEvent) => { + const portData = portEvent.data; + switch (portData.type) { + case 'notification': + console.log('notification:', portData); + break; + + case 'command': { + // picker에 응답 + channelPort?.postMessage({ + type: 'acknowledge', + id: portData.id + }); + + const command = portData.data; + + switch (command.command) { + case 'authenticate': { + // 재인증 + try { + const newToken = await getToken(); + if (newToken) { + channelPort?.postMessage({ + type: 'result', + id: portData.id, + data: { + result: 'token', + token: newToken + } + }); + } else { + throw new Error('Could not retrieve auth token'); + } + } catch (err) { + console.error(err); + channelPort?.postMessage({ + result: 'error', + error: { + code: 'tokenError', + message: 'Failed to get token' + }, + isExpected: true + }); + } + break; + } + + case 'close': { + // 사용자가 취소하거나 닫았을 경우 + cleanup(); + resolve(null); + break; + } + + case 'pick': { + // 사용자가 파일 선택 완료 + console.log('Picked:', command); + /** + * command 안에는 사용자가 선택한 파일들의 메타데이터 정보가 들어있습니다. + * 필요하다면 Microsoft Graph API 등을 통해 Blob(실제 파일 데이터)을 받아와야 할 수 있습니다. + */ + + // picker에 응답 + channelPort?.postMessage({ + type: 'result', + id: portData.id, + data: { + result: 'success' + } + }); + + // 선택한 파일들(메타정보)을 resolve + cleanup(); + resolve(command); + break; + } + + default: { + console.warn('Unsupported command:', command); + channelPort?.postMessage({ + result: 'error', + error: { + code: 'unsupportedCommand', + message: command.command + }, + isExpected: true + }); + break; + } + } + break; + } + } + }; + + function cleanup() { + window.removeEventListener('message', handleWindowMessage); + if (channelPort) { + channelPort.removeEventListener('message', handlePortMessage); + } + if (pickerWindow) { + pickerWindow.close(); + pickerWindow = null; + } + } + + // 메시지 이벤트 등록 + window.addEventListener('message', handleWindowMessage); + } catch (err) { + if (pickerWindow) pickerWindow.close(); + reject(err); + } + }); +} From 8c020488ddf9c60a876686a46ea7f666542159be Mon Sep 17 00:00:00 2001 From: grand Date: Mon, 24 Feb 2025 12:04:06 +0100 Subject: [PATCH 44/58] * fix: restore compatibility for older o1 models (o1-mini, o1-preview) --- backend/open_webui/routers/openai.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index 78aae9980..69232e3fe 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -84,9 +84,15 @@ def openai_o1_o3_handler(payload): payload["max_completion_tokens"] = payload["max_tokens"] del payload["max_tokens"] - # Fix: o1 and o3 do not support the "system" parameter. Modify "system" to "developer" + # Fix: o1 and o3 do not support the "system" role directly. + # For older models like "o1-mini" or "o1-preview", use role "user". + # For newer o1/o3 models, replace "system" with "developer". if payload["messages"][0]["role"] == "system": - payload["messages"][0]["role"] = "developer" + model_lower = payload["model"].lower() + if model_lower.startswith("o1-mini") or model_lower.startswith("o1-preview"): + payload["messages"][0]["role"] = "user" + else: + payload["messages"][0]["role"] = "developer" return payload From 4cc3102758e96de41f3b6204d45e4094d0b3aaa6 Mon Sep 17 00:00:00 2001 From: hurxxxx Date: Mon, 24 Feb 2025 23:14:10 +0900 Subject: [PATCH 45/58] feat: onedrive file picker integration --- backend/open_webui/config.py | 12 + backend/open_webui/main.py | 8 + backend/open_webui/routers/retrieval.py | 9 + package-lock.json | 22 - package.json | 1 - src/lib/apis/retrieval/index.ts | 1 + .../admin/Settings/Documents.svelte | 15 + src/lib/components/chat/MessageInput.svelte | 11 +- .../chat/MessageInput/InputMenu.svelte | 47 +- src/lib/stores/index.ts | 1 + src/lib/utils/onedrive-auth.ts | 42 -- src/lib/utils/onedrive-file-picker.ts | 463 ++++++++++-------- 12 files changed, 337 insertions(+), 295 deletions(-) delete mode 100644 src/lib/utils/onedrive-auth.ts diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index b2f8dccca..91cc2e992 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1570,6 +1570,18 @@ GOOGLE_DRIVE_API_KEY = PersistentConfig( os.environ.get("GOOGLE_DRIVE_API_KEY", ""), ) +ENABLE_ONEDRIVE_INTEGRATION = PersistentConfig( + "ENABLE_ONEDRIVE_INTEGRATION", + "onedrive.enable", + os.getenv("ENABLE_ONEDRIVE_INTEGRATION", "False").lower() == "true", +) + +ONEDRIVE_CLIENT_ID = PersistentConfig( + "ONEDRIVE_CLIENT_ID", + "onedrive.client_id", + os.environ.get("ONEDRIVE_CLIENT_ID", ""), +) + # RAG Content Extraction CONTENT_EXTRACTION_ENGINE = PersistentConfig( "CONTENT_EXTRACTION_ENGINE", diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 1371f7d15..62e53e34c 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -95,6 +95,7 @@ from open_webui.config import ( OLLAMA_API_CONFIGS, # OpenAI ENABLE_OPENAI_API, + ONEDRIVE_CLIENT_ID, OPENAI_API_BASE_URLS, OPENAI_API_KEYS, OPENAI_API_CONFIGS, @@ -217,11 +218,13 @@ from open_webui.config import ( GOOGLE_PSE_ENGINE_ID, GOOGLE_DRIVE_CLIENT_ID, GOOGLE_DRIVE_API_KEY, + ONEDRIVE_CLIENT_ID, ENABLE_RAG_HYBRID_SEARCH, ENABLE_RAG_LOCAL_WEB_FETCH, ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION, ENABLE_RAG_WEB_SEARCH, ENABLE_GOOGLE_DRIVE_INTEGRATION, + ENABLE_ONEDRIVE_INTEGRATION, UPLOAD_DIR, # WebUI WEBUI_AUTH, @@ -568,6 +571,7 @@ app.state.config.RAG_WEB_SEARCH_FULL_CONTEXT = RAG_WEB_SEARCH_FULL_CONTEXT app.state.config.RAG_WEB_SEARCH_DOMAIN_FILTER_LIST = RAG_WEB_SEARCH_DOMAIN_FILTER_LIST app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION = ENABLE_GOOGLE_DRIVE_INTEGRATION +app.state.config.ENABLE_ONEDRIVE_INTEGRATION = ENABLE_ONEDRIVE_INTEGRATION app.state.config.SEARXNG_QUERY_URL = SEARXNG_QUERY_URL app.state.config.GOOGLE_PSE_API_KEY = GOOGLE_PSE_API_KEY app.state.config.GOOGLE_PSE_ENGINE_ID = GOOGLE_PSE_ENGINE_ID @@ -1150,6 +1154,7 @@ async def get_app_config(request: Request): "enable_admin_export": ENABLE_ADMIN_EXPORT, "enable_admin_chat_access": ENABLE_ADMIN_CHAT_ACCESS, "enable_google_drive_integration": app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION, + "enable_onedrive_integration": app.state.config.ENABLE_ONEDRIVE_INTEGRATION, } if user is not None else {} @@ -1181,6 +1186,9 @@ async def get_app_config(request: Request): "client_id": GOOGLE_DRIVE_CLIENT_ID.value, "api_key": GOOGLE_DRIVE_API_KEY.value, }, + "onedrive": { + "client_id": ONEDRIVE_CLIENT_ID.value + } } if user is not None else {} diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index c2cb68c5d..51f77d6b1 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -353,6 +353,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "pdf_extract_images": request.app.state.config.PDF_EXTRACT_IMAGES, "RAG_FULL_CONTEXT": request.app.state.config.RAG_FULL_CONTEXT, "enable_google_drive_integration": request.app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION, + "enable_onedrive_integration": request.app.state.config.ENABLE_ONEDRIVE_INTEGRATION, "content_extraction": { "engine": request.app.state.config.CONTENT_EXTRACTION_ENGINE, "tika_server_url": request.app.state.config.TIKA_SERVER_URL, @@ -381,6 +382,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "search": { "enabled": request.app.state.config.ENABLE_RAG_WEB_SEARCH, "drive": request.app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION, + "onedrive": request.app.state.config.ENABLE_ONEDRIVE_INTEGRATION, "engine": request.app.state.config.RAG_WEB_SEARCH_ENGINE, "searxng_query_url": request.app.state.config.SEARXNG_QUERY_URL, "google_pse_api_key": request.app.state.config.GOOGLE_PSE_API_KEY, @@ -478,6 +480,7 @@ class ConfigUpdateForm(BaseModel): RAG_FULL_CONTEXT: Optional[bool] = None pdf_extract_images: Optional[bool] = None enable_google_drive_integration: Optional[bool] = None + enable_onedrive_integration: Optional[bool] = None file: Optional[FileConfig] = None content_extraction: Optional[ContentExtractionConfig] = None chunk: Optional[ChunkParamUpdateForm] = None @@ -507,6 +510,12 @@ async def update_rag_config( else request.app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION ) + request.app.state.config.ENABLE_ONEDRIVE_INTEGRATION = ( + form_data.enable_onedrive_integration + if form_data.enable_onedrive_integration is not None + else request.app.state.config.ENABLE_ONEDRIVE_INTEGRATION + ) + if form_data.file is not None: request.app.state.config.FILE_MAX_SIZE = form_data.file.max_size request.app.state.config.FILE_MAX_COUNT = form_data.file.max_count diff --git a/package-lock.json b/package-lock.json index 066cf2be5..c65870772 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "name": "open-webui", "version": "0.5.16", "dependencies": { - "@azure/msal-browser": "^4.4.0", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-python": "^6.1.6", "@codemirror/language-data": "^6.5.1", @@ -135,27 +134,6 @@ "node": ">=6.0.0" } }, - "node_modules/@azure/msal-browser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.4.0.tgz", - "integrity": "sha512-rU6juYXk67CKQmpgi6fDgZoPQ9InZ1760z1BSAH7RbeIc4lHZM/Tu+H0CyRk7cnrfvTkexyYE4pjYhMghpzheA==", - "license": "MIT", - "dependencies": { - "@azure/msal-common": "15.2.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@azure/msal-common": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.2.0.tgz", - "integrity": "sha512-HiYfGAKthisUYqHG1nImCf/uzcyS31wng3o+CycWLIM9chnYJ9Lk6jZ30Y6YiYYpTQ9+z/FGUpiKKekd3Arc0A==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@babel/runtime": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", diff --git a/package.json b/package.json index 0e8fe2bc6..86568869f 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ }, "type": "module", "dependencies": { - "@azure/msal-browser": "^4.4.0", "@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-python": "^6.1.6", "@codemirror/language-data": "^6.5.1", diff --git a/src/lib/apis/retrieval/index.ts b/src/lib/apis/retrieval/index.ts index ed07ab5d0..31317fe0b 100644 --- a/src/lib/apis/retrieval/index.ts +++ b/src/lib/apis/retrieval/index.ts @@ -52,6 +52,7 @@ type YoutubeConfigForm = { type RAGConfigForm = { pdf_extract_images?: boolean; enable_google_drive_integration?: boolean; + enable_onedrive_integration?: boolean; chunk?: ChunkConfigForm; content_extraction?: ContentExtractConfigForm; web_loader_ssl_verification?: boolean; diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index b79086309..248f6e9f5 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -61,6 +61,7 @@ let RAG_FULL_CONTEXT = false; let enableGoogleDriveIntegration = false; + let enableOneDriveIntegration = false; let OpenAIUrl = ''; let OpenAIKey = ''; @@ -189,6 +190,7 @@ const res = await updateRAGConfig(localStorage.token, { pdf_extract_images: pdfExtractImages, enable_google_drive_integration: enableGoogleDriveIntegration, + enable_onedrive_integration: enableOneDriveIntegration, file: { max_size: fileMaxSize === '' ? null : fileMaxSize, max_count: fileMaxCount === '' ? null : fileMaxCount @@ -271,6 +273,7 @@ fileMaxCount = res?.file.max_count ?? ''; enableGoogleDriveIntegration = res.enable_google_drive_integration; + enableOneDriveIntegration = res.enable_onedrive_integration; } }); @@ -653,6 +656,18 @@ +
{$i18n.t('OneDrive')}
+ +
+
+
{$i18n.t('Enable OneDrive')}
+
+ +
+
+
+ +
diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index a81139d2f..bf2f5cddb 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -2,7 +2,7 @@ import { toast } from 'svelte-sonner'; import { v4 as uuidv4 } from 'uuid'; import { createPicker, getAuthToken } from '$lib/utils/google-drive-picker'; - import { openOneDrivePicker } from '$lib/utils/onedrive-file-picker'; + import { pickAndDownloadFile } from '$lib/utils/onedrive-file-picker'; import { onMount, tick, getContext, createEventDispatcher, onDestroy } from 'svelte'; const dispatch = createEventDispatcher(); @@ -1111,10 +1111,10 @@ }} uploadOneDriveHandler={async () => { try { - const fileData = await openOneDrivePicker(); + const fileData = await pickAndDownloadFile(); if (fileData) { const file = new File([fileData.blob], fileData.name, { - type: fileData.blob.type + type: fileData.blob.type || 'application/octet-stream' }); await uploadFileHandler(file); } else { @@ -1122,11 +1122,6 @@ } } catch (error) { console.error('OneDrive Error:', error); - toast.error( - $i18n.t('Error accessing OneDrive: {{error}}', { - error: error.message - }) - ); } }} onClose={async () => { diff --git a/src/lib/components/chat/MessageInput/InputMenu.svelte b/src/lib/components/chat/MessageInput/InputMenu.svelte index 91f9cf81b..7f7660f19 100644 --- a/src/lib/components/chat/MessageInput/InputMenu.svelte +++ b/src/lib/components/chat/MessageInput/InputMenu.svelte @@ -228,30 +228,41 @@ {/if} - {#if $config?.features?.enable_onedrive_integration || true} + {#if $config?.features?.enable_onedrive_integration} { uploadOneDriveHandler(); }} > - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$i18n.t('OneDrive')}
diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index f96670cb6..1f6b400e0 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -204,6 +204,7 @@ type Config = { enable_login_form: boolean; enable_web_search?: boolean; enable_google_drive_integration: boolean; + enable_onedrive_integration: boolean; enable_image_generation: boolean; enable_admin_export: boolean; enable_admin_chat_access: boolean; diff --git a/src/lib/utils/onedrive-auth.ts b/src/lib/utils/onedrive-auth.ts deleted file mode 100644 index be2de44a0..000000000 --- a/src/lib/utils/onedrive-auth.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { PublicClientApplication } from '@azure/msal-browser'; - -const msalParams = { - auth: { - authority: 'https://login.microsoftonline.com/consumers', - clientId: '2ab80a1e-7300-4cb1-beac-c38c730e8b7f' - } -}; - -// MSAL 초기화 -const app = new PublicClientApplication(msalParams); - -export async function initializeMsal() { - try { - await app.initialize(); - console.log('MSAL initialized successfully'); - } catch (error) { - console.error('MSAL initialization error:', error); - } - } - - export async function getToken(): Promise { - const authParams = { scopes: ['OneDrive.ReadWrite'] }; - let accessToken = ''; - - try { - // Ensure initialization happens early - await initializeMsal(); - const resp = await app.acquireTokenSilent(authParams); - accessToken = resp.accessToken; - } catch (err) { - const resp = await app.loginPopup(authParams); - app.setActiveAccount(resp.account); - - if (resp.idToken) { - const resp2 = await app.acquireTokenSilent(authParams); - accessToken = resp2.accessToken; - } - } - - return accessToken; - } diff --git a/src/lib/utils/onedrive-file-picker.ts b/src/lib/utils/onedrive-file-picker.ts index d003e38ec..e3a80c912 100644 --- a/src/lib/utils/onedrive-file-picker.ts +++ b/src/lib/utils/onedrive-file-picker.ts @@ -1,211 +1,266 @@ -// src/lib/utils/onedrive-file-picker.ts -import { getToken } from './onedrive-auth'; +let CLIENT_ID = ''; +async function getCredentials() { + if (CLIENT_ID) return; + const response = await fetch('/api/config'); + if (!response.ok) { + throw new Error('Failed to fetch OneDrive credentials'); + } + const config = await response.json(); + CLIENT_ID = config.onedrive?.client_id; + if (!CLIENT_ID) { + throw new Error('OneDrive client ID not configured'); + } +} + +function loadMsalScript(): Promise { + return new Promise((resolve, reject) => { + const win = window; + if (win.msal) { + resolve(); + return; + } + const script = document.createElement('script'); + script.src = 'https://alcdn.msauth.net/browser/2.19.0/js/msal-browser.min.js'; + script.async = true; + script.onload = () => resolve(); + script.onerror = () => reject(new Error('Failed to load MSAL script')); + document.head.appendChild(script); + }); +} + +let msalInstance: any; + +// Initialize MSAL authentication +async function initializeMsal() { + if (!CLIENT_ID) { + await getCredentials(); + } + const msalParams = { + auth: { + authority: 'https://login.microsoftonline.com/consumers', + clientId: CLIENT_ID + } + }; + try { + await loadMsalScript(); + const win = window; + msalInstance = new win.msal.PublicClientApplication(msalParams); + if (msalInstance.initialize) { + await msalInstance.initialize(); + } + } catch (error) { + console.error('MSAL initialization error:', error); + } +} + +// Retrieve OneDrive access token +async function getToken(): Promise { + const authParams = { scopes: ['OneDrive.ReadWrite'] }; + let accessToken = ''; + try { + await initializeMsal(); + const resp = await msalInstance.acquireTokenSilent(authParams); + accessToken = resp.accessToken; + } catch (err) { + const resp = await msalInstance.loginPopup(authParams); + msalInstance.setActiveAccount(resp.account); + if (resp.idToken) { + const resp2 = await msalInstance.acquireTokenSilent(authParams); + accessToken = resp2.accessToken; + } + } + return accessToken; +} const baseUrl = "https://onedrive.live.com/picker"; const params = { - sdk: '8.0', - entry: { - oneDrive: { - files: {} - } - }, - authentication: {}, - messaging: { - origin: 'http://localhost:3000', // 현재 부모 페이지의 origin - channelId: '27' // 메시징 채널용 임의의 ID - }, - typesAndSources: { - mode: 'files', - pivots: { - oneDrive: true, - recent: true - } - } + sdk: '8.0', + entry: { + oneDrive: { + files: {} + } + }, + authentication: {}, + messaging: { + origin: window?.location?.origin, + channelId: crypto.randomUUID() + }, + typesAndSources: { + mode: 'files', + pivots: { + oneDrive: true, + recent: true + } + } }; -/** - * OneDrive 파일 피커 창을 열고, 사용자가 선택한 파일 메타데이터를 받아오는 함수 - */ -export async function openOneDrivePicker(): Promise { - // SSR 환경(SvelteKit)에서 window 객체가 없을 수 있으므로 가드 - if (typeof window === 'undefined') { - throw new Error('Not in browser environment'); - } - - return new Promise(async (resolve, reject) => { - let pickerWindow: Window | null = null; - let channelPort: MessagePort | null = null; - - try { - const authToken = await getToken(); - if (!authToken) { - return reject(new Error('Failed to acquire access token')); - } - - // 팝업 창 오픈 - pickerWindow = window.open('', 'OneDrivePicker', 'width=800,height=600'); - if (!pickerWindow) { - return reject(new Error('Failed to open OneDrive picker window')); - } - - // 쿼리스트링 구성 - const queryString = new URLSearchParams({ - filePicker: JSON.stringify(params) - }); - const url = `${baseUrl}?${queryString.toString()}`; - - // 새로 연 window에 form을 동적으로 추가하여 POST - const form = pickerWindow.document.createElement('form'); - form.setAttribute('action', url); - form.setAttribute('method', 'POST'); - - const input = pickerWindow.document.createElement('input'); - input.setAttribute('type', 'hidden'); - input.setAttribute('name', 'access_token'); - input.setAttribute('value', authToken); - - form.appendChild(input); - pickerWindow.document.body.appendChild(form); - form.submit(); - - // 부모 창에서 message 이벤트 수신 - const handleWindowMessage = (event: MessageEvent) => { - // pickerWindow가 아닌 다른 window에서 온 메시지는 무시 - if (event.source !== pickerWindow) return; - - const message = event.data; - - // 초기화 메시지 => SharedWorker(MessageChannel) 식으로 포트 받기 - if ( - message?.type === 'initialize' && - message?.channelId === params.messaging.channelId - ) { - channelPort = event.ports?.[0]; - if (!channelPort) return; - - channelPort.addEventListener('message', handlePortMessage); - channelPort.start(); - - // picker iframe에 'activate' 전달 - channelPort.postMessage({ - type: 'activate' - }); - } - }; - - // 포트 메시지 핸들러 - const handlePortMessage = async (portEvent: MessageEvent) => { - const portData = portEvent.data; - switch (portData.type) { - case 'notification': - console.log('notification:', portData); - break; - - case 'command': { - // picker에 응답 - channelPort?.postMessage({ - type: 'acknowledge', - id: portData.id - }); - - const command = portData.data; - - switch (command.command) { - case 'authenticate': { - // 재인증 - try { - const newToken = await getToken(); - if (newToken) { - channelPort?.postMessage({ - type: 'result', - id: portData.id, - data: { - result: 'token', - token: newToken - } - }); - } else { - throw new Error('Could not retrieve auth token'); - } - } catch (err) { - console.error(err); - channelPort?.postMessage({ - result: 'error', - error: { - code: 'tokenError', - message: 'Failed to get token' - }, - isExpected: true - }); - } - break; - } - - case 'close': { - // 사용자가 취소하거나 닫았을 경우 - cleanup(); - resolve(null); - break; - } - - case 'pick': { - // 사용자가 파일 선택 완료 - console.log('Picked:', command); - /** - * command 안에는 사용자가 선택한 파일들의 메타데이터 정보가 들어있습니다. - * 필요하다면 Microsoft Graph API 등을 통해 Blob(실제 파일 데이터)을 받아와야 할 수 있습니다. - */ - - // picker에 응답 - channelPort?.postMessage({ - type: 'result', - id: portData.id, - data: { - result: 'success' - } - }); - - // 선택한 파일들(메타정보)을 resolve - cleanup(); - resolve(command); - break; - } - - default: { - console.warn('Unsupported command:', command); - channelPort?.postMessage({ - result: 'error', - error: { - code: 'unsupportedCommand', - message: command.command - }, - isExpected: true - }); - break; - } - } - break; - } - } - }; - - function cleanup() { - window.removeEventListener('message', handleWindowMessage); - if (channelPort) { - channelPort.removeEventListener('message', handlePortMessage); - } - if (pickerWindow) { - pickerWindow.close(); - pickerWindow = null; - } - } - - // 메시지 이벤트 등록 - window.addEventListener('message', handleWindowMessage); - } catch (err) { - if (pickerWindow) pickerWindow.close(); - reject(err); - } - }); +// Download file from OneDrive +async function downloadOneDriveFile(fileInfo: any): Promise { + const accessToken = await getToken(); + if (!accessToken) { + throw new Error('Unable to retrieve OneDrive access token.'); + } + const fileInfoUrl = `${fileInfo["@sharePoint.endpoint"]}/drives/${fileInfo.parentReference.driveId}/items/${fileInfo.id}`; + const response = await fetch(fileInfoUrl, { + headers: { + 'Authorization': `Bearer ${accessToken}` + } + }); + if (!response.ok) { + throw new Error('Failed to fetch file information.'); + } + const fileData = await response.json(); + const downloadUrl = fileData['@content.downloadUrl']; + const downloadResponse = await fetch(downloadUrl); + if (!downloadResponse.ok) { + throw new Error('Failed to download file.'); + } + return await downloadResponse.blob(); } + +// Open OneDrive file picker and return selected file metadata +export async function openOneDrivePicker(): Promise { + if (typeof window === 'undefined') { + throw new Error('Not in browser environment'); + } + return new Promise((resolve, reject) => { + let pickerWindow: Window | null = null; + let channelPort: MessagePort | null = null; + + const handleWindowMessage = (event: MessageEvent) => { + if (event.source !== pickerWindow) return; + const message = event.data; + if (message?.type === 'initialize' && message?.channelId === params.messaging.channelId) { + channelPort = event.ports?.[0]; + if (!channelPort) return; + channelPort.addEventListener('message', handlePortMessage); + channelPort.start(); + channelPort.postMessage({ type: 'activate' }); + } + }; + + const handlePortMessage = async (portEvent: MessageEvent) => { + const portData = portEvent.data; + switch (portData.type) { + case 'notification': + break; + case 'command': { + channelPort?.postMessage({ type: 'acknowledge', id: portData.id }); + const command = portData.data; + switch (command.command) { + case 'authenticate': { + try { + const newToken = await getToken(); + if (newToken) { + channelPort?.postMessage({ + type: 'result', + id: portData.id, + data: { result: 'token', token: newToken } + }); + } else { + throw new Error('Could not retrieve auth token'); + } + } catch (err) { + console.error(err); + channelPort?.postMessage({ + result: 'error', + error: { code: 'tokenError', message: 'Failed to get token' }, + isExpected: true + }); + } + break; + } + case 'close': { + cleanup(); + resolve(null); + break; + } + case 'pick': { + channelPort?.postMessage({ + type: 'result', + id: portData.id, + data: { result: 'success' } + }); + cleanup(); + resolve(command); + break; + } + default: { + console.warn('Unsupported command:', command); + channelPort?.postMessage({ + result: 'error', + error: { code: 'unsupportedCommand', message: command.command }, + isExpected: true + }); + break; + } + } + break; + } + } + }; + + function cleanup() { + window.removeEventListener('message', handleWindowMessage); + if (channelPort) { + channelPort.removeEventListener('message', handlePortMessage); + } + if (pickerWindow) { + pickerWindow.close(); + pickerWindow = null; + } + } + + const initializePicker = async () => { + try { + const authToken = await getToken(); + if (!authToken) { + return reject(new Error('Failed to acquire access token')); + } + pickerWindow = window.open('', 'OneDrivePicker', 'width=800,height=600'); + if (!pickerWindow) { + return reject(new Error('Failed to open OneDrive picker window')); + } + const queryString = new URLSearchParams({ + filePicker: JSON.stringify(params) + }); + const url = `${baseUrl}?${queryString.toString()}`; + const form = pickerWindow.document.createElement('form'); + form.setAttribute('action', url); + form.setAttribute('method', 'POST'); + const input = pickerWindow.document.createElement('input'); + input.setAttribute('type', 'hidden'); + input.setAttribute('name', 'access_token'); + input.setAttribute('value', authToken); + form.appendChild(input); + pickerWindow.document.body.appendChild(form); + form.submit(); + window.addEventListener('message', handleWindowMessage); + } catch (err) { + if (pickerWindow) pickerWindow.close(); + reject(err); + } + }; + + initializePicker(); + }); +} + +// Pick and download file from OneDrive +export async function pickAndDownloadFile(): Promise<{ blob: Blob; name: string } | null> { + try { + const pickerResult = await openOneDrivePicker(); + if (!pickerResult || !pickerResult.items || pickerResult.items.length === 0) { + return null; + } + const selectedFile = pickerResult.items[0]; + const blob = await downloadOneDriveFile(selectedFile); + return { blob, name: selectedFile.name }; + } catch (error) { + console.error('Error occurred during OneDrive file pick/download:', error); + throw error; + } +} + +export { downloadOneDriveFile }; From b2422b3c8fe5cc3bf797482cce84664c12687e14 Mon Sep 17 00:00:00 2001 From: hurxxxx Date: Tue, 25 Feb 2025 01:56:33 +0900 Subject: [PATCH 46/58] i18n: onedrive related --- src/lib/i18n/locales/ar-BH/translation.json | 14 +++++++++++-- src/lib/i18n/locales/bg-BG/translation.json | 14 +++++++++++-- src/lib/i18n/locales/bn-BD/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ca-ES/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ceb-PH/translation.json | 14 +++++++++++-- src/lib/i18n/locales/cs-CZ/translation.json | 14 +++++++++++-- src/lib/i18n/locales/da-DK/translation.json | 14 +++++++++++-- src/lib/i18n/locales/de-DE/translation.json | 14 +++++++++++-- src/lib/i18n/locales/dg-DG/translation.json | 14 +++++++++++-- src/lib/i18n/locales/el-GR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/en-GB/translation.json | 14 +++++++++++-- src/lib/i18n/locales/en-US/translation.json | 14 +++++++++++-- src/lib/i18n/locales/es-ES/translation.json | 14 +++++++++++-- src/lib/i18n/locales/eu-ES/translation.json | 14 +++++++++++-- src/lib/i18n/locales/fa-IR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/fi-FI/translation.json | 14 +++++++++++-- src/lib/i18n/locales/fr-CA/translation.json | 14 +++++++++++-- src/lib/i18n/locales/fr-FR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/he-IL/translation.json | 14 +++++++++++-- src/lib/i18n/locales/hi-IN/translation.json | 14 +++++++++++-- src/lib/i18n/locales/hr-HR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/hu-HU/translation.json | 14 +++++++++++-- src/lib/i18n/locales/id-ID/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ie-GA/translation.json | 14 +++++++++++-- src/lib/i18n/locales/it-IT/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ja-JP/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ka-GE/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ko-KR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/lt-LT/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ms-MY/translation.json | 14 +++++++++++-- src/lib/i18n/locales/nb-NO/translation.json | 14 +++++++++++-- src/lib/i18n/locales/nl-NL/translation.json | 14 +++++++++++-- src/lib/i18n/locales/pa-IN/translation.json | 14 +++++++++++-- src/lib/i18n/locales/pl-PL/translation.json | 22 +++++++++++++++++--- src/lib/i18n/locales/pt-BR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/pt-PT/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ro-RO/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ru-RU/translation.json | 14 +++++++++++-- src/lib/i18n/locales/sk-SK/translation.json | 14 +++++++++++-- src/lib/i18n/locales/sr-RS/translation.json | 14 +++++++++++-- src/lib/i18n/locales/sv-SE/translation.json | 14 +++++++++++-- src/lib/i18n/locales/th-TH/translation.json | 14 +++++++++++-- src/lib/i18n/locales/tk-TW/translation.json | 14 +++++++++++-- src/lib/i18n/locales/tr-TR/translation.json | 14 +++++++++++-- src/lib/i18n/locales/uk-UA/translation.json | 14 +++++++++++-- src/lib/i18n/locales/ur-PK/translation.json | 14 +++++++++++-- src/lib/i18n/locales/vi-VN/translation.json | 14 +++++++++++-- src/lib/i18n/locales/zh-CN/translation.json | 14 +++++++++++-- src/lib/i18n/locales/zh-TW/translation.json | 14 +++++++++++-- 49 files changed, 595 insertions(+), 99 deletions(-) diff --git a/src/lib/i18n/locales/ar-BH/translation.json b/src/lib/i18n/locales/ar-BH/translation.json index d9576d41a..a43af5d35 100644 --- a/src/lib/i18n/locales/ar-BH/translation.json +++ b/src/lib/i18n/locales/ar-BH/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "يتم استخدام نموذج المهمة عند تنفيذ مهام مثل إنشاء عناوين للدردشات واستعلامات بحث الويب", "a user": "مستخدم", "About": "عن", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "أرفق ملف", + "Attach file from knowledge": "", "Attention to detail": "انتبه للتفاصيل", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "المستند", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "مستندات", "does not make any external connections, and your data stays securely on your locally hosted server.": "لا يجري أي اتصالات خارجية، وتظل بياناتك آمنة على الخادم المستضاف محليًا.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "تفعيل عمليات التسجيل الجديدة", + "Enable OneDrive": "", "Enable Web Search": "تمكين بحث الويب", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "أدخل الChunk Overlap", "Enter Chunk Size": "أدخل Chunk الحجم", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "أدخل عنوان URL ل Github Raw", @@ -510,6 +516,7 @@ "General Settings": "الاعدادات العامة", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "إنشاء استعلام بحث", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "من جهة اليسار إلى اليمين", "Made by Open WebUI Community": "OpenWebUI تم إنشاؤه بواسطة مجتمع ", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama الاصدار", "On": "تشغيل", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "يُسمح فقط بالأحرف الأبجدية الرقمية والواصلات في سلسلة الأمر.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": " أختار موديل", "Select only one model to call": "", "Selected model(s) do not support image inputs": "النموذج (النماذج) المحددة لا تدعم مدخلات الصور", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "هل تواجه مشكلة في الوصول", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS اعدادات", "TTS Voice": "", diff --git a/src/lib/i18n/locales/bg-BG/translation.json b/src/lib/i18n/locales/bg-BG/translation.json index eb06681f8..7e0f8bb49 100644 --- a/src/lib/i18n/locales/bg-BG/translation.json +++ b/src/lib/i18n/locales/bg-BG/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Моделът на задачите се използва при изпълнение на задачи като генериране на заглавия за чатове и заявки за търсене в мрежата", "a user": "потребител", "About": "Относно", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Достъп", "Access Control": "Контрол на достъпа", "Accessible to all users": "Достъпно за всички потребители", @@ -93,7 +94,7 @@ "Artifacts": "Артефакти", "Ask a question": "Задайте въпрос", "Assistant": "Асистент", - "Attach file": "Прикачване на файл", + "Attach file from knowledge": "", "Attention to detail": "Внимание към детайлите", "Attribute for Mail": "Атрибут за поща", "Attribute for Username": "Атрибут за потребителско име", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Не инсталирайте функции от източници, на които не се доверявате напълно.", "Do not install tools from sources you do not fully trust.": "Не инсталирайте инструменти от източници, на които не се доверявате напълно.", "Document": "Документ", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Документация", "Documents": "Документи", "does not make any external connections, and your data stays securely on your locally hosted server.": "няма външни връзки, и вашите данни остават сигурни на локално назначен сървър.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Активиране на оценяване на съобщения", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Активиране на Mirostat семплиране за контрол на перплексията. (По подразбиране: 0, 0 = Деактивирано, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Включване на нови регистрации", + "Enable OneDrive": "", "Enable Web Search": "Разрешаване на търсене в уеб", "Enabled": "Активирано", "Engine": "Двигател", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Въведете припокриване на чънкове", "Enter Chunk Size": "Въведете размер на чънк", "Enter description": "Въведете описание", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Въведете домейни, разделени със запетаи (напр. example.com,site.org)", "Enter Exa API Key": "Въведете API ключ за Exa", "Enter Github Raw URL": "Въведете URL адрес на Github Raw", @@ -510,6 +516,7 @@ "General Settings": "Основни Настройки", "Generate an image": "Генериране на изображение", "Generate Image": "Генериране на изображение", + "Generate prompt pair": "", "Generating search query": "Генериране на заявка за търсене", "Get started": "Започнете", "Get started with {{WEBUI_NAME}}": "Започнете с {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "Зареждане на Kokoro.js...", "Local": "Локално", "Local Models": "Локални модели", + "Location access not allowed": "", "Lost": "Изгубено", "LTR": "LTR", "Made by Open WebUI Community": "Направено от OpenWebUI общността", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Настройките на Ollama API са актуализирани", "Ollama Version": "Ollama Версия", "On": "Вкл.", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Разрешени са само буквено-цифрови знаци и тирета", "Only alphanumeric characters and hyphens are allowed in the command string.": "Само алфанумерични знаци и тире са разрешени в командния низ.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Само колекции могат да бъдат редактирани, създайте нова база от знания, за да редактирате/добавяте документи.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Изберете инстанция на Ollama", "Select Engine": "Изберете двигател", "Select Knowledge": "Изберете знание", - "Select model": "Изберете модел", "Select only one model to call": "Изберете само един модел за извикване", "Selected model(s) do not support image inputs": "Избраният(те) модел(и) не поддържа въвеждане на изображения", "Semantic distance to query": "Семантично разстояние до заявката", @@ -957,6 +965,7 @@ "Tags Generation": "Генериране на тагове", "Tags Generation Prompt": "Промпт за генериране на тагове", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Безопашковото семплиране се използва за намаляване на влиянието на по-малко вероятните токени от изхода. По-висока стойност (напр. 2.0) ще намали влиянието повече, докато стойност 1.0 деактивира тази настройка. (по подразбиране: 1)", + "Talk to model": "", "Tap to interrupt": "Докоснете за прекъсване", "Tasks": "Задачи", "Tavily API Key": "Tavily API Ключ", @@ -1041,6 +1050,7 @@ "Top P": "Топ P", "Transformers": "Трансформатори", "Trouble accessing Ollama?": "Проблеми с достъпа до Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS Модел", "TTS Settings": "TTS Настройки", "TTS Voice": "TTS Глас", diff --git a/src/lib/i18n/locales/bn-BD/translation.json b/src/lib/i18n/locales/bn-BD/translation.json index 8ca1ac0d3..adae983ce 100644 --- a/src/lib/i18n/locales/bn-BD/translation.json +++ b/src/lib/i18n/locales/bn-BD/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "চ্যাট এবং ওয়েব অনুসন্ধান প্রশ্নের জন্য শিরোনাম তৈরি করার মতো কাজগুলি সম্পাদন করার সময় একটি টাস্ক মডেল ব্যবহার করা হয়", "a user": "একজন ব্যাবহারকারী", "About": "সম্পর্কে", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "ফাইল যুক্ত করুন", + "Attach file from knowledge": "", "Attention to detail": "বিস্তারিত বিশেষতা", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "ডকুমেন্ট", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "ডকুমেন্টসমূহ", "does not make any external connections, and your data stays securely on your locally hosted server.": "কোন এক্সটার্নাল কানেকশন তৈরি করে না, এবং আপনার ডেটা আর লোকালি হোস্টেড সার্ভারেই নিরাপদে থাকে।", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "নতুন সাইনআপ চালু করুন", + "Enable OneDrive": "", "Enable Web Search": "ওয়েব অনুসন্ধান সক্ষম করুন", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "চাঙ্ক ওভারল্যাপ লিখুন", "Enter Chunk Size": "চাংক সাইজ লিখুন", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "গিটহাব কাঁচা URL লিখুন", @@ -510,6 +516,7 @@ "General Settings": "সাধারণ সেটিংসমূহ", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "অনুসন্ধান ক্যোয়ারী তৈরি করা হচ্ছে", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "OpenWebUI কমিউনিটিকর্তৃক নির্মিত", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama ভার্সন", "On": "চালু", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "কমান্ড স্ট্রিং-এ শুধুমাত্র ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন ব্যবহার করা যাবে।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "মডেল নির্বাচন করুন", "Select only one model to call": "", "Selected model(s) do not support image inputs": "নির্বাচিত মডেল(গুলি) চিত্র ইনপুট সমর্থন করে না", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Ollama এক্সেস করতে সমস্যা হচ্ছে?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS সেটিংসমূহ", "TTS Voice": "", diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index 963fdcd60..70d5ead0c 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de tasca s'utilitza quan es realitzen tasques com ara generar títols per a xats i consultes de cerca per a la web", "a user": "un usuari", "About": "Sobre", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Accés", "Access Control": "Control d'accés", "Accessible to all users": "Accessible a tots els usuaris", @@ -93,7 +94,7 @@ "Artifacts": "Artefactes", "Ask a question": "Fer una pregunta", "Assistant": "Assistent", - "Attach file": "Adjuntar arxiu", + "Attach file from knowledge": "", "Attention to detail": "Atenció al detall", "Attribute for Mail": "Atribut per al Correu", "Attribute for Username": "Atribut per al Nom d'usuari", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "No instal·lis funcions de fonts en què no confiïs plenament.", "Do not install tools from sources you do not fully trust.": "No instal·lis eines de fonts en què no confiïs plenament.", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentació", "Documents": "Documents", "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.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Permetre la qualificació de missatges", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Activar el mostreig de Mirostat per controlar la perplexitat. (Per defecte: 0, 0 = Inhabilitat, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Permetre nous registres", + "Enable OneDrive": "", "Enable Web Search": "Activar la cerca web", "Enabled": "Habilitat", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Introdueix la mida de solapament de blocs", "Enter Chunk Size": "Introdueix la mida del bloc", "Enter description": "Introdueix la descripció", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Introdueix els dominis separats per comes (p. ex. example.com,site.org)", "Enter Exa API Key": "Introdueix la clau API de d'EXA", "Enter Github Raw URL": "Introdueix l'URL en brut de Github", @@ -510,6 +516,7 @@ "General Settings": "Preferències generals", "Generate an image": "Generar una imatge", "Generate Image": "Generar imatge", + "Generate prompt pair": "", "Generating search query": "Generant consulta", "Get started": "Començar", "Get started with {{WEBUI_NAME}}": "Començar amb {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "Carregant Kokoro.js", "Local": "Local", "Local Models": "Models locals", + "Location access not allowed": "", "Lost": "Perdut", "LTR": "LTR", "Made by Open WebUI Community": "Creat per la Comunitat OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "La configuració de l'API d'Ollama s'ha actualitzat", "Ollama Version": "Versió d'Ollama", "On": "Activat", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Només es permeten caràcters alfanumèrics i guions", "Only alphanumeric characters and hyphens are allowed in the command string.": "Només es permeten caràcters alfanumèrics i guions en la comanda.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Només es poden editar col·leccions, crea una nova base de coneixement per editar/afegir documents.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Seleccionar una instància d'Ollama", "Select Engine": "Seleccionar el motor", "Select Knowledge": "Seleccionar coneixement", - "Select model": "Seleccionar un model", "Select only one model to call": "Seleccionar només un model per trucar", "Selected model(s) do not support image inputs": "El(s) model(s) seleccionats no admeten l'entrada d'imatges", "Semantic distance to query": "Distància semàntica a la pregunta", @@ -957,6 +965,7 @@ "Tags Generation": "Generació d'etiquetes", "Tags Generation Prompt": "Indicació per a la generació d'etiquetes", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "El mostreig sense cua s'utilitza per reduir l'impacte de tokens menys probables de la sortida. Un valor més alt (p. ex., 2,0) reduirà més l'impacte, mentre que un valor d'1,0 desactiva aquesta configuració. (per defecte: 1)", + "Talk to model": "", "Tap to interrupt": "Prem per interrompre", "Tasks": "Tasques", "Tavily API Key": "Clau API de Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformadors", "Trouble accessing Ollama?": "Problemes en accedir a Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model TTS", "TTS Settings": "Preferències de TTS", "TTS Voice": "Veu TTS", diff --git a/src/lib/i18n/locales/ceb-PH/translation.json b/src/lib/i18n/locales/ceb-PH/translation.json index daf880637..9a3082543 100644 --- a/src/lib/i18n/locales/ceb-PH/translation.json +++ b/src/lib/i18n/locales/ceb-PH/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "", "a user": "usa ka user", "About": "Mahitungod sa", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Ilakip ang usa ka file", + "Attach file from knowledge": "", "Attention to detail": "Pagtagad sa mga detalye", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Dokumento", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "Mga dokumento", "does not make any external connections, and your data stays securely on your locally hosted server.": "wala maghimo ug eksternal nga koneksyon, ug ang imong data nagpabiling luwas sa imong lokal nga host server.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "I-enable ang bag-ong mga rehistro", + "Enable OneDrive": "", "Enable Web Search": "", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Pagsulod sa block overlap", "Enter Chunk Size": "Isulod ang block size", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "", @@ -510,6 +516,7 @@ "General Settings": "kinatibuk-ang mga setting", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "", "Made by Open WebUI Community": "Gihimo sa komunidad sa OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama nga bersyon", "On": "Gipaandar", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Ang alphanumeric nga mga karakter ug hyphen lang ang gitugotan sa command string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Pagpili og modelo", "Select only one model to call": "", "Selected model(s) do not support image inputs": "", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Ibabaw nga P", "Transformers": "", "Trouble accessing Ollama?": "Adunay mga problema sa pag-access sa Ollama?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "Mga Setting sa TTS", "TTS Voice": "", diff --git a/src/lib/i18n/locales/cs-CZ/translation.json b/src/lib/i18n/locales/cs-CZ/translation.json index d73759106..c832aaf28 100644 --- a/src/lib/i18n/locales/cs-CZ/translation.json +++ b/src/lib/i18n/locales/cs-CZ/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model úloh se používá při provádění úloh, jako je generování názvů pro chaty a vyhledávací dotazy na webu.", "a user": "uživatel", "About": "O programu", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Přístup", "Access Control": "", "Accessible to all users": "Přístupné pro všecny uživatele", @@ -93,7 +94,7 @@ "Artifacts": "Artefakty", "Ask a question": "Zeptejte se na otázku", "Assistant": "Ano, jak vám mohu pomoci?", - "Attach file": "Připojit soubor", + "Attach file from knowledge": "", "Attention to detail": "Pozornost k detailům", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Neinstalujte funkce ze zdrojů, kterým plně nedůvěřujete.", "Do not install tools from sources you do not fully trust.": "Neinstalujte nástroje ze zdrojů, kterým plně nedůvěřujete.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentace", "Documents": "Dokumenty", "does not make any external connections, and your data stays securely on your locally hosted server.": "nevytváří žádná externí připojení a vaše data zůstávají bezpečně na vašem lokálním serveru.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Povolit hodnocení zpráv", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Povolit nové registrace", + "Enable OneDrive": "", "Enable Web Search": "Povolit webové vyhledávání", "Enabled": "Povoleno", "Engine": "Engine", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Zadejte překryv části", "Enter Chunk Size": "Zadejte velikost bloku", "Enter description": "Zadejte popis", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Zadejte URL adresu Github Raw", @@ -510,6 +516,7 @@ "General Settings": "Obecná nastavení", "Generate an image": "", "Generate Image": "Vygenerovat obrázek", + "Generate prompt pair": "", "Generating search query": "Generování vyhledávacího dotazu", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokální modely", + "Location access not allowed": "", "Lost": "Ztracený", "LTR": "LTR", "Made by Open WebUI Community": "Vytvořeno komunitou OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Verze Ollama", "On": "Na", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Příkazový řetězec smí obsahovat pouze alfanumerické znaky a pomlčky.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Pouze kolekce mohou být upravovány, pro úpravu/přidání dokumentů vytvořte novou znalostní bázi.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Vyberte engine", "Select Knowledge": "Vybrat znalosti", - "Select model": "Vyberte model", "Select only one model to call": "Vyberte pouze jeden model, který chcete použít", "Selected model(s) do not support image inputs": "Vybraný(é) model(y) nepodporují vstupy v podobě obrázků.", "Semantic distance to query": "Semantická vzdálenost k dotazu", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Prompt pro generování značek", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Klepněte pro přerušení", "Tasks": "", "Tavily API Key": "Klíč API pro Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Máte potíže s přístupem k Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model převodu textu na řeč (TTS)", "TTS Settings": "Nastavení TTS (Text-to-Speech)", "TTS Voice": "TTS hlas", diff --git a/src/lib/i18n/locales/da-DK/translation.json b/src/lib/i18n/locales/da-DK/translation.json index 43fbd4026..b58b62e0b 100644 --- a/src/lib/i18n/locales/da-DK/translation.json +++ b/src/lib/i18n/locales/da-DK/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "En 'task model' bliver brugt til at opgaver såsom at generere overskrifter til chats eller internetsøgninger", "a user": "en bruger", "About": "Information", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "Artifakter", "Ask a question": "Stil et spørgsmål", "Assistant": "", - "Attach file": "Vedhæft fil", + "Attach file from knowledge": "", "Attention to detail": "Detajleorientering", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Lad være med at installere funktioner fra kilder, som du ikke stoler på.", "Do not install tools from sources you do not fully trust.": "Lad være med at installere værktøjer fra kilder, som du ikke stoler på.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentation", "Documents": "Dokumenter", "does not make any external connections, and your data stays securely on your locally hosted server.": "laver ikke eksterne kald, og din data bliver sikkert på din egen lokalt hostede server.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Aktiver rating af besked", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Aktiver nye signups", + "Enable OneDrive": "", "Enable Web Search": "Aktiver websøgning", "Enabled": "Aktiveret", "Engine": "engine", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Indtast overlapning af tekststykker", "Enter Chunk Size": "Indtast størrelse af tekststykker", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Indtast Github Raw URL", @@ -510,6 +516,7 @@ "General Settings": "Generelle indstillinger", "Generate an image": "", "Generate Image": "Generer billede", + "Generate prompt pair": "", "Generating search query": "Genererer søgeforespørgsel", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokale modeller", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Lavet af OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama-version", "On": "Til", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Kun alfanumeriske tegn og bindestreger er tilladt i kommandostrengen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Kun samlinger kan redigeres, opret en ny vidensbase for at redigere/tilføje dokumenter.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Vælg engine", "Select Knowledge": "Vælg viden", - "Select model": "Vælg model", "Select only one model to call": "Vælg kun én model at kalde", "Selected model(s) do not support image inputs": "Valgte model(ler) understøtter ikke billedinput", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Tryk for at afbryde", "Tasks": "", "Tavily API Key": "Tavily API-nøgle", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemer med at få adgang til Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS-model", "TTS Settings": "TTS-indstillinger", "TTS Voice": "TTS-stemme", diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index cab53b54f..38bb180c8 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Aufgabenmodelle können Unterhaltungstitel oder Websuchanfragen generieren.", "a user": "ein Benutzer", "About": "Über", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Zugang", "Access Control": "Zugangskontrolle", "Accessible to all users": "Für alle Benutzer zugänglich", @@ -93,7 +94,7 @@ "Artifacts": "Artefakte", "Ask a question": "Stellen Sie eine Frage", "Assistant": "Assistent", - "Attach file": "Datei anhängen", + "Attach file from knowledge": "", "Attention to detail": "Aufmerksamkeit für Details", "Attribute for Mail": "Attribut für E-Mail", "Attribute for Username": "Attribut für Benutzername", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Installieren Sie keine Funktionen aus Quellen, denen Sie nicht vollständig vertrauen.", "Do not install tools from sources you do not fully trust.": "Installieren Sie keine Werkzeuge aus Quellen, denen Sie nicht vollständig vertrauen.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentation", "Documents": "Dokumente", "does not make any external connections, and your data stays securely on your locally hosted server.": "stellt keine externen Verbindungen her, und Ihre Daten bleiben sicher auf Ihrem lokal gehosteten Server.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Nachrichtenbewertung aktivieren", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Mirostat Sampling zur Steuerung der Perplexität aktivieren. (Standard: 0, 0 = Deaktiviert, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Registrierung erlauben", + "Enable OneDrive": "", "Enable Web Search": "Websuche aktivieren", "Enabled": "Aktiviert", "Engine": "Engine", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Geben Sie die Blocküberlappung ein", "Enter Chunk Size": "Geben Sie die Blockgröße ein", "Enter description": "Geben Sie eine Beschreibung ein", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "Geben Sie den Exa-API-Schlüssel ein", "Enter Github Raw URL": "Geben Sie die Github Raw-URL ein", @@ -510,6 +516,7 @@ "General Settings": "Allgemeine Einstellungen", "Generate an image": "Bild erzeugen", "Generate Image": "Bild erzeugen", + "Generate prompt pair": "", "Generating search query": "Suchanfrage wird erstellt", "Get started": "Loslegen", "Get started with {{WEBUI_NAME}}": "Loslegen mit {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Lokal", "Local Models": "Lokale Modelle", + "Location access not allowed": "", "Lost": "Verloren", "LTR": "LTR", "Made by Open WebUI Community": "Von der OpenWebUI-Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama-API-Einstellungen aktualisiert", "Ollama Version": "Ollama-Version", "On": "Ein", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Nur alphanumerische Zeichen und Bindestriche sind erlaubt", "Only alphanumeric characters and hyphens are allowed in the command string.": "In der Befehlszeichenfolge sind nur alphanumerische Zeichen und Bindestriche erlaubt.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Nur Sammlungen können bearbeitet werden. Erstellen Sie eine neue Wissensbasis, um Dokumente zu bearbeiten/hinzuzufügen.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Wählen Sie eine Ollama-Instanz", "Select Engine": "Engine auswählen", "Select Knowledge": "Wissensdatenbank auswählen", - "Select model": "Modell auswählen", "Select only one model to call": "Wählen Sie nur ein Modell zum Anrufen aus", "Selected model(s) do not support image inputs": "Ihre ausgewählten Modelle unterstützen keine Bildeingaben", "Semantic distance to query": "Semantische Distanz zur Abfrage", @@ -957,6 +965,7 @@ "Tags Generation": "Tag-Generierung", "Tags Generation Prompt": "Prompt für Tag-Generierung", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail-Free Sampling wird verwendet, um den Einfluss weniger wahrscheinlicher Tokens auf die Ausgabe zu reduzieren. Ein höherer Wert (z.B. 2.0) reduziert den Einfluss stärker, während ein Wert von 1.0 diese Einstellung deaktiviert. (Standard: 1)", + "Talk to model": "", "Tap to interrupt": "Zum Unterbrechen tippen", "Tasks": "", "Tavily API Key": "Tavily-API-Schlüssel", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "Probleme beim Zugriff auf Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS-Modell", "TTS Settings": "TTS-Einstellungen", "TTS Voice": "TTS-Stimme", diff --git a/src/lib/i18n/locales/dg-DG/translation.json b/src/lib/i18n/locales/dg-DG/translation.json index 132b55698..5ac2802bd 100644 --- a/src/lib/i18n/locales/dg-DG/translation.json +++ b/src/lib/i18n/locales/dg-DG/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "", "a user": "such user", "About": "Much About", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Attach file", + "Attach file from knowledge": "", "Attention to detail": "", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "Documents", "does not make any external connections, and your data stays securely on your locally hosted server.": "does not connect external, data stays safe locally.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Enable New Bark Ups", + "Enable OneDrive": "", "Enable Web Search": "", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Enter Overlap of Chunks", "Enter Chunk Size": "Enter Size of Chunk", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "", @@ -510,6 +516,7 @@ "General Settings": "General Doge Settings", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "", "Made by Open WebUI Community": "Made by Open WebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama Version", "On": "On", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Only wow characters and hyphens are allowed in the bork string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Select model much choice", "Select only one model to call": "", "Selected model(s) do not support image inputs": "", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P very top", "Transformers": "", "Trouble accessing Ollama?": "Trouble accessing Ollama? Much trouble?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS Settings much settings", "TTS Voice": "", diff --git a/src/lib/i18n/locales/el-GR/translation.json b/src/lib/i18n/locales/el-GR/translation.json index cd8c5e9a7..26cd69b00 100644 --- a/src/lib/i18n/locales/el-GR/translation.json +++ b/src/lib/i18n/locales/el-GR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Ένα μοντέλο εργασίας χρησιμοποιείται κατά την εκτέλεση εργασιών όπως η δημιουργία τίτλων για συνομιλίες και αναζητήσεις στο διαδίκτυο", "a user": "ένας χρήστης", "About": "Σχετικά", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Πρόσβαση", "Access Control": "Έλεγχος Πρόσβασης", "Accessible to all users": "Προσβάσιμο σε όλους τους χρήστες", @@ -93,7 +94,7 @@ "Artifacts": "Αρχεία", "Ask a question": "Ρωτήστε μια ερώτηση", "Assistant": "Βοηθός", - "Attach file": "Συνημμένο αρχείο", + "Attach file from knowledge": "", "Attention to detail": "Προσοχή στη λεπτομέρεια", "Attribute for Mail": "", "Attribute for Username": "Ιδιότητα για Όνομα Χρήστη", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Μην εγκαθιστάτε λειτουργίες από πηγές που δεν εμπιστεύεστε πλήρως.", "Do not install tools from sources you do not fully trust.": "Μην εγκαθιστάτε εργαλεία από πηγές που δεν εμπιστεύεστε πλήρως.", "Document": "Έγγραφο", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Τεκμηρίωση", "Documents": "Έγγραφα", "does not make any external connections, and your data stays securely on your locally hosted server.": "δεν κάνει καμία εξωτερική σύνδεση, και τα δεδομένα σας παραμένουν ασφαλή στον τοπικά φιλοξενούμενο διακομιστή σας.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Ενεργοποίηση Αξιολόγησης Μηνυμάτων", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Ενεργοποίηση δειγματοληψίας Mirostat για έλεγχο της περιπλοκότητας. (Προεπιλογή: 0, 0 = Απενεργοποιημένο, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Ενεργοποίηση Νέων Εγγραφών", + "Enable OneDrive": "", "Enable Web Search": "Ενεργοποίηση Αναζήτησης στο Διαδίκτυο", "Enabled": "Ενεργοποιημένο", "Engine": "Μηχανή", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Εισάγετε την Επικάλυψη Τμημάτων", "Enter Chunk Size": "Εισάγετε το Μέγεθος Τμημάτων", "Enter description": "Εισάγετε την περιγραφή", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Εισάγετε το Github Raw URL", @@ -510,6 +516,7 @@ "General Settings": "Γενικές Ρυθμίσεις", "Generate an image": "", "Generate Image": "Δημιουργία Εικόνας", + "Generate prompt pair": "", "Generating search query": "Γενιά αναζήτησης ερώτησης", "Get started": "Ξεκινήστε", "Get started with {{WEBUI_NAME}}": "Ξεκινήστε με {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Τοπικό", "Local Models": "Τοπικά Μοντέλα", + "Location access not allowed": "", "Lost": "Χαμένος", "LTR": "LTR", "Made by Open WebUI Community": "Δημιουργήθηκε από την Κοινότητα OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Οι ρυθμίσεις API Ollama ενημερώθηκαν", "Ollama Version": "Έκδοση Ollama", "On": "On", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Επιτρέπονται μόνο αλφαριθμητικοί χαρακτήρες και παύλες", "Only alphanumeric characters and hyphens are allowed in the command string.": "Επιτρέπονται μόνο αλφαριθμητικοί χαρακτήρες και παύλες στο string της εντολής.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Μόνο συλλογές μπορούν να επεξεργαστούν, δημιουργήστε μια νέα βάση γνώσης για επεξεργασία/προσθήκη εγγράφων.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Επιλέξτε Μηχανή", "Select Knowledge": "Επιλέξτε Γνώση", - "Select model": "Επιλέξτε μοντέλο", "Select only one model to call": "Επιλέξτε μόνο ένα μοντέλο για κλήση", "Selected model(s) do not support image inputs": "Τα επιλεγμένα μοντέλα δεν υποστηρίζουν είσοδο εικόνων", "Semantic distance to query": "Σημαντική απόσταση προς την ερώτηση", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Προτροπή Γενιάς Ετικετών", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Η δειγματοληψία Tail free χρησιμοποιείται για να μειώσει την επίδραση των λιγότερο πιθανών tokens από την έξοδο. Μια υψηλότερη τιμή (π.χ., 2.0) θα μειώσει την επίδραση περισσότερο, ενώ μια τιμή 1.0 απενεργοποιεί αυτή τη ρύθμιση. (προεπιλογή: 1)", + "Talk to model": "", "Tap to interrupt": "Πατήστε για παύση", "Tasks": "", "Tavily API Key": "Κλειδί API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "Προβλήματα πρόσβασης στο Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Μοντέλο TTS", "TTS Settings": "Ρυθμίσεις TTS", "TTS Voice": "Φωνή TTS", diff --git a/src/lib/i18n/locales/en-GB/translation.json b/src/lib/i18n/locales/en-GB/translation.json index 9e52a557b..b77efe5b7 100644 --- a/src/lib/i18n/locales/en-GB/translation.json +++ b/src/lib/i18n/locales/en-GB/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "", "a user": "", "About": "", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "", + "Attach file from knowledge": "", "Attention to detail": "", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "", "does not make any external connections, and your data stays securely on your locally hosted server.": "", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "", + "Enable OneDrive": "", "Enable Web Search": "", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "", "Enter Chunk Size": "", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "", @@ -510,6 +516,7 @@ "General Settings": "", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "", "Made by Open WebUI Community": "", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "", "On": "", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "", "Select only one model to call": "", "Selected model(s) do not support image inputs": "", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "", "Transformers": "", "Trouble accessing Ollama?": "", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "", "TTS Voice": "", diff --git a/src/lib/i18n/locales/en-US/translation.json b/src/lib/i18n/locales/en-US/translation.json index 9e52a557b..b77efe5b7 100644 --- a/src/lib/i18n/locales/en-US/translation.json +++ b/src/lib/i18n/locales/en-US/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "", "a user": "", "About": "", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "", + "Attach file from knowledge": "", "Attention to detail": "", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "", "does not make any external connections, and your data stays securely on your locally hosted server.": "", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "", + "Enable OneDrive": "", "Enable Web Search": "", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "", "Enter Chunk Size": "", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "", @@ -510,6 +516,7 @@ "General Settings": "", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "", "Made by Open WebUI Community": "", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "", "On": "", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "", "Select only one model to call": "", "Selected model(s) do not support image inputs": "", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "", "Transformers": "", "Trouble accessing Ollama?": "", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "", "TTS Voice": "", diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json index f819406f2..5edbb41f2 100644 --- a/src/lib/i18n/locales/es-ES/translation.json +++ b/src/lib/i18n/locales/es-ES/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modelo de tareas se utiliza cuando se realizan tareas como la generación de títulos para chats y consultas de búsqueda web", "a user": "un usuario", "About": "Sobre nosotros", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Acceso", "Access Control": "Control de Acceso", "Accessible to all users": "Accesible para todos los usuarios", @@ -93,7 +94,7 @@ "Artifacts": "Artefactos", "Ask a question": "Haz una pregunta", "Assistant": "Asistente", - "Attach file": "Adjuntar archivo", + "Attach file from knowledge": "", "Attention to detail": "Detalle preciso", "Attribute for Mail": "Atributo para correo", "Attribute for Username": "Atributo para el nombre de usuario", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "No instale funciones desde fuentes que no confíe totalmente.", "Do not install tools from sources you do not fully trust.": "No instale herramientas desde fuentes que no confíe totalmente.", "Document": "Documento", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentación", "Documents": "Documentos", "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.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Habilitar la calificación de los mensajes", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Habilitar muestreo Mirostat para controlar la perplejidad. (Predeterminado: 0, 0 = Deshabilitado, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Habilitar Nuevos Registros", + "Enable OneDrive": "", "Enable Web Search": "Habilitar la búsqueda web", "Enabled": "Activado", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Ingresar superposición de fragmentos", "Enter Chunk Size": "Ingrese el tamaño del fragmento", "Enter description": "Ingrese la descripción", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "Ingrese la clave API de Exa", "Enter Github Raw URL": "Ingresa la URL sin procesar de Github", @@ -510,6 +516,7 @@ "General Settings": "Opciones Generales", "Generate an image": "Generar una imagen", "Generate Image": "Generar imagen", + "Generate prompt pair": "", "Generating search query": "Generación de consultas de búsqueda", "Get started": "Empezar", "Get started with {{WEBUI_NAME}}": "Empezar con {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Local", "Local Models": "Modelos locales", + "Location access not allowed": "", "Lost": "Perdido", "LTR": "LTR", "Made by Open WebUI Community": "Hecho por la comunidad de OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Configuración de Ollama API actualizada", "Ollama Version": "Versión de Ollama", "On": "Activado", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Sólo se permiten caracteres alfanuméricos y guiones", "Only alphanumeric characters and hyphens are allowed in the command string.": "Sólo se permiten caracteres alfanuméricos y guiones en la cadena de comando.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Solo se pueden editar las colecciones, crear una nueva base de conocimientos para editar / añadir documentos", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Seleccionar una instancia de Ollama", "Select Engine": "Selecciona Motor", "Select Knowledge": "Selecciona Conocimiento", - "Select model": "Selecciona un modelo", "Select only one model to call": "Selecciona sólo un modelo para llamar", "Selected model(s) do not support image inputs": "Los modelos seleccionados no admiten entradas de imagen", "Semantic distance to query": "Distancia semántica a la consulta", @@ -957,6 +965,7 @@ "Tags Generation": "Generación de etiquetas", "Tags Generation Prompt": "Prompt de generación de etiquetas", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "El muestreo libre de cola se utiliza para reducir el impacto de los tokens menos probables en la salida. Un valor más alto (p.ej., 2.0) reducirá el impacto más, mientras que un valor de 1.0 deshabilitará esta configuración. (predeterminado: 1)", + "Talk to model": "", "Tap to interrupt": "Toca para interrumpir", "Tasks": "", "Tavily API Key": "Clave API de Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformadores", "Trouble accessing Ollama?": "¿Problemas para acceder a Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Modelo TTS", "TTS Settings": "Configuración de TTS", "TTS Voice": "Voz del TTS", diff --git a/src/lib/i18n/locales/eu-ES/translation.json b/src/lib/i18n/locales/eu-ES/translation.json index 6e481109a..7841d5cbb 100644 --- a/src/lib/i18n/locales/eu-ES/translation.json +++ b/src/lib/i18n/locales/eu-ES/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Ataza eredua erabiltzen da txatentzako izenburuak eta web bilaketa kontsultak sortzeko bezalako atazak egitean", "a user": "erabiltzaile bat", "About": "Honi buruz", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Sarbidea", "Access Control": "Sarbide Kontrola", "Accessible to all users": "Erabiltzaile guztientzat eskuragarri", @@ -93,7 +94,7 @@ "Artifacts": "Artefaktuak", "Ask a question": "Egin galdera bat", "Assistant": "Laguntzailea", - "Attach file": "Erantsi fitxategia", + "Attach file from knowledge": "", "Attention to detail": "Xehetasunei arreta", "Attribute for Mail": "", "Attribute for Username": "Erabiltzaile-izenerako atributua", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Ez instalatu guztiz fidagarriak ez diren iturrietatik datozen funtzioak.", "Do not install tools from sources you do not fully trust.": "Ez instalatu guztiz fidagarriak ez diren iturrietatik datozen tresnak.", "Document": "Dokumentua", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentazioa", "Documents": "Dokumentuak", "does not make any external connections, and your data stays securely on your locally hosted server.": "ez du kanpo konexiorik egiten, eta zure datuak modu seguruan mantentzen dira zure zerbitzari lokalean.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Gaitu Mezuen Balorazioa", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Gaitu Mirostat laginketa nahasmena kontrolatzeko. (Lehenetsia: 0, 0 = Desgaituta, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Gaitu Izena Emate Berriak", + "Enable OneDrive": "", "Enable Web Search": "Gaitu Web Bilaketa", "Enabled": "Gaituta", "Engine": "Motorea", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Sartu Zatien Gainjartzea (chunk overlap)", "Enter Chunk Size": "Sartu Zati Tamaina", "Enter description": "Sartu deskribapena", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Sartu Github Raw URLa", @@ -510,6 +516,7 @@ "General Settings": "Ezarpen Orokorrak", "Generate an image": "", "Generate Image": "Sortu Irudia", + "Generate prompt pair": "", "Generating search query": "Bilaketa kontsulta sortzen", "Get started": "Hasi", "Get started with {{WEBUI_NAME}}": "Hasi {{WEBUI_NAME}}-rekin", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Lokala", "Local Models": "Modelo lokalak", + "Location access not allowed": "", "Lost": "Galduta", "LTR": "LTR", "Made by Open WebUI Community": "OpenWebUI Komunitateak egina", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API ezarpenak eguneratu dira", "Ollama Version": "Ollama bertsioa", "On": "Piztuta", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Karaktere alfanumerikoak eta marratxoak soilik onartzen dira", "Only alphanumeric characters and hyphens are allowed in the command string.": "Karaktere alfanumerikoak eta marratxoak soilik onartzen dira komando katean.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Bildumak soilik edita daitezke, sortu ezagutza-base berri bat dokumentuak editatzeko/gehitzeko.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Hautatu motorra", "Select Knowledge": "Hautatu ezagutza", - "Select model": "Hautatu modeloa", "Select only one model to call": "Hautatu modelo bakarra deitzeko", "Selected model(s) do not support image inputs": "Hautatutako modelo(e)k ez dute irudi sarrerarik onartzen", "Semantic distance to query": "Kontsultarako distantzia semantikoa", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Etiketa sortzeko prompta", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Isats-libre laginketa erabiltzen da irteran probabilitate txikiagoko tokenen eragina murrizteko. Balio altuago batek (adib., 2.0) eragina gehiago murriztuko du, 1.0 balioak ezarpen hau desgaitzen duen bitartean. (lehenetsia: 1)", + "Talk to model": "", "Tap to interrupt": "Ukitu eteteko", "Tasks": "", "Tavily API Key": "Tavily API gakoa", @@ -1041,6 +1050,7 @@ "Top P": "Goiko P", "Transformers": "Transformatzaileak", "Trouble accessing Ollama?": "Arazoak Ollama atzitzeko?", + "Trust Proxy Environment": "", "TTS Model": "TTS modeloa", "TTS Settings": "TTS ezarpenak", "TTS Voice": "TTS ahotsa", diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json index 3de2a4943..afeea8775 100644 --- a/src/lib/i18n/locales/fa-IR/translation.json +++ b/src/lib/i18n/locales/fa-IR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "یک مدل وظیفه هنگام انجام وظایف مانند تولید عناوین برای چت ها و نمایش های جستجوی وب استفاده می شود.", "a user": "یک کاربر", "About": "درباره", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "سوالی بپرسید", "Assistant": "دستیار", - "Attach file": "پیوست پرونده", + "Attach file from knowledge": "", "Attention to detail": "دقیق", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "سند", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "اسناد", "does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "فعال کردن ثبت نام\u200cهای جدید", + "Enable OneDrive": "", "Enable Web Search": "فعالسازی جستجوی وب", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "مقدار Chunk Overlap را وارد کنید", "Enter Chunk Size": "مقدار Chunk Size را وارد کنید", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "ادرس Github Raw را وارد کنید", @@ -510,6 +516,7 @@ "General Settings": "تنظیمات عمومی", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "در حال تولید پرسوجوی جستجو", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "ساخته شده توسط OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "نسخه اولاما", "On": "روشن", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "فقط کاراکترهای الفبایی و خط فاصله در رشته فرمان مجاز هستند.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "انتخاب موتور", "Select Knowledge": "انتخاب دانش", - "Select model": "انتخاب یک مدل", "Select only one model to call": "تنها یک مدل را برای صدا زدن انتخاب کنید", "Selected model(s) do not support image inputs": "مدل) های (انتخاب شده ورودیهای تصویر را پشتیبانی نمیکند", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "در دسترسی به اولاما مشکل دارید؟", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "تنظیمات TTS", "TTS Voice": "", diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json index 6d13919ae..dd4c7ab93 100644 --- a/src/lib/i18n/locales/fi-FI/translation.json +++ b/src/lib/i18n/locales/fi-FI/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Tehtävämallia käytetään tehtävien suorittamiseen, kuten otsikoiden luomiseen keskusteluille ja verkkohakukyselyille", "a user": "käyttäjä", "About": "Tietoja", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Pääsy", "Access Control": "Käyttöoikeuksien hallinta", "Accessible to all users": "Käytettävissä kaikille käyttäjille", @@ -93,7 +94,7 @@ "Artifacts": "Artefaktit", "Ask a question": "Kysyä kysymys", "Assistant": "Avustaja", - "Attach file": "Liitä tiedosto", + "Attach file from knowledge": "", "Attention to detail": "Huomio yksityiskohtiin", "Attribute for Mail": "", "Attribute for Username": "Käyttäjänimi-määritämä", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Älä asenna toimintoja lähteistä, joihin et luota täysin.", "Do not install tools from sources you do not fully trust.": "Älä asenna työkaluja lähteistä, joihin et luota täysin.", "Document": "Asiakirja", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentaatio", "Documents": "Asiakirjat", "does not make any external connections, and your data stays securely on your locally hosted server.": "ei tee ulkoisia yhteyksiä, ja tietosi pysyvät turvallisesti paikallisesti isännöidyllä palvelimellasi.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Ota viestiarviointi käyttöön", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Ota Mirostat-näytteenotto käyttöön hallinnan monimerkityksellisyydelle. (Oletus: 0, 0 = Ei käytössä, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Salli uudet rekisteröitymiset", + "Enable OneDrive": "", "Enable Web Search": "Ota verkkohaku käyttöön", "Enabled": "Käytössä", "Engine": "Moottori", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Syötä osien päällekkäisyys", "Enter Chunk Size": "Syötä osien koko", "Enter description": "Kirjoita kuvaus", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Verkko-osoitteet erotetaan pilkulla (esim. esimerkki.com,sivu.org", "Enter Exa API Key": "Kirjoita Exa API -avain", "Enter Github Raw URL": "Kirjoita Github Raw -verkko-osoite", @@ -510,6 +516,7 @@ "General Settings": "Yleiset asetukset", "Generate an image": "Luo kuva", "Generate Image": "Luo kuva", + "Generate prompt pair": "", "Generating search query": "Luodaan hakukyselyä", "Get started": "Aloita", "Get started with {{WEBUI_NAME}}": "Aloita käyttämään {{WEBUI_NAME}}:iä", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "Ladataan Kokoro.js...", "Local": "Paikallinen", "Local Models": "Paikalliset mallit", + "Location access not allowed": "", "Lost": "Mennyt", "LTR": "LTR", "Made by Open WebUI Community": "Tehnyt OpenWebUI-yhteisö", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API -asetukset päivitetty", "Ollama Version": "Ollama-versio", "On": "Päällä", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Vain kirjaimet, numerot ja väliviivat ovat sallittuja", "Only alphanumeric characters and hyphens are allowed in the command string.": "Vain kirjaimet, numerot ja väliviivat ovat sallittuja komentosarjassa.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Vain kokoelmia voi muokata, luo uusi tietokanta muokataksesi/lisätäksesi asiakirjoja.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Valitse Ollama instanssi", "Select Engine": "Valitse moottori", "Select Knowledge": "Valitse tietämys", - "Select model": "Valitse malli", "Select only one model to call": "Valitse vain yksi malli kutsuttavaksi", "Selected model(s) do not support image inputs": "Valitut mallit eivät tue kuvasöytteitä", "Semantic distance to query": "Semanttinen etäisyys kyselyyn", @@ -957,6 +965,7 @@ "Tags Generation": "Tagien luonti", "Tags Generation Prompt": "Tagien luontikehote", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail-free-otanta käytetään vähentämään vähemmän todennäköisten tokenien vaikutusta tulokseen. Korkeampi arvo (esim. 2,0) vähentää vaikutusta enemmän, kun taas arvo 1,0 poistaa tämän asetuksen käytöstä. (oletus: 1)", + "Talk to model": "", "Tap to interrupt": "Napauta keskeyttääksesi", "Tasks": "Tehtävät", "Tavily API Key": "Tavily API -avain", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Muunnokset", "Trouble accessing Ollama?": "Ongelmia Ollama-yhteydessä?", + "Trust Proxy Environment": "", "TTS Model": "Puhesynteesimalli", "TTS Settings": "Puhesynteesiasetukset", "TTS Voice": "Puhesynteesiääni", diff --git a/src/lib/i18n/locales/fr-CA/translation.json b/src/lib/i18n/locales/fr-CA/translation.json index 32df37410..6e1252951 100644 --- a/src/lib/i18n/locales/fr-CA/translation.json +++ b/src/lib/i18n/locales/fr-CA/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.", "a user": "un utilisateur", "About": "À propos", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Joindre un document", + "Attach file from knowledge": "", "Attention to detail": "Attention aux détails", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentation", "Documents": "Documents", "does not make any external connections, and your data stays securely on your locally hosted server.": "ne fait aucune connexion externe et garde vos données en sécurité sur votre serveur local.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Activer les nouvelles inscriptions", + "Enable OneDrive": "", "Enable Web Search": "Activer la recherche sur le Web", "Enabled": "", "Engine": "Moteur", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Entrez le chevauchement de chunk", "Enter Chunk Size": "Entrez la taille de bloc", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Entrez l'URL brute de GitHub", @@ -510,6 +516,7 @@ "General Settings": "Paramètres Généraux", "Generate an image": "", "Generate Image": "Générer une image", + "Generate prompt pair": "", "Generating search query": "Génération d'une requête de recherche", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Modèles locaux", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Réalisé par la communauté OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Version Ollama améliorée", "On": "Activé", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Seuls les caractères alphanumériques et les tirets sont autorisés dans la chaîne de commande.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Sélectionnez un modèle", "Select only one model to call": "Sélectionnez seulement un modèle pour appeler", "Selected model(s) do not support image inputs": "Les modèle(s) sélectionné(s) ne prennent pas en charge les entrées d'images", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Appuyez pour interrompre", "Tasks": "", "Tavily API Key": "Clé API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Rencontrez-vous des difficultés pour accéder à Ollama ?", + "Trust Proxy Environment": "", "TTS Model": "Modèle de synthèse vocale", "TTS Settings": "Paramètres de synthèse vocale", "TTS Voice": "Voix TTS", diff --git a/src/lib/i18n/locales/fr-FR/translation.json b/src/lib/i18n/locales/fr-FR/translation.json index 550db46b5..f517c25fd 100644 --- a/src/lib/i18n/locales/fr-FR/translation.json +++ b/src/lib/i18n/locales/fr-FR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.", "a user": "un utilisateur", "About": "À propos", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Accès", "Access Control": "Contrôle d'accès", "Accessible to all users": "Accessible à tous les utilisateurs", @@ -93,7 +94,7 @@ "Artifacts": "Artéfacts", "Ask a question": "Posez votre question", "Assistant": "Assistant", - "Attach file": "Joindre un document", + "Attach file from knowledge": "", "Attention to detail": "Attention aux détails", "Attribute for Mail": "Attribut pour l'e-mail", "Attribute for Username": "Attribut pour le nom d'utilisateur", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "N'installez pas de fonctions provenant de sources auxquelles vous ne faites pas entièrement confiance.", "Do not install tools from sources you do not fully trust.": "N'installez pas d'outils provenant de sources auxquelles vous ne faites pas entièrement confiance.", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentation", "Documents": "Documents", "does not make any external connections, and your data stays securely on your locally hosted server.": "n'établit aucune connexion externe et garde vos données en sécurité sur votre serveur local.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Activer l'évaluation des messages", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Activer l'échantillonnage Mirostat pour contrôler la perplexité. (Par défaut : 0, 0 = Désactivé, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Activer les nouvelles inscriptions", + "Enable OneDrive": "", "Enable Web Search": "Activer la recherche Web", "Enabled": "Activé", "Engine": "Moteur", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Entrez le chevauchement des chunks", "Enter Chunk Size": "Entrez la taille des chunks", "Enter description": "Entrez la description", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Entrez l'URL brute de GitHub", @@ -510,6 +516,7 @@ "General Settings": "Paramètres généraux", "Generate an image": "", "Generate Image": "Générer une image", + "Generate prompt pair": "", "Generating search query": "Génération d'une requête de recherche", "Get started": "Commencer", "Get started with {{WEBUI_NAME}}": "Commencez avec {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Local", "Local Models": "Modèles locaux", + "Location access not allowed": "", "Lost": "Perdu", "LTR": "LTR", "Made by Open WebUI Community": "Réalisé par la communauté OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Paramètres de l'API Ollama mis à jour", "Ollama Version": "Version Ollama", "On": "Activé", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Seuls les caractères alphanumériques et les tirets sont autorisés", "Only alphanumeric characters and hyphens are allowed in the command string.": "Seuls les caractères alphanumériques et les tirets sont autorisés dans la chaîne de commande.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Seules les collections peuvent être modifiées, créez une nouvelle base de connaissance pour modifier/ajouter des documents.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Sélectionnez une instance Ollama", "Select Engine": "Sélectionnez le moteur", "Select Knowledge": "Sélectionnez une connaissance", - "Select model": "Sélectionner un modèle", "Select only one model to call": "Sélectionnez seulement un modèle pour appeler", "Selected model(s) do not support image inputs": "Les modèle(s) sélectionné(s) ne prennent pas en charge les entrées d'images", "Semantic distance to query": "Distance sémantique à la requête", @@ -957,6 +965,7 @@ "Tags Generation": "Génération de tags", "Tags Generation Prompt": "Prompt de génération de tags", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "L'échantillonnage sans queue est utilisé pour réduire l'impact des tokens moins probables dans la sortie. Une valeur plus élevée (par exemple 2.0) réduira davantage l'impact, tandis qu'une valeur de 1.0 désactive ce paramètre. (par défaut : 1)", + "Talk to model": "", "Tap to interrupt": "Appuyez pour interrompre", "Tasks": "", "Tavily API Key": "Clé API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "Problèmes d'accès à Ollama ?", + "Trust Proxy Environment": "", "TTS Model": "Modèle de Text-to-Speech", "TTS Settings": "Paramètres de Text-to-Speech", "TTS Voice": "Voix de Text-to-Speech", diff --git a/src/lib/i18n/locales/he-IL/translation.json b/src/lib/i18n/locales/he-IL/translation.json index 51ea3483c..63322c7b8 100644 --- a/src/lib/i18n/locales/he-IL/translation.json +++ b/src/lib/i18n/locales/he-IL/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "מודל משימה משמש בעת ביצוע משימות כגון יצירת כותרות עבור צ'אטים ושאילתות חיפוש באינטרנט", "a user": "משתמש", "About": "אודות", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "צרף קובץ", + "Attach file from knowledge": "", "Attention to detail": "תשומת לב לפרטים", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "מסמך", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "מסמכים", "does not make any external connections, and your data stays securely on your locally hosted server.": "לא מבצע חיבורים חיצוניים, והנתונים שלך נשמרים באופן מאובטח בשרת המקומי שלך.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "אפשר הרשמות חדשות", + "Enable OneDrive": "", "Enable Web Search": "הפיכת חיפוש באינטרנט לזמין", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "הזן חפיפת נתונים", "Enter Chunk Size": "הזן גודל נתונים", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "הזן כתובת URL של Github Raw", @@ -510,6 +516,7 @@ "General Settings": "הגדרות כלליות", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "יצירת שאילתת חיפוש", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "נוצר על ידי קהילת OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "גרסת Ollama", "On": "פועל", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "רק תווים אלפאנומריים ומקפים מותרים במחרוזת הפקודה.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "בחר מודל", "Select only one model to call": "", "Selected model(s) do not support image inputs": "דגמים נבחרים אינם תומכים בקלט תמונה", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "קשה לגשת לOllama?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "הגדרות TTS", "TTS Voice": "", diff --git a/src/lib/i18n/locales/hi-IN/translation.json b/src/lib/i18n/locales/hi-IN/translation.json index 66a81e164..2639e3c75 100644 --- a/src/lib/i18n/locales/hi-IN/translation.json +++ b/src/lib/i18n/locales/hi-IN/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "चैट और वेब खोज क्वेरी के लिए शीर्षक उत्पन्न करने जैसे कार्य करते समय कार्य मॉडल का उपयोग किया जाता है", "a user": "एक उपयोगकर्ता", "About": "हमारे बारे में", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "फ़ाइल atta", + "Attach file from knowledge": "", "Attention to detail": "विस्तार पर ध्यान", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "दस्तावेज़", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "दस्तावेज़", "does not make any external connections, and your data stays securely on your locally hosted server.": "कोई बाहरी कनेक्शन नहीं बनाता है, और आपका डेटा आपके स्थानीय रूप से होस्ट किए गए सर्वर पर सुरक्षित रूप से रहता है।", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "नए साइन अप सक्रिय करें", + "Enable OneDrive": "", "Enable Web Search": "वेब खोज सक्षम करें", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "चंक ओवरलैप दर्ज करें", "Enter Chunk Size": "खंड आकार दर्ज करें", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Github Raw URL दर्ज करें", @@ -510,6 +516,7 @@ "General Settings": "सामान्य सेटिंग्स", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "खोज क्वेरी जनरेट करना", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "OpenWebUI समुदाय द्वारा निर्मित", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama Version", "On": "चालू", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "कमांड स्ट्रिंग में केवल अल्फ़ान्यूमेरिक वर्ण और हाइफ़न की अनुमति है।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "मॉडल चुनें", "Select only one model to call": "", "Selected model(s) do not support image inputs": "चयनित मॉडल छवि इनपुट का समर्थन नहीं करते हैं", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "शीर्ष P", "Transformers": "", "Trouble accessing Ollama?": "Ollama तक पहुँचने में परेशानी हो रही है?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS सेटिंग्स", "TTS Voice": "", diff --git a/src/lib/i18n/locales/hr-HR/translation.json b/src/lib/i18n/locales/hr-HR/translation.json index e82be7ccf..d9c8e1939 100644 --- a/src/lib/i18n/locales/hr-HR/translation.json +++ b/src/lib/i18n/locales/hr-HR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadatka koristi se pri izvođenju zadataka kao što su generiranje naslova za razgovore i upite za pretraživanje weba", "a user": "korisnik", "About": "O aplikaciji", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Priloži datoteku", + "Attach file from knowledge": "", "Attention to detail": "Pažnja na detalje", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentacija", "Documents": "Dokumenti", "does not make any external connections, and your data stays securely on your locally hosted server.": "ne uspostavlja vanjske veze, a vaši podaci ostaju sigurno na vašem lokalno hostiranom poslužitelju.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Omogući nove prijave", + "Enable OneDrive": "", "Enable Web Search": "Omogući pretraživanje weba", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Unesite preklapanje dijelova", "Enter Chunk Size": "Unesite veličinu dijela", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Unesite Github sirovi URL", @@ -510,6 +516,7 @@ "General Settings": "Opće postavke", "Generate an image": "", "Generate Image": "Gneriraj sliku", + "Generate prompt pair": "", "Generating search query": "Generiranje upita za pretraživanje", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokalni modeli", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Izradio OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama verzija", "On": "Uključeno", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Samo alfanumerički znakovi i crtice su dopušteni u naredbenom nizu.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Odaberite model", "Select only one model to call": "Odaberite samo jedan model za poziv", "Selected model(s) do not support image inputs": "Odabrani modeli ne podržavaju unose slika", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemi s pristupom Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS model", "TTS Settings": "TTS postavke", "TTS Voice": "TTS glas", diff --git a/src/lib/i18n/locales/hu-HU/translation.json b/src/lib/i18n/locales/hu-HU/translation.json index 6e7089e42..82e14f2a0 100644 --- a/src/lib/i18n/locales/hu-HU/translation.json +++ b/src/lib/i18n/locales/hu-HU/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "A feladat modell olyan feladatokhoz használatos, mint a beszélgetések címeinek generálása és webes keresési lekérdezések", "a user": "egy felhasználó", "About": "Névjegy", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "Műtermékek", "Ask a question": "Kérdezz valamit", "Assistant": "Asszisztens", - "Attach file": "Fájl csatolása", + "Attach file from knowledge": "", "Attention to detail": "Részletekre való odafigyelés", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Ne telepíts funkciókat olyan forrásokból, amelyekben nem bízol teljesen.", "Do not install tools from sources you do not fully trust.": "Ne telepíts eszközöket olyan forrásokból, amelyekben nem bízol teljesen.", "Document": "Dokumentum", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentáció", "Documents": "Dokumentumok", "does not make any external connections, and your data stays securely on your locally hosted server.": "nem létesít külső kapcsolatokat, és az adataid biztonságban maradnak a helyileg hosztolt szervereden.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Üzenet értékelés engedélyezése", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Új regisztrációk engedélyezése", + "Enable OneDrive": "", "Enable Web Search": "Webes keresés engedélyezése", "Enabled": "Engedélyezve", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Add meg a darab átfedést", "Enter Chunk Size": "Add meg a darab méretet", "Enter description": "Add meg a leírást", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Add meg a Github Raw URL-t", @@ -510,6 +516,7 @@ "General Settings": "Általános beállítások", "Generate an image": "", "Generate Image": "Kép generálása", + "Generate prompt pair": "", "Generating search query": "Keresési lekérdezés generálása", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Helyi modellek", + "Location access not allowed": "", "Lost": "Elveszett", "LTR": "LTR", "Made by Open WebUI Community": "Az OpenWebUI közösség által készítve", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama verzió", "On": "Be", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Csak alfanumerikus karakterek és kötőjelek engedélyezettek a parancssorban.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Csak gyűjtemények szerkeszthetők, hozzon létre új tudásbázist dokumentumok szerkesztéséhez/hozzáadásához.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Motor kiválasztása", "Select Knowledge": "Tudásbázis kiválasztása", - "Select model": "Modell kiválasztása", "Select only one model to call": "Csak egy modellt válasszon ki hívásra", "Selected model(s) do not support image inputs": "A kiválasztott modell(ek) nem támogatják a képbemenetet", "Semantic distance to query": "Szemantikai távolság a lekérdezéshez", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Címke generálási prompt", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Koppintson a megszakításhoz", "Tasks": "", "Tavily API Key": "Tavily API kulcs", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problémája van az Ollama elérésével?", + "Trust Proxy Environment": "", "TTS Model": "TTS modell", "TTS Settings": "TTS beállítások", "TTS Voice": "TTS hang", diff --git a/src/lib/i18n/locales/id-ID/translation.json b/src/lib/i18n/locales/id-ID/translation.json index 848072408..49ba39739 100644 --- a/src/lib/i18n/locales/id-ID/translation.json +++ b/src/lib/i18n/locales/id-ID/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan saat melakukan tugas seperti membuat judul untuk obrolan dan kueri penelusuran web", "a user": "seorang pengguna", "About": "Tentang", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Lampirkan file", + "Attach file from knowledge": "", "Attention to detail": "Perhatian terhadap detail", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Dokumen", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentasi", "Documents": "Dokumen", "does not make any external connections, and your data stays securely on your locally hosted server.": "tidak membuat koneksi eksternal apa pun, dan data Anda tetap aman di server yang dihosting secara lokal.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Aktifkan Pendaftaran Baru", + "Enable OneDrive": "", "Enable Web Search": "Aktifkan Pencarian Web", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Masukkan Tumpang Tindih Chunk", "Enter Chunk Size": "Masukkan Ukuran Potongan", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Masukkan URL Mentah Github", @@ -510,6 +516,7 @@ "General Settings": "Pengaturan Umum", "Generate an image": "", "Generate Image": "Menghasilkan Gambar", + "Generate prompt pair": "", "Generating search query": "Membuat kueri penelusuran", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Model Lokal", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Dibuat oleh Komunitas OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Versi Ollama", "On": "Aktif", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Hanya karakter alfanumerik dan tanda hubung yang diizinkan dalam string perintah.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Pilih model", "Select only one model to call": "Pilih hanya satu model untuk dipanggil", "Selected model(s) do not support image inputs": "Model yang dipilih tidak mendukung input gambar", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Ketuk untuk menyela", "Tasks": "", "Tavily API Key": "Kunci API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "P Atas", "Transformers": "", "Trouble accessing Ollama?": "Kesulitan mengakses Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model TTS", "TTS Settings": "Pengaturan TTS", "TTS Voice": "Suara TTS", diff --git a/src/lib/i18n/locales/ie-GA/translation.json b/src/lib/i18n/locales/ie-GA/translation.json index 131e680f2..132944cb9 100644 --- a/src/lib/i18n/locales/ie-GA/translation.json +++ b/src/lib/i18n/locales/ie-GA/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Úsáidtear múnla tasc agus tascanna á ndéanamh agat mar theidil a ghiniúint do chomhráite agus ceisteanna cuardaigh gréasáin", "a user": "úsáideoir", "About": "Maidir", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Rochtain", "Access Control": "Rialaithe Rochtana", "Accessible to all users": "Inrochtana do gach úsáideoir", @@ -93,7 +94,7 @@ "Artifacts": "Déantáin", "Ask a question": "Cuir ceist", "Assistant": "Cúntóir", - "Attach file": "Ceangail comhad", + "Attach file from knowledge": "", "Attention to detail": "Aird ar mhionsonraí", "Attribute for Mail": "Tréith don Phost", "Attribute for Username": "Tréith don Ainm Úsáideora", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Ná suiteáil feidhmeanna ó fhoinsí nach bhfuil muinín iomlán agat.", "Do not install tools from sources you do not fully trust.": "Ná suiteáil uirlisí ó fhoinsí nach bhfuil muinín iomlán agat.", "Document": "Doiciméad", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Doiciméadú", "Documents": "Doiciméid", "does not make any external connections, and your data stays securely on your locally hosted server.": "ní dhéanann sé aon naisc sheachtracha, agus fanann do chuid sonraí go slán ar do fhreastalaí a óstáiltear go háitiúil.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Cumasaigh Rátáil Teachtai", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Cumasaigh sampláil Mirostat chun seachrán a rialú. (Réamhshocrú: 0, 0 = Díchumasaithe, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Cumasaigh Clárúcháin Nua", + "Enable OneDrive": "", "Enable Web Search": "Cumasaigh Cuardach Gréasáin", "Enabled": "Cumasaithe", "Engine": "Inneall", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Cuir isteach Chunk Forluí", "Enter Chunk Size": "Cuir isteach Méid an Chunc", "Enter description": "Iontráil cur síos", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "Cuir isteach Eochair Exa API", "Enter Github Raw URL": "Cuir isteach URL Github Raw", @@ -510,6 +516,7 @@ "General Settings": "Socruithe Ginearálta", "Generate an image": "Gin íomhá", "Generate Image": "Ginigh Íomhá", + "Generate prompt pair": "", "Generating search query": "Giniúint ceist cuardaigh", "Get started": "Cuir tús leis", "Get started with {{WEBUI_NAME}}": "Cuir tús le {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Áitiúil", "Local Models": "Múnlaí Áitiúla", + "Location access not allowed": "", "Lost": "Cailleadh", "LTR": "LTR", "Made by Open WebUI Community": "Déanta ag OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Nuashonraíodh socruithe Olama API", "Ollama Version": "Leagan Ollama", "On": "Ar", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Ní cheadaítear ach carachtair alfa-uimhriúla agus fleiscíní", "Only alphanumeric characters and hyphens are allowed in the command string.": "Ní cheadaítear ach carachtair alfauméireacha agus braithíní sa sreangán ordaithe.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Ní féidir ach bailiúcháin a chur in eagar, bonn eolais nua a chruthú chun doiciméid a chur in eagar/a chur leis.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Roghnaigh sampla Olama", "Select Engine": "Roghnaigh Inneall", "Select Knowledge": "Roghnaigh Eolais", - "Select model": "Roghnaigh múnla", "Select only one model to call": "Roghnaigh múnla amháin le glaoch", "Selected model(s) do not support image inputs": "Ní tacaíonn an munla/nna roghnaithe le h-ionchuir íomhá", "Semantic distance to query": "Fad shéimeantach le fiosrú", @@ -957,6 +965,7 @@ "Tags Generation": "Giniúint Clibeanna", "Tags Generation Prompt": "Clibeanna Giniúint Leid", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Úsáidtear sampláil saor ó eireabaill chun tionchar na n-chomharthaí ón aschur nach bhfuil chomh dóchúil céanna a laghdú. Laghdóidh luach níos airde (m.sh., 2.0) an tionchar níos mó, agus díchumasaíonn luach 1.0 an socrú seo. (réamhshocraithe: 1)", + "Talk to model": "", "Tap to interrupt": "Tapáil chun cur isteach", "Tasks": "", "Tavily API Key": "Eochair API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Barr P", "Transformers": "Claochladáin", "Trouble accessing Ollama?": "Deacracht teacht ar Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS Múnla", "TTS Settings": "Socruithe TTS", "TTS Voice": "Guth TTS", diff --git a/src/lib/i18n/locales/it-IT/translation.json b/src/lib/i18n/locales/it-IT/translation.json index a93090147..38d5c9a49 100644 --- a/src/lib/i18n/locales/it-IT/translation.json +++ b/src/lib/i18n/locales/it-IT/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modello di attività viene utilizzato durante l'esecuzione di attività come la generazione di titoli per chat e query di ricerca Web", "a user": "un utente", "About": "Informazioni", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Allega file", + "Attach file from knowledge": "", "Attention to detail": "Attenzione ai dettagli", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Documento", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "Documenti", "does not make any external connections, and your data stays securely on your locally hosted server.": "non effettua connessioni esterne e i tuoi dati rimangono al sicuro sul tuo server ospitato localmente.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Abilita nuove iscrizioni", + "Enable OneDrive": "", "Enable Web Search": "Abilita ricerca Web", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Inserisci la sovrapposizione chunk", "Enter Chunk Size": "Inserisci la dimensione chunk", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Immettere l'URL grezzo di Github", @@ -510,6 +516,7 @@ "General Settings": "Impostazioni generali", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "Generazione di query di ricerca", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Realizzato dalla comunità OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Versione Ollama", "On": "Attivato", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Nella stringa di comando sono consentiti solo caratteri alfanumerici e trattini.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Seleziona modello", "Select only one model to call": "", "Selected model(s) do not support image inputs": "I modelli selezionati non supportano l'input di immagini", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemi di accesso a Ollama?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "Impostazioni TTS", "TTS Voice": "", diff --git a/src/lib/i18n/locales/ja-JP/translation.json b/src/lib/i18n/locales/ja-JP/translation.json index 117e0f8bd..b50c9d88a 100644 --- a/src/lib/i18n/locales/ja-JP/translation.json +++ b/src/lib/i18n/locales/ja-JP/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "タスクモデルは、チャットやウェブ検索クエリのタイトルの生成などのタスクを実行するときに使用されます", "a user": "ユーザー", "About": "概要", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "質問して下さい。", "Assistant": "", - "Attach file": "ファイルを添付する", + "Attach file from knowledge": "", "Attention to detail": "詳細に注意する", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "信頼できないソースからFunctionをインストールしないでください。", "Do not install tools from sources you do not fully trust.": "信頼出来ないソースからツールをインストールしないでください。", "Document": "ドキュメント", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "ドキュメント", "Documents": "ドキュメント", "does not make any external connections, and your data stays securely on your locally hosted server.": "外部接続を行わず、データはローカルでホストされているサーバー上に安全に保持されます。", @@ -354,6 +357,7 @@ "Enable Message Rating": "メッセージ評価を有効にする", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "新規登録を有効にする", + "Enable OneDrive": "", "Enable Web Search": "ウェブ検索を有効にする", "Enabled": "有効", "Engine": "エンジン", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "チャンクオーバーラップを入力してください", "Enter Chunk Size": "チャンクサイズを入力してください", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Github Raw URLを入力", @@ -510,6 +516,7 @@ "General Settings": "一般設定", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "検索クエリの生成", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "ローカルモデル", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "OpenWebUI コミュニティによって作成", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama バージョン", "On": "オン", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "コマンド文字列には英数字とハイフンのみが許可されています。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "エンジンの選択", "Select Knowledge": "ナレッジベースの選択", - "Select model": "モデルを選択", "Select only one model to call": "", "Selected model(s) do not support image inputs": "一部のモデルは画像入力をサポートしていません", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "トップ P", "Transformers": "", "Trouble accessing Ollama?": "Ollama へのアクセスに問題がありますか?", + "Trust Proxy Environment": "", "TTS Model": "TTSモデル", "TTS Settings": "TTS 設定", "TTS Voice": "TTSボイス", diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json index 63527dc05..e715cf7cd 100644 --- a/src/lib/i18n/locales/ka-GE/translation.json +++ b/src/lib/i18n/locales/ka-GE/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "დავალების მოდელი გამოიყენება ისეთი ამოცანების შესრულებისას, როგორიცაა ჩეთების სათაურების გენერირება და ვებ – ძიების მოთხოვნები", "a user": "მომხმარებელი", "About": "შესახებ", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "ფაილის ჩაწერა", + "Attach file from knowledge": "", "Attention to detail": "დეტალური მიმართვა", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "დოკუმენტი", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "დოკუმენტები", "does not make any external connections, and your data stays securely on your locally hosted server.": "არ ამყარებს გარე კავშირებს და თქვენი მონაცემები უსაფრთხოდ რჩება თქვენს ადგილობრივ სერვერზე.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "ახალი რეგისტრაციების ჩართვა", + "Enable OneDrive": "", "Enable Web Search": "ვებ ძიების ჩართვა", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "შეიყვანეთ ნაწილის გადახურვა", "Enter Chunk Size": "შეიყვანე ბლოკის ზომა", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "შეიყვანეთ Github Raw URL", @@ -510,6 +516,7 @@ "General Settings": "ზოგადი პარამეტრები", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "საძიებო მოთხოვნის გენერირება", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "დამზადებულია OpenWebUI საზოგადოების მიერ", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama ვერსია", "On": "ჩართვა", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "ბრძანების სტრიქონში დაშვებულია მხოლოდ ალფანუმერული სიმბოლოები და დეფისები.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "მოდელის არჩევა", "Select only one model to call": "", "Selected model(s) do not support image inputs": "შერჩეული მოდელი (ებ) ი არ უჭერს მხარს გამოსახულების შეყვანას", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "ტოპ P", "Transformers": "", "Trouble accessing Ollama?": "Ollama-ს ვერ უკავშირდები?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS პარამეტრები", "TTS Voice": "", diff --git a/src/lib/i18n/locales/ko-KR/translation.json b/src/lib/i18n/locales/ko-KR/translation.json index bdda272b7..3f90bd4e0 100644 --- a/src/lib/i18n/locales/ko-KR/translation.json +++ b/src/lib/i18n/locales/ko-KR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "작업 모델은 채팅 및 웹 검색 쿼리에 대한 제목 생성 등의 작업 수행 시 사용됩니다.", "a user": "사용자", "About": "정보", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "접근", "Access Control": "접근 제어", "Accessible to all users": "모든 사용자가 접근 가능", @@ -93,7 +94,7 @@ "Artifacts": "아티팩트", "Ask a question": "질문하기", "Assistant": "어시스턴트", - "Attach file": "파일 첨부", + "Attach file from knowledge": "", "Attention to detail": "세부 사항에 대한 주의", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "불분명한 출처를 가진 함수를 설치하지마세요", "Do not install tools from sources you do not fully trust.": "불분명한 출처를 가진 도구를 설치하지마세요", "Document": "문서", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "문서 조사", "Documents": "문서", "does not make any external connections, and your data stays securely on your locally hosted server.": "외부와 어떠한 연결도 하지 않으며, 데이터는 로컬에서 호스팅되는 서버에 안전하게 유지됩니다.", @@ -354,6 +357,7 @@ "Enable Message Rating": "메시지 평가 활성화", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "새 회원가입 활성화", + "Enable OneDrive": "", "Enable Web Search": "웹 검색 활성화", "Enabled": "활성화됨", "Engine": "엔진", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "청크 오버랩 입력", "Enter Chunk Size": "청크 크기 입력", "Enter description": "설명 입력", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Github Raw URL 입력", @@ -510,6 +516,7 @@ "General Settings": "일반 설정", "Generate an image": "", "Generate Image": "이미지 생성", + "Generate prompt pair": "", "Generating search query": "검색 쿼리 생성", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "로컬 모델", + "Location access not allowed": "", "Lost": "패배", "LTR": "LTR", "Made by Open WebUI Community": "OpenWebUI 커뮤니티에 의해 개발됨", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama 버전", "On": "켜기", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "영문자, 숫자 및 하이픈(-)만 허용됨", "Only alphanumeric characters and hyphens are allowed in the command string.": "명령어 문자열에는 영문자, 숫자 및 하이픈(-)만 허용됩니다.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "가지고 있는 컬렉션만 수정 가능합니다, 새 지식 기반을 생성하여 문서를 수정 혹은 추가하십시오", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "엔진 선택", "Select Knowledge": "지식 기반 선택", - "Select model": "모델 선택", "Select only one model to call": "음성 기능을 위해서는 모델을 하나만 선택해야 합니다.", "Selected model(s) do not support image inputs": "선택한 모델은 이미지 입력을 지원하지 않습니다.", "Semantic distance to query": "쿼리까지 의미적 거리", @@ -957,6 +965,7 @@ "Tags Generation": "태그 생성", "Tags Generation Prompt": "태그 생성 프롬프트", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "탭하여 중단", "Tasks": "", "Tavily API Key": "Tavily API 키", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "올라마(Ollama)에 접근하는 데 문제가 있나요?", + "Trust Proxy Environment": "", "TTS Model": "TTS 모델", "TTS Settings": "TTS 설정", "TTS Voice": "TTS 음성", diff --git a/src/lib/i18n/locales/lt-LT/translation.json b/src/lib/i18n/locales/lt-LT/translation.json index 282d5a735..ba89914fb 100644 --- a/src/lib/i18n/locales/lt-LT/translation.json +++ b/src/lib/i18n/locales/lt-LT/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Užduočių modelis naudojamas pokalbių pavadinimų ir paieškos užklausų generavimui.", "a user": "naudotojas", "About": "Apie", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Pridėti failą", + "Attach file from knowledge": "", "Attention to detail": "Dėmesys detalėms", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Neinstaliuokite funkcijų iš nepatikimų šaltinių", "Do not install tools from sources you do not fully trust.": "Neinstaliuokite įrankių iš nepatikimų šaltinių", "Document": "Dokumentas", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentacija", "Documents": "Dokumentai", "does not make any external connections, and your data stays securely on your locally hosted server.": "neturi jokių išorinių ryšių ir duomenys lieka serveryje.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Aktyvuoti naujas registracijas", + "Enable OneDrive": "", "Enable Web Search": "Leisti paiešką internete", "Enabled": "Leisti", "Engine": "Variklis", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Įveskite blokų persidengimą", "Enter Chunk Size": "Įveskite blokų dydį", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Įveskite GitHub Raw nuorodą", @@ -510,6 +516,7 @@ "General Settings": "Bendri nustatymai", "Generate an image": "", "Generate Image": "Generuoti paveikslėlį", + "Generate prompt pair": "", "Generating search query": "Generuoti paieškos užklausą", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokalūs modeliai", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Sukurta OpenWebUI bendruomenės", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama versija", "On": "Aktyvuota", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Leistinos tik raidės, skaičiai ir brūkšneliai.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Pasirinkti modelį", "Select only one model to call": "Pasirinkite vieną modelį", "Selected model(s) do not support image inputs": "Pasirinkti modeliai nepalaiko vaizdinių užklausų", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Paspauskite norėdami pertraukti", "Tasks": "", "Tavily API Key": "Tavily API raktas", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemos prieinant prie Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS modelis", "TTS Settings": "TTS parametrai", "TTS Voice": "TTS balsas", diff --git a/src/lib/i18n/locales/ms-MY/translation.json b/src/lib/i18n/locales/ms-MY/translation.json index 8506b3d8b..a0ab6b86b 100644 --- a/src/lib/i18n/locales/ms-MY/translation.json +++ b/src/lib/i18n/locales/ms-MY/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model tugas digunakan semasa melaksanakan tugas seperti menjana tajuk untuk perbualan dan pertanyaan carian web.", "a user": "seorang pengguna", "About": "Mengenai", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Kepilkan Fail", + "Attach file from knowledge": "", "Attention to detail": "Perincian", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Jangan pasang fungsi daripada sumber yang anda tidak percayai sepenuhnya.", "Do not install tools from sources you do not fully trust.": "Jangan pasang alat daripada sumber yang anda tidak percaya sepenuhnya.", "Document": "Dokumen", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentasi", "Documents": "Dokumen", "does not make any external connections, and your data stays securely on your locally hosted server.": "tidak membuat sebarang sambungan luaran, dan data anda kekal selamat pada pelayan yang dihoskan ditempat anda", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Benarkan Pendaftaran Baharu", + "Enable OneDrive": "", "Enable Web Search": "Benarkan Carian Web", "Enabled": "Dibenarkan", "Engine": "Enjin", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Masukkan Tindihan 'Chunk'", "Enter Chunk Size": "Masukkan Saiz 'Chunk'", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Masukkan URL 'Github Raw'", @@ -510,6 +516,7 @@ "General Settings": "Tetapan Umum", "Generate an image": "", "Generate Image": "Jana Imej", + "Generate prompt pair": "", "Generating search query": "Jana pertanyaan carian", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Model Tempatan", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Dicipta oleh Komuniti OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Versi Ollama", "On": "Hidup", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Hanya aksara alfanumerik dan sempang dibenarkan dalam rentetan arahan.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Pilih model", "Select only one model to call": "Pilih hanya satu model untuk dipanggil", "Selected model(s) do not support image inputs": "Model dipilih tidak menyokong input imej", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Sentuh untuk mengganggu", "Tasks": "", "Tavily API Key": "Kunci API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "'Top P'", "Transformers": "", "Trouble accessing Ollama?": "Masalah mengakses Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model TTS", "TTS Settings": "Tetapan TTS", "TTS Voice": "Suara TTS", diff --git a/src/lib/i18n/locales/nb-NO/translation.json b/src/lib/i18n/locales/nb-NO/translation.json index 10823235b..f7208e6d9 100644 --- a/src/lib/i18n/locales/nb-NO/translation.json +++ b/src/lib/i18n/locales/nb-NO/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "En oppgavemodell brukes når du utfører oppgaver som å generere titler for samtaler eller utfører søkeforespørsler på nettet", "a user": "en bruker", "About": "Om", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Tilgang", "Access Control": "Tilgangskontroll", "Accessible to all users": "Tilgjengelig for alle brukere", @@ -93,7 +94,7 @@ "Artifacts": "Artifakter", "Ask a question": "Still et spørsmål", "Assistant": "Assistent", - "Attach file": "Legg ved fil", + "Attach file from knowledge": "", "Attention to detail": "Fokus på detaljer", "Attribute for Mail": "", "Attribute for Username": "Attributt for brukernavn", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Ikke installer funksjoner fra kilder du ikke stoler på.", "Do not install tools from sources you do not fully trust.": "Ikke installer verktøy fra kilder du ikke stoler på.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentasjon", "Documents": "Dokumenter", "does not make any external connections, and your data stays securely on your locally hosted server.": "ikke ingen tilkobling til eksterne tjenester. Dataene dine forblir sikkert på den lokale serveren.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Aktivert vurdering av meldinger", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Aktiver Mirostat-sampling for kontroll av perpleksitet. (Standard: 0, 0 = deaktivert, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Aktiver nye registreringer", + "Enable OneDrive": "", "Enable Web Search": "Aktiver websøk", "Enabled": "Aktivert", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Angi Chunk-overlapp", "Enter Chunk Size": "Angi Chunk-størrelse", "Enter description": "Angi beskrivelse", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Angi Github Raw-URL", @@ -510,6 +516,7 @@ "General Settings": "Generelle innstillinger", "Generate an image": "", "Generate Image": "Generer bilde", + "Generate prompt pair": "", "Generating search query": "Genererer søkespørring", "Get started": "Kom i gang", "Get started with {{WEBUI_NAME}}": "Kom i gang med {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Lokal", "Local Models": "Lokale modeller", + "Location access not allowed": "", "Lost": "Tapt", "LTR": "LTR", "Made by Open WebUI Community": "Laget av OpenWebUI-fellesskapet", @@ -718,6 +726,7 @@ "Ollama API settings updated": "API-innstillinger for Ollama er oppdatert", "Ollama Version": "Ollama-versjon", "On": "Aktivert", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Bare alfanumeriske tegn og bindestreker er tillatt", "Only alphanumeric characters and hyphens are allowed in the command string.": "Bare alfanumeriske tegn og bindestreker er tillatt i kommandostrengen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Bare samlinger kan redigeres, eller lag en ny kunnskapsbase for å kunne redigere / legge til dokumenter.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Velg motor", "Select Knowledge": "Velg kunnskap", - "Select model": "Velg modell", "Select only one model to call": "Velg bare én modell som skal kalles", "Selected model(s) do not support image inputs": "Valgte modell(er) støtter ikke bildeinndata", "Semantic distance to query": "Semantisk distanse til spørring", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Ledetekst for genering av etikett", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling brukes til å redusere innvirkningen av mindre sannsynlige tokens fra utdataene. En høyere verdi (f.eks. 2,0) vil redusere effekten mer, mens en verdi på 1,0 deaktiverer denne innstillingen. (standard: 1)", + "Talk to model": "", "Tap to interrupt": "Trykk for å avbryte", "Tasks": "", "Tavily API Key": "API-nøkkel for Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformatorer", "Trouble accessing Ollama?": "Problemer med å koble til Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS-modell", "TTS Settings": "TTS-innstillinger", "TTS Voice": "TTS-stemme", diff --git a/src/lib/i18n/locales/nl-NL/translation.json b/src/lib/i18n/locales/nl-NL/translation.json index 36f79bf14..3423bee8d 100644 --- a/src/lib/i18n/locales/nl-NL/translation.json +++ b/src/lib/i18n/locales/nl-NL/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Een taakmodel wordt gebruikt bij het uitvoeren van taken zoals het genereren van titels voor chats en zoekopdrachten op het internet", "a user": "een gebruiker", "About": "Over", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Toegang", "Access Control": "Toegangsbeheer", "Accessible to all users": "Toegankelijk voor alle gebruikers", @@ -93,7 +94,7 @@ "Artifacts": "Artefacten", "Ask a question": "Stel een vraag", "Assistant": "Assistent", - "Attach file": "Voeg een bestand toe", + "Attach file from knowledge": "", "Attention to detail": "Attention to detail", "Attribute for Mail": "", "Attribute for Username": "Attribuut voor gebruikersnaam", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Installeer geen functies vanuit bronnen die je niet volledig vertrouwt", "Do not install tools from sources you do not fully trust.": "Installeer geen tools vanuit bronnen die je niet volledig vertrouwt.", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentatie", "Documents": "Documenten", "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.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Schakel berichtbeoordeling in", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Mirostat-sampling inschakelen voor het regelen van de perplexiteit. (Standaard: 0, 0 = uitgeschakeld, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Schakel nieuwe registraties in", + "Enable OneDrive": "", "Enable Web Search": "Zoeken op het web inschakelen", "Enabled": "Ingeschakeld", "Engine": "Engine", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Voeg Chunk Overlap toe", "Enter Chunk Size": "Voeg Chunk Size toe", "Enter description": "Voer beschrijving in", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Voer de Github Raw-URL in", @@ -510,6 +516,7 @@ "General Settings": "Algemene instellingen", "Generate an image": "", "Generate Image": "Genereer afbeelding", + "Generate prompt pair": "", "Generating search query": "Zoekopdracht genereren", "Get started": "Begin", "Get started with {{WEBUI_NAME}}": "Begin met {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Lokaal", "Local Models": "Lokale modellen", + "Location access not allowed": "", "Lost": "Verloren", "LTR": "LNR", "Made by Open WebUI Community": "Gemaakt door OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API-instellingen bijgewerkt", "Ollama Version": "Ollama Versie", "On": "Aan", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Alleen alfanumerieke tekens en koppeltekens zijn toegestaan", "Only alphanumeric characters and hyphens are allowed in the command string.": "Alleen alfanumerieke karakters en streepjes zijn toegestaan in de commando string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Alleen verzamelinge kunnen gewijzigd worden, maak een nieuwe kennisbank aan om bestanden aan te passen/toe te voegen", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Selecteer Engine", "Select Knowledge": "Selecteer kennis", - "Select model": "Selecteer een model", "Select only one model to call": "Selecteer maar één model om aan te roepen", "Selected model(s) do not support image inputs": "Geselecteerde modellen ondersteunen geen beeldinvoer", "Semantic distance to query": "Semantische afstand tot query", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Prompt voor taggeneratie", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling wordt gebruikt om de impact van minder waarschijnlijke tokens uit de uitvoer te verminderen. Een hogere waarde (bv. 2,0) zal de impact meer verminderen, terwijl een waarde van 1,0 deze instelling uitschakelt. (standaard: 1)", + "Talk to model": "", "Tap to interrupt": "Tik om te onderbreken", "Tasks": "", "Tavily API Key": "Tavily API-sleutel", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemen met toegang tot Ollama?", + "Trust Proxy Environment": "", "TTS Model": "TTS Model", "TTS Settings": "TTS instellingen", "TTS Voice": "TTS Stem", diff --git a/src/lib/i18n/locales/pa-IN/translation.json b/src/lib/i18n/locales/pa-IN/translation.json index ee638bb22..c22d6042e 100644 --- a/src/lib/i18n/locales/pa-IN/translation.json +++ b/src/lib/i18n/locales/pa-IN/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "ਚੈਟਾਂ ਅਤੇ ਵੈੱਬ ਖੋਜ ਪੁੱਛਗਿੱਛਾਂ ਵਾਸਤੇ ਸਿਰਲੇਖ ਤਿਆਰ ਕਰਨ ਵਰਗੇ ਕਾਰਜ ਾਂ ਨੂੰ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਕਾਰਜ ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ", "a user": "ਇੱਕ ਉਪਭੋਗਤਾ", "About": "ਬਾਰੇ", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "ਫਾਈਲ ਜੋੜੋ", + "Attach file from knowledge": "", "Attention to detail": "ਵੇਰਵੇ 'ਤੇ ਧਿਆਨ", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "ਡਾਕੂਮੈਂਟ", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "ਡਾਕੂਮੈਂਟ", "does not make any external connections, and your data stays securely on your locally hosted server.": "ਕੋਈ ਬਾਹਰੀ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਬਣਾਉਂਦਾ, ਅਤੇ ਤੁਹਾਡਾ ਡਾਟਾ ਤੁਹਾਡੇ ਸਥਾਨਕ ਸਰਵਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦਾ ਹੈ।", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "ਨਵੇਂ ਸਾਈਨ ਅਪ ਯੋਗ ਕਰੋ", + "Enable OneDrive": "", "Enable Web Search": "ਵੈੱਬ ਖੋਜ ਨੂੰ ਸਮਰੱਥ ਕਰੋ", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "ਚੰਕ ਓਵਰਲੈਪ ਦਰਜ ਕਰੋ", "Enter Chunk Size": "ਚੰਕ ਆਕਾਰ ਦਰਜ ਕਰੋ", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Github ਕੱਚਾ URL ਦਾਖਲ ਕਰੋ", @@ -510,6 +516,7 @@ "General Settings": "ਆਮ ਸੈਟਿੰਗਾਂ", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "ਖੋਜ ਪੁੱਛਗਿੱਛ ਤਿਆਰ ਕਰਨਾ", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "ਓਪਨਵੈਬਯੂਆਈ ਕਮਿਊਨਿਟੀ ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "ਓਲਾਮਾ ਵਰਜਨ", "On": "ਚਾਲੂ", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "ਕਮਾਂਡ ਸਤਰ ਵਿੱਚ ਸਿਰਫ਼ ਅਲਫ਼ਾਨਯੂਮੈਰਿਕ ਅੱਖਰ ਅਤੇ ਹਾਈਫਨ ਦੀ ਆਗਿਆ ਹੈ।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "ਮਾਡਲ ਚੁਣੋ", "Select only one model to call": "", "Selected model(s) do not support image inputs": "ਚੁਣੇ ਗਏ ਮਾਡਲ(ਆਂ) ਚਿੱਤਰ ਇਨਪੁੱਟਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "ਸਿਖਰ P", "Transformers": "", "Trouble accessing Ollama?": "ਓਲਾਮਾ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਮੁਸ਼ਕਲ?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "TTS ਸੈਟਿੰਗਾਂ", "TTS Voice": "", diff --git a/src/lib/i18n/locales/pl-PL/translation.json b/src/lib/i18n/locales/pl-PL/translation.json index 4bae0c769..51b5562cc 100644 --- a/src/lib/i18n/locales/pl-PL/translation.json +++ b/src/lib/i18n/locales/pl-PL/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model zadań jest wykorzystywany podczas realizacji zadań, takich jak generowanie tytułów rozmów i zapytań wyszukiwania internetowego.", "a user": "użytkownik", "About": "O nas", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Dostęp", "Access Control": "Kontrola dostępu", "Accessible to all users": "Dostępny dla wszystkich użytkowników", @@ -93,7 +94,7 @@ "Artifacts": "Artefakty", "Ask a question": "Zadaj pytanie", "Assistant": "Asystent", - "Attach file": "Dołącz plik", + "Attach file from knowledge": "", "Attention to detail": "Dbałość o szczegóły", "Attribute for Mail": "Atrybut dla poczty", "Attribute for Username": "Atrybut dla nazwy użytkownika", @@ -182,6 +183,7 @@ "Code execution": "Wykonanie kodu", "Code Execution": "Wykonanie kodu", "Code Execution Engine": "Silnik wykonawczy kodu", + "Code Execution Timeout": "", "Code formatted successfully": "Kod został sformatowany pomyślnie.", "Code Interpreter": "Interpreter kodu", "Code Interpreter Engine": "Silnik interpretatora kodu", @@ -304,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Nie instaluj funkcji ze źródeł, którym nie ufasz w pełni.", "Do not install tools from sources you do not fully trust.": "Nie instaluj narzędzi ze źródeł, którym nie ufasz w pełni.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentacja", "Documents": "Dokumenty", "does not make any external connections, and your data stays securely on your locally hosted server.": "nie nawiązuje żadnych zewnętrznych połączeń, a Twoje dane pozostają bezpiecznie na Twoim lokalnie hostowanym serwerze.", @@ -321,6 +325,7 @@ "Draw": "Rysuj", "Drop any files here to add to the conversation": "Przeciągnij i upuść pliki tutaj, aby dodać je do rozmowy.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "np. '30s', '10m'. Poprawne jednostki czasu to: 's' (sekunda), 'm' (minuta), 'h' (godzina).", + "e.g. 60": "", "e.g. A filter to remove profanity from text": "np. Filtr do usuwania wulgaryzmów z tekstu", "e.g. My Filter": "np. Mój filtr", "e.g. My Tools": "np. Moje narzędzia", @@ -352,6 +357,7 @@ "Enable Message Rating": "Włącz ocenianie wiadomości", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Włącz próbkowanie Mirostat w celu kontrolowania perplexity. (Domyślnie: 0, 0 = Wyłączone, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Włącz nowe rejestracje", + "Enable OneDrive": "", "Enable Web Search": "Włączanie wyszukiwania internetowego", "Enabled": "Włączone", "Engine": "Silnik", @@ -370,6 +376,8 @@ "Enter Chunk Overlap": "Wprowadź nakładanie się bloków", "Enter Chunk Size": "Wprowadź wielkość bloku", "Enter description": "Wprowadź opis", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Wprowadź domeny oddzielone przecinkami (np. example.com, site.org)", "Enter Exa API Key": "Wprowadź klucz API Exa", "Enter Github Raw URL": "Wprowadź surowy adres URL usługi GitHub", @@ -408,6 +416,7 @@ "Enter Tavily API Key": "Wprowadź klucz API Tavily", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Wprowadź publiczny adres URL Twojego WebUI. Ten adres URL zostanie użyty do generowania linków w powiadomieniach.", "Enter Tika Server URL": "Wprowadź adres URL serwera Tika", + "Enter timeout in seconds": "", "Enter Top K": "Wprowadź {Top K}", "Enter URL (e.g. http://127.0.0.1:7860/)": "Podaj adres URL (np. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Wprowadź adres URL (np. http://localhost:11434)", @@ -500,10 +509,14 @@ "Functions allow arbitrary code execution": "Funkcje umożliwiają wykonanie dowolnego kodu", "Functions allow arbitrary code execution.": "Funkcje umożliwiają wykonanie dowolnego kodu.", "Functions imported successfully": "Funkcje zostały pomyślnie zaimportowane", + "Gemini": "", + "Gemini API Config": "", + "Gemini API Key is required.": "", "General": "Ogólne", "General Settings": "Ustawienia ogólne", "Generate an image": "Wygeneruj obraz", "Generate Image": "Wygeneruj obraz", + "Generate prompt pair": "", "Generating search query": "Tworzenie zapytania wyszukiwania", "Get started": "Rozpocznij", "Get started with {{WEBUI_NAME}}": "Rozpocznij pracę z {{WEBUI_NAME}}", @@ -609,6 +622,7 @@ "Loading Kokoro.js...": "Wczytywanie Kokoro.js...", "Local": "Lokalny", "Local Models": "Modele lokalne", + "Location access not allowed": "", "Lost": "Przegrał", "LTR": "LTR", "Made by Open WebUI Community": "Opracowane przez społeczność Open WebUI", @@ -712,6 +726,7 @@ "Ollama API settings updated": "Ustawienia API Ollama zostały zaktualizowane", "Ollama Version": "Wersja Ollama", "On": "Włączony", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Dozwolone są tylko znaki alfanumeryczne i myślniki", "Only alphanumeric characters and hyphens are allowed in the command string.": "W komendzie dozwolone są wyłącznie znaki alfanumeryczne i myślniki.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Tylko kolekcje można edytować, utwórz nową bazę wiedzy, aby edytować/dodawać dokumenty.", @@ -874,7 +889,6 @@ "Select an Ollama instance": "Wybierz instancję Ollama", "Select Engine": "Wybierz silnik", "Select Knowledge": "Wybierz wiedzę", - "Select model": "Wybierz model", "Select only one model to call": "Wybierz tylko jeden model do wywołania", "Selected model(s) do not support image inputs": "Wybrane modele nie obsługują danych wejściowych w formie obrazu", "Semantic distance to query": "Odległość semantyczna od zapytania", @@ -951,6 +965,7 @@ "Tags Generation": "Generowanie tagów", "Tags Generation Prompt": "Podpowiedź do generowania tagów", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Próbkowanie bez ogona jest używane do zmniejszenia wpływu mniej prawdopodobnych tokenów na wyjście. Wyższa wartość (np. 2,0) zmniejszy ten wpływ bardziej, podczas gdy wartość 1,0 wyłącza to ustawienie. (domyślnie: 1)", + "Talk to model": "", "Tap to interrupt": "Kliknij, aby przerwać", "Tasks": "Zadania", "Tavily API Key": "Klucz API Tavily", @@ -1035,6 +1050,7 @@ "Top P": "Najlepsze P", "Transformers": "Transformery", "Trouble accessing Ollama?": "Czy masz problemy z dostępem do Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model TTS", "TTS Settings": "Ustawienia syntezatora mowy", "TTS Voice": "Głos TTS", @@ -1141,4 +1157,4 @@ "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "Cała Twoja wpłata trafi bezpośrednio do dewelopera wtyczki; Open WebUI nie pobiera żadnej prowizji. Należy jednak pamiętać, że wybrana platforma finansowania może mieć własne opłaty.", "Youtube": "Youtube", "Youtube Loader Settings": "Ustawienia pobierania z YouTube" -} \ No newline at end of file +} diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 421bb8a8a..cb3b9c151 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao realizar tarefas como gerar títulos para chats e consultas de pesquisa na web", "a user": "um usuário", "About": "Sobre", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Acesso", "Access Control": "Controle de Acesso", "Accessible to all users": "Accessível para todos os usuários", @@ -93,7 +94,7 @@ "Artifacts": "Artefatos", "Ask a question": "Faça uma pergunta", "Assistant": "Assistente", - "Attach file": "Anexar arquivo", + "Attach file from knowledge": "", "Attention to detail": "Atenção aos detalhes", "Attribute for Mail": "", "Attribute for Username": "Atribuir para nome de usuário", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Não instale funções de fontes que você não confia totalmente.", "Do not install tools from sources you do not fully trust.": "Não instale ferramentas de fontes que você não confia totalmente.", "Document": "Documento", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentação", "Documents": "Documentos", "does not make any external connections, and your data stays securely on your locally hosted server.": "não faz nenhuma conexão externa, e seus dados permanecem seguros no seu servidor local.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Ativar Avaliação de Mensagens", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Habilite a amostragem Mirostat para controlar a perplexidade. (Padrão: 0, 0 = Desativado, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Ativar Novos Cadastros", + "Enable OneDrive": "", "Enable Web Search": "Ativar Pesquisa na Web", "Enabled": "Ativado", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Digite a Sobreposição de Chunk", "Enter Chunk Size": "Digite o Tamanho do Chunk", "Enter description": "Digite a descrição", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Digite a URL bruta do Github", @@ -510,6 +516,7 @@ "General Settings": "Configurações Gerais", "Generate an image": "", "Generate Image": "Gerar Imagem", + "Generate prompt pair": "", "Generating search query": "Gerando consulta de pesquisa", "Get started": "Iniciar", "Get started with {{WEBUI_NAME}}": "Iniciar com {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Modelos Locais", + "Location access not allowed": "", "Lost": "Perdeu", "LTR": "Esquerda para Direita", "Made by Open WebUI Community": "Feito pela Comunidade OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Configurações da API Ollama atualizadas", "Ollama Version": "Versão Ollama", "On": "Ligado", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Somente caracteres alfanuméricos e hífens são permitidos", "Only alphanumeric characters and hyphens are allowed in the command string.": "Apenas caracteres alfanuméricos e hífens são permitidos na string de comando.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Somente coleções podem ser editadas. Crie uma nova base de conhecimento para editar/adicionar documentos.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Selecionar Motor", "Select Knowledge": "Selecionar Conhecimento", - "Select model": "Selecionar modelo", "Select only one model to call": "Selecione apenas um modelo para chamar", "Selected model(s) do not support image inputs": "Modelo(s) selecionado(s) não suportam entradas de imagem", "Semantic distance to query": "Distância semântica para consulta", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Prompt para geração de Tags", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "A amostragem *tail free* é usada para reduzir o impacto de tokens menos prováveis na saída. Um valor mais alto (por exemplo, 2,0) reduzirá mais o impacto, enquanto um valor de 1,0 desativa essa configuração. (Padrão: 1)", + "Talk to model": "", "Tap to interrupt": "Toque para interromper", "Tasks": "", "Tavily API Key": "Chave da API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemas para acessar o Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Modelo TTS", "TTS Settings": "Configurações TTS", "TTS Voice": "Voz TTS", diff --git a/src/lib/i18n/locales/pt-PT/translation.json b/src/lib/i18n/locales/pt-PT/translation.json index 10334c5c6..d6630be9f 100644 --- a/src/lib/i18n/locales/pt-PT/translation.json +++ b/src/lib/i18n/locales/pt-PT/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Um modelo de tarefa é usado ao executar tarefas como gerar títulos para bate-papos e consultas de pesquisa na Web", "a user": "um utilizador", "About": "Acerca de", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Anexar ficheiro", + "Attach file from knowledge": "", "Attention to detail": "Detalhado", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Documento", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentação", "Documents": "Documentos", "does not make any external connections, and your data stays securely on your locally hosted server.": "não faz conexões externas e os seus dados permanecem seguros no seu servidor alojado localmente.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Ativar Novas Inscrições", + "Enable OneDrive": "", "Enable Web Search": "Ativar pesquisa na Web", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Escreva a Sobreposição de Fragmento", "Enter Chunk Size": "Escreva o Tamanho do Fragmento", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Escreva o URL cru do Github", @@ -510,6 +516,7 @@ "General Settings": "Configurações Gerais", "Generate an image": "", "Generate Image": "Gerar imagem", + "Generate prompt pair": "", "Generating search query": "A gerar a consulta da pesquisa", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Modelos Locais", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Feito pela Comunidade OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Versão do Ollama", "On": "Ligado", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Apenas caracteres alfanuméricos e hífens são permitidos na string de comando.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Selecione o modelo", "Select only one model to call": "Selecione apenas um modelo para a chamada", "Selected model(s) do not support image inputs": "O(s) modelo(s) selecionado(s) não suporta(m) entradas de imagem", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Problemas a aceder ao Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Modelo TTS", "TTS Settings": "Configurações TTS", "TTS Voice": "Voz TTS", diff --git a/src/lib/i18n/locales/ro-RO/translation.json b/src/lib/i18n/locales/ro-RO/translation.json index 68cd04df4..8f6d4f7fc 100644 --- a/src/lib/i18n/locales/ro-RO/translation.json +++ b/src/lib/i18n/locales/ro-RO/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de sarcină este utilizat pentru realizarea unor sarcini precum generarea de titluri pentru conversații și interogări de căutare pe web", "a user": "un utilizator", "About": "Despre", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "Artefacte", "Ask a question": "Pune o întrebare", "Assistant": "Asistent", - "Attach file": "Atașează fișier", + "Attach file from knowledge": "", "Attention to detail": "Atenție la detalii", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Nu instalați funcții din surse în care nu aveți încredere completă.", "Do not install tools from sources you do not fully trust.": "Nu instalați instrumente din surse în care nu aveți încredere completă.", "Document": "Document", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Documentație", "Documents": "Documente", "does not make any external connections, and your data stays securely on your locally hosted server.": "nu face nicio conexiune externă, iar datele tale rămân în siguranță pe serverul găzduit local.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Activează Evaluarea Mesajelor", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Activează Înscrierile Noi", + "Enable OneDrive": "", "Enable Web Search": "Activează Căutarea pe Web", "Enabled": "Activat", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Introduceți Suprapunerea Blocului", "Enter Chunk Size": "Introduceți Dimensiunea Blocului", "Enter description": "Introduceți descrierea", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Introduceți URL-ul Raw de pe Github", @@ -510,6 +516,7 @@ "General Settings": "Setări Generale", "Generate an image": "", "Generate Image": "Generează Imagine", + "Generate prompt pair": "", "Generating search query": "Se generează interogarea de căutare", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Modele Locale", + "Location access not allowed": "", "Lost": "Pierdut", "LTR": "LTR", "Made by Open WebUI Community": "Realizat de Comunitatea OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Versiune Ollama", "On": "Activat", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Doar caracterele alfanumerice și cratimele sunt permise în șirul de comandă.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Doar colecțiile pot fi editate, creați o nouă bază de cunoștințe pentru a edita/adăuga documente.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Selectează motorul", "Select Knowledge": "Selectarea cunoștințelor (Knowledge Selection) este un proces esențial în multiple domenii, incluzând inteligența artificială și învățarea automată. Aceasta presupune alegerea corectă a informațiilor sau datelor relevante dintr-un set mai mare pentru a le utiliza în analize, modele sau sisteme specifice. De exemplu, în învățarea automată, selectarea caracteristicilor este un aspect al selectării cunoștințelor și implică alegerea celor mai relevante date de intrare care contribuie la îmbunătățirea preciziei modelului.", - "Select model": "Selectează model", "Select only one model to call": "Selectează doar un singur model pentru apel", "Selected model(s) do not support image inputs": "Modelul(e) selectat(e) nu suportă intrări de imagine", "Semantic distance to query": "Distanța semantică față de interogare", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Generarea de Etichete Prompt", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Apasă pentru a întrerupe", "Tasks": "", "Tavily API Key": "Cheie API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Probleme la accesarea Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model TTS", "TTS Settings": "Setări TTS", "TTS Voice": "Voce TTS", diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json index a06dbf68b..83db06479 100644 --- a/src/lib/i18n/locales/ru-RU/translation.json +++ b/src/lib/i18n/locales/ru-RU/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач используется при выполнении таких задач, как генерация заголовков для чатов и поисковых запросов в Интернете", "a user": "пользователь", "About": "О программе", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Доступ", "Access Control": "Контроль доступа", "Accessible to all users": "Доступно всем пользователям", @@ -93,7 +94,7 @@ "Artifacts": "Артефакты", "Ask a question": "Задать вопрос", "Assistant": "Ассистент", - "Attach file": "Прикрепить файл", + "Attach file from knowledge": "", "Attention to detail": "Внимание к деталям", "Attribute for Mail": "", "Attribute for Username": "Атрибут для имени пользователя", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Не устанавливайте функции из источников, которым вы не полностью доверяете.", "Do not install tools from sources you do not fully trust.": "Не устанавливайте инструменты из источников, которым вы не полностью доверяете.", "Document": "Документ", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Документация", "Documents": "Документы", "does not make any external connections, and your data stays securely on your locally hosted server.": "не устанавливает никаких внешних соединений, и ваши данные надежно хранятся на вашем локальном сервере.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Разрешить оценку ответов", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Разрешить новые регистрации", + "Enable OneDrive": "", "Enable Web Search": "Включить поиск в Интернете", "Enabled": "Включено", "Engine": "Движок", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Введите перекрытие фрагмента", "Enter Chunk Size": "Введите размер фрагмента", "Enter description": "Введите описание", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Введите необработанный URL-адрес Github", @@ -510,6 +516,7 @@ "General Settings": "Общие настройки", "Generate an image": "", "Generate Image": "Сгенерировать изображение", + "Generate prompt pair": "", "Generating search query": "Генерация поискового запроса", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Локальные модели", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Сделано сообществом OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Версия Ollama", "On": "Включено", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Разрешены только буквенно-цифровые символы и дефисы.", "Only alphanumeric characters and hyphens are allowed in the command string.": "В строке команды разрешено использовать только буквенно-цифровые символы и дефисы.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Выберите движок", "Select Knowledge": "", - "Select model": "Выберите модель", "Select only one model to call": "Выберите только одну модель для вызова", "Selected model(s) do not support image inputs": "Выбранные модели не поддерживают ввод изображений", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Нажмите, чтобы прервать", "Tasks": "", "Tavily API Key": "Ключ API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Проблемы с доступом к Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Модель TTS", "TTS Settings": "Настройки TTS", "TTS Voice": "Голос TTS", diff --git a/src/lib/i18n/locales/sk-SK/translation.json b/src/lib/i18n/locales/sk-SK/translation.json index 5d8ebcd91..3be5f72a9 100644 --- a/src/lib/i18n/locales/sk-SK/translation.json +++ b/src/lib/i18n/locales/sk-SK/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Model úloh sa používa pri vykonávaní úloh, ako je generovanie názvov pre chaty a vyhľadávacie dotazy na webe.", "a user": "užívateľ", "About": "O programe", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Prístup", "Access Control": "", "Accessible to all users": "Prístupné pre všetkých užívateľov", @@ -93,7 +94,7 @@ "Artifacts": "Artefakty", "Ask a question": "Opýtajte sa otázku", "Assistant": "Asistent", - "Attach file": "Pripojiť súbor", + "Attach file from knowledge": "", "Attention to detail": "Pozornosť k detailom", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Neinštalujte funkcie zo zdrojov, ktorým plne nedôverujete.", "Do not install tools from sources you do not fully trust.": "Neinštalujte nástroje zo zdrojov, ktorým plne nedôverujete.", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentácia", "Documents": "Dokumenty", "does not make any external connections, and your data stays securely on your locally hosted server.": "nevytvára žiadne externé pripojenia a vaše dáta zostávajú bezpečne na vašom lokálnom serveri.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Povoliť hodnotenie správ", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Povoliť nové registrácie", + "Enable OneDrive": "", "Enable Web Search": "Povoliť webové vyhľadávanie", "Enabled": "Povolené", "Engine": "Engine", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Zadajte prekryv časti", "Enter Chunk Size": "Zadajte veľkosť časti", "Enter description": "Zadajte popis", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Zadajte URL adresu Github Raw", @@ -510,6 +516,7 @@ "General Settings": "Všeobecné nastavenia", "Generate an image": "", "Generate Image": "Vygenerovať obrázok", + "Generate prompt pair": "", "Generating search query": "Generovanie vyhľadávacieho dotazu", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokálne modely", + "Location access not allowed": "", "Lost": "Stratený", "LTR": "LTR", "Made by Open WebUI Community": "Vytvorené komunitou OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Verzia Ollama", "On": "Zapnuté", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Príkazový reťazec môže obsahovať iba alfanumerické znaky a pomlčky.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Iba kolekcie môžu byť upravované, na úpravu/pridanie dokumentov vytvorte novú znalostnú databázu.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Vyberte engine", "Select Knowledge": "Vybrať znalosti", - "Select model": "Vyberte model", "Select only one model to call": "Vyberte iba jeden model, ktorý chcete použiť", "Selected model(s) do not support image inputs": "Vybraný(é) model(y) nepodporujú vstupy v podobe obrázkov.", "Semantic distance to query": "Sémantická vzdialenosť k dotazu", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "Prompt na generovanie značiek", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Klepnite na prerušenie", "Tasks": "", "Tavily API Key": "Kľúč API pre Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Máte problémy s prístupom k Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Model prevodu textu na reč (TTS)", "TTS Settings": "Nastavenia TTS (Text-to-Speech)", "TTS Voice": "TTS hlas", diff --git a/src/lib/i18n/locales/sr-RS/translation.json b/src/lib/i18n/locales/sr-RS/translation.json index 0b1a4a0f1..2297fa68a 100644 --- a/src/lib/i18n/locales/sr-RS/translation.json +++ b/src/lib/i18n/locales/sr-RS/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Модел задатка се користи приликом извршавања задатака као што су генерисање наслова за ћаскања и упите за Веб претрагу", "a user": "корисник", "About": "О нама", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Приступ", "Access Control": "Контрола приступа", "Accessible to all users": "Доступно свим корисницима", @@ -93,7 +94,7 @@ "Artifacts": "Артефакти", "Ask a question": "Постави питање", "Assistant": "Помоћник", - "Attach file": "Приложи датотеку", + "Attach file from knowledge": "", "Attention to detail": "Пажња на детаље", "Attribute for Mail": "Особина е-поруке", "Attribute for Username": "Особина корисника", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Документ", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Документација", "Documents": "Документи", "does not make any external connections, and your data stays securely on your locally hosted server.": "не отвара никакве спољне везе и ваши подаци остају сигурно на вашем локално хостованом серверу.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Омогући нове пријаве", + "Enable OneDrive": "", "Enable Web Search": "Омогући Wеб претрагу", "Enabled": "Омогућено", "Engine": "Мотор", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Унесите преклапање делова", "Enter Chunk Size": "Унесите величину дела", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Унесите Гитхуб Раw УРЛ адресу", @@ -510,6 +516,7 @@ "General Settings": "Општа подешавања", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "Генерисање упита претраге", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Локално", "Local Models": "Локални модели", + "Location access not allowed": "", "Lost": "Пораза", "LTR": "ЛНД", "Made by Open WebUI Community": "Израдила OpenWebUI заједница", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Издање Ollama-е", "On": "Укључено", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Само алфанумерички знакови и цртице су дозвољени у низу наредби.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Изабери мотор", "Select Knowledge": "Изабери знање", - "Select model": "Изабери модел", "Select only one model to call": "", "Selected model(s) do not support image inputs": "Изабрани модели не подржавају уносе слика", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "Стварање ознака", "Tags Generation Prompt": "Упит стварања ознака", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Топ П", "Transformers": "", "Trouble accessing Ollama?": "Проблеми са приступом Ollama-и?", + "Trust Proxy Environment": "", "TTS Model": "TTS модел", "TTS Settings": "TTS подешавања", "TTS Voice": "TTS глас", diff --git a/src/lib/i18n/locales/sv-SE/translation.json b/src/lib/i18n/locales/sv-SE/translation.json index 3ce482581..c899b1f76 100644 --- a/src/lib/i18n/locales/sv-SE/translation.json +++ b/src/lib/i18n/locales/sv-SE/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "En uppgiftsmodell används när du utför uppgifter som att generera titlar för chattar och webbsökningsfrågor", "a user": "en användare", "About": "Om", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Bifoga fil", + "Attach file from knowledge": "", "Attention to detail": "Detaljerad uppmärksamhet", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "Dokument", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dokumentation", "Documents": "Dokument", "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.", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Aktivera nya registreringar", + "Enable OneDrive": "", "Enable Web Search": "Aktivera webbsökning", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Ange chunköverlappning", "Enter Chunk Size": "Ange chunkstorlek", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Ange Github Raw URL", @@ -510,6 +516,7 @@ "General Settings": "Allmänna inställningar", "Generate an image": "", "Generate Image": "Generera bild", + "Generate prompt pair": "", "Generating search query": "Genererar sökfråga", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "Lokala modeller", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Skapad av OpenWebUI Community", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Ollama-version", "On": "På", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Endast alfanumeriska tecken och bindestreck är tillåtna i kommandosträngen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "Välj en modell", "Select only one model to call": "Välj endast en modell att ringa", "Selected model(s) do not support image inputs": "Valda modeller stöder inte bildinmatningar", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Topp P", "Transformers": "", "Trouble accessing Ollama?": "Problem med att komma åt Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Text-till-tal-modell", "TTS Settings": "Text-till-tal-inställningar", "TTS Voice": "Text-till-tal-röst", diff --git a/src/lib/i18n/locales/th-TH/translation.json b/src/lib/i18n/locales/th-TH/translation.json index 41b3723bf..8484bf906 100644 --- a/src/lib/i18n/locales/th-TH/translation.json +++ b/src/lib/i18n/locales/th-TH/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "ใช้โมเดลงานเมื่อทำงานเช่นการสร้างหัวข้อสำหรับการสนทนาและการค้นหาเว็บ", "a user": "ผู้ใช้", "About": "เกี่ยวกับ", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "แนบไฟล์", + "Attach file from knowledge": "", "Attention to detail": "ใส่ใจในรายละเอียด", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "อย่าติดตั้งฟังก์ชันจากแหล่งที่คุณไม่ไว้วางใจอย่างเต็มที่", "Do not install tools from sources you do not fully trust.": "อย่าติดตั้งเครื่องมือจากแหล่งที่คุณไม่ไว้วางใจอย่างเต็มที่", "Document": "เอกสาร", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "เอกสารประกอบ", "Documents": "เอกสาร", "does not make any external connections, and your data stays securely on your locally hosted server.": "ไม่เชื่อมต่อภายนอกใดๆ และข้อมูลของคุณจะอยู่บนเซิร์ฟเวอร์ที่โฮสต์ในท้องถิ่นของคุณอย่างปลอดภัย", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "เปิดใช้งานการสมัครใหม่", + "Enable OneDrive": "", "Enable Web Search": "เปิดใช้งานการค้นหาเว็บ", "Enabled": "เปิดใช้งาน", "Engine": "เครื่องยนต์", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "ใส่การทับซ้อนส่วนข้อมูล", "Enter Chunk Size": "ใส่ขนาดส่วนข้อมูล", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "ใส่ URL ดิบของ Github", @@ -510,6 +516,7 @@ "General Settings": "การตั้งค่าทั่วไป", "Generate an image": "", "Generate Image": "สร้างภาพ", + "Generate prompt pair": "", "Generating search query": "สร้างคำค้นหา", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "โมเดลท้องถิ่น", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "สร้างโดยชุมชน OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "เวอร์ชั่น Ollama", "On": "เปิด", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "อนุญาตให้ใช้เฉพาะอักขระตัวอักษรและตัวเลข รวมถึงเครื่องหมายขีดกลางในสตริงคำสั่งเท่านั้น", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "เลือกโมเดล", "Select only one model to call": "เลือกเพียงโมเดลเดียวที่จะใช้", "Selected model(s) do not support image inputs": "โมเดลที่เลือกไม่รองรับภาพ", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "แตะเพื่อขัดจังหวะ", "Tasks": "", "Tavily API Key": "คีย์ API ของ Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "มีปัญหาในการเข้าถึง Ollama?", + "Trust Proxy Environment": "", "TTS Model": "โมเดลแปลงข้อความเป็นเสียง", "TTS Settings": "การตั้งค่าแปลงข้อความเป็นเสียง", "TTS Voice": "เสียงแปลงข้อความเป็นเสียง", diff --git a/src/lib/i18n/locales/tk-TW/translation.json b/src/lib/i18n/locales/tk-TW/translation.json index 9e52a557b..b77efe5b7 100644 --- a/src/lib/i18n/locales/tk-TW/translation.json +++ b/src/lib/i18n/locales/tk-TW/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "", "a user": "", "About": "", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "", + "Attach file from knowledge": "", "Attention to detail": "", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "", "Do not install tools from sources you do not fully trust.": "", "Document": "", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "", "Documents": "", "does not make any external connections, and your data stays securely on your locally hosted server.": "", @@ -354,6 +357,7 @@ "Enable Message Rating": "", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "", + "Enable OneDrive": "", "Enable Web Search": "", "Enabled": "", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "", "Enter Chunk Size": "", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "", @@ -510,6 +516,7 @@ "General Settings": "", "Generate an image": "", "Generate Image": "", + "Generate prompt pair": "", "Generating search query": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "", "Made by Open WebUI Community": "", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "", "On": "", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "", "Select Knowledge": "", - "Select model": "", "Select only one model to call": "", "Selected model(s) do not support image inputs": "", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "", "Transformers": "", "Trouble accessing Ollama?": "", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "", "TTS Voice": "", diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json index b6518a1e2..2c7d24ff8 100644 --- a/src/lib/i18n/locales/tr-TR/translation.json +++ b/src/lib/i18n/locales/tr-TR/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Bir görev modeli, sohbetler ve web arama sorguları için başlık oluşturma gibi görevleri yerine getirirken kullanılır", "a user": "bir kullanıcı", "About": "Hakkında", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Erişim", "Access Control": "Erişim Kontrolü", "Accessible to all users": "Tüm kullanıcılara erişilebilir", @@ -93,7 +94,7 @@ "Artifacts": "Eserler", "Ask a question": "Bir soru sorun", "Assistant": "Asistan", - "Attach file": "Dosya ekle", + "Attach file from knowledge": "", "Attention to detail": "Ayrıntılara dikkat", "Attribute for Mail": "", "Attribute for Username": "Kullanıcı Adı için Özellik", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Tamamen güvenmediğiniz kaynaklardan fonksiyonlar yüklemeyin.", "Do not install tools from sources you do not fully trust.": "Tamamen güvenmediğiniz kaynaklardan araçlar yüklemeyin.", "Document": "Belge", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Dökümantasyon", "Documents": "Belgeler", "does not make any external connections, and your data stays securely on your locally hosted server.": "herhangi bir harici bağlantı yapmaz ve verileriniz güvenli bir şekilde yerel olarak barındırılan sunucunuzda kalır.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Mesaj Değerlendirmeyi Etkinleştir", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Perplexity'yi kontrol etmek için Mirostat örnekleme özelliğini etkinleştirin. (Varsayılan: 0, 0 = Devre Dışı, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Yeni Kayıtları Etkinleştir", + "Enable OneDrive": "", "Enable Web Search": "Web Aramasını Etkinleştir", "Enabled": "Etkin", "Engine": "Motor", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Chunk Örtüşmesini Girin", "Enter Chunk Size": "Chunk Boyutunu Girin", "Enter description": "Açıklama girin", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Github Raw URL'sini girin", @@ -510,6 +516,7 @@ "General Settings": "Genel Ayarlar", "Generate an image": "", "Generate Image": "Görsel Üret", + "Generate prompt pair": "", "Generating search query": "Arama sorgusu oluşturma", "Get started": "Başlayın", "Get started with {{WEBUI_NAME}}": "{{WEBUI_NAME}} ile başlayın", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "Yerel", "Local Models": "Yerel Modeller", + "Location access not allowed": "", "Lost": "Kayıp", "LTR": "Soldan Sağa", "Made by Open WebUI Community": "OpenWebUI Topluluğu tarafından yapılmıştır", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API ayarları güncellendi", "Ollama Version": "Ollama Sürümü", "On": "Açık", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Yalnızca alfasayısal karakterler ve tireler kabul edilir", "Only alphanumeric characters and hyphens are allowed in the command string.": "Komut dizisinde yalnızca alfasayısal karakterler ve tireler kabul edilir.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Yalnızca koleksiyonlar düzenlenebilir, belgeleri düzenlemek/eklemek için yeni bir bilgi tabanı oluşturun.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Motor Seç", "Select Knowledge": "Bilgi Seç", - "Select model": "Model seç", "Select only one model to call": "Arama için sadece bir model seç", "Selected model(s) do not support image inputs": "Seçilen model(ler) görüntü girişlerini desteklemiyor", "Semantic distance to query": "Sorguya semantik mesafe", @@ -957,6 +965,7 @@ "Tags Generation": "Etiketler Oluşturma", "Tags Generation Prompt": "Etiketler Oluşturma Promptu", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Durdurmak için dokunun", "Tasks": "", "Tavily API Key": "Tavily API Anahtarı", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Dönüştürücüler", "Trouble accessing Ollama?": "Ollama'ya erişmede sorun mu yaşıyorsunuz?", + "Trust Proxy Environment": "", "TTS Model": "TTS Modeli", "TTS Settings": "TTS Ayarları", "TTS Voice": "TTS Sesi", diff --git a/src/lib/i18n/locales/uk-UA/translation.json b/src/lib/i18n/locales/uk-UA/translation.json index ba4ba3177..2756394b5 100644 --- a/src/lib/i18n/locales/uk-UA/translation.json +++ b/src/lib/i18n/locales/uk-UA/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач використовується при виконанні таких завдань, як генерація заголовків для чатів та пошукових запитів в Інтернеті", "a user": "користувача", "About": "Про програму", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "Доступ", "Access Control": "Контроль доступу", "Accessible to all users": "Доступно всім користувачам", @@ -93,7 +94,7 @@ "Artifacts": "Артефакти", "Ask a question": "Задати питання", "Assistant": "Асистент", - "Attach file": "Прикріпити файл", + "Attach file from knowledge": "", "Attention to detail": "Увага до деталей", "Attribute for Mail": "Атрибут для пошти", "Attribute for Username": "Атрибут для імені користувача", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Не встановлюйте функції з джерел, яким ви не повністю довіряєте.", "Do not install tools from sources you do not fully trust.": "Не встановлюйте інструменти з джерел, яким ви не повністю довіряєте.", "Document": "Документ", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Документація", "Documents": "Документи", "does not make any external connections, and your data stays securely on your locally hosted server.": "не встановлює жодних зовнішніх з'єднань, і ваші дані залишаються в безпеці на вашому локальному сервері.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Увімкнути оцінку повідомлень", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Увімкнути вибірку Mirostat для контролю над непередбачуваністю. (За замовчуванням: 0, 0 = Вимкнено, 1 = Mirostat, 2 = Mirostat 2.0)", "Enable New Sign Ups": "Дозволити нові реєстрації", + "Enable OneDrive": "", "Enable Web Search": "Увімкнути веб-пошук", "Enabled": "Увімкнено", "Engine": "Рушій", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Введіть перекриття фрагменту", "Enter Chunk Size": "Введіть розмір фрагменту", "Enter description": "Введіть опис", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Введіть домени, розділені комами (наприклад, example.com, site.org)", "Enter Exa API Key": "Введіть ключ API Exa", "Enter Github Raw URL": "Введіть Raw URL-адресу Github", @@ -510,6 +516,7 @@ "General Settings": "Загальні налаштування", "Generate an image": "Згенерувати зображення", "Generate Image": "Створити зображення", + "Generate prompt pair": "", "Generating search query": "Сформувати пошуковий запит", "Get started": "Почати", "Get started with {{WEBUI_NAME}}": "Почати з {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "Завантаження Kokoro.js...", "Local": "Локальний", "Local Models": "Локальні моделі", + "Location access not allowed": "", "Lost": "Втрачене", "LTR": "LTR", "Made by Open WebUI Community": "Зроблено спільнотою OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Налаштування Ollama API оновлено", "Ollama Version": "Версія Ollama", "On": "Увімк", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Дозволені тільки алфавітно-цифрові символи та дефіси", "Only alphanumeric characters and hyphens are allowed in the command string.": "У рядку команди дозволено використовувати лише алфавітно-цифрові символи та дефіси.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Редагувати можна лише колекції, створіть нову базу знань, щоб редагувати або додавати документи.", @@ -880,7 +889,6 @@ "Select an Ollama instance": "Виберіть екземпляр Ollama", "Select Engine": "Виберіть двигун", "Select Knowledge": "Вибрати знання", - "Select model": "Обрати модель", "Select only one model to call": "Оберіть лише одну модель для виклику", "Selected model(s) do not support image inputs": "Вибрані модель(і) не підтримують вхідні зображення", "Semantic distance to query": "Семантична відстань до запиту", @@ -957,6 +965,7 @@ "Tags Generation": "Генерація тегів", "Tags Generation Prompt": "Підказка для генерації тегів", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Вибірка з відрізанням хвоста використовується для зменшення впливу малоймовірних токенів на результат. Вищі значення (напр., 2.0) зменшують цей вплив більше, в той час як значення 1.0 вимикає цю настройку. (За замовчуванням: 1)", + "Talk to model": "", "Tap to interrupt": "Натисніть, щоб перервати", "Tasks": "", "Tavily API Key": "Ключ API Tavily", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Трансформери", "Trouble accessing Ollama?": "Проблеми з доступом до Ollama?", + "Trust Proxy Environment": "", "TTS Model": "Модель TTS", "TTS Settings": "Налаштування TTS", "TTS Voice": "Голос TTS", diff --git a/src/lib/i18n/locales/ur-PK/translation.json b/src/lib/i18n/locales/ur-PK/translation.json index 01375ea2c..d85c83314 100644 --- a/src/lib/i18n/locales/ur-PK/translation.json +++ b/src/lib/i18n/locales/ur-PK/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "ٹاسک ماڈل اس وقت استعمال ہوتا ہے جب چیٹس کے عنوانات اور ویب سرچ سوالات تیار کیے جا رہے ہوں", "a user": "ایک صارف", "About": "بارے میں", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "نوادرات", "Ask a question": "سوال پوچھیں", "Assistant": "اسسٹنٹ", - "Attach file": "فائل منسلک کریں", + "Attach file from knowledge": "", "Attention to detail": "تفصیل پر توجہ", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "ایسی جگہوں سے فنکشنز انسٹال نہ کریں جن پر آپ مکمل بھروسہ نہیں کرتے", "Do not install tools from sources you do not fully trust.": "جن ذرائع پر آپ مکمل بھروسہ نہیں کرتے، ان سے ٹولز انسٹال نہ کریں", "Document": "دستاویز", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "دستاویزات", "Documents": "دستاویزات", "does not make any external connections, and your data stays securely on your locally hosted server.": "آپ کا ڈیٹا مقامی طور پر میزبانی شدہ سرور پر محفوظ رہتا ہے اور کوئی بیرونی رابطے نہیں بناتا", @@ -354,6 +357,7 @@ "Enable Message Rating": "پیغام کی درجہ بندی فعال کریں", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "نئے سائن اپس کو فعال کریں", + "Enable OneDrive": "", "Enable Web Search": "ویب تلاش فعال کریں", "Enabled": "فعال کردیا گیا ہے", "Engine": "انجن", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "چنک اوورلیپ درج کریں", "Enter Chunk Size": "چنک سائز درج کریں", "Enter description": "تفصیل درج کریں", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "گیٹ ہب را یو آر ایل درج کریں", @@ -510,6 +516,7 @@ "General Settings": "عمومی ترتیبات", "Generate an image": "", "Generate Image": "تصویر بنائیں", + "Generate prompt pair": "", "Generating search query": "تلاش کے لیے سوالیہ عبارت تیار کی جا رہی ہے", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "مقامی ماڈلز", + "Location access not allowed": "", "Lost": "گم شدہ", "LTR": "بائیں سے دائیں", "Made by Open WebUI Community": "اوپن ویب یو آئی کمیونٹی کی جانب سے تیار کردہ", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "اولاما ورژن", "On": "چالو", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "کمانڈ سٹرنگ میں صرف حروفی، عددی کردار اور ہائفن کی اجازت ہے", "Only collections can be edited, create a new knowledge base to edit/add documents.": "صرف مجموعے ترمیم کیے جا سکتے ہیں، دستاویزات کو ترمیم یا شامل کرنے کے لیے نیا علمی بنیاد بنائیں", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "انجن منتخب کریں", "Select Knowledge": "علم منتخب کریں", - "Select model": "ماڈل منتخب کریں", "Select only one model to call": "صرف ایک ماڈل کو کال کرنے کے لئے منتخب کریں", "Selected model(s) do not support image inputs": "منتخب کردہ ماڈل(ز) تصویری ان پٹ کی حمایت نہیں کرتے", "Semantic distance to query": "سوال کے لیے معنوی فاصلہ", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "پرمپٹ کے لیے ٹیگز بنائیں", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "رکنے کے لئے ٹچ کریں", "Tasks": "", "Tavily API Key": "ٹاویلی API کلید", @@ -1041,6 +1050,7 @@ "Top P": "ٹاپ پی", "Transformers": "", "Trouble accessing Ollama?": "Ollama تک رسائی میں مشکل؟", + "Trust Proxy Environment": "", "TTS Model": "ٹی ٹی ایس ماڈل", "TTS Settings": "ٹی ٹی ایس ترتیبات", "TTS Voice": "ٹی ٹی ایس آواز", diff --git a/src/lib/i18n/locales/vi-VN/translation.json b/src/lib/i18n/locales/vi-VN/translation.json index 0fe97a547..1d7b8b768 100644 --- a/src/lib/i18n/locales/vi-VN/translation.json +++ b/src/lib/i18n/locales/vi-VN/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Mô hình tác vụ được sử dụng khi thực hiện các tác vụ như tạo tiêu đề cho cuộc trò chuyện và truy vấn tìm kiếm trên web", "a user": "người sử dụng", "About": "Giới thiệu", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "", "Access Control": "", "Accessible to all users": "", @@ -93,7 +94,7 @@ "Artifacts": "", "Ask a question": "", "Assistant": "", - "Attach file": "Đính kèm file", + "Attach file from knowledge": "", "Attention to detail": "Có sự chú ý đến chi tiết của vấn đề", "Attribute for Mail": "", "Attribute for Username": "", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "Không cài đặt các functions từ các nguồn mà bạn không hoàn toàn tin tưởng.", "Do not install tools from sources you do not fully trust.": "Không cài đặt các tools từ những nguồn mà bạn không hoàn toàn tin tưởng.", "Document": "Tài liệu", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "Tài liệu", "Documents": "Tài liệu", "does not make any external connections, and your data stays securely on your locally hosted server.": "không thực hiện bất kỳ kết nối ngoài nào, và dữ liệu của bạn vẫn được lưu trữ an toàn trên máy chủ lưu trữ cục bộ của bạn.", @@ -354,6 +357,7 @@ "Enable Message Rating": "Cho phép phản hồi, đánh giá", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "", "Enable New Sign Ups": "Cho phép đăng ký mới", + "Enable OneDrive": "", "Enable Web Search": "Cho phép tìm kiếm Web", "Enabled": "Đã bật", "Engine": "", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "Nhập Chunk chồng lấn (overlap)", "Enter Chunk Size": "Nhập Kích thước Chunk", "Enter description": "", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", "Enter Github Raw URL": "Nhập URL cho Github Raw", @@ -510,6 +516,7 @@ "General Settings": "Cấu hình chung", "Generate an image": "", "Generate Image": "Sinh ảnh", + "Generate prompt pair": "", "Generating search query": "Tạo truy vấn tìm kiếm", "Get started": "", "Get started with {{WEBUI_NAME}}": "", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "", "Local": "", "Local Models": "", + "Location access not allowed": "", "Lost": "", "LTR": "LTR", "Made by Open WebUI Community": "Được tạo bởi Cộng đồng OpenWebUI", @@ -718,6 +726,7 @@ "Ollama API settings updated": "", "Ollama Version": "Phiên bản Ollama", "On": "Bật", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Chỉ ký tự số và gạch nối được phép trong chuỗi lệnh.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", @@ -880,7 +889,6 @@ "Select an Ollama instance": "", "Select Engine": "Chọn Engine", "Select Knowledge": "", - "Select model": "Chọn model", "Select only one model to call": "Chọn model để gọi", "Selected model(s) do not support image inputs": "Model được lựa chọn không hỗ trợ đầu vào là hình ảnh", "Semantic distance to query": "", @@ -957,6 +965,7 @@ "Tags Generation": "", "Tags Generation Prompt": "", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "", + "Talk to model": "", "Tap to interrupt": "Chạm để ngừng", "Tasks": "", "Tavily API Key": "", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "Gặp vấn đề khi truy cập Ollama?", + "Trust Proxy Environment": "", "TTS Model": "", "TTS Settings": "Cài đặt Chuyển văn bản thành Giọng nói", "TTS Voice": "", diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index b0db571ba..8b0569763 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "任务模型用于执行生成对话标题和联网搜索查询等任务", "a user": "用户", "About": "关于", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "访问", "Access Control": "访问控制", "Accessible to all users": "对所有用户开放", @@ -93,7 +94,7 @@ "Artifacts": "Artifacts", "Ask a question": "提问", "Assistant": "AI模型", - "Attach file": "添加文件", + "Attach file from knowledge": "", "Attention to detail": "注重细节", "Attribute for Mail": "邮箱属性", "Attribute for Username": "用户名属性", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "切勿安装来源不完全可信的函数。", "Do not install tools from sources you do not fully trust.": "切勿安装来源不完全可信的工具。", "Document": "文档", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "帮助文档", "Documents": "文档", "does not make any external connections, and your data stays securely on your locally hosted server.": "不会与外部建立任何连接,您的数据会安全地存储在本地托管的服务器上。", @@ -354,6 +357,7 @@ "Enable Message Rating": "启用回复评价", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "启用 Mirostat 采样以控制困惑度。(默认值:0,0 = 禁用,1 = Mirostat,2 = Mirostat 2.0)", "Enable New Sign Ups": "允许新用户注册", + "Enable OneDrive": "", "Enable Web Search": "启用联网搜索", "Enabled": "启用", "Engine": "引擎", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "输入块重叠 (Chunk Overlap)", "Enter Chunk Size": "输入块大小 (Chunk Size)", "Enter description": "输入简介描述", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "输入以逗号分隔的域名(例如:example.com、site.org)", "Enter Exa API Key": "输入 Exa API 密钥", "Enter Github Raw URL": "输入 Github Raw 地址", @@ -510,6 +516,7 @@ "General Settings": "通用设置", "Generate an image": "生成图像", "Generate Image": "生成图像", + "Generate prompt pair": "", "Generating search query": "生成搜索查询", "Get started": "开始使用", "Get started with {{WEBUI_NAME}}": "开始使用 {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "载入 Kokoro.js...", "Local": "本地", "Local Models": "本地模型", + "Location access not allowed": "", "Lost": "落败", "LTR": "从左至右", "Made by Open WebUI Community": "由 OpenWebUI 社区制作", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API设置已更新", "Ollama Version": "Ollama 版本", "On": "开启", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "只允许使用英文字母,数字 (0-9) 以及连字符 (-)", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字 (0-9) 以及连字符 (-)。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能编辑文件集,创建一个新的知识库来编辑/添加文件。", @@ -880,7 +889,6 @@ "Select an Ollama instance": "选择一个 Ollama 实例。", "Select Engine": "选择引擎", "Select Knowledge": "选择知识", - "Select model": "选择模型", "Select only one model to call": "请仅选择一个模型来呼叫", "Selected model(s) do not support image inputs": "已选择的模型不支持发送图像", "Semantic distance to query": "语义距离查询", @@ -957,6 +965,7 @@ "Tags Generation": "标签生成", "Tags Generation Prompt": "标签生成提示词", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling 用于减少输出中可能性较低的Token的影响。数值越大(如 2.0),影响就越小,而数值为 1.0 则会禁用此设置。(默认值:1)", + "Talk to model": "", "Tap to interrupt": "点击以中断", "Tasks": "任务", "Tavily API Key": "Tavily API 密钥", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "访问 Ollama 时遇到问题?", + "Trust Proxy Environment": "", "TTS Model": "文本转语音模型", "TTS Settings": "文本转语音设置", "TTS Voice": "文本转语音音色", diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index ed7cf841b..b3be351c7 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -13,6 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "執行產生對話標題和網頁搜尋查詢等任務時會使用任務模型", "a user": "一位使用者", "About": "關於", + "Accept autocomplete generation / Jump to prompt variable": "", "Access": "存取", "Access Control": "存取控制", "Accessible to all users": "所有使用者可存取", @@ -93,7 +94,7 @@ "Artifacts": "成品", "Ask a question": "提出問題", "Assistant": "助手", - "Attach file": "附加檔案", + "Attach file from knowledge": "", "Attention to detail": "注重細節", "Attribute for Mail": "使用者郵箱屬性", "Attribute for Username": "使用者名稱屬性", @@ -305,6 +306,8 @@ "Do not install functions from sources you do not fully trust.": "請勿從您無法完全信任的來源安裝函式。", "Do not install tools from sources you do not fully trust.": "請勿從您無法完全信任的來源安裝工具。", "Document": "文件", + "Document Intelligence": "", + "Document Intelligence endpoint and key required.": "", "Documentation": "文件", "Documents": "文件", "does not make any external connections, and your data stays securely on your locally hosted server.": "不會建立任何外部連線,而且您的資料會安全地儲存在您本機伺服器上。", @@ -354,6 +357,7 @@ "Enable Message Rating": "啟用訊息評分", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "啟用 Mirostat 採樣以控制困惑度。(預設:0,0 = 停用,1 = Mirostat,2 = Mirostat 2.0)", "Enable New Sign Ups": "允許新使用者註冊", + "Enable OneDrive": "", "Enable Web Search": "啟用網頁搜尋", "Enabled": "已啟用", "Engine": "引擎", @@ -372,6 +376,8 @@ "Enter Chunk Overlap": "輸入區塊重疊", "Enter Chunk Size": "輸入區塊大小", "Enter description": "輸入描述", + "Enter Document Intelligence Endpoint": "", + "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "輸入網域,以逗號分隔(例如:example.com, site.org)", "Enter Exa API Key": "輸入 Exa API 金鑰", "Enter Github Raw URL": "輸入 GitHub Raw URL", @@ -510,6 +516,7 @@ "General Settings": "一般設定", "Generate an image": "產生圖片", "Generate Image": "產生圖片", + "Generate prompt pair": "", "Generating search query": "正在產生搜尋查詢", "Get started": "開始使用", "Get started with {{WEBUI_NAME}}": "開始使用 {{WEBUI_NAME}}", @@ -615,6 +622,7 @@ "Loading Kokoro.js...": "Kokoro.js 載入中……", "Local": "本機", "Local Models": "本機模型", + "Location access not allowed": "", "Lost": "已遺失", "LTR": "從左到右", "Made by Open WebUI Community": "由 OpenWebUI 社群製作", @@ -718,6 +726,7 @@ "Ollama API settings updated": "Ollama API 設定已更新", "Ollama Version": "Ollama 版本", "On": "開啟", + "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "只允許使用英文字母、數字和連字號", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字串中只允許使用英文字母、數字和連字號。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能編輯集合,請建立新的知識以編輯或新增文件。", @@ -880,7 +889,6 @@ "Select an Ollama instance": "選擇一個 Ollama 實例", "Select Engine": "選擇引擎", "Select Knowledge": "選擇知識庫", - "Select model": "選擇模型", "Select only one model to call": "僅選擇一個模型來呼叫", "Selected model(s) do not support image inputs": "選取的模型不支援圖片輸入", "Semantic distance to query": "與查詢的語義距離", @@ -957,6 +965,7 @@ "Tags Generation": "標籤生成", "Tags Generation Prompt": "標籤生成提示詞", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "使用無尾採樣來減少較不可能的 token 對輸出的影響。較高的值(例如 2.0)會減少更多影響,而值為 1.0 則停用此設定。(預設:1)", + "Talk to model": "", "Tap to interrupt": "點選以中斷", "Tasks": "任務", "Tavily API Key": "Tavily API 金鑰", @@ -1041,6 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "存取 Ollama 時遇到問題?", + "Trust Proxy Environment": "", "TTS Model": "文字轉語音 (TTS) 模型", "TTS Settings": "文字轉語音 (TTS) 設定", "TTS Voice": "文字轉語音 (TTS) 聲音", From cefe274f746ed6fac175ac7adc08a21492e8896a Mon Sep 17 00:00:00 2001 From: Tiancong Li Date: Tue, 25 Feb 2025 04:03:16 +0800 Subject: [PATCH 47/58] i18n: update zh-TW --- src/lib/i18n/locales/zh-TW/translation.json | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index b3be351c7..cb6549b80 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -13,7 +13,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "執行產生對話標題和網頁搜尋查詢等任務時會使用任務模型", "a user": "一位使用者", "About": "關於", - "Accept autocomplete generation / Jump to prompt variable": "", + "Accept autocomplete generation / Jump to prompt variable": "接受自動完成生成/跳轉至提示變數", "Access": "存取", "Access Control": "存取控制", "Accessible to all users": "所有使用者可存取", @@ -94,7 +94,7 @@ "Artifacts": "成品", "Ask a question": "提出問題", "Assistant": "助手", - "Attach file from knowledge": "", + "Attach file from knowledge": "從知識庫附加檔案", "Attention to detail": "注重細節", "Attribute for Mail": "使用者郵箱屬性", "Attribute for Username": "使用者名稱屬性", @@ -306,8 +306,8 @@ "Do not install functions from sources you do not fully trust.": "請勿從您無法完全信任的來源安裝函式。", "Do not install tools from sources you do not fully trust.": "請勿從您無法完全信任的來源安裝工具。", "Document": "文件", - "Document Intelligence": "", - "Document Intelligence endpoint and key required.": "", + "Document Intelligence": "Document Intelligence", + "Document Intelligence endpoint and key required.": "需提供 Document Intelligence 端點及金鑰", "Documentation": "文件", "Documents": "文件", "does not make any external connections, and your data stays securely on your locally hosted server.": "不會建立任何外部連線,而且您的資料會安全地儲存在您本機伺服器上。", @@ -357,7 +357,7 @@ "Enable Message Rating": "啟用訊息評分", "Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "啟用 Mirostat 採樣以控制困惑度。(預設:0,0 = 停用,1 = Mirostat,2 = Mirostat 2.0)", "Enable New Sign Ups": "允許新使用者註冊", - "Enable OneDrive": "", + "Enable OneDrive": "啟用 OneDrive", "Enable Web Search": "啟用網頁搜尋", "Enabled": "已啟用", "Engine": "引擎", @@ -376,8 +376,8 @@ "Enter Chunk Overlap": "輸入區塊重疊", "Enter Chunk Size": "輸入區塊大小", "Enter description": "輸入描述", - "Enter Document Intelligence Endpoint": "", - "Enter Document Intelligence Key": "", + "Enter Document Intelligence Endpoint": "輸入 Document Intelligence 端點", + "Enter Document Intelligence Key": "輸入 Document Intelligence 金鑰", "Enter domains separated by commas (e.g., example.com,site.org)": "輸入網域,以逗號分隔(例如:example.com, site.org)", "Enter Exa API Key": "輸入 Exa API 金鑰", "Enter Github Raw URL": "輸入 GitHub Raw URL", @@ -516,7 +516,7 @@ "General Settings": "一般設定", "Generate an image": "產生圖片", "Generate Image": "產生圖片", - "Generate prompt pair": "", + "Generate prompt pair": "產生提示配對", "Generating search query": "正在產生搜尋查詢", "Get started": "開始使用", "Get started with {{WEBUI_NAME}}": "開始使用 {{WEBUI_NAME}}", @@ -622,7 +622,7 @@ "Loading Kokoro.js...": "Kokoro.js 載入中……", "Local": "本機", "Local Models": "本機模型", - "Location access not allowed": "", + "Location access not allowed": "位置存取未獲允許", "Lost": "已遺失", "LTR": "從左到右", "Made by Open WebUI Community": "由 OpenWebUI 社群製作", @@ -726,7 +726,7 @@ "Ollama API settings updated": "Ollama API 設定已更新", "Ollama Version": "Ollama 版本", "On": "開啟", - "OneDrive": "", + "OneDrive": "OneDrive", "Only alphanumeric characters and hyphens are allowed": "只允許使用英文字母、數字和連字號", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字串中只允許使用英文字母、數字和連字號。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能編輯集合,請建立新的知識以編輯或新增文件。", @@ -965,7 +965,7 @@ "Tags Generation": "標籤生成", "Tags Generation Prompt": "標籤生成提示詞", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "使用無尾採樣來減少較不可能的 token 對輸出的影響。較高的值(例如 2.0)會減少更多影響,而值為 1.0 則停用此設定。(預設:1)", - "Talk to model": "", + "Talk to model": "與模型對話", "Tap to interrupt": "點選以中斷", "Tasks": "任務", "Tavily API Key": "Tavily API 金鑰", @@ -1050,7 +1050,7 @@ "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "存取 Ollama 時遇到問題?", - "Trust Proxy Environment": "", + "Trust Proxy Environment": "信任代理環境", "TTS Model": "文字轉語音 (TTS) 模型", "TTS Settings": "文字轉語音 (TTS) 設定", "TTS Voice": "文字轉語音 (TTS) 聲音", From 89aaf64209f4517b05c71648262eea1e870bc544 Mon Sep 17 00:00:00 2001 From: "Jason E. Jensen" Date: Mon, 24 Feb 2025 22:32:08 +0000 Subject: [PATCH 48/58] add optional usage to chatCompleted messages --- src/lib/components/chat/Chat.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index fcd5177d7..67ada0bc7 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -836,6 +836,7 @@ content: m.content, info: m.info ? m.info : undefined, timestamp: m.timestamp, + ...(m.usage ? { usage: m.usage } : {}), ...(m.sources ? { sources: m.sources } : {}) })), model_item: $models.find((m) => m.id === modelId), From cd3904046db1d1be316cb41e67470eaa110a60bc Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 24 Feb 2025 20:19:32 -0800 Subject: [PATCH 49/58] refac --- src/lib/components/common/CodeEditor.svelte | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/components/common/CodeEditor.svelte b/src/lib/components/common/CodeEditor.svelte index 0c4a008f1..d545d7236 100644 --- a/src/lib/components/common/CodeEditor.svelte +++ b/src/lib/components/common/CodeEditor.svelte @@ -47,6 +47,10 @@ let codeEditor; + export const focus = () => { + codeEditor.focus(); + }; + let isDarkMode = false; let editorTheme = new Compartment(); let editorLanguage = new Compartment(); From e06111a362b87d571fcf9b7158864aec7b57b9d9 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 24 Feb 2025 23:21:03 -0800 Subject: [PATCH 50/58] refac --- src/lib/components/admin/Functions/FunctionEditor.svelte | 7 ++++--- src/lib/components/workspace/Tools/ToolkitEditor.svelte | 8 ++++---- src/routes/(app)/admin/functions/create/+page.svelte | 4 ++-- src/routes/(app)/admin/functions/edit/+page.svelte | 4 ++-- src/routes/(app)/workspace/tools/create/+page.svelte | 4 ++-- src/routes/(app)/workspace/tools/edit/+page.svelte | 4 ++-- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/lib/components/admin/Functions/FunctionEditor.svelte b/src/lib/components/admin/Functions/FunctionEditor.svelte index a78259101..6da2a83f4 100644 --- a/src/lib/components/admin/Functions/FunctionEditor.svelte +++ b/src/lib/components/admin/Functions/FunctionEditor.svelte @@ -1,8 +1,7 @@