From f052b2801a68331fed5e5e6f790bb5e3ca38d016 Mon Sep 17 00:00:00 2001 From: Aleix Dorca Date: Fri, 7 Nov 2025 06:40:37 +0100 Subject: [PATCH 001/243] Update catalan translation.json --- src/lib/i18n/locales/ca-ES/translation.json | 152 ++++++++++---------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index ca14b30c5f..7da0b2e4bb 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -26,7 +26,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\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "Accepta la generació d'autocompleció\nVés a la variable de la indicació", "Access": "Accés", "Access Control": "Control d'accés", "Accessible to all users": "Accessible a tots els usuaris", @@ -50,8 +50,8 @@ "Add Connection": "Afegir connexió", "Add Content": "Afegir contingut", "Add content here": "Afegir contingut aquí", - "Add Custom Parameter": "Afegir paràmetre personalitzat ", - "Add Custom Prompt": "", + "Add Custom Parameter": "Afegir paràmetre personalitzat", + "Add Custom Prompt": "Afegir indicació personalitzada", "Add Details": "Afegir detalls", "Add Files": "Afegir arxius", "Add Group": "Afegir grup", @@ -73,9 +73,9 @@ "Admin Settings": "Preferències d'administració", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Els administradors tenen accés a totes les eines en tot moment; els usuaris necessiten eines assignades per model a l'espai de treball.", "Advanced Parameters": "Paràmetres avançats", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "Paràmetres avançats per a l'anàlisi sintàctica de MinerU (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)", "Advanced Params": "Paràmetres avançats", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "Després d'actualitzar o canviar el model d'incrustació, has de tornar a indexar la base de coneixement perquè els canvis tinguin efecte. Pots fer-ho mitjançant el botó \"Reindexar\" que hi ha a continuació.", "AI": "IA", "All": "Tots", "All chats have been unarchived.": "Tots els xats han estat desarxivats.", @@ -130,7 +130,7 @@ "API Key created.": "clau API creada.", "API Key Endpoint Restrictions": "Restriccions del punt d'accés de la Clau API", "API keys": "Claus de l'API", - "API Mode": "", + "API Mode": "Mode API", "API Version": "Versió de l'API", "API Version is required": "Versió API requerida", "Application DN": "DN d'aplicació", @@ -151,7 +151,7 @@ "Ask": "Preguntar", "Ask a question": "Fer una pregunta", "Assistant": "Assistent", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "Adjuntar arxiu del coneixement", "Attach Knowledge": "Adjuntar coneixement", "Attach Notes": "Adjuntar notes", "Attach Webpage": "Adjuntar pàgina web", @@ -171,7 +171,7 @@ "Automatic1111": "Automatic1111", "AUTOMATIC1111 Api Auth String": "Cadena d'autenticació de l'API d'AUTOMATIC1111", "AUTOMATIC1111 Base URL": "URL Base d'AUTOMATIC1111", - "AUTOMATIC1111 Base URL is required.": "Es requereix l'URL Base d'AUTOMATIC1111.", + "AUTOMATIC1111 Base URL is required.": "Es requereix la URL Base d'AUTOMATIC1111.", "Available list": "Llista de disponibles", "Available Tools": "Eines disponibles", "available users": "usuaris disponibles", @@ -221,7 +221,7 @@ "Channel": "Canal", "Channel deleted successfully": "Canal suprimit correctament", "Channel Name": "Nom del canal", - "Channel name cannot be empty.": "", + "Channel name cannot be empty.": "El nom del canal no pot estar buit.", "Channel updated successfully": "Canal actualitzat correctament", "Channels": "Canals", "Character": "Personatge", @@ -271,13 +271,13 @@ "Close Banner": "Tancar el bàner", "Close Configure Connection Modal": "Tancar la finestra de configuració de la connexió", "Close modal": "Tancar el modal", - "Close Modal": "", + "Close Modal": "Tancar el modal", "Close settings modal": "Tancar el modal de configuració", "Close Sidebar": "Tancar la barra lateral", - "cloud": "", + "cloud": "núvol", "CMU ARCTIC speaker embedding name": "Nom de l'altaveu d'incrustació CMU ARCTIC", "Code Block": "Bloc de codi", - "Code Editor": "", + "Code Editor": "Editor de codi", "Code execution": "Execució de codi", "Code Execution": "Execució de Codi", "Code Execution Engine": "Motor d'execució de codi", @@ -292,7 +292,7 @@ "ComfyUI": "ComfyUI", "ComfyUI API Key": "Configurar la clau API de ComfyUI", "ComfyUI Base URL": "URL base de ComfyUI", - "ComfyUI Base URL is required.": "L'URL base de ComfyUI és obligatòria.", + "ComfyUI Base URL is required.": "La URL base de ComfyUI és obligatòria.", "ComfyUI Workflow": "Flux de treball de ComfyUI", "ComfyUI Workflow Nodes": "Nodes del flux de treball de ComfyUI", "Comma separated Node Ids (e.g. 1 or 1,2)": "Identificadors de node separats per comes (p. ex. 1 o 1,2)", @@ -331,12 +331,12 @@ "Conversation saved successfully": "Conversa desada correctament", "Copied": "Copiat", "Copied link to clipboard": "Enllaç copiat al portaretalls", - "Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!", + "Copied shared chat URL to clipboard!": "S'ha copiat la URL compartida al porta-retalls!", "Copied to clipboard": "Copiat al porta-retalls", "Copy": "Copiar", "Copy Formatted Text": "Copiar el text formatat", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "Copiar el darrer bloc de codi", + "Copy Last Response": "Copiar la darrera resposta", "Copy link": "Copiar l'enllaç", "Copy Link": "Copiar l'enllaç", "Copy to clipboard": "Copiar al porta-retalls", @@ -345,13 +345,13 @@ "Create": "Crear", "Create a knowledge base": "Crear una base de coneixement", "Create a model": "Crear un model", - "Create a new note": "", + "Create a new note": "Crear una nova nota", "Create Account": "Crear un compte", "Create Admin Account": "Crear un compte d'Administrador", "Create Channel": "Crear un canal", "Create Folder": "Crear carpeta", "Create Group": "Crear grup", - "Create Image": "", + "Create Image": "Crear imatge", "Create Knowledge": "Crear Coneixement", "Create Model": "Crear model", "Create new key": "Crear una nova clau", @@ -498,12 +498,12 @@ "Edit Connection": "Editar la connexió", "Edit Default Permissions": "Editar el permisos per defecte", "Edit Folder": "Editar la carpeta", - "Edit Image": "", - "Edit Last Message": "", + "Edit Image": "Editar la imatge", + "Edit Last Message": "Editar el darrer missatge", "Edit Memory": "Editar la memòria", "Edit User": "Editar l'usuari", "Edit User Group": "Editar el grup d'usuaris", - "Edit workflow.json content": "", + "Edit workflow.json content": "Editar el contingut de workflow.json", "edited": "editat", "Edited": "Editat", "Editing": "Editant", @@ -554,7 +554,7 @@ "Enter Config in JSON format": "Introdueix la configuració en format JSON", "Enter content for the pending user info overlay. Leave empty for default.": "Introdueix el contingut per a la finestra de dades d'usuari pendent. Deixa-ho buit per a valor per defecte.", "Enter coordinates (e.g. 51.505, -0.09)": "Entra les coordenades (p. ex. 51.505, -0.09)", - "Enter Datalab Marker API Base URL": "Introdueix l'URL de base de l'API Datalab Marker", + "Enter Datalab Marker API Base URL": "Introdueix la URL de base de l'API Datalab Marker", "Enter Datalab Marker API Key": "Introdueix la clau API de Datalab Marker", "Enter description": "Introdueix la descripció", "Enter Docling OCR Engine": "Introdueix el motor OCR de Docling", @@ -573,7 +573,7 @@ "Enter Firecrawl API Base URL": "Introdueix la URL base de Firecrawl API", "Enter Firecrawl API Key": "Introdueix la clau API de Firecrawl", "Enter folder name": "Introdueix el nom de la carpeta", - "Enter Github Raw URL": "Introdueix l'URL en brut de Github", + "Enter Github Raw URL": "Introdueix la URL en brut de Github", "Enter Google PSE API Key": "Introdueix la clau API de Google PSE", "Enter Google PSE Engine Id": "Introdueix l'identificador del motor PSE de Google", "Enter hex color (e.g. #FF0000)": "Introdueix el codi hexadecimal del color (p. ex. #FF0000)", @@ -587,8 +587,8 @@ "Enter Kagi Search API Key": "Introdueix la clau API de Kagi Search", "Enter Key Behavior": "Introdueix el comportament de clau", "Enter language codes": "Introdueix els codis de llenguatge", - "Enter MinerU API Key": "", - "Enter Mistral API Base URL": "", + "Enter MinerU API Key": "Introdueix la clau API de MinerU", + "Enter Mistral API Base URL": "Entra la URL Base de l'API de Mistral", "Enter Mistral API Key": "Entra la clau API de Mistral", "Enter Model ID": "Introdueix l'identificador del model", "Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})", @@ -600,12 +600,12 @@ "Enter Perplexity API Key": "Introdueix la clau API de Perplexity", "Enter Playwright Timeout": "Introdueix el timeout de Playwright", "Enter Playwright WebSocket URL": "Introdueix la URL de Playwright WebSocket", - "Enter proxy URL (e.g. https://user:password@host:port)": "Entra l'URL (p. ex. https://user:password@host:port)", + "Enter proxy URL (e.g. https://user:password@host:port)": "Entra la URL (p. ex. https://user:password@host:port)", "Enter reasoning effort": "Introdueix l'esforç de raonament", "Enter Score": "Introdueix la puntuació", "Enter SearchApi API Key": "Introdueix la clau API SearchApi", "Enter SearchApi Engine": "Introdueix el motor SearchApi", - "Enter Searxng Query URL": "Introdueix l'URL de consulta de Searxng", + "Enter Searxng Query URL": "Introdueix la URL de consulta de Searxng", "Enter Seed": "Introdueix la llavor", "Enter SerpApi API Key": "Introdueix la clau API SerpApi", "Enter SerpApi Engine": "Introdueix el motor API SerpApi", @@ -625,13 +625,13 @@ "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 the URL of the function to import": "Introdueix la URL de la funció a importar", "Enter the URL to import": "Introdueix la URL a importar", - "Enter Tika Server URL": "Introdueix l'URL del servidor Tika", + "Enter Tika Server URL": "Introdueix la URL del servidor Tika", "Enter timeout in seconds": "Entra el temps màxim en segons", "Enter to Send": "Enter per enviar", "Enter Top K": "Introdueix Top K", "Enter Top K Reranker": "Introdueix el Top K Reranker", - "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)", + "Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix la URL (p. ex. http://127.0.0.1:7860/)", + "Enter URL (e.g. http://localhost:11434)": "Introdueix la URL (p. ex. http://localhost:11434)", "Enter value": "Introdueix el valor", "Enter value (true/false)": "Introdueix el valor (cert/fals)", "Enter Yacy Password": "Introdueix la contrassenya de Yacy", @@ -711,7 +711,7 @@ "Failed to move chat": "No s'ha pogut moure el xat", "Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls", "Failed to render diagram": "No s'ha pogut renderitzar el diagrama", - "Failed to render visualization": "", + "Failed to render visualization": "No s'ha pogut renderitzar la visualització", "Failed to save connections": "No s'han pogut desar les connexions", "Failed to save conversation": "No s'ha pogut desar la conversa", "Failed to save models configuration": "No s'ha pogut desar la configuració dels models", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "URL de l'API de base de Firecrawl", "Firecrawl API Key": "Clau API de Firecrawl", "Floating Quick Actions": "Accions ràpides flotants", - "Focus Chat Input": "", + "Focus Chat Input": "Posa el focus en l'entrada del xat", "Folder": "Carpeta", "Folder Background Image": "Imatge del fons de la carpeta", "Folder deleted successfully": "Carpeta eliminada correctament", @@ -784,16 +784,16 @@ "Functions allow arbitrary code execution.": "Les funcions permeten l'execució de codi arbitrari.", "Functions imported successfully": "Les funcions s'han importat correctament", "Gemini": "Gemini", - "Gemini API Key": "", + "Gemini API Key": "Clau API de Gemini", "Gemini API Key is required.": "La clau API de Gemini és necessària", - "Gemini Base URL": "", - "Gemini Endpoint Method": "", + "Gemini Base URL": "URL base de Gemini", + "Gemini Endpoint Method": "Mètode de l'endpoint de Gemini", "Gender": "Gènere", "General": "General", "Generate": "Generar", "Generate an image": "Generar una imatge", "Generate Image": "Generar imatge", - "Generate Message Pair": "", + "Generate Message Pair": "Generar parella de missatges", "Generated Image": "Imatge generada", "Generating search query": "Generant consulta", "Generating...": "Generant...", @@ -835,8 +835,8 @@ "How can I help you today?": "Com et puc ajudar avui?", "How would you rate this response?": "Com avaluaries aquesta resposta?", "HTML": "HTML", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", "Hybrid Search": "Cerca híbrida", "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.": "Afirmo que he llegit i entenc les implicacions de la meva acció. Soc conscient dels riscos associats a l'execució de codi arbitrari i he verificat la fiabilitat de la font.", "ID": "ID", @@ -848,7 +848,7 @@ "Image Compression": "Compressió d'imatges", "Image Compression Height": "Alçada de la compressió d'imatges", "Image Compression Width": "Amplada de la compressió d'imatges", - "Image Edit Engine": "", + "Image Edit Engine": "Motor d'edició d'imatges", "Image Generation": "Generació d'imatges", "Image Generation Engine": "Motor de generació d'imatges", "Image Max Compression Size": "Mida màxima de la compressió d'imatges", @@ -856,7 +856,7 @@ "Image Max Compression Size width": "Mida màxima de l'amplada de la compressió d'imatges", "Image Prompt Generation": "Generació d'indicacions d'imatge", "Image Prompt Generation Prompt": "Indicació per a la generació d'indicacions d'imatge", - "Image Size": "", + "Image Size": "Mida de la imatge", "Images": "Imatges", "Import": "Importar", "Import Chats": "Importar xats", @@ -883,7 +883,7 @@ "Insert Follow-Up Prompt to Input": "Inserir un missatge de seguiment per a l'entrada", "Insert Prompt as Rich Text": "Inserir la indicació com a Text Ric", "Insert Suggestion Prompt to Input": "Insereix un suggeriment per introduir", - "Install from Github URL": "Instal·lar des de l'URL de Github", + "Install from Github URL": "Instal·lar des de la URL de Github", "Instant Auto-Send After Voice Transcription": "Enviament automàtic després de la transcripció de veu", "Integration": "Integració", "Integrations": "Integracions", @@ -891,11 +891,11 @@ "Invalid file content": "Continguts del fitxer no vàlids", "Invalid file format.": "Format d'arxiu no vàlid.", "Invalid JSON file": "Arxiu JSON no vàlid", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "Format JSON no vàlid per al Workflow de ComfyUI d'edició", "Invalid JSON format for ComfyUI Workflow.": "Arxiu JSON de Workflow ComfyUI no vàlid.", "Invalid JSON format for Parameters": "JSON de paràmetres no vàlid", "Invalid JSON format in Additional Config": "Format JSON no vàlid a la configuració addicional", - "Invalid JSON format in MinerU Parameters": "", + "Invalid JSON format in MinerU Parameters": "Format JSON no vàlid en els paràmetres de MinerU", "Invalid Tag": "Etiqueta no vàlida", "is typing...": "està escrivint...", "Italic": "Cursiva", @@ -917,7 +917,7 @@ "Key": "Clau", "Key is required": "La clau és necessària", "Keyboard shortcuts": "Dreceres de teclat", - "Keyboard Shortcuts": "", + "Keyboard Shortcuts": "Dreceres de teclat", "Knowledge": "Coneixement", "Knowledge Access": "Accés al coneixement", "Knowledge Base": "Base de coneixement", @@ -941,15 +941,15 @@ "LDAP server updated": "Servidor LDAP actualitzat", "Leaderboard": "Tauler de classificació", "Learn More": "Aprendre'n més", - "Learn more about OpenAPI tool servers.": "Aprèn més sobre els servidors d'eines OpenAPI", - "Learn more about Voxtral transcription.": "", + "Learn more about OpenAPI tool servers.": "Aprèn més sobre els servidors d'eines OpenAPI.", + "Learn more about Voxtral transcription.": "Aprèn més sobre els transcripció amb Voxtral.", "Leave empty for no compression": "Deixar-ho buit per no comprimir", "Leave empty for unlimited": "Deixar-ho buit per il·limitat", "Leave empty to include all models from \"{{url}}\" endpoint": "Deixar-ho buit per incloure tots els models del punt de connexió \"{{url}}\"", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Deixar-ho buit per incloure tots els models del punt de connexió \"{{url}}/api/tags\"", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Deixar-ho buit per incloure tots els models del punt de connexió \"{{url}}/models\"", "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 model (voxtral-mini-latest).": "", + "Leave empty to use the default model (voxtral-mini-latest).": "Deixau-ho en blanc per utilitzar el model per defecte (voxtral-mini-latest).", "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.", "Legacy": "Llegat", @@ -963,7 +963,7 @@ "Loader": "Carregador", "Loading Kokoro.js...": "Carregant Kokoro.js", "Loading...": "Carregant...", - "local": "", + "local": "local", "Local": "Local", "Local Task Model": "Model local de tasques", "Location access not allowed": "Accés a la ubicació no permesa", @@ -1003,14 +1003,14 @@ "Memory updated successfully": "Memòria actualitzada correctament", "Merge Responses": "Fusionar les respostes", "Merged Response": "Resposta combinada", - "Message": "", + "Message": "Missatge", "Message rating should be enabled to use this feature": "La classificació dels missatges s'hauria d'activar per utilitzar aquesta funció", - "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Els missatges enviats després de crear el teu enllaç no es compartiran. Els usuaris amb l'URL podran veure el xat compartit.", + "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Els missatges enviats després de crear el teu enllaç no es compartiran. Els usuaris amb la URL podran veure el xat compartit.", "Microsoft OneDrive": "Microsoft OneDrive", "Microsoft OneDrive (personal)": "Microsoft OneDrive (personal)", "Microsoft OneDrive (work/school)": "Microsoft OneDrive (feina/escola)", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "És necessària la clau API de MinerU pel mode Cloud API", "Mistral OCR": "Mistral OCR", "Mistral OCR API Key required.": "És necessària la clau API de Mistral OCR", "MistralAI": "MistralAI", @@ -1066,7 +1066,7 @@ "New Note": "Nova nota", "New Password": "Nova contrasenya", "New Prompt": "Nova indicació", - "New Temporary Chat": "", + "New Temporary Chat": "Nou xat temporal", "New Tool": "Nova eina", "new-channel": "nou-canal", "Next message": "Missatge següent", @@ -1080,7 +1080,7 @@ "No content to speak": "No hi ha contingut per parlar", "No conversation to save": "No hi ha cap conversa a desar", "No distance available": "No hi ha distància disponible", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "No posar expiració pot suposar problemes de seguretat.", "No feedbacks found": "No s'han trobat comentaris", "No file selected": "No s'ha escollit cap fitxer", "No functions found": "No s'han trobat funcions", @@ -1133,16 +1133,16 @@ "Ollama Version": "Versió d'Ollama", "On": "Activat", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "Només està actiu quan l'opció \"Enganxa text gran com a fitxer\" està activada.", + "Only active when the chat input is in focus and an LLM is generating a response.": "Només s'activa quan l'entrada del xat està en focus i un LLM està generant una resposta.", + "Only active when the chat input is in focus.": "Només actiu quan l'entrada del xat està en focus.", "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 can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "Només es pot activar quan l'entrada del xat està en focus.", "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.", "Only markdown files are allowed": "Només es permeten arxius markdown", "Only select users and groups with permission can access": "Només hi poden accedir usuaris i grups seleccionats amb permís", - "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ui! Sembla que l'URL no és vàlida. Si us plau, revisa-la i torna-ho a provar.", + "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ui! Sembla que la URL no és vàlida. Si us plau, revisa-la i torna-ho a provar.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ui! Encara hi ha fitxers pujant-se. Si us plau, espera que finalitzi la càrrega.", "Oops! There was an error in the previous response.": "Ui! Hi ha hagut un error a la resposta anterior.", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Ui! Estàs utilitzant un mètode no suportat (només frontend). Si us plau, serveix la WebUI des del backend.", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "Obre el modal per configurar la connexió", "Open Modal To Manage Floating Quick Actions": "Obre el model per configurar les Accions ràpides flotants", "Open Modal To Manage Image Compression": "Obrir un modal per gestionar la compressió d'imatges", - "Open Settings": "", + "Open Settings": "Obrir les preferències", "Open Sidebar": "Obre la barra lateral", "Open User Profile Menu": "Obre el menú de perfil d'usuari", "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI pot utilitzar eines de servidors OpenAPI.", @@ -1161,11 +1161,11 @@ "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "La versió d'Open WebUI (v{{OPEN_WEBUI_VERSION}}) és inferior a la versió requerida (v{{REQUIRED_VERSION}})", "OpenAI": "OpenAI", "OpenAI API": "API d'OpenAI", - "OpenAI API Base URL": "", - "OpenAI API Key": "", + "OpenAI API Base URL": "URL base de l'API d'OpenAI", + "OpenAI API Key": "Clau API d'OpenAI", "OpenAI API Key is required.": "Es requereix la clau API d'OpenAI.", "OpenAI API settings updated": "Configuració de l'API d'OpenAI actualitzada", - "OpenAI API Version": "", + "OpenAI API Version": "Versió de l'API d'OpenAI", "OpenAI URL/Key required.": "URL/Clau d'OpenAI requerides.", "OpenAPI": "OpenAPI", "OpenAPI Spec": "Espeecificació OpenAPI", @@ -1243,7 +1243,7 @@ "Prefer not to say": "Prefereixo no dir-ho", "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.", - "Prevent File Creation": "", + "Prevent File Creation": "Prevenir la creació d'arxius", "Preview": "Previsualització", "Previous 30 days": "30 dies anteriors", "Previous 7 days": "7 dies anteriors", @@ -1287,7 +1287,7 @@ "Refused when it shouldn't have": "Refusat quan no hauria d'haver estat", "Regenerate": "Regenerar", "Regenerate Menu": "Regenerar el menú", - "Regenerate Response": "", + "Regenerate Response": "Tornar a generar la resposta", "Register Again": "Registrar de nou", "Register Client": "Registrar client", "Registered": "Registrat", @@ -1398,7 +1398,7 @@ "Select a model": "Seleccionar un model", "Select a model (optional)": "Seleccionar un model (opcional)", "Select a pipeline": "Seleccionar una Pipeline", - "Select a pipeline url": "Seleccionar l'URL d'una Pipeline", + "Select a pipeline url": "Seleccionar la URL d'una Pipeline", "Select a reranking model engine": "Seleccionar un motor de reranking de model", "Select a role": "Seleccionar un rol", "Select a theme": "Seleccionar un tema", @@ -1413,7 +1413,7 @@ "Select Engine": "Seleccionar el motor", "Select how to split message text for TTS requests": "Seleccionar com separar un missatge per a peticions TTS", "Select Knowledge": "Seleccionar coneixement", - "Select Method": "", + "Select Method": "Escollir el mètode", "Select only one model to call": "Seleccionar només un model per trucar", "Select view": "Seleccionar una vista", "Selected model(s) do not support image inputs": "El(s) model(s) seleccionats no admeten l'entrada d'imatges", @@ -1458,7 +1458,7 @@ "Show Formatting Toolbar": "Mostrar la barra de format", "Show image preview": "Mostrar la previsualització de la imatge", "Show Model": "Mostrar el model", - "Show Shortcuts": "", + "Show Shortcuts": "Mostrar les dreceres", "Show your support!": "Mostra el teu suport!", "Showcased creativity": "Creativitat mostrada", "Sign in": "Iniciar sessió", @@ -1487,14 +1487,14 @@ "Speech-to-Text": "Àudio-a-Text", "Speech-to-Text Engine": "Motor de veu a text", "standard": "estàndard", - "Start a new conversation": "", + "Start a new conversation": "Iniciar una nova conversa", "Start of the channel": "Inici del canal", "Start Tag": "Etiqueta d'inici", "Status Updates": "Estat de les actualitzacions", "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", + "Steps": "Passos", "Stop": "Atura", - "Stop Generating": "", + "Stop Generating": "Aturar la generació", "Stop Sequence": "Atura la seqüència", "Stream Chat Response": "Fer streaming de la resposta del xat", "Stream Delta Chunk Size": "Mida del fragment Delta del flux", @@ -1524,7 +1524,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.": "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ó.", - "Talk to Model": "", + "Talk to Model": "Parlar amb el model", "Tap to interrupt": "Prem per interrompre", "Task List": "Llista de tasques", "Task Model": "Model de tasques", @@ -1606,7 +1606,7 @@ "Toast notifications for new updates": "Notificacions Toast de noves actualitzacions", "Today": "Avui", "Today at {{LOCALIZED_TIME}}": "Avui a les {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "Alterna la barra lateral", "Toggle whether current connection is active.": "Alterna si la connexió actual està activa.", "Token": "Token", "Too verbose": "Massa explicit", @@ -1636,7 +1636,7 @@ "TTS Voice": "Veu TTS", "Type": "Tipus", "Type here...": "Escriu aquí...", - "Type Hugging Face Resolve (Download) URL": "Escriu l'URL de Resolució (Descàrrega) de Hugging Face", + "Type Hugging Face Resolve (Download) URL": "Escriu la URL de Resolució (Descàrrega) de Hugging Face", "Uh-oh! There was an issue with the response.": "Vaja! Hi ha hagut una incidència amb la resposta.", "UI": "UI", "Unarchive All": "Desarxivar tot", @@ -1675,8 +1675,8 @@ "URL Mode": "Mode URL", "Usage": "Ús", "Use '#' in the prompt input to load and include your knowledge.": "Utilitza '#' a l'entrada de la indicació per carregar i incloure els teus coneixements.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", - "Use Chat Completions API": "", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "Fes servir l'endpoint /v1/chat/completions en comptes de /v1/audio/transcriptions per a una precisió potencialment millor.", + "Use Chat Completions API": "Utilitza l'API de completació de xat", "Use groups to group your users and assign permissions.": "Utilitza grups per agrupar els usuaris i assignar permisos.", "Use LLM": "Utilizar model de llenguatge", "Use no proxy to fetch page contents.": "No utilitzis un proxy per obtenir contingut de la pàgina.", From 9a8646157e5874d3fd363ae209c4d84639e55ebf Mon Sep 17 00:00:00 2001 From: Aleix Dorca Date: Fri, 7 Nov 2025 06:44:28 +0100 Subject: [PATCH 002/243] Update catalan translation.json --- src/lib/i18n/locales/ca-ES/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index 7da0b2e4bb..4cd3f76c34 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -942,7 +942,7 @@ "Leaderboard": "Tauler de classificació", "Learn More": "Aprendre'n més", "Learn more about OpenAPI tool servers.": "Aprèn més sobre els servidors d'eines OpenAPI.", - "Learn more about Voxtral transcription.": "Aprèn més sobre els transcripció amb Voxtral.", + "Learn more about Voxtral transcription.": "Aprèn més sobre la transcripció amb Voxtral.", "Leave empty for no compression": "Deixar-ho buit per no comprimir", "Leave empty for unlimited": "Deixar-ho buit per il·limitat", "Leave empty to include all models from \"{{url}}\" endpoint": "Deixar-ho buit per incloure tots els models del punt de connexió \"{{url}}\"", From 1097838b351c54b458a75469b252aba825e0251e Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Fri, 7 Nov 2025 06:56:26 +0000 Subject: [PATCH 003/243] i18n: improve Chinese translation --- src/lib/i18n/locales/zh-CN/translation.json | 48 ++++++++++---------- src/lib/i18n/locales/zh-TW/translation.json | 50 ++++++++++----------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index a47dde0ef9..241411a760 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -26,7 +26,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\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "接受自动补全\n跳转提示词变量", "Access": "访问", "Access Control": "访问控制", "Accessible to all users": "对所有用户开放", @@ -51,7 +51,7 @@ "Add Content": "添加内容", "Add content here": "在此添加内容", "Add Custom Parameter": "增加自定义参数", - "Add Custom Prompt": "", + "Add Custom Prompt": "增加自定义提示词", "Add Details": "丰富细节", "Add Files": "添加文件", "Add Group": "添加权限组", @@ -151,7 +151,7 @@ "Ask": "提问", "Ask a question": "提问", "Assistant": "助手", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "引用知识库中的文件", "Attach Knowledge": "引用知识库", "Attach Notes": "引用笔记", "Attach Webpage": "引用网页", @@ -271,7 +271,7 @@ "Close Banner": "关闭横幅", "Close Configure Connection Modal": "关闭外部连接配置弹窗", "Close modal": "关闭弹窗", - "Close Modal": "", + "Close Modal": "关闭弹窗", "Close settings modal": "关闭设置弹窗", "Close Sidebar": "收起侧边栏", "cloud": "云服务", @@ -335,8 +335,8 @@ "Copied to clipboard": "已复制到剪贴板", "Copy": "复制", "Copy Formatted Text": "复制文本时包含特殊格式", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "复制最后一个代码块", + "Copy Last Response": "复制最后一个回答", "Copy link": "复制链接", "Copy Link": "复制链接", "Copy to clipboard": "复制到剪贴板", @@ -499,7 +499,7 @@ "Edit Default Permissions": "编辑默认权限", "Edit Folder": "编辑分组", "Edit Image": "图片编辑", - "Edit Last Message": "", + "Edit Last Message": "编辑最后一条消息", "Edit Memory": "编辑记忆", "Edit User": "编辑用户", "Edit User Group": "编辑用户组", @@ -588,7 +588,7 @@ "Enter Key Behavior": "Enter 键行为", "Enter language codes": "输入语言代码", "Enter MinerU API Key": "输入 MinerU 接口密钥", - "Enter Mistral API Base URL": "", + "Enter Mistral API Base URL": "输入 Mistral 接口地址", "Enter Mistral API Key": "输入 Mistral 接口密钥", "Enter Model ID": "输入模型 ID", "Enter model tag (e.g. {{modelTag}})": "输入模型标签(例如:{{modelTag}})", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "Firecrawl 接口地址", "Firecrawl API Key": "Firecrawl 接口密钥", "Floating Quick Actions": "快捷操作浮窗", - "Focus Chat Input": "", + "Focus Chat Input": "聚焦对话框", "Folder": "分组", "Folder Background Image": "分组背景图", "Folder deleted successfully": "分组删除成功", @@ -793,7 +793,7 @@ "Generate": "生成", "Generate an image": "生成图像", "Generate Image": "生成图像", - "Generate Message Pair": "", + "Generate Message Pair": "生成消息对", "Generated Image": "已生成图像", "Generating search query": "生成搜索查询", "Generating...": "生成中...", @@ -891,7 +891,7 @@ "Invalid file content": "文件内容无效", "Invalid file format.": "文件格式无效", "Invalid JSON file": "JSON 文件格式无效", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "ComfyUI 图片编辑工作流的 JSON 格式无效", "Invalid JSON format for ComfyUI Workflow.": "ComfyUI 工作流的 JSON 格式无效", "Invalid JSON format for Parameters": "额外参数的 JSON 格式无效", "Invalid JSON format in Additional Config": "额外配置项的 JSON 格式无效", @@ -1003,7 +1003,7 @@ "Memory updated successfully": "记忆更新成功", "Merge Responses": "合并回复", "Merged Response": "合并的回复", - "Message": "", + "Message": "消息", "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.": "创建链接后发送的消息将不会被分享。通过该链接访问的用户可以查看对话记录。", "Microsoft OneDrive": "Microsoft OneDrive", @@ -1066,7 +1066,7 @@ "New Note": "新笔记", "New Password": "新密码", "New Prompt": "创建提示词", - "New Temporary Chat": "", + "New Temporary Chat": "创建临时对话", "New Tool": "新工具", "new-channel": "新频道", "Next message": "下一条消息", @@ -1133,12 +1133,12 @@ "Ollama Version": "Ollama 版本", "On": "开启", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "仅在启用“粘贴超长文本为文件”选项时有效。", + "Only active when the chat input is in focus and an LLM is generating a response.": "仅在聚焦对话框且大语言模型正在生成回复时有效。", + "Only active when the chat input is in focus.": "仅在聚焦对话框时有效。", "Only alphanumeric characters and hyphens are allowed": "只允许使用英文字母,数字 (0-9) 以及连字符 (-)", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字 (0-9) 以及连字符 (-)。", - "Only can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "仅在聚焦对话框时有效。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能编辑文件集,创建一个新的知识库来编辑/添加文件。", "Only markdown files are allowed": "仅允许使用 markdown 文件", "Only select users and groups with permission can access": "只有具有权限的用户和组才能访问", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "打开外部连接配置弹窗", "Open Modal To Manage Floating Quick Actions": "管理快捷操作浮窗", "Open Modal To Manage Image Compression": "打开图片压缩配置窗口", - "Open Settings": "", + "Open Settings": "打开设置页面", "Open Sidebar": "展开侧边栏", "Open User Profile Menu": "打开个人资料菜单", "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI 可使用任何 OpenAPI 服务器提供的工具。", @@ -1243,7 +1243,7 @@ "Prefer not to say": "暂不透露", "Prefix ID": "模型 ID 前缀", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "在模型 ID 前添加前缀以避免与其它连接提供的模型冲突。留空则禁用此功能。", - "Prevent File Creation": "", + "Prevent File Creation": "阻止文件创建", "Preview": "预览", "Previous 30 days": "过去 30 天", "Previous 7 days": "过去 7 天", @@ -1287,7 +1287,7 @@ "Refused when it shouldn't have": "拒绝了我的要求", "Regenerate": "重新生成", "Regenerate Menu": "显示重新生成选项菜单", - "Regenerate Response": "", + "Regenerate Response": "重新生成回答", "Register Again": "重新注册", "Register Client": "注册客户端", "Registered": "已注册", @@ -1456,7 +1456,7 @@ "Show Formatting Toolbar": "显示文本格式工具栏", "Show image preview": "显示图像预览", "Show Model": "显示模型", - "Show Shortcuts": "", + "Show Shortcuts": "显示快捷键", "Show your support!": "表达您的支持!", "Showcased creativity": "很有创意", "Sign in": "登录", @@ -1492,7 +1492,7 @@ "STDOUT/STDERR": "标准输出/标准错误", "Steps": "迭代步数", "Stop": "停止", - "Stop Generating": "", + "Stop Generating": "停止生成", "Stop Sequence": "停止序列 (Stop Sequence)", "Stream Chat Response": "流式对话响应 (Stream Chat Response)", "Stream Delta Chunk Size": "流式增量输出的分块大小(Stream Delta Chunk Size)", @@ -1522,7 +1522,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.": "无尾采样用于减少输出中出现概率较小的 Token 的影响。较高的值(例如 2.0)将进一步减少影响,而值 1.0 则禁用此设置。", - "Talk to Model": "", + "Talk to Model": "与模型对话", "Tap to interrupt": "点击以中断", "Task List": "任务列表", "Task Model": "任务模型", @@ -1604,7 +1604,7 @@ "Toast notifications for new updates": "检测到新版本时显示更新通知", "Today": "今天", "Today at {{LOCALIZED_TIME}}": "今天 {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "展开或收起侧边栏", "Toggle whether current connection is active.": "切换当前连接的启用状态", "Token": "Token", "Too verbose": "过于冗长", diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index f96898c87e..b564b0ab28 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -26,7 +26,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\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "接受自動補全\n跳轉到提示詞變數", "Access": "存取", "Access Control": "存取控制", "Accessible to all users": "所有使用者皆可存取", @@ -51,7 +51,7 @@ "Add Content": "新增內容", "Add content here": "在此新增內容", "Add Custom Parameter": "新增自訂參數", - "Add Custom Prompt": "", + "Add Custom Prompt": "新增自訂提示詞", "Add Details": "豐富細節", "Add Files": "新增檔案", "Add Group": "新增群組", @@ -151,7 +151,7 @@ "Ask": "提問", "Ask a question": "提出問題", "Assistant": "助理", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "從知識庫附加檔案", "Attach Knowledge": "附加知識庫", "Attach Notes": "附加筆記", "Attach Webpage": "附加網頁", @@ -271,7 +271,7 @@ "Close Banner": "關閉橫幅", "Close Configure Connection Modal": "關閉外部連線設定彈出視窗", "Close modal": "關閉彈出視窗", - "Close Modal": "", + "Close Modal": "關閉彈出視窗", "Close settings modal": "關閉設定彈出視窗", "Close Sidebar": "收起側邊欄", "cloud": "雲端服務", @@ -335,8 +335,8 @@ "Copied to clipboard": "已複製到剪貼簿", "Copy": "複製", "Copy Formatted Text": "複製格式化文字", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "複製最後的程式碼區塊", + "Copy Last Response": "複製最後的回應", "Copy link": "複製連結", "Copy Link": "複製連結", "Copy to clipboard": "複製到剪貼簿", @@ -499,7 +499,7 @@ "Edit Default Permissions": "編輯預設權限", "Edit Folder": "編輯分組", "Edit Image": "編輯圖片", - "Edit Last Message": "", + "Edit Last Message": "編輯最後一則訊息", "Edit Memory": "編輯記憶", "Edit User": "編輯使用者", "Edit User Group": "編輯使用者群組", @@ -588,7 +588,7 @@ "Enter Key Behavior": "Enter 鍵行為", "Enter language codes": "輸入語言代碼", "Enter MinerU API Key": "輸入 MinerU API 金鑰", - "Enter Mistral API Base URL": "", + "Enter Mistral API Base URL": "輸入 Mistral API 基底 URL", "Enter Mistral API Key": "輸入 Mistral API 金鑰", "Enter Model ID": "輸入模型 ID", "Enter model tag (e.g. {{modelTag}})": "輸入模型標籤(例如:{{modelTag}})", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "Firecrawl API 基底 URL", "Firecrawl API Key": "Firecrawl API 金鑰", "Floating Quick Actions": "浮動快速操作", - "Focus Chat Input": "", + "Focus Chat Input": "聚焦對話輸入框", "Folder": "分組", "Folder Background Image": "分組背景圖", "Folder deleted successfully": "成功刪除分組", @@ -793,7 +793,7 @@ "Generate": "生成", "Generate an image": "生成圖片", "Generate Image": "生成圖片", - "Generate Message Pair": "", + "Generate Message Pair": "生成訊息對", "Generated Image": "生成圖片", "Generating search query": "正在生成搜尋查詢", "Generating...": "正在生成...", @@ -891,7 +891,7 @@ "Invalid file content": "檔案內容無效", "Invalid file format.": "檔案格式無效。", "Invalid JSON file": "JSON 檔案無效", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "ComfyUI 圖片編輯工作流程的 JSON 格式無效", "Invalid JSON format for ComfyUI Workflow.": "ComfyUI 工作流程的 JSON 格式無效", "Invalid JSON format for Parameters": "額外參數的 JSON 格式無效", "Invalid JSON format in Additional Config": "額外設定的 JSON 格式無效", @@ -1003,7 +1003,7 @@ "Memory updated successfully": "成功更新記憶", "Merge Responses": "合併回應", "Merged Response": "整合回應結果", - "Message": "", + "Message": "訊息", "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.": "建立連結後傳送的訊息不會被分享。擁有網址的使用者可檢視分享的對話內容。", "Microsoft OneDrive": "Microsoft OneDrive", @@ -1066,9 +1066,9 @@ "New Note": "新增筆記", "New Password": "新密碼", "New Prompt": "新增提示詞", - "New Temporary Chat": "", + "New Temporary Chat": "新增臨時對話", "New Tool": "新增工具", - "new-channel": "new-channel", + "new-channel": "新頻道", "Next message": "下一條訊息", "No authentication": "無身份驗證", "No chats found": "未找到對話記錄", @@ -1133,12 +1133,12 @@ "Ollama Version": "Ollama 版本", "On": "開啟", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "僅在啟用「將大型文字作為檔案貼上」設定時有效。", + "Only active when the chat input is in focus and an LLM is generating a response.": "僅在聚焦對話框且大型語言模型正在生成回應時有效。", + "Only active when the chat input is in focus.": "僅在聚焦對話框時有效。", "Only alphanumeric characters and hyphens are allowed": "只允許使用英文字母、數字和連字號", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字串中只允許使用英文字母、數字和連字號。", - "Only can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "僅在聚焦對話框時有效。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能編輯集合,請建立新的知識以編輯或新增檔案。", "Only markdown files are allowed": "僅允許 Markdown 檔案", "Only select users and groups with permission can access": "只有具有權限的選定使用者和群組可以存取", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "開啟外部連線設定彈出視窗", "Open Modal To Manage Floating Quick Actions": "開啟管理浮動快速操作的彈出視窗", "Open Modal To Manage Image Compression": "打開圖片壓縮設定視窗", - "Open Settings": "", + "Open Settings": "打開設定", "Open Sidebar": "展開側邊欄", "Open User Profile Menu": "開啟個人資料選單", "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI 可使用任何 OpenAPI 伺服器提供的工具。", @@ -1243,7 +1243,7 @@ "Prefer not to say": "不想透露", "Prefix ID": "前置 ID", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "前置 ID 用於透過為模型 ID 新增字首以避免與其他連線衝突 - 留空以停用", - "Prevent File Creation": "", + "Prevent File Creation": "阻止文件創建", "Preview": "預覽", "Previous 30 days": "過去 30 天", "Previous 7 days": "過去 7 天", @@ -1287,7 +1287,7 @@ "Refused when it shouldn't have": "不應拒絕時拒絕了", "Regenerate": "重新產生回應", "Regenerate Menu": "重新產生前顯示選單", - "Regenerate Response": "", + "Regenerate Response": "重新產生回應", "Register Again": "重新登錄", "Register Client": "登錄用戶端", "Registered": "已登錄", @@ -1456,7 +1456,7 @@ "Show Formatting Toolbar": "顯示文字格式工具列", "Show image preview": "顯示圖片預覽", "Show Model": "顯示模型", - "Show Shortcuts": "", + "Show Shortcuts": "顯示快捷鍵", "Show your support!": "表達您的支持!", "Showcased creativity": "展現創意", "Sign in": "登入", @@ -1492,7 +1492,7 @@ "STDOUT/STDERR": "STDOUT/STDERR", "Steps": "迭代步數", "Stop": "停止", - "Stop Generating": "", + "Stop Generating": "停止生成", "Stop Sequence": "停止序列", "Stream Chat Response": "串流式對話回應", "Stream Delta Chunk Size": "串流增量輸出的分塊大小(Stream Delta Chunk Size)", @@ -1522,7 +1522,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.": "尾部自由取樣用於減少輸出結果中較低機率 token 的影響。較高的值(例如:2.0)會減少更多影響,而值為 1.0 時會停用此設定。", - "Talk to Model": "", + "Talk to Model": "與模型對話", "Tap to interrupt": "點選以中斷", "Task List": "工作清單", "Task Model": "任務模型", @@ -1604,7 +1604,7 @@ "Toast notifications for new updates": "快顯通知新的更新", "Today": "今天", "Today at {{LOCALIZED_TIME}}": "今天 {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "切換側邊欄", "Toggle whether current connection is active.": "切換當前連接的啟用狀態", "Token": "Token", "Too verbose": "太過冗長", From 89c0e150c855cb01016a035cbdb2febfcb068236 Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Mon, 3 Nov 2025 09:45:28 +0000 Subject: [PATCH 004/243] feat: handle large stream chunks responses --- backend/open_webui/env.py | 13 ++++++ backend/open_webui/routers/openai.py | 3 +- backend/open_webui/utils/misc.py | 62 +++++++++++++++++++++++++++- 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 8f9c1fbc44..4839396b21 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -569,6 +569,19 @@ else: CHAT_RESPONSE_MAX_TOOL_CALL_RETRIES = 30 +CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = os.environ.get( + "CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE", "10485760" # 10MB +) + +if CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE == "": + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = 1024 * 1024 * 10 +else: + try: + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = int(CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE) + except Exception: + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = 1024 * 1024 * 10 + + #################################### # WEBSOCKET SUPPORT #################################### diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index 9f94d67ee4..d3ec158cd9 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -45,6 +45,7 @@ from open_webui.utils.payload import ( ) from open_webui.utils.misc import ( convert_logit_bias_input_to_json, + handle_large_stream_chunks, ) from open_webui.utils.auth import get_admin_user, get_verified_user @@ -952,7 +953,7 @@ async def generate_chat_completion( if "text/event-stream" in r.headers.get("Content-Type", ""): streaming = True return StreamingResponse( - r.content, + handle_large_stream_chunks(r.content), status_code=r.status, headers=dict(r.headers), background=BackgroundTask( diff --git a/backend/open_webui/utils/misc.py b/backend/open_webui/utils/misc.py index 9984e378fb..cd90b58839 100644 --- a/backend/open_webui/utils/misc.py +++ b/backend/open_webui/utils/misc.py @@ -8,10 +8,11 @@ from datetime import timedelta from pathlib import Path from typing import Callable, Optional import json +import aiohttp import collections.abc -from open_webui.env import SRC_LOG_LEVELS +from open_webui.env import SRC_LOG_LEVELS, CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["MAIN"]) @@ -539,3 +540,62 @@ def extract_urls(text: str) -> list[str]: r"(https?://[^\s]+)", re.IGNORECASE ) # Matches http and https URLs return url_pattern.findall(text) + + +async def handle_large_stream_chunks(stream: aiohttp.StreamReader, max_buffer_size: int = CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE): + """ + Handle stream response chunks, supporting large data chunks that exceed the original 16kb limit. + When a single line exceeds max_buffer_size, returns an empty JSON string {} and skips subsequent data + until encountering normally sized data. + + :param stream: The stream reader to handle. + :param max_buffer_size: The maximum buffer size in bytes. + :return: An async generator that yields the stream data. + """ + + buffer = b"" + skip_mode = False + + async for data, _ in stream.iter_chunks(): + if not data: + continue + + # In skip_mode, if buffer already exceeds the limit, clear it (it's part of an oversized line) + if skip_mode and len(buffer) > max_buffer_size: + buffer = b"" + + lines = (buffer + data).split(b"\n") + + # Process complete lines (except the last possibly incomplete fragment) + for i in range(len(lines) - 1): + line = lines[i] + + if skip_mode: + # Skip mode: check if current line is small enough to exit skip mode + if len(line) <= max_buffer_size: + skip_mode = False + yield line + else: + yield b"data: {}" + else: + # Normal mode: check if line exceeds limit + if len(line) > max_buffer_size: + skip_mode = True + yield b"data: {}" + log.info(f"Skip mode triggered, line size: {len(line)}") + else: + yield line + + # Save the last incomplete fragment + buffer = lines[-1] + + # Check if buffer exceeds limit + if not skip_mode and len(buffer) > max_buffer_size: + skip_mode = True + log.info(f"Skip mode triggered, buffer size: {len(buffer)}") + # Clear oversized buffer to prevent unlimited growth + buffer = b"" + + # Process remaining buffer data + if buffer and not skip_mode: + yield buffer From ce1079d358946cabeebbbc597606712b616c3a8d Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Thu, 6 Nov 2025 04:02:49 +0000 Subject: [PATCH 005/243] feat: Allow configuration of not process large single-line data --- backend/open_webui/utils/misc.py | 84 +++++++++++++++++--------------- 1 file changed, 45 insertions(+), 39 deletions(-) diff --git a/backend/open_webui/utils/misc.py b/backend/open_webui/utils/misc.py index cd90b58839..49465fb3ea 100644 --- a/backend/open_webui/utils/misc.py +++ b/backend/open_webui/utils/misc.py @@ -542,60 +542,66 @@ def extract_urls(text: str) -> list[str]: return url_pattern.findall(text) -async def handle_large_stream_chunks(stream: aiohttp.StreamReader, max_buffer_size: int = CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE): +def handle_large_stream_chunks(stream: aiohttp.StreamReader, max_buffer_size: int = CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE): """ Handle stream response chunks, supporting large data chunks that exceed the original 16kb limit. When a single line exceeds max_buffer_size, returns an empty JSON string {} and skips subsequent data until encountering normally sized data. :param stream: The stream reader to handle. - :param max_buffer_size: The maximum buffer size in bytes. + :param max_buffer_size: The maximum buffer size in bytes, -1 means not handle large chunks, default is 10MB. :return: An async generator that yields the stream data. """ - buffer = b"" - skip_mode = False + if max_buffer_size <= 0: + return stream - async for data, _ in stream.iter_chunks(): - if not data: - continue + async def handle_stream_chunks(): + buffer = b"" + skip_mode = False - # In skip_mode, if buffer already exceeds the limit, clear it (it's part of an oversized line) - if skip_mode and len(buffer) > max_buffer_size: - buffer = b"" + async for data, _ in stream.iter_chunks(): + if not data: + continue - lines = (buffer + data).split(b"\n") + # In skip_mode, if buffer already exceeds the limit, clear it (it's part of an oversized line) + if skip_mode and len(buffer) > max_buffer_size: + buffer = b"" - # Process complete lines (except the last possibly incomplete fragment) - for i in range(len(lines) - 1): - line = lines[i] + lines = (buffer + data).split(b"\n") - if skip_mode: - # Skip mode: check if current line is small enough to exit skip mode - if len(line) <= max_buffer_size: - skip_mode = False - yield line + # Process complete lines (except the last possibly incomplete fragment) + for i in range(len(lines) - 1): + line = lines[i] + + if skip_mode: + # Skip mode: check if current line is small enough to exit skip mode + if len(line) <= max_buffer_size: + skip_mode = False + yield line + else: + yield b"data: {}" else: - yield b"data: {}" - else: - # Normal mode: check if line exceeds limit - if len(line) > max_buffer_size: - skip_mode = True - yield b"data: {}" - log.info(f"Skip mode triggered, line size: {len(line)}") - else: - yield line + # Normal mode: check if line exceeds limit + if len(line) > max_buffer_size: + skip_mode = True + yield b"data: {}" + log.info(f"Skip mode triggered, line size: {len(line)}") + else: + yield line - # Save the last incomplete fragment - buffer = lines[-1] + # Save the last incomplete fragment + buffer = lines[-1] - # Check if buffer exceeds limit - if not skip_mode and len(buffer) > max_buffer_size: - skip_mode = True - log.info(f"Skip mode triggered, buffer size: {len(buffer)}") - # Clear oversized buffer to prevent unlimited growth - buffer = b"" + # Check if buffer exceeds limit + if not skip_mode and len(buffer) > max_buffer_size: + skip_mode = True + log.info(f"Skip mode triggered, buffer size: {len(buffer)}") + # Clear oversized buffer to prevent unlimited growth + buffer = b"" - # Process remaining buffer data - if buffer and not skip_mode: - yield buffer + # Process remaining buffer data + if buffer and not skip_mode: + yield buffer + + return handle_stream_chunks() From 3d437973619ab629c80d3337549e9e94527681c2 Mon Sep 17 00:00:00 2001 From: joaoback <156559121+joaoback@users.noreply.github.com> Date: Fri, 7 Nov 2025 08:27:37 -0300 Subject: [PATCH 006/243] Update translation.json (pt-BR) New translations have been made of the new items that were added in the latest version. --- src/lib/i18n/locales/pt-BR/translation.json | 86 ++++++++++----------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 862e435129..6637f6c536 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -26,7 +26,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\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "Aceitar geração de autocompletar\nIr para a variável de prompt", "Access": "Acesso", "Access Control": "Controle de Acesso", "Accessible to all users": "Acessível para todos os usuários", @@ -51,7 +51,7 @@ "Add Content": "Adicionar Conteúdo", "Add content here": "Adicionar conteúdo aqui", "Add Custom Parameter": "Adicionar parâmetro personalizado", - "Add Custom Prompt": "", + "Add Custom Prompt": "Adicionar prompt personalizado", "Add Details": "Adicionar detalhes", "Add Files": "Adicionar Arquivos", "Add Group": "Adicionar Grupo", @@ -151,7 +151,7 @@ "Ask": "Perguntar", "Ask a question": "Faça uma pergunta", "Assistant": "Assistente", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "Anexar arquivo da base de conhecimento", "Attach Knowledge": "Anexar Base de Conhecimento", "Attach Notes": "Anexar Notas", "Attach Webpage": "Anexar Página Web", @@ -221,7 +221,7 @@ "Channel": "Canal", "Channel deleted successfully": "Canal apagado com sucesso", "Channel Name": "Nome do canal", - "Channel name cannot be empty.": "", + "Channel name cannot be empty.": "O nome do canal não pode estar vazio.", "Channel updated successfully": "Canal atualizado com sucesso", "Channels": "Canais", "Character": "Caracter", @@ -271,13 +271,13 @@ "Close Banner": "Fechar Banner", "Close Configure Connection Modal": "Fechar a Modal de Configuração de Conexão", "Close modal": "Fechar modal", - "Close Modal": "", + "Close Modal": "Fechar Modal", "Close settings modal": "Fechar configurações modal", "Close Sidebar": "Fechar barra lateral", - "cloud": "", + "cloud": "cloud", "CMU ARCTIC speaker embedding name": "", "Code Block": "Bloco de código", - "Code Editor": "", + "Code Editor": "Editor de código", "Code execution": "Execução de código", "Code Execution": "Execução de código", "Code Execution Engine": "Mecanismo de execução de código", @@ -335,8 +335,8 @@ "Copied to clipboard": "Copiado para a área de transferência", "Copy": "Copiar", "Copy Formatted Text": "Copiar texto formatado", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "Copiar o último bloco de código", + "Copy Last Response": "Copiar última resposta", "Copy link": "Copiar link", "Copy Link": "Copiar Link", "Copy to clipboard": "Copiar para a área de transferência", @@ -351,7 +351,7 @@ "Create Channel": "Criar Canal", "Create Folder": "Criar Pasta", "Create Group": "Criar Grupo", - "Create Image": "", + "Create Image": "Criar imagem", "Create Knowledge": "Criar Base de Conhecimento", "Create Model": "Criar modelo", "Create new key": "Criar nova chave", @@ -498,12 +498,12 @@ "Edit Connection": "Editar Conexão", "Edit Default Permissions": "Editar Permissões Padrão", "Edit Folder": "Editar Pasta", - "Edit Image": "", - "Edit Last Message": "", + "Edit Image": "Editar imagem", + "Edit Last Message": "Editar última mensagem", "Edit Memory": "Editar Memória", "Edit User": "Editar Usuário", "Edit User Group": "Editar Grupo de Usuários", - "Edit workflow.json content": "", + "Edit workflow.json content": "Editar conteúdo do workflow.json", "edited": "editado", "Edited": "Editado", "Editing": "Editando", @@ -588,7 +588,7 @@ "Enter Key Behavior": "Comportamento da tecla Enter", "Enter language codes": "Digite os códigos de idioma", "Enter MinerU API Key": "Insira a chave da API MinerU", - "Enter Mistral API Base URL": "", + "Enter Mistral API Base URL": "Insira a URL base da API Mistral", "Enter Mistral API Key": "Insira a chave da API Mistral", "Enter Model ID": "Digite o ID do modelo", "Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})", @@ -711,7 +711,7 @@ "Failed to move chat": "Falha ao mover o chat", "Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência", "Failed to render diagram": "Falha ao renderizar o diagrama", - "Failed to render visualization": "", + "Failed to render visualization": "Falha ao renderizar a visualização", "Failed to save connections": "Falha ao salvar conexões", "Failed to save conversation": "Falha ao salvar a conversa", "Failed to save models configuration": "Falha ao salvar a configuração dos modelos", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "URL base da API do Firecrawl", "Firecrawl API Key": "Chave de API do Firecrawl", "Floating Quick Actions": "Ações rápidas flutuantes", - "Focus Chat Input": "", + "Focus Chat Input": "Foco na janela do Chat", "Folder": "Pasta", "Folder Background Image": "Imagem de fundo da pasta", "Folder deleted successfully": "Pasta excluída com sucesso", @@ -784,16 +784,16 @@ "Functions allow arbitrary code execution.": "Funções permitem a execução arbitrária de código.", "Functions imported successfully": "Funções importadas com sucesso", "Gemini": "", - "Gemini API Key": "", + "Gemini API Key": "Chave da API Gemini", "Gemini API Key is required.": "A chave da API Gemini é necessária.", - "Gemini Base URL": "", + "Gemini Base URL": "URL base do Gemini", "Gemini Endpoint Method": "", "Gender": "Gênero", "General": "Geral", "Generate": "Gerar", "Generate an image": "Gerar uma imagem", "Generate Image": "Gerar Imagem", - "Generate Message Pair": "", + "Generate Message Pair": "Gerar par de mensagens", "Generated Image": "Imagem gerada", "Generating search query": "Gerando consulta de pesquisa", "Generating...": "Gerando...", @@ -848,7 +848,7 @@ "Image Compression": "Compressão de imagem", "Image Compression Height": "Altura de compressão da imagem", "Image Compression Width": "Largura de compressão de imagem", - "Image Edit Engine": "", + "Image Edit Engine": "Motor de edição de imagens", "Image Generation": "Geração de Imagem", "Image Generation Engine": "Motor de Geração de Imagem", "Image Max Compression Size": "Tamanho máximo de compressão da imagem", @@ -856,7 +856,7 @@ "Image Max Compression Size width": "Tamanho máximo de compressão da imagem largura", "Image Prompt Generation": "Geração de prompt de imagem", "Image Prompt Generation Prompt": "Prompt de geração de prompt de imagem", - "Image Size": "", + "Image Size": "Tamanho da imagem", "Images": "Imagens", "Import": "Importar", "Import Chats": "Importar Chats", @@ -891,11 +891,11 @@ "Invalid file content": "Conteúdo de arquivo inválido", "Invalid file format.": "Formato de arquivo inválido.", "Invalid JSON file": "Arquivo JSON inválido", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "Formato JSON inválido para o fluxo de trabalho de edição do ComfyUI.", "Invalid JSON format for ComfyUI Workflow.": "Formato JSON inválido para o fluxo de trabalho do ComfyUI.", "Invalid JSON format for Parameters": "Formato JSON inválido para parâmetros", "Invalid JSON format in Additional Config": "Formato JSON inválido na configuração adicional", - "Invalid JSON format in MinerU Parameters": "", + "Invalid JSON format in MinerU Parameters": "Formato JSON inválido nos parâmetros do MinerU", "Invalid Tag": "Tag Inválida", "is typing...": "está digitando...", "Italic": "Itálico", @@ -917,7 +917,7 @@ "Key": "Chave", "Key is required": "Chave é obrigatória", "Keyboard shortcuts": "Atalhos de Teclado", - "Keyboard Shortcuts": "", + "Keyboard Shortcuts": "Atalhos de teclado", "Knowledge": "Conhecimento", "Knowledge Access": "Acesso ao Conhecimento", "Knowledge Base": "Base de Conhecimento", @@ -942,14 +942,14 @@ "Leaderboard": "Tabela de classificação", "Learn More": "Saiba Mais", "Learn more about OpenAPI tool servers.": "Saiba mais sobre servidores de ferramentas OpenAPI.", - "Learn more about Voxtral transcription.": "", + "Learn more about Voxtral transcription.": "Saiba mais sobre a transcrição do Voxtral.", "Leave empty for no compression": "Deixe em branco para nenhuma compactação", "Leave empty for unlimited": "Deixe vazio para ilimitado", "Leave empty to include all models from \"{{url}}\" endpoint": "Deixe em branco para incluir todos os modelos do ponto final \"{{url}}\"", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Deixe em branco para incluir todos os modelos do ponto final \"{{url}}/api/tags\"", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Deixe em branco para incluir todos os modelos do ponto final \"{{url}}/models\"", "Leave empty to include all models or select specific models": "Deixe vazio para incluir todos os modelos ou selecione modelos especificos", - "Leave empty to use the default model (voxtral-mini-latest).": "", + "Leave empty to use the default model (voxtral-mini-latest).": "Deixe em branco para usar o modelo padrão (voxtral-mini-latest).", "Leave empty to use the default prompt, or enter a custom prompt": "Deixe vazio para usar o prompt padrão, ou insira um prompt personalizado", "Leave model field empty to use the default model.": "Deixe o campo do modelo vazio para usar o modelo padrão.", "Legacy": "Legado", @@ -1003,7 +1003,7 @@ "Memory updated successfully": "Memória atualizada com sucesso", "Merge Responses": "Mesclar respostas", "Merged Response": "Resposta Mesclada", - "Message": "", + "Message": "Mensagem", "Message rating should be enabled to use this feature": "Mensagem de avaliação deve estar habilitada para usar esta função", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mensagens enviadas após criar seu link não serão compartilhadas. Usuários com o URL poderão visualizar o chat compartilhado.", "Microsoft OneDrive": "", @@ -1066,7 +1066,7 @@ "New Note": "Nota Nota", "New Password": "Nova Senha", "New Prompt": "Novo Prompt", - "New Temporary Chat": "", + "New Temporary Chat": "Novo chat temporário", "New Tool": "Nova Ferrameta", "new-channel": "novo-canal", "Next message": "Próxima mensagem", @@ -1133,12 +1133,12 @@ "Ollama Version": "Versão Ollama", "On": "Ligado", "OneDrive": "", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "Ativo somente quando a configuração \"Colar texto grande como arquivo\" estiver ativada.", + "Only active when the chat input is in focus and an LLM is generating a response.": "Ativo somente quando o campo de entrada do chat está em foco e um LLM está gerando uma resposta.", + "Only active when the chat input is in focus.": "Ativo somente quando o campo de entrada do chat estiver em foco.", "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 can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "Só pode ser acionado quando o campo de entrada do chat estiver em foco.", "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.", "Only markdown files are allowed": "Somente arquivos markdown são permitidos", "Only select users and groups with permission can access": "Somente usuários e grupos selecionados com permissão podem acessar.", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "Abra o modal para configurar a conexão", "Open Modal To Manage Floating Quick Actions": "Abra o Modal para gerenciar ações rápidas flutuantes", "Open Modal To Manage Image Compression": "Abrir o Modal para gerenciar a compressão de imagens", - "Open Settings": "", + "Open Settings": "Abrir configurações", "Open Sidebar": "Abrir barra lateral", "Open User Profile Menu": "Abrir menu de perfil do usuário", "Open WebUI can use tools provided by any OpenAPI server.": "O Open WebUI pode usar ferramentas fornecidas por qualquer servidor OpenAPI.", @@ -1243,7 +1243,7 @@ "Prefer not to say": "Prefiro não dizer", "Prefix ID": "Prefixo ID", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "O ID de prefixo é utilizado para evitar conflitos com outras conexões, adicionando um prefixo aos IDs dos modelos - deixe em branco para desativar.", - "Prevent File Creation": "", + "Prevent File Creation": "Impedir a criação de arquivos", "Preview": "Visualização", "Previous 30 days": "Últimos 30 dias", "Previous 7 days": "Últimos 7 dias", @@ -1287,7 +1287,7 @@ "Refused when it shouldn't have": "Recusado quando não deveria", "Regenerate": "Gerar novamente", "Regenerate Menu": "Regenerar Menu", - "Regenerate Response": "", + "Regenerate Response": "Refazer Resposta", "Register Again": "Registre-se novamente", "Register Client": "Registrar cliente", "Registered": "Registrado", @@ -1413,7 +1413,7 @@ "Select Engine": "Selecionar Motor", "Select how to split message text for TTS requests": "Selecione como dividir o texto da mensagem para solicitações TTS", "Select Knowledge": "Selecionar Conhecimento", - "Select Method": "", + "Select Method": "Selecione o método", "Select only one model to call": "Selecione apenas um modelo para chamar", "Select view": "Selecionar visualização", "Selected model(s) do not support image inputs": "Modelo(s) selecionado(s) não suportam entradas de imagem", @@ -1458,7 +1458,7 @@ "Show Formatting Toolbar": "Mostrar barra de ferramentas de formatação", "Show image preview": "Mostrar pré-visualização da imagem", "Show Model": "Mostrar modelo", - "Show Shortcuts": "", + "Show Shortcuts": "Mostrar Atalhos", "Show your support!": "Mostre seu apoio!", "Showcased creativity": "Criatividade exibida", "Sign in": "Entrar", @@ -1492,9 +1492,9 @@ "Start Tag": "Tag inicial", "Status Updates": "Atualizações de status", "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", + "Steps": "Passos", "Stop": "Parar", - "Stop Generating": "", + "Stop Generating": "Pare de gerar", "Stop Sequence": "Sequência de Parada", "Stream Chat Response": "Stream Resposta do Chat", "Stream Delta Chunk Size": "", @@ -1524,7 +1524,7 @@ "Tags Generation": "Geração de tags", "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.": "A amostragem livre de cauda é usada para reduzir o impacto de tokens menos prováveis na saída. Um valor mais alto (por exemplo, 2,0) reduzirá ainda mais o impacto, enquanto um valor de 1,0 desabilita essa configuração.", - "Talk to Model": "", + "Talk to Model": "Fale com o modelo", "Tap to interrupt": "Toque para interromper", "Task List": "Lista de tarefas", "Task Model": "Modelo de Tarefa", @@ -1606,7 +1606,7 @@ "Toast notifications for new updates": "Notificações de alerta para novas atualizações", "Today": "Hoje", "Today at {{LOCALIZED_TIME}}": "Hoje às {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "Alternar barra lateral", "Toggle whether current connection is active.": "Alterna se a conexão atual está ativa.", "Token": "", "Too verbose": "Muito detalhado", @@ -1675,7 +1675,7 @@ "URL Mode": "Modo URL", "Usage": "Uso", "Use '#' in the prompt input to load and include your knowledge.": "Usar '#' no prompt para carregar e incluir seus conhecimentos.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "Use o endpoint /v1/chat/completions em vez de /v1/audio/transcriptions para obter uma precisão potencialmente melhor.", "Use Chat Completions API": "", "Use groups to group your users and assign permissions.": "Use grupos para agrupar seus usuários e atribuir permissões.", "Use LLM": "Usar LLM", @@ -1746,7 +1746,7 @@ "Workspace Permissions": "Permissões do espaço de trabalho", "Write": "Escrever", "Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)", - "Write a summary in 50 words that summarizes {{topic}}.": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].", + "Write a summary in 50 words that summarizes {{topic}}.": "Escreva um resumo em 50 palavras que resuma [tópico].", "Write something...": "Escreva algo...", "Write your model system prompt content here\ne.g.) You are Mario from Super Mario Bros, acting as an assistant.": "Escreva aqui o conteúdo do system prompt do seu modelo\nex.: Você é o Mario do Super Mario Bros e atua como assistente.", "Yacy Instance URL": "", From 684324ae9eca79cb44dec54ec82ebb83135536b1 Mon Sep 17 00:00:00 2001 From: krishna-medapati Date: Fri, 7 Nov 2025 23:08:59 +0530 Subject: [PATCH 007/243] fix: Handle AttributeError in hybrid search with reranking (#17046) - Split attribute existence checks from document content checks - Added hasattr() check for metadatas attribute - Prevents AttributeError when collection_result is missing attributes - Maintains all original validation logic Fixes #17046 --- backend/open_webui/retrieval/utils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index da570330b3..bc89373174 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -160,10 +160,18 @@ def query_doc_with_hybrid_search( hybrid_bm25_weight: float, ) -> dict: try: + # First check if collection_result has the required attributes if ( not collection_result or not hasattr(collection_result, "documents") - or not collection_result.documents + or not hasattr(collection_result, "metadatas") + ): + log.warning(f"query_doc_with_hybrid_search:no_docs {collection_name}") + return {"documents": [], "metadatas": [], "distances": []} + + # Now safely check the documents content after confirming attributes exist + if ( + not collection_result.documents or len(collection_result.documents) == 0 or not collection_result.documents[0] ): From e72a7e4eca2c22ce838e6357161733de2ff08704 Mon Sep 17 00:00:00 2001 From: Adam Skalicky Date: Fri, 7 Nov 2025 18:11:58 -0800 Subject: [PATCH 008/243] perf Optimize Socket Emits Using User Rooms (#18996) * This PR optimizes socket delta event broadcasting by leveraging rooms. Instead of iterating through a user's sessions and emitting events individually, this change sends a single event to a user-specific room. This approach is more efficient, reducing overhead and improving performance, particularly for users with multiple concurrent sessions. In testing this dramatically reduces emits and server load. * Update main.py Added userroom join --------- Co-authored-by: Tim Baek --- backend/open_webui/socket/main.py | 36 ++++++++++--------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 818a57807f..60df810785 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -282,6 +282,7 @@ async def connect(sid, environ, auth): else: USER_POOL[user.id] = [sid] + await sio.enter_room(sid, f"user:{user.id}") @sio.on("user-join") async def user_join(sid, data): @@ -304,6 +305,7 @@ async def user_join(sid, data): else: USER_POOL[user.id] = [sid] + await sio.enter_room(sid, f"user:{user.id}") # Join all the channels channels = Channels.get_channels_by_user_id(user.id) log.debug(f"{channels=}") @@ -650,34 +652,18 @@ def get_event_emitter(request_info, update_db=True): async def __event_emitter__(event_data): user_id = request_info["user_id"] - session_ids = list( - set( - USER_POOL.get(user_id, []) - + ( - [request_info.get("session_id")] - if request_info.get("session_id") - else [] - ) - ) - ) - chat_id = request_info.get("chat_id", None) message_id = request_info.get("message_id", None) - emit_tasks = [ - sio.emit( - "events", - { - "chat_id": chat_id, - "message_id": message_id, - "data": event_data, - }, - to=session_id, - ) - for session_id in session_ids - ] - - await asyncio.gather(*emit_tasks) + await sio.emit( + "events", + { + "chat_id": chat_id, + "message_id": message_id, + "data": event_data, + }, + room=f"user:{user_id}", + ) if ( update_db and message_id From 2e5668e25c08dd63ee0f1bb7061c359a24b09e3c Mon Sep 17 00:00:00 2001 From: Kylapaallikko Date: Sat, 8 Nov 2025 13:44:52 +0200 Subject: [PATCH 009/243] Update fi-FI translation.json Improved and added missing translations. --- src/lib/i18n/locales/fi-FI/translation.json | 126 ++++++++++---------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json index cd0b6c617f..4c970e47a2 100644 --- a/src/lib/i18n/locales/fi-FI/translation.json +++ b/src/lib/i18n/locales/fi-FI/translation.json @@ -4,7 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(esim. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(esim. `sh webui.sh --api`)", "(latest)": "(uusin)", - "(leave blank for to use commercial endpoint)": "(Jätä tyhjäksi, jos haluat käyttää kaupallista päätepistettä)", + "(leave blank for to use commercial endpoint)": "(Jätä tyhjäksi, jos haluat käyttää kaupallista päätettä)", "[Last] dddd [at] h:mm A": "[Viimeisin] dddd h:mm A", "[Today at] h:mm A": "[Tänään] h:mm A", "[Yesterday at] h:mm A": "[Eilen] h:mm A", @@ -26,7 +26,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\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "Hyväksy automaattiset täydennykset\n Siirry kehoitteen muuttujaan", "Access": "Pääsy", "Access Control": "Käyttöoikeuksien hallinta", "Accessible to all users": "Käytettävissä kaikille käyttäjille", @@ -51,7 +51,7 @@ "Add Content": "Lisää sisältöä", "Add content here": "Lisää sisältöä tähän", "Add Custom Parameter": "Lisää mukautettu parametri", - "Add Custom Prompt": "", + "Add Custom Prompt": "Lisää mukautettu kehoite", "Add Details": "Lisää yksityiskohtia", "Add Files": "Lisää tiedostoja", "Add Group": "Lisää ryhmä", @@ -75,7 +75,7 @@ "Advanced Parameters": "Edistyneet parametrit", "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", "Advanced Params": "Edistyneet parametrit", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "Upotusmallin päivittämisen, tai vaihtamisen jälkeen sinun tulee indeksoida tietämys uudelleen ottaaksesi muutokset käyttöön. Voit tehdä tämän alla olevasta \"Indeksoi uudelleen\" napista.", "AI": "AI", "All": "Kaikki", "All chats have been unarchived.": "Kaikki keskustelut poistettu arkistosta.", @@ -130,7 +130,7 @@ "API Key created.": "API-avain luotu.", "API Key Endpoint Restrictions": "API-avaimen päätepiste rajoitukset", "API keys": "API-avaimet", - "API Mode": "", + "API Mode": "API-moodi", "API Version": "API-versio", "API Version is required": "API-versio vaaditaan", "Application DN": "Sovelluksen DN", @@ -151,7 +151,7 @@ "Ask": "Kysy", "Ask a question": "Kysy kysymys", "Assistant": "Avustaja", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "Liitä tiedosto tietämyksestä", "Attach Knowledge": "Liitä tietoa", "Attach Notes": "Liitä muistiinpanoja", "Attach Webpage": "Liitä verkkosivu", @@ -185,7 +185,7 @@ "Bad Response": "Huono vastaus", "Banners": "Bannerit", "Base Model (From)": "Perusmalli (alkaen)", - "Base Model List Cache speeds up access by fetching base models only at startup or on settings save—faster, but may not show recent base model changes.": "Perusmalliluettelon välimuisti nopeuttaa käyttöä hakemalla perusmallit vain käynnistyksen yhteydessä tai asetusten tallentamisen yhteydessä - nopeampaa, mutta ei välttämättä näytä viimeisimpiä perusmallin muutoksia.", + "Base Model List Cache speeds up access by fetching base models only at startup or on settings save—faster, but may not show recent base model changes.": "Malliluettelon välimuisti nopeuttaa käyttöä hakemalla mallit vain käynnistyksen yhteydessä, tai asetusten tallentamisen yhteydessä - nopeampaa, mutta ei välttämättä näytä viimeisimpiä malli muutoksia.", "Bearer": "Bearer", "before": "ennen", "Being lazy": "Oli laiska", @@ -197,7 +197,7 @@ "BM25 Weight": "BM25 paino", "Bocha Search API Key": "Bocha Search API -avain", "Bold": "Lihavointi", - "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Tiettyjen tokeneiden tehostaminen tai rankaiseminen rajoitetuista vastauksista. Poikkeaman arvot rajoitetaan välille -100 ja 100 (mukaan lukien). (Oletus: ei mitään)", "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "Docling OCR moottori ja kiele(t) tulee täyttää, tai jättää molemmat tyhjäksi.", "Brave Search API Key": "Brave Search API -avain", "Bullet List": "Luettelo", @@ -207,7 +207,7 @@ "By {{name}}": "Tekijä {{name}}", "Bypass Embedding and Retrieval": "Ohita upotus ja haku", "Bypass Web Loader": "Ohita verkkolataaja", - "Cache Base Model List": "Malli listan välimuisti", + "Cache Base Model List": "Malli luettelon välimuisti", "Calendar": "Kalenteri", "Call": "Puhelu", "Call feature is not supported when using Web STT engine": "Puhelutoimintoa ei tueta käytettäessä web-puheentunnistusmoottoria", @@ -221,7 +221,7 @@ "Channel": "Kanava", "Channel deleted successfully": "Kanavan poisto onnistui", "Channel Name": "Kanavan nimi", - "Channel name cannot be empty.": "", + "Channel name cannot be empty.": "Kanavan nimi ei voi olla tyhjä", "Channel updated successfully": "Kanavan päivitys onnistui", "Channels": "Kanavat", "Character": "Kirjain", @@ -271,13 +271,13 @@ "Close Banner": "Sulje banneri", "Close Configure Connection Modal": "Sulje yhteyksien modaali", "Close modal": "Sulje modaali", - "Close Modal": "", + "Close Modal": "Sulje modaali", "Close settings modal": "Sulje asetus modaali", "Close Sidebar": "Sulje sivupalkki", - "cloud": "", + "cloud": "pilvi", "CMU ARCTIC speaker embedding name": "CMU ARCTIC puhujan upotus nimi", - "Code Block": "Koodiblokki", - "Code Editor": "", + "Code Block": "Koodilohko", + "Code Editor": "Koodieditori", "Code execution": "Koodin suoritus", "Code Execution": "Koodin Suoritus", "Code Execution Engine": "Koodin suoritusmoottori", @@ -335,8 +335,8 @@ "Copied to clipboard": "Kopioitu leikepöydälle", "Copy": "Kopioi", "Copy Formatted Text": "Kopioi muotoiltu teksti", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "Kopioi viimeisin koodilohko", + "Copy Last Response": "Kopioi viimeisin vastaus", "Copy link": "Kopioi linkki", "Copy Link": "Kopioi linkki", "Copy to clipboard": "Kopioi leikepöydälle", @@ -345,13 +345,13 @@ "Create": "Luo", "Create a knowledge base": "Luo tietokanta", "Create a model": "Luo malli", - "Create a new note": "", + "Create a new note": "Luo uusi muistiinpano", "Create Account": "Luo tili", "Create Admin Account": "Luo ylläpitäjätili", "Create Channel": "Luo kanava", "Create Folder": "Luo kansio", "Create Group": "Luo ryhmä", - "Create Image": "", + "Create Image": "Luo kuva", "Create Knowledge": "Luo tietoa", "Create Model": "Luo malli", "Create new key": "Luo uusi avain", @@ -498,12 +498,12 @@ "Edit Connection": "Muokkaa yhteyttä", "Edit Default Permissions": "Muokkaa oletuskäyttöoikeuksia", "Edit Folder": "Muokkaa kansiota", - "Edit Image": "", - "Edit Last Message": "", + "Edit Image": "Kuvan muokkaus", + "Edit Last Message": "Muokkaa viimeisintä viestiä", "Edit Memory": "Muokkaa muistia", "Edit User": "Muokkaa käyttäjää", "Edit User Group": "Muokkaa käyttäjäryhmää", - "Edit workflow.json content": "", + "Edit workflow.json content": "Muokkaa workflow.json sisältöä", "edited": "muokattu", "Edited": "Muokattu", "Editing": "Muokataan", @@ -587,8 +587,8 @@ "Enter Kagi Search API Key": "Kirjoita Kagi Search API -avain", "Enter Key Behavior": "Enter näppäimen käyttäytyminen", "Enter language codes": "Kirjoita kielikoodit", - "Enter MinerU API Key": "", - "Enter Mistral API Base URL": "", + "Enter MinerU API Key": "Kirjoita MinerU API-avain", + "Enter Mistral API Base URL": "Kirjoita Mistral API verkko-osoite", "Enter Mistral API Key": "Kirjoita Mistral API-avain", "Enter Model ID": "Kirjoita mallitunnus", "Enter model tag (e.g. {{modelTag}})": "Kirjoita mallitagi (esim. {{modelTag}})", @@ -711,7 +711,7 @@ "Failed to move chat": "Keskustelun siirto epäonnistui", "Failed to read clipboard contents": "Leikepöydän sisällön lukeminen epäonnistui", "Failed to render diagram": "Diagrammin renderöinti epäonnistui", - "Failed to render visualization": "", + "Failed to render visualization": "Visualisoinnin renderöinti epäonnistui", "Failed to save connections": "Yhteyksien tallentaminen epäonnistui", "Failed to save conversation": "Keskustelun tallentaminen epäonnistui", "Failed to save models configuration": "Mallien määrityksen tallentaminen epäonnistui", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "Firecrawl API -verkko-osoite", "Firecrawl API Key": "Firecrawl API-avain", "Floating Quick Actions": "Kelluvat pikakomennot", - "Focus Chat Input": "", + "Focus Chat Input": "Kohdista keskustelu tekstikenttään", "Folder": "Kansio", "Folder Background Image": "Kansion taustakuva", "Folder deleted successfully": "Kansio poistettu onnistuneesti", @@ -784,16 +784,16 @@ "Functions allow arbitrary code execution.": "Toiminnot sallivat mielivaltaisen koodin suorittamisen.", "Functions imported successfully": "Toiminnot tuotu onnistuneesti", "Gemini": "Gemini", - "Gemini API Key": "", + "Gemini API Key": "Gemini API-avain", "Gemini API Key is required.": "Gemini API -avain on vaaditaan.", - "Gemini Base URL": "", - "Gemini Endpoint Method": "", + "Gemini Base URL": "Gemini verkko-osoite", + "Gemini Endpoint Method": "Gemini päätteen tapa", "Gender": "Sukupuoli", "General": "Yleinen", "Generate": "Luo", "Generate an image": "Luo kuva", "Generate Image": "Luo kuva", - "Generate Message Pair": "", + "Generate Message Pair": "Luo viesti pari", "Generated Image": "Luo kuva", "Generating search query": "Luodaan hakukyselyä", "Generating...": "Luodaan...", @@ -848,7 +848,7 @@ "Image Compression": "Kuvan pakkaus", "Image Compression Height": "Kuvan pakkauksen korkeus", "Image Compression Width": "Kuvan pakkauksen leveys", - "Image Edit Engine": "", + "Image Edit Engine": "Kuvan muokkaus moottori", "Image Generation": "Kuvagenerointi", "Image Generation Engine": "Kuvagenerointimoottori", "Image Max Compression Size": "Kuvan enimmäispakkauskoko", @@ -856,7 +856,7 @@ "Image Max Compression Size width": "Kuvan enimmäisleveys", "Image Prompt Generation": "Kuvan kehote generointi", "Image Prompt Generation Prompt": "Kuvan generoinnin kehote", - "Image Size": "", + "Image Size": "Kuvan koko", "Images": "Kuvat", "Import": "Tuo", "Import Chats": "Tuo keskustelut", @@ -876,7 +876,7 @@ "Info": "Tiedot", "Initials": "Nimikirjaimet", "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "Upota koko sisältö kontekstiin kattavaa käsittelyä varten. Tätä suositellaan monimutkaisille kyselyille.", - "Input": "Syöte", + "Input": "Tekstikenttä", "Input Key (e.g. text, unet_name, steps)": "Syötteen arvo (esim. text, unet_namme, steps)", "Input Variables": "Syötteen muuttujat", "Insert": "Lisää", @@ -891,11 +891,11 @@ "Invalid file content": "Virheellinen tiedostosisältö", "Invalid file format.": "Virheellinen tiedostomuoto.", "Invalid JSON file": "Virheellinen JSON tiedosto", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "Virheellinen JSON muotoilu ComfyUI Edit työnkululle", "Invalid JSON format for ComfyUI Workflow.": "Virhellinen JSON muotoilu ComfyUI työnkululle.", "Invalid JSON format for Parameters": "Virheellinen JSON muotoilu parametreille", "Invalid JSON format in Additional Config": "Virheellinen JSON muotoilu lisäasetuksissa", - "Invalid JSON format in MinerU Parameters": "", + "Invalid JSON format in MinerU Parameters": "Virheellinen Json muotoilu MinerU parametreissä", "Invalid Tag": "Virheellinen tagi", "is typing...": "Kirjoittaa...", "Italic": "Kursiivi", @@ -917,7 +917,7 @@ "Key": "Avain", "Key is required": "Avain vaaditaan", "Keyboard shortcuts": "Pikanäppäimet", - "Keyboard Shortcuts": "", + "Keyboard Shortcuts": "Pikanäppäimet", "Knowledge": "Tietämys", "Knowledge Access": "Tiedon käyttöoikeus", "Knowledge Base": "Tietokanta", @@ -942,14 +942,14 @@ "Leaderboard": "Tulosluettelo", "Learn More": "Lue lisää", "Learn more about OpenAPI tool servers.": "Lue lisää OpenAPI työkalu palvelimista.", - "Learn more about Voxtral transcription.": "", + "Learn more about Voxtral transcription.": "Lue lisää Voxtral transkriptio:sta", "Leave empty for no compression": "Jätä tyhjäksi, jos et halua pakkausta", "Leave empty for unlimited": "Rajaton tyhjänä", "Leave empty to include all models from \"{{url}}\" endpoint": "Jätä tyhjäksi sisällyttääksesi \"{{url}}\" päätepisteen mallit", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Jätä tyhjäksi sisällyttääksesi \"{{url}}/api/tags\" päätepisteen mallit", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Jätä tyhjäksi sisällyttääksesi \"{{url}}/models\" päätepisteen mallit", "Leave empty to include all models or select specific models": "Jätä tyhjäksi, jos haluat sisällyttää kaikki mallit tai valitse tietyt mallit", - "Leave empty to use the default model (voxtral-mini-latest).": "", + "Leave empty to use the default model (voxtral-mini-latest).": "Jätä tyhjäks käyttääksesi oletusmallia (voxtral-mini-latest)", "Leave empty to use the default prompt, or enter a custom prompt": "Jätä tyhjäksi käyttääksesi oletuskehotetta tai kirjoita mukautettu kehote", "Leave model field empty to use the default model.": "Jätä malli kenttä tyhjäksi käyttääksesi oletus mallia.", "Legacy": "Legacy", @@ -963,7 +963,7 @@ "Loader": "Lataaja", "Loading Kokoro.js...": "Ladataan Kokoro.js...", "Loading...": "Ladataan...", - "local": "", + "local": "paikallinen", "Local": "Paikallinen", "Local Task Model": "Paikallinen työmalli", "Location access not allowed": "Ei pääsyä sijaintitietoihin", @@ -1003,17 +1003,17 @@ "Memory updated successfully": "Muisti päivitetty onnistuneesti", "Merge Responses": "Yhdistä vastaukset", "Merged Response": "Yhdistetty vastaus", - "Message": "", + "Message": "Viesti", "Message rating should be enabled to use this feature": "Tämän toiminnon käyttämiseksi viestiarviointi on otettava käyttöön", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Linkin luomisen jälkeen lähettämäsi viestit eivät ole jaettuja. Käyttäjät, joilla on verkko-osoite, voivat tarkastella jaettua keskustelua.", "Microsoft OneDrive": "", "Microsoft OneDrive (personal)": "", "Microsoft OneDrive (work/school)": "", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "MinerU API-avain vaaditaan pilvi API:ssa", "Mistral OCR": "Mistral OCR", "Mistral OCR API Key required.": "Mistral OCR api-avain vaaditaan", - "MistralAI": "", + "MistralAI": "MistralAI", "Model": "Malli", "Model '{{modelName}}' has been successfully downloaded.": "Malli '{{modelName}}' ladattiin onnistuneesti.", "Model '{{modelTag}}' is already in queue for downloading.": "Malli '{{modelTag}}' on jo jonossa ladattavaksi.", @@ -1066,7 +1066,7 @@ "New Note": "Uusi muistiinpano", "New Password": "Uusi salasana", "New Prompt": "Uusi kehoite", - "New Temporary Chat": "", + "New Temporary Chat": "Uusi väliaikainen keskustelu", "New Tool": "Uusi työkalu", "new-channel": "uusi-kanava", "Next message": "Seuraava viesti", @@ -1080,7 +1080,7 @@ "No content to speak": "Ei puhuttavaa sisältöä", "No conversation to save": "Ei tallennettavaa keskustelua", "No distance available": "Etäisyyttä ei saatavilla", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "Vanhenemisen laittamatta jättäminen voi altistaa tietoturvariskeille.", "No feedbacks found": "Palautteita ei löytynyt", "No file selected": "Tiedostoa ei ole valittu", "No functions found": "Funktioita ei löytynyt", @@ -1133,12 +1133,12 @@ "Ollama Version": "Ollama-versio", "On": "Päällä", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "Aktiivinen vain, kun \"Liitä suuri teksti tiedostona\" -asetus on käytössä.", + "Only active when the chat input is in focus and an LLM is generating a response.": "Aktiivinen vain, kun tekstikenttä on kohdistettuna ja LLM luo vastausta.", + "Only active when the chat input is in focus.": "Aktiivinen vain, kun tekstikenttä on valittuna.", "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 can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "Voidaan laukaista vain, kun tekstikenttä on kohdistettuna.", "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.", "Only markdown files are allowed": "Vain markdown tiedostot ovat sallittuja", "Only select users and groups with permission can access": "Vain valitut käyttäjät ja ryhmät, joilla on käyttöoikeus, pääsevät käyttämään", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "Avaa modaali yhteyden määrittämiseksi", "Open Modal To Manage Floating Quick Actions": "Avaa modaali kelluvien pikatoimintojen hallitsemiseksi", "Open Modal To Manage Image Compression": "Avaa kuvien pakkaus hallinta modaali", - "Open Settings": "", + "Open Settings": "Avaa asetukset", "Open Sidebar": "Avaa sivupalkki", "Open User Profile Menu": "Avaa käyttäjäprofiili ikkuna", "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI voi käyttää minkä tahansa OpenAPI-palvelimen tarjoamia työkaluja.", @@ -1161,11 +1161,11 @@ "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Open WebUI -versio (v{{OPEN_WEBUI_VERSION}}) on alempi kuin vaadittu versio (v{{REQUIRED_VERSION}})", "OpenAI": "OpenAI", "OpenAI API": "OpenAI API", - "OpenAI API Base URL": "", - "OpenAI API Key": "", + "OpenAI API Base URL": "OpenAI API verkko-osoite", + "OpenAI API Key": "OpenAI API-avain", "OpenAI API Key is required.": "OpenAI API -avain vaaditaan.", "OpenAI API settings updated": "OpenAI API -asetukset päivitetty", - "OpenAI API Version": "", + "OpenAI API Version": "OpenAI API versio", "OpenAI URL/Key required.": "OpenAI URL/avain vaaditaan.", "OpenAPI": "OpenAPI", "OpenAPI Spec": "OpenAPI Spec", @@ -1283,11 +1283,11 @@ "Redirecting you to Open WebUI Community": "Ohjataan sinut OpenWebUI-yhteisöön", "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.": "Vähentää hölynpölyn tuottamisen todennäköisyyttä. Korkeampi arvo (esim. 100) antaa monipuolisempia vastauksia, kun taas matalampi arvo (esim. 10) on varovaisempi.", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Viittaa itseen \"Käyttäjänä\" (esim. \"Käyttäjä opiskelee espanjaa\")", - "Reference Chats": "Viitekeskustelut", + "Reference Chats": "Liitä keskustelu", "Refused when it shouldn't have": "Kieltäytyi, vaikka ei olisi pitänyt", "Regenerate": "Regeneroi", "Regenerate Menu": "Regenerointi ikkuna", - "Regenerate Response": "", + "Regenerate Response": "Regeneroi vastaus", "Register Again": "Rekisteröi uudelleen", "Register Client": "Rekiströi asiakasohjelma", "Registered": "Rekisteröity", @@ -1334,7 +1334,7 @@ "Retrieved {{count}} sources_one": "Noudettu {{count}} sources_one", "Retrieved {{count}} sources_other": "Noudettu {{count}} sources_other", "Retrieved 1 source": "1 lähde noudettu", - "Rich Text Input for Chat": "Rikasteksti-syöte chattiin", + "Rich Text Input for Chat": "Rikasteksti-kenttä chattiin", "RK": "RK", "Role": "Rooli", "Rosé Pine": "Rosépuu", @@ -1457,7 +1457,7 @@ "Show Formatting Toolbar": "Näytä muotoilupalkki", "Show image preview": "Näytä kuvan esikatselu", "Show Model": "Näytä malli", - "Show Shortcuts": "", + "Show Shortcuts": "Näytä pikakomennot", "Show your support!": "Osoita tukesi!", "Showcased creativity": "Osoitti luovuutta", "Sign in": "Kirjaudu sisään", @@ -1486,14 +1486,14 @@ "Speech-to-Text": "Puheentunnistus", "Speech-to-Text Engine": "Puheentunnistusmoottori", "standard": "perus", - "Start a new conversation": "", + "Start a new conversation": "Aloita uusi keskustelu", "Start of the channel": "Kanavan alku", "Start Tag": "Aloitus tagi", "Status Updates": "Tila päivitykset", "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", + "Steps": "Askeleet", "Stop": "Pysäytä", - "Stop Generating": "", + "Stop Generating": "Lopeta generointi", "Stop Sequence": "Lopetussekvenssi", "Stream Chat Response": "Streamaa keskusteluvastaus", "Stream Delta Chunk Size": "Striimin delta-lohkon koko", @@ -1523,7 +1523,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.": "", - "Talk to Model": "", + "Talk to Model": "Puhu mallille", "Tap to interrupt": "Napauta keskeyttääksesi", "Task List": "Tehtävälista", "Task Model": "Työmalli", @@ -1605,7 +1605,7 @@ "Toast notifications for new updates": "Ilmoituspopuppien näyttäminen uusista päivityksistä", "Today": "Tänään", "Today at {{LOCALIZED_TIME}}": "Tänään {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "Näytä/piilota sivupalkki", "Toggle whether current connection is active.": "Vaihda, onko nykyinen yhteys aktiivinen", "Token": "Token", "Too verbose": "Liian puhelias", @@ -1674,8 +1674,8 @@ "URL Mode": "URL-tila", "Usage": "Käyttö", "Use '#' in the prompt input to load and include your knowledge.": "Käytä '#' -merkkiä kehotekenttään ladataksesi ja sisällyttääksesi tietämystäsi.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", - "Use Chat Completions API": "", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "Käytä /v1/chat/completions-päätteitä/v1/audio/transcriptions-pääteen sijaan mahdollisesti paremman tarkkuuden saavuttamiseksi.", + "Use Chat Completions API": "Käytä Chat Completions API:a", "Use groups to group your users and assign permissions.": "Käytä ryhmiä jäsentääksesi käyttäjiä ja antaaksesi käyttöoikeuksia.", "Use LLM": "Käytä LLM:ää", "Use no proxy to fetch page contents.": "Älä käytä välityspalvelinta sivun tietoja haettaessa.", From bebba7424e68ecd6ed8db8b59290fc8f9a3f4e05 Mon Sep 17 00:00:00 2001 From: _00_ <131402327+rgaricano@users.noreply.github.com> Date: Sat, 8 Nov 2025 13:52:29 +0100 Subject: [PATCH 010/243] Upd: i18n_ es-ES Spanish Translation v0.6.36 ### UPD Spanish Translation v0.6.35 Added new strings --- src/lib/i18n/locales/es-ES/translation.json | 100 ++++++++++---------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json index 192e10e1d4..768844d858 100644 --- a/src/lib/i18n/locales/es-ES/translation.json +++ b/src/lib/i18n/locales/es-ES/translation.json @@ -26,7 +26,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "El modelo de tareas realiza tareas como la generación de títulos para chats y consultas de búsqueda web", "a user": "un usuario", "About": "Acerca de", - "Accept Autocomplete Generation\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "Aceptar Generar Autocompletado\nIr a la Configuración de este Indicador", "Access": "Acceso", "Access Control": "Control de Acceso", "Accessible to all users": "Accesible para todos los usuarios", @@ -50,8 +50,8 @@ "Add Connection": "Añadir Conexión", "Add Content": "Añadir Contenido", "Add content here": "Añadir contenido aquí", - "Add Custom Parameter": "Añadir parámetro personalizado", - "Add Custom Prompt": "", + "Add Custom Parameter": "Añadir Parámetro Personalizado", + "Add Custom Prompt": "Añadir Indicador Personalizado", "Add Details": "Añadir Detalles", "Add Files": "Añadir Archivos", "Add Group": "Añadir Grupo", @@ -151,7 +151,7 @@ "Ask": "Preguntar", "Ask a question": "Haz una pregunta", "Assistant": "Asistente", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "Adjuntar Archivo desde Conocimiento", "Attach Knowledge": "Adjuntar Conocimiento", "Attach Notes": "Adjuntar Notas", "Attach Webpage": "Adjuntar Página Web", @@ -221,7 +221,7 @@ "Channel": "Canal", "Channel deleted successfully": "Canal borrado correctamente", "Channel Name": "Nombre del Canal", - "Channel name cannot be empty.": "", + "Channel name cannot be empty.": "El nombre del Canal no puede estar vacío", "Channel updated successfully": "Canal actualizado correctamente", "Channels": "Canal", "Character": "Carácter", @@ -271,13 +271,13 @@ "Close Banner": "Cerrar Banner", "Close Configure Connection Modal": "Cerrar modal Configurar la Conexión", "Close modal": "Cerrar modal", - "Close Modal": "", + "Close Modal": "Cerrar Modal", "Close settings modal": "Cerrar modal configuraciones", "Close Sidebar": "Cerrar Barra Lateral", - "cloud": "", + "cloud": "nube", "CMU ARCTIC speaker embedding name": "Nombre de incrustación CMU ARCTIC del interlocutor", "Code Block": "Bloque de Código", - "Code Editor": "", + "Code Editor": "Editor de Código", "Code execution": "Ejecución de Código", "Code Execution": "Ejecución de Código", "Code Execution Engine": "Motor de Ejecución de Código", @@ -335,8 +335,8 @@ "Copied to clipboard": "Copiado al portapapeles", "Copy": "Copiar", "Copy Formatted Text": "Copiar Texto Formateado", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "Copiar el último Bloque de Código", + "Copy Last Response": "Copiar la última Respuesta", "Copy link": "Copiar Enlace", "Copy Link": "Copiar enlace", "Copy to clipboard": "Copia a portapapeles", @@ -351,7 +351,7 @@ "Create Channel": "Crear Canal", "Create Folder": "Crear Carpeta", "Create Group": "Crear Grupo", - "Create Image": "", + "Create Image": "Crear Imagen", "Create Knowledge": "Crear Conocimiento", "Create Model": "Crear Modelo", "Create new key": "Crear Nueva Clave", @@ -498,12 +498,12 @@ "Edit Connection": "Editar Conexión", "Edit Default Permissions": "Editar Permisos Predeterminados", "Edit Folder": "Editar Carpeta", - "Edit Image": "", - "Edit Last Message": "", + "Edit Image": "Editar Imagen", + "Edit Last Message": "Editar Último Mensaje", "Edit Memory": "Editar Memoria", "Edit User": "Editar Usuario", "Edit User Group": "Editar Grupo de Usuarios", - "Edit workflow.json content": "", + "Edit workflow.json content": "Editar el contenido de workflow.json", "edited": "editado", "Edited": "Editado", "Editing": "Editando", @@ -588,7 +588,7 @@ "Enter Key Behavior": "Comportamiento de la Tecla de Envío", "Enter language codes": "Ingresar Códigos de Idioma", "Enter MinerU API Key": "Ingresar Clave API de MinerU", - "Enter Mistral API Base URL": "", + "Enter Mistral API Base URL": "Ingresar la URL Base de la API de Mistral", "Enter Mistral API Key": "Ingresar Clave API de Mistral", "Enter Model ID": "Ingresar ID del Modelo", "Enter model tag (e.g. {{modelTag}})": "Ingresar la etiqueta del modelo (p.ej. {{modelTag}})", @@ -711,7 +711,7 @@ "Failed to move chat": "Fallo al mover el chat", "Failed to read clipboard contents": "Fallo al leer el contenido del portapapeles", "Failed to render diagram": "Fallo al renderizar el diagrama", - "Failed to render visualization": "", + "Failed to render visualization": "Fallo al renderizar la visualización", "Failed to save connections": "Fallo al guardar las conexiones", "Failed to save conversation": "Fallo al guardar la conversación", "Failed to save models configuration": "Fallo al guardar la configuración de los modelos", @@ -744,7 +744,7 @@ "Firecrawl API Base URL": "URL Base de API de Firecrawl", "Firecrawl API Key": "Clave de API de Firecrawl", "Floating Quick Actions": "Acciones Rápidas Flotantes", - "Focus Chat Input": "", + "Focus Chat Input": "Enfocar a la Entrada del Chat", "Folder": "Carpeta", "Folder Background Image": "Imagen de Fondo de la Carpeta", "Folder deleted successfully": "Carpeta eliminada correctamente", @@ -784,16 +784,16 @@ "Functions allow arbitrary code execution.": "Las Funciones habilitan la ejecución de código arbitrario.", "Functions imported successfully": "Funciones importadas correctamente", "Gemini": "Gemini", - "Gemini API Key": "", + "Gemini API Key": "Clave API de Gemini", "Gemini API Key is required.": "Se requiere Clave API de Gemini.", - "Gemini Base URL": "", - "Gemini Endpoint Method": "", + "Gemini Base URL": "URL Base de Gemini", + "Gemini Endpoint Method": "Método del Endpoint de Gemini", "Gender": "Género", "General": "General", "Generate": "Generar", "Generate an image": "Generar una imagen", "Generate Image": "Generar imagen", - "Generate Message Pair": "", + "Generate Message Pair": "Generar Par de Mensajes", "Generated Image": "Imagen Generada", "Generating search query": "Generando consulta de búsqueda", "Generating...": "Generando", @@ -848,7 +848,7 @@ "Image Compression": "Compresión de Imagen", "Image Compression Height": "Alto en Compresión de Imagen", "Image Compression Width": "Ancho en Compresión de Imagen", - "Image Edit Engine": "", + "Image Edit Engine": "Motor del Editor de Imágenes", "Image Generation": "Generación de Imagen", "Image Generation Engine": "Motor de Generación de Imagen", "Image Max Compression Size": "Tamaño Máximo en Compresión de Imagen", @@ -856,7 +856,7 @@ "Image Max Compression Size width": "Anchura con Tamaño Máximo de Compresión de Imagen", "Image Prompt Generation": "Indicador para Generación de Imagen", "Image Prompt Generation Prompt": "Indicador para la Generación del Indicador de Imagen", - "Image Size": "", + "Image Size": "Tamaño de la Imagen", "Images": "Imágenes", "Import": "Importar", "Import Chats": "Importar Chats", @@ -891,11 +891,11 @@ "Invalid file content": "Contenido de archivo inválido", "Invalid file format.": "Formato de archivo inválido.", "Invalid JSON file": "Archivo JSON inválido", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "Formato JSON Inválido para Editar el Flujo de Trabajo de ComfyUI", "Invalid JSON format for ComfyUI Workflow.": "Formato JSON Inválido para el Flujo de Trabajo de ComfyUI", "Invalid JSON format for Parameters": "Formato JSON Inválido para los Parámetros", "Invalid JSON format in Additional Config": "Formato JSON Inválido en Configuración Adicional", - "Invalid JSON format in MinerU Parameters": "", + "Invalid JSON format in MinerU Parameters": "Formato JSON Inválido en los Parámetros de MinerU", "Invalid Tag": "Etiqueta Inválida", "is typing...": "está escribiendo...", "Italic": "Cursiva", @@ -917,7 +917,7 @@ "Key": "Clave", "Key is required": "La Clave es requerida", "Keyboard shortcuts": "Atajos de teclado", - "Keyboard Shortcuts": "", + "Keyboard Shortcuts": "Atajos de Teclado", "Knowledge": "Conocimiento", "Knowledge Access": "Acceso a Conocimiento", "Knowledge Base": "Base de Conocimiento", @@ -942,14 +942,14 @@ "Leaderboard": "Tabla Clasificatoria", "Learn More": "Saber Más", "Learn more about OpenAPI tool servers.": "Saber más sobre los servidores de herramientas OpenAPI", - "Learn more about Voxtral transcription.": "", + "Learn more about Voxtral transcription.": "Saber más sobre la transcripción con Voxtral", "Leave empty for no compression": "Lejar vacío para no compresión", "Leave empty for unlimited": "Dejar vacío para ilimitado", "Leave empty to include all models from \"{{url}}\" endpoint": "Dejar vacío para incluir todos los modelos desde el endpoint \"{{url}}\"", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Dejar vacío para incluir todos los modelos desde el endpoint \"{{url}}/api/tags\"", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Dejar vacío para incluir todos los modelos desde el endpoint \"{{url}}/models\"", "Leave empty to include all models or select specific models": "Dejar vacío para incluir todos los modelos o Seleccionar modelos específicos", - "Leave empty to use the default model (voxtral-mini-latest).": "", + "Leave empty to use the default model (voxtral-mini-latest).": "Dejar vacío para usar el modo predeterminado (voxtral-mini-latest).", "Leave empty to use the default prompt, or enter a custom prompt": "Dejar vacío para usar el indicador predeterminado, o Ingresar un indicador personalizado", "Leave model field empty to use the default model.": "Dejar vacío el campo modelo para usar el modelo predeterminado.", "Legacy": "Heredado", @@ -963,7 +963,7 @@ "Loader": "Cargador", "Loading Kokoro.js...": "Cargando Kokoro.js...", "Loading...": "Cargando...", - "local": "", + "local": "local", "Local": "Local", "Local Task Model": "Modelo Local para Tarea", "Location access not allowed": "Sin acceso a la Ubicación", @@ -1003,7 +1003,7 @@ "Memory updated successfully": "Memoria actualizada correctamente", "Merge Responses": "Fusionar Respuestas", "Merged Response": "Respuesta combinada", - "Message": "", + "Message": "Mensaje", "Message rating should be enabled to use this feature": "Para usar esta función debe estar habilitada la calificación de mensajes", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Los mensajes que envíe después de la creación del enlace no se compartirán. Los usuarios con la URL del enlace podrán ver el chat compartido.", "Microsoft OneDrive": "Microsoft OneDrive", @@ -1013,7 +1013,7 @@ "MinerU API Key required for Cloud API mode.": "La clave API de MinerU es necesaria para el modo Cloud API", "Mistral OCR": "OCR Mistral", "Mistral OCR API Key required.": "Clave API de Mistral OCR requerida", - "MistralAI": "", + "MistralAI": "MistralAI", "Model": "Modelo", "Model '{{modelName}}' has been successfully downloaded.": "Modelo '{{modelName}}' se ha descargado correctamente.", "Model '{{modelTag}}' is already in queue for downloading.": "Modelo '{{modelTag}}' ya está en cola para descargar.", @@ -1066,7 +1066,7 @@ "New Note": "Nueva Nota", "New Password": "Nueva Contraseña", "New Prompt": "Nuevo Indicador", - "New Temporary Chat": "", + "New Temporary Chat": "Nuevo Chat Temporal", "New Tool": "Nueva Herramienta", "new-channel": "nuevo-canal", "Next message": "Siguiente mensaje", @@ -1133,12 +1133,12 @@ "Ollama Version": "Versión de Ollama", "On": "Activado", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "Solo activo cuando \"Pegar el Texto Largo como Archivo\" está activado", + "Only active when the chat input is in focus and an LLM is generating a response.": "Solo activo con el foco en la entrada del chat y se está generando una respuesta", + "Only active when the chat input is in focus.": "Solo activo con el foco en la entrada del chat", "Only alphanumeric characters and hyphens are allowed": "Sólo están permitidos caracteres alfanuméricos y guiones", "Only alphanumeric characters and hyphens are allowed in the command string.": "Sólo están permitidos en la cadena de comandos caracteres alfanuméricos y guiones.", - "Only can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "Solo se puede activar cuando el foco está en la entrada del chat.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Solo se pueden editar las colecciones, para añadir/editar documentos hay que crear una nueva base de conocimientos", "Only markdown files are allowed": "Solo están permitidos archivos markdown", "Only select users and groups with permission can access": "Solo pueden acceder los usuarios y grupos con permiso", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "Abrir modal para configurar la conexión", "Open Modal To Manage Floating Quick Actions": "Abrir Modal para Gestionar Acciones Rápidas Flotantes", "Open Modal To Manage Image Compression": "Abrir Modal para Gestionar Compresión de Imagen", - "Open Settings": "", + "Open Settings": "Abrir Configuración", "Open Sidebar": "Abrir Barra Lateral", "Open User Profile Menu": "Abrir Menu de Perfiles de Usuario", "Open WebUI can use tools provided by any OpenAPI server.": "Open-WebUI puede usar herramientas proporcionadas por cualquier servidor OpenAPI", @@ -1161,11 +1161,11 @@ "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "La versión de Open-WebUI (v{{OPEN_WEBUI_VERSION}}) es inferior a la versión (v{{REQUIRED_VERSION}}) requerida", "OpenAI": "OpenAI", "OpenAI API": "API OpenAI", - "OpenAI API Base URL": "", - "OpenAI API Key": "", + "OpenAI API Base URL": "URL Base de la API de OpenAI", + "OpenAI API Key": "Clave API de OpenAI", "OpenAI API Key is required.": "Clave API de OpenAI requerida.", "OpenAI API settings updated": "Ajustes de API OpenAI actualizados", - "OpenAI API Version": "", + "OpenAI API Version": "Versión de la API de OpenAI", "OpenAI URL/Key required.": "URL/Clave de OpenAI requerida.", "OpenAPI": "OpenAPI", "OpenAPI Spec": "Especif. OpenAPI", @@ -1243,7 +1243,7 @@ "Prefer not to say": "Prefiero no decirlo", "Prefix ID": "prefijo ID", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "El prefijo ID se utiliza para evitar conflictos con otras conexiones al añadir un prefijo a los IDs de modelo, dejar vacío para deshabilitarlo", - "Prevent File Creation": "", + "Prevent File Creation": "Prevenir la Creación de Ficheros", "Preview": "Previsualización", "Previous 30 days": "30 días previos", "Previous 7 days": "7 días previos", @@ -1287,7 +1287,7 @@ "Refused when it shouldn't have": "Rechazado cuando no debería haberlo hecho", "Regenerate": "Regenerar", "Regenerate Menu": "Regenerar Menú", - "Regenerate Response": "", + "Regenerate Response": "Regenerar Respuesta", "Register Again": "Volver a Registrar", "Register Client": "Registrar Cliente", "Registered": "Registrado", @@ -1413,7 +1413,7 @@ "Select Engine": "Seleccionar Motor", "Select how to split message text for TTS requests": "Seleccionar como dividir los mensajes de texto para las peticiones TTS", "Select Knowledge": "Seleccionar Conocimiento", - "Select Method": "", + "Select Method": "Seleccionar Método", "Select only one model to call": "Seleccionar sólo un modelo a llamar", "Select view": "Seleccionar vista", "Selected model(s) do not support image inputs": "Modelo(s) seleccionado(s) no admiten entradas de imagen", @@ -1458,7 +1458,7 @@ "Show Formatting Toolbar": "Mostrar barra de herramientas de Formateo", "Show image preview": "Mostrar previsualización de imagen", "Show Model": "Mostrar Modelo", - "Show Shortcuts": "", + "Show Shortcuts": "Mostrar Atajos de Teclado", "Show your support!": "¡Muestra tu apoyo!", "Showcased creativity": "Creatividad exhibida", "Sign in": "Iniciar Sesión", @@ -1492,9 +1492,9 @@ "Start Tag": "Etiqueta de Inicio", "Status Updates": "Actualizaciones de Estado", "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", + "Steps": "Pasos", "Stop": "Detener", - "Stop Generating": "", + "Stop Generating": "Parar la Generación", "Stop Sequence": "Secuencia de Parada", "Stream Chat Response": "Transmisión Directa de la Respuesta del Chat", "Stream Delta Chunk Size": "Tamaño del Fragmentado Incremental para la Transmisión Directa", @@ -1524,7 +1524,7 @@ "Tags Generation": "Generación de Etiquetas", "Tags Generation Prompt": "Indicador para la 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.": "El Muestreo de cola libre(TFS_Z) es usado para reducir el impacto de los tokens menos probables en la salida. Un valor más alto (p.ej. 2.0) reduce más fuertemente el impacto, mientras que un valor de 1.0 deshabilita este ajuste.", - "Talk to Model": "", + "Talk to Model": "Hablar al Modelo", "Tap to interrupt": "Toca para interrumpir", "Task List": "Lista de Tareas", "Task Model": "Modelo de Tarea", @@ -1606,7 +1606,7 @@ "Toast notifications for new updates": "Notificaciones emergentes para nuevas actualizaciones", "Today": "Hoy", "Today at {{LOCALIZED_TIME}}": "Hoy a las {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "Des/Plegar la Barra Lateral", "Toggle whether current connection is active.": "Alternar si la conexión actual está activa", "Token": "Token", "Too verbose": "Demasiado detallado", @@ -1675,8 +1675,8 @@ "URL Mode": "Modo URL", "Usage": "Uso", "Use '#' in the prompt input to load and include your knowledge.": "Utilizar '#' en el indicador para cargar e incluir tu conocimiento.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", - "Use Chat Completions API": "", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "Usar el endpoint /v1/chat/completions en vez de /v1/audio/transcriptions para una (posible) mayor precisión.", + "Use Chat Completions API": "Usar Chat Completions", "Use groups to group your users and assign permissions.": "Usar grupos para agrupar a usuarios y asignar permisos.", "Use LLM": "Usar LLM", "Use no proxy to fetch page contents.": "No usar proxy para extraer contenidos", From dec59e87a3caca4b9002eba17ebb2b0f781fc50f Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 8 Nov 2025 15:05:29 +0000 Subject: [PATCH 011/243] refactor: Remove unused litellm endpoint and associated frontend code Removes the unused `/litellm/config` endpoint, the corresponding `downloadLiteLLMConfig` frontend API function, and the unused import from the `Database.svelte` component. This code was identified as dead code as it was not being used in the UI. --- backend/open_webui/routers/utils.py | 7 ---- src/lib/apis/utils/index.ts | 35 ------------------- .../components/admin/Settings/Database.svelte | 2 +- 3 files changed, 1 insertion(+), 43 deletions(-) diff --git a/backend/open_webui/routers/utils.py b/backend/open_webui/routers/utils.py index 0e6768a671..6445a9fc28 100644 --- a/backend/open_webui/routers/utils.py +++ b/backend/open_webui/routers/utils.py @@ -126,10 +126,3 @@ async def download_db(user=Depends(get_admin_user)): ) -@router.get("/litellm/config") -async def download_litellm_config_yaml(user=Depends(get_admin_user)): - return FileResponse( - f"{DATA_DIR}/litellm/config.yaml", - media_type="application/octet-stream", - filename="config.yaml", - ) diff --git a/src/lib/apis/utils/index.ts b/src/lib/apis/utils/index.ts index 1fc30ddbba..79f56514a2 100644 --- a/src/lib/apis/utils/index.ts +++ b/src/lib/apis/utils/index.ts @@ -180,38 +180,3 @@ export const downloadDatabase = async (token: string) => { } }; -export const downloadLiteLLMConfig = async (token: string) => { - let error = null; - - const res = await fetch(`${WEBUI_API_BASE_URL}/utils/litellm/config`, { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${token}` - } - }) - .then(async (response) => { - if (!response.ok) { - throw await response.json(); - } - return response.blob(); - }) - .then((blob) => { - const url = window.URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = url; - a.download = 'config.yaml'; - document.body.appendChild(a); - a.click(); - window.URL.revokeObjectURL(url); - }) - .catch((err) => { - console.error(err); - error = err.detail; - return null; - }); - - if (error) { - throw error; - } -}; diff --git a/src/lib/components/admin/Settings/Database.svelte b/src/lib/components/admin/Settings/Database.svelte index d5bebed221..1c966ac356 100644 --- a/src/lib/components/admin/Settings/Database.svelte +++ b/src/lib/components/admin/Settings/Database.svelte @@ -2,7 +2,7 @@ import fileSaver from 'file-saver'; const { saveAs } = fileSaver; - import { downloadDatabase, downloadLiteLLMConfig } from '$lib/apis/utils'; + import { downloadDatabase } from '$lib/apis/utils'; import { onMount, getContext } from 'svelte'; import { config, user } from '$lib/stores'; import { toast } from 'svelte-sonner'; From 9578bac0993406fca7c69d8edff15ae829eb53ae Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 15:44:27 -0500 Subject: [PATCH 012/243] refac: suggestions display full name on hover --- src/lib/components/chat/MessageInput/Commands/Knowledge.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte index cd1610fd42..3c8b9e49fd 100644 --- a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte +++ b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte @@ -233,7 +233,7 @@ {/if} - +
{decodeString(item?.name)}
From 25c7f101f226d4590b4cce96de80a7d90c1d3d6d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 16:09:29 -0500 Subject: [PATCH 013/243] enh: optionally add user headers external websearch Co-Authored-By: Classic298 <27028174+Classic298@users.noreply.github.com> --- backend/open_webui/retrieval/web/external.py | 25 ++++++++++++++++---- backend/open_webui/routers/retrieval.py | 6 ++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/backend/open_webui/retrieval/web/external.py b/backend/open_webui/retrieval/web/external.py index a5c8003e47..13f6a5aa68 100644 --- a/backend/open_webui/retrieval/web/external.py +++ b/backend/open_webui/retrieval/web/external.py @@ -2,27 +2,42 @@ import logging from typing import Optional, List import requests -from open_webui.retrieval.web.main import SearchResult, get_filtered_results + +from fastapi import Request + from open_webui.env import SRC_LOG_LEVELS +from open_webui.retrieval.web.main import SearchResult, get_filtered_results +from open_webui.utils.headers import include_user_info_headers + + log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["RAG"]) def search_external( + request: Request, external_url: str, external_api_key: str, query: str, count: int, filter_list: Optional[List[str]] = None, + user=None, ) -> List[SearchResult]: try: + headers = { + "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", + "Authorization": f"Bearer {external_api_key}", + } + headers = include_user_info_headers(headers, user) + + chat_id = getattr(request.state, "chat_id", None) + if chat_id: + headers["X-OpenWebUI-Chat-Id"] = str(chat_id) + response = requests.post( external_url, - headers={ - "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", - "Authorization": f"Bearer {external_api_key}", - }, + headers=headers, json={ "query": query, "count": count, diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index f8147372fd..b5a5546d10 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -1811,7 +1811,9 @@ def process_web( ) -def search_web(request: Request, engine: str, query: str) -> list[SearchResult]: +def search_web( + request: Request, engine: str, query: str, user=None +) -> list[SearchResult]: """Search the web using a search engine and return the results as a list of SearchResult objects. Will look for a search engine API key in environment variables in the following order: - SEARXNG_QUERY_URL @@ -2069,11 +2071,13 @@ def search_web(request: Request, engine: str, query: str) -> list[SearchResult]: ) elif engine == "external": return search_external( + request, request.app.state.config.EXTERNAL_WEB_SEARCH_URL, request.app.state.config.EXTERNAL_WEB_SEARCH_API_KEY, query, request.app.state.config.WEB_SEARCH_RESULT_COUNT, request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, + user=user, ) else: raise Exception("No search engine API key found in environment variables") From e69c2cf3f62e4626545a92f3dd1259ba94f0dd23 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 16:12:38 -0500 Subject: [PATCH 014/243] refac --- backend/open_webui/routers/retrieval.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index b5a5546d10..56db8f4ced 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -2102,6 +2102,7 @@ async def process_web_search( request, request.app.state.config.WEB_SEARCH_ENGINE, query, + user, ) for query in form_data.queries ] From 908f504885fda8dc5a0f5ce18ff6de2ec7528362 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 20:39:05 -0500 Subject: [PATCH 015/243] refac --- src/lib/components/notes/NoteEditor/Chat.svelte | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/components/notes/NoteEditor/Chat.svelte b/src/lib/components/notes/NoteEditor/Chat.svelte index 4635df31bf..2430f602e1 100644 --- a/src/lib/components/notes/NoteEditor/Chat.svelte +++ b/src/lib/components/notes/NoteEditor/Chat.svelte @@ -35,12 +35,7 @@ import { goto } from '$app/navigation'; import { onMount, tick, getContext } from 'svelte'; - import { - OLLAMA_API_BASE_URL, - OPENAI_API_BASE_URL, - WEBUI_API_BASE_URL, - WEBUI_BASE_URL - } from '$lib/constants'; + import { WEBUI_BASE_URL } from '$lib/constants'; import { WEBUI_NAME, config, user, models, settings } from '$lib/stores'; import { chatCompletion } from '$lib/apis/openai'; @@ -189,7 +184,10 @@ Based on the user's instruction, update and enhance the existing notes or select { model: model.id, stream: true, - messages: chatMessages + messages: chatMessages.map((m) => ({ + role: m.role, + content: m.content + })) // ...(files && files.length > 0 ? { files } : {}) // TODO: Decide whether to use native file handling or not }, `${WEBUI_BASE_URL}/api` From a65cc196a5ffb65743903e36f2e19d4ea1f29f7f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 21:06:21 -0500 Subject: [PATCH 016/243] refac: batch file processing Co-Authored-By: Sihyeon Jang <24850223+sihyeonn@users.noreply.github.com> --- backend/open_webui/models/files.py | 30 ++++++++++++++++ backend/open_webui/routers/retrieval.py | 47 ++++++++++++++----------- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/backend/open_webui/models/files.py b/backend/open_webui/models/files.py index 171810fde7..31d602ae32 100644 --- a/backend/open_webui/models/files.py +++ b/backend/open_webui/models/files.py @@ -98,6 +98,13 @@ class FileForm(BaseModel): access_control: Optional[dict] = None +class FileUpdateForm(BaseModel): + id: str + hash: Optional[str] = None + data: Optional[dict] = None + meta: Optional[dict] = None + + class FilesTable: def insert_new_file(self, user_id: str, form_data: FileForm) -> Optional[FileModel]: with get_db() as db: @@ -204,6 +211,29 @@ class FilesTable: for file in db.query(File).filter_by(user_id=user_id).all() ] + def update_file_by_id( + self, id: str, form_data: FileUpdateForm + ) -> Optional[FileModel]: + with get_db() as db: + try: + file = db.query(File).filter_by(id=id).first() + + if form_data.hash is not None: + file.hash = form_data.hash + + if form_data.data is not None: + file.data = {**(file.data if file.data else {}), **form_data.data} + + if form_data.meta is not None: + file.meta = {**(file.meta if file.meta else {}), **form_data.meta} + + file.updated_at = int(time.time()) + db.commit() + return FileModel.model_validate(file) + except Exception as e: + log.exception(f"Error updating file completely by id: {e}") + return None + def update_file_hash_by_id(self, id: str, hash: str) -> Optional[FileModel]: with get_db() as db: try: diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 56db8f4ced..001fdf8852 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -32,7 +32,7 @@ from langchain.text_splitter import RecursiveCharacterTextSplitter, TokenTextSpl from langchain_text_splitters import MarkdownHeaderTextSplitter from langchain_core.documents import Document -from open_webui.models.files import FileModel, Files +from open_webui.models.files import FileModel, FileUpdateForm, Files from open_webui.models.knowledge import Knowledges from open_webui.storage.provider import Storage @@ -2452,16 +2452,19 @@ def process_files_batch( """ Process a batch of files and save them to the vector database. """ - results: List[BatchProcessFilesResult] = [] - errors: List[BatchProcessFilesResult] = [] + collection_name = form_data.collection_name + file_results: List[BatchProcessFilesResult] = [] + file_errors: List[BatchProcessFilesResult] = [] + file_updates: List[FileUpdateForm] = [] + # Prepare all documents first all_docs: List[Document] = [] + for file in form_data.files: try: text_content = file.data.get("content", "") - docs: List[Document] = [ Document( page_content=text_content.replace("
", "\n"), @@ -2475,16 +2478,22 @@ def process_files_batch( ) ] - hash = calculate_sha256_string(text_content) - Files.update_file_hash_by_id(file.id, hash) - Files.update_file_data_by_id(file.id, {"content": text_content}) - all_docs.extend(docs) - results.append(BatchProcessFilesResult(file_id=file.id, status="prepared")) + + file_updates.append( + FileUpdateForm( + id=file.id, + hash=calculate_sha256_string(text_content), + data={"content": text_content}, + ) + ) + file_results.append( + BatchProcessFilesResult(file_id=file.id, status="prepared") + ) except Exception as e: log.error(f"process_files_batch: Error processing file {file.id}: {str(e)}") - errors.append( + file_errors.append( BatchProcessFilesResult(file_id=file.id, status="failed", error=str(e)) ) @@ -2500,20 +2509,18 @@ def process_files_batch( ) # Update all files with collection name - for result in results: - Files.update_file_metadata_by_id( - result.file_id, {"collection_name": collection_name} - ) - result.status = "completed" + for file_update, file_result in zip(file_updates, file_results): + Files.update_file_by_id(id=file_result.file_id, form_data=file_update) + file_result.status = "completed" except Exception as e: log.error( f"process_files_batch: Error saving documents to vector DB: {str(e)}" ) - for result in results: - result.status = "failed" - errors.append( - BatchProcessFilesResult(file_id=result.file_id, error=str(e)) + for file_result in file_results: + file_result.status = "failed" + file_errors.append( + BatchProcessFilesResult(file_id=file_result.file_id, error=str(e)) ) - return BatchProcessFilesResponse(results=results, errors=errors) + return BatchProcessFilesResponse(results=file_results, errors=file_errors) From 413fa27b188f9fefef648ef90936adc9373eea45 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 21:09:59 -0500 Subject: [PATCH 017/243] refac --- backend/open_webui/routers/retrieval.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 001fdf8852..d57151b509 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -2482,7 +2482,6 @@ def process_files_batch( file_updates.append( FileUpdateForm( - id=file.id, hash=calculate_sha256_string(text_content), data={"content": text_content}, ) From 6cb41a59daff3d67562634e40c0f3dec72ee51ea Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 21:10:11 -0500 Subject: [PATCH 018/243] refac --- backend/open_webui/models/files.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/open_webui/models/files.py b/backend/open_webui/models/files.py index 31d602ae32..e86000cfc8 100644 --- a/backend/open_webui/models/files.py +++ b/backend/open_webui/models/files.py @@ -99,7 +99,6 @@ class FileForm(BaseModel): class FileUpdateForm(BaseModel): - id: str hash: Optional[str] = None data: Optional[dict] = None meta: Optional[dict] = None From e76f77bcb79dbd471c2c0761e6c16202c3f329ee Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 21:16:34 -0500 Subject: [PATCH 019/243] refac: stream chunk max buffer size --- backend/open_webui/env.py | 10 ++++++---- backend/open_webui/routers/openai.py | 4 ++-- backend/open_webui/utils/misc.py | 12 ++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 4839396b21..b85316d955 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -570,16 +570,18 @@ else: CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = os.environ.get( - "CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE", "10485760" # 10MB + "CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE", "" ) if CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE == "": - CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = 1024 * 1024 * 10 + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = None else: try: - CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = int(CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE) + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = int( + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE + ) except Exception: - CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = 1024 * 1024 * 10 + CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE = None #################################### diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index d3ec158cd9..b0f283c82d 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -45,7 +45,7 @@ from open_webui.utils.payload import ( ) from open_webui.utils.misc import ( convert_logit_bias_input_to_json, - handle_large_stream_chunks, + stream_chunks_handler, ) from open_webui.utils.auth import get_admin_user, get_verified_user @@ -953,7 +953,7 @@ async def generate_chat_completion( if "text/event-stream" in r.headers.get("Content-Type", ""): streaming = True return StreamingResponse( - handle_large_stream_chunks(r.content), + stream_chunks_handler(r.content), status_code=r.status, headers=dict(r.headers), background=BackgroundTask( diff --git a/backend/open_webui/utils/misc.py b/backend/open_webui/utils/misc.py index 49465fb3ea..ce16691365 100644 --- a/backend/open_webui/utils/misc.py +++ b/backend/open_webui/utils/misc.py @@ -542,21 +542,21 @@ def extract_urls(text: str) -> list[str]: return url_pattern.findall(text) -def handle_large_stream_chunks(stream: aiohttp.StreamReader, max_buffer_size: int = CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE): +def stream_chunks_handler(stream: aiohttp.StreamReader): """ Handle stream response chunks, supporting large data chunks that exceed the original 16kb limit. When a single line exceeds max_buffer_size, returns an empty JSON string {} and skips subsequent data until encountering normally sized data. :param stream: The stream reader to handle. - :param max_buffer_size: The maximum buffer size in bytes, -1 means not handle large chunks, default is 10MB. :return: An async generator that yields the stream data. """ - if max_buffer_size <= 0: + max_buffer_size = CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE + if max_buffer_size is None or max_buffer_size <= 0: return stream - async def handle_stream_chunks(): + async def yield_safe_stream_chunks(): buffer = b"" skip_mode = False @@ -603,5 +603,5 @@ def handle_large_stream_chunks(stream: aiohttp.StreamReader, max_buffer_size: in # Process remaining buffer data if buffer and not skip_mode: yield buffer - - return handle_stream_chunks() + + return yield_safe_stream_chunks() From bc739de024c9967fd3efb0cf7ff8fd52c269ca88 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 21:33:50 -0500 Subject: [PATCH 020/243] refac: rerank --- backend/open_webui/retrieval/utils.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index bc89373174..f20884a4d2 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -168,7 +168,7 @@ def query_doc_with_hybrid_search( ): log.warning(f"query_doc_with_hybrid_search:no_docs {collection_name}") return {"documents": [], "metadatas": [], "distances": []} - + # Now safely check the documents content after confirming attributes exist if ( not collection_result.documents @@ -516,11 +516,13 @@ def get_reranking_function(reranking_engine, reranking_model, reranking_function if reranking_function is None: return None if reranking_engine == "external": - return lambda sentences, user=None: reranking_function.predict( - sentences, user=user + return lambda query, documents, user=None: reranking_function.predict( + [(query, doc.page_content) for doc in documents], user=user ) else: - return lambda sentences, user=None: reranking_function.predict(sentences) + return lambda query, documents, user=None: reranking_function.predict( + [(query, doc.page_content) for doc in documents] + ) def get_sources_from_items( @@ -1064,9 +1066,7 @@ class RerankCompressor(BaseDocumentCompressor): scores = None if reranking: - scores = self.reranking_function( - [(query, doc.page_content) for doc in documents] - ) + scores = self.reranking_function(query, documents) else: from sentence_transformers import util From 62073d3b7f59cb7967f1f756835e09699f6fb3a4 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 22:36:00 -0500 Subject: [PATCH 021/243] fix: images edit openai base url/key save issue --- backend/open_webui/routers/images.py | 4 ++-- src/lib/components/admin/Settings/Images.svelte | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/routers/images.py b/backend/open_webui/routers/images.py index b1b3994968..0a1de28cc7 100644 --- a/backend/open_webui/routers/images.py +++ b/backend/open_webui/routers/images.py @@ -248,10 +248,10 @@ async def update_config( request.app.state.config.IMAGE_EDIT_SIZE = form_data.IMAGE_EDIT_SIZE request.app.state.config.IMAGES_EDIT_OPENAI_API_BASE_URL = ( - form_data.IMAGES_OPENAI_API_BASE_URL + form_data.IMAGES_EDIT_OPENAI_API_BASE_URL ) request.app.state.config.IMAGES_EDIT_OPENAI_API_KEY = ( - form_data.IMAGES_OPENAI_API_KEY + form_data.IMAGES_EDIT_OPENAI_API_KEY ) request.app.state.config.IMAGES_EDIT_OPENAI_API_VERSION = ( form_data.IMAGES_EDIT_OPENAI_API_VERSION diff --git a/src/lib/components/admin/Settings/Images.svelte b/src/lib/components/admin/Settings/Images.svelte index 0fb2f29ca3..ffbe894bc3 100644 --- a/src/lib/components/admin/Settings/Images.svelte +++ b/src/lib/components/admin/Settings/Images.svelte @@ -112,12 +112,12 @@ config.ENABLE_IMAGE_GENERATION = false; return null; - } else if (config.IMAGE_GENERATION_ENGINE === 'openai' && config.OPENAI_API_KEY === '') { + } else if (config.IMAGE_GENERATION_ENGINE === 'openai' && config.IMAGES_OPENAI_API_KEY === '') { toast.error($i18n.t('OpenAI API Key is required.')); config.ENABLE_IMAGE_GENERATION = false; return null; - } else if (config.IMAGE_GENERATION_ENGINE === 'gemini' && config.GEMINI_API_KEY === '') { + } else if (config.IMAGE_GENERATION_ENGINE === 'gemini' && config.IMAGES_GEMINI_API_KEY === '') { toast.error($i18n.t('Gemini API Key is required.')); config.ENABLE_IMAGE_GENERATION = false; From b2667470cd272e335309ec80a036e02d7a6decd4 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 9 Nov 2025 23:13:25 -0500 Subject: [PATCH 022/243] refac: get event emitter/caller --- backend/open_webui/socket/main.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 60df810785..5c365f76ac 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -284,6 +284,7 @@ async def connect(sid, environ, auth): await sio.enter_room(sid, f"user:{user.id}") + @sio.on("user-join") async def user_join(sid, data): @@ -651,9 +652,8 @@ async def disconnect(sid): def get_event_emitter(request_info, update_db=True): async def __event_emitter__(event_data): user_id = request_info["user_id"] - - chat_id = request_info.get("chat_id", None) - message_id = request_info.get("message_id", None) + chat_id = request_info["chat_id"] + message_id = request_info["message_id"] await sio.emit( "events", @@ -669,6 +669,7 @@ def get_event_emitter(request_info, update_db=True): and message_id and not request_info.get("chat_id", "").startswith("local:") ): + if "type" in event_data and event_data["type"] == "status": Chats.add_message_status_to_chat_by_id_and_message_id( request_info["chat_id"], @@ -758,7 +759,14 @@ def get_event_emitter(request_info, update_db=True): }, ) - return __event_emitter__ + if ( + "user_id" in request_info + and "chat_id" in request_info + and "message_id" in request_info + ): + return __event_emitter__ + else: + return None def get_event_call(request_info): @@ -774,7 +782,14 @@ def get_event_call(request_info): ) return response - return __event_caller__ + if ( + "session_id" in request_info + and "chat_id" in request_info + and "message_id" in request_info + ): + return __event_caller__ + else: + return None get_event_caller = get_event_call From ce2384350617cc65a8eec8cd02a7d6d45703f7bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aindri=C3=BA=20Mac=20Giolla=20Eoin?= Date: Mon, 10 Nov 2025 12:14:17 +0000 Subject: [PATCH 023/243] i18n - Update ie-GA translation --- src/lib/i18n/locales/ie-GA/translation.json | 258 ++++++++++---------- 1 file changed, 129 insertions(+), 129 deletions(-) diff --git a/src/lib/i18n/locales/ie-GA/translation.json b/src/lib/i18n/locales/ie-GA/translation.json index ac15c42520..6a3052f1c0 100644 --- a/src/lib/i18n/locales/ie-GA/translation.json +++ b/src/lib/i18n/locales/ie-GA/translation.json @@ -5,9 +5,9 @@ "(e.g. `sh webui.sh --api`)": "(m.sh. `sh webui.sh --api`)", "(latest)": "(is déanaí)", "(leave blank for to use commercial endpoint)": "(fág bán le haghaidh críochphointe tráchtála a úsáid)", - "[Last] dddd [at] h:mm A": "[Deireanach] llll [ag] u:nn A", - "[Today at] h:mm A": "[Inniu ag] u:nn A", - "[Yesterday at] h:mm A": "[Inné ag] u:nn A", + "[Last] dddd [at] h:mm A": "[Deireanach] dddd [ag] h:mm A", + "[Today at] h:mm A": "[Inniu ag] h:mm A", + "[Yesterday at] h:mm A": "[Inné ag] h:mm A", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "{{COUNT}} Uirlisí ar Fáil", "{{COUNT}} characters": "{{COUNT}} carachtair", @@ -26,7 +26,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Úsáidtear samhail tascanna agus tascanna á ndéanamh amhail teidil a ghiniúint le haghaidh comhráite agus fiosrúcháin chuardaigh ghréasáin", "a user": "úsáideoir", "About": "Maidir", - "Accept Autocomplete Generation\nJump to Prompt Variable": "", + "Accept Autocomplete Generation\nJump to Prompt Variable": "Glac le Giniúint Uathchríochnaithe\nLéim go dtí an Athróg Pras", "Access": "Rochtain", "Access Control": "Rialaithe Rochtana", "Accessible to all users": "Inrochtana do gach úsáideoir", @@ -51,7 +51,7 @@ "Add Content": "Cuir Ábhar leis", "Add content here": "Cuir ábhar anseo", "Add Custom Parameter": "Cuir Paraiméadar Saincheaptha leis", - "Add Custom Prompt": "", + "Add Custom Prompt": "Cuir Leid Saincheaptha leis", "Add Details": "Cuir Sonraí leis", "Add Files": "Cuir Comhaid", "Add Group": "Cuir Grúpa leis", @@ -65,7 +65,7 @@ "Add User Group": "Cuir Grúpa Úsáideoirí leis", "Additional Config": "Cumraíocht Bhreise", "Additional configuration options for marker. This should be a JSON string with key-value pairs. For example, '{\"key\": \"value\"}'. Supported keys include: disable_links, keep_pageheader_in_output, keep_pagefooter_in_output, filter_blank_pages, drop_repeated_text, layout_coverage_threshold, merge_threshold, height_tolerance, gap_threshold, image_threshold, min_line_length, level_count, default_level": "Roghanna cumraíochta breise don mharcóir. Ba chóir gur teaghrán JSON é seo le péirí eochrach-luachanna. Mar shampla, '{\"key\": \"value\"}'. I measc na n-eochracha a dtacaítear leo tá: disable_links, keep_pageheader_in_output, keep_pagefooter_in_output, filter_blank_pages, drop_repeated_text, layout_coverage_threshold, merge_threshold, height_tolerance, gap_threshold, image_threshold, min_line_length, level_count, default_level", - "Additional Parameters": "", + "Additional Parameters": "Paraiméadair Bhreise", "Adjusting these settings will apply changes universally to all users.": "Cuirfear na socruithe seo ag coigeartú athruithe go huilíoch ar gach úsáideoir.", "admin": "riarachán", "Admin": "Riarachán", @@ -73,12 +73,12 @@ "Admin Settings": "Socruithe Riaracháin", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Bíonn rochtain ag riarthóirí ar na huirlisí go léir i gcónaí; teastaíonn ó úsáideoirí uirlisí a shanntar de réir samhail sa spás oibre.", "Advanced Parameters": "Paraiméadair Casta", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "Paraiméadair ardleibhéil le haghaidh parsáil MinerU (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)", "Advanced Params": "Paraiméid Casta", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "Tar éis duit an tsamhail leabaithe a nuashonrú nó a athrú, ní mór duit an bunachar eolais a athinnéacsú chun go dtiocfaidh na hathruithe i bhfeidhm. Is féidir leat é seo a dhéanamh trí úsáid a bhaint as an gcnaipe \"Athinnéacsú\" thíos.", "AI": "IS", "All": "Gach", - "All chats have been unarchived.": "", + "All chats have been unarchived.": "Tá na comhráite uile díchartlannaithe.", "All Documents": "Gach Doiciméad", "All models deleted successfully": "Scriosadh na samhlacha go léir go rathúil", "Allow Call": "Ceadaigh Glao", @@ -130,7 +130,7 @@ "API Key created.": "Cruthaíodh Eochair API.", "API Key Endpoint Restrictions": "Príomhshrianta Críochphointe API", "API keys": "Eochracha API", - "API Mode": "", + "API Mode": "Mód API", "API Version": "Leagan API", "API Version is required": "Tá Leagan API ag teastáil", "Application DN": "Feidhmchlár DN", @@ -151,10 +151,10 @@ "Ask": "Fiafraigh", "Ask a question": "Cuir ceist", "Assistant": "Cúntóir", - "Attach File From Knowledge": "", + "Attach File From Knowledge": "Ceangail Comhad ó Eolas", "Attach Knowledge": "Ceangail Eolas", "Attach Notes": "Ceangail Nótaí", - "Attach Webpage": "", + "Attach Webpage": "Ceangail Leathanach Gréasáin", "Attention to detail": "Aird ar mhionsonraí", "Attribute for Mail": "Tréith don Phost", "Attribute for Username": "Tréith don Ainm Úsáideora", @@ -221,7 +221,7 @@ "Channel": "Cainéal", "Channel deleted successfully": "Scriosadh an cainéal go rathúil", "Channel Name": "Ainm Cainéal", - "Channel name cannot be empty.": "", + "Channel name cannot be empty.": "Ní féidir ainm an chainéil a fhágáil folamh.", "Channel updated successfully": "Nuashonraíodh an cainéal go rathúil", "Channels": "Cainéil", "Character": "Carachtar", @@ -271,13 +271,13 @@ "Close Banner": "Dún an Meirge", "Close Configure Connection Modal": "Dún Cumraigh Módúil Nasc", "Close modal": "Dún modúl", - "Close Modal": "", + "Close Modal": "Dún Módúil", "Close settings modal": "Dún modúl na socruithe", "Close Sidebar": "Dún an Barra Taobh", - "cloud": "", + "cloud": "scamall", "CMU ARCTIC speaker embedding name": "Ainm leabaithe cainteora CMU ARCTIC", "Code Block": "Bloc Cód", - "Code Editor": "", + "Code Editor": "Eagarthóir Cód", "Code execution": "Cód a fhorghníomhú", "Code Execution": "Forghníomhú Cóid", "Code Execution Engine": "Inneall Forghníomhaithe Cóid", @@ -335,8 +335,8 @@ "Copied to clipboard": "Cóipeáilte go gear", "Copy": "Cóipeáil", "Copy Formatted Text": "Cóipeáil Téacs Formáidithe", - "Copy Last Code Block": "", - "Copy Last Response": "", + "Copy Last Code Block": "Cóipeáil an Bloc Cód Deiridh", + "Copy Last Response": "Cóipeáil an Fhreagra Deiridh", "Copy link": "Cóipeáil nasc", "Copy Link": "Cóipeáil Nasc", "Copy to clipboard": "Cóipeáil chuig an ngearrthaisce", @@ -345,15 +345,15 @@ "Create": "Cruthaigh", "Create a knowledge base": "Cruthaigh bonn eolais", "Create a model": "Cruthaigh samhail", - "Create a new note": "", + "Create a new note": "Cruthaigh nóta nua", "Create Account": "Cruthaigh Cuntas", "Create Admin Account": "Cruthaigh Cuntas Riaracháin", "Create Channel": "Cruthaigh Cainéal", "Create Folder": "Cruthaigh Fillteán", "Create Group": "Cruthaigh Grúpa", - "Create Image": "", + "Create Image": "Cruthaigh Íomhá", "Create Knowledge": "Cruthaigh Eolais", - "Create Model": "", + "Create Model": "Cruthaigh Samhail", "Create new key": "Cruthaigh eochair nua", "Create new secret key": "Cruthaigh eochair rúnda nua", "Create Note": "Cruthaigh Nóta", @@ -361,7 +361,7 @@ "Created at": "Cruthaithe ag", "Created At": "Cruthaithe Ag", "Created by": "Cruthaithe ag", - "Created by you": "", + "Created by you": "Cruthaithe agatsa", "CSV Import": "Iompórtáil CSV", "Ctrl+Enter to Send": "Ctrl+Iontráil chun Seol", "Current Model": "Samhail Reatha", @@ -406,7 +406,7 @@ "Delete function?": "Scrios feidhm?", "Delete Message": "Scrios Teachtaireacht", "Delete message?": "Scrios teachtaireacht?", - "Delete Model": "", + "Delete Model": "Scrios an tSamhail", "Delete note?": "Scrios an nóta?", "Delete prompt?": "Scrios leid?", "delete this link": "scrios an nasc seo", @@ -442,7 +442,7 @@ "Discover, download, and explore custom tools": "Uirlisí saincheaptha a fháil amach, íoslódáil agus iniúchadh", "Discover, download, and explore model presets": "Réamhshocruithe samhail a fháil amach, a íoslódáil agus a iniúchadh", "Display": "Taispeáin", - "Display chat title in tab": "", + "Display chat title in tab": "Taispeáin teideal an chomhrá sa chluaisín", "Display Emoji in Call": "Taispeáin Emoji i nGlao", "Display Multi-model Responses in Tabs": "Taispeáin Freagraí Ilsamhlacha i gCluaisíní", "Display the username instead of You in the Chat": "Taispeáin an t-ainm úsáideora in ionad Tú sa Comhrá", @@ -498,12 +498,12 @@ "Edit Connection": "Cuir Ceangal in Eagar", "Edit Default Permissions": "Cuir Ceadanna Réamhshocraithe in Eagar", "Edit Folder": "Cuir Fillteán in Eagar", - "Edit Image": "", - "Edit Last Message": "", + "Edit Image": "Cuir Íomhá in Eagar", + "Edit Last Message": "Cuir an Teachtaireacht Dheiridh in Eagar", "Edit Memory": "Cuir Cuimhne in eagar", "Edit User": "Cuir Úsáideoir in eagar", "Edit User Group": "Cuir Grúpa Úsáideoirí in Eagar", - "Edit workflow.json content": "", + "Edit workflow.json content": "Cuir ábhar workflow.json in eagar", "edited": "curtha in eagar", "Edited": "Curtha in eagar", "Editing": "Ag eagarthóireacht", @@ -537,9 +537,9 @@ "Enter a detail about yourself for your LLMs to recall": "Cuir isteach mionsonraí fút féin chun do LLManna a mheabhrú", "Enter a title for the pending user info overlay. Leave empty for default.": "Cuir isteach teideal don fhorleagan faisnéise úsáideora atá ar feitheamh. Fág folamh don réamhshocrú.", "Enter a watermark for the response. Leave empty for none.": "Cuir isteach comhartha uisce don fhreagra. Fág folamh mura bhfuil aon cheann ann.", - "Enter additional headers in JSON format": "", - "Enter additional headers in JSON format (e.g. {{'{{\"X-Custom-Header\": \"value\"}}'}})": "", - "Enter additional parameters in JSON format": "", + "Enter additional headers in JSON format": "Cuir ceanntásca breise isteach i bhformáid JSON", + "Enter additional headers in JSON format (e.g. {{'{{\"X-Custom-Header\": \"value\"}}'}})": "Cuir isteach ceanntásca breise i bhformáid JSON (m.sh. {{'{{\"X-Custom-Header\": \"value\"}}'}})", + "Enter additional parameters in JSON format": "Cuir isteach paraiméadair bhreise i bhformáid JSON", "Enter api auth string (e.g. username:password)": "Cuir isteach sreang auth api (m.sh. ainm úsáideora: pasfhocal)", "Enter Application DN": "Cuir isteach Feidhmchlár DN", "Enter Application DN Password": "Iontráil Feidhmchlár DN Pasfhocal", @@ -587,8 +587,8 @@ "Enter Kagi Search API Key": "Cuir isteach Eochair Kagi Cuardach API", "Enter Key Behavior": "Iontráil Iompar Eochair", "Enter language codes": "Cuir isteach cóid teanga", - "Enter MinerU API Key": "", - "Enter Mistral API Base URL": "", + "Enter MinerU API Key": "Cuir isteach Eochair API MinerU", + "Enter Mistral API Base URL": "Cuir isteach URL Bunúsach API Mistral", "Enter Mistral API Key": "Cuir isteach Eochair API Mistral", "Enter Model ID": "Cuir isteach ID an tSamhail", "Enter model tag (e.g. {{modelTag}})": "Cuir isteach chlib samhail (m.sh. {{modelTag}})", @@ -596,7 +596,7 @@ "Enter name": "Cuir isteach ainm", "Enter New Password": "Cuir isteach Pasfhocal Nua", "Enter Number of Steps (e.g. 50)": "Iontráil Líon na gCéimeanna (m.sh. 50)", - "Enter Ollama Cloud API Key": "", + "Enter Ollama Cloud API Key": "Cuir isteach Eochair API Ollama Cloud", "Enter Perplexity API Key": "Cuir isteach Eochair API Perplexity", "Enter Playwright Timeout": "Iontráil Teorainn Ama na nDrámadóir", "Enter Playwright WebSocket URL": "Cuir isteach URL WebSocket Seinmeora", @@ -705,13 +705,13 @@ "Failed to extract content from the file.": "Theip ar an ábhar a bhaint as an gcomhad.", "Failed to fetch models": "Theip ar shamhlacha a fháil", "Failed to generate title": "Theip ar an teideal a ghiniúint", - "Failed to import models": "", + "Failed to import models": "Theip ar samhail a iompórtáil", "Failed to load chat preview": "Theip ar réamhamharc comhrá a lódáil", "Failed to load file content.": "Theip ar lódáil ábhar an chomhaid.", "Failed to move chat": "Theip ar an gcomhrá a bhogadh", "Failed to read clipboard contents": "Theip ar ábhar gearrthaisce a lé", - "Failed to render diagram": "", - "Failed to render visualization": "", + "Failed to render diagram": "Theip ar an léaráid a rindreáil", + "Failed to render visualization": "Theip ar an léirshamhlú a rindreáil", "Failed to save connections": "Theip ar na naisc a shábháil", "Failed to save conversation": "Theip ar an gcomhrá a shábháil", "Failed to save models configuration": "Theip ar chumraíocht na samhlacha a shábháil", @@ -744,8 +744,8 @@ "Firecrawl API Base URL": "URL Bunús API Firecrawl", "Firecrawl API Key": "Eochair API Firecrawl", "Floating Quick Actions": "Gníomhartha Tapa Snámha", - "Focus Chat Input": "", - "Folder": "", + "Focus Chat Input": "Dírigh ar Ionchur Comhrá", + "Folder": "Fillteán", "Folder Background Image": "Íomhá Chúlra Fillteáin", "Folder deleted successfully": "Scriosadh an fillteán go rathúil", "Folder Name": "Ainm an Fhillteáin", @@ -784,17 +784,17 @@ "Functions allow arbitrary code execution.": "Ceadaíonn feidhmeanna forghníomhú cód treallach.", "Functions imported successfully": "Feidhmeanna allmhairi", "Gemini": "Gemini", - "Gemini API Key": "", + "Gemini API Key": "Eochair API Gemini", "Gemini API Key is required.": "Tá Eochair Gemini API ag teastáil.", - "Gemini Base URL": "", - "Gemini Endpoint Method": "", + "Gemini Base URL": "URL Bunúsach Gemini", + "Gemini Endpoint Method": "Modh Deireadhphointe Gemini", "Gender": "Inscne", "General": "Ginearálta", "Generate": "Gin", "Generate an image": "Gin íomhá", "Generate Image": "Gin Íomhá", - "Generate Message Pair": "", - "Generated Image": "", + "Generate Message Pair": "Gin Péire Teachtaireachta", + "Generated Image": "Íomhá Ginithe", "Generating search query": "Giniúint ceist cuardaigh", "Generating...": "Ag giniúint...", "Get information on {{name}} in the UI": "Faigh eolas faoi {{name}} sa chomhéadan úsáideora", @@ -817,8 +817,8 @@ "H2": "H2", "H3": "H3", "Haptic Feedback": "Aiseolas Haptic", - "Headers": "", - "Headers must be a valid JSON object": "", + "Headers": "Ceanntásca", + "Headers must be a valid JSON object": "Ní mór ceanntásca a bheith ina réad JSON bailí", "Height": "Airde", "Hello, {{name}}": "Dia duit, {{name}}", "Help": "Cabhair", @@ -835,12 +835,12 @@ "How can I help you today?": "Conas is féidir liom cabhrú leat inniu?", "How would you rate this response?": "Cad é mar a mheasfá an freagra seo?", "HTML": "HTML", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", "Hybrid Search": "Cuardach Hibrideach", "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.": "Admhaím gur léigh mé agus tuigim impleachtaí mo ghníomhaíochta. Táim ar an eolas faoi na rioscaí a bhaineann le cód treallach a fhorghníomhú agus tá iontaofacht na foinse fíoraithe agam.", "ID": "ID", - "ID cannot contain \":\" or \"|\" characters": "", + "ID cannot contain \":\" or \"|\" characters": "Ní féidir carachtair \":\" nó \"|\" a bheith san ID", "iframe Sandbox Allow Forms": "iframe Bosca Gainimh Foirmeacha Ceadaithe", "iframe Sandbox Allow Same Origin": "ceadaigh Bosca Gainimh iframe an Bunús Céanna", "Ignite curiosity": "Las fiosracht", @@ -848,7 +848,7 @@ "Image Compression": "Comhbhrú Íomhá", "Image Compression Height": "Airde Comhbhrú Íomhá", "Image Compression Width": "Leithead Comhbhrúite Íomhá", - "Image Edit Engine": "", + "Image Edit Engine": "Inneall Eagarthóireachta Íomhá", "Image Generation": "Giniúint Íomhá", "Image Generation Engine": "Inneall Giniúna Íomh", "Image Max Compression Size": "Íomhá Méid Comhbhrú Max", @@ -856,7 +856,7 @@ "Image Max Compression Size width": "Leithead Uasmhéid Comhbhrúite Íomhá", "Image Prompt Generation": "Giniúint Leid Íomhá", "Image Prompt Generation Prompt": "Leid Giniúint Leide Íomhá", - "Image Size": "", + "Image Size": "Méid na hÍomhá", "Images": "Íomhánna", "Import": "Iompórtáil", "Import Chats": "Comhráite iompórtá", @@ -865,7 +865,7 @@ "Import Notes": "Nótaí Iompórtála", "Import Presets": "Réamhshocruithe Iompórtáil", "Import Prompt Suggestions": "Moltaí Pras Iompórtála", - "Import successful": "", + "Import successful": "D'éirigh leis an allmhairiú", "Important Update": "Nuashonrú tábhachtach", "In order to force OCR, performing OCR must be enabled.": "Chun OCR a fhorchur, ní mór OCR a chumasú.", "Include": "Cuir san áireamh", @@ -891,11 +891,11 @@ "Invalid file content": "Ábhar comhaid neamhbhailí", "Invalid file format.": "Formáid comhaid neamhbhailí.", "Invalid JSON file": "Comhad JSON neamhbhailí", - "Invalid JSON format for ComfyUI Edit Workflow.": "", + "Invalid JSON format for ComfyUI Edit Workflow.": "Formáid JSON neamhbhailí do Shreabhadh Oibre Eagarthóireachta ComfyUI.", "Invalid JSON format for ComfyUI Workflow.": "Formáid JSON neamhbhailí do Shreabhadh Oibre ComfyUI.", - "Invalid JSON format for Parameters": "", + "Invalid JSON format for Parameters": "Formáid JSON neamhbhailí do Pharaiméadair", "Invalid JSON format in Additional Config": "Formáid JSON neamhbhailí i gCumraíocht Bhreise", - "Invalid JSON format in MinerU Parameters": "", + "Invalid JSON format in MinerU Parameters": "Formáid JSON neamhbhailí i bParaiméadair MinerU", "Invalid Tag": "Clib neamhbhailí", "is typing...": "ag clóscríobh...", "Italic": "Iodálach", @@ -904,7 +904,7 @@ "join our Discord for help.": "bí inár Discord chun cabhair a fháil.", "JSON": "JSON", "JSON Preview": "Réamhamharc JSON", - "JSON Spec": "", + "JSON Spec": "Sonraíocht JSON", "July": "Iúil", "June": "Meitheamh", "Jupyter Auth": "Fíordheimhniú Jupyter", @@ -917,7 +917,7 @@ "Key": "Eochair", "Key is required": "Tá eochair ag teastáil", "Keyboard shortcuts": "Aicearraí méarchlár", - "Keyboard Shortcuts": "", + "Keyboard Shortcuts": "Aicearraí Méarchláir", "Knowledge": "Eolas", "Knowledge Access": "Rochtain Eolais", "Knowledge Base": "Bunachar Eolais", @@ -942,14 +942,14 @@ "Leaderboard": "An Clár Ceannairí", "Learn More": "Foghlaim Tuilleadh", "Learn more about OpenAPI tool servers.": "Foghlaim tuilleadh faoi fhreastalaithe uirlisí OpenAPI.", - "Learn more about Voxtral transcription.": "", + "Learn more about Voxtral transcription.": "Foghlaim tuilleadh faoi thrascríobh Voxtral.", "Leave empty for no compression": "Fág folamh le haghaidh gan comhbhrú", "Leave empty for unlimited": "Fág folamh le haghaidh neamhtheoranta", "Leave empty to include all models from \"{{url}}\" endpoint": "Fág folamh chun gach samhail ó chríochphointe \"{{url}}\" a áireamh", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Fág folamh chun gach samhail ó chríochphointe \"{{url}}/api/tags\" a chur san áireamh", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Fág folamh chun gach samhail ón gcríochphointe \"{{url}}/models\" a chur san áireamh", "Leave empty to include all models or select specific models": "Fág folamh chun gach samhail a chur san áireamh nó roghnaigh samhail sonracha", - "Leave empty to use the default model (voxtral-mini-latest).": "", + "Leave empty to use the default model (voxtral-mini-latest).": "Fág folamh chun an tsamhail réamhshocraithe (voxtral-mini-latest) a úsáid.", "Leave empty to use the default prompt, or enter a custom prompt": "Fág folamh chun an leid réamhshocraithe a úsáid, nó cuir isteach leid saincheaptha", "Leave model field empty to use the default model.": "Fág an réimse samhail folamh chun an tsamhail réamhshocraithe a úsáid.", "Legacy": "Oidhreacht", @@ -963,7 +963,7 @@ "Loader": "Lódóir", "Loading Kokoro.js...": "Kokoro.js á lódáil...", "Loading...": "Ag lódáil...", - "local": "", + "local": "áitiúil", "Local": "Áitiúil", "Local Task Model": "Samhail Tasc Áitiúil", "Location access not allowed": "Ní cheadaítear rochtain suímh", @@ -992,8 +992,8 @@ "Max Upload Size": "Méid Uaslódála Max", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Is féidir uasmhéid de 3 samhail a íoslódáil ag an am Bain triail as arís níos déanaí.", "May": "Bealtaine", - "MCP": "", - "MCP support is experimental and its specification changes often, which can lead to incompatibilities. OpenAPI specification support is directly maintained by the Open WebUI team, making it the more reliable option for compatibility.": "", + "MCP": "MCP", + "MCP support is experimental and its specification changes often, which can lead to incompatibilities. OpenAPI specification support is directly maintained by the Open WebUI team, making it the more reliable option for compatibility.": "Is turgnamhach tacaíocht MCP agus athraítear a shonraíocht go minic, rud a d’fhéadfadh neamh-chomhoiriúnachtaí a bheith mar thoradh air. Déanann foireann Open WebUI cothabháil dhíreach ar thacaíocht sonraíochta OpenAPI, rud a fhágann gurb é an rogha is iontaofa é le haghaidh comhoiriúnachta.", "Medium": "Meánach", "Memories accessible by LLMs will be shown here.": "Taispeánfar cuimhní atá inrochtana ag LLManna anseo.", "Memory": "Cuimhne", @@ -1003,17 +1003,17 @@ "Memory updated successfully": "Cuimhne nuashonraithe", "Merge Responses": "Cumaisc Freagraí", "Merged Response": "Freagra Cumaiscthe", - "Message": "", + "Message": "Teachtaireacht", "Message rating should be enabled to use this feature": "Ba cheart rátáil teachtaireachta a chumasú chun an ghné seo a úsáid", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Ní roinnfear teachtaireachtaí a sheolann tú tar éis do nasc a chruthú. Beidh úsáideoirí leis an URL in ann féachaint ar an gcomhrá roinnte.", "Microsoft OneDrive": "Microsoft OneDrive", "Microsoft OneDrive (personal)": "Microsoft OneDrive (pearsanta)", "Microsoft OneDrive (work/school)": "Microsoft OneDrive (obair/scoil)", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "Eochair API MinerU ag teastáil le haghaidh mód Cloud API.", "Mistral OCR": "OCR Mistral", "Mistral OCR API Key required.": "Mistral OCR API Eochair ag teastáil.", - "MistralAI": "", + "MistralAI": "MistralAI", "Model": "Samhail", "Model '{{modelName}}' has been successfully downloaded.": "Rinneadh an tsamhail '{{modelName}}' a íoslódáil go rathúil.", "Model '{{modelTag}}' is already in queue for downloading.": "Tá samhail '{{modelTag}}' sa scuaine cheana féin le híoslódáil.", @@ -1046,7 +1046,7 @@ "Models": "Samhlacha", "Models Access": "Samhlacha Rochtain", "Models configuration saved successfully": "Cumraíocht na samhlacha sábháilte go rathúil", - "Models imported successfully": "", + "Models imported successfully": "Iompórtáladh samhlacha go rathúil", "Models Public Sharing": "Samhlacha Comhroinnt Phoiblí", "Mojeek Search API Key": "Eochair API Cuardach Mojeek", "More": "Tuilleadh", @@ -1061,12 +1061,12 @@ "New Chat": "Comhrá Nua", "New Folder": "Fillteán Nua", "New Function": "Feidhm Nua", - "New Knowledge": "", - "New Model": "", + "New Knowledge": "Eolas Nua", + "New Model": "Samhail Nua", "New Note": "Nóta Nua", "New Password": "Pasfhocal Nua", - "New Prompt": "", - "New Temporary Chat": "", + "New Prompt": "Leid Nua", + "New Temporary Chat": "Comhrá Sealadach Nua", "New Tool": "Uirlis Nua", "new-channel": "nua-chainéil", "Next message": "An chéad teachtaireacht eile", @@ -1080,10 +1080,10 @@ "No content to speak": "Níl aon ábhar le labhairt", "No conversation to save": "Gan aon chomhrá le sábháil", "No distance available": "Níl achar ar fáil", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "Ní féidir le haon dáta éaga rioscaí slándála a chruthú.", "No feedbacks found": "Níor aimsíodh aon aiseolas", "No file selected": "Níl aon chomhad roghnaithe", - "No functions found": "", + "No functions found": "Níor aimsíodh aon fheidhmeanna", "No groups with access, add a group to grant access": "Gan aon ghrúpa a bhfuil rochtain acu, cuir grúpa leis chun rochtain a dheonú", "No HTML, CSS, or JavaScript content found.": "Níor aimsíodh aon ábhar HTML, CSS nó JavaScript.", "No inference engine with management support found": "Níor aimsíodh aon inneall tátail le tacaíocht bhainistíochta", @@ -1094,14 +1094,14 @@ "No models selected": "Uimh samhlacha roghnaithe", "No Notes": "Gan Nótaí", "No notes found": "Níor aimsíodh aon nótaí", - "No prompts found": "", + "No prompts found": "Níor aimsíodh aon leideanna", "No results": "Níl aon torthaí le fáil", "No results found": "Níl aon torthaí le fáil", "No search query generated": "Ní ghintear aon cheist cuardaigh", "No source available": "Níl aon fhoinse ar fáil", "No sources found": "Níor aimsíodh aon fhoinsí", "No suggestion prompts": "Gan leideanna molta", - "No tools found": "", + "No tools found": "Níor aimsíodh aon uirlisí", "No users were found.": "Níor aimsíodh aon úsáideoirí.", "No valves": "Gan comhlaí", "No valves to update": "Gan comhlaí le nuashonrú", @@ -1109,18 +1109,18 @@ "None": "Dada", "Not factually correct": "Níl sé ceart go fírineach", "Not helpful": "Gan a bheith cabhrach", - "Not Registered": "", + "Not Registered": "Gan Clárú", "Note": "Nóta", "Note deleted successfully": "Scriosadh an nóta go rathúil", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nóta: Má shocraíonn tú íosscór, ní thabharfaidh an cuardach ach doiciméid a bhfuil scór níos mó ná nó cothrom leis an scór íosta ar ais.", "Notes": "Nótaí", - "Notes Public Sharing": "", + "Notes Public Sharing": "Nótaí Comhroinnte Poiblí", "Notification Sound": "Fuaim Fógra", "Notification Webhook": "Fógra Webook", "Notifications": "Fógraí", "November": "Samhain", "OAuth": "OAuth", - "OAuth 2.1": "", + "OAuth 2.1": "OAuth 2.1", "OAuth ID": "Aitheantas OAuth", "October": "Deireadh Fómhair", "Off": "As", @@ -1129,16 +1129,16 @@ "Ollama": "Ollama", "Ollama API": "Ollama API", "Ollama API settings updated": "Nuashonraíodh socruithe Olama API", - "Ollama Cloud API Key": "", + "Ollama Cloud API Key": "Eochair API Ollama Cloud", "Ollama Version": "Leagan Ollama", "On": "Ar", "OneDrive": "OneDrive", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "Gníomhach amháin nuair a bhíonn an socrú \"Greamaigh Téacs Mór mar Chomhad\" casta air.", + "Only active when the chat input is in focus and an LLM is generating a response.": "Gníomhach ach amháin nuair a bhíonn an t-ionchur comhrá i bhfócas agus nuair a bhíonn LLM ag giniúint freagra.", + "Only active when the chat input is in focus.": "Gníomhach ach amháin nuair a bhíonn an t-ionchur comhrá i bhfócas.", "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 can be triggered when the chat input is in focus.": "", + "Only can be triggered when the chat input is in focus.": "Ní féidir é a spreagadh ach amháin nuair a bhíonn an t-ionchur comhrá i bhfócas.", "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.", "Only markdown files are allowed": "Ní cheadaítear ach comhaid marcála síos", "Only select users and groups with permission can access": "Ní féidir ach le húsáideoirí roghnaithe agus le grúpaí a bhfuil cead acu rochtain a fháil", @@ -1152,7 +1152,7 @@ "Open modal to configure connection": "Oscail an modal chun an nasc a chumrú", "Open Modal To Manage Floating Quick Actions": "Oscail Modúl Chun Gníomhartha Tapa Snámhacha a Bhainistiú", "Open Modal To Manage Image Compression": "Oscail Modúl Chun Comhbhrú Íomhá a Bhainistiú", - "Open Settings": "", + "Open Settings": "Oscail Socruithe", "Open Sidebar": "Oscail an Barra Taoibh", "Open User Profile Menu": "Oscail Roghchlár Próifíl Úsáideora", "Open WebUI can use tools provided by any OpenAPI server.": "Is féidir le WebUI Oscailte uirlisí a úsáid a sholáthraíonn aon fhreastalaí OpenAPI.", @@ -1161,14 +1161,14 @@ "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Tá leagan WebUI oscailte (v{{OPEN_WEBUI_VERSION}}) níos ísle ná an leagan riachtanach (v{{REQUIRED_VERSION}})", "OpenAI": "OpenAI", "OpenAI API": "API OpenAI", - "OpenAI API Base URL": "", - "OpenAI API Key": "", + "OpenAI API Base URL": "Bun-URL API OpenAI", + "OpenAI API Key": "Eochair API OpenAI", "OpenAI API Key is required.": "Tá Eochair API OpenAI ag teastáil.", "OpenAI API settings updated": "Nuashonraíodh socruithe OpenAI API", - "OpenAI API Version": "", + "OpenAI API Version": "Leagan API OpenAI", "OpenAI URL/Key required.": "Teastaíonn URL/eochair OpenAI.", - "OpenAPI": "", - "OpenAPI Spec": "", + "OpenAPI": "OpenAPI", + "OpenAPI Spec": "Sonraíocht OpenAPI", "openapi.json URL or Path": "openapi.json URL nó Cosán", "Optional": "Roghnach", "Options for running a local vision-language model in the picture description. The parameters refer to a model hosted on Hugging Face. This parameter is mutually exclusive with picture_description_api.": "Roghanna chun samhail teanga fís áitiúil a rith i dtuairisc na pictiúr. Tagraíonn na paraiméadair do shamhail a óstáiltear ar Hugging Face. Tá an paraiméadar seo eisiach go frithpháirteach le picture_description_api.", @@ -1225,25 +1225,25 @@ "Please do not close the settings page while loading the model.": "Ná dún leathanach na socruithe agus an tsamhail á luchtú.", "Please enter a message or attach a file.": "Cuir isteach teachtaireacht nó ceangail comhad le do thoil.", "Please enter a prompt": "Cuir isteach leid", - "Please enter a valid ID": "", - "Please enter a valid JSON spec": "", + "Please enter a valid ID": "Cuir isteach aitheantas bailí le do thoil", + "Please enter a valid JSON spec": "Cuir isteach sonraíocht JSON bhailí le do thoil", "Please enter a valid path": "Cuir isteach cosán bailí", "Please enter a valid URL": "Cuir isteach URL bailí", - "Please enter a valid URL.": "", + "Please enter a valid URL.": "Cuir isteach URL bailí le do thoil.", "Please fill in all fields.": "Líon isteach gach réimse le do thoil.", - "Please register the OAuth client": "", - "Please save the connection to persist the OAuth client information and do not change the ID": "", + "Please register the OAuth client": "Cláraigh an cliant OAuth le do thoil", + "Please save the connection to persist the OAuth client information and do not change the ID": "Sábháil an nasc le go gcoimeádfar faisnéis an chliaint OAuth agus ná hathraigh an ID.", "Please select a model first.": "Roghnaigh samhail ar dtús le do thoil.", "Please select a model.": "Roghnaigh samhail le do thoil.", "Please select a reason": "Roghnaigh cúis le do thoil", - "Please select a valid JSON file": "", + "Please select a valid JSON file": "Roghnaigh comhad JSON bailí le do thoil", "Please wait until all files are uploaded.": "Fan go dtí go mbeidh na comhaid go léir uaslódáilte.", "Port": "Port", "Positive attitude": "Dearcadh dearfach", "Prefer not to say": "Is fearr liom gan a rá", "Prefix ID": "Aitheantas Réimír", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Úsáidtear Aitheantas Réimír chun coinbhleachtaí le naisc eile a sheachaint trí réimír a chur le haitheantas na samhla - fág folamh le díchumasú", - "Prevent File Creation": "", + "Prevent File Creation": "Cosc a chur ar Chruthú Comhad", "Preview": "Réamhamharc", "Previous 30 days": "30 lá roimhe seo", "Previous 7 days": "7 lá roimhe seo", @@ -1264,7 +1264,7 @@ "Public": "Poiblí", "Pull \"{{searchValue}}\" from Ollama.com": "Tarraing \"{{searchValue}}\" ó Ollama.com", "Pull a model from Ollama.com": "Tarraing samhail ó Ollama.com", - "Pull Model": "", + "Pull Model": "Samhail Tarraingthe", "pypdfium2": "pypdfium2", "Query Generation Prompt": "Cuirí Ginearáil Ceisteanna", "Querying": "Ag fiosrú", @@ -1274,7 +1274,7 @@ "Re-rank models by topic similarity": "Athrangú samhlacha de réir cosúlachta topaice", "Read": "Léigh", "Read Aloud": "Léigh Ard", - "Read more →": "", + "Read more →": "Léigh tuilleadh →", "Reason": "Cúis", "Reasoning Effort": "Iarracht Réasúnúcháin", "Reasoning Tags": "Clibeanna Réasúnaíochta", @@ -1287,12 +1287,12 @@ "Refused when it shouldn't have": "Diúltaíodh nuair nár chóir dó", "Regenerate": "Athghiniúint", "Regenerate Menu": "Athghin an Roghchlár", - "Regenerate Response": "", - "Register Again": "", - "Register Client": "", - "Registered": "", - "Registration failed": "", - "Registration successful": "", + "Regenerate Response": "Athghinigh Freagairt", + "Register Again": "Cláraigh Arís", + "Register Client": "Cláraigh Cliant", + "Registered": "Cláraithe", + "Registration failed": "Theip ar an gclárú", + "Registration successful": "Clárú rathúil", "Reindex": "Ath-innéacs", "Reindex Knowledge Base Vectors": "Veicteoirí Bonn Eolais a ath-innéacsú", "Release Notes": "Nótaí Scaoilte", @@ -1309,10 +1309,10 @@ "Remove this tag from list": "Bain an clib seo den liosta", "Rename": "Athainmnigh", "Reorder Models": "Athordú na Samhlacha", - "Reply": "", + "Reply": "Freagra", "Reply in Thread": "Freagra i Snáithe", - "Reply to thread...": "", - "Replying to {{NAME}}": "", + "Reply to thread...": "Freagra ar an snáithe...", + "Replying to {{NAME}}": "Ag freagairt do {{NAME}}", "required": "riachtanach", "Reranking Engine": "Inneall Athrangúcháin", "Reranking Model": "Samhail Athrangú", @@ -1412,9 +1412,9 @@ "Select Engine": "Roghnaigh Inneall", "Select how to split message text for TTS requests": "Roghnaigh conas téacs teachtaireachta a roinnt le haghaidh iarratais TTS", "Select Knowledge": "Roghnaigh Eolais", - "Select Method": "", + "Select Method": "Roghnaigh Modh", "Select only one model to call": "Roghnaigh samhail amháin le glaoch", - "Select view": "", + "Select view": "Roghnaigh radharc", "Selected model(s) do not support image inputs": "Ní thacaíonn an/na samhlacha roghnaithe le hionchuir íomhá", "semantic": "séimeantach", "Send": "Seol", @@ -1449,7 +1449,7 @@ "Share Chat": "Comhroinn Comhrá", "Share to Open WebUI Community": "Comhroinn le Pobal OpenWebUI", "Share your background and interests": "Roinn do chúlra agus do leasanna", - "Shared with you": "", + "Shared with you": "Roinnte leat", "Sharing Permissions": "Ceadanna a Roinnt", "Show": "Taispeáin", "Show \"What's New\" modal on login": "Taispeáin módúil \"Cad atá Nua\" ar logáil isteach", @@ -1457,7 +1457,7 @@ "Show Formatting Toolbar": "Taispeáin Barra Uirlisí Formáidithe", "Show image preview": "Taispeáin réamhamharc íomhá", "Show Model": "Taispeáin Samhail", - "Show Shortcuts": "", + "Show Shortcuts": "Taispeáin Aicearraí", "Show your support!": "Taispeáin do thacaíocht!", "Showcased creativity": "Cruthaitheacht léirithe", "Sign in": "Sínigh isteach", @@ -1486,18 +1486,18 @@ "Speech-to-Text": "Urlabhra-go-Téacs", "Speech-to-Text Engine": "Inneall Cainte-go-Téacs", "standard": "caighdeánach", - "Start a new conversation": "", + "Start a new conversation": "Tosaigh comhrá nua", "Start of the channel": "Tús an chainéil", "Start Tag": "Clib Tosaigh", "Status Updates": "Nuashonruithe Stádais", "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", + "Steps": "Céimeanna", "Stop": "Stad", - "Stop Generating": "", + "Stop Generating": "Stop a Ghiniúint", "Stop Sequence": "Stop Seicheamh", "Stream Chat Response": "Freagra Comhrá Sruth", "Stream Delta Chunk Size": "Sruth Méid Leadhb Delta", - "Streamable HTTP": "", + "Streamable HTTP": "HTTP sruthaithe", "Strikethrough": "Stríoc tríd", "Strip Existing OCR": "Bain OCR atá ann cheana", "Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.": "Bain an téacs OCR atá ann cheana féin as an PDF agus athrith OCR. Déantar neamhaird de má tá OCR Fórsála cumasaithe. Is é Bréag an rogha réamhshocraithe.", @@ -1518,12 +1518,12 @@ "System Instructions": "Treoracha Córas", "System Prompt": "Córas Leid", "Table Mode": "Mód Tábla", - "Tag": "", + "Tag": "Clib", "Tags": "Clibeanna", "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.": "Ú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": "", + "Talk to Model": "Labhair leis an tSamhail", "Tap to interrupt": "Tapáil chun cur isteach", "Task List": "Liosta Tascanna", "Task Model": "Samhail Thasc", @@ -1556,7 +1556,7 @@ "The score should be a value between 0.0 (0%) and 1.0 (100%).": "Ba chóir go mbeadh an scór ina luach idir 0.0 (0%) agus 1.0 (100%).", "The stream delta chunk size for the model. Increasing the chunk size will make the model respond with larger pieces of text at once.": "Méid an bhloic delta srutha don tsamhail. Má mhéadaítear an smután, freagróidh an tsamhail le píosaí níos mó téacs ar an toirt.", "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "Teocht an tsamhail. Déanfaidh méadú ar an teocht an tsamhail a fhreagairt níos cruthaithí.", - "The Weight of BM25 Hybrid Search. 0 more semantic, 1 more lexical. Default 0.5": "", + "The Weight of BM25 Hybrid Search. 0 more semantic, 1 more lexical. Default 0.5": "Meáchan Chuardaigh Hibrideach BM25. 0 níos séimeantacha, 1 níos leicseach. Réamhshocrú 0.5", "The width in pixels to compress images to. Leave empty for no compression.": "An leithead i bpicteilíní le híomhánna a chomhbhrú. Fág folamh mura bhfuil aon chomhbhrú ann.", "Theme": "Téama", "Thinking...": "Ag smaoineamh...", @@ -1565,7 +1565,7 @@ "This chat won't appear in history and your messages will not be saved.": "Ní bheidh an comhrá seo le feiceáil sa stair agus ní shábhálfar do theachtaireachtaí.", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cinntíonn sé seo go sábhálfar do chomhráite luachmhara go daingean i do bhunachar sonraí cúltaca Go raibh maith agat!", "This feature is experimental and may be modified or discontinued without notice.": "Is gné turgnamhach í seo agus féadfar í a mhodhnú nó a scor gan fógra.", - "This is a default user permission and will remain enabled.": "", + "This is a default user permission and will remain enabled.": "Is cead úsáideora réamhshocraithe é seo agus fanfaidh sé cumasaithe.", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "Is gné turgnamhach í seo, b'fhéidir nach bhfeidhmeoidh sé mar a bhíothas ag súil leis agus tá sé faoi réir athraithe ag am ar bith.", "This model is not publicly available. Please select another model.": "Níl an tsamhail seo ar fáil go poiblí. Roghnaigh samhail eile le do thoil.", "This option controls how long the model will stay loaded into memory following the request (default: 5m)": "Rialaíonn an rogha seo cé chomh fada a fhanfaidh an tsamhail luchtaithe sa chuimhne i ndiaidh an iarratais (réamhshocraithe: 5m)", @@ -1605,7 +1605,7 @@ "Toast notifications for new updates": "Fógraí tósta le haghaidh nuashonruithe nua", "Today": "Inniu", "Today at {{LOCALIZED_TIME}}": "Inniu ag {{LOCALIZED_TIME}}", - "Toggle Sidebar": "", + "Toggle Sidebar": "Barra Taobh a Athraigh", "Toggle whether current connection is active.": "Athraigh an bhfuil an nasc reatha gníomhach.", "Token": "Comhartha", "Too verbose": "Ró-fhocal", @@ -1628,13 +1628,13 @@ "Transformers": "Claochladáin", "Trouble accessing Ollama?": "Deacracht teacht ar Ollama?", "Trust Proxy Environment": "Timpeallacht Iontaobhais do Phróicís", - "Try adjusting your search or filter to find what you are looking for.": "", + "Try adjusting your search or filter to find what you are looking for.": "Bain triail as do chuardach nó do scagaire a choigeartú chun a bhfuil á lorg agat a fháil.", "Try Again": "Bain Triail Arís", "TTS Model": "Samhail TTS", "TTS Settings": "Socruithe TTS", "TTS Voice": "Guth TTS", "Type": "Cineál", - "Type here...": "", + "Type here...": "Clóscríobh anseo...", "Type Hugging Face Resolve (Download) URL": "Cineál Hugging Face Resolve (Íoslódáil) URL", "Uh-oh! There was an issue with the response.": "Uh-ó! Bhí fadhb leis an bhfreagra.", "UI": "UI", @@ -1643,7 +1643,7 @@ "Unarchive Chat": "Comhrá a dhíchartlannú", "Underline": "Folínigh", "Unknown": "Anaithnid", - "Unknown User": "", + "Unknown User": "Úsáideoir Anaithnid", "Unloads {{FROM_NOW}}": "Díluchtuithe {{FROM_NOW}}", "Unlock mysteries": "Díghlasáil rúndiamhra", "Unpin": "Díphoráil", @@ -1665,7 +1665,7 @@ "Upload directory": "Uaslódáil eolaire", "Upload files": "Uaslódáil comhaid", "Upload Files": "Uaslódáil Comhaid", - "Upload Model": "", + "Upload Model": "Uaslódáil Samhail", "Upload Pipeline": "Uaslódáil píblíne", "Upload Progress": "Dul Chun Cinn an Uaslódála", "Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Dul Chun Cinn Uaslódála: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)", @@ -1674,8 +1674,8 @@ "URL Mode": "Mód URL", "Usage": "Úsáid", "Use '#' in the prompt input to load and include your knowledge.": "Úsáid '#' san ionchur leid chun do chuid eolais a lódáil agus a chur san áireamh.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", - "Use Chat Completions API": "", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "Bain úsáid as an gcríochphointe /v1/chat/completions in ionad /v1/audio/transcriptions le haghaidh cruinneas níos fearr b’fhéidir.", + "Use Chat Completions API": "Úsáid API Comhlánuithe Comhrá", "Use groups to group your users and assign permissions.": "Bain úsáid as grúpaí chun d’úsáideoirí a ghrúpáil agus ceadanna a shannadh.", "Use LLM": "Úsáid LLM", "Use no proxy to fetch page contents.": "Ná húsáid seachfhreastalaí chun inneachar an leathanaigh a fháil.", @@ -1689,7 +1689,7 @@ "Username": "Ainm Úsáideora", "Users": "Úsáideoirí", "Uses DefaultAzureCredential to authenticate": "Úsáideann sé DefaultAzureCredential chun fíordheimhniú", - "Uses OAuth 2.1 Dynamic Client Registration": "", + "Uses OAuth 2.1 Dynamic Client Registration": "Úsáideann Clárú Cliant Dinimiciúil OAuth 2.1", "Using Entire Document": "Ag Úsáid an Doiciméid Iomláin", "Using Focused Retrieval": "Ag Úsáid Aisghabhála Dírithe", "Using the default arena model with all models. Click the plus button to add custom models.": "Ag baint úsáide as an tsamhail réimse réamhshocraithe le gach samhail. Cliceáil an cnaipe móide chun samhlacha saincheaptha a chur leis.", @@ -1723,7 +1723,7 @@ "Web Search in Chat": "Cuardach Gréasáin i gComhrá", "Web Search Query Generation": "Giniúint Iarratas Cuardach Gréasáin", "Webhook URL": "URL Webhook", - "Webpage URL": "", + "Webpage URL": "URL leathanaigh ghréasáin", "WebUI Settings": "Socruithe WebUI", "WebUI URL": "URL WebUI", "WebUI will make requests to \"{{url}}\"": "Déanfaidh WebUI iarratais ar \"{{url}}\"", @@ -1758,8 +1758,8 @@ "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Ní féidir leat comhrá a dhéanamh ach le comhad {{maxCount}} ar a mhéad ag an am.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Is féidir leat do chuid idirghníomhaíochtaí le LLManna a phearsantú ach cuimhní cinn a chur leis tríd an gcnaipe 'Bainistigh' thíos, rud a fhágann go mbeidh siad níos cabhrach agus níos oiriúnaí duit.", "You cannot upload an empty file.": "Ní féidir leat comhad folamh a uaslódáil.", - "You do not have permission to send messages in this channel.": "", - "You do not have permission to send messages in this thread.": "", + "You do not have permission to send messages in this channel.": "Níl cead agat teachtaireachtaí a sheoladh sa chainéal seo.", + "You do not have permission to send messages in this thread.": "Níl cead agat teachtaireachtaí a sheoladh sa snáithe seo.", "You do not have permission to upload files.": "Níl cead agat comhaid a uaslódáil.", "You have no archived conversations.": "Níl aon chomhráite cartlainne agat.", "You have shared this chat": "Tá an comhrá seo roinnte agat", From dc6e1fe6bd1bea77dde8f4dd9bf31f0b23cc6d9d Mon Sep 17 00:00:00 2001 From: Adam Skalicky Date: Mon, 10 Nov 2025 16:48:56 -0800 Subject: [PATCH 024/243] Fetched user_group_ids prior to looping through models with has_access to reduce DB hits for group membership --- backend/open_webui/utils/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/open_webui/utils/models.py b/backend/open_webui/utils/models.py index 6661fadb9e..8b53ce5193 100644 --- a/backend/open_webui/utils/models.py +++ b/backend/open_webui/utils/models.py @@ -12,6 +12,7 @@ from open_webui.functions import get_function_models from open_webui.models.functions import Functions from open_webui.models.models import Models +from open_webui.models.groups import Groups from open_webui.utils.plugin import ( @@ -356,6 +357,7 @@ def get_filtered_models(models, user): or (user.role == "admin" and not BYPASS_ADMIN_ACCESS_CONTROL) ) and not BYPASS_MODEL_ACCESS_CONTROL: filtered_models = [] + user_group_ids = {group.id for group in Groups.get_groups_by_member_id(user.id)} for model in models: if model.get("arena"): if has_access( @@ -364,6 +366,7 @@ def get_filtered_models(models, user): access_control=model.get("info", {}) .get("meta", {}) .get("access_control", {}), + user_group_ids=user_group_ids, ): filtered_models.append(model) continue @@ -377,6 +380,7 @@ def get_filtered_models(models, user): user.id, type="read", access_control=model_info.access_control, + user_group_ids=user_group_ids, ) ): filtered_models.append(model) From 5aa2d01c17cc1284ab1168850c2ba6b6fa3b7fd5 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 11 Nov 2025 00:08:05 -0500 Subject: [PATCH 025/243] refac/fix: rag template placeholder substitution --- backend/open_webui/utils/task.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/utils/task.py b/backend/open_webui/utils/task.py index 84c9308dc1..7f90e96330 100644 --- a/backend/open_webui/utils/task.py +++ b/backend/open_webui/utils/task.py @@ -208,20 +208,21 @@ def rag_template(template: str, context: str, query: str): if "[query]" in context: query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}" template = template.replace("[query]", query_placeholder) - query_placeholders.append(query_placeholder) + query_placeholders.append((query_placeholder, "[query]")) if "{{QUERY}}" in context: query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}" template = template.replace("{{QUERY}}", query_placeholder) - query_placeholders.append(query_placeholder) + query_placeholders.append((query_placeholder, "{{QUERY}}")) template = template.replace("[context]", context) template = template.replace("{{CONTEXT}}", context) + template = template.replace("[query]", query) template = template.replace("{{QUERY}}", query) - for query_placeholder in query_placeholders: - template = template.replace(query_placeholder, query) + for query_placeholder, original_placeholder in query_placeholders: + template = template.replace(query_placeholder, original_placeholder) return template From 8e41fea2d926fe503b41328c6648ea727db38956 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 11 Nov 2025 00:25:56 -0500 Subject: [PATCH 026/243] refac: rm redundant query tag --- backend/open_webui/config.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 8d5b6829dc..cc5527f82a 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -2697,10 +2697,6 @@ Provide a clear and direct response to the user's query, including inline citati {{CONTEXT}} - - -{{QUERY}} - """ RAG_TEMPLATE = PersistentConfig( From 4673e120c413d2e62a852e5c1d6cad8922b82300 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 11 Nov 2025 00:30:11 -0500 Subject: [PATCH 027/243] refac/fix: mineru params breaking change --- .../open_webui/retrieval/loaders/mineru.py | 29 ++++--------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/backend/open_webui/retrieval/loaders/mineru.py b/backend/open_webui/retrieval/loaders/mineru.py index 437f44ae6b..360af804c7 100644 --- a/backend/open_webui/retrieval/loaders/mineru.py +++ b/backend/open_webui/retrieval/loaders/mineru.py @@ -33,13 +33,14 @@ class MinerULoader: self.api_key = api_key # Parse params dict with defaults - params = params or {} + self.params = params or {} self.enable_ocr = params.get("enable_ocr", False) self.enable_formula = params.get("enable_formula", True) self.enable_table = params.get("enable_table", True) self.language = params.get("language", "en") self.model_version = params.get("model_version", "pipeline") - self.page_ranges = params.get("page_ranges", "") + + self.page_ranges = self.params.pop("page_ranges", "") # Validate API mode if self.api_mode not in ["local", "cloud"]: @@ -76,27 +77,10 @@ class MinerULoader: # Build form data for Local API form_data = { + **self.params, "return_md": "true", - "formula_enable": str(self.enable_formula).lower(), - "table_enable": str(self.enable_table).lower(), } - # Parse method based on OCR setting - if self.enable_ocr: - form_data["parse_method"] = "ocr" - else: - form_data["parse_method"] = "auto" - - # Language configuration (Local API uses lang_list array) - if self.language: - form_data["lang_list"] = self.language - - # Backend/model version (Local API uses "backend" parameter) - if self.model_version == "vlm": - form_data["backend"] = "vlm-vllm-engine" - else: - form_data["backend"] = "pipeline" - # Page ranges (Local API uses start_page_id and end_page_id) if self.page_ranges: # For simplicity, if page_ranges is specified, log a warning @@ -236,10 +220,7 @@ class MinerULoader: # Build request body request_body = { - "enable_formula": self.enable_formula, - "enable_table": self.enable_table, - "language": self.language, - "model_version": self.model_version, + **self.params, "files": [ { "name": filename, From cd99df870d4a94a23d4c0a5577ba65e8479db6a2 Mon Sep 17 00:00:00 2001 From: amir ahrari Date: Tue, 11 Nov 2025 15:56:04 +0330 Subject: [PATCH 028/243] feat(i18n): fill in missing Farsi translations --- src/lib/i18n/locales/fa-IR/translation.json | 3544 +++++++++---------- 1 file changed, 1772 insertions(+), 1772 deletions(-) diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json index d8758a4f74..03f9e36022 100644 --- a/src/lib/i18n/locales/fa-IR/translation.json +++ b/src/lib/i18n/locales/fa-IR/translation.json @@ -1,1774 +1,1774 @@ { - "-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`)": "(e.g. `sh webui.sh --api`)", - "(latest)": "(آخرین)", - "(leave blank for to use commercial endpoint)": "", - "[Last] dddd [at] h:mm A": "", - "[Today at] h:mm A": "", - "[Yesterday at] h:mm A": "", - "{{ models }}": "{{ models }}", - "{{COUNT}} Available Tools": "{{COUNT}} ابزار موجود", - "{{COUNT}} characters": "", - "{{COUNT}} extracted lines": "", - "{{COUNT}} hidden lines": "{{COUNT}} خط پنهان", - "{{COUNT}} Replies": "{{COUNT}} پاسخ", - "{{COUNT}} Sources": "", - "{{COUNT}} words": "", - "{{LOCALIZED_DATE}} at {{LOCALIZED_TIME}}": "", - "{{model}} download has been canceled": "", - "{{user}}'s Chats": "{{user}} گفتگوهای", - "{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.", - "*Prompt node ID(s) are required for image generation": "*شناسه(های) گره پرامپت برای تولید تصویر مورد نیاز است", - "1 Source": "", - "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": "درباره", - "Accept Autocomplete Generation\nJump to Prompt Variable": "", - "Access": "دسترسی", - "Access Control": "کنترل دسترسی", - "Accessible to all users": "قابل دسترسی برای همه کاربران", - "Account": "حساب کاربری", - "Account Activation Pending": "فعال\u200cسازی حساب در حال انتظار", - "accurate": "", - "Accurate information": "اطلاعات دقیق", - "Action": "", - "Action not found": "", - "Action Required for Chat Log Storage": "برای ذخیره گزارش گفت\u200cوگو اقدام لازم است", - "Actions": "کنش\u200cها", - "Activate": "فعال کردن", - "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "این دستور را با تایپ \"/{{COMMAND}}\" در ورودی چت فعال کنید.", - "Active": "فعال", - "Active Users": "کاربران فعال", - "Add": "اضافه کردن", - "Add a model ID": "افزودن شناسه مدل", - "Add a short description about what this model does": "افزودن توضیحات کوتاه در مورد انچه که این مدل انجام می دهد", - "Add a tag": "افزودن یک برچسب", - "Add Arena Model": "افزودن مدل Arena", - "Add Connection": "افزودن اتصال", - "Add Content": "افزودن محتوا", - "Add content here": "محتوا را اینجا اضافه کنید", - "Add Custom Parameter": "", - "Add Custom Prompt": "", - "Add Details": "", - "Add Files": "افزودن فایل\u200cها", - "Add Group": "افزودن گروه", - "Add Memory": "افزودن حافظه", - "Add Model": "افزودن مدل", - "Add Reaction": "افزودن واکنش", - "Add Tag": "افزودن برچسب", - "Add Tags": "افزودن برچسب\u200cها", - "Add text content": "افزودن محتوای متنی", - "Add User": "افزودن کاربر", - "Add User Group": "افزودن گروه کاربری", - "Additional Config": "", - "Additional configuration options for marker. This should be a JSON string with key-value pairs. For example, '{\"key\": \"value\"}'. Supported keys include: disable_links, keep_pageheader_in_output, keep_pagefooter_in_output, filter_blank_pages, drop_repeated_text, layout_coverage_threshold, merge_threshold, height_tolerance, gap_threshold, image_threshold, min_line_length, level_count, default_level": "", - "Additional Parameters": "", - "Adjusting these settings will apply changes universally to all users.": "با تنظیم این تنظیمات، تغییرات به طور کلی برای همه کاربران اعمال می\u200cشود.", - "admin": "مدیر", - "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 parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", - "Advanced Params": "پارام\u200cهای پیشرفته", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", - "AI": "", - "All": "همه", - "All chats have been unarchived.": "", - "All Documents": "همهٔ سند\u200cها", - "All models deleted successfully": "همه مدل\u200cها با موفقیت حذف شدند", - "Allow Call": "اجازه تماس", - "Allow Chat Controls": "اجازه کنترل\u200cهای گفتگو", - "Allow Chat Delete": "اجازه حذف گفتگو", - "Allow Chat Deletion": "اجازهٔ حذف گفتگو", - "Allow Chat Edit": "اجازه ویرایش گفتگو", - "Allow Chat Export": "", - "Allow Chat Params": "", - "Allow Chat Share": "", - "Allow Chat System Prompt": "", - "Allow Chat Valves": "", - "Allow Continue Response": "", - "Allow Delete Messages": "", - "Allow File Upload": "اجازه بارگذاری فایل", - "Allow Multiple Models in Chat": "اجازه استفاده از چند مدل در گفتگو", - "Allow non-local voices": "اجازه صداهای غیر محلی", - "Allow Rate Response": "", - "Allow Regenerate Response": "", - "Allow Speech to Text": "اجازه تبدیل گفتار به متن", - "Allow Temporary Chat": "اجازهٔ گفتگوی موقتی", - "Allow Text to Speech": "اجازه تبدیل متن به گفتار", - "Allow User Location": "اجازهٔ موقعیت مکانی کاربر", - "Allow Voice Interruption in Call": "اجازه قطع صدا در تماس", - "Allowed Endpoints": "نقاط پایانی مجاز", - "Allowed File Extensions": "", - "Allowed file extensions for upload. Separate multiple extensions with commas. Leave empty for all file types.": "", - "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.": "جایگزینی برای top_p و هدف آن اطمینان از تعادل کیفیت و تنوع است. پارامتر p نشان\u200cدهنده حداقل احتمال برای در نظر گرفتن یک توکن نسبت به احتمال محتمل\u200cترین توکن است. به عنوان مثال، با p=0.05 و محتمل\u200cترین توکن با احتمال 0.9، لاگیت\u200cهای با مقدار کمتر از 0.045 فیلتر می\u200cشوند.", - "Always": "همیشه", - "Always Collapse Code Blocks": "همیشه بلوک\u200cهای کد را جمع کن", - "Always Expand Details": "همیشه جزئیات را گسترش بده", - "Always Play Notification Sound": "", - "Amazing": "شگفت\u200cانگیز", - "an assistant": "یک دستیار", - "An error occurred while fetching the explanation": "", - "Analytics": "", - "Analyzed": "تحلیل شده", - "Analyzing...": "در حال تحلیل...", - "and": "و", - "and {{COUNT}} more": "و {{COUNT}} مورد دیگر", - "and create a new shared link.": "و یک پیوند اشتراک\u200cگذاری جدید ایجاد کنید.", - "Android": "اندروید", - "API": "", - "API Base URL": "نشانی پایهٔ API", - "API Base URL for Datalab Marker service. Defaults to: https://www.datalab.to/api/v1/marker": "", - "API details for using a vision-language model in the picture description. This parameter is mutually exclusive with picture_description_local.": "", - "API Key": "کلید API", - "API Key created.": "کلید API ساخته شد.", - "API Key Endpoint Restrictions": "محدودیت\u200cهای نقطه پایانی کلید API", - "API keys": "کلیدهای API", - "API Mode": "", - "API Version": "", - "API Version is required": "", - "Application DN": "DN برنامه", - "Application DN Password": "رمز عبور DN برنامه", - "applies to all users with the \"user\" role": "برای همه کاربران با نقش \"کاربر\" اعمال می\u200cشود", - "April": "آوریل", - "Archive": "بایگانی", - "Archive All Chats": "بایگانی همه گفتگوها", - "Archived Chats": "گفتگوهای بایگانی\u200cشده", - "archived-chat-export": "خروجی-گفتگوی-بایگانی-شده", - "Are you sure you want to clear all memories? This action cannot be undone.": "آیا مطمئن هستید که می\u200cخواهید تمام حافظه\u200cها را پاک کنید؟ این عمل قابل بازگشت نیست.", - "Are you sure you want to delete this channel?": "آیا مطمئن هستید که می\u200cخواهید این کانال را حذف کنید؟", - "Are you sure you want to delete this message?": "آیا مطمئن هستید که می\u200cخواهید این پیام را حذف کنید؟", - "Are you sure you want to unarchive all archived chats?": "آیا مطمئن هستید که می\u200cخواهید همه گفتگوهای بایگانی شده را از بایگانی خارج کنید؟", - "Are you sure?": "مطمئنید؟", - "Arena Models": "مدل\u200cهای آرنا", - "Artifacts": "مصنوعات", - "Ask": "بپرس", - "Ask a question": "سوالی بپرسید", - "Assistant": "دستیار", - "Attach File From Knowledge": "", - "Attach Knowledge": "", - "Attach Notes": "", - "Attach Webpage": "", - "Attention to detail": "دقیق", - "Attribute for Mail": "ویژگی برای ایمیل", - "Attribute for Username": "ویژگی برای نام کاربری", - "Audio": "صدا", - "August": "آگوست", - "Auth": "احراز هویت", - "Authenticate": "احراز هویت", - "Authentication": "احراز هویت", - "Auto": "خودکار", - "Auto-Copy Response to Clipboard": "کپی خودکار پاسخ به کلیپ بورد", - "Auto-playback response": "پخش خودکار پاسخ", - "Autocomplete Generation": "تولید تکمیل خودکار", - "Autocomplete Generation Input Max Length": "حداکثر طول ورودی تولید تکمیل خودکار", - "Automatic1111": "اتوماتیک1111", - "AUTOMATIC1111 Api Auth String": "رشته احراز هویت API اتوماتیک1111", - "AUTOMATIC1111 Base URL": "پایه URL AUTOMATIC1111 ", - "AUTOMATIC1111 Base URL is required.": "به URL پایه AUTOMATIC1111 مورد نیاز است.", - "Available list": "فهرست دردسترس", - "Available Tools": "ابزارهای موجود", - "available users": "کاربران در دسترس", - "available!": "در دسترس!", - "Away": "غایب", - "Awful": "وحشتناک", - "Azure AI Speech": "سخنگوی هوش\u200cمصنوعی Azure", - "Azure OpenAI": "Azure OpenAI", - "Azure Region": "منطقهٔ Azure", - "Back": "بازگشت", - "Bad Response": "پاسخ خوب نیست", - "Banners": "بنر", - "Base Model (From)": "مدل پایه (از)", - "Base Model List Cache speeds up access by fetching base models only at startup or on settings save—faster, but may not show recent base model changes.": "", - "Bearer": "", - "before": "قبل", - "Being lazy": "حالت سازنده", - "Beta": "بتا", - "Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7", - "Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7", - "Bio": "", - "Birth Date": "", - "BM25 Weight": "", - "Bocha Search API Key": "کلید API جستجوی Bocha", - "Bold": "", - "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "تقویت یا جریمه توکن\u200cهای خاص برای پاسخ\u200cهای محدود. مقادیر بایاس بین -100 و 100 (شامل) محدود خواهند شد. (پیش\u200cفرض: هیچ)", - "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", - "Brave Search API Key": "کلید API جستجوی شجاع", - "Bullet List": "", - "Button ID": "", - "Button Label": "", - "Button Prompt": "", - "By {{name}}": "توسط {{name}}", - "Bypass Embedding and Retrieval": "دور زدن جاسازی و بازیابی", - "Bypass Web Loader": "", - "Cache Base Model List": "", - "Calendar": "تقویم", - "Call": "تماس", - "Call feature is not supported when using Web STT engine": "ویژگی تماس هنگام استفاده از موتور Web STT پشتیبانی نمی\u200cشود", - "Camera": "دوربین", - "Cancel": "لغو", - "Capabilities": "قابلیت", - "Capture": "ضبط", - "Capture Audio": "", - "Certificate Path": "مسیر گواهینامه", - "Change Password": "تغییر رمز عبور", - "Channel": "", - "Channel deleted successfully": "", - "Channel Name": "نام کانال", - "Channel name cannot be empty.": "", - "Channel updated successfully": "", - "Channels": "کانال\u200cها", - "Character": "شخصیت", - "Character limit for autocomplete generation input": "محدودیت کاراکتر برای ورودی تولید تکمیل خودکار", - "Chart new frontiers": "ترسیم مرزهای جدید", - "Chat": "گفتگو", - "Chat Background Image": "تصویر پس\u200cزمینهٔ گفتگو", - "Chat Bubble UI": "رابط کاربری حبابی گفتگو", - "Chat Controls": "کنترل\u200cهای گفتگو", - "Chat Conversation": "", - "Chat direction": "جهت\u200cگفتگو", - "Chat ID": "", - "Chat moved successfully": "", - "Chat Overview": "نمای کلی گفتگو", - "Chat Permissions": "مجوزهای گفتگو", - "Chat Tags Auto-Generation": "تولید خودکار برچسب\u200cهای گفتگو", - "Chats": "گفتگو\u200cها", - "Check Again": "بررسی دوباره", - "Check for updates": "بررسی به\u200cروزرسانی", - "Checking for updates...": "در حال بررسی برای به\u200cروزرسانی..", - "Choose a model before saving...": "قبل از ذخیره یک مدل را انتخاب کنید...", - "Chunk Overlap": "همپوشانی تکه", - "Chunk Size": "اندازه تکه", - "Ciphers": "رمزها", - "Citation": "استناد", - "Citations": "", - "Clear memory": "پاک کردن حافظه", - "Clear Memory": "پاک کردن حافظه", - "click here": "اینجا کلیک کنید", - "Click here for filter guides.": "برای راهنمای فیلترها اینجا کلیک کنید.", - "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.": "برای یادگیری بیشتر درباره faster-whisper و دیدن مدل\u200cهای موجود اینجا کلیک کنید.", - "Click here to see available models.": "برای دیدن مدل\u200cهای موجود اینجا کلیک کنید.", - "Click here to select": "برای انتخاب اینجا کلیک کنید", - "Click here to select a csv file.": "برای انتخاب یک فایل csv اینجا را کلیک کنید.", - "Click here to select a py file.": "برای انتخاب یک فایل py اینجا کلیک کنید.", - "Click here to upload a workflow.json file.": "برای آپلود فایل workflow.json اینجا کلیک کنید.", - "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.": "دسترسی نوشتن در کلیپ\u200cبورد رد شد. لطفاً تنظیمات مرورگر خود را برای اعطای دسترسی لازم بررسی کنید.", - "Clone": "کلون", - "Clone Chat": "کلون گفتگو", - "Clone of {{TITLE}}": "کلون {{TITLE}}", - "Close": "بسته", - "Close Banner": "", - "Close Configure Connection Modal": "", - "Close modal": "", - "Close Modal": "", - "Close settings modal": "", - "Close Sidebar": "", - "cloud": "", - "CMU ARCTIC speaker embedding name": "", - "Code Block": "", - "Code Editor": "", - "Code execution": "اجرای کد", - "Code Execution": "اجرای کد", - "Code Execution Engine": "موتور اجرای کد", - "Code Execution Timeout": "مهلت اجرای کد", - "Code formatted successfully": "کد با موفقیت قالب\u200cبندی شد", - "Code Interpreter": "مفسر کد", - "Code Interpreter Engine": "موتور مفسر کد", - "Code Interpreter Prompt Template": "قالب پرامپت مفسر کد", - "Collapse": "جمع کردن", - "Collection": "مجموعه", - "Color": "رنگ", - "ComfyUI": "کومیوآی", - "ComfyUI API Key": "کلید API کومیوآی", - "ComfyUI Base URL": "URL پایه کومیوآی", - "ComfyUI Base URL is required.": "URL پایه کومیوآی الزامی است.", - "ComfyUI Workflow": "گردش کار کومیوآی", - "ComfyUI Workflow Nodes": "گره\u200cهای گردش کار کومیوآی", - "Comma separated Node Ids (e.g. 1 or 1,2)": "", - "Command": "دستور", - "Comment": "", - "Completions": "تکمیل\u200cها", - "Compress Images in Channels": "", - "Concurrent Requests": "درخواست های همزمان", - "Config imported successfully": "", - "Configure": "پیکربندی", - "Confirm": "تایید", - "Confirm Password": "تایید رمز عبور", - "Confirm your action": "عملیات خود را تایید کنید", - "Confirm your new password": "رمز عبور جدید خود را تایید کنید", - "Confirm Your Password": "", - "Connect to your own OpenAI compatible API endpoints.": "به نقاط پایانی API سازگار با OpenAI خود متصل شوید.", - "Connect to your own OpenAPI compatible external tool servers.": "به سرورهای ابزار خارجی سازگار با OpenAPI خود متصل شوید.", - "Connection failed": "اتصال ناموفق بود", - "Connection successful": "اتصال موفقیت\u200cآمیز بود", - "Connection Type": "", - "Connections": "ارتباطات", - "Connections saved successfully": "ارتباطات با موفقیت ذخیره شدند", - "Connections settings updated": "", - "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "تلاش برای استدلال در مدل\u200cهای استدلالی را محدود می\u200cکند. فقط برای مدل\u200cهای استدلالی از ارائه\u200cدهندگان خاصی که از تلاش استدلالی پشتیبانی می\u200cکنند قابل اجراست.", - "Contact Admin for WebUI Access": "برای دسترسی به WebUI با مدیر تماس بگیرید", - "Content": "محتوا", - "Content Extraction Engine": "موتور استخراج محتوا", - "Continue Response": "ادامه پاسخ", - "Continue with {{provider}}": "با {{provider}} ادامه دهید", - "Continue with Email": "با ایمیل ادامه دهید", - "Continue with LDAP": "با 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.": "کنترل نحوه تقسیم متن پیام برای درخواست\u200cهای TTS. 'علامت\u200cگذاری' به جملات تقسیم می\u200cکند، 'پاراگراف\u200cها' به پاراگراف\u200cها تقسیم می\u200cکند و 'هیچ\u200cکدام' پیام را به عنوان یک رشته واحد نگه می\u200cدارد.", - "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.": "کنترل تکرار توالی\u200cهای توکن در متن تولید شده. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 1.1) ملایم\u200cتر خواهد بود. در 1، غیرفعال است.", - "Controls": "کنترل\u200cها", - "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "تعادل بین انسجام و تنوع خروجی را کنترل می\u200cکند. مقدار پایین\u200cتر منجر به متن متمرکزتر و منسجم\u200cتر می\u200cشود.", - "Conversation saved successfully": "", - "Copied": "کپی شد", - "Copied link to clipboard": "", - "Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!", - "Copied to clipboard": "به بریده\u200cدان کپی\u200cشد", - "Copy": "کپی", - "Copy Formatted Text": "", - "Copy Last Code Block": "", - "Copy Last Response": "", - "Copy link": "", - "Copy Link": "کپی لینک", - "Copy to clipboard": "کپی به کلیپ\u200cبورد", - "Copying to clipboard was successful!": "کپی کردن در کلیپ بورد با موفقیت انجام شد!", - "CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS باید توسط ارائه\u200cدهنده به درستی پیکربندی شود تا درخواست\u200cها از Open WebUI مجاز باشند.", - "Create": "ایجاد", - "Create a knowledge base": "ایجاد یک پایگاه دانش", - "Create a model": "ایجاد یک مدل", - "Create a new note": "", - "Create Account": "ساخت حساب کاربری", - "Create Admin Account": "ایجاد حساب مدیر", - "Create Channel": "ایجاد کانال", - "Create Folder": "", - "Create Group": "ایجاد گروه", - "Create Image": "", - "Create Knowledge": "ایجاد دانش", - "Create Model": "", - "Create new key": "ساخت کلید جدید", - "Create new secret key": "ساخت کلید مخفی جدید", - "Create Note": "", - "Create your first note by clicking on the plus button below.": "", - "Created at": "ایجاد شده در", - "Created At": "ایجاد شده در", - "Created by": "ایجاد شده توسط", - "Created by you": "", - "CSV Import": "درون\u200cریزی CSV", - "Ctrl+Enter to Send": "Ctrl+Enter برای ارسال", - "Current Model": "مدل فعلی", - "Current Password": "رمز عبور فعلی", - "Custom": "دلخواه", - "Custom description enabled": "", - "Custom Parameter Name": "", - "Custom Parameter Value": "", - "Danger Zone": "منطقه خطر", - "Dark": "تیره", - "Data Controls": "", - "Database": "پایگاه داده", - "Datalab Marker API": "", - "DD/MM/YYYY": "", - "December": "دسامبر", - "Deepgram": "", - "Default": "پیشفرض", - "Default (Open AI)": "پیشفرض (Open AI)", - "Default (SentenceTransformers)": "پیشفرض (SentenceTransformers)", - "Default action buttons will be used.": "", - "Default description enabled": "", - "Default Features": "", - "Default Filters": "", - "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": "مدل پیشفرض به\u200cروزرسانی شد", - "Default Models": "مدل\u200cهای پیش\u200cفرض", - "Default permissions": "مجوزهای پیش\u200cفرض", - "Default permissions updated successfully": "مجوزهای پیش\u200cفرض با موفقیت به\u200cروز شدند", - "Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض", - "Default to 389 or 636 if TLS is enabled": "پیش\u200cفرض به 389 یا 636 اگر TLS فعال باشد", - "Default to ALL": "پیش\u200cفرض به همه", - "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "پیش\u200cفرض به بازیابی قطعه\u200cای برای استخراج محتوای متمرکز و مرتبط، این برای اکثر موارد توصیه می\u200cشود.", - "Default User Role": "نقش کاربر پیش فرض", - "Delete": "حذف", - "Delete a model": "حذف یک مدل", - "Delete All Chats": "حذف همه گفتگوها", - "Delete All Models": "حذف همه مدل\u200cها", - "Delete Chat": "حذف گپ", - "Delete chat?": "گفتگو حذف شود؟", - "Delete folder?": "پوشه حذف شود؟", - "Delete function?": "تابع حذف شود؟", - "Delete Message": "حذف پیام", - "Delete message?": "پیام حذف شود؟", - "Delete Model": "", - "Delete note?": "", - "Delete prompt?": "پرامپت حذف شود؟", - "delete this link": "حذف این لینک", - "Delete tool?": "ابزار حذف شود؟", - "Delete User": "حذف کاربر", - "Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد", - "Deleted {{name}}": "حذف شده {{name}}", - "Deleted User": "کاربر حذف شده", - "Deployment names are required for Azure OpenAI": "", - "Describe Pictures in Documents": "", - "Describe your knowledge base and objectives": "پایگاه دانش و اهداف خود را توصیف کنید", - "Description": "توضیحات", - "Detect Artifacts Automatically": "تشخیص خودکار مصنوعات", - "Dictate": "", - "Didn't fully follow instructions": "نمی تواند دستورالعمل را کامل پیگیری کند", - "Direct": "مستقیم", - "Direct Connections": "اتصالات مستقیم", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "اتصالات مستقیم به کاربران اجازه می\u200cدهد به نقاط پایانی API سازگار با OpenAI خود متصل شوند.", - "Direct Tool Servers": "سرورهای ابزار مستقیم", - "Directory selection was cancelled": "", - "Disable Code Interpreter": "", - "Disable Image Extraction": "", - "Disable image extraction from the PDF. If Use LLM is enabled, images will be automatically captioned. Defaults to False.": "", - "Disabled": "غیرفعال", - "Discover a function": "کشف یک تابع", - "Discover a model": "کشف یک مدل", - "Discover a prompt": "یک اعلان را کشف کنید", - "Discover a tool": "کشف یک ابزار", - "Discover how to use Open WebUI and seek support from the community.": "نحوه استفاده از Open WebUI را کشف کنید و از انجمن پشتیبانی بگیرید.", - "Discover wonders": "کشف شگفتی\u200cها", - "Discover, download, and explore custom functions": "کشف، دانلود و کاوش توابع سفارشی", - "Discover, download, and explore custom prompts": "پرامپت\u200cهای سفارشی را کشف، دانلود و کاوش کنید", - "Discover, download, and explore custom tools": "کشف، دانلود و کاوش ابزارهای سفارشی", - "Discover, download, and explore model presets": "پیش تنظیمات مدل را کشف، دانلود و کاوش کنید", - "Display": "نمایش", - "Display chat title in tab": "", - "Display Emoji in Call": "نمایش اموجی در تماس", - "Display Multi-model Responses in Tabs": "", - "Display the username instead of You in the Chat": "نمایش نام کاربری به جای «شما» در چت", - "Displays citations in the response": "نمایش استنادها در پاسخ", - "Displays status updates (e.g., web search progress) in the response": "", - "Dive into knowledge": "غوطه\u200cور شدن در دانش", - "dlparse_v1": "", - "dlparse_v2": "", - "dlparse_v4": "", - "Do not install functions from sources you do not fully trust.": "توابع را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", - "Do not install tools from sources you do not fully trust.": "ابزارها را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", - "Docling": "داکلینگ", - "Docling Server URL required.": "آدرس سرور داکلینگ مورد نیاز است.", - "Document": "سند", - "Document Intelligence": "هوش اسناد", - "Document Intelligence endpoint required.": "", - "Documentation": "مستندات", - "Documents": "اسناد", - "does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.", - "Domain Filter List": "لیست فیلتر دامنه", - "don't fetch random pipelines from sources you don't trust.": "pipelineهای تصادفی را از منابع غیرقابل اعتماد دریافت نکنید.", - "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": "دانلود کن", - "Download & Delete": "دانلود و حذف", - "Download as SVG": "دانلود به صورت SVG", - "Download canceled": "دانلود لغو شد", - "Download Database": "دانلود پایگاه داده", - "Drag and drop a file to upload or select a file to view": "یک فایل را برای آپلود بکشید و رها کنید یا برای مشاهده یک فایل را انتخاب کنید", - "Draw": "رسم کردن", - "Drop any files here to upload": "", - "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.", - "e.g. \"json\" or a JSON schema": "مثلا \"json\" یا یک طرح JSON", - "e.g. 60": "مثلا 60", - "e.g. A filter to remove profanity from text": "مثلا فیلتری برای حذف ناسزا از متن", - "e.g. en": "", - "e.g. My Filter": "مثلا فیلتر من", - "e.g. My Tools": "مثلا ابزارهای من", - "e.g. my_filter": "مثلا my_filter", - "e.g. my_tools": "مثلا my_tools", - "e.g. pdf, docx, txt": "", - "e.g. Tools for performing various operations": "مثلا ابزارهایی برای انجام عملیات مختلف", - "e.g., 3, 4, 5 (leave blank for default)": "", - "e.g., audio/wav,audio/mpeg,video/* (leave blank for defaults)": "", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "مثلا en-US,ja-JP (برای تشخیص خودکار خالی بگذارید)", - "e.g., westus (leave blank for eastus)": "", - "Edit": "ویرایش", - "Edit Arena Model": "ویرایش مدل آرنا", - "Edit Channel": "ویرایش کانال", - "Edit Connection": "ویرایش اتصال", - "Edit Default Permissions": "ویرایش مجوزهای پیش\u200cفرض", - "Edit Folder": "", - "Edit Image": "", - "Edit Last Message": "", - "Edit Memory": "ویرایش حافظه", - "Edit User": "ویرایش کاربر", - "Edit User Group": "ویرایش گروه کاربری", - "Edit workflow.json content": "", - "edited": "", - "Edited": "", - "Editing": "", - "Eject": "", - "ElevenLabs": "الون\u200cلبز", - "Email": "ایمیل", - "Embark on adventures": "شروع ماجراجویی\u200cها", - "Embedding": "پیدائش", - "Embedding Batch Size": "اندازه دسته پیدائش", - "Embedding Model": "مدل پیدائش", - "Embedding Model Engine": "محرک مدل پیدائش", - "Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید", - "Enable API Key": "فعال\u200cسازی کلید API", - "Enable autocomplete generation for chat messages": "فعال\u200cسازی تولید تکمیل خودکار برای پیام\u200cهای چت", - "Enable Code Execution": "فعال\u200cسازی اجرای کد", - "Enable Code Interpreter": "فعال\u200cسازی مفسر کد", - "Enable Community Sharing": "فعالسازی اشتراک انجمن", - "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.": "فعال\u200cسازی قفل حافظه (mlock) برای جلوگیری از تعویض داده\u200cهای مدل از RAM. این گزینه مجموعه صفحات کاری مدل را در RAM قفل می\u200cکند و اطمینان می\u200cدهد که به دیسک منتقل نمی\u200cشوند. این می\u200cتواند با جلوگیری از خطاهای صفحه و تضمین دسترسی سریع به داده\u200cها، عملکرد را حفظ کند.", - "Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "فعال\u200cسازی نگاشت حافظه (mmap) برای بارگیری داده\u200cهای مدل. این گزینه به سیستم اجازه می\u200cدهد از فضای دیسک به عنوان گسترش RAM استفاده کند با در نظر گرفتن فایل\u200cهای دیسک مانند اینکه در RAM هستند. این می\u200cتواند با اجازه دادن به دسترسی سریع\u200cتر به داده\u200cها، عملکرد مدل را بهبود بخشد. با این حال، ممکن است با همه سیستم\u200cها به درستی کار نکند و می\u200cتواند مقدار قابل توجهی از فضای دیسک را مصرف کند.", - "Enable Message Rating": "فعال\u200cسازی امتیازدهی پیام", - "Enable Mirostat sampling for controlling perplexity.": "فعال\u200cسازی نمونه\u200cبرداری میروستات برای کنترل سردرگمی", - "Enable New Sign Ups": "فعال کردن ثبت نام\u200cهای جدید", - "Enable, disable, or customize the reasoning tags used by the model. \"Enabled\" uses default tags, \"Disabled\" turns off reasoning tags, and \"Custom\" lets you specify your own start and end tags.": "", - "Enabled": "فعال شده", - "End Tag": "", - "Endpoint URL": "", - "Enforce Temporary Chat": "اجبار چت موقت", - "Enhance": "", - "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "اطمینان حاصل کنید که فایل CSV شما شامل چهار ستون در این ترتیب است: نام، ایمیل، رمز عبور، نقش.", - "Enter {{role}} message here": "پیام {{role}} را اینجا وارد کنید", - "Enter a detail about yourself for your LLMs to recall": "برای ذخیره سازی اطلاعات خود، یک توضیح کوتاه درباره خود را وارد کنید", - "Enter a title for the pending user info overlay. Leave empty for default.": "", - "Enter a watermark for the response. Leave empty for none.": "", - "Enter additional headers in JSON format": "", - "Enter additional headers in JSON format (e.g. {{'{{\"X-Custom-Header\": \"value\"}}'}})": "", - "Enter additional parameters in JSON format": "", - "Enter api auth string (e.g. username:password)": "رشته احراز هویت api را وارد کنید (مثلا username:password)", - "Enter Application DN": "DN برنامه را وارد کنید", - "Enter Application DN Password": "رمز عبور DN برنامه را وارد کنید", - "Enter Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7 را وارد کنید", - "Enter Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7 را وارد کنید", - "Enter Bocha Search API Key": "کلید API جستجوی Bocha را وارد کنید", - "Enter Brave Search API Key": "کلید API جستجوی شجاع را وارد کنید", - "Enter certificate path": "مسیر گواهینامه را وارد کنید", - "Enter Chunk Overlap": "مقدار Chunk Overlap را وارد کنید", - "Enter Chunk Size": "مقدار Chunk Size را وارد کنید", - "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "جفت\u200cهای \"توکن:مقدار_بایاس\" را با کاما جدا شده وارد کنید (مثال: 5432:100, 413:-100)", - "Enter Config in JSON format": "", - "Enter content for the pending user info overlay. Leave empty for default.": "", - "Enter coordinates (e.g. 51.505, -0.09)": "", - "Enter Datalab Marker API Base URL": "", - "Enter Datalab Marker API Key": "", - "Enter description": "توضیحات را وارد کنید", - "Enter Docling OCR Engine": "", - "Enter Docling OCR Language(s)": "", - "Enter Docling Server URL": "آدرس سرور Docling را وارد کنید", - "Enter Document Intelligence Endpoint": "نقطه پایانی هوش سند را وارد کنید", - "Enter Document Intelligence Key": "کلید هوش سند را وارد کنید", - "Enter domains separated by commas (e.g., example.com,site.org)": "دامنه\u200cها را با کاما جدا کنید (مثال: example.com,site.org)", - "Enter Exa API Key": "کلید API اکسا را وارد کنید", - "Enter External Document Loader API Key": "", - "Enter External Document Loader URL": "", - "Enter External Web Loader API Key": "", - "Enter External Web Loader URL": "", - "Enter External Web Search API Key": "", - "Enter External Web Search URL": "", - "Enter Firecrawl API Base URL": "آدرس پایه API فایرکراول را وارد کنید", - "Enter Firecrawl API Key": "کلید API فایرکراول را وارد کنید", - "Enter folder name": "", - "Enter Github Raw URL": "آدرس Github Raw را وارد کنید", - "Enter Google PSE API Key": "کلید API گوگل PSE را وارد کنید", - "Enter Google PSE Engine Id": "شناسه موتور PSE گوگل را وارد کنید", - "Enter hex color (e.g. #FF0000)": "", - "Enter ID": "", - "Enter Image Size (e.g. 512x512)": "اندازه تصویر را وارد کنید (مثال: 512x512)", - "Enter Jina API Key": "کلید API جینا را وارد کنید", - "Enter JSON config (e.g., {\"disable_links\": true})": "", - "Enter Jupyter Password": "رمز عبور ژوپیتر را وارد کنید", - "Enter Jupyter Token": "توکن ژوپیتر را وارد کنید", - "Enter Jupyter URL": "آدرس ژوپیتر را وارد کنید", - "Enter Kagi Search API Key": "کلید API جستجوی کاگی را وارد کنید", - "Enter Key Behavior": "رفتار کلید را وارد کنید", - "Enter language codes": "کد زبان را وارد کنید", - "Enter MinerU API Key": "", - "Enter Mistral API Base URL": "", - "Enter Mistral API Key": "کلید API میسترال را وارد کنید", - "Enter Model ID": "شناسه مدل را وارد کنید", - "Enter model tag (e.g. {{modelTag}})": "تگ مدل را وارد کنید (مثلا {{modelTag}})", - "Enter Mojeek Search API Key": "کلید API جستجوی موجیک را وارد کنید", - "Enter name": "", - "Enter New Password": "", - "Enter Number of Steps (e.g. 50)": "تعداد گام\u200cها را وارد کنید (مثال: 50)", - "Enter Ollama Cloud API Key": "", - "Enter Perplexity API Key": "کلید API پرپلکسیتی را وارد کنید", - "Enter Playwright Timeout": "مهلت پلی\u200cرایت را وارد کنید", - "Enter Playwright WebSocket URL": "آدرس وب\u200cسوکت پلی\u200cرایت را وارد کنید", - "Enter proxy URL (e.g. https://user:password@host:port)": "آدرس پراکسی را وارد کنید (مثال: https://user:password@host:port)", - "Enter reasoning effort": "تلاش استدلال را وارد کنید", - "Enter Score": "امتیاز را وارد کنید", - "Enter SearchApi API Key": "کلید API جستجو را وارد کنید", - "Enter SearchApi Engine": "موتور جستجو را وارد کنید", - "Enter Searxng Query URL": "نشانی وب پرسوجوی Searxng را وارد کنید", - "Enter Seed": "مقدار بذر را وارد کنید", - "Enter SerpApi API Key": "کلید API سرپ را وارد کنید", - "Enter SerpApi Engine": "موتور سرپ را وارد کنید", - "Enter Serper API Key": "کلید API سرپر را وارد کنید", - "Enter Serply API Key": "کلید API سرپلی را وارد کنید", - "Enter Serpstack API Key": "کلید API سرپ\u200cاستک را وارد کنید", - "Enter server host": "میزبان سرور را وارد کنید", - "Enter server label": "برچسب سرور را وارد کنید", - "Enter server port": "پورت سرور را وارد کنید", - "Enter Sougou Search API sID": "شناسه API جستجوی سوگو را وارد کنید", - "Enter Sougou Search API SK": "کلید SK جستجوی سوگو را وارد کنید", - "Enter stop sequence": "توالی توقف را وارد کنید", - "Enter system prompt": "پرامپت سیستم را وارد کنید", - "Enter system prompt here": "پرامپت سیستم را اینجا وارد کنید", - "Enter Tavily API Key": "کلید API تاویلی را وارد کنید", - "Enter Tavily Extract Depth": "عمق استخراج تاویلی را وارد کنید", - "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "آدرس عمومی رابط کاربری وب خود را وارد کنید. این آدرس برای تولید پیوندها در اعلان\u200cها استفاده خواهد شد.", - "Enter the URL of the function to import": "", - "Enter the URL to import": "", - "Enter Tika Server URL": "آدرس سرور تیکا را وارد کنید", - "Enter timeout in seconds": "مهلت زمانی را به ثانیه وارد کنید", - "Enter to Send": "برای ارسال اینتر را بزنید", - "Enter Top K": "مقدار Top K را وارد کنید", - "Enter Top K Reranker": "مقدار Top K بازچینش\u200cگر را وارد کنید", - "Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)", - "Enter URL (e.g. http://localhost:11434)": "مقدار URL را وارد کنید (مثال http://localhost:11434)", - "Enter value": "", - "Enter value (true/false)": "", - "Enter Yacy Password": "", - "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", - "Enter Yacy Username": "", - "Enter your code here...": "کد خود را اینجا وارد کنید...", - "Enter your current password": "رمز عبور فعلی خود را وارد کنید", - "Enter Your Email": "ایمیل خود را وارد کنید", - "Enter Your Full Name": "نام کامل خود را وارد کنید", - "Enter your gender": "", - "Enter your message": "پیام خود را وارد کنید", - "Enter your name": "نام خود را وارد کنید", - "Enter Your Name": "", - "Enter your new password": "رمز عبور جدید خود را وارد کنید", - "Enter Your Password": "رمز عبور خود را وارد کنید", - "Enter Your Role": "نقش خود را وارد کنید", - "Enter Your Username": "نام کاربری خود را وارد کنید", - "Enter your webhook URL": "آدرس وب\u200cهوک خود را وارد کنید", - "Entra ID": "", - "Error": "خطا", - "ERROR": "خطا", - "Error accessing directory": "", - "Error accessing Google Drive: {{error}}": "خطا در دسترسی به گوگل درایو: {{error}}", - "Error accessing media devices.": "", - "Error starting recording.": "", - "Error unloading model: {{error}}": "", - "Error uploading file: {{error}}": "خطا در بارگذاری فایل: {{error}}", - "Error: A model with the ID '{{modelId}}' already exists. Please select a different ID to proceed.": "", - "Error: Model ID cannot be empty. Please enter a valid ID to proceed.": "", - "Evaluations": "ارزیابی\u200cها", - "Everyone": "", - "Exa API Key": "کلید API اکسا", - "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "مثال: (&(objectClass=inetOrgPerson)(uid=%s))", - "Example: ALL": "مثال: ALL", - "Example: mail": "مثال: mail", - "Example: ou=users,dc=foo,dc=example": "مثال: ou=users,dc=foo,dc=example", - "Example: sAMAccountName or uid or userPrincipalName": "مثال: sAMAccountName یا uid یا userPrincipalName", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "تعداد جایگاه\u200cهای مجاز در مجوز شما تمام شده است. لطفاً برای افزایش تعداد جایگاه\u200cها با پشتیبانی تماس بگیرید.", - "Exclude": "مستثنی کردن", - "Execute code for analysis": "اجرای کد برای تحلیل", - "Executing **{{NAME}}**...": "در حال اجرای **{{NAME}}**...", - "Expand": "گسترش", - "Experimental": "آزمایشی", - "Explain": "توضیح", - "Explore the cosmos": "کاوش کیهان", - "Export": "خروجی گرفتن", - "Export All Archived Chats": "خروجی گرفتن تمام گفتگوهای بایگانی شده", - "Export All Chats (All Users)": "خروجی گرفتن همه گفتگو\u200cها (همه کاربران)", - "Export chat (.json)": "خروجی گرفتن گفتگو (json)", - "Export Chats": "خروجی گرفتن گفتگوها", - "Export Config to JSON File": "برون\u200cریزی پیکربندی به پروندهٔ JSON", - "Export Presets": "برون\u200cریزی پیش\u200cتنظیم\u200cها", - "Export Prompt Suggestions": "", - "Export to CSV": "برون\u200cریزی به CSV", - "Export Users": "", - "External": "خارجی", - "External Document Loader URL required.": "", - "External Task Model": "", - "External Tools": "", - "External Web Loader API Key": "", - "External Web Loader URL": "", - "External Web Search API Key": "", - "External Web Search URL": "", - "Fade Effect for Streaming Text": "", - "Failed to add file.": "خطا در افزودن پرونده", - "Failed to connect to {{URL}} OpenAPI tool server": "خطا در اتصال به سرور ابزار OpenAPI {{URL}}", - "Failed to copy link": "", - "Failed to create API Key.": "ایجاد کلید API با خطا مواجه شد.", - "Failed to delete note": "", - "Failed to extract content from the file: {{error}}": "", - "Failed to extract content from the file.": "", - "Failed to fetch models": "خطا در دریافت مدل\u200cها", - "Failed to generate title": "", - "Failed to import models": "", - "Failed to load chat preview": "", - "Failed to load file content.": "", - "Failed to move chat": "", - "Failed to read clipboard contents": "خواندن محتوای کلیپ بورد ناموفق بود", - "Failed to render diagram": "", - "Failed to render visualization": "", - "Failed to save connections": "خطا در ذخیره\u200cسازی اتصالات", - "Failed to save conversation": "خطا در ذخیره\u200cسازی گفت\u200cوگو", - "Failed to save models configuration": "خطا در ذخیره\u200cسازی پیکربندی مدل\u200cها", - "Failed to update settings": "خطا در به\u200cروزرسانی تنظیمات", - "Failed to upload file.": "خطا در بارگذاری پرونده", - "fast": "", - "Features": "ویژگی\u200cها", - "Features Permissions": "مجوزهای ویژگی\u200cها", - "February": "فوریه", - "Feedback Details": "", - "Feedback History": "تاریخچهٔ بازخورد", - "Feedbacks": "بازخوردها", - "Feel free to add specific details": "اگر به دلخواه، معلومات خاصی اضافه کنید", - "Female": "", - "File": "پرونده", - "File added successfully.": "پرونده با موفقیت افزوده شد.", - "File content updated successfully.": "محتوای پرونده با موفقیت به\u200cروز شد.", - "File Mode": "حالت پرونده", - "File not found.": "پرونده یافت نشد.", - "File removed successfully.": "پرونده با موفقیت حذف شد.", - "File size should not exceed {{maxSize}} MB.": "حجم پرونده نبایستی از {{maxSize}} MB بیشتر باشد.", - "File Upload": "", - "File uploaded successfully": "پرونده با موفقیت بارگذاری شد", - "Files": "پرونده\u200cها", - "Filter": "", - "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.": "فانگ سرفیس شناسایی شد: نمی توان از نمایه شما به عنوان آواتار استفاده کرد. پیش فرض به عکس پروفایل پیش فرض برگشت داده شد.", - "Firecrawl API Base URL": "آدرس پایه API فایرکراول", - "Firecrawl API Key": "کلید API فایرکراول", - "Floating Quick Actions": "", - "Focus Chat Input": "", - "Folder": "", - "Folder Background Image": "", - "Folder deleted successfully": "پوشه با موفقیت حذف شد", - "Folder Name": "", - "Folder name cannot be empty.": "نام پوشه نمی\u200cتواند خالی باشد.", - "Folder name updated successfully": "نام پوشه با موفقیت به\u200cروز شد", - "Folder updated successfully": "", - "Folders": "", - "Follow up": "", - "Follow Up Generation": "", - "Follow Up Generation Prompt": "", - "Follow-Up Auto-Generation": "", - "Followed instructions perfectly": "دستورالعمل ها را کاملا دنبال کرد", - "Force OCR": "", - "Force OCR on all pages of the PDF. This can lead to worse results if you have good text in your PDFs. Defaults to False.": "", - "Forge new paths": "مسیرهای جدید بسازید", - "Form": "فرم", - "Format Lines": "", - "Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "", - "Format your variables using brackets like this:": "متغیرهای خود را با استفاده از براکت به این شکل قالب\u200cبندی کنید:", - "Formatting may be inconsistent from source.": "", - "Forwards system user OAuth access token to authenticate": "", - "Forwards system user session credentials to authenticate": "اعتبارنامه\u200cهای نشست کاربر سیستم را برای احراز هویت ارسال می\u200cکند", - "Full Context Mode": "حالت متن کامل", - "Function": "تابع", - "Function Calling": "فراخوانی تابع", - "Function created successfully": "تابع با موفقیت ایجاد شد", - "Function deleted successfully": "تابع با موفقیت حذف شد", - "Function Description": "توضیحات تابع", - "Function ID": "شناسه تابع", - "Function imported successfully": "", - "Function is now globally disabled": "تابع به صورت سراسری غیرفعال شد", - "Function is now globally enabled": "تابع به صورت سراسری فعال شد", - "Function Name": "نام تابع", - "Function updated successfully": "تابع با موفقیت به\u200cروز شد", - "Functions": "توابع", - "Functions allow arbitrary code execution.": "توابع اجازه اجرای کد دلخواه را می\u200cدهند.", - "Functions imported successfully": "درون\u200cریزی توابع با موفقیت انجام شد", - "Gemini": "جمینی", - "Gemini API Key": "", - "Gemini API Key is required.": "کلید API جمینی مورد نیاز است.", - "Gemini Base URL": "", - "Gemini Endpoint Method": "", - "Gender": "", - "General": "عمومی", - "Generate": "", - "Generate an image": "تولید یک تصویر", - "Generate Image": "تولید تصویر", - "Generate Message Pair": "", - "Generated Image": "", - "Generating search query": "در حال تولید پرسوجوی جستجو", - "Generating...": "", - "Get information on {{name}} in the UI": "", - "Get started": "شروع کنید", - "Get started with {{WEBUI_NAME}}": "شروع کار با {{WEBUI_NAME}}", - "Global": "سراسری", - "Good Response": "پاسخ خوب", - "Google Drive": "گوگل درایو", - "Google PSE API Key": "گوگل PSE API کلید", - "Google PSE Engine Id": "شناسه موتور PSE گوگل", - "Gravatar": "", - "Group": "گروه", - "Group created successfully": "گروه با موفقیت ایجاد شد", - "Group deleted successfully": "گروه با موفقیت حذف شد", - "Group Description": "توضیحات گروه", - "Group Name": "نام گروه", - "Group updated successfully": "گروه با موفقیت به\u200cروز شد", - "Groups": "گروه\u200cها", - "H1": "", - "H2": "", - "H3": "", - "Haptic Feedback": "بازخورد لمسی", - "Headers": "", - "Headers must be a valid JSON object": "", - "Height": "", - "Hello, {{name}}": "سلام، {{name}}", - "Help": "کمک", - "Help us create the best community leaderboard by sharing your feedback history!": "با به اشتراک گذاشتن تاریخچه بازخورد خود به ما در ایجاد بهترین تابلوی امتیازات جامعه کمک کنید!", - "Hex Color": "رنگ هگز", - "Hex Color - Leave empty for default color": "رنگ هگز - برای رنگ پیش\u200cفرض خالی بگذارید", - "Hide": "پنهان\u200cسازی", - "Hide from Sidebar": "", - "Hide Model": "پنهان کردن مدل", - "High": "", - "High Contrast Mode": "", - "Home": "خانه", - "Host": "میزبان", - "How can I help you today?": "امروز چطور می توانم کمک تان کنم؟", - "How would you rate this response?": "این پاسخ را چگونه ارزیابی می\u200cکنید؟", - "HTML": "", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", - "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.": "من تأیید می\u200cکنم که پیامدهای اقدام خود را خوانده و درک کرده\u200cام. از خطرات مرتبط با اجرای کد دلخواه آگاه هستم و اعتبار منبع را تأیید کرده\u200cام.", - "ID": "شناسه", - "ID cannot contain \":\" or \"|\" characters": "", - "iframe Sandbox Allow Forms": "اجازه فرم\u200cها در سندباکس iframe", - "iframe Sandbox Allow Same Origin": "اجازه منشأ یکسان در سندباکس iframe", - "Ignite curiosity": "کنجکاوی را برانگیزید", - "Image": "تصویر", - "Image Compression": "فشرده\u200cسازی تصویر", - "Image Compression Height": "", - "Image Compression Width": "", - "Image Edit Engine": "", - "Image Generation": "تولید تصویر", - "Image Generation Engine": "موتور تولید تصویر", - "Image Max Compression Size": "حداکثر اندازه فشرده\u200cسازی تصویر", - "Image Max Compression Size height": "", - "Image Max Compression Size width": "", - "Image Prompt Generation": "تولید پرامپت تصویر", - "Image Prompt Generation Prompt": "پرامپت تولید پرامپت تصویر", - "Image Size": "", - "Images": "تصاویر", - "Import": "", - "Import Chats": "درون\u200cریزی گفتگوها", - "Import Config from JSON File": "درون\u200cریزی از پروندهٔ JSON", - "Import From Link": "", - "Import Notes": "", - "Import Presets": "درون\u200cریزی پیش\u200cتنظیم\u200cها", - "Import Prompt Suggestions": "", - "Import successful": "", - "Important Update": "به\u200cروزرسانی مهم", - "In order to force OCR, performing OCR must be enabled.": "", - "Include": "شامل", - "Include `--api-auth` flag when running stable-diffusion-webui": "هنگام اجرای stable-diffusion-webui پرچم `--api-auth` را اضافه کنید", - "Include `--api` flag when running stable-diffusion-webui": "فلگ `--api` را هنکام اجرای stable-diffusion-webui استفاده کنید.", - "Includes SharePoint": "شامل SharePoint", - "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.": "تأثیر می\u200cگذارد که الگوریتم چقدر سریع به بازخورد متن تولید شده پاسخ می\u200cدهد. نرخ یادگیری پایین\u200cتر منجر به تنظیمات کندتر می\u200cشود، در حالی که نرخ یادگیری بالاتر الگوریتم را پاسخگوتر می\u200cکند.", - "Info": "اطلاعات", - "Initials": "", - "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "کل محتوا را به عنوان زمینه برای پردازش جامع تزریق کنید، این برای پرس\u200cوجوهای پیچیده توصیه می\u200cشود.", - "Input": "", - "Input Key (e.g. text, unet_name, steps)": "", - "Input Variables": "", - "Insert": "", - "Insert Follow-Up Prompt to Input": "", - "Insert Prompt as Rich Text": "", - "Insert Suggestion Prompt to Input": "", - "Install from Github URL": "نصب از ادرس Github", - "Instant Auto-Send After Voice Transcription": "ارسال خودکار فوری پس از رونویسی صوتی", - "Integration": "یکپارچه\u200cسازی", - "Integrations": "", - "Interface": "رابط", - "Invalid file content": "", - "Invalid file format.": "قالب فایل نامعتبر است.", - "Invalid JSON file": "", - "Invalid JSON format for ComfyUI Edit Workflow.": "", - "Invalid JSON format for ComfyUI Workflow.": "", - "Invalid JSON format for Parameters": "", - "Invalid JSON format in Additional Config": "", - "Invalid JSON format in MinerU Parameters": "", - "Invalid Tag": "تگ نامعتبر", - "is typing...": "در حال تایپ...", - "Italic": "", - "January": "ژانویه", - "Jina API Key": "کلید API جینا", - "join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.", - "JSON": "JSON", - "JSON Preview": "پیش نمایش JSON", - "JSON Spec": "", - "July": "ژوئن", - "June": "جولای", - "Jupyter Auth": "احراز هویت ژوپیتر", - "Jupyter URL": "آدرس ژوپیتر", - "JWT Expiration": "JWT انقضای", - "JWT Token": "JWT توکن", - "Kagi Search API Key": "کلید API جستجوی کاگی", - "Keep Follow-Up Prompts in Chat": "", - "Keep in Sidebar": "", - "Key": "کلید", - "Key is required": "", - "Keyboard shortcuts": "میانبرهای صفحه کلید", - "Keyboard Shortcuts": "", - "Knowledge": "دانش", - "Knowledge Access": "دسترسی به دانش", - "Knowledge Base": "", - "Knowledge created successfully.": "دانش با موفقیت ایجاد شد.", - "Knowledge deleted successfully.": "دانش با موفقیت حذف شد.", - "Knowledge Description": "", - "Knowledge Name": "", - "Knowledge Public Sharing": "اشتراک\u200cگذاری عمومی دانش", - "Knowledge reset successfully.": "دانش با موفقیت بازنشانی شد.", - "Knowledge updated successfully": "دانش با موفقیت به\u200cروز شد", - "Kokoro.js (Browser)": "Kokoro.js (مرورگر)", - "Kokoro.js Dtype": "نوع داده Kokoro.js", - "Label": "برچسب", - "Landing Page Mode": "حالت صفحه فرود", - "Language": "زبان", - "Language Locales": "محلی\u200cسازی زبان", - "Last Active": "آخرین فعال", - "Last Modified": "آخرین تغییر", - "Last reply": "آخرین پاسخ", - "LDAP": "LDAP", - "LDAP server updated": "سرور LDAP به\u200cروز شد", - "Leaderboard": "تابلوی امتیازات", - "Learn More": "", - "Learn more about OpenAPI tool servers.": "درباره سرورهای ابزار OpenAPI بیشتر بدانید.", - "Learn more about Voxtral transcription.": "", - "Leave empty for no compression": "", - "Leave empty for unlimited": "برای نامحدود خالی بگذارید", - "Leave empty to include all models from \"{{url}}\" endpoint": "", - "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "برای شامل شدن همه مدل\u200cها از نقطه پایانی \"{{url}}/api/tags\" خالی بگذارید", - "Leave empty to include all models from \"{{url}}/models\" endpoint": "برای شامل شدن همه مدل\u200cها از نقطه پایانی \"{{url}}/models\" خالی بگذارید", - "Leave empty to include all models or select specific models": "برای شامل شدن همه مدل\u200cها خالی بگذارید یا مدل\u200cهای خاص را انتخاب کنید", - "Leave empty to use the default model (voxtral-mini-latest).": "", - "Leave empty to use the default prompt, or enter a custom prompt": "برای استفاده از پرامپت پیش\u200cفرض خالی بگذارید، یا یک پرامپت سفارشی وارد کنید", - "Leave model field empty to use the default model.": "برای استفاده از مدل پیش\u200cفرض، فیلد مدل را خالی بگذارید.", - "Legacy": "", - "lexical": "", - "License": "مجوز", - "Lift List": "", - "Light": "روشن", - "Listening...": "در حال گوش دادن...", - "Llama.cpp": "Llama.cpp", - "LLMs can make mistakes. Verify important information.": "مدل\u200cهای زبانی بزرگ می\u200cتوانند اشتباه کنند. اطلاعات مهم را راستی\u200cآزمایی کنید.", - "Loader": "بارگذار", - "Loading Kokoro.js...": "در حال بارگذاری Kokoro.js...", - "Loading...": "در حال بارگذاری...", - "local": "", - "Local": "محلی", - "Local Task Model": "", - "Location access not allowed": "دسترسی به موقعیت مکانی مجاز نیست", - "Lost": "گم شده", - "Low": "", - "LTR": "LTR", - "Made by Open WebUI Community": "ساخته شده توسط OpenWebUI Community", - "Make password visible in the user interface": "", - "Make sure to enclose them with": "مطمئن شوید که آنها را با این محصور کنید:", - "Make sure to export a workflow.json file as API format from ComfyUI.": "مطمئن شوید که یک فایل workflow.json را به عنوان قالب API از ComfyUI صادر کنید.", - "Male": "", - "Manage": "مدیریت", - "Manage Direct Connections": "مدیریت اتصالات مستقیم", - "Manage Models": "مدیریت مدل\u200cها", - "Manage Ollama": "مدیریت ollama", - "Manage Ollama API Connections": "مدیریت اتصالات API ollama", - "Manage OpenAI API Connections": "مدیریت اتصالات API اوپن\u200cای\u200cآی", - "Manage Pipelines": "مدیریت خطوط لوله", - "Manage Tool Servers": "مدیریت سرورهای ابزار", - "Manage your account information.": "", - "March": "مارچ", - "Markdown": "", - "Markdown (Header)": "", - "Max Speakers": "", - "Max Upload Count": "حداکثر تعداد آپلود", - "Max Upload Size": "حداکثر اندازه آپلود", - "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.", - "May": "ماهی", - "MCP": "", - "MCP support is experimental and its specification changes often, which can lead to incompatibilities. OpenAPI specification support is directly maintained by the Open WebUI team, making it the more reliable option for compatibility.": "", - "Medium": "", - "Memories accessible by LLMs will be shown here.": "حافظه های دسترسی به LLMs در اینجا نمایش داده می شوند.", - "Memory": "حافظه", - "Memory added successfully": "حافظه با موفقیت اضافه شد", - "Memory cleared successfully": "حافظه با موفقیت پاک شد", - "Memory deleted successfully": "حافظه با موفقیت حذف شد", - "Memory updated successfully": "حافظه با موفقیت به\u200cروز شد", - "Merge Responses": "ادغام پاسخ\u200cها", - "Merged Response": "پاسخ ادغام شده", - "Message": "", - "Message rating should be enabled to use this feature": "برای استفاده از این ویژگی باید امتیازدهی پیام\u200cها فعال باشد", - "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "پیام های شما بعد از ایجاد لینک شما به اشتراک نمی گردد. کاربران با لینک URL می توانند چت اشتراک را مشاهده کنند.", - "Microsoft OneDrive": "", - "Microsoft OneDrive (personal)": "", - "Microsoft OneDrive (work/school)": "", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", - "Mistral OCR": "تشخیص متن میسترال", - "Mistral OCR API Key required.": "کلید API تشخیص متن میسترال مورد نیاز است.", - "MistralAI": "", - "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": "مدل {{modelName}} قادر به بینایی نیست", - "Model {{name}} is now {{status}}": "مدل {{name}} در حال حاضر {{status}}", - "Model {{name}} is now hidden": "مدل {{name}} اکنون مخفی است", - "Model {{name}} is now visible": "مدل {{name}} اکنون قابل مشاهده است", - "Model accepts file inputs": "", - "Model accepts image inputs": "مدل ورودی تصویر را می\u200cپذیرد", - "Model can execute code and perform calculations": "", - "Model can generate images based on text prompts": "", - "Model can search the web for information": "", - "Model created successfully!": "مدل با موفقیت ایجاد شد!", - "Model filesystem path detected. Model shortname is required for update, cannot continue.": "مسیر فایل سیستم مدل یافت شد. برای بروزرسانی نیاز است نام کوتاه مدل وجود داشته باشد.", - "Model Filtering": "فیلتر کردن مدل", - "Model ID": "شناسه مدل", - "Model ID is required.": "", - "Model IDs": "شناسه\u200cهای مدل", - "Model Name": "نام مدل", - "Model name already exists, please choose a different one": "", - "Model Name is required.": "", - "Model not selected": "مدل انتخاب نشده", - "Model Params": "مدل پارامز", - "Model Permissions": "مجوزهای مدل", - "Model unloaded successfully": "", - "Model updated successfully": "مدل با موفقیت به\u200cروز شد", - "Model(s) do not support file upload": "", - "Modelfile Content": "محتویات فایل مدل", - "Models": "مدل\u200cها", - "Models Access": "دسترسی به مدل\u200cها", - "Models configuration saved successfully": "پیکربندی مدل\u200cها با موفقیت ذخیره شد", - "Models imported successfully": "", - "Models Public Sharing": "اشتراک\u200cگذاری عمومی مدل\u200cها", - "Mojeek Search API Key": "کلید API جستجوی موجیک", - "More": "بیشتر", - "More Concise": "", - "More Options": "", - "Move": "", - "Name": "نام", - "Name and ID are required, please fill them out": "", - "Name your knowledge base": "پایگاه دانش خود را نام\u200cگذاری کنید", - "Native": "بومی", - "New Button": "", - "New Chat": "گپ جدید", - "New Folder": "پوشه جدید", - "New Function": "", - "New Knowledge": "", - "New Model": "", - "New Note": "", - "New Password": "رمز عبور جدید", - "New Prompt": "", - "New Temporary Chat": "", - "New Tool": "", - "new-channel": "کانال-جدید", - "Next message": "", - "No authentication": "", - "No chats found": "", - "No chats found for this user.": "", - "No chats found.": "", - "No content": "", - "No content found": "محتوایی یافت نشد", - "No content found in file.": "", - "No content to speak": "محتوایی برای خواندن وجود ندارد", - "No conversation to save": "", - "No distance available": "فاصله\u200cای در دسترس نیست", - "No expiration can pose security risks.": "", - "No feedbacks found": "بازخوردی یافت نشد", - "No file selected": "فایلی انتخاب نشده است", - "No functions found": "", - "No groups with access, add a group to grant access": "هیچ گروهی با دسترسی وجود ندارد، یک گروه برای اعطای دسترسی اضافه کنید", - "No HTML, CSS, or JavaScript content found.": "محتوای HTML، CSS یا JavaScript یافت نشد.", - "No inference engine with management support found": "موتور استنتاج با پشتیبانی مدیریت یافت نشد", - "No knowledge found": "دانشی یافت نشد", - "No memories to clear": "حافظه\u200cای برای پاک کردن وجود ندارد", - "No model IDs": "شناسه مدلی وجود ندارد", - "No models found": "مدلی یافت نشد", - "No models selected": "مدلی انتخاب نشده است", - "No Notes": "", - "No notes found": "", - "No prompts found": "", - "No results": "نتیجه\u200cای یافت نشد", - "No results found": "نتیجه\u200cای یافت نشد", - "No search query generated": "پرسوجوی جستجویی ایجاد نشده است", - "No source available": "منبعی در دسترس نیست", - "No sources found": "", - "No suggestion prompts": "بدون پرامپت پیشنهادی", - "No tools found": "", - "No users were found.": "کاربری یافت نشد.", - "No valves": "", - "No valves to update": "شیری برای به\u200cروزرسانی وجود ندارد", - "Node Ids": "", - "None": "هیچ کدام", - "Not factually correct": "اشتباهی فکری نیست", - "Not helpful": "مفید نیست", - "Not Registered": "", - "Note": "", - "Note deleted successfully": "", - "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": "یادداشت\u200cها", - "Notes Public Sharing": "", - "Notification Sound": "صدای اعلان", - "Notification Webhook": "وب\u200cهوک اعلان", - "Notifications": "اعلان", - "November": "نوامبر", - "OAuth": "", - "OAuth 2.1": "", - "OAuth ID": "شناسه OAuth", - "October": "اکتبر", - "Off": "خاموش", - "Okay, Let's Go!": "باشه، بزن بریم!", - "OLED Dark": "OLED تیره", - "Ollama": "Ollama", - "Ollama API": "Ollama API", - "Ollama API settings updated": "تنظیمات API ollama به\u200cروز شد", - "Ollama Cloud API Key": "", - "Ollama Version": "نسخه ollama", - "On": "روشن", - "OneDrive": "وان\u200cدرایو", - "Only active when \"Paste Large Text as File\" setting is toggled on.": "", - "Only active when the chat input is in focus and an LLM is generating a response.": "", - "Only active when the chat input is in focus.": "", - "Only alphanumeric characters and hyphens are allowed": "فقط حروف الفبا، اعداد و خط تیره مجاز هستند", - "Only alphanumeric characters and hyphens are allowed in the command string.": "فقط کاراکترهای الفبایی و خط فاصله در رشته فرمان مجاز هستند.", - "Only can be triggered when the chat input is in focus.": "", - "Only collections can be edited, create a new knowledge base to edit/add documents.": "فقط مجموعه\u200cها قابل ویرایش هستند، برای ویرایش/افزودن اسناد یک پایگاه دانش جدید ایجاد کنید.", - "Only markdown files are allowed": "", - "Only select users and groups with permission can access": "فقط کاربران و گروه\u200cهای دارای مجوز می\u200cتوانند دسترسی داشته باشند", - "Oops! Looks like the URL is invalid. Please double-check and try again.": "اوه! به نظر می رسد URL نامعتبر است. لطفاً دوباره بررسی کنید و دوباره امتحان کنید.", - "Oops! There are files still uploading. Please wait for the upload to complete.": "اوه! هنوز فایل\u200cهایی در حال آپلود هستند. لطفاً منتظر تکمیل آپلود بمانید.", - "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 link": "", - "Open modal to configure connection": "", - "Open Modal To Manage Floating Quick Actions": "", - "Open Modal To Manage Image Compression": "", - "Open Settings": "", - "Open Sidebar": "", - "Open User Profile Menu": "", - "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI می\u200cتواند از ابزارهای ارائه شده توسط هر سرور OpenAPI استفاده کند.", - "Open WebUI uses faster-whisper internally.": "Open WebUI به صورت داخلی از faster-whisper استفاده می\u200cکند.", - "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI از SpeechT5 و جاسازی\u200cهای گوینده CMU Arctic استفاده می\u200cکند.", - "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "نسخه Open WebUI (v{{OPEN_WEBUI_VERSION}}) پایین\u200cتر از نسخه مورد نیاز (v{{REQUIRED_VERSION}}) است", - "OpenAI": "OpenAI", - "OpenAI API": "OpenAI API", - "OpenAI API Base URL": "", - "OpenAI API Key": "", - "OpenAI API Key is required.": "مقدار کلید OpenAI API مورد نیاز است.", - "OpenAI API settings updated": "تنظیمات API اوپن\u200cای\u200cآی به\u200cروز شد", - "OpenAI API Version": "", - "OpenAI URL/Key required.": "URL/Key OpenAI مورد نیاز است.", - "OpenAPI": "", - "OpenAPI Spec": "", - "openapi.json URL or Path": "", - "Optional": "", - "Options for running a local vision-language model in the picture description. The parameters refer to a model hosted on Hugging Face. This parameter is mutually exclusive with picture_description_api.": "", - "or": "یا", - "Ordered List": "", - "Organize your users": "کاربران خود را سازماندهی کنید", - "Other": "دیگر", - "OUTPUT": "خروجی", - "Output format": "قالب خروجی", - "Output Format": "", - "Overview": "نمای کلی", - "page": "صفحه", - "Paginate": "", - "Parameters": "", - "Password": "رمز عبور", - "Passwords do not match.": "", - "Paste Large Text as File": "چسباندن متن بزرگ به عنوان فایل", - "PDF Backend": "", - "PDF document (.pdf)": "PDF سند (.pdf)", - "PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)", - "pending": "در انتظار", - "Pending": "", - "Pending User Overlay Content": "", - "Pending User Overlay Title": "", - "Perform OCR": "", - "Permission denied when accessing media devices": "دسترسی به دستگاه\u200cهای رسانه رد شد", - "Permission denied when accessing microphone": "دسترسی به میکروفون رد شد", - "Permission denied when accessing microphone: {{error}}": "هنگام دسترسی به میکروفون، اجازه داده نشد: {{error}}", - "Permissions": "مجوزها", - "Perplexity API Key": "کلید API پرپلکسیتی", - "Perplexity Model": "", - "Perplexity Search Context Usage": "", - "Personalization": "شخصی سازی", - "Picture Description API Config": "", - "Picture Description Local Config": "", - "Picture Description Mode": "", - "Pin": "پین کردن", - "Pinned": "پین شده", - "Pioneer insights": "بینش\u200cهای پیشگام", - "Pipe": "", - "Pipeline": "", - "Pipeline deleted successfully": "خط لوله با موفقیت حذف شد", - "Pipeline downloaded successfully": "خط لوله با موفقیت دانلود شد", - "Pipelines": "خط لوله", - "Pipelines are a plugin system with arbitrary code execution —": "Pipelines یک سیستم افزونه با امکان اجرای دلخواه کد است —", - "Pipelines Not Detected": "خطوط لوله شناسایی نشدند", - "Pipelines Valves": "شیرالات خطوط لوله", - "Plain text (.md)": "", - "Plain text (.txt)": "متن ساده (.txt)", - "Playground": "زمین بازی", - "Playwright Timeout (ms)": "مهلت زمانی پلی\u200cرایت (میلی\u200cثانیه)", - "Playwright WebSocket URL": "آدرس وب\u200cسوکت پلی\u200cرایت", - "Please carefully review the following warnings:": "لطفاً هشدارهای زیر را با دقت بررسی کنید:", - "Please do not close the settings page while loading the model.": "لطفاً در حین بارگیری مدل، صفحه تنظیمات را نبندید.", - "Please enter a message or attach a file.": "", - "Please enter a prompt": "لطفاً یک پرامپت وارد کنید", - "Please enter a valid ID": "", - "Please enter a valid JSON spec": "", - "Please enter a valid path": "لطفاً یک مسیر معتبر وارد کنید", - "Please enter a valid URL": "لطفاً یک URL معتبر وارد کنید", - "Please enter a valid URL.": "", - "Please fill in all fields.": "لطفاً همه فیلدها را پر کنید.", - "Please register the OAuth client": "", - "Please save the connection to persist the OAuth client information and do not change the ID": "", - "Please select a model first.": "لطفاً ابتدا یک مدل انتخاب کنید.", - "Please select a model.": "لطفاً یک مدل انتخاب کنید.", - "Please select a reason": "لطفاً یک دلیل انتخاب کنید", - "Please select a valid JSON file": "", - "Please wait until all files are uploaded.": "", - "Port": "پورت", - "Positive attitude": "نظرات مثبت", - "Prefer not to say": "", - "Prefix ID": "شناسه پیشوند", - "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "شناسه پیشوند برای جلوگیری از تداخل با سایر اتصالات با افزودن پیشوند به شناسه\u200cهای مدل استفاده می\u200cشود - برای غیرفعال کردن خالی بگذارید", - "Prevent File Creation": "", - "Preview": "", - "Previous 30 days": "30 روز قبل", - "Previous 7 days": "7 روز قبل", - "Previous message": "", - "Private": "خصوصی", - "Profile": "پروفایل", - "Prompt": "پرامپت", - "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "پیشنهاد (برای مثال: به من بگوید چیزی که برای من یک کاربرد داره درباره ایران)", - "Prompt Autocompletion": "تکمیل خودکار پرامپت", - "Prompt Content": "محتویات پرامپت", - "Prompt created successfully": "پرامپت با موفقیت ایجاد شد", - "Prompt suggestions": "پیشنهادات پرامپت", - "Prompt updated successfully": "پرامپت با موفقیت به\u200cروز شد", - "Prompts": "پرامپت\u200cها", - "Prompts Access": "دسترسی پرامپت\u200cها", - "Prompts Public Sharing": "اشتراک\u200cگذاری عمومی پرامپت\u200cها", - "Provider Type": "", - "Public": "عمومی", - "Pull \"{{searchValue}}\" from Ollama.com": "بازگرداندن \"{{searchValue}}\" از Ollama.com", - "Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com", - "Pull Model": "", - "pypdfium2": "", - "Query Generation Prompt": "پرامپت تولید کوئری", - "Querying": "", - "Quick Actions": "", - "RAG Template": "RAG الگوی", - "Rating": "امتیازدهی", - "Re-rank models by topic similarity": "رتبه\u200cبندی مجدد مدل\u200cها براساس شباهت موضوعی", - "Read": "خواندن", - "Read Aloud": "خواندن به صورت صوتی", - "Read more →": "", - "Reason": "", - "Reasoning Effort": "تلاش استدلال", - "Reasoning Tags": "", - "Record": "", - "Record voice": "ضبط صدا", - "Redirecting you to Open WebUI Community": "در حال هدایت به OpenWebUI Community", - "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.": "احتمال تولید محتوای بی\u200cمعنی را کاهش می\u200cدهد. مقدار بالاتر (مثلاً 100) پاسخ\u200cهای متنوع\u200cتری می\u200cدهد، در حالی که مقدار پایین\u200cتر (مثلاً 10) محافظه\u200cکارانه\u200cتر خواهد بود.", - "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "به خود به عنوان \"کاربر\" اشاره کنید (مثلاً، \"کاربر در حال یادگیری اسپانیایی است\")", - "Reference Chats": "", - "Refused when it shouldn't have": "رد شده زمانی که باید نباشد", - "Regenerate": "تولید مجدد", - "Regenerate Menu": "", - "Regenerate Response": "", - "Register Again": "", - "Register Client": "", - "Registered": "", - "Registration failed": "", - "Registration successful": "", - "Reindex": "فهرست\u200cبندی مجدد", - "Reindex Knowledge Base Vectors": "فهرست\u200cبندی مجدد بردارهای پایگاه دانش", - "Release Notes": "یادداشت\u200cهای انتشار", - "Releases": "", - "Relevance": "ارتباط", - "Relevance Threshold": "آستانه ارتباط", - "Remember Dismissal": "", - "Remove": "حذف", - "Remove {{MODELID}} from list.": "", - "Remove file": "", - "Remove File": "", - "Remove image": "", - "Remove Model": "حذف مدل", - "Remove this tag from list": "", - "Rename": "تغییر نام", - "Reorder Models": "ترتیب مجدد مدل\u200cها", - "Reply": "", - "Reply in Thread": "پاسخ در رشته", - "Reply to thread...": "", - "Replying to {{NAME}}": "", - "required": "", - "Reranking Engine": "", - "Reranking Model": "مدل ری\u200cشناسی مجدد غیرفعال است", - "Reset": "بازنشانی", - "Reset All Models": "بازنشانی همه مدل\u200cها", - "Reset Image": "بازنشانی تصویر", - "Reset Upload Directory": "بازنشانی پوشه آپلود", - "Reset Vector Storage/Knowledge": "بازنشانی ذخیره\u200cسازی برداری/دانش", - "Reset view": "بازنشانی نما", - "Response": "", - "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "اعلان\u200cهای پاسخ نمی\u200cتوانند فعال شوند زیرا مجوزهای وب\u200cسایت رد شده\u200cاند. لطفاً تنظیمات مرورگر خود را برای اعطای دسترسی لازم بررسی کنید.", - "Response splitting": "تقسیم پاسخ", - "Response Watermark": "", - "Result": "نتیجه", - "RESULT": "نتیجه", - "Retrieval": "بازیابی", - "Retrieval Query Generation": "تولید کوئری بازیابی", - "Retrieved {{count}} sources": "", - "Retrieved {{count}} sources_one": "", - "Retrieved {{count}} sources_other": "", - "Retrieved 1 source": "", - "Rich Text Input for Chat": "ورودی متن غنی برای چت", - "RK": "RK", - "Role": "نقش", - "Rosé Pine": "Rosé Pine", - "Rosé Pine Dawn": "Rosé Pine Dawn", - "RTL": "RTL", - "Run": "اجرا", - "Running": "در حال اجرا", - "Running...": "در حال اجرا...", - "Save": "ذخیره", - "Save & Create": "ذخیره و ایجاد", - "Save & Update": "ذخیره و به\u200cروزرسانی", - "Save As Copy": "ذخیره به صویت رونوشت", - "Save Chat": "", - "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": "ذخیره گزارش\u200cهای چت مستقیماً در حافظه مرورگر شما دیگر پشتیبانی نمی\u200cشود. لطفاً با کلیک بر روی دکمه زیر، چند لحظه برای دانلود و حذف گزارش های چت خود وقت بگذارید. نگران نباشید، شما به راحتی می توانید گزارش های چت خود را از طریق بکند دوباره وارد کنید", - "Scroll On Branch Change": "", - "Search": "جستجو", - "Search a model": "جستجوی یک مدل", - "Search all emojis": "", - "Search Base": "پایه جستجو", - "Search Chats": "جستجو گفتگوها", - "Search Collection": "جستجوی مجموعه\u200cها", - "Search Filters": "فیلترهای جستجو", - "search for archived chats": "", - "search for folders": "", - "search for pinned chats": "", - "search for shared chats": "", - "search for tags": "جستجو برای برچسب\u200cها", - "Search Functions": "جستجوی توابع", - "Search In Models": "", - "Search Knowledge": "جستجوی دانش", - "Search Models": "جستجوی مدل\u200cها", - "Search Notes": "", - "Search options": "گزینه\u200cهای جستجو", - "Search Prompts": "جستجوی پرامپت\u200cها", - "Search Result Count": "تعداد نتایج جستجو", - "Search the internet": "جستجوی اینترنت", - "Search Tools": "ابزارهای جستجو", - "SearchApi API Key": "کلید API SearchApi", - "SearchApi Engine": "موتور SearchApi", - "Searched {{count}} sites": "جستجوی {{count}} سایت", - "Searching": "", - "Searching \"{{searchQuery}}\"": "جستجوی «{{searchQuery}}»", - "Searching Knowledge for \"{{searchQuery}}\"": "جستجوی دانش برای «{{searchQuery}}»", - "Searching the web": "", - "Searxng Query URL": "نشانی وب جستجوی Searxng", - "See readme.md for instructions": "برای مشاهده دستورالعمل\u200cها به readme.md مراجعه کنید", - "See what's new": "ببینید موارد جدید چه بوده", - "Seed": "هسته", - "Select": "", - "Select a base model": "انتخاب یک مدل پایه", - "Select a base model (e.g. llama3, gpt-4o)": "", - "Select a conversation to preview": "", - "Select a engine": "انتخاب یک موتور", - "Select a function": "انتخاب یک تابع", - "Select a group": "انتخاب یک گروه", - "Select a language": "", - "Select a mode": "", - "Select a model": "انتخاب یک مدل", - "Select a model (optional)": "", - "Select a pipeline": "انتخاب یک خط لوله", - "Select a pipeline url": "یک ادرس خط لوله را انتخاب کنید", - "Select a reranking model engine": "", - "Select a role": "", - "Select a theme": "", - "Select a tool": "انتخاب یک ابقزار", - "Select a voice": "", - "Select an auth method": "یک روش احراز هویت را انتخاب کنید", - "Select an embedding model engine": "", - "Select an engine": "", - "Select an Ollama instance": "یک نمونه ollama را انتخاب کنید", - "Select an output format": "", - "Select dtype": "", - "Select Engine": "انتخاب موتور", - "Select how to split message text for TTS requests": "", - "Select Knowledge": "انتخاب دانش", - "Select Method": "", - "Select only one model to call": "تنها یک مدل را برای صدا زدن انتخاب کنید", - "Select view": "", - "Selected model(s) do not support image inputs": "مدل) های (انتخاب شده ورودیهای تصویر را پشتیبانی نمیکند", - "semantic": "", - "Send": "ارسال", - "Send a Message": "ارسال یک پیام", - "Send message": "ارسال پیام", - "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "ارسال `stream_options: { include_usage: true }` در درخواست.\nارائه دهندگان پشتیبانی شده در صورت تنظیم، اطلاعات استفاده از توکن را در پاسخ برمی گردانند.", - "September": "سپتامبر", - "SerpApi API Key": "کلید API سرپ\u200cای\u200cپی\u200cآی", - "SerpApi Engine": "موتور سرپ\u200cای\u200cپی\u200cآی", - "Serper API Key": "کلید API Serper", - "Serply API Key": "کلید API سرپلی", - "Serpstack API Key": "کلید API Serpstack", - "Server connection verified": "اتصال سرور تأیید شد", - "Session": "", - "Set as default": "تنظیم به عنوان پیشفرض", - "Set embedding model": "تنظیم مدل جاسازی", - "Set embedding model (e.g. {{model}})": "تنظیم مدل پیچشی (برای مثال {{model}})", - "Set reranking model (e.g. {{model}})": "تنظیم مدل ری\u200cراینگ (برای مثال {{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.": "تعداد لایه\u200cهایی را که به GPU منتقل می\u200cشوند تنظیم کنید. افزایش این مقدار می\u200cتواند عملکرد مدل\u200cهایی که برای شتاب\u200cدهی GPU بهینه\u200cسازی شده\u200cاند را به طور قابل توجهی بهبود بخشد اما ممکن است مصرف برق و منابع GPU را نیز افزایش دهد.", - "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.": "تعداد نخ\u200cهای کارگر مورد استفاده برای محاسبات را تنظیم کنید. این گزینه کنترل می\u200cکند که چند نخ برای پردازش همزمان درخواست\u200cهای ورودی استفاده می\u200cشود. افزایش این مقدار می\u200cتواند عملکرد را در بارهای کاری با همزمانی بالا بهبود بخشد اما ممکن است منابع CPU بیشتری مصرف کند.", - "Set Voice": "تنظیم صدا", - "Set whisper model": "تنظیم مدل ویسپر", - "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.": "یک بایاس ثابت در برابر توکن\u200cهایی که حداقل یک بار ظاهر شده\u200cاند تنظیم می\u200cکند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 0.9) آسان\u200cگیرتر خواهد بود. در 0، غیرفعال می\u200cشود.", - "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.": "یک بایاس مقیاس\u200cپذیر در برابر توکن\u200cها برای جریمه کردن تکرارها، بر اساس تعداد دفعات ظاهر شدن آنها تنظیم می\u200cکند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 0.9) آسان\u200cگیرتر خواهد بود. در 0، غیرفعال می\u200cشود.", - "Sets how far back for the model to look back to prevent repetition.": "تنظیم می\u200cکند که مدل چقدر به عقب نگاه کند تا از تکرار جلوگیری شود.", - "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.": "عدد تصادفی اولیه را برای تولید تنظیم می\u200cکند. تنظیم این به یک عدد خاص باعث می\u200cشود مدل برای پرامپت یکسان، متن یکسانی تولید کند.", - "Sets the size of the context window used to generate the next token.": "اندازه پنجره متن مورد استفاده برای تولید توکن بعدی را تنظیم می\u200cکند.", - "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.": "توالی\u200cهای توقف مورد استفاده را تنظیم می\u200cکند. وقتی این الگو مشاهده شود، LLM تولید متن را متوقف کرده و برمی\u200cگردد. الگوهای توقف متعدد می\u200cتوانند با مشخص کردن پارامترهای توقف جداگانه متعدد در فایل مدل تنظیم شوند.", - "Settings": "تنظیمات", - "Settings saved successfully!": "تنظیمات با موفقیت ذخیره شد!", - "Share": "اشتراک\u200cگذاری", - "Share Chat": "اشتراک\u200cگذاری چت", - "Share to Open WebUI Community": "اشتراک گذاری با OpenWebUI Community", - "Share your background and interests": "", - "Shared with you": "", - "Sharing Permissions": "مجوزهای اشتراک\u200cگذاری", - "Show": "نمایش", - "Show \"What's New\" modal on login": "نمایش مودال \"موارد جدید\" هنگام ورود", - "Show Admin Details in Account Pending Overlay": "نمایش جزئیات مدیر در پوشش حساب در انتظار", - "Show Formatting Toolbar": "", - "Show image preview": "", - "Show Model": "نمایش مدل", - "Show Shortcuts": "", - "Show your support!": "حمایت خود را نشان دهید!", - "Showcased creativity": "ایده\u200cآفرینی", - "Sign in": "ورود", - "Sign in to {{WEBUI_NAME}}": "ورود به {{WEBUI_NAME}}", - "Sign in to {{WEBUI_NAME}} with LDAP": "ورود به {{WEBUI_NAME}} با LDAP", - "Sign Out": "خروج", - "Sign up": "ثبت نام", - "Sign up to {{WEBUI_NAME}}": "ثبت نام در {{WEBUI_NAME}}", - "Significantly improves accuracy by using an LLM to enhance tables, forms, inline math, and layout detection. Will increase latency. Defaults to False.": "", - "Signing in to {{WEBUI_NAME}}": "در حال ورود به {{WEBUI_NAME}}", - "Sink List": "", - "sk-1234": "sk-1234", - "Skip Cache": "", - "Skip the cache and re-run the inference. Defaults to False.": "", - "Something went wrong :/": "", - "Sonar": "", - "Sonar Deep Research": "", - "Sonar Pro": "", - "Sonar Reasoning": "", - "Sonar Reasoning Pro": "", - "Sougou Search API sID": "شناسه API جستجوی سوگو", - "Sougou Search API SK": "کلید SK API جستجوی سوگو", - "Source": "منبع", - "Speech Playback Speed": "سرعت پخش گفتار", - "Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}", - "Speech-to-Text": "", - "Speech-to-Text Engine": "موتور گفتار به متن", - "standard": "", - "Start a new conversation": "", - "Start of the channel": "آغاز کانال", - "Start Tag": "", - "Status Updates": "", - "STDOUT/STDERR": "STDOUT/STDERR", - "Steps": "", - "Stop": "توقف", - "Stop Generating": "", - "Stop Sequence": "توقف توالی", - "Stream Chat Response": "پاسخ چت جریانی", - "Stream Delta Chunk Size": "", - "Streamable HTTP": "", - "Strikethrough": "", - "Strip Existing OCR": "", - "Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.": "", - "STT Model": "مدل تبدیل صدا به متن", - "STT Settings": "تنظیمات تبدیل صدا به متن", - "Stylized PDF Export": "", - "Subtitle (e.g. about the Roman Empire)": "زیرنویس (برای مثال: درباره رمانی)", - "Success": "موفقیت", - "Successfully imported {{userCount}} users.": "", - "Successfully updated.": "با موفقیت به\u200cروز شد", - "Suggest a change": "", - "Suggested": "پیشنهادی", - "Support": "حمایت", - "Support this plugin:": "حمایت از این افزونه", - "Supported MIME Types": "", - "Sync directory": "هم\u200cگام\u200cسازی پوشه", - "System": "سیستم", - "System Instructions": "دستورالعمل\u200cهای سیستم", - "System Prompt": "پرامپت سیستم", - "Table Mode": "", - "Tag": "", - "Tags": "برچسب\u200cها", - "Tags Generation": "تولید برچسب\u200cها", - "Tags Generation Prompt": "پرامپت تولید برچسب\u200cها", - "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.": "نمونه\u200cبرداری دنباله آزاد برای کاهش تأثیر توکن\u200cهای کم احتمال\u200cتر از خروجی استفاده می\u200cشود. مقدار بالاتر (مثلاً 2.0) تأثیر را بیشتر کاهش می\u200cدهد، در حالی که مقدار 1.0 این تنظیم را غیرفعال می\u200cکند.", - "Talk to Model": "", - "Tap to interrupt": "برای وقفه ضربه بزنید", - "Task List": "", - "Task Model": "", - "Tasks": "وظایف", - "Tavily API Key": "کلید API تاویلی", - "Tavily Extract Depth": "عمق استخراج تاویلی", - "Tell us more:": "بیشتر بگویید:", - "Temperature": "دما", - "Temporary Chat": "چت موقت", - "Temporary Chat by Default": "", - "Text Splitter": "تقسیم\u200cکننده متن", - "Text-to-Speech": "", - "Text-to-Speech Engine": "موتور تبدیل متن به گفتار", - "Thanks for your feedback!": "با تشکر از بازخورد شما!", - "The Application Account DN you bind with for search": "DN حساب برنامه که برای جستجو به آن متصل می\u200cشوید", - "The base to search for users": "پایه برای جستجوی کاربران", - "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "اندازه دسته تعیین می\u200cکند که چند درخواست متنی همزمان پردازش می\u200cشوند. اندازه دسته بزرگتر می\u200cتواند عملکرد و سرعت مدل را افزایش دهد، اما به حافظه بیشتری نیاز دارد.", - "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "توسعه\u200cدهندگان این افزونه داوطلبان مشتاق از جامعه هستند. اگر این افزونه را مفید می\u200cدانید، لطفاً در توسعه آن مشارکت کنید.", - "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "تابلوی امتیازات ارزیابی بر اساس سیستم رتبه\u200cبندی Elo است و در زمان واقعی به\u200cروز می\u200cشود.", - "The format to return a response in. Format can be json or a JSON schema.": "", - "The height in pixels to compress images to. Leave empty for no compression.": "", - "The language of the input audio. Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency. Leave blank to automatically detect the language.": "", - "The LDAP attribute that maps to the mail that users use to sign in.": "ویژگی LDAP که به ایمیلی که کاربران برای ورود استفاده می\u200cکنند نگاشت می\u200cشود.", - "The LDAP attribute that maps to the username that users use to sign in.": "ویژگی LDAP که به نام کاربری که کاربران برای ورود استفاده می\u200cکنند نگاشت می\u200cشود.", - "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "تابلوی امتیازات در حال حاضر در نسخه بتا است و ممکن است محاسبات رتبه\u200cبندی را با بهبود الگوریتم تنظیم کنیم.", - "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.": "حداکثر تعداد فایل\u200cهایی که می\u200cتوانند همزمان در چت استفاده شوند. اگر تعداد فایل\u200cها از این حد بیشتر باشد، فایل\u200cها آپلود نخواهند شد.", - "The output format for the text. Can be 'json', 'markdown', or 'html'. Defaults to 'markdown'.": "", - "The passwords you entered don't quite match. Please double-check and try again.": "", - "The score should be a value between 0.0 (0%) and 1.0 (100%).": "امتیاز باید مقداری بین 0.0 (0%) و 1.0 (100%) باشد.", - "The stream delta chunk size for the model. Increasing the chunk size will make the model respond with larger pieces of text at once.": "", - "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "دمای مدل. افزایش دما باعث می\u200cشود مدل خلاقانه\u200cتر پاسخ دهد.", - "The Weight of BM25 Hybrid Search. 0 more semantic, 1 more lexical. Default 0.5": "", - "The width in pixels to compress images to. Leave empty for no compression.": "", - "Theme": "پوسته", - "Thinking...": "در حال فکر کردن...", - "This action cannot be undone. Do you wish to continue?": "این عمل قابل بازگشت نیست. آیا می\u200cخواهید ادامه دهید؟", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "این کانال در {{createdAt}} ایجاد شد. این آغاز کانال {{channelName}} است.", - "This chat won't appear in history and your messages will not be saved.": "", - "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "این اطمینان می\u200cدهد که مکالمات ارزشمند شما به طور امن در پایگاه داده پشتیبان ذخیره می\u200cشوند. متشکریم!", - "This feature is experimental and may be modified or discontinued without notice.": "", - "This is a default user permission and will remain enabled.": "", - "This is an experimental feature, it may not function as expected and is subject to change at any time.": "این یک ویژگی آزمایشی است، ممکن است طبق انتظار کار نکند و در هر زمان ممکن است تغییر کند.", - "This model is not publicly available. Please select another model.": "", - "This option controls how long the model will stay loaded into memory following the request (default: 5m)": "", - "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.": "این گزینه کنترل می\u200cکند که هنگام تازه\u200cسازی متن، چند توکن حفظ شوند. برای مثال، اگر روی 2 تنظیم شود، 2 توکن آخر متن مکالمه حفظ خواهند شد. حفظ متن می\u200cتواند به حفظ پیوستگی مکالمه کمک کند، اما ممکن است توانایی پاسخ به موضوعات جدید را کاهش دهد.", - "This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "", - "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.": "این گزینه حداکثر تعداد توکن\u200cهایی را که مدل می\u200cتواند در پاسخ خود تولید کند تنظیم می\u200cکند. افزایش این محدودیت به مدل اجازه می\u200cدهد پاسخ\u200cهای طولانی\u200cتری ارائه دهد، اما ممکن است احتمال تولید محتوای بی\u200cفایده یا نامربوط را نیز افزایش دهد.", - "This option will delete all existing files in the collection and replace them with newly uploaded files.": "این گزینه تمام فایل\u200cهای موجود در مجموعه را حذف کرده و با فایل\u200cهای جدید آپلود شده جایگزین می\u200cکند.", - "This response was generated by \"{{model}}\"": "این پاسخ توسط \"{{model}}\" تولید شده است", - "This will delete": "این حذف خواهد شد", - "This will delete {{NAME}} and all its contents.": "این {{NAME}} و تمام محتویات آن را حذف خواهد کرد.", - "This will delete all models including custom models": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد", - "This will delete all models including custom models and cannot be undone.": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد و قابل بازگشت نیست.", - "This will reset the knowledge base and sync all files. Do you wish to continue?": "این پایگاه دانش را بازنشانی کرده و همه فایل\u200cها را همگام\u200cسازی خواهد کرد. آیا می\u200cخواهید ادامه دهید؟", - "Thorough explanation": "توضیح کامل", - "Thought for {{DURATION}}": "فکر کردن برای {{DURATION}}", - "Thought for {{DURATION}} seconds": "فکر کردن برای {{DURATION}} ثانیه", - "Thought for less than a second": "", - "Thread": "رشته", - "Tika": "تیکا", - "Tika Server URL required.": "آدرس سرور تیکا مورد نیاز است.", - "Tiktoken": "تیک توکن", - "Title": "عنوان", - "Title (e.g. Tell me a fun fact)": "عنوان (برای مثال: به من بگوید چیزی که دوست دارید)", - "Title Auto-Generation": "تولید خودکار عنوان", - "Title cannot be an empty string.": "عنوان نمی تواند یک رشته خالی باشد.", - "Title Generation": "تولید عنوان", - "Title Generation Prompt": "پرامپت تولید عنوان", - "TLS": "TLS", - "To access the available model names for downloading,": "برای دسترسی به نام مدل های موجود برای دانلود،", - "To access the GGUF models available for downloading,": "برای دسترسی به مدل\u200cهای GGUF موجود برای دانلود،", - "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "برای دسترسی به رابط کاربری وب، لطفاً با مدیر تماس بگیرید. مدیران می\u200cتوانند وضعیت کاربران را از پنل مدیریت مدیریت کنند.", - "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "برای اتصال پایگاه دانش در اینجا، ابتدا آنها را به فضای کاری \"دانش\" اضافه کنید.", - "To learn more about available endpoints, visit our documentation.": "برای کسب اطلاعات بیشتر در مورد نقاط پایانی موجود، به مستندات ما مراجعه کنید.", - "To learn more about powerful prompt variables, click here": "", - "To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "برای حفظ حریم خصوصی شما، فقط امتیازات، شناسه\u200cهای مدل، برچسب\u200cها و متادیتا از بازخورد شما به اشتراک گذاشته می\u200cشود - گفتگوهای شما خصوصی باقی می\u200cماند و شامل نمی\u200cشود.", - "To select toolkits here, add them to the \"Tools\" workspace first.": "برای انتخاب ابزارها در اینجا، ابتدا آنها را به فضای کاری \"ابزارها\" اضافه کنید.", - "Toast notifications for new updates": "اعلان\u200cهای پاپ\u200cآپ برای به\u200cروزرسانی\u200cهای جدید", - "Today": "امروز", - "Today at {{LOCALIZED_TIME}}": "", - "Toggle Sidebar": "", - "Toggle whether current connection is active.": "", - "Token": "توکن", - "Too verbose": "خیلی طولانی", - "Tool created successfully": "ابزار با موفقیت ایجاد شد", - "Tool deleted successfully": "ابزار با موفقیت حذف شد", - "Tool Description": "توضیحات ابزار", - "Tool ID": "شناسه ابزار", - "Tool imported successfully": "ابزار با موفقیت وارد شد", - "Tool Name": "نام ابزار", - "Tool Servers": "سرورهای ابزار", - "Tool updated successfully": "ابزار با موفقیت به\u200cروزرسانی شد", - "Tools": "ابزارها", - "Tools Access": "دسترسی به ابزارها", - "Tools are a function calling system with arbitrary code execution": "ابزارها یک سیستم فراخوانی تابع با اجرای کد دلخواه هستند", - "Tools Function Calling Prompt": "پرامپت فراخوانی تابع ابزارها", - "Tools have a function calling system that allows arbitrary code execution.": "ابزارها دارای سیستم فراخوانی تابع هستند که اجازه اجرای کد دلخواه را می\u200cدهد.", - "Tools Public Sharing": "اشتراک\u200cگذاری عمومی ابزارها", - "Top K": "Top K", - "Top K Reranker": "رتبه\u200cبندی مجدد Top K", - "Transformers": "ترنسفورمرها", - "Trouble accessing Ollama?": "در دسترسی به ollama مشکل دارید؟", - "Trust Proxy Environment": "اعتماد به محیط پراکسی", - "Try adjusting your search or filter to find what you are looking for.": "", - "Try Again": "", - "TTS Model": "مدل TTS", - "TTS Settings": "تنظیمات TTS", - "TTS Voice": "صدای TTS", - "Type": "نوع", - "Type here...": "", - "Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید", - "Uh-oh! There was an issue with the response.": "اوه! مشکلی در پاسخ وجود داشت.", - "UI": "رابط کاربری", - "Unarchive All": "خارج کردن همه از آرشیو", - "Unarchive All Archived Chats": "خارج کردن همه چت\u200cهای آرشیو شده از آرشیو", - "Unarchive Chat": "خارج کردن چت از آرشیو", - "Underline": "", - "Unknown": "", - "Unknown User": "", - "Unloads {{FROM_NOW}}": "", - "Unlock mysteries": "رمزگشایی از اسرار", - "Unpin": "برداشتن پین", - "Unravel secrets": "کشف رازها", - "Unsupported file type.": "", - "Untagged": "بدون برچسب", - "Untitled": "", - "Update": "به\u200cروزرسانی", - "Update and Copy Link": "به روزرسانی و کپی لینک", - "Update for the latest features and improvements.": "برای آخرین ویژگی\u200cها و بهبودها به\u200cروزرسانی کنید.", - "Update password": "به روزرسانی رمزعبور", - "Updated": "بارگذاری شد", - "Updated at": "بارگذاری در", - "Updated At": "بارگذاری در", - "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "برای قابلیت\u200cهای پیشرفته، از جمله تم و برندسازی سفارشی و پشتیبانی اختصاصی، به طرح دارای مجوز ارتقا دهید.", - "Upload": "بارگذاری", - "Upload a GGUF model": "آپلود یک مدل GGUF", - "Upload Audio": "", - "Upload directory": "پوشه آپلود", - "Upload files": "آپلود فایل\u200cها", - "Upload Files": "بارگذاری پروندهها", - "Upload Model": "", - "Upload Pipeline": "خط تولید آپلود", - "Upload Progress": "پیشرفت آپلود", - "Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "", - "URL": "آدرس اینترنتی", - "URL is required": "", - "URL Mode": "حالت URL", - "Usage": "", - "Use '#' in the prompt input to load and include your knowledge.": "از '#' در ورودی پرامپت برای بارگیری و شامل کردن دانش خود استفاده کنید.", - "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "", - "Use Chat Completions API": "", - "Use groups to group your users and assign permissions.": "از گروه\u200cها برای گروه\u200cبندی کاربران و تخصیص مجوزها استفاده کنید.", - "Use LLM": "", - "Use no proxy to fetch page contents.": "از هیچ پراکسی برای دریافت محتوای صفحه استفاده نکنید.", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "از پراکسی تعیین شده توسط متغیرهای محیطی http_proxy و https_proxy برای دریافت محتوای صفحه استفاده کنید.", - "user": "کاربر", - "User": "کاربر", - "User Groups": "", - "User location successfully retrieved.": "موقعیت مکانی کاربر با موفقیت دریافت شد.", - "User menu": "", - "User Webhooks": "وب\u200cهوک\u200cهای کاربر", - "Username": "نام کاربری", - "Users": "کاربران", - "Uses DefaultAzureCredential to authenticate": "", - "Uses OAuth 2.1 Dynamic Client Registration": "", - "Using Entire Document": "", - "Using Focused Retrieval": "", - "Using the default arena model with all models. Click the plus button to add custom models.": "در حال استفاده از مدل آرنا با همهٔ مدل\u200cهای دیگر به طور پیش\u200cفرض. برای افزودن مدل\u200cهای سفارشی، روی دکمه به\u200cعلاوه کلیک کنید.", - "Valid time units:": "واحدهای زمانی معتبر:", - "Validate certificate": "", - "Valves": "شیرها", - "Valves updated": "شیرها به\u200cروزرسانی شدند", - "Valves updated successfully": "شیرها با موفقیت به\u200cروزرسانی شدند", - "variable": "متغیر", - "Verify Connection": "تأیید اتصال", - "Verify SSL Certificate": "تأیید گواهی SSL", - "Version": "نسخه", - "Version {{selectedVersion}} of {{totalVersions}}": "نسخهٔ {{selectedVersion}} از {{totalVersions}}", - "View Replies": "مشاهده پاسخ\u200cها", - "View Result from **{{NAME}}**": "مشاهده نتیجه از **{{NAME}}**", - "Visibility": "قابلیت مشاهده", - "Vision": "", - "vlm": "", - "Voice": "صوت", - "Voice Input": "ورودی صوتی", - "Voice mode": "", - "Warning": "هشدار", - "Warning:": "هشدار", - "Warning: Enabling this will allow users to upload arbitrary code on the server.": "هشدار: فعال کردن این گزینه به کاربران اجازه می\u200cدهد کد دلخواه را روی سرور آپلود کنند.", - "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "هشدار: اجرای ژوپیتر امکان اجرای کد دلخواه را فراهم می\u200cکند که خطرات امنیتی جدی به همراه دارد - با احتیاط زیاد ادامه دهید.", - "Web": "وب", - "Web API": "API وب", - "Web Loader Engine": "موتور بارگذاری وب", - "Web Search": "جستجوی وب", - "Web Search Engine": "موتور جستجوی وب", - "Web Search in Chat": "جستجوی وب در گفتگو", - "Web Search Query Generation": "تولید کوئری جستجوی وب", - "Webhook URL": "نشانی وب\u200cهوک", - "Webpage URL": "", - "WebUI Settings": "تنظیمات WebUI", - "WebUI URL": "آدرس WebUI", - "WebUI will make requests to \"{{url}}\"": "WebUI به \"{{url}}\" درخواست خواهد داد", - "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI به \"{{url}}/api/chat\" درخواست خواهد داد", - "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI به \"{{url}}/chat/completions\" درخواست خواهد داد", - "What are you trying to achieve?": "به دنبال دستیابی به چه هدفی هستید؟", - "What are you working on?": "روی چه چیزی کار می\u200cکنید؟", - "What's New in": "", - "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.": "وقتی فعال باشد، مدل به هر پیام گفتگو در زمان واقعی پاسخ می\u200cدهد و به محض ارسال پیام توسط کاربر، پاسخی تولید می\u200cکند. این حالت برای برنامه\u200cهای گفتگوی زنده مفید است، اما ممکن است در سخت\u200cافزارهای کندتر بر عملکرد تأثیر بگذارد.", - "wherever you are": "هر جا که هستید", - "Whether to paginate the output. Each page will be separated by a horizontal rule and page number. Defaults to False.": "", - "Whisper (Local)": "ویسپر (محلی)", - "Why?": "چرا؟", - "Widescreen Mode": "حالت صفحهٔ عریض", - "Width": "", - "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.": "با top-k همکاری می\u200cکند. مقدار بالاتر (مثلاً 0.95) منجر به متن متنوع\u200cتر می\u200cشود، در حالی که مقدار پایین\u200cتر (مثلاً 0.5) متن متمرکزتر و محافظه\u200cکارانه\u200cتری تولید می\u200cکند.", - "Workspace": "محیط کار", - "Workspace Permissions": "مجوزهای محیط کار", - "Write": "نوشتن", - "Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)", - "Write a summary in 50 words that summarizes {{topic}}.": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.", - "Write something...": "چیزی بنویسید...", - "Write your model system prompt content here\ne.g.) You are Mario from Super Mario Bros, acting as an assistant.": "محتوای پرامپت سیستمی مدل خود را اینجا بنویسید\nمثال: شما ماریو از بازی Super Mario Bros هستید و به عنوان دستیار عمل می\u200cکنید.", - "Yacy Instance URL": "", - "Yacy Password": "", - "Yacy Username": "", - "Yesterday": "دیروز", - "Yesterday at {{LOCALIZED_TIME}}": "", - "You": "شما", - "You are currently using a trial license. Please contact support to upgrade your license.": "شما در حال حاضر از نسخه آزمایشی استفاده می\u200cکنید. لطفاً برای ارتقای مجوز خود با پشتیبانی تماس بگیرید.", - "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "شما در هر زمان نهایتا می\u200cتوانید با {{maxCount}} پرونده گفتگو کنید.", - "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "شما می\u200cتوانید تعاملات خود با LLM\u200cها را با افزودن خاطرات از طریق دکمه 'مدیریت' در زیر شخصی\u200cسازی کنید تا آنها مفیدتر و متناسب\u200cتر با شما شوند.", - "You cannot upload an empty file.": "نمی\u200cتوانید فایل خالی آپلود کنید.", - "You do not have permission to send messages in this channel.": "", - "You do not have permission to send messages in this thread.": "", - "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.": "شما اکنون وارد شده\u200cاید.", - "Your Account": "", - "Your account status is currently pending activation.": "وضعیت حساب شما در حال حاضر در انتظار فعال\u200cسازی است.", - "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.": "تمام مشارکت شما مستقیماً به توسعه\u200cدهنده افزونه می\u200cرسد؛ Open WebUI هیچ درصدی دریافت نمی\u200cکند. با این حال، پلتفرم تأمین مالی انتخاب شده ممکن است کارمزد خود را داشته باشد.", - "YouTube": "یوتیوب", - "Youtube Language": "زبان یوتیوب", - "Youtube Proxy URL": "آدرس پراکسی یوتیوب" + "-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`)": "(e.g. `sh webui.sh --api`)", + "(latest)": "(آخرین)", + "(leave blank for to use commercial endpoint)": "(برای استفاده از نقطه پایانی تجاری خالی بگذارید)", + "[Last] dddd [at] h:mm A": "[آخرین] dddd [در] h:mm A", + "[Today at] h:mm A": "[امروز در] h:mm A", + "[Yesterday at] h:mm A": "[دیروز در] h:mm A", + "{{ models }}": "{{ models }}", + "{{COUNT}} Available Tools": "{{COUNT}} ابزار موجود", + "{{COUNT}} characters": "{{COUNT}} نویسه", + "{{COUNT}} extracted lines": "{{COUNT}} خط استخراج شده", + "{{COUNT}} hidden lines": "{{COUNT}} خط پنهان", + "{{COUNT}} Replies": "{{COUNT}} پاسخ", + "{{COUNT}} Sources": "{{COUNT}} منبع", + "{{COUNT}} words": "{{COUNT}} کلمه", + "{{LOCALIZED_DATE}} at {{LOCALIZED_TIME}}": "{{LOCALIZED_DATE}} در {{LOCALIZED_TIME}}", + "{{model}} download has been canceled": "دانلود {{model}} لغو شده است", + "{{user}}'s Chats": "{{user}} گفتگوهای", + "{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.", + "*Prompt node ID(s) are required for image generation": "*شناسه(های) گره پرامپت برای تولید تصویر مورد نیاز است", + "1 Source": "۱ منبع", + "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": "درباره", + "Accept Autocomplete Generation\nJump to Prompt Variable": "پذیرش تولید خودکار تکمیل\nپرش به متغیر پرامپت", + "Access": "دسترسی", + "Access Control": "کنترل دسترسی", + "Accessible to all users": "قابل دسترسی برای همه کاربران", + "Account": "حساب کاربری", + "Account Activation Pending": "فعال‌سازی حساب در حال انتظار", + "accurate": "دقیق", + "Accurate information": "اطلاعات دقیق", + "Action": "عملیات", + "Action not found": "عملیات یافت نشد", + "Action Required for Chat Log Storage": "برای ذخیره گزارش گفت‌وگو اقدام لازم است", + "Actions": "کنش‌ها", + "Activate": "فعال کردن", + "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "این دستور را با تایپ \"/{{COMMAND}}\" در ورودی چت فعال کنید.", + "Active": "فعال", + "Active Users": "کاربران فعال", + "Add": "اضافه کردن", + "Add a model ID": "افزودن شناسه مدل", + "Add a short description about what this model does": "افزودن توضیحات کوتاه در مورد انچه که این مدل انجام می دهد", + "Add a tag": "افزودن یک برچسب", + "Add Arena Model": "افزودن مدل Arena", + "Add Connection": "افزودن اتصال", + "Add Content": "افزودن محتوا", + "Add content here": "محتوا را اینجا اضافه کنید", + "Add Custom Parameter": "افزودن پارامتر سفارشی", + "Add Custom Prompt": "افزودن پرامپت سفارشی", + "Add Details": "افزودن جزئیات", + "Add Files": "افزودن فایل‌ها", + "Add Group": "افزودن گروه", + "Add Memory": "افزودن حافظه", + "Add Model": "افزودن مدل", + "Add Reaction": "افزودن واکنش", + "Add Tag": "افزودن برچسب", + "Add Tags": "افزودن برچسب‌ها", + "Add text content": "افزودن محتوای متنی", + "Add User": "افزودن کاربر", + "Add User Group": "افزودن گروه کاربری", + "Additional Config": "تنظیمات اضافی", + "Additional configuration options for marker. This should be a JSON string with key-value pairs. For example, '{\"key\": \"value\"}'. Supported keys include: disable_links, keep_pageheader_in_output, keep_pagefooter_in_output, filter_blank_pages, drop_repeated_text, layout_coverage_threshold, merge_threshold, height_tolerance, gap_threshold, image_threshold, min_line_length, level_count, default_level": "گزینه‌های پیکربندی اضافی برای مارکر. این باید یک رشته JSON با جفت‌های کلید-مقدار باشد. برای مثال، '{\"key\": \"value\"}'. کلیدهای پشتیبانی شده عبارتند از: disable_links، keep_pageheader_in_output، keep_pagefooter_in_output، filter_blank_pages، drop_repeated_text، layout_coverage_threshold، merge_threshold، height_tolerance، gap_threshold، image_threshold، min_line_length، level_count، default_level", + "Additional Parameters": "پارامترهای اضافی", + "Adjusting these settings will apply changes universally to all users.": "با تنظیم این تنظیمات، تغییرات به طور کلی برای همه کاربران اعمال می‌شود.", + "admin": "مدیر", + "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 parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "پارامترهای پیشرفته برای تجزیه MinerU (فعال‌سازی OCR، فعال‌سازی فرمول، فعال‌سازی جدول، زبان، نسخه مدل، محدوده‌های صفحه)", + "Advanced Params": "پارام‌های پیشرفته", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "پس از به‌روزرسانی یا تغییر مدل جاسازی، برای اعمال تغییرات باید پایگاه دانش را مجدداً نمایه‌سازی کنید. می‌توانید این کار را با استفاده از دکمه \"نمایه‌سازی مجدد\" در زیر انجام دهید.", + "AI": "هوش مصنوعی", + "All": "همه", + "All chats have been unarchived.": "همه چت‌ها از حالت بایگانی خارج شدند.", + "All Documents": "همهٔ سند‌ها", + "All models deleted successfully": "همه مدل‌ها با موفقیت حذف شدند", + "Allow Call": "اجازه تماس", + "Allow Chat Controls": "اجازه کنترل‌های گفتگو", + "Allow Chat Delete": "اجازه حذف گفتگو", + "Allow Chat Deletion": "اجازهٔ حذف گفتگو", + "Allow Chat Edit": "اجازه ویرایش گفتگو", + "Allow Chat Export": "مجاز کردن خروجی گرفتن از چت", + "Allow Chat Params": "مجاز کردن پارامترهای چت", + "Allow Chat Share": "مجاز کردن اشتراک‌گذاری چت", + "Allow Chat System Prompt": "مجاز کردن پرامپت سیستمی چت", + "Allow Chat Valves": "مجاز کردن دریچه‌های چت", + "Allow Continue Response": "مجاز کردن ادامه پاسخ", + "Allow Delete Messages": "مجاز کردن حذف پیام‌ها", + "Allow File Upload": "اجازه بارگذاری فایل", + "Allow Multiple Models in Chat": "اجازه استفاده از چند مدل در گفتگو", + "Allow non-local voices": "اجازه صداهای غیر محلی", + "Allow Rate Response": "مجاز کردن امتیازدهی به پاسخ", + "Allow Regenerate Response": "مجاز کردن بازتولید پاسخ", + "Allow Speech to Text": "اجازه تبدیل گفتار به متن", + "Allow Temporary Chat": "اجازهٔ گفتگوی موقتی", + "Allow Text to Speech": "اجازه تبدیل متن به گفتار", + "Allow User Location": "اجازهٔ موقعیت مکانی کاربر", + "Allow Voice Interruption in Call": "اجازه قطع صدا در تماس", + "Allowed Endpoints": "نقاط پایانی مجاز", + "Allowed File Extensions": "پسوندهای فایل مجاز", + "Allowed file extensions for upload. Separate multiple extensions with commas. Leave empty for all file types.": "پسوندهای فایل مجاز برای آپلود. چندین پسوند را با کاما از هم جدا کنید. برای همه انواع فایل‌ها خالی بگذارید.", + "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.": "جایگزینی برای top_p و هدف آن اطمینان از تعادل کیفیت و تنوع است. پارامتر p نشان‌دهنده حداقل احتمال برای در نظر گرفتن یک توکن نسبت به احتمال محتمل‌ترین توکن است. به عنوان مثال، با p=0.05 و محتمل‌ترین توکن با احتمال 0.9، لاگیت‌های با مقدار کمتر از 0.045 فیلتر می‌شوند.", + "Always": "همیشه", + "Always Collapse Code Blocks": "همیشه بلوک‌های کد را جمع کن", + "Always Expand Details": "همیشه جزئیات را گسترش بده", + "Always Play Notification Sound": "همیشه صدای اعلان پخش شود", + "Amazing": "شگفت‌انگیز", + "an assistant": "یک دستیار", + "An error occurred while fetching the explanation": "هنگام واکشی توضیح خطایی رخ داد", + "Analytics": "تحلیل و بررسی", + "Analyzed": "تحلیل شده", + "Analyzing...": "در حال تحلیل...", + "and": "و", + "and {{COUNT}} more": "و {{COUNT}} مورد دیگر", + "and create a new shared link.": "و یک پیوند اشتراک‌گذاری جدید ایجاد کنید.", + "Android": "اندروید", + "API": "API", + "API Base URL": "نشانی پایهٔ API", + "API Base URL for Datalab Marker service. Defaults to: https://www.datalab.to/api/v1/marker": "آدرس پایه API برای سرویس مارکر دیتا‌لب. پیش‌فرض: https://www.datalab.to/api/v1/marker", + "API details for using a vision-language model in the picture description. This parameter is mutually exclusive with picture_description_local.": "جزئیات API برای استفاده از مدل زبان-بینایی در توضیح تصویر. این پارامتر با picture_description_local انحصاری متقابل است.", + "API Key": "کلید API", + "API Key created.": "کلید API ساخته شد.", + "API Key Endpoint Restrictions": "محدودیت‌های نقطه پایانی کلید API", + "API keys": "کلیدهای API", + "API Mode": "حالت API", + "API Version": "نسخه API", + "API Version is required": "نسخه API مورد نیاز است", + "Application DN": "DN برنامه", + "Application DN Password": "رمز عبور DN برنامه", + "applies to all users with the \"user\" role": "برای همه کاربران با نقش \"کاربر\" اعمال می‌شود", + "April": "آوریل", + "Archive": "بایگانی", + "Archive All Chats": "بایگانی همه گفتگوها", + "Archived Chats": "گفتگوهای بایگانی‌شده", + "archived-chat-export": "خروجی-گفتگوی-بایگانی-شده", + "Are you sure you want to clear all memories? This action cannot be undone.": "آیا مطمئن هستید که می‌خواهید تمام حافظه‌ها را پاک کنید؟ این عمل قابل بازگشت نیست.", + "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": "بپرس", + "Ask a question": "سوالی بپرسید", + "Assistant": "دستیار", + "Attach File From Knowledge": "پیوست فایل از دانش", + "Attach Knowledge": "پیوست دانش", + "Attach Notes": "پیوست یادداشت‌ها", + "Attach Webpage": "پیوست صفحه وب", + "Attention to detail": "دقیق", + "Attribute for Mail": "ویژگی برای ایمیل", + "Attribute for Username": "ویژگی برای نام کاربری", + "Audio": "صدا", + "August": "آگوست", + "Auth": "احراز هویت", + "Authenticate": "احراز هویت", + "Authentication": "احراز هویت", + "Auto": "خودکار", + "Auto-Copy Response to Clipboard": "کپی خودکار پاسخ به کلیپ بورد", + "Auto-playback response": "پخش خودکار پاسخ", + "Autocomplete Generation": "تولید تکمیل خودکار", + "Autocomplete Generation Input Max Length": "حداکثر طول ورودی تولید تکمیل خودکار", + "Automatic1111": "اتوماتیک1111", + "AUTOMATIC1111 Api Auth String": "رشته احراز هویت API اتوماتیک1111", + "AUTOMATIC1111 Base URL": "پایه URL AUTOMATIC1111 ", + "AUTOMATIC1111 Base URL is required.": "به URL پایه AUTOMATIC1111 مورد نیاز است.", + "Available list": "فهرست دردسترس", + "Available Tools": "ابزارهای موجود", + "available users": "کاربران در دسترس", + "available!": "در دسترس!", + "Away": "غایب", + "Awful": "وحشتناک", + "Azure AI Speech": "سخنگوی هوش‌مصنوعی Azure", + "Azure OpenAI": "Azure OpenAI", + "Azure Region": "منطقهٔ Azure", + "Back": "بازگشت", + "Bad Response": "پاسخ خوب نیست", + "Banners": "بنر", + "Base Model (From)": "مدل پایه (از)", + "Base Model List Cache speeds up access by fetching base models only at startup or on settings save—faster, but may not show recent base model changes.": "کش لیست مدل پایه، با واکشی مدل‌های پایه فقط در هنگام راه‌اندازی یا ذخیره تنظیمات، دسترسی را سرعت می‌بخشد – سریع‌تر است، اما ممکن است تغییرات اخیر مدل پایه را نشان ندهد.", + "Bearer": "حامل", + "before": "قبل", + "Being lazy": "حالت سازنده", + "Beta": "بتا", + "Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7", + "Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7", + "Bio": "بیوگرافی", + "Birth Date": "تاریخ تولد", + "BM25 Weight": "وزن BM25", + "Bocha Search API Key": "کلید API جستجوی Bocha", + "Bold": "ضخیم", + "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "تقویت یا جریمه توکن‌های خاص برای پاسخ‌های محدود. مقادیر بایاس بین -100 و 100 (شامل) محدود خواهند شد. (پیش‌فرض: هیچ)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "هم موتور OCR Docling و هم زبان(ها) باید ارائه شوند یا هر دو خالی بمانند.", + "Brave Search API Key": "کلید API جستجوی شجاع", + "Bullet List": "لیست گلوله‌ای", + "Button ID": "شناسه دکمه", + "Button Label": "برچسب دکمه", + "Button Prompt": "پرامپت دکمه", + "By {{name}}": "توسط {{name}}", + "Bypass Embedding and Retrieval": "دور زدن جاسازی و بازیابی", + "Bypass Web Loader": "دور زدن بارگذاری وب", + "Cache Base Model List": "کش لیست مدل پایه", + "Calendar": "تقویم", + "Call": "تماس", + "Call feature is not supported when using Web STT engine": "ویژگی تماس هنگام استفاده از موتور Web STT پشتیبانی نمی‌شود", + "Camera": "دوربین", + "Cancel": "لغو", + "Capabilities": "قابلیت", + "Capture": "ضبط", + "Capture Audio": "ضبط صدا", + "Certificate Path": "مسیر گواهینامه", + "Change Password": "تغییر رمز عبور", + "Channel": "کانال", + "Channel deleted successfully": "کانال با موفقیت حذف شد", + "Channel Name": "نام کانال", + "Channel name cannot be empty.": "نام کانال نمی‌تواند خالی باشد.", + "Channel updated successfully": "کانال با موفقیت به‌روز شد", + "Channels": "کانال‌ها", + "Character": "شخصیت", + "Character limit for autocomplete generation input": "محدودیت کاراکتر برای ورودی تولید تکمیل خودکار", + "Chart new frontiers": "ترسیم مرزهای جدید", + "Chat": "گفتگو", + "Chat Background Image": "تصویر پس‌زمینهٔ گفتگو", + "Chat Bubble UI": "رابط کاربری حبابی گفتگو", + "Chat Controls": "کنترل‌های گفتگو", + "Chat Conversation": "مکالمه چت", + "Chat direction": "جهت‌گفتگو", + "Chat ID": "شناسه چت", + "Chat moved successfully": "چت با موفقیت منتقل شد", + "Chat Overview": "نمای کلی گفتگو", + "Chat Permissions": "مجوزهای گفتگو", + "Chat Tags Auto-Generation": "تولید خودکار برچسب‌های گفتگو", + "Chats": "گفتگو‌ها", + "Check Again": "بررسی دوباره", + "Check for updates": "بررسی به‌روزرسانی", + "Checking for updates...": "در حال بررسی برای به‌روزرسانی..", + "Choose a model before saving...": "قبل از ذخیره یک مدل را انتخاب کنید...", + "Chunk Overlap": "همپوشانی تکه", + "Chunk Size": "اندازه تکه", + "Ciphers": "رمزها", + "Citation": "استناد", + "Citations": "ارجاعات", + "Clear memory": "پاک کردن حافظه", + "Clear Memory": "پاک کردن حافظه", + "click here": "اینجا کلیک کنید", + "Click here for filter guides.": "برای راهنمای فیلترها اینجا کلیک کنید.", + "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.": "برای یادگیری بیشتر درباره faster-whisper و دیدن مدل‌های موجود اینجا کلیک کنید.", + "Click here to see available models.": "برای دیدن مدل‌های موجود اینجا کلیک کنید.", + "Click here to select": "برای انتخاب اینجا کلیک کنید", + "Click here to select a csv file.": "برای انتخاب یک فایل csv اینجا را کلیک کنید.", + "Click here to select a py file.": "برای انتخاب یک فایل py اینجا کلیک کنید.", + "Click here to upload a workflow.json file.": "برای آپلود فایل workflow.json اینجا کلیک کنید.", + "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": "کلون گفتگو", + "Clone of {{TITLE}}": "کلون {{TITLE}}", + "Close": "بسته", + "Close Banner": "بستن بنر", + "Close Configure Connection Modal": "بستن مودال پیکربندی اتصال", + "Close modal": "بستن مودال", + "Close Modal": "بستن مودال", + "Close settings modal": "بستن مودال تنظیمات", + "Close Sidebar": "بستن نوار کناری", + "cloud": "ابری", + "CMU ARCTIC speaker embedding name": "نام جاسازی بلندگوی CMU ARCTIC", + "Code Block": "بلاک کد", + "Code Editor": "ویرایشگر کد", + "Code execution": "اجرای کد", + "Code Execution": "اجرای کد", + "Code Execution Engine": "موتور اجرای کد", + "Code Execution Timeout": "مهلت اجرای کد", + "Code formatted successfully": "کد با موفقیت قالب‌بندی شد", + "Code Interpreter": "مفسر کد", + "Code Interpreter Engine": "موتور مفسر کد", + "Code Interpreter Prompt Template": "قالب پرامپت مفسر کد", + "Collapse": "جمع کردن", + "Collection": "مجموعه", + "Color": "رنگ", + "ComfyUI": "کومیوآی", + "ComfyUI API Key": "کلید API کومیوآی", + "ComfyUI Base URL": "URL پایه کومیوآی", + "ComfyUI Base URL is required.": "URL پایه کومیوآی الزامی است.", + "ComfyUI Workflow": "گردش کار کومیوآی", + "ComfyUI Workflow Nodes": "گره‌های گردش کار کومیوآی", + "Comma separated Node Ids (e.g. 1 or 1,2)": "شناسه‌های گره که با کاما جدا شده‌اند (مثلاً ۱ یا ۱,۲)", + "Command": "دستور", + "Comment": "نظر", + "Completions": "تکمیل‌ها", + "Compress Images in Channels": "فشرده‌سازی تصاویر در کانال‌ها", + "Concurrent Requests": "درخواست های همزمان", + "Config imported successfully": "پیکربندی با موفقیت وارد شد", + "Configure": "پیکربندی", + "Confirm": "تایید", + "Confirm Password": "تایید رمز عبور", + "Confirm your action": "عملیات خود را تایید کنید", + "Confirm your new password": "رمز عبور جدید خود را تایید کنید", + "Confirm Your Password": "تأیید رمز عبور", + "Connect to your own OpenAI compatible API endpoints.": "به نقاط پایانی API سازگار با OpenAI خود متصل شوید.", + "Connect to your own OpenAPI compatible external tool servers.": "به سرورهای ابزار خارجی سازگار با OpenAPI خود متصل شوید.", + "Connection failed": "اتصال ناموفق بود", + "Connection successful": "اتصال موفقیت‌آمیز بود", + "Connection Type": "نوع اتصال", + "Connections": "ارتباطات", + "Connections saved successfully": "ارتباطات با موفقیت ذخیره شدند", + "Connections settings updated": "تنظیمات اتصال به‌روز شد", + "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "تلاش برای استدلال در مدل‌های استدلالی را محدود می‌کند. فقط برای مدل‌های استدلالی از ارائه‌دهندگان خاصی که از تلاش استدلالی پشتیبانی می‌کنند قابل اجراست.", + "Contact Admin for WebUI Access": "برای دسترسی به WebUI با مدیر تماس بگیرید", + "Content": "محتوا", + "Content Extraction Engine": "موتور استخراج محتوا", + "Continue Response": "ادامه پاسخ", + "Continue with {{provider}}": "با {{provider}} ادامه دهید", + "Continue with Email": "با ایمیل ادامه دهید", + "Continue with LDAP": "با 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.": "کنترل نحوه تقسیم متن پیام برای درخواست‌های TTS. 'علامت‌گذاری' به جملات تقسیم می‌کند، 'پاراگراف‌ها' به پاراگراف‌ها تقسیم می‌کند و 'هیچ‌کدام' پیام را به عنوان یک رشته واحد نگه می‌دارد.", + "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.": "کنترل تکرار توالی‌های توکن در متن تولید شده. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می‌کند، در حالی که مقدار پایین‌تر (مثلاً 1.1) ملایم‌تر خواهد بود. در 1، غیرفعال است.", + "Controls": "کنترل‌ها", + "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "تعادل بین انسجام و تنوع خروجی را کنترل می‌کند. مقدار پایین‌تر منجر به متن متمرکزتر و منسجم‌تر می‌شود.", + "Conversation saved successfully": "مکالمه با موفقیت ذخیره شد", + "Copied": "کپی شد", + "Copied link to clipboard": "لینک در کلیپ‌بورد کپی شد", + "Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!", + "Copied to clipboard": "به بریده‌دان کپی‌شد", + "Copy": "کپی", + "Copy Formatted Text": "کپی متن قالب‌بندی شده", + "Copy Last Code Block": "کپی آخرین بلاک کد", + "Copy Last Response": "کپی آخرین پاسخ", + "Copy link": "کپی لینک", + "Copy Link": "کپی لینک", + "Copy to clipboard": "کپی به کلیپ‌بورد", + "Copying to clipboard was successful!": "کپی کردن در کلیپ بورد با موفقیت انجام شد!", + "CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS باید توسط ارائه‌دهنده به درستی پیکربندی شود تا درخواست‌ها از Open WebUI مجاز باشند.", + "Create": "ایجاد", + "Create a knowledge base": "ایجاد یک پایگاه دانش", + "Create a model": "ایجاد یک مدل", + "Create a new note": "ایجاد یک یادداشت جدید", + "Create Account": "ساخت حساب کاربری", + "Create Admin Account": "ایجاد حساب مدیر", + "Create Channel": "ایجاد کانال", + "Create Folder": "ایجاد پوشه", + "Create Group": "ایجاد گروه", + "Create Image": "ایجاد تصویر", + "Create Knowledge": "ایجاد دانش", + "Create Model": "ایجاد مدل", + "Create new key": "ساخت کلید جدید", + "Create new secret key": "ساخت کلید مخفی جدید", + "Create Note": "ایجاد یادداشت", + "Create your first note by clicking on the plus button below.": "با کلیک روی دکمه به‌علاوه در زیر، اولین یادداشت خود را ایجاد کنید.", + "Created at": "ایجاد شده در", + "Created At": "ایجاد شده در", + "Created by": "ایجاد شده توسط", + "Created by you": "ایجاد شده توسط شما", + "CSV Import": "درون‌ریزی CSV", + "Ctrl+Enter to Send": "Ctrl+Enter برای ارسال", + "Current Model": "مدل فعلی", + "Current Password": "رمز عبور فعلی", + "Custom": "دلخواه", + "Custom description enabled": "توضیحات سفارشی فعال شد", + "Custom Parameter Name": "نام پارامتر سفارشی", + "Custom Parameter Value": "مقدار پارامتر سفارشی", + "Danger Zone": "منطقه خطر", + "Dark": "تیره", + "Data Controls": "کنترل‌های داده", + "Database": "پایگاه داده", + "Datalab Marker API": "API مارکر دیتا‌لب", + "DD/MM/YYYY": "روز/ماه/سال", + "December": "دسامبر", + "Deepgram": "دیپ‌گرام", + "Default": "پیشفرض", + "Default (Open AI)": "پیشفرض (Open AI)", + "Default (SentenceTransformers)": "پیشفرض (SentenceTransformers)", + "Default action buttons will be used.": "دکمه‌های اقدام پیش‌فرض استفاده خواهند شد.", + "Default description enabled": "توضیحات پیش‌فرض فعال شد", + "Default Features": "ویژگی‌های پیش‌فرض", + "Default Filters": "فیلترهای پیش‌فرض", + "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 Models": "مدل‌های پیش‌فرض", + "Default permissions": "مجوزهای پیش‌فرض", + "Default permissions updated successfully": "مجوزهای پیش‌فرض با موفقیت به‌روز شدند", + "Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض", + "Default to 389 or 636 if TLS is enabled": "پیش‌فرض به 389 یا 636 اگر TLS فعال باشد", + "Default to ALL": "پیش‌فرض به همه", + "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "پیش‌فرض به بازیابی قطعه‌ای برای استخراج محتوای متمرکز و مرتبط، این برای اکثر موارد توصیه می‌شود.", + "Default User Role": "نقش کاربر پیش فرض", + "Delete": "حذف", + "Delete a model": "حذف یک مدل", + "Delete All Chats": "حذف همه گفتگوها", + "Delete All Models": "حذف همه مدل‌ها", + "Delete Chat": "حذف گپ", + "Delete chat?": "گفتگو حذف شود؟", + "Delete folder?": "پوشه حذف شود؟", + "Delete function?": "تابع حذف شود؟", + "Delete Message": "حذف پیام", + "Delete message?": "پیام حذف شود؟", + "Delete Model": "حذف مدل", + "Delete note?": "حذف یادداشت؟", + "Delete prompt?": "پرامپت حذف شود؟", + "delete this link": "حذف این لینک", + "Delete tool?": "ابزار حذف شود؟", + "Delete User": "حذف کاربر", + "Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد", + "Deleted {{name}}": "حذف شده {{name}}", + "Deleted User": "کاربر حذف شده", + "Deployment names are required for Azure OpenAI": "نام‌های استقرار برای Azure OpenAI مورد نیاز هستند", + "Describe Pictures in Documents": "توضیح تصاویر در اسناد", + "Describe your knowledge base and objectives": "پایگاه دانش و اهداف خود را توصیف کنید", + "Description": "توضیحات", + "Detect Artifacts Automatically": "تشخیص خودکار مصنوعات", + "Dictate": "دیکته کردن", + "Didn't fully follow instructions": "نمی تواند دستورالعمل را کامل پیگیری کند", + "Direct": "مستقیم", + "Direct Connections": "اتصالات مستقیم", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "اتصالات مستقیم به کاربران اجازه می‌دهد به نقاط پایانی API سازگار با OpenAI خود متصل شوند.", + "Direct Tool Servers": "سرورهای ابزار مستقیم", + "Directory selection was cancelled": "انتخاب دایرکتوری لغو شد", + "Disable Code Interpreter": "غیرفعال کردن مفسر کد", + "Disable Image Extraction": "غیرفعال کردن استخراج تصویر", + "Disable image extraction from the PDF. If Use LLM is enabled, images will be automatically captioned. Defaults to False.": "غیرفعال کردن استخراج تصویر از PDF. اگر «استفاده از LLM» فعال باشد، تصاویر به‌طور خودکار زیرنویس خواهند شد. پیش‌فرض: False.", + "Disabled": "غیرفعال", + "Discover a function": "کشف یک تابع", + "Discover a model": "کشف یک مدل", + "Discover a prompt": "یک اعلان را کشف کنید", + "Discover a tool": "کشف یک ابزار", + "Discover how to use Open WebUI and seek support from the community.": "نحوه استفاده از Open WebUI را کشف کنید و از انجمن پشتیبانی بگیرید.", + "Discover wonders": "کشف شگفتی‌ها", + "Discover, download, and explore custom functions": "کشف، دانلود و کاوش توابع سفارشی", + "Discover, download, and explore custom prompts": "پرامپت‌های سفارشی را کشف، دانلود و کاوش کنید", + "Discover, download, and explore custom tools": "کشف، دانلود و کاوش ابزارهای سفارشی", + "Discover, download, and explore model presets": "پیش تنظیمات مدل را کشف، دانلود و کاوش کنید", + "Display": "نمایش", + "Display chat title in tab": "نمایش عنوان چت در تب", + "Display Emoji in Call": "نمایش اموجی در تماس", + "Display Multi-model Responses in Tabs": "نمایش پاسخ‌های چند مدلی در تب‌ها", + "Display the username instead of You in the Chat": "نمایش نام کاربری به جای «شما» در چت", + "Displays citations in the response": "نمایش استنادها در پاسخ", + "Displays status updates (e.g., web search progress) in the response": "نمایش به‌روزرسانی‌های وضعیت (مثلاً پیشرفت جستجوی وب) در پاسخ", + "Dive into knowledge": "غوطه‌ور شدن در دانش", + "dlparse_v1": "dlparse_v1", + "dlparse_v2": "dlparse_v2", + "dlparse_v4": "dlparse_v4", + "Do not install functions from sources you do not fully trust.": "توابع را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", + "Do not install tools from sources you do not fully trust.": "ابزارها را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", + "Docling": "داکلینگ", + "Docling Server URL required.": "آدرس سرور داکلینگ مورد نیاز است.", + "Document": "سند", + "Document Intelligence": "هوش اسناد", + "Document Intelligence endpoint required.": "نقطه پایانی هوش سند مورد نیاز است.", + "Documentation": "مستندات", + "Documents": "اسناد", + "does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.", + "Domain Filter List": "لیست فیلتر دامنه", + "don't fetch random pipelines from sources you don't trust.": "pipelineهای تصادفی را از منابع غیرقابل اعتماد دریافت نکنید.", + "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": "دانلود کن", + "Download & Delete": "دانلود و حذف", + "Download as SVG": "دانلود به صورت SVG", + "Download canceled": "دانلود لغو شد", + "Download Database": "دانلود پایگاه داده", + "Drag and drop a file to upload or select a file to view": "یک فایل را برای آپلود بکشید و رها کنید یا برای مشاهده یک فایل را انتخاب کنید", + "Draw": "رسم کردن", + "Drop any files here to upload": "فایل‌ها را برای آپلود به اینجا بکشید و رها کنید", + "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد‌های زمانی معتبر 's', 'm', 'h' هستند.", + "e.g. \"json\" or a JSON schema": "مثلا \"json\" یا یک طرح JSON", + "e.g. 60": "مثلا 60", + "e.g. A filter to remove profanity from text": "مثلا فیلتری برای حذف ناسزا از متن", + "e.g. en": "مثلاً en", + "e.g. My Filter": "مثلا فیلتر من", + "e.g. My Tools": "مثلا ابزارهای من", + "e.g. my_filter": "مثلا my_filter", + "e.g. my_tools": "مثلا my_tools", + "e.g. pdf, docx, txt": "مثلاً pdf, docx, txt", + "e.g. Tools for performing various operations": "مثلا ابزارهایی برای انجام عملیات مختلف", + "e.g., 3, 4, 5 (leave blank for default)": "مثلاً ۳، ۴، ۵ (برای پیش‌فرض خالی بگذارید)", + "e.g., audio/wav,audio/mpeg,video/* (leave blank for defaults)": "مثلاً audio/wav,audio/mpeg,video/* (برای پیش‌فرض‌ها خالی بگذارید)", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "مثلا en-US,ja-JP (برای تشخیص خودکار خالی بگذارید)", + "e.g., westus (leave blank for eastus)": "مثلاً westus (برای eastus خالی بگذارید)", + "Edit": "ویرایش", + "Edit Arena Model": "ویرایش مدل آرنا", + "Edit Channel": "ویرایش کانال", + "Edit Connection": "ویرایش اتصال", + "Edit Default Permissions": "ویرایش مجوزهای پیش‌فرض", + "Edit Folder": "ویرایش پوشه", + "Edit Image": "ویرایش تصویر", + "Edit Last Message": "ویرایش آخرین پیام", + "Edit Memory": "ویرایش حافظه", + "Edit User": "ویرایش کاربر", + "Edit User Group": "ویرایش گروه کاربری", + "Edit workflow.json content": "ویرایش محتوای workflow.json", + "edited": "ویرایش شد", + "Edited": "ویرایش شده", + "Editing": "در حال ویرایش", + "Eject": "خارج کردن", + "ElevenLabs": "الون‌لبز", + "Email": "ایمیل", + "Embark on adventures": "شروع ماجراجویی‌ها", + "Embedding": "پیدائش", + "Embedding Batch Size": "اندازه دسته پیدائش", + "Embedding Model": "مدل پیدائش", + "Embedding Model Engine": "محرک مدل پیدائش", + "Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید", + "Enable API Key": "فعال‌سازی کلید API", + "Enable autocomplete generation for chat messages": "فعال‌سازی تولید تکمیل خودکار برای پیام‌های چت", + "Enable Code Execution": "فعال‌سازی اجرای کد", + "Enable Code Interpreter": "فعال‌سازی مفسر کد", + "Enable Community Sharing": "فعالسازی اشتراک انجمن", + "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.": "فعال‌سازی قفل حافظه (mlock) برای جلوگیری از تعویض داده‌های مدل از RAM. این گزینه مجموعه صفحات کاری مدل را در RAM قفل می‌کند و اطمینان می‌دهد که به دیسک منتقل نمی‌شوند. این می‌تواند با جلوگیری از خطاهای صفحه و تضمین دسترسی سریع به داده‌ها، عملکرد را حفظ کند.", + "Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "فعال‌سازی نگاشت حافظه (mmap) برای بارگیری داده‌های مدل. این گزینه به سیستم اجازه می‌دهد از فضای دیسک به عنوان گسترش RAM استفاده کند با در نظر گرفتن فایل‌های دیسک مانند اینکه در RAM هستند. این می‌تواند با اجازه دادن به دسترسی سریع‌تر به داده‌ها، عملکرد مدل را بهبود بخشد. با این حال، ممکن است با همه سیستم‌ها به درستی کار نکند و می‌تواند مقدار قابل توجهی از فضای دیسک را مصرف کند.", + "Enable Message Rating": "فعال‌سازی امتیازدهی پیام", + "Enable Mirostat sampling for controlling perplexity.": "فعال‌سازی نمونه‌برداری میروستات برای کنترل سردرگمی", + "Enable New Sign Ups": "فعال کردن ثبت نام‌های جدید", + "Enable, disable, or customize the reasoning tags used by the model. \"Enabled\" uses default tags, \"Disabled\" turns off reasoning tags, and \"Custom\" lets you specify your own start and end tags.": "تگ‌های استدلال مورد استفاده مدل را فعال، غیرفعال یا سفارشی کنید. «فعال» از تگ‌های پیش‌فرض استفاده می‌کند، «غیرفعال» تگ‌های استدلال را خاموش می‌کند، و «سفارشی» به شما امکان می‌دهد تگ‌های شروع و پایان خود را مشخص کنید.", + "Enabled": "فعال شده", + "End Tag": "تگ پایان", + "Endpoint URL": "آدرس URL نقطه پایانی", + "Enforce Temporary Chat": "اجبار چت موقت", + "Enhance": "بهبود", + "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "اطمینان حاصل کنید که فایل CSV شما شامل چهار ستون در این ترتیب است: نام، ایمیل، رمز عبور، نقش.", + "Enter {{role}} message here": "پیام {{role}} را اینجا وارد کنید", + "Enter a detail about yourself for your LLMs to recall": "برای ذخیره سازی اطلاعات خود، یک توضیح کوتاه درباره خود را وارد کنید", + "Enter a title for the pending user info overlay. Leave empty for default.": "یک عنوان برای پوشش اطلاعات کاربر در حال انتظار وارد کنید. برای پیش‌فرض خالی بگذارید.", + "Enter a watermark for the response. Leave empty for none.": "یک واترمارک برای پاسخ وارد کنید. برای هیچ‌کدام خالی بگذارید.", + "Enter additional headers in JSON format": "هدرهای اضافی را در قالب JSON وارد کنید", + "Enter additional headers in JSON format (e.g. {{'{{\"X-Custom-Header\": \"value\"}}'}})": "هدرهای اضافی را در قالب JSON وارد کنید (مثلاً {{'{{\"X-Custom-Header\": \"value\"}}'}})", + "Enter additional parameters in JSON format": "پارامترهای اضافی را در قالب JSON وارد کنید", + "Enter api auth string (e.g. username:password)": "رشته احراز هویت api را وارد کنید (مثلا username:password)", + "Enter Application DN": "DN برنامه را وارد کنید", + "Enter Application DN Password": "رمز عبور DN برنامه را وارد کنید", + "Enter Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7 را وارد کنید", + "Enter Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7 را وارد کنید", + "Enter Bocha Search API Key": "کلید API جستجوی Bocha را وارد کنید", + "Enter Brave Search API Key": "کلید API جستجوی شجاع را وارد کنید", + "Enter certificate path": "مسیر گواهینامه را وارد کنید", + "Enter Chunk Overlap": "مقدار Chunk Overlap را وارد کنید", + "Enter Chunk Size": "مقدار Chunk Size را وارد کنید", + "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "جفت‌های \"توکن:مقدار_بایاس\" را با کاما جدا شده وارد کنید (مثال: 5432:100, 413:-100)", + "Enter Config in JSON format": "پیکربندی را در قالب JSON وارد کنید", + "Enter content for the pending user info overlay. Leave empty for default.": "محتوا برای پوشش اطلاعات کاربر در حال انتظار وارد کنید. برای پیش‌فرض خالی بگذارید.", + "Enter coordinates (e.g. 51.505, -0.09)": "مختصات را وارد کنید (مثلاً ۵۱.۵۰۵, -۰.۰۹)", + "Enter Datalab Marker API Base URL": "آدرس پایه API مارکر دیتا‌لب را وارد کنید", + "Enter Datalab Marker API Key": "کلید API مارکر دیتا‌لب را وارد کنید", + "Enter description": "توضیحات را وارد کنید", + "Enter Docling OCR Engine": "موتور OCR Docling را وارد کنید", + "Enter Docling OCR Language(s)": "زبان(های) OCR Docling را وارد کنید", + "Enter Docling Server URL": "آدرس سرور Docling را وارد کنید", + "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 اکسا را وارد کنید", + "Enter External Document Loader API Key": "کلید API بارگذار سند خارجی را وارد کنید", + "Enter External Document Loader URL": "آدرس URL بارگذار سند خارجی را وارد کنید", + "Enter External Web Loader API Key": "کلید API بارگذار وب خارجی را وارد کنید", + "Enter External Web Loader URL": "آدرس URL بارگذار وب خارجی را وارد کنید", + "Enter External Web Search API Key": "کلید API جستجوی وب خارجی را وارد کنید", + "Enter External Web Search URL": "آدرس URL جستجوی وب خارجی را وارد کنید", + "Enter Firecrawl API Base URL": "آدرس پایه API فایرکراول را وارد کنید", + "Enter Firecrawl API Key": "کلید API فایرکراول را وارد کنید", + "Enter folder name": "نام پوشه را وارد کنید", + "Enter Github Raw URL": "آدرس Github Raw را وارد کنید", + "Enter Google PSE API Key": "کلید API گوگل PSE را وارد کنید", + "Enter Google PSE Engine Id": "شناسه موتور PSE گوگل را وارد کنید", + "Enter hex color (e.g. #FF0000)": "رنگ هگزادسیمال را وارد کنید (مثلاً #FF0000)", + "Enter ID": "شناسه را وارد کنید", + "Enter Image Size (e.g. 512x512)": "اندازه تصویر را وارد کنید (مثال: 512x512)", + "Enter Jina API Key": "کلید API جینا را وارد کنید", + "Enter JSON config (e.g., {\"disable_links\": true})": "پیکربندی JSON را وارد کنید (مثلاً، {\"disable_links\": true})", + "Enter Jupyter Password": "رمز عبور ژوپیتر را وارد کنید", + "Enter Jupyter Token": "توکن ژوپیتر را وارد کنید", + "Enter Jupyter URL": "آدرس ژوپیتر را وارد کنید", + "Enter Kagi Search API Key": "کلید API جستجوی کاگی را وارد کنید", + "Enter Key Behavior": "رفتار کلید را وارد کنید", + "Enter language codes": "کد زبان را وارد کنید", + "Enter MinerU API Key": "کلید API MinerU را وارد کنید", + "Enter Mistral API Base URL": "آدرس پایه API میسترال را وارد کنید", + "Enter Mistral API Key": "کلید API میسترال را وارد کنید", + "Enter Model ID": "شناسه مدل را وارد کنید", + "Enter model tag (e.g. {{modelTag}})": "تگ مدل را وارد کنید (مثلا {{modelTag}})", + "Enter Mojeek Search API Key": "کلید API جستجوی موجیک را وارد کنید", + "Enter name": "نام را وارد کنید", + "Enter New Password": "رمز عبور جدید را وارد کنید", + "Enter Number of Steps (e.g. 50)": "تعداد گام‌ها را وارد کنید (مثال: 50)", + "Enter Ollama Cloud API Key": "کلید API ابری اُلاما را وارد کنید", + "Enter Perplexity API Key": "کلید API پرپلکسیتی را وارد کنید", + "Enter Playwright Timeout": "مهلت پلی‌رایت را وارد کنید", + "Enter Playwright WebSocket URL": "آدرس وب‌سوکت پلی‌رایت را وارد کنید", + "Enter proxy URL (e.g. https://user:password@host:port)": "آدرس پراکسی را وارد کنید (مثال: https://user:password@host:port)", + "Enter reasoning effort": "تلاش استدلال را وارد کنید", + "Enter Score": "امتیاز را وارد کنید", + "Enter SearchApi API Key": "کلید API جستجو را وارد کنید", + "Enter SearchApi Engine": "موتور جستجو را وارد کنید", + "Enter Searxng Query URL": "نشانی وب پرسوجوی Searxng را وارد کنید", + "Enter Seed": "مقدار بذر را وارد کنید", + "Enter SerpApi API Key": "کلید API سرپ را وارد کنید", + "Enter SerpApi Engine": "موتور سرپ را وارد کنید", + "Enter Serper API Key": "کلید API سرپر را وارد کنید", + "Enter Serply API Key": "کلید API سرپلی را وارد کنید", + "Enter Serpstack API Key": "کلید API سرپ‌استک را وارد کنید", + "Enter server host": "میزبان سرور را وارد کنید", + "Enter server label": "برچسب سرور را وارد کنید", + "Enter server port": "پورت سرور را وارد کنید", + "Enter Sougou Search API sID": "شناسه API جستجوی سوگو را وارد کنید", + "Enter Sougou Search API SK": "کلید SK جستجوی سوگو را وارد کنید", + "Enter stop sequence": "توالی توقف را وارد کنید", + "Enter system prompt": "پرامپت سیستم را وارد کنید", + "Enter system prompt here": "پرامپت سیستم را اینجا وارد کنید", + "Enter Tavily API Key": "کلید API تاویلی را وارد کنید", + "Enter Tavily Extract Depth": "عمق استخراج تاویلی را وارد کنید", + "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "آدرس عمومی رابط کاربری وب خود را وارد کنید. این آدرس برای تولید پیوندها در اعلان‌ها استفاده خواهد شد.", + "Enter the URL of the function to import": "آدرس URL تابع برای وارد کردن را وارد کنید", + "Enter the URL to import": "آدرس URL برای وارد کردن را وارد کنید", + "Enter Tika Server URL": "آدرس سرور تیکا را وارد کنید", + "Enter timeout in seconds": "مهلت زمانی را به ثانیه وارد کنید", + "Enter to Send": "برای ارسال اینتر را بزنید", + "Enter Top K": "مقدار Top K را وارد کنید", + "Enter Top K Reranker": "مقدار Top K بازچینش‌گر را وارد کنید", + "Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)", + "Enter URL (e.g. http://localhost:11434)": "مقدار URL را وارد کنید (مثال http://localhost:11434)", + "Enter value": "مقدار را وارد کنید", + "Enter value (true/false)": "مقدار را وارد کنید (true/false)", + "Enter Yacy Password": "رمز عبور Yacy را وارد کنید", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "آدرس URL یاسی (Yacy) را وارد کنید (مثلاً http://yacy.example.com:8090)", + "Enter Yacy Username": "نام کاربری Yacy را وارد کنید", + "Enter your code here...": "کد خود را اینجا وارد کنید...", + "Enter your current password": "رمز عبور فعلی خود را وارد کنید", + "Enter Your Email": "ایمیل خود را وارد کنید", + "Enter Your Full Name": "نام کامل خود را وارد کنید", + "Enter your gender": "جنسیت خود را وارد کنید", + "Enter your message": "پیام خود را وارد کنید", + "Enter your name": "نام خود را وارد کنید", + "Enter Your Name": "نام خود را وارد کنید", + "Enter your new password": "رمز عبور جدید خود را وارد کنید", + "Enter Your Password": "رمز عبور خود را وارد کنید", + "Enter Your Role": "نقش خود را وارد کنید", + "Enter Your Username": "نام کاربری خود را وارد کنید", + "Enter your webhook URL": "آدرس وب‌هوک خود را وارد کنید", + "Entra ID": "شناسه Entra", + "Error": "خطا", + "ERROR": "خطا", + "Error accessing directory": "خطا در دسترسی به دایرکتوری", + "Error accessing Google Drive: {{error}}": "خطا در دسترسی به گوگل درایو: {{error}}", + "Error accessing media devices.": "خطا در دسترسی به دستگاه‌های رسانه‌ای.", + "Error starting recording.": "خطا در شروع ضبط.", + "Error unloading model: {{error}}": "خطا در خارج کردن مدل: {{error}}", + "Error uploading file: {{error}}": "خطا در بارگذاری فایل: {{error}}", + "Error: A model with the ID '{{modelId}}' already exists. Please select a different ID to proceed.": "خطا: مدلی با شناسه '{{modelId}}' قبلاً وجود دارد. لطفاً برای ادامه، یک شناسه متفاوت انتخاب کنید.", + "Error: Model ID cannot be empty. Please enter a valid ID to proceed.": "خطا: شناسه مدل نمی‌تواند خالی باشد. لطفاً برای ادامه، یک شناسه معتبر وارد کنید.", + "Evaluations": "ارزیابی‌ها", + "Everyone": "همه", + "Exa API Key": "کلید API اکسا", + "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "مثال: (&(objectClass=inetOrgPerson)(uid=%s))", + "Example: ALL": "مثال: ALL", + "Example: mail": "مثال: mail", + "Example: ou=users,dc=foo,dc=example": "مثال: ou=users,dc=foo,dc=example", + "Example: sAMAccountName or uid or userPrincipalName": "مثال: sAMAccountName یا uid یا userPrincipalName", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "تعداد جایگاه‌های مجاز در مجوز شما تمام شده است. لطفاً برای افزایش تعداد جایگاه‌ها با پشتیبانی تماس بگیرید.", + "Exclude": "مستثنی کردن", + "Execute code for analysis": "اجرای کد برای تحلیل", + "Executing **{{NAME}}**...": "در حال اجرای **{{NAME}}**...", + "Expand": "گسترش", + "Experimental": "آزمایشی", + "Explain": "توضیح", + "Explore the cosmos": "کاوش کیهان", + "Export": "خروجی گرفتن", + "Export All Archived Chats": "خروجی گرفتن تمام گفتگوهای بایگانی شده", + "Export All Chats (All Users)": "خروجی گرفتن همه گفتگو‌ها (همه کاربران)", + "Export chat (.json)": "خروجی گرفتن گفتگو (json)", + "Export Chats": "خروجی گرفتن گفتگوها", + "Export Config to JSON File": "برون‌ریزی پیکربندی به پروندهٔ JSON", + "Export Presets": "برون‌ریزی پیش‌تنظیم‌ها", + "Export Prompt Suggestions": "خروجی گرفتن از پیشنهادات پرامپت", + "Export to CSV": "برون‌ریزی به CSV", + "Export Users": "خروجی گرفتن از کاربران", + "External": "خارجی", + "External Document Loader URL required.": "آدرس URL بارگذار سند خارجی مورد نیاز است.", + "External Task Model": "مدل وظیفه خارجی", + "External Tools": "ابزارهای خارجی", + "External Web Loader API Key": "کلید API بارگذار وب خارجی", + "External Web Loader URL": "آدرس URL بارگذار وب خارجی", + "External Web Search API Key": "کلید API جستجوی وب خارجی", + "External Web Search URL": "آدرس URL جستجوی وب خارجی", + "Fade Effect for Streaming Text": "جلوه محو شدن برای متن جریانی", + "Failed to add file.": "خطا در افزودن پرونده", + "Failed to connect to {{URL}} OpenAPI tool server": "خطا در اتصال به سرور ابزار OpenAPI {{URL}}", + "Failed to copy link": "کپی لینک ناموفق بود", + "Failed to create API Key.": "ایجاد کلید API با خطا مواجه شد.", + "Failed to delete note": "حذف یادداشت ناموفق بود", + "Failed to extract content from the file: {{error}}": "استخراج محتوا از فایل ناموفق بود: {{error}}", + "Failed to extract content from the file.": "استخراج محتوا از فایل ناموفق بود.", + "Failed to fetch models": "خطا در دریافت مدل‌ها", + "Failed to generate title": "تولید عنوان ناموفق بود", + "Failed to import models": "وارد کردن مدل‌ها ناموفق بود", + "Failed to load chat preview": "بارگیری پیش‌نمایش چت ناموفق بود", + "Failed to load file content.": "بارگیری محتوای فایل ناموفق بود.", + "Failed to move chat": "انتقال چت ناموفق بود", + "Failed to read clipboard contents": "خواندن محتوای کلیپ بورد ناموفق بود", + "Failed to render diagram": "رندر دیاگرام ناموفق بود", + "Failed to render visualization": "رندر بصری‌سازی ناموفق بود", + "Failed to save connections": "خطا در ذخیره‌سازی اتصالات", + "Failed to save conversation": "خطا در ذخیره‌سازی گفت‌وگو", + "Failed to save models configuration": "خطا در ذخیره‌سازی پیکربندی مدل‌ها", + "Failed to update settings": "خطا در به‌روزرسانی تنظیمات", + "Failed to upload file.": "خطا در بارگذاری پرونده", + "fast": "سریع", + "Features": "ویژگی‌ها", + "Features Permissions": "مجوزهای ویژگی‌ها", + "February": "فوریه", + "Feedback Details": "جزئیات بازخورد", + "Feedback History": "تاریخچهٔ بازخورد", + "Feedbacks": "بازخوردها", + "Feel free to add specific details": "اگر به دلخواه، معلومات خاصی اضافه کنید", + "Female": "زن", + "File": "پرونده", + "File added successfully.": "پرونده با موفقیت افزوده شد.", + "File content updated successfully.": "محتوای پرونده با موفقیت به‌روز شد.", + "File Mode": "حالت پرونده", + "File not found.": "پرونده یافت نشد.", + "File removed successfully.": "پرونده با موفقیت حذف شد.", + "File size should not exceed {{maxSize}} MB.": "حجم پرونده نبایستی از {{maxSize}} MB بیشتر باشد.", + "File Upload": "آپلود فایل", + "File uploaded successfully": "پرونده با موفقیت بارگذاری شد", + "Files": "پرونده‌ها", + "Filter": "فیلتر", + "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.": "فانگ سرفیس شناسایی شد: نمی توان از نمایه شما به عنوان آواتار استفاده کرد. پیش فرض به عکس پروفایل پیش فرض برگشت داده شد.", + "Firecrawl API Base URL": "آدرس پایه API فایرکراول", + "Firecrawl API Key": "کلید API فایرکراول", + "Floating Quick Actions": "اقدامات سریع شناور", + "Focus Chat Input": "فوکوس روی ورودی چت", + "Folder": "پوشه", + "Folder Background Image": "تصویر پس‌زمینه پوشه", + "Folder deleted successfully": "پوشه با موفقیت حذف شد", + "Folder Name": "نام پوشه", + "Folder name cannot be empty.": "نام پوشه نمی‌تواند خالی باشد.", + "Folder name updated successfully": "نام پوشه با موفقیت به‌روز شد", + "Folder updated successfully": "پوشه با موفقیت به‌روز شد", + "Folders": "پوشه‌ها", + "Follow up": "پیگیری", + "Follow Up Generation": "تولید پیگیری", + "Follow Up Generation Prompt": "پرامپت تولید پیگیری", + "Follow-Up Auto-Generation": "تولید خودکار پیگیری", + "Followed instructions perfectly": "دستورالعمل ها را کاملا دنبال کرد", + "Force OCR": "اجبار به OCR", + "Force OCR on all pages of the PDF. This can lead to worse results if you have good text in your PDFs. Defaults to False.": "اجبار به OCR در تمام صفحات PDF. این ممکن است در صورت داشتن متن خوب در PDFها منجر به نتایج بدتری شود. پیش‌فرض: False.", + "Forge new paths": "مسیرهای جدید بسازید", + "Form": "فرم", + "Format Lines": "قالب‌بندی خطوط", + "Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "قالب‌بندی خطوط در خروجی. پیش‌فرض: False. اگر روی True تنظیم شود، خطوط برای تشخیص ریاضیات و استایل‌های درون‌خطی قالب‌بندی خواهند شد.", + "Format your variables using brackets like this:": "متغیرهای خود را با استفاده از براکت به این شکل قالب‌بندی کنید:", + "Formatting may be inconsistent from source.": "قالب‌بندی ممکن است با منبع ناسازگار باشد.", + "Forwards system user OAuth access token to authenticate": "ارسال توکن دسترسی OAuth کاربر سیستم برای احراز هویت", + "Forwards system user session credentials to authenticate": "اعتبارنامه‌های نشست کاربر سیستم را برای احراز هویت ارسال می‌کند", + "Full Context Mode": "حالت متن کامل", + "Function": "تابع", + "Function Calling": "فراخوانی تابع", + "Function created successfully": "تابع با موفقیت ایجاد شد", + "Function deleted successfully": "تابع با موفقیت حذف شد", + "Function Description": "توضیحات تابع", + "Function ID": "شناسه تابع", + "Function imported successfully": "تابع با موفقیت وارد شد", + "Function is now globally disabled": "تابع به صورت سراسری غیرفعال شد", + "Function is now globally enabled": "تابع به صورت سراسری فعال شد", + "Function Name": "نام تابع", + "Function updated successfully": "تابع با موفقیت به‌روز شد", + "Functions": "توابع", + "Functions allow arbitrary code execution.": "توابع اجازه اجرای کد دلخواه را می‌دهند.", + "Functions imported successfully": "درون‌ریزی توابع با موفقیت انجام شد", + "Gemini": "جمینی", + "Gemini API Key": "کلید API جیمنای", + "Gemini API Key is required.": "کلید API جمینی مورد نیاز است.", + "Gemini Base URL": "آدرس پایه جیمنای", + "Gemini Endpoint Method": "روش نقطه پایانی جیمنای", + "Gender": "جنسیت", + "General": "عمومی", + "Generate": "تولید", + "Generate an image": "تولید یک تصویر", + "Generate Image": "تولید تصویر", + "Generate Message Pair": "تولید جفت پیام", + "Generated Image": "تصویر تولید شده", + "Generating search query": "در حال تولید پرسوجوی جستجو", + "Generating...": "در حال تولید...", + "Get information on {{name}} in the UI": "دریافت اطلاعات درباره {{name}} در رابط کاربری", + "Get started": "شروع کنید", + "Get started with {{WEBUI_NAME}}": "شروع کار با {{WEBUI_NAME}}", + "Global": "سراسری", + "Good Response": "پاسخ خوب", + "Google Drive": "گوگل درایو", + "Google PSE API Key": "گوگل PSE API کلید", + "Google PSE Engine Id": "شناسه موتور PSE گوگل", + "Gravatar": "گراواتار", + "Group": "گروه", + "Group created successfully": "گروه با موفقیت ایجاد شد", + "Group deleted successfully": "گروه با موفقیت حذف شد", + "Group Description": "توضیحات گروه", + "Group Name": "نام گروه", + "Group updated successfully": "گروه با موفقیت به‌روز شد", + "Groups": "گروه‌ها", + "H1": "H1", + "H2": "H2", + "H3": "H3", + "Haptic Feedback": "بازخورد لمسی", + "Headers": "هدرها", + "Headers must be a valid JSON object": "هدرها باید یک شیء JSON معتبر باشند", + "Height": "ارتفاع", + "Hello, {{name}}": "سلام، {{name}}", + "Help": "کمک", + "Help us create the best community leaderboard by sharing your feedback history!": "با به اشتراک گذاشتن تاریخچه بازخورد خود به ما در ایجاد بهترین تابلوی امتیازات جامعه کمک کنید!", + "Hex Color": "رنگ هگز", + "Hex Color - Leave empty for default color": "رنگ هگز - برای رنگ پیش‌فرض خالی بگذارید", + "Hide": "پنهان‌سازی", + "Hide from Sidebar": "پنهان کردن از نوار کناری", + "Hide Model": "پنهان کردن مدل", + "High": "بالا", + "High Contrast Mode": "حالت کنتراست بالا", + "Home": "خانه", + "Host": "میزبان", + "How can I help you today?": "امروز چطور می توانم کمک تان کنم؟", + "How would you rate this response?": "این پاسخ را چگونه ارزیابی می‌کنید؟", + "HTML": "HTML", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", + "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 cannot contain \":\" or \"|\" characters": "شناسه نمی‌تواند حاوی کاراکترهای \":\" یا \"|\" باشد", + "iframe Sandbox Allow Forms": "اجازه فرم‌ها در سندباکس iframe", + "iframe Sandbox Allow Same Origin": "اجازه منشأ یکسان در سندباکس iframe", + "Ignite curiosity": "کنجکاوی را برانگیزید", + "Image": "تصویر", + "Image Compression": "فشرده‌سازی تصویر", + "Image Compression Height": "ارتفاع فشرده‌سازی تصویر", + "Image Compression Width": "عرض فشرده‌سازی تصویر", + "Image Edit Engine": "موتور ویرایش تصویر", + "Image Generation": "تولید تصویر", + "Image Generation Engine": "موتور تولید تصویر", + "Image Max Compression Size": "حداکثر اندازه فشرده‌سازی تصویر", + "Image Max Compression Size height": "حداکثر ارتفاع اندازه فشرده‌سازی تصویر", + "Image Max Compression Size width": "حداکثر عرض اندازه فشرده‌سازی تصویر", + "Image Prompt Generation": "تولید پرامپت تصویر", + "Image Prompt Generation Prompt": "پرامپت تولید پرامپت تصویر", + "Image Size": "اندازه تصویر", + "Images": "تصاویر", + "Import": "وارد کردن", + "Import Chats": "درون‌ریزی گفتگوها", + "Import Config from JSON File": "درون‌ریزی از پروندهٔ JSON", + "Import From Link": "وارد کردن از لینک", + "Import Notes": "وارد کردن یادداشت‌ها", + "Import Presets": "درون‌ریزی پیش‌تنظیم‌ها", + "Import Prompt Suggestions": "وارد کردن پیشنهادات پرامپت", + "Import successful": "وارد کردن با موفقیت انجام شد", + "Important Update": "به‌روزرسانی مهم", + "In order to force OCR, performing OCR must be enabled.": "برای اجبار به OCR، انجام OCR باید فعال باشد.", + "Include": "شامل", + "Include `--api-auth` flag when running stable-diffusion-webui": "هنگام اجرای stable-diffusion-webui پرچم `--api-auth` را اضافه کنید", + "Include `--api` flag when running stable-diffusion-webui": "فلگ `--api` را هنکام اجرای stable-diffusion-webui استفاده کنید.", + "Includes SharePoint": "شامل SharePoint", + "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.": "تأثیر می‌گذارد که الگوریتم چقدر سریع به بازخورد متن تولید شده پاسخ می‌دهد. نرخ یادگیری پایین‌تر منجر به تنظیمات کندتر می‌شود، در حالی که نرخ یادگیری بالاتر الگوریتم را پاسخگوتر می‌کند.", + "Info": "اطلاعات", + "Initials": "حروف اول", + "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "کل محتوا را به عنوان زمینه برای پردازش جامع تزریق کنید، این برای پرس‌وجوهای پیچیده توصیه می‌شود.", + "Input": "ورودی", + "Input Key (e.g. text, unet_name, steps)": "کلید ورودی (مثلاً text, unet_name, steps)", + "Input Variables": "متغیرهای ورودی", + "Insert": "درج", + "Insert Follow-Up Prompt to Input": "درج پرامپت پیگیری در ورودی", + "Insert Prompt as Rich Text": "درج پرامپت به عنوان متن غنی", + "Insert Suggestion Prompt to Input": "درج پرامپت پیشنهادی در ورودی", + "Install from Github URL": "نصب از ادرس Github", + "Instant Auto-Send After Voice Transcription": "ارسال خودکار فوری پس از رونویسی صوتی", + "Integration": "یکپارچه‌سازی", + "Integrations": "یکپارچه‌سازی‌ها", + "Interface": "رابط", + "Invalid file content": "محتوای فایل نامعتبر است", + "Invalid file format.": "قالب فایل نامعتبر است.", + "Invalid JSON file": "فایل JSON نامعتبر است", + "Invalid JSON format for ComfyUI Edit Workflow.": "قالب JSON برای گردش کار ویرایش ComfyUI نامعتبر است.", + "Invalid JSON format for ComfyUI Workflow.": "قالب JSON برای گردش کار ComfyUI نامعتبر است.", + "Invalid JSON format for Parameters": "قالب JSON برای پارامترها نامعتبر است", + "Invalid JSON format in Additional Config": "قالب JSON در تنظیمات اضافی نامعتبر است", + "Invalid JSON format in MinerU Parameters": "قالب JSON در پارامترهای MinerU نامعتبر است", + "Invalid Tag": "تگ نامعتبر", + "is typing...": "در حال تایپ...", + "Italic": "ایتالیک", + "January": "ژانویه", + "Jina API Key": "کلید API جینا", + "join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.", + "JSON": "JSON", + "JSON Preview": "پیش نمایش JSON", + "JSON Spec": "مشخصات JSON", + "July": "ژوئن", + "June": "جولای", + "Jupyter Auth": "احراز هویت ژوپیتر", + "Jupyter URL": "آدرس ژوپیتر", + "JWT Expiration": "JWT انقضای", + "JWT Token": "JWT توکن", + "Kagi Search API Key": "کلید API جستجوی کاگی", + "Keep Follow-Up Prompts in Chat": "نگه داشتن پرامپت‌های پیگیری در چت", + "Keep in Sidebar": "نگه داشتن در نوار کناری", + "Key": "کلید", + "Key is required": "کلید مورد نیاز است", + "Keyboard shortcuts": "میانبرهای صفحه کلید", + "Keyboard Shortcuts": "میانبرهای صفحه کلید", + "Knowledge": "دانش", + "Knowledge Access": "دسترسی به دانش", + "Knowledge Base": "پایگاه دانش", + "Knowledge created successfully.": "دانش با موفقیت ایجاد شد.", + "Knowledge deleted successfully.": "دانش با موفقیت حذف شد.", + "Knowledge Description": "توضیحات دانش", + "Knowledge Name": "نام دانش", + "Knowledge Public Sharing": "اشتراک‌گذاری عمومی دانش", + "Knowledge reset successfully.": "دانش با موفقیت بازنشانی شد.", + "Knowledge updated successfully": "دانش با موفقیت به‌روز شد", + "Kokoro.js (Browser)": "Kokoro.js (مرورگر)", + "Kokoro.js Dtype": "نوع داده Kokoro.js", + "Label": "برچسب", + "Landing Page Mode": "حالت صفحه فرود", + "Language": "زبان", + "Language Locales": "محلی‌سازی زبان", + "Last Active": "آخرین فعال", + "Last Modified": "آخرین تغییر", + "Last reply": "آخرین پاسخ", + "LDAP": "LDAP", + "LDAP server updated": "سرور LDAP به‌روز شد", + "Leaderboard": "تابلوی امتیازات", + "Learn More": "بیشتر بدانید", + "Learn more about OpenAPI tool servers.": "درباره سرورهای ابزار OpenAPI بیشتر بدانید.", + "Learn more about Voxtral transcription.": "درباره رونویسی واکسترال بیشتر بدانید.", + "Leave empty for no compression": "برای عدم فشرده‌سازی خالی بگذارید", + "Leave empty for unlimited": "برای نامحدود خالی بگذارید", + "Leave empty to include all models from \"{{url}}\" endpoint": "برای گنجاندن همه مدل‌ها از نقطه پایانی \"{{url}}\" خالی بگذارید", + "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "برای شامل شدن همه مدل‌ها از نقطه پایانی \"{{url}}/api/tags\" خالی بگذارید", + "Leave empty to include all models from \"{{url}}/models\" endpoint": "برای شامل شدن همه مدل‌ها از نقطه پایانی \"{{url}}/models\" خالی بگذارید", + "Leave empty to include all models or select specific models": "برای شامل شدن همه مدل‌ها خالی بگذارید یا مدل‌های خاص را انتخاب کنید", + "Leave empty to use the default model (voxtral-mini-latest).": "برای استفاده از مدل پیش‌فرض (voxtral-mini-latest) خالی بگذارید.", + "Leave empty to use the default prompt, or enter a custom prompt": "برای استفاده از پرامپت پیش‌فرض خالی بگذارید، یا یک پرامپت سفارشی وارد کنید", + "Leave model field empty to use the default model.": "برای استفاده از مدل پیش‌فرض، فیلد مدل را خالی بگذارید.", + "Legacy": "قدیمی", + "lexical": "لغوی", + "License": "مجوز", + "Lift List": "لیست ارتقا", + "Light": "روشن", + "Listening...": "در حال گوش دادن...", + "Llama.cpp": "Llama.cpp", + "LLMs can make mistakes. Verify important information.": "مدل‌های زبانی بزرگ می‌توانند اشتباه کنند. اطلاعات مهم را راستی‌آزمایی کنید.", + "Loader": "بارگذار", + "Loading Kokoro.js...": "در حال بارگذاری Kokoro.js...", + "Loading...": "در حال بارگذاری...", + "local": "محلی", + "Local": "محلی", + "Local Task Model": "مدل وظیفه محلی", + "Location access not allowed": "دسترسی به موقعیت مکانی مجاز نیست", + "Lost": "گم شده", + "Low": "پایین", + "LTR": "LTR", + "Made by Open WebUI Community": "ساخته شده توسط OpenWebUI Community", + "Make password visible in the user interface": "رمز عبور را در رابط کاربری قابل مشاهده کنید", + "Make sure to enclose them with": "مطمئن شوید که آنها را با این محصور کنید:", + "Make sure to export a workflow.json file as API format from ComfyUI.": "مطمئن شوید که یک فایل workflow.json را به عنوان قالب API از ComfyUI صادر کنید.", + "Male": "مرد", + "Manage": "مدیریت", + "Manage Direct Connections": "مدیریت اتصالات مستقیم", + "Manage Models": "مدیریت مدل‌ها", + "Manage Ollama": "مدیریت ollama", + "Manage Ollama API Connections": "مدیریت اتصالات API ollama", + "Manage OpenAI API Connections": "مدیریت اتصالات API اوپن‌ای‌آی", + "Manage Pipelines": "مدیریت خطوط لوله", + "Manage Tool Servers": "مدیریت سرورهای ابزار", + "Manage your account information.": "اطلاعات حساب خود را مدیریت کنید.", + "March": "مارچ", + "Markdown": "مارک‌داون", + "Markdown (Header)": "مارک‌داون (هدر)", + "Max Speakers": "حداکثر تعداد بلندگوها", + "Max Upload Count": "حداکثر تعداد آپلود", + "Max Upload Size": "حداکثر اندازه آپلود", + "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.", + "May": "ماهی", + "MCP": "MCP", + "MCP support is experimental and its specification changes often, which can lead to incompatibilities. OpenAPI specification support is directly maintained by the Open WebUI team, making it the more reliable option for compatibility.": "پشتیبانی MCP آزمایشی است و مشخصات آن اغلب تغییر می‌کند، که می‌تواند منجر به ناسازگاری شود. پشتیبانی از مشخصات OpenAPI مستقیماً توسط تیم Open WebUI نگهداری می‌شود و آن را به گزینه قابل اعتماد‌تری برای سازگاری تبدیل می‌کند.", + "Medium": "متوسط", + "Memories accessible by LLMs will be shown here.": "حافظه های دسترسی به LLMs در اینجا نمایش داده می شوند.", + "Memory": "حافظه", + "Memory added successfully": "حافظه با موفقیت اضافه شد", + "Memory cleared successfully": "حافظه با موفقیت پاک شد", + "Memory deleted successfully": "حافظه با موفقیت حذف شد", + "Memory updated successfully": "حافظه با موفقیت به‌روز شد", + "Merge Responses": "ادغام پاسخ‌ها", + "Merged Response": "پاسخ ادغام شده", + "Message": "پیام", + "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 می توانند چت اشتراک را مشاهده کنند.", + "Microsoft OneDrive": "وان‌درایو مایکروسافت", + "Microsoft OneDrive (personal)": "وان‌درایو مایکروسافت (شخصی)", + "Microsoft OneDrive (work/school)": "وان‌درایو مایکروسافت (کار/مدرسه)", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "کلید API MinerU برای حالت Cloud API مورد نیاز است.", + "Mistral OCR": "تشخیص متن میسترال", + "Mistral OCR API Key required.": "کلید API تشخیص متن میسترال مورد نیاز است.", + "MistralAI": "MistralAI", + "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": "مدل {{modelName}} قادر به بینایی نیست", + "Model {{name}} is now {{status}}": "مدل {{name}} در حال حاضر {{status}}", + "Model {{name}} is now hidden": "مدل {{name}} اکنون مخفی است", + "Model {{name}} is now visible": "مدل {{name}} اکنون قابل مشاهده است", + "Model accepts file inputs": "مدل ورودی فایل را می‌پذیرد", + "Model accepts image inputs": "مدل ورودی تصویر را می‌پذیرد", + "Model can execute code and perform calculations": "مدل می‌تواند کد را اجرا کرده و محاسبات را انجام دهد", + "Model can generate images based on text prompts": "مدل می‌تواند تصاویر را بر اساس پرامپت‌های متنی تولید کند", + "Model can search the web for information": "مدل می‌تواند وب را برای اطلاعات جستجو کند", + "Model created successfully!": "مدل با موفقیت ایجاد شد!", + "Model filesystem path detected. Model shortname is required for update, cannot continue.": "مسیر فایل سیستم مدل یافت شد. برای بروزرسانی نیاز است نام کوتاه مدل وجود داشته باشد.", + "Model Filtering": "فیلتر کردن مدل", + "Model ID": "شناسه مدل", + "Model ID is required.": "شناسه مدل مورد نیاز است.", + "Model IDs": "شناسه‌های مدل", + "Model Name": "نام مدل", + "Model name already exists, please choose a different one": "نام مدل قبلاً وجود دارد، لطفاً یک نام دیگر انتخاب کنید", + "Model Name is required.": "نام مدل مورد نیاز است.", + "Model not selected": "مدل انتخاب نشده", + "Model Params": "مدل پارامز", + "Model Permissions": "مجوزهای مدل", + "Model unloaded successfully": "مدل با موفقیت خارج شد", + "Model updated successfully": "مدل با موفقیت به‌روز شد", + "Model(s) do not support file upload": "مدل(ها) از بارگذاری فایل پشتیبانی نمی‌کنند", + "Modelfile Content": "محتویات فایل مدل", + "Models": "مدل‌ها", + "Models Access": "دسترسی به مدل‌ها", + "Models configuration saved successfully": "پیکربندی مدل‌ها با موفقیت ذخیره شد", + "Models imported successfully": "مدل‌ها با موفقیت وارد شدند", + "Models Public Sharing": "اشتراک‌گذاری عمومی مدل‌ها", + "Mojeek Search API Key": "کلید API جستجوی موجیک", + "More": "بیشتر", + "More Concise": "خلاصه‌تر", + "More Options": "گزینه‌های بیشتر", + "Move": "انتقال", + "Name": "نام", + "Name and ID are required, please fill them out": "نام و شناسه مورد نیاز هستند، لطفاً آنها را پر کنید", + "Name your knowledge base": "پایگاه دانش خود را نام‌گذاری کنید", + "Native": "بومی", + "New Button": "دکمه جدید", + "New Chat": "گپ جدید", + "New Folder": "پوشه جدید", + "New Function": "تابع جدید", + "New Knowledge": "دانش جدید", + "New Model": "مدل جدید", + "New Note": "یادداشت جدید", + "New Password": "رمز عبور جدید", + "New Prompt": "پرامپت جدید", + "New Temporary Chat": "چت موقت جدید", + "New Tool": "ابزار جدید", + "new-channel": "کانال-جدید", + "Next message": "پیام بعدی", + "No authentication": "بدون احراز هویت", + "No chats found": "هیچ چتی یافت نشد", + "No chats found for this user.": "هیچ چتی برای این کاربر یافت نشد.", + "No chats found.": "هیچ چتی یافت نشد.", + "No content": "بدون محتوا", + "No content found": "محتوایی یافت نشد", + "No content found in file.": "محتوایی در فایل یافت نشد.", + "No content to speak": "محتوایی برای خواندن وجود ندارد", + "No conversation to save": "هیچ مکالمه‌ای برای ذخیره وجود ندارد", + "No distance available": "فاصله‌ای در دسترس نیست", + "No expiration can pose security risks.": "عدم انقضا می‌تواند خطرات امنیتی ایجاد کند.", + "No feedbacks found": "بازخوردی یافت نشد", + "No file selected": "فایلی انتخاب نشده است", + "No functions found": "هیچ تابعی یافت نشد", + "No groups with access, add a group to grant access": "هیچ گروهی با دسترسی وجود ندارد، یک گروه برای اعطای دسترسی اضافه کنید", + "No HTML, CSS, or JavaScript content found.": "محتوای HTML، CSS یا JavaScript یافت نشد.", + "No inference engine with management support found": "موتور استنتاج با پشتیبانی مدیریت یافت نشد", + "No knowledge found": "دانشی یافت نشد", + "No memories to clear": "حافظه‌ای برای پاک کردن وجود ندارد", + "No model IDs": "شناسه مدلی وجود ندارد", + "No models found": "مدلی یافت نشد", + "No models selected": "مدلی انتخاب نشده است", + "No Notes": "هیچ یادداشتی وجود ندارد", + "No notes found": "هیچ یادداشتی یافت نشد", + "No prompts found": "هیچ پرامپتی یافت نشد", + "No results": "نتیجه‌ای یافت نشد", + "No results found": "نتیجه‌ای یافت نشد", + "No search query generated": "پرسوجوی جستجویی ایجاد نشده است", + "No source available": "منبعی در دسترس نیست", + "No sources found": "هیچ منبعی یافت نشد", + "No suggestion prompts": "بدون پرامپت پیشنهادی", + "No tools found": "هیچ ابزاری یافت نشد", + "No users were found.": "کاربری یافت نشد.", + "No valves": "بدون دریچه", + "No valves to update": "شیری برای به‌روزرسانی وجود ندارد", + "Node Ids": "شناسه‌های گره", + "None": "هیچ کدام", + "Not factually correct": "اشتباهی فکری نیست", + "Not helpful": "مفید نیست", + "Not Registered": "ثبت نشده", + "Note": "یادداشت", + "Note deleted successfully": "یادداشت با موفقیت حذف شد", + "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": "یادداشت‌ها", + "Notes Public Sharing": "اشتراک‌گذاری عمومی یادداشت‌ها", + "Notification Sound": "صدای اعلان", + "Notification Webhook": "وب‌هوک اعلان", + "Notifications": "اعلان", + "November": "نوامبر", + "OAuth": "OAuth", + "OAuth 2.1": "OAuth 2.1", + "OAuth ID": "شناسه OAuth", + "October": "اکتبر", + "Off": "خاموش", + "Okay, Let's Go!": "باشه، بزن بریم!", + "OLED Dark": "OLED تیره", + "Ollama": "Ollama", + "Ollama API": "Ollama API", + "Ollama API settings updated": "تنظیمات API ollama به‌روز شد", + "Ollama Cloud API Key": "کلید API ابری اُلاما", + "Ollama Version": "نسخه ollama", + "On": "روشن", + "OneDrive": "وان‌درایو", + "Only active when \"Paste Large Text as File\" setting is toggled on.": "فقط زمانی فعال است که تنظیم «چسباندن متن بزرگ به عنوان فایل» روشن باشد.", + "Only active when the chat input is in focus and an LLM is generating a response.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد و یک LLM در حال تولید پاسخ باشد.", + "Only active when the chat input is in focus.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد.", + "Only alphanumeric characters and hyphens are allowed": "فقط حروف الفبا، اعداد و خط تیره مجاز هستند", + "Only alphanumeric characters and hyphens are allowed in the command string.": "فقط کاراکترهای الفبایی و خط فاصله در رشته فرمان مجاز هستند.", + "Only can be triggered when the chat input is in focus.": "فقط زمانی قابل اجرا است که ورودی چت در فوکوس باشد.", + "Only collections can be edited, create a new knowledge base to edit/add documents.": "فقط مجموعه‌ها قابل ویرایش هستند، برای ویرایش/افزودن اسناد یک پایگاه دانش جدید ایجاد کنید.", + "Only markdown files are allowed": "فقط فایل‌های مارک‌داون مجاز هستند", + "Only select users and groups with permission can access": "فقط کاربران و گروه‌های دارای مجوز می‌توانند دسترسی داشته باشند", + "Oops! Looks like the URL is invalid. Please double-check and try again.": "اوه! به نظر می رسد URL نامعتبر است. لطفاً دوباره بررسی کنید و دوباره امتحان کنید.", + "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 link": "باز کردن لینک", + "Open modal to configure connection": "باز کردن مودال برای پیکربندی اتصال", + "Open Modal To Manage Floating Quick Actions": "باز کردن مودال برای مدیریت اقدامات سریع شناور", + "Open Modal To Manage Image Compression": "باز کردن مودال برای مدیریت فشرده‌سازی تصویر", + "Open Settings": "باز کردن تنظیمات", + "Open Sidebar": "باز کردن نوار کناری", + "Open User Profile Menu": "باز کردن منوی پروفایل کاربر", + "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI می‌تواند از ابزارهای ارائه شده توسط هر سرور OpenAPI استفاده کند.", + "Open WebUI uses faster-whisper internally.": "Open WebUI به صورت داخلی از faster-whisper استفاده می‌کند.", + "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI از SpeechT5 و جاسازی‌های گوینده CMU Arctic استفاده می‌کند.", + "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "نسخه Open WebUI (v{{OPEN_WEBUI_VERSION}}) پایین‌تر از نسخه مورد نیاز (v{{REQUIRED_VERSION}}) است", + "OpenAI": "OpenAI", + "OpenAI API": "OpenAI API", + "OpenAI API Base URL": "آدرس پایه API اوپن‌ای‌آی", + "OpenAI API Key": "کلید API اوپن‌ای‌آی", + "OpenAI API Key is required.": "مقدار کلید OpenAI API مورد نیاز است.", + "OpenAI API settings updated": "تنظیمات API اوپن‌ای‌آی به‌روز شد", + "OpenAI API Version": "نسخه API اوپن‌ای‌آی", + "OpenAI URL/Key required.": "URL/Key OpenAI مورد نیاز است.", + "OpenAPI": "OpenAPI", + "OpenAPI Spec": "مشخصات OpenAPI", + "openapi.json URL or Path": "آدرس URL یا مسیر openapi.json", + "Optional": "اختیاری", + "Options for running a local vision-language model in the picture description. The parameters refer to a model hosted on Hugging Face. This parameter is mutually exclusive with picture_description_api.": "گزینه‌های اجرای یک مدل زبان-بینایی محلی در توضیح تصویر. پارامترها به مدلی که در Hugging Face میزبانی می‌شود، اشاره دارند. این پارامتر با picture_description_api انحصاری متقابل است.", + "or": "یا", + "Ordered List": "لیست شماره‌گذاری شده", + "Organize your users": "کاربران خود را سازماندهی کنید", + "Other": "دیگر", + "OUTPUT": "خروجی", + "Output format": "قالب خروجی", + "Output Format": "قالب خروجی", + "Overview": "نمای کلی", + "page": "صفحه", + "Paginate": "صفحه‌بندی", + "Parameters": "پارامترها", + "Password": "رمز عبور", + "Passwords do not match.": "رمزهای عبور مطابقت ندارند.", + "Paste Large Text as File": "چسباندن متن بزرگ به عنوان فایل", + "PDF Backend": "بک‌اند PDF", + "PDF document (.pdf)": "PDF سند (.pdf)", + "PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)", + "pending": "در انتظار", + "Pending": "در انتظار", + "Pending User Overlay Content": "محتوای پوشش کاربر در انتظار", + "Pending User Overlay Title": "عنوان پوشش کاربر در انتظار", + "Perform OCR": "انجام OCR", + "Permission denied when accessing media devices": "دسترسی به دستگاه‌های رسانه رد شد", + "Permission denied when accessing microphone": "دسترسی به میکروفون رد شد", + "Permission denied when accessing microphone: {{error}}": "هنگام دسترسی به میکروفون، اجازه داده نشد: {{error}}", + "Permissions": "مجوزها", + "Perplexity API Key": "کلید API پرپلکسیتی", + "Perplexity Model": "مدل پرپلکسیتی", + "Perplexity Search Context Usage": "استفاده از زمینه جستجوی پرپلکسیتی", + "Personalization": "شخصی سازی", + "Picture Description API Config": "پیکربندی API توضیح تصویر", + "Picture Description Local Config": "پیکربندی محلی توضیح تصویر", + "Picture Description Mode": "حالت توضیح تصویر", + "Pin": "پین کردن", + "Pinned": "پین شده", + "Pioneer insights": "بینش‌های پیشگام", + "Pipe": "خط لوله", + "Pipeline": "خط لوله", + "Pipeline deleted successfully": "خط لوله با موفقیت حذف شد", + "Pipeline downloaded successfully": "خط لوله با موفقیت دانلود شد", + "Pipelines": "خط لوله", + "Pipelines are a plugin system with arbitrary code execution —": "Pipelines یک سیستم افزونه با امکان اجرای دلخواه کد است —", + "Pipelines Not Detected": "خطوط لوله شناسایی نشدند", + "Pipelines Valves": "شیرالات خطوط لوله", + "Plain text (.md)": "متن ساده (.md)", + "Plain text (.txt)": "متن ساده (.txt)", + "Playground": "زمین بازی", + "Playwright Timeout (ms)": "مهلت زمانی پلی‌رایت (میلی‌ثانیه)", + "Playwright WebSocket URL": "آدرس وب‌سوکت پلی‌رایت", + "Please carefully review the following warnings:": "لطفاً هشدارهای زیر را با دقت بررسی کنید:", + "Please do not close the settings page while loading the model.": "لطفاً در حین بارگیری مدل، صفحه تنظیمات را نبندید.", + "Please enter a message or attach a file.": "لطفاً یک پیام وارد کنید یا یک فایل پیوست کنید.", + "Please enter a prompt": "لطفاً یک پرامپت وارد کنید", + "Please enter a valid ID": "لطفاً یک شناسه معتبر وارد کنید", + "Please enter a valid JSON spec": "لطفاً یک مشخصات JSON معتبر وارد کنید", + "Please enter a valid path": "لطفاً یک مسیر معتبر وارد کنید", + "Please enter a valid URL": "لطفاً یک URL معتبر وارد کنید", + "Please enter a valid URL.": "لطفاً یک آدرس URL معتبر وارد کنید.", + "Please fill in all fields.": "لطفاً همه فیلدها را پر کنید.", + "Please register the OAuth client": "لطفاً کلاینت OAuth را ثبت کنید", + "Please save the connection to persist the OAuth client information and do not change the ID": "لطفاً اتصال را ذخیره کنید تا اطلاعات کلاینت OAuth ماندگار شود و شناسه را تغییر ندهید", + "Please select a model first.": "لطفاً ابتدا یک مدل انتخاب کنید.", + "Please select a model.": "لطفاً یک مدل انتخاب کنید.", + "Please select a reason": "لطفاً یک دلیل انتخاب کنید", + "Please select a valid JSON file": "لطفاً یک فایل JSON معتبر انتخاب کنید", + "Please wait until all files are uploaded.": "لطفاً منتظر بمانید تا همه فایل‌ها آپلود شوند.", + "Port": "پورت", + "Positive attitude": "نظرات مثبت", + "Prefer not to say": "ترجیح می‌دهم نگویم", + "Prefix ID": "شناسه پیشوند", + "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "شناسه پیشوند برای جلوگیری از تداخل با سایر اتصالات با افزودن پیشوند به شناسه‌های مدل استفاده می‌شود - برای غیرفعال کردن خالی بگذارید", + "Prevent File Creation": "جلوگیری از ایجاد فایل", + "Preview": "پیش‌نمایش", + "Previous 30 days": "30 روز قبل", + "Previous 7 days": "7 روز قبل", + "Previous message": "پیام قبلی", + "Private": "خصوصی", + "Profile": "پروفایل", + "Prompt": "پرامپت", + "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "پیشنهاد (برای مثال: به من بگوید چیزی که برای من یک کاربرد داره درباره ایران)", + "Prompt Autocompletion": "تکمیل خودکار پرامپت", + "Prompt Content": "محتویات پرامپت", + "Prompt created successfully": "پرامپت با موفقیت ایجاد شد", + "Prompt suggestions": "پیشنهادات پرامپت", + "Prompt updated successfully": "پرامپت با موفقیت به‌روز شد", + "Prompts": "پرامپت‌ها", + "Prompts Access": "دسترسی پرامپت‌ها", + "Prompts Public Sharing": "اشتراک‌گذاری عمومی پرامپت‌ها", + "Provider Type": "نوع ارائه‌دهنده", + "Public": "عمومی", + "Pull \"{{searchValue}}\" from Ollama.com": "بازگرداندن \"{{searchValue}}\" از Ollama.com", + "Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com", + "Pull Model": "کشیدن مدل", + "pypdfium2": "pypdfium2", + "Query Generation Prompt": "پرامپت تولید کوئری", + "Querying": "در حال پرس‌وجو", + "Quick Actions": "اقدامات سریع", + "RAG Template": "RAG الگوی", + "Rating": "امتیازدهی", + "Re-rank models by topic similarity": "رتبه‌بندی مجدد مدل‌ها براساس شباهت موضوعی", + "Read": "خواندن", + "Read Aloud": "خواندن به صورت صوتی", + "Read more →": "بیشتر بخوانید ←", + "Reason": "دلیل", + "Reasoning Effort": "تلاش استدلال", + "Reasoning Tags": "تگ‌های استدلال", + "Record": "ضبط", + "Record voice": "ضبط صدا", + "Redirecting you to Open WebUI Community": "در حال هدایت به OpenWebUI Community", + "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.": "احتمال تولید محتوای بی‌معنی را کاهش می‌دهد. مقدار بالاتر (مثلاً 100) پاسخ‌های متنوع‌تری می‌دهد، در حالی که مقدار پایین‌تر (مثلاً 10) محافظه‌کارانه‌تر خواهد بود.", + "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "به خود به عنوان \"کاربر\" اشاره کنید (مثلاً، \"کاربر در حال یادگیری اسپانیایی است\")", + "Reference Chats": "چت‌های مرجع", + "Refused when it shouldn't have": "رد شده زمانی که باید نباشد", + "Regenerate": "تولید مجدد", + "Regenerate Menu": "منوی بازتولید", + "Regenerate Response": "بازتولید پاسخ", + "Register Again": "دوباره ثبت نام کنید", + "Register Client": "ثبت کلاینت", + "Registered": "ثبت شده", + "Registration failed": "ثبت نام ناموفق بود", + "Registration successful": "ثبت نام با موفقیت انجام شد", + "Reindex": "فهرست‌بندی مجدد", + "Reindex Knowledge Base Vectors": "فهرست‌بندی مجدد بردارهای پایگاه دانش", + "Release Notes": "یادداشت‌های انتشار", + "Releases": "انتشارها", + "Relevance": "ارتباط", + "Relevance Threshold": "آستانه ارتباط", + "Remember Dismissal": "به خاطر سپردن رد کردن", + "Remove": "حذف", + "Remove {{MODELID}} from list.": "حذف {{MODELID}} از لیست.", + "Remove file": "حذف فایل", + "Remove File": "حذف فایل", + "Remove image": "حذف تصویر", + "Remove Model": "حذف مدل", + "Remove this tag from list": "حذف این تگ از لیست", + "Rename": "تغییر نام", + "Reorder Models": "ترتیب مجدد مدل‌ها", + "Reply": "پاسخ", + "Reply in Thread": "پاسخ در رشته", + "Reply to thread...": "پاسخ به رشته...", + "Replying to {{NAME}}": "در حال پاسخ به {{NAME}}", + "required": "مورد نیاز", + "Reranking Engine": "موتور رتبه‌بندی مجدد", + "Reranking Model": "مدل ری‌شناسی مجدد غیرفعال است", + "Reset": "بازنشانی", + "Reset All Models": "بازنشانی همه مدل‌ها", + "Reset Image": "بازنشانی تصویر", + "Reset Upload Directory": "بازنشانی پوشه آپلود", + "Reset Vector Storage/Knowledge": "بازنشانی ذخیره‌سازی برداری/دانش", + "Reset view": "بازنشانی نما", + "Response": "پاسخ", + "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "اعلان‌های پاسخ نمی‌توانند فعال شوند زیرا مجوزهای وب‌سایت رد شده‌اند. لطفاً تنظیمات مرورگر خود را برای اعطای دسترسی لازم بررسی کنید.", + "Response splitting": "تقسیم پاسخ", + "Response Watermark": "واترمارک پاسخ", + "Result": "نتیجه", + "RESULT": "نتیجه", + "Retrieval": "بازیابی", + "Retrieval Query Generation": "تولید کوئری بازیابی", + "Retrieved {{count}} sources": "{{count}} منبع بازیابی شد", + "Retrieved {{count}} sources_one": "{{count}} منبع بازیابی شد", + "Retrieved {{count}} sources_other": "{{count}} منبع بازیابی شد", + "Retrieved 1 source": "۱ منبع بازیابی شد", + "Rich Text Input for Chat": "ورودی متن غنی برای چت", + "RK": "RK", + "Role": "نقش", + "Rosé Pine": "Rosé Pine", + "Rosé Pine Dawn": "Rosé Pine Dawn", + "RTL": "RTL", + "Run": "اجرا", + "Running": "در حال اجرا", + "Running...": "در حال اجرا...", + "Save": "ذخیره", + "Save & Create": "ذخیره و ایجاد", + "Save & Update": "ذخیره و به‌روزرسانی", + "Save As Copy": "ذخیره به صویت رونوشت", + "Save Chat": "ذخیره چت", + "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 On Branch Change": "اسکرول هنگام تغییر شاخه", + "Search": "جستجو", + "Search a model": "جستجوی یک مدل", + "Search all emojis": "جستجوی همه ایموجی‌ها", + "Search Base": "پایه جستجو", + "Search Chats": "جستجو گفتگوها", + "Search Collection": "جستجوی مجموعه‌ها", + "Search Filters": "فیلترهای جستجو", + "search for archived chats": "جستجو برای چت‌های بایگانی شده", + "search for folders": "جستجو برای پوشه‌ها", + "search for pinned chats": "جستجو برای چت‌های پین شده", + "search for shared chats": "جستجو برای چت‌های اشتراک‌گذاری شده", + "search for tags": "جستجو برای برچسب‌ها", + "Search Functions": "جستجوی توابع", + "Search In Models": "جستجو در مدل‌ها", + "Search Knowledge": "جستجوی دانش", + "Search Models": "جستجوی مدل‌ها", + "Search Notes": "جستجوی یادداشت‌ها", + "Search options": "گزینه‌های جستجو", + "Search Prompts": "جستجوی پرامپت‌ها", + "Search Result Count": "تعداد نتایج جستجو", + "Search the internet": "جستجوی اینترنت", + "Search Tools": "ابزارهای جستجو", + "SearchApi API Key": "کلید API SearchApi", + "SearchApi Engine": "موتور SearchApi", + "Searched {{count}} sites": "جستجوی {{count}} سایت", + "Searching": "در حال جستجو", + "Searching \"{{searchQuery}}\"": "جستجوی «{{searchQuery}}»", + "Searching Knowledge for \"{{searchQuery}}\"": "جستجوی دانش برای «{{searchQuery}}»", + "Searching the web": "در حال جستجوی وب", + "Searxng Query URL": "نشانی وب جستجوی Searxng", + "See readme.md for instructions": "برای مشاهده دستورالعمل‌ها به readme.md مراجعه کنید", + "See what's new": "ببینید موارد جدید چه بوده", + "Seed": "هسته", + "Select": "انتخاب", + "Select a base model": "انتخاب یک مدل پایه", + "Select a base model (e.g. llama3, gpt-4o)": "یک مدل پایه انتخاب کنید (مثلاً llama3, gpt-4o)", + "Select a conversation to preview": "یک مکالمه برای پیش‌نمایش انتخاب کنید", + "Select a engine": "انتخاب یک موتور", + "Select a function": "انتخاب یک تابع", + "Select a group": "انتخاب یک گروه", + "Select a language": "یک زبان انتخاب کنید", + "Select a mode": "یک حالت انتخاب کنید", + "Select a model": "انتخاب یک مدل", + "Select a model (optional)": "یک مدل انتخاب کنید (اختیاری)", + "Select a pipeline": "انتخاب یک خط لوله", + "Select a pipeline url": "یک ادرس خط لوله را انتخاب کنید", + "Select a reranking model engine": "یک موتور مدل رتبه‌بندی مجدد انتخاب کنید", + "Select a role": "یک نقش انتخاب کنید", + "Select a theme": "یک تم انتخاب کنید", + "Select a tool": "انتخاب یک ابقزار", + "Select a voice": "یک صدا انتخاب کنید", + "Select an auth method": "یک روش احراز هویت را انتخاب کنید", + "Select an embedding model engine": "یک موتور مدل جاسازی انتخاب کنید", + "Select an engine": "یک موتور انتخاب کنید", + "Select an Ollama instance": "یک نمونه ollama را انتخاب کنید", + "Select an output format": "یک قالب خروجی انتخاب کنید", + "Select dtype": "dtype را انتخاب کنید", + "Select Engine": "انتخاب موتور", + "Select how to split message text for TTS requests": "نحوه تقسیم متن پیام برای درخواست‌های TTS را انتخاب کنید", + "Select Knowledge": "انتخاب دانش", + "Select Method": "انتخاب روش", + "Select only one model to call": "تنها یک مدل را برای صدا زدن انتخاب کنید", + "Select view": "انتخاب نما", + "Selected model(s) do not support image inputs": "مدل) های (انتخاب شده ورودیهای تصویر را پشتیبانی نمیکند", + "semantic": "معنایی", + "Send": "ارسال", + "Send a Message": "ارسال یک پیام", + "Send message": "ارسال پیام", + "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "ارسال `stream_options: { include_usage: true }` در درخواست.\nارائه دهندگان پشتیبانی شده در صورت تنظیم، اطلاعات استفاده از توکن را در پاسخ برمی گردانند.", + "September": "سپتامبر", + "SerpApi API Key": "کلید API سرپ‌ای‌پی‌آی", + "SerpApi Engine": "موتور سرپ‌ای‌پی‌آی", + "Serper API Key": "کلید API Serper", + "Serply API Key": "کلید API سرپلی", + "Serpstack API Key": "کلید API Serpstack", + "Server connection verified": "اتصال سرور تأیید شد", + "Session": "جلسه", + "Set as default": "تنظیم به عنوان پیشفرض", + "Set embedding model": "تنظیم مدل جاسازی", + "Set embedding model (e.g. {{model}})": "تنظیم مدل پیچشی (برای مثال {{model}})", + "Set reranking model (e.g. {{model}})": "تنظیم مدل ری‌راینگ (برای مثال {{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.": "تعداد لایه‌هایی را که به GPU منتقل می‌شوند تنظیم کنید. افزایش این مقدار می‌تواند عملکرد مدل‌هایی که برای شتاب‌دهی GPU بهینه‌سازی شده‌اند را به طور قابل توجهی بهبود بخشد اما ممکن است مصرف برق و منابع GPU را نیز افزایش دهد.", + "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": "تنظیم مدل ویسپر", + "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.": "یک بایاس ثابت در برابر توکن‌هایی که حداقل یک بار ظاهر شده‌اند تنظیم می‌کند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می‌کند، در حالی که مقدار پایین‌تر (مثلاً 0.9) آسان‌گیرتر خواهد بود. در 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.": "یک بایاس مقیاس‌پذیر در برابر توکن‌ها برای جریمه کردن تکرارها، بر اساس تعداد دفعات ظاهر شدن آنها تنظیم می‌کند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می‌کند، در حالی که مقدار پایین‌تر (مثلاً 0.9) آسان‌گیرتر خواهد بود. در 0، غیرفعال می‌شود.", + "Sets how far back for the model to look back to prevent repetition.": "تنظیم می‌کند که مدل چقدر به عقب نگاه کند تا از تکرار جلوگیری شود.", + "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.": "عدد تصادفی اولیه را برای تولید تنظیم می‌کند. تنظیم این به یک عدد خاص باعث می‌شود مدل برای پرامپت یکسان، متن یکسانی تولید کند.", + "Sets the size of the context window used to generate the next token.": "اندازه پنجره متن مورد استفاده برای تولید توکن بعدی را تنظیم می‌کند.", + "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.": "توالی‌های توقف مورد استفاده را تنظیم می‌کند. وقتی این الگو مشاهده شود، LLM تولید متن را متوقف کرده و برمی‌گردد. الگوهای توقف متعدد می‌توانند با مشخص کردن پارامترهای توقف جداگانه متعدد در فایل مدل تنظیم شوند.", + "Settings": "تنظیمات", + "Settings saved successfully!": "تنظیمات با موفقیت ذخیره شد!", + "Share": "اشتراک‌گذاری", + "Share Chat": "اشتراک‌گذاری چت", + "Share to Open WebUI Community": "اشتراک گذاری با OpenWebUI Community", + "Share your background and interests": "پیشینه و علایق خود را به اشتراک بگذارید", + "Shared with you": "به اشتراک گذاشته شده با شما", + "Sharing Permissions": "مجوزهای اشتراک‌گذاری", + "Show": "نمایش", + "Show \"What's New\" modal on login": "نمایش مودال \"موارد جدید\" هنگام ورود", + "Show Admin Details in Account Pending Overlay": "نمایش جزئیات مدیر در پوشش حساب در انتظار", + "Show Formatting Toolbar": "نمایش نوار ابزار قالب‌بندی", + "Show image preview": "نمایش پیش‌نمایش تصویر", + "Show Model": "نمایش مدل", + "Show Shortcuts": "نمایش میانبرها", + "Show your support!": "حمایت خود را نشان دهید!", + "Showcased creativity": "ایده‌آفرینی", + "Sign in": "ورود", + "Sign in to {{WEBUI_NAME}}": "ورود به {{WEBUI_NAME}}", + "Sign in to {{WEBUI_NAME}} with LDAP": "ورود به {{WEBUI_NAME}} با LDAP", + "Sign Out": "خروج", + "Sign up": "ثبت نام", + "Sign up to {{WEBUI_NAME}}": "ثبت نام در {{WEBUI_NAME}}", + "Significantly improves accuracy by using an LLM to enhance tables, forms, inline math, and layout detection. Will increase latency. Defaults to False.": "با استفاده از یک LLM برای بهبود جداول، فرم‌ها، ریاضیات درون‌خطی و تشخیص چیدمان، دقت را به طور قابل توجهی افزایش می‌دهد. باعث افزایش تأخیر خواهد شد. پیش‌فرض: False.", + "Signing in to {{WEBUI_NAME}}": "در حال ورود به {{WEBUI_NAME}}", + "Sink List": "لیست سینک", + "sk-1234": "sk-1234", + "Skip Cache": "رد کردن کش", + "Skip the cache and re-run the inference. Defaults to False.": "کش را رد کرده و استنتاج را مجدداً اجرا کنید. پیش‌فرض: False.", + "Something went wrong :/": "مشکلی پیش آمد :/", + "Sonar": "سونار", + "Sonar Deep Research": "تحقیق عمیق سونار", + "Sonar Pro": "سونار پرو", + "Sonar Reasoning": "استدلال سونار", + "Sonar Reasoning Pro": "استدلال سونار پرو", + "Sougou Search API sID": "شناسه API جستجوی سوگو", + "Sougou Search API SK": "کلید SK API جستجوی سوگو", + "Source": "منبع", + "Speech Playback Speed": "سرعت پخش گفتار", + "Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}", + "Speech-to-Text": "گفتار به متن", + "Speech-to-Text Engine": "موتور گفتار به متن", + "standard": "استاندارد", + "Start a new conversation": "شروع یک مکالمه جدید", + "Start of the channel": "آغاز کانال", + "Start Tag": "تگ شروع", + "Status Updates": "به‌روزرسانی‌های وضعیت", + "STDOUT/STDERR": "STDOUT/STDERR", + "Steps": "مراحل", + "Stop": "توقف", + "Stop Generating": "توقف تولید", + "Stop Sequence": "توقف توالی", + "Stream Chat Response": "پاسخ چت جریانی", + "Stream Delta Chunk Size": "اندازه دلتا تکه جریانی", + "Streamable HTTP": "HTTP قابل جریان", + "Strikethrough": "خط خورده", + "Strip Existing OCR": "حذف OCR موجود", + "Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.": "حذف متن OCR موجود از PDF و اجرای مجدد OCR. اگر «اجبار به OCR» فعال باشد نادیده گرفته می‌شود. پیش‌فرض: False.", + "STT Model": "مدل تبدیل صدا به متن", + "STT Settings": "تنظیمات تبدیل صدا به متن", + "Stylized PDF Export": "خروجی گرفتن از PDF با استایل", + "Subtitle (e.g. about the Roman Empire)": "زیرنویس (برای مثال: درباره رمانی)", + "Success": "موفقیت", + "Successfully imported {{userCount}} users.": "{{userCount}} کاربر با موفقیت وارد شدند.", + "Successfully updated.": "با موفقیت به‌روز شد", + "Suggest a change": "پیشنهاد یک تغییر", + "Suggested": "پیشنهادی", + "Support": "حمایت", + "Support this plugin:": "حمایت از این افزونه", + "Supported MIME Types": "انواع MIME پشتیبانی شده", + "Sync directory": "هم‌گام‌سازی پوشه", + "System": "سیستم", + "System Instructions": "دستورالعمل‌های سیستم", + "System Prompt": "پرامپت سیستم", + "Table Mode": "حالت جدول", + "Tag": "تگ", + "Tags": "برچسب‌ها", + "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.": "نمونه‌برداری دنباله آزاد برای کاهش تأثیر توکن‌های کم احتمال‌تر از خروجی استفاده می‌شود. مقدار بالاتر (مثلاً 2.0) تأثیر را بیشتر کاهش می‌دهد، در حالی که مقدار 1.0 این تنظیم را غیرفعال می‌کند.", + "Talk to Model": "صحبت با مدل", + "Tap to interrupt": "برای وقفه ضربه بزنید", + "Task List": "لیست وظایف", + "Task Model": "مدل وظیفه", + "Tasks": "وظایف", + "Tavily API Key": "کلید API تاویلی", + "Tavily Extract Depth": "عمق استخراج تاویلی", + "Tell us more:": "بیشتر بگویید:", + "Temperature": "دما", + "Temporary Chat": "چت موقت", + "Temporary Chat by Default": "چت موقت به صورت پیش‌فرض", + "Text Splitter": "تقسیم‌کننده متن", + "Text-to-Speech": "متن به گفتار", + "Text-to-Speech Engine": "موتور تبدیل متن به گفتار", + "Thanks for your feedback!": "با تشکر از بازخورد شما!", + "The Application Account DN you bind with for search": "DN حساب برنامه که برای جستجو به آن متصل می‌شوید", + "The base to search for users": "پایه برای جستجوی کاربران", + "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "اندازه دسته تعیین می‌کند که چند درخواست متنی همزمان پردازش می‌شوند. اندازه دسته بزرگتر می‌تواند عملکرد و سرعت مدل را افزایش دهد، اما به حافظه بیشتری نیاز دارد.", + "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "توسعه‌دهندگان این افزونه داوطلبان مشتاق از جامعه هستند. اگر این افزونه را مفید می‌دانید، لطفاً در توسعه آن مشارکت کنید.", + "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "تابلوی امتیازات ارزیابی بر اساس سیستم رتبه‌بندی Elo است و در زمان واقعی به‌روز می‌شود.", + "The format to return a response in. Format can be json or a JSON schema.": "قالبی که باید پاسخ در آن برگردانده شود. قالب می‌تواند json یا یک شمای JSON باشد.", + "The height in pixels to compress images to. Leave empty for no compression.": "ارتفاع بر حسب پیکسل برای فشرده‌سازی تصاویر. برای عدم فشرده‌سازی خالی بگذارید.", + "The language of the input audio. Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency. Leave blank to automatically detect the language.": "زبان صدای ورودی. ارائه زبان ورودی در قالب ISO-639-1 (مثلاً en) دقت و تأخیر را بهبود می‌بخشد. برای تشخیص خودکار زبان، خالی بگذارید.", + "The LDAP attribute that maps to the mail that users use to sign in.": "ویژگی LDAP که به ایمیلی که کاربران برای ورود استفاده می‌کنند نگاشت می‌شود.", + "The LDAP attribute that maps to the username that users use to sign in.": "ویژگی LDAP که به نام کاربری که کاربران برای ورود استفاده می‌کنند نگاشت می‌شود.", + "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 output format for the text. Can be 'json', 'markdown', or 'html'. Defaults to 'markdown'.": "قالب خروجی برای متن. می‌تواند 'json'، 'markdown' یا 'html' باشد. پیش‌فرض: 'markdown'.", + "The passwords you entered don't quite match. Please double-check and try again.": "رمزهای عبوری که وارد کردید کاملاً مطابقت ندارند. لطفاً دوباره بررسی کرده و تلاش کنید.", + "The score should be a value between 0.0 (0%) and 1.0 (100%).": "امتیاز باید مقداری بین 0.0 (0%) و 1.0 (100%) باشد.", + "The stream delta chunk size for the model. Increasing the chunk size will make the model respond with larger pieces of text at once.": "اندازه دلتا تکه جریانی برای مدل. افزایش اندازه تکه باعث می‌شود مدل با قطعات بزرگ‌تری از متن به یکباره پاسخ دهد.", + "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "دمای مدل. افزایش دما باعث می‌شود مدل خلاقانه‌تر پاسخ دهد.", + "The Weight of BM25 Hybrid Search. 0 more semantic, 1 more lexical. Default 0.5": "وزن جستجوی ترکیبی BM25. ۰ معنایی‌تر، ۱ لغوی‌تر. پیش‌فرض ۰.۵", + "The width in pixels to compress images to. Leave empty for no compression.": "عرض بر حسب پیکسل برای فشرده‌سازی تصاویر. برای عدم فشرده‌سازی خالی بگذارید.", + "Theme": "پوسته", + "Thinking...": "در حال فکر کردن...", + "This action cannot be undone. Do you wish to continue?": "این عمل قابل بازگشت نیست. آیا می‌خواهید ادامه دهید؟", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "این کانال در {{createdAt}} ایجاد شد. این آغاز کانال {{channelName}} است.", + "This chat won't appear in history and your messages will not be saved.": "این چت در تاریخچه ظاهر نمی‌شود و پیام‌های شما ذخیره نخواهند شد.", + "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "این اطمینان می‌دهد که مکالمات ارزشمند شما به طور امن در پایگاه داده پشتیبان ذخیره می‌شوند. متشکریم!", + "This feature is experimental and may be modified or discontinued without notice.": "این ویژگی آزمایشی است و ممکن است بدون اطلاع قبلی تغییر یا متوقف شود.", + "This is a default user permission and will remain enabled.": "این یک مجوز کاربر پیش‌فرض است و فعال باقی خواهد ماند.", + "This is an experimental feature, it may not function as expected and is subject to change at any time.": "این یک ویژگی آزمایشی است، ممکن است طبق انتظار کار نکند و در هر زمان ممکن است تغییر کند.", + "This model is not publicly available. Please select another model.": "این مدل به صورت عمومی در دسترس نیست. لطفاً مدل دیگری انتخاب کنید.", + "This option controls how long the model will stay loaded into memory following the request (default: 5m)": "این گزینه مدت زمانی را کنترل می‌کند که مدل پس از درخواست در حافظه بارگذاری شده باقی می‌ماند (پیش‌فرض: ۵ دقیقه)", + "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.": "این گزینه کنترل می‌کند که هنگام تازه‌سازی متن، چند توکن حفظ شوند. برای مثال، اگر روی 2 تنظیم شود، 2 توکن آخر متن مکالمه حفظ خواهند شد. حفظ متن می‌تواند به حفظ پیوستگی مکالمه کمک کند، اما ممکن است توانایی پاسخ به موضوعات جدید را کاهش دهد.", + "This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "این گزینه استفاده از ویژگی استدلال در اُلاما را فعال یا غیرفعال می‌کند، که به مدل اجازه می‌دهد قبل از تولید پاسخ فکر کند. هنگامی که فعال باشد، مدل می‌تواند لحظه‌ای را برای پردازش زمینه مکالمه صرف کند و یک پاسخ متفکرانه‌تر تولید کند.", + "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.": "این گزینه حداکثر تعداد توکن‌هایی را که مدل می‌تواند در پاسخ خود تولید کند تنظیم می‌کند. افزایش این محدودیت به مدل اجازه می‌دهد پاسخ‌های طولانی‌تری ارائه دهد، اما ممکن است احتمال تولید محتوای بی‌فایده یا نامربوط را نیز افزایش دهد.", + "This option will delete all existing files in the collection and replace them with newly uploaded files.": "این گزینه تمام فایل‌های موجود در مجموعه را حذف کرده و با فایل‌های جدید آپلود شده جایگزین می‌کند.", + "This response was generated by \"{{model}}\"": "این پاسخ توسط \"{{model}}\" تولید شده است", + "This will delete": "این حذف خواهد شد", + "This will delete {{NAME}} and all its contents.": "این {{NAME}} و تمام محتویات آن را حذف خواهد کرد.", + "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": "توضیح کامل", + "Thought for {{DURATION}}": "فکر کردن برای {{DURATION}}", + "Thought for {{DURATION}} seconds": "فکر کردن برای {{DURATION}} ثانیه", + "Thought for less than a second": "کمتر از یک ثانیه فکر کرد", + "Thread": "رشته", + "Tika": "تیکا", + "Tika Server URL required.": "آدرس سرور تیکا مورد نیاز است.", + "Tiktoken": "تیک توکن", + "Title": "عنوان", + "Title (e.g. Tell me a fun fact)": "عنوان (برای مثال: به من بگوید چیزی که دوست دارید)", + "Title Auto-Generation": "تولید خودکار عنوان", + "Title cannot be an empty string.": "عنوان نمی تواند یک رشته خالی باشد.", + "Title Generation": "تولید عنوان", + "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.": "برای کسب اطلاعات بیشتر در مورد نقاط پایانی موجود، به مستندات ما مراجعه کنید.", + "To learn more about powerful prompt variables, click here": "برای کسب اطلاعات بیشتر در مورد متغیرهای قدرتمند پرامپت، اینجا کلیک کنید", + "To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "برای حفظ حریم خصوصی شما، فقط امتیازات، شناسه‌های مدل، برچسب‌ها و متادیتا از بازخورد شما به اشتراک گذاشته می‌شود - گفتگوهای شما خصوصی باقی می‌ماند و شامل نمی‌شود.", + "To select toolkits here, add them to the \"Tools\" workspace first.": "برای انتخاب ابزارها در اینجا، ابتدا آنها را به فضای کاری \"ابزارها\" اضافه کنید.", + "Toast notifications for new updates": "اعلان‌های پاپ‌آپ برای به‌روزرسانی‌های جدید", + "Today": "امروز", + "Today at {{LOCALIZED_TIME}}": "امروز در {{LOCALIZED_TIME}}", + "Toggle Sidebar": "تغییر وضعیت نوار کناری", + "Toggle whether current connection is active.": "تغییر وضعیت فعال بودن اتصال فعلی.", + "Token": "توکن", + "Too verbose": "خیلی طولانی", + "Tool created successfully": "ابزار با موفقیت ایجاد شد", + "Tool deleted successfully": "ابزار با موفقیت حذف شد", + "Tool Description": "توضیحات ابزار", + "Tool ID": "شناسه ابزار", + "Tool imported successfully": "ابزار با موفقیت وارد شد", + "Tool Name": "نام ابزار", + "Tool Servers": "سرورهای ابزار", + "Tool updated successfully": "ابزار با موفقیت به‌روزرسانی شد", + "Tools": "ابزارها", + "Tools Access": "دسترسی به ابزارها", + "Tools are a function calling system with arbitrary code execution": "ابزارها یک سیستم فراخوانی تابع با اجرای کد دلخواه هستند", + "Tools Function Calling Prompt": "پرامپت فراخوانی تابع ابزارها", + "Tools have a function calling system that allows arbitrary code execution.": "ابزارها دارای سیستم فراخوانی تابع هستند که اجازه اجرای کد دلخواه را می‌دهد.", + "Tools Public Sharing": "اشتراک‌گذاری عمومی ابزارها", + "Top K": "Top K", + "Top K Reranker": "رتبه‌بندی مجدد Top K", + "Transformers": "ترنسفورمرها", + "Trouble accessing Ollama?": "در دسترسی به ollama مشکل دارید؟", + "Trust Proxy Environment": "اعتماد به محیط پراکسی", + "Try adjusting your search or filter to find what you are looking for.": "برای یافتن آنچه به دنبالش هستید، سعی کنید جستجو یا فیلتر خود را تنظیم کنید.", + "Try Again": "دوباره تلاش کنید", + "TTS Model": "مدل TTS", + "TTS Settings": "تنظیمات TTS", + "TTS Voice": "صدای TTS", + "Type": "نوع", + "Type here...": "اینجا تایپ کنید...", + "Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید", + "Uh-oh! There was an issue with the response.": "اوه! مشکلی در پاسخ وجود داشت.", + "UI": "رابط کاربری", + "Unarchive All": "خارج کردن همه از آرشیو", + "Unarchive All Archived Chats": "خارج کردن همه چت‌های آرشیو شده از آرشیو", + "Unarchive Chat": "خارج کردن چت از آرشیو", + "Underline": "زیر خط", + "Unknown": "ناشناخته", + "Unknown User": "کاربر ناشناس", + "Unloads {{FROM_NOW}}": "خارج می‌شود {{FROM_NOW}}", + "Unlock mysteries": "رمزگشایی از اسرار", + "Unpin": "برداشتن پین", + "Unravel secrets": "کشف رازها", + "Unsupported file type.": "نوع فایل پشتیبانی نمی‌شود.", + "Untagged": "بدون برچسب", + "Untitled": "بدون عنوان", + "Update": "به‌روزرسانی", + "Update and Copy Link": "به روزرسانی و کپی لینک", + "Update for the latest features and improvements.": "برای آخرین ویژگی‌ها و بهبودها به‌روزرسانی کنید.", + "Update password": "به روزرسانی رمزعبور", + "Updated": "بارگذاری شد", + "Updated at": "بارگذاری در", + "Updated At": "بارگذاری در", + "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "برای قابلیت‌های پیشرفته، از جمله تم و برندسازی سفارشی و پشتیبانی اختصاصی، به طرح دارای مجوز ارتقا دهید.", + "Upload": "بارگذاری", + "Upload a GGUF model": "آپلود یک مدل GGUF", + "Upload Audio": "آپلود صدا", + "Upload directory": "پوشه آپلود", + "Upload files": "آپلود فایل‌ها", + "Upload Files": "بارگذاری پروندهها", + "Upload Model": "آپلود مدل", + "Upload Pipeline": "خط تولید آپلود", + "Upload Progress": "پیشرفت آپلود", + "Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "پیشرفت آپلود: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}٪)", + "URL": "آدرس اینترنتی", + "URL is required": "آدرس URL مورد نیاز است", + "URL Mode": "حالت URL", + "Usage": "استفاده", + "Use '#' in the prompt input to load and include your knowledge.": "از '#' در ورودی پرامپت برای بارگیری و شامل کردن دانش خود استفاده کنید.", + "Use /v1/chat/completions endpoint instead of /v1/audio/transcriptions for potentially better accuracy.": "از نقطه پایانی /v1/chat/completions به جای /v1/audio/transcriptions برای دقت بالقوه بهتر استفاده کنید.", + "Use Chat Completions API": "استفاده از API تکمیل چت", + "Use groups to group your users and assign permissions.": "از گروه‌ها برای گروه‌بندی کاربران و تخصیص مجوزها استفاده کنید.", + "Use LLM": "استفاده از LLM", + "Use no proxy to fetch page contents.": "از هیچ پراکسی برای دریافت محتوای صفحه استفاده نکنید.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "از پراکسی تعیین شده توسط متغیرهای محیطی http_proxy و https_proxy برای دریافت محتوای صفحه استفاده کنید.", + "user": "کاربر", + "User": "کاربر", + "User Groups": "گروه‌های کاربری", + "User location successfully retrieved.": "موقعیت مکانی کاربر با موفقیت دریافت شد.", + "User menu": "منوی کاربر", + "User Webhooks": "وب‌هوک‌های کاربر", + "Username": "نام کاربری", + "Users": "کاربران", + "Uses DefaultAzureCredential to authenticate": "از DefaultAzureCredential برای احراز هویت استفاده می‌کند", + "Uses OAuth 2.1 Dynamic Client Registration": "از ثبت کلاینت پویا OAuth 2.1 استفاده می‌کند", + "Using Entire Document": "استفاده از کل سند", + "Using Focused Retrieval": "استفاده از بازیابی متمرکز", + "Using the default arena model with all models. Click the plus button to add custom models.": "در حال استفاده از مدل آرنا با همهٔ مدل‌های دیگر به طور پیش‌فرض. برای افزودن مدل‌های سفارشی، روی دکمه به‌علاوه کلیک کنید.", + "Valid time units:": "واحدهای زمانی معتبر:", + "Validate certificate": "اعتبارسنجی گواهی", + "Valves": "شیرها", + "Valves updated": "شیرها به‌روزرسانی شدند", + "Valves updated successfully": "شیرها با موفقیت به‌روزرسانی شدند", + "variable": "متغیر", + "Verify Connection": "تأیید اتصال", + "Verify SSL Certificate": "تأیید گواهی SSL", + "Version": "نسخه", + "Version {{selectedVersion}} of {{totalVersions}}": "نسخهٔ {{selectedVersion}} از {{totalVersions}}", + "View Replies": "مشاهده پاسخ‌ها", + "View Result from **{{NAME}}**": "مشاهده نتیجه از **{{NAME}}**", + "Visibility": "قابلیت مشاهده", + "Vision": "بینایی", + "vlm": "vlm", + "Voice": "صوت", + "Voice Input": "ورودی صوتی", + "Voice mode": "حالت صوتی", + "Warning": "هشدار", + "Warning:": "هشدار", + "Warning: Enabling this will allow users to upload arbitrary code on the server.": "هشدار: فعال کردن این گزینه به کاربران اجازه می‌دهد کد دلخواه را روی سرور آپلود کنند.", + "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "هشدار: اجرای ژوپیتر امکان اجرای کد دلخواه را فراهم می‌کند که خطرات امنیتی جدی به همراه دارد - با احتیاط زیاد ادامه دهید.", + "Web": "وب", + "Web API": "API وب", + "Web Loader Engine": "موتور بارگذاری وب", + "Web Search": "جستجوی وب", + "Web Search Engine": "موتور جستجوی وب", + "Web Search in Chat": "جستجوی وب در گفتگو", + "Web Search Query Generation": "تولید کوئری جستجوی وب", + "Webhook URL": "نشانی وب‌هوک", + "Webpage URL": "آدرس URL صفحه وب", + "WebUI Settings": "تنظیمات WebUI", + "WebUI URL": "آدرس WebUI", + "WebUI will make requests to \"{{url}}\"": "WebUI به \"{{url}}\" درخواست خواهد داد", + "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI به \"{{url}}/api/chat\" درخواست خواهد داد", + "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI به \"{{url}}/chat/completions\" درخواست خواهد داد", + "What are you trying to achieve?": "به دنبال دستیابی به چه هدفی هستید؟", + "What are you working on?": "روی چه چیزی کار می‌کنید؟", + "What's New in": "چه چیز جدیدی در", + "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": "هر جا که هستید", + "Whether to paginate the output. Each page will be separated by a horizontal rule and page number. Defaults to False.": "آیا خروجی صفحه‌بندی شود یا خیر. هر صفحه با یک خط افقی و شماره صفحه از هم جدا می‌شود. پیش‌فرض: False.", + "Whisper (Local)": "ویسپر (محلی)", + "Why?": "چرا؟", + "Widescreen Mode": "حالت صفحهٔ عریض", + "Width": "عرض", + "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.": "با top-k همکاری می‌کند. مقدار بالاتر (مثلاً 0.95) منجر به متن متنوع‌تر می‌شود، در حالی که مقدار پایین‌تر (مثلاً 0.5) متن متمرکزتر و محافظه‌کارانه‌تری تولید می‌کند.", + "Workspace": "محیط کار", + "Workspace Permissions": "مجوزهای محیط کار", + "Write": "نوشتن", + "Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)", + "Write a summary in 50 words that summarizes {{topic}}.": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.", + "Write something...": "چیزی بنویسید...", + "Write your model system prompt content here\ne.g.) You are Mario from Super Mario Bros, acting as an assistant.": "محتوای پرامپت سیستمی مدل خود را اینجا بنویسید\nمثال: شما ماریو از بازی Super Mario Bros هستید و به عنوان دستیار عمل می‌کنید.", + "Yacy Instance URL": "آدرس URL نمونه Yacy", + "Yacy Password": "رمز عبور Yacy", + "Yacy Username": "نام کاربری Yacy", + "Yesterday": "دیروز", + "Yesterday at {{LOCALIZED_TIME}}": "دیروز در {{LOCALIZED_TIME}}", + "You": "شما", + "You are currently using a trial license. Please contact support to upgrade your license.": "شما در حال حاضر از نسخه آزمایشی استفاده می‌کنید. لطفاً برای ارتقای مجوز خود با پشتیبانی تماس بگیرید.", + "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "شما در هر زمان نهایتا می‌توانید با {{maxCount}} پرونده گفتگو کنید.", + "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "شما می‌توانید تعاملات خود با LLM‌ها را با افزودن خاطرات از طریق دکمه 'مدیریت' در زیر شخصی‌سازی کنید تا آنها مفیدتر و متناسب‌تر با شما شوند.", + "You cannot upload an empty file.": "نمی‌توانید فایل خالی آپلود کنید.", + "You do not have permission to send messages in this channel.": "شما اجازه ارسال پیام در این کانال را ندارید.", + "You do not have permission to send messages in this thread.": "شما اجازه ارسال پیام در این رشته را ندارید.", + "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.": "شما اکنون وارد شده‌اید.", + "Your Account": "حساب کاربری شما", + "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.": "تمام مشارکت شما مستقیماً به توسعه‌دهنده افزونه می‌رسد؛ Open WebUI هیچ درصدی دریافت نمی‌کند. با این حال، پلتفرم تأمین مالی انتخاب شده ممکن است کارمزد خود را داشته باشد.", + "YouTube": "یوتیوب", + "Youtube Language": "زبان یوتیوب", + "Youtube Proxy URL": "آدرس پراکسی یوتیوب" } From ce19b7120b7980051a13d95f0692049872231fd8 Mon Sep 17 00:00:00 2001 From: Mati Date: Tue, 11 Nov 2025 20:35:25 +0100 Subject: [PATCH 029/243] fix: Duplicate instructions in tool selection calling prompt (#19122) * Fix duplicated query prefix in user prompt for function calling * Fix duplicated last user message in prompt for function calling --- backend/open_webui/utils/middleware.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index e5b84a3d79..7fd556dc57 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -302,19 +302,23 @@ async def chat_completion_tools_handler( def get_tools_function_calling_payload(messages, task_model_id, content): user_message = get_last_user_message(messages) + if user_message and messages and messages[-1]["role"] == "user": + # Remove the last user message to avoid duplication + messages = messages[:-1] + recent_messages = messages[-4:] if len(messages) > 4 else messages chat_history = "\n".join( f"{message['role'].upper()}: \"\"\"{get_content_from_message(message)}\"\"\"" for message in recent_messages ) - prompt = f"History:\n{chat_history}\nQuery: {user_message}" + prompt = f"History:\n{chat_history}\nQuery: {user_message}" if chat_history else f"Query: {user_message}" return { "model": task_model_id, "messages": [ {"role": "system", "content": content}, - {"role": "user", "content": f"Query: {prompt}"}, + {"role": "user", "content": prompt}, ], "stream": False, "metadata": {"task": str(TASKS.FUNCTION_CALLING)}, From 6eea0d40ab4e6416ba579c9d8d98064604eef435 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Tue, 11 Nov 2025 23:07:57 +0100 Subject: [PATCH 030/243] Feat: optionally disable password login endpoints (#19113) * Implement message cleaning before API call * Filter out empty assistant messages before cleaning * Update catalan translation.json (#29) Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> * Update main.py * Update auths.py * Update Chat.svelte --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- backend/open_webui/config.py | 4 ++++ backend/open_webui/routers/auths.py | 23 ++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index cc5527f82a..42bcaab429 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -1124,6 +1124,10 @@ ENABLE_LOGIN_FORM = PersistentConfig( os.environ.get("ENABLE_LOGIN_FORM", "True").lower() == "true", ) +ENABLE_PASSWORD_AUTH = ( + os.environ.get("ENABLE_PASSWORD_AUTH", "True").lower() + == "true" +) DEFAULT_LOCALE = PersistentConfig( "DEFAULT_LOCALE", diff --git a/backend/open_webui/routers/auths.py b/backend/open_webui/routers/auths.py index f261673f38..8a777c2afb 100644 --- a/backend/open_webui/routers/auths.py +++ b/backend/open_webui/routers/auths.py @@ -35,7 +35,7 @@ from open_webui.env import ( ) from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi.responses import RedirectResponse, Response, JSONResponse -from open_webui.config import OPENID_PROVIDER_URL, ENABLE_OAUTH_SIGNUP, ENABLE_LDAP +from open_webui.config import OPENID_PROVIDER_URL, ENABLE_OAUTH_SIGNUP, ENABLE_LDAP, ENABLE_PASSWORD_AUTH from pydantic import BaseModel from open_webui.utils.misc import parse_duration, validate_email_format @@ -185,7 +185,17 @@ async def update_password( ############################ @router.post("/ldap", response_model=SessionUserResponse) async def ldap_auth(request: Request, response: Response, form_data: LdapForm): - ENABLE_LDAP = request.app.state.config.ENABLE_LDAP + # Security checks FIRST - before loading any config + if not request.app.state.config.ENABLE_LDAP: + raise HTTPException(400, detail="LDAP authentication is not enabled") + + if (not ENABLE_PASSWORD_AUTH): + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, + detail=ERROR_MESSAGES.ACTION_PROHIBITED, + ) + + # NOW load LDAP config variables LDAP_SERVER_LABEL = request.app.state.config.LDAP_SERVER_LABEL LDAP_SERVER_HOST = request.app.state.config.LDAP_SERVER_HOST LDAP_SERVER_PORT = request.app.state.config.LDAP_SERVER_PORT @@ -206,9 +216,6 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): else "ALL" ) - if not ENABLE_LDAP: - raise HTTPException(400, detail="LDAP authentication is not enabled") - try: tls = Tls( validate=LDAP_VALIDATE_CERT, @@ -463,6 +470,12 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): @router.post("/signin", response_model=SessionUserResponse) async def signin(request: Request, response: Response, form_data: SigninForm): + if (not ENABLE_PASSWORD_AUTH): + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, + detail=ERROR_MESSAGES.ACTION_PROHIBITED, + ) + if WEBUI_AUTH_TRUSTED_EMAIL_HEADER: if WEBUI_AUTH_TRUSTED_EMAIL_HEADER not in request.headers: raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_TRUSTED_HEADER) From 8dde493e8edd1759df9d3e9df1832e566be4186f Mon Sep 17 00:00:00 2001 From: Oleg Yermolenko Date: Wed, 12 Nov 2025 22:05:17 +0200 Subject: [PATCH 031/243] fix verify mcp connection with oauth type (#19149) --- backend/open_webui/routers/configs.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/routers/configs.py b/backend/open_webui/routers/configs.py index 5fd744c793..1614bfaadf 100644 --- a/backend/open_webui/routers/configs.py +++ b/backend/open_webui/routers/configs.py @@ -270,17 +270,18 @@ async def verify_tool_servers_config( elif form_data.auth_type == "session": token = request.state.token.credentials elif form_data.auth_type == "system_oauth": + oauth_token = None try: if request.cookies.get("oauth_session_id", None): - token = await request.app.state.oauth_manager.get_oauth_token( + oauth_token = await request.app.state.oauth_manager.get_oauth_token( user.id, request.cookies.get("oauth_session_id", None), ) except Exception as e: pass - if token: - headers = {"Authorization": f"Bearer {token}"} + if oauth_token: + headers = {"Authorization": f"Bearer {oauth_token.get('access_token', '')}"} await client.connect(form_data.url, headers=headers) specs = await client.list_tool_specs() @@ -306,10 +307,14 @@ async def verify_tool_servers_config( elif form_data.auth_type == "system_oauth": try: if request.cookies.get("oauth_session_id", None): - token = await request.app.state.oauth_manager.get_oauth_token( + oauth_token = await request.app.state.oauth_manager.get_oauth_token( user.id, request.cookies.get("oauth_session_id", None), ) + + if oauth_token: + token = f"{oauth_token.get('access_token', '')}" + except Exception as e: pass From ad17d35ac4df4f59065ab8898bef1589d760a1fc Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Thu, 13 Nov 2025 04:53:54 +0100 Subject: [PATCH 032/243] feat: Add custom API endpoint and user info headers for Perplexity Search (#31) (#19147) Co-authored-by: Claude --- backend/open_webui/config.py | 6 ++++++ backend/open_webui/main.py | 2 ++ .../retrieval/web/perplexity_search.py | 14 ++++++++++++- backend/open_webui/routers/retrieval.py | 8 ++++++++ .../admin/Settings/WebSearch.svelte | 20 +++++++++++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 42bcaab429..4656ce5258 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -3006,6 +3006,12 @@ PERPLEXITY_SEARCH_CONTEXT_USAGE = PersistentConfig( os.getenv("PERPLEXITY_SEARCH_CONTEXT_USAGE", "medium"), ) +PERPLEXITY_SEARCH_API_URL = PersistentConfig( + "PERPLEXITY_SEARCH_API_URL", + "rag.web.search.perplexity_search_api_url", + os.getenv("PERPLEXITY_SEARCH_API_URL", "https://api.perplexity.ai/search"), +) + SOUGOU_API_SID = PersistentConfig( "SOUGOU_API_SID", "rag.web.search.sougou_api_sid", diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index f0aeeab02a..6682e5e72d 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -319,6 +319,7 @@ from open_webui.config import ( PERPLEXITY_API_KEY, PERPLEXITY_MODEL, PERPLEXITY_SEARCH_CONTEXT_USAGE, + PERPLEXITY_SEARCH_API_URL, SOUGOU_API_SID, SOUGOU_API_SK, KAGI_SEARCH_API_KEY, @@ -958,6 +959,7 @@ app.state.config.EXA_API_KEY = EXA_API_KEY app.state.config.PERPLEXITY_API_KEY = PERPLEXITY_API_KEY app.state.config.PERPLEXITY_MODEL = PERPLEXITY_MODEL app.state.config.PERPLEXITY_SEARCH_CONTEXT_USAGE = PERPLEXITY_SEARCH_CONTEXT_USAGE +app.state.config.PERPLEXITY_SEARCH_API_URL = PERPLEXITY_SEARCH_API_URL app.state.config.SOUGOU_API_SID = SOUGOU_API_SID app.state.config.SOUGOU_API_SK = SOUGOU_API_SK app.state.config.EXTERNAL_WEB_SEARCH_URL = EXTERNAL_WEB_SEARCH_URL diff --git a/backend/open_webui/retrieval/web/perplexity_search.py b/backend/open_webui/retrieval/web/perplexity_search.py index e3e0caa2b3..97961f478b 100644 --- a/backend/open_webui/retrieval/web/perplexity_search.py +++ b/backend/open_webui/retrieval/web/perplexity_search.py @@ -3,6 +3,7 @@ from typing import Optional, Literal import requests from open_webui.retrieval.web.main import SearchResult, get_filtered_results +from open_webui.utils.headers import include_user_info_headers from open_webui.env import SRC_LOG_LEVELS @@ -15,6 +16,8 @@ def search_perplexity_search( query: str, count: int, filter_list: Optional[list[str]] = None, + api_url: str = "https://api.perplexity.ai/search", + user=None, ) -> list[SearchResult]: """Search using Perplexity API and return the results as a list of SearchResult objects. @@ -23,6 +26,8 @@ def search_perplexity_search( query (str): The query to search for count (int): Maximum number of results to return filter_list (Optional[list[str]]): List of domains to filter results + api_url (str): Custom API URL (defaults to https://api.perplexity.ai/search) + user: Optional user object for forwarding user info headers """ @@ -30,8 +35,11 @@ def search_perplexity_search( if hasattr(api_key, "__str__"): api_key = str(api_key) + if hasattr(api_url, "__str__"): + api_url = str(api_url) + try: - url = "https://api.perplexity.ai/search" + url = api_url # Create payload for the API call payload = { @@ -44,6 +52,10 @@ def search_perplexity_search( "Content-Type": "application/json", } + # Forward user info headers if user is provided + if user is not None: + headers = include_user_info_headers(headers, user) + # Make the API request response = requests.request("POST", url, json=payload, headers=headers) # Parse the JSON response diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index d57151b509..e98e0c226e 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -528,6 +528,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "PERPLEXITY_API_KEY": request.app.state.config.PERPLEXITY_API_KEY, "PERPLEXITY_MODEL": request.app.state.config.PERPLEXITY_MODEL, "PERPLEXITY_SEARCH_CONTEXT_USAGE": request.app.state.config.PERPLEXITY_SEARCH_CONTEXT_USAGE, + "PERPLEXITY_SEARCH_API_URL": request.app.state.config.PERPLEXITY_SEARCH_API_URL, "SOUGOU_API_SID": request.app.state.config.SOUGOU_API_SID, "SOUGOU_API_SK": request.app.state.config.SOUGOU_API_SK, "WEB_LOADER_ENGINE": request.app.state.config.WEB_LOADER_ENGINE, @@ -585,6 +586,7 @@ class WebConfig(BaseModel): PERPLEXITY_API_KEY: Optional[str] = None PERPLEXITY_MODEL: Optional[str] = None PERPLEXITY_SEARCH_CONTEXT_USAGE: Optional[str] = None + PERPLEXITY_SEARCH_API_URL: Optional[str] = None SOUGOU_API_SID: Optional[str] = None SOUGOU_API_SK: Optional[str] = None WEB_LOADER_ENGINE: Optional[str] = None @@ -1108,6 +1110,9 @@ async def update_rag_config( request.app.state.config.PERPLEXITY_SEARCH_CONTEXT_USAGE = ( form_data.web.PERPLEXITY_SEARCH_CONTEXT_USAGE ) + request.app.state.config.PERPLEXITY_SEARCH_API_URL = ( + form_data.web.PERPLEXITY_SEARCH_API_URL + ) request.app.state.config.SOUGOU_API_SID = form_data.web.SOUGOU_API_SID request.app.state.config.SOUGOU_API_SK = form_data.web.SOUGOU_API_SK @@ -1253,6 +1258,7 @@ async def update_rag_config( "PERPLEXITY_API_KEY": request.app.state.config.PERPLEXITY_API_KEY, "PERPLEXITY_MODEL": request.app.state.config.PERPLEXITY_MODEL, "PERPLEXITY_SEARCH_CONTEXT_USAGE": request.app.state.config.PERPLEXITY_SEARCH_CONTEXT_USAGE, + "PERPLEXITY_SEARCH_API_URL": request.app.state.config.PERPLEXITY_SEARCH_API_URL, "SOUGOU_API_SID": request.app.state.config.SOUGOU_API_SID, "SOUGOU_API_SK": request.app.state.config.SOUGOU_API_SK, "WEB_LOADER_ENGINE": request.app.state.config.WEB_LOADER_ENGINE, @@ -1852,6 +1858,8 @@ def search_web( query, request.app.state.config.WEB_SEARCH_RESULT_COUNT, request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, + request.app.state.config.PERPLEXITY_SEARCH_API_URL, + user, ) else: raise Exception("No PERPLEXITY_API_KEY found in environment variables") diff --git a/src/lib/components/admin/Settings/WebSearch.svelte b/src/lib/components/admin/Settings/WebSearch.svelte index e7325cb582..4134bcd018 100644 --- a/src/lib/components/admin/Settings/WebSearch.svelte +++ b/src/lib/components/admin/Settings/WebSearch.svelte @@ -150,6 +150,26 @@ {:else if webConfig.WEB_SEARCH_ENGINE === 'perplexity_search'} +
+
+
+ {$i18n.t('Perplexity Search API URL')} +
+ +
+
+ +
+
+
+
+
From 32079981145124143452727b9c0f156e5b394b34 Mon Sep 17 00:00:00 2001 From: xqqp <107686855+xqqp@users.noreply.github.com> Date: Thu, 13 Nov 2025 04:57:53 +0100 Subject: [PATCH 033/243] Fix: Handle empty strings in OAuth registration response (#19144) - The mcp package requires optional unset values to be None. If an empty string is passed, it gets validated and fails. - Replace all empty strings with None. --- backend/open_webui/utils/oauth.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 392f4cd4bf..039e7cd4c9 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -330,6 +330,10 @@ async def get_oauth_client_info_with_dynamic_client_registration( registration_response_json = ( await oauth_client_registration_response.json() ) + + # The mcp package requires optional unset values to be None. If an empty string is passed, it gets validated and fails. + # This replaces all empty strings with None. + registration_response_json = {k: (None if v == "" else v) for k, v in registration_response_json.items()} oauth_client_info = OAuthClientInformationFull.model_validate( { **registration_response_json, From f1c317349ee9779755a6ef194a56d98b1e7cd784 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Nov 2025 23:11:15 -0500 Subject: [PATCH 034/243] enh/refac: enable autocompletion for non rich text input --- .../components/chat/Settings/Interface.svelte | 42 +++++++++---------- .../components/common/RichTextInput.svelte | 2 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/lib/components/chat/Settings/Interface.svelte b/src/lib/components/chat/Settings/Interface.svelte index 4ae24d0846..15debe669c 100644 --- a/src/lib/components/chat/Settings/Interface.svelte +++ b/src/lib/components/chat/Settings/Interface.svelte @@ -998,6 +998,27 @@
+ {#if $config?.features?.enable_autocomplete_generation} +
+
+
+ {$i18n.t('Prompt Autocompletion')} +
+ +
+ { + saveSettings({ promptAutocomplete }); + }} + /> +
+
+
+ {/if} + {#if richTextInput}
@@ -1036,27 +1057,6 @@
- - {#if $config?.features?.enable_autocomplete_generation} -
-
-
- {$i18n.t('Prompt Autocompletion')} -
- -
- { - saveSettings({ promptAutocomplete }); - }} - /> -
-
-
- {/if} {/if}
diff --git a/src/lib/components/common/RichTextInput.svelte b/src/lib/components/common/RichTextInput.svelte index d01e0f007f..9f352c1b02 100644 --- a/src/lib/components/common/RichTextInput.svelte +++ b/src/lib/components/common/RichTextInput.svelte @@ -725,7 +725,7 @@ }) ] : []), - ...(richText && autocomplete + ...(autocomplete ? [ AIAutocompletion.configure({ generateCompletion: async (text) => { From 0bf686396d9f0e6e49be9c64e2f58fb2fe32c1fa Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Nov 2025 23:27:03 -0500 Subject: [PATCH 035/243] refac/fix --- backend/open_webui/routers/configs.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/open_webui/routers/configs.py b/backend/open_webui/routers/configs.py index 1614bfaadf..62d1d95699 100644 --- a/backend/open_webui/routers/configs.py +++ b/backend/open_webui/routers/configs.py @@ -277,11 +277,14 @@ async def verify_tool_servers_config( user.id, request.cookies.get("oauth_session_id", None), ) + + if oauth_token: + token = oauth_token.get("access_token", "") except Exception as e: pass - if oauth_token: - headers = {"Authorization": f"Bearer {oauth_token.get('access_token', '')}"} + if token: + headers = {"Authorization": f"Bearer {token}"} await client.connect(form_data.url, headers=headers) specs = await client.list_tool_specs() @@ -307,13 +310,15 @@ async def verify_tool_servers_config( elif form_data.auth_type == "system_oauth": try: if request.cookies.get("oauth_session_id", None): - oauth_token = await request.app.state.oauth_manager.get_oauth_token( - user.id, - request.cookies.get("oauth_session_id", None), + oauth_token = ( + await request.app.state.oauth_manager.get_oauth_token( + user.id, + request.cookies.get("oauth_session_id", None), + ) ) - + if oauth_token: - token = f"{oauth_token.get('access_token', '')}" + token = oauth_token.get("access_token", "") except Exception as e: pass From da42850effe4d51f62974886251774a00b187f79 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 12 Nov 2025 23:39:27 -0500 Subject: [PATCH 036/243] enh: custom headers for external tool servers --- backend/open_webui/routers/configs.py | 18 +++++- backend/open_webui/utils/middleware.py | 12 +++- backend/open_webui/utils/tools.py | 25 +++++--- src/lib/components/AddConnectionModal.svelte | 2 +- src/lib/components/AddToolServerModal.svelte | 64 ++++++++++++++++++++ 5 files changed, 108 insertions(+), 13 deletions(-) diff --git a/backend/open_webui/routers/configs.py b/backend/open_webui/routers/configs.py index 62d1d95699..5070850896 100644 --- a/backend/open_webui/routers/configs.py +++ b/backend/open_webui/routers/configs.py @@ -144,6 +144,7 @@ class ToolServerConnection(BaseModel): path: str type: Optional[str] = "openapi" # openapi, mcp auth_type: Optional[str] + headers: Optional[dict] key: Optional[str] config: Optional[dict] @@ -282,10 +283,14 @@ async def verify_tool_servers_config( token = oauth_token.get("access_token", "") except Exception as e: pass - if token: headers = {"Authorization": f"Bearer {token}"} + if form_data.headers: + if headers is None: + headers = {} + headers.update(form_data.headers) + await client.connect(form_data.url, headers=headers) specs = await client.list_tool_specs() return { @@ -303,6 +308,7 @@ async def verify_tool_servers_config( await client.disconnect() else: # openapi token = None + headers = None if form_data.auth_type == "bearer": token = form_data.key elif form_data.auth_type == "session": @@ -323,8 +329,16 @@ async def verify_tool_servers_config( except Exception as e: pass + if token: + headers = {"Authorization": f"Bearer {token}"} + + if form_data.headers: + if headers is None: + headers = {} + headers.update(form_data.headers) + url = get_tool_server_url(form_data.url, form_data.path) - return await get_tool_server_data(token, url) + return await get_tool_server_data(url, headers=headers) except HTTPException as e: raise e except Exception as e: diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 7fd556dc57..3091757a04 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -312,7 +312,11 @@ async def chat_completion_tools_handler( for message in recent_messages ) - prompt = f"History:\n{chat_history}\nQuery: {user_message}" if chat_history else f"Query: {user_message}" + prompt = ( + f"History:\n{chat_history}\nQuery: {user_message}" + if chat_history + else f"Query: {user_message}" + ) return { "model": task_model_id, @@ -1327,7 +1331,6 @@ async def process_chat_payload(request, form_data, user, metadata, model): continue auth_type = mcp_server_connection.get("auth_type", "") - headers = {} if auth_type == "bearer": headers["Authorization"] = ( @@ -1363,6 +1366,11 @@ async def process_chat_payload(request, form_data, user, metadata, model): log.error(f"Error getting OAuth token: {e}") oauth_token = None + connection_headers = mcp_server_connection.get("headers", None) + if connection_headers: + for key, value in connection_headers.items(): + headers[key] = value + mcp_clients[server_id] = MCPClient() await mcp_clients[server_id].connect( url=mcp_server_connection.get("url", ""), diff --git a/backend/open_webui/utils/tools.py b/backend/open_webui/utils/tools.py index 1d1254f184..f14b3ce8ff 100644 --- a/backend/open_webui/utils/tools.py +++ b/backend/open_webui/utils/tools.py @@ -155,7 +155,9 @@ async def get_tools( auth_type = tool_server_connection.get("auth_type", "bearer") cookies = {} - headers = {} + headers = { + "Content-Type": "application/json", + } if auth_type == "bearer": headers["Authorization"] = ( @@ -177,7 +179,10 @@ async def get_tools( f"Bearer {oauth_token.get('access_token', '')}" ) - headers["Content-Type"] = "application/json" + connection_headers = tool_server_connection.get("headers", None) + if connection_headers: + for key, value in connection_headers.items(): + headers[key] = value def make_tool_function( function_name, tool_server_data, headers @@ -561,20 +566,21 @@ async def get_tool_servers(request: Request): return tool_servers -async def get_tool_server_data(token: str, url: str) -> Dict[str, Any]: - headers = { +async def get_tool_server_data(url: str, headers: Optional[dict]) -> Dict[str, Any]: + _headers = { "Accept": "application/json", "Content-Type": "application/json", } - if token: - headers["Authorization"] = f"Bearer {token}" + + if headers: + _headers.update(headers) error = None try: timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA) async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: async with session.get( - url, headers=headers, ssl=AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL + url, headers=_headers, ssl=AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL ) as response: if response.status != 200: error_body = await response.json() @@ -644,7 +650,10 @@ async def get_tool_servers_data(servers: List[Dict[str, Any]]) -> List[Dict[str, openapi_path = server.get("path", "openapi.json") spec_url = get_tool_server_url(server_url, openapi_path) # Fetch from URL - task = get_tool_server_data(token, spec_url) + task = get_tool_server_data( + spec_url, + {"Authorization": f"Bearer {token}"} if token else None, + ) elif spec_type == "json" and server.get("spec", ""): # Use provided JSON spec spec_json = None diff --git a/src/lib/components/AddConnectionModal.svelte b/src/lib/components/AddConnectionModal.svelte index 90bb60b406..5a75774fa0 100644 --- a/src/lib/components/AddConnectionModal.svelte +++ b/src/lib/components/AddConnectionModal.svelte @@ -426,7 +426,7 @@