Răsfoiți Sursa

Merge pull request #16456 from open-webui/dev

0.6.22
Tim Jaeryang Baek 8 luni în urmă
părinte
comite
438e5d966f
77 a modificat fișierele cu 1922 adăugiri și 202 ștergeri
  1. 16 0
      CHANGELOG.md
  2. 1 1
      backend/open_webui/config.py
  3. 3 0
      backend/open_webui/main.py
  4. 3 1
      backend/open_webui/retrieval/vector/dbs/pinecone.py
  5. 1 1
      backend/open_webui/retrieval/vector/dbs/s3vector.py
  6. 90 70
      backend/open_webui/utils/middleware.py
  7. 2 2
      package-lock.json
  8. 1 1
      package.json
  9. 1 1
      src/lib/apis/openai/index.ts
  10. 14 1
      src/lib/components/chat/Chat.svelte
  11. 15 1
      src/lib/components/chat/Messages/Error.svelte
  12. 83 39
      src/lib/components/chat/Messages/ResponseMessage.svelte
  13. 3 8
      src/lib/components/chat/Navbar.svelte
  14. 24 1
      src/lib/components/chat/Settings/Interface.svelte
  15. 1 1
      src/lib/components/common/Tooltip.svelte
  16. 4 7
      src/lib/components/layout/Sidebar/ChatItem.svelte
  17. 1 1
      src/lib/components/workspace/Knowledge.svelte
  18. 1 1
      src/lib/components/workspace/Prompts.svelte
  19. 1 1
      src/lib/components/workspace/Tools.svelte
  20. 1 0
      src/lib/i18n/locales/ar-BH/translation.json
  21. 1 0
      src/lib/i18n/locales/ar/translation.json
  22. 1 0
      src/lib/i18n/locales/bg-BG/translation.json
  23. 1 0
      src/lib/i18n/locales/bn-BD/translation.json
  24. 1 0
      src/lib/i18n/locales/bo-TB/translation.json
  25. 1 0
      src/lib/i18n/locales/ca-ES/translation.json
  26. 1 0
      src/lib/i18n/locales/ceb-PH/translation.json
  27. 1 0
      src/lib/i18n/locales/cs-CZ/translation.json
  28. 1 0
      src/lib/i18n/locales/da-DK/translation.json
  29. 1 0
      src/lib/i18n/locales/de-DE/translation.json
  30. 1 0
      src/lib/i18n/locales/dg-DG/translation.json
  31. 1 0
      src/lib/i18n/locales/el-GR/translation.json
  32. 1 0
      src/lib/i18n/locales/en-GB/translation.json
  33. 1 0
      src/lib/i18n/locales/en-US/translation.json
  34. 1 0
      src/lib/i18n/locales/es-ES/translation.json
  35. 1 0
      src/lib/i18n/locales/et-EE/translation.json
  36. 1 0
      src/lib/i18n/locales/eu-ES/translation.json
  37. 1 0
      src/lib/i18n/locales/fa-IR/translation.json
  38. 1 0
      src/lib/i18n/locales/fi-FI/translation.json
  39. 1 0
      src/lib/i18n/locales/fr-CA/translation.json
  40. 1 0
      src/lib/i18n/locales/fr-FR/translation.json
  41. 1 0
      src/lib/i18n/locales/gl-ES/translation.json
  42. 1 0
      src/lib/i18n/locales/he-IL/translation.json
  43. 1 0
      src/lib/i18n/locales/hi-IN/translation.json
  44. 1 0
      src/lib/i18n/locales/hr-HR/translation.json
  45. 1 0
      src/lib/i18n/locales/hu-HU/translation.json
  46. 1 0
      src/lib/i18n/locales/id-ID/translation.json
  47. 1 0
      src/lib/i18n/locales/ie-GA/translation.json
  48. 1 0
      src/lib/i18n/locales/it-IT/translation.json
  49. 1 0
      src/lib/i18n/locales/ja-JP/translation.json
  50. 1 0
      src/lib/i18n/locales/ka-GE/translation.json
  51. 1533 0
      src/lib/i18n/locales/kab-DZ/translation.json
  52. 1 0
      src/lib/i18n/locales/ko-KR/translation.json
  53. 4 0
      src/lib/i18n/locales/languages.json
  54. 1 0
      src/lib/i18n/locales/lt-LT/translation.json
  55. 1 0
      src/lib/i18n/locales/ms-MY/translation.json
  56. 1 0
      src/lib/i18n/locales/nb-NO/translation.json
  57. 1 0
      src/lib/i18n/locales/nl-NL/translation.json
  58. 1 0
      src/lib/i18n/locales/pa-IN/translation.json
  59. 1 0
      src/lib/i18n/locales/pl-PL/translation.json
  60. 1 0
      src/lib/i18n/locales/pt-BR/translation.json
  61. 1 0
      src/lib/i18n/locales/pt-PT/translation.json
  62. 1 0
      src/lib/i18n/locales/ro-RO/translation.json
  63. 1 0
      src/lib/i18n/locales/ru-RU/translation.json
  64. 1 0
      src/lib/i18n/locales/sk-SK/translation.json
  65. 1 0
      src/lib/i18n/locales/sr-RS/translation.json
  66. 1 0
      src/lib/i18n/locales/sv-SE/translation.json
  67. 1 0
      src/lib/i18n/locales/th-TH/translation.json
  68. 1 0
      src/lib/i18n/locales/tk-TM/translation.json
  69. 1 0
      src/lib/i18n/locales/tr-TR/translation.json
  70. 1 0
      src/lib/i18n/locales/ug-CN/translation.json
  71. 1 0
      src/lib/i18n/locales/uk-UA/translation.json
  72. 1 0
      src/lib/i18n/locales/ur-PK/translation.json
  73. 1 0
      src/lib/i18n/locales/uz-Cyrl-UZ/translation.json
  74. 1 0
      src/lib/i18n/locales/uz-Latn-Uz/translation.json
  75. 1 0
      src/lib/i18n/locales/vi-VN/translation.json
  76. 65 64
      src/lib/i18n/locales/zh-CN/translation.json
  77. 1 0
      src/lib/i18n/locales/zh-TW/translation.json

+ 16 - 0
CHANGELOG.md

@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [0.6.22] - 2025-08-11
+
+### Added
+
+- 🔗 **OpenAI API '/v1' Endpoint Compatibility**: Enhanced API compatibility by supporting requests to paths like '/v1/models', '/v1/embeddings', and '/v1/chat/completions'. This allows Open WebUI to integrate more seamlessly with tools that expect OpenAI's '/v1' API structure.
+- 🪄 **Toggle for Guided Response Regeneration Menu**: Introduced a new setting in 'Interface' settings, providing the ability to enable or disable the expanded guided response regeneration menu. This offers users more control over their chat workflow and interface preferences.
+- ✨ **General UI/UX Enhancements**: Implemented various user interface and experience improvements, including more rounded corners for cards in the Knowledge, Prompts, and Tools sections, and minor layout adjustments within the chat Navbar for improved visual consistency.
+- 🌐 **Localization & Internationalization Improvements**: Introduced support for the Kabyle (Taqbaylit) language, refined and expanded translations for Chinese, expanding the platform's linguistic coverage.
+
+### Fixed
+
+- 🐞 **OpenAI Error Message Propagation**: Resolved an issue where specific OpenAI API errors (e.g., 'Organization Not Verified') were obscured by generic 'JSONResponse' iterable errors. The system now correctly propagates detailed and actionable error messages from OpenAI to the user.
+- 🌲 **Pinecone Insert Issue**: Fixed a bug that prevented proper insertion of items into Pinecone vector databases.
+- 📦 **S3 Vector Issue**: Resolved a bug where s3vector functionality failed due to incorrect import paths.
+- 🏠 **Landing Page Option Setting Not Working**: Fixed an issue where the landing page option in settings was not functioning as intended.
+
 ## [0.6.21] - 2025-08-10
 
 ### Added

+ 1 - 1
backend/open_webui/config.py

@@ -871,7 +871,7 @@ CACHE_DIR.mkdir(parents=True, exist_ok=True)
 ENABLE_DIRECT_CONNECTIONS = PersistentConfig(
     "ENABLE_DIRECT_CONNECTIONS",
     "direct.enable",
-    os.environ.get("ENABLE_DIRECT_CONNECTIONS", "True").lower() == "true",
+    os.environ.get("ENABLE_DIRECT_CONNECTIONS", "False").lower() == "true",
 )
 
 ####################################

+ 3 - 0
backend/open_webui/main.py

@@ -1261,6 +1261,7 @@ if audit_level != AuditLevel.NONE:
 
 
 @app.get("/api/models")
+@app.get("/api/v1/models")  # Experimental: Compatibility with OpenAI API
 async def get_models(
     request: Request, refresh: bool = False, user=Depends(get_verified_user)
 ):
@@ -1341,6 +1342,7 @@ async def get_base_models(request: Request, user=Depends(get_admin_user)):
 
 
 @app.post("/api/embeddings")
+@app.post("/api/v1/embeddings")  # Experimental: Compatibility with OpenAI API
 async def embeddings(
     request: Request, form_data: dict, user=Depends(get_verified_user)
 ):
@@ -1367,6 +1369,7 @@ async def embeddings(
 
 
 @app.post("/api/chat/completions")
+@app.post("/api/v1/chat/completions")  # Experimental: Compatibility with OpenAI API
 async def chat_completion(
     request: Request,
     form_data: dict,

+ 3 - 1
backend/open_webui/retrieval/vector/dbs/pinecone.py

@@ -32,6 +32,8 @@ from open_webui.config import (
     PINECONE_CLOUD,
 )
 from open_webui.env import SRC_LOG_LEVELS
+from open_webui.retrieval.vector.utils import stringify_metadata
+
 
 NO_LIMIT = 10000  # Reasonable limit to avoid overwhelming the system
 BATCH_SIZE = 100  # Recommended batch size for Pinecone operations
@@ -183,7 +185,7 @@ class PineconeClient(VectorDBBase):
             point = {
                 "id": item["id"],
                 "values": item["vector"],
-                "metadata": metadata,
+                "metadata": stringify_metadata(metadata),
             }
             points.append(point)
         return points

+ 1 - 1
backend/open_webui/retrieval/vector/dbs/s3vector.py

@@ -1,4 +1,4 @@
-from backend.open_webui.retrieval.vector.utils import stringify_metadata
+from open_webui.retrieval.vector.utils import stringify_metadata
 from open_webui.retrieval.vector.main import (
     VectorDBBase,
     VectorItem,

+ 90 - 70
backend/open_webui/utils/middleware.py

@@ -19,7 +19,7 @@ from concurrent.futures import ThreadPoolExecutor
 
 
 from fastapi import Request, HTTPException
-from starlette.responses import Response, StreamingResponse
+from starlette.responses import Response, StreamingResponse, JSONResponse
 
 
 from open_webui.models.chats import Chats
@@ -1254,91 +1254,111 @@ async def process_chat_response(
     # Non-streaming response
     if not isinstance(response, StreamingResponse):
         if event_emitter:
-            if "error" in response:
-                error = response["error"].get("detail", response["error"])
-                Chats.upsert_message_to_chat_by_id_and_message_id(
-                    metadata["chat_id"],
-                    metadata["message_id"],
-                    {
-                        "error": {"content": error},
-                    },
-                )
-
-            if "selected_model_id" in response:
-                Chats.upsert_message_to_chat_by_id_and_message_id(
-                    metadata["chat_id"],
-                    metadata["message_id"],
-                    {
-                        "selectedModelId": response["selected_model_id"],
-                    },
-                )
-
-            choices = response.get("choices", [])
-            if choices and choices[0].get("message", {}).get("content"):
-                content = response["choices"][0]["message"]["content"]
-
-                if content:
+            if isinstance(response, dict) or isinstance(response, JSONResponse):
 
-                    await event_emitter(
-                        {
-                            "type": "chat:completion",
-                            "data": response,
-                        }
-                    )
-
-                    title = Chats.get_chat_title_by_id(metadata["chat_id"])
-
-                    await event_emitter(
+                if isinstance(response, JSONResponse) and isinstance(
+                    response.body, bytes
+                ):
+                    try:
+                        response_data = json.loads(response.body.decode("utf-8"))
+                    except json.JSONDecodeError:
+                        response_data = {"error": {"detail": "Invalid JSON response"}}
+                else:
+                    response_data = response
+
+                if "error" in response_data:
+                    error = response_data["error"].get("detail", response_data["error"])
+                    Chats.upsert_message_to_chat_by_id_and_message_id(
+                        metadata["chat_id"],
+                        metadata["message_id"],
                         {
-                            "type": "chat:completion",
-                            "data": {
-                                "done": True,
-                                "content": content,
-                                "title": title,
-                            },
-                        }
+                            "error": {"content": error},
+                        },
                     )
 
-                    # Save message in the database
+                if "selected_model_id" in response_data:
                     Chats.upsert_message_to_chat_by_id_and_message_id(
                         metadata["chat_id"],
                         metadata["message_id"],
                         {
-                            "role": "assistant",
-                            "content": content,
+                            "selectedModelId": response_data["selected_model_id"],
                         },
                     )
 
-                    # Send a webhook notification if the user is not active
-                    if not get_active_status_by_user_id(user.id):
-                        webhook_url = Users.get_user_webhook_url_by_id(user.id)
-                        if webhook_url:
-                            post_webhook(
-                                request.app.state.WEBUI_NAME,
-                                webhook_url,
-                                f"{title} - {request.app.state.config.WEBUI_URL}/c/{metadata['chat_id']}\n\n{content}",
-                                {
-                                    "action": "chat",
-                                    "message": content,
+                choices = response_data.get("choices", [])
+                if choices and choices[0].get("message", {}).get("content"):
+                    content = response_data["choices"][0]["message"]["content"]
+
+                    if content:
+                        await event_emitter(
+                            {
+                                "type": "chat:completion",
+                                "data": response_data,
+                            }
+                        )
+
+                        title = Chats.get_chat_title_by_id(metadata["chat_id"])
+
+                        await event_emitter(
+                            {
+                                "type": "chat:completion",
+                                "data": {
+                                    "done": True,
+                                    "content": content,
                                     "title": title,
-                                    "url": f"{request.app.state.config.WEBUI_URL}/c/{metadata['chat_id']}",
                                 },
-                            )
+                            }
+                        )
 
-                    await background_tasks_handler()
+                        # Save message in the database
+                        Chats.upsert_message_to_chat_by_id_and_message_id(
+                            metadata["chat_id"],
+                            metadata["message_id"],
+                            {
+                                "role": "assistant",
+                                "content": content,
+                            },
+                        )
 
-            if events and isinstance(events, list) and isinstance(response, dict):
-                extra_response = {}
-                for event in events:
-                    if isinstance(event, dict):
-                        extra_response.update(event)
-                    else:
-                        extra_response[event] = True
+                        # Send a webhook notification if the user is not active
+                        if not get_active_status_by_user_id(user.id):
+                            webhook_url = Users.get_user_webhook_url_by_id(user.id)
+                            if webhook_url:
+                                post_webhook(
+                                    request.app.state.WEBUI_NAME,
+                                    webhook_url,
+                                    f"{title} - {request.app.state.config.WEBUI_URL}/c/{metadata['chat_id']}\n\n{content}",
+                                    {
+                                        "action": "chat",
+                                        "message": content,
+                                        "title": title,
+                                        "url": f"{request.app.state.config.WEBUI_URL}/c/{metadata['chat_id']}",
+                                    },
+                                )
 
-                response = {
-                    **extra_response,
-                    **response,
-                }
+                        await background_tasks_handler()
+
+                if events and isinstance(events, list):
+                    extra_response = {}
+                    for event in events:
+                        if isinstance(event, dict):
+                            extra_response.update(event)
+                        else:
+                            extra_response[event] = True
+
+                    response_data = {
+                        **extra_response,
+                        **response_data,
+                    }
+
+                if isinstance(response, dict):
+                    response = response_data
+                if isinstance(response, JSONResponse):
+                    response = JSONResponse(
+                        content=response_data,
+                        headers=response.headers,
+                        status_code=response.status_code,
+                    )
 
             return response
         else:

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
 	"name": "open-webui",
-	"version": "0.6.21",
+	"version": "0.6.22",
 	"lockfileVersion": 3,
 	"requires": true,
 	"packages": {
 		"": {
 			"name": "open-webui",
-			"version": "0.6.21",
+			"version": "0.6.22",
 			"dependencies": {
 				"@azure/msal-browser": "^4.5.0",
 				"@codemirror/lang-javascript": "^6.2.2",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 	"name": "open-webui",
-	"version": "0.6.21",
+	"version": "0.6.22",
 	"private": true,
 	"scripts": {
 		"dev": "npm run pyodide:fetch && vite dev --host",

+ 1 - 1
src/lib/apis/openai/index.ts

@@ -379,7 +379,7 @@ export const generateOpenAIChatCompletion = async (
 			return res.json();
 		})
 		.catch((err) => {
-			error = `${err?.detail ?? err}`;
+			error = err?.detail ?? err;
 			return null;
 		});
 

+ 14 - 1
src/lib/components/chat/Chat.svelte

@@ -1783,11 +1783,24 @@
 			},
 			`${WEBUI_BASE_URL}/api`
 		).catch(async (error) => {
-			toast.error(`${error}`);
+			console.log(error);
+
+			let errorMessage = error;
+			if (error?.error?.message) {
+				errorMessage = error.error.message;
+			} else if (error?.message) {
+				errorMessage = error.message;
+			}
 
+			if (typeof errorMessage === 'object') {
+				errorMessage = $i18n.t(`Uh-oh! There was an issue with the response.`);
+			}
+
+			toast.error(`${errorMessage}`);
 			responseMessage.error = {
 				content: error
 			};
+
 			responseMessage.done = true;
 
 			history.messages[responseMessageId] = responseMessage;

+ 15 - 1
src/lib/components/chat/Messages/Error.svelte

@@ -10,6 +10,20 @@
 	</div>
 
 	<div class=" self-center text-sm">
-		{typeof content === 'string' ? content : JSON.stringify(content)}
+		{#if typeof content === 'string'}
+			{content}
+		{:else if typeof content === 'object' && content !== null}
+			{#if content?.error && content?.error?.message}
+				{content.error.message}
+			{:else if content?.detail}
+				{content.detail}
+			{:else if content?.message}
+				{content.message}
+			{:else}
+				{JSON.stringify(content)}
+			{/if}
+		{:else}
+			{JSON.stringify(content)}
+		{/if}
 	</div>
 </div>

+ 83 - 39
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -1349,51 +1349,95 @@
 										</Tooltip>
 									{/if}
 
-									<button
-										type="button"
-										class="hidden regenerate-response-button"
-										on:click={() => {
-											showRateComment = false;
-											regenerateResponse(message);
-
-											(model?.actions ?? []).forEach((action) => {
-												dispatch('action', {
-													id: action.id,
-													event: {
-														id: 'regenerate-response',
-														data: {
-															messageId: message.id
+									{#if $settings?.regenerateMenu ?? true}
+										<button
+											type="button"
+											class="hidden regenerate-response-button"
+											on:click={() => {
+												showRateComment = false;
+												regenerateResponse(message);
+
+												(model?.actions ?? []).forEach((action) => {
+													dispatch('action', {
+														id: action.id,
+														event: {
+															id: 'regenerate-response',
+															data: {
+																messageId: message.id
+															}
 														}
-													}
+													});
 												});
-											});
-										}}
-									/>
-
-									<RegenerateMenu
-										onRegenerate={(prompt = null) => {
-											showRateComment = false;
-											regenerateResponse(message, prompt);
-
-											(model?.actions ?? []).forEach((action) => {
-												dispatch('action', {
-													id: action.id,
-													event: {
-														id: 'regenerate-response',
-														data: {
-															messageId: message.id
+											}}
+										/>
+
+										<RegenerateMenu
+											onRegenerate={(prompt = null) => {
+												showRateComment = false;
+												regenerateResponse(message, prompt);
+
+												(model?.actions ?? []).forEach((action) => {
+													dispatch('action', {
+														id: action.id,
+														event: {
+															id: 'regenerate-response',
+															data: {
+																messageId: message.id
+															}
 														}
-													}
+													});
 												});
-											});
-										}}
-									>
+											}}
+										>
+											<Tooltip content={$i18n.t('Regenerate')} placement="bottom">
+												<div
+													aria-label={$i18n.t('Regenerate')}
+													class="{isLastMessage
+														? 'visible'
+														: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition"
+												>
+													<svg
+														xmlns="http://www.w3.org/2000/svg"
+														fill="none"
+														viewBox="0 0 24 24"
+														stroke-width="2.3"
+														aria-hidden="true"
+														stroke="currentColor"
+														class="w-4 h-4"
+													>
+														<path
+															stroke-linecap="round"
+															stroke-linejoin="round"
+															d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
+														/>
+													</svg>
+												</div>
+											</Tooltip>
+										</RegenerateMenu>
+									{:else}
 										<Tooltip content={$i18n.t('Regenerate')} placement="bottom">
-											<div
+											<button
+												type="button"
 												aria-label={$i18n.t('Regenerate')}
 												class="{isLastMessage
 													? 'visible'
-													: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition"
+													: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button"
+												on:click={() => {
+													showRateComment = false;
+													regenerateResponse(message);
+
+													(model?.actions ?? []).forEach((action) => {
+														dispatch('action', {
+															id: action.id,
+															event: {
+																id: 'regenerate-response',
+																data: {
+																	messageId: message.id
+																}
+															}
+														});
+													});
+												}}
 											>
 												<svg
 													xmlns="http://www.w3.org/2000/svg"
@@ -1410,9 +1454,9 @@
 														d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
 													/>
 												</svg>
-											</div>
+											</button>
 										</Tooltip>
-									</RegenerateMenu>
+									{/if}
 
 									{#if siblings.length > 1}
 										<Tooltip content={$i18n.t('Delete')} placement="bottom">

+ 3 - 8
src/lib/components/chat/Navbar.svelte

@@ -67,16 +67,11 @@
 
 		<div class=" flex max-w-full w-full mx-auto px-1.5 md:px-2 pt-0.5 bg-transparent">
 			<div class="flex items-center w-full max-w-full">
-				{#if $mobile}
+				{#if $mobile && !$showSidebar}
 					<div
-						class="{$showSidebar
-							? 'md:hidden'
-							: ''} mr-1.5 mt-1 self-start flex flex-none items-center text-gray-600 dark:text-gray-400"
+						class="-translate-x-0.5 mr-1 mt-1 self-start flex flex-none items-center text-gray-600 dark:text-gray-400"
 					>
-						<Tooltip
-							content={$showSidebar ? $i18n.t('Close Sidebar') : $i18n.t('Open Sidebar')}
-							interactive={true}
-						>
+						<Tooltip content={$showSidebar ? $i18n.t('Close Sidebar') : $i18n.t('Open Sidebar')}>
 							<button
 								class=" cursor-pointer flex rounded-lg hover:bg-gray-100 dark:hover:bg-gray-850 transition"
 								on:click={() => {

+ 24 - 1
src/lib/components/chat/Settings/Interface.svelte

@@ -52,6 +52,8 @@
 	let keepFollowUpPrompts = false;
 	let insertFollowUpPrompt = false;
 
+	let regenerateMenu = true;
+
 	let landingPageMode = '';
 	let chatBubble = true;
 	let chatDirection: 'LTR' | 'RTL' | 'auto' = 'auto';
@@ -200,6 +202,8 @@
 		keepFollowUpPrompts = $settings?.keepFollowUpPrompts ?? false;
 		insertFollowUpPrompt = $settings?.insertFollowUpPrompt ?? false;
 
+		regenerateMenu = $settings?.regenerateMenu ?? true;
+
 		largeTextAsFile = $settings?.largeTextAsFile ?? false;
 		copyFormatted = $settings?.copyFormatted ?? false;
 
@@ -485,7 +489,7 @@
 						type="button"
 					>
 						<span class="ml-2 self-center" id="notification-sound-state"
-							>{notificationSound === true ? $i18n.t('On') : $i18n.t('Off')}</span
+							>{landingPageMode === '' ? $i18n.t('Default') : $i18n.t('Chat')}</span
 						>
 					</button>
 				</div>
@@ -709,6 +713,25 @@
 				</div>
 			</div>
 
+			<div>
+				<div class=" py-0.5 flex w-full justify-between">
+					<div id="regenerate-menu-label" class=" self-center text-xs">
+						{$i18n.t('Regenerate Menu')}
+					</div>
+
+					<div class="flex items-center gap-2 p-1">
+						<Switch
+							ariaLabelledbyId="regenerate-menu-label"
+							tooltip={true}
+							bind:state={regenerateMenu}
+							on:change={() => {
+								saveSettings({ regenerateMenu });
+							}}
+						/>
+					</div>
+				</div>
+			</div>
+
 			<div>
 				<div class=" py-0.5 flex w-full justify-between">
 					<div id="always-collapse-label" class=" self-center text-xs">

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

@@ -41,7 +41,7 @@
 					...(theme !== '' ? { theme } : { theme: 'dark' }),
 					arrow: false,
 					offset: offset,
-					interactive: interactive,
+					...(interactive ? { interactive: true } : {}),
 					...tippyOptions
 				});
 			}

+ 4 - 7
src/lib/components/layout/Sidebar/ChatItem.svelte

@@ -332,9 +332,13 @@
 				disabled={generating}
 				on:keydown={chatTitleInputKeydownHandler}
 				on:blur={async (e) => {
+					// check if target is generate button
 					if (ignoreBlur) {
 						ignoreBlur = false;
 
+						if (e.relatedTarget?.id === 'generate-title-button') {
+							generateTitleHandler();
+						}
 						return;
 					}
 
@@ -440,13 +444,6 @@
 						on:mouseenter={() => {
 							ignoreBlur = true;
 						}}
-						on:click={(e) => {
-							e.preventDefault();
-							e.stopImmediatePropagation();
-							e.stopPropagation();
-
-							generateTitleHandler();
-						}}
 					>
 						<Sparkles strokeWidth="2" />
 					</button>

+ 1 - 1
src/lib/components/workspace/Knowledge.svelte

@@ -147,7 +147,7 @@
 	<div class="mb-5 grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-2">
 		{#each filteredItems as item}
 			<button
-				class=" flex space-x-4 cursor-pointer text-left w-full px-4 py-3 border border-gray-50 dark:border-gray-850 hover:bg-black/5 dark:hover:bg-white/5 transition rounded-xl"
+				class=" flex space-x-4 cursor-pointer text-left w-full px-4 py-3 border border-gray-50 dark:border-gray-850 hover:bg-black/5 dark:hover:bg-white/5 transition rounded-2xl"
 				on:click={() => {
 					if (item?.meta?.document) {
 						toast.error(

+ 1 - 1
src/lib/components/workspace/Prompts.svelte

@@ -173,7 +173,7 @@
 	<div class="mb-5 gap-2 grid lg:grid-cols-2 xl:grid-cols-3">
 		{#each filteredItems as prompt}
 			<div
-				class=" flex space-x-4 cursor-pointer w-full px-4 py-3 border border-gray-50 dark:border-gray-850 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl transition"
+				class=" flex space-x-4 cursor-pointer w-full px-4 py-3 border border-gray-50 dark:border-gray-850 dark:hover:bg-white/5 hover:bg-black/5 rounded-2xl transition"
 			>
 				<div class=" flex flex-1 space-x-4 cursor-pointer w-full">
 					<a href={`/workspace/prompts/edit?command=${encodeURIComponent(prompt.command)}`}>

+ 1 - 1
src/lib/components/workspace/Tools.svelte

@@ -259,7 +259,7 @@
 	<div class="mb-5 gap-2 grid lg:grid-cols-2 xl:grid-cols-3">
 		{#each filteredItems as tool}
 			<div
-				class=" flex space-x-4 cursor-pointer w-full px-4 py-3 border border-gray-50 dark:border-gray-850 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl transition"
+				class=" flex space-x-4 cursor-pointer w-full px-4 py-3 border border-gray-50 dark:border-gray-850 dark:hover:bg-white/5 hover:bg-black/5 rounded-2xl transition"
 			>
 				<a
 					class=" flex flex-1 space-x-3.5 cursor-pointer w-full"

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "رفض عندما لا ينبغي أن يكون",
 	"Regenerate": "تجديد",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "ملاحظات الإصدار",

+ 1 - 0
src/lib/i18n/locales/ar/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "مراجع من",
 	"Refused when it shouldn't have": "رفض عندما لا ينبغي أن يكون",
 	"Regenerate": "تجديد",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "ملاحظات الإصدار",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Препратки от",
 	"Refused when it shouldn't have": "Отказано, когато не трябва да бъде",
 	"Regenerate": "Регенериране",
+	"Regenerate Menu": "",
 	"Reindex": "Реиндексирай",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Бележки по изданието",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "যদি উপযুক্ত নয়, তবে রেজিগেনেট করা হচ্ছে",
 	"Regenerate": "রেজিগেনেট করুন",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "রিলিজ নোটসমূহ",

+ 1 - 0
src/lib/i18n/locales/bo-TB/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "ནས་ལུང་འདྲེན།",
 	"Refused when it shouldn't have": "མི་དགོས་དུས་ཁས་མ་བླངས།",
 	"Regenerate": "བསྐྱར་བཟོ།",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "འགྲེམས་སྤེལ་མཆན་བུ།",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referències de",
 	"Refused when it shouldn't have": "Refusat quan no hauria d'haver estat",
 	"Regenerate": "Regenerar",
+	"Regenerate Menu": "",
 	"Reindex": "Reindexar",
 	"Reindex Knowledge Base Vectors": "Reindexar els vector base del Coneixement",
 	"Release Notes": "Notes de la versió",

+ 1 - 0
src/lib/i18n/locales/ceb-PH/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "",
 	"Regenerate": "",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Release Notes",

+ 1 - 0
src/lib/i18n/locales/cs-CZ/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Reference z",
 	"Refused when it shouldn't have": "Odmítnuto, když nemělo být.",
 	"Regenerate": "Regenerovat",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Záznamy o vydání",

+ 1 - 0
src/lib/i18n/locales/da-DK/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Referencer fra",
 	"Refused when it shouldn't have": "Afvist, når den ikke burde have været det",
 	"Regenerate": "Regenerer",
+	"Regenerate Menu": "",
 	"Reindex": "Genindekser",
 	"Reindex Knowledge Base Vectors": "Genindekser vidensbase vektorer",
 	"Release Notes": "Udgivelsesnoter",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referenzen aus",
 	"Refused when it shouldn't have": "Abgelehnt, obwohl es nicht hätte abgelehnt werden sollen",
 	"Regenerate": "Neu generieren",
+	"Regenerate Menu": "",
 	"Reindex": "Neu indexieren",
 	"Reindex Knowledge Base Vectors": "Vektoren der Wissensdatenbank neu indizieren",
 	"Release Notes": "Veröffentlichungshinweise",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "",
 	"Regenerate": "",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Release Borks",

+ 1 - 0
src/lib/i18n/locales/el-GR/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Αναφορές από",
 	"Refused when it shouldn't have": "Αρνήθηκε όταν δεν έπρεπε",
 	"Regenerate": "Αναγεννήστε",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Σημειώσεις Έκδοσης",

+ 1 - 0
src/lib/i18n/locales/en-GB/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "",
 	"Regenerate": "",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "",

+ 1 - 0
src/lib/i18n/locales/en-US/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "",
 	"Regenerate": "",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referencias desde",
 	"Refused when it shouldn't have": "Rechazado cuando no debería haberlo hecho",
 	"Regenerate": "Regenerar",
+	"Regenerate Menu": "",
 	"Reindex": "Reindexar",
 	"Reindex Knowledge Base Vectors": "Reindexar Base Vectorial de Conocimiento",
 	"Release Notes": "Notas de la Versión",

+ 1 - 0
src/lib/i18n/locales/et-EE/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Viited allikast",
 	"Refused when it shouldn't have": "Keeldus, kui ei oleks pidanud",
 	"Regenerate": "Regenereeri",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Väljalaskemärkmed",

+ 1 - 0
src/lib/i18n/locales/eu-ES/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Erreferentziak hemendik",
 	"Refused when it shouldn't have": "Ukatu duenean ukatu behar ez zuenean",
 	"Regenerate": "Bersortu",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Bertsio oharrak",

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

@@ -1108,6 +1108,7 @@
 	"References from": "مراجع از",
 	"Refused when it shouldn't have": "رد شده زمانی که باید نباشد",
 	"Regenerate": "تولید مجدد",
+	"Regenerate Menu": "",
 	"Reindex": "فهرست\u200cبندی مجدد",
 	"Reindex Knowledge Base Vectors": "فهرست\u200cبندی مجدد بردارهای پایگاه دانش",
 	"Release Notes": "یادداشت\u200cهای انتشار",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Viitteet lähteistä",
 	"Refused when it shouldn't have": "Kieltäytyi, vaikka ei olisi pitänyt",
 	"Regenerate": "Uudelleentuota",
+	"Regenerate Menu": "",
 	"Reindex": "Indeksoi uudelleen",
 	"Reindex Knowledge Base Vectors": "Indeksoi tietämyksen vektorit uudelleen",
 	"Release Notes": "Julkaisutiedot",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Références de",
 	"Refused when it shouldn't have": "Refusé alors qu'il n'aurait pas dû l'être",
 	"Regenerate": "Regénérer",
+	"Regenerate Menu": "",
 	"Reindex": "Réindexer",
 	"Reindex Knowledge Base Vectors": "Réindexer les vecteurs de la base de connaissance",
 	"Release Notes": "Notes de mise à jour",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Références de",
 	"Refused when it shouldn't have": "Refusé alors qu'il n'aurait pas dû l'être",
 	"Regenerate": "Regénérer",
+	"Regenerate Menu": "",
 	"Reindex": "Réindexer",
 	"Reindex Knowledge Base Vectors": "Réindexer les vecteurs de la base de connaissance",
 	"Release Notes": "Notes de mise à jour",

+ 1 - 0
src/lib/i18n/locales/gl-ES/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Referencias de",
 	"Refused when it shouldn't have": "Rechazado cuando no debería",
 	"Regenerate": "Regenerar",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Notas da versión",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "נדחה כאשר לא היה צריך",
 	"Regenerate": "הפק מחדש",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "הערות שחרור",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "जब ऐसा नहीं होना चाहिए था तो मना कर दिया",
 	"Regenerate": "पुनः जेनरेट",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "रिलीज नोट्स",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "Odbijen kada nije trebao biti",
 	"Regenerate": "Regeneriraj",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Bilješke o izdanju",

+ 1 - 0
src/lib/i18n/locales/hu-HU/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Hivatkozások innen",
 	"Refused when it shouldn't have": "Elutasítva, amikor nem kellett volna",
 	"Regenerate": "Újragenerálás",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Kiadási jegyzetek",

+ 1 - 0
src/lib/i18n/locales/id-ID/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "Menolak ketika seharusnya tidak",
 	"Regenerate": "Regenerasi",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Catatan Rilis",

+ 1 - 0
src/lib/i18n/locales/ie-GA/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Tagairtí ó",
 	"Refused when it shouldn't have": "Diúltaíodh nuair nár chóir dó",
 	"Regenerate": "Athghiniúint",
+	"Regenerate Menu": "",
 	"Reindex": "Ath-innéacs",
 	"Reindex Knowledge Base Vectors": "Veicteoirí Bonn Eolais a ath-innéacsú",
 	"Release Notes": "Nótaí Scaoilte",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Riferimenti da",
 	"Refused when it shouldn't have": "Rifiutato quando non avrebbe dovuto",
 	"Regenerate": "Rigenera",
+	"Regenerate Menu": "",
 	"Reindex": "Reindicizza",
 	"Reindex Knowledge Base Vectors": "Reindicizza i Vettori della Base di Conoscenza",
 	"Release Notes": "Note di Rilascio",

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

@@ -1108,6 +1108,7 @@
 	"References from": "参照元",
 	"Refused when it shouldn't have": "拒否すべきでないのに拒否した",
 	"Regenerate": "再生成",
+	"Regenerate Menu": "",
 	"Reindex": "再インデックス",
 	"Reindex Knowledge Base Vectors": "ナレッジベースベクターを再インデックス",
 	"Release Notes": "リリースノート",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "უარა, როგორც უნდა იყოს",
 	"Regenerate": "თავიდან გენერაცია",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "გამოცემის შენიშვნები",

+ 1533 - 0
src/lib/i18n/locales/kab-DZ/translation.json

@@ -0,0 +1,1533 @@
+{
+	"-1 for no limit, or a positive integer for a specific limit": "1 war talast, neɣ aɣerwaḍ ilaw i talast tusdidt",
+	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "''s', 'm', 'd', 'w' neɣ '-1' iwakken ur d-ițeffeɣ ara wawal.",
+	"(e.g. `sh webui.sh --api --api-auth username_password`)": "(amedya. `sh webui.sh --api --api-auth username_password`)",
+	"(e.g. `sh webui.sh --api`)": "e.g",
+	"(latest)": "Lqem angaru",
+	"(leave blank for to use commercial endpoint)": "",
+	"[Last] dddd [at] h:mm A": "[Aneggaru] dddd [at] h:mm A",
+	"[Today at] h:mm A": "[Ass-a ɣef] h:mm A",
+	"[Yesterday at] h:mm A": "[Iḍelli ɣef] h:mm A",
+	"{{ models }}": "{{ models }}",
+	"{{COUNT}} Available Tools": "Iɣewwaṛen yellan d imeɣlalen",
+	"{{COUNT}} characters": "{{COUNT}} n isekkilen",
+	"{{COUNT}} hidden lines": "{{COUNT}} n yizirigen yeffren",
+	"{{COUNT}} Replies": "{{COUNT}} n tririyin",
+	"{{COUNT}} words": "{{COUNT}} n wawalen",
+	"{{user}}'s Chats": "Asqerdec n {{user}}",
+	"{{webUIName}} Backend Required": "{{webUIName}} Tuɣalin ɣer deffir",
+	"*Prompt node ID(s) are required for image generation": "",
+	"A new version (v{{LATEST_VERSION}}) is now available.": "",
+	"A task model is used when performing tasks such as generating titles for chats and web search queries": "Tamudemt n uxeddim tettuseqdec mi ara tgeḍ lecɣal am usuffeɣ n izwal i udiwenni akked tuttriwin n unadi web",
+	"a user": "aseqdac",
+	"About": "Ɣef",
+	"Accept autocomplete generation / Jump to prompt variable": "Aqbal n tsuta tafulmant tummidt / Neggez ɣer usenfali n umutti",
+	"Access": "Addaf",
+	"Access Control": "Asenqed",
+	"Accessible to all users": "Anekcum ɣer yiseqdacen meṛṛa",
+	"Account": "Amiḍan",
+	"Account Activation Pending": "Asegbar n umiḍan",
+	"Accurate information": "",
+	"Action": "Tigawt",
+	"Actions": "Tigawin",
+	"Activate": "Sermed",
+	"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Xdem lameṛ-a s tira n \"/{COMMAND}}\" akken ad tqeṣṣreḍ asekcem.",
+	"Active Users": "Iseqdacen urmiden",
+	"Add": "Rnu",
+	"Add a model ID": "Rnu amiḍan",
+	"Add a short description about what this model does": "Rnu-d aglam wezzilen ɣef wayen ixeddem ummud-a",
+	"Add a tag": "Rnu tabzimt",
+	"Add Arena Model": "Rnu tamudemt Arena",
+	"Add Connection": "Rnu tuqqna",
+	"Add Content": "Rnu agbur",
+	"Add content here": "Rnu agbur dagi",
+	"Add Custom Parameter": "Rnu amqim udmawan",
+	"Add custom prompt": "Rnu tanumi",
+	"Add Details": "",
+	"Add Files": "Rnu ifuyla",
+	"Add Group": "Rnu agraw",
+	"Add Memory": "Rnu cfawat",
+	"Add Model": "Rnu tamudemt",
+	"Add Reaction": "Rnu tamyigawt",
+	"Add Tag": "Rnu tabzimt",
+	"Add Tags": "Rnu tibzimin",
+	"Add text content": "",
+	"Add User": "Rnu aseqdac",
+	"Add User Group": "Rnu agraw n useqdac",
+	"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": "",
+	"Adjusting these settings will apply changes universally to all users.": "Aswati n yiɣewwaren-a ad yessuter ibeddilen s wudem ameɣradan i yiseqdacen akk.",
+	"admin": "anedbal",
+	"Admin": "Anebdal",
+	"Admin Panel": "Agalis n unedbal",
+	"Admin Settings": "Iɣewwaṛen n unedbal",
+	"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
+	"Advanced Parameters": "Iɣewwaren leqqayen",
+	"Advanced Params": "Iɣewwaren leqqayen",
+	"AI": "TT",
+	"All": "Akk",
+	"All Documents": "Akk isemliyen",
+	"All models deleted successfully": "Akk timudmin ttwakksent akken iwata",
+	"Allow Call": "Siwel",
+	"Allow Chat Controls": "Sireg isenqaden n udiwenni",
+	"Allow Chat Delete": "Sireg Chat Delet",
+	"Allow Chat Deletion": "Sireg tuṭṭfa n udiwenni",
+	"Allow Chat Edit": "Sireg Chat Edit",
+	"Allow Chat Export": "Sireg asagen n udiwenni",
+	"Allow Chat Params": "",
+	"Allow Chat Share": "",
+	"Allow Chat System Prompt": "Sireg anagraw n udiwenni",
+	"Allow Chat Valves": "",
+	"Allow File Upload": "Sireg asali n ufaylu",
+	"Allow Multiple Models in Chat": "",
+	"Allow non-local voices": "",
+	"Allow Speech to Text": "",
+	"Allow Temporary Chat": "Sireg Chat temporanju",
+	"Allow Text to Speech": "Sireg aḍris i umeslay",
+	"Allow User Location": "Sireg tagnit n useqdac",
+	"Allow Voice Interruption in Call": "Sireg anekcum n taɣect deg teɣri",
+	"Allowed Endpoints": "Tineggiwin n tagara yettunefken",
+	"Allowed File Extensions": "Isiɣzaf n ufaylu yettunefken",
+	"Allowed file extensions for upload. Separate multiple extensions with commas. Leave empty for all file types.": "Sireg isiɣzaf n yifuyla i usali. Bḍu-d aṭas n yisiɣzaf s temceḍt. Eǧǧ ilem i yal tawsit n yifuyla.",
+	"Already have an account?": "Ɣur-k·m yakan amiḍan?",
+	"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.": "",
+	"Always": "Yal tikkelt",
+	"Always Collapse Code Blocks": "Dima feqqel inagan n tuqqna",
+	"Always Expand Details": "Dima ttraǧu talqayt",
+	"Always Play Notification Sound": "Dima tturar alɣu Yettban",
+	"Amazing": "amazing_%@",
+	"an assistant": "amalal",
+	"Analytics": "",
+	"Analyzed": "Analyed",
+	"Analyzing...": "Anagar...",
+	"and": "akked",
+	"and {{COUNT}} more": "d {{COUNT}} nniḍen",
+	"and create a new shared link.": "rnu aseɣwen n beṭṭu amaynut.",
+	"Android": "Android",
+	"API": "API",
+	"API Base URL": "Tansa URL",
+	"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.": "Talqayt API i useqdec n tmudemt s tutlayt n tmuɣli deg uglam n tugna. Aparametr-a d win i d-yufraren gar-asen s tugna_description_local.",
+	"API Key": "Tasarutt API",
+	"API Key created.": "Tasarut API tennulfa-d.",
+	"API Key Endpoint Restrictions": "Agaz n ugaz n tsarut API",
+	"API keys": "Tisura API",
+	"API Version": "Lqem API",
+	"Application DN": "DN n wesnas",
+	"Application DN Password": "Awal n uɛeddi n DN n usnas",
+	"applies to all users with the \"user\" role": "yeɛna akk iseqdacen yesɛan tamlilt \"user\"",
+	"April": "Yebrir",
+	"Archive": "Seɣber",
+	"Archive All Chats": "Archive All Chats",
+	"Archived Chats": "Archived Chats",
+	"archived-chat-export": "asagen",
+	"Are you sure you want to clear all memories? This action cannot be undone.": "Tetḥeqqeḍ tebɣiḍ ad tekkseḍ akk aktayen? Tigawt-a ur tettwakkes ara.",
+	"Are you sure you want to delete this channel?": "Tetḥeqqeḍ tebɣiḍ ad tekkseḍ targa-a?",
+	"Are you sure you want to delete this message?": "Tetḥeqqeḍ tebɣiḍ ad tekkseḍ izen-a?",
+	"Are you sure you want to unarchive all archived chats?": "Tetḥeqqemt tebɣamt ad d-tekksemt akk iqecwalen iarkasen?",
+	"Are you sure?": "S tidett?",
+	"Arena Models": "Timudmiwin n Arena",
+	"Artifacts": "Timuɣliwin",
+	"Ask": "Suter",
+	"Ask a question": "Efk-d asteqsi",
+	"Assistant": "Tallalt",
+	"Attach file from knowledge": "Qqen afaylu seg tmussni",
+	"Attention to detail": "Err ddehn-nnek ɣer ttfaṣil",
+	"Attribute for Mail": "Feṛqet tibṛatin",
+	"Attribute for Username": "Ttekki i yisem n useqdac",
+	"Audio": "Ameslaw",
+	"August": "Ɣuct",
+	"Auth": "Amwan",
+	"Authenticate": "Asesteb",
+	"Authentication": "Asesteb",
+	"Auto": "Awurman",
+	"Auto-Copy Response to Clipboard": "",
+	"Auto-playback response": "Taɣuṛi tawurmant n tririt",
+	"Autocomplete Generation": "Tasuta tawurmant",
+	"Autocomplete Generation Input Max Length": "Tasuta tawurmant Tafulfulfulmant Input Max Length",
+	"Automatic1111": "Tafulmant11",
+	"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
+	"AUTOMATIC1111 Base URL": "",
+	"AUTOMATIC1111 Base URL is required.": "",
+	"Available list": "Tabdart i yellan",
+	"Available Tools": "Ifecka i yellan",
+	"available!": "yella!",
+	"Awful": "",
+	"Azure AI Speech": "Azure AI Speech",
+	"Azure Region": "Tamnaḍṭ n Azure",
+	"Back": "Uɣal",
+	"Bad Response": "Yir tiririt",
+	"Banners": "Ibennayen",
+	"Base Model (From)": "Azadur n uzadur",
+	"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.": "Umuɣ n uzadur n tebdart Cache yessazzel anekcum s tmudmin tidusanin kan deg ubeddu neɣ deg yiɣewwaren i d-yettwasellken — amestir, maca yezmer lḥal ur d-yesskan ara ibeddilen ineggura n tmudemt azadur.",
+	"before": "send",
+	"Being lazy": "Ili-k d ameɛdaz",
+	"Beta": "Biṭa",
+	"Bing Search V7 Endpoint": "Agaz n unadi V7",
+	"Bing Search V7 Subscription Key": "Tirawt n unadi V7 Tasarut",
+	"BM25 Weight": "",
+	"Bocha Search API Key": "Bocha Nadi API Tasarut",
+	"Bold": "Azuran",
+	"Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Aserkem neɣ angal n yiqenṭaren ulmisen i tririt yettwaḥeṛsen. Azalen ibirusanen ad ttwakecfen gar 100 d 100 (asekcam). Lmut: ala",
+	"Both Docling OCR Engine and Language(s) must be provided or both left empty.": "",
+	"Brave Search API Key": "",
+	"Bullet List": "Tabdart s tlilac",
+	"Button ID": "",
+	"Button Label": "",
+	"Button Prompt": "",
+	"By {{name}}": "S-ɣur {{name}}",
+	"Bypass Embedding and Retrieval": "Bypass Embedding akked Retrieval",
+	"Bypass Web Loader": "Bypass Web Loader",
+	"Cache Base Model List": "Umuɣ n tebdart n uzadur n Cache",
+	"Calendar": "Awitay",
+	"Call": "Siwel",
+	"Call feature is not supported when using Web STT engine": "Tamahilt n usiwel ur tettwasefrak ara mi ara tesqedceḍ amsedday Web STT",
+	"Camera": "Takamiṛatt",
+	"Cancel": "Semmet",
+	"Capabilities": "Tizemmar",
+	"Capture": "Tuṭṭfa",
+	"Capture Audio": "",
+	"Certificate Path": "Abrid n uselkin",
+	"Change Password": "Snifel awal n uɛeddi",
+	"Channel Name": "Isem n ubadu",
+	"Channels": "Ibuda",
+	"Character": "asekkil",
+	"Character limit for autocomplete generation input": "",
+	"Chart new frontiers": "Chart imalaren imaynuten",
+	"Chat": "Asqerdec",
+	"Chat Background Image": "Chat Background Tugna",
+	"Chat Bubble UI": "Chat Bubble UI",
+	"Chat Controls": "Isenqaden n udiwenni",
+	"Chat direction": "Tanila n udiwenni",
+	"Chat ID": "",
+	"Chat Overview": "Taskant n udiwenni",
+	"Chat Permissions": "Akeččum n udiwenni",
+	"Chat Tags Auto-Generation": "Asirew awurman n tebzimin",
+	"Chats": "Ameslay",
+	"Check Again": "Senqed tikelt nniḍen",
+	"Check for updates": "Nadi ileqman",
+	"Checking for updates...": "Anadi n yileqman...",
+	"Choose a model before saving...": "Fren tamudemt uqbel ad tsellkeḍ...",
+	"Chunk Overlap": "Ageṭṭum",
+	"Chunk Size": "Ṭṭes",
+	"Ciphers": "Imeksawen",
+	"Citation": "Tanebdurt",
+	"Citations": "Tinebdurin",
+	"Clear memory": "",
+	"Clear Memory": "Sfeḍ takatut",
+	"click here": "sit da",
+	"Click here for filter guides.": "Tekki da i yimniren n tṣeffayt.",
+	"Click here for help.": "",
+	"Click here to": "Tekki da",
+	"Click here to download user import template file.": "Sit da akken ad d-tzedmeḍ afaylu n tmudemt n uketer n iseqdac.",
+	"Click here to learn more about faster-whisper and see the available models.": "Tekki da akken ad tissineḍ ugar ɣef wamek i tettɣawaleḍ ugar, twaliḍ timudmin yellan.",
+	"Click here to see available models.": "Tekki da akken ad twaliḍ timudmin yellan.",
+	"Click here to select": "Sit da akken ad tferneḍ",
+	"Click here to select a csv file.": "Tekki da akken ad tferneḍ afaylu csv.",
+	"Click here to select a py file.": "Tekki da akken ad tferneḍ afaylu n py.",
+	"Click here to upload a workflow.json file.": "Tekki da akken ad tessaliḍ afaylu n ucariḍ.json.",
+	"click here.": "sit da.",
+	"Click on the user role button to change a user's role.": "Tekki ɣef tqeffalt n temlilt n useqdac akken ad tbeddleḍ tamlilt n useqdac.",
+	"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Yettwagdel unekcum ɣer tira. Ssefqed iɣewwaṛen-ik n yiminig ma ulac aɣilif akken ad tkecmeḍ ɣer wayen ilaqen.",
+	"Clone": "Semtu",
+	"Clone Chat": "Clone Chat",
+	"Clone of {{TITLE}}": "Aselsa n {{TITLE}}",
+	"Close": "Mdel",
+	"Close Banner": "",
+	"Close Configure Connection Modal": "",
+	"Close modal": "Mdel asfaylu",
+	"Close settings modal": "Mdel iɣewwaṛen",
+	"Close Sidebar": "",
+	"Code Block": "Sewḥel",
+	"Code execution": "Aselkem n tengalt",
+	"Code Execution": "Aselkem n tengalt",
+	"Code Execution Engine": "Tanga n tenga",
+	"Code Execution Timeout": "Akud n wammud",
+	"Code formatted successfully": "Code formated akken iwata",
+	"Code Interpreter": "Code Interpreter",
+	"Code Interpreter Engine": "",
+	"Code Interpreter Prompt Template": "Code Interpreter Prompt Template",
+	"Collapse": "Sneḍfes",
+	"Collection": "Tagrumma",
+	"Color": "Ini",
+	"ComfyUI": "ComfyUI",
+	"ComfyUI API Key": "API ComfyUI Tasarut",
+	"ComfyUI Base URL": "",
+	"ComfyUI Base URL is required.": "ComfyUI Tansa URL n uzadur tesra.",
+	"ComfyUI Workflow": "ComfyUI Workflow",
+	"ComfyUI Workflow Nodes": "ComfyUI Workflow Nodes",
+	"Command": "Anezḍay",
+	"Comment": "Awennit",
+	"Completions": "Anezwu",
+	"Compress Images in Channels": "",
+	"Concurrent Requests": "Suter",
+	"Configure": "Swel",
+	"Confirm": "Sentem",
+	"Confirm Password": "Sentem awal n uɛeddi",
+	"Confirm your action": "Serggeg tigawt-agi",
+	"Confirm your new password": "Sentem awal-ik·im n uɛeddi amaynut",
+	"Confirm Your Password": "",
+	"Connect to your own OpenAI compatible API endpoints.": "Qqen ɣer wagazen-ik n taggara n API yemṣaban OpenAI.",
+	"Connect to your own OpenAPI compatible external tool servers.": "Qqen ɣer yiqeddacen-ik n yifecka imeṛṛa yeldin.",
+	"Connection failed": "Tuqqna d-tawezɣit",
+	"Connection successful": "Tuqqna",
+	"Connection Type": "Anaw n tuqqna",
+	"Connections": "Tuqqniwin",
+	"Connections saved successfully": "Tuqqniwin ttwaskelsent akken iwata",
+	"Connections settings updated": "",
+	"Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "Yessefk ad tḥeṛseḍ ussis ɣef ssebba n tmudmin n usseɣẓen. D ayen izemren kan ad yesseɣẓen timudmin seg yisaǧǧawen ulmisen i yettɛawanen ussisen n usseɣẓen.",
+	"Contact Admin for WebUI Access": "Admin n unermis i WebUI",
+	"Content": "Agbur",
+	"Content Extraction Engine": "Ajenyuṛ n umgaru n ugbur",
+	"Continue Response": "Kemmel tiririt",
+	"Continue with {{provider}}": "Kemmel s {{provider}}",
+	"Continue with Email": "Kemmel s yimayl",
+	"Continue with LDAP": "",
+	"Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "",
+	"Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "Ssenqed amek ara tɛawdeḍ ad d-tɛawdeḍ tiseddarin n usekkil deg uḍris-nni i d-yettwalalen. Azal ɛlayen (amedya, 1.5) ad iɛawed ad iɛawed ad iɛawed ad iɛeddi s lǧehd, ma d azal n wadda (amedya, 1.1) ad yili d win yettɛeddin ugar. Ɣef 1, d ameɛdur.",
+	"Controls": "Isenqaden",
+	"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "Ssneqdet amnekni garkoerenza d tanḍa n tuffɣa. Azal n wadda ad d-yeglu s wugar n tmuɣli d uḍris udwis.",
+	"Copied": "Yettwanɣel",
+	"Copied link to clipboard": "Nɣel aseɣwen ɣer tfelwit",
+	"Copied shared chat URL to clipboard!": "Nɣel tansa URL n udiwenni yebḍan ɣef afus!",
+	"Copied to clipboard": "Yettwanɣel ɣer ufus",
+	"Copy": "Nɣel",
+	"Copy Formatted Text": "Aḍris anɣel",
+	"Copy last code block": "Nɣel angal aneggaru",
+	"Copy last response": "",
+	"Copy link": "Nɣel aseɣwen",
+	"Copy Link": "Nɣel aseɣwen",
+	"Copy to clipboard": "Nɣel ɣef afus",
+	"Copying to clipboard was successful!": "Yessaweḍ unɣel ɣer tfelwit n uklip!",
+	"CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS ilaq ad yeswel akken iwata sɣur usaǧǧaw akken ad yeǧǧ issutren seg WebUI yeldin.",
+	"Create": "Snulfu-d",
+	"Create a knowledge base": "Eg azadur n tmussni",
+	"Create a model": "Eg-d tamudemt",
+	"Create Account": "Snulfu-d amiḍan",
+	"Create Admin Account": "Rnu amiḍan admin",
+	"Create Channel": "Snulfu-d abadu",
+	"Create Folder": "Snulfu-d akaram",
+	"Create Group": "Snulfu-d agraw",
+	"Create Knowledge": "Snulfu-d tamusni",
+	"Create new key": "Snulfu-d tasarut tamaynut",
+	"Create new secret key": "Snulfu-d tasarut tuffirt tamaynut",
+	"Create Note": "Snulfu-d tazmilt",
+	"Create your first note by clicking on the plus button below.": "",
+	"Created at": "Yettwarna di",
+	"Created At": "Yettwarna di",
+	"Created by": "Yerna-t",
+	"CSV Import": "Kter CSV",
+	"Ctrl+Enter to Send": "Ctrl+ Kcem ɣer Send",
+	"Current Model": "Tamudemt tamirant",
+	"Current Password": "Awal n uɛeddi amiran",
+	"Custom": "Udmawan",
+	"Custom description enabled": "Aglam udmawan",
+	"Custom Parameter Name": "Amsideg Isem",
+	"Custom Parameter Value": "Amsideg Azal",
+	"Danger Zone": "Azger",
+	"Dark": "Aberkan",
+	"Database": "Taffa n isefka",
+	"Datalab Marker API": "API n Datalab Marker",
+	"Datalab Marker API Key required.": "API n isefkalab Marker Tesri tasarut.",
+	"DD/MM/YYYY": "JJ/MM/AAAA",
+	"December": "Duǧambeṛ",
+	"Default": "Amezwer",
+	"Default (Open AI)": "Amezwer (Open AI)",
+	"Default (SentenceTransformers)": "Default",
+	"Default action buttons will be used.": "",
+	"Default description enabled": "Aglam amezwer",
+	"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": "Tamudrut tamezdayt tamaynut",
+	"Default Models": "Timudmiwin timezwura",
+	"Default permissions": "Tisirag timezwura",
+	"Default permissions updated successfully": "",
+	"Default Prompt Suggestions": "Suggest",
+	"Default to 389 or 636 if TLS is enabled": "Amezwer 389 neɣ 636 ma yella TLS yettwarmed",
+	"Default to ALL": "Imezwer i kullec",
+	"Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "Ma nmuqel amek ara nɛawed ad nɛawed ad nɛawed ad nɛawed ad d-nekkes ayen yesɛan azal d wayen icudden ɣer ugbur, ilaq-as i tuget n tegnatin.",
+	"Default User Role": "Amseqdac amezwer",
+	"Delete": "Kkes",
+	"Delete a model": "Kkes tamudemt",
+	"Delete All Chats": "Kkes akk idiwenniyen",
+	"Delete All Models": "",
+	"Delete chat": "Kkes asqerdec",
+	"Delete Chat": "Kkes asqerdec",
+	"Delete chat?": "Kkes asqerdec?",
+	"Delete folder?": "Kkes akaram?",
+	"Delete function?": "Kkes tawuri?",
+	"Delete Message": "Kkes izen",
+	"Delete message?": "Kkes izen?",
+	"Delete note?": "",
+	"Delete prompt?": "Sfeḍ s tɣawla?",
+	"delete this link": "kkseɣ",
+	"Delete tool?": "Kkes afecku?",
+	"Delete User": "Kkes aseqdac",
+	"Deleted {{deleteModelTag}}": "Yettwakkes {{deleteModelTag}}",
+	"Deleted {{name}}": "Yettwakkes {{name}}",
+	"Deleted User": "Yettwakkes useqdac",
+	"Deployment names are required for Azure OpenAI": "Ismawen n usleɣmu laqen i Azure OpenAIAI",
+	"Describe Pictures in Documents": "Glem-d tugniwin deg warraten",
+	"Describe your knowledge base and objectives": "Glem-d azadur-nwen n tmussni d yiswan-nwen",
+	"Description": "Aglam",
+	"Detect Artifacts Automatically": "Tiɣawsiwin tifulmanin s wudem awurman",
+	"Dictate": "Asnaraf",
+	"Didn't fully follow instructions": "Ur yeḍfir ara akk iwellihen",
+	"Direct": "Srid",
+	"Direct Connections": "Tuqqniwin srid",
+	"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Tuqqniwin tusridin ttaǧǧant iseqdacen ad qqnen ɣer wagazen-nsen n taggara API imṣadan OpenAI.",
+	"Direct Tool Servers": "Iqeddacen usriden",
+	"Disable Code Interpreter": "Ur yezmir ara ad d-yefk Interpreter n tengalt",
+	"Disable Image Extraction": "",
+	"Disable image extraction from the PDF. If Use LLM is enabled, images will be automatically captioned. Defaults to False.": "Kkes-d asufeɣ n tugna seg PDF. Ma yella aseqdec n LLM yermed, tugniwin ad ttwakelsent s wudem awurman. Imezwura ɣer False.",
+	"Disabled": "Yensa",
+	"Discover a function": "Af-d tawuri",
+	"Discover a model": "Af-d tamudemt",
+	"Discover a prompt": "Nadi deg uɣiwel",
+	"Discover a tool": "Af-d allal",
+	"Discover how to use Open WebUI and seek support from the community.": "Wali amek ara tesqedceḍ Open WebUI udiɣ amek ara ad tnadiḍ tallelt ar temɣiwant.",
+	"Discover wonders": "",
+	"Discover, download, and explore custom functions": "Af-d, zdem-d, tesnirmeḍ timahilin yemganen",
+	"Discover, download, and explore custom prompts": "Af-d, zdem-d, tesnirmeḍ-d ayen iɛeǧben i tannumi",
+	"Discover, download, and explore custom tools": "Af-d, zdem-d, tesnirmeḍ ifecka udmawanen",
+	"Discover, download, and explore model presets": "Af-d, zdem-d, tesnirmeḍ-d iferdisen n tmudemt",
+	"Display": "Beqqeḍ",
+	"Display Emoji in Call": "",
+	"Display Multi-model Responses in Tabs": "",
+	"Display the username instead of You in the Chat": "",
+	"Displays citations in the response": "Askan n yisumar deg tririt",
+	"Dive into knowledge": "Ini-d ɣer tmussni",
+	"Do not install functions from sources you do not fully trust.": "Ur srusuy ara timahilin seg iɣbula ur tettamneḍ ara akken iwata.",
+	"Do not install tools from sources you do not fully trust.": "Ur srusuy ara ifecka seg iɣbula ur tettamneḍ ara akken iwata.",
+	"Docling": "Timsennent",
+	"Docling Server URL required.": "Tansa URL n uqeddac tuḥwaǧ.",
+	"Document": "Imesli",
+	"Document Intelligence": "Tigzi n tsemlit",
+	"Document Intelligence endpoint and key required.": "Agaz n tagara n warrat d tsarut i ilaqen.",
+	"Documentation": "Tasemlit",
+	"Documents": "Isemliyen",
+	"does not make any external connections, and your data stays securely on your locally hosted server.": "",
+	"Domain Filter List": "",
+	"Don't have an account?": "Ur tesɛiḍ ara amiḍan?",
+	"don't install random functions from sources you don't trust.": "",
+	"don't install random tools from sources you don't trust.": "ur srusuy ara ifecka igacuranen seg yiɣbula ur tettamneḍ ara.",
+	"Don't like the style": "Ur ḥemmleɣ ara aɣanib",
+	"Done": "Immed",
+	"Download": "Zdem",
+	"Download as SVG": "SVG",
+	"Download canceled": "Ittwasefsex usider",
+	"Download Database": "Zdem-d tafa n isefka",
+	"Drag and drop a file to upload or select a file to view": "Zuɣer sakin ssers afaylu akken ad saliḍṭ neɣ ad fren afaylu akken ad twaliḍṭ",
+	"Draw": "Suneɣ",
+	"Drop any files here to upload": "Serreḥ i yifuyla da i usali n yifuyla",
+	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Tiyunin n wakud ameɣtu d 's', 'm', 'h'.",
+	"e.g. \"json\" or a JSON schema": "",
+	"e.g. 60": "",
+	"e.g. A filter to remove profanity from text": "e.g. Imzizdig akken ad yekkes tukksa n sser seg uḍris",
+	"e.g. en": "amedya kab",
+	"e.g. My Filter": "e.g",
+	"e.g. My Tools": "amedya ifecka-inu",
+	"e.g. my_filter": "amedya amsizdeg_iw",
+	"e.g. my_tools": "amedya ifecka_inu",
+	"e.g. pdf, docx, txt": "",
+	"e.g. Tools for performing various operations": "g. Ifecka i usexdem n tigawin yemgaraden",
+	"e.g., 3, 4, 5 (leave blank for default)": "e.g., 3, 4, 5 (iɣes n temtunt d ilem i tazwara)",
+	"e.g., audio/wav,audio/mpeg,video/* (leave blank for defaults)": "e.g., ameslaw/wav,audio/mpeg,video/* (aɣlif n yilem i yizarfan)",
+	"e.g., en-US,ja-JP (leave blank for auto-detect)": "e.g",
+	"e.g., westus (leave blank for eastus)": "lɣeṛb, lɣeṛb (iɣes n temtunt ) ilem i cceṛq",
+	"Edit": "Ẓreg",
+	"Edit Arena Model": "Edit Arena Model",
+	"Edit Channel": "Ẓreg abadu",
+	"Edit Connection": "",
+	"Edit Default Permissions": "Ẓreg inekcamen ineggura",
+	"Edit Folder": "Ẓreg akaram",
+	"Edit Memory": "Ẓreg takatut",
+	"Edit User": "Ẓreg aseqdac",
+	"Edit User Group": "Ẓreg",
+	"Edited": "Yettwaẓrag",
+	"Editing": "Asiẓreg",
+	"Eject": "Ḍeqqer-d",
+	"ElevenLabs": "Leḥdac",
+	"Email": "Imayl",
+	"Embark on adventures": "Abarek deg temseksal",
+	"Embedding": "",
+	"Embedding Batch Size": "Afmiḍi n Batch",
+	"Embedding Model": "Tamesmunt",
+	"Embedding Model Engine": "Asexdem n umutur n Model",
+	"Embedding model set to \"{{embedding_model}}\"": "Ammud n tmudemt yettwasbadun i \"{{embedding_model}}\"\"",
+	"Enable API Key": "Rmed tasarut API",
+	"Enable autocomplete generation for chat messages": "Rmed tasuta tawurmant tummidt i udiwenni iznan",
+	"Enable Code Execution": "Rmed aselkem n tengalt",
+	"Enable Code Interpreter": "Rmed Interpreter n tengalt",
+	"Enable Community Sharing": "Rmed askar n tmezdagnut",
+	"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.": "",
+	"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.": "Rmed Mapping (map) n usali n yisefka n tmudemt. Tifrat-a ad teǧǧ anagraw ad yesseqdec asigez n uḍebsi d asiɣzef n RAM s udawi n yifuyla n uḍebsi amzun deg RAM i llan. Aya yezmer ad yesnerni aswir n tmudemt s usireg n unekcum ɣer yisefka arurad ugar. D acu kan, yezmer lḥal ur yetteddu ara akken iwata s yinagrawen akk yernu yezmer ad yečč aṭas n tallunt n uḍebsi.",
+	"Enable Message Rating": "Rmed askar n yizen",
+	"Enable Mirostat sampling for controlling perplexity.": "Rmed askar n Mirostat akken ad tḥekmed deg lbaṭel.",
+	"Enable New Sign Ups": "Rmed azmul amaynut Kkret",
+	"Enabled": "D urmid",
+	"Endpoint URL": "",
+	"Enforce Temporary Chat": "Enforce temporanja Chat",
+	"Enhance": "Aḥezzeb",
+	"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Ssefqed afaylu-inek CSV deg-s 4 n tgejda deg uswir-a: Isem, Email, awal uffir, Role.",
+	"Enter {{role}} message here": "Sekcem izen n {{role}} dagi",
+	"Enter a detail about yourself for your LLMs to recall": "Ssekcem-d ttfaṣil ɣef yiman-nnek akken ad d-temmektid LLMs-nnek akken ad d-temmektid",
+	"Enter a title for the pending user info overlay. Leave empty for default.": "",
+	"Enter a watermark for the response. Leave empty for none.": "Sekcem ticreḍt n waman i tririt-nni. Eǧǧ ilem i wulac.",
+	"Enter api auth string (e.g. username:password)": "Sekcem azrir api auth (amedya. isem n useqdac:password)",
+	"Enter Application DN": "",
+	"Enter Application DN Password": "Sekcem awal uffir n usnas DN",
+	"Enter Bing Search V7 Endpoint": "Kcem ɣer Bing Search V7 Endpoint",
+	"Enter Bing Search V7 Subscription Key": "Ad kecmen ɣer tebdart n unadi V7 Tasarut",
+	"Enter Bocha Search API Key": "Sekcem API n unadi n Bocha Tasarut",
+	"Enter Brave Search API Key": "",
+	"Enter certificate path": "Sekcem abrid n uselkin",
+	"Enter CFG Scale (e.g. 7.0)": "Kcem ɣer CFG Scale (amedya 7.0)",
+	"Enter Chunk Overlap": "Adef ɣer Chunk Overlap",
+	"Enter Chunk Size": "Kcem ɣer Ceṛfa",
+	"Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Kcem ɣer tyugiwin \"token:bias_value\" i d-yezgan gar-asent (amedya: 5432:100, 413:-100)",
+	"Enter Config in JSON format": "Kcem ɣer Config s umasal JSON",
+	"Enter content for the pending user info overlay. Leave empty for default.": "Sekcem agbur n telɣut n useqdac yettwaṛjan. Eǧǧ ilem i tazwara.",
+	"Enter Datalab Marker API Base URL": "",
+	"Enter Datalab Marker API Key": "Sekcem API n isefkalab Marker Tasarut",
+	"Enter description": "",
+	"Enter Docling OCR Engine": "Kcem ɣer umsedday n OCR",
+	"Enter Docling OCR Language(s)": "Sekcem tutlayt(s) OCR",
+	"Enter Docling Server URL": "Sekcem tansa URL n uqeddac",
+	"Enter Document Intelligence Endpoint": "Sekcem agaz n tagara n yisemli",
+	"Enter Document Intelligence Key": "Kcem ɣer tsarut n wulli",
+	"Enter domains separated by commas (e.g., example.com,site.org)": "",
+	"Enter Exa API Key": "Kcem ɣer Exa Tasarut",
+	"Enter External Document Loader API Key": "",
+	"Enter External Document Loader URL": "Sekcem tansa URL n ukaram n isemli imeṛṛa",
+	"Enter External Web Loader API Key": "Sekcem API n isebtar web imeṛṛa Tasarut",
+	"Enter External Web Loader URL": "",
+	"Enter External Web Search API Key": "",
+	"Enter External Web Search URL": "Sekcem tansa URL n unadi ɣef Web tuffiɣt",
+	"Enter Firecrawl API Base URL": "Sekcem tansa URL n taffa n isefka API",
+	"Enter Firecrawl API Key": "Sekcem API n Firecrawl Tasarut",
+	"Enter folder name": "",
+	"Enter Github Raw URL": "Sekcem tansa URL tazegzawt n Github",
+	"Enter Google PSE API Key": "Sekcem tasarut API n Google PSE",
+	"Enter Google PSE Engine Id": "Sekcem Google PSE Engine Id",
+	"Enter Image Size (e.g. 512x512)": "Sekcem tugna Size (amedya 512x512)",
+	"Enter Jina API Key": "",
+	"Enter JSON config (e.g., {\"disable_links\": true})": "",
+	"Enter Jupyter Password": "Sekcem-d awal n uɛeddi n Jupyter",
+	"Enter Jupyter Token": "Kcem ɣer Jupyter Token",
+	"Enter Jupyter URL": "",
+	"Enter Kagi Search API Key": "Sekcem API n unadi n Kagi Tasarut",
+	"Enter Key Behavior": "Kcem ɣer tsarut Behavior",
+	"Enter language codes": "Sekcem-d tangalin n tutlayin",
+	"Enter Mistral API Key": "Enter Mistral API Tasarut",
+	"Enter Model ID": "Kcem ɣer ukaram",
+	"Enter model tag (e.g. {{modelTag}})": "Sekcem tabzimt n tmudemt (amedya. {{modelTag}})",
+	"Enter Mojeek Search API Key": "Sekcem Tasarut API n unadi n Mojeek",
+	"Enter name": "Sekcem-d isem",
+	"Enter New Password": "Sekcem-d awal n uɛeddi amaynut",
+	"Enter Number of Steps (e.g. 50)": "Sekcem uṭṭun n yisurifen (amedya 50)",
+	"Enter Perplexity API Key": "Sekcem API Tasarut",
+	"Enter Playwright Timeout": "Kcem ɣer Playwright Timeout",
+	"Enter Playwright WebSocket URL": "",
+	"Enter proxy URL (e.g. https://user:password@host:port)": "Sekcem URL apṛuksi (amedya. https://user:password@host:port)",
+	"Enter reasoning effort": "Kecmet asseɣẓen",
+	"Enter Sampler (e.g. Euler a)": "",
+	"Enter Scheduler (e.g. Karras)": "Kcem ɣer Scheduler (amedya. Karras)",
+	"Enter Score": "Kcem ɣer waggus",
+	"Enter SearchApi API Key": "Kcem Api Tasarut",
+	"Enter SearchApi Engine": "Kcem Api Engine",
+	"Enter Searxng Query URL": "Sekcem tansa URL n Searxng Query",
+	"Enter Seed": "",
+	"Enter SerpApi API Key": "Kcem ar Serp Tasarut API",
+	"Enter SerpApi Engine": "",
+	"Enter Serper API Key": "Sekcem API n uqeddac Tasarut",
+	"Enter Serply API Key": "Sekcem API Tasarut",
+	"Enter Serpstack API Key": "Sekcem API n Serpstack Tasarut",
+	"Enter server host": "Sekcem aqeddac",
+	"Enter server label": "Sekcem tabzimt n uqeddac",
+	"Enter server port": "Kcem ɣer usagen n uqeddac",
+	"Enter Sougou Search API sID": "Sekcem ihiugou Search APIsID",
+	"Enter Sougou Search API SK": "Sekcem ihiugou Search API SK",
+	"Enter stop sequence": "Kcem ad tḥebseḍ amseḍfer",
+	"Enter system prompt": "Sekcem anagraw",
+	"Enter system prompt here": "",
+	"Enter Tavily API Key": "Sekcem API Tavilyant Tasarut",
+	"Enter Tavily Extract Depth": "Kcem ɣer Tavilya",
+	"Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Sekcem tansa URL tazayezt n WebUI-inek. Tansa-a URL ad tettwaseqdec i usuffeɣ n iseɣwan deg ilɣa.",
+	"Enter the URL of the function to import": "Sekcem tansa URL n twuri akken ad tketreḍ",
+	"Enter the URL to import": "Sekcem tansa URL akken ad tketreḍ",
+	"Enter Tika Server URL": "Sekcem tansa URL n uqeddac Tika",
+	"Enter timeout in seconds": "Kcem ɣer wakud deg tsinin",
+	"Enter to Send": "Kecmemt",
+	"Enter Top K": "Kcem ɣer Top K",
+	"Enter Top K Reranker": "Kcem ɣer Top K Reranker",
+	"Enter URL (e.g. http://127.0.0.1:7860/)": "Sekcem tansa URL (amedya. http://127.0.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "Sekcem tansa URL (amedya. http://localhost:11434)",
+	"Enter Yacy Password": "Sekcem-d awal n uɛeddi n Yacy",
+	"Enter Yacy URL (e.g. http://yacy.example.com:8090)": "Sekcem tansa URL n Yacy (amedya. http://yacy.example.com:8090)",
+	"Enter Yacy Username": "Ssekcem isem n useqdac",
+	"Enter your current password": "Sekcem awal-ik·im n uɛeddi amiran",
+	"Enter Your Email": "Sekcem imayl-ik",
+	"Enter Your Full Name": "",
+	"Enter your message": "",
+	"Enter your name": "Sekcem isem-ik·im",
+	"Enter Your Name": "Ttxil-k·m sekcem isem-ik·im da",
+	"Enter your new password": "Sekcem awal-ik·im n uɛeddi amaynut",
+	"Enter Your Password": "Sekcem-d awal-ik·im n uɛeddi",
+	"Enter Your Role": "",
+	"Enter Your Username": "Sekcem isem-ik·im n useqdac",
+	"Enter your webhook URL": "Sekcem tansa URL-ik webhook",
+	"Error": "Tuccḍa",
+	"ERROR": "TUCCḌA",
+	"Error accessing Google Drive: {{error}}": "Tuccḍa Google Drive: {{error}}",
+	"Error accessing media devices.": "Tuccḍa deg unekcum ɣer yibenkan n yiẓeḍwa.",
+	"Error starting recording.": "Tuccḍa deg beddu n usekles.",
+	"Error unloading model: {{error}}": "Tuccḍa deg usali n tmudemt: {{error}}",
+	"Error uploading file: {{error}}": "Tuccḍa deg usali n ufaylu: {{error}}",
+	"Evaluations": "Armud",
+	"Everyone": "Yal yiwen",
+	"Exa API Key": "Tasarut n API",
+	"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Amedya: (&(objectClass=inetOrgPerson)(uid=%s))",
+	"Example: ALL": "Amedya: AKK",
+	"Example: mail": "Amedya: imayl",
+	"Example: ou=users,dc=foo,dc=example": "Amedya: ou=iseqdacen,dc=foo,dc=amedya",
+	"Example: sAMAccountName or uid or userPrincipalName": "Amedya: sAMAccountName neɣ umid neɣ aseqdacPrincipalNameameameame",
+	"Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "Ḍḍef-d amḍan n tesɣimin deg turagt-nnek. Ma ulac aɣilif, nnermes akken ad ternuḍ amḍan n yikersiyen.",
+	"Exclude": "Suffeɣ",
+	"Execute code for analysis": "",
+	"Executing **{{NAME}}**...": "Aselkem n **{{NAME}}**...",
+	"Expand": "Simɣur",
+	"Experimental": "Armitan",
+	"Explain": "Segzi",
+	"Explore the cosmos": "Sefru akusmus",
+	"Export": "Sifeḍ",
+	"Export All Archived Chats": "Kter akk Archived Chats",
+	"Export All Chats (All Users)": "",
+	"Export chat (.json)": "Kter-d awal",
+	"Export Chats": "Kter Chat",
+	"Export Config to JSON File": "",
+	"Export Functions": "Usagen",
+	"Export Models": "Kter Mudel",
+	"Export Presets": "Aheggi",
+	"Export Prompt Suggestions": "Sugget",
+	"Export Prompts": "Kter Prompt",
+	"Export to CSV": "Kter ɣer CSV",
+	"Export Tools": "Kter ifecka",
+	"Export Users": "",
+	"External": "Azɣaray",
+	"External Document Loader URL required.": "",
+	"External Task Model": "Tamkarḍit tuffiɣt",
+	"External Web Loader API Key": "API n isebtar web imeṛṛa Tasarut",
+	"External Web Loader URL": "Tansa URL tuffiɣt",
+	"External Web Search API Key": "API n unadi Tasarut",
+	"External Web Search URL": "Tansa URL n unadi",
+	"Fade Effect for Streaming Text": "",
+	"Failed to add file.": "",
+	"Failed to connect to {{URL}} OpenAPI tool server": "Ur yessaweḍ ara ad yeqqen ɣer uqeddac n uqeddac n uqeddac n yifecka OpenAPI",
+	"Failed to copy link": "Ur yessaweḍ ara ad yessukken aseɣwen",
+	"Failed to create API Key.": "Ur yessaweḍ ara ad d-yesnulfu tasarut API.",
+	"Failed to delete note": "Ur yessaweḍ ara ad yekkes tazmilt",
+	"Failed to extract content from the file: {{error}}": "Ur yessaweḍ ara ad d-yekkes agbur seg ufaylu: {{error}}",
+	"Failed to extract content from the file.": "Ur yessaweḍ ara ad d-yekkes agbur seg ufaylu-nni.",
+	"Failed to fetch models": "Ur ssawḍent ara ad d-awint timudmin tigennawin",
+	"Failed to generate title": "Ur yessaweḍ ara ad d-yawi azwel",
+	"Failed to load chat preview": "Ur yessaweḍ ara ad d-yessali taskant n udiwenni",
+	"Failed to load file content.": "Ur yessaweḍ ara ad d-yessali agbur n yifuyla.",
+	"Failed to read clipboard contents": "Ur yessaweḍ ara ad iɣer agbur n tfelwit",
+	"Failed to save connections": "",
+	"Failed to save models configuration": "Ur yessaweḍ ara ad d-yessukkes tamudemt n usneftaɣ",
+	"Failed to update settings": "Ur yessaweḍ ara ad ileqqem iɣewwaṛen",
+	"Failed to upload file.": "Ur yessaweḍ ara ad yali afaylu.",
+	"Features": "Timahilin",
+	"Features Permissions": "Timahilin n unekcum",
+	"February": "Fuṛar",
+	"Feedback Details": "Talqayt n usuddem",
+	"Feedback History": "Amezruy",
+	"Feedbacks": "Timuɣliwin",
+	"Feel free to add specific details": "Ur ttkukru ara ad ternuḍ ttfaṣil ulmisen",
+	"File": "Afaylu",
+	"File added successfully.": "Afaylu yerna akken iwata.",
+	"File content updated successfully.": "Agbur n ufaylu yettwaleqqem akken iwata.",
+	"File Mode": "Askar n ufaylu",
+	"File not found.": "Ulac afaylu.",
+	"File removed successfully.": "Ččar yekkes akken iwata.",
+	"File size should not exceed {{maxSize}} MB.": "Tiddi n ufaylu ur ilaq ara ad tεeddi nnig {{maxSize}} MB.",
+	"File Upload": "Tuzzna n ufaylu",
+	"File uploaded successfully": "Afaylu yuli akken iwata",
+	"Files": "Ifuyla",
+	"Filter": "Imsizdeg",
+	"Filter is now globally disabled": "Afaylu tura d ameɛdur amaḍalan",
+	"Filter is now globally enabled": "Afaylu yettwarmed deg umaḍal tura",
+	"Filters": "Imsizdigen",
+	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Tban-d tɣenǧawt n uskenjbir Ur yezmir yiwen ad yesseqdec inizjali d avatar. Ma nmuqel tugna n umaɣnu amezwer.",
+	"Firecrawl API Base URL": "Tansa URL n taffa n isefka",
+	"Firecrawl API Key": "API n Firecrawl Tasarut",
+	"Floating Quick Actions": "",
+	"Focus chat input": "Slummes",
+	"Folder deleted successfully": "Akaram yettwakkes akken iwata",
+	"Folder Name": "Isem n ukaram",
+	"Folder name cannot be empty.": "Isem n ukaram ur yezmir ara ad yili d ilem.",
+	"Folder name updated successfully": "Isem n ukaram yettwaleqqem akken iwata",
+	"Folder updated successfully": "Akaram yettwaleqqem akken iwata",
+	"Follow up": "Aḍfaṛ",
+	"Follow Up Generation": "",
+	"Follow Up Generation Prompt": "Ḍfer tiwtilin n tsuta",
+	"Follow-Up Auto-Generation": "Aḍfaṛ n usirew awurman",
+	"Followed instructions perfectly": "Ḍefret iwellihen iwatan",
+	"Force OCR": "Tirni Iɣallen Inemlayen",
+	"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.": "Force OCR deg yisebtar akk n PDF. Aya yezmer ad d-yeglu s yigmaḍ n diri ma tesεiḍ aḍris yelhan deg PDFs-ik. Imezwura ɣer False.",
+	"Forge new paths": "Eǧǧ iberdan imaynuten",
+	"Form": "Tiferkit",
+	"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:": "",
+	"Forwards system user session credentials to authenticate": "Tiɣimiyin n tɣimit n useqdac ɣer sdat i usesteb",
+	"Full Context Mode": "Askar n uḍris ummid",
+	"Function": "Tawuri",
+	"Function Calling": "Tiɣri n tsedhut",
+	"Function created successfully": "Tasɣent tennulfa-d akken iwata",
+	"Function deleted successfully": "Tasɣent tettwakkes akken iwata",
+	"Function Description": "Aglam n twuri",
+	"Function ID": "Asulay n twuri",
+	"Function imported successfully": "",
+	"Function is now globally disabled": "Imir-a, asedhu d ameɛdur deg umaḍal akk",
+	"Function is now globally enabled": "Imir-a, asedhu yettwarmed s wudem amaḍalan",
+	"Function Name": "Isem n twuri",
+	"Function updated successfully": "",
+	"Functions": "Tiwuriwin",
+	"Functions allow arbitrary code execution.": "Tisednan ttaǧǧant asselkem n tengalt tazurant.",
+	"Functions imported successfully": "Timussniwin i d-yettwaketren akken iwata",
+	"Gemini": "Gemini",
+	"Gemini API Config": "Amagbar n API Gemini",
+	"Gemini API Key is required.": "API Yessefk tsarut.",
+	"General": "Amatu",
+	"Generate": "Sirew",
+	"Generate an image": "Aru tugna",
+	"Generate Image": "Sirew-d tugna",
+	"Generate prompt pair": "",
+	"Generating search query": "Tuttra n unadi tagennant",
+	"Generating...": "Asirew…",
+	"Get information on {{name}} in the UI": "Awi-d tilɣa ɣef {{name}} deg UI",
+	"Get started": "Aha bdu tura",
+	"Get started with {{WEBUI_NAME}}": "Bdu s {{WEBUI_NAME}}",
+	"Global": "Amatu",
+	"Good Response": "Tiririt yelhan",
+	"Google Drive": "Google Drive",
+	"Google PSE API Key": "Tasarut API Google PSE",
+	"Google PSE Engine Id": "",
+	"Group created successfully": "Tagrawt tennulfa-d akken iwata",
+	"Group deleted successfully": "Agraw yettwakkes akken iwata",
+	"Group Description": "",
+	"Group Name": "Isem n ugraw",
+	"Group updated successfully": "Agraw",
+	"Groups": "Igrawen",
+	"H1": "H1",
+	"H2": "H2",
+	"H3": "H3",
+	"Haptic Feedback": "Haptic feedback",
+	"Hello, {{name}}": "Azul a {{name}}",
+	"Help": "Tallalt",
+	"Help us create the best community leaderboard by sharing your feedback history!": "",
+	"Hex Color": "Ini n usedamrawan",
+	"Hex Color - Leave empty for default color": "",
+	"Hide": "Seggelmes",
+	"Hide from Sidebar": "Ffer seg Sidebar",
+	"Hide Model": "Ffer tamudemt",
+	"High Contrast Mode": "Askar",
+	"Home": "Agejdan",
+	"Host": "Asneftaɣ",
+	"How can I help you today?": "Amek i zemreɣ ad k·kem-ɛiwneɣ ass-a?",
+	"How would you rate this response?": "Amek ara d-teskefleḍ tiririt-a?",
+	"HTML": "HTML",
+	"Hybrid Search": "Nadi",
+	"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.": "Steɛṛfeɣ belli ɣriɣ yerna fehmeɣ d acu i d ssebba n tigawt-iw. Ẓriɣ timijwin ay yeqqnen ɣer usenger n tengalt tazurant yernu sfeqdeɣ tinfulin n uɣbalu-nni.",
+	"ID": "Asulay",
+	"iframe Sandbox Allow Forms": "aframe Sandbox Allow Forms",
+	"iframe Sandbox Allow Same Origin": "frame Sandbox Allow Same Origin",
+	"Ignite curiosity": "Tawnafit",
+	"Image": "Tugna",
+	"Image Compression": "Aqmaḍ n tugniwin",
+	"Image Compression Height": "Tawaɣit n tugna",
+	"Image Compression Width": "Tawaɣit n tugna",
+	"Image Generation": "Asirew n tugniwin",
+	"Image Generation (Experimental)": "",
+	"Image Generation Engine": "",
+	"Image Max Compression Size": "Teɣzi n tugna Max Compression",
+	"Image Max Compression Size height": "Tugna Max Compression Teɣzi",
+	"Image Max Compression Size width": "Tugna Max Compression Teɣzi",
+	"Image Prompt Generation": "Tugna Prompt Generation",
+	"Image Prompt Generation Prompt": "Tugna Prompt Generation Prompt",
+	"Image Settings": "Iɣewwaṛen n usirew n tugniwin",
+	"Images": "Tugniwin",
+	"Import": "Kter",
+	"Import Chats": "Kter-d Chat",
+	"Import Config from JSON File": "Kter-d Config seg ufaylu JSON",
+	"Import From Link": "Kter seg useɣwen",
+	"Import Functions": "Kter isumar",
+	"Import Models": "",
+	"Import Notes": "",
+	"Import Presets": "Kter uqbel",
+	"Import Prompt Suggestions": "Kter Suggestions",
+	"Import Prompts": "Kter Prompt",
+	"Import Tools": "Kter Tools",
+	"Include": "Seddu",
+	"Include `--api-auth` flag when running stable-diffusion-webui": "",
+	"Include `--api` flag when running stable-diffusion-webui": "Seddu takbabt ''-api' mi ara tettazzaleḍ addaynin-webui",
+	"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive.": "Zzwer amek yettarra ulguritm s tɣawla i tikti seg uḍris-nni i d-yettlalen. Atigen n ulmad lqayen ad d-yeglu s yiswatiyen iεeṭṭlen ugar, ma d atug n ulmad εlayen ad yerr alguritm d win ara d-yerren ugar.",
+	"Info": "Talɣut",
+	"Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "",
+	"Input": "",
+	"Input commands": "Iweṣṣa",
+	"Input Variables": "Inekcam",
+	"Insert": "Ger",
+	"Insert Follow-Up Prompt to Input": "",
+	"Insert Prompt as Rich Text": "Sserset Prompt am uḍris Rich Aḍris",
+	"Install from Github URL": "Ssers tansa URL n Github",
+	"Instant Auto-Send After Voice Transcription": "Arfiq awurman ticki Voice Transcription",
+	"Integration": "Aseddu",
+	"Interface": "Agrudem",
+	"Invalid file content": "Agbur n ufaylu ameɣtu",
+	"Invalid file format.": "Amasal n ufaylu ameɣtu.",
+	"Invalid JSON file": "Afaylu JSON arameɣtu",
+	"Invalid JSON format in Additional Config": "",
+	"Invalid Tag": "Taga",
+	"is typing...": "yettaru…",
+	"Italic": "Uknan",
+	"January": "Yennayer",
+	"Jina API Key": "API n Jina Tasarut",
+	"join our Discord for help.": "nadi-d ɣef tallalt-nneɣ.",
+	"JSON": "JSON",
+	"JSON Preview": "Ajgu Taskant",
+	"July": "Yulyu",
+	"June": "Yunyu",
+	"Jupyter Auth": "Jupyter Auth",
+	"Jupyter URL": "Tansa URL",
+	"JWT Expiration": "Asnirem JWT",
+	"JWT Token": "JWT Token",
+	"Kagi Search API Key": "",
+	"Keep Follow-Up Prompts in Chat": "Kemmel tiwsatin n uḍfaṛ-Up deg Chat",
+	"Keep in Sidebar": "Kemmel deg Sidebar",
+	"Key": "Tasarutt",
+	"Keyboard shortcuts": "Inegzumen n unasiw",
+	"Knowledge": "Tamusni",
+	"Knowledge Access": "",
+	"Knowledge Base": "Taffa n tmusni",
+	"Knowledge created successfully.": "Tamussni tennulfa-d akken iwata.",
+	"Knowledge deleted successfully.": "Tamussni tettwakkes akken iwata.",
+	"Knowledge Public Sharing": "Tamussni tazayezt",
+	"Knowledge reset successfully.": "Tamussni tettεawad-d akken iwata.",
+	"Knowledge updated successfully": "",
+	"Kokoro.js (Browser)": "Kokoro.js",
+	"Kokoro.js Dtype": "Kokorojs. Anaw",
+	"Label": "Tabzimt",
+	"Landing Page Mode": "Askar n usebter",
+	"Language": "Tutlayt",
+	"Language Locales": "Iɣewwaren n usideg n tutlay",
+	"Last Active": "Armud aneggaru",
+	"Last Modified": "Asnifel angaru",
+	"Last reply": "Tiririt taneggarut",
+	"LDAP": "LDAP",
+	"LDAP server updated": "",
+	"Leaderboard": "Aselket",
+	"Learn More": "",
+	"Learn more about OpenAPI tool servers.": "Lmed ugar ɣef yiqeddacen n yifecka OpenAPI.",
+	"Leave empty for no compression": "Eǧǧ ilem war aḥezzeb",
+	"Leave empty for unlimited": "Eǧǧ ilem i war tilisa",
+	"Leave empty to include all models from \"{{url}}\" endpoint": "Eǧǧ ilem akken ad tesεuḍ akk timudmin seg wagaz n taggara n \"{url}}\"",
+	"Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "",
+	"Leave empty to include all models from \"{{url}}/models\" endpoint": "Eǧǧ ilem akken ad tesεuḍ akk timudmin seg wagaz n taggara n \"{url}}/models\"",
+	"Leave empty to include all models or select specific models": "Eǧǧ-it d ilem akken ad tesεuḍ akk timudmin neɣ ad tferneḍ timudmin tulmisin",
+	"Leave empty to use the default prompt, or enter a custom prompt": "Eǧǧ ilem akken ad tesqedceḍ tawelt-nni tamezwarut, neɣ ad tkecmeḍ ɣer tannumi s tɣawla n tannumi",
+	"Leave model field empty to use the default model.": "Eǧǧ iger n tmudemt d ilem i useqdec n tmudemt tamezwarut.",
+	"lexical": "",
+	"License": "Turagt",
+	"Lift List": "Umuɣ n tukerḍa",
+	"Light": "Aceɛlal",
+	"Listening...": "Yettmaḥsis…",
+	"Llama.cpp": "Llama.cpp",
+	"LLMs can make mistakes. Verify important information.": "LLMs zemren ad gen tuccḍiwin. Ssenqed tilɣa tixatarin.",
+	"Loader": "Loader",
+	"Loading Kokoro.js...": "Aêbbi n Kokoro.js…",
+	"Local": "Adigan",
+	"Local Task Model": "Tamdelt tadigant",
+	"Location access not allowed": "Anekcum ɣer tuddna",
+	"Lost": "Iruḥ",
+	"LTR": "LTR",
+	"Made by Open WebUI Community": "Texdem-it-id temɣiwant n Open WebUI",
+	"Make password visible in the user interface": "Sken-d awal n uɛeddi deg ugrudem n useqdac",
+	"Make sure to enclose them with": "Ur ttettu ara ad ten-tɣunzuḍ",
+	"Make sure to export a workflow.json file as API format from ComfyUI.": "Ur ttettumt ara ad tessiǧwemt aman n umahil. afaylu json d amasal API seg ComfyUI.",
+	"Manage": "Sefrek",
+	"Manage Direct Connections": "Sefrek tuqqna tusridt",
+	"Manage Models": "Sefrek timudmiwin",
+	"Manage Ollama": "Sefrek Ollama",
+	"Manage Ollama API Connections": "Sefrek tuqqna API Ollama",
+	"Manage OpenAI API Connections": "Sefrek tuqqna n API OpenAI",
+	"Manage Pipelines": "Manage Pipelines",
+	"Manage Tool Servers": "Sefrek iqeddacen n ifecka",
+	"March": "Meɣres",
+	"Markdown": "Markdown",
+	"Markdown (Header)": "Markdown",
+	"Max Speakers": "Max Speaker",
+	"Max Upload Count": "Amḍan n usali",
+	"Max Upload Size": "Azdam n Max",
+	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximum n 3 n tmudmin yezmer ad d-yettwasider seg-a ɣer da. Ttxil-k, ɛreḍ tikkelt niḍen ticki.",
+	"May": "Mayyu",
+	"Memories accessible by LLMs will be shown here.": "Da ara d-banent teḥkayin ara yaweḍ yiwen ɣer LLMs.",
+	"Memory": "Takatut",
+	"Memory added successfully": "Asaran yerna-d akken iwata",
+	"Memory cleared successfully": "",
+	"Memory deleted successfully": "Asaran yettwakkes akken iwata",
+	"Memory updated successfully": "",
+	"Merge Responses": "Tiririt igerrzen",
+	"Merged Response": "Tiririt tawurmant",
+	"Message rating should be enabled to use this feature": "A win yufan, tazmilt n yizen ad tettwasireg i useqdec n tmahilt-a",
+	"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Izen ara d-tazneḍ mi ara d-tesnulfuḍ aseɣwen-ik ur yettwabḍu ara. Iseqdacen yesɛan tansa URL ad izmiren ad walin adiwenni-nni yettwabḍan.",
+	"Microsoft OneDrive": "Microsoft OneDrive",
+	"Microsoft OneDrive (personal)": "Microsoft OneDrive",
+	"Microsoft OneDrive (work/school)": "Microsoft OneDrive",
+	"Mistral OCR": "Asaflaw",
+	"Mistral OCR API Key required.": "API Mistral OCR Tesri tasarut.",
+	"Model": "Tamudemt",
+	"Model '{{modelName}}' has been successfully downloaded.": "Yettwasider-d umudil '{modelName}}' akken iwata.",
+	"Model '{{modelTag}}' is already in queue for downloading.": "Mudel '{modelTag}}' ha-t-an yakan deg usuter n usader.",
+	"Model {{modelId}} not found": "Mudel Id}}",
+	"Model {{modelName}} is not vision capable": "Mudel Isem}} mačči d tamuɣli izemren ad tili",
+	"Model {{name}} is now {{status}}": "Mudel {{name}} tura {{status}}",
+	"Model {{name}} is now hidden": "Ammud {{name}} yeffer tura",
+	"Model {{name}} is now visible": "Mudel {{name}} iban tura",
+	"Model accepts file inputs": "Mudell iqebbel inekcamen n yifuyla",
+	"Model accepts image inputs": "Mudell iqebbel inekcamen n tugna",
+	"Model can execute code and perform calculations": "Mudell yezmer ad d-yesseḍru tangalt u ad yexdem leḥsabat",
+	"Model can generate images based on text prompts": "Ammud yezmer ad d-yawi tugniwin yebnan ɣef teɣratin n yiḍrisen",
+	"Model can search the web for information": "Mudell yezmer ad inadi deg web ɣef isallen",
+	"Model created successfully!": "Mudel yennulfa-d akken iwata!",
+	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Abrid n unagraw n wammud iban-d. Isem n umudil yettwasra i uleqqem, ur yezmir ara ad ikemmel.",
+	"Model Filtering": "Azdal",
+	"Model ID": "Asulay",
+	"Model ID is required.": "",
+	"Model IDs": "Isulayen n Model",
+	"Model Name": "Isem n tmudemt",
+	"Model Name is required.": "",
+	"Model not selected": "Ammud yettwafernen",
+	"Model Params": "Model Params",
+	"Model Permissions": "Amyaraw",
+	"Model unloaded successfully": "Amudil ur d-yuli ara akken iwata",
+	"Model updated successfully": "Mudel",
+	"Model(s) do not support file upload": "Mudd(s) ur ssefrak ara afaylu usali n ufaylu",
+	"Modelfile Content": "Agbur n Mudel",
+	"Models": "Timudmiwin",
+	"Models Access": "Muddel",
+	"Models configuration saved successfully": "Asneftaɣ n yimudam yettwaskelsen akken iwata",
+	"Models Public Sharing": "Muddel askar azayez",
+	"Mojeek Search API Key": "Nadi Meǧek Tasarut",
+	"more": "ugar",
+	"More": "Ugar",
+	"More Concise": "",
+	"More Options": "",
+	"Name": "Isem",
+	"Name your knowledge base": "Fket-d azadur-nwen n tmussni",
+	"Native": "Adigan",
+	"New Button": "",
+	"New Chat": "Asqerdec amaynut",
+	"New Folder": "Akaram amaynut",
+	"New Function": "Tawuri tamaynutt",
+	"New Note": "Tazmilt tamaynut",
+	"New Password": "Awal n uɛeddi amaynut",
+	"New Tool": "Afecku amaynut",
+	"new-channel": "abadu amaynut",
+	"Next message": "Izen",
+	"No chats found": "Ulac adiwenni",
+	"No chats found for this user.": "Ulac adiwenni i useqdac-a.",
+	"No chats found.": "Ulac adiwenni.",
+	"No content": "",
+	"No content found": "Ulac agbur",
+	"No content found in file.": "Ulac agbur yettwafen deg ufaylu.",
+	"No content to speak": "",
+	"No distance available": "Ulac ameccaq",
+	"No feedbacks found": "Ulac tasedmirt",
+	"No file selected": "Ulac afaylu i yettwafernen",
+	"No groups with access, add a group to grant access": "",
+	"No HTML, CSS, or JavaScript content found.": "Ulac agbur HTML, CSS neɣ JavaScript i d-yufraren.",
+	"No inference engine with management support found": "Ulac amsedday n usemḥissef s tallelt n usefrek i d-yufraren",
+	"No knowledge found": "",
+	"No memories to clear": "Ulac aktayen ibanen",
+	"No model IDs": "Ulac ulac d yiwen n usulay n tmudemt",
+	"No models found": "Ulac timudmin i d-yufraren",
+	"No models selected": "Ulac timudmin yettwafernen",
+	"No Notes": "",
+	"No results found": "Ulac igmaḍ yettwafen",
+	"No search query generated": "Ulac tuttra n unadi i d-yettawin",
+	"No source available": "Ulac aɣbalu",
+	"No users were found.": "Ulac iseqdacen.",
+	"No valves to update": "",
+	"None": "Ula d yiwen",
+	"Not factually correct": "",
+	"Not helpful": "Ur infiɛ ara",
+	"Note deleted successfully": "Tamawt tettwakkes akken iwata",
+	"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": "Tizmilin",
+	"Notification Sound": "Imesli n tilɣa",
+	"Notification Webhook": "Alɣu Webhook",
+	"Notifications": "Tilɣa",
+	"November": "Wambeṛ",
+	"OAuth ID": "Asulay",
+	"October": "Tubeṛ",
+	"Off": "Ur yermid ara",
+	"Okay, Let's Go!": "",
+	"OLED Dark": "Aẓerwal Aberkan",
+	"Ollama": "Ollama",
+	"Ollama API": "API Ollama",
+	"Ollama API settings updated": "Iɣewwaṛen API Ollama ttwaleqmen",
+	"Ollama Version": "",
+	"On": "Irmed",
+	"OneDrive": "OneDrive",
+	"Only active when \"Paste Large Text as File\" setting is toggled on.": "D urmid kan mi ara d-yili usbadu n \"Paste Great Text as File\".",
+	"Only active when the chat input is in focus and an LLM is generating a response.": "D urmid kan mi ara yerr udraw n udiwenni, ad d-yawi LLM tiririt.",
+	"Only alphanumeric characters and hyphens are allowed": "Ala iwudam ifenyanen d tfenṭazit i yettusirgen",
+	"Only alphanumeric characters and hyphens are allowed in the command string.": "Ala iwudam ifenyanen d tfendiwin i yettusirgen deg uzrar n ukman.",
+	"Only collections can be edited, create a new knowledge base to edit/add documents.": "Ala tigrummiwin i izemren ad ttwabeddlent, ad d-snulfunt azadur amaynut n tmussni i ubeddel/ad arraten.",
+	"Only markdown files are allowed": "Ala ifuyla n tuccar i yettusirgen",
+	"Only select users and groups with permission can access": "Fren kan iseqdacen akked trebbaɛ yesɛan ttesriḥ zemren ad kecmen ɣer",
+	"Oops! Looks like the URL is invalid. Please double-check and try again.": "Ayhuh! Yettban-d dakken URL-nni ur tṣeḥḥa ara. Ttxil-k, ssefqed snat n tikkal yernu ɛreḍ tikkelt niḍen.",
+	"Oops! There are files still uploading. Please wait for the upload to complete.": "",
+	"Oops! There was an error in the previous response.": "Ayhuh! Teḍra-d tuccḍa deg tririt-nni yezrin.",
+	"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Ayhuh! Aql-ik tesseqdaceḍ tarrayt ur yettwasefraken ara (mazwar kan). Ma ulac aɣilif, mudd-d WebUI seg uɛrur.",
+	"Open file": "Ldi Afaylu",
+	"Open in full screen": "Ldi deg ugdil aččuran",
+	"Open modal to configure connection": "Ldi askar akken ad teswel tuqqna",
+	"Open Modal To Manage Floating Quick Actions": "",
+	"Open new chat": "Ldi ameslay",
+	"Open Sidebar": "",
+	"Open User Profile Menu": "",
+	"Open WebUI can use tools provided by any OpenAPI server.": "Ldi WebUI yezmer ad yesseqdec ifecka i d-yefka yal aqeddac OpenAPI.",
+	"Open WebUI uses faster-whisper internally.": "Ldi WebUI yesseqdac s tɣawla sdaxel.",
+	"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Ldi WebUI yesseqdac aqeṣṣer n SpeechT5 akked CMU Arktik.",
+	"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Lqem WebUI yeldin (v{OPEN_WEBUI_VERSION}}) mačči d lqem ilaqen (v{REQUIRED_VERSION}})",
+	"OpenAI": "OpenAI",
+	"OpenAI API": "API OpenAI",
+	"OpenAI API Config": "Amagbar n API OpenAI",
+	"OpenAI API Key is required.": "Yessefk tasarut API OpenAI.",
+	"OpenAI API settings updated": "Iɣewwaṛen n API OpenAI",
+	"OpenAI URL/Key required.": "Ldi tansa URL/Key tesra.",
+	"openapi.json URL or Path": "",
+	"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.": "Ifranen i useddu n tmudemt tadigant s tutlayt n yiẓri deg uglam n tugna. Ikaramen mmalen-d tamudemt yettwasuddesen deg Udem n Hugging. Aparametr-a d win i d-yufraren gar-asen s tugna_description_api.",
+	"or": "neɣ",
+	"Ordered List": "Tabdart n usmizzwer",
+	"Organize your users": "Ssuddes iseqdacen-ik",
+	"Other": "Wayeḍ",
+	"OUTPUT": "TUFFƔA",
+	"Output format": "Amasal n tuffɣa",
+	"Output Format": "Amasal n tuffɣa",
+	"Overview": "Tamuɣli s umata",
+	"page": "asebter",
+	"Paginate": "Asugen",
+	"Parameters": "Isefranen",
+	"Password": "Awal n uɛeddi",
+	"Passwords do not match.": "",
+	"Paste Large Text as File": "Aḍris meqqren am ufaylu",
+	"PDF document (.pdf)": "Arrat PDF",
+	"PDF Extract Images (OCR)": "Tugniwin n ugemmay PDF",
+	"pending": "yettṛaǧu",
+	"Pending": "Yegguni",
+	"Pending User Overlay Content": "",
+	"Pending User Overlay Title": "Titre n useqdac nnig wakal",
+	"Permission denied when accessing media devices": "",
+	"Permission denied when accessing microphone": "Yettwagdel unekcum ɣer usawaḍ amikṛufun",
+	"Permission denied when accessing microphone: {{error}}": "Yettwagdel unekcum ɣer usawaḍ: {{error}}",
+	"Permissions": "Tisirag",
+	"Perplexity API Key": "API Tasarut",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "Targa n unadi deg uḍris",
+	"Personalization": "Aggan",
+	"Picture Description API Config": "Tawlaft n API",
+	"Picture Description Local Config": "Aglam Akunfig adigan",
+	"Picture Description Mode": "",
+	"Pin": "Senṭeḍ",
+	"Pinned": "Yettwasenteḍ",
+	"Pioneer insights": "Pioneer",
+	"Pipe": "Pipe",
+	"Pipeline deleted successfully": "Aselkin yettwakkes akken iwata",
+	"Pipeline downloaded successfully": "Izirig n Pipeline yezdem-d akken iwata",
+	"Pipelines": "Tiqesrayin",
+	"Pipelines Not Detected": "Tiqesrayin ur ggtent ara",
+	"Pipelines Valves": "Tiddi",
+	"Plain text (.md)": "Aḍris azaɣar",
+	"Plain text (.txt)": "Aḍris azaɣar",
+	"Playground": "Tazart",
+	"Playwright Timeout (ms)": "Timeout n wurar",
+	"Playwright WebSocket URL": "",
+	"Please carefully review the following warnings:": "",
+	"Please do not close the settings page while loading the model.": "Ttxil-k, ur meddel ara asebter n yiɣewwaren mi ara tεebbiḍ tamudemt.",
+	"Please enter a prompt": "Ttxil-k, kcem s tɣawla",
+	"Please enter a valid path": "Ttxil-k, sekcem abrid iṣeḥḥan",
+	"Please enter a valid URL": "Ma ulac aɣilif, sekcem URL ameɣtu",
+	"Please fill in all fields.": "Ččaṛet akk igran, ma ulac aɣilif.",
+	"Please select a model first.": "Ttxil-k·m, fren tamudemt di tazwara.",
+	"Please select a model.": "Ttxil-k, fren tamudemt.",
+	"Please select a reason": "Ma ulac aɣilif ini-d acuɣeṛ",
+	"Please wait until all files are uploaded.": "",
+	"Port": "Tawwurt",
+	"Positive attitude": "Addud amaruz",
+	"Prefix ID": "Asulay",
+	"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Asulay n uzwir yettusexdem i wakken ur d-yettili ara umennuɣ akked tuqqna-nniḍen s tmerna n usewgelhen i yimuhal n tmudemt - eǧǧ-iten d ilmawen i tukksa n tuqqna",
+	"Prevent file creation": "Snulfu-d asnulfu",
+	"Preview": "Taskant",
+	"Previous 30 days": "30 n wussan",
+	"Previous 7 days": "7 n wussan",
+	"Previous message": "Izen",
+	"Private": "Uslig",
+	"Profile Image": "Tugna n umaɣnu",
+	"Prompt": "Aneftaɣ",
+	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (amedya. Ini-yi-d ayen yessedhawen ɣef Temnekda Tarumanit)",
+	"Prompt Autocompletion": "Asesfer awurman",
+	"Prompt Content": "Agbur",
+	"Prompt created successfully": "Prompt yettwaxelq-d akken iwata",
+	"Prompt suggestions": "Isumar",
+	"Prompt updated successfully": "",
+	"Prompts": "Lewɛadi",
+	"Prompts Access": "Adaf ɣer",
+	"Prompts Public Sharing": "",
+	"Public": "Azayaz",
+	"Pull \"{{searchValue}}\" from Ollama.com": "Pull \"{{searchValue}}\" seg Ollama.com",
+	"Pull a model from Ollama.com": "Eg-d tamudemt sɣur Ollama.com",
+	"Query Generation Prompt": "Tasuta n Tkurmut",
+	"Quick Actions": "",
+	"RAG Template": "",
+	"Rating": "Aktizel",
+	"Re-rank models by topic similarity": "Imudam i d-yettuɣalen ɣer sdat s usentel yecban wa",
+	"Read": "Ɣeṛ",
+	"Read Aloud": "Ɣeṛ-it-id s taɣect εlayen",
+	"Reason": "",
+	"Reasoning Effort": "Aseɣẓen",
+	"Record": "Akalas",
+	"Record voice": "Sekles",
+	"Redirecting you to Open WebUI 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.": "Ur d-igellu ara s urkad akken ad d-yawi yiwen tilufa. Azal εlayen (amedya 100) ad d-yefk ugar n tririyin yemgaraden, ma d azal n wadda (amedya 10) ad yili d amagaẓ ugar.",
+	"Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Err iman-ik d \"Aseqdac\" (amedya, \"Aseqdac ilemmed taspenyulit\")",
+	"References from": "Timahilin",
+	"Refused when it shouldn't have": "Yeεreq-as lḥal mi akken ur ilaq ara ad",
+	"Regenerate": "Sarew",
+	"Regenerate Menu": "",
+	"Reindex": "Reindex",
+	"Reindex Knowledge Base Vectors": "Tamusni Izegza",
+	"Release Notes": "Tilɣa n lqem",
+	"Releases": "Ileqman",
+	"Relevance": "Tiseddi",
+	"Relevance Threshold": "Amsawen",
+	"Remember Dismissal": "",
+	"Remove": "Kkes",
+	"Remove {{MODELID}} from list.": "Kkes {{MODELID}} seg wumuɣ.",
+	"Remove file": "Kkes afaylu",
+	"Remove File": "Kkes afaylu",
+	"Remove image": "Kkes tugna",
+	"Remove Model": "Kkes",
+	"Remove this tag from list": "Kkes tabzimt-a seg wumuɣ",
+	"Rename": "Snifel isem",
+	"Reorder Models": "Asenker n yimudam",
+	"Reply in Thread": "Ndem deg Thread",
+	"Reranking Engine": "Asenker n Engine",
+	"Reranking Model": "Asenker n tmudemt",
+	"Reset": "Ales",
+	"Reset All Models": "Ales-d akk timudmin",
+	"Reset Upload Directory": "Ales asenker n ukaram",
+	"Reset Vector Storage/Knowledge": "Senset askar n Vector/Knowledge",
+	"Reset view": "",
+	"Response": "Tiririt",
+	"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Ilɣa n tririt ur zmiren ara ad ttwasremden imi ugin ttesriḥat n usmel web. Ttxil-k, rzu ɣef yiɣewwaren-ik n yiminig akken ad tkecmeḍ ɣer wayen ilaqen.",
+	"Response splitting": "Tiririt",
+	"Response Watermark": "Tamawt n waman",
+	"Result": "Agmuḍ",
+	"Retrieval": "Aɛiwed n tmuɣli",
+	"Retrieval Query Generation": "Tasuta n Query",
+	"Rich Text Input for Chat": "Aḍris anesbaɣur",
+	"RK": "RREM",
+	"Role": "Tamlilt",
+	"Rosé Pine": "Rosé Pine",
+	"Rosé Pine Dawn": "Rosé Pine Dawn",
+	"RTL": "RTL",
+	"Run": "Selkem",
+	"Running": "Aselkem",
+	"Save": "Sekles",
+	"Save & Create": "Sekles",
+	"Save & Update": "Sekles",
+	"Save As Copy": "",
+	"Save Tag": "Sekles tabzimt",
+	"Saved": "Yettwasekles",
+	"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": "Abeddel n Branch",
+	"Search": "Nadi",
+	"Search a model": "Nadi tamudemt",
+	"Search Base": "Nadi",
+	"Search Chats": "Nadi Chat",
+	"Search Collection": "Nadi",
+	"Search Filters": "",
+	"search for archived chats": "",
+	"search for folders": "",
+	"search for pinned chats": "",
+	"search for shared chats": "",
+	"search for tags": "nadi",
+	"Search Functions": "Tiwwura n unadi",
+	"Search In Models": "",
+	"Search Knowledge": "Nadi",
+	"Search Models": "Nadi timudmin",
+	"Search Notes": "Nadi",
+	"Search options": "Iwellihen n unadi",
+	"Search Prompts": "Nadi Prompt",
+	"Search Result Count": "Nadi agmam",
+	"Search the internet": "Nadi deg Internet",
+	"Search Tools": "Nadi ifecka",
+	"SearchApi API Key": "Tasarut n tsarut API n unadi",
+	"SearchApi Engine": "NadiApi Engine",
+	"Searched {{count}} sites": "Inuda ɣef {{count}} n yismal web",
+	"Searching \"{{searchQuery}}\"": "Anadi n \"{{searchQuery}}\"",
+	"Searching Knowledge for \"{{searchQuery}}\"": "Anadi n tmussni ɣef \"{{searchQuery}}\"",
+	"Searching the web...": "Anadi deg web...",
+	"Searxng Query URL": "",
+	"See readme.md for instructions": "Ẓer taɣuṛi i lewṣaya",
+	"See what's new": "Wali d acu i yellan d amaynut",
+	"Seed": "Zzerriɛa",
+	"Select a base model": "Fren tamudemt azadur",
+	"Select a conversation to preview": "Fren adiwenni i teskant",
+	"Select a engine": "Fren amsedday",
+	"Select a function": "Fren tawuri",
+	"Select a group": "Fren agraw",
+	"Select a model": "Fren tamudemt",
+	"Select a pipeline": "Fren tajeɛbubt",
+	"Select a pipeline url": "Fren iccer n tjewaqt",
+	"Select a tool": "Fren afecku",
+	"Select an auth method": "Fren tarrayt n diri",
+	"Select an Ollama instance": "Fren amedya Ollama",
+	"Select Engine": "Fren",
+	"Select Knowledge": "Fren tamusni",
+	"Select only one model to call": "",
+	"Selected model(s) do not support image inputs": "Ammud(s) yettwafernen ur yessefrak ara inekcamen n tugniwin yettwafernen",
+	"semantic": "",
+	"Semantic distance to query": "Ameccaq arnafsan",
+	"Send": "Tuzna",
+	"Send a Message": "Azen izen",
+	"Send message": "Azen izen",
+	"Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "",
+	"September": "Ctembeṛ",
+	"SerpApi API Key": "Tasarut n tsarut API SerpApi",
+	"SerpApi Engine": "",
+	"Serper API Key": "API Tasarut",
+	"Serply API Key": "API Tasarut",
+	"Serpstack API Key": "API Serpstack Tasarut",
+	"Server connection verified": "",
+	"Set as default": "Sbadu d amezwer",
+	"Set CFG Scale": "Sbadu CFG Scale",
+	"Set Default Model": "Sbadu tamudemt tamegdayt",
+	"Set embedding model": "Sbadu tamudemt",
+	"Set embedding model (e.g. {{model}})": "Sbadu tamudemt (amedya. {{model}})",
+	"Set Image Size": "Sbadu tiddi n tugna",
+	"Set reranking model (e.g. {{model}})": "Sbadu tamudemt n usenker (amedya. {{model}})",
+	"Set Sampler": "Sbadu asampler",
+	"Set Scheduler": "Sbadu ahil",
+	"Set Steps": "Heggit isurifen",
+	"Set the number of layers, which will be off-loaded to GPU. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "",
+	"Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "Sbadu amḍan n tnelli n yixeddamen yettwasqedcen i umṣada. Tifrat-a teḥkem acḥal n tnelli i yennumen ttḥerriken issutren i d-iteddun akka tura. Asenqes n wazal-a yezmer ad yesnerni aswir deg usali n yisali n umahil n uḥezzeb meqqren maca yezmer daɣen ad yečč ugar n teɣbula CPU.",
+	"Set Voice": "Taɣect",
+	"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.": "Sbeddet-d abidyu d ubṛik i d-ibanen xersum yiwet n tikelt. Azal εlayen (amedya, 1.5) ad iεawed ad iεawed ad iεawed ad iεeddi s lǧehd, ma d azal n wadda (amedya, 0.9) ad yili d win yettεeddin ugar. Ɣef 0, d ameɛdur.",
+	"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.": "Sbeddet-d abidyu i d-yekkan mgal iqenṭaren akken ad ten-ssengaren, yebnan ɣef wacḥal d abrid i d-banen. Azal εlayen (amedya, 1.5) ad iεawed ad iεawed ad iεawed ad iεeddi s lǧehd, ma d azal n wadda (amedya, 0.9) ad yili d win yettεeddin ugar. Ɣef 0, d ameɛdur.",
+	"Sets how far back for the model to look back to prevent repetition.": "Sbaεed ɣef tmudemt akken ad tεawed ad tεawed tamuɣli akken ur d-tettεawad ara.",
+	"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.": "Sbadu zzerriεa-nni n wuṭṭun agacuran i useqdec i tsuta. Eǧǧ aya ɣer wuṭṭun ibanen ad d-yawi tamudemt yiwen n uḍris i yiwet n tɣawla.",
+	"Sets the size of the context window used to generate the next token.": "Sbadu tiddi n tzewwut tasatalant yellan zik tetteg-d asken ay d-yetteddun.",
+	"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.": "Sbadu tiseddarin n uḥbas i useqdec. Mi ara d-temlil temɛawdit-a, LLM ad teḥbes asegrew n uḍris d tuɣalin. Timɛayin n uḥbas yeggten zemrent ad ttwasbeddent s usbadu n waṭas n yizamulen n uḥbas yemgaraden deg tmudemt.",
+	"Settings": "Iɣewwaren",
+	"Settings saved successfully!": "Iɣewwaṛen ttwasellken akken iwata!",
+	"Share": "Bleg",
+	"Share Chat": "Bḍu",
+	"Share to Open WebUI Community": "Bḍu i tkebbanit WebUI yeldin",
+	"Sharing Permissions": "Asenɣes n unekcum",
+	"Shortcuts with an asterisk (*) are situational and only active under specific conditions.": "Inegzumen yesɛan asterisk (*) d tagnit yerna d urmiden kan deg tegnatin tulmisin.",
+	"Show": "Sken-d",
+	"Show \"What's New\" modal on login": "Sken-d \"D acu i d askar amaynut\" deg uɣmis",
+	"Show Admin Details in Account Pending Overlay": "",
+	"Show All": "Sken-iten-id akk",
+	"Show Formatting Toolbar": "",
+	"Show image preview": "Sken tugna",
+	"Show Less": "Sken-d drus",
+	"Show Model": "Mudd",
+	"Show shortcuts": "Sken-d inegzumen",
+	"Show your support!": "",
+	"Showcased creativity": "Asnulfu",
+	"Sign in": "Qqen",
+	"Sign in to {{WEBUI_NAME}}": "Kcem ɣer {{WEBUI_NAME}}",
+	"Sign in to {{WEBUI_NAME}} with LDAP": "Qqen ɣer {{WEBUI_NAME}} s LDAP",
+	"Sign Out": "Senser tuqqna",
+	"Sign up": "Jerred",
+	"Sign up to {{WEBUI_NAME}}": "Jerred ɣer {{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}}": "Azmul ɣer {{WEBUI_NAME}}",
+	"Sink List": "Umuɣ n Sink",
+	"sk-1234": "sk-1234",
+	"Skip Cache": "Skip Cache",
+	"Skip the cache and re-run the inference. Defaults to False.": "Seqcer aṭaksi-nni, tɛawdeḍ-as assefreg. Imezwura ɣer False.",
+	"Sougou Search API sID": "Suugou Search APIsID",
+	"Sougou Search API SK": "Suugou Nadi APISK",
+	"Source": "Aɣbalu",
+	"Speech Playback Speed": "",
+	"Speech recognition error: {{error}}": "Tuccḍa n uɛqal n wawal: {{error}}",
+	"Speech-to-Text": "Aḍris-ar-Taɣect",
+	"Speech-to-Text Engine": "Ajenyuṛ n ujenyuṛ n Speech-to-Text",
+	"Stop": "Seḥbes",
+	"Stop Generating": "Beṛka ur ssemɣar ara",
+	"Stop Sequence": "",
+	"Stream Chat Response": "",
+	"Stream Delta Chunk Size": "",
+	"Strikethrough": "Yettujerreḍ",
+	"Strip Existing OCR": "Azawag n ifecka",
+	"Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.": "Sfeḍ aḍris OCR yellan yakan seg PDF akked OCR i d-yettuɣalen. Ur ttettu ara ma yella Force OCR tettwarmed. Imezwura ɣer False.",
+	"STT Model": "Tanzagt Mudel",
+	"STT Settings": "Tanzagt Iɣewwaṛen",
+	"Stylized PDF Export": "Sylized PDF Kter",
+	"Subtitle (e.g. about the Roman Empire)": "Addad amaruz (amedya ɣef tgelda Tarumanit)",
+	"Success": "Yedda",
+	"Successfully updated.": "Yettwaleqqem akken iwata.",
+	"Suggest a change": "",
+	"Suggested": "Yettwasumer",
+	"Support": "Tallelt",
+	"Support this plugin:": "Ɛiwen asiɣzef-a:",
+	"Supported MIME Types": "MIME iεawen Anaw",
+	"Sync directory": "Akaram Sync",
+	"System": "Anagraw",
+	"System Instructions": "Anagraw n uselmed",
+	"System Prompt": "Anagraw n wammud",
+	"Tags": "Tibzimin",
+	"Tags Generation": "Asirew n tebzimin",
+	"Tags Generation Prompt": "Tasuta n Tagsa",
+	"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ḍfas ilelli n tseḍḍa sseqdacen-t i ussenqes n tusurt n yiqenṭaren ur yezmiren ara ad d-ffɣen seg tuffɣa. Azal εlayen (amedya, 2.0) ad yessenqes tusurt ugar, ma d azal n 1.0 ad yessenqes asbadu-a.",
+	"Talk to model": "Mmeslay i tmudemt",
+	"Tap to interrupt": "",
+	"Task List": "Umuɣ",
+	"Task Model": "Mudd",
+	"Tasks": "Tiwuriwin",
+	"Tavily API Key": "API Tasarut",
+	"Tavily Extract Depth": "",
+	"Tell us more:": "Ini-aɣ-d ugar:",
+	"Temperature": "Tazɣelt",
+	"Temporary Chat": "",
+	"Text Splitter": "Aḍris",
+	"Text-to-Speech": "Aḍris-ɣer-taɣect",
+	"Text-to-Speech Engine": "Ajenyuṛ n tirawt",
+	"Thanks for your feedback!": "Tanemmirt ɣef tikti-inek·inem!",
+	"The Application Account DN you bind with for search": "",
+	"The base to search for users": "Azadur n unadi ɣef yiseqdacen",
+	"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.": "Tiddi n tbatrit tesskanay-d acḥal n yissutren n yiḍrisen ay yettwasesferen ddukkli imir-a. Tiddi n tbaṭrit εlayen tezmer ad ternu aswir d tazzla n tmudemt, maca teḥwaǧ daɣen ugar n tkatut.",
+	"The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Ineflayen yellan deffir ufurek-a d iwaziwen yerrumsan seg tmetti. Ma tufiḍ afurek-a iεawen, ttxil-k err ddehn-ik ɣer usnerni-s.",
+	"The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "",
+	"The format to return a response in. Format can be json or a JSON schema.": "Amasal akken ad d-yerr yiwen tiririt. Format tezmer ad tili d tafunast neɣ d taskimit n JSON.",
+	"The height in pixels to compress images to. Leave empty for no compression.": "Tiddi n yipiksilen akken ad ssedhun tugniwin. Eǧǧ ilem war aḥezzeb.",
+	"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.": "Imyerr LDAP i d-ttawint tgertilin ɣer tebratin i sseqdacen yiseqdacen akken ad zemlen.",
+	"The LDAP attribute that maps to the username that users use to sign in.": "Imyerr LDAP i d-yeqqaren tikarḍiwin i yisem n useqdac i sseqdacen yiseqdacen akken ad zemlen.",
+	"The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "Tafelwit n uɣella attan akka tura deg beta, dɣa nezmer ad neswati leḥsabat n ṭṭubba akken ara nessinef alguritm.",
+	"The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "Tiddi n ufaylu afellay deg MB. Ma yella teɣzi n ufaylu tɛedda i talast-a, afaylu ur yettali ara.",
+	"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.": "Amḍan afellay n yifuyla i izemren ad ttwasqedcen ɣef tikkelt deg umeslay. Ma yella amḍan n yifuyla iεedda i talast-a, ifuyla ur ttalin ara.",
+	"The output format for the text. Can be 'json', 'markdown', or 'html'. Defaults to 'markdown'.": "Amasal n tuffɣa i uḍris. Tzemreḍ ad tiliḍ d 'json', d 'markdown' neɣ d 'html'. Imezwura ɣer 'markdown'.",
+	"The score should be a value between 0.0 (0%) and 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.": "Taẓɣelt n tmudemt. Asenqes n teẓɣelt ad yerr tamudemt d tiririt s tesɣent ugar.",
+	"The Weight of BM25 Hybrid Search. 0 more lexical, 1 more semantic. Default 0.5": "",
+	"The width in pixels to compress images to. Leave empty for no compression.": "Taɣessa deg yipiksilen akken ad tessedhu tugniwin. Eǧǧ ilem war aḥezzeb.",
+	"Theme": "Asentel",
+	"Thinking...": "Ttxemmimeɣ…",
+	"This action cannot be undone. Do you wish to continue?": "Tigawt-a ur tettwakkes ara. Tebɣiḍ ad tkemmleḍ?",
+	"This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "Abadu-a yettwasnulaf-d deg {{created} Ɣef}}. D ta i d tazwara maḍi n ubadu {{channelName}}.",
+	"This chat won't appear in history and your messages will not be saved.": "Aqeṣṣer-a ur d-yettban deg umezruy yerna iznan-nnek ur ttwaselkamen.",
+	"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "D ayen ara yeǧǧen adiwenni-inek s wazal-is ad yettwasellek s tɣellist deg taffa n yisefka-inek n deffir. Tanemmirt!",
+	"This feature is experimental and may be modified or discontinued without notice.": "Tamahilt-a d tirmitant yerna tezmer ad tettwabeddel neɣ ad teḥbes war tamawt.",
+	"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Ta d taɣawsa tirmitant, yezmer lḥal ur tleḥḥu ara akken i tt-ttrajun, dɣa d asentel n ubeddel melmi tebɣiḍ.",
+	"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)": "Tifrat-a teḥkem acḥal ara teqqim tmudemt tettεebbi-d deg tektawt i d-iḍefren asuter (aseggas: 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.": "",
+	"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.": "Tifrat-a ad teǧǧ neɣ ad tessenqes aseqdec n tmahilt n usseɣẓen deg Ollama, ayen yettaǧǧan tamudemt ad txemmem uqbel ad d-tawi tiririt. Ma yessaweḍ yiwen, tamudemt tezmer ad teṭṭef cwiṭ n wakud akken ad tseddu asatal n umeslay u ad d-tawi tiririt yettxemmimen ugar.",
+	"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.": "Tifrat-a d tin i d-yettaken amḍan afellay n tfednin i tmudemt yezmer ad d-yawi s tririt-is. Asenqes n talast-a d win yettaǧǧan tamudemt ad d-tefk ugar n tririyin, maca yezmer daɣen ad yesnerni ayen i d-yettlalen seg ugbur ur nemεin neɣ ur nesεi azal.",
+	"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Tifrat-a ad tesfeḍ akk ifuyla yellan deg telkensit u ad ten-tbeddel s yifuyla i d-yettwasulin d imaynuten.",
+	"This response was generated by \"{{model}}\"": "Tiririt-a teslal-itt-id \"{model}}\"",
+	"This will delete": "Aya ad yekkes",
+	"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Aya ad yekkes <strong>{NAME}}</strong> akked <strong> akk ayen yellan deg-s</strong>.",
+	"This will delete all models including custom models": "Aya ad yekkes akk timudmin yellan gar-asent timudmin n tannumi",
+	"This will delete all models including custom models and cannot be undone.": "Aya ad yekkes akk timudmin gar-asent timudmin tudmawanin yerna ur yezmir yiwen ad tent-id-yerr.",
+	"This will reset the knowledge base and sync all files. Do you wish to continue?": "Aya ad iεawed ad ibeddel taffa n tmussni u ad yemtawi akk ifuyla. Tebɣiḍ ad tkemmleḍ?",
+	"Thorough explanation": "Asegzi",
+	"Thought for {{DURATION}}": "Axemmem i {{DURATION}}",
+	"Thought for {{DURATION}} seconds": "Axemmem ɣef {{DURATION}} n tsinin",
+	"Thought for less than a second": "",
+	"Tika": "Tika",
+	"Tika Server URL required.": "Tansa URL n Tika Server tettwasra.",
+	"Tiktoken": "Tiktoken",
+	"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tip: Leqqem aṭas n yidrimen n umutti yal wa s usiti ɣef tsarut n yiccer deg udraw n udiwenni deffir yal asemselsi.",
+	"Title": "Azwel",
+	"Title (e.g. Tell me a fun fact)": "Azwel (amedya. Ini-yi-d ayen yessedhayen)",
+	"Title Auto-Generation": "Asirew awurman n izwilen",
+	"Title cannot be an empty string.": "Azwel ur yettili ara d azrir ilem.",
+	"Title Generation": "Asirew n uzwel",
+	"Title Generation Prompt": "Tasuta",
+	"TLS": "TLS",
+	"To access the available model names for downloading,": "",
+	"To access the GGUF models available for downloading,": "Akken ad tkecmeḍ ɣer tmudmin GGUF yellan i usader,",
+	"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Akken ad tkecmeḍ ɣer WebUI, ttxil-k, nermes anedbal. Imedminen zemren ad sselḥun addaden n useqdac seg ugalis Admin.",
+	"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Akken ad qqnen azadur n tmussni da, rnu-ten ɣer tallunt n umahil \"Knowledge\" d tamezwarut.",
+	"To learn more about available endpoints, visit our documentation.": "Akken ad tissineḍ ugar ɣef wagazen n taggara yellan, rzu ɣer warrat-nneɣ.",
+	"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.": "Akken ad tḥerzeḍ tudert-ik tabaḍnit, ala ṭṭubbat, isulayen n tmudemt, tibzimin, akked metadata ttwabḍant ɣef tikti-k — iɣmisen-ik n udiwenni qqimen d usligen, ur d-ddan ara.",
+	"To select actions here, add them to the \"Functions\" workspace first.": "Akken ad tferneḍ tigawin da, rnu-tent ɣer tallunt n umahil \"Tiwwura\".",
+	"To select filters here, add them to the \"Functions\" workspace first.": "Akken ad tferneḍ imzizdigen da, rnu-ten ɣer tallunt n umahil \"Tiwsatin\" d tamezwarut.",
+	"To select toolkits here, add them to the \"Tools\" workspace first.": "",
+	"Toast notifications for new updates": "Ssurfet ilɣa i yileqman imaynuten",
+	"Today": "Ass-a",
+	"Toggle search": "Ldi/Ffer anadi",
+	"Toggle settings": "Sken/Fneẓ iɣewwaren",
+	"Toggle sidebar": "Ldi/Mdel afeggag adisan",
+	"Toggle whether current connection is active.": "Sken ma yella tuqqna tamirant d turmidt.",
+	"Token": "Ajiṭun",
+	"Too verbose": "Awtem",
+	"Tool created successfully": "",
+	"Tool deleted successfully": "Tool yettwakkes akken iwata",
+	"Tool Description": "Aglam",
+	"Tool ID": "",
+	"Tool imported successfully": "Tool yettwaket-d akken iwata",
+	"Tool Name": "Isem n ufecku",
+	"Tool Servers": "Iqeddacen n ifecka",
+	"Tool updated successfully": "Tool yettwaleqqem akken iwata",
+	"Tools": "Ifecka",
+	"Tools Access": "Ifecka n unekcum",
+	"Tools are a function calling system with arbitrary code execution": "",
+	"Tools Function Calling Prompt": "Asfuɣel n tsedmirt Tiɣri i Prompt",
+	"Tools have a function calling system that allows arbitrary code execution.": "Ifecka lan anagraw n teɣra n twuri yettaǧǧan asselkem n tengalt tazurant.",
+	"Tools Public Sharing": "Tools Public Sharing",
+	"Top K": "Top K",
+	"Top K Reranker": "Top K Reranker",
+	"Transformers": "Transformers",
+	"Trouble accessing Ollama?": "Adaf ɣer Ollama?",
+	"Trust Proxy Environment": "Taflest deg twennaḍt n Proxy",
+	"Try Again": "",
+	"TTS Model": "Tamudemt TTS",
+	"TTS Settings": "Iɣewwaṛen n TTS",
+	"TTS Voice": "Ticraḍ Taɣect",
+	"Type": "Anaw",
+	"Type Hugging Face Resolve (Download) URL": "Anaw n usefres n wudem amezwer (Download) URL",
+	"Uh-oh! There was an issue with the response.": "",
+	"UI": "Agrudem n useqdac",
+	"Unarchive All": "Tirga",
+	"Unarchive All Archived Chats": "Kkes akk Archived Chats",
+	"Unarchive Chat": "Chat",
+	"Underline": "Aderrer",
+	"Unloads {{FROM_NOW}}": "Sali {{FROM_NOW}}",
+	"Unlock mysteries": "Ldi idrugen",
+	"Unpin": "Kkes asenteḍ",
+	"Unravel secrets": "",
+	"Unsupported file type.": "Tawsit n ufaylu ur tettusefrak ara.",
+	"Untagged": "Tekkes-as tebzimt",
+	"Untitled": "War azwel",
+	"Update": "Muceḍ",
+	"Update and Copy Link": "Leqqem aseɣwen",
+	"Update for the latest features and improvements.": "Leqqem tiɣawsiwin tineggura d usnerni.",
+	"Update password": "Leqqem awal n uɛeddi",
+	"Updated": "Yettuleqqmen",
+	"Updated at": "Leqqem",
+	"Updated At": "Leqqem",
+	"Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Lhu-d d uɣawas n turagt i tzemmar yesnernayen, gar-asent tannumi d ukunyak, d tallelt yemmugen i tallelt.",
+	"Upload": "Sali",
+	"Upload a GGUF model": "Sali tamudemt GGUF",
+	"Upload Audio": "Sali ameslaw",
+	"Upload directory": "",
+	"Upload files": "Sali-d ifuyla",
+	"Upload Files": "Sali-d ifuyla",
+	"Upload Pipeline": "Asali n Pipeline",
+	"Upload Progress": "Sali afara",
+	"URL": "URL",
+	"URL Mode": "",
+	"Usage": "Asemres",
+	"Use '#' in the prompt input to load and include your knowledge.": "Seqdec '#' deg udraw arurad akken ad tεebbiḍ u ad tesεeddiḍ tamusni-k.",
+	"Use Gravatar": "Seqdec Gravatar",
+	"Use groups to group your users and assign permissions.": "Sseqdec igrawen i ugraw n iseqdacen-ik akked usireg n usenker.",
+	"Use Initials": "Seqdec inekcam",
+	"Use LLM": "Seqdec LLM",
+	"Use no proxy to fetch page contents.": "Ur sseqdacet ara ayen yellan deg usebter apṛuksi.",
+	"Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Seqdec proxy i d-yesnulfa http_proxy akked https_proxy environment variables to fetch page contents.",
+	"user": "aseqdac",
+	"User": "Aseqdac",
+	"User Groups": "",
+	"User location successfully retrieved.": "",
+	"User menu": "Umuɣ n useqdac",
+	"User Webhooks": "Iseqdacen Webhooks",
+	"Username": "Isem n useqdac",
+	"Users": "Iseqdacen",
+	"Using Entire Document": "Aseqdec n isemli Entire",
+	"Using Focused Retrieval": "Aseqdec n Retrieval yeslummes",
+	"Using the default arena model with all models. Click the plus button to add custom models.": "Aseqdec n tmudemt n uzna amezwer s yal timudmin. Tekki ɣef tqeffalt-nni n tmerniwt akken ad ternuḍ timudmin tinsayanin.",
+	"Valid time units:": "Tigget n wakud ameɣtu:",
+	"Valves": "Azalen",
+	"Valves updated": "Azalen",
+	"Valves updated successfully": "Valves ttwaleqmen akken iwata",
+	"variable": "Amutti",
+	"Verify Connection": "",
+	"Verify SSL Certificate": "Senqed SSL Aselkin",
+	"Version": "Lqem",
+	"Version {{selectedVersion}} of {{totalVersions}}": "Lqem {{s lqem yettwafernen}} n {{totalVersions}}",
+	"View Replies": "Sken tiririt",
+	"View Result from **{{NAME}}**": "Tamuɣli i d-yettuɣalen seg tazwara **{NAME}}**",
+	"Visibility": "Tametwalant",
+	"Vision": "Vision",
+	"Voice": "Taɣect",
+	"Voice Input": "Anekcam s taɣect",
+	"Voice mode": "Askar n taɣect",
+	"Warning": "Ɣur-k",
+	"Warning:": "Alɣu:",
+	"Warning: Enabling this will allow users to upload arbitrary code on the server.": "Ɣur-k: Asewḥel n waya ad yeǧǧ iseqdacen ad d-salin tangalt tazurant ɣef uqeddac.",
+	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Ɣur-k: Ma tleqqem neɣ tbeddleḍ tamudemt-ik n uɛebbi, ilaq-ak ad talseḍ ad d-tefkeḍ akk arraten.",
+	"Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Ɣur-k: Asselkem n Jupyter yettaǧǧa asselkem n tengalt tazurant, d tukksa n tmijwin n tɣellist qessiḥen — s leḥder meqqren.",
+	"Web": "Web",
+	"Web API": "API Web",
+	"Web Loader Engine": "Amsedday Web",
+	"Web Search": "Anadi Web",
+	"Web Search Engine": "Ajenyuṛ n unadi Web",
+	"Web Search in Chat": "Nadi deg Chat",
+	"Web Search Query Generation": "Tasuta n unadi Web",
+	"Webhook URL": "Tansa URL webhook",
+	"WebUI Settings": "Iɣewwaṛen WebUI",
+	"WebUI URL": "Tansa URL WebUI",
+	"WebUI will make requests to \"{{url}}\"": "WebUI ad ssutreɣ \"{url}}\"",
+	"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI ad ssutreɣ i \"{url}}/api/chat\"",
+	"WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI ad ssutreɣ i \"{url}}/chat/completions\"",
+	"What are you trying to achieve?": "Sanda ay tettarmed ad tessiwḍed?",
+	"What are you working on?": "Ɣef wacu ay la tettmahaled?",
+	"What's New in": "D acu yellan d amaynut deg",
+	"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.": "Mi yermed, tamudemt ad d-terr i yal izen n udiwenni deg wakud n tidet, ad d-tawi tiririt akken kan ara yazen useqdac izen. Askar-a yenfeɛ i yisnasen n udiwenni yeddren, maca yezmer ad yesεu tazrirt ɣef tmellit i iweεṛen ugar.",
+	"wherever you are": "anda",
+	"Whether to paginate the output. Each page will be separated by a horizontal rule and page number. Defaults to False.": "Ma tebɣiḍ ad d-tessugneḍ tuffɣa. Yal asebter ad yebḍu s ulugen igli d wuṭṭun n usebter. Imezwura ɣer False.",
+	"Whisper (Local)": "Whisper (adigan)",
+	"Why?": "Ayɣer?",
+	"Widescreen Mode": "Askar n wuzzal",
+	"Won": "Azun",
+	"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.": "Ttmahalet ddukkli s uswir unnig. Azal εlayen (amedya, 0.95) ad d-yawi ugar n uḍris yemgaraden, ma d azal n wadda (amedya, 0.5) ad d-yawi ugar n uḍṛis amḥadi.",
+	"Workspace": "Tamnaḍṭ n umahil",
+	"Workspace Permissions": "Inekcam n tallunt n umahil",
+	"Write": "Aru",
+	"Write a prompt suggestion (e.g. Who are you?)": "Aru-d assumer i d-yeffɣen s tɣawla (amedya, anwa-k?)",
+	"Write a summary in 50 words that summarizes [topic or keyword].": "Aru agzul s 50 n wawalen i yessewzalen [asefru neɣ tasarut].",
+	"Write something...": "Aru kra...",
+	"Yacy Instance URL": "Tansa URL",
+	"Yacy Password": "Awal n uɛeddi n Yacy",
+	"Yacy Username": "",
+	"Yesterday": "Iḍelli",
+	"You": "Kečč·mm",
+	"You are currently using a trial license. Please contact support to upgrade your license.": "Imir-a, aql-ik tesseqdaced turagt n ccṛeɛ. Ma ulac aɣilif, dduklet akken ad tesselhum turagt-nwen.",
+	"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Tzemreḍ kan ad tqeṣṣreḍ s afellay n ufaylu(s) n {{maxCount}} ɣef tikelt.",
+	"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Tzemreḍ ad tesweḥleḍ timyigawtin-ik akked LLMs s tmerna n waktayen s tqeffalt 'Manage' yellan ddaw-a, ad ten-terreḍ d wid i k-iεawnen yerna ad k-d-lhun.",
+	"You cannot upload an empty file.": "Ur tezmireḍ ad tessaliḍ afaylu ilem.",
+	"You do not have permission to upload files.": "Ur tesɛiḍ ara turagt akken ad tessaliḍ ifuyla.",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "Tebḍiḍ aqesosoer-a",
+	"You're a helpful assistant.": "Kečč d amalal yettallen.",
+	"You're now logged in.": "Aql-ik teqqned imir-a.",
+	"Your account status is currently pending activation.": "Addad-nnem n umiḍan atan yettṛaju armad.",
+	"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.": "Attekki-inek akken ma yella ad yeddu srid ɣer uneflay n ifecka; Ldi WebUI ur yettaṭṭaf ara amur. Akken yebɣu yili lḥal, annar n tedrimt yettwafernen yezmer ad yesεu lexlaṣ-is.",
+	"Youtube": "YouTube",
+	"Youtube Language": "Tutlayt n Youtube",
+	"Youtube Proxy URL": "Tansa URL n upṛuksi Youtube"
+}

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

@@ -1108,6 +1108,7 @@
 	"References from": "출처",
 	"Refused when it shouldn't have": "허용되지 않았지만 허용되어야 합니다.",
 	"Regenerate": "재생성",
+	"Regenerate Menu": "",
 	"Reindex": "재색인",
 	"Reindex Knowledge Base Vectors": "전체 지식 베이스 재색인",
 	"Release Notes": "릴리스 노트",

+ 4 - 0
src/lib/i18n/locales/languages.json

@@ -115,6 +115,10 @@
 		"code": "ja-JP",
 		"title": "Japanese (日本語)"
 	},
+	{
+		"code": "kab-DZ",
+		"title": "Kabyle (Taqbaylit)"
+	},
 	{
 		"code": "ko-KR",
 		"title": "Korean (한국어)"

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "Atmesta kai neturėtų būti atmesta",
 	"Regenerate": "Generuoti iš naujo",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Naujovės",

+ 1 - 0
src/lib/i18n/locales/ms-MY/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "Menolak dimana ia tidak sepatutnya",
 	"Regenerate": "Jana semula",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Nota Keluaran",

+ 1 - 0
src/lib/i18n/locales/nb-NO/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Henviser fra",
 	"Refused when it shouldn't have": "Avvist når det ikke burde ha blitt det",
 	"Regenerate": "Generer på nytt",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Utgivelsesnotater",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referenties van",
 	"Refused when it shouldn't have": "Geweigerd terwijl het niet had moeten",
 	"Regenerate": "Regenereren",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Release-opmerkingen",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "ਜਦੋਂ ਇਹ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਸੀ ਤਾਂ ਇਨਕਾਰ ਕੀਤਾ",
 	"Regenerate": "ਮੁੜ ਬਣਾਓ",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "ਰਿਲੀਜ਼ ਨੋਟਸ",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Odniesienia do",
 	"Refused when it shouldn't have": "Odmówił, gdy nie powinien",
 	"Regenerate": "Wygeneruj ponownie",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Notatki do wydania",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referências de",
 	"Refused when it shouldn't have": "Recusado quando não deveria",
 	"Regenerate": "Gerar novamente",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Notas de Lançamento",

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

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "Recusado quando não deveria",
 	"Regenerate": "Regenerar",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Notas de Lançamento",

+ 1 - 0
src/lib/i18n/locales/ro-RO/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Referințe din",
 	"Refused when it shouldn't have": "Refuzat când nu ar fi trebuit",
 	"Regenerate": "Regenerare",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Note de Lansare",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Отсылки к",
 	"Refused when it shouldn't have": "Отказано в доступе, когда это не должно было произойти",
 	"Regenerate": "Перегенерировать",
+	"Regenerate Menu": "",
 	"Reindex": "Переиндексировать",
 	"Reindex Knowledge Base Vectors": "Переиндексировать векторы базы знаний",
 	"Release Notes": "Примечания к выпуску",

+ 1 - 0
src/lib/i18n/locales/sk-SK/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Referencie z",
 	"Refused when it shouldn't have": "Odmietnuté, keď nemalo byť.",
 	"Regenerate": "Regenerovať",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Záznamy o vydaní",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Референце од",
 	"Refused when it shouldn't have": "Одбијено када није требало",
 	"Regenerate": "Поново створи",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Напомене о издању",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referenser från",
 	"Refused when it shouldn't have": "Avvisades när det inte borde ha gjort det",
 	"Regenerate": "Regenerera",
+	"Regenerate Menu": "",
 	"Reindex": "Indexera om",
 	"Reindex Knowledge Base Vectors": "Indexera om kunskapsbasvektorer",
 	"Release Notes": "Versionsinformation",

+ 1 - 0
src/lib/i18n/locales/th-TH/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "ปฏิเสธเมื่อไม่ควรทำ",
 	"Regenerate": "สร้างใหม่",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "บันทึกรุ่น",

+ 1 - 0
src/lib/i18n/locales/tk-TM/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "",
 	"Refused when it shouldn't have": "",
 	"Regenerate": "",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Referanslar arasından",
 	"Refused when it shouldn't have": "Reddedilmemesi gerekirken reddedildi",
 	"Regenerate": "Tekrar Oluştur",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Sürüm Notları",

+ 1 - 0
src/lib/i18n/locales/ug-CN/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "نەقىل مەنبەسى:",
 	"Refused when it shouldn't have": "رەت قىلماسلىق كېرەك ئىدى",
 	"Regenerate": "قايتا ھاسىل قىلىش",
+	"Regenerate Menu": "",
 	"Reindex": "قايتا ئىندېكسلاش",
 	"Reindex Knowledge Base Vectors": "بىلىم ئاساسى ۋېكتورىنى قايتا ئىندېكسلاش",
 	"Release Notes": "نەشر خاتىرىسى",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Посилання з",
 	"Refused when it shouldn't have": "Відмовив, коли не мав би",
 	"Regenerate": "Регенерувати",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Нотатки до випуску",

+ 1 - 0
src/lib/i18n/locales/ur-PK/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "سے حوالہ جات",
 	"Refused when it shouldn't have": "جب انکار نہیں ہونا چاہیے تھا، انکار کر دیا",
 	"Regenerate": "دوبارہ تخلیق کریں",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "ریلیز نوٹس",

+ 1 - 0
src/lib/i18n/locales/uz-Cyrl-UZ/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Маълумотномалар",
 	"Refused when it shouldn't have": "Бўлмаслиги керак бўлганда рад этилди",
 	"Regenerate": "Қайта тиклаш",
+	"Regenerate Menu": "",
 	"Reindex": "Қайта индекс",
 	"Reindex Knowledge Base Vectors": "Реиндех билимлар базаси векторлари",
 	"Release Notes": "Чиқариш эслатмалари",

+ 1 - 0
src/lib/i18n/locales/uz-Latn-Uz/translation.json

@@ -1108,6 +1108,7 @@
 	"References from": "Ma'lumotnomalar",
 	"Refused when it shouldn't have": "Bo'lmasligi kerak bo'lganda rad etildi",
 	"Regenerate": "Qayta tiklash",
+	"Regenerate Menu": "",
 	"Reindex": "Qayta indeks",
 	"Reindex Knowledge Base Vectors": "Reindex bilimlar bazasi vektorlari",
 	"Release Notes": "Chiqarish eslatmalari",

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

@@ -1108,6 +1108,7 @@
 	"References from": "Tham khảo từ",
 	"Refused when it shouldn't have": "Từ chối trả lời mà nhẽ không nên làm vậy",
 	"Regenerate": "Tạo sinh lại câu trả lời",
+	"Regenerate Menu": "",
 	"Reindex": "",
 	"Reindex Knowledge Base Vectors": "",
 	"Release Notes": "Mô tả những cập nhật mới",

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

@@ -43,7 +43,7 @@
 	"Add content here": "在此添加内容",
 	"Add Custom Parameter": "增加自定义参数",
 	"Add custom prompt": "添加自定义提示词",
-	"Add Details": "",
+	"Add Details": "丰富细节",
 	"Add Files": "添加文件",
 	"Add Group": "添加权限组",
 	"Add Memory": "添加记忆",
@@ -54,8 +54,8 @@
 	"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 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": "Datalab Marker 的额外配置项,可以填写一个包含键值对的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。",
 	"Adjusting these settings will apply changes universally to all users.": "调整这些设置将会对所有用户生效",
 	"admin": "管理员",
 	"Admin": "管理员",
@@ -74,10 +74,10 @@
 	"Allow Chat Deletion": "允许删除对话记录",
 	"Allow Chat Edit": "允许编辑对话记录",
 	"Allow Chat Export": "允许导出对话",
-	"Allow Chat Params": "",
+	"Allow Chat Params": "允许设置模型高级参数",
 	"Allow Chat Share": "允许分享对话",
 	"Allow Chat System Prompt": "允许使用对话系统提示词",
-	"Allow Chat Valves": "",
+	"Allow Chat Valves": "允许设置 Valves 变量",
 	"Allow File Upload": "允许上传文件",
 	"Allow Multiple Models in Chat": "允许同时与多个模型对话",
 	"Allow non-local voices": "允许调用非本地音色",
@@ -97,7 +97,7 @@
 	"Always Play Notification Sound": "始终播放通知声音",
 	"Amazing": "很棒",
 	"an assistant": "一个助手",
-	"Analytics": "",
+	"Analytics": "分析",
 	"Analyzed": "已分析",
 	"Analyzing...": "正在分析...",
 	"and": "和",
@@ -106,7 +106,7 @@
 	"Android": "Android",
 	"API": "API",
 	"API Base URL": "API 请求 URL",
-	"API Base URL for Datalab Marker service. Defaults to: https://www.datalab.to/api/v1/marker": "",
+	"API Base URL for Datalab Marker service. Defaults to: https://www.datalab.to/api/v1/marker": "Datalab Marker API 服务的请求 URL。默认为: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 密钥已创建。",
@@ -165,16 +165,16 @@
 	"Beta": "Beta",
 	"Bing Search V7 Endpoint": "Bing 搜索 V7 端点",
 	"Bing Search V7 Subscription Key": "Bing 搜索 V7 订阅密钥",
-	"BM25 Weight": "",
+	"BM25 Weight": "BM25 混合搜索权重",
 	"Bocha Search API Key": "Bocha Search API 密钥",
 	"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.": "必需提供 Docling OCR Engine 和语言,或者都留空。",
 	"Brave Search API Key": "Brave Search API 密钥",
 	"Bullet List": "无序列表",
-	"Button ID": "",
-	"Button Label": "",
-	"Button Prompt": "",
+	"Button ID": "按钮 ID",
+	"Button Label": "按钮标题",
+	"Button Prompt": "点击按钮后执行的提示词",
 	"By {{name}}": "由 {{name}} 提供",
 	"Bypass Embedding and Retrieval": "绕过嵌入和检索",
 	"Bypass Web Loader": "绕过网页加载器",
@@ -199,7 +199,7 @@
 	"Chat Bubble UI": "对话气泡样式",
 	"Chat Controls": "对话高级设置",
 	"Chat direction": "对话样式方向",
-	"Chat ID": "",
+	"Chat ID": "对话 ID",
 	"Chat Overview": "对话概述",
 	"Chat Permissions": "对话权限",
 	"Chat Tags Auto-Generation": "自动生成对话标签",
@@ -233,11 +233,11 @@
 	"Clone Chat": "克隆对话",
 	"Clone of {{TITLE}}": "{{TITLE}} 的副本",
 	"Close": "关闭",
-	"Close Banner": "",
+	"Close Banner": "关闭横幅",
 	"Close Configure Connection Modal": "关闭外部连接配置弹窗",
 	"Close modal": "关闭弹窗",
 	"Close settings modal": "关闭设置弹窗",
-	"Close Sidebar": "",
+	"Close Sidebar": "收起侧边栏",
 	"Code Block": "代码块",
 	"Code execution": "代码执行",
 	"Code Execution": "代码执行",
@@ -259,14 +259,14 @@
 	"Command": "命令",
 	"Comment": "注释",
 	"Completions": "续写",
-	"Compress Images in Channels": "",
+	"Compress Images in Channels": "压缩频道中的图片",
 	"Concurrent Requests": "并发请求",
 	"Configure": "配置",
 	"Confirm": "确认",
 	"Confirm Password": "确认密码",
 	"Confirm your action": "确认要继续吗?",
 	"Confirm your new password": "确认新密码",
-	"Confirm Your Password": "",
+	"Confirm Your Password": "确认您的密码",
 	"Connect to your own OpenAI compatible API endpoints.": "连接到您自有的 OpenAI 兼容 API 的接口端点",
 	"Connect to your own OpenAPI compatible external tool servers.": "连接到您自有的 OpenAPI 兼容外部工具服务器",
 	"Connection failed": "连接失败",
@@ -306,7 +306,7 @@
 	"Create Account": "创建账号",
 	"Create Admin Account": "创建管理员账号",
 	"Create Channel": "创建频道",
-	"Create Folder": "创建文件夹",
+	"Create Folder": "创建分组",
 	"Create Group": "创建权限组",
 	"Create Knowledge": "创建知识",
 	"Create new key": "创建新密钥",
@@ -334,7 +334,7 @@
 	"Default": "默认",
 	"Default (Open AI)": "默认 (OpenAI)",
 	"Default (SentenceTransformers)": "默认 (SentenceTransformers)",
-	"Default action buttons will be used.": "",
+	"Default action buttons will be used.": "默认的快捷操作按钮将会被使用。",
 	"Default description enabled": "默认描述已启用",
 	"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": "默认模型",
@@ -354,7 +354,7 @@
 	"Delete chat": "删除对话记录",
 	"Delete Chat": "删除对话记录",
 	"Delete chat?": "要删除此对话记录吗?",
-	"Delete folder?": "要删除此文件夹吗?",
+	"Delete folder?": "要删除此分组吗?",
 	"Delete function?": "要删除此函数吗?",
 	"Delete Message": "删除消息",
 	"Delete message?": "要删除此消息吗?",
@@ -393,7 +393,7 @@
 	"Discover, download, and explore model presets": "发现、下载并探索更多模型预设",
 	"Display": "显示",
 	"Display Emoji in Call": "在通话中显示 Emoji 表情符号",
-	"Display Multi-model Responses in Tabs": "",
+	"Display Multi-model Responses in Tabs": "在标签页中展示多模型的响应",
 	"Display the username instead of You in the Chat": "在对话中显示用户名而不是 “你”",
 	"Displays citations in the response": "在回复中显示引用",
 	"Dive into knowledge": "深入知识的海洋",
@@ -440,7 +440,7 @@
 	"Edit Channel": "编辑频道",
 	"Edit Connection": "编辑连接",
 	"Edit Default Permissions": "编辑默认权限",
-	"Edit Folder": "编辑文件夹",
+	"Edit Folder": "编辑分组",
 	"Edit Memory": "编辑记忆",
 	"Edit User": "编辑用户",
 	"Edit User Group": "编辑用户组",
@@ -488,7 +488,7 @@
 	"Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "输入以逗号分隔的 “token:bias_value” 对(例如:5432:100, 413:-100)",
 	"Enter Config in JSON format": "输入 JSON 格式的配置",
 	"Enter content for the pending user info overlay. Leave empty for default.": "输入用户待激活界面的内容。留空使用默认",
-	"Enter Datalab Marker API Base URL": "",
+	"Enter Datalab Marker API Base URL": "输入 Datalab Marker API 请求 URL",
 	"Enter Datalab Marker API Key": "输入 Datalab Marker API 密钥",
 	"Enter description": "输入简介描述",
 	"Enter Docling OCR Engine": "输入 Docling OCR Engine",
@@ -506,13 +506,13 @@
 	"Enter External Web Search URL": "输入外部联网搜索 URL",
 	"Enter Firecrawl API Base URL": "输入 Firecrawl API URL",
 	"Enter Firecrawl API Key": "输入 Firecrawl API 密钥",
-	"Enter folder name": "输入文件夹名称",
+	"Enter folder name": "输入分组名称",
 	"Enter Github Raw URL": "输入 Github Raw URL",
 	"Enter Google PSE API Key": "输入 Google PSE API 密钥",
 	"Enter Google PSE Engine Id": "输入 Google PSE 引擎 ID",
 	"Enter Image Size (e.g. 512x512)": "输入图像分辨率(例如:512x512)",
 	"Enter Jina API Key": "输入 Jina API 密钥",
-	"Enter JSON config (e.g., {\"disable_links\": true})": "",
+	"Enter JSON config (e.g., {\"disable_links\": true})": "输入 JSON 配置(例如:{\"disable_links\": true})",
 	"Enter Jupyter Password": "输入 Jupyter 密码",
 	"Enter Jupyter Token": "输入 Jupyter 令牌",
 	"Enter Jupyter URL": "输入 Jupyter URL",
@@ -613,7 +613,7 @@
 	"Export Prompts": "导出提示词",
 	"Export to CSV": "导出到 CSV",
 	"Export Tools": "导出工具",
-	"Export Users": "",
+	"Export Users": "导出所有用户信息",
 	"External": "外部",
 	"External Document Loader URL required.": "需要外部文档加载器 URL",
 	"External Task Model": "外部任务模型",
@@ -662,13 +662,13 @@
 	"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "检测到指纹伪造:无法使用姓名缩写作为头像。默认使用默认个人形象。",
 	"Firecrawl API Base URL": "Firecrawl API URL",
 	"Firecrawl API Key": "Firecrawl API 密钥",
-	"Floating Quick Actions": "",
+	"Floating Quick Actions": "快捷操作浮窗",
 	"Focus chat input": "激活对话输入框",
-	"Folder deleted successfully": "文件夹删除成功",
-	"Folder Name": "文件夹名称",
-	"Folder name cannot be empty.": "文件夹名称不能为空",
-	"Folder name updated successfully": "文件夹名称更新成功",
-	"Folder updated successfully": "文件夹更新成功",
+	"Folder deleted successfully": "分组删除成功",
+	"Folder Name": "分组名称",
+	"Folder name cannot be empty.": "分组名称不能为空",
+	"Folder name updated successfully": "分组名称更新成功",
+	"Folder updated successfully": "分组更新成功",
 	"Follow up": "追问",
 	"Follow Up Generation": "追问生成",
 	"Follow Up Generation Prompt": "追问生成提示词",
@@ -678,8 +678,8 @@
 	"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.": "强制对 PDF 所有页面执行 OCR 识别。若 PDF 中已包含优质文本内容可能降低识别准确率。默认为关闭",
 	"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 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:": "使用括号格式化您的变量,如下所示:",
 	"Forwards system user session credentials to authenticate": "转发系统用户 session 凭证以进行身份验证",
 	"Full Context Mode": "完整上下文模式",
@@ -776,7 +776,7 @@
 	"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": "信息",
 	"Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "注入整个内容作为上下文进行综合处理,适用于复杂查询",
-	"Input": "",
+	"Input": "输入",
 	"Input commands": "输入命令",
 	"Input Variables": "插入变量",
 	"Insert": "插入",
@@ -789,7 +789,7 @@
 	"Invalid file content": "文件内容无效",
 	"Invalid file format.": "文件格式无效",
 	"Invalid JSON file": "JSON 文件无效",
-	"Invalid JSON format in Additional Config": "",
+	"Invalid JSON format in Additional Config": "额外配置项中的 JSON 格式无效",
 	"Invalid Tag": "无效标签",
 	"is typing...": "输入中...",
 	"Italic": "斜体",
@@ -829,7 +829,7 @@
 	"LDAP": "LDAP",
 	"LDAP server updated": "LDAP 服务器已更新",
 	"Leaderboard": "排行榜",
-	"Learn More": "",
+	"Learn More": "了解更多",
 	"Learn more about OpenAPI tool servers.": "进一步了解 OpenAPI 工具服务器",
 	"Leave empty for no compression": "留空则不压缩",
 	"Leave empty for unlimited": "留空则无限制",
@@ -839,7 +839,7 @@
 	"Leave empty to include all models or select specific models": "留空表示包含所有模型或请选择模型",
 	"Leave empty to use the default prompt, or enter a custom prompt": "留空以使用默认提示词,或输入自定义提示词",
 	"Leave model field empty to use the default model.": "将模型字段留空以使用默认模型",
-	"lexical": "",
+	"lexical": "关键词",
 	"License": "授权",
 	"Lift List": "上移列表",
 	"Light": "浅色",
@@ -905,10 +905,10 @@
 	"Model filesystem path detected. Model shortname is required for update, cannot continue.": "检测到模型文件系统路径,无法继续进行。更新操作需要提供模型简称。",
 	"Model Filtering": "模型白名单",
 	"Model ID": "模型 ID",
-	"Model ID is required.": "",
+	"Model ID is required.": "模型 ID 是必填项。",
 	"Model IDs": "模型 ID",
 	"Model Name": "模型名称",
-	"Model Name is required.": "",
+	"Model Name is required.": "模型名称是必填项。",
 	"Model not selected": "未选择模型",
 	"Model Params": "模型参数",
 	"Model Permissions": "模型权限",
@@ -923,14 +923,14 @@
 	"Mojeek Search API Key": "Mojeek Search API 密钥",
 	"more": "更多",
 	"More": "更多",
-	"More Concise": "",
-	"More Options": "",
+	"More Concise": "精炼表达",
+	"More Options": "更多选项",
 	"Name": "名称",
 	"Name your knowledge base": "为您的知识库命名",
 	"Native": "原生",
-	"New Button": "",
+	"New Button": "新建按钮",
 	"New Chat": "新对话",
-	"New Folder": "新文件夹",
+	"New Folder": "新分组",
 	"New Function": "新函数",
 	"New Note": "新笔记",
 	"New Password": "新密码",
@@ -996,10 +996,10 @@
 	"Open file": "打开文件",
 	"Open in full screen": "全屏打开",
 	"Open modal to configure connection": "打开外部连接配置弹窗",
-	"Open Modal To Manage Floating Quick Actions": "",
+	"Open Modal To Manage Floating Quick Actions": "管理快捷操作浮窗",
 	"Open new chat": "打开新对话",
-	"Open Sidebar": "",
-	"Open User Profile Menu": "",
+	"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 speaker embedding。",
@@ -1024,7 +1024,7 @@
 	"Paginate": "分页",
 	"Parameters": "参数",
 	"Password": "密码",
-	"Passwords do not match.": "",
+	"Passwords do not match.": "两次输入的密码不一致。",
 	"Paste Large Text as File": "粘贴大文本为文件",
 	"PDF document (.pdf)": "PDF 文档 (.pdf)",
 	"PDF Extract Images (OCR)": "PDF 图像处理(使用 OCR)",
@@ -1066,7 +1066,7 @@
 	"Please select a model first.": "请先选择一个模型",
 	"Please select a model.": "请选择一个模型。",
 	"Please select a reason": "请选择原因",
-	"Please wait until all files are uploaded.": "",
+	"Please wait until all files are uploaded.": "请等待所有文件上传完毕。",
 	"Port": "端口",
 	"Positive attitude": "积极的态度",
 	"Prefix ID": "Prefix ID",
@@ -1092,7 +1092,7 @@
 	"Pull \"{{searchValue}}\" from Ollama.com": "从 Ollama.com 拉取 \"{{searchValue}}\"",
 	"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
 	"Query Generation Prompt": "查询生成提示词",
-	"Quick Actions": "",
+	"Quick Actions": "快捷操作",
 	"RAG Template": "RAG 提示词模板",
 	"Rating": "评价",
 	"Re-rank models by topic similarity": "根据主题相似性对模型重新排序",
@@ -1108,6 +1108,7 @@
 	"References from": "来自",
 	"Refused when it shouldn't have": "操作被意外拒绝",
 	"Regenerate": "重新生成",
+	"Regenerate Menu": "",
 	"Reindex": "重建索引",
 	"Reindex Knowledge Base Vectors": "重建知识库向量索引",
 	"Release Notes": "更新日志",
@@ -1161,13 +1162,13 @@
 	"Search Chats": "搜索对话",
 	"Search Collection": "搜索内容",
 	"Search Filters": "搜索过滤器",
-	"search for archived chats": "",
-	"search for folders": "",
-	"search for pinned chats": "",
-	"search for shared chats": "",
+	"search for archived chats": "搜索已归档的聊天",
+	"search for folders": "搜索分组",
+	"search for pinned chats": "搜索已置顶的聊天",
+	"search for shared chats": "搜索已共享的聊天",
 	"search for tags": "搜索标签",
 	"Search Functions": "搜索函数",
-	"Search In Models": "",
+	"Search In Models": "搜索模型",
 	"Search Knowledge": "搜索知识",
 	"Search Models": "搜索模型",
 	"Search Notes": "搜索笔记",
@@ -1201,7 +1202,7 @@
 	"Select Knowledge": "选择知识",
 	"Select only one model to call": "请仅选择一个模型来语音通话",
 	"Selected model(s) do not support image inputs": "已选择的模型不支持发送图像",
-	"semantic": "",
+	"semantic": "语义",
 	"Semantic distance to query": "语义距离查询",
 	"Send": "发送",
 	"Send a Message": "输入消息",
@@ -1245,7 +1246,7 @@
 	"Show \"What's New\" modal on login": "在登录时显示 “更新内容” 弹窗",
 	"Show Admin Details in Account Pending Overlay": "在用户待激活界面中显示管理员邮箱等详细信息",
 	"Show All": "显示全部",
-	"Show Formatting Toolbar": "",
+	"Show Formatting Toolbar": "显示文本格式工具栏",
 	"Show image preview": "显示图像预览",
 	"Show Less": "收起",
 	"Show Model": "显示模型",
@@ -1258,7 +1259,7 @@
 	"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.": "",
+	"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",
@@ -1275,7 +1276,7 @@
 	"Stop Generating": "停止生成",
 	"Stop Sequence": "停止序列 (Stop Sequence)",
 	"Stream Chat Response": "流式对话响应 (Stream Chat Response)",
-	"Stream Delta Chunk Size": "",
+	"Stream Delta Chunk Size": "流式增量输出分块大小",
 	"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.": "清除 PDF 中现有的 OCR 文本并重新执行 OCR 识别。若启用 “强制 OCR 识别” 则此设置无效。默认为关闭",
@@ -1285,7 +1286,7 @@
 	"Subtitle (e.g. about the Roman Empire)": "副标题(例如:关于罗马帝国的副标题)",
 	"Success": "成功",
 	"Successfully updated.": "成功更新",
-	"Suggest a change": "",
+	"Suggest a change": "提出修改建议",
 	"Suggested": "建议",
 	"Support": "支持",
 	"Support this plugin:": "支持此插件",
@@ -1327,9 +1328,9 @@
 	"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 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 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 lexical, 1 more semantic. Default 0.5": "",
+	"The Weight of BM25 Hybrid Search. 0 more lexical, 1 more semantic. Default 0.5": "BM25 混合检索权重(输入靠近 0 的数字会更倾向于关键词搜索,反之输入靠近 1 的数字会更倾向于全语义搜索,默认为 0.5)",
 	"The width in pixels to compress images to. Leave empty for no compression.": "图片压缩宽度(像素)。留空则不压缩。",
 	"Theme": "主题",
 	"Thinking...": "正在思考...",
@@ -1354,7 +1355,7 @@
 	"Thorough explanation": "解释较为详细",
 	"Thought for {{DURATION}}": "思考用时 {{DURATION}}",
 	"Thought for {{DURATION}} seconds": "思考用时 {{DURATION}} 秒",
-	"Thought for less than a second": "",
+	"Thought for less than a second": "思考用时小于 1 秒",
 	"Tika": "Tika",
 	"Tika Server URL required.": "请输入 Tika 服务器 URL",
 	"Tiktoken": "Tiktoken",
@@ -1403,7 +1404,7 @@
 	"Transformers": "Transformers",
 	"Trouble accessing Ollama?": "访问 Ollama 时遇到问题?",
 	"Trust Proxy Environment": "信任代理环境",
-	"Try Again": "",
+	"Try Again": "重新生成",
 	"TTS Model": "文本转语音模型",
 	"TTS Settings": "文本转语音设置",
 	"TTS Voice": "文本转语音音色",
@@ -1450,7 +1451,7 @@
 	"Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "使用由 http_proxy 和 https_proxy 环境变量指定的代理获取页面内容",
 	"user": "用户",
 	"User": "用户",
-	"User Groups": "",
+	"User Groups": "用户组",
 	"User location successfully retrieved.": "成功检索到用户位置",
 	"User menu": "用户菜单",
 	"User Webhooks": "用户 Webhook",

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

@@ -1108,6 +1108,7 @@
 	"References from": "引用來源",
 	"Refused when it shouldn't have": "不應拒絕時拒絕了",
 	"Regenerate": "重新產生回應",
+	"Regenerate Menu": "",
 	"Reindex": "重新索引",
 	"Reindex Knowledge Base Vectors": "重新索引知識庫向量",
 	"Release Notes": "版本資訊",