diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index ae2e2529c..7f603cb10 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -73,4 +73,4 @@ ### Contributor License Agreement -By submitting this pull request, I confirm that I have read and fully agree to the [CONTRIBUTOR_LICENSE_AGREEMENT](CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. \ No newline at end of file +By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. diff --git a/Dockerfile b/Dockerfile index 4a5411611..5102afd28 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ARG USE_CUDA=false ARG USE_OLLAMA=false # Tested with cu117 for CUDA 11 and cu121 for CUDA 12 (default) -ARG USE_CUDA_VER=cu121 +ARG USE_CUDA_VER=cu128 # any sentence transformer model; models to use can be found at https://huggingface.co/models?library=sentence-transformers # Leaderboard: https://huggingface.co/spaces/mteb/leaderboard # for better performance and multilangauge support use "intfloat/multilingual-e5-large" (~2.5GB) or "intfloat/multilingual-e5-base" (~1.5GB) diff --git a/LICENSE b/LICENSE index 89109d751..399105097 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2023-2025 Timothy Jaeryang Baek +Copyright (c) 2023-2025 Timothy Jaeryang Baek (Open WebUI) All rights reserved. Redistribution and use in source and binary forms, with or without @@ -15,6 +15,12 @@ modification, are permitted provided that the following conditions are met: contributors may be used to endorse or promote products derived from this software without specific prior written permission. +4. Notwithstanding any other provision of this License, and as a material condition of the rights granted herein, licensees are strictly prohibited from altering, removing, obscuring, or replacing any "Open WebUI" branding, including but not limited to the name, logo, or any visual, textual, or symbolic identifiers that distinguish the software and its interfaces, in any deployment or distribution, regardless of the number of users, except as explicitly set forth in Clauses 5 and 6 below. + +5. The branding restriction enumerated in Clause 4 shall not apply in the following limited circumstances: (i) deployments or distributions where the total number of end users (defined as individual natural persons with direct access to the application) does not exceed fifty (50) within any rolling thirty (30) day period; (ii) cases in which the licensee is an official contributor to the codebase—with a substantive code change successfully merged into the main branch of the official codebase maintained by the copyright holder—who has obtained specific prior written permission for branding adjustment from the copyright holder; or (iii) where the licensee has obtained a duly executed enterprise license expressly permitting such modification. For all other cases, any removal or alteration of the "Open WebUI" branding shall constitute a material breach of license. + +6. All code, modifications, or derivative works incorporated into this project prior to the incorporation of this branding clause remain licensed under the BSD 3-Clause License, and prior contributors retain all BSD-3 rights therein; if any such contributor requests the removal of their BSD-3-licensed code, the copyright holder will do so, and any replacement code will be licensed under the project's primary license then in effect. By contributing after this clause's adoption, you agree to the project's Contributor License Agreement (CLA) and to these updated terms for all new contributions. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE diff --git a/README.md b/README.md index 54ad41503..8445b5a39 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ ![GitHub language count](https://img.shields.io/github/languages/count/open-webui/open-webui) ![GitHub top language](https://img.shields.io/github/languages/top/open-webui/open-webui) ![GitHub last commit](https://img.shields.io/github/last-commit/open-webui/open-webui?color=red) -![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Follama-webui%2Follama-wbui&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false) [![Discord](https://img.shields.io/badge/Discord-Open_WebUI-blue?logo=discord&logoColor=white)](https://discord.gg/5rJgQTnV4s) [![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/tjbck) @@ -62,9 +61,26 @@ For more information, be sure to check out our [Open WebUI Documentation](https: Want to learn more about Open WebUI's features? Check out our [Open WebUI documentation](https://docs.openwebui.com/features) for a comprehensive overview! -## 🔗 Also Check Out Open WebUI Community! +## Sponsors 🙌 -Don't forget to explore our sibling project, [Open WebUI Community](https://openwebui.com/), where you can discover, download, and explore customized Modelfiles. Open WebUI Community offers a wide range of exciting possibilities for enhancing your chat interactions with Open WebUI! 🚀 +#### Emerald + + + + + + +
+ + n8n + + + Does your interface have a backend yet?
Try n8n +
+ +--- + +We are incredibly grateful for the generous support of our sponsors. Their contributions help us to maintain and improve our project, ensuring we can continue to deliver quality work to our community. Thank you! ## How to Install 🚀 @@ -206,7 +222,7 @@ Discover upcoming features on our roadmap in the [Open WebUI Documentation](http ## License 📜 -This project is licensed under the [BSD-3-Clause License](LICENSE) - see the [LICENSE](LICENSE) file for details. 📄 +This project is licensed under the [Open WebUI License](LICENSE), a revised BSD-3-Clause license. You receive all the same rights as the classic BSD-3 license: you can use, modify, and distribute the software, including in proprietary and commercial products, with minimal restrictions. The only additional requirement is to preserve the "Open WebUI" branding, as detailed in the LICENSE file. For full terms, see the [LICENSE](LICENSE) document. 📄 ## Support 💬 diff --git a/backend/open_webui/__init__.py b/backend/open_webui/__init__.py index ff386957c..967a49de8 100644 --- a/backend/open_webui/__init__.py +++ b/backend/open_webui/__init__.py @@ -76,7 +76,7 @@ def serve( from open_webui.env import UVICORN_WORKERS # Import the workers setting uvicorn.run( - open_webui.main.app, + "open_webui.main:app", host=host, port=port, forwarded_allow_ips="*", diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 3b40977f2..a6cffeecd 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -509,6 +509,19 @@ ENABLE_OAUTH_GROUP_MANAGEMENT = PersistentConfig( os.environ.get("ENABLE_OAUTH_GROUP_MANAGEMENT", "False").lower() == "true", ) +ENABLE_OAUTH_GROUP_CREATION = PersistentConfig( + "ENABLE_OAUTH_GROUP_CREATION", + "oauth.enable_group_creation", + os.environ.get("ENABLE_OAUTH_GROUP_CREATION", "False").lower() == "true", +) + + +OAUTH_BLOCKED_GROUPS = PersistentConfig( + "OAUTH_BLOCKED_GROUPS", + "oauth.blocked_groups", + os.environ.get("OAUTH_BLOCKED_GROUPS", "[]"), +) + OAUTH_ROLES_CLAIM = PersistentConfig( "OAUTH_ROLES_CLAIM", "oauth.roles_claim", @@ -952,10 +965,15 @@ DEFAULT_MODELS = PersistentConfig( "DEFAULT_MODELS", "ui.default_models", os.environ.get("DEFAULT_MODELS", None) ) -DEFAULT_PROMPT_SUGGESTIONS = PersistentConfig( - "DEFAULT_PROMPT_SUGGESTIONS", - "ui.prompt_suggestions", - [ +try: + default_prompt_suggestions = json.loads( + os.environ.get("DEFAULT_PROMPT_SUGGESTIONS", "[]") + ) +except Exception as e: + log.exception(f"Error loading DEFAULT_PROMPT_SUGGESTIONS: {e}") + default_prompt_suggestions = [] +if default_prompt_suggestions == []: + default_prompt_suggestions = [ { "title": ["Help me study", "vocabulary for a college entrance exam"], "content": "Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option.", @@ -983,7 +1001,11 @@ DEFAULT_PROMPT_SUGGESTIONS = PersistentConfig( "title": ["Overcome procrastination", "give me tips"], "content": "Could you start by asking me about instances when I procrastinate the most and then give me some suggestions to overcome it?", }, - ], + ] +DEFAULT_PROMPT_SUGGESTIONS = PersistentConfig( + "DEFAULT_PROMPT_SUGGESTIONS", + "ui.prompt_suggestions", + default_prompt_suggestions, ) MODEL_ORDER_LIST = PersistentConfig( @@ -1062,6 +1084,14 @@ USER_PERMISSIONS_CHAT_EDIT = ( os.environ.get("USER_PERMISSIONS_CHAT_EDIT", "True").lower() == "true" ) +USER_PERMISSIONS_CHAT_SHARE = ( + os.environ.get("USER_PERMISSIONS_CHAT_SHARE", "True").lower() == "true" +) + +USER_PERMISSIONS_CHAT_EXPORT = ( + os.environ.get("USER_PERMISSIONS_CHAT_EXPORT", "True").lower() == "true" +) + USER_PERMISSIONS_CHAT_STT = ( os.environ.get("USER_PERMISSIONS_CHAT_STT", "True").lower() == "true" ) @@ -1107,6 +1137,10 @@ USER_PERMISSIONS_FEATURES_CODE_INTERPRETER = ( == "true" ) +USER_PERMISSIONS_FEATURES_NOTES = ( + os.environ.get("USER_PERMISSIONS_FEATURES_NOTES", "True").lower() == "true" +) + DEFAULT_USER_PERMISSIONS = { "workspace": { @@ -1126,6 +1160,8 @@ DEFAULT_USER_PERMISSIONS = { "file_upload": USER_PERMISSIONS_CHAT_FILE_UPLOAD, "delete": USER_PERMISSIONS_CHAT_DELETE, "edit": USER_PERMISSIONS_CHAT_EDIT, + "share": USER_PERMISSIONS_CHAT_SHARE, + "export": USER_PERMISSIONS_CHAT_EXPORT, "stt": USER_PERMISSIONS_CHAT_STT, "tts": USER_PERMISSIONS_CHAT_TTS, "call": USER_PERMISSIONS_CHAT_CALL, @@ -1138,6 +1174,7 @@ DEFAULT_USER_PERMISSIONS = { "web_search": USER_PERMISSIONS_FEATURES_WEB_SEARCH, "image_generation": USER_PERMISSIONS_FEATURES_IMAGE_GENERATION, "code_interpreter": USER_PERMISSIONS_FEATURES_CODE_INTERPRETER, + "notes": USER_PERMISSIONS_FEATURES_NOTES, }, } @@ -1153,6 +1190,11 @@ ENABLE_CHANNELS = PersistentConfig( os.environ.get("ENABLE_CHANNELS", "False").lower() == "true", ) +ENABLE_NOTES = PersistentConfig( + "ENABLE_NOTES", + "notes.enable", + os.environ.get("ENABLE_NOTES", "True").lower() == "true", +) ENABLE_EVALUATION_ARENA_MODELS = PersistentConfig( "ENABLE_EVALUATION_ARENA_MODELS", @@ -1203,6 +1245,9 @@ ENABLE_USER_WEBHOOKS = PersistentConfig( os.environ.get("ENABLE_USER_WEBHOOKS", "True").lower() == "true", ) +# FastAPI / AnyIO settings +THREAD_POOL_SIZE = int(os.getenv("THREAD_POOL_SIZE", "0")) + def validate_cors_origins(origins): for origin in origins: @@ -1229,7 +1274,9 @@ def validate_cors_origin(origin): # To test CORS_ALLOW_ORIGIN locally, you can set something like # CORS_ALLOW_ORIGIN=http://localhost:5173;http://localhost:8080 # in your .env file depending on your frontend port, 5173 in this case. -CORS_ALLOW_ORIGIN = os.environ.get("CORS_ALLOW_ORIGIN", "*").split(";") +CORS_ALLOW_ORIGIN = os.environ.get( + "CORS_ALLOW_ORIGIN", "*;http://localhost:5173;http://localhost:8080" +).split(";") if "*" in CORS_ALLOW_ORIGIN: log.warning( @@ -1693,6 +1740,9 @@ MILVUS_TOKEN = os.environ.get("MILVUS_TOKEN", None) # Qdrant QDRANT_URI = os.environ.get("QDRANT_URI", None) QDRANT_API_KEY = os.environ.get("QDRANT_API_KEY", None) +QDRANT_ON_DISK = os.environ.get("QDRANT_ON_DISK", "false").lower() == "true" +QDRANT_PREFER_GRPC = os.environ.get("QDRANT_PREFER_GRPC", "False").lower() == "true" +QDRANT_GRPC_PORT = int(os.environ.get("QDRANT_GRPC_PORT", "6334")) # OpenSearch OPENSEARCH_URI = os.environ.get("OPENSEARCH_URI", "https://localhost:9200") @@ -1724,6 +1774,14 @@ PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH = int( os.environ.get("PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH", "1536") ) +# Pinecone +PINECONE_API_KEY = os.environ.get("PINECONE_API_KEY", None) +PINECONE_ENVIRONMENT = os.environ.get("PINECONE_ENVIRONMENT", None) +PINECONE_INDEX_NAME = os.getenv("PINECONE_INDEX_NAME", "open-webui-index") +PINECONE_DIMENSION = int(os.getenv("PINECONE_DIMENSION", 1536)) # or 3072, 1024, 768 +PINECONE_METRIC = os.getenv("PINECONE_METRIC", "cosine") +PINECONE_CLOUD = os.getenv("PINECONE_CLOUD", "aws") # or "gcp" or "azure" + #################################### # Information Retrieval (RAG) #################################### @@ -1760,6 +1818,13 @@ ONEDRIVE_CLIENT_ID = PersistentConfig( os.environ.get("ONEDRIVE_CLIENT_ID", ""), ) +ONEDRIVE_SHAREPOINT_URL = PersistentConfig( + "ONEDRIVE_SHAREPOINT_URL", + "onedrive.sharepoint_url", + os.environ.get("ONEDRIVE_SHAREPOINT_URL", ""), +) + + # RAG Content Extraction CONTENT_EXTRACTION_ENGINE = PersistentConfig( "CONTENT_EXTRACTION_ENGINE", @@ -1779,6 +1844,18 @@ DOCLING_SERVER_URL = PersistentConfig( os.getenv("DOCLING_SERVER_URL", "http://docling:5001"), ) +DOCLING_OCR_ENGINE = PersistentConfig( + "DOCLING_OCR_ENGINE", + "rag.docling_ocr_engine", + os.getenv("DOCLING_OCR_ENGINE", "tesseract"), +) + +DOCLING_OCR_LANG = PersistentConfig( + "DOCLING_OCR_LANG", + "rag.docling_ocr_lang", + os.getenv("DOCLING_OCR_LANG", "eng,fra,deu,spa"), +) + DOCUMENT_INTELLIGENCE_ENDPOINT = PersistentConfig( "DOCUMENT_INTELLIGENCE_ENDPOINT", "rag.document_intelligence_endpoint", @@ -2087,6 +2164,24 @@ SEARXNG_QUERY_URL = PersistentConfig( os.getenv("SEARXNG_QUERY_URL", ""), ) +YACY_QUERY_URL = PersistentConfig( + "YACY_QUERY_URL", + "rag.web.search.yacy_query_url", + os.getenv("YACY_QUERY_URL", ""), +) + +YACY_USERNAME = PersistentConfig( + "YACY_USERNAME", + "rag.web.search.yacy_username", + os.getenv("YACY_USERNAME", ""), +) + +YACY_PASSWORD = PersistentConfig( + "YACY_PASSWORD", + "rag.web.search.yacy_password", + os.getenv("YACY_PASSWORD", ""), +) + GOOGLE_PSE_API_KEY = PersistentConfig( "GOOGLE_PSE_API_KEY", "rag.web.search.google_pse_api_key", @@ -2251,6 +2346,29 @@ FIRECRAWL_API_BASE_URL = PersistentConfig( os.environ.get("FIRECRAWL_API_BASE_URL", "https://api.firecrawl.dev"), ) +EXTERNAL_WEB_SEARCH_URL = PersistentConfig( + "EXTERNAL_WEB_SEARCH_URL", + "rag.web.search.external_web_search_url", + os.environ.get("EXTERNAL_WEB_SEARCH_URL", ""), +) + +EXTERNAL_WEB_SEARCH_API_KEY = PersistentConfig( + "EXTERNAL_WEB_SEARCH_API_KEY", + "rag.web.search.external_web_search_api_key", + os.environ.get("EXTERNAL_WEB_SEARCH_API_KEY", ""), +) + +EXTERNAL_WEB_LOADER_URL = PersistentConfig( + "EXTERNAL_WEB_LOADER_URL", + "rag.web.loader.external_web_loader_url", + os.environ.get("EXTERNAL_WEB_LOADER_URL", ""), +) + +EXTERNAL_WEB_LOADER_API_KEY = PersistentConfig( + "EXTERNAL_WEB_LOADER_API_KEY", + "rag.web.loader.external_web_loader_api_key", + os.environ.get("EXTERNAL_WEB_LOADER_API_KEY", ""), +) #################################### # Images @@ -2510,6 +2628,7 @@ WHISPER_VAD_FILTER = PersistentConfig( os.getenv("WHISPER_VAD_FILTER", "False").lower() == "true", ) +WHISPER_LANGUAGE = os.getenv("WHISPER_LANGUAGE", "").lower() or None # Add Deepgram configuration DEEPGRAM_API_KEY = PersistentConfig( @@ -2561,6 +2680,18 @@ AUDIO_STT_AZURE_LOCALES = PersistentConfig( os.getenv("AUDIO_STT_AZURE_LOCALES", ""), ) +AUDIO_STT_AZURE_BASE_URL = PersistentConfig( + "AUDIO_STT_AZURE_BASE_URL", + "audio.stt.azure.base_url", + os.getenv("AUDIO_STT_AZURE_BASE_URL", ""), +) + +AUDIO_STT_AZURE_MAX_SPEAKERS = PersistentConfig( + "AUDIO_STT_AZURE_MAX_SPEAKERS", + "audio.stt.azure.max_speakers", + os.getenv("AUDIO_STT_AZURE_MAX_SPEAKERS", "3"), +) + AUDIO_TTS_OPENAI_API_BASE_URL = PersistentConfig( "AUDIO_TTS_OPENAI_API_BASE_URL", "audio.tts.openai.api_base_url", diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index c9d71a4a0..59557349e 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -354,6 +354,10 @@ BYPASS_MODEL_ACCESS_CONTROL = ( os.environ.get("BYPASS_MODEL_ACCESS_CONTROL", "False").lower() == "true" ) +WEBUI_AUTH_SIGNOUT_REDIRECT_URL = os.environ.get( + "WEBUI_AUTH_SIGNOUT_REDIRECT_URL", None +) + #################################### # WEBUI_SECRET_KEY #################################### @@ -409,6 +413,11 @@ else: except Exception: AIOHTTP_CLIENT_TIMEOUT = 300 + +AIOHTTP_CLIENT_SESSION_SSL = ( + os.environ.get("AIOHTTP_CLIENT_SESSION_SSL", "True").lower() == "true" +) + AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST = os.environ.get( "AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST", os.environ.get("AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST", "10"), @@ -437,6 +446,56 @@ else: except Exception: AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA = 10 + +AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL = ( + os.environ.get("AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL", "True").lower() == "true" +) + + +#################################### +# SENTENCE TRANSFORMERS +#################################### + + +SENTENCE_TRANSFORMERS_BACKEND = os.environ.get("SENTENCE_TRANSFORMERS_BACKEND", "") +if SENTENCE_TRANSFORMERS_BACKEND == "": + SENTENCE_TRANSFORMERS_BACKEND = "torch" + + +SENTENCE_TRANSFORMERS_MODEL_KWARGS = os.environ.get( + "SENTENCE_TRANSFORMERS_MODEL_KWARGS", "" +) +if SENTENCE_TRANSFORMERS_MODEL_KWARGS == "": + SENTENCE_TRANSFORMERS_MODEL_KWARGS = None +else: + try: + SENTENCE_TRANSFORMERS_MODEL_KWARGS = json.loads( + SENTENCE_TRANSFORMERS_MODEL_KWARGS + ) + except Exception: + SENTENCE_TRANSFORMERS_MODEL_KWARGS = None + + +SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND = os.environ.get( + "SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND", "" +) +if SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND == "": + SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND = "torch" + + +SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS = os.environ.get( + "SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS", "" +) +if SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS == "": + SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS = None +else: + try: + SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS = json.loads( + SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS + ) + except Exception: + SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS = None + #################################### # OFFLINE_MODE #################################### @@ -446,6 +505,7 @@ OFFLINE_MODE = os.environ.get("OFFLINE_MODE", "false").lower() == "true" if OFFLINE_MODE: os.environ["HF_HUB_OFFLINE"] = "1" + #################################### # AUDIT LOGGING #################################### @@ -467,6 +527,7 @@ AUDIT_EXCLUDED_PATHS = os.getenv("AUDIT_EXCLUDED_PATHS", "/chats,/chat,/folders" AUDIT_EXCLUDED_PATHS = [path.strip() for path in AUDIT_EXCLUDED_PATHS] AUDIT_EXCLUDED_PATHS = [path.lstrip("/") for path in AUDIT_EXCLUDED_PATHS] + #################################### # OPENTELEMETRY #################################### diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 56ea17fa1..db124bedd 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -17,6 +17,7 @@ from sqlalchemy import text from typing import Optional from aiocache import cached import aiohttp +import anyio.to_thread import requests @@ -63,6 +64,7 @@ from open_webui.routers import ( auths, channels, chats, + notes, folders, configs, groups, @@ -100,11 +102,14 @@ from open_webui.config import ( # OpenAI ENABLE_OPENAI_API, ONEDRIVE_CLIENT_ID, + ONEDRIVE_SHAREPOINT_URL, OPENAI_API_BASE_URLS, OPENAI_API_KEYS, OPENAI_API_CONFIGS, # Direct Connections ENABLE_DIRECT_CONNECTIONS, + # Thread pool size for FastAPI/AnyIO + THREAD_POOL_SIZE, # Tool Server Configs TOOL_SERVER_CONNECTIONS, # Code Execution @@ -151,6 +156,8 @@ from open_webui.config import ( AUDIO_STT_AZURE_API_KEY, AUDIO_STT_AZURE_REGION, AUDIO_STT_AZURE_LOCALES, + AUDIO_STT_AZURE_BASE_URL, + AUDIO_STT_AZURE_MAX_SPEAKERS, AUDIO_TTS_API_KEY, AUDIO_TTS_ENGINE, AUDIO_TTS_MODEL, @@ -167,6 +174,7 @@ from open_webui.config import ( WEB_LOADER_ENGINE, WHISPER_MODEL, WHISPER_VAD_FILTER, + WHISPER_LANGUAGE, DEEPGRAM_API_KEY, WHISPER_MODEL_AUTO_UPDATE, WHISPER_MODEL_DIR, @@ -195,6 +203,8 @@ from open_webui.config import ( CONTENT_EXTRACTION_ENGINE, TIKA_SERVER_URL, DOCLING_SERVER_URL, + DOCLING_OCR_ENGINE, + DOCLING_OCR_LANG, DOCUMENT_INTELLIGENCE_ENDPOINT, DOCUMENT_INTELLIGENCE_KEY, MISTRAL_OCR_API_KEY, @@ -219,6 +229,9 @@ from open_webui.config import ( SERPAPI_API_KEY, SERPAPI_ENGINE, SEARXNG_QUERY_URL, + YACY_QUERY_URL, + YACY_USERNAME, + YACY_PASSWORD, SERPER_API_KEY, SERPLY_API_KEY, SERPSTACK_API_KEY, @@ -240,12 +253,17 @@ from open_webui.config import ( GOOGLE_DRIVE_CLIENT_ID, GOOGLE_DRIVE_API_KEY, ONEDRIVE_CLIENT_ID, + ONEDRIVE_SHAREPOINT_URL, ENABLE_RAG_HYBRID_SEARCH, ENABLE_RAG_LOCAL_WEB_FETCH, ENABLE_WEB_LOADER_SSL_VERIFICATION, ENABLE_GOOGLE_DRIVE_INTEGRATION, ENABLE_ONEDRIVE_INTEGRATION, UPLOAD_DIR, + EXTERNAL_WEB_SEARCH_URL, + EXTERNAL_WEB_SEARCH_API_KEY, + EXTERNAL_WEB_LOADER_URL, + EXTERNAL_WEB_LOADER_API_KEY, # WebUI WEBUI_AUTH, WEBUI_NAME, @@ -260,6 +278,7 @@ from open_webui.config import ( ENABLE_API_KEY_ENDPOINT_RESTRICTIONS, API_KEY_ALLOWED_ENDPOINTS, ENABLE_CHANNELS, + ENABLE_NOTES, ENABLE_COMMUNITY_SHARING, ENABLE_MESSAGE_RATING, ENABLE_USER_WEBHOOKS, @@ -341,6 +360,7 @@ from open_webui.env import ( WEBUI_SESSION_COOKIE_SECURE, WEBUI_AUTH_TRUSTED_EMAIL_HEADER, WEBUI_AUTH_TRUSTED_NAME_HEADER, + WEBUI_AUTH_SIGNOUT_REDIRECT_URL, ENABLE_WEBSOCKET_SUPPORT, BYPASS_MODEL_ACCESS_CONTROL, RESET_CONFIG_ON_START, @@ -370,6 +390,7 @@ from open_webui.utils.auth import ( get_admin_user, get_verified_user, ) +from open_webui.utils.plugin import install_tool_and_function_dependencies from open_webui.utils.oauth import OAuthManager from open_webui.utils.security_headers import SecurityHeadersMiddleware @@ -432,7 +453,18 @@ async def lifespan(app: FastAPI): if LICENSE_KEY: get_license_data(app, LICENSE_KEY) + # This should be blocking (sync) so functions are not deactivated on first /get_models calls + # when the first user lands on the / route. + log.info("Installing external dependencies of functions and tools...") + install_tool_and_function_dependencies() + + pool_size = THREAD_POOL_SIZE + if pool_size and pool_size > 0: + limiter = anyio.to_thread.current_default_thread_limiter() + limiter.total_tokens = pool_size + asyncio.create_task(periodic_usage_pool_cleanup()) + yield @@ -543,6 +575,7 @@ app.state.config.MODEL_ORDER_LIST = MODEL_ORDER_LIST app.state.config.ENABLE_CHANNELS = ENABLE_CHANNELS +app.state.config.ENABLE_NOTES = ENABLE_NOTES app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING app.state.config.ENABLE_MESSAGE_RATING = ENABLE_MESSAGE_RATING app.state.config.ENABLE_USER_WEBHOOKS = ENABLE_USER_WEBHOOKS @@ -576,6 +609,7 @@ app.state.config.LDAP_CIPHERS = LDAP_CIPHERS app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER +app.state.WEBUI_AUTH_SIGNOUT_REDIRECT_URL = WEBUI_AUTH_SIGNOUT_REDIRECT_URL app.state.EXTERNAL_PWA_MANIFEST_URL = EXTERNAL_PWA_MANIFEST_URL app.state.USER_COUNT = None @@ -604,6 +638,8 @@ app.state.config.ENABLE_WEB_LOADER_SSL_VERIFICATION = ENABLE_WEB_LOADER_SSL_VERI app.state.config.CONTENT_EXTRACTION_ENGINE = CONTENT_EXTRACTION_ENGINE app.state.config.TIKA_SERVER_URL = TIKA_SERVER_URL app.state.config.DOCLING_SERVER_URL = DOCLING_SERVER_URL +app.state.config.DOCLING_OCR_ENGINE = DOCLING_OCR_ENGINE +app.state.config.DOCLING_OCR_LANG = DOCLING_OCR_LANG app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT = DOCUMENT_INTELLIGENCE_ENDPOINT app.state.config.DOCUMENT_INTELLIGENCE_KEY = DOCUMENT_INTELLIGENCE_KEY app.state.config.MISTRAL_OCR_API_KEY = MISTRAL_OCR_API_KEY @@ -646,6 +682,9 @@ app.state.config.BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL = ( app.state.config.ENABLE_GOOGLE_DRIVE_INTEGRATION = ENABLE_GOOGLE_DRIVE_INTEGRATION app.state.config.ENABLE_ONEDRIVE_INTEGRATION = ENABLE_ONEDRIVE_INTEGRATION app.state.config.SEARXNG_QUERY_URL = SEARXNG_QUERY_URL +app.state.config.YACY_QUERY_URL = YACY_QUERY_URL +app.state.config.YACY_USERNAME = YACY_USERNAME +app.state.config.YACY_PASSWORD = YACY_PASSWORD app.state.config.GOOGLE_PSE_API_KEY = GOOGLE_PSE_API_KEY app.state.config.GOOGLE_PSE_ENGINE_ID = GOOGLE_PSE_ENGINE_ID app.state.config.BRAVE_SEARCH_API_KEY = BRAVE_SEARCH_API_KEY @@ -668,6 +707,10 @@ app.state.config.EXA_API_KEY = EXA_API_KEY app.state.config.PERPLEXITY_API_KEY = PERPLEXITY_API_KEY app.state.config.SOUGOU_API_SID = SOUGOU_API_SID app.state.config.SOUGOU_API_SK = SOUGOU_API_SK +app.state.config.EXTERNAL_WEB_SEARCH_URL = EXTERNAL_WEB_SEARCH_URL +app.state.config.EXTERNAL_WEB_SEARCH_API_KEY = EXTERNAL_WEB_SEARCH_API_KEY +app.state.config.EXTERNAL_WEB_LOADER_URL = EXTERNAL_WEB_LOADER_URL +app.state.config.EXTERNAL_WEB_LOADER_API_KEY = EXTERNAL_WEB_LOADER_API_KEY app.state.config.PLAYWRIGHT_WS_URL = PLAYWRIGHT_WS_URL @@ -796,6 +839,8 @@ app.state.config.DEEPGRAM_API_KEY = DEEPGRAM_API_KEY app.state.config.AUDIO_STT_AZURE_API_KEY = AUDIO_STT_AZURE_API_KEY app.state.config.AUDIO_STT_AZURE_REGION = AUDIO_STT_AZURE_REGION app.state.config.AUDIO_STT_AZURE_LOCALES = AUDIO_STT_AZURE_LOCALES +app.state.config.AUDIO_STT_AZURE_BASE_URL = AUDIO_STT_AZURE_BASE_URL +app.state.config.AUDIO_STT_AZURE_MAX_SPEAKERS = AUDIO_STT_AZURE_MAX_SPEAKERS app.state.config.TTS_OPENAI_API_BASE_URL = AUDIO_TTS_OPENAI_API_BASE_URL app.state.config.TTS_OPENAI_API_KEY = AUDIO_TTS_OPENAI_API_KEY @@ -869,7 +914,8 @@ class RedirectMiddleware(BaseHTTPMiddleware): # Check for the specific watch path and the presence of 'v' parameter if path.endswith("/watch") and "v" in query_params: - video_id = query_params["v"][0] # Extract the first 'v' parameter + # Extract the first 'v' parameter + video_id = query_params["v"][0] encoded_video_id = urlencode({"youtube": video_id}) redirect_url = f"/?{encoded_video_id}" return RedirectResponse(url=redirect_url) @@ -955,6 +1001,8 @@ app.include_router(users.router, prefix="/api/v1/users", tags=["users"]) app.include_router(channels.router, prefix="/api/v1/channels", tags=["channels"]) app.include_router(chats.router, prefix="/api/v1/chats", tags=["chats"]) +app.include_router(notes.router, prefix="/api/v1/notes", tags=["notes"]) + app.include_router(models.router, prefix="/api/v1/models", tags=["models"]) app.include_router(knowledge.router, prefix="/api/v1/knowledge", tags=["knowledge"]) @@ -1283,6 +1331,7 @@ async def get_app_config(request: Request): { "enable_direct_connections": app.state.config.ENABLE_DIRECT_CONNECTIONS, "enable_channels": app.state.config.ENABLE_CHANNELS, + "enable_notes": app.state.config.ENABLE_NOTES, "enable_web_search": app.state.config.ENABLE_WEB_SEARCH, "enable_code_execution": app.state.config.ENABLE_CODE_EXECUTION, "enable_code_interpreter": app.state.config.ENABLE_CODE_INTERPRETER, @@ -1327,7 +1376,10 @@ async def get_app_config(request: Request): "client_id": GOOGLE_DRIVE_CLIENT_ID.value, "api_key": GOOGLE_DRIVE_API_KEY.value, }, - "onedrive": {"client_id": ONEDRIVE_CLIENT_ID.value}, + "onedrive": { + "client_id": ONEDRIVE_CLIENT_ID.value, + "sharepoint_url": ONEDRIVE_SHAREPOINT_URL.value, + }, "license_metadata": app.state.LICENSE_METADATA, **( { @@ -1439,7 +1491,7 @@ async def get_manifest_json(): "start_url": "/", "display": "standalone", "background_color": "#343541", - "orientation": "natural", + "orientation": "any", "icons": [ { "src": "/static/logo.png", diff --git a/backend/open_webui/migrations/versions/9f0c9cd09105_add_note_table.py b/backend/open_webui/migrations/versions/9f0c9cd09105_add_note_table.py new file mode 100644 index 000000000..8e983a2cf --- /dev/null +++ b/backend/open_webui/migrations/versions/9f0c9cd09105_add_note_table.py @@ -0,0 +1,33 @@ +"""Add note table + +Revision ID: 9f0c9cd09105 +Revises: 3781e22d8b01 +Create Date: 2025-05-03 03:00:00.000000 + +""" + +from alembic import op +import sqlalchemy as sa + +revision = "9f0c9cd09105" +down_revision = "3781e22d8b01" +branch_labels = None +depends_on = None + + +def upgrade(): + op.create_table( + "note", + sa.Column("id", sa.Text(), nullable=False, primary_key=True, unique=True), + sa.Column("user_id", sa.Text(), nullable=True), + sa.Column("title", sa.Text(), nullable=True), + sa.Column("data", sa.JSON(), nullable=True), + sa.Column("meta", sa.JSON(), nullable=True), + sa.Column("access_control", sa.JSON(), nullable=True), + sa.Column("created_at", sa.BigInteger(), nullable=True), + sa.Column("updated_at", sa.BigInteger(), nullable=True), + ) + + +def downgrade(): + op.drop_table("note") diff --git a/backend/open_webui/models/notes.py b/backend/open_webui/models/notes.py new file mode 100644 index 000000000..114ccdc57 --- /dev/null +++ b/backend/open_webui/models/notes.py @@ -0,0 +1,135 @@ +import json +import time +import uuid +from typing import Optional + +from open_webui.internal.db import Base, get_db +from open_webui.utils.access_control import has_access +from open_webui.models.users import Users, UserResponse + + +from pydantic import BaseModel, ConfigDict +from sqlalchemy import BigInteger, Boolean, Column, String, Text, JSON +from sqlalchemy import or_, func, select, and_, text +from sqlalchemy.sql import exists + +#################### +# Note DB Schema +#################### + + +class Note(Base): + __tablename__ = "note" + + id = Column(Text, primary_key=True) + user_id = Column(Text) + + title = Column(Text) + data = Column(JSON, nullable=True) + meta = Column(JSON, nullable=True) + + access_control = Column(JSON, nullable=True) + + created_at = Column(BigInteger) + updated_at = Column(BigInteger) + + +class NoteModel(BaseModel): + model_config = ConfigDict(from_attributes=True) + + id: str + user_id: str + + title: str + data: Optional[dict] = None + meta: Optional[dict] = None + + access_control: Optional[dict] = None + + created_at: int # timestamp in epoch + updated_at: int # timestamp in epoch + + +#################### +# Forms +#################### + + +class NoteForm(BaseModel): + title: str + data: Optional[dict] = None + meta: Optional[dict] = None + access_control: Optional[dict] = None + + +class NoteUserResponse(NoteModel): + user: Optional[UserResponse] = None + + +class NoteTable: + def insert_new_note( + self, + form_data: NoteForm, + user_id: str, + ) -> Optional[NoteModel]: + with get_db() as db: + note = NoteModel( + **{ + "id": str(uuid.uuid4()), + "user_id": user_id, + **form_data.model_dump(), + "created_at": int(time.time_ns()), + "updated_at": int(time.time_ns()), + } + ) + + new_note = Note(**note.model_dump()) + + db.add(new_note) + db.commit() + return note + + def get_notes(self) -> list[NoteModel]: + with get_db() as db: + notes = db.query(Note).order_by(Note.updated_at.desc()).all() + return [NoteModel.model_validate(note) for note in notes] + + def get_notes_by_user_id( + self, user_id: str, permission: str = "write" + ) -> list[NoteModel]: + notes = self.get_notes() + return [ + note + for note in notes + if note.user_id == user_id + or has_access(user_id, permission, note.access_control) + ] + + def get_note_by_id(self, id: str) -> Optional[NoteModel]: + with get_db() as db: + note = db.query(Note).filter(Note.id == id).first() + return NoteModel.model_validate(note) if note else None + + def update_note_by_id(self, id: str, form_data: NoteForm) -> Optional[NoteModel]: + with get_db() as db: + note = db.query(Note).filter(Note.id == id).first() + if not note: + return None + + note.title = form_data.title + note.data = form_data.data + note.meta = form_data.meta + note.access_control = form_data.access_control + note.updated_at = int(time.time_ns()) + + db.commit() + return NoteModel.model_validate(note) if note else None + + def delete_note_by_id(self, id: str): + with get_db() as db: + db.query(Note).filter(Note.id == id).delete() + db.commit() + return True + + +Notes = NoteTable() diff --git a/backend/open_webui/models/users.py b/backend/open_webui/models/users.py index 605299528..3b95d1609 100644 --- a/backend/open_webui/models/users.py +++ b/backend/open_webui/models/users.py @@ -10,6 +10,8 @@ from open_webui.models.groups import Groups from pydantic import BaseModel, ConfigDict from sqlalchemy import BigInteger, Column, String, Text +from sqlalchemy import or_ + #################### # User DB Schema @@ -67,6 +69,11 @@ class UserModel(BaseModel): #################### +class UserListResponse(BaseModel): + users: list[UserModel] + total: int + + class UserResponse(BaseModel): id: str name: str @@ -160,11 +167,63 @@ class UsersTable: return None def get_users( - self, skip: Optional[int] = None, limit: Optional[int] = None - ) -> list[UserModel]: + self, + filter: Optional[dict] = None, + skip: Optional[int] = None, + limit: Optional[int] = None, + ) -> UserListResponse: with get_db() as db: + query = db.query(User) - query = db.query(User).order_by(User.created_at.desc()) + if filter: + query_key = filter.get("query") + if query_key: + query = query.filter( + or_( + User.name.ilike(f"%{query_key}%"), + User.email.ilike(f"%{query_key}%"), + ) + ) + + order_by = filter.get("order_by") + direction = filter.get("direction") + + if order_by == "name": + if direction == "asc": + query = query.order_by(User.name.asc()) + else: + query = query.order_by(User.name.desc()) + elif order_by == "email": + if direction == "asc": + query = query.order_by(User.email.asc()) + else: + query = query.order_by(User.email.desc()) + + elif order_by == "created_at": + if direction == "asc": + query = query.order_by(User.created_at.asc()) + else: + query = query.order_by(User.created_at.desc()) + + elif order_by == "last_active_at": + if direction == "asc": + query = query.order_by(User.last_active_at.asc()) + else: + query = query.order_by(User.last_active_at.desc()) + + elif order_by == "updated_at": + if direction == "asc": + query = query.order_by(User.updated_at.asc()) + else: + query = query.order_by(User.updated_at.desc()) + elif order_by == "role": + if direction == "asc": + query = query.order_by(User.role.asc()) + else: + query = query.order_by(User.role.desc()) + + else: + query = query.order_by(User.created_at.desc()) if skip: query = query.offset(skip) @@ -172,8 +231,10 @@ class UsersTable: query = query.limit(limit) users = query.all() - - return [UserModel.model_validate(user) for user in users] + return { + "users": [UserModel.model_validate(user) for user in users], + "total": db.query(User).count(), + } def get_users_by_user_ids(self, user_ids: list[str]) -> list[UserModel]: with get_db() as db: diff --git a/backend/open_webui/retrieval/loaders/external.py b/backend/open_webui/retrieval/loaders/external.py new file mode 100644 index 000000000..642cfd3a5 --- /dev/null +++ b/backend/open_webui/retrieval/loaders/external.py @@ -0,0 +1,53 @@ +import requests +import logging +from typing import Iterator, List, Union + +from langchain_core.document_loaders import BaseLoader +from langchain_core.documents import Document +from open_webui.env import SRC_LOG_LEVELS + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["RAG"]) + + +class ExternalLoader(BaseLoader): + def __init__( + self, + web_paths: Union[str, List[str]], + external_url: str, + external_api_key: str, + continue_on_failure: bool = True, + **kwargs, + ) -> None: + self.external_url = external_url + self.external_api_key = external_api_key + self.urls = web_paths if isinstance(web_paths, list) else [web_paths] + self.continue_on_failure = continue_on_failure + + def lazy_load(self) -> Iterator[Document]: + batch_size = 20 + for i in range(0, len(self.urls), batch_size): + urls = self.urls[i : i + batch_size] + try: + response = requests.post( + self.external_url, + headers={ + "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", + "Authorization": f"Bearer {self.external_api_key}", + }, + json={ + "urls": urls, + }, + ) + response.raise_for_status() + results = response.json() + for result in results: + yield Document( + page_content=result.get("page_content", ""), + metadata=result.get("metadata", {}), + ) + except Exception as e: + if self.continue_on_failure: + log.error(f"Error extracting content from batch {urls}: {e}") + else: + raise e diff --git a/backend/open_webui/retrieval/loaders/main.py b/backend/open_webui/retrieval/loaders/main.py index 24944bd8a..fa996e16d 100644 --- a/backend/open_webui/retrieval/loaders/main.py +++ b/backend/open_webui/retrieval/loaders/main.py @@ -99,6 +99,9 @@ class TikaLoader: else: headers = {} + if self.kwargs.get("PDF_EXTRACT_IMAGES") == True: + headers["X-Tika-PDFextractInlineImages"] = "true" + endpoint = self.url if not endpoint.endswith("/"): endpoint += "/" @@ -121,10 +124,14 @@ class TikaLoader: class DoclingLoader: - def __init__(self, url, file_path=None, mime_type=None): + def __init__( + self, url, file_path=None, mime_type=None, ocr_engine=None, ocr_lang=None + ): self.url = url.rstrip("/") self.file_path = file_path self.mime_type = mime_type + self.ocr_engine = ocr_engine + self.ocr_lang = ocr_lang def load(self) -> list[Document]: with open(self.file_path, "rb") as f: @@ -141,6 +148,12 @@ class DoclingLoader: "table_mode": "accurate", } + if self.ocr_engine and self.ocr_lang: + params["ocr_engine"] = self.ocr_engine + params["ocr_lang"] = [ + lang.strip() for lang in self.ocr_lang.split(",") if lang.strip() + ] + endpoint = f"{self.url}/v1alpha/convert/file" r = requests.post(endpoint, files=files, data=params) @@ -209,6 +222,8 @@ class Loader: url=self.kwargs.get("DOCLING_SERVER_URL"), file_path=file_path, mime_type=file_content_type, + ocr_engine=self.kwargs.get("DOCLING_OCR_ENGINE"), + ocr_lang=self.kwargs.get("DOCLING_OCR_LANG"), ) elif ( self.engine == "document_intelligence" diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index 2b23cad17..b952080d3 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -207,7 +207,7 @@ def merge_and_sort_query_results(query_results: list[dict], k: int) -> dict: for distance, document, metadata in zip(distances, documents, metadatas): if isinstance(document, str): - doc_hash = hashlib.md5( + doc_hash = hashlib.sha256( document.encode() ).hexdigest() # Compute a hash for uniqueness @@ -260,23 +260,47 @@ def query_collection( k: int, ) -> dict: results = [] - for query in queries: - log.debug(f"query_collection:query {query}") - query_embedding = embedding_function(query, prefix=RAG_EMBEDDING_QUERY_PREFIX) - for collection_name in collection_names: + error = False + + def process_query_collection(collection_name, query_embedding): + try: if collection_name: - try: - result = query_doc( - collection_name=collection_name, - k=k, - query_embedding=query_embedding, - ) - if result is not None: - results.append(result.model_dump()) - except Exception as e: - log.exception(f"Error when querying the collection: {e}") - else: - pass + result = query_doc( + collection_name=collection_name, + k=k, + query_embedding=query_embedding, + ) + if result is not None: + return result.model_dump(), None + return None, None + except Exception as e: + log.exception(f"Error when querying the collection: {e}") + return None, e + + # Generate all query embeddings (in one call) + query_embeddings = embedding_function(queries, prefix=RAG_EMBEDDING_QUERY_PREFIX) + log.debug( + f"query_collection: processing {len(queries)} queries across {len(collection_names)} collections" + ) + + with ThreadPoolExecutor() as executor: + future_results = [] + for query_embedding in query_embeddings: + for collection_name in collection_names: + result = executor.submit( + process_query_collection, collection_name, query_embedding + ) + future_results.append(result) + task_results = [future.result() for future in future_results] + + for result, err in task_results: + if err is not None: + error = True + elif result is not None: + results.append(result) + + if error and not results: + log.warning("All collection queries failed. No results returned.") return merge_and_sort_query_results(results, k=k) diff --git a/backend/open_webui/retrieval/vector/connector.py b/backend/open_webui/retrieval/vector/connector.py index ac8884c04..198e6f176 100644 --- a/backend/open_webui/retrieval/vector/connector.py +++ b/backend/open_webui/retrieval/vector/connector.py @@ -20,6 +20,10 @@ elif VECTOR_DB == "elasticsearch": from open_webui.retrieval.vector.dbs.elasticsearch import ElasticsearchClient VECTOR_DB_CLIENT = ElasticsearchClient() +elif VECTOR_DB == "pinecone": + from open_webui.retrieval.vector.dbs.pinecone import PineconeClient + + VECTOR_DB_CLIENT = PineconeClient() else: from open_webui.retrieval.vector.dbs.chroma import ChromaClient diff --git a/backend/open_webui/retrieval/vector/dbs/chroma.py b/backend/open_webui/retrieval/vector/dbs/chroma.py index a6b97df3e..f9adc9c95 100755 --- a/backend/open_webui/retrieval/vector/dbs/chroma.py +++ b/backend/open_webui/retrieval/vector/dbs/chroma.py @@ -5,7 +5,12 @@ from chromadb.utils.batch_utils import create_batches from typing import Optional -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) from open_webui.config import ( CHROMA_DATA_PATH, CHROMA_HTTP_HOST, @@ -23,7 +28,7 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["RAG"]) -class ChromaClient: +class ChromaClient(VectorDBBase): def __init__(self): settings_dict = { "allow_reset": True, diff --git a/backend/open_webui/retrieval/vector/dbs/elasticsearch.py b/backend/open_webui/retrieval/vector/dbs/elasticsearch.py index c89628494..18a915e38 100644 --- a/backend/open_webui/retrieval/vector/dbs/elasticsearch.py +++ b/backend/open_webui/retrieval/vector/dbs/elasticsearch.py @@ -2,7 +2,12 @@ from elasticsearch import Elasticsearch, BadRequestError from typing import Optional import ssl from elasticsearch.helpers import bulk, scan -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) from open_webui.config import ( ELASTICSEARCH_URL, ELASTICSEARCH_CA_CERTS, @@ -15,7 +20,7 @@ from open_webui.config import ( ) -class ElasticsearchClient: +class ElasticsearchClient(VectorDBBase): """ Important: in order to reduce the number of indexes and since the embedding vector length is fixed, we avoid creating diff --git a/backend/open_webui/retrieval/vector/dbs/milvus.py b/backend/open_webui/retrieval/vector/dbs/milvus.py index 26b4dd5ed..f116c57f7 100644 --- a/backend/open_webui/retrieval/vector/dbs/milvus.py +++ b/backend/open_webui/retrieval/vector/dbs/milvus.py @@ -4,7 +4,12 @@ import json import logging from typing import Optional -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) from open_webui.config import ( MILVUS_URI, MILVUS_DB, @@ -16,7 +21,7 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["RAG"]) -class MilvusClient: +class MilvusClient(VectorDBBase): def __init__(self): self.collection_prefix = "open_webui" if MILVUS_TOKEN is None: diff --git a/backend/open_webui/retrieval/vector/dbs/opensearch.py b/backend/open_webui/retrieval/vector/dbs/opensearch.py index 432bcef41..60ef2d906 100644 --- a/backend/open_webui/retrieval/vector/dbs/opensearch.py +++ b/backend/open_webui/retrieval/vector/dbs/opensearch.py @@ -2,7 +2,12 @@ from opensearchpy import OpenSearch from opensearchpy.helpers import bulk from typing import Optional -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) from open_webui.config import ( OPENSEARCH_URI, OPENSEARCH_SSL, @@ -12,7 +17,7 @@ from open_webui.config import ( ) -class OpenSearchClient: +class OpenSearchClient(VectorDBBase): def __init__(self): self.index_prefix = "open_webui" self.client = OpenSearch( diff --git a/backend/open_webui/retrieval/vector/dbs/pgvector.py b/backend/open_webui/retrieval/vector/dbs/pgvector.py index c38dbb036..b6cb2a4e2 100644 --- a/backend/open_webui/retrieval/vector/dbs/pgvector.py +++ b/backend/open_webui/retrieval/vector/dbs/pgvector.py @@ -22,7 +22,12 @@ from pgvector.sqlalchemy import Vector from sqlalchemy.ext.mutable import MutableDict from sqlalchemy.exc import NoSuchTableError -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) from open_webui.config import PGVECTOR_DB_URL, PGVECTOR_INITIALIZE_MAX_VECTOR_LENGTH from open_webui.env import SRC_LOG_LEVELS @@ -44,7 +49,7 @@ class DocumentChunk(Base): vmetadata = Column(MutableDict.as_mutable(JSONB), nullable=True) -class PgvectorClient: +class PgvectorClient(VectorDBBase): def __init__(self) -> None: # if no pgvector uri, use the existing database connection @@ -136,9 +141,8 @@ class PgvectorClient: # Pad the vector with zeros vector += [0.0] * (VECTOR_LENGTH - current_length) elif current_length > VECTOR_LENGTH: - raise Exception( - f"Vector length {current_length} not supported. Max length must be <= {VECTOR_LENGTH}" - ) + # Truncate the vector to VECTOR_LENGTH + vector = vector[:VECTOR_LENGTH] return vector def insert(self, collection_name: str, items: List[VectorItem]) -> None: diff --git a/backend/open_webui/retrieval/vector/dbs/pinecone.py b/backend/open_webui/retrieval/vector/dbs/pinecone.py new file mode 100644 index 000000000..bc9bd8bc3 --- /dev/null +++ b/backend/open_webui/retrieval/vector/dbs/pinecone.py @@ -0,0 +1,412 @@ +from typing import Optional, List, Dict, Any, Union +import logging +from pinecone import Pinecone, ServerlessSpec + +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) +from open_webui.config import ( + PINECONE_API_KEY, + PINECONE_ENVIRONMENT, + PINECONE_INDEX_NAME, + PINECONE_DIMENSION, + PINECONE_METRIC, + PINECONE_CLOUD, +) +from open_webui.env import SRC_LOG_LEVELS + +NO_LIMIT = 10000 # Reasonable limit to avoid overwhelming the system +BATCH_SIZE = 100 # Recommended batch size for Pinecone operations + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["RAG"]) + + +class PineconeClient(VectorDBBase): + def __init__(self): + self.collection_prefix = "open-webui" + + # Validate required configuration + self._validate_config() + + # Store configuration values + self.api_key = PINECONE_API_KEY + self.environment = PINECONE_ENVIRONMENT + self.index_name = PINECONE_INDEX_NAME + self.dimension = PINECONE_DIMENSION + self.metric = PINECONE_METRIC + self.cloud = PINECONE_CLOUD + + # Initialize Pinecone client + self.client = Pinecone(api_key=self.api_key) + + # Create index if it doesn't exist + self._initialize_index() + + def _validate_config(self) -> None: + """Validate that all required configuration variables are set.""" + missing_vars = [] + if not PINECONE_API_KEY: + missing_vars.append("PINECONE_API_KEY") + if not PINECONE_ENVIRONMENT: + missing_vars.append("PINECONE_ENVIRONMENT") + if not PINECONE_INDEX_NAME: + missing_vars.append("PINECONE_INDEX_NAME") + if not PINECONE_DIMENSION: + missing_vars.append("PINECONE_DIMENSION") + if not PINECONE_CLOUD: + missing_vars.append("PINECONE_CLOUD") + + if missing_vars: + raise ValueError( + f"Required configuration missing: {', '.join(missing_vars)}" + ) + + def _initialize_index(self) -> None: + """Initialize the Pinecone index.""" + try: + # Check if index exists + if self.index_name not in self.client.list_indexes().names(): + log.info(f"Creating Pinecone index '{self.index_name}'...") + self.client.create_index( + name=self.index_name, + dimension=self.dimension, + metric=self.metric, + spec=ServerlessSpec(cloud=self.cloud, region=self.environment), + ) + log.info(f"Successfully created Pinecone index '{self.index_name}'") + else: + log.info(f"Using existing Pinecone index '{self.index_name}'") + + # Connect to the index + self.index = self.client.Index(self.index_name) + + except Exception as e: + log.error(f"Failed to initialize Pinecone index: {e}") + raise RuntimeError(f"Failed to initialize Pinecone index: {e}") + + def _create_points( + self, items: List[VectorItem], collection_name_with_prefix: str + ) -> List[Dict[str, Any]]: + """Convert VectorItem objects to Pinecone point format.""" + points = [] + for item in items: + # Start with any existing metadata or an empty dict + metadata = item.get("metadata", {}).copy() if item.get("metadata") else {} + + # Add text to metadata if available + if "text" in item: + metadata["text"] = item["text"] + + # Always add collection_name to metadata for filtering + metadata["collection_name"] = collection_name_with_prefix + + point = { + "id": item["id"], + "values": item["vector"], + "metadata": metadata, + } + points.append(point) + return points + + def _get_collection_name_with_prefix(self, collection_name: str) -> str: + """Get the collection name with prefix.""" + return f"{self.collection_prefix}_{collection_name}" + + def _normalize_distance(self, score: float) -> float: + """Normalize distance score based on the metric used.""" + if self.metric.lower() == "cosine": + # Cosine similarity ranges from -1 to 1, normalize to 0 to 1 + return (score + 1.0) / 2.0 + elif self.metric.lower() in ["euclidean", "dotproduct"]: + # These are already suitable for ranking (smaller is better for Euclidean) + return score + else: + # For other metrics, use as is + return score + + def _result_to_get_result(self, matches: list) -> GetResult: + """Convert Pinecone matches to GetResult format.""" + ids = [] + documents = [] + metadatas = [] + + for match in matches: + metadata = match.get("metadata", {}) + ids.append(match["id"]) + documents.append(metadata.get("text", "")) + metadatas.append(metadata) + + return GetResult( + **{ + "ids": [ids], + "documents": [documents], + "metadatas": [metadatas], + } + ) + + def has_collection(self, collection_name: str) -> bool: + """Check if a collection exists by searching for at least one item.""" + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + + try: + # Search for at least 1 item with this collection name in metadata + response = self.index.query( + vector=[0.0] * self.dimension, # dummy vector + top_k=1, + filter={"collection_name": collection_name_with_prefix}, + include_metadata=False, + ) + return len(response.matches) > 0 + except Exception as e: + log.exception( + f"Error checking collection '{collection_name_with_prefix}': {e}" + ) + return False + + def delete_collection(self, collection_name: str) -> None: + """Delete a collection by removing all vectors with the collection name in metadata.""" + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + try: + self.index.delete(filter={"collection_name": collection_name_with_prefix}) + log.info( + f"Collection '{collection_name_with_prefix}' deleted (all vectors removed)." + ) + except Exception as e: + log.warning( + f"Failed to delete collection '{collection_name_with_prefix}': {e}" + ) + raise + + def insert(self, collection_name: str, items: List[VectorItem]) -> None: + """Insert vectors into a collection.""" + if not items: + log.warning("No items to insert") + return + + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + points = self._create_points(items, collection_name_with_prefix) + + # Insert in batches for better performance and reliability + for i in range(0, len(points), BATCH_SIZE): + batch = points[i : i + BATCH_SIZE] + try: + self.index.upsert(vectors=batch) + log.debug( + f"Inserted batch of {len(batch)} vectors into '{collection_name_with_prefix}'" + ) + except Exception as e: + log.error( + f"Error inserting batch into '{collection_name_with_prefix}': {e}" + ) + raise + + log.info( + f"Successfully inserted {len(items)} vectors into '{collection_name_with_prefix}'" + ) + + def upsert(self, collection_name: str, items: List[VectorItem]) -> None: + """Upsert (insert or update) vectors into a collection.""" + if not items: + log.warning("No items to upsert") + return + + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + points = self._create_points(items, collection_name_with_prefix) + + # Upsert in batches + for i in range(0, len(points), BATCH_SIZE): + batch = points[i : i + BATCH_SIZE] + try: + self.index.upsert(vectors=batch) + log.debug( + f"Upserted batch of {len(batch)} vectors into '{collection_name_with_prefix}'" + ) + except Exception as e: + log.error( + f"Error upserting batch into '{collection_name_with_prefix}': {e}" + ) + raise + + log.info( + f"Successfully upserted {len(items)} vectors into '{collection_name_with_prefix}'" + ) + + def search( + self, collection_name: str, vectors: List[List[Union[float, int]]], limit: int + ) -> Optional[SearchResult]: + """Search for similar vectors in a collection.""" + if not vectors or not vectors[0]: + log.warning("No vectors provided for search") + return None + + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + + if limit is None or limit <= 0: + limit = NO_LIMIT + + try: + # Search using the first vector (assuming this is the intended behavior) + query_vector = vectors[0] + + # Perform the search + query_response = self.index.query( + vector=query_vector, + top_k=limit, + include_metadata=True, + filter={"collection_name": collection_name_with_prefix}, + ) + + if not query_response.matches: + # Return empty result if no matches + return SearchResult( + ids=[[]], + documents=[[]], + metadatas=[[]], + distances=[[]], + ) + + # Convert to GetResult format + get_result = self._result_to_get_result(query_response.matches) + + # Calculate normalized distances based on metric + distances = [ + [ + self._normalize_distance(match.score) + for match in query_response.matches + ] + ] + + return SearchResult( + ids=get_result.ids, + documents=get_result.documents, + metadatas=get_result.metadatas, + distances=distances, + ) + except Exception as e: + log.error(f"Error searching in '{collection_name_with_prefix}': {e}") + return None + + def query( + self, collection_name: str, filter: Dict, limit: Optional[int] = None + ) -> Optional[GetResult]: + """Query vectors by metadata filter.""" + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + + if limit is None or limit <= 0: + limit = NO_LIMIT + + try: + # Create a zero vector for the dimension as Pinecone requires a vector + zero_vector = [0.0] * self.dimension + + # Combine user filter with collection_name + pinecone_filter = {"collection_name": collection_name_with_prefix} + if filter: + pinecone_filter.update(filter) + + # Perform metadata-only query + query_response = self.index.query( + vector=zero_vector, + filter=pinecone_filter, + top_k=limit, + include_metadata=True, + ) + + return self._result_to_get_result(query_response.matches) + + except Exception as e: + log.error(f"Error querying collection '{collection_name}': {e}") + return None + + def get(self, collection_name: str) -> Optional[GetResult]: + """Get all vectors in a collection.""" + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + + try: + # Use a zero vector for fetching all entries + zero_vector = [0.0] * self.dimension + + # Add filter to only get vectors for this collection + query_response = self.index.query( + vector=zero_vector, + top_k=NO_LIMIT, + include_metadata=True, + filter={"collection_name": collection_name_with_prefix}, + ) + + return self._result_to_get_result(query_response.matches) + + except Exception as e: + log.error(f"Error getting collection '{collection_name}': {e}") + return None + + def delete( + self, + collection_name: str, + ids: Optional[List[str]] = None, + filter: Optional[Dict] = None, + ) -> None: + """Delete vectors by IDs or filter.""" + collection_name_with_prefix = self._get_collection_name_with_prefix( + collection_name + ) + + try: + if ids: + # Delete by IDs (in batches for large deletions) + for i in range(0, len(ids), BATCH_SIZE): + batch_ids = ids[i : i + BATCH_SIZE] + # Note: When deleting by ID, we can't filter by collection_name + # This is a limitation of Pinecone - be careful with ID uniqueness + self.index.delete(ids=batch_ids) + log.debug( + f"Deleted batch of {len(batch_ids)} vectors by ID from '{collection_name_with_prefix}'" + ) + log.info( + f"Successfully deleted {len(ids)} vectors by ID from '{collection_name_with_prefix}'" + ) + + elif filter: + # Combine user filter with collection_name + pinecone_filter = {"collection_name": collection_name_with_prefix} + if filter: + pinecone_filter.update(filter) + # Delete by metadata filter + self.index.delete(filter=pinecone_filter) + log.info( + f"Successfully deleted vectors by filter from '{collection_name_with_prefix}'" + ) + + else: + log.warning("No ids or filter provided for delete operation") + + except Exception as e: + log.error(f"Error deleting from collection '{collection_name}': {e}") + raise + + def reset(self) -> None: + """Reset the database by deleting all collections.""" + try: + self.index.delete(delete_all=True) + log.info("All vectors successfully deleted from the index.") + except Exception as e: + log.error(f"Failed to reset Pinecone index: {e}") + raise diff --git a/backend/open_webui/retrieval/vector/dbs/qdrant.py b/backend/open_webui/retrieval/vector/dbs/qdrant.py index be0df6c6a..dfe297907 100644 --- a/backend/open_webui/retrieval/vector/dbs/qdrant.py +++ b/backend/open_webui/retrieval/vector/dbs/qdrant.py @@ -1,12 +1,24 @@ from typing import Optional import logging +from urllib.parse import urlparse from qdrant_client import QdrantClient as Qclient from qdrant_client.http.models import PointStruct from qdrant_client.models import models -from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult -from open_webui.config import QDRANT_URI, QDRANT_API_KEY +from open_webui.retrieval.vector.main import ( + VectorDBBase, + VectorItem, + SearchResult, + GetResult, +) +from open_webui.config import ( + QDRANT_URI, + QDRANT_API_KEY, + QDRANT_ON_DISK, + QDRANT_GRPC_PORT, + QDRANT_PREFER_GRPC, +) from open_webui.env import SRC_LOG_LEVELS NO_LIMIT = 999999999 @@ -15,16 +27,34 @@ log = logging.getLogger(__name__) log.setLevel(SRC_LOG_LEVELS["RAG"]) -class QdrantClient: +class QdrantClient(VectorDBBase): def __init__(self): self.collection_prefix = "open-webui" self.QDRANT_URI = QDRANT_URI self.QDRANT_API_KEY = QDRANT_API_KEY - self.client = ( - Qclient(url=self.QDRANT_URI, api_key=self.QDRANT_API_KEY) - if self.QDRANT_URI - else None - ) + self.QDRANT_ON_DISK = QDRANT_ON_DISK + self.PREFER_GRPC = QDRANT_PREFER_GRPC + self.GRPC_PORT = QDRANT_GRPC_PORT + + if not self.QDRANT_URI: + self.client = None + return + + # Unified handling for either scheme + parsed = urlparse(self.QDRANT_URI) + host = parsed.hostname or self.QDRANT_URI + http_port = parsed.port or 6333 # default REST port + + if self.PREFER_GRPC: + self.client = Qclient( + host=host, + port=http_port, + grpc_port=self.GRPC_PORT, + prefer_grpc=self.PREFER_GRPC, + api_key=self.QDRANT_API_KEY, + ) + else: + self.client = Qclient(url=self.QDRANT_URI, api_key=self.QDRANT_API_KEY) def _result_to_get_result(self, points) -> GetResult: ids = [] @@ -50,7 +80,9 @@ class QdrantClient: self.client.create_collection( collection_name=collection_name_with_prefix, vectors_config=models.VectorParams( - size=dimension, distance=models.Distance.COSINE + size=dimension, + distance=models.Distance.COSINE, + on_disk=self.QDRANT_ON_DISK, ), ) diff --git a/backend/open_webui/retrieval/vector/main.py b/backend/open_webui/retrieval/vector/main.py index f0cf0c038..53f752f57 100644 --- a/backend/open_webui/retrieval/vector/main.py +++ b/backend/open_webui/retrieval/vector/main.py @@ -1,5 +1,6 @@ from pydantic import BaseModel -from typing import Optional, List, Any +from abc import ABC, abstractmethod +from typing import Any, Dict, List, Optional, Union class VectorItem(BaseModel): @@ -17,3 +18,69 @@ class GetResult(BaseModel): class SearchResult(GetResult): distances: Optional[List[List[float | int]]] + + +class VectorDBBase(ABC): + """ + Abstract base class for all vector database backends. + + Implementations of this class provide methods for collection management, + vector insertion, deletion, similarity search, and metadata filtering. + + Any custom vector database integration must inherit from this class and + implement all abstract methods. + """ + + @abstractmethod + def has_collection(self, collection_name: str) -> bool: + """Check if the collection exists in the vector DB.""" + pass + + @abstractmethod + def delete_collection(self, collection_name: str) -> None: + """Delete a collection from the vector DB.""" + pass + + @abstractmethod + def insert(self, collection_name: str, items: List[VectorItem]) -> None: + """Insert a list of vector items into a collection.""" + pass + + @abstractmethod + def upsert(self, collection_name: str, items: List[VectorItem]) -> None: + """Insert or update vector items in a collection.""" + pass + + @abstractmethod + def search( + self, collection_name: str, vectors: List[List[Union[float, int]]], limit: int + ) -> Optional[SearchResult]: + """Search for similar vectors in a collection.""" + pass + + @abstractmethod + def query( + self, collection_name: str, filter: Dict, limit: Optional[int] = None + ) -> Optional[GetResult]: + """Query vectors from a collection using metadata filter.""" + pass + + @abstractmethod + def get(self, collection_name: str) -> Optional[GetResult]: + """Retrieve all vectors from a collection.""" + pass + + @abstractmethod + def delete( + self, + collection_name: str, + ids: Optional[List[str]] = None, + filter: Optional[Dict] = None, + ) -> None: + """Delete vectors by ID or filter from a collection.""" + pass + + @abstractmethod + def reset(self) -> None: + """Reset the vector database by removing all collections or those matching a condition.""" + pass diff --git a/backend/open_webui/retrieval/web/external.py b/backend/open_webui/retrieval/web/external.py new file mode 100644 index 000000000..a5c8003e4 --- /dev/null +++ b/backend/open_webui/retrieval/web/external.py @@ -0,0 +1,47 @@ +import logging +from typing import Optional, List + +import requests +from open_webui.retrieval.web.main import SearchResult, get_filtered_results +from open_webui.env import SRC_LOG_LEVELS + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["RAG"]) + + +def search_external( + external_url: str, + external_api_key: str, + query: str, + count: int, + filter_list: Optional[List[str]] = None, +) -> List[SearchResult]: + try: + response = requests.post( + external_url, + headers={ + "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", + "Authorization": f"Bearer {external_api_key}", + }, + json={ + "query": query, + "count": count, + }, + ) + response.raise_for_status() + results = response.json() + if filter_list: + results = get_filtered_results(results, filter_list) + results = [ + SearchResult( + link=result.get("link"), + title=result.get("title"), + snippet=result.get("snippet"), + ) + for result in results[:count] + ] + log.info(f"External search results: {results}") + return results + except Exception as e: + log.error(f"Error in External search: {e}") + return [] diff --git a/backend/open_webui/retrieval/web/firecrawl.py b/backend/open_webui/retrieval/web/firecrawl.py new file mode 100644 index 000000000..a85fc51fb --- /dev/null +++ b/backend/open_webui/retrieval/web/firecrawl.py @@ -0,0 +1,49 @@ +import logging +from typing import Optional, List +from urllib.parse import urljoin + +import requests +from open_webui.retrieval.web.main import SearchResult, get_filtered_results +from open_webui.env import SRC_LOG_LEVELS + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["RAG"]) + + +def search_firecrawl( + firecrawl_url: str, + firecrawl_api_key: str, + query: str, + count: int, + filter_list: Optional[List[str]] = None, +) -> List[SearchResult]: + try: + firecrawl_search_url = urljoin(firecrawl_url, "/v1/search") + response = requests.post( + firecrawl_search_url, + headers={ + "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", + "Authorization": f"Bearer {firecrawl_api_key}", + }, + json={ + "query": query, + "limit": count, + }, + ) + response.raise_for_status() + results = response.json().get("data", []) + if filter_list: + results = get_filtered_results(results, filter_list) + results = [ + SearchResult( + link=result.get("url"), + title=result.get("title"), + snippet=result.get("description"), + ) + for result in results[:count] + ] + log.info(f"External search results: {results}") + return results + except Exception as e: + log.error(f"Error in External search: {e}") + return [] diff --git a/backend/open_webui/retrieval/web/tavily.py b/backend/open_webui/retrieval/web/tavily.py index da70aa8e7..bfd102afa 100644 --- a/backend/open_webui/retrieval/web/tavily.py +++ b/backend/open_webui/retrieval/web/tavily.py @@ -2,7 +2,7 @@ import logging from typing import Optional import requests -from open_webui.retrieval.web.main import SearchResult +from open_webui.retrieval.web.main import SearchResult, get_filtered_results from open_webui.env import SRC_LOG_LEVELS log = logging.getLogger(__name__) @@ -21,18 +21,25 @@ def search_tavily( Args: api_key (str): A Tavily Search API key query (str): The query to search for + count (int): The maximum number of results to return Returns: list[SearchResult]: A list of search results """ url = "https://api.tavily.com/search" - data = {"query": query, "api_key": api_key} - response = requests.post(url, json=data) + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {api_key}", + } + data = {"query": query, "max_results": count} + response = requests.post(url, headers=headers, json=data) response.raise_for_status() json_response = response.json() - raw_search_results = json_response.get("results", []) + results = json_response.get("results", []) + if filter_list: + results = get_filtered_results(results, filter_list) return [ SearchResult( @@ -40,5 +47,5 @@ def search_tavily( title=result.get("title", ""), snippet=result.get("content"), ) - for result in raw_search_results[:count] + for result in results ] diff --git a/backend/open_webui/retrieval/web/utils.py b/backend/open_webui/retrieval/web/utils.py index 718cfe52f..78c962f15 100644 --- a/backend/open_webui/retrieval/web/utils.py +++ b/backend/open_webui/retrieval/web/utils.py @@ -25,6 +25,7 @@ from langchain_community.document_loaders.firecrawl import FireCrawlLoader from langchain_community.document_loaders.base import BaseLoader from langchain_core.documents import Document from open_webui.retrieval.loaders.tavily import TavilyLoader +from open_webui.retrieval.loaders.external import ExternalLoader from open_webui.constants import ERROR_MESSAGES from open_webui.config import ( ENABLE_RAG_LOCAL_WEB_FETCH, @@ -35,6 +36,8 @@ from open_webui.config import ( FIRECRAWL_API_KEY, TAVILY_API_KEY, TAVILY_EXTRACT_DEPTH, + EXTERNAL_WEB_LOADER_URL, + EXTERNAL_WEB_LOADER_API_KEY, ) from open_webui.env import SRC_LOG_LEVELS @@ -167,7 +170,7 @@ class SafeFireCrawlLoader(BaseLoader, RateLimitMixin, URLProcessingMixin): continue_on_failure: bool = True, api_key: Optional[str] = None, api_url: Optional[str] = None, - mode: Literal["crawl", "scrape", "map"] = "crawl", + mode: Literal["crawl", "scrape", "map"] = "scrape", proxy: Optional[Dict[str, str]] = None, params: Optional[Dict] = None, ): @@ -225,7 +228,10 @@ class SafeFireCrawlLoader(BaseLoader, RateLimitMixin, URLProcessingMixin): mode=self.mode, params=self.params, ) - yield from loader.lazy_load() + for document in loader.lazy_load(): + if not document.metadata.get("source"): + document.metadata["source"] = document.metadata.get("sourceURL") + yield document except Exception as e: if self.continue_on_failure: log.exception(f"Error loading {url}: {e}") @@ -245,6 +251,8 @@ class SafeFireCrawlLoader(BaseLoader, RateLimitMixin, URLProcessingMixin): params=self.params, ) async for document in loader.alazy_load(): + if not document.metadata.get("source"): + document.metadata["source"] = document.metadata.get("sourceURL") yield document except Exception as e: if self.continue_on_failure: @@ -619,6 +627,11 @@ def get_web_loader( web_loader_args["api_key"] = TAVILY_API_KEY.value web_loader_args["extract_depth"] = TAVILY_EXTRACT_DEPTH.value + if WEB_LOADER_ENGINE.value == "external": + WebLoaderClass = ExternalLoader + web_loader_args["external_url"] = EXTERNAL_WEB_LOADER_URL.value + web_loader_args["external_api_key"] = EXTERNAL_WEB_LOADER_API_KEY.value + if WebLoaderClass: web_loader = WebLoaderClass(**web_loader_args) diff --git a/backend/open_webui/retrieval/web/yacy.py b/backend/open_webui/retrieval/web/yacy.py new file mode 100644 index 000000000..bc61425cb --- /dev/null +++ b/backend/open_webui/retrieval/web/yacy.py @@ -0,0 +1,87 @@ +import logging +from typing import Optional + +import requests +from requests.auth import HTTPDigestAuth +from open_webui.retrieval.web.main import SearchResult, get_filtered_results +from open_webui.env import SRC_LOG_LEVELS + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["RAG"]) + + +def search_yacy( + query_url: str, + username: Optional[str], + password: Optional[str], + query: str, + count: int, + filter_list: Optional[list[str]] = None, +) -> list[SearchResult]: + """ + Search a Yacy instance for a given query and return the results as a list of SearchResult objects. + + The function accepts username and password for authenticating to Yacy. + + Args: + query_url (str): The base URL of the Yacy server. + username (str): Optional YaCy username. + password (str): Optional YaCy password. + query (str): The search term or question to find in the Yacy database. + count (int): The maximum number of results to retrieve from the search. + + Returns: + list[SearchResult]: A list of SearchResults sorted by relevance score in descending order. + + Raise: + requests.exceptions.RequestException: If a request error occurs during the search process. + """ + + # Use authentication if either username or password is set + yacy_auth = None + if username or password: + yacy_auth = HTTPDigestAuth(username, password) + + params = { + "query": query, + "contentdom": "text", + "resource": "global", + "maximumRecords": count, + "nav": "none", + } + + # Check if provided a json API URL + if not query_url.endswith("yacysearch.json"): + # Strip all query parameters from the URL + query_url = query_url.rstrip("/") + "/yacysearch.json" + + log.debug(f"searching {query_url}") + + response = requests.get( + query_url, + auth=yacy_auth, + headers={ + "User-Agent": "Open WebUI (https://github.com/open-webui/open-webui) RAG Bot", + "Accept": "text/html", + "Accept-Encoding": "gzip, deflate", + "Accept-Language": "en-US,en;q=0.5", + "Connection": "keep-alive", + }, + params=params, + ) + + response.raise_for_status() # Raise an exception for HTTP errors. + + json_response = response.json() + results = json_response.get("channels", [{}])[0].get("items", []) + sorted_results = sorted(results, key=lambda x: x.get("ranking", 0), reverse=True) + if filter_list: + sorted_results = get_filtered_results(sorted_results, filter_list) + return [ + SearchResult( + link=result["link"], + title=result.get("title"), + snippet=result.get("description"), + ) + for result in sorted_results[:count] + ] diff --git a/backend/open_webui/routers/audio.py b/backend/open_webui/routers/audio.py index da51d1ecf..fba41af4c 100644 --- a/backend/open_webui/routers/audio.py +++ b/backend/open_webui/routers/audio.py @@ -33,6 +33,7 @@ from open_webui.config import ( WHISPER_MODEL_AUTO_UPDATE, WHISPER_MODEL_DIR, CACHE_DIR, + WHISPER_LANGUAGE, ) from open_webui.constants import ERROR_MESSAGES @@ -150,6 +151,8 @@ class STTConfigForm(BaseModel): AZURE_API_KEY: str AZURE_REGION: str AZURE_LOCALES: str + AZURE_BASE_URL: str + AZURE_MAX_SPEAKERS: str class AudioConfigUpdateForm(BaseModel): @@ -181,6 +184,8 @@ async def get_audio_config(request: Request, user=Depends(get_admin_user)): "AZURE_API_KEY": request.app.state.config.AUDIO_STT_AZURE_API_KEY, "AZURE_REGION": request.app.state.config.AUDIO_STT_AZURE_REGION, "AZURE_LOCALES": request.app.state.config.AUDIO_STT_AZURE_LOCALES, + "AZURE_BASE_URL": request.app.state.config.AUDIO_STT_AZURE_BASE_URL, + "AZURE_MAX_SPEAKERS": request.app.state.config.AUDIO_STT_AZURE_MAX_SPEAKERS, }, } @@ -210,6 +215,10 @@ async def update_audio_config( request.app.state.config.AUDIO_STT_AZURE_API_KEY = form_data.stt.AZURE_API_KEY request.app.state.config.AUDIO_STT_AZURE_REGION = form_data.stt.AZURE_REGION request.app.state.config.AUDIO_STT_AZURE_LOCALES = form_data.stt.AZURE_LOCALES + request.app.state.config.AUDIO_STT_AZURE_BASE_URL = form_data.stt.AZURE_BASE_URL + request.app.state.config.AUDIO_STT_AZURE_MAX_SPEAKERS = ( + form_data.stt.AZURE_MAX_SPEAKERS + ) if request.app.state.config.STT_ENGINE == "": request.app.state.faster_whisper_model = set_faster_whisper_model( @@ -238,6 +247,8 @@ async def update_audio_config( "AZURE_API_KEY": request.app.state.config.AUDIO_STT_AZURE_API_KEY, "AZURE_REGION": request.app.state.config.AUDIO_STT_AZURE_REGION, "AZURE_LOCALES": request.app.state.config.AUDIO_STT_AZURE_LOCALES, + "AZURE_BASE_URL": request.app.state.config.AUDIO_STT_AZURE_BASE_URL, + "AZURE_MAX_SPEAKERS": request.app.state.config.AUDIO_STT_AZURE_MAX_SPEAKERS, }, } @@ -501,6 +512,7 @@ def transcribe(request: Request, file_path): file_path, beam_size=5, vad_filter=request.app.state.config.WHISPER_VAD_FILTER, + language=WHISPER_LANGUAGE, ) log.info( "Detected language '%s' with probability %f" @@ -641,6 +653,8 @@ def transcribe(request: Request, file_path): api_key = request.app.state.config.AUDIO_STT_AZURE_API_KEY region = request.app.state.config.AUDIO_STT_AZURE_REGION locales = request.app.state.config.AUDIO_STT_AZURE_LOCALES + base_url = request.app.state.config.AUDIO_STT_AZURE_BASE_URL + max_speakers = request.app.state.config.AUDIO_STT_AZURE_MAX_SPEAKERS # IF NO LOCALES, USE DEFAULTS if len(locales) < 2: @@ -664,7 +678,13 @@ def transcribe(request: Request, file_path): if not api_key or not region: raise HTTPException( status_code=400, - detail="Azure API key and region are required for Azure STT", + detail="Azure API key is required for Azure STT", + ) + + if not base_url and not region: + raise HTTPException( + status_code=400, + detail="Azure region or base url is required for Azure STT", ) r = None @@ -674,13 +694,17 @@ def transcribe(request: Request, file_path): "definition": json.dumps( { "locales": locales.split(","), - "diarization": {"maxSpeakers": 3, "enabled": True}, + "diarization": {"maxSpeakers": max_speakers, "enabled": True}, } if locales else {} ) } - url = f"https://{region}.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-11-15" + + url = ( + base_url + or f"https://{region}.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-11-15" + ) # Use context manager to ensure file is properly closed with open(file_path, "rb") as audio_file: diff --git a/backend/open_webui/routers/auths.py b/backend/open_webui/routers/auths.py index a9c7f68a0..4c79b0316 100644 --- a/backend/open_webui/routers/auths.py +++ b/backend/open_webui/routers/auths.py @@ -27,20 +27,24 @@ from open_webui.env import ( WEBUI_AUTH_TRUSTED_NAME_HEADER, WEBUI_AUTH_COOKIE_SAME_SITE, WEBUI_AUTH_COOKIE_SECURE, + WEBUI_AUTH_SIGNOUT_REDIRECT_URL, SRC_LOG_LEVELS, ) from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi.responses import RedirectResponse, Response from open_webui.config import OPENID_PROVIDER_URL, ENABLE_OAUTH_SIGNUP, ENABLE_LDAP from pydantic import BaseModel + from open_webui.utils.misc import parse_duration, validate_email_format from open_webui.utils.auth import ( + decode_token, create_api_key, create_token, get_admin_user, get_verified_user, get_current_user, get_password_hash, + get_http_authorization_cred, ) from open_webui.utils.webhook import post_webhook from open_webui.utils.access_control import get_permissions @@ -72,27 +76,29 @@ class SessionUserResponse(Token, UserResponse): async def get_session_user( request: Request, response: Response, user=Depends(get_current_user) ): - expires_delta = parse_duration(request.app.state.config.JWT_EXPIRES_IN) - expires_at = None - if expires_delta: - expires_at = int(time.time()) + int(expires_delta.total_seconds()) - token = create_token( - data={"id": user.id}, - expires_delta=expires_delta, - ) + auth_header = request.headers.get("Authorization") + auth_token = get_http_authorization_cred(auth_header) + token = auth_token.credentials + data = decode_token(token) - datetime_expires_at = ( - datetime.datetime.fromtimestamp(expires_at, datetime.timezone.utc) - if expires_at - else None - ) + expires_at = data.get("exp") + + if (expires_at is not None) and int(time.time()) > expires_at: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.INVALID_TOKEN, + ) # Set the cookie token response.set_cookie( key="token", value=token, - expires=datetime_expires_at, + expires=( + datetime.datetime.fromtimestamp(expires_at, datetime.timezone.utc) + if expires_at + else None + ), httponly=True, # Ensures the cookie is not accessible via JavaScript samesite=WEBUI_AUTH_COOKIE_SAME_SITE, secure=WEBUI_AUTH_COOKIE_SECURE, @@ -288,18 +294,30 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): user = Auths.authenticate_user_by_trusted_header(email) if user: + expires_delta = parse_duration(request.app.state.config.JWT_EXPIRES_IN) + expires_at = None + if expires_delta: + expires_at = int(time.time()) + int(expires_delta.total_seconds()) + token = create_token( data={"id": user.id}, - expires_delta=parse_duration( - request.app.state.config.JWT_EXPIRES_IN - ), + expires_delta=expires_delta, ) # Set the cookie token response.set_cookie( key="token", value=token, + expires=( + datetime.datetime.fromtimestamp( + expires_at, datetime.timezone.utc + ) + if expires_at + else None + ), httponly=True, # Ensures the cookie is not accessible via JavaScript + samesite=WEBUI_AUTH_COOKIE_SAME_SITE, + secure=WEBUI_AUTH_COOKIE_SECURE, ) user_permissions = get_permissions( @@ -309,6 +327,7 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm): return { "token": token, "token_type": "Bearer", + "expires_at": expires_at, "id": user.id, "email": user.email, "name": user.name, @@ -566,6 +585,12 @@ async def signout(request: Request, response: Response): detail="Failed to sign out from the OpenID provider.", ) + if WEBUI_AUTH_SIGNOUT_REDIRECT_URL: + return RedirectResponse( + headers=response.headers, + url=WEBUI_AUTH_SIGNOUT_REDIRECT_URL, + ) + return {"status": True} @@ -664,6 +689,7 @@ async def get_admin_config(request: Request, user=Depends(get_admin_user)): "ENABLE_COMMUNITY_SHARING": request.app.state.config.ENABLE_COMMUNITY_SHARING, "ENABLE_MESSAGE_RATING": request.app.state.config.ENABLE_MESSAGE_RATING, "ENABLE_CHANNELS": request.app.state.config.ENABLE_CHANNELS, + "ENABLE_NOTES": request.app.state.config.ENABLE_NOTES, "ENABLE_USER_WEBHOOKS": request.app.state.config.ENABLE_USER_WEBHOOKS, } @@ -680,6 +706,7 @@ class AdminConfig(BaseModel): ENABLE_COMMUNITY_SHARING: bool ENABLE_MESSAGE_RATING: bool ENABLE_CHANNELS: bool + ENABLE_NOTES: bool ENABLE_USER_WEBHOOKS: bool @@ -700,6 +727,7 @@ async def update_admin_config( ) request.app.state.config.ENABLE_CHANNELS = form_data.ENABLE_CHANNELS + request.app.state.config.ENABLE_NOTES = form_data.ENABLE_NOTES if form_data.DEFAULT_USER_ROLE in ["pending", "user", "admin"]: request.app.state.config.DEFAULT_USER_ROLE = form_data.DEFAULT_USER_ROLE @@ -724,11 +752,12 @@ async def update_admin_config( "ENABLE_API_KEY": request.app.state.config.ENABLE_API_KEY, "ENABLE_API_KEY_ENDPOINT_RESTRICTIONS": request.app.state.config.ENABLE_API_KEY_ENDPOINT_RESTRICTIONS, "API_KEY_ALLOWED_ENDPOINTS": request.app.state.config.API_KEY_ALLOWED_ENDPOINTS, - "ENABLE_CHANNELS": request.app.state.config.ENABLE_CHANNELS, "DEFAULT_USER_ROLE": request.app.state.config.DEFAULT_USER_ROLE, "JWT_EXPIRES_IN": request.app.state.config.JWT_EXPIRES_IN, "ENABLE_COMMUNITY_SHARING": request.app.state.config.ENABLE_COMMUNITY_SHARING, "ENABLE_MESSAGE_RATING": request.app.state.config.ENABLE_MESSAGE_RATING, + "ENABLE_CHANNELS": request.app.state.config.ENABLE_CHANNELS, + "ENABLE_NOTES": request.app.state.config.ENABLE_NOTES, "ENABLE_USER_WEBHOOKS": request.app.state.config.ENABLE_USER_WEBHOOKS, } diff --git a/backend/open_webui/routers/chats.py b/backend/open_webui/routers/chats.py index 5fd44ab9f..6f00dd4d7 100644 --- a/backend/open_webui/routers/chats.py +++ b/backend/open_webui/routers/chats.py @@ -638,8 +638,17 @@ async def archive_chat_by_id(id: str, user=Depends(get_verified_user)): @router.post("/{id}/share", response_model=Optional[ChatResponse]) -async def share_chat_by_id(id: str, user=Depends(get_verified_user)): +async def share_chat_by_id(request: Request, id: str, user=Depends(get_verified_user)): + if not has_permission( + user.id, "chat.share", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.ACCESS_PROHIBITED, + ) + chat = Chats.get_chat_by_id_and_user_id(id, user.id) + if chat: if chat.share_id: shared_chat = Chats.update_shared_chat_by_chat_id(chat.id) diff --git a/backend/open_webui/routers/files.py b/backend/open_webui/routers/files.py index 8a2888d86..d963cd632 100644 --- a/backend/open_webui/routers/files.py +++ b/backend/open_webui/routers/files.py @@ -19,6 +19,8 @@ from fastapi import ( from fastapi.responses import FileResponse, StreamingResponse from open_webui.constants import ERROR_MESSAGES from open_webui.env import SRC_LOG_LEVELS + +from open_webui.models.users import Users from open_webui.models.files import ( FileForm, FileModel, @@ -83,10 +85,12 @@ def upload_file( request: Request, file: UploadFile = File(...), user=Depends(get_verified_user), - file_metadata: dict = {}, + file_metadata: dict = None, process: bool = Query(True), ): log.info(f"file.content_type: {file.content_type}") + + file_metadata = file_metadata if file_metadata else {} try: unsanitized_filename = file.filename filename = os.path.basename(unsanitized_filename) @@ -95,7 +99,13 @@ def upload_file( id = str(uuid.uuid4()) name = filename filename = f"{id}_{filename}" - contents, file_path = Storage.upload_file(file.file, filename) + tags = { + "OpenWebUI-User-Email": user.email, + "OpenWebUI-User-Id": user.id, + "OpenWebUI-User-Name": user.name, + "OpenWebUI-File-Id": id, + } + contents, file_path = Storage.upload_file(file.file, filename, tags) file_item = Files.insert_new_file( user.id, @@ -115,12 +125,16 @@ def upload_file( ) if process: try: - if file.content_type in [ - "audio/mpeg", - "audio/wav", - "audio/ogg", - "audio/x-m4a", - ]: + + if file.content_type.startswith( + ( + "audio/mpeg", + "audio/wav", + "audio/ogg", + "audio/x-m4a", + "audio/webm", + ) + ): file_path = Storage.get_file(file_path) result = transcribe(request, file_path) @@ -129,7 +143,15 @@ def upload_file( ProcessFileForm(file_id=id, content=result.get("text", "")), user=user, ) - elif file.content_type not in ["image/png", "image/jpeg", "image/gif"]: + elif file.content_type not in [ + "image/png", + "image/jpeg", + "image/gif", + "video/mp4", + "video/ogg", + "video/quicktime", + "video/webm", + ]: process_file(request, ProcessFileForm(file_id=id), user=user) file_item = Files.get_file_by_id(id=id) @@ -173,7 +195,8 @@ async def list_files(user=Depends(get_verified_user), content: bool = Query(True if not content: for file in files: - del file.data["content"] + if "content" in file.data: + del file.data["content"] return files @@ -214,7 +237,8 @@ async def search_files( if not content: for file in matching_files: - del file.data["content"] + if "content" in file.data: + del file.data["content"] return matching_files @@ -431,6 +455,13 @@ async def get_html_file_content_by_id(id: str, user=Depends(get_verified_user)): detail=ERROR_MESSAGES.NOT_FOUND, ) + file_user = Users.get_user_by_id(file.user_id) + if not file_user.role == "admin": + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=ERROR_MESSAGES.NOT_FOUND, + ) + if ( file.user_id == user.id or user.role == "admin" diff --git a/backend/open_webui/routers/images.py b/backend/open_webui/routers/images.py index 275704f34..22fd8ac71 100644 --- a/backend/open_webui/routers/images.py +++ b/backend/open_webui/routers/images.py @@ -500,7 +500,11 @@ async def image_generations( if form_data.size else request.app.state.config.IMAGE_SIZE ), - "response_format": "b64_json", + **( + {"response_format": "b64_json"} + if "gpt-image-1" in request.app.state.config.IMAGE_GENERATION_MODEL + else {} + ), } # Use asyncio.to_thread for the requests.post call diff --git a/backend/open_webui/routers/knowledge.py b/backend/open_webui/routers/knowledge.py index 15547afa7..920130858 100644 --- a/backend/open_webui/routers/knowledge.py +++ b/backend/open_webui/routers/knowledge.py @@ -9,7 +9,7 @@ from open_webui.models.knowledge import ( KnowledgeResponse, KnowledgeUserResponse, ) -from open_webui.models.files import Files, FileModel +from open_webui.models.files import Files, FileModel, FileMetadataResponse from open_webui.retrieval.vector.connector import VECTOR_DB_CLIENT from open_webui.routers.retrieval import ( process_file, @@ -178,10 +178,26 @@ async def reindex_knowledge_files(request: Request, user=Depends(get_verified_us log.info(f"Starting reindexing for {len(knowledge_bases)} knowledge bases") - for knowledge_base in knowledge_bases: - try: - files = Files.get_files_by_ids(knowledge_base.data.get("file_ids", [])) + deleted_knowledge_bases = [] + for knowledge_base in knowledge_bases: + # -- Robust error handling for missing or invalid data + if not knowledge_base.data or not isinstance(knowledge_base.data, dict): + log.warning( + f"Knowledge base {knowledge_base.id} has no data or invalid data ({knowledge_base.data!r}). Deleting." + ) + try: + Knowledges.delete_knowledge_by_id(id=knowledge_base.id) + deleted_knowledge_bases.append(knowledge_base.id) + except Exception as e: + log.error( + f"Failed to delete invalid knowledge base {knowledge_base.id}: {e}" + ) + continue + + try: + file_ids = knowledge_base.data.get("file_ids", []) + files = Files.get_files_by_ids(file_ids) try: if VECTOR_DB_CLIENT.has_collection(collection_name=knowledge_base.id): VECTOR_DB_CLIENT.delete_collection( @@ -189,10 +205,7 @@ async def reindex_knowledge_files(request: Request, user=Depends(get_verified_us ) except Exception as e: log.error(f"Error deleting collection {knowledge_base.id}: {str(e)}") - raise HTTPException( - status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail=f"Error deleting vector DB collection", - ) + continue # Skip, don't raise failed_files = [] for file in files: @@ -213,10 +226,8 @@ async def reindex_knowledge_files(request: Request, user=Depends(get_verified_us except Exception as e: log.error(f"Error processing knowledge base {knowledge_base.id}: {str(e)}") - raise HTTPException( - status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail=f"Error processing knowledge base", - ) + # Don't raise, just continue + continue if failed_files: log.warning( @@ -225,7 +236,9 @@ async def reindex_knowledge_files(request: Request, user=Depends(get_verified_us for failed in failed_files: log.warning(f"File ID: {failed['file_id']}, Error: {failed['error']}") - log.info("Reindexing completed successfully") + log.info( + f"Reindexing completed. Deleted {len(deleted_knowledge_bases)} invalid knowledge bases: {deleted_knowledge_bases}" + ) return True @@ -235,7 +248,7 @@ async def reindex_knowledge_files(request: Request, user=Depends(get_verified_us class KnowledgeFilesResponse(KnowledgeResponse): - files: list[FileModel] + files: list[FileMetadataResponse] @router.get("/{id}", response_model=Optional[KnowledgeFilesResponse]) @@ -251,7 +264,7 @@ async def get_knowledge_by_id(id: str, user=Depends(get_verified_user)): ): file_ids = knowledge.data.get("file_ids", []) if knowledge.data else [] - files = Files.get_files_by_ids(file_ids) + files = Files.get_file_metadatas_by_ids(file_ids) return KnowledgeFilesResponse( **knowledge.model_dump(), @@ -379,7 +392,7 @@ def add_file_to_knowledge_by_id( knowledge = Knowledges.update_knowledge_data_by_id(id=id, data=data) if knowledge: - files = Files.get_files_by_ids(file_ids) + files = Files.get_file_metadatas_by_ids(file_ids) return KnowledgeFilesResponse( **knowledge.model_dump(), @@ -456,7 +469,7 @@ def update_file_from_knowledge_by_id( data = knowledge.data or {} file_ids = data.get("file_ids", []) - files = Files.get_files_by_ids(file_ids) + files = Files.get_file_metadatas_by_ids(file_ids) return KnowledgeFilesResponse( **knowledge.model_dump(), @@ -538,7 +551,7 @@ def remove_file_from_knowledge_by_id( knowledge = Knowledges.update_knowledge_data_by_id(id=id, data=data) if knowledge: - files = Files.get_files_by_ids(file_ids) + files = Files.get_file_metadatas_by_ids(file_ids) return KnowledgeFilesResponse( **knowledge.model_dump(), @@ -734,7 +747,7 @@ def add_files_to_knowledge_batch( error_details = [f"{err.file_id}: {err.error}" for err in result.errors] return KnowledgeFilesResponse( **knowledge.model_dump(), - files=Files.get_files_by_ids(existing_file_ids), + files=Files.get_file_metadatas_by_ids(existing_file_ids), warnings={ "message": "Some files failed to process", "errors": error_details, @@ -742,5 +755,6 @@ def add_files_to_knowledge_batch( ) return KnowledgeFilesResponse( - **knowledge.model_dump(), files=Files.get_files_by_ids(existing_file_ids) + **knowledge.model_dump(), + files=Files.get_file_metadatas_by_ids(existing_file_ids), ) diff --git a/backend/open_webui/routers/notes.py b/backend/open_webui/routers/notes.py new file mode 100644 index 000000000..74156dea3 --- /dev/null +++ b/backend/open_webui/routers/notes.py @@ -0,0 +1,212 @@ +import json +import logging +from typing import Optional + + +from fastapi import APIRouter, Depends, HTTPException, Request, status, BackgroundTasks +from pydantic import BaseModel + +from open_webui.models.users import Users, UserResponse +from open_webui.models.notes import Notes, NoteModel, NoteForm, NoteUserResponse + +from open_webui.config import ENABLE_ADMIN_CHAT_ACCESS, ENABLE_ADMIN_EXPORT +from open_webui.constants import ERROR_MESSAGES +from open_webui.env import SRC_LOG_LEVELS + + +from open_webui.utils.auth import get_admin_user, get_verified_user +from open_webui.utils.access_control import has_permission + +log = logging.getLogger(__name__) +log.setLevel(SRC_LOG_LEVELS["MODELS"]) + +router = APIRouter() + +############################ +# GetNotes +############################ + + +@router.get("/", response_model=list[NoteUserResponse]) +async def get_notes(request: Request, user=Depends(get_verified_user)): + + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + notes = [ + NoteUserResponse( + **{ + **note.model_dump(), + "user": UserResponse(**Users.get_user_by_id(note.user_id).model_dump()), + } + ) + for note in Notes.get_notes_by_user_id(user.id, "write") + ] + + return notes + + +@router.get("/list", response_model=list[NoteUserResponse]) +async def get_note_list(request: Request, user=Depends(get_verified_user)): + + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + notes = [ + NoteUserResponse( + **{ + **note.model_dump(), + "user": UserResponse(**Users.get_user_by_id(note.user_id).model_dump()), + } + ) + for note in Notes.get_notes_by_user_id(user.id, "read") + ] + + return notes + + +############################ +# CreateNewNote +############################ + + +@router.post("/create", response_model=Optional[NoteModel]) +async def create_new_note( + request: Request, form_data: NoteForm, user=Depends(get_verified_user) +): + + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + try: + note = Notes.insert_new_note(form_data, user.id) + return note + except Exception as e: + log.exception(e) + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.DEFAULT() + ) + + +############################ +# GetNoteById +############################ + + +@router.get("/{id}", response_model=Optional[NoteModel]) +async def get_note_by_id(request: Request, id: str, user=Depends(get_verified_user)): + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + note = Notes.get_note_by_id(id) + if not note: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, detail=ERROR_MESSAGES.NOT_FOUND + ) + + if user.role != "admin" and not has_access( + user.id, type="read", access_control=note.access_control + ): + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT() + ) + + return note + + +############################ +# UpdateNoteById +############################ + + +@router.post("/{id}/update", response_model=Optional[NoteModel]) +async def update_note_by_id( + request: Request, id: str, form_data: NoteForm, user=Depends(get_verified_user) +): + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + note = Notes.get_note_by_id(id) + if not note: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, detail=ERROR_MESSAGES.NOT_FOUND + ) + + if user.role != "admin" and not has_access( + user.id, type="write", access_control=note.access_control + ): + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT() + ) + + try: + note = Notes.update_note_by_id(id, form_data) + return note + except Exception as e: + log.exception(e) + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.DEFAULT() + ) + + +############################ +# DeleteNoteById +############################ + + +@router.delete("/{id}/delete", response_model=bool) +async def delete_note_by_id(request: Request, id: str, user=Depends(get_verified_user)): + if user.role != "admin" and not has_permission( + user.id, "features.notes", request.app.state.config.USER_PERMISSIONS + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail=ERROR_MESSAGES.UNAUTHORIZED, + ) + + note = Notes.get_note_by_id(id) + if not note: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, detail=ERROR_MESSAGES.NOT_FOUND + ) + + if user.role != "admin" and not has_access( + user.id, type="write", access_control=note.access_control + ): + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.DEFAULT() + ) + + try: + note = Notes.delete_note_by_id(id) + return True + except Exception as e: + log.exception(e) + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.DEFAULT() + ) diff --git a/backend/open_webui/routers/ollama.py b/backend/open_webui/routers/ollama.py index 775cd0446..4e8c83e08 100644 --- a/backend/open_webui/routers/ollama.py +++ b/backend/open_webui/routers/ollama.py @@ -54,6 +54,7 @@ from open_webui.config import ( from open_webui.env import ( ENV, SRC_LOG_LEVELS, + AIOHTTP_CLIENT_SESSION_SSL, AIOHTTP_CLIENT_TIMEOUT, AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, BYPASS_MODEL_ACCESS_CONTROL, @@ -91,6 +92,7 @@ async def send_get_request(url, key=None, user: UserModel = None): else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as response: return await response.json() except Exception as e: @@ -141,6 +143,7 @@ async def send_post_request( else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) r.raise_for_status() @@ -216,7 +219,8 @@ async def verify_connection( key = form_data.key async with aiohttp.ClientSession( - timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST) + trust_env=True, + timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST), ) as session: try: async with session.get( @@ -234,6 +238,7 @@ async def verify_connection( else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as r: if r.status != 200: detail = f"HTTP Error: {r.status}" @@ -880,6 +885,10 @@ async def embed( url = request.app.state.config.OLLAMA_BASE_URLS[url_idx] key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS) + prefix_id = api_config.get("prefix_id", None) + if prefix_id: + form_data.model = form_data.model.replace(f"{prefix_id}.", "") + try: r = requests.request( method="POST", @@ -959,6 +968,10 @@ async def embeddings( url = request.app.state.config.OLLAMA_BASE_URLS[url_idx] key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS) + prefix_id = api_config.get("prefix_id", None) + if prefix_id: + form_data.model = form_data.model.replace(f"{prefix_id}.", "") + try: r = requests.request( method="POST", @@ -1006,7 +1019,7 @@ class GenerateCompletionForm(BaseModel): prompt: str suffix: Optional[str] = None images: Optional[list[str]] = None - format: Optional[str] = None + format: Optional[Union[dict, str]] = None options: Optional[dict] = None system: Optional[str] = None template: Optional[str] = None @@ -1482,7 +1495,9 @@ async def download_file_stream( timeout = aiohttp.ClientTimeout(total=600) # Set the timeout async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: - async with session.get(file_url, headers=headers) as response: + async with session.get( + file_url, headers=headers, ssl=AIOHTTP_CLIENT_SESSION_SSL + ) as response: total_size = int(response.headers.get("content-length", 0)) + current_size with open(file_path, "ab+") as file: @@ -1497,7 +1512,8 @@ async def download_file_stream( if done: file.seek(0) - hashed = calculate_sha256(file) + chunk_size = 1024 * 1024 * 2 + hashed = calculate_sha256(file, chunk_size) file.seek(0) url = f"{ollama_url}/api/blobs/sha256:{hashed}" diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index 0310014cf..02a81209c 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -21,6 +21,7 @@ from open_webui.config import ( CACHE_DIR, ) from open_webui.env import ( + AIOHTTP_CLIENT_SESSION_SSL, AIOHTTP_CLIENT_TIMEOUT, AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST, ENABLE_FORWARD_USER_INFO_HEADERS, @@ -74,6 +75,7 @@ async def send_get_request(url, key=None, user: UserModel = None): else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as response: return await response.json() except Exception as e: @@ -92,20 +94,19 @@ async def cleanup_response( await session.close() -def openai_o1_o3_handler(payload): +def openai_o_series_handler(payload): """ - Handle o1, o3 specific parameters + Handle "o" series specific parameters """ if "max_tokens" in payload: - # Remove "max_tokens" from the payload + # Convert "max_tokens" to "max_completion_tokens" for all o-series models payload["max_completion_tokens"] = payload["max_tokens"] del payload["max_tokens"] - # Fix: o1 and o3 do not support the "system" role directly. - # For older models like "o1-mini" or "o1-preview", use role "user". - # For newer o1/o3 models, replace "system" with "developer". + # Handle system role conversion based on model type if payload["messages"][0]["role"] == "system": model_lower = payload["model"].lower() + # Legacy models use "user" role instead of "system" if model_lower.startswith("o1-mini") or model_lower.startswith("o1-preview"): payload["messages"][0]["role"] = "user" else: @@ -462,7 +463,8 @@ async def get_models( r = None async with aiohttp.ClientSession( - timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST) + trust_env=True, + timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST), ) as session: try: async with session.get( @@ -481,6 +483,7 @@ async def get_models( else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as r: if r.status != 200: # Extract response error details if available @@ -542,7 +545,8 @@ async def verify_connection( key = form_data.key async with aiohttp.ClientSession( - timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST) + trust_env=True, + timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST), ) as session: try: async with session.get( @@ -561,6 +565,7 @@ async def verify_connection( else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) as r: if r.status != 200: # Extract response error details if available @@ -666,10 +671,10 @@ async def generate_chat_completion( url = request.app.state.config.OPENAI_API_BASE_URLS[idx] key = request.app.state.config.OPENAI_API_KEYS[idx] - # Fix: o1,o3 does not support the "max_tokens" parameter, Modify "max_tokens" to "max_completion_tokens" - is_o1_o3 = payload["model"].lower().startswith(("o1", "o3-")) - if is_o1_o3: - payload = openai_o1_o3_handler(payload) + # Check if model is from "o" series + is_o_series = payload["model"].lower().startswith(("o1", "o3", "o4")) + if is_o_series: + payload = openai_o_series_handler(payload) elif "api.openai.com" not in url: # Remove "max_completion_tokens" from the payload for backward compatibility if "max_completion_tokens" in payload: @@ -723,6 +728,7 @@ async def generate_chat_completion( else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) # Check if response is SSE @@ -802,6 +808,7 @@ async def proxy(path: str, request: Request, user=Depends(get_verified_user)): else {} ), }, + ssl=AIOHTTP_CLIENT_SESSION_SSL, ) r.raise_for_status() diff --git a/backend/open_webui/routers/pipelines.py b/backend/open_webui/routers/pipelines.py index 10c8e9b2e..f14002502 100644 --- a/backend/open_webui/routers/pipelines.py +++ b/backend/open_webui/routers/pipelines.py @@ -66,7 +66,7 @@ async def process_pipeline_inlet_filter(request, payload, user, models): if "pipeline" in model: sorted_filters.append(model) - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(trust_env=True) as session: for filter in sorted_filters: urlIdx = filter.get("urlIdx") if urlIdx is None: @@ -115,7 +115,7 @@ async def process_pipeline_outlet_filter(request, payload, user, models): if "pipeline" in model: sorted_filters = [model] + sorted_filters - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(trust_env=True) as session: for filter in sorted_filters: urlIdx = filter.get("urlIdx") if urlIdx is None: diff --git a/backend/open_webui/routers/retrieval.py b/backend/open_webui/routers/retrieval.py index 13f012483..f75b03483 100644 --- a/backend/open_webui/routers/retrieval.py +++ b/backend/open_webui/routers/retrieval.py @@ -53,6 +53,7 @@ from open_webui.retrieval.web.jina_search import search_jina from open_webui.retrieval.web.searchapi import search_searchapi from open_webui.retrieval.web.serpapi import search_serpapi from open_webui.retrieval.web.searxng import search_searxng +from open_webui.retrieval.web.yacy import search_yacy from open_webui.retrieval.web.serper import search_serper from open_webui.retrieval.web.serply import search_serply from open_webui.retrieval.web.serpstack import search_serpstack @@ -61,6 +62,8 @@ from open_webui.retrieval.web.bing import search_bing from open_webui.retrieval.web.exa import search_exa from open_webui.retrieval.web.perplexity import search_perplexity from open_webui.retrieval.web.sougou import search_sougou +from open_webui.retrieval.web.firecrawl import search_firecrawl +from open_webui.retrieval.web.external import search_external from open_webui.retrieval.utils import ( get_embedding_function, @@ -90,7 +93,12 @@ from open_webui.env import ( SRC_LOG_LEVELS, DEVICE_TYPE, DOCKER, + SENTENCE_TRANSFORMERS_BACKEND, + SENTENCE_TRANSFORMERS_MODEL_KWARGS, + SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND, + SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS, ) + from open_webui.constants import ERROR_MESSAGES log = logging.getLogger(__name__) @@ -117,6 +125,8 @@ def get_ef( get_model_path(embedding_model, auto_update), device=DEVICE_TYPE, trust_remote_code=RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE, + backend=SENTENCE_TRANSFORMERS_BACKEND, + model_kwargs=SENTENCE_TRANSFORMERS_MODEL_KWARGS, ) except Exception as e: log.debug(f"Error loading SentenceTransformer: {e}") @@ -150,6 +160,8 @@ def get_rf( get_model_path(reranking_model, auto_update), device=DEVICE_TYPE, trust_remote_code=RAG_RERANKING_MODEL_TRUST_REMOTE_CODE, + backend=SENTENCE_TRANSFORMERS_CROSS_ENCODER_BACKEND, + model_kwargs=SENTENCE_TRANSFORMERS_CROSS_ENCODER_MODEL_KWARGS, ) except Exception as e: log.error(f"CrossEncoder: {e}") @@ -366,6 +378,8 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "PDF_EXTRACT_IMAGES": request.app.state.config.PDF_EXTRACT_IMAGES, "TIKA_SERVER_URL": request.app.state.config.TIKA_SERVER_URL, "DOCLING_SERVER_URL": request.app.state.config.DOCLING_SERVER_URL, + "DOCLING_OCR_ENGINE": request.app.state.config.DOCLING_OCR_ENGINE, + "DOCLING_OCR_LANG": request.app.state.config.DOCLING_OCR_LANG, "DOCUMENT_INTELLIGENCE_ENDPOINT": request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, "DOCUMENT_INTELLIGENCE_KEY": request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, "MISTRAL_OCR_API_KEY": request.app.state.config.MISTRAL_OCR_API_KEY, @@ -389,6 +403,9 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "WEB_SEARCH_DOMAIN_FILTER_LIST": request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, "BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL": request.app.state.config.BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL, "SEARXNG_QUERY_URL": request.app.state.config.SEARXNG_QUERY_URL, + "YACY_QUERY_URL": request.app.state.config.YACY_QUERY_URL, + "YACY_USERNAME": request.app.state.config.YACY_USERNAME, + "YACY_PASSWORD": request.app.state.config.YACY_PASSWORD, "GOOGLE_PSE_API_KEY": request.app.state.config.GOOGLE_PSE_API_KEY, "GOOGLE_PSE_ENGINE_ID": request.app.state.config.GOOGLE_PSE_ENGINE_ID, "BRAVE_SEARCH_API_KEY": request.app.state.config.BRAVE_SEARCH_API_KEY, @@ -418,6 +435,10 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)): "FIRECRAWL_API_KEY": request.app.state.config.FIRECRAWL_API_KEY, "FIRECRAWL_API_BASE_URL": request.app.state.config.FIRECRAWL_API_BASE_URL, "TAVILY_EXTRACT_DEPTH": request.app.state.config.TAVILY_EXTRACT_DEPTH, + "EXTERNAL_WEB_SEARCH_URL": request.app.state.config.EXTERNAL_WEB_SEARCH_URL, + "EXTERNAL_WEB_SEARCH_API_KEY": request.app.state.config.EXTERNAL_WEB_SEARCH_API_KEY, + "EXTERNAL_WEB_LOADER_URL": request.app.state.config.EXTERNAL_WEB_LOADER_URL, + "EXTERNAL_WEB_LOADER_API_KEY": request.app.state.config.EXTERNAL_WEB_LOADER_API_KEY, "YOUTUBE_LOADER_LANGUAGE": request.app.state.config.YOUTUBE_LOADER_LANGUAGE, "YOUTUBE_LOADER_PROXY_URL": request.app.state.config.YOUTUBE_LOADER_PROXY_URL, "YOUTUBE_LOADER_TRANSLATION": request.app.state.YOUTUBE_LOADER_TRANSLATION, @@ -434,6 +455,9 @@ class WebConfig(BaseModel): WEB_SEARCH_DOMAIN_FILTER_LIST: Optional[List[str]] = [] BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL: Optional[bool] = None SEARXNG_QUERY_URL: Optional[str] = None + YACY_QUERY_URL: Optional[str] = None + YACY_USERNAME: Optional[str] = None + YACY_PASSWORD: Optional[str] = None GOOGLE_PSE_API_KEY: Optional[str] = None GOOGLE_PSE_ENGINE_ID: Optional[str] = None BRAVE_SEARCH_API_KEY: Optional[str] = None @@ -463,6 +487,10 @@ class WebConfig(BaseModel): FIRECRAWL_API_KEY: Optional[str] = None FIRECRAWL_API_BASE_URL: Optional[str] = None TAVILY_EXTRACT_DEPTH: Optional[str] = None + EXTERNAL_WEB_SEARCH_URL: Optional[str] = None + EXTERNAL_WEB_SEARCH_API_KEY: Optional[str] = None + EXTERNAL_WEB_LOADER_URL: Optional[str] = None + EXTERNAL_WEB_LOADER_API_KEY: Optional[str] = None YOUTUBE_LOADER_LANGUAGE: Optional[List[str]] = None YOUTUBE_LOADER_PROXY_URL: Optional[str] = None YOUTUBE_LOADER_TRANSLATION: Optional[str] = None @@ -485,6 +513,8 @@ class ConfigForm(BaseModel): PDF_EXTRACT_IMAGES: Optional[bool] = None TIKA_SERVER_URL: Optional[str] = None DOCLING_SERVER_URL: Optional[str] = None + DOCLING_OCR_ENGINE: Optional[str] = None + DOCLING_OCR_LANG: Optional[str] = None DOCUMENT_INTELLIGENCE_ENDPOINT: Optional[str] = None DOCUMENT_INTELLIGENCE_KEY: Optional[str] = None MISTRAL_OCR_API_KEY: Optional[str] = None @@ -574,6 +604,16 @@ async def update_rag_config( if form_data.DOCLING_SERVER_URL is not None else request.app.state.config.DOCLING_SERVER_URL ) + request.app.state.config.DOCLING_OCR_ENGINE = ( + form_data.DOCLING_OCR_ENGINE + if form_data.DOCLING_OCR_ENGINE is not None + else request.app.state.config.DOCLING_OCR_ENGINE + ) + request.app.state.config.DOCLING_OCR_LANG = ( + form_data.DOCLING_OCR_LANG + if form_data.DOCLING_OCR_LANG is not None + else request.app.state.config.DOCLING_OCR_LANG + ) request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT = ( form_data.DOCUMENT_INTELLIGENCE_ENDPOINT if form_data.DOCUMENT_INTELLIGENCE_ENDPOINT is not None @@ -651,6 +691,9 @@ async def update_rag_config( form_data.web.BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL ) request.app.state.config.SEARXNG_QUERY_URL = form_data.web.SEARXNG_QUERY_URL + request.app.state.config.YACY_QUERY_URL = form_data.web.YACY_QUERY_URL + request.app.state.config.YACY_USERNAME = form_data.web.YACY_USERNAME + request.app.state.config.YACY_PASSWORD = form_data.web.YACY_PASSWORD request.app.state.config.GOOGLE_PSE_API_KEY = form_data.web.GOOGLE_PSE_API_KEY request.app.state.config.GOOGLE_PSE_ENGINE_ID = ( form_data.web.GOOGLE_PSE_ENGINE_ID @@ -697,6 +740,18 @@ async def update_rag_config( request.app.state.config.FIRECRAWL_API_BASE_URL = ( form_data.web.FIRECRAWL_API_BASE_URL ) + request.app.state.config.EXTERNAL_WEB_SEARCH_URL = ( + form_data.web.EXTERNAL_WEB_SEARCH_URL + ) + request.app.state.config.EXTERNAL_WEB_SEARCH_API_KEY = ( + form_data.web.EXTERNAL_WEB_SEARCH_API_KEY + ) + request.app.state.config.EXTERNAL_WEB_LOADER_URL = ( + form_data.web.EXTERNAL_WEB_LOADER_URL + ) + request.app.state.config.EXTERNAL_WEB_LOADER_API_KEY = ( + form_data.web.EXTERNAL_WEB_LOADER_API_KEY + ) request.app.state.config.TAVILY_EXTRACT_DEPTH = ( form_data.web.TAVILY_EXTRACT_DEPTH ) @@ -726,6 +781,8 @@ async def update_rag_config( "PDF_EXTRACT_IMAGES": request.app.state.config.PDF_EXTRACT_IMAGES, "TIKA_SERVER_URL": request.app.state.config.TIKA_SERVER_URL, "DOCLING_SERVER_URL": request.app.state.config.DOCLING_SERVER_URL, + "DOCLING_OCR_ENGINE": request.app.state.config.DOCLING_OCR_ENGINE, + "DOCLING_OCR_LANG": request.app.state.config.DOCLING_OCR_LANG, "DOCUMENT_INTELLIGENCE_ENDPOINT": request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, "DOCUMENT_INTELLIGENCE_KEY": request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, "MISTRAL_OCR_API_KEY": request.app.state.config.MISTRAL_OCR_API_KEY, @@ -749,6 +806,9 @@ async def update_rag_config( "WEB_SEARCH_DOMAIN_FILTER_LIST": request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, "BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL": request.app.state.config.BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL, "SEARXNG_QUERY_URL": request.app.state.config.SEARXNG_QUERY_URL, + "YACY_QUERY_URL": request.app.state.config.YACY_QUERY_URL, + "YACY_USERNAME": request.app.state.config.YACY_USERNAME, + "YACY_PASSWORD": request.app.state.config.YACY_PASSWORD, "GOOGLE_PSE_API_KEY": request.app.state.config.GOOGLE_PSE_API_KEY, "GOOGLE_PSE_ENGINE_ID": request.app.state.config.GOOGLE_PSE_ENGINE_ID, "BRAVE_SEARCH_API_KEY": request.app.state.config.BRAVE_SEARCH_API_KEY, @@ -778,6 +838,10 @@ async def update_rag_config( "FIRECRAWL_API_KEY": request.app.state.config.FIRECRAWL_API_KEY, "FIRECRAWL_API_BASE_URL": request.app.state.config.FIRECRAWL_API_BASE_URL, "TAVILY_EXTRACT_DEPTH": request.app.state.config.TAVILY_EXTRACT_DEPTH, + "EXTERNAL_WEB_SEARCH_URL": request.app.state.config.EXTERNAL_WEB_SEARCH_URL, + "EXTERNAL_WEB_SEARCH_API_KEY": request.app.state.config.EXTERNAL_WEB_SEARCH_API_KEY, + "EXTERNAL_WEB_LOADER_URL": request.app.state.config.EXTERNAL_WEB_LOADER_URL, + "EXTERNAL_WEB_LOADER_API_KEY": request.app.state.config.EXTERNAL_WEB_LOADER_API_KEY, "YOUTUBE_LOADER_LANGUAGE": request.app.state.config.YOUTUBE_LOADER_LANGUAGE, "YOUTUBE_LOADER_PROXY_URL": request.app.state.config.YOUTUBE_LOADER_PROXY_URL, "YOUTUBE_LOADER_TRANSLATION": request.app.state.YOUTUBE_LOADER_TRANSLATION, @@ -1032,6 +1096,8 @@ def process_file( engine=request.app.state.config.CONTENT_EXTRACTION_ENGINE, TIKA_SERVER_URL=request.app.state.config.TIKA_SERVER_URL, DOCLING_SERVER_URL=request.app.state.config.DOCLING_SERVER_URL, + DOCLING_OCR_ENGINE=request.app.state.config.DOCLING_OCR_ENGINE, + DOCLING_OCR_LANG=request.app.state.config.DOCLING_OCR_LANG, PDF_EXTRACT_IMAGES=request.app.state.config.PDF_EXTRACT_IMAGES, DOCUMENT_INTELLIGENCE_ENDPOINT=request.app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT, DOCUMENT_INTELLIGENCE_KEY=request.app.state.config.DOCUMENT_INTELLIGENCE_KEY, @@ -1266,6 +1332,7 @@ def search_web(request: Request, engine: str, query: str) -> list[SearchResult]: """Search the web using a search engine and return the results as a list of SearchResult objects. Will look for a search engine API key in environment variables in the following order: - SEARXNG_QUERY_URL + - YACY_QUERY_URL + YACY_USERNAME + YACY_PASSWORD - GOOGLE_PSE_API_KEY + GOOGLE_PSE_ENGINE_ID - BRAVE_SEARCH_API_KEY - KAGI_SEARCH_API_KEY @@ -1295,6 +1362,18 @@ def search_web(request: Request, engine: str, query: str) -> list[SearchResult]: ) else: raise Exception("No SEARXNG_QUERY_URL found in environment variables") + elif engine == "yacy": + if request.app.state.config.YACY_QUERY_URL: + return search_yacy( + request.app.state.config.YACY_QUERY_URL, + request.app.state.config.YACY_USERNAME, + request.app.state.config.YACY_PASSWORD, + query, + request.app.state.config.WEB_SEARCH_RESULT_COUNT, + request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, + ) + else: + raise Exception("No YACY_QUERY_URL found in environment variables") elif engine == "google_pse": if ( request.app.state.config.GOOGLE_PSE_API_KEY @@ -1465,6 +1544,22 @@ def search_web(request: Request, engine: str, query: str) -> list[SearchResult]: raise Exception( "No SOUGOU_API_SID or SOUGOU_API_SK found in environment variables" ) + elif engine == "firecrawl": + return search_firecrawl( + request.app.state.config.FIRECRAWL_API_BASE_URL, + request.app.state.config.FIRECRAWL_API_KEY, + query, + request.app.state.config.WEB_SEARCH_RESULT_COUNT, + request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, + ) + elif engine == "external": + return search_external( + request.app.state.config.EXTERNAL_WEB_SEARCH_URL, + request.app.state.config.EXTERNAL_WEB_SEARCH_API_KEY, + query, + request.app.state.config.WEB_SEARCH_RESULT_COUNT, + request.app.state.config.WEB_SEARCH_DOMAIN_FILTER_LIST, + ) else: raise Exception("No search engine API key found in environment variables") @@ -1477,8 +1572,11 @@ async def process_web_search( logging.info( f"trying to web search with {request.app.state.config.WEB_SEARCH_ENGINE, form_data.query}" ) - web_results = search_web( - request, request.app.state.config.WEB_SEARCH_ENGINE, form_data.query + web_results = await run_in_threadpool( + search_web, + request, + request.app.state.config.WEB_SEARCH_ENGINE, + form_data.query, ) except Exception as e: log.exception(e) @@ -1500,8 +1598,8 @@ async def process_web_search( ) docs = await loader.aload() urls = [ - doc.metadata["source"] for doc in docs - ] # only keep URLs which could be retrieved + doc.metadata.get("source") for doc in docs if doc.metadata.get("source") + ] # only keep URLs if request.app.state.config.BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL: return { @@ -1521,19 +1619,22 @@ async def process_web_search( collection_names = [] for doc_idx, doc in enumerate(docs): if doc and doc.page_content: - collection_name = f"web-search-{calculate_sha256_string(form_data.query + '-' + urls[doc_idx])}"[ - :63 - ] + try: + collection_name = f"web-search-{calculate_sha256_string(form_data.query + '-' + urls[doc_idx])}"[ + :63 + ] - collection_names.append(collection_name) - await run_in_threadpool( - save_docs_to_vector_db, - request, - [doc], - collection_name, - overwrite=True, - user=user, - ) + collection_names.append(collection_name) + await run_in_threadpool( + save_docs_to_vector_db, + request, + [doc], + collection_name, + overwrite=True, + user=user, + ) + except Exception as e: + log.debug(f"error saving doc {doc_idx}: {e}") return { "status": True, diff --git a/backend/open_webui/routers/users.py b/backend/open_webui/routers/users.py index a9ac34e2f..50014a5f6 100644 --- a/backend/open_webui/routers/users.py +++ b/backend/open_webui/routers/users.py @@ -6,6 +6,7 @@ from open_webui.models.groups import Groups from open_webui.models.chats import Chats from open_webui.models.users import ( UserModel, + UserListResponse, UserRoleUpdateForm, Users, UserSettings, @@ -33,13 +34,38 @@ router = APIRouter() ############################ -@router.get("/", response_model=list[UserModel]) +PAGE_ITEM_COUNT = 10 + + +@router.get("/", response_model=UserListResponse) async def get_users( - skip: Optional[int] = None, - limit: Optional[int] = None, + query: Optional[str] = None, + order_by: Optional[str] = None, + direction: Optional[str] = None, + page: Optional[int] = 1, user=Depends(get_admin_user), ): - return Users.get_users(skip, limit) + limit = PAGE_ITEM_COUNT + + page = max(1, page) + skip = (page - 1) * limit + + filter = {} + if query: + filter["query"] = query + if order_by: + filter["order_by"] = order_by + if direction: + filter["direction"] = direction + + return Users.get_users(filter=filter, skip=skip, limit=limit) + + +@router.get("/all", response_model=UserListResponse) +async def get_all_users( + user=Depends(get_admin_user), +): + return Users.get_users() ############################ @@ -88,6 +114,8 @@ class ChatPermissions(BaseModel): file_upload: bool = True delete: bool = True edit: bool = True + share: bool = True + export: bool = True stt: bool = True tts: bool = True call: bool = True @@ -101,6 +129,7 @@ class FeaturesPermissions(BaseModel): web_search: bool = True image_generation: bool = True code_interpreter: bool = True + notes: bool = True class UserPermissions(BaseModel): @@ -288,6 +317,21 @@ async def update_user_by_id( form_data: UserUpdateForm, session_user=Depends(get_admin_user), ): + # Prevent modification of the primary admin user by other admins + try: + first_user = Users.get_first_user() + if first_user and user_id == first_user.id and session_user.id != user_id: + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, + detail=ERROR_MESSAGES.ACTION_PROHIBITED, + ) + except Exception as e: + log.error(f"Error checking primary admin status: {e}") + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Could not verify primary admin status.", + ) + user = Users.get_user_by_id(user_id) if user: @@ -335,6 +379,21 @@ async def update_user_by_id( @router.delete("/{user_id}", response_model=bool) async def delete_user_by_id(user_id: str, user=Depends(get_admin_user)): + # Prevent deletion of the primary admin user + try: + first_user = Users.get_first_user() + if first_user and user_id == first_user.id: + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, + detail=ERROR_MESSAGES.ACTION_PROHIBITED, + ) + except Exception as e: + log.error(f"Error checking primary admin status: {e}") + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Could not verify primary admin status.", + ) + if user.id != user_id: result = Auths.delete_auth_by_id(user_id) @@ -346,6 +405,7 @@ async def delete_user_by_id(user_id: str, user=Depends(get_admin_user)): detail=ERROR_MESSAGES.DELETE_USER_ERROR, ) + # Prevent self-deletion raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail=ERROR_MESSAGES.ACTION_PROHIBITED, diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 282f4db95..57ccd6e57 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -192,6 +192,9 @@ async def connect(sid, environ, auth): # print(f"user {user.name}({user.id}) connected with session ID {sid}") await sio.emit("user-list", {"user_ids": list(USER_POOL.keys())}) await sio.emit("usage", {"models": get_models_in_use()}) + return True + + return False @sio.on("user-join") @@ -314,8 +317,8 @@ def get_event_emitter(request_info, update_db=True): ) ) - for session_id in session_ids: - await sio.emit( + emit_tasks = [ + sio.emit( "chat-events", { "chat_id": request_info.get("chat_id", None), @@ -324,6 +327,10 @@ def get_event_emitter(request_info, update_db=True): }, to=session_id, ) + for session_id in session_ids + ] + + await asyncio.gather(*emit_tasks) if update_db: if "type" in event_data and event_data["type"] == "status": diff --git a/backend/open_webui/storage/provider.py b/backend/open_webui/storage/provider.py index c5c0056cc..17d7f5ab5 100644 --- a/backend/open_webui/storage/provider.py +++ b/backend/open_webui/storage/provider.py @@ -3,7 +3,7 @@ import shutil import json import logging from abc import ABC, abstractmethod -from typing import BinaryIO, Tuple +from typing import BinaryIO, Tuple, Dict import boto3 from botocore.config import Config @@ -44,7 +44,9 @@ class StorageProvider(ABC): pass @abstractmethod - def upload_file(self, file: BinaryIO, filename: str) -> Tuple[bytes, str]: + def upload_file( + self, file: BinaryIO, filename: str, tags: Dict[str, str] + ) -> Tuple[bytes, str]: pass @abstractmethod @@ -58,7 +60,9 @@ class StorageProvider(ABC): class LocalStorageProvider(StorageProvider): @staticmethod - def upload_file(file: BinaryIO, filename: str) -> Tuple[bytes, str]: + def upload_file( + file: BinaryIO, filename: str, tags: Dict[str, str] + ) -> Tuple[bytes, str]: contents = file.read() if not contents: raise ValueError(ERROR_MESSAGES.EMPTY_CONTENT) @@ -131,12 +135,20 @@ class S3StorageProvider(StorageProvider): self.bucket_name = S3_BUCKET_NAME self.key_prefix = S3_KEY_PREFIX if S3_KEY_PREFIX else "" - def upload_file(self, file: BinaryIO, filename: str) -> Tuple[bytes, str]: + def upload_file( + self, file: BinaryIO, filename: str, tags: Dict[str, str] + ) -> Tuple[bytes, str]: """Handles uploading of the file to S3 storage.""" - _, file_path = LocalStorageProvider.upload_file(file, filename) + _, file_path = LocalStorageProvider.upload_file(file, filename, tags) + tagging = {"TagSet": [{"Key": k, "Value": v} for k, v in tags.items()]} try: s3_key = os.path.join(self.key_prefix, filename) self.s3_client.upload_file(file_path, self.bucket_name, s3_key) + self.s3_client.put_object_tagging( + Bucket=self.bucket_name, + Key=s3_key, + Tagging=tagging, + ) return ( open(file_path, "rb").read(), "s3://" + self.bucket_name + "/" + s3_key, @@ -207,9 +219,11 @@ class GCSStorageProvider(StorageProvider): self.gcs_client = storage.Client() self.bucket = self.gcs_client.bucket(GCS_BUCKET_NAME) - def upload_file(self, file: BinaryIO, filename: str) -> Tuple[bytes, str]: + def upload_file( + self, file: BinaryIO, filename: str, tags: Dict[str, str] + ) -> Tuple[bytes, str]: """Handles uploading of the file to GCS storage.""" - contents, file_path = LocalStorageProvider.upload_file(file, filename) + contents, file_path = LocalStorageProvider.upload_file(file, filename, tags) try: blob = self.bucket.blob(filename) blob.upload_from_filename(file_path) @@ -277,9 +291,11 @@ class AzureStorageProvider(StorageProvider): self.container_name ) - def upload_file(self, file: BinaryIO, filename: str) -> Tuple[bytes, str]: + def upload_file( + self, file: BinaryIO, filename: str, tags: Dict[str, str] + ) -> Tuple[bytes, str]: """Handles uploading of the file to Azure Blob Storage.""" - contents, file_path = LocalStorageProvider.upload_file(file, filename) + contents, file_path = LocalStorageProvider.upload_file(file, filename, tags) try: blob_client = self.container_client.get_blob_client(filename) blob_client.upload_blob(contents, overwrite=True) diff --git a/backend/open_webui/utils/audit.py b/backend/open_webui/utils/audit.py index 2d7ceabcb..8193907d2 100644 --- a/backend/open_webui/utils/audit.py +++ b/backend/open_webui/utils/audit.py @@ -37,7 +37,7 @@ if TYPE_CHECKING: class AuditLogEntry: # `Metadata` audit level properties id: str - user: dict[str, Any] + user: Optional[dict[str, Any]] audit_level: str verb: str request_uri: str @@ -190,21 +190,40 @@ class AuditLoggingMiddleware: finally: await self._log_audit_entry(request, context) - async def _get_authenticated_user(self, request: Request) -> UserModel: - + async def _get_authenticated_user(self, request: Request) -> Optional[UserModel]: auth_header = request.headers.get("Authorization") - assert auth_header - user = get_current_user(request, None, get_http_authorization_cred(auth_header)) - return user + try: + user = get_current_user( + request, None, get_http_authorization_cred(auth_header) + ) + return user + except Exception as e: + logger.debug(f"Failed to get authenticated user: {str(e)}") + + return None def _should_skip_auditing(self, request: Request) -> bool: if ( request.method not in {"POST", "PUT", "PATCH", "DELETE"} or AUDIT_LOG_LEVEL == "NONE" - or not request.headers.get("authorization") ): return True + + ALWAYS_LOG_ENDPOINTS = { + "/api/v1/auths/signin", + "/api/v1/auths/signout", + "/api/v1/auths/signup", + } + path = request.url.path.lower() + for endpoint in ALWAYS_LOG_ENDPOINTS: + if path.startswith(endpoint): + return False # Do NOT skip logging for auth endpoints + + # Skip logging if the request is not authenticated + if not request.headers.get("authorization"): + return True + # match either /api//...(for the endpoint /api/chat case) or /api/v1//... pattern = re.compile( r"^/api(?:/v1)?/(" + "|".join(self.excluded_paths) + r")\b" @@ -231,17 +250,32 @@ class AuditLoggingMiddleware: try: user = await self._get_authenticated_user(request) + user = ( + user.model_dump(include={"id", "name", "email", "role"}) if user else {} + ) + + request_body = context.request_body.decode("utf-8", errors="replace") + response_body = context.response_body.decode("utf-8", errors="replace") + + # Redact sensitive information + if "password" in request_body: + request_body = re.sub( + r'"password":\s*"(.*?)"', + '"password": "********"', + request_body, + ) + entry = AuditLogEntry( id=str(uuid.uuid4()), - user=user.model_dump(include={"id", "name", "email", "role"}), + user=user, audit_level=self.audit_level.value, verb=request.method, request_uri=str(request.url), response_status_code=context.metadata.get("response_status_code", None), source_ip=request.client.host if request.client else None, user_agent=request.headers.get("user-agent"), - request_object=context.request_body.decode("utf-8", errors="replace"), - response_object=context.response_body.decode("utf-8", errors="replace"), + request_object=request_body, + response_object=response_body, ) self.audit_logger.write(entry) diff --git a/backend/open_webui/utils/code_interpreter.py b/backend/open_webui/utils/code_interpreter.py index 312baff24..1ad5ee93c 100644 --- a/backend/open_webui/utils/code_interpreter.py +++ b/backend/open_webui/utils/code_interpreter.py @@ -50,7 +50,7 @@ class JupyterCodeExecuter: self.password = password self.timeout = timeout self.kernel_id = "" - self.session = aiohttp.ClientSession(base_url=self.base_url) + self.session = aiohttp.ClientSession(trust_env=True, base_url=self.base_url) self.params = {} self.result = ResultModel() diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 4070bc697..4603903e0 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -355,29 +355,33 @@ async def chat_web_search_handler( all_results = [] - for searchQuery in queries: - await event_emitter( - { - "type": "status", - "data": { - "action": "web_search", - "description": 'Searching "{{searchQuery}}"', - "query": searchQuery, - "done": False, - }, - } - ) + await event_emitter( + { + "type": "status", + "data": { + "action": "web_search", + "description": "Searching the web", + "done": False, + }, + } + ) - try: - results = await process_web_search( + gathered_results = await asyncio.gather( + *( + process_web_search( request, - SearchForm( - **{ - "query": searchQuery, - } - ), + SearchForm(**{"query": searchQuery}), user=user, ) + for searchQuery in queries + ), + return_exceptions=True, + ) + + for searchQuery, results in zip(queries, gathered_results): + try: + if isinstance(results, Exception): + raise Exception(f"Error searching {searchQuery}: {str(results)}") if results: all_results.append(results) @@ -888,16 +892,20 @@ async def process_chat_payload(request, form_data, user, metadata, model): # If context is not empty, insert it into the messages if len(sources) > 0: context_string = "" - citated_file_idx = {} - for _, source in enumerate(sources, 1): + citation_idx = {} + for source in sources: if "document" in source: for doc_context, doc_meta in zip( source["document"], source["metadata"] ): - file_id = doc_meta.get("file_id") - if file_id not in citated_file_idx: - citated_file_idx[file_id] = len(citated_file_idx) + 1 - context_string += f'{doc_context}\n' + citation_id = ( + doc_meta.get("source", None) + or source.get("source", {}).get("id", None) + or "N/A" + ) + if citation_id not in citation_idx: + citation_idx[citation_id] = len(citation_idx) + 1 + context_string += f'{doc_context}\n' context_string = context_string.strip() prompt = get_last_user_message(form_data["messages"]) @@ -1129,7 +1137,7 @@ async def process_chat_response( ) # Send a webhook notification if the user is not active - if get_active_status_by_user_id(user.id) is None: + 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( @@ -1418,8 +1426,10 @@ async def process_chat_response( if after_tag: content_blocks[-1]["content"] = after_tag + content = after_tag break - elif content_blocks[-1]["type"] == content_type: + + if content and content_blocks[-1]["type"] == content_type: start_tag = content_blocks[-1]["start_tag"] end_tag = content_blocks[-1]["end_tag"] # Match end tag e.g., @@ -1667,6 +1677,15 @@ async def process_chat_response( if current_response_tool_call is None: # Add the new tool call + delta_tool_call.setdefault( + "function", {} + ) + delta_tool_call[ + "function" + ].setdefault("name", "") + delta_tool_call[ + "function" + ].setdefault("arguments", "") response_tool_calls.append( delta_tool_call ) @@ -2211,7 +2230,7 @@ async def process_chat_response( ) # Send a webhook notification if the user is not active - if get_active_status_by_user_id(user.id) is None: + 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( diff --git a/backend/open_webui/utils/models.py b/backend/open_webui/utils/models.py index 95d360bed..245eaf874 100644 --- a/backend/open_webui/utils/models.py +++ b/backend/open_webui/utils/models.py @@ -203,6 +203,7 @@ async def get_all_models(request, user: UserModel = None): else: function_module, _, _ = load_function_module_by_id(function_id) request.app.state.FUNCTIONS[function_id] = function_module + return function_module for model in models: action_ids = [ diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 9ebe0e6dc..283bc3b5c 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -3,6 +3,7 @@ import logging import mimetypes import sys import uuid +import json import aiohttp from authlib.integrations.starlette_client import OAuth @@ -15,7 +16,7 @@ from starlette.responses import RedirectResponse from open_webui.models.auths import Auths from open_webui.models.users import Users -from open_webui.models.groups import Groups, GroupModel, GroupUpdateForm +from open_webui.models.groups import Groups, GroupModel, GroupUpdateForm, GroupForm from open_webui.config import ( DEFAULT_USER_ROLE, ENABLE_OAUTH_SIGNUP, @@ -23,6 +24,8 @@ from open_webui.config import ( OAUTH_PROVIDERS, ENABLE_OAUTH_ROLE_MANAGEMENT, ENABLE_OAUTH_GROUP_MANAGEMENT, + ENABLE_OAUTH_GROUP_CREATION, + OAUTH_BLOCKED_GROUPS, OAUTH_ROLES_CLAIM, OAUTH_GROUPS_CLAIM, OAUTH_EMAIL_CLAIM, @@ -57,6 +60,8 @@ auth_manager_config.ENABLE_OAUTH_SIGNUP = ENABLE_OAUTH_SIGNUP auth_manager_config.OAUTH_MERGE_ACCOUNTS_BY_EMAIL = OAUTH_MERGE_ACCOUNTS_BY_EMAIL auth_manager_config.ENABLE_OAUTH_ROLE_MANAGEMENT = ENABLE_OAUTH_ROLE_MANAGEMENT auth_manager_config.ENABLE_OAUTH_GROUP_MANAGEMENT = ENABLE_OAUTH_GROUP_MANAGEMENT +auth_manager_config.ENABLE_OAUTH_GROUP_CREATION = ENABLE_OAUTH_GROUP_CREATION +auth_manager_config.OAUTH_BLOCKED_GROUPS = OAUTH_BLOCKED_GROUPS auth_manager_config.OAUTH_ROLES_CLAIM = OAUTH_ROLES_CLAIM auth_manager_config.OAUTH_GROUPS_CLAIM = OAUTH_GROUPS_CLAIM auth_manager_config.OAUTH_EMAIL_CLAIM = OAUTH_EMAIL_CLAIM @@ -140,6 +145,12 @@ class OAuthManager: log.debug("Running OAUTH Group management") oauth_claim = auth_manager_config.OAUTH_GROUPS_CLAIM + try: + blocked_groups = json.loads(auth_manager_config.OAUTH_BLOCKED_GROUPS) + except Exception as e: + log.exception(f"Error loading OAUTH_BLOCKED_GROUPS: {e}") + blocked_groups = [] + user_oauth_groups = [] # Nested claim search for groups claim if oauth_claim: @@ -152,6 +163,51 @@ class OAuthManager: user_current_groups: list[GroupModel] = Groups.get_groups_by_member_id(user.id) all_available_groups: list[GroupModel] = Groups.get_groups() + # Create groups if they don't exist and creation is enabled + if auth_manager_config.ENABLE_OAUTH_GROUP_CREATION: + log.debug("Checking for missing groups to create...") + all_group_names = {g.name for g in all_available_groups} + groups_created = False + # Determine creator ID: Prefer admin, fallback to current user if no admin exists + admin_user = Users.get_admin_user() + creator_id = admin_user.id if admin_user else user.id + log.debug(f"Using creator ID {creator_id} for potential group creation.") + + for group_name in user_oauth_groups: + if group_name not in all_group_names: + log.info( + f"Group '{group_name}' not found via OAuth claim. Creating group..." + ) + try: + new_group_form = GroupForm( + name=group_name, + description=f"Group '{group_name}' created automatically via OAuth.", + permissions=default_permissions, # Use default permissions from function args + user_ids=[], # Start with no users, user will be added later by subsequent logic + ) + # Use determined creator ID (admin or fallback to current user) + created_group = Groups.insert_new_group( + creator_id, new_group_form + ) + if created_group: + log.info( + f"Successfully created group '{group_name}' with ID {created_group.id} using creator ID {creator_id}" + ) + groups_created = True + # Add to local set to prevent duplicate creation attempts in this run + all_group_names.add(group_name) + else: + log.error( + f"Failed to create group '{group_name}' via OAuth." + ) + except Exception as e: + log.error(f"Error creating group '{group_name}' via OAuth: {e}") + + # Refresh the list of all available groups if any were created + if groups_created: + all_available_groups = Groups.get_groups() + log.debug("Refreshed list of all available groups after creation.") + log.debug(f"Oauth Groups claim: {oauth_claim}") log.debug(f"User oauth groups: {user_oauth_groups}") log.debug(f"User's current groups: {[g.name for g in user_current_groups]}") @@ -161,7 +217,11 @@ class OAuthManager: # Remove groups that user is no longer a part of for group_model in user_current_groups: - if user_oauth_groups and group_model.name not in user_oauth_groups: + if ( + user_oauth_groups + and group_model.name not in user_oauth_groups + and group_model.name not in blocked_groups + ): # Remove group from user log.debug( f"Removing user from group {group_model.name} as it is no longer in their oauth groups" @@ -191,6 +251,7 @@ class OAuthManager: user_oauth_groups and group_model.name in user_oauth_groups and not any(gm.name == group_model.name for gm in user_current_groups) + and group_model.name not in blocked_groups ): # Add user to group log.debug( @@ -257,7 +318,7 @@ class OAuthManager: try: access_token = token.get("access_token") headers = {"Authorization": f"Bearer {access_token}"} - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(trust_env=True) as session: async with session.get( "https://api.github.com/user/emails", headers=headers ) as resp: @@ -339,7 +400,7 @@ class OAuthManager: get_kwargs["headers"] = { "Authorization": f"Bearer {access_token}", } - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(trust_env=True) as session: async with session.get( picture_url, **get_kwargs ) as resp: diff --git a/backend/open_webui/utils/plugin.py b/backend/open_webui/utils/plugin.py index d4e519601..9c2ee1bbd 100644 --- a/backend/open_webui/utils/plugin.py +++ b/backend/open_webui/utils/plugin.py @@ -157,7 +157,8 @@ def load_function_module_by_id(function_id, content=None): raise Exception("No Function class found in the module") except Exception as e: log.error(f"Error loading module: {function_id}: {e}") - del sys.modules[module_name] # Cleanup by removing the module in case of error + # Cleanup by removing the module in case of error + del sys.modules[module_name] Functions.update_function_by_id(function_id, {"is_active": False}) raise e @@ -182,3 +183,32 @@ def install_frontmatter_requirements(requirements: str): else: log.info("No requirements found in frontmatter.") + + +def install_tool_and_function_dependencies(): + """ + Install all dependencies for all admin tools and active functions. + + By first collecting all dependencies from the frontmatter of each tool and function, + and then installing them using pip. Duplicates or similar version specifications are + handled by pip as much as possible. + """ + function_list = Functions.get_functions(active_only=True) + tool_list = Tools.get_tools() + + all_dependencies = "" + try: + for function in function_list: + frontmatter = extract_frontmatter(replace_imports(function.content)) + if dependencies := frontmatter.get("requirements"): + all_dependencies += f"{dependencies}, " + for tool in tool_list: + # Only install requirements for admin tools + if tool.user.role == "admin": + frontmatter = extract_frontmatter(replace_imports(tool.content)) + if dependencies := frontmatter.get("requirements"): + all_dependencies += f"{dependencies}, " + + install_frontmatter_requirements(all_dependencies.strip(", ")) + except Exception as e: + log.error(f"Error installing requirements: {e}") diff --git a/backend/open_webui/utils/tools.py b/backend/open_webui/utils/tools.py index b5d916e1d..123ec5fb9 100644 --- a/backend/open_webui/utils/tools.py +++ b/backend/open_webui/utils/tools.py @@ -36,7 +36,10 @@ from langchain_core.utils.function_calling import ( from open_webui.models.tools import Tools from open_webui.models.users import UserModel from open_webui.utils.plugin import load_tool_module_by_id -from open_webui.env import AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA +from open_webui.env import ( + AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA, + AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL, +) import copy @@ -276,8 +279,8 @@ def convert_function_to_pydantic_model(func: Callable) -> type[BaseModel]: docstring = func.__doc__ - description = parse_description(docstring) - function_descriptions = parse_docstring(docstring) + function_description = parse_description(docstring) + function_param_descriptions = parse_docstring(docstring) field_defs = {} for name, param in parameters.items(): @@ -285,15 +288,17 @@ def convert_function_to_pydantic_model(func: Callable) -> type[BaseModel]: type_hint = type_hints.get(name, Any) default_value = param.default if param.default is not param.empty else ... - description = function_descriptions.get(name, None) + param_description = function_param_descriptions.get(name, None) - if description: - field_defs[name] = type_hint, Field(default_value, description=description) + if param_description: + field_defs[name] = type_hint, Field( + default_value, description=param_description + ) else: field_defs[name] = type_hint, default_value model = create_model(func.__name__, **field_defs) - model.__doc__ = description + model.__doc__ = function_description return model @@ -371,51 +376,64 @@ def convert_openapi_to_tool_payload(openapi_spec): for path, methods in openapi_spec.get("paths", {}).items(): for method, operation in methods.items(): - tool = { - "type": "function", - "name": operation.get("operationId"), - "description": operation.get( - "description", operation.get("summary", "No description available.") - ), - "parameters": {"type": "object", "properties": {}, "required": []}, - } - - # Extract path and query parameters - for param in operation.get("parameters", []): - param_name = param["name"] - param_schema = param.get("schema", {}) - tool["parameters"]["properties"][param_name] = { - "type": param_schema.get("type"), - "description": param_schema.get("description", ""), + if operation.get("operationId"): + tool = { + "type": "function", + "name": operation.get("operationId"), + "description": operation.get( + "description", + operation.get("summary", "No description available."), + ), + "parameters": {"type": "object", "properties": {}, "required": []}, } - if param.get("required"): - tool["parameters"]["required"].append(param_name) - # Extract and resolve requestBody if available - request_body = operation.get("requestBody") - if request_body: - content = request_body.get("content", {}) - json_schema = content.get("application/json", {}).get("schema") - if json_schema: - resolved_schema = resolve_schema( - json_schema, openapi_spec.get("components", {}) - ) - - if resolved_schema.get("properties"): - tool["parameters"]["properties"].update( - resolved_schema["properties"] + # Extract path and query parameters + for param in operation.get("parameters", []): + param_name = param["name"] + param_schema = param.get("schema", {}) + description = param_schema.get("description", "") + if not description: + description = param.get("description") or "" + if param_schema.get("enum") and isinstance( + param_schema.get("enum"), list + ): + description += ( + f". Possible values: {', '.join(param_schema.get('enum'))}" ) - if "required" in resolved_schema: - tool["parameters"]["required"] = list( - set( - tool["parameters"]["required"] - + resolved_schema["required"] - ) - ) - elif resolved_schema.get("type") == "array": - tool["parameters"] = resolved_schema # special case for array + tool["parameters"]["properties"][param_name] = { + "type": param_schema.get("type"), + "description": description, + } + if param.get("required"): + tool["parameters"]["required"].append(param_name) - tool_payload.append(tool) + # Extract and resolve requestBody if available + request_body = operation.get("requestBody") + if request_body: + content = request_body.get("content", {}) + json_schema = content.get("application/json", {}).get("schema") + if json_schema: + resolved_schema = resolve_schema( + json_schema, openapi_spec.get("components", {}) + ) + + if resolved_schema.get("properties"): + tool["parameters"]["properties"].update( + resolved_schema["properties"] + ) + if "required" in resolved_schema: + tool["parameters"]["required"] = list( + set( + tool["parameters"]["required"] + + resolved_schema["required"] + ) + ) + elif resolved_schema.get("type") == "array": + tool["parameters"] = ( + resolved_schema # special case for array + ) + + tool_payload.append(tool) return tool_payload @@ -431,8 +449,10 @@ async def get_tool_server_data(token: str, url: str) -> Dict[str, Any]: error = None try: timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER_DATA) - async with aiohttp.ClientSession(timeout=timeout) as session: - async with session.get(url, headers=headers) as response: + async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session: + async with session.get( + url, headers=headers, ssl=AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL + ) as response: if response.status != 200: error_body = await response.json() raise Exception(error_body) @@ -573,19 +593,26 @@ async def execute_tool_server( if token: headers["Authorization"] = f"Bearer {token}" - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(trust_env=True) as session: request_method = getattr(session, http_method.lower()) if http_method in ["post", "put", "patch"]: async with request_method( - final_url, json=body_params, headers=headers + final_url, + json=body_params, + headers=headers, + ssl=AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL, ) as response: if response.status >= 400: text = await response.text() raise Exception(f"HTTP error {response.status}: {text}") return await response.json() else: - async with request_method(final_url, headers=headers) as response: + async with request_method( + final_url, + headers=headers, + ssl=AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL, + ) as response: if response.status >= 400: text = await response.text() raise Exception(f"HTTP error {response.status}: {text}") diff --git a/backend/requirements.txt b/backend/requirements.txt index f0cf262ee..ce55d2d34 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -31,7 +31,7 @@ APScheduler==3.10.4 RestrictedPython==8.0 -loguru==0.7.2 +loguru==0.7.3 asgiref==3.8.1 # AI libraries @@ -40,8 +40,8 @@ anthropic google-generativeai==0.8.4 tiktoken -langchain==0.3.19 -langchain-community==0.3.18 +langchain==0.3.24 +langchain-community==0.3.23 fake-useragent==2.1.0 chromadb==0.6.3 @@ -49,11 +49,11 @@ pymilvus==2.5.0 qdrant-client~=1.12.0 opensearch-py==2.8.0 playwright==1.49.1 # Caution: version must match docker-compose.playwright.yaml -elasticsearch==8.17.1 - +elasticsearch==9.0.1 +pinecone==6.0.2 transformers -sentence-transformers==3.3.1 +sentence-transformers==4.1.0 accelerate colbert-ai==0.2.21 einops==0.8.1 @@ -81,7 +81,7 @@ azure-ai-documentintelligence==1.0.0 pillow==11.1.0 opencv-python-headless==4.11.0.86 -rapidocr-onnxruntime==1.3.24 +rapidocr-onnxruntime==1.4.4 rank-bm25==0.2.2 onnxruntime==1.20.1 @@ -107,7 +107,7 @@ google-auth-oauthlib ## Tests docker~=7.1.0 -pytest~=8.3.2 +pytest~=8.3.5 pytest-docker~=3.1.1 googleapis-common-protos==1.63.2 @@ -127,14 +127,14 @@ firecrawl-py==1.12.0 tencentcloud-sdk-python==3.0.1336 ## Trace -opentelemetry-api==1.31.1 -opentelemetry-sdk==1.31.1 -opentelemetry-exporter-otlp==1.31.1 -opentelemetry-instrumentation==0.52b1 -opentelemetry-instrumentation-fastapi==0.52b1 -opentelemetry-instrumentation-sqlalchemy==0.52b1 -opentelemetry-instrumentation-redis==0.52b1 -opentelemetry-instrumentation-requests==0.52b1 -opentelemetry-instrumentation-logging==0.52b1 -opentelemetry-instrumentation-httpx==0.52b1 -opentelemetry-instrumentation-aiohttp-client==0.52b1 +opentelemetry-api==1.32.1 +opentelemetry-sdk==1.32.1 +opentelemetry-exporter-otlp==1.32.1 +opentelemetry-instrumentation==0.53b1 +opentelemetry-instrumentation-fastapi==0.53b1 +opentelemetry-instrumentation-sqlalchemy==0.53b1 +opentelemetry-instrumentation-redis==0.53b1 +opentelemetry-instrumentation-requests==0.53b1 +opentelemetry-instrumentation-logging==0.53b1 +opentelemetry-instrumentation-httpx==0.53b1 +opentelemetry-instrumentation-aiohttp-client==0.53b1 diff --git a/package-lock.json b/package-lock.json index c4f6948bd..b5145a90b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "open-webui", - "version": "0.6.5", + "version": "0.6.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "open-webui", - "version": "0.6.5", + "version": "0.6.6", "dependencies": { "@azure/msal-browser": "^4.5.0", "@codemirror/lang-javascript": "^6.2.2", @@ -18,8 +18,8 @@ "@pyscript/core": "^0.4.32", "@sveltejs/adapter-node": "^2.0.0", "@sveltejs/svelte-virtual-list": "^3.0.1", - "@tiptap/core": "^2.10.0", - "@tiptap/extension-code-block-lowlight": "^2.10.0", + "@tiptap/core": "^2.11.9", + "@tiptap/extension-code-block-lowlight": "^2.11.9", "@tiptap/extension-highlight": "^2.10.0", "@tiptap/extension-placeholder": "^2.10.0", "@tiptap/extension-typography": "^2.10.0", @@ -30,7 +30,7 @@ "bits-ui": "^0.19.7", "codemirror": "^6.0.1", "codemirror-lang-elixir": "^4.0.0", - "codemirror-lang-hcl": "^0.0.0-beta.2", + "codemirror-lang-hcl": "^0.1.0", "crc-32": "^1.2.2", "dayjs": "^1.11.10", "dompurify": "^3.2.5", @@ -59,7 +59,7 @@ "prosemirror-markdown": "^1.13.1", "prosemirror-model": "^1.23.0", "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.4.1", + "prosemirror-schema-list": "^1.5.1", "prosemirror-state": "^1.4.3", "prosemirror-view": "^1.34.3", "pyodide": "^0.27.3", @@ -81,8 +81,8 @@ "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/postcss": "^4.0.0", "@tailwindcss/typography": "^0.5.13", - "@typescript-eslint/eslint-plugin": "^6.17.0", - "@typescript-eslint/parser": "^6.17.0", + "@typescript-eslint/eslint-plugin": "^8.31.1", + "@typescript-eslint/parser": "^8.31.1", "cypress": "^13.15.0", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", @@ -2890,9 +2890,9 @@ } }, "node_modules/@tiptap/core": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.10.0.tgz", - "integrity": "sha512-58nAjPxLRFcXepdDqQRC1mhrw6E8Sanqr6bbO4Tz0+FWgDJMZvHG+dOK5wHaDVNSgK2iJDz08ETvQayfOOgDvg==", + "version": "2.11.9", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.11.9.tgz", + "integrity": "sha512-UZSxQLLyJst47xep3jlyKM6y1ebZnmvbGsB7njBVjfxf5H+4yFpRJwwNqrBHM/vyU55LCtPChojqaYC1wXLf6g==", "license": "MIT", "funding": { "type": "github", @@ -2969,9 +2969,9 @@ } }, "node_modules/@tiptap/extension-code-block-lowlight": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.10.0.tgz", - "integrity": "sha512-dAv03XIHT5h+sdFmJzvx2FfpfFOOK9SBKHflRUdqTa8eA+0VZNAcPRjvJWVEWqts1fKZDJj774mO28NlhFzk9Q==", + "version": "2.11.9", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.11.9.tgz", + "integrity": "sha512-bB8N59A2aU18/ieyKRZAI0J0xyimmUckYePqBkUX8HFnq8yf9HsM0NPFpqZdK0eqjnZYCXcNwAI3YluLsHuutw==", "license": "MIT", "funding": { "type": "github", @@ -3547,12 +3547,6 @@ "@types/unist": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, "node_modules/@types/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", @@ -3604,12 +3598,6 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -3652,79 +3640,72 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", + "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/type-utils": "8.31.1", + "@typescript-eslint/utils": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", + "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", + "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3732,39 +3713,37 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", + "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/utils": "8.31.1", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", + "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3772,73 +3751,85 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", + "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "node_modules/@typescript-eslint/utils": { + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", + "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", + "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@ungap/structured-clone": { @@ -4166,15 +4157,6 @@ "dequal": "^2.0.3" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -4995,9 +4977,9 @@ } }, "node_modules/codemirror-lang-hcl": { - "version": "0.0.0-beta.2", - "resolved": "https://registry.npmjs.org/codemirror-lang-hcl/-/codemirror-lang-hcl-0.0.0-beta.2.tgz", - "integrity": "sha512-R3ew7Z2EYTdHTMXsWKBW9zxnLoLPYO+CrAa3dPZjXLrIR96Q3GR4cwJKF7zkSsujsnWgwRQZonyWpXYXfhQYuQ==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/codemirror-lang-hcl/-/codemirror-lang-hcl-0.1.0.tgz", + "integrity": "sha512-duwKEaQDhkJWad4YQ9pv4282BS6hCdR+gS/qTAj3f9bypXNNZ42bIN43h9WK3DjyZRENtVlUQdrQM1sA44wHmA==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -6022,18 +6004,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -7154,26 +7124,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -8762,10 +8712,10 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8841,21 +8791,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/minizlib/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/minizlib/node_modules/rimraf": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", @@ -9330,15 +9265,6 @@ "node": "14 || >=16.14" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", @@ -9860,9 +9786,10 @@ } }, "node_modules/prosemirror-schema-list": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz", - "integrity": "sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", + "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", + "license": "MIT", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -11069,15 +10996,6 @@ "node": ">=18" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", @@ -11842,15 +11760,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { diff --git a/package.json b/package.json index 0a982196e..ce1cb2545 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-webui", - "version": "0.6.5", + "version": "0.6.6", "private": true, "scripts": { "dev": "npm run pyodide:fetch && vite dev --host", @@ -28,8 +28,8 @@ "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/postcss": "^4.0.0", "@tailwindcss/typography": "^0.5.13", - "@typescript-eslint/eslint-plugin": "^6.17.0", - "@typescript-eslint/parser": "^6.17.0", + "@typescript-eslint/eslint-plugin": "^8.31.1", + "@typescript-eslint/parser": "^8.31.1", "cypress": "^13.15.0", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", @@ -61,8 +61,8 @@ "@pyscript/core": "^0.4.32", "@sveltejs/adapter-node": "^2.0.0", "@sveltejs/svelte-virtual-list": "^3.0.1", - "@tiptap/core": "^2.10.0", - "@tiptap/extension-code-block-lowlight": "^2.10.0", + "@tiptap/core": "^2.11.9", + "@tiptap/extension-code-block-lowlight": "^2.11.9", "@tiptap/extension-highlight": "^2.10.0", "@tiptap/extension-placeholder": "^2.10.0", "@tiptap/extension-typography": "^2.10.0", @@ -73,7 +73,7 @@ "bits-ui": "^0.19.7", "codemirror": "^6.0.1", "codemirror-lang-elixir": "^4.0.0", - "codemirror-lang-hcl": "^0.0.0-beta.2", + "codemirror-lang-hcl": "^0.1.0", "crc-32": "^1.2.2", "dayjs": "^1.11.10", "dompurify": "^3.2.5", @@ -102,7 +102,7 @@ "prosemirror-markdown": "^1.13.1", "prosemirror-model": "^1.23.0", "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.4.1", + "prosemirror-schema-list": "^1.5.1", "prosemirror-state": "^1.4.3", "prosemirror-view": "^1.34.3", "pyodide": "^0.27.3", diff --git a/pyproject.toml b/pyproject.toml index 8a48c90fa..7760b51bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,9 +58,10 @@ dependencies = [ "opensearch-py==2.8.0", "playwright==1.49.1", "elasticsearch==8.17.1", + "pinecone==6.0.2", "transformers", - "sentence-transformers==3.3.1", + "sentence-transformers==4.1.0", "accelerate", "colbert-ai==0.2.21", "einops==0.8.1", diff --git a/src/lib/apis/auths/index.ts b/src/lib/apis/auths/index.ts index 40caebf5d..75252fd71 100644 --- a/src/lib/apis/auths/index.ts +++ b/src/lib/apis/auths/index.ts @@ -354,7 +354,8 @@ export const addUser = async ( name: string, email: string, password: string, - role: string = 'pending' + role: string = 'pending', + profile_image_url: null | string = null ) => { let error = null; @@ -368,7 +369,8 @@ export const addUser = async ( name: name, email: email, password: password, - role: role + role: role, + ...(profile_image_url && { profile_image_url: profile_image_url }) }) }) .then(async (res) => { diff --git a/src/lib/apis/channels/index.ts b/src/lib/apis/channels/index.ts index f16b43505..cd46410c7 100644 --- a/src/lib/apis/channels/index.ts +++ b/src/lib/apis/channels/index.ts @@ -1,5 +1,4 @@ import { WEBUI_API_BASE_URL } from '$lib/constants'; -import { t } from 'i18next'; type ChannelForm = { name: string; diff --git a/src/lib/apis/index.ts b/src/lib/apis/index.ts index 0929e0a69..3892afeb8 100644 --- a/src/lib/apis/index.ts +++ b/src/lib/apis/index.ts @@ -539,7 +539,7 @@ export const updateTaskConfig = async (token: string, config: object) => { export const generateTitle = async ( token: string = '', model: string, - messages: string[], + messages: object[], chat_id?: string ) => { let error = null; @@ -573,7 +573,39 @@ export const generateTitle = async ( throw error; } - return res?.choices[0]?.message?.content.replace(/["']/g, '') ?? 'New Chat'; + try { + // Step 1: Safely extract the response string + const response = res?.choices[0]?.message?.content ?? ''; + + // Step 2: Attempt to fix common JSON format issues like single quotes + const sanitizedResponse = response.replace(/['‘’`]/g, '"'); // Convert single quotes to double quotes for valid JSON + + // Step 3: Find the relevant JSON block within the response + const jsonStartIndex = sanitizedResponse.indexOf('{'); + const jsonEndIndex = sanitizedResponse.lastIndexOf('}'); + + // Step 4: Check if we found a valid JSON block (with both `{` and `}`) + if (jsonStartIndex !== -1 && jsonEndIndex !== -1) { + const jsonResponse = sanitizedResponse.substring(jsonStartIndex, jsonEndIndex + 1); + + // Step 5: Parse the JSON block + const parsed = JSON.parse(jsonResponse); + + // Step 6: If there's a "tags" key, return the tags array; otherwise, return an empty array + if (parsed && parsed.title) { + return parsed.title; + } else { + return null; + } + } + + // If no valid JSON block found, return an empty array + return null; + } catch (e) { + // Catch and safely return empty array on any parsing errors + console.error('Failed to parse response: ', e); + return null; + } }; export const generateTags = async ( diff --git a/src/lib/apis/notes/index.ts b/src/lib/apis/notes/index.ts new file mode 100644 index 000000000..23bec36f2 --- /dev/null +++ b/src/lib/apis/notes/index.ts @@ -0,0 +1,187 @@ +import { WEBUI_API_BASE_URL } from '$lib/constants'; +import { getTimeRange } from '$lib/utils'; + +type NoteItem = { + title: string; + data: object; + meta?: null | object; + access_control?: null | object; +}; + +export const createNewNote = async (token: string, note: NoteItem) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/notes/create`, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + authorization: `Bearer ${token}` + }, + body: JSON.stringify({ + ...note + }) + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .catch((err) => { + error = err.detail; + console.log(err); + return null; + }); + + if (error) { + throw error; + } + + return res; +}; + +export const getNotes = async (token: string = '') => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/notes/`, { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + authorization: `Bearer ${token}` + } + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .then((json) => { + return json; + }) + .catch((err) => { + error = err.detail; + console.log(err); + return null; + }); + + if (error) { + throw error; + } + + if (!Array.isArray(res)) { + return {}; // or throw new Error("Notes response is not an array") + } + + // Build the grouped object + const grouped: Record = {}; + for (const note of res) { + const timeRange = getTimeRange(note.updated_at / 1000000000); + if (!grouped[timeRange]) { + grouped[timeRange] = []; + } + grouped[timeRange].push({ + ...note, + timeRange + }); + } + + return grouped; +}; + +export const getNoteById = async (token: string, id: string) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}`, { + method: 'GET', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + authorization: `Bearer ${token}` + } + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .then((json) => { + return json; + }) + .catch((err) => { + error = err.detail; + + console.log(err); + return null; + }); + + if (error) { + throw error; + } + + return res; +}; + +export const updateNoteById = async (token: string, id: string, note: NoteItem) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}/update`, { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + authorization: `Bearer ${token}` + }, + body: JSON.stringify({ + ...note + }) + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .then((json) => { + return json; + }) + .catch((err) => { + error = err.detail; + + console.log(err); + return null; + }); + + if (error) { + throw error; + } + + return res; +}; + +export const deleteNoteById = async (token: string, id: string) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/notes/${id}/delete`, { + method: 'DELETE', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + authorization: `Bearer ${token}` + } + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .then((json) => { + return json; + }) + .catch((err) => { + error = err.detail; + + console.log(err); + return null; + }); + + if (error) { + throw error; + } + + return res; +}; diff --git a/src/lib/apis/users/index.ts b/src/lib/apis/users/index.ts index f479b130c..be82454c2 100644 --- a/src/lib/apis/users/index.ts +++ b/src/lib/apis/users/index.ts @@ -116,10 +116,33 @@ export const updateUserRole = async (token: string, id: string, role: string) => return res; }; -export const getUsers = async (token: string) => { +export const getUsers = async ( + token: string, + query?: string, + orderBy?: string, + direction?: string, + page = 1 +) => { let error = null; + let res = null; - const res = await fetch(`${WEBUI_API_BASE_URL}/users/`, { + let searchParams = new URLSearchParams(); + + searchParams.set('page', `${page}`); + + if (query) { + searchParams.set('query', query); + } + + if (orderBy) { + searchParams.set('order_by', orderBy); + } + + if (direction) { + searchParams.set('direction', direction); + } + + res = await fetch(`${WEBUI_API_BASE_URL}/users/?${searchParams.toString()}`, { method: 'GET', headers: { 'Content-Type': 'application/json', @@ -140,7 +163,35 @@ export const getUsers = async (token: string) => { throw error; } - return res ? res : []; + return res; +}; + +export const getAllUsers = async (token: string) => { + let error = null; + let res = null; + + res = await fetch(`${WEBUI_API_BASE_URL}/users/all`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + } + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .catch((err) => { + console.log(err); + error = err.detail; + return null; + }); + + if (error) { + throw error; + } + + return res; }; export const getUserSettings = async (token: string) => { diff --git a/src/lib/components/AddFilesPlaceholder.svelte b/src/lib/components/AddFilesPlaceholder.svelte index d3d700795..6d72ee0e6 100644 --- a/src/lib/components/AddFilesPlaceholder.svelte +++ b/src/lib/components/AddFilesPlaceholder.svelte @@ -21,7 +21,7 @@ {#if content} {content} {:else} - {$i18n.t('Drop any files here to add to the conversation')} + {$i18n.t('Drop any files here to upload')} {/if} diff --git a/src/lib/components/admin/Functions.svelte b/src/lib/components/admin/Functions.svelte index 87f4958d4..fbeb61596 100644 --- a/src/lib/components/admin/Functions.svelte +++ b/src/lib/components/admin/Functions.svelte @@ -192,7 +192,7 @@ - {$i18n.t('Functions')} | {$WEBUI_NAME} + {$i18n.t('Functions')} • {$WEBUI_NAME} diff --git a/src/lib/components/admin/Functions/FunctionEditor.svelte b/src/lib/components/admin/Functions/FunctionEditor.svelte index 6da2a83f4..9b2355fe4 100644 --- a/src/lib/components/admin/Functions/FunctionEditor.svelte +++ b/src/lib/components/admin/Functions/FunctionEditor.svelte @@ -387,7 +387,7 @@ class Pipe:
{$i18n.t('Warning:')} - {$i18n.t('Functions allow arbitrary code execution')}
— + {$i18n.t('Functions allow arbitrary code execution.')}
{$i18n.t(`don't install random functions from sources you don't trust.`)} diff --git a/src/lib/components/admin/Settings/Audio.svelte b/src/lib/components/admin/Settings/Audio.svelte index 52b874935..070ed9b69 100644 --- a/src/lib/components/admin/Settings/Audio.svelte +++ b/src/lib/components/admin/Settings/Audio.svelte @@ -42,6 +42,8 @@ let STT_AZURE_API_KEY = ''; let STT_AZURE_REGION = ''; let STT_AZURE_LOCALES = ''; + let STT_AZURE_BASE_URL = ''; + let STT_AZURE_MAX_SPEAKERS = ''; let STT_DEEPGRAM_API_KEY = ''; let STT_WHISPER_MODEL_LOADING = false; @@ -114,7 +116,9 @@ DEEPGRAM_API_KEY: STT_DEEPGRAM_API_KEY, AZURE_API_KEY: STT_AZURE_API_KEY, AZURE_REGION: STT_AZURE_REGION, - AZURE_LOCALES: STT_AZURE_LOCALES + AZURE_LOCALES: STT_AZURE_LOCALES, + AZURE_BASE_URL: STT_AZURE_BASE_URL, + AZURE_MAX_SPEAKERS: STT_AZURE_MAX_SPEAKERS } }); @@ -157,6 +161,8 @@ STT_AZURE_API_KEY = res.stt.AZURE_API_KEY; STT_AZURE_REGION = res.stt.AZURE_REGION; STT_AZURE_LOCALES = res.stt.AZURE_LOCALES; + STT_AZURE_BASE_URL = res.stt.AZURE_BASE_URL; + STT_AZURE_MAX_SPEAKERS = res.stt.AZURE_MAX_SPEAKERS; STT_DEEPGRAM_API_KEY = res.stt.DEEPGRAM_API_KEY; } @@ -288,6 +294,32 @@
+ +
+
{$i18n.t('Base URL')}
+
+
+ +
+
+
+ +
+
{$i18n.t('Max Speakers')}
+
+
+ +
+
+
{:else if STT_ENGINE === ''}
diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index 2047a07e7..b54404f79 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -161,6 +161,16 @@ toast.error($i18n.t('Docling Server URL required.')); return; } + if ( + RAGConfig.CONTENT_EXTRACTION_ENGINE === 'docling' && + ((RAGConfig.DOCLING_OCR_ENGINE === '' && RAGConfig.DOCLING_OCR_LANG !== '') || + (RAGConfig.DOCLING_OCR_ENGINE !== '' && RAGConfig.DOCLING_OCR_LANG === '')) + ) { + toast.error( + $i18n.t('Both Docling OCR Engine and Language(s) must be provided or both left empty.') + ); + return; + } if ( RAGConfig.CONTENT_EXTRACTION_ENGINE === 'document_intelligence' && @@ -326,6 +336,18 @@ bind:value={RAGConfig.DOCLING_SERVER_URL} />
+
+ + +
{:else if RAGConfig.CONTENT_EXTRACTION_ENGINE === 'document_intelligence'}
import DOMPurify from 'dompurify'; - import { getBackendConfig, getVersionUpdates, getWebhookUrl, updateWebhookUrl } from '$lib/apis'; + import { getVersionUpdates, getWebhookUrl, updateWebhookUrl } from '$lib/apis'; import { getAdminConfig, getLdapConfig, @@ -601,6 +601,14 @@
+
+
+ {$i18n.t('Notes')} ({$i18n.t('Beta')}) +
+ + +
+
{$i18n.t('Channels')} ({$i18n.t('Beta')}) diff --git a/src/lib/components/admin/Settings/WebSearch.svelte b/src/lib/components/admin/Settings/WebSearch.svelte index d9771f835..e25852cc3 100644 --- a/src/lib/components/admin/Settings/WebSearch.svelte +++ b/src/lib/components/admin/Settings/WebSearch.svelte @@ -14,6 +14,7 @@ let webSearchEngines = [ 'searxng', + 'yacy', 'google_pse', 'brave', 'kagi', @@ -30,9 +31,11 @@ 'bing', 'exa', 'perplexity', - 'sougou' + 'sougou', + 'firecrawl', + 'external' ]; - let webLoaderEngines = ['playwright', 'firecrawl', 'tavily']; + let webLoaderEngines = ['playwright', 'firecrawl', 'tavily', 'external']; let webConfig = null; @@ -143,6 +146,53 @@
+ {:else if webConfig.WEB_SEARCH_ENGINE === 'yacy'} +
+
+
+ {$i18n.t('Yacy Instance URL')} +
+ +
+
+ +
+
+
+
+
+
+
+
+ {$i18n.t('Yacy Username')} +
+ + +
+ +
+
+ {$i18n.t('Yacy Password')} +
+ + +
+
+
{:else if webConfig.WEB_SEARCH_ENGINE === 'google_pse'}
@@ -431,6 +481,68 @@ />
+ {:else if webConfig.WEB_SEARCH_ENGINE === 'firecrawl'} +
+
+
+ {$i18n.t('Firecrawl API Base URL')} +
+ +
+
+ +
+
+
+ +
+
+ {$i18n.t('Firecrawl API Key')} +
+ + +
+
+ {:else if webConfig.WEB_SEARCH_ENGINE === 'external'} +
+
+
+ {$i18n.t('External Web Search URL')} +
+ +
+
+ +
+
+
+ +
+
+ {$i18n.t('External Web Search API Key')} +
+ + +
+
{/if} {/if} @@ -588,7 +700,7 @@ - {:else if webConfig.WEB_LOADER_ENGINE === 'firecrawl'} + {:else if webConfig.WEB_LOADER_ENGINE === 'firecrawl' && webConfig.WEB_SEARCH_ENGINE !== 'firecrawl'}
@@ -652,6 +764,37 @@
{/if}
+ {:else if webConfig.WEB_LOADER_ENGINE === 'external'} +
+
+
+ {$i18n.t('External Web Loader URL')} +
+ +
+
+ +
+
+
+ +
+
+ {$i18n.t('External Web Loader API Key')} +
+ + +
+
{/if}
diff --git a/src/lib/components/admin/Users.svelte b/src/lib/components/admin/Users.svelte index 00659ad3e..e777757e0 100644 --- a/src/lib/components/admin/Users.svelte +++ b/src/lib/components/admin/Users.svelte @@ -5,32 +5,19 @@ import { goto } from '$app/navigation'; import { user } from '$lib/stores'; - import { getUsers } from '$lib/apis/users'; - import UserList from './Users/UserList.svelte'; import Groups from './Users/Groups.svelte'; const i18n = getContext('i18n'); - let users = []; - let selectedTab = 'overview'; let loaded = false; - $: if (selectedTab) { - getUsersHandler(); - } - - const getUsersHandler = async () => { - users = await getUsers(localStorage.token); - }; - onMount(async () => { if ($user?.role !== 'admin') { await goto('/'); - } else { - users = await getUsers(localStorage.token); } + loaded = true; const containerElement = document.getElementById('users-tabs-container'); @@ -102,9 +89,9 @@
{#if selectedTab === 'overview'} - + {:else if selectedTab === 'groups'} - + {/if}
diff --git a/src/lib/components/admin/Users/Groups.svelte b/src/lib/components/admin/Users/Groups.svelte index dce8423e5..5847ebbb1 100644 --- a/src/lib/components/admin/Users/Groups.svelte +++ b/src/lib/components/admin/Users/Groups.svelte @@ -23,13 +23,18 @@ import GroupItem from './Groups/GroupItem.svelte'; import AddGroupModal from './Groups/AddGroupModal.svelte'; import { createNewGroup, getGroups } from '$lib/apis/groups'; - import { getUserDefaultPermissions, updateUserDefaultPermissions } from '$lib/apis/users'; + import { + getUserDefaultPermissions, + getAllUsers, + updateUserDefaultPermissions + } from '$lib/apis/users'; const i18n = getContext('i18n'); let loaded = false; - export let users = []; + let users = []; + let total = 0; let groups = []; let filteredGroups; @@ -63,6 +68,8 @@ file_upload: true, delete: true, edit: true, + share: true, + export: true, stt: true, tts: true, call: true, @@ -74,7 +81,8 @@ direct_tool_servers: false, web_search: true, image_generation: true, - code_interpreter: true + code_interpreter: true, + notes: true } }; @@ -116,10 +124,22 @@ onMount(async () => { if ($user?.role !== 'admin') { await goto('/'); - } else { - await setGroups(); - defaultPermissions = await getUserDefaultPermissions(localStorage.token); + return; } + + const res = await getAllUsers(localStorage.token).catch((error) => { + toast.error(`${error}`); + return null; + }); + + if (res) { + users = res.users; + total = res.total; + } + + await setGroups(); + defaultPermissions = await getUserDefaultPermissions(localStorage.token); + loaded = true; }); diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte index c7a1308a5..6af935813 100644 --- a/src/lib/components/admin/Users/Groups/Permissions.svelte +++ b/src/lib/components/admin/Users/Groups/Permissions.svelte @@ -24,6 +24,8 @@ file_upload: true, delete: true, edit: true, + share: true, + export: true, stt: true, tts: true, call: true, @@ -35,7 +37,8 @@ direct_tool_servers: false, web_search: true, image_generation: true, - code_interpreter: true + code_interpreter: true, + notes: true } }; @@ -276,6 +279,22 @@
+
+
+ {$i18n.t('Allow Chat Share')} +
+ + +
+ +
+
+ {$i18n.t('Allow Chat Export')} +
+ + +
+
{$i18n.t('Allow Speech to Text')} @@ -362,5 +381,13 @@
+ +
+
+ {$i18n.t('Notes')} +
+ + +
diff --git a/src/lib/components/admin/Users/UserList.svelte b/src/lib/components/admin/Users/UserList.svelte index 02fcdd717..1f091c47a 100644 --- a/src/lib/components/admin/Users/UserList.svelte +++ b/src/lib/components/admin/Users/UserList.svelte @@ -23,6 +23,8 @@ import AddUserModal from '$lib/components/admin/Users/UserList/AddUserModal.svelte'; import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; + import RoleUpdateConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; + import Badge from '$lib/components/common/Badge.svelte'; import Plus from '$lib/components/icons/Plus.svelte'; import ChevronUp from '$lib/components/icons/ChevronUp.svelte'; @@ -33,19 +35,33 @@ const i18n = getContext('i18n'); - export let users = []; - - let search = ''; - let selectedUser = null; - let page = 1; + let users = []; + let total = 0; + + let query = ''; + let orderBy = 'created_at'; // default sort key + let direction = 'asc'; // default sort order + + let selectedUser = null; + let showDeleteConfirmDialog = false; let showAddUserModal = false; let showUserChatsModal = false; let showEditUserModal = false; + let showUpdateRoleModal = false; + const onUpdateRole = (user) => { + if (user.role === 'user') { + updateRoleHandler(user.id, 'admin'); + } else if (user.role === 'pending') { + updateRoleHandler(user.id, 'user'); + } else { + updateRoleHandler(user.id, 'pending'); + } + }; const updateRoleHandler = async (id, role) => { const res = await updateUserRole(localStorage.token, id, role).catch((error) => { toast.error(`${error}`); @@ -53,7 +69,7 @@ }); if (res) { - users = await getUsers(localStorage.token); + getUserList(); } }; @@ -62,42 +78,51 @@ toast.error(`${error}`); return null; }); + + // if the user is deleted and the current page has only one user, go back to the previous page + if (users.length === 1 && page > 1) { + page -= 1; + } + if (res) { - users = await getUsers(localStorage.token); + getUserList(); } }; - let sortKey = 'created_at'; // default sort key - let sortOrder = 'asc'; // default sort order - - function setSortKey(key) { - if (sortKey === key) { - sortOrder = sortOrder === 'asc' ? 'desc' : 'asc'; + const setSortKey = (key) => { + if (orderBy === key) { + direction = direction === 'asc' ? 'desc' : 'asc'; } else { - sortKey = key; - sortOrder = 'asc'; + orderBy = key; + direction = 'asc'; } + }; + + const getUserList = async () => { + try { + const res = await getUsers(localStorage.token, query, orderBy, direction, page).catch( + (error) => { + toast.error(`${error}`); + return null; + } + ); + + if (res) { + users = res.users; + total = res.total; + } + } catch (err) { + console.error(err); + } + }; + + $: if (page) { + getUserList(); } - let filteredUsers; - - $: filteredUsers = users - .filter((user) => { - if (search === '') { - return true; - } else { - let name = user.name.toLowerCase(); - let email = user.email.toLowerCase(); - const query = search.toLowerCase(); - return name.includes(query) || email.includes(query); - } - }) - .sort((a, b) => { - if (a[sortKey] < b[sortKey]) return sortOrder === 'asc' ? -1 : 1; - if (a[sortKey] > b[sortKey]) return sortOrder === 'asc' ? 1 : -1; - return 0; - }) - .slice((page - 1) * 20, page * 20); + $: if (query !== null && orderBy && direction) { + getUserList(); + } + { + onUpdateRole(selectedUser); + }} + message={$i18n.t(`Are you sure you want to update this user\'s role to **{{ROLE}}**?`, { + ROLE: + selectedUser?.role === 'user' + ? 'admin' + : selectedUser?.role === 'pending' + ? 'user' + : 'pending' + })} +/> + {#key selectedUser} { - users = await getUsers(localStorage.token); + getUserList(); }} /> {/key} @@ -121,7 +161,7 @@ { - users = await getUsers(localStorage.token); + getUserList(); }} /> @@ -149,19 +189,19 @@
{#if ($config?.license_metadata?.seats ?? null) !== null} - {#if users.length > $config?.license_metadata?.seats} + {#if total > $config?.license_metadata?.seats} {users.length} of {$config?.license_metadata?.seats} + >{total} of {$config?.license_metadata?.seats} available users {:else} {users.length} of {$config?.license_metadata?.seats} + >{total} of {$config?.license_metadata?.seats} available users {/if} {:else} - {users.length} + {total} {/if}
@@ -184,7 +224,7 @@ @@ -223,9 +263,9 @@
{$i18n.t('Role')} - {#if sortKey === 'role'} + {#if orderBy === 'role'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -246,9 +286,9 @@
{$i18n.t('Name')} - {#if sortKey === 'name'} + {#if orderBy === 'name'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -269,9 +309,9 @@
{$i18n.t('Email')} - {#if sortKey === 'email'} + {#if orderBy === 'email'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -293,9 +333,9 @@
{$i18n.t('Last Active')} - {#if sortKey === 'last_active_at'} + {#if orderBy === 'last_active_at'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -315,9 +355,9 @@ >
{$i18n.t('Created at')} - {#if sortKey === 'created_at'} + {#if orderBy === 'created_at'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -339,9 +379,9 @@
{$i18n.t('OAuth ID')} - {#if sortKey === 'oauth_sub'} + {#if orderBy === 'oauth_sub'} {#if sortOrder === 'asc'} + >{#if direction === 'asc'} {:else} @@ -359,19 +399,14 @@ - {#each filteredUsers as user, userIdx} + {#each users as user, userIdx}
-
-
+
-
+
-
+
+
+
+
{$i18n.t('Email')}
-
-
-
{$i18n.t('Email')}
+
+ +
+
-
- +
+
{$i18n.t('Name')}
+ +
+ +
+
+ +
+
{$i18n.t('New Password')}
+ +
+ +
-
-
{$i18n.t('Name')}
- -
- -
+
+
- -
-
{$i18n.t('New Password')}
- -
- -
-
-
- -
-
diff --git a/src/lib/components/channel/Channel.svelte b/src/lib/components/channel/Channel.svelte index ce2aa54f1..1b1ca25de 100644 --- a/src/lib/components/channel/Channel.svelte +++ b/src/lib/components/channel/Channel.svelte @@ -195,7 +195,7 @@ - #{channel?.name ?? 'Channel'} | Open WebUI + #{channel?.name ?? 'Channel'} • Open WebUI
{ + onClose={() => { threadId = null; }} > diff --git a/src/lib/components/channel/MessageInput.svelte b/src/lib/components/channel/MessageInput.svelte index 9f495a8de..d60851fc8 100644 --- a/src/lib/components/channel/MessageInput.svelte +++ b/src/lib/components/channel/MessageInput.svelte @@ -357,14 +357,14 @@ {#if recording} { + onCancel={async () => { recording = false; await tick(); document.getElementById(`chat-input-${id}`)?.focus(); }} - on:confirm={async (e) => { - const { text, filename } = e.detail; + onConfirm={async (data) => { + const { text, filename } = data; content = `${content}${text} `; recording = false; diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index fb9faa247..9f8f1d326 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -236,9 +236,11 @@ await tick(); await tick(); - const messageElement = document.getElementById(`message-${message.id}`); - if (messageElement) { - messageElement.scrollIntoView({ behavior: 'smooth' }); + if ($settings?.scrollOnBranchChange ?? true) { + const messageElement = document.getElementById(`message-${message.id}`); + if (messageElement) { + messageElement.scrollIntoView({ behavior: 'smooth' }); + } } await tick(); @@ -1919,7 +1921,7 @@ {$chatTitle - ? `${$chatTitle.length > 30 ? `${$chatTitle.slice(0, 30)}...` : $chatTitle} | ${$WEBUI_NAME}` + ? `${$chatTitle.length > 30 ? `${$chatTitle.slice(0, 30)}...` : $chatTitle} • ${$WEBUI_NAME}` : `${$WEBUI_NAME}`} @@ -2038,7 +2040,7 @@ {stopResponse} {createMessagePair} onChange={(input) => { - if (input.prompt) { + if (input.prompt !== null) { localStorage.setItem(`chat-input-${$chatId}`, JSON.stringify(input)); } else { localStorage.removeItem(`chat-input-${$chatId}`); diff --git a/src/lib/components/chat/ChatControls.svelte b/src/lib/components/chat/ChatControls.svelte index 92c7e4d8d..64fd8d92d 100644 --- a/src/lib/components/chat/ChatControls.svelte +++ b/src/lib/components/chat/ChatControls.svelte @@ -140,7 +140,7 @@ {#if $showControls} { + onClose={() => { showControls.set(false); }} > diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index ca6487cf5..bcf28f61c 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -395,39 +395,37 @@
- {#if atSelectedModel !== undefined || selectedToolIds.length > 0 || webSearchEnabled || ($settings?.webSearch ?? false) === 'always' || imageGenerationEnabled || codeInterpreterEnabled} + {#if atSelectedModel !== undefined}
- {#if atSelectedModel !== undefined} -
-
- model profile model.id === atSelectedModel.id)?.info?.meta - ?.profile_image_url ?? - ($i18n.language === 'dg-DG' - ? `/doge.png` - : `${WEBUI_BASE_URL}/static/favicon.png`)} - /> -
- Talking to {atSelectedModel.name} -
-
-
- +
+
+ model profile model.id === atSelectedModel.id)?.info?.meta + ?.profile_image_url ?? + ($i18n.language === 'dg-DG' + ? `/doge.png` + : `${WEBUI_BASE_URL}/static/favicon.png`)} + /> +
+ Talking to {atSelectedModel.name}
- {/if} +
+ +
+
{/if} @@ -481,14 +479,14 @@ {#if recording} { + onCancel={async () => { recording = false; await tick(); document.getElementById('chat-input')?.focus(); }} - on:confirm={async (e) => { - const { text, filename } = e.detail; + onConfirm={async (data) => { + const { text, filename } = data; prompt = `${prompt}${text} `; recording = false; @@ -1063,9 +1061,9 @@ ); } }} - uploadOneDriveHandler={async () => { + uploadOneDriveHandler={async (authorityType) => { try { - const fileData = await pickAndDownloadFile(); + const fileData = await pickAndDownloadFile(authorityType); if (fileData) { const file = new File([fileData.blob], fileData.name, { type: fileData.blob.type || 'application/octet-stream' diff --git a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte index bae077b9b..adf82bb0f 100644 --- a/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte +++ b/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte @@ -265,7 +265,7 @@ {/each} {:else}
- {$i18n.t('No files found.')} + {$i18n.t('File not found.')}
{/if}
--> diff --git a/src/lib/components/chat/MessageInput/InputMenu.svelte b/src/lib/components/chat/MessageInput/InputMenu.svelte index 27fe2cde2..2447c3aa5 100644 --- a/src/lib/components/chat/MessageInput/InputMenu.svelte +++ b/src/lib/components/chat/MessageInput/InputMenu.svelte @@ -146,7 +146,7 @@ {/if} { - uploadOneDriveHandler(); - }} - > - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$i18n.t('Microsoft OneDrive')}
+ + + { + uploadOneDriveHandler('personal'); + }} > - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{$i18n.t('OneDrive')}
-
+
{$i18n.t('Microsoft OneDrive (personal)')}
+
+ { + uploadOneDriveHandler('organizations'); + }} + > +
+
{$i18n.t('Microsoft OneDrive (work/school)')}
+
Includes SharePoint
+
+
+ + {/if}
diff --git a/src/lib/components/chat/MessageInput/VoiceRecording.svelte b/src/lib/components/chat/MessageInput/VoiceRecording.svelte index 70472055f..d9bddf022 100644 --- a/src/lib/components/chat/MessageInput/VoiceRecording.svelte +++ b/src/lib/components/chat/MessageInput/VoiceRecording.svelte @@ -1,18 +1,26 @@ {#key id} - { - dispatch('update', e.detail); - }} - on:code={(e) => { - dispatch('code', e.detail); - }} - /> + {/key} diff --git a/src/lib/components/chat/Messages/Markdown/HTMLToken.svelte b/src/lib/components/chat/Messages/Markdown/HTMLToken.svelte new file mode 100644 index 000000000..168df854d --- /dev/null +++ b/src/lib/components/chat/Messages/Markdown/HTMLToken.svelte @@ -0,0 +1,80 @@ + + +{#if token.type === 'html'} + {#if html && html.includes(']*>([\s\S]*?)<\/video>/)} + {@const videoSrc = video && video[1]} + {#if videoSrc} + + + {:else} + {token.text} + {/if} + {:else if token.text && token.text.match(/]*src="https:\/\/www\.youtube\.com\/embed\/([a-zA-Z0-9_-]{11})(?:\?[^"]*)?"[^>]*><\/iframe>/)} + {@const match = token.text.match( + /]*src="https:\/\/www\.youtube\.com\/embed\/([a-zA-Z0-9_-]{11})(?:\?[^"]*)?"[^>]*><\/iframe>/ + )} + {@const ytId = match && match[1]} + {#if ytId} + + {/if} + {:else if token.text.includes(` + {/if} + {:else if token.text.includes(` + {:else} + {token.text} + {/if} +{/if} diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte index 7693e4cb4..4ca972136 100644 --- a/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte +++ b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte @@ -13,6 +13,7 @@ import Image from '$lib/components/common/Image.svelte'; import KatexRenderer from './KatexRenderer.svelte'; import Source from './Source.svelte'; + import HtmlToken from './HTMLToken.svelte'; export let id: string; export let tokens: Token[]; @@ -23,16 +24,7 @@ {#if token.type === 'escape'} {unescapeHtml(token.text)} {:else if token.type === 'html'} - {@const html = DOMPurify.sanitize(token.text)} - {#if html && html.includes(' diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte index 790cf5be9..9f80fbc77 100644 --- a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte +++ b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte @@ -1,6 +1,6 @@ @@ -238,10 +240,9 @@ messageChildrenIds = history.messages[currentMessageId].childrenIds; } history.currentId = currentMessageId; - - await tick(); - await updateChat(); - triggerScroll(); + // await tick(); + // await updateChat(); + // triggerScroll(); } }} > @@ -293,7 +294,7 @@
- Merged Response + {$i18n.t('Merged Response')} {#if message.timestamp} - {#if status?.done === false} -
- -
- {/if} - {#if status?.action === 'web_search' && status?.urls}
@@ -683,6 +677,8 @@ {$i18n.t('No search query generated')} {:else if status?.description === 'Generating search query'} {$i18n.t('Generating search query')} + {:else if status?.description === 'Searching the web'} + {$i18n.t('Searching the web...')} {:else} {status?.description} {/if} @@ -777,7 +773,7 @@
{:else}
- {#if message.content === '' && !message.error} + {#if message.content === '' && !message.error && (message?.statusHistory ?? [...(message?.status ? [message?.status] : [])]).length === 0} {:else if message.content && message.error !== true} diff --git a/src/lib/components/chat/Messages/UserMessage.svelte b/src/lib/components/chat/Messages/UserMessage.svelte index 605ab6352..24d657816 100644 --- a/src/lib/components/chat/Messages/UserMessage.svelte +++ b/src/lib/components/chat/Messages/UserMessage.svelte @@ -65,10 +65,12 @@ await tick(); - messageEditTextAreaElement.style.height = ''; - messageEditTextAreaElement.style.height = `${messageEditTextAreaElement.scrollHeight}px`; + if (messageEditTextAreaElement) { + messageEditTextAreaElement.style.height = ''; + messageEditTextAreaElement.style.height = `${messageEditTextAreaElement.scrollHeight}px`; - messageEditTextAreaElement?.focus(); + messageEditTextAreaElement?.focus(); + } }; const editMessageConfirmHandler = async (submit = true) => { diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index dcbc7ca18..860fe9a40 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -778,7 +778,7 @@
- {:else if filteredItems.length === 0} + {:else}
{/if} diff --git a/src/lib/components/chat/Navbar.svelte b/src/lib/components/chat/Navbar.svelte index 4fbc8029e..4687dd983 100644 --- a/src/lib/components/chat/Navbar.svelte +++ b/src/lib/components/chat/Navbar.svelte @@ -47,8 +47,8 @@ -
diff --git a/src/lib/components/workspace/Prompts.svelte b/src/lib/components/workspace/Prompts.svelte index 0c16b49a2..bc3f04073 100644 --- a/src/lib/components/workspace/Prompts.svelte +++ b/src/lib/components/workspace/Prompts.svelte @@ -88,7 +88,7 @@ - {$i18n.t('Prompts')} | {$WEBUI_NAME} + {$i18n.t('Prompts')} • {$WEBUI_NAME} diff --git a/src/lib/components/workspace/Prompts/PromptEditor.svelte b/src/lib/components/workspace/Prompts/PromptEditor.svelte index 6a29d03b2..624bb551e 100644 --- a/src/lib/components/workspace/Prompts/PromptEditor.svelte +++ b/src/lib/components/workspace/Prompts/PromptEditor.svelte @@ -8,6 +8,7 @@ import LockClosed from '$lib/components/icons/LockClosed.svelte'; import AccessControlModal from '../common/AccessControlModal.svelte'; import { user } from '$lib/stores'; + import { slugify } from '$lib/utils'; export let onSubmit: Function; export let edit = false; @@ -25,8 +26,15 @@ let showAccessControlModal = false; - $: if (!edit) { - command = title !== '' ? `${title.replace(/\s+/g, '-').toLowerCase()}` : ''; + let hasManualEdit = false; + + $: if (!edit && !hasManualEdit) { + command = title !== '' ? slugify(title) : ''; + } + + // Track manual edits + function handleCommandInput(e: Event) { + hasManualEdit = true; } const submitHandler = async () => { @@ -64,7 +72,7 @@ command = prompt.command.at(0) === '/' ? prompt.command.slice(1) : prompt.command; content = prompt.content; - accessControl = prompt?.access_control ?? null; + accessControl = prompt?.access_control ?? {}; } }); @@ -125,6 +133,7 @@ class=" w-full bg-transparent outline-hidden" placeholder={$i18n.t('Command')} bind:value={command} + on:input={handleCommandInput} required disabled={edit} /> diff --git a/src/lib/components/workspace/Tools.svelte b/src/lib/components/workspace/Tools.svelte index 593797822..a604b5e79 100644 --- a/src/lib/components/workspace/Tools.svelte +++ b/src/lib/components/workspace/Tools.svelte @@ -164,7 +164,7 @@ - {$i18n.t('Tools')} | {$WEBUI_NAME} + {$i18n.t('Tools')} • {$WEBUI_NAME} @@ -503,7 +503,7 @@
  • - {$i18n.t('Tools have a function calling system that allows arbitrary code execution')}. + {$i18n.t('Tools have a function calling system that allows arbitrary code execution.')}.
  • {$i18n.t('Do not install tools from sources you do not fully trust.')}
diff --git a/src/lib/i18n/locales/ar-BH/translation.json b/src/lib/i18n/locales/ar-BH/translation.json index 972a88de9..8917c0bf8 100644 --- a/src/lib/i18n/locales/ar-BH/translation.json +++ b/src/lib/i18n/locales/ar-BH/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "( `sh webui.sh --api`مثال)", "(latest)": "(الأخير)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ نماذج }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "يستطيع حذف المحادثات", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "مساعد", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "هل أنت متأكد ؟", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "استجابة خطاء", "Banners": "لافتات", "Base Model (From)": "النموذج الأساسي (من)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "قبل", "Being lazy": "كون كسول", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "مفتاح واجهة برمجة تطبيقات البحث الشجاع", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "اللغاء", "Capabilities": "قدرات", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "تغير الباسورد", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "عمل مفتاح جديد", "Create new secret key": "عمل سر جديد", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "أنشئت في", "Created At": "أنشئت من", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "أحذف هذا الرابط", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "تحميل قاعدة البيانات", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "أسقط أية ملفات هنا لإضافتها إلى المحادثة", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. الوحدات الزمنية الصالحة هي 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "تعديل", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "تفعيل عمليات التسجيل الجديدة", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.", "Enter {{role}} message here": "أدخل رسالة {{role}} هنا", "Enter a detail about yourself for your LLMs to recall": "ادخل معلومات عنك تريد أن يتذكرها الموديل", @@ -409,11 +422,17 @@ "Enter Chunk Size": "أدخل Chunk الحجم", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "أدخل عنوان URL ل Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "(e.g. {{modelTag}}) أدخل الموديل تاق", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL (e.g. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "أدخل البريد الاكتروني", "Enter Your Full Name": "أدخل الاسم كامل", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "ادخل كلمة المرور", "Enter Your Role": "أدخل الصلاحيات", @@ -480,6 +504,8 @@ "Error": "خطأ", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "فشل في إنشاء مفتاح API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "فشل في قراءة محتويات الحافظة", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "دفق قطع الاستجابة الخارجية الكبيرة بسلاسة", "Focus chat input": "التركيز على إدخال الدردشة", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "اتبعت التعليمات على أكمل وجه", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "عام", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "إنشاء استعلام بحث", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "استيراد النماذج", + "Import Notes": "", "Import Presets": "", "Import Prompts": "مطالبات الاستيراد", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "واجهه المستخدم", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "تاق غير صالحة", @@ -706,6 +740,7 @@ "Manage Pipelines": "إدارة خطوط الأنابيب", "Manage Tool Servers": "", "March": "مارس", + "Max Speakers": "", "Max Tokens (num_predict)": "ماكس توكنز (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "نتيجة الردود المدمجة", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "لن تتم مشاركة الرسائل التي ترسلها بعد إنشاء الرابط الخاص بك. سيتمكن المستخدمون الذين لديهم عنوان URL من عرض الدردشة المشتركة", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "المزيد", + "My Notes": "", "Name": "الأسم", "Name your knowledge base": "", "Native": "", "New Chat": "دردشة جديدة", "New Folder": "", + "New Note": "", "New Password": "كلمة المرور الجديدة", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "لا توجد نتايج", "No search query generated": "لم يتم إنشاء استعلام بحث", "No source available": "لا يوجد مصدر متاح", @@ -782,6 +825,7 @@ "None": "اي", "Not factually correct": "ليس صحيحا من حيث الواقع", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "ملاحظة: إذا قمت بتعيين الحد الأدنى من النقاط، فلن يؤدي البحث إلا إلى إرجاع المستندات التي لها نقاط أكبر من أو تساوي الحد الأدنى من النقاط.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "يُسمح فقط بالأحرف الأبجدية الرقمية والواصلات في سلسلة الأمر.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "خطاء! يبدو أن عنوان URL غير صالح. يرجى التحقق مرة أخرى والمحاولة مرة أخرى.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "خطوط الانابيب", "Pipelines Not Detected": "", "Pipelines Valves": "صمامات خطوط الأنابيب", + "Plain text (.md)": "", "Plain text (.txt)": "نص عادي (.txt)", "Playground": "مكان التجربة", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "أقراء لي", "Reasoning Effort": "", + "Record": "", "Record voice": "سجل صوت", "Redirecting you to Open WebUI Community": "OpenWebUI إعادة توجيهك إلى مجتمع ", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "لم يعد حفظ سجلات الدردشة مباشرة في مساحة تخزين متصفحك مدعومًا. يرجى تخصيص بعض الوقت لتنزيل وحذف سجلات الدردشة الخاصة بك عن طريق النقر على الزر أدناه. لا تقلق، يمكنك بسهولة إعادة استيراد سجلات الدردشة الخاصة بك إلى الواجهة الخلفية من خلاله", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "البحث", "Search a model": "البحث عن موديل", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "عنوان URL لاستعلام Searxng", "See readme.md for instructions": "readme.md للحصول على التعليمات", "See what's new": "ما الجديد", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "تحديث ونسخ الرابط", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "GGUF رفع موديل نوع", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "تحميل الملفات", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية]", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "أمس", "You": "انت", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "لا تملك محادثات محفوظه", "You have shared this chat": "تم مشاركة هذه المحادثة", diff --git a/src/lib/i18n/locales/ar/translation.json b/src/lib/i18n/locales/ar/translation.json index 97e1b206a..5172d2ee8 100644 --- a/src/lib/i18n/locales/ar/translation.json +++ b/src/lib/i18n/locales/ar/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(مثال: `sh webui.sh --api --api-auth اسم_المستخدم_كلمة_المرور`)", "(e.g. `sh webui.sh --api`)": "(مثال: تشغيل الأمر: `sh webui.sh --api`)", "(latest)": "(أحدث)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "النماذج: {{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "السماح بحذف المحادثة", "Allow Chat Deletion": "السماح بحذف المحادثة", "Allow Chat Edit": "السماح بتعديل المحادثة", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "السماح بتحميل الملفات", "Allow Multiple Models in Chat": "", "Allow non-local voices": "السماح بالأصوات غير المحلية", @@ -76,6 +79,7 @@ "Always": "دائمًا", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "رائع", "an assistant": "مساعد", "Analyzed": "تم التحليل", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "هل أنت متأكد من رغبتك في حذف هذه القناة؟", "Are you sure you want to delete this message?": "هل أنت متأكد من رغبتك في حذف هذه الرسالة؟", "Are you sure you want to unarchive all archived chats?": "هل أنت متأكد من رغبتك في إلغاء أرشفة جميع المحادثات المؤرشفة؟", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "هل أنت متأكد؟", "Arena Models": "نماذج الساحة", "Artifacts": "القطع الأثرية", @@ -135,6 +140,7 @@ "Bad Response": "رد سيئ", "Banners": "لافتات", "Base Model (From)": "النموذج الأساسي (من)", + "Base URL": "", "Batch Size (num_batch)": "حجم الدفعة (num_batch)", "before": "قبل", "Being lazy": "كونك كسولاً", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "مفتاح اشتراك Bing Search V7", "Bocha Search API Key": "مفتاح API لـ Bocha Search", "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.": "", "Brave Search API Key": "مفتاح API لـ Brave Search", "By {{name}}": "بواسطة {{name}}", "Bypass Embedding and Retrieval": "تجاوز التضمين والاسترجاع", @@ -153,6 +160,7 @@ "Cancel": "إلغاء", "Capabilities": "القدرات", "Capture": "التقاط", + "Capture Audio": "", "Certificate Path": "مسار الشهادة", "Change Password": "تغيير كلمة المرور", "Channel Name": "اسم القناة", @@ -262,6 +270,8 @@ "Create Knowledge": "إنشاء معرفة", "Create new key": "إنشاء مفتاح جديد", "Create new secret key": "إنشاء مفتاح سري جديد", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "تم الإنشاء في", "Created At": "تاريخ الإنشاء", "Created by": "تم الإنشاء بواسطة", @@ -299,6 +309,7 @@ "Delete function?": "هل تريد حذف الوظيفة؟", "Delete Message": "حذف الرسالة", "Delete message?": "هل تريد حذف الرسالة؟", + "Delete note?": "", "Delete prompt?": "هل تريد حذف الموجه؟", "delete this link": "أحذف هذا الرابط", "Delete tool?": "هل تريد حذف الأداة؟", @@ -354,7 +365,7 @@ "Download Database": "تحميل قاعدة البيانات", "Drag and drop a file to upload or select a file to view": "اسحب الملف وأفلته للرفع أو اختر ملفًا للعرض", "Draw": "ارسم", - "Drop any files here to add to the conversation": "أسقط أية ملفات هنا لإضافتها إلى المحادثة", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. الوحدات الزمنية الصالحة هي 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "مثال: 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "مثال: my_filter", "e.g. my_tools": "مثال: my_tools", "e.g. Tools for performing various operations": "مثال: أدوات لتنفيذ عمليات متنوعة", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "تعديل", "Edit Arena Model": "تعديل نموذج Arena", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "تفعيل عمليات التسجيل الجديدة", "Enabled": "مفعل", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.", "Enter {{role}} message here": "أدخل رسالة {{role}} هنا", "Enter a detail about yourself for your LLMs to recall": "ادخل معلومات عنك تريد أن يتذكرها الموديل", @@ -409,11 +422,17 @@ "Enter Chunk Size": "أدخل Chunk الحجم", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "أدخل أزواج \"الرمز:قيمة التحيز\" مفصولة بفواصل (مثال: 5432:100، 413:-100)", "Enter description": "أدخل الوصف", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "أدخل نقطة نهاية تحليل المستندات", "Enter Document Intelligence Key": "أدخل مفتاح تحليل المستندات", "Enter domains separated by commas (e.g., example.com,site.org)": "أدخل النطاقات مفصولة بفواصل (مثال: example.com,site.org)", "Enter Exa API Key": "أدخل مفتاح API لـ Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "أدخل عنوان URL ل Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "أدخل معرف النموذج", "Enter model tag (e.g. {{modelTag}})": "(e.g. {{modelTag}}) أدخل الموديل تاق", "Enter Mojeek Search API Key": "أدخل مفتاح API لـ Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات", "Enter Perplexity API Key": "أدخل مفتاح API لـ Perplexity", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL (e.g. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "أدخل كلمة المرور الحالية", "Enter Your Email": "أدخل البريد الاكتروني", "Enter Your Full Name": "أدخل الاسم كامل", "Enter your message": "أدخل رسالتك", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "أدخل كلمة المرور الجديدة", "Enter Your Password": "ادخل كلمة المرور", "Enter Your Role": "أدخل الصلاحيات", @@ -480,6 +504,8 @@ "Error": "خطأ", "ERROR": "خطأ", "Error accessing Google Drive: {{error}}": "حدث خطأ أثناء الوصول إلى Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "حدث خطأ أثناء تحميل الملف: {{error}}", "Evaluations": "التقييمات", "Exa API Key": "مفتاح API لـ Exa", @@ -511,10 +537,16 @@ "Export Tools": "تصدير الأدوات", "External": "", "External Models": "نماذج خارجية", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "فشل في إضافة الملف.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "فشل في إنشاء مفتاح API.", + "Failed to delete note": "", "Failed to fetch models": "فشل في جلب النماذج", + "Failed to load file content.": "", "Failed to read clipboard contents": "فشل في قراءة محتويات الحافظة", "Failed to save connections": "", "Failed to save models configuration": "فشل في حفظ إعدادات النماذج", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "دفق قطع الاستجابة الخارجية الكبيرة بسلاسة", "Focus chat input": "التركيز على إدخال الدردشة", "Folder deleted successfully": "تم حذف المجلد بنجاح", - "Folder name cannot be empty": "لا يمكن أن يكون اسم المجلد فارغًا", "Folder name cannot be empty.": "لا يمكن أن يكون اسم المجلد فارغًا.", "Folder name updated successfully": "تم تحديث اسم المجلد بنجاح", "Followed instructions perfectly": "اتبعت التعليمات على أكمل وجه", @@ -565,17 +596,18 @@ "Function Name": "اسم الوظيفة", "Function updated successfully": "تم تحديث الوظيفة بنجاح", "Functions": "الوظائف", - "Functions allow arbitrary code execution": "الوظائف تتيح تنفيذ كود برمجي مخصص", "Functions allow arbitrary code execution.": "الوظائف تتيح تنفيذ كود برمجي مخصص.", "Functions imported successfully": "تم استيراد الوظائف بنجاح", "Gemini": "Gemini", "Gemini API Config": "إعدادات واجهة Gemini API", "Gemini API Key is required.": "مفتاح Gemini API مطلوب.", "General": "عام", + "Generate": "", "Generate an image": "توليد صورة", "Generate Image": "توليد صورة", "Generate prompt pair": "توليد زوج من التعليمات", "Generating search query": "إنشاء استعلام بحث", + "Generating...": "", "Get started": "ابدأ الآن", "Get started with {{WEBUI_NAME}}": "ابدأ باستخدام {{WEBUI_NAME}}", "Global": "عام", @@ -622,6 +654,7 @@ "Import Config from JSON File": "استيراد الإعدادات من ملف JSON", "Import Functions": "استيراد الوظائف", "Import Models": "استيراد النماذج", + "Import Notes": "", "Import Presets": "استيراد الإعدادات المسبقة", "Import Prompts": "مطالبات الاستيراد", "Import Tools": "استيراد الأدوات", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "إرسال تلقائي فوري بعد تحويل الصوت إلى نص", "Integration": "التكامل", "Interface": "واجهه المستخدم", + "Invalid file content": "", "Invalid file format.": "تنسيق ملف غير صالح.", "Invalid JSON schema": "", "Invalid Tag": "تاق غير صالحة", @@ -706,6 +740,7 @@ "Manage Pipelines": "إدارة خطوط الأنابيب", "Manage Tool Servers": "", "March": "مارس", + "Max Speakers": "", "Max Tokens (num_predict)": "ماكس توكنز (num_predict)", "Max Upload Count": "الحد الأقصى لعدد التحميلات", "Max Upload Size": "الحد الأقصى لحجم الملف المرفوع", @@ -718,8 +753,12 @@ "Memory deleted successfully": "تم حذف الذاكرة بنجاح", "Memory updated successfully": "تم تحديث الذاكرة بنجاح", "Merge Responses": "دمج الردود", + "Merged Response": "نتيجة الردود المدمجة", "Message rating should be enabled to use this feature": "يجب تفعيل تقييم الرسائل لاستخدام هذه الميزة", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "لن تتم مشاركة الرسائل التي ترسلها بعد إنشاء الرابط الخاص بك. سيتمكن المستخدمون الذين لديهم عنوان URL من عرض الدردشة المشتركة", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "الحد الأدنى P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "مفتاح API لـ Mojeek Search", "more": "المزيد", "More": "المزيد", + "My Notes": "", "Name": "الأسم", "Name your knowledge base": "قم بتسمية قاعدة معرفتك", "Native": "أصلي", "New Chat": "دردشة جديدة", "New Folder": "مجلد جديد", + "New Note": "", "New Password": "كلمة المرور الجديدة", "new-channel": "قناة جديدة", + "No content": "", "No content found": "لم يتم العثور على محتوى", + "No content found in file.": "", "No content to speak": "لا يوجد محتوى للتحدث عنه", "No distance available": "لا توجد مسافة متاحة", "No feedbacks found": "لم يتم العثور على ملاحظات", "No file selected": "لم يتم تحديد ملف", - "No files found.": "لم يتم العثور على ملفات.", "No groups with access, add a group to grant access": "لا توجد مجموعات لها حق الوصول، أضف مجموعة لمنح الوصول", "No HTML, CSS, or JavaScript content found.": "لم يتم العثور على محتوى HTML أو CSS أو JavaScript.", "No inference engine with management support found": "لم يتم العثور على محرك استدلال يدعم الإدارة", @@ -774,6 +816,7 @@ "No model IDs": "لا توجد معرّفات نماذج", "No models found": "لم يتم العثور على نماذج", "No models selected": "لم يتم اختيار نماذج", + "No Notes": "", "No results found": "لا توجد نتايج", "No search query generated": "لم يتم إنشاء استعلام بحث", "No source available": "لا يوجد مصدر متاح", @@ -782,6 +825,7 @@ "None": "اي", "Not factually correct": "ليس صحيحا من حيث الواقع", "Not helpful": "غير مفيد", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "ملاحظة: إذا قمت بتعيين الحد الأدنى من النقاط، فلن يؤدي البحث إلا إلى إرجاع المستندات التي لها نقاط أكبر من أو تساوي الحد الأدنى من النقاط.", "Notes": "ملاحظات", "Notification Sound": "صوت الإشعارات", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "يُسمح فقط بالحروف والأرقام والواصلات", "Only alphanumeric characters and hyphens are allowed in the command string.": "يُسمح فقط بالأحرف الأبجدية الرقمية والواصلات في سلسلة الأمر.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "يمكن تعديل المجموعات فقط، أنشئ قاعدة معرفة جديدة لتعديل أو إضافة مستندات.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "يمكن الوصول فقط من قبل المستخدمين والمجموعات المصرح لهم", "Oops! Looks like the URL is invalid. Please double-check and try again.": "خطاء! يبدو أن عنوان URL غير صالح. يرجى التحقق مرة أخرى والمحاولة مرة أخرى.", "Oops! There are files still uploading. Please wait for the upload to complete.": "عذرًا! لا تزال بعض الملفات قيد الرفع. يرجى الانتظار حتى يكتمل الرفع.", @@ -849,6 +894,7 @@ "Pipelines": "خطوط الانابيب", "Pipelines Not Detected": "لم يتم الكشف عن خطوط المعالجة", "Pipelines Valves": "صمامات خطوط الأنابيب", + "Plain text (.md)": "", "Plain text (.txt)": "نص عادي (.txt)", "Playground": "مكان التجربة", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "قراءة", "Read Aloud": "أقراء لي", "Reasoning Effort": "جهد الاستدلال", + "Record": "", "Record voice": "سجل صوت", "Redirecting you to Open WebUI Community": "OpenWebUI إعادة توجيهك إلى مجتمع ", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "يقلل من احتمال توليد إجابات غير منطقية. القيم الأعلى (مثل 100) تعطي إجابات أكثر تنوعًا، بينما القيم الأدنى (مثل 10) تكون أكثر تحفظًا.", @@ -939,7 +986,7 @@ "Save Tag": "حفظ الوسم", "Saved": "تم الحفظ", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "لم يعد حفظ سجلات الدردشة مباشرة في مساحة تخزين متصفحك مدعومًا. يرجى تخصيص بعض الوقت لتنزيل وحذف سجلات الدردشة الخاصة بك عن طريق النقر على الزر أدناه. لا تقلق، يمكنك بسهولة إعادة استيراد سجلات الدردشة الخاصة بك إلى الواجهة الخلفية من خلاله", - "Scroll to bottom when switching between branches": "التمرير للأسفل عند التبديل بين الفروع", + "Scroll On Branch Change": "", "Search": "البحث", "Search a model": "البحث عن موديل", "Search Base": "قاعدة البحث", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "تم البحث في {{count}} مواقع", "Searching \"{{searchQuery}}\"": "جارٍ البحث عن \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "جارٍ البحث في المعرفة عن \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "عنوان URL لاستعلام Searxng", "See readme.md for instructions": "readme.md للحصول على التعليمات", "See what's new": "ما الجديد", @@ -1140,7 +1188,6 @@ "Tools Access": "الوصول إلى الأدوات", "Tools are a function calling system with arbitrary code execution": "الأدوات عبارة عن نظام لاستدعاء الوظائف يسمح بتنفيذ كود برمجي مخصص", "Tools Function Calling Prompt": "توجيه استدعاء وظائف الأدوات", - "Tools have a function calling system that allows arbitrary code execution": "تحتوي الأدوات على نظام لاستدعاء الوظائف يتيح تنفيذ كود برمجي مخصص", "Tools have a function calling system that allows arbitrary code execution.": "تحتوي الأدوات على نظام لاستدعاء الوظائف يتيح تنفيذ كود برمجي مخصص.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "إزالة التثبيت", "Unravel secrets": "فكّ الأسرار", "Untagged": "بدون وسوم", + "Untitled": "", "Update": "تحديث", "Update and Copy Link": "تحديث ونسخ الرابط", "Update for the latest features and improvements.": "حدّث للحصول على أحدث الميزات والتحسينات.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "قم بالترقية إلى خطة مرخصة للحصول على ميزات إضافية، مثل التخصيص والدعم المخصص.", "Upload": "رفع", "Upload a GGUF model": "GGUF رفع موديل نوع", + "Upload Audio": "", "Upload directory": "رفع مجلد", "Upload files": "رفع ملفات", "Upload Files": "تحميل الملفات", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية]", "Write something...": "اكتب شيئًا...", "Write your model template content here": "اكتب هنا محتوى قالب النموذج الخاص بك", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "أمس", "You": "انت", "You are currently using a trial license. Please contact support to upgrade your license.": "أنت تستخدم حالياً ترخيصًا تجريبيًا. يُرجى التواصل مع الدعم للترقية.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "يمكنك الدردشة مع {{maxCount}} ملف(ات) كحد أقصى في نفس الوقت.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "يمكنك تخصيص تفاعلك مع النماذج اللغوية عن طريق إضافة الذكريات باستخدام زر \"إدارة\" أدناه، مما يجعلها أكثر فائدة وتناسبًا لك.", "You cannot upload an empty file.": "لا يمكنك رفع ملف فارغ.", - "You do not have permission to upload files": "ليس لديك صلاحية لرفع الملفات", "You do not have permission to upload files.": "ليس لديك صلاحية لرفع الملفات.", "You have no archived conversations.": "لا تملك محادثات محفوظه", "You have shared this chat": "تم مشاركة هذه المحادثة", diff --git a/src/lib/i18n/locales/bg-BG/translation.json b/src/lib/i18n/locales/bg-BG/translation.json index fbf243c6b..0bbffc6b9 100644 --- a/src/lib/i18n/locales/bg-BG/translation.json +++ b/src/lib/i18n/locales/bg-BG/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(напр. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(напр. `sh webui.sh --api`)", "(latest)": "(последна)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Разреши изтриване на чат", "Allow Chat Deletion": "Позволи Изтриване на Чат", "Allow Chat Edit": "Разреши редактиране на чат", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Разреши качване на файлове", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Разреши нелокални гласове", @@ -76,6 +79,7 @@ "Always": "Винаги", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Невероятно", "an assistant": "асистент", "Analyzed": "Анализирано", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Сигурни ли сте, че искате да изтриете този канал?", "Are you sure you want to delete this message?": "Сигурни ли сте, че искате да изтриете това съобщение?", "Are you sure you want to unarchive all archived chats?": "Сигурни ли сте, че искате да разархивирате всички архивирани чатове?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Сигурни ли сте?", "Arena Models": "Arena Модели", "Artifacts": "Артефакти", @@ -135,6 +140,7 @@ "Bad Response": "Невалиден отговор от API", "Banners": "Банери", "Base Model (From)": "Базов модел (от)", + "Base URL": "", "Batch Size (num_batch)": "Размер на партидата (num_batch)", "before": "преди", "Being lazy": "Да бъдеш мързелив", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Абонаментен ключ за Bing Search V7", "Bocha Search API Key": "API ключ за Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "API ключ за Brave Search", "By {{name}}": "От {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Отказ", "Capabilities": "Възможности", "Capture": "Заснемане", + "Capture Audio": "", "Certificate Path": "Път до сертификата", "Change Password": "Промяна на Парола", "Channel Name": "Име на канала", @@ -262,6 +270,8 @@ "Create Knowledge": "Създаване на знания", "Create new key": "Създаване на нов ключ", "Create new secret key": "Създаване на нов секретен ключ", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Създадено на", "Created At": "Създадено на", "Created by": "Създадено от", @@ -299,6 +309,7 @@ "Delete function?": "Изтриване на функцията?", "Delete Message": "Изтриване на съобщение", "Delete message?": "Изтриване на съобщението?", + "Delete note?": "", "Delete prompt?": "Изтриване на промпта?", "delete this link": "Изтриване на този линк", "Delete tool?": "Изтриване на инструмента?", @@ -354,7 +365,7 @@ "Download Database": "Сваляне на база данни", "Drag and drop a file to upload or select a file to view": "Плъзнете и пуснете файл за качване или изберете файл за преглед", "Draw": "Рисуване", - "Drop any files here to add to the conversation": "Пускане на файлове тук, за да ги добавите в чата", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "напр. моят_филтър", "e.g. my_tools": "напр. моите_инструменти", "e.g. Tools for performing various operations": "напр. Инструменти за извършване на различни операции", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Редактиране", "Edit Arena Model": "Редактиране на Arena модел", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Включване на нови регистрации", "Enabled": "Активирано", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверете се, че вашият CSV файл включва 4 колони в следния ред: Име, Имейл, Парола, Роля.", "Enter {{role}} message here": "Въведете съобщение за {{role}} тук", "Enter a detail about yourself for your LLMs to recall": "Въведете подробности за себе си, за да ги запомнят вашите LLMs", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Въведете размер на чънк", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Въведете описание", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Въведете домейни, разделени със запетаи (напр. example.com,site.org)", "Enter Exa API Key": "Въведете API ключ за Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Въведете URL адрес на Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "Въведете ID на модела", "Enter model tag (e.g. {{modelTag}})": "Въведете таг на модел (напр. {{modelTag}})", "Enter Mojeek Search API Key": "Въведете API ключ за Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Въведете брой стъпки (напр. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Въведете URL (напр. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Въведете текущата си парола", "Enter Your Email": "Въведете имейл", "Enter Your Full Name": "Въведете вашето пълно име", "Enter your message": "Въведете съобщението си", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Въведете новата си парола", "Enter Your Password": "Въведете вашата парола", "Enter Your Role": "Въведете вашата роля", @@ -480,6 +504,8 @@ "Error": "Грешка", "ERROR": "ГРЕШКА", "Error accessing Google Drive: {{error}}": "Грешка при достъп до Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Грешка при качване на файла: {{error}}", "Evaluations": "Оценки", "Exa API Key": "API ключ за Exa", @@ -511,10 +537,16 @@ "Export Tools": "Експортиране на инструменти", "External": "", "External Models": "Външни модели", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Неуспешно добавяне на файл.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Неуспешно създаване на API ключ.", + "Failed to delete note": "", "Failed to fetch models": "Неуспешно извличане на модели", + "Failed to load file content.": "", "Failed to read clipboard contents": "Грешка при четене на съдържанието от клипборда", "Failed to save connections": "", "Failed to save models configuration": "Неуспешно запазване на конфигурацията на моделите", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Плавно предаване на големи части от външен отговор", "Focus chat input": "Фокусиране на чат вход", "Folder deleted successfully": "Папката е изтрита успешно", - "Folder name cannot be empty": "Името на папката не може да бъде празно", "Folder name cannot be empty.": "Името на папката не може да бъде празно.", "Folder name updated successfully": "Името на папката е актуализирано успешно", "Followed instructions perfectly": "Следвайте инструкциите перфектно", @@ -565,17 +596,18 @@ "Function Name": "Име на функцията", "Function updated successfully": "Функцията е актуализирана успешно", "Functions": "Функции", - "Functions allow arbitrary code execution": "Функциите позволяват произволно изпълнение на код", "Functions allow arbitrary code execution.": "Функциите позволяват произволно изпълнение на код.", "Functions imported successfully": "Функциите са импортирани успешно", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Основни", + "Generate": "", "Generate an image": "Генериране на изображение", "Generate Image": "Генериране на изображение", "Generate prompt pair": "", "Generating search query": "Генериране на заявка за търсене", + "Generating...": "", "Get started": "Започнете", "Get started with {{WEBUI_NAME}}": "Започнете с {{WEBUI_NAME}}", "Global": "Глобално", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Импортиране на конфигурация от JSON файл", "Import Functions": "Импортиране на функции", "Import Models": "Импортиране на модели", + "Import Notes": "", "Import Presets": "Импортиране на предварителни настройки", "Import Prompts": "Импортване на промптове", "Import Tools": "Импортиране на инструменти", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Незабавно автоматично изпращане след гласова транскрипция", "Integration": "", "Interface": "Интерфейс", + "Invalid file content": "", "Invalid file format.": "Невалиден формат на файла.", "Invalid JSON schema": "", "Invalid Tag": "Невалиден таг", @@ -706,6 +740,7 @@ "Manage Pipelines": "Управление на пайплайни", "Manage Tool Servers": "", "March": "Март", + "Max Speakers": "", "Max Tokens (num_predict)": "Макс токени (num_predict)", "Max Upload Count": "Максимален брой качвания", "Max Upload Size": "Максимален размер на качване", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Паметта е изтрита успешно", "Memory updated successfully": "Паметта е актуализирана успешно", "Merge Responses": "Обединяване на отговори", + "Merged Response": "Обединен отговор", "Message rating should be enabled to use this feature": "Оценяването на съобщения трябва да бъде активирано, за да използвате тази функция", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Съобщенията, които изпращате след създаването на връзката, няма да бъдат споделяни. Потребителите с URL адреса ще могат да видят споделения чат.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Мин P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "API ключ за Mojeek Search", "more": "още", "More": "Повече", + "My Notes": "", "Name": "Име", "Name your knowledge base": "Именувайте вашата база от знания", "Native": "Нативен", "New Chat": "Нов чат", "New Folder": "Нова папка", + "New Note": "", "New Password": "Нова парола", "new-channel": "нов-канал", + "No content": "", "No content found": "Не е намерено съдържание", + "No content found in file.": "", "No content to speak": "Няма съдържание за изговаряне", "No distance available": "Няма налично разстояние", "No feedbacks found": "Не са намерени обратни връзки", "No file selected": "Не е избран файл", - "No files found.": "Не са намерени файлове.", "No groups with access, add a group to grant access": "Няма групи с достъп, добавете група, за да предоставите достъп", "No HTML, CSS, or JavaScript content found.": "Не е намерено HTML, CSS или JavaScript съдържание.", "No inference engine with management support found": "Не е намерен механизъм за извод с поддръжка на управление", @@ -774,6 +816,7 @@ "No model IDs": "Няма ИД-та на модели", "No models found": "Не са намерени модели", "No models selected": "Няма избрани модели", + "No Notes": "", "No results found": "Няма намерени резултати", "No search query generated": "Не е генерирана заявка за търсене", "No source available": "Няма наличен източник", @@ -782,6 +825,7 @@ "None": "Никой", "Not factually correct": "Не е фактологически правилно", "Not helpful": "Не е полезно", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Забележка: Ако зададете минимален резултат, търсенето ще върне само документи с резултат, по-голям или равен на минималния резултат.", "Notes": "Бележки", "Notification Sound": "Звук за известия", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Разрешени са само буквено-цифрови знаци и тирета", "Only alphanumeric characters and hyphens are allowed in the command string.": "Само алфанумерични знаци и тире са разрешени в командния низ.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Само колекции могат да бъдат редактирани, създайте нова база от знания, за да редактирате/добавяте документи.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Само избрани потребители и групи с разрешение могат да имат достъп", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Изглежда URL адресът е невалиден. Моля, проверете отново и опитайте пак.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Упс! Все още има файлове, които се качват. Моля, изчакайте качването да приключи.", @@ -849,6 +894,7 @@ "Pipelines": "Пайплайни", "Pipelines Not Detected": "Не са открити пайплайни", "Pipelines Valves": "Клапани на пайплайни", + "Plain text (.md)": "", "Plain text (.txt)": "Обикновен текст (.txt)", "Playground": "Плейграунд", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Четене", "Read Aloud": "Прочети на глас", "Reasoning Effort": "Усилие за разсъждение", + "Record": "", "Record voice": "Записване на глас", "Redirecting you to Open WebUI Community": "Пренасочване към OpenWebUI общността", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Запиши таг", "Saved": "Запазено", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Запазването на чат логове директно в хранилището на вашия браузър вече не се поддържа. Моля, отделете малко време, за да изтеглите и изтриете чат логовете си, като щракнете върху бутона по-долу. Не се притеснявайте, можете лесно да импортирате отново чат логовете си в бекенда чрез", - "Scroll to bottom when switching between branches": "Превъртане до дъното при превключване между клонове", + "Scroll On Branch Change": "", "Search": "Търси", "Search a model": "Търси модел", "Search Base": "База за търсене", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Претърсени {{count}} сайта", "Searching \"{{searchQuery}}\"": "Търсене на \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Търсене в знанията за \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL адрес на заявка на Searxng", "See readme.md for instructions": "Виж readme.md за инструкции", "See what's new": "Виж какво е новото", @@ -1140,7 +1188,6 @@ "Tools Access": "Достъп до инструменти", "Tools are a function calling system with arbitrary code execution": "Инструментите са система за извикване на функции с произволно изпълнение на код", "Tools Function Calling Prompt": "Промпт за извикване на функции на инструментите", - "Tools have a function calling system that allows arbitrary code execution": "Инструментите имат система за извикване на функции, която позволява произволно изпълнение на код", "Tools have a function calling system that allows arbitrary code execution.": "Инструментите имат система за извикване на функции, която позволява произволно изпълнение на код.", "Tools Public Sharing": "", "Top K": "Топ K", @@ -1163,6 +1210,7 @@ "Unpin": "Откачи", "Unravel secrets": "Разгадай тайни", "Untagged": "Без етикет", + "Untitled": "", "Update": "Актуализиране", "Update and Copy Link": "Обнови и копирай връзка", "Update for the latest features and improvements.": "Актуализирайте за най-новите функции и подобрения.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Надградете до лицензиран план за разширени възможности, включително персонализирани теми и брандиране, и специализирана поддръжка.", "Upload": "Качване", "Upload a GGUF model": "Качване на GGUF модел", + "Upload Audio": "", "Upload directory": "Качване на директория", "Upload files": "Качване на файлове", "Upload Files": "Качване на файлове", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 думи, което обобщава [тема или ключова дума].", "Write something...": "Напишете нещо...", "Write your model template content here": "Напишете съдържанието на вашия шаблон за модел тук", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "вчера", "You": "Вие", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Можете да чатите с максимум {{maxCount}} файл(а) наведнъж.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Можете да персонализирате взаимодействията си с LLM-и, като добавите спомени чрез бутона 'Управление' по-долу, правейки ги по-полезни и съобразени с вас.", "You cannot upload an empty file.": "Не можете да качите празен файл.", - "You do not have permission to upload files": "Нямате разрешение да качвате файлове", "You do not have permission to upload files.": "Нямате разрешение да качвате файлове.", "You have no archived conversations.": "Нямате архивирани разговори.", "You have shared this chat": "Вие сте споделили този чат", diff --git a/src/lib/i18n/locales/bn-BD/translation.json b/src/lib/i18n/locales/bn-BD/translation.json index dbc180b97..a4f4f78ba 100644 --- a/src/lib/i18n/locales/bn-BD/translation.json +++ b/src/lib/i18n/locales/bn-BD/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(যেমন `sh webui.sh --api`)", "(latest)": "(সর্বশেষ)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ মডেল}}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "একটা এসিস্ট্যান্ট", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "আপনি নিশ্চিত?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "খারাপ প্রতিক্রিয়া", "Banners": "ব্যানার", "Base Model (From)": "বেস মডেল (থেকে)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "পূর্ববর্তী", "Being lazy": "অলস হওয়া", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "সাহসী অনুসন্ধান API কী", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "বাতিল", "Capabilities": "সক্ষমতা", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "পাসওয়ার্ড পরিবর্তন করুন", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "একটি নতুন কী তৈরি করুন", "Create new secret key": "একটি নতুন সিক্রেট কী তৈরি করুন", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "নির্মানকাল", "Created At": "নির্মানকাল", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "এই লিংক মুছে ফেলুন", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "ডেটাবেজ ডাউনলোড করুন", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "আলোচনায় যুক্ত করার জন্য যে কোন ফাইল এখানে ড্রপ করুন", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "এডিট করুন", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "নতুন সাইনআপ চালু করুন", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "আপনার সিএসভি ফাইলটিতে এই ক্রমে 4 টি কলাম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন: নাম, ইমেল, পাসওয়ার্ড, ভূমিকা।.", "Enter {{role}} message here": "{{role}} মেসেজ এখানে লিখুন", "Enter a detail about yourself for your LLMs to recall": "আপনার এলএলএমগুলি স্মরণ করার জন্য নিজের সম্পর্কে একটি বিশদ লিখুন", @@ -409,11 +422,17 @@ "Enter Chunk Size": "চাংক সাইজ লিখুন", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "গিটহাব কাঁচা URL লিখুন", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "মডেল ট্যাগ লিখুন (e.g. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "ধাপের সংখ্যা দিন (যেমন: 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "ইউআরএল দিন (যেমন http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "আপনার ইমেইল লিখুন", "Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "আপনার পাসওয়ার্ড লিখুন", "Enter Your Role": "আপনার রোল লিখুন", @@ -480,6 +504,8 @@ "Error": "ত্রুটি", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API Key তৈরি করা যায়নি।", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "ক্লিপবোর্ডের বিষয়বস্তু পড়া সম্ভব হয়নি", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "বড় এক্সটার্নাল রেসপন্স চাঙ্কগুলো মসৃণভাবে প্রবাহিত করুন", "Focus chat input": "চ্যাট ইনপুট ফোকাস করুন", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "নির্দেশাবলী নিখুঁতভাবে অনুসরণ করা হয়েছে", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "সাধারণ", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "অনুসন্ধান ক্যোয়ারী তৈরি করা হচ্ছে", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "মডেল আমদানি করুন", + "Import Notes": "", "Import Presets": "", "Import Prompts": "প্রম্পটগুলো ইমপোর্ট করুন", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "ইন্টারফেস", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "অবৈধ ট্যাগ", @@ -706,6 +740,7 @@ "Manage Pipelines": "পাইপলাইন পরিচালনা করুন", "Manage Tool Servers": "", "March": "মার্চ", + "Max Speakers": "", "Max Tokens (num_predict)": "সর্বোচ্চ টোকেন (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "একত্রিত প্রতিক্রিয়া ফলাফল", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "আপনার লিঙ্ক তৈরি করার পরে আপনার পাঠানো বার্তাগুলি শেয়ার করা হবে না। ইউআরএল ব্যবহারকারীরা শেয়ার করা চ্যাট দেখতে পারবেন।", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "আরো", + "My Notes": "", "Name": "নাম", "Name your knowledge base": "", "Native": "", "New Chat": "নতুন চ্যাট", "New Folder": "", + "New Note": "", "New Password": "নতুন পাসওয়ার্ড", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "কোন ফলাফল পাওয়া যায়নি", "No search query generated": "কোনও অনুসন্ধান ক্যোয়ারী উত্পন্ন হয়নি", "No source available": "কোন উৎস পাওয়া যায়নি", @@ -782,6 +825,7 @@ "None": "কোনোটিই নয়", "Not factually correct": "তথ্যগত দিক থেকে সঠিক নয়", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "দ্রষ্টব্য: আপনি যদি ন্যূনতম স্কোর সেট করেন তবে অনুসন্ধানটি কেবলমাত্র ন্যূনতম স্কোরের চেয়ে বেশি বা সমান স্কোর সহ নথিগুলি ফেরত দেবে।", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "কমান্ড স্ট্রিং-এ শুধুমাত্র ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন ব্যবহার করা যাবে।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "ওহ, মনে হচ্ছে ইউআরএলটা ইনভ্যালিড। দয়া করে আর চেক করে চেষ্টা করুন।", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "পাইপলাইন", "Pipelines Not Detected": "", "Pipelines Valves": "পাইপলাইন ভালভ", + "Plain text (.md)": "", "Plain text (.txt)": "প্লায়েন টেক্সট (.txt)", "Playground": "খেলাঘর", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "পড়াশোনা করুন", "Reasoning Effort": "", + "Record": "", "Record voice": "ভয়েস রেকর্ড করুন", "Redirecting you to Open WebUI Community": "আপনাকে OpenWebUI কমিউনিটিতে পাঠানো হচ্ছে", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "মাধ্যমে", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "অনুসন্ধান", "Search a model": "মডেল অনুসন্ধান করুন", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng ক্যোয়ারী URL", "See readme.md for instructions": "নির্দেশিকার জন্য readme.md দেখুন", "See what's new": "নতুন কী আছে দেখুন", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "আপডেট এবং লিংক কপি করুন", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "ফাইল আপলোড করুন", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "আগামী", "You": "আপনি", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "আপনার কোনও আর্কাইভ করা কথোপকথন নেই।", "You have shared this chat": "আপনি এই চ্যাটটি শেয়ার করেছেন", diff --git a/src/lib/i18n/locales/bo-TB/translation.json b/src/lib/i18n/locales/bo-TB/translation.json index b099faaca..99e3a8acb 100644 --- a/src/lib/i18n/locales/bo-TB/translation.json +++ b/src/lib/i18n/locales/bo-TB/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(དཔེར་ན། `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(དཔེར་ན། `sh webui.sh --api`)", "(latest)": "(ཆེས་གསར།)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "ཁ་བརྡ་བསུབ་པར་གནང་བ་སྤྲོད་པ།", "Allow Chat Deletion": "ཁ་བརྡ་བསུབ་པར་གནང་བ་སྤྲོད་པ།", "Allow Chat Edit": "ཁ་བརྡ་ཞུ་དག་ལ་གནང་བ་སྤྲོད་པ།", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "ཡིག་ཆ་སྤར་བར་གནང་བ་སྤྲོད་པ།", "Allow Multiple Models in Chat": "", "Allow non-local voices": "ས་གནས་མིན་པའི་སྐད་གདངས་ལ་གནང་བ་སྤྲོད་པ།", @@ -76,6 +79,7 @@ "Always": "རྟག་ཏུ།", "Always Collapse Code Blocks": "རྟག་ཏུ་ཀོཌ་གཏོགས་ཁོངས་བསྐུམ་པ།", "Always Expand Details": "རྟག་ཏུ་ཞིབ་ཕྲ་རྒྱ་བསྐྱེད་པ།", + "Always Play Notification Sound": "", "Amazing": "ངོ་མཚར་ཆེན།", "an assistant": "ལག་རོགས་པ།", "Analyzed": "དབྱེ་ཞིབ་བྱས་པ།", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "ཁྱེད་ཀྱིས་བགྲོ་གླེང་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།", "Are you sure you want to delete this message?": "འཕྲིན་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།", "Are you sure you want to unarchive all archived chats?": "ཁྱེད་ཀྱིས་ཡིག་མཛོད་དུ་བཞག་པའི་ཁ་བརྡ་ཡོངས་རྫོགས་ཕྱིར་འདོན་འདོད་ངེས་ཡིན་ནམ།", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "ཁྱོད་ངེས་པ་ཡིན་ནམ།", "Arena Models": "Arena དཔེ་དབྱིབས།", "Artifacts": "རྫས་རྟེན།", @@ -135,6 +140,7 @@ "Bad Response": "ལན་ངན་པ།", "Banners": "དར་ཆ།", "Base Model (From)": "གཞི་རྩའི་དཔེ་དབྱིབས། (ནས།)", + "Base URL": "", "Batch Size (num_batch)": "ཚན་ཆུང་ཆེ་ཆུང་། (num_batch)", "before": "སྔོན།", "Being lazy": "ལེ་ལོ་བྱེད་པ།", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7 མངགས་ཉོ་ལྡེ་མིག", "Bocha Search API Key": "Bocha Search API ལྡེ་མིག", "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.": "", "Brave Search API Key": "Brave Search API ལྡེ་མིག", "By {{name}}": "{{name}} ཡིས།", "Bypass Embedding and Retrieval": "ཚུད་འཇུག་དང་ལེན་ཚུར་སྒྲུབ་ལས་བརྒལ་བ།", @@ -153,6 +160,7 @@ "Cancel": "རྩིས་མེད།", "Capabilities": "ནུས་པ།", "Capture": "འཛིན་པ།", + "Capture Audio": "", "Certificate Path": "ལག་ཁྱེར་གྱི་ལམ་བུ།", "Change Password": "གསང་གྲངས་བརྗེ་བ།", "Channel Name": "བགྲོ་གླེང་གི་མིང་།", @@ -262,6 +270,8 @@ "Create Knowledge": "ཤེས་བྱ་གསར་བཟོ།", "Create new key": "ལྡེ་མིག་གསར་པ་བཟོ་བ།", "Create new secret key": "གསང་བའི་ལྡེ་མིག་གསར་པ་བཟོ་བ།", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "གསར་བཟོ་བྱེད་དུས།", "Created At": "གསར་བཟོ་བྱེད་དུས།", "Created by": "གསར་བཟོ་བྱེད་མཁན།", @@ -299,6 +309,7 @@ "Delete function?": "ལས་འགན་བསུབ་པ།?", "Delete Message": "འཕྲིན་བསུབ་པ།", "Delete message?": "འཕྲིན་བསུབ་པ།?", + "Delete note?": "", "Delete prompt?": "འགུལ་སློང་བསུབ་པ།?", "delete this link": "སྦྲེལ་ཐག་འདི་བསུབ་པ།", "Delete tool?": "ལག་ཆ་བསུབ་པ།?", @@ -354,7 +365,7 @@ "Download Database": "གནས་ཚུལ་མཛོད་ཕབ་ལེན།", "Drag and drop a file to upload or select a file to view": "ཡིག་ཆ་ཞིག་འདྲུད་ནས་འཇོག་སྟེ་སྤར་བའམ། ཡང་ན་ཡིག་ཆ་ཞིག་གདམ་ག་བྱས་ནས་ལྟ་བ།", "Draw": "རི་མོ་འབྲི་བ།", - "Drop any files here to add to the conversation": "ཡིག་ཆ་གང་རུང་འདིར་བཞག་ནས་ཁ་བརྡར་སྣོན་པ།", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "དཔེར་ན། '30s','10m'. ནུས་ལྡན་དུས་ཚོད་ཀྱི་ཚན་པ་ནི། 's', 'm', 'h' ཡིན།", "e.g. \"json\" or a JSON schema": "དཔེར་ན། \"json\" ཡང་ན་ JSON གི་ schema", "e.g. 60": "དཔེར་ན། ༦༠", @@ -364,6 +375,7 @@ "e.g. my_filter": "དཔེར་ན། my_filter", "e.g. my_tools": "དཔེར་ན། my_tools", "e.g. Tools for performing various operations": "དཔེར་ན། ལས་ཀ་སྣ་ཚོགས་སྒྲུབ་བྱེད་ཀྱི་ལག་ཆ།", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "ཞུ་དག", "Edit Arena Model": "Arena དཔེ་དབྱིབས་ཞུ་དག", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "ཐོ་འགོད་གསར་པ་སྒུལ་བསྐྱོད་བྱེད་པ།", "Enabled": "སྒུལ་བསྐྱོད་བྱས་ཡོད།", "Enforce Temporary Chat": "གནས་སྐབས་ཁ་བརྡ་བཙན་བཀོལ་བྱེད་པ།", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ཁྱེད་ཀྱི་ CSV ཡིག་ཆར་གོ་རིམ་འདི་ལྟར། མིང་། ཡིག་ཟམ། གསང་གྲངས། གནས་ཚད། སྟར་པ་ ༤ ཚུད་ཡོད་པ་ཁག་ཐེག་བྱེད་རོགས།", "Enter {{role}} message here": "{{role}} ཡི་འཕྲིན་འདིར་འཇུག་པ།", "Enter a detail about yourself for your LLMs to recall": "ཁྱེད་ཀྱི་ LLMs ཡིས་ཕྱིར་དྲན་ཆེད་དུ་ཁྱེད་རང་གི་སྐོར་གྱི་ཞིབ་ཕྲ་ཞིག་འཇུག་པ།", @@ -409,11 +422,17 @@ "Enter Chunk Size": "དུམ་བུའི་ཆེ་ཆུང་འཇུག་པ།", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "ཚེག་བསྐུངས་ཀྱིས་ལོགས་སུ་བཀར་བའི་ \"ཊོཀ་ཀེན།:ཕྱོགས་ཞེན་རིན་ཐང་།\" ཆ་འཇུག་པ། (དཔེར། 5432:100, 413:-100)", "Enter description": "འགྲེལ་བཤད་འཇུག་པ།", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Docling སར་བར་གྱི་ URL འཇུག་པ།", "Enter Document Intelligence Endpoint": "ཡིག་ཆའི་རིག་ནུས་མཇུག་མཐུད་འཇུག་པ།", "Enter Document Intelligence Key": "ཡིག་ཆའི་རིག་ནུས་ལྡེ་མིག་འཇུག་པ།", "Enter domains separated by commas (e.g., example.com,site.org)": "ཚེག་བསྐུངས་ཀྱིས་ལོགས་སུ་བཀར་བའི་ཁྱབ་ཁོངས་འཇུག་པ། (དཔེར་ན། example.com,site.org)", "Enter Exa API Key": "Exa API ལྡེ་མིག་འཇུག་པ།", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Github Raw URL འཇུག་པ།", @@ -431,6 +450,7 @@ "Enter Model ID": "དཔེ་དབྱིབས་ཀྱི་ ID འཇུག་པ།", "Enter model tag (e.g. {{modelTag}})": "དཔེ་དབྱིབས་ཀྱི་རྟགས་འཇུག་པ། (དཔེར་ན། {{modelTag}})", "Enter Mojeek Search API Key": "Mojeek Search API ལྡེ་མིག་འཇུག་པ།", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "གོམ་གྲངས་འཇུག་པ། (དཔེར་ན། ༥༠)", "Enter Perplexity API Key": "Perplexity API ལྡེ་མིག་འཇུག་པ།", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Top K Reranker འཇུག་པ།", "Enter URL (e.g. http://127.0.0.1:7860/)": "URL འཇུག་པ། (དཔེར་ན། http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL འཇུག་པ། (དཔེར་ན། http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "ཁྱེད་ཀྱི་ད་ལྟའི་གསང་གྲངས་འཇུག་པ།", "Enter Your Email": "ཁྱེད་ཀྱི་ཡིག་ཟམ་འཇུག་པ།", "Enter Your Full Name": "ཁྱེད་ཀྱི་མིང་ཆ་ཚང་འཇུག་པ།", "Enter your message": "ཁྱེད་ཀྱི་འཕྲིན་འཇུག་པ།", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "ཁྱེད་ཀྱི་གསང་གྲངས་གསར་པ་འཇུག་པ།", "Enter Your Password": "ཁྱེད་ཀྱི་གསང་གྲངས་འཇུག་པ།", "Enter Your Role": "ཁྱེད་ཀྱི་གནས་ཚད་འཇུག་པ།", @@ -480,6 +504,8 @@ "Error": "ནོར་འཁྲུལ།", "ERROR": "ནོར་འཁྲུལ།", "Error accessing Google Drive: {{error}}": "Google Drive འཛུལ་སྤྱོད་སྐབས་ནོར་འཁྲུལ།: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "ཡིག་ཆ་སྤར་སྐབས་ནོར་འཁྲུལ།: {{error}}", "Evaluations": "གདེང་འཇོག", "Exa API Key": "Exa API ལྡེ་མིག", @@ -511,10 +537,16 @@ "Export Tools": "ལག་ཆ་ཕྱིར་གཏོང་།", "External": "ཕྱི་རོལ།", "External Models": "ཕྱི་རོལ་གྱི་དཔེ་དབྱིབས།", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "ཡིག་ཆ་སྣོན་པར་མ་ཐུབ།", "Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI ལག་ཆའི་སར་བར་ལ་སྦྲེལ་མཐུད་བྱེད་མ་ཐུབ།", "Failed to create API Key.": "API ལྡེ་མིག་བཟོ་མ་ཐུབ།", + "Failed to delete note": "", "Failed to fetch models": "དཔེ་དབྱིབས་ལེན་པར་མ་ཐུབ།", + "Failed to load file content.": "", "Failed to read clipboard contents": "སྦྱར་སྡེར་གྱི་ནང་དོན་ཀློག་མ་ཐུབ།", "Failed to save connections": "", "Failed to save models configuration": "དཔེ་དབྱིབས་སྒྲིག་འགོད་ཉར་ཚགས་བྱེད་མ་ཐུབ།", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "ཕྱི་རོལ་གྱི་ལན་གྱི་དུམ་བུ་ཆེན་པོ་རྒྱུན་བཞིན་རྒྱུག་པ།", "Focus chat input": "ཁ་བརྡའི་ནང་འཇུག་ལ་དམིགས་པ།", "Folder deleted successfully": "ཡིག་སྣོད་ལེགས་པར་བསུབས་ཟིན།", - "Folder name cannot be empty": "ཡིག་སྣོད་ཀྱི་མིང་སྟོང་པ་ཡིན་མི་ཆོག", "Folder name cannot be empty.": "ཡིག་སྣོད་ཀྱི་མིང་སྟོང་པ་ཡིན་མི་ཆོག", "Folder name updated successfully": "ཡིག་སྣོད་ཀྱི་མིང་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།", "Followed instructions perfectly": "ལམ་སྟོན་ཡང་དག་པར་བསྒྲུབས།", @@ -565,17 +596,18 @@ "Function Name": "ལས་འགན་གྱི་མིང་།", "Function updated successfully": "ལས་འགན་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།", "Functions": "ལས་འགན།", - "Functions allow arbitrary code execution": "ལས་འགན་གྱིས་གང་འདོད་ཀྱི་ཀོཌ་ལག་བསྟར་ལ་གནང་བ་སྤྲོད།", "Functions allow arbitrary code execution.": "ལས་འགན་གྱིས་གང་འདོད་ཀྱི་ཀོཌ་ལག་བསྟར་ལ་གནང་བ་སྤྲོད།", "Functions imported successfully": "ལས་འགན་ལེགས་པར་ནང་འདྲེན་བྱས།", "Gemini": "Gemini", "Gemini API Config": "Gemini API Config", "Gemini API Key is required.": "Gemini API ལྡེ་མིག་དགོས་ངེས།", "General": "སྤྱིར་བཏང་།", + "Generate": "", "Generate an image": "པར་ཞིག་བཟོ་བ།", "Generate Image": "པར་བཟོ་བ།", "Generate prompt pair": "འགུལ་སློང་ཆ་ཞིག་བཟོ་བ།", "Generating search query": "འཚོལ་བཤེར་འདྲི་བ་བཟོ་བཞིན་པ།", + "Generating...": "", "Get started": "འགོ་འཛུགས།", "Get started with {{WEBUI_NAME}}": "{{WEBUI_NAME}} དང་མཉམ་དུ་འགོ་འཛུགས་པ།", "Global": "འཛམ་གླིང་ཡོངས་ཀྱི་", @@ -622,6 +654,7 @@ "Import Config from JSON File": "JSON ཡིག་ཆ་ནས་སྒྲིག་འགོད་ནང་འདྲེན།", "Import Functions": "ལས་འགན་ནང་འདྲེན།", "Import Models": "དཔེ་དབྱིབས་ནང་འདྲེན།", + "Import Notes": "", "Import Presets": "སྔོན་སྒྲིག་ནང་འདྲེན།", "Import Prompts": "འགུལ་སློང་ནང་འདྲེན།", "Import Tools": "ལག་ཆ་ནང་འདྲེན།", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "སྐད་ཆ་ཡིག་འབེབས་བྱས་རྗེས་ལམ་སང་རང་འགུལ་གཏོང་བ།", "Integration": "མཉམ་འདྲེས།", "Interface": "ངོས་འཛིན།", + "Invalid file content": "", "Invalid file format.": "ཡིག་ཆའི་བཀོད་པ་ནུས་མེད།", "Invalid JSON schema": "JSON schema ནུས་མེད།", "Invalid Tag": "རྟགས་ནུས་མེད།", @@ -706,6 +740,7 @@ "Manage Pipelines": "རྒྱུ་ལམ་དོ་དམ།", "Manage Tool Servers": "ལག་ཆའི་སར་བར་དོ་དམ།", "March": "ཟླ་བ་གསུམ་པ།", + "Max Speakers": "", "Max Tokens (num_predict)": "ཊོཀ་ཀེན་མང་ཤོས། (num_predict)", "Max Upload Count": "སྤར་བའི་གྲངས་མང་ཤོས།", "Max Upload Size": "སྤར་བའི་ཆེ་ཆུང་མང་ཤོས།", @@ -718,8 +753,12 @@ "Memory deleted successfully": "དྲན་ཤེས་ལེགས་པར་བསུབས་ཟིན།", "Memory updated successfully": "དྲན་ཤེས་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།", "Merge Responses": "ལན་ཟླ་སྒྲིལ།", + "Merged Response": "བསྡུར་མཐུན་གྱི་ལན་གསལ་གནས་ཡོད།", "Message rating should be enabled to use this feature": "ཁྱད་ཆོས་འདི་བེད་སྤྱོད་གཏོང་བར་འཕྲིན་ལ་སྐར་མ་སྤྲོད་པ་སྒུལ་བསྐྱོད་བྱེད་དགོས།", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "ཁྱེད་ཀྱི་སྦྲེལ་ཐག་བཟོས་རྗེས་ཁྱེད་ཀྱིས་བསྐུར་བའི་འཕྲིན་དག་མཉམ་སྤྱོད་བྱེད་མི་འགྱུར། URL ཡོད་པའི་བེད་སྤྱོད་མཁན་ཚོས་མཉམ་སྤྱོད་ཁ་བརྡ་ལྟ་ཐུབ་ངེས།", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "P ཉུང་ཤོས།", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API ལྡེ་མིག", "more": "མང་བ།", "More": "མང་བ།", + "My Notes": "", "Name": "མིང་།", "Name your knowledge base": "ཁྱེད་ཀྱི་ཤེས་བྱའི་རྟེན་གཞི་ལ་མིང་ཐོགས།", "Native": "ས་སྐྱེས།", "New Chat": "ཁ་བརྡ་གསར་པ།", "New Folder": "ཡིག་སྣོད་གསར་པ།", + "New Note": "", "New Password": "གསང་གྲངས་གསར་པ།", "new-channel": "བགྲོ་གླེང་གསར་པ།", + "No content": "", "No content found": "ནང་དོན་མ་རྙེད།", + "No content found in file.": "", "No content to speak": "བཤད་རྒྱུའི་ནང་དོན་མེད།", "No distance available": "ཐག་རིང་ཚད་མེད།", "No feedbacks found": "བསམ་འཆར་མ་རྙེད།", "No file selected": "ཡིག་ཆ་གདམ་ག་མ་བྱས།", - "No files found.": "ཡིག་ཆ་མ་རྙེད།", "No groups with access, add a group to grant access": "འཛུལ་སྤྱོད་ཡོད་པའི་ཚོགས་པ་མེད། འཛུལ་སྤྱོད་སྤྲོད་པར་ཚོགས་པ་ཞིག་སྣོན་པ།", "No HTML, CSS, or JavaScript content found.": "HTML, CSS, ཡང་ན་ JavaScript གི་ནང་དོན་མ་རྙེད།", "No inference engine with management support found": "དོ་དམ་རྒྱབ་སྐྱོར་ཡོད་པའི་དཔོག་རྩིས་འཕྲུལ་འཁོར་མ་རྙེད།", @@ -774,6 +816,7 @@ "No model IDs": "དཔེ་དབྱིབས་ཀྱི་ ID མེད།", "No models found": "དཔེ་དབྱིབས་མ་རྙེད།", "No models selected": "དཔེ་དབྱིབས་གདམ་ག་མ་བྱས།", + "No Notes": "", "No results found": "འབྲས་བུ་མ་རྙེད།", "No search query generated": "འཚོལ་བཤེར་འདྲི་བ་བཟོས་མེད།", "No source available": "འབྱུང་ཁུངས་མེད།", @@ -782,6 +825,7 @@ "None": "གཅིག་ཀྱང་མེད།", "Not factually correct": "དོན་དངོས་དང་མི་མཐུན།", "Not helpful": "ཕན་ཐོགས་མེད།", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "དོ་སྣང་།: གལ་ཏེ་ཁྱེད་ཀྱིས་སྐར་མ་ཉུང་ཤོས་ཤིག་བཀོད་སྒྲིག་བྱས་ན། འཚོལ་བཤེར་གྱིས་སྐར་མ་ཉུང་ཤོས་དེ་དང་མཉམ་པའམ་དེ་ལས་ཆེ་བའི་ཡིག་ཆ་ཁོ་ན་ཕྱིར་སློག་བྱེད་ངེས།", "Notes": "མཆན་བུ།", "Notification Sound": "བརྡ་ཁྱབ་ཀྱི་སྒྲ།", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "ཨང་ཀི་དང་དབྱིན་ཡིག་གི་ཡིག་འབྲུ་དང་སྦྲེལ་རྟགས་ཁོ་ན་ཆོག་པ།", "Only alphanumeric characters and hyphens are allowed in the command string.": "བཀའ་བརྡའི་ཡིག་ཕྲེང་ནང་ཨང་ཀི་དང་དབྱིན་ཡིག་གི་ཡིག་འབྲུ་དང་སྦྲེལ་རྟགས་ཁོ་ན་ཆོག་པ།", "Only collections can be edited, create a new knowledge base to edit/add documents.": "བསྡུ་གསོག་ཁོ་ན་ཞུ་དག་བྱེད་ཐུབ། ཡིག་ཆ་ཞུ་དག་/སྣོན་པར་ཤེས་བྱའི་རྟེན་གཞི་གསར་པ་ཞིག་བཟོ་བ།", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "དབང་ཚད་ཡོད་པའི་བེད་སྤྱོད་མཁན་དང་ཚོགས་པ་གདམ་ག་བྱས་པ་ཁོ་ན་འཛུལ་སྤྱོད་ཐུབ།", "Oops! Looks like the URL is invalid. Please double-check and try again.": "ཨོའོ། URL དེ་ནུས་མེད་ཡིན་པ་འདྲ། ཡང་བསྐྱར་ཞིབ་དཔྱད་བྱས་ནས་ཚོད་ལྟ་བྱེད་རོགས།", "Oops! There are files still uploading. Please wait for the upload to complete.": "ཨོའོ། ད་དུང་སྤར་བཞིན་པའི་ཡིག་ཆ་ཡོད། སྤར་ཚར་བར་སྒུག་རོགས།", @@ -849,6 +894,7 @@ "Pipelines": "རྒྱུ་ལམ།", "Pipelines Not Detected": "རྒྱུ་ལམ་མ་རྙེད།", "Pipelines Valves": "རྒྱུ་ལམ་གྱི་ Valve", + "Plain text (.md)": "", "Plain text (.txt)": "ཡིག་རྐྱང་རྐྱང་པ། (.txt)", "Playground": "རྩེད་ཐང་།", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "ཀློག་པ།", "Read Aloud": "སྐད་གསལ་པོས་ཀློག་པ།", "Reasoning Effort": "རྒྱུ་མཚན་འདྲེན་པའི་འབད་བརྩོན།", + "Record": "", "Record voice": "སྐད་སྒྲ་ཕབ་པ།", "Redirecting you to Open WebUI Community": "ཁྱེད་ Open WebUI སྤྱི་ཚོགས་ལ་ཁ་ཕྱོགས་སྒྱུར་བཞིན་པ།", "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.": "དོན་མེད་བཟོ་བའི་ཆགས་ཚུལ་ཉུང་དུ་གཏོང་བ། རིན་ཐང་མཐོ་བ་ (དཔེར་ན། ༡༠༠) ཡིས་ལན་སྣ་ཚོགས་ཆེ་བ་སྤྲོད་ངེས། དེ་བཞིན་དུ་རིན་ཐང་དམའ་བ་ (དཔེར་ན། ༡༠) ཡིས་སྲུང་འཛིན་ཆེ་བ་ཡོང་ངེས།", @@ -939,7 +986,7 @@ "Save Tag": "རྟགས་ཉར་ཚགས།", "Saved": "ཉར་ཚགས་བྱས།", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "ཁ་བརྡའི་ཟིན་ཐོ་ཐད་ཀར་ཁྱེད་ཀྱི་བརྡ་འཚོལ་ཆས་ཀྱི་གསོག་ཆས་སུ་ཉར་ཚགས་བྱེད་པར་ད་ནས་བཟུང་རྒྱབ་སྐྱོར་མེད། གཤམ་གྱི་མཐེབ་གནོན་མནན་ནས་ཁྱེད་ཀྱི་ཁ་བརྡའི་ཟིན་ཐོ་ཕབ་ལེན་དང་བསུབ་པར་དུས་ཚོད་ཅུང་ཟད་བླང་རོགས། སེམས་ཁྲལ་མེད། ཁྱེད་ཀྱིས་སྟབས་བདེ་པོར་ཁྱེད་ཀྱི་ཁ་བརྡའི་ཟིན་ཐོ་རྒྱབ་སྣེ་ལ་བསྐྱར་དུ་ནང་འདྲེན་བྱེད་ཐུབ།", - "Scroll to bottom when switching between branches": "ཡན་ལག་བརྗེ་སྐབས་མཐིལ་དུ་འགྲིལ་བ།", + "Scroll On Branch Change": "", "Search": "འཚོལ་བཤེར།", "Search a model": "དཔེ་དབྱིབས་ཤིག་འཚོལ་བ།", "Search Base": "འཚོལ་བཤེར་གཞི་རྩ།", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "དྲ་ཚིགས་ {{count}} འཚོལ་བཤེར་བྱས།", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" འཚོལ་བཞིན་པ།", "Searching Knowledge for \"{{searchQuery}}\"": "\"{{searchQuery}}\" ཆེད་དུ་ཤེས་བྱ་འཚོལ་བཞིན་པ།", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "ལམ་སྟོན་ཆེད་དུ་ readme.md ལ་ལྟ་བ།", "See what's new": "གསར་པ་ཅི་ཡོད་ལྟ་བ།", @@ -1140,7 +1188,6 @@ "Tools Access": "ལག་ཆར་འཛུལ་སྤྱོད།", "Tools are a function calling system with arbitrary code execution": "ལག་ཆ་ནི་གང་འདོད་ཀྱི་ཀོཌ་ལག་བསྟར་ཡོད་པའི་ལས་འགན་འབོད་པའི་མ་ལག་ཅིག་ཡིན།", "Tools Function Calling Prompt": "ལག་ཆ་ལས་འགན་འབོད་པའི་འགུལ་སློང་།", - "Tools have a function calling system that allows arbitrary code execution": "ལག་ཆར་གང་འདོད་ཀྱི་ཀོཌ་ལག་བསྟར་ལ་གནང་བ་སྤྲོད་པའི་ལས་འགན་འབོད་པའི་མ་ལག་ཡོད།", "Tools have a function calling system that allows arbitrary code execution.": "ལག་ཆར་གང་འདོད་ཀྱི་ཀོཌ་ལག་བསྟར་ལ་གནང་བ་སྤྲོད་པའི་ལས་འགན་འབོད་པའི་མ་ལག་ཡོད།", "Tools Public Sharing": "ལག་ཆ་སྤྱི་སྤྱོད་མཉམ་སྤྱོད།", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "ཕྱིར་འདོན།", "Unravel secrets": "གསང་བ་གྲོལ་བ།", "Untagged": "རྟགས་མེད།", + "Untitled": "", "Update": "གསར་སྒྱུར།", "Update and Copy Link": "གསར་སྒྱུར་དང་སྦྲེལ་ཐག་འདྲ་བཤུས།", "Update for the latest features and improvements.": "ཁྱད་ཆོས་དང་ལེགས་བཅོས་གསར་ཤོས་ཀྱི་ཆེད་དུ་གསར་སྒྱུར་བྱེད་པ།", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "ནུས་པ་ཤུགས་ཆེ་བ། སྲོལ་བཟོས་བརྗོད་གཞི་དང་ཚོང་རྟགས། དམིགས་བསལ་རྒྱབ་སྐྱོར་ཚུད་པའི་ཆོག་མཆན་ཡོད་པའི་འཆར་གཞི་ལ་རིམ་སྤོར་བྱེད་པ།", "Upload": "སྤར་བ།", "Upload a GGUF model": "GGUF དཔེ་དབྱིབས་ཤིག་སྤར་བ།", + "Upload Audio": "", "Upload directory": "སྤར་བའི་ཐོ་འཚོལ།", "Upload files": "ཡིག་ཆ་སྤར་བ།", "Upload Files": "ཡིག་ཆ་སྤར་བ།", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "[བརྗོད་གཞི་ཡང་ན་གནད་ཚིག] ཕྱོགས་སྡོམ་བྱེད་པའི་ཚིག་ ༥༠ ནང་གི་སྙིང་བསྡུས་ཤིག་འབྲི་བ།", "Write something...": "ཅི་ཞིག་འབྲི་བ།...", "Write your model template content here": "ཁྱེད་ཀྱི་དཔེ་དབྱིབས་མ་དཔེའི་ནང་དོན་འདིར་འབྲི་བ།", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "ཁ་ས།", "You": "ཁྱེད།", "You are currently using a trial license. Please contact support to upgrade your license.": "ཁྱེད་ཀྱིས་ད་ལྟ་ཚོད་ལྟའི་ཆོག་མཆན་ཞིག་བེད་སྤྱོད་གཏོང་བཞིན་འདུག ཁྱེད་ཀྱི་ཆོག་མཆན་རིམ་སྤོར་བྱེད་པར་རོགས་སྐྱོར་དང་འབྲེལ་གཏུག་བྱེད་རོགས།", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "ཁྱེད་ཀྱིས་ཐེངས་གཅིག་ལ་ཡིག་ཆ་ {{maxCount}} ལས་མང་བ་དང་ཁ་བརྡ་བྱེད་མི་ཐུབ།", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "ཁྱེད་ཀྱིས་གཤམ་གྱི་ 'དོ་དམ་' མཐེབ་གནོན་བརྒྱུད་དྲན་ཤེས་སྣོན་ནས་ LLMs དང་མཉམ་དུ་འབྲེལ་འདྲིས་བྱེད་པ་སྒེར་སྤྱོད་ཅན་བཟོ་ཐུབ། དེ་དག་ཁྱེད་ལ་སྔར་ལས་ཕན་ཐོགས་པ་དང་འཚམ་པོ་བཟོ་ཐུབ།", "You cannot upload an empty file.": "ཁྱེད་ཀྱིས་ཡིག་ཆ་སྟོང་པ་སྤར་མི་ཐུབ།", - "You do not have permission to upload files": "ཁྱེད་ལ་ཡིག་ཆ་སྤར་བའི་དབང་ཚད་མེད།", "You do not have permission to upload files.": "ཁྱེད་ལ་ཡིག་ཆ་སྤར་བའི་དབང་ཚད་མེད།", "You have no archived conversations.": "ཁྱེད་ལ་ཡིག་མཛོད་དུ་བཞག་པའི་ཁ་བརྡ་མེད།", "You have shared this chat": "ཁྱེད་ཀྱིས་ཁ་བརྡ་འདི་མཉམ་སྤྱོད་བྱས་ཡོད།", diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index 81fcfba98..7f52339bf 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(p. ex. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(p. ex. `sh webui.sh --api`)", "(latest)": "(últim)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "{{COUNT}} eines disponibles", @@ -57,17 +58,19 @@ "All": "Tots", "All Documents": "Tots els documents", "All models deleted successfully": "Tots els models s'han eliminat correctament", - "Allow Call": "", + "Allow Call": "Permetre la trucada", "Allow Chat Controls": "Permetre els controls de xat", "Allow Chat Delete": "Permetre eliminar el xat", "Allow Chat Deletion": "Permetre la supressió del xat", "Allow Chat Edit": "Permetre editar el xat", + "Allow Chat Export": "Permetre exportar el xat", + "Allow Chat Share": "Permetre compartir el xat", "Allow File Upload": "Permetre la pujada d'arxius", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "Permetre múltiple models al xat", "Allow non-local voices": "Permetre veus no locals", - "Allow Speech to Text": "", + "Allow Speech to Text": "Permetre Parla a Text", "Allow Temporary Chat": "Permetre el xat temporal", - "Allow Text to Speech": "", + "Allow Text to Speech": "Permetre Text a Parla", "Allow User Location": "Permetre la ubicació de l'usuari", "Allow Voice Interruption in Call": "Permetre la interrupció de la veu en una trucada", "Allowed Endpoints": "Punts d'accés permesos", @@ -76,6 +79,7 @@ "Always": "Sempre", "Always Collapse Code Blocks": "Reduir sempre els blocs de codi", "Always Expand Details": "Expandir sempre els detalls", + "Always Play Notification Sound": "Reproduir sempre un so de notificació", "Amazing": "Al·lucinant", "an assistant": "un assistent", "Analyzed": "Analitzat", @@ -83,7 +87,7 @@ "and": "i", "and {{COUNT}} more": "i {{COUNT}} més", "and create a new shared link.": "i crear un nou enllaç compartit.", - "Android": "", + "Android": "Android", "API Base URL": "URL Base de l'API", "API Key": "clau API", "API Key created.": "clau API creada.", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Estàs segur que vols eliminar aquest canal?", "Are you sure you want to delete this message?": "Estàs segur que vols eliminar aquest missatge?", "Are you sure you want to unarchive all archived chats?": "Estàs segur que vols desarxivar tots els xats arxivats?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Estàs segur?", "Arena Models": "Models de l'Arena", "Artifacts": "Artefactes", @@ -135,6 +140,7 @@ "Bad Response": "Resposta errònia", "Banners": "Banners", "Base Model (From)": "Model base (des de)", + "Base URL": "", "Batch Size (num_batch)": "Mida del lot (num_batch)", "before": "abans", "Being lazy": "Essent mandrós", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Clau de subscripció a Bing Search V7", "Bocha Search API Key": "Clau API de Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Potenciar o penalitzar tokens específics per a respostes limitades. Els valors de biaix es fixaran entre -100 i 100 (inclosos). (Per defecte: cap)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Clau API de Brave Search", "By {{name}}": "Per {{name}}", "Bypass Embedding and Retrieval": "Desactivar l'Embedding i el Retrieval", @@ -153,6 +160,7 @@ "Cancel": "Cancel·lar", "Capabilities": "Capacitats", "Capture": "Captura", + "Capture Audio": "", "Certificate Path": "Camí del certificat", "Change Password": "Canviar la contrasenya", "Channel Name": "Nom del canal", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!", "Copied to clipboard": "Copiat al porta-retalls", "Copy": "Copiar", - "Copy Formatted Text": "", + "Copy Formatted Text": "Copiar el text formatat", "Copy last code block": "Copiar l'últim bloc de codi", "Copy last response": "Copiar l'última resposta", "Copy Link": "Copiar l'enllaç", @@ -262,6 +270,8 @@ "Create Knowledge": "Crear Coneixement", "Create new key": "Crear una nova clau", "Create new secret key": "Crear una nova clau secreta", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Creat el", "Created At": "Creat el", "Created by": "Creat per", @@ -299,6 +309,7 @@ "Delete function?": "Eliminar funció?", "Delete Message": "Eleiminar el missatge", "Delete message?": "Eliminar el missatge?", + "Delete note?": "", "Delete prompt?": "Eliminar indicació?", "delete this link": "Eliminar aquest enllaç", "Delete tool?": "Eliminar eina?", @@ -308,7 +319,7 @@ "Deleted User": "Usuari eliminat", "Describe your knowledge base and objectives": "Descriu la teva base de coneixement i objectius", "Description": "Descripció", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Detectar automàticament els artefactes", "Didn't fully follow instructions": "No s'han seguit les instruccions completament", "Direct": "Directe", "Direct Connections": "Connexions directes", @@ -354,7 +365,7 @@ "Download Database": "Descarregar la base de dades", "Drag and drop a file to upload or select a file to view": "Arrossegar un arxiu per pujar o escull un arxiu a veure", "Draw": "Dibuixar", - "Drop any files here to add to the conversation": "Deixa qualsevol arxiu aquí per afegir-lo a la conversa", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s','10m'. Les unitats de temps vàlides són 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "p. ex. \"json\" o un esquema JSON", "e.g. 60": "p. ex. 60", @@ -364,7 +375,8 @@ "e.g. my_filter": "p. ex. els_meus_filtres", "e.g. my_tools": "p. ex. les_meves_eines", "e.g. Tools for performing various operations": "p. ex. Eines per dur a terme operacions", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "p. ex. en-US, ja-JP, ca-ES (deixa-ho en blanc per detecció automàtica)", "Edit": "Editar", "Edit Arena Model": "Editar model de l'Arena", "Edit Channel": "Editar el canal", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Permetre nous registres", "Enabled": "Habilitat", "Enforce Temporary Chat": "Forçar els xats temporals", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assegura't que els teus fitxers CSV inclouen 4 columnes en aquest ordre: Nom, Correu electrònic, Contrasenya, Rol.", "Enter {{role}} message here": "Introdueix aquí el missatge de {{role}}", "Enter a detail about yourself for your LLMs to recall": "Introdueix un detall sobre tu què els teus models de llenguatge puguin recordar", @@ -409,13 +422,19 @@ "Enter Chunk Size": "Introdueix la mida del bloc", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Introdueix parelles de \"token:valor de biaix\" separats per comes (exemple: 5432:100, 413:-100)", "Enter description": "Introdueix la descripció", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Introdueix la URL del servidor Docling", "Enter Document Intelligence Endpoint": "Introdueix el punt de connexió de Document Intelligence", "Enter Document Intelligence Key": "Introdueix la clau de Document Intelligence", "Enter domains separated by commas (e.g., example.com,site.org)": "Introdueix els dominis separats per comes (p. ex. example.com,site.org)", "Enter Exa API Key": "Introdueix la clau API de d'EXA", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter External Web Loader API Key": "Introdueix la clau API d'External Web Loader", + "Enter External Web Loader URL": "Introdueix la URL d'External Web Loader", + "Enter External Web Search API Key": "Introdueix la clau API d'External Web Search", + "Enter External Web Search URL": "Introdueix la URL d'External Web Search", + "Enter Firecrawl API Base URL": "Introdueix la URL base de Firecrawl API", + "Enter Firecrawl API Key": "Introdueix la clau API de Firecrawl", "Enter Github Raw URL": "Introdueix l'URL en brut de Github", "Enter Google PSE API Key": "Introdueix la clau API de Google PSE", "Enter Google PSE Engine Id": "Introdueix l'identificador del motor PSE de Google", @@ -431,10 +450,11 @@ "Enter Model ID": "Introdueix l'identificador del model", "Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})", "Enter Mojeek Search API Key": "Introdueix la clau API de Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Introdueix el nombre de passos (p. ex. 50)", "Enter Perplexity API Key": "Introdueix la clau API de Perplexity", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Playwright Timeout": "Introdueix el timeout de Playwright", + "Enter Playwright WebSocket URL": "Introdueix la URL de Playwright WebSocket", "Enter proxy URL (e.g. https://user:password@host:port)": "Entra l'URL (p. ex. https://user:password@host:port)", "Enter reasoning effort": "Introdueix l'esforç de raonament", "Enter Sampler (e.g. Euler a)": "Introdueix el mostrejador (p.ex. Euler a)", @@ -452,13 +472,13 @@ "Enter server host": "Introdueix el servidor", "Enter server label": "Introdueix l'etiqueta del servidor", "Enter server port": "Introdueix el port del servidor", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Sougou Search API sID": "Introdueix el sID de l'API de Sougou Search", + "Enter Sougou Search API SK": "Introdueix l'SK de l'API de Sougou Search", "Enter stop sequence": "Introdueix la seqüència de parada", "Enter system prompt": "Introdueix la indicació de sistema", "Enter system prompt here": "Entra la indicació de sistema aquí", "Enter Tavily API Key": "Introdueix la clau API de Tavily", - "Enter Tavily Extract Depth": "", + "Enter Tavily Extract Depth": "Introdueix la profunditat d'extracció de Tavily", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Entra la URL pública de WebUI. Aquesta URL s'utilitzarà per generar els enllaços en les notificacions.", "Enter Tika Server URL": "Introdueix l'URL del servidor Tika", "Enter timeout in seconds": "Entra el temps màxim en segons", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Introdueix el Top K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Introdueix l'URL (p. ex. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Introdueix la teva contrasenya actual", "Enter Your Email": "Introdueix el teu correu electrònic", "Enter Your Full Name": "Introdueix el teu nom complet", "Enter your message": "Introdueix el teu missatge", "Enter your name": "Entra el teu nom", + "Enter Your Name": "", "Enter your new password": "Introdueix la teva nova contrasenya", "Enter Your Password": "Introdueix la teva contrasenya", "Enter Your Role": "Introdueix el teu rol", @@ -480,6 +504,8 @@ "Error": "Error", "ERROR": "ERROR", "Error accessing Google Drive: {{error}}": "Error en accedir a Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Error en pujar l'arxiu: {{error}}", "Evaluations": "Avaluacions", "Exa API Key": "Clau API d'EXA", @@ -511,10 +537,16 @@ "Export Tools": "Exportar les eines", "External": "Extern", "External Models": "Models externs", + "External Web Loader API Key": "Clau API d'External Web Loader", + "External Web Loader URL": "URL d'External Web Loader", + "External Web Search API Key": "Clau API d'External Web Search", + "External Web Search URL": "URL d'External Web Search", "Failed to add file.": "No s'ha pogut afegir l'arxiu.", "Failed to connect to {{URL}} OpenAPI tool server": "No s'ha pogut connecta al servidor d'eines OpenAPI {{URL}}", "Failed to create API Key.": "No s'ha pogut crear la clau API.", + "Failed to delete note": "", "Failed to fetch models": "No s'han pogut obtenir els models", + "Failed to load file content.": "No s'ha pogut carregar el contingut del fitxer", "Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls", "Failed to save connections": "No s'han pogut desar les connexions", "Failed to save models configuration": "No s'ha pogut desar la configuració dels models", @@ -539,12 +571,11 @@ "Filter is now globally enabled": "El filtre ha estat activat globalment", "Filters": "Filtres", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "S'ha detectat la suplantació d'identitat de l'empremta digital: no es poden utilitzar les inicials com a avatar. S'estableix la imatge de perfil predeterminada.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "URL de l'API de base de Firecrawl", + "Firecrawl API Key": "Clau API de Firecrawl", "Fluidly stream large external response chunks": "Transmetre amb fluïdesa grans trossos de resposta externa", "Focus chat input": "Estableix el focus a l'entrada del xat", "Folder deleted successfully": "Carpeta eliminada correctament", - "Folder name cannot be empty": "El nom de la carpeta no pot ser buit", "Folder name cannot be empty.": "El nom de la carpeta no pot ser buit.", "Folder name updated successfully": "Nom de la carpeta actualitzat correctament", "Followed instructions perfectly": "S'han seguit les instruccions perfectament", @@ -565,17 +596,18 @@ "Function Name": "Nom de la funció", "Function updated successfully": "La funció s'ha actualitzat correctament", "Functions": "Funcions", - "Functions allow arbitrary code execution": "Les funcions permeten l'execució de codi arbitrari", "Functions allow arbitrary code execution.": "Les funcions permeten l'execució de codi arbitrari.", "Functions imported successfully": "Les funcions s'han importat correctament", "Gemini": "Gemini", "Gemini API Config": "Configuració de Gemini API", "Gemini API Key is required.": "La clau API de Gemini és necessària", "General": "General", + "Generate": "", "Generate an image": "Generar una imatge", "Generate Image": "Generar imatge", "Generate prompt pair": "Generar parella d'indicació", "Generating search query": "Generant consulta", + "Generating...": "", "Get started": "Començar", "Get started with {{WEBUI_NAME}}": "Començar amb {{WEBUI_NAME}}", "Global": "Global", @@ -605,8 +637,8 @@ "Hybrid Search": "Cerca híbrida", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Afirmo que he llegit i entenc les implicacions de la meva acció. Soc conscient dels riscos associats a l'execució de codi arbitrari i he verificat la fiabilitat de la font.", "ID": "ID", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", + "iframe Sandbox Allow Forms": "Permetre formularis sandbox iframe", + "iframe Sandbox Allow Same Origin": "Permetre same-origin sandbox iframe", "Ignite curiosity": "Despertar la curiositat", "Image": "Imatge", "Image Compression": "Compressió d'imatges", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importar la configuració des d'un arxiu JSON", "Import Functions": "Importar funcions", "Import Models": "Importar models", + "Import Notes": "", "Import Presets": "Importar configuracions", "Import Prompts": "Importar indicacions", "Import Tools": "Importar eines", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Enviament automàtic després de la transcripció de veu", "Integration": "Integració", "Interface": "Interfície", + "Invalid file content": "", "Invalid file format.": "Format d'arxiu no vàlid.", "Invalid JSON schema": "Esquema JSON no vàlid", "Invalid Tag": "Etiqueta no vàlida", @@ -667,7 +701,7 @@ "Label": "Etiqueta", "Landing Page Mode": "Mode de la pàgina d'entrada", "Language": "Idioma", - "Language Locales": "", + "Language Locales": "Localització d'idiomes", "Last Active": "Activitat recent", "Last Modified": "Modificació", "Last reply": "Darrera resposta", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gestionar les Pipelines", "Manage Tool Servers": "Gestionar els servidors d'eines", "March": "Març", + "Max Speakers": "", "Max Tokens (num_predict)": "Nombre màxim de Tokens (num_predict)", "Max Upload Count": "Nombre màxim de càrregues", "Max Upload Size": "Mida màxima de càrrega", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memòria eliminada correctament", "Memory updated successfully": "Memòria actualitzada correctament", "Merge Responses": "Fusionar les respostes", + "Merged Response": "Resposta combinada", "Message rating should be enabled to use this feature": "La classificació dels missatges s'hauria d'activar per utilitzar aquesta funció", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Els missatges enviats després de crear el teu enllaç no es compartiran. Els usuaris amb l'URL podran veure el xat compartit.", + "Microsoft OneDrive": "Microsoft OneDrive", + "Microsoft OneDrive (personal)": "Microsoft OneDrive (personal)", + "Microsoft OneDrive (work/school)": "Microsoft OneDrive (feina/escola)", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Eta de Mirostat", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Clau API de Mojeek Search", "more": "més", "More": "Més", + "My Notes": "", "Name": "Nom", "Name your knowledge base": "Anomena la teva base de coneixement", "Native": "Natiu", "New Chat": "Nou xat", "New Folder": "Nova carpeta", + "New Note": "", "New Password": "Nova contrasenya", "new-channel": "nou-canal", + "No content": "", "No content found": "No s'ha trobat contingut", + "No content found in file.": "No s'ha trobat contingut en el fitxer.", "No content to speak": "No hi ha contingut per parlar", "No distance available": "No hi ha distància disponible", "No feedbacks found": "No s'han trobat comentaris", "No file selected": "No s'ha escollit cap fitxer", - "No files found.": "No s'han trobat arxius.", "No groups with access, add a group to grant access": "No hi ha cap grup amb accés, afegeix un grup per concedir accés", "No HTML, CSS, or JavaScript content found.": "No s'ha trobat contingut HTML, CSS o JavaScript.", "No inference engine with management support found": "No s'ha trobat un motor d'inferència amb suport de gestió", @@ -774,6 +816,7 @@ "No model IDs": "No hi ha IDs de model", "No models found": "No s'han trobat models", "No models selected": "No s'ha seleccionat cap model", + "No Notes": "", "No results found": "No s'han trobat resultats", "No search query generated": "No s'ha generat cap consulta", "No source available": "Sense font disponible", @@ -782,6 +825,7 @@ "None": "Cap", "Not factually correct": "No és clarament correcte", "Not helpful": "No ajuda", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si s'estableix una puntuació mínima, la cerca només retornarà documents amb una puntuació major o igual a la puntuació mínima.", "Notes": "Notes", "Notification Sound": "So de la notificació", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Només es permeten caràcters alfanumèrics i guions", "Only alphanumeric characters and hyphens are allowed in the command string.": "Només es permeten caràcters alfanumèrics i guions en la comanda.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Només es poden editar col·leccions, crea una nova base de coneixement per editar/afegir documents.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Només hi poden accedir usuaris i grups seleccionats amb permís", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ui! Sembla que l'URL no és vàlida. Si us plau, revisa-la i torna-ho a provar.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ui! Encara hi ha fitxers pujant-se. Si us plau, espera que finalitzi la càrrega.", @@ -849,10 +894,11 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "No s'ha detectat Pipelines", "Pipelines Valves": "Vàlvules de les Pipelines", + "Plain text (.md)": "", "Plain text (.txt)": "Text pla (.txt)", "Playground": "Zona de jocs", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Temps d'espera (ms) de Playwright", + "Playwright WebSocket URL": "URL del WebSocket de Playwright", "Please carefully review the following warnings:": "Si us plau, revisa els següents avisos amb cura:", "Please do not close the settings page while loading the model.": "No tanquis la pàgina de configuració mentre carregues el model.", "Please enter a prompt": "Si us plau, entra una indicació", @@ -891,6 +937,7 @@ "Read": "Llegit", "Read Aloud": "Llegir en veu alta", "Reasoning Effort": "Esforç de raonament", + "Record": "", "Record voice": "Enregistrar la veu", "Redirecting you to Open WebUI Community": "Redirigint-te a la comunitat OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Redueix la probabilitat de generar ximpleries. Un valor més alt (p. ex. 100) donarà respostes més diverses, mentre que un valor més baix (p. ex. 10) serà més conservador.", @@ -898,11 +945,11 @@ "References from": "Referències de", "Refused when it shouldn't have": "Refusat quan no hauria d'haver estat", "Regenerate": "Regenerar", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "Reindexar", + "Reindex Knowledge Base Vectors": "Reindexar els vector base del Coneixement", "Release Notes": "Notes de la versió", "Relevance": "Rellevància", - "Relevance Threshold": "", + "Relevance Threshold": "Límit de rellevància", "Remove": "Eliminar", "Remove Model": "Eliminar el model", "Rename": "Canviar el nom", @@ -939,7 +986,7 @@ "Save Tag": "Desar l'etiqueta", "Saved": "Desat", "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": "Desar els registres de xat directament a l'emmagatzematge del teu navegador ja no està suportat. Si us plau, descarregr i elimina els registres de xat fent clic al botó de sota. No et preocupis, pots tornar a importar fàcilment els teus registres de xat al backend a través de", - "Scroll to bottom when switching between branches": "Desplaçar a la part inferior quan es canviï de branca", + "Scroll On Branch Change": "Fer scroll en canviar de branca", "Search": "Cercar", "Search a model": "Cercar un model", "Search Base": "Base de cerca", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "S'han cercat {{count}} pàgines", "Searching \"{{searchQuery}}\"": "Cercant \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Cercant \"{{searchQuery}}\" al coneixement", + "Searching the web...": "", "Searxng Query URL": "URL de consulta de Searxng", "See readme.md for instructions": "Consulta l'arxiu readme.md per obtenir instruccions", "See what's new": "Veure què hi ha de nou", @@ -1032,8 +1080,8 @@ "Sign up to {{WEBUI_NAME}}": "Registrar-se a {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "Iniciant sessió a {{WEBUI_NAME}}", "sk-1234": "sk-1234", - "Sougou Search API sID": "", - "Sougou Search API SK": "", + "Sougou Search API sID": "sID de l'API de Sougou Search", + "Sougou Search API SK": "SK de l'API de Sougou Search", "Source": "Font", "Speech Playback Speed": "Velocitat de la parla", "Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}", @@ -1061,7 +1109,7 @@ "Tap to interrupt": "Prem per interrompre", "Tasks": "Tasques", "Tavily API Key": "Clau API de Tavily", - "Tavily Extract Depth": "", + "Tavily Extract Depth": "Profunditat d'extracció de Tavily", "Tell us more:": "Dona'ns més informació:", "Temperature": "Temperatura", "Template": "Plantilla", @@ -1140,7 +1188,6 @@ "Tools Access": "Accés a les eines", "Tools are a function calling system with arbitrary code execution": "Les eines són un sistema de crida a funcions amb execució de codi arbitrari", "Tools Function Calling Prompt": "Indicació per a la crida de funcions", - "Tools have a function calling system that allows arbitrary code execution": "Les eines disposen d'un sistema de crida a funcions que permet execució de codi arbitrari", "Tools have a function calling system that allows arbitrary code execution.": "Les eines disposen d'un sistema de crida a funcions que permet execució de codi arbitrari.", "Tools Public Sharing": "Compartició pública d'eines", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Alliberar", "Unravel secrets": "Descobreix els secrets", "Untagged": "Sense etiquetes", + "Untitled": "", "Update": "Actualitzar", "Update and Copy Link": "Actualitzar i copiar l'enllaç", "Update for the latest features and improvements.": "Actualitza per a les darreres característiques i millores.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Actualitzar a un pla amb llicència per obtenir capacitats millorades, com ara la temàtica personalitzada i la marca, i assistència dedicada.", "Upload": "Pujar", "Upload a GGUF model": "Pujar un model GGUF", + "Upload Audio": "", "Upload directory": "Pujar directori", "Upload files": "Pujar fitxers", "Upload Files": "Pujar fitxers", @@ -1184,8 +1233,8 @@ "Use Gravatar": "Utilitzar Gravatar", "Use groups to group your users and assign permissions.": "Utilitza grups per agrupar els usuaris i assignar permisos.", "Use Initials": "Utilitzar inicials", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", + "Use no proxy to fetch page contents.": "No utilitzis un proxy per obtenir contingut de la pàgina.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Utilitza el proxy designat per les variables d'entorn http_proxy i https_proxy per obtenir el contingut de la pàgina.", "use_mlock (Ollama)": "use_mlock (Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "usuari", @@ -1203,7 +1252,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.", "Verify Connection": "Verificar la connexió", - "Verify SSL Certificate": "", + "Verify SSL Certificate": "Verificar el certificat SSL", "Version": "Versió", "Version {{selectedVersion}} of {{totalVersions}}": "Versió {{selectedVersion}} de {{totalVersions}}", "View Replies": "Veure les respostes", @@ -1218,7 +1267,7 @@ "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Avís: l'execució de Jupyter permet l'execució de codi arbitrari, la qual cosa comporta greus riscos de seguretat; procediu amb extrema precaució.", "Web": "Web", "Web API": "Web API", - "Web Loader Engine": "", + "Web Loader Engine": "Motor de càrrega Web", "Web Search": "Cerca la web", "Web Search Engine": "Motor de cerca de la web", "Web Search in Chat": "Cerca a internet al xat", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].", "Write something...": "Escriu quelcom...", "Write your model template content here": "Introdueix el contingut de la plantilla del teu model aquí", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ahir", "You": "Tu", "You are currently using a trial license. Please contact support to upgrade your license.": "Actualment esteu utilitzant una llicència de prova. Poseu-vos en contacte amb el servei d'assistència per actualitzar la vostra llicència.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Només pots xatejar amb un màxim de {{maxCount}} fitxers alhora.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Pots personalitzar les teves interaccions amb els models de llenguatge afegint memòries mitjançant el botó 'Gestiona' que hi ha a continuació, fent-les més útils i adaptades a tu.", "You cannot upload an empty file.": "No es pot pujar un ariux buit.", - "You do not have permission to upload files": "No tens permisos per pujar arxius", "You do not have permission to upload files.": "No tens permisos per pujar arxius.", "You have no archived conversations.": "No tens converses arxivades.", "You have shared this chat": "Has compartit aquest xat", diff --git a/src/lib/i18n/locales/ceb-PH/translation.json b/src/lib/i18n/locales/ceb-PH/translation.json index 8bf58c9a9..dec073e15 100644 --- a/src/lib/i18n/locales/ceb-PH/translation.json +++ b/src/lib/i18n/locales/ceb-PH/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(pananglitan `sh webui.sh --api`)", "(latest)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Tugoti nga mapapas ang mga chat", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "usa ka katabang", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Sigurado ka ?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "", "Banners": "", "Base Model (From)": "", + "Base URL": "", "Batch Size (num_batch)": "", "before": "", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Pagkanselar", "Capabilities": "", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Usba ang password", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "", "Create new secret key": "", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Gihimo ang", "Created At": "", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "I-download ang database", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Ihulog ang bisan unsang file dinhi aron idugang kini sa panag-istoryahanay", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "I-enable ang bag-ong mga rehistro", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Enter {{role}} message here": "Pagsulod sa mensahe {{role}} dinhi", "Enter a detail about yourself for your LLMs to recall": "", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Isulod ang block size", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Pagsulod sa template tag (e.g. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Pagsulod sa gidaghanon sa mga lakang (e.g. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Pagsulod sa URL (e.g. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Pagsulod sa imong e-mail address", "Enter Your Full Name": "Ibutang ang imong tibuok nga ngalan", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Ibutang ang imong password", "Enter Your Role": "", @@ -480,6 +504,8 @@ "Error": "", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Napakyas sa pagbasa sa sulod sa clipboard", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Hapsay nga paghatud sa daghang mga tipik sa eksternal nga mga tubag", "Focus chat input": "Pag-focus sa entry sa diskusyon", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Heneral", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Import prompt", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "", "Manage Tool Servers": "", "March": "", + "Max Speakers": "", "Max Tokens (num_predict)": "", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Gihiusa nga Resulta sa Tubag", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "", + "My Notes": "", "Name": "Ngalan", "Name your knowledge base": "", "Native": "", "New Chat": "Bag-ong diskusyon", "New Folder": "", + "New Note": "", "New Password": "Bag-ong Password", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "", "No search query generated": "", "No source available": "Walay tinubdan nga anaa", @@ -782,6 +825,7 @@ "None": "", "Not factually correct": "", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Ang alphanumeric nga mga karakter ug hyphen lang ang gitugotan sa command string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oops! ", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "", "Playground": "Dulaanan", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "", "Reasoning Effort": "", + "Record": "", "Record voice": "Irekord ang tingog", "Redirecting you to Open WebUI Community": "Gi-redirect ka sa komunidad sa OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Ang pag-save sa mga chat log direkta sa imong browser storage dili na suportado. ", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Pagpanukiduki", "Search a model": "", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "", "See readme.md for instructions": "Tan-awa ang readme.md alang sa mga panudlo", "See what's new": "Tan-awa unsay bag-o", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "Pag-upload ug modelo sa GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Pagsulat og 50 ka pulong nga summary nga nagsumaryo [topic o keyword].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "", "You": "", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "", "You have shared this chat": "", diff --git a/src/lib/i18n/locales/cs-CZ/translation.json b/src/lib/i18n/locales/cs-CZ/translation.json index bba6cce78..8b8148679 100644 --- a/src/lib/i18n/locales/cs-CZ/translation.json +++ b/src/lib/i18n/locales/cs-CZ/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(např. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(např. `sh webui.sh --api`)", "(latest)": "Nejnovější", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Povolit odstranění chatu", "Allow Chat Deletion": "Povolit odstranění chatu", "Allow Chat Edit": "Povolit úpravu chatu", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Povolit nahrávat soubory", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Povolit ne-místní hlasy", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "asistent", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Jste si jistý?", "Arena Models": "Arena modely", "Artifacts": "Artefakty", @@ -135,6 +140,7 @@ "Bad Response": "Špatná odezva", "Banners": "Bannery", "Base Model (From)": "Základní model (z)", + "Base URL": "", "Batch Size (num_batch)": "Batch size (num_batch)", "before": "před", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Klíč API pro Brave Search", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Zrušit", "Capabilities": "Schopnosti", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Změnit heslo", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Vytvořit knowledge", "Create new key": "Vytvořit nový klíč", "Create new secret key": "Vytvořte nový tajný klíč", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Vytvořeno dne", "Created At": "Vytvořeno dne", "Created by": "Vytvořeno uživatelem", @@ -299,6 +309,7 @@ "Delete function?": "Funkce pro odstranění?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Smazat prompt?", "delete this link": "smazat tento odkaz", "Delete tool?": "Odstranit nástroj?", @@ -354,7 +365,7 @@ "Download Database": "Stáhnout databázi", "Drag and drop a file to upload or select a file to view": "", "Draw": "Namalovat", - "Drop any files here to add to the conversation": "Sem přetáhněte libovolné soubory, které chcete přidat do konverzace", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "např. '30s','10m'. Platné časové jednotky jsou 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Upravit", "Edit Arena Model": "Upravit Arena Model", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Povolit nové registrace", "Enabled": "Povoleno", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Ujistěte se, že váš CSV soubor obsahuje 4 sloupce v tomto pořadí: Name, Email, Password, Role.", "Enter {{role}} message here": "Zadejte zprávu {{role}} sem", "Enter a detail about yourself for your LLMs to recall": "Zadejte podrobnost o sobě, kterou si vaše LLM mají pamatovat.", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Zadejte velikost bloku", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Zadejte popis", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Zadejte URL adresu Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "Zadejte ID modelu", "Enter model tag (e.g. {{modelTag}})": "Zadejte označení modelu (např. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Zadejte počet kroků (např. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Zadejte URL (např. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Zadejte URL (např. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Zadejte svůj email", "Enter Your Full Name": "Zadejte své plné jméno", "Enter your message": "Zadejte svou zprávu", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Zadejte své heslo", "Enter Your Role": "Zadejte svou roli", @@ -480,6 +504,8 @@ "Error": "Chyba", "ERROR": "Chyba", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Hodnocení", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Exportní nástroje", "External": "", "External Models": "Externí modely", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Nepodařilo se přidat soubor.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Nepodařilo se vytvořit API klíč.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Nepodařilo se přečíst obsah schránky", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Plynule streamujte velké externí části odpovědí", "Focus chat input": "Zaměřte se na vstup chatu", "Folder deleted successfully": "Složka byla úspěšně smazána", - "Folder name cannot be empty": "Název složky nesmí být prázdný", "Folder name cannot be empty.": "Název složky nesmí být prázdný.", "Folder name updated successfully": "Název složky byl úspěšně aktualizován.", "Followed instructions perfectly": "Dodržel pokyny dokonale.", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Funkce byla úspěšně aktualizována.", "Functions": "Funkce", - "Functions allow arbitrary code execution": "Funkce umožňují vykonávat libovolný kód.", "Functions allow arbitrary code execution.": "Funkce umožňují provádění libovolného kódu.", "Functions imported successfully": "Funkce byly úspěšně importovány", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Obecný", + "Generate": "", "Generate an image": "", "Generate Image": "Vygenerovat obrázek", "Generate prompt pair": "", "Generating search query": "Generování vyhledávacího dotazu", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Globální", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importování konfigurace z JSON souboru", "Import Functions": "Načítání funkcí", "Import Models": "Importování modelů", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importovat Prompty", "Import Tools": "Importovat nástroje", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Okamžité automatické odeslání po přepisu hlasu", "Integration": "", "Interface": "Rozhraní", + "Invalid file content": "", "Invalid file format.": "Neplatný formát souboru.", "Invalid JSON schema": "", "Invalid Tag": "Neplatný tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Správa pipelines", "Manage Tool Servers": "", "March": "Březen", + "Max Speakers": "", "Max Tokens (num_predict)": "Maximální počet tokenů (num_predict)", "Max Upload Count": "Maximální počet nahrání", "Max Upload Size": "Maximální velikost nahrávání", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Paměť byla úspěšně smazána", "Memory updated successfully": "Paměť úspěšně aktualizována", "Merge Responses": "Sloučit odpovědi", + "Merged Response": "Sloučená odpověď", "Message rating should be enabled to use this feature": "Hodnocení zpráv musí být povoleno, aby bylo možné tuto funkci používat.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Zprávy, které odešlete po vytvoření odkazu, nebudou sdíleny. Uživatelé s URL budou moci zobrazit sdílený chat.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "více", "More": "Více", + "My Notes": "", "Name": "Jméno", "Name your knowledge base": "", "Native": "", "New Chat": "Nový chat", "New Folder": "", + "New Note": "", "New Password": "Nové heslo", "new-channel": "", + "No content": "", "No content found": "Nebyly nalezeny žádné obsahové informace.", + "No content found in file.": "", "No content to speak": "Žádný obsah k diskusi.", "No distance available": "Není dostupná žádná vzdálenost", "No feedbacks found": "Žádná zpětná vazba nenalezena", "No file selected": "Nebyl vybrán žádný soubor", - "No files found.": "Nebyly nalezeny žádné soubory.", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "Nebyl nalezen žádný obsah HTML, CSS ani JavaScriptu.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "Nebyly nalezeny žádné modely", "No models selected": "", + "No Notes": "", "No results found": "Nebyly nalezeny žádné výsledky", "No search query generated": "Nebyl vygenerován žádný vyhledávací dotaz.", "No source available": "Není k dispozici žádný zdroj.", @@ -782,6 +825,7 @@ "None": "Žádný", "Not factually correct": "Není fakticky správné", "Not helpful": "Nepomocné", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Poznámka: Pokud nastavíte minimální skóre, vyhledávání vrátí pouze dokumenty s hodnocením, které je větší nebo rovno zadanému minimálnímu skóre.", "Notes": "Poznámky", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Příkazový řetězec smí obsahovat pouze alfanumerické znaky a pomlčky.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Pouze kolekce mohou být upravovány, pro úpravu/přidání dokumentů vytvořte novou znalostní bázi.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Jejda! Vypadá to, že URL adresa je neplatná. Prosím, zkontrolujte ji a zkuste to znovu.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Jejda! Některé soubory se stále nahrávají. Prosím, počkejte, až bude nahrávání dokončeno.", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "Přenosové kanály nebyly detekovány", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "Čistý text (.txt)", "Playground": "", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Číst nahlas", "Reasoning Effort": "", + "Record": "", "Record voice": "Nahrát hlas", "Redirecting you to Open WebUI Community": "Přesměrování na komunitu OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Uložit štítek", "Saved": "Uloženo", "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": "Ukládání záznamů chatu přímo do úložiště vašeho prohlížeče již není podporováno. Věnujte prosím chvíli stažení a smazání svých záznamů chatu kliknutím na tlačítko níže. Nemějte obavy, můžete snadno znovu importovat své záznamy chatu na backend prostřednictvím", - "Scroll to bottom when switching between branches": "Přejít na konec při přepínání mezi větvemi.", + "Scroll On Branch Change": "", "Search": "Vyhledávání", "Search a model": "Vyhledat model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Hledání \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Vyhledávání znalostí pro \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Adresa URL dotazu Searxng", "See readme.md for instructions": "Podívejte se do {{readme.md}} pro pokyny.", "See what's new": "Podívejte se, co je nového", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Nástroje jsou systémem pro volání funkcí s vykonáváním libovolného kódu.", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Nástroje mají systém volání funkcí, který umožňuje libovolné spouštění kódu.", "Tools have a function calling system that allows arbitrary code execution.": "Nástroje mají systém volání funkcí, který umožňuje spuštění libovolného kódu.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Odepnout", "Unravel secrets": "", "Untagged": "Nebyla označena", + "Untitled": "", "Update": "Aktualizovat", "Update and Copy Link": "Aktualizovat a zkopírovat odkaz", "Update for the latest features and improvements.": "Aktualizace pro nejnovější funkce a vylepšení.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Nahrát", "Upload a GGUF model": "Nahrát model ve formátu GGUF", + "Upload Audio": "", "Upload directory": "Nahrát adresář", "Upload files": "Nahrát soubory", "Upload Files": "Nahrát soubory", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Napište shrnutí na 50 slov, které shrnuje [téma nebo klíčové slovo].", "Write something...": "Napište něco...", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Včera", "You": "Vy", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Můžete komunikovat pouze s maximálně {{maxCount}} soubor(y) najednou.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Můžete personalizovat své interakce s LLM pomocí přidávání vzpomínek prostřednictvím tlačítka 'Spravovat' níže, což je učiní pro vás užitečnějšími a lépe přizpůsobenými.", "You cannot upload an empty file.": "Nemůžete nahrát prázdný soubor.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Nemáte žádné archivované konverzace.", "You have shared this chat": "Sdíleli jste tento chat.", diff --git a/src/lib/i18n/locales/da-DK/translation.json b/src/lib/i18n/locales/da-DK/translation.json index eddea97e1..72b022fa5 100644 --- a/src/lib/i18n/locales/da-DK/translation.json +++ b/src/lib/i18n/locales/da-DK/translation.json @@ -4,11 +4,12 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(f.eks. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(f.eks. `sh webui.sh --api`)", "(latest)": "(seneste)", - "(Ollama)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", + "(Ollama)": "(Ollama)", "{{ models }}": "{{ modeller }}", - "{{COUNT}} Available Tools": "", - "{{COUNT}} hidden lines": "", - "{{COUNT}} Replies": "", + "{{COUNT}} Available Tools": "{{COUNT}} Tilgængelige Værktøj", + "{{COUNT}} hidden lines": "{{COUNT}} skjulte linjer", + "{{COUNT}} Replies": "{{COUNT}} Svar", "{{user}}'s Chats": "{{user}}s chats", "{{webUIName}} Backend Required": "{{webUIName}} Backend kræves", "*Prompt node ID(s) are required for image generation": "*Prompt node ID(s) er påkrævet for at kunne generere billeder", @@ -16,28 +17,28 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "En 'task model' bliver brugt til at opgaver såsom at generere overskrifter til chats eller internetsøgninger", "a user": "en bruger", "About": "Information", - "Accept autocomplete generation / Jump to prompt variable": "", - "Access": "", - "Access Control": "", - "Accessible to all users": "", + "Accept autocomplete generation / Jump to prompt variable": "Accepter generede autofuldførsel / Spring til prompt variabel", + "Access": "Adgang", + "Access Control": "Adgangskontrol", + "Accessible to all users": "Tilgængelig for alle brugere", "Account": "Profil", "Account Activation Pending": "Aktivering af profil afventer", "Accurate information": "Profilinformation", "Actions": "Handlinger", - "Activate": "", + "Activate": "Aktiver", "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "", "Active Users": "Aktive brugere", "Add": "Tilføj", - "Add a model ID": "", + "Add a model ID": "Tilføj en model-ID", "Add a short description about what this model does": "En kort beskrivelse af hvad denne model gør", "Add a tag": "Tilføj et tag", - "Add Arena Model": "", - "Add Connection": "", + "Add Arena Model": "Tilføj Area Model", + "Add Connection": "Tilføj forbindelser", "Add Content": "Tilføj indhold", "Add content here": "Tilføj indhold her", "Add custom prompt": "Tilføj en special-prompt", "Add Files": "Tilføj filer", - "Add Group": "", + "Add Group": "Tilføj gruppe", "Add Memory": "Tilføj hukommelse", "Add Model": "Tilføj model", "Add Reaction": "", @@ -45,7 +46,7 @@ "Add Tags": "Tilføj tags", "Add text content": "Tilføj tekst", "Add User": "Tilføj bruger", - "Add User Group": "", + "Add User Group": "Tilføj Brugergruppe", "Adjusting these settings will apply changes universally to all users.": "Ændringer af disse indstillinger har konsekvenser for alle brugere.", "admin": "administrator", "Admin": "Administrator", @@ -54,110 +55,117 @@ "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratorer har adgang til alle værktøjer altid; brugere skal tilføjes værktøjer pr. model i hvert workspace.", "Advanced Parameters": "Advancerede indstillinger", "Advanced Params": "Advancerede indstillinger", - "All": "", + "All": "Alle", "All Documents": "Alle dokumenter", - "All models deleted successfully": "", - "Allow Call": "", - "Allow Chat Controls": "", - "Allow Chat Delete": "", + "All models deleted successfully": "Alle modeller slettet uden fejl", + "Allow Call": "Tillad kald", + "Allow Chat Controls": "Tillad kontrol af chats", + "Allow Chat Delete": "Tillad sletning af chats", "Allow Chat Deletion": "Tillad sletning af chats", - "Allow Chat Edit": "", - "Allow File Upload": "", - "Allow Multiple Models in Chat": "", + "Allow Chat Edit": "Tillad redigering af chats", + "Allow Chat Export": "", + "Allow Chat Share": "", + "Allow File Upload": "Tillad upload af fil", + "Allow Multiple Models in Chat": "Tillad flere modeller i chats", "Allow non-local voices": "Tillad ikke-lokale stemmer", - "Allow Speech to Text": "", + "Allow Speech to Text": "Tillad tale til tekst", "Allow Temporary Chat": "Tillad midlertidig chat", - "Allow Text to Speech": "", + "Allow Text to Speech": "Tillad tekst til take", "Allow User Location": "Tillad bruger-lokation", "Allow Voice Interruption in Call": "Tillad afbrydelser i stemme i opkald", - "Allowed Endpoints": "", + "Allowed Endpoints": "Tilladte endpoints", "Already have an account?": "Har du allerede en profil?", "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": "", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", - "Amazing": "", + "Always": "Altid", + "Always Collapse Code Blocks": "Altid kollapsere kodeblokke", + "Always Expand Details": "Altid udvide detaljer", + "Always Play Notification Sound": "", + "Amazing": "Fantastisk", "an assistant": "en assistent", - "Analyzed": "", - "Analyzing...": "", + "Analyzed": "Analyseret", + "Analyzing...": "Analyserer...", "and": "og", - "and {{COUNT}} more": "", + "and {{COUNT}} more": "og {{COUNT}} mere", "and create a new shared link.": "og lav et nyt link til deling", - "Android": "", + "Android": "Android", "API Base URL": "API Base URL", "API Key": "API nøgle", "API Key created.": "API nøgle lavet", - "API Key Endpoint Restrictions": "", + "API Key Endpoint Restrictions": "API nøgler endpoint forbehold", "API keys": "API nøgler", "Application DN": "", "Application DN Password": "", "applies to all users with the \"user\" role": "", - "April": "april", + "April": "April", "Archive": "Arkiv", "Archive All Chats": "Arkiver alle chats", "Archived Chats": "Arkiverede chats", - "archived-chat-export": "", - "Are you sure you want to clear all memories? This action cannot be undone.": "", - "Are you sure you want to delete this channel?": "", - "Are you sure you want to delete this message?": "", - "Are you sure you want to unarchive all archived chats?": "", + "archived-chat-export": "arkiveret-chat-eksport", + "Are you sure you want to clear all memories? This action cannot be undone.": "Er du sikker på du vil rydde hele hukommelsen? Dette kan ikke gøres om.", + "Are you sure you want to delete this channel?": "Er du sikker på du vil slette denne kanal?", + "Are you sure you want to delete this message?": "Er du sikker på du vil slette denne besked?", + "Are you sure you want to unarchive all archived chats?": "Er du sikker på du vil fjerne alle arkiverede chats?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Er du sikker?", - "Arena Models": "", + "Arena Models": "Arena Modeller", "Artifacts": "Artifakter", - "Ask": "", + "Ask": "Spørg", "Ask a question": "Stil et spørgsmål", - "Assistant": "", - "Attach file from knowledge": "", + "Assistant": "Assistent", + "Attach file from knowledge": "Vedhæft fil fra viden", "Attention to detail": "Detajleorientering", - "Attribute for Mail": "", - "Attribute for Username": "", + "Attribute for Mail": "Attribut for Mail", + "Attribute for Username": "Attribut for brugernavn", "Audio": "Lyd", "August": "august", - "Auth": "", - "Authenticate": "", - "Authentication": "", - "Auto": "", + "Auth": "Auth", + "Authenticate": "Autentificer", + "Authentication": "Autentikation", + "Auto": "Auto", "Auto-Copy Response to Clipboard": "Automatisk kopiering af svar til udklipsholder", "Auto-playback response": "Automatisk afspil svar", - "Autocomplete Generation": "", + "Autocomplete Generation": "Genere automatisk fuldførsel", "Autocomplete Generation Input Max Length": "", "Automatic1111": "Automatic1111", "AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String", "AUTOMATIC1111 Base URL": "AUTOMATIC1111 Base URL", "AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Base URL er påkrævet.", "Available list": "Tilgængelige lister", - "Available Tools": "", + "Available Tools": "Tilgængelige værktøj", "available!": "tilgængelig!", - "Awful": "", + "Awful": "Forfærdeligt", "Azure AI Speech": "Azure AI Speech", "Azure Region": "Azure Region", "Back": "Tilbage", "Bad Response": "Problem i response", "Banners": "Bannere", "Base Model (From)": "Base Model (Fra)", + "Base URL": "", "Batch Size (num_batch)": "Batch størrelse (num_batch)", "before": "før", "Being lazy": "At være doven", - "Beta": "", + "Beta": "Beta", "Bing Search V7 Endpoint": "", "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API nøgle", - "By {{name}}": "", + "By {{name}}": "Af {{name}}", "Bypass Embedding and Retrieval": "", - "Calendar": "", + "Calendar": "Kalender", "Call": "Opkald", "Call feature is not supported when using Web STT engine": "Opkaldsfunktion er ikke understøttet for Web STT engine", "Camera": "Kamera", "Cancel": "Afbryd", "Capabilities": "Funktioner", - "Capture": "", - "Certificate Path": "", + "Capture": "Indfang", + "Capture Audio": "", + "Certificate Path": "Certifikat sti", "Change Password": "Skift password", - "Channel Name": "", - "Channels": "", - "Character": "", + "Channel Name": "Kanalnavn", + "Channels": "Kanaler", + "Character": "Karakterer", "Character limit for autocomplete generation input": "", "Chart new frontiers": "", "Chat": "Chat", @@ -262,6 +270,8 @@ "Create Knowledge": "Opret Viden", "Create new key": "Opret en ny nøgle", "Create new secret key": "Opret en ny hemmelig nøgle", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Oprettet", "Created At": "Oprettet", "Created by": "Oprettet af", @@ -299,6 +309,7 @@ "Delete function?": "Slet funktion?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Slet prompt?", "delete this link": "slet dette link", "Delete tool?": "Slet værktøj?", @@ -354,7 +365,7 @@ "Download Database": "Download database", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Upload filer her for at tilføje til samtalen", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "f.eks. '30s', '10m'. Tilladte værdier er 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Rediger", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Aktiver nye signups", "Enabled": "Aktiveret", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Sørg for at din CSV-fil indeholder 4 kolonner in denne rækkefølge: Name, Email, Password, Role.", "Enter {{role}} message here": "Indtast {{role}} besked her", "Enter a detail about yourself for your LLMs to recall": "Indtast en detalje om dig selv, som dine LLMs kan huske", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Indtast størrelse af tekststykker", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Indtast Github Raw URL", @@ -431,6 +450,7 @@ "Enter Model ID": "Indtast model-ID", "Enter model tag (e.g. {{modelTag}})": "Indtast modelmærke (f.eks. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Indtast antal trin (f.eks. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Indtast URL (f.eks. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Indtast URL (f.eks. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Indtast din e-mail", "Enter Your Full Name": "Indtast dit fulde navn", "Enter your message": "Indtast din besked", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Indtast din adgangskode", "Enter Your Role": "Indtast din rolle", @@ -480,6 +504,8 @@ "Error": "Fejl", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Eksportér værktøjer", "External": "", "External Models": "Eksterne modeller", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Kunne ikke oprette API-nøgle.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Kunne ikke læse indholdet af udklipsholderen", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Stream store eksterne svar chunks flydende", "Focus chat input": "Fokuser på chatinput", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Fulgte instruktionerne perfekt", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Funktion opdateret.", "Functions": "Funktioner", - "Functions allow arbitrary code execution": "Funktioner tillader kørsel af vilkårlig kode", "Functions allow arbitrary code execution.": "Funktioner tillader kørsel af vilkårlig kode.", "Functions imported successfully": "Funktioner importeret.", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Generelt", + "Generate": "", "Generate an image": "", "Generate Image": "Generer billede", "Generate prompt pair": "", "Generating search query": "Genererer søgeforespørgsel", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importer konfiguration fra JSON-fil", "Import Functions": "Importer funktioner", "Import Models": "Importer modeller", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importer prompts", "Import Tools": "Importer værktøjer", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Øjeblikkelig automatisk afsendelse efter stemmetransskription", "Integration": "", "Interface": "Grænseflade", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Ugyldigt tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Administrer pipelines", "Manage Tool Servers": "", "March": "Marts", + "Max Speakers": "", "Max Tokens (num_predict)": "Maks. tokens (num_predict)", "Max Upload Count": "Maks. uploadantal", "Max Upload Size": "Maks. uploadstørrelse", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Hukommelse slettet.", "Memory updated successfully": "Hukommelse opdateret.", "Merge Responses": "Flet svar", + "Merged Response": "Sammensat svar", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Beskeder, du sender efter at have oprettet dit link, deles ikke. Brugere med URL'en vil kunne se den delte chat.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Mere", + "My Notes": "", "Name": "Navn", "Name your knowledge base": "", "Native": "", "New Chat": "Ny chat", "New Folder": "", + "New Note": "", "New Password": "Ny adgangskode", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "Intet indhold at tale", "No distance available": "", "No feedbacks found": "", "No file selected": "Ingen fil valgt", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "Intet HTML-, CSS- eller JavaScript-indhold fundet.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Ingen resultater fundet", "No search query generated": "Ingen søgeforespørgsel genereret", "No source available": "Ingen kilde tilgængelig", @@ -782,6 +825,7 @@ "None": "Ingen", "Not factually correct": "Ikke faktuelt korrekt", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Bemærk: Hvis du angiver en minimumscore, returnerer søgningen kun dokumenter med en score, der er større end eller lig med minimumscoren.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Kun alfanumeriske tegn og bindestreger er tilladt i kommandostrengen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Kun samlinger kan redigeres, opret en ny vidensbase for at redigere/tilføje dokumenter.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ups! URL'en ser ud til at være ugyldig. Tjek den igen, og prøv igen.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Pipelines ikke registreret", "Pipelines Valves": "Pipelines-ventiler", + "Plain text (.md)": "", "Plain text (.txt)": "Almindelig tekst (.txt)", "Playground": "Legeplads", "Playwright Timeout (ms)": "", @@ -869,7 +915,7 @@ "Presence Penalty": "", "Previous 30 days": "Seneste 30 dage", "Previous 7 days": "Seneste 7 dage", - "Private": "", + "Private": "Privat", "Profile Image": "Profilbillede", "Prompt": "", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (f.eks. Fortæl mig en sjov kendsgerning om Romerriget)", @@ -888,9 +934,10 @@ "RAG Template": "RAG-skabelon", "Rating": "", "Re-rank models by topic similarity": "", - "Read": "", + "Read": "Læs", "Read Aloud": "Læs højt", "Reasoning Effort": "", + "Record": "", "Record voice": "Optag stemme", "Redirecting you to Open WebUI Community": "Omdirigerer dig til OpenWebUI Community", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Gem tag", "Saved": "Gemt", "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": "Lagring af chatlogs direkte i din browsers lager understøttes ikke længere. Download og slet dine chatlogs ved at klikke på knappen nedenfor. Du kan nemt importere dine chatlogs til backend igennem", - "Scroll to bottom when switching between branches": "Rul til bunden, når du skifter mellem grene", + "Scroll On Branch Change": "", "Search": "Søg", "Search a model": "Søg efter en model", "Search Base": "", @@ -953,13 +1000,14 @@ "Search options": "", "Search Prompts": "Søg i prompts", "Search Result Count": "Antal søgeresultater", - "Search the internet": "", + "Search the internet": "Søg internettet", "Search Tools": "Søg i værktøjer", "SearchApi API Key": "SearchApi API-nøgle", "SearchApi Engine": "SearchApi-engine", "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Søger efter \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Søger i viden efter \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng forespørgsels-URL", "See readme.md for instructions": "Se readme.md for instruktioner", "See what's new": "Se, hvad der er nyt", @@ -967,7 +1015,7 @@ "Select a base model": "Vælg en basemodel", "Select a engine": "Vælg en engine", "Select a function": "Vælg en funktion", - "Select a group": "", + "Select a group": "Vælg en gruppe", "Select a model": "Vælg en model", "Select a pipeline": "Vælg en pipeline", "Select a pipeline url": "Vælg en pipeline-URL", @@ -1031,7 +1079,7 @@ "Sign up": "Tilmeld dig", "Sign up to {{WEBUI_NAME}}": "Tilmeld dig {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "Logger ind på {{WEBUI_NAME}}", - "sk-1234": "", + "sk-1234": "sk-1234", "Sougou Search API sID": "", "Sougou Search API SK": "", "Source": "Kilde", @@ -1099,8 +1147,8 @@ "This will delete all models including custom models and cannot be undone.": "", "This will reset the knowledge base and sync all files. Do you wish to continue?": "Dette vil nulstille vidensbasen og synkronisere alle filer. Vil du fortsætte?", "Thorough explanation": "Grundig forklaring", - "Thought for {{DURATION}}": "", - "Thought for {{DURATION}} seconds": "", + "Thought for {{DURATION}}": "Tanker for {{DURATION}}", + "Thought for {{DURATION}} seconds": "Tanker for {{DURATION}} sekunder", "Tika": "Tika", "Tika Server URL required.": "Tika-server-URL påkrævet.", "Tiktoken": "", @@ -1109,9 +1157,9 @@ "Title (e.g. Tell me a fun fact)": "Titel (f.eks. Fortæl mig en sjov kendsgerning)", "Title Auto-Generation": "Automatisk titelgenerering", "Title cannot be an empty string.": "Titel kan ikke være en tom streng.", - "Title Generation": "", + "Title Generation": "Titel Generation", "Title Generation Prompt": "Prompt til titelgenerering", - "TLS": "", + "TLS": "TLS", "To access the available model names for downloading,": "For at få adgang til de tilgængelige modelnavne til download,", "To access the GGUF models available for downloading,": "For at få adgang til de GGUF-modeller, der er tilgængelige til download,", "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "For at få adgang til WebUI skal du kontakte administratoren. Administratorer kan administrere brugerstatus fra administrationspanelet.", @@ -1127,58 +1175,59 @@ "Toggle sidebar": "Skift sidebjælke", "Token": "", "Tokens To Keep On Context Refresh (num_keep)": "Tokens, der skal beholdes ved kontekstopdatering (num_keep)", - "Too verbose": "", + "Too verbose": "For ordrigt", "Tool created successfully": "Værktøj oprettet.", "Tool deleted successfully": "Værktøj slettet.", - "Tool Description": "", - "Tool ID": "", + "Tool Description": "Værktøjsbeskrivelse", + "Tool ID": "Værktøj-ID", "Tool imported successfully": "Værktøj importeret.", - "Tool Name": "", - "Tool Servers": "", + "Tool Name": "Værktøjsnavn", + "Tool Servers": "Værktøjsserverer", "Tool updated successfully": "Værktøj opdateret.", "Tools": "Værktøjer", - "Tools Access": "", + "Tools Access": "Værktøjs Adgang", "Tools are a function calling system with arbitrary code execution": "Værktøjer er et funktionkaldssystem med vilkårlig kodeudførelse", - "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Værktøjer har et funktionkaldssystem, der tillader vilkårlig kodeudførelse", + "Tools Function Calling Prompt": "Værktøjs Funktionkaldprompt", "Tools have a function calling system that allows arbitrary code execution.": "Værktøjer har et funktionkaldssystem, der tillader vilkårlig kodeudførelse.", - "Tools Public Sharing": "", + "Tools Public Sharing": "Værktøjer Offentlig Deling", "Top K": "Top K", "Top K Reranker": "", "Top P": "Top P", - "Transformers": "", + "Transformers": "Transformers", "Trouble accessing Ollama?": "Problemer med at få adgang til Ollama?", - "Trust Proxy Environment": "", + "Trust Proxy Environment": "Stol på Proxymiljø", "TTS Model": "TTS-model", "TTS Settings": "TTS-indstillinger", "TTS Voice": "TTS-stemme", "Type": "Type", "Type Hugging Face Resolve (Download) URL": "Indtast Hugging Face Resolve (Download) URL", - "Uh-oh! There was an issue with the response.": "", + "Uh-oh! There was an issue with the response.": "Uh-oh! Der var et problem det det svar.", "UI": "UI", - "Unarchive All": "", - "Unarchive All Archived Chats": "", - "Unarchive Chat": "", - "Unlock mysteries": "", + "Unarchive All": "Udpak alle arkiver", + "Unarchive All Archived Chats": "Udpak alle arkiverede chats", + "Unarchive Chat": "Fjern chat fra arkiv", + "Unlock mysteries": "Lås op for mysterier", "Unpin": "Frigør", - "Unravel secrets": "", - "Untagged": "", + "Unravel secrets": "Afslør hemmeligheder", + "Untagged": "Uden mærker", + "Untitled": "", "Update": "Opdater", "Update and Copy Link": "Opdater og kopier link", "Update for the latest features and improvements.": "Opdater for at få de nyeste funktioner og forbedringer.", "Update password": "Opdater adgangskode", - "Updated": "", + "Updated": "Opdateret", "Updated at": "Opdateret kl.", - "Updated At": "", + "Updated At": "Opdateret Klokken.", "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Upload", "Upload a GGUF model": "Upload en GGUF-model", + "Upload Audio": "", "Upload directory": "Uploadmappe", "Upload files": "Upload filer", "Upload Files": "Upload filer", "Upload Pipeline": "Upload pipeline", "Upload Progress": "Uploadfremdrift", - "URL": "", + "URL": "URL", "URL Mode": "URL-tilstand", "Use '#' in the prompt input to load and include your knowledge.": "Brug '#' i promptinput for at indlæse og inkludere din viden.", "Use Gravatar": "Brug Gravatar", @@ -1189,10 +1238,10 @@ "use_mlock (Ollama)": "use_mlock (Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "bruger", - "User": "", + "User": "Bruger:", "User location successfully retrieved.": "Brugerplacering hentet.", - "User Webhooks": "", - "Username": "", + "User Webhooks": "Bruger Webhooks", + "Username": "Brugernavn", "Users": "Brugere", "Using the default arena model with all models. Click the plus button to add custom models.": "", "Utilize": "Anvend", @@ -1208,9 +1257,9 @@ "Version {{selectedVersion}} of {{totalVersions}}": "Version {{selectedVersion}} af {{totalVersions}}", "View Replies": "", "View Result from **{{NAME}}**": "", - "Visibility": "", + "Visibility": "Synlighed", "Voice": "Stemme", - "Voice Input": "", + "Voice Input": "Stemme Input", "Warning": "Advarsel", "Warning:": "Advarsel:", "Warning: Enabling this will allow users to upload arbitrary code on the server.": "", @@ -1229,31 +1278,33 @@ "WebUI will make requests to \"{{url}}\"": "", "WebUI will make requests to \"{{url}}/api/chat\"": "", "WebUI will make requests to \"{{url}}/chat/completions\"": "", - "What are you trying to achieve?": "", - "What are you working on?": "", + "What are you trying to achieve?": "Hvad prøver du at opnå?", + "What are you working on?": "Hvad arbejder du på?", "What’s New in": "Nyheder i", "When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "", - "wherever you are": "", + "wherever you are": "hvad end du er", "Whisper (Local)": "Whisper (lokal)", - "Why?": "", + "Why?": "Hvorfor?", "Widescreen Mode": "Widescreen-tilstand", - "Won": "", + "Won": "Vandt", "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.": "", "Workspace": "Arbejdsområde", - "Workspace Permissions": "", - "Write": "", + "Workspace Permissions": "Arbejdsområde rettigheder", + "Write": "Skriv", "Write a prompt suggestion (e.g. Who are you?)": "Skriv et promptforslag (f.eks. Hvem er du?)", "Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en opsummering på 50 ord, der opsummerer [emne eller søgeord].", - "Write something...": "", - "Write your model template content here": "", + "Write something...": "Skriv noget...", + "Write your model template content here": "Skriv den model-skabelons indhold her", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "I går", "You": "Du", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Du kan kun chatte med maksimalt {{maxCount}} fil(er) ad gangen.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Du kan personliggøre dine interaktioner med LLM'er ved at tilføje minder via knappen 'Administrer' nedenfor, hvilket gør dem mere nyttige og skræddersyet til dig.", - "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", - "You do not have permission to upload files.": "", + "You cannot upload an empty file.": "Du kan ikke uploade en tom fil", + "You do not have permission to upload files.": "Du har ikke rettighed til at uploade filer.", "You have no archived conversations.": "Du har ingen arkiverede samtaler.", "You have shared this chat": "Du har delt denne chat", "You're a helpful assistant.": "Du er en hjælpsom assistent.", @@ -1261,6 +1312,6 @@ "Your account status is currently pending activation.": "Din kontostatus afventer i øjeblikket aktivering.", "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.": "Hele dit bidrag går direkte til plugin-udvikleren; Open WebUI tager ikke nogen procentdel. Den valgte finansieringsplatform kan dog have sine egne gebyrer.", "Youtube": "Youtube", - "Youtube Language": "", - "Youtube Proxy URL": "" + "Youtube Language": "Youtube sprog", + "Youtube Proxy URL": "Youtube Proxy URL" } diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index c456a781d..bee0d1c1e 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(z. B. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(z. B. `sh webui.sh --api`)", "(latest)": "(neueste)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ Modelle }}", "{{COUNT}} Available Tools": "", @@ -57,17 +58,19 @@ "All": "Alle", "All Documents": "Alle Dokumente", "All models deleted successfully": "Alle Modelle erfolgreich gelöscht", - "Allow Call": "", + "Allow Call": "Anruffunktion erlauben", "Allow Chat Controls": "Chat-Steuerung erlauben", "Allow Chat Delete": "Löschen von Chats erlauben", "Allow Chat Deletion": "Löschen von Chats erlauben", "Allow Chat Edit": "Bearbeiten von Chats erlauben", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Hochladen von Dateien erlauben", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "Multiple Modelle in Chat erlauben", "Allow non-local voices": "Nicht-lokale Stimmen erlauben", - "Allow Speech to Text": "", + "Allow Speech to Text": "Sprache zu Text erlauben", "Allow Temporary Chat": "Temporäre Chats erlauben", - "Allow Text to Speech": "", + "Allow Text to Speech": "Text zu Sprache erlauben", "Allow User Location": "Standort freigeben", "Allow Voice Interruption in Call": "Unterbrechung durch Stimme im Anruf zulassen", "Allowed Endpoints": "Erlaubte Endpunkte", @@ -76,6 +79,7 @@ "Always": "Immer", "Always Collapse Code Blocks": "Code-Blöcke immer zuklappen", "Always Expand Details": "Details immer aufklappen", + "Always Play Notification Sound": "", "Amazing": "Fantastisch", "an assistant": "ein Assistent", "Analyzed": "Analysiert", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Sind Sie sicher, dass Sie diesen Kanal löschen möchten?", "Are you sure you want to delete this message?": "Sind Sie sicher, dass Sie diese Nachricht löschen möchten?", "Are you sure you want to unarchive all archived chats?": "Sind Sie sicher, dass Sie alle archivierten Chats wiederherstellen möchten?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Sind Sie sicher?", "Arena Models": "Arena-Modelle", "Artifacts": "Artefakte", @@ -126,7 +131,7 @@ "AUTOMATIC1111 Base URL": "AUTOMATIC1111-Basis-URL", "AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111-Basis-URL ist erforderlich.", "Available list": "Verfügbare Liste", - "Available Tools": "", + "Available Tools": "Verfügbare Werkzeuge", "available!": "Verfügbar!", "Awful": "Schrecklich", "Azure AI Speech": "Azure AI Speech", @@ -135,6 +140,7 @@ "Bad Response": "Schlechte Antwort", "Banners": "Banner", "Base Model (From)": "Basismodell (From)", + "Base URL": "", "Batch Size (num_batch)": "Stapelgröße (num_batch)", "before": "bereits geteilt", "Being lazy": "Faulheit", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7-Abonnement-Schlüssel", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API-Schlüssel", "By {{name}}": "Von {{name}}", "Bypass Embedding and Retrieval": "Embedding und Retrieval umgehen", @@ -153,6 +160,7 @@ "Cancel": "Abbrechen", "Capabilities": "Fähigkeiten", "Capture": "Aufnehmen", + "Capture Audio": "", "Certificate Path": "Zertifikatpfad", "Change Password": "Passwort ändern", "Channel Name": "Kanalname", @@ -223,9 +231,9 @@ "Confirm your action": "Bestätigen Sie Ihre Aktion.", "Confirm your new password": "Neues Passwort bestätigen", "Connect to your own OpenAI compatible API endpoints.": "Verbinden Sie sich zu Ihren OpenAI-kompatiblen Endpunkten.", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", + "Connect to your own OpenAPI compatible external tool servers.": "Verbinden Sie sich zu Ihren OpenAPI-kompatiblen Werkzeug-Servern.", + "Connection failed": "Verbindung fehlgeschlagen", + "Connection successful": "Verbindung erfolgreich", "Connections": "Verbindungen", "Connections saved successfully": "", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "Freigabelink in die Zwischenablage kopiert!", "Copied to clipboard": "In die Zwischenablage kopiert", "Copy": "Kopieren", - "Copy Formatted Text": "", + "Copy Formatted Text": "Formatierten Text kopieren", "Copy last code block": "Letzten Codeblock kopieren", "Copy last response": "Letzte Antwort kopieren", "Copy Link": "Link kopieren", @@ -262,6 +270,8 @@ "Create Knowledge": "Wissen erstellen", "Create new key": "Neuen Schlüssel erstellen", "Create new secret key": "Neuen API-Schlüssel erstellen", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Erstellt am", "Created At": "Erstellt am", "Created by": "Erstellt von", @@ -299,6 +309,7 @@ "Delete function?": "Funktion löschen?", "Delete Message": "Nachricht löschen", "Delete message?": "Nachricht löschen?", + "Delete note?": "", "Delete prompt?": "Prompt löschen?", "delete this link": "diesen Link löschen", "Delete tool?": "Werkzeug löschen?", @@ -308,13 +319,13 @@ "Deleted User": "Benutzer gelöscht", "Describe your knowledge base and objectives": "Beschreibe deinen Wissensspeicher und deine Ziele", "Description": "Beschreibung", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Artefakte automatisch erkennen", "Didn't fully follow instructions": "Nicht genau den Answeisungen gefolgt", "Direct": "Direkt", "Direct Connections": "Direktverbindungen", "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Direktverbindungen ermöglichen es Benutzern, sich mit ihren eigenen OpenAI-kompatiblen API-Endpunkten zu verbinden.", "Direct Connections settings updated": "Direktverbindungs-Einstellungen aktualisiert", - "Direct Tool Servers": "", + "Direct Tool Servers": "Direkt verbundene Werkzeug-Server", "Disabled": "Deaktiviert", "Discover a function": "Entdecken Sie weitere Funktionen", "Discover a model": "Entdecken Sie weitere Modelle", @@ -346,7 +357,7 @@ "Don't have an account?": "Haben Sie noch kein Benutzerkonto?", "don't install random functions from sources you don't trust.": "installieren Sie keine Funktionen aus Quellen, denen Sie nicht vertrauen.", "don't install random tools from sources you don't trust.": "installieren Sie keine Werkzeuge aus Quellen, denen Sie nicht vertrauen.", - "Don't like the style": "schlechter Schreibstil", + "Don't like the style": "Schlechter Schreibstil", "Done": "Erledigt", "Download": "Exportieren", "Download as SVG": "Exportieren als SVG", @@ -354,7 +365,7 @@ "Download Database": "Datenbank exportieren", "Drag and drop a file to upload or select a file to view": "Ziehen Sie eine Datei zum Hochladen oder wählen Sie eine Datei zum Anzeigen aus", "Draw": "Zeichnen", - "Drop any files here to add to the conversation": "Ziehen Sie beliebige Dateien hierher, um sie dem Chat hinzuzufügen", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z. B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "z. B. 60", @@ -364,7 +375,8 @@ "e.g. my_filter": "z. B. mein_filter", "e.g. my_tools": "z. B. meine_werkzeuge", "e.g. Tools for performing various operations": "z. B. Werkzeuge für verschiedene Operationen", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "z. B. en-US,de-DE (freilassen für automatische Erkennung)", "Edit": "Bearbeiten", "Edit Arena Model": "Arena-Modell bearbeiten", "Edit Channel": "Kanal bearbeiten", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Registrierung erlauben", "Enabled": "Aktiviert", "Enforce Temporary Chat": "Temporären Chat erzwingen", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Stellen Sie sicher, dass Ihre CSV-Datei 4 Spalten in dieser Reihenfolge enthält: Name, E-Mail, Passwort, Rolle.", "Enter {{role}} message here": "Geben Sie die {{role}}-Nachricht hier ein", "Enter a detail about yourself for your LLMs to recall": "Geben Sie ein Detail über sich selbst ein, das Ihre Sprachmodelle (LLMs) sich merken sollen", @@ -401,7 +414,7 @@ "Enter Application DN Password": "Geben Sie das Anwendungs-DN-Passwort ein", "Enter Bing Search V7 Endpoint": "Geben Sie den Bing Search V7-Endpunkt ein", "Enter Bing Search V7 Subscription Key": "Geben Sie den Bing Search V7-Abonnement-Schlüssel ein", - "Enter Bocha Search API Key": "", + "Enter Bocha Search API Key": "Geben Sie den Bocha Search API-Schlüssel ein", "Enter Brave Search API Key": "Geben Sie den Brave Search API-Schlüssel ein", "Enter certificate path": "Geben Sie den Zertifikatpfad ein", "Enter CFG Scale (e.g. 7.0)": "Geben Sie die CFG-Skala ein (z. B. 7.0)", @@ -409,13 +422,19 @@ "Enter Chunk Size": "Geben Sie die Blockgröße ein", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Geben Sie eine Beschreibung ein", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Geben Sie die Domains durch Kommas separiert ein (z.B. example.com,site.org)", "Enter Exa API Key": "Geben Sie den Exa-API-Schlüssel ein", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", + "Enter Firecrawl API Base URL": "Geben Sie die Firecrawl Basis-URL ein", + "Enter Firecrawl API Key": "Geben Sie den Firecrawl API-Schlüssel ein", "Enter Github Raw URL": "Geben Sie die Github Raw-URL ein", "Enter Google PSE API Key": "Geben Sie den Google PSE-API-Schlüssel ein", "Enter Google PSE Engine Id": "Geben Sie die Google PSE-Engine-ID ein", @@ -427,14 +446,15 @@ "Enter Kagi Search API Key": "Geben Sie den Kagi Search API-Schlüssel ein", "Enter Key Behavior": "Verhalten von 'Enter'", "Enter language codes": "Geben Sie die Sprachcodes ein", - "Enter Mistral API Key": "", + "Enter Mistral API Key": "Geben Sie den Mistral API-Schlüssel ein", "Enter Model ID": "Geben Sie die Modell-ID ein", "Enter model tag (e.g. {{modelTag}})": "Geben Sie den Model-Tag ein", "Enter Mojeek Search API Key": "Geben Sie den Mojeek Search API-Schlüssel ein", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Geben Sie die Anzahl an Schritten ein (z. B. 50)", - "Enter Perplexity API Key": "Geben Sie den Perplexity API-Key ein", + "Enter Perplexity API Key": "Geben Sie den Perplexity API-Schlüssel ein", "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Playwright WebSocket URL": "Geben Sie die Playwright WebSocket-URL ein", "Enter proxy URL (e.g. https://user:password@host:port)": "Geben sie die Proxy-URL ein (z. B. https://user:password@host:port)", "Enter reasoning effort": "Geben Sie den Schlussfolgerungsaufwand ein", "Enter Sampler (e.g. Euler a)": "Geben Sie den Sampler ein (z. B. Euler a)", @@ -444,7 +464,7 @@ "Enter SearchApi Engine": "Geben Sie die SearchApi-Engine ein", "Enter Searxng Query URL": "Geben Sie die Searxng-Abfrage-URL ein", "Enter Seed": "Geben Sie den Seed ein", - "Enter SerpApi API Key": "", + "Enter SerpApi API Key": "Geben Sie den SerpApi API-Schlüssel ein", "Enter SerpApi Engine": "", "Enter Serper API Key": "Geben Sie den Serper-API-Schlüssel ein", "Enter Serply API Key": "Geben Sie den", @@ -456,7 +476,7 @@ "Enter Sougou Search API SK": "", "Enter stop sequence": "Stop-Sequenz eingeben", "Enter system prompt": "Systemprompt eingeben", - "Enter system prompt here": "", + "Enter system prompt here": "Systemprompt hier eingeben", "Enter Tavily API Key": "Geben Sie den Tavily-API-Schlüssel ein", "Enter Tavily Extract Depth": "", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Geben sie die öffentliche URL Ihrer WebUI ein. Diese URL wird verwendet, um Links in den Benachrichtigungen zu generieren.", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Geben Sie Top K für Reranker ein", "Enter URL (e.g. http://127.0.0.1:7860/)": "Geben Sie die URL ein (z. B. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Geben Sie die URL ein (z. B. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Geben Sie Ihr aktuelles Passwort ein", "Enter Your Email": "Geben Sie Ihre E-Mail-Adresse ein", "Enter Your Full Name": "Geben Sie Ihren vollständigen Namen ein", "Enter your message": "Geben Sie Ihre Nachricht ein", - "Enter your name": "", + "Enter your name": "Geben Sie Ihren Namen ein", + "Enter Your Name": "", "Enter your new password": "Geben Sie Ihr neues Passwort ein", "Enter Your Password": "Geben Sie Ihr Passwort ein", "Enter Your Role": "Geben Sie Ihre Rolle ein", @@ -480,6 +504,8 @@ "Error": "Fehler", "ERROR": "FEHLER", "Error accessing Google Drive: {{error}}": "Fehler beim Zugriff auf Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Fehler beim Hochladen der Datei: {{error}}", "Evaluations": "Evaluationen", "Exa API Key": "Exa-API-Schlüssel", @@ -511,10 +537,16 @@ "Export Tools": "Werkzeuge exportieren", "External": "Extern", "External Models": "Externe Modelle", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Fehler beim Hinzufügen der Datei.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Fehler beim Erstellen des API-Schlüssels.", + "Failed to delete note": "", "Failed to fetch models": "Fehler beim Abrufen der Modelle", + "Failed to load file content.": "", "Failed to read clipboard contents": "Fehler beim Abruf der Zwischenablage", "Failed to save connections": "", "Failed to save models configuration": "Fehler beim Speichern der Modellkonfiguration", @@ -539,12 +571,11 @@ "Filter is now globally enabled": "Filter ist jetzt global aktiviert", "Filters": "Filter", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Fingerabdruck-Spoofing erkannt: Initialen können nicht als Avatar verwendet werden. Standard-Avatar wird verwendet.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "Firecrawl API Basis-URL", + "Firecrawl API Key": "Firecrawl API-Schlüssel", "Fluidly stream large external response chunks": "Nahtlose Übertragung großer externer Antwortabschnitte", "Focus chat input": "Chat-Eingabe fokussieren", "Folder deleted successfully": "Ordner erfolgreich gelöscht", - "Folder name cannot be empty": "Ordnername darf nicht leer sein", "Folder name cannot be empty.": "Ordnername darf nicht leer sein.", "Folder name updated successfully": "Ordnername erfolgreich aktualisiert", "Followed instructions perfectly": "Anweisungen perfekt befolgt", @@ -565,17 +596,18 @@ "Function Name": "Funktionsname", "Function updated successfully": "Funktion erfolgreich aktualisiert", "Functions": "Funktionen", - "Functions allow arbitrary code execution": "Funktionen ermöglichen die Ausführung beliebigen Codes", "Functions allow arbitrary code execution.": "Funktionen ermöglichen die Ausführung beliebigen Codes.", "Functions imported successfully": "Funktionen erfolgreich importiert", "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", + "Gemini API Config": "Gemini API-Konfiguration", + "Gemini API Key is required.": "Gemini API-Schlüssel ist erforderlich.", "General": "Allgemein", + "Generate": "", "Generate an image": "Bild erzeugen", "Generate Image": "Bild erzeugen", "Generate prompt pair": "", "Generating search query": "Suchanfrage wird erstellt", + "Generating...": "", "Get started": "Loslegen", "Get started with {{WEBUI_NAME}}": "Loslegen mit {{WEBUI_NAME}}", "Global": "Global", @@ -597,7 +629,7 @@ "Hex Color": "Hex-Farbe", "Hex Color - Leave empty for default color": "Hex-Farbe - Leer lassen für Standardfarbe", "Hide": "Verbergen", - "Hide Model": "", + "Hide Model": "Modell verstecken", "Home": "", "Host": "Host", "How can I help you today?": "Wie kann ich Ihnen heute helfen?", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Konfiguration aus JSON-Datei importieren", "Import Functions": "Funktionen importieren", "Import Models": "Modelle importieren", + "Import Notes": "", "Import Presets": "Voreinstellungen importieren", "Import Prompts": "Prompts importieren", "Import Tools": "Werkzeuge importieren", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Spracherkennung direkt absenden", "Integration": "", "Interface": "Oberfläche", + "Invalid file content": "", "Invalid file format.": "Ungültiges Dateiformat.", "Invalid JSON schema": "", "Invalid Tag": "Ungültiger Tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Pipelines verwalten", "Manage Tool Servers": "", "March": "März", + "Max Speakers": "", "Max Tokens (num_predict)": "Maximale Tokenanzahl (num_predict)", "Max Upload Count": "Maximale Anzahl der Uploads", "Max Upload Size": "Maximale Uploadgröße", @@ -718,22 +753,26 @@ "Memory deleted successfully": "Erinnerung erfolgreich gelöscht", "Memory updated successfully": "Erinnerung erfolgreich aktualisiert", "Merge Responses": "Antworten zusammenführen", + "Merged Response": "Zusammengeführte Antwort", "Message rating should be enabled to use this feature": "Antwortbewertung muss aktiviert sein, um diese Funktion zu verwenden", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Nachrichten, die Sie nach der Erstellung Ihres Links senden, werden nicht geteilt. Nutzer mit der URL können den freigegebenen Chat einsehen.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", "Mistral OCR": "", - "Mistral OCR API Key required.": "", + "Mistral OCR API Key required.": "Mistral OCR API-Schlüssel erforderlich.", "Model": "Modell", "Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.", "Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.", "Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden", "Model {{modelName}} is not vision capable": "Das Modell {{modelName}} ist nicht für die Bildverarbeitung geeignet", "Model {{name}} is now {{status}}": "Modell {{name}} ist jetzt {{status}}", - "Model {{name}} is now hidden": "", - "Model {{name}} is now visible": "", + "Model {{name}} is now hidden": "Modell {{name}} ist jetzt versteckt.", + "Model {{name}} is now visible": "Modell {{name}} ist jetzt sichtbar.", "Model accepts image inputs": "Modell akzeptiert Bildeingaben", "Model created successfully!": "Modell erfolgreich erstellt!", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modell-Dateisystempfad erkannt. Modellkurzname ist für das Update erforderlich, Fortsetzung nicht möglich.", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API-Schlüssel", "more": "mehr", "More": "Mehr", + "My Notes": "", "Name": "Name", "Name your knowledge base": "Benennen Sie Ihren Wissensspeicher", "Native": "Nativ", "New Chat": "Neuer Chat", "New Folder": "Neuer Ordner", + "New Note": "", "New Password": "Neues Passwort", "new-channel": "neuer-kanal", + "No content": "", "No content found": "Kein Inhalt gefunden", + "No content found in file.": "", "No content to speak": "Kein Inhalt zum Vorlesen", "No distance available": "Keine Distanz verfügbar", "No feedbacks found": "Kein Feedback gefunden", "No file selected": "Keine Datei ausgewählt", - "No files found.": "Keine Dateien gefunden.", "No groups with access, add a group to grant access": "Keine Gruppen mit Zugriff, fügen Sie eine Gruppe hinzu, um Zugriff zu gewähren", "No HTML, CSS, or JavaScript content found.": "Keine HTML-, CSS- oder JavaScript-Inhalte gefunden.", "No inference engine with management support found": "Keine Inferenz-Engine mit Management-Unterstützung gefunden", @@ -774,6 +816,7 @@ "No model IDs": "Keine Modell-IDs", "No models found": "Keine Modelle gefunden", "No models selected": "Keine Modelle ausgewählt", + "No Notes": "", "No results found": "Keine Ergebnisse gefunden", "No search query generated": "Keine Suchanfrage generiert", "No source available": "Keine Quelle verfügbar", @@ -781,7 +824,8 @@ "No valves to update": "Keine Valves zum Aktualisieren", "None": "Nichts", "Not factually correct": "Nicht sachlich korrekt", - "Not helpful": "Nich hilfreich", + "Not helpful": "Nicht hilfreich", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Hinweis: Wenn Sie eine Mindestpunktzahl festlegen, werden in der Suche nur Dokumente mit einer Punktzahl größer oder gleich der Mindestpunktzahl zurückgegeben.", "Notes": "Notizen", "Notification Sound": "Benachrichtigungston", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Nur alphanumerische Zeichen und Bindestriche sind erlaubt", "Only alphanumeric characters and hyphens are allowed in the command string.": "In der Befehlszeichenfolge sind nur alphanumerische Zeichen und Bindestriche erlaubt.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Nur Sammlungen können bearbeitet werden. Erstellen Sie eine neue Wissensbasis, um Dokumente zu bearbeiten/hinzuzufügen.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Nur ausgewählte Benutzer und Gruppen mit Berechtigung können darauf zugreifen", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Hoppla! Es scheint, dass die URL ungültig ist. Bitte überprüfen Sie diese und versuchen Sie es erneut.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Hoppla! Es werden noch Dateien hochgeladen. Bitte warten Sie, bis der Upload abgeschlossen ist.", @@ -822,7 +867,7 @@ "OpenAI API Key is required.": "OpenAI-API-Schlüssel erforderlich.", "OpenAI API settings updated": "OpenAI-API-Einstellungen aktualisiert", "OpenAI URL/Key required.": "OpenAI-URL/Schlüssel erforderlich.", - "openapi.json Path": "", + "openapi.json Path": "openapi.json Pfad", "or": "oder", "Organize your users": "Organisieren Sie Ihre Benutzer", "Other": "Andere", @@ -839,7 +884,7 @@ "Permission denied when accessing microphone": "Zugriff auf das Mikrofon verweigert", "Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}", "Permissions": "Berechtigungen", - "Perplexity API Key": "", + "Perplexity API Key": "Perplexity API-Schlüssel", "Personalization": "Personalisierung", "Pin": "Anheften", "Pinned": "Angeheftet", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Pipelines nicht erkannt", "Pipelines Valves": "Pipeline Valves", + "Plain text (.md)": "", "Plain text (.txt)": "Nur Text (.txt)", "Playground": "Testumgebung", "Playwright Timeout (ms)": "", @@ -856,8 +902,8 @@ "Please carefully review the following warnings:": "Bitte überprüfen Sie die folgenden Warnungen sorgfältig:", "Please do not close the settings page while loading the model.": "Bitte schließen die Einstellungen-Seite nicht, während das Modell lädt.", "Please enter a prompt": "Bitte geben Sie einen Prompt ein", - "Please enter a valid path": "", - "Please enter a valid URL": "", + "Please enter a valid path": "Bitte geben Sie einen gültigen Pfad ein", + "Please enter a valid URL": "Bitte geben Sie eine gültige URL ein", "Please fill in all fields.": "Bitte füllen Sie alle Felder aus.", "Please select a model first.": "Bitte wählen Sie zuerst ein Modell aus.", "Please select a model.": "Bitte wählen Sie ein Modell aus.", @@ -891,6 +937,7 @@ "Read": "Lesen", "Read Aloud": "Vorlesen", "Reasoning Effort": "Schlussfolgerungsaufwand", + "Record": "", "Record voice": "Stimme aufnehmen", "Redirecting you to Open WebUI Community": "Sie werden zur OpenWebUI-Community weitergeleitet", "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.": "", @@ -898,11 +945,11 @@ "References from": "Referenzen aus", "Refused when it shouldn't have": "Abgelehnt, obwohl es nicht hätte abgelehnt werden sollen", "Regenerate": "Neu generieren", - "Reindex": "", + "Reindex": "Neu indexieren", "Reindex Knowledge Base Vectors": "", "Release Notes": "Veröffentlichungshinweise", "Relevance": "Relevanz", - "Relevance Threshold": "", + "Relevance Threshold": "Relevanzschwelle", "Remove": "Entfernen", "Remove Model": "Modell entfernen", "Rename": "Umbenennen", @@ -939,7 +986,7 @@ "Save Tag": "Tag speichern", "Saved": "Gespeichert", "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": "Das direkte Speichern von Chats im Browser-Speicher wird nicht mehr unterstützt. Bitte nehmen Sie einen Moment Zeit, um Ihre Chats zu exportieren und zu löschen, indem Sie auf die Schaltfläche unten klicken. Keine Sorge, Sie können Ihre Chats problemlos über das Backend wieder importieren.", - "Scroll to bottom when switching between branches": "Beim Wechsel zwischen Branches nach unten scrollen", + "Scroll On Branch Change": "", "Search": "Suchen", "Search a model": "Modell suchen", "Search Base": "Suchbasis", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "{{count}} Websites durchsucht", "Searching \"{{searchQuery}}\"": "Suche nach \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Suche im Wissen nach \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng-Abfrage-URL", "See readme.md for instructions": "Anleitung in readme.md anzeigen", "See what's new": "Entdecken Sie die Neuigkeiten", @@ -1016,11 +1064,11 @@ "Share": "Teilen", "Share Chat": "Chat teilen", "Share to Open WebUI Community": "Mit OpenWebUI Community teilen", - "Sharing Permissions": "", + "Sharing Permissions": "Berechtigungen teilen", "Show": "Anzeigen", "Show \"What's New\" modal on login": "\"Was gibt's Neues\"-Modal beim Anmelden anzeigen", "Show Admin Details in Account Pending Overlay": "Admin-Details im Account-Pending-Overlay anzeigen", - "Show Model": "", + "Show Model": "Modell anzeigen", "Show shortcuts": "Verknüpfungen anzeigen", "Show your support!": "Zeigen Sie Ihre Unterstützung!", "Showcased creativity": "Kreativität gezeigt", @@ -1140,7 +1188,6 @@ "Tools Access": "Werkzeugzugriff", "Tools are a function calling system with arbitrary code execution": "Wekzeuge sind ein Funktionssystem mit beliebiger Codeausführung", "Tools Function Calling Prompt": "Prompt für Funktionssystemaufrufe", - "Tools have a function calling system that allows arbitrary code execution": "Werkezuge verfügen über ein Funktionssystem, das die Ausführung beliebigen Codes ermöglicht", "Tools have a function calling system that allows arbitrary code execution.": "Werkzeuge verfügen über ein Funktionssystem, das die Ausführung beliebigen Codes ermöglicht.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Lösen", "Unravel secrets": "Geheimnisse lüften", "Untagged": "Ungetaggt", + "Untitled": "", "Update": "Aktualisieren", "Update and Copy Link": "Aktualisieren und Link kopieren", "Update for the latest features and improvements.": "Aktualisieren Sie für die neuesten Funktionen und Verbesserungen.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Upgrade auf einen lizenzierten Plan für erweiterte Funktionen wie individuelles Design, Branding und dedizierten Support.", "Upload": "Hochladen", "Upload a GGUF model": "GGUF-Model hochladen", + "Upload Audio": "", "Upload directory": "Upload-Verzeichnis", "Upload files": "Dateien hochladen", "Upload Files": "Datei(en) hochladen", @@ -1191,7 +1240,7 @@ "user": "Benutzer", "User": "Benutzer", "User location successfully retrieved.": "Benutzerstandort erfolgreich ermittelt.", - "User Webhooks": "", + "User Webhooks": "Benutzer Webhooks", "Username": "Benutzername", "Users": "Benutzer", "Using the default arena model with all models. Click the plus button to add custom models.": "Verwendung des Standard-Arena-Modells mit allen Modellen. Klicken Sie auf die Plus-Schaltfläche, um benutzerdefinierte Modelle hinzuzufügen.", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.", "Write something...": "Schreiben Sie etwas...", "Write your model template content here": "Schreiben Sie hier Ihren Modellvorlageninhalt", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Gestern", "You": "Sie", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Sie können nur mit maximal {{maxCount}} Datei(en) gleichzeitig chatten.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Personalisieren Sie Interaktionen mit LLMs, indem Sie über die Schaltfläche \"Verwalten\" Erinnerungen hinzufügen.", "You cannot upload an empty file.": "Sie können keine leere Datei hochladen.", - "You do not have permission to upload files": "Sie haben keine Berechtigung, Dateien hochzuladen", "You do not have permission to upload files.": "Sie haben keine Berechtigung zum Hochladen von Dateien.", "You have no archived conversations.": "Du hast keine archivierten Chats.", "You have shared this chat": "Sie haben diesen Chat geteilt", diff --git a/src/lib/i18n/locales/dg-DG/translation.json b/src/lib/i18n/locales/dg-DG/translation.json index af4bad294..92b7866bc 100644 --- a/src/lib/i18n/locales/dg-DG/translation.json +++ b/src/lib/i18n/locales/dg-DG/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(such e.g. `sh webui.sh --api`)", "(latest)": "(much latest)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Allow Delete Chats", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "such assistant", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Such certainty?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "", "Banners": "", "Base Model (From)": "", + "Base URL": "", "Batch Size (num_batch)": "", "before": "", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Cancel", "Capabilities": "", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Change Password", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "", "Create new secret key": "", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Created at", "Created At": "", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "Download Database", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Drop files here to add to conversation", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Much time units are 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Enable New Bark Ups", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Enter {{role}} message here": "Enter {{role}} bork here", "Enter a detail about yourself for your LLMs to recall": "", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Enter Size of Chunk", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Enter model doge tag (e.g. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Enter Number of Steps (e.g. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Enter URL (e.g. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Enter Your Dogemail", "Enter Your Full Name": "Enter Your Full Wow", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Enter Your Barkword", "Enter Your Role": "", @@ -480,6 +504,8 @@ "Error": "", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Failed to read clipboard borks", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Fluidly wow big chunks", "Focus chat input": "Focus chat bork", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Woweral", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Import Promptos", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "", "Manage Tool Servers": "", "March": "", + "Max Speakers": "", "Max Tokens (num_predict)": "", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "", + "My Notes": "", "Name": "Name", "Name your knowledge base": "", "Native": "", "New Chat": "New Bark", "New Folder": "", + "New Note": "", "New Password": "New Barkword", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "", "No search query generated": "", "No source available": "No source available", @@ -782,6 +825,7 @@ "None": "", "Not factually correct": "", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Only wow characters and hyphens are allowed in the bork string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oops! Looks like the URL is invalid. Please double-check and try again.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "Plain text (.txt)", "Playground": "Playground", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "", "Reasoning Effort": "", + "Record": "", "Record voice": "Record Bark", "Redirecting you to Open WebUI Community": "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Saving chat logs in browser storage not support anymore. Pls download and delete your chat logs by click button below. Much easy re-import to backend through", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Search very search", "Search a model": "", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "", "See readme.md for instructions": "See readme.md for instructions wow", "See what's new": "See what's new so amaze", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K very top", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "Upload a GGUF model very upload", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Write a summary in 50 words that summarizes [topic or keyword]. Much summarize.", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "", "You": "", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "", "You have shared this chat": "", diff --git a/src/lib/i18n/locales/el-GR/translation.json b/src/lib/i18n/locales/el-GR/translation.json index f0fb1db9f..40a421710 100644 --- a/src/lib/i18n/locales/el-GR/translation.json +++ b/src/lib/i18n/locales/el-GR/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(π.χ. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(π.χ. `sh webui.sh --api`)", "(latest)": "(τελευταίο)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Επιτρέπεται η διαγραφή συνομιλίας", "Allow Chat Deletion": "Επιτρέπεται η Διαγραφή Συνομιλίας", "Allow Chat Edit": "Επιτρέπεται η Επεξεργασία Συνομιλίας", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Επιτρέπεται η Αποστολή Αρχείων", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Επιτρέπονται μη τοπικές φωνές", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Καταπληκτικό", "an assistant": "ένας βοηθός", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "Είστε σίγουροι ότι θέλετε να απο-αρχειοθετήσετε όλες τις αρχειοθετημένες συνομιλίες;", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Είστε σίγουροι;", "Arena Models": "Μοντέλα Arena", "Artifacts": "Αρχεία", @@ -135,6 +140,7 @@ "Bad Response": "Κακή Απάντηση", "Banners": "Προβολές", "Base Model (From)": "Βασικό Μοντέλο (Από)", + "Base URL": "", "Batch Size (num_batch)": "Μέγεθος Παρτίδας (num_batch)", "before": "πριν", "Being lazy": "Τρώλακας", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Κλειδί Συνδρομής Bing Search V7", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Κλειδί API Brave Search", "By {{name}}": "Από {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Ακύρωση", "Capabilities": "Δυνατότητες", "Capture": "", + "Capture Audio": "", "Certificate Path": "Διαδρομή Πιστοποιητικού", "Change Password": "Αλλαγή Κωδικού", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Δημιουργία Γνώσης", "Create new key": "Δημιουργία νέου κλειδιού", "Create new secret key": "Δημιουργία νέου μυστικού κλειδιού", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Δημιουργήθηκε στις", "Created At": "Δημιουργήθηκε στις", "Created by": "Δημιουργήθηκε από", @@ -299,6 +309,7 @@ "Delete function?": "Διαγραφή λειτουργίας;", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Διαγραφή προτροπής;", "delete this link": "διαγραφή αυτού του συνδέσμου", "Delete tool?": "Διαγραφή εργαλείου;", @@ -354,7 +365,7 @@ "Download Database": "Λήψη Βάσης Δεδομένων", "Drag and drop a file to upload or select a file to view": "Σύρετε και αφήστε ένα αρχείο για να το ανεβάσετε ή επιλέξτε ένα αρχείο για να το δείτε", "Draw": "Σχεδίαση", - "Drop any files here to add to the conversation": "Αφήστε οποιαδήποτε αρχεία εδώ για να προστεθούν στη συνομιλία", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "π.χ. '30s','10m'. Οι έγκυρες μονάδες χρόνου είναι 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "π.χ. my_filter", "e.g. my_tools": "π.χ. my_tools", "e.g. Tools for performing various operations": "π.χ. Εργαλεία για την εκτέλεση διάφορων λειτουργιών", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Επεξεργασία", "Edit Arena Model": "Επεξεργασία Μοντέλου Arena", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Ενεργοποίηση Νέων Εγγραφών", "Enabled": "Ενεργοποιημένο", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Βεβαιωθείτε ότι το αρχείο CSV σας περιλαμβάνει 4 στήλες με αυτή τη σειρά: Όνομα, Email, Κωδικός, Ρόλος.", "Enter {{role}} message here": "Εισάγετε το μήνυμα {{role}} εδώ", "Enter a detail about yourself for your LLMs to recall": "Εισάγετε μια λεπτομέρεια για τον εαυτό σας ώστε τα LLMs να την ανακαλούν", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Εισάγετε το Μέγεθος Τμημάτων", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Εισάγετε την περιγραφή", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Εισάγετε το Github Raw URL", @@ -431,6 +450,7 @@ "Enter Model ID": "Εισάγετε το ID Μοντέλου", "Enter model tag (e.g. {{modelTag}})": "Εισάγετε την ετικέτα μοντέλου (π.χ. {{modelTag}})", "Enter Mojeek Search API Key": "Εισάγετε το Κλειδί API Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Εισάγετε τον Αριθμό Βημάτων (π.χ. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Εισάγετε το URL (π.χ. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Εισάγετε το URL (π.χ. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Εισάγετε το Email σας", "Enter Your Full Name": "Εισάγετε το Πλήρες Όνομά σας", "Enter your message": "Εισάγετε το μήνυμά σας", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Εισάγετε τον Κωδικό σας", "Enter Your Role": "Εισάγετε τον Ρόλο σας", @@ -480,6 +504,8 @@ "Error": "Σφάλμα", "ERROR": "ΣΦΑΛΜΑ", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Αξιολογήσεις", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Εξαγωγή Εργαλείων", "External": "", "External Models": "Εξωτερικά Μοντέλα", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Αποτυχία προσθήκης αρχείου.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Αποτυχία δημιουργίας Κλειδιού API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Αποτυχία ανάγνωσης περιεχομένων πρόχειρου", "Failed to save connections": "", "Failed to save models configuration": "Αποτυχία αποθήκευσης ρυθμίσεων μοντέλων", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Ροή μεγάλων εξωτερικών τμημάτων απάντησης ομαλά", "Focus chat input": "Εστίαση στο πεδίο συνομιλίας", "Folder deleted successfully": "Ο φάκελος διαγράφηκε με επιτυχία", - "Folder name cannot be empty": "Το όνομα του φακέλου δεν μπορεί να είναι κενό", "Folder name cannot be empty.": "Το όνομα του φακέλου δεν μπορεί να είναι κενό.", "Folder name updated successfully": "Το όνομα του φακέλου ενημερώθηκε με επιτυχία", "Followed instructions perfectly": "Ακολούθησε τις οδηγίες τέλεια", @@ -565,17 +596,18 @@ "Function Name": "Όνομα Λειτουργίας", "Function updated successfully": "Η λειτουργία ενημερώθηκε με επιτυχία", "Functions": "Λειτουργίες", - "Functions allow arbitrary code execution": "Οι λειτουργίες επιτρέπουν την εκτέλεση αυθαίρετου κώδικα", "Functions allow arbitrary code execution.": "Οι λειτουργίες επιτρέπουν την εκτέλεση αυθαίρετου κώδικα.", "Functions imported successfully": "Οι λειτουργίες εισήχθησαν με επιτυχία", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Γενικά", + "Generate": "", "Generate an image": "", "Generate Image": "Δημιουργία Εικόνας", "Generate prompt pair": "", "Generating search query": "Γενιά αναζήτησης ερώτησης", + "Generating...": "", "Get started": "Ξεκινήστε", "Get started with {{WEBUI_NAME}}": "Ξεκινήστε με {{WEBUI_NAME}}", "Global": "Καθολικό", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Εισαγωγή Διαμόρφωσης από Αρχείο JSON", "Import Functions": "Εισαγωγή Λειτουργιών", "Import Models": "Εισαγωγή Μοντέλων", + "Import Notes": "", "Import Presets": "Εισαγωγή Προκαθορισμένων", "Import Prompts": "Εισαγωγή Προτροπών", "Import Tools": "Εισαγωγή Εργαλείων", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Άμεση Αυτόματη Αποστολή μετά τη μεταγραφή φωνής", "Integration": "", "Interface": "Διεπαφή", + "Invalid file content": "", "Invalid file format.": "Μη έγκυρη μορφή αρχείου.", "Invalid JSON schema": "", "Invalid Tag": "Μη έγκυρη Ετικέτα", @@ -706,6 +740,7 @@ "Manage Pipelines": "Διαχείριση Καναλιών", "Manage Tool Servers": "", "March": "Μάρτιος", + "Max Speakers": "", "Max Tokens (num_predict)": "Μέγιστος Αριθμός Tokens (num_predict)", "Max Upload Count": "Μέγιστος Αριθμός Ανεβάσματος", "Max Upload Size": "Μέγιστο Μέγεθος Αρχείου", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Η μνήμη διαγράφηκε με επιτυχία", "Memory updated successfully": "Η μνήμη ενημερώθηκε με επιτυχία", "Merge Responses": "Συγχώνευση Απαντήσεων", + "Merged Response": "Συγχωνευμένη απάντηση", "Message rating should be enabled to use this feature": "Η αξιολόγηση μηνυμάτων πρέπει να είναι ενεργοποιημένη για να χρησιμοποιήσετε αυτή τη λειτουργία", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Τα μηνύματα που στέλνετε μετά τη δημιουργία του συνδέσμου σας δεν θα κοινοποιηθούν. Οι χρήστες με το URL θα μπορούν να δουν τη συνομιλία που μοιραστήκατε.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Κλειδί API Mojeek Search", "more": "περισσότερα", "More": "Περισσότερα", + "My Notes": "", "Name": "Όνομα", "Name your knowledge base": "Ονομάστε τη βάση γνώσης σας", "Native": "", "New Chat": "Νέα Συνομιλία", "New Folder": "", + "New Note": "", "New Password": "Νέος Κωδικός", "new-channel": "", + "No content": "", "No content found": "Δεν βρέθηκε περιεχόμενο", + "No content found in file.": "", "No content to speak": "Δεν υπάρχει περιεχόμενο για ανάγνωση", "No distance available": "Δεν υπάρχει διαθέσιμη απόσταση", "No feedbacks found": "Δεν βρέθηκαν ανατροφοδοτήσεις", "No file selected": "Δεν έχει επιλεγεί αρχείο", - "No files found.": "Δεν βρέθηκαν αρχεία.", "No groups with access, add a group to grant access": "Δεν υπάρχουν ομάδες με πρόσβαση, προσθέστε μια ομάδα για να χορηγήσετε πρόσβαση", "No HTML, CSS, or JavaScript content found.": "Δεν βρέθηκε περιεχόμενο HTML, CSS ή JavaScript.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "Δεν υπάρχουν IDs μοντέλων", "No models found": "Δεν βρέθηκαν μοντέλα", "No models selected": "Δεν έχουν επιλεγεί μοντέλα", + "No Notes": "", "No results found": "Δεν βρέθηκαν αποτελέσματα", "No search query generated": "Δεν δημιουργήθηκε ερώτηση αναζήτησης", "No source available": "Δεν υπάρχει διαθέσιμη πηγή", @@ -782,6 +825,7 @@ "None": "Κανένα", "Not factually correct": "Δεν είναι γεγονότα", "Not helpful": "Δεν είναι χρήσιμο", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Σημείωση: Αν ορίσετε ένα ελάχιστο score, η αναζήτηση θα επιστρέψει μόνο έγγραφα με score μεγαλύτερο ή ίσο με το ελάχιστο score.", "Notes": "Σημειώσεις", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Επιτρέπονται μόνο αλφαριθμητικοί χαρακτήρες και παύλες", "Only alphanumeric characters and hyphens are allowed in the command string.": "Επιτρέπονται μόνο αλφαριθμητικοί χαρακτήρες και παύλες στο string της εντολής.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Μόνο συλλογές μπορούν να επεξεργαστούν, δημιουργήστε μια νέα βάση γνώσης για επεξεργασία/προσθήκη εγγράφων.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Μόνο επιλεγμένοι χρήστες και ομάδες με άδεια μπορούν να έχουν πρόσβαση", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ωχ! Φαίνεται ότι το URL είναι μη έγκυρο. Παρακαλώ ελέγξτε ξανά και δοκιμάστε.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ωχ! Υπάρχουν αρχεία που εξακολουθούν να ανεβαίνουν. Παρακαλώ περιμένετε να ολοκληρωθεί η μεταφόρτωση.", @@ -849,6 +894,7 @@ "Pipelines": "Συναρτήσεις", "Pipelines Not Detected": "Συναρτήσεις Δεν Εντοπίστηκαν", "Pipelines Valves": "Βαλβίδες Συναρτήσεων", + "Plain text (.md)": "", "Plain text (.txt)": "Απλό κείμενο (.txt)", "Playground": "Γήπεδο παιχνιδιών", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Ανάγνωση Φωναχτά", "Reasoning Effort": "", + "Record": "", "Record voice": "Εγγραφή φωνής", "Redirecting you to Open WebUI Community": "Μετακατεύθυνση στην Κοινότητα OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Αποθήκευση Ετικέτας", "Saved": "Αποθηκευμένο", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Η αποθήκευση των αρχείων συνομιλίας απευθείας στη μνήμη αποθήκευσης του προγράμματος περιήγησής σας δεν υποστηρίζεται πλέον. Παρακαλώ αφιερώστε λίγο χρόνο να κατεβάσετε και να διαγράψετε τα αρχεία συνομιλίας σας κάνοντας κλικ στο κουμπί παρακάτω. Μην ανησυχείτε, μπορείτε εύκολα να επαναφέρετε τα αρχεία συνομιλιών σας στο backend μέσω", - "Scroll to bottom when switching between branches": "Κύλιση προς τα κάτω όταν αλλάζετε μεταξύ κλάδων", + "Scroll On Branch Change": "", "Search": "Αναζήτηση", "Search a model": "Αναζήτηση μοντέλου", "Search Base": "Βάση Αναζήτησης", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Αναζήτηση \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Αναζήτηση Γνώσης για \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL Ερώτησης Searxng", "See readme.md for instructions": "Δείτε readme.md για οδηγίες", "See what's new": "Δείτε τι νέο υπάρχει", @@ -1140,7 +1188,6 @@ "Tools Access": "Πρόσβαση Εργαλείων", "Tools are a function calling system with arbitrary code execution": "Τα εργαλεία είναι ένα σύστημα κλήσης λειτουργιών με αυθαίρετη εκτέλεση κώδικα", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Τα εργαλεία διαθέτουν ένα σύστημα κλήσης λειτουργιών που επιτρέπει την αυθαίρετη εκτέλεση κώδικα", "Tools have a function calling system that allows arbitrary code execution.": "Τα εργαλεία διαθέτουν ένα σύστημα κλήσης λειτουργιών που επιτρέπει την αυθαίρετη εκτέλεση κώδικα.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Αφαίρεση καρφίτσματος", "Unravel secrets": "Ξετυλίξτε μυστικά", "Untagged": "Χωρίς Ετικέτες", + "Untitled": "", "Update": "Ενημέρωση", "Update and Copy Link": "Ενημέρωση και Αντιγραφή Συνδέσμου", "Update for the latest features and improvements.": "Ενημέρωση για τις τελευταίες λειτουργίες και βελτιώσεις.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Ανέβασμα", "Upload a GGUF model": "Ανέβασμα μοντέλου GGUF", + "Upload Audio": "", "Upload directory": "Κατάλογος ανεβάσματος", "Upload files": "Ανέβασμα αρχείων", "Upload Files": "Ανέβασμα Αρχείων", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Γράψτε μια περίληψη σε 50 λέξεις που συνοψίζει [θέμα ή λέξη-κλειδί].", "Write something...": "Γράψτε κάτι...", "Write your model template content here": "Γράψτε το περιεχόμενο του προτύπου μοντέλου σας εδώ", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Εχθές", "You": "Εσείς", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Μπορείτε να συνομιλήσετε μόνο με μέγιστο αριθμό {{maxCount}} αρχείου(-ων) ταυτόχρονα.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Μπορείτε να προσωποποιήσετε τις αλληλεπιδράσεις σας με τα LLMs προσθέτοντας αναμνήσεις μέσω του κουμπιού 'Διαχείριση' παρακάτω, κάνοντάς τα πιο χρήσιμα και προσαρμοσμένα σε εσάς.", "You cannot upload an empty file.": "Δεν μπορείτε να ανεβάσετε ένα κενό αρχείο.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "Δεν έχετε άδεια να ανεβάσετε αρχεία.", "You have no archived conversations.": "Δεν έχετε αρχειοθετημένες συνομιλίες.", "You have shared this chat": "Έχετε μοιραστεί αυτή τη συνομιλία", diff --git a/src/lib/i18n/locales/en-GB/translation.json b/src/lib/i18n/locales/en-GB/translation.json index c541bfac3..bdb174111 100644 --- a/src/lib/i18n/locales/en-GB/translation.json +++ b/src/lib/i18n/locales/en-GB/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "", "(latest)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "", "Banners": "", "Base Model (From)": "", + "Base URL": "", "Batch Size (num_batch)": "", "before": "", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "", "Capabilities": "", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "", "Create new secret key": "", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "", "Created At": "", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Enter {{role}} message here": "", "Enter a detail about yourself for your LLMs to recall": "", @@ -409,11 +422,17 @@ "Enter Chunk Size": "", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "", "Enter URL (e.g. http://localhost:11434)": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "", "Enter Your Full Name": "", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "", "Enter Your Role": "", @@ -480,6 +504,8 @@ "Error": "", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "", "Focus chat input": "", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "", + "Import Notes": "", "Import Presets": "", "Import Prompts": "", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "", "Manage Tool Servers": "", "March": "", + "Max Speakers": "", "Max Tokens (num_predict)": "", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "", "Mirostat Eta": "", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "", + "My Notes": "", "Name": "", "Name your knowledge base": "", "Native": "", "New Chat": "", "New Folder": "", + "New Note": "", "New Password": "", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "", "No search query generated": "", "No source available": "", @@ -782,6 +825,7 @@ "None": "", "Not factually correct": "", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "", "Playground": "", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "", "Reasoning Effort": "", + "Record": "", "Record voice": "", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "", "Search a model": "", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "", "See readme.md for instructions": "", "See what's new": "", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "", "You": "", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "", "You have shared this chat": "", diff --git a/src/lib/i18n/locales/en-US/translation.json b/src/lib/i18n/locales/en-US/translation.json index c541bfac3..bdb174111 100644 --- a/src/lib/i18n/locales/en-US/translation.json +++ b/src/lib/i18n/locales/en-US/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "", "(latest)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "", "Banners": "", "Base Model (From)": "", + "Base URL": "", "Batch Size (num_batch)": "", "before": "", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "", "Capabilities": "", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "", "Create new secret key": "", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "", "Created At": "", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Enter {{role}} message here": "", "Enter a detail about yourself for your LLMs to recall": "", @@ -409,11 +422,17 @@ "Enter Chunk Size": "", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "", "Enter URL (e.g. http://localhost:11434)": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "", "Enter Your Full Name": "", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "", "Enter Your Role": "", @@ -480,6 +504,8 @@ "Error": "", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "", "Focus chat input": "", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "", + "Import Notes": "", "Import Presets": "", "Import Prompts": "", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "", "Manage Tool Servers": "", "March": "", + "Max Speakers": "", "Max Tokens (num_predict)": "", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "", "Mirostat Eta": "", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "", + "My Notes": "", "Name": "", "Name your knowledge base": "", "Native": "", "New Chat": "", "New Folder": "", + "New Note": "", "New Password": "", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "", "No search query generated": "", "No source available": "", @@ -782,6 +825,7 @@ "None": "", "Not factually correct": "", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "", "Playground": "", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "", "Reasoning Effort": "", + "Record": "", "Record voice": "", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "", "Search a model": "", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "", "See readme.md for instructions": "", "See what's new": "", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "", "You": "", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "", "You have shared this chat": "", diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json index 8e789bf2e..db1aaa440 100644 --- a/src/lib/i18n/locales/es-ES/translation.json +++ b/src/lib/i18n/locales/es-ES/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(p.ej. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(p.ej. `sh webui.sh --api`)", "(latest)": "(último)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -14,29 +15,29 @@ "*Prompt node ID(s) are required for image generation": "Los ID de nodo son requeridos para la generación de imágenes", "A new version (v{{LATEST_VERSION}}) is now available.": "Nueva versión (v{{LATEST_VERSION}}) disponible.", "A task model is used when performing tasks such as generating titles for chats and web search queries": "El modelo de tareas realiza tareas como la generación de títulos para chats y consultas de búsqueda web", - "a user": "un/a usuari@", + "a user": "un usuario", "About": "Acerca de", "Accept autocomplete generation / Jump to prompt variable": "Aceptar generación de autocompletado / Saltar a indicador variable", "Access": "Acceso", "Access Control": "Control de Acceso", - "Accessible to all users": "Accesible para todos l@s usuari@s", + "Accessible to all users": "Accesible para todos los usuarios", "Account": "Cuenta", "Account Activation Pending": "Activación de cuenta Pendiente", "Accurate information": "Información precisa", "Actions": "Acciones", "Activate": "Activar", "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Activar este comando escribiendo \"/{{COMMAND}}\" en el chat", - "Active Users": "Usuari@s activos", + "Active Users": "Usuarios activos", "Add": "Añadir", "Add a model ID": "Añadir un ID de modelo", "Add a short description about what this model does": "Añadir una breve descripción sobre lo que hace este modelo", "Add a tag": "Añadir una etiqueta", - "Add Arena Model": "Añadir un modelo a la Arena", + "Add Arena Model": "Añadir modelo a la Arena", "Add Connection": "Añadir Conexión", "Add Content": "Añadir Contenido", "Add content here": "Añadir contenido aquí", "Add custom prompt": "Añadir un indicador personalizado", - "Add Files": "Añadir Ficheros", + "Add Files": "Añadir Archivos", "Add Group": "Añadir Grupo", "Add Memory": "Añadir Memoria", "Add Model": "Añadir Modelo", @@ -44,31 +45,33 @@ "Add Tag": "Añadir etiqueta", "Add Tags": "Añadir etiquetas", "Add text content": "Añade contenido de texto", - "Add User": "Añadir Usuari@", - "Add User Group": "Añadir Grupo de Usuari@", - "Adjusting these settings will apply changes universally to all users.": "El ajuste de estas opciones se aplicará globalmente a todos l@s usuari@s.", + "Add User": "Añadir Usuario", + "Add User Group": "Añadir grupo de usuarios", + "Adjusting these settings will apply changes universally to all users.": "El ajuste de estas opciones se aplicará globalmente a todos los usuarios.", "admin": "admin", "Admin": "Admin", "Admin Panel": "Administración", "Admin Settings": "Ajustes de Admin", - "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Los Admins tienen acceso a todas las herramientas en todo momento; l@s usuari@s necesitan, en el área de trabajo, que los modelos tengan asignadas las herramentas.", + "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Los administradores tienen acceso a todas las herramientas en todo momento; los usuarios necesitan que los modelos tengan asignadas las herramientas en el area de trabajo.", "Advanced Parameters": "Parámetros Avanzados", - "Advanced Params": "Param. Avanz.", + "Advanced Params": "Parámetros Avanzados", "All": "Todos", "All Documents": "Todos los Documentos", "All models deleted successfully": "Todos los modelos borrados correctamnete", - "Allow Call": "", + "Allow Call": "Permitir Llamada", "Allow Chat Controls": "Permitir Controles del Chat", "Allow Chat Delete": "Permitir Borrar Chat", "Allow Chat Deletion": "Permitir Borrado de Chat", "Allow Chat Edit": "Pemritir Editar Chat", - "Allow File Upload": "Permitir Subida de Ficheros", + "Allow Chat Export": "", + "Allow Chat Share": "", + "Allow File Upload": "Permitir Subida de Archivos", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Permitir voces no locales", "Allow Speech to Text": "", "Allow Temporary Chat": "Permitir Chat Temporal", "Allow Text to Speech": "", - "Allow User Location": "Permitir Ubicación de Usuari@", + "Allow User Location": "Permitir Ubicación de Usuario", "Allow Voice Interruption in Call": "Permitir Interrupción de Voz en Llamada", "Allowed Endpoints": "Endpoints Permitidos", "Already have an account?": "¿Ya tienes una cuenta?", @@ -76,6 +79,7 @@ "Always": "Siempre", "Always Collapse Code Blocks": "Plegar Siempre los Bloques de Código", "Always Expand Details": "Expandir Siempre Detalles", + "Always Play Notification Sound": "", "Amazing": "Emocionante", "an assistant": "un asistente", "Analyzed": "Analizado", @@ -91,34 +95,35 @@ "API keys": "Claves API", "Application DN": "Aplicacion DN", "Application DN Password": "Contraseña Aplicacion DN", - "applies to all users with the \"user\" role": "se aplica a todos l@s usuari@s con el rol \"user\" ", + "applies to all users with the \"user\" role": "se aplica a todos los usuarios con el rol \"user\" ", "April": "Abril", "Archive": "Archivar", "Archive All Chats": "Archivar Todos los Chats", "Archived Chats": "Chats archivados", "archived-chat-export": "exportar chats archivados", - "Are you sure you want to clear all memories? This action cannot be undone.": "¿estas segur@ que quieres borrar todas las memorias? (¡esta acción NO se puede deshacer!)", - "Are you sure you want to delete this channel?": "¿Estás segur@ de que quieres eliminar este canal?", - "Are you sure you want to delete this message?": "¿Estás segur@ de que quieres eliminar este mensaje? ", - "Are you sure you want to unarchive all archived chats?": "¿Estás segur@ de que quieres desarchivar todos los chats archivados?", - "Are you sure?": "¿Está segur@?", + "Are you sure you want to clear all memories? This action cannot be undone.": "¿Seguro que quieres borrar todas las memorias? (¡esta acción NO se puede deshacer!)", + "Are you sure you want to delete this channel?": "¿Seguro de que quieres eliminar este canal?", + "Are you sure you want to delete this message?": "¿Seguro de que quieres eliminar este mensaje? ", + "Are you sure you want to unarchive all archived chats?": "¿Seguro de que quieres desarchivar todos los chats archivados?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", + "Are you sure?": "¿Estás seguro?", "Arena Models": "Arena de Modelos", "Artifacts": "Artefactos", "Ask": "Preguntar", "Ask a question": "Haz una pregunta", "Assistant": "Asistente", - "Attach file from knowledge": "Adjuntar fichero desde el conocimiento", + "Attach file from knowledge": "Adjuntar archivo desde conocimiento", "Attention to detail": "Atención al detalle", "Attribute for Mail": "Atributo para Correo", - "Attribute for Username": "Atributo para Nombre de Usuari@", + "Attribute for Username": "Atributo para Nombre de Usuario", "Audio": "Audio", "August": "Agosto", "Auth": "Autorización", "Authenticate": "Autentificar", - "Authentication": "Autentificación", + "Authentication": "Autenticación", "Auto": "Auto", "Auto-Copy Response to Clipboard": "AutoCopiado de respuesta al Portapapeles", - "Auto-playback response": "AutoReproducir Respuesta", + "Auto-playback response": "Reproducir Respuesta automáticamente", "Autocomplete Generation": "Generación de Autocompletado", "Autocomplete Generation Input Max Length": "Max. Longitud de Entrada en Generación de Autocompletado", "Automatic1111": "AUTOMATIC1111", @@ -126,7 +131,7 @@ "AUTOMATIC1111 Base URL": "URL Base de AUTOMATIC1111", "AUTOMATIC1111 Base URL is required.": "la URL Base de AUTOMATIC1111 es necesaria.", "Available list": "Lista disponible", - "Available Tools": "", + "Available Tools": "Herramientas Disponibles", "available!": "¡disponible!", "Awful": "Horrible", "Azure AI Speech": "Voz Azure AI", @@ -135,6 +140,7 @@ "Bad Response": "Mala Respuesta", "Banners": "Banners", "Base Model (From)": "Modelo Base (desde)", + "Base URL": "", "Batch Size (num_batch)": "Tamaño de Lote (num_batch)", "before": "antes", "Being lazy": "Ser perezoso", @@ -143,28 +149,30 @@ "Bing Search V7 Subscription Key": "Clave de Suscripción de Bing Search V7", "Bocha Search API Key": "Clave API de Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Impulsando o penalizando tokens específicos para respuestas restringidas. Los valores de sesgo se limitarán entre -100 y 100 (inclusive). (Por defecto: ninguno)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Clave API de Brave Search", "By {{name}}": "Por {{name}}", "Bypass Embedding and Retrieval": "Evitar Incrustración y Recuperación", "Calendar": "Calendario", "Call": "Llamada", - "Call feature is not supported when using Web STT engine": "La característica Llamada no está soportada cuando se usa el motor Web STT", + "Call feature is not supported when using Web STT engine": "La funcionalidad de Llamada no está soportada cuando se usa el motor Web STT", "Camera": "Cámara", "Cancel": "Cancelar", "Capabilities": "Capacidades", "Capture": "Captura", + "Capture Audio": "", "Certificate Path": "Ruta a Certificado", - "Change Password": "Cambia la Contraseña", - "Channel Name": "Nombre de Canal", + "Change Password": "Cambiar Contraseña", + "Channel Name": "Nombre del Canal", "Channels": "Canal", "Character": "Carácter", "Character limit for autocomplete generation input": "Límite de caracteres de entrada de la generación de autocompletado", "Chart new frontiers": "Trazar nuevas fronteras", "Chat": "Chat", "Chat Background Image": "Imágen de Fondo del Chat", - "Chat Bubble UI": "Interface del Chat tipo Burbuja", - "Chat Controls": "Controles del chat", - "Chat direction": "Dirección del Chat", + "Chat Bubble UI": "Interface de Chat tipo Burbuja", + "Chat Controls": "Controles de chat", + "Chat direction": "Dirección de Chat", "Chat Overview": "Vista General del Chat", "Chat Permissions": "Permisos del Chat", "Chat Tags Auto-Generation": "AutoGeneración de Etiquetas de Chat", @@ -183,15 +191,15 @@ "Click here for filter guides.": "Pulsar aquí para guías de filtros", "Click here for help.": "Pulsar aquí para Ayuda.", "Click here to": "Pulsa aquí para", - "Click here to download user import template file.": "Pulsa aquí para descargar la plantilla de importación de usuari@.", - "Click here to learn more about faster-whisper and see the available models.": "Pulsa aquí para saber más sobre faster-whisper y ver modelos disponibles.", + "Click here to download user import template file.": "Pulsa aquí para descargar la plantilla para importar usuarios.", + "Click here to learn more about faster-whisper and see the available models.": "Pulsa aquí para saber más sobre faster-whisper y ver los modelos disponibles.", "Click here to see available models.": "Pulsa aquí para ver modelos disponibles.", "Click here to select": "Pulsa aquí para seleccionar", "Click here to select a csv file.": "Pulsa aquí para seleccionar un fichero de Valores Separados por Comas (.csv)", "Click here to select a py file.": "Pulsa aquí para seleccionar un fichero Python (.py)", "Click here to upload a workflow.json file.": "Pulsa aquí para subir un fichero workflow.json", "click here.": "Pulsa aquí.", - "Click on the user role button to change a user's role.": "Pulsa en el botón rol de usuari@ para cambiar su rol.", + "Click on the user role button to change a user's role.": "Pulsa en el botón rol de usuario para cambiar su rol.", "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permisos de escritura del portapapeles denegado. Por favor, comprueba la configuración de tu navegador para otorgar el permiso necesario.", "Clone": "Clonar", "Clone Chat": "Clonar Chat", @@ -200,8 +208,8 @@ "Code execution": "Ejecución de Código", "Code Execution": "Ejecución de Código", "Code Execution Engine": "Motor de Ejecución de Código", - "Code Execution Timeout": "Tiempo", - "Code formatted successfully": "Se ha formateado correctamente el código.", + "Code Execution Timeout": "Tiempo límite de espera para Ejecución de Código", + "Code formatted successfully": "El codigo se ha formateado correctamente.", "Code Interpreter": "Interprete de Código", "Code Interpreter Engine": "Motor del Interprete de Código", "Code Interpreter Prompt Template": "Plantilla del Indicador del Interprete de Código", @@ -262,6 +270,8 @@ "Create Knowledge": "Crear Conocimiento", "Create new key": "Crear Nueva Clave", "Create new secret key": "Crear Nueva Clave Secreta", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Creado en", "Created At": "Creado En", "Created by": "Creado por", @@ -287,7 +297,7 @@ "Default to 389 or 636 if TLS is enabled": "Predeterminado a 389, o 636 si TLS está habilitado", "Default to ALL": "Predeterminado a TODOS", "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "Por defecto está predeterminada una segmentación de la recuperación para una extracción de contenido centrado y relevante, recomendado para la mayoría de los casos.", - "Default User Role": "Rol Predeterminado de l@s Usuari@s Nuev@s", + "Default User Role": "Rol predeterminado de los nuevos usuarios", "Delete": "Borrar", "Delete a model": "Borrar un modelo", "Delete All Chats": "Borrar todos los chats", @@ -299,20 +309,21 @@ "Delete function?": "Borrar la función?", "Delete Message": "Borrar mensaje", "Delete message?": "¿Borrar mensaje?", + "Delete note?": "", "Delete prompt?": "¿Borrar el indicador?", "delete this link": "Borrar este enlace", "Delete tool?": "¿Borrar la herramienta?", - "Delete User": "Borrar Usuari@", + "Delete User": "Borrar Usuario", "Deleted {{deleteModelTag}}": "{{deleteModelTag}} Borrado", "Deleted {{name}}": "{{nombre}} Borrado", - "Deleted User": "Usuari@ Borrado", + "Deleted User": "Usuario Borrado", "Describe your knowledge base and objectives": "Describe tu Base de Conocimientos y sus objetivos", "Description": "Descripción", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Detectar Artefactos Automáticamente", "Didn't fully follow instructions": "No seguiste completamente las instrucciones", "Direct": "Directo", "Direct Connections": "Conexiones Directas", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Las Conexiones Directas permiten a l@s usuari@s conectar a sus propios endpoints compatibles API OpenAI.", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Las Conexiones Directas permiten a los usuarios conectar a sus propios endpoints compatibles API OpenAI.", "Direct Connections settings updated": "Se actualizaron las configuraciones de las Conexiones Directas", "Direct Tool Servers": "Servidores de Herramientas Directos", "Disabled": "Deshabilitado", @@ -328,8 +339,8 @@ "Discover, download, and explore model presets": "Descubre, descarga y explora modelos con preajustados", "Dismissible": "Desestimable", "Display": "Mostrar", - "Display Emoji in Call": "Muestra chirimbolitos(Emojis) en Llamada", - "Display the username instead of You in the Chat": "Mostrar en el chat el nombre de usuari@ en lugar del genérico Tu/Usted", + "Display Emoji in Call": "Muestra Emojis en Llamada", + "Display the username instead of You in the Chat": "Mostrar en el chat el nombre de usuario en lugar del genérico Tu", "Displays citations in the response": "Mostrar citas en la respuesta", "Dive into knowledge": "Sumérgete en el conocimiento", "Do not install functions from sources you do not fully trust.": "¡No instalar funciones de fuentes en las que que no se confíe totalmente!", @@ -344,8 +355,8 @@ "does not make any external connections, and your data stays securely on your locally hosted server.": "no se realiza ninguna conexión externa y tus datos permanecen seguros alojados localmente en tu servidor.", "Domain Filter List": "Lista de Filtrado de Dominio", "Don't have an account?": "¿No tienes una cuenta?", - "don't install random functions from sources you don't trust.": "¡no instalar funciones aleatorias de fuentes en las que no se confíe!", - "don't install random tools from sources you don't trust.": "¡no instalar herramientas aleatorias de fuentes en las que no se confíe!", + "don't install random functions from sources you don't trust.": "¡no instalar funciones desconocidas de fuentes en las que no se confíe!", + "don't install random tools from sources you don't trust.": "¡no instalar herramientas desconocidas de fuentes en las que no se confíe!", "Don't like the style": "¿No te gusta el estilo?", "Done": "Hecho", "Download": "Descargar", @@ -354,25 +365,26 @@ "Download Database": "Descargar Base de Datos", "Drag and drop a file to upload or select a file to view": "Arrastra y suelta un archivo para subirlo o selecciona uno para verlo", "Draw": "Dibujar", - "Drop any files here to add to the conversation": "Suelta cualquier archivo aquí para añadirlo a la conversación", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p.ej. '30s','10m'. Unidades de tiempo válidas son 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "p.ej. \"json\" o un esquema JSON", "e.g. 60": "p.ej. 60", - "e.g. A filter to remove profanity from text": "p.ej. Un filtro para eliminar 'blasfemia' del texto", + "e.g. A filter to remove profanity from text": "p.ej. Un filtro para eliminar malas palabras del texto", "e.g. My Filter": "p.ej. Mi Filtro", "e.g. My Tools": "p.ej. Mis Herramientas", "e.g. my_filter": "p.ej. mi_filtro", "e.g. my_tools": "p.ej. mis_herramientas", "e.g. Tools for performing various operations": "p.ej. Herramientas para realizar varias operaciones", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "p. ej., en-US,ja-JP (dejar en blanco para detectar automáticamente)", "Edit": "Editar", "Edit Arena Model": "Editar Modelo en Arena", "Edit Channel": "Editar Canal", "Edit Connection": "Editar Conexión", "Edit Default Permissions": "Editar Permisos Predeterminados", "Edit Memory": "Editar Memoria", - "Edit User": "Editar Usuari@", - "Edit User Group": "Editar Grupo de Usuari@", + "Edit User": "Editar Usuario", + "Edit User Group": "Editar Grupo de Usuarios", "ElevenLabs": "ElevenLabs", "Email": "Email", "Embark on adventures": "Embarcate en aventuras", @@ -390,13 +402,14 @@ "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.": "Habilitar Mapeado de Memoria (mmap) para cargar datos del modelo. Esta opción permite al sistema usar el almacenamiento del disco como una extensión de la RAM al tratar los archivos en disco como si estuvieran en la RAM. Esto puede mejorar el rendimiento del modelo al permitir un acceso más rápido a los datos. Sin embargo, puede no funcionar correctamente con todos los sistemas y puede consumir una cantidad significativa de espacio en disco.", "Enable Message Rating": "Habilitar Calificación de los Mensajes", "Enable Mirostat sampling for controlling perplexity.": "Algoritmo de decodificación de texto neuronal que controla activamente el proceso generativo para mantener la perplejidad del texto generado en un valor deseado. Previene las trampas de aburrimiento (por excesivas repeticiones) y de incoherencia (por generación de excesivo texto).", - "Enable New Sign Ups": "Habilitar Registros de Nuev@s Usuari@s", + "Enable New Sign Ups": "Habilitar Registros de Nuevos Usuarios", "Enabled": "Habilitado", - "Enforce Temporary Chat": "", + "Enforce Temporary Chat": "Forzar el uso de Chat Temporal", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asegúrese de que su archivo CSV incluya 4 columnas en este orden: Nombre, Correo Electrónico, Contraseña, Rol.", "Enter {{role}} message here": "Ingresar mensaje {{role}} aquí", "Enter a detail about yourself for your LLMs to recall": "Ingresar detalles sobre ti para que los recuerden sus LLMs", - "Enter api auth string (e.g. username:password)": "Ingresar cadena de autorización de la api (p.ej. nombre:contraseña)", + "Enter api auth string (e.g. username:password)": "Ingresar campo de autorización de la api (p.ej. nombre:contraseña)", "Enter Application DN": "Ingresar el DN de la Aplicación", "Enter Application DN Password": "Ingresar la Contraseña del DN de la Aplicación", "Enter Bing Search V7 Endpoint": "Ingresar el Endpoint de Bing Search V7", @@ -409,13 +422,19 @@ "Enter Chunk Size": "Ingresar el Tamaño del Fragmento", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Ingresar pares \"token:valor_sesgo\" separados por comas (ejemplo: 5432:100, 413:-100)", "Enter description": "Ingresar Descripción", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Ingresar URL del Servidor Docling", "Enter Document Intelligence Endpoint": "Ingresar el Endpoint de Azure Document Intelligence", "Enter Document Intelligence Key": "Ingresar Clave de Azure Document Intelligence", "Enter domains separated by commas (e.g., example.com,site.org)": "Ingresar dominios separados por comas (p.ej., ejemplo.com,sitio.org)", "Enter Exa API Key": "Ingresar Clave API de Exa", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", + "Enter Firecrawl API Base URL": "Ingresar URL Base del API de Firecrawl", + "Enter Firecrawl API Key": "Ingresar Clave del API de Firecrawl", "Enter Github Raw URL": "Ingresar URL Github en Bruto(raw)", "Enter Google PSE API Key": "Ingresar Clave API de Google PSE", "Enter Google PSE Engine Id": "Ingresa ID del Motor PSE de Google", @@ -431,10 +450,11 @@ "Enter Model ID": "Ingresar ID del Modelo", "Enter model tag (e.g. {{modelTag}})": "Ingresar la etiqueta del modelo (p.ej. {{modelTag}})", "Enter Mojeek Search API Key": "Ingresar Clave API de Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Ingresar Número de Pasos (p.ej., 50)", "Enter Perplexity API Key": "Ingresar Clave API de Perplexity", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Playwright Timeout": "Ingresar límite de tiempo de espera de Playwright", + "Enter Playwright WebSocket URL": "Ingresar URL de WebSocket de Playwright", "Enter proxy URL (e.g. https://user:password@host:port)": "Ingresar URL del proxy (p.ej. https://user:password@host:port)", "Enter reasoning effort": "Ingresar esfuerzo de razonamiento", "Enter Sampler (e.g. Euler a)": "Ingresar Muestreador (p.ej., Euler a)", @@ -452,34 +472,40 @@ "Enter server host": "Ingresar host del servidor", "Enter server label": "Ingresar etiqueta del servidor", "Enter server port": "Ingresar puerto del servidor", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Sougou Search API sID": "Ingresar Sougou Search API sID", + "Enter Sougou Search API SK": "Ingresar Sougou Search API SK", "Enter stop sequence": "Ingresar secuencia de parada", "Enter system prompt": "Ingresar Indicador del sistema", "Enter system prompt here": "Ingresa aquí el indicador del sistema", "Enter Tavily API Key": "Ingresar Clave API de Tavily", - "Enter Tavily Extract Depth": "", - "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Ingresar URL pública de su WebUI. Esta URL se usará para generar enlaces en las notificaciones.", + "Enter Tavily Extract Depth": "Ingresar parámetro de Extract Depth de Taviliy", + "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Ingresar URL pública de WebUI. Esta URL se usará para generar enlaces en las notificaciones.", "Enter Tika Server URL": "Ingresar URL del servidor Tika", - "Enter timeout in seconds": "Ingresar timeout en segundos", + "Enter timeout in seconds": "Ingresar tiempo límite de espera en segundos", "Enter to Send": "'Enter' para Enviar", "Enter Top K": "Ingresar Top K", "Enter Top K Reranker": "Ingresar Top K Reclasificador", "Enter URL (e.g. http://127.0.0.1:7860/)": "Ingresar URL (p.ej., http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Ingresar URL (p.ej., http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Ingresa tu contraseña actual", "Enter Your Email": "Ingresa tu correo electrónico", "Enter Your Full Name": "Ingresa su nombre completo", "Enter your message": "Ingresa tu mensaje", "Enter your name": "Ingresa tu nombre", + "Enter Your Name": "", "Enter your new password": "Ingresa tu contraseña nueva", "Enter Your Password": "Ingresa tu contraseña", "Enter Your Role": "Ingresa tu rol", - "Enter Your Username": "Ingresa tu nombre de usuari@", - "Enter your webhook URL": "Ingresa tu URL de enganchesWeb(webhook)", + "Enter Your Username": "Ingresa tu nombre de usuario", + "Enter your webhook URL": "Ingresa tu URL de webhook", "Error": "Error", "ERROR": "ERROR", "Error accessing Google Drive: {{error}}": "Error accediendo a Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Error subiendo el archivo: {{error}}", "Evaluations": "Evaluaciones", "Exa API Key": "Clave API de Exa", @@ -488,18 +514,18 @@ "Example: mail": "Ejemplo: correo", "Example: ou=users,dc=foo,dc=example": "Ejemplo: ou=usuarios,dc=foo,dc=ejemplo", "Example: sAMAccountName or uid or userPrincipalName": "Ejemplo: sAMNombreCuenta o uid o userNombrePrincipal", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "Excedido el número de accesos en su licencia. Por favor, contacte con soporte para aumentar el número de accesos.", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "Excedido el número de accesos de usuarios en tu licencia. Por favor, contacta con soporte para aumentar el número de accesos.", "Exclude": "Excluir", "Execute code for analysis": "Ejecutar código para análisis", - "Executing **{{NAME}}**...": "", + "Executing **{{NAME}}**...": "Ejecutando **{{NAME}}**...", "Expand": "Expandir", "Experimental": "Experimental", "Explain": "Explicar", - "Explain this section to me in more detail": "Explicame esta sección con más detalle", + "Explain this section to me in more detail": "Explícame esta sección con más detalle", "Explore the cosmos": "Explora el cosmos", "Export": "Exportar", "Export All Archived Chats": "Exportar Todos los Chats Archivados", - "Export All Chats (All Users)": "Exportar Todos los Chats (Todos l@s Usuari@s)", + "Export All Chats (All Users)": "Exportar Todos los Chats (Todos los Usuarios)", "Export chat (.json)": "Exportar chat (.json)", "Export Chats": "Exportar Chats", "Export Config to JSON File": "Exportar Configuración a archivo JSON", @@ -511,10 +537,16 @@ "Export Tools": "Exportar Herramientas", "External": "Externo", "External Models": "Modelos Externos", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Fallo al añadir el archivo.", "Failed to connect to {{URL}} OpenAPI tool server": "Fallo al conectar al servidor de herramientas {{URL}}", "Failed to create API Key.": "Fallo al crear la Clave API.", + "Failed to delete note": "", "Failed to fetch models": "Fallo al obtener los modelos", + "Failed to load file content.": "", "Failed to read clipboard contents": "Fallo al leer el contenido del portapapeles", "Failed to save connections": "Fallo al grabar las conexiones", "Failed to save models configuration": "Fallo al guardar la configuración de los modelos", @@ -523,8 +555,8 @@ "Features": "Características", "Features Permissions": "Permisos de las Características", "February": "Febrero", - "Feedback History": "Historial de realimentación", - "Feedbacks": "Realimentaciones", + "Feedback History": "Historial de Opiniones", + "Feedbacks": "Opiniones", "Feel free to add specific details": "Añade libremente detalles específicos", "File": "Archivo", "File added successfully.": "Archivo añadido correctamente.", @@ -539,12 +571,11 @@ "Filter is now globally enabled": "El filtro ahora está habilitado globalmente", "Filters": "Filtros", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Se detectó suplantación de huellas: No se pueden usar las iniciales como avatar. Se establece la imagen de perfil predeterminada.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "URL Base de API de Firecrawl", + "Firecrawl API Key": "Clave de API de Firecrawl", "Fluidly stream large external response chunks": "Transmisión fluida de fragmentos de grandes respuestas externas", - "Focus chat input": "Enfoque entrada del chat", - "Folder deleted successfully": "Carpeta bollada correctamente", - "Folder name cannot be empty": "El nombre de la carpeta no puede estar vacío", + "Focus chat input": "Enfocar campo de chat", + "Folder deleted successfully": "Carpeta eliminada correctamente", "Folder name cannot be empty.": "El nombre de la carpeta no puede estar vacío", "Folder name updated successfully": "Nombre de la carpeta actualizado correctamente", "Followed instructions perfectly": "Siguió las instrucciones perfectamente", @@ -565,17 +596,18 @@ "Function Name": "Nombre de la Función", "Function updated successfully": "Función actualizada correctamente", "Functions": "Funciones", - "Functions allow arbitrary code execution": "Las Funciones habilitan la ejecución de código arbitrario", "Functions allow arbitrary code execution.": "Las Funciones habilitan la ejecución de código arbitrario.", "Functions imported successfully": "Funciones importadas correctamente", "Gemini": "Gemini", "Gemini API Config": "Config API Gemini", "Gemini API Key is required.": "Se requiere Clave API de Gemini.", "General": "General", + "Generate": "", "Generate an image": "Generar una imagen", "Generate Image": "Generar imagen", "Generate prompt pair": "Generar par de indicadores", "Generating search query": "Generando consulta de búsqueda", + "Generating...": "", "Get started": "Empezar", "Get started with {{WEBUI_NAME}}": "Empezar con {{WEBUI_NAME}}", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importar Config desde Archivo JSON", "Import Functions": "Importar Funciones", "Import Models": "Importar Modelos", + "Import Notes": "", "Import Presets": "Importar Preajustes", "Import Prompts": "Importar Indicadores", "Import Tools": "Importar Herramientas", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "AutoEnvio Instantaneo tras la Transcripción de Voz", "Integration": "Integración", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "Formato de archivo Inválido.", "Invalid JSON schema": "Esquema JSON Inválido", "Invalid Tag": "Etiqueta Inválida", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gestionar Tuberías", "Manage Tool Servers": "Gestionar Servidores de Herramientas", "March": "Marzo", + "Max Speakers": "", "Max Tokens (num_predict)": "Máx Tokens (num_predict)", "Max Upload Count": "Número Max de Subidas", "Max Upload Size": "Tamaño Max de Subidas", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memoria borrada correctamente", "Memory updated successfully": "Memoria actualizada correctamente", "Merge Responses": "Fusionar Respuestas", + "Merged Response": "Respuesta combinada", "Message rating should be enabled to use this feature": "Para usar esta función debe estar habilitada la calificación de mensajes", - "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Los mensajes que envíe después de la creación del enlace no se compartirán. L@s usuari@s con la URL del enlace podrán ver el chat compartido.", + "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Los mensajes que envíe después de la creación del enlace no se compartirán. Los usuarios con la URL del enlace podrán ver el chat compartido.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Clave API de Mojeek Search", "more": "más", "More": "Más", + "My Notes": "", "Name": "Nombre", "Name your knowledge base": "Nombra tu base de conocimientos", "Native": "Nativo", "New Chat": "Nuevo Chat", "New Folder": "Nueva Carpeta", + "New Note": "", "New Password": "Nueva Contraseña", "new-channel": "nuevo-canal", + "No content": "", "No content found": "No se encontró contenido", + "No content found in file.": "", "No content to speak": "No hay contenido para hablar", "No distance available": "No hay distancia disponible", "No feedbacks found": "No se encontraron realimentaciones", "No file selected": "No se seleccionó archivo", - "No files found.": "No se encontraron archivos.", "No groups with access, add a group to grant access": "No hay grupos con acceso, añade un grupo para otorgar acceso", "No HTML, CSS, or JavaScript content found.": "No se encontró contenido HTML, CSS, o JavaScript.", "No inference engine with management support found": "No se encontró un motor de inferencia que soporte gestión", @@ -774,14 +816,16 @@ "No model IDs": "No hay IDs de modelo", "No models found": "No se encontraron modelos", "No models selected": "No se seleccionaron modelos", + "No Notes": "", "No results found": "No se encontraron resultados", "No search query generated": "No se generó ninguna consulta de búsqueda", "No source available": "No hay fuente disponible", - "No users were found.": "No se encontraron usuari@s.", + "No users were found.": "No se encontraron usuarios.", "No valves to update": "No hay válvulas para actualizar", "None": "Ninguno", "Not factually correct": "No es correcto en todos los aspectos", "Not helpful": "No aprovechable", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si estableces una puntuación mínima, la búsqueda sólo devolverá documentos con una puntuación mayor o igual a la puntuación mínima establecida.", "Notes": "Notas", "Notification Sound": "Notificación Sonora", @@ -804,7 +848,8 @@ "Only alphanumeric characters and hyphens are allowed": "Sólo están permitidos caracteres alfanuméricos y guiones", "Only alphanumeric characters and hyphens are allowed in the command string.": "Sólo están permitidos en la cadena de comandos caracteres alfanuméricos y guiones.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Solo se pueden editar las colecciones, para añadir/editar documentos hay que crear una nueva base de conocimientos", - "Only select users and groups with permission can access": "Solo pueden acceder l@s usuari@s y grupos con permiso", + "Only markdown files are allowed": "", + "Only select users and groups with permission can access": "Solo pueden acceder los usuarios y grupos con permiso", "Oops! Looks like the URL is invalid. Please double-check and try again.": "¡vaya! Parece que la URL es inválida. Por favor, revisala y reintenta de nuevo.", "Oops! There are files still uploading. Please wait for the upload to complete.": "¡vaya! Todavía hay archivos subiendose. Por favor, espera a que se complete la subida.", "Oops! There was an error in the previous response.": "¡vaya! Hubo un error en la respuesta previa.", @@ -824,7 +869,7 @@ "OpenAI URL/Key required.": "URL/Clave de OpenAI requerida.", "openapi.json Path": "Ruta a openapi.json", "or": "o", - "Organize your users": "Organiza tus usuari@s", + "Organize your users": "Organiza tus usuarios", "Other": "Otro", "OUTPUT": "SALIDA", "Output format": "Formato de salida", @@ -849,10 +894,11 @@ "Pipelines": "Tuberías", "Pipelines Not Detected": "Servicio de Tuberías (Pipelines) No Detectado", "Pipelines Valves": "Válvulas de Tuberías", + "Plain text (.md)": "", "Plain text (.txt)": "Texto plano (.txt)", "Playground": "Zona de Pruebas", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Tiempo Límite de Espera (ms) de Playwright", + "Playwright WebSocket URL": "URL de WebSocket de Playwright", "Please carefully review the following warnings:": "Por favor revisar cuidadosamente los siguientes avisos:", "Please do not close the settings page while loading the model.": "Por favor no cerrar la página de ajustes mientras se está descargando el modelo.", "Please enter a prompt": "Por favor ingresar un indicador", @@ -891,10 +937,11 @@ "Read": "Leer", "Read Aloud": "Leer en voz alta", "Reasoning Effort": "Esfuerzo del Razonamiento", + "Record": "", "Record voice": "Grabar voz", "Redirecting you to Open WebUI Community": "Redireccionando a la Comunidad Open-WebUI", "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.": "Reduce la probabilidad de generación sin sentido. Un valor más alto (p.ej. 100) dará respuestas más diversas, mientras que un valor más bajo (p.ej. 10) será más conservador.", - "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Referir a ti mismo como \"Usuari@\" (p.ej. \"Usuari@ está aprendiendo Español\")", + "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Referir a ti mismo como \"Usuario\" (p.ej. \"Usuario está aprendiendo Español\")", "References from": "Referencias desde", "Refused when it shouldn't have": "Rechazado cuando no debería haberlo hecho", "Regenerate": "Regenerar", @@ -902,7 +949,7 @@ "Reindex Knowledge Base Vectors": "Reindexar Base Vectorial de Conocimiento", "Release Notes": "Notas de la Versión", "Relevance": "Relevancia", - "Relevance Threshold": "", + "Relevance Threshold": "Umbral de Relevancia", "Remove": "Eliminar", "Remove Model": "Eliminar Modelo", "Rename": "Renombrar", @@ -939,7 +986,7 @@ "Save Tag": "Guardar Etiqueta", "Saved": "Guardado", "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": "Ya no está soportado guardar registros de chat directamente en el almacenamiento del navegador. Por favor, dedica un momento a descargar y eliminar tus registros de chat pulsando en el botón de abajo. No te preocupes, puedes re-importar fácilmente tus registros desde las opciones de configuración", - "Scroll to bottom when switching between branches": "Desplazar hacia abajo cuando se cambia de rama", + "Scroll On Branch Change": "", "Search": "Buscar", "Search a model": "Buscar un Modelo", "Search Base": "Busqueda Base", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "{{count}} sitios buscados", "Searching \"{{searchQuery}}\"": "Buscando \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Buscando \"{{searchQuery}}\" en Conocimiento", + "Searching the web...": "", "Searxng Query URL": "Searxng URL de Consulta", "See readme.md for instructions": "Ver readme.md para instrucciones", "See what's new": "Ver las novedades", @@ -1020,7 +1068,7 @@ "Show": "Mostrar", "Show \"What's New\" modal on login": "Mostrar modal \"Qué hay de Nuevo\" al iniciar sesión", "Show Admin Details in Account Pending Overlay": "Mostrar Detalles Admin en la sobrecapa de 'Cuenta Pendiente'", - "Show Model": "", + "Show Model": "Mostrar Modelo", "Show shortcuts": "Mostrar Atajos", "Show your support!": "¡Muestra tu apoyo!", "Showcased creativity": "Creatividad exhibida", @@ -1061,7 +1109,7 @@ "Tap to interrupt": "Toca para interrumpir", "Tasks": "Tareas", "Tavily API Key": "Clave API de Tavily", - "Tavily Extract Depth": "", + "Tavily Extract Depth": "Parámetro Extract Depth de Taviliy", "Tell us more:": "Dinos algo más:", "Temperature": "Temperatura", "Template": "Plantilla", @@ -1069,14 +1117,14 @@ "Text Splitter": "Divisor de Texto", "Text-to-Speech Engine": "Motor Texto a Voz(TTS)", "Tfs Z": "TFS Z", - "Thanks for your feedback!": "¡Gracias por tu realimentación!", + "Thanks for your feedback!": "¡Gracias por tu comentario!", "The Application Account DN you bind with for search": "Cuenta DN de la aplicación vinculada para búsqueda", - "The base to search for users": "La base para buscar usuari@s", + "The base to search for users": "Base para buscar usuarios", "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.": "El tamaño de lote determina cuántas solicitudes de texto se procesan juntas de una vez. Un tamaño de lote más alto puede aumentar el rendimiento y la velocidad del modelo, pero también requiere más memoria.", - "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "L@s desarrolladores de este complemento son apasionad@s voluntari@s de la comunidad. Si este complemento te es útil, por favor considera contribuir a su desarrollo.", + "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Quienes desarollaron este complemento son apasionados voluntarios/as de la comunidad. Si este complemento te es útil, por favor considera contribuir a su desarrollo.", "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "La tabla clasificatoria de evaluación se basa en el sistema de clasificación Elo y se actualiza en tiempo real.", - "The LDAP attribute that maps to the mail that users use to sign in.": "El atributo LDAP que mapea el correo que l@s usuari@s utilizan para iniciar sesión.", - "The LDAP attribute that maps to the username that users use to sign in.": "El atributo LDAP que mapea el nombre de usuari@ que l@s usuari@s utilizan para iniciar sesión.", + "The LDAP attribute that maps to the mail that users use to sign in.": "El atributo LDAP que mapea el correo que los usuarios utilizan para iniciar sesión.", + "The LDAP attribute that maps to the username that users use to sign in.": "El atributo LDAP que mapea el nombre de usuario que los usuarios utilizan para iniciar sesión.", "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "La tabla clasificatoria está actualmente en beta, por lo que los cálculos de clasificación pueden reajustarse a medida que se refina el algoritmo.", "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "El tamaño máximo del archivo en MB. Si el tamaño del archivo supera este límite, el archivo no se subirá.", "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.": "El número máximo de archivos que se pueden utilizar a la vez en el chat. Si se supera este límite, los archivos no se subirán.", @@ -1114,7 +1162,7 @@ "TLS": "TLS", "To access the available model names for downloading,": "Para acceder a los nombres de modelos disponibles para descargar,", "To access the GGUF models available for downloading,": "Para acceder a los modelos GGUF disponibles para descargar,", - "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Para acceder a WebUI, por favor contacte con Admins. L@s administradores pueden gestionar los estados de l@s usuari@s esde el panel de administración.", + "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Para acceder a WebUI, por favor contacte con Admins. Los administradores pueden gestionar los estados de los usuarios esde el panel de administración.", "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Para adjuntar la base de conocimientos aquí, primero añadirla a \"Conocimiento\" en el área de trabajo.", "To learn more about available endpoints, visit our documentation.": "Para aprender más sobre los endpoints disponibles, visite nuestra documentación.", "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.": "Para proteger tu privacidad, de tu realimentación solo se comparten las calificaciones, IDs de modelo, etiquetas y metadatos; tus chat registrados permanecen privados y no se incluyen.", @@ -1140,7 +1188,6 @@ "Tools Access": "Acceso a Herramientas", "Tools are a function calling system with arbitrary code execution": "Las herramientas son un sistema de llamada de funciones con ejecución de código arbitrario", "Tools Function Calling Prompt": "Indicador para la Función de Llamada a las Herramientas", - "Tools have a function calling system that allows arbitrary code execution": "Las herramientas tienen un sistema de llamadas de funciones que permite la ejecución de código arbitrario", "Tools have a function calling system that allows arbitrary code execution.": "Las herramientas tienen un sistema de llamada de funciones que permite la ejecución de código arbitrario.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Desfijar", "Unravel secrets": "Desentrañar secretos", "Untagged": "Desetiquetado", + "Untitled": "", "Update": "Actualizar", "Update and Copy Link": "Actualizar y Copiar Enlace", "Update for the latest features and improvements.": "Actualizar para las últimas características y mejoras.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Mejore a un plan con licencia para tener capacidades mejoradas, incluyendo personalización de marca e interface, y soporte dedicado.", "Upload": "Subir", "Upload a GGUF model": "Subir un modelo GGUF", + "Upload Audio": "", "Upload directory": "Directorio de Subidas", "Upload files": "Subir archivos", "Upload Files": "Subir Archivos", @@ -1182,18 +1231,18 @@ "URL Mode": "Modo URL", "Use '#' in the prompt input to load and include your knowledge.": "Utilizar '#' en el indicador para cargar e incluir tu conocimiento.", "Use Gravatar": "Usar Gravatar", - "Use groups to group your users and assign permissions.": "Usar grupos para agrupar a usuari@s y asignar permisos.", + "Use groups to group your users and assign permissions.": "Usar grupos para agrupar a usuarios y asignar permisos.", "Use Initials": "Usar Iniciales", "Use no proxy to fetch page contents.": "No usar proxy para extraer contenidos", "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Usar el proxy asignado en las variables del entorno http_proxy y/o https_proxy para extraer contenido", "use_mlock (Ollama)": "use_mlock (Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", - "user": "usuari@", - "User": "Usuari@", - "User location successfully retrieved.": "Ubicación de usuari@ obtenida correctamente.", - "User Webhooks": "Usuari@ EnganchesWeb(webhooks)", - "Username": "Nombre de Usuari@", - "Users": "Usuari@s", + "user": "usuario", + "User": "Usuario", + "User location successfully retrieved.": "Ubicación de usuario obtenida correctamente.", + "User Webhooks": "Usuario Webhooks", + "Username": "Nombre de Usuario", + "Users": "Usuarios", "Using the default arena model with all models. Click the plus button to add custom models.": "Usando el modelo de arena predeterminado con todos los modelos. Pulsar en el botón + para agregar modelos personalizados.", "Utilize": "Utilizar", "Valid time units:": "Unidades de tiempo válidas:", @@ -1213,7 +1262,7 @@ "Voice Input": "Entrada de Voz", "Warning": "Aviso", "Warning:": "Aviso:", - "Warning: Enabling this will allow users to upload arbitrary code on the server.": "Aviso: Habilitar esto permitirá a l@s usuari@s subir código arbitrario al servidor.", + "Warning: Enabling this will allow users to upload arbitrary code on the server.": "Aviso: Habilitar esto permitirá a los usuarios subir código arbitrario al servidor.", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Aviso: Si actualizas o cambias el modelo de incrustacción, necesitarás re-importar todos los documentos.", "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Aviso: La ejecución Jupyter habilita la ejecución de código arbitrario, planteando graves riesgos de seguridad; Proceder con extrema precaución.", "Web": "Web", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].", "Write something...": "Escribe algo...", "Write your model template content here": "Escribe el contenido de la plantilla de tu modelo aquí", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ayer", "You": "Tu", "You are currently using a trial license. Please contact support to upgrade your license.": "Actualmente estás utilizando una licencia de prueba. Por favor, para actualizar su licencia contacta con soporte.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Solo puedes chatear con un máximo de {{maxCount}} archivo(s) a la vez.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Puedes personalizar tus interacciones con los LLMs añadiendo memorias a través del botón 'Gestionar' debajo, haciendo que te sean más útiles y personalizados.", "You cannot upload an empty file.": "No puedes subir un archivo vacío.", - "You do not have permission to upload files": "No tienes permiso para subir archivos", "You do not have permission to upload files.": "No tienes permiso para subir archivos.", "You have no archived conversations.": "No tienes conversaciones archivadas.", "You have shared this chat": "Has compartido esta conversación", diff --git a/src/lib/i18n/locales/et-EE/translation.json b/src/lib/i18n/locales/et-EE/translation.json index 3acd4f7cb..b7d956baa 100644 --- a/src/lib/i18n/locales/et-EE/translation.json +++ b/src/lib/i18n/locales/et-EE/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(nt `sh webui.sh --api --api-auth kasutajanimi_parool`)", "(e.g. `sh webui.sh --api`)": "(nt `sh webui.sh --api`)", "(latest)": "(uusim)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ mudelid }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Luba vestluse kustutamine", "Allow Chat Deletion": "Luba vestluse kustutamine", "Allow Chat Edit": "Luba vestluse muutmine", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Luba failide üleslaadimine", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Luba mitte-lokaalsed hääled", @@ -76,6 +79,7 @@ "Always": "Alati", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Suurepärane", "an assistant": "assistent", "Analyzed": "Analüüsitud", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Kas olete kindel, et soovite selle kanali kustutada?", "Are you sure you want to delete this message?": "Kas olete kindel, et soovite selle sõnumi kustutada?", "Are you sure you want to unarchive all archived chats?": "Kas olete kindel, et soovite kõik arhiveeritud vestlused arhiivist eemaldada?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Kas olete kindel?", "Arena Models": "Areena mudelid", "Artifacts": "Tekkinud objektid", @@ -135,6 +140,7 @@ "Bad Response": "Halb vastus", "Banners": "Bännerid", "Base Model (From)": "Baas mudel (Allikas)", + "Base URL": "", "Batch Size (num_batch)": "Partii suurus (num_batch)", "before": "enne", "Being lazy": "Laisklemine", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7 tellimuse võti", "Bocha Search API Key": "Bocha otsingu API võti", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Konkreetsete tokenite võimendamine või karistamine piiratud vastuste jaoks. Kallutatuse väärtused piiratakse vahemikku -100 kuni 100 (kaasa arvatud). (Vaikimisi: puudub)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API võti", "By {{name}}": "Autor: {{name}}", "Bypass Embedding and Retrieval": "Möödaminek sisestamisest ja taastamisest", @@ -153,6 +160,7 @@ "Cancel": "Tühista", "Capabilities": "Võimekused", "Capture": "Jäädvusta", + "Capture Audio": "", "Certificate Path": "Sertifikaadi tee", "Change Password": "Muuda parooli", "Channel Name": "Kanali nimi", @@ -262,6 +270,8 @@ "Create Knowledge": "Loo teadmised", "Create new key": "Loo uus võti", "Create new secret key": "Loo uus salavõti", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Loomise aeg", "Created At": "Loomise aeg", "Created by": "Autor", @@ -299,6 +309,7 @@ "Delete function?": "Kustutada funktsioon?", "Delete Message": "Kustuta sõnum", "Delete message?": "Kustutada sõnum?", + "Delete note?": "", "Delete prompt?": "Kustutada vihjed?", "delete this link": "kustuta see link", "Delete tool?": "Kustutada tööriist?", @@ -354,7 +365,7 @@ "Download Database": "Laadi alla andmebaas", "Drag and drop a file to upload or select a file to view": "Lohistage ja kukutage fail üleslaadimiseks või valige fail vaatamiseks", "Draw": "Joonista", - "Drop any files here to add to the conversation": "Lohistage siia mistahes failid, et lisada need vestlusele", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "nt '30s', '10m'. Kehtivad ajaühikud on 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "nt 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "nt minu_filter", "e.g. my_tools": "nt minu_toriistad", "e.g. Tools for performing various operations": "nt tööriistad mitmesuguste operatsioonide teostamiseks", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Muuda", "Edit Arena Model": "Muuda Areena mudelit", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Luba uued registreerimised", "Enabled": "Lubatud", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Veenduge, et teie CSV-fail sisaldab 4 veergu selles järjekorras: Nimi, E-post, Parool, Roll.", "Enter {{role}} message here": "Sisestage {{role}} sõnum siia", "Enter a detail about yourself for your LLMs to recall": "Sisestage detail enda kohta, mida teie LLM-id saavad meenutada", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Sisestage tüki suurus", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Sisestage komadega eraldatud \"token:kallutuse_väärtus\" paarid (näide: 5432:100, 413:-100)", "Enter description": "Sisestage kirjeldus", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "Sisestage dokumendi intelligentsuse lõpp-punkt", "Enter Document Intelligence Key": "Sisestage dokumendi intelligentsuse võti", "Enter domains separated by commas (e.g., example.com,site.org)": "Sisestage domeenid komadega eraldatult (nt example.com,site.org)", "Enter Exa API Key": "Sisestage Exa API võti", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Sisestage Github toorURL", @@ -431,6 +450,7 @@ "Enter Model ID": "Sisestage mudeli ID", "Enter model tag (e.g. {{modelTag}})": "Sisestage mudeli silt (nt {{modelTag}})", "Enter Mojeek Search API Key": "Sisestage Mojeek Search API võti", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Sisestage sammude arv (nt 50)", "Enter Perplexity API Key": "Sisestage Perplexity API võti", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Sisestage URL (nt http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Sisestage URL (nt http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Sisestage oma praegune parool", "Enter Your Email": "Sisestage oma e-post", "Enter Your Full Name": "Sisestage oma täisnimi", "Enter your message": "Sisestage oma sõnum", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Sisestage oma uus parool", "Enter Your Password": "Sisestage oma parool", "Enter Your Role": "Sisestage oma roll", @@ -480,6 +504,8 @@ "Error": "Viga", "ERROR": "VIGA", "Error accessing Google Drive: {{error}}": "Viga Google Drive'i juurdepääsul: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Viga faili üleslaadimisel: {{error}}", "Evaluations": "Hindamised", "Exa API Key": "Exa API võti", @@ -511,10 +537,16 @@ "Export Tools": "Ekspordi tööriistad", "External": "", "External Models": "Välised mudelid", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Faili lisamine ebaõnnestus.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API võtme loomine ebaõnnestus.", + "Failed to delete note": "", "Failed to fetch models": "Mudelite toomine ebaõnnestus", + "Failed to load file content.": "", "Failed to read clipboard contents": "Lõikelaua sisu lugemine ebaõnnestus", "Failed to save connections": "", "Failed to save models configuration": "Mudelite konfiguratsiooni salvestamine ebaõnnestus", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Suurte väliste vastuste tükkide sujuv voogedastus", "Focus chat input": "Fokuseeri vestluse sisendile", "Folder deleted successfully": "Kaust edukalt kustutatud", - "Folder name cannot be empty": "Kausta nimi ei saa olla tühi", "Folder name cannot be empty.": "Kausta nimi ei saa olla tühi.", "Folder name updated successfully": "Kausta nimi edukalt uuendatud", "Followed instructions perfectly": "Järgis juhiseid täiuslikult", @@ -565,17 +596,18 @@ "Function Name": "Funktsiooni nimi", "Function updated successfully": "Funktsioon edukalt uuendatud", "Functions": "Funktsioonid", - "Functions allow arbitrary code execution": "Funktsioonid võimaldavad suvalise koodi käivitamist", "Functions allow arbitrary code execution.": "Funktsioonid võimaldavad suvalise koodi käivitamist.", "Functions imported successfully": "Funktsioonid edukalt imporditud", "Gemini": "Gemini", "Gemini API Config": "Gemini API seadistus", "Gemini API Key is required.": "Gemini API võti on nõutav.", "General": "Üldine", + "Generate": "", "Generate an image": "Genereeri pilt", "Generate Image": "Genereeri pilt", "Generate prompt pair": "Genereeri vihjete paar", "Generating search query": "Otsinguküsimuse genereerimine", + "Generating...": "", "Get started": "Alusta", "Get started with {{WEBUI_NAME}}": "Alusta {{WEBUI_NAME}} kasutamist", "Global": "Globaalne", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Impordi seadistus JSON-failist", "Import Functions": "Impordi funktsioonid", "Import Models": "Impordi mudelid", + "Import Notes": "", "Import Presets": "Impordi eelseadistused", "Import Prompts": "Impordi vihjed", "Import Tools": "Impordi tööriistad", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Kohene automaatne saatmine pärast hääle transkriptsiooni", "Integration": "Integratsioon", "Interface": "Kasutajaliides", + "Invalid file content": "", "Invalid file format.": "Vigane failiformaat.", "Invalid JSON schema": "", "Invalid Tag": "Vigane silt", @@ -706,6 +740,7 @@ "Manage Pipelines": "Halda torustikke", "Manage Tool Servers": "", "March": "Märts", + "Max Speakers": "", "Max Tokens (num_predict)": "Max tokeneid (num_predict)", "Max Upload Count": "Maksimaalne üleslaadimiste arv", "Max Upload Size": "Maksimaalne üleslaadimise suurus", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Mälu edukalt kustutatud", "Memory updated successfully": "Mälu edukalt uuendatud", "Merge Responses": "Ühenda vastused", + "Merged Response": "Kombineeritud vastus", "Message rating should be enabled to use this feature": "Selle funktsiooni kasutamiseks peaks sõnumite hindamine olema lubatud", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Teie saadetud sõnumeid pärast lingi loomist ei jagata. Kasutajad, kellel on URL, saavad vaadata jagatud vestlust.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API võti", "more": "rohkem", "More": "Rohkem", + "My Notes": "", "Name": "Nimi", "Name your knowledge base": "Nimetage oma teadmiste baas", "Native": "Omane", "New Chat": "Uus vestlus", "New Folder": "Uus kaust", + "New Note": "", "New Password": "Uus parool", "new-channel": "uus-kanal", + "No content": "", "No content found": "Sisu ei leitud", + "No content found in file.": "", "No content to speak": "Pole mida rääkida", "No distance available": "Kaugus pole saadaval", "No feedbacks found": "Tagasisidet ei leitud", "No file selected": "Faili pole valitud", - "No files found.": "Faile ei leitud.", "No groups with access, add a group to grant access": "Puuduvad juurdepääsuõigustega grupid, lisage grupp juurdepääsu andmiseks", "No HTML, CSS, or JavaScript content found.": "HTML, CSS ega JavaScript sisu ei leitud.", "No inference engine with management support found": "Järeldusmootorit haldamise toega ei leitud", @@ -774,6 +816,7 @@ "No model IDs": "Mudeli ID-d puuduvad", "No models found": "Mudeleid ei leitud", "No models selected": "Mudeleid pole valitud", + "No Notes": "", "No results found": "Tulemusi ei leitud", "No search query generated": "Otsingupäringut ei genereeritud", "No source available": "Allikas pole saadaval", @@ -782,6 +825,7 @@ "None": "Mitte ühtegi", "Not factually correct": "Faktiliselt ebakorrektne", "Not helpful": "Pole abistav", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Märkus: kui määrate minimaalse skoori, tagastab otsing ainult dokumendid, mille skoor on suurem või võrdne minimaalse skooriga.", "Notes": "Märkmed", "Notification Sound": "Teavituse heli", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Lubatud on ainult tähtede-numbrite kombinatsioonid ja sidekriipsud", "Only alphanumeric characters and hyphens are allowed in the command string.": "Käsustringis on lubatud ainult tähtede-numbrite kombinatsioonid ja sidekriipsud.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Muuta saab ainult kogusid, dokumentide muutmiseks/lisamiseks looge uus teadmiste baas.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Juurdepääs on ainult valitud õigustega kasutajatel ja gruppidel", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oih! URL tundub olevat vigane. Palun kontrollige ja proovige uuesti.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Oih! Failide üleslaadimine on veel pooleli. Palun oodake, kuni üleslaadimine lõpeb.", @@ -849,6 +894,7 @@ "Pipelines": "Torustikud", "Pipelines Not Detected": "Torustikke ei tuvastatud", "Pipelines Valves": "Torustike klapid", + "Plain text (.md)": "", "Plain text (.txt)": "Lihttekst (.txt)", "Playground": "Mänguväljak", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Loe", "Read Aloud": "Loe valjult", "Reasoning Effort": "Arutluspingutus", + "Record": "", "Record voice": "Salvesta hääl", "Redirecting you to Open WebUI Community": "Suunamine Open WebUI kogukonda", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Vähendab mõttetuste genereerimise tõenäosust. Kõrgem väärtus (nt 100) annab mitmekesisemaid vastuseid, samas kui madalam väärtus (nt 10) on konservatiivsem.", @@ -939,7 +986,7 @@ "Save Tag": "Salvesta silt", "Saved": "Salvestatud", "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": "Vestluslogi salvestamine otse teie brauseri mällu pole enam toetatud. Palun võtke hetk, et alla laadida ja kustutada oma vestluslogi, klõpsates allpool olevat nuppu. Ärge muretsege, saate hõlpsasti oma vestluslogi tagarakendusse uuesti importida, kasutades", - "Scroll to bottom when switching between branches": "Keri alla harus liikumisel", + "Scroll On Branch Change": "", "Search": "Otsing", "Search a model": "Otsi mudelit", "Search Base": "Otsingu baas", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Otsiti {{count}} saidilt", "Searching \"{{searchQuery}}\"": "Otsimine: \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Teadmistest otsimine: \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng päringu URL", "See readme.md for instructions": "Juhiste saamiseks vaadake readme.md", "See what's new": "Vaata, mis on uut", @@ -1140,7 +1188,6 @@ "Tools Access": "Tööriistade juurdepääs", "Tools are a function calling system with arbitrary code execution": "Tööriistad on funktsioonide kutsumise süsteem suvalise koodi täitmisega", "Tools Function Calling Prompt": "Tööriistade funktsioonide kutsumise vihje", - "Tools have a function calling system that allows arbitrary code execution": "Tööriistadel on funktsioonide kutsumise süsteem, mis võimaldab suvalise koodi täitmist", "Tools have a function calling system that allows arbitrary code execution.": "Tööriistadel on funktsioonide kutsumise süsteem, mis võimaldab suvalise koodi täitmist.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Võta lahti", "Unravel secrets": "Ava saladused", "Untagged": "Sildistamata", + "Untitled": "", "Update": "Uuenda", "Update and Copy Link": "Uuenda ja kopeeri link", "Update for the latest features and improvements.": "Uuendage, et saada uusimad funktsioonid ja täiustused.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Uuendage litsentseeritud plaanile täiustatud võimaluste jaoks, sealhulgas kohandatud teemad ja bränding ning pühendatud tugi.", "Upload": "Laadi üles", "Upload a GGUF model": "Laadige üles GGUF mudel", + "Upload Audio": "", "Upload directory": "Üleslaadimise kataloog", "Upload files": "Laadi failid üles", "Upload Files": "Laadi failid üles", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Kirjutage 50-sõnaline kokkuvõte, mis võtab kokku [teema või märksõna].", "Write something...": "Kirjutage midagi...", "Write your model template content here": "Kirjutage oma mudeli malli sisu siia", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Eile", "You": "Sina", "You are currently using a trial license. Please contact support to upgrade your license.": "Kasutate praegu proovilitsentsi. Palun võtke ühendust toega, et oma litsentsi uuendada.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Saate korraga vestelda maksimaalselt {{maxCount}} faili(ga).", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Saate isikupärastada oma suhtlust LLM-idega, lisades mälestusi alumise 'Halda' nupu kaudu, muutes need kasulikumaks ja teile kohandatumaks.", "You cannot upload an empty file.": "Te ei saa üles laadida tühja faili.", - "You do not have permission to upload files": "Teil pole õigust faile üles laadida", "You do not have permission to upload files.": "Teil pole õigust faile üles laadida.", "You have no archived conversations.": "Teil pole arhiveeritud vestlusi.", "You have shared this chat": "Olete seda vestlust jaganud", diff --git a/src/lib/i18n/locales/eu-ES/translation.json b/src/lib/i18n/locales/eu-ES/translation.json index 6a48e7687..ef6b0c75b 100644 --- a/src/lib/i18n/locales/eu-ES/translation.json +++ b/src/lib/i18n/locales/eu-ES/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(adib. `sh webui.sh --api --api-auth erabiltzaile_pasahitza`)", "(e.g. `sh webui.sh --api`)": "(adib. `sh webui.sh --api`)", "(latest)": "(azkena)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Baimendu Txata Ezabatzea", "Allow Chat Deletion": "Baimendu Txata Ezabatzea", "Allow Chat Edit": "Baimendu Txata Editatzea", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Baimendu Fitxategiak Igotzea", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Baimendu urruneko ahotsak", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Harrigarria", "an assistant": "laguntzaile bat", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "Ziur zaude artxibatutako txat guztiak desartxibatu nahi dituzula?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Ziur zaude?", "Arena Models": "Arena Ereduak", "Artifacts": "Artefaktuak", @@ -135,6 +140,7 @@ "Bad Response": "Erantzun Txarra", "Banners": "Bannerrak", "Base Model (From)": "Oinarrizko Eredua (Nondik)", + "Base URL": "", "Batch Size (num_batch)": "Batch Tamaina (num_batch)", "before": "aurretik", "Being lazy": "Alferra izatea", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Bilaketa V7 Harpidetza Gakoa", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Bilaketa API Gakoa", "By {{name}}": "{{name}}-k", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Utzi", "Capabilities": "Gaitasunak", "Capture": "", + "Capture Audio": "", "Certificate Path": "Ziurtagiriaren Bidea", "Change Password": "Aldatu Pasahitza", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Sortu Ezagutza", "Create new key": "Sortu gako berria", "Create new secret key": "Sortu gako sekretu berria", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Sortze data", "Created At": "Sortze Data", "Created by": "Sortzailea", @@ -299,6 +309,7 @@ "Delete function?": "Ezabatu funtzioa?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Ezabatu prompta?", "delete this link": "ezabatu esteka hau", "Delete tool?": "Ezabatu tresna?", @@ -354,7 +365,7 @@ "Download Database": "Deskargatu Datu-basea", "Drag and drop a file to upload or select a file to view": "Arrastatu eta jaregin fitxategi bat igotzeko edo hautatu fitxategi bat ikusteko", "Draw": "Marraztu", - "Drop any files here to add to the conversation": "Jaregin edozein fitxategi hemen elkarrizketara gehitzeko", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "adib. '30s','10m'. Denbora unitate baliodunak dira 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "adib. nire_iragazkia", "e.g. my_tools": "adib. nire_tresnak", "e.g. Tools for performing various operations": "adib. Hainbat eragiketa egiteko tresnak", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Editatu", "Edit Arena Model": "Editatu Arena Eredua", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Gaitu Izena Emate Berriak", "Enabled": "Gaituta", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Ziurtatu zure CSV fitxategiak 4 zutabe dituela ordena honetan: Izena, Posta elektronikoa, Pasahitza, Rola.", "Enter {{role}} message here": "Sartu {{role}} mezua hemen", "Enter a detail about yourself for your LLMs to recall": "Sartu zure buruari buruzko xehetasun bat LLMek gogoratzeko", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Sartu Zati Tamaina", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Sartu deskribapena", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Sartu Github Raw URLa", @@ -431,6 +450,7 @@ "Enter Model ID": "Sartu Eredu IDa", "Enter model tag (e.g. {{modelTag}})": "Sartu eredu etiketa (adib. {{modelTag}})", "Enter Mojeek Search API Key": "Sartu Mojeek Bilaketa API Gakoa", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Sartu Urrats Kopurua (adib. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Sartu URLa (adib. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Sartu URLa (adib. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Sartu Zure Posta Elektronikoa", "Enter Your Full Name": "Sartu Zure Izen-abizenak", "Enter your message": "Sartu zure mezua", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Sartu Zure Pasahitza", "Enter Your Role": "Sartu Zure Rola", @@ -480,6 +504,8 @@ "Error": "Errorea", "ERROR": "ERROREA", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Ebaluazioak", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Esportatu Tresnak", "External": "", "External Models": "Kanpoko Ereduak", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Huts egin du fitxategia gehitzean.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Huts egin du API Gakoa sortzean.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Huts egin du arbelaren edukia irakurtzean", "Failed to save connections": "", "Failed to save models configuration": "Huts egin du ereduen konfigurazioa gordetzean", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Modu jariagarrian transmititu kanpoko erantzun zati handiak", "Focus chat input": "Fokuratu txataren sarrera", "Folder deleted successfully": "Karpeta ongi ezabatu da", - "Folder name cannot be empty": "Karpetaren izena ezin da hutsik egon", "Folder name cannot be empty.": "Karpetaren izena ezin da hutsik egon.", "Folder name updated successfully": "Karpetaren izena ongi eguneratu da", "Followed instructions perfectly": "Jarraibideak perfektuki jarraitu ditu", @@ -565,17 +596,18 @@ "Function Name": "Funtzioaren Izena", "Function updated successfully": "Funtzioa ongi eguneratu da", "Functions": "Funtzioak", - "Functions allow arbitrary code execution": "Funtzioek kode arbitrarioa exekutatzea ahalbidetzen dute", "Functions allow arbitrary code execution.": "Funtzioek kode arbitrarioa exekutatzea ahalbidetzen dute.", "Functions imported successfully": "Funtzioak ongi inportatu dira", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Orokorra", + "Generate": "", "Generate an image": "", "Generate Image": "Sortu Irudia", "Generate prompt pair": "", "Generating search query": "Bilaketa kontsulta sortzen", + "Generating...": "", "Get started": "Hasi", "Get started with {{WEBUI_NAME}}": "Hasi {{WEBUI_NAME}}-rekin", "Global": "Globala", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Inportatu Konfigurazioa JSON Fitxategitik", "Import Functions": "Inportatu Funtzioak", "Import Models": "Inportatu Ereduak", + "Import Notes": "", "Import Presets": "Inportatu Aurrezarpenak", "Import Prompts": "Inportatu Promptak", "Import Tools": "Inportatu Tresnak", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Bidalketa Automatiko Berehalakoa Ahots Transkripzioaren Ondoren", "Integration": "", "Interface": "Interfazea", + "Invalid file content": "", "Invalid file format.": "Fitxategi formatu baliogabea.", "Invalid JSON schema": "", "Invalid Tag": "Etiketa Baliogabea", @@ -706,6 +740,7 @@ "Manage Pipelines": "Kudeatu Pipeline-ak", "Manage Tool Servers": "", "March": "Martxoa", + "Max Speakers": "", "Max Tokens (num_predict)": "Token maximoak (num_predict)", "Max Upload Count": "Karga kopuru maximoa", "Max Upload Size": "Karga tamaina maximoa", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memoria ongi ezabatu da", "Memory updated successfully": "Memoria ongi eguneratu da", "Merge Responses": "Batu erantzunak", + "Merged Response": "Erantzun bateratua", "Message rating should be enabled to use this feature": "Mezuen balorazioa gaitu behar da funtzionalitate hau erabiltzeko", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Esteka sortu ondoren bidaltzen dituzun mezuak ez dira partekatuko. URLa duten erabiltzaileek partekatutako txata ikusi ahal izango dute.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek bilaketa API gakoa", "more": "gehiago", "More": "Gehiago", + "My Notes": "", "Name": "Izena", "Name your knowledge base": "Izendatu zure ezagutza-basea", "Native": "", "New Chat": "Txat berria", "New Folder": "", + "New Note": "", "New Password": "Pasahitz berria", "new-channel": "", + "No content": "", "No content found": "Ez da edukirik aurkitu", + "No content found in file.": "", "No content to speak": "Ez dago hitz egiteko edukirik", "No distance available": "Ez dago distantziarik eskuragarri", "No feedbacks found": "Ez da iritzirik aurkitu", "No file selected": "Ez da fitxategirik hautatu", - "No files found.": "Ez da fitxategirik aurkitu.", "No groups with access, add a group to grant access": "Ez dago sarbidea duen talderik, gehitu talde bat sarbidea emateko", "No HTML, CSS, or JavaScript content found.": "Ez da HTML, CSS, edo JavaScript edukirik aurkitu.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "Ez dago modelo IDrik", "No models found": "Ez da modelorik aurkitu", "No models selected": "Ez da modelorik hautatu", + "No Notes": "", "No results found": "Ez da emaitzarik aurkitu", "No search query generated": "Ez da bilaketa kontsultarik sortu", "No source available": "Ez dago iturririk eskuragarri", @@ -782,6 +825,7 @@ "None": "Bat ere ez", "Not factually correct": "Ez da faktikoki zuzena", "Not helpful": "Ez da lagungarria", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Oharra: Gutxieneko puntuazio bat ezartzen baduzu, bilaketak gutxieneko puntuazioa baino handiagoa edo berdina duten dokumentuak soilik itzuliko ditu.", "Notes": "Oharrak", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Karaktere alfanumerikoak eta marratxoak soilik onartzen dira", "Only alphanumeric characters and hyphens are allowed in the command string.": "Karaktere alfanumerikoak eta marratxoak soilik onartzen dira komando katean.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Bildumak soilik edita daitezke, sortu ezagutza-base berri bat dokumentuak editatzeko/gehitzeko.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Baimena duten erabiltzaile eta talde hautatuek soilik sar daitezke", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ui! URLa ez da baliozkoa. Mesedez, egiaztatu eta saiatu berriro.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ui! Oraindik fitxategiak kargatzen ari dira. Mesedez, itxaron karga amaitu arte.", @@ -849,6 +894,7 @@ "Pipelines": "Pipeline-ak", "Pipelines Not Detected": "Ez da Pipeline-rik detektatu", "Pipelines Valves": "Pipeline balbulak", + "Plain text (.md)": "", "Plain text (.txt)": "Testu laua (.txt)", "Playground": "Jolaslekua", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Irakurri ozen", "Reasoning Effort": "", + "Record": "", "Record voice": "Grabatu ahotsa", "Redirecting you to Open WebUI Community": "OpenWebUI Komunitatera berbideratzen", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "Gorde etiketa", "Saved": "Gordeta", "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": "Txat erregistroak zuzenean zure nabigatzailearen biltegian gordetzea ez da jadanik onartzen. Mesedez, hartu une bat zure txat erregistroak deskargatu eta ezabatzeko beheko botoia sakatuz. Ez kezkatu, zure txat erregistroak erraz inportatu ditzakezu berriro backendera honen bidez", - "Scroll to bottom when switching between branches": "Joan behera adarren artean aldatzean", + "Scroll On Branch Change": "", "Search": "Bilatu", "Search a model": "Bilatu modelo bat", "Search Base": "Bilaketa oinarria", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" bilatzen", "Searching Knowledge for \"{{searchQuery}}\"": "\"{{searchQuery}}\"rentzako ezagutza bilatzen", + "Searching the web...": "", "Searxng Query URL": "Searxng kontsulta URLa", "See readme.md for instructions": "Ikusi readme.md argibideetarako", "See what's new": "Ikusi berritasunak", @@ -1140,7 +1188,6 @@ "Tools Access": "Tresnen sarbidea", "Tools are a function calling system with arbitrary code execution": "Tresnak kode arbitrarioa exekutatzeko funtzio deitzeko sistema bat dira", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Tresnek kode arbitrarioa exekutatzeko aukera ematen duen funtzio deitzeko sistema dute", "Tools have a function calling system that allows arbitrary code execution.": "Tresnek kode arbitrarioa exekutatzeko aukera ematen duen funtzio deitzeko sistema dute.", "Tools Public Sharing": "", "Top K": "Goiko K", @@ -1163,6 +1210,7 @@ "Unpin": "Kendu aingura", "Unravel secrets": "Askatu sekretuak", "Untagged": "Etiketatu gabea", + "Untitled": "", "Update": "Eguneratu", "Update and Copy Link": "Eguneratu eta kopiatu esteka", "Update for the latest features and improvements.": "Eguneratu azken ezaugarri eta hobekuntzak izateko.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Kargatu", "Upload a GGUF model": "Kargatu GGUF modelo bat", + "Upload Audio": "", "Upload directory": "Karga direktorioa", "Upload files": "Kargatu fitxategiak", "Upload Files": "Kargatu fitxategiak", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Idatzi 50 hitzeko laburpen bat [gaia edo gako-hitza] laburbiltzen duena.", "Write something...": "Idatzi zerbait...", "Write your model template content here": "Idatzi hemen zure modelo txantiloi edukia", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Atzo", "You": "Zu", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Gehienez {{maxCount}} fitxategirekin txateatu dezakezu aldi berean.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "LLMekin dituzun interakzioak pertsonalizatu ditzakezu memoriak gehituz beheko 'Kudeatu' botoiaren bidez, lagungarriagoak eta zuretzat egokituagoak eginez.", "You cannot upload an empty file.": "Ezin duzu fitxategi huts bat kargatu.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "Ez duzu fitxategiak kargatzeko baimenik.", "You have no archived conversations.": "Ez duzu artxibatutako elkarrizketarik.", "You have shared this chat": "Txat hau partekatu duzu", diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json index 0a6585047..56960e284 100644 --- a/src/lib/i18n/locales/fa-IR/translation.json +++ b/src/lib/i18n/locales/fa-IR/translation.json @@ -1,172 +1,180 @@ { - "-1 for no limit, or a positive integer for a specific limit": "", + "-1 for no limit, or a positive integer for a specific limit": "-1 برای بدون محدودیت، یا یک عدد مثبت برای محدودیت مشخص", "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' یا '-1' برای غیر فعال کردن انقضا.", - "(e.g. `sh webui.sh --api --api-auth username_password`)": "", + "(e.g. `sh webui.sh --api --api-auth username_password`)": "(مثال: `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)", "(latest)": "(آخرین)", - "(Ollama)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", + "(Ollama)": "(ollama)", "{{ models }}": "{{ models }}", - "{{COUNT}} Available Tools": "", - "{{COUNT}} hidden lines": "", - "{{COUNT}} Replies": "", + "{{COUNT}} Available Tools": "{{COUNT}} ابزار موجود", + "{{COUNT}} hidden lines": "{{COUNT}} خط پنهان", + "{{COUNT}} Replies": "{{COUNT}} پاسخ", "{{user}}'s Chats": "{{user}} گفتگوهای", "{{webUIName}} Backend Required": "بکند {{webUIName}} نیاز است.", - "*Prompt node ID(s) are required for image generation": "", - "A new version (v{{LATEST_VERSION}}) is now available.": "", + "*Prompt node ID(s) are required for image generation": "*شناسه(های) گره پرامپت برای تولید تصویر مورد نیاز است", + "A new version (v{{LATEST_VERSION}}) is now available.": "نسخه جدید (v{{LATEST_VERSION}}) در دسترس است.", "A task model is used when performing tasks such as generating titles for chats and web search queries": "یک مدل وظیفه هنگام انجام وظایف مانند تولید عناوین برای چت ها و نمایش های جستجوی وب استفاده می شود.", "a user": "یک کاربر", "About": "درباره", - "Accept autocomplete generation / Jump to prompt variable": "", - "Access": "", - "Access Control": "", - "Accessible to all users": "", + "Accept autocomplete generation / Jump to prompt variable": "پذیرش تکمیل خودکار / پرش به متغیر پرامپت", + "Access": "دسترسی", + "Access Control": "کنترل دسترسی", + "Accessible to all users": "قابل دسترسی برای همه کاربران", "Account": "حساب کاربری", "Account Activation Pending": "فعال\u200cسازی حساب در حال انتظار", "Accurate information": "اطلاعات دقیق", "Actions": "کنش\u200cها", - "Activate": "", - "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "", + "Activate": "فعال کردن", + "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "این دستور را با تایپ \"/{{COMMAND}}\" در ورودی چت فعال کنید.", "Active Users": "کاربران فعال", "Add": "اضافه کردن", - "Add a model ID": "", + "Add a model ID": "افزودن شناسه مدل", "Add a short description about what this model does": "افزودن توضیحات کوتاه در مورد انچه که این مدل انجام می دهد", "Add a tag": "افزودن یک برچسب", "Add Arena Model": "افزودن مدل Arena", - "Add Connection": "", + "Add Connection": "افزودن اتصال", "Add Content": "افزودن محتوا", "Add content here": "محتوا را اینجا اضافه کنید", "Add custom prompt": "افزودن یک درخواست سفارشی", "Add Files": "افزودن فایل\u200cها", - "Add Group": "", + "Add Group": "افزودن گروه", "Add Memory": "افزودن حافظه", "Add Model": "افزودن مدل", - "Add Reaction": "", + "Add Reaction": "افزودن واکنش", "Add Tag": "افزودن برچسب", "Add Tags": "افزودن برچسب\u200cها", "Add text content": "افزودن محتوای متنی", "Add User": "افزودن کاربر", - "Add User Group": "", + "Add User Group": "افزودن گروه کاربری", "Adjusting these settings will apply changes universally to all users.": "با تنظیم این تنظیمات، تغییرات به طور کلی برای همه کاربران اعمال می\u200cشود.", "admin": "مدیر", "Admin": "مدیر", "Admin Panel": "پنل مدیریت", "Admin Settings": "تنظیمات مدیریت", - "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "", + "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "مدیران همیشه به تمام ابزارها دسترسی دارند؛ کاربران نیاز به ابزارهای اختصاص داده شده برای هر مدل در فضای کاری دارند.", "Advanced Parameters": "پارامترهای پیشرفته", "Advanced Params": "پارام\u200cهای پیشرفته", - "All": "", + "All": "همه", "All Documents": "همهٔ سند\u200cها", - "All models deleted successfully": "", - "Allow Call": "", - "Allow Chat Controls": "", - "Allow Chat Delete": "", + "All models deleted successfully": "همه مدل\u200cها با موفقیت حذف شدند", + "Allow Call": "اجازه تماس", + "Allow Chat Controls": "اجازه کنترل\u200cهای گفتگو", + "Allow Chat Delete": "اجازه حذف گفتگو", "Allow Chat Deletion": "اجازهٔ حذف گفتگو", - "Allow Chat Edit": "", - "Allow File Upload": "", - "Allow Multiple Models in Chat": "", - "Allow non-local voices": "", - "Allow Speech to Text": "", + "Allow Chat Edit": "اجازه ویرایش گفتگو", + "Allow Chat Export": "", + "Allow Chat Share": "", + "Allow File Upload": "اجازه بارگذاری فایل", + "Allow Multiple Models in Chat": "اجازه استفاده از چند مدل در گفتگو", + "Allow non-local voices": "اجازه صداهای غیر محلی", + "Allow Speech to Text": "اجازه تبدیل گفتار به متن", "Allow Temporary Chat": "اجازهٔ گفتگوی موقتی", - "Allow Text to Speech": "", + "Allow Text to Speech": "اجازه تبدیل متن به گفتار", "Allow User Location": "اجازهٔ موقعیت مکانی کاربر", - "Allow Voice Interruption in Call": "", - "Allowed Endpoints": "", + "Allow Voice Interruption in Call": "اجازه قطع صدا در تماس", + "Allowed Endpoints": "نقاط پایانی مجاز", "Already have an account?": "از قبل حساب کاربری دارید؟", - "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "", - "Always": "", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", - "Amazing": "", + "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "جایگزینی برای top_p و هدف آن اطمینان از تعادل کیفیت و تنوع است. پارامتر p نشان\u200cدهنده حداقل احتمال برای در نظر گرفتن یک توکن نسبت به احتمال محتمل\u200cترین توکن است. به عنوان مثال، با p=0.05 و محتمل\u200cترین توکن با احتمال 0.9، لاگیت\u200cهای با مقدار کمتر از 0.045 فیلتر می\u200cشوند.", + "Always": "همیشه", + "Always Collapse Code Blocks": "همیشه بلوک\u200cهای کد را جمع کن", + "Always Expand Details": "همیشه جزئیات را گسترش بده", + "Always Play Notification Sound": "", + "Amazing": "شگفت\u200cانگیز", "an assistant": "یک دستیار", - "Analyzed": "", - "Analyzing...": "", + "Analyzed": "تحلیل شده", + "Analyzing...": "در حال تحلیل...", "and": "و", "and {{COUNT}} more": "و {{COUNT}} مورد دیگر", "and create a new shared link.": "و یک پیوند اشتراک\u200cگذاری جدید ایجاد کنید.", - "Android": "", + "Android": "اندروید", "API Base URL": "نشانی پایهٔ API", "API Key": "کلید API", "API Key created.": "کلید API ساخته شد.", - "API Key Endpoint Restrictions": "", + "API Key Endpoint Restrictions": "محدودیت\u200cهای نقطه پایانی کلید API", "API keys": "کلیدهای API", - "Application DN": "", - "Application DN Password": "", - "applies to all users with the \"user\" role": "", + "Application DN": "DN برنامه", + "Application DN Password": "رمز عبور DN برنامه", + "applies to all users with the \"user\" role": "برای همه کاربران با نقش \"کاربر\" اعمال می\u200cشود", "April": "آوریل", "Archive": "بایگانی", "Archive All Chats": "بایگانی همه گفتگوها", "Archived Chats": "گفتگوهای بایگانی\u200cشده", - "archived-chat-export": "", - "Are you sure you want to clear all memories? This action cannot be undone.": "", - "Are you sure you want to delete this channel?": "", - "Are you sure you want to delete this message?": "", - "Are you sure you want to unarchive all archived chats?": "", + "archived-chat-export": "خروجی-گفتگوی-بایگانی-شده", + "Are you sure you want to clear all memories? This action cannot be undone.": "آیا مطمئن هستید که می\u200cخواهید تمام حافظه\u200cها را پاک کنید؟ این عمل قابل بازگشت نیست.", + "Are you sure you want to delete this channel?": "آیا مطمئن هستید که می\u200cخواهید این کانال را حذف کنید؟", + "Are you sure you want to delete this message?": "آیا مطمئن هستید که می\u200cخواهید این پیام را حذف کنید؟", + "Are you sure you want to unarchive all archived chats?": "آیا مطمئن هستید که می\u200cخواهید همه گفتگوهای بایگانی شده را از بایگانی خارج کنید؟", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "مطمئنید؟", - "Arena Models": "", - "Artifacts": "", - "Ask": "", + "Arena Models": "مدل\u200cهای آرنا", + "Artifacts": "مصنوعات", + "Ask": "بپرس", "Ask a question": "سوالی بپرسید", "Assistant": "دستیار", - "Attach file from knowledge": "", + "Attach file from knowledge": "پیوست فایل از دانش", "Attention to detail": "دقیق", - "Attribute for Mail": "", - "Attribute for Username": "", + "Attribute for Mail": "ویژگی برای ایمیل", + "Attribute for Username": "ویژگی برای نام کاربری", "Audio": "صدا", "August": "آگوست", - "Auth": "", - "Authenticate": "", - "Authentication": "", - "Auto": "", + "Auth": "احراز هویت", + "Authenticate": "احراز هویت", + "Authentication": "احراز هویت", + "Auto": "خودکار", "Auto-Copy Response to Clipboard": "کپی خودکار پاسخ به کلیپ بورد", "Auto-playback response": "پخش خودکار پاسخ", - "Autocomplete Generation": "", - "Autocomplete Generation Input Max Length": "", - "Automatic1111": "", - "AUTOMATIC1111 Api Auth String": "", + "Autocomplete Generation": "تولید تکمیل خودکار", + "Autocomplete Generation Input Max Length": "حداکثر طول ورودی تولید تکمیل خودکار", + "Automatic1111": "اتوماتیک1111", + "AUTOMATIC1111 Api Auth String": "رشته احراز هویت API اتوماتیک1111", "AUTOMATIC1111 Base URL": "پایه URL AUTOMATIC1111 ", "AUTOMATIC1111 Base URL is required.": "به URL پایه AUTOMATIC1111 مورد نیاز است.", "Available list": "فهرست دردسترس", - "Available Tools": "", + "Available Tools": "ابزارهای موجود", "available!": "در دسترس!", - "Awful": "", + "Awful": "وحشتناک", "Azure AI Speech": "سخنگوی هوش\u200cمصنوعی Azure", "Azure Region": "منطقهٔ Azure", "Back": "بازگشت", "Bad Response": "پاسخ خوب نیست", "Banners": "بنر", "Base Model (From)": "مدل پایه (از)", - "Batch Size (num_batch)": "", + "Base URL": "", + "Batch Size (num_batch)": "اندازه دسته (num_batch)", "before": "قبل", "Being lazy": "حالت سازنده", - "Beta": "", - "Bing Search V7 Endpoint": "", - "Bing Search V7 Subscription Key": "", - "Bocha Search API Key": "", - "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Beta": "بتا", + "Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7", + "Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7", + "Bocha Search API Key": "کلید API جستجوی Bocha", + "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "تقویت یا جریمه توکن\u200cهای خاص برای پاسخ\u200cهای محدود. مقادیر بایاس بین -100 و 100 (شامل) محدود خواهند شد. (پیش\u200cفرض: هیچ)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "کلید API جستجوی شجاع", - "By {{name}}": "", - "Bypass Embedding and Retrieval": "", - "Calendar": "", - "Call": "", - "Call feature is not supported when using Web STT engine": "", + "By {{name}}": "توسط {{name}}", + "Bypass Embedding and Retrieval": "دور زدن جاسازی و بازیابی", + "Calendar": "تقویم", + "Call": "تماس", + "Call feature is not supported when using Web STT engine": "ویژگی تماس هنگام استفاده از موتور Web STT پشتیبانی نمی\u200cشود", "Camera": "دوربین", "Cancel": "لغو", "Capabilities": "قابلیت", - "Capture": "", - "Certificate Path": "", + "Capture": "ضبط", + "Capture Audio": "", + "Certificate Path": "مسیر گواهینامه", "Change Password": "تغییر رمز عبور", - "Channel Name": "", - "Channels": "", - "Character": "", - "Character limit for autocomplete generation input": "", - "Chart new frontiers": "", + "Channel Name": "نام کانال", + "Channels": "کانال\u200cها", + "Character": "شخصیت", + "Character limit for autocomplete generation input": "محدودیت کاراکتر برای ورودی تولید تکمیل خودکار", + "Chart new frontiers": "ترسیم مرزهای جدید", "Chat": "گفتگو", "Chat Background Image": "تصویر پس\u200cزمینهٔ گفتگو", "Chat Bubble UI": "رابط کاربری حبابی گفتگو", "Chat Controls": "کنترل\u200cهای گفتگو", "Chat direction": "جهت\u200cگفتگو", "Chat Overview": "نمای کلی گفتگو", - "Chat Permissions": "", + "Chat Permissions": "مجوزهای گفتگو", "Chat Tags Auto-Generation": "تولید خودکار برچسب\u200cهای گفتگو", "Chats": "گفتگو\u200cها", "Check Again": "بررسی دوباره", @@ -175,72 +183,72 @@ "Choose a model before saving...": "قبل از ذخیره یک مدل را انتخاب کنید...", "Chunk Overlap": "همپوشانی تکه", "Chunk Size": "اندازه تکه", - "Ciphers": "", + "Ciphers": "رمزها", "Citation": "استناد", "Clear memory": "پاک کردن حافظه", - "Clear Memory": "", - "click here": "", - "Click here for filter guides.": "", + "Clear Memory": "پاک کردن حافظه", + "click here": "اینجا کلیک کنید", + "Click here for filter guides.": "برای راهنمای فیلترها اینجا کلیک کنید.", "Click here for help.": "برای کمک اینجا را کلیک کنید.", "Click here to": "برای کمک اینجا را کلیک کنید.", - "Click here to download user import template file.": "", - "Click here to learn more about faster-whisper and see the available models.": "", - "Click here to see available models.": "", + "Click here to download user import template file.": "برای دانلود فایل قالب واردات کاربر اینجا کلیک کنید.", + "Click here to learn more about faster-whisper and see the available models.": "برای یادگیری بیشتر درباره faster-whisper و دیدن مدل\u200cهای موجود اینجا کلیک کنید.", + "Click here to see available models.": "برای دیدن مدل\u200cهای موجود اینجا کلیک کنید.", "Click here to select": "برای انتخاب اینجا کلیک کنید", "Click here to select a csv file.": "برای انتخاب یک فایل csv اینجا را کلیک کنید.", - "Click here to select a py file.": "", - "Click here to upload a workflow.json file.": "", + "Click here to select a py file.": "برای انتخاب یک فایل py اینجا کلیک کنید.", + "Click here to upload a workflow.json file.": "برای آپلود فایل workflow.json اینجا کلیک کنید.", "click here.": "اینجا کلیک کنید.", "Click on the user role button to change a user's role.": "برای تغییر نقش کاربر، روی دکمه نقش کاربر کلیک کنید.", - "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "", + "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "دسترسی نوشتن در کلیپ\u200cبورد رد شد. لطفاً تنظیمات مرورگر خود را برای اعطای دسترسی لازم بررسی کنید.", "Clone": "کلون", - "Clone Chat": "", - "Clone of {{TITLE}}": "", + "Clone Chat": "کلون گفتگو", + "Clone of {{TITLE}}": "کلون {{TITLE}}", "Close": "بسته", - "Code execution": "", - "Code Execution": "", - "Code Execution Engine": "", - "Code Execution Timeout": "", - "Code formatted successfully": "", - "Code Interpreter": "", - "Code Interpreter Engine": "", - "Code Interpreter Prompt Template": "", - "Collapse": "", + "Code execution": "اجرای کد", + "Code Execution": "اجرای کد", + "Code Execution Engine": "موتور اجرای کد", + "Code Execution Timeout": "مهلت اجرای کد", + "Code formatted successfully": "کد با موفقیت قالب\u200cبندی شد", + "Code Interpreter": "مفسر کد", + "Code Interpreter Engine": "موتور مفسر کد", + "Code Interpreter Prompt Template": "قالب پرامپت مفسر کد", + "Collapse": "جمع کردن", "Collection": "مجموعه", - "Color": "", + "Color": "رنگ", "ComfyUI": "کومیوآی", - "ComfyUI API Key": "", + "ComfyUI API Key": "کلید API کومیوآی", "ComfyUI Base URL": "URL پایه کومیوآی", "ComfyUI Base URL is required.": "URL پایه کومیوآی الزامی است.", - "ComfyUI Workflow": "", - "ComfyUI Workflow Nodes": "", + "ComfyUI Workflow": "گردش کار کومیوآی", + "ComfyUI Workflow Nodes": "گره\u200cهای گردش کار کومیوآی", "Command": "دستور", - "Completions": "", + "Completions": "تکمیل\u200cها", "Concurrent Requests": "درخواست های همزمان", - "Configure": "", + "Configure": "پیکربندی", "Confirm": "تایید", "Confirm Password": "تایید رمز عبور", - "Confirm your action": "", - "Confirm your new password": "", - "Connect to your own OpenAI compatible API endpoints.": "", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", + "Confirm your action": "عملیات خود را تایید کنید", + "Confirm your new password": "رمز عبور جدید خود را تایید کنید", + "Connect to your own OpenAI compatible API endpoints.": "به نقاط پایانی API سازگار با OpenAI خود متصل شوید.", + "Connect to your own OpenAPI compatible external tool servers.": "به سرورهای ابزار خارجی سازگار با OpenAPI خود متصل شوید.", + "Connection failed": "اتصال ناموفق بود", + "Connection successful": "اتصال موفقیت\u200cآمیز بود", "Connections": "ارتباطات", - "Connections saved successfully": "", - "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", + "Connections saved successfully": "ارتباطات با موفقیت ذخیره شدند", + "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "تلاش برای استدلال در مدل\u200cهای استدلالی را محدود می\u200cکند. فقط برای مدل\u200cهای استدلالی از ارائه\u200cدهندگان خاصی که از تلاش استدلالی پشتیبانی می\u200cکنند قابل اجراست.", "Contact Admin for WebUI Access": "برای دسترسی به WebUI با مدیر تماس بگیرید", "Content": "محتوا", - "Content Extraction Engine": "", + "Content Extraction Engine": "موتور استخراج محتوا", "Context Length": "طول زمینه", "Continue Response": "ادامه پاسخ", "Continue with {{provider}}": "با {{provider}} ادامه دهید", - "Continue with Email": "", - "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.": "", + "Continue with Email": "با ایمیل ادامه دهید", + "Continue with LDAP": "با LDAP ادامه دهید", + "Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "کنترل نحوه تقسیم متن پیام برای درخواست\u200cهای TTS. 'علامت\u200cگذاری' به جملات تقسیم می\u200cکند، 'پاراگراف\u200cها' به پاراگراف\u200cها تقسیم می\u200cکند و 'هیچ\u200cکدام' پیام را به عنوان یک رشته واحد نگه می\u200cدارد.", + "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "کنترل تکرار توالی\u200cهای توکن در متن تولید شده. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 1.1) ملایم\u200cتر خواهد بود. در 1، غیرفعال است.", "Controls": "کنترل\u200cها", - "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "", + "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "تعادل بین انسجام و تنوع خروجی را کنترل می\u200cکند. مقدار پایین\u200cتر منجر به متن متمرکزتر و منسجم\u200cتر می\u200cشود.", "Copied": "کپی شد", "Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!", "Copied to clipboard": "به بریده\u200cدان کپی\u200cشد", @@ -249,282 +257,306 @@ "Copy last code block": "کپی آخرین بلوک کد", "Copy last response": "کپی آخرین پاسخ", "Copy Link": "کپی لینک", - "Copy to clipboard": "", + "Copy to clipboard": "کپی به کلیپ\u200cبورد", "Copying to clipboard was successful!": "کپی کردن در کلیپ بورد با موفقیت انجام شد!", - "CORS must be properly configured by the provider to allow requests from Open WebUI.": "", - "Create": "", - "Create a knowledge base": "", + "CORS must be properly configured by the provider to allow requests from Open WebUI.": "CORS باید توسط ارائه\u200cدهنده به درستی پیکربندی شود تا درخواست\u200cها از Open WebUI مجاز باشند.", + "Create": "ایجاد", + "Create a knowledge base": "ایجاد یک پایگاه دانش", "Create a model": "ایجاد یک مدل", "Create Account": "ساخت حساب کاربری", - "Create Admin Account": "", - "Create Channel": "", - "Create Group": "", - "Create Knowledge": "", + "Create Admin Account": "ایجاد حساب مدیر", + "Create Channel": "ایجاد کانال", + "Create Group": "ایجاد گروه", + "Create Knowledge": "ایجاد دانش", "Create new key": "ساخت کلید جدید", - "Create new secret key": "ساخت کلید gehez جدید", + "Create new secret key": "ساخت کلید مخفی جدید", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "ایجاد شده در", "Created At": "ایجاد شده در", "Created by": "ایجاد شده توسط", "CSV Import": "درون\u200cریزی CSV", - "Ctrl+Enter to Send": "", + "Ctrl+Enter to Send": "Ctrl+Enter برای ارسال", "Current Model": "مدل فعلی", "Current Password": "رمز عبور فعلی", "Custom": "دلخواه", - "Danger Zone": "", + "Danger Zone": "منطقه خطر", "Dark": "تیره", "Database": "پایگاه داده", "December": "دسامبر", "Default": "پیشفرض", - "Default (Open AI)": "", + "Default (Open AI)": "پیشفرض (Open AI)", "Default (SentenceTransformers)": "پیشفرض (SentenceTransformers)", "Default mode works with a wider range of models by calling tools once before execution. Native mode leverages the model’s built-in tool-calling capabilities, but requires the model to inherently support this feature.": "", "Default Model": "مدل پیشفرض", "Default model updated": "مدل پیشفرض به\u200cروزرسانی شد", - "Default Models": "", - "Default permissions": "", - "Default permissions updated successfully": "", + "Default Models": "مدل\u200cهای پیش\u200cفرض", + "Default permissions": "مجوزهای پیش\u200cفرض", + "Default permissions updated successfully": "مجوزهای پیش\u200cفرض با موفقیت به\u200cروز شدند", "Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض", - "Default to 389 or 636 if TLS is enabled": "", - "Default to ALL": "", - "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "", + "Default to 389 or 636 if TLS is enabled": "پیش\u200cفرض به 389 یا 636 اگر TLS فعال باشد", + "Default to ALL": "پیش\u200cفرض به همه", + "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "پیش\u200cفرض به بازیابی قطعه\u200cای برای استخراج محتوای متمرکز و مرتبط، این برای اکثر موارد توصیه می\u200cشود.", "Default User Role": "نقش کاربر پیش فرض", "Delete": "حذف", "Delete a model": "حذف یک مدل", "Delete All Chats": "حذف همه گفتگوها", - "Delete All Models": "", + "Delete All Models": "حذف همه مدل\u200cها", "Delete chat": "حذف گپ", "Delete Chat": "حذف گپ", - "Delete chat?": "", - "Delete folder?": "", - "Delete function?": "", - "Delete Message": "", - "Delete message?": "", - "Delete prompt?": "", + "Delete chat?": "گفتگو حذف شود؟", + "Delete folder?": "پوشه حذف شود؟", + "Delete function?": "تابع حذف شود؟", + "Delete Message": "حذف پیام", + "Delete message?": "پیام حذف شود؟", + "Delete note?": "", + "Delete prompt?": "پرامپت حذف شود؟", "delete this link": "حذف این لینک", - "Delete tool?": "", + "Delete tool?": "ابزار حذف شود؟", "Delete User": "حذف کاربر", "Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد", "Deleted {{name}}": "حذف شده {{name}}", - "Deleted User": "", - "Describe your knowledge base and objectives": "", + "Deleted User": "کاربر حذف شده", + "Describe your knowledge base and objectives": "پایگاه دانش و اهداف خود را توصیف کنید", "Description": "توضیحات", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "تشخیص خودکار مصنوعات", "Didn't fully follow instructions": "نمی تواند دستورالعمل را کامل پیگیری کند", - "Direct": "", - "Direct Connections": "", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", - "Direct Connections settings updated": "", - "Direct Tool Servers": "", - "Disabled": "", - "Discover a function": "", + "Direct": "مستقیم", + "Direct Connections": "اتصالات مستقیم", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "اتصالات مستقیم به کاربران اجازه می\u200cدهد به نقاط پایانی API سازگار با OpenAI خود متصل شوند.", + "Direct Connections settings updated": "تنظیمات اتصالات مستقیم به\u200cروزرسانی شد", + "Direct Tool Servers": "سرورهای ابزار مستقیم", + "Disabled": "غیرفعال", + "Discover a function": "کشف یک تابع", "Discover a model": "کشف یک مدل", "Discover a prompt": "یک اعلان را کشف کنید", - "Discover a tool": "", - "Discover how to use Open WebUI and seek support from the community.": "", - "Discover wonders": "", - "Discover, download, and explore custom functions": "", + "Discover a tool": "کشف یک ابزار", + "Discover how to use Open WebUI and seek support from the community.": "نحوه استفاده از Open WebUI را کشف کنید و از انجمن پشتیبانی بگیرید.", + "Discover wonders": "کشف شگفتی\u200cها", + "Discover, download, and explore custom functions": "کشف، دانلود و کاوش توابع سفارشی", "Discover, download, and explore custom prompts": "پرامپت\u200cهای سفارشی را کشف، دانلود و کاوش کنید", - "Discover, download, and explore custom tools": "", + "Discover, download, and explore custom tools": "کشف، دانلود و کاوش ابزارهای سفارشی", "Discover, download, and explore model presets": "پیش تنظیمات مدل را کشف، دانلود و کاوش کنید", - "Dismissible": "", - "Display": "", - "Display Emoji in Call": "", + "Dismissible": "قابل رد کردن", + "Display": "نمایش", + "Display Emoji in Call": "نمایش اموجی در تماس", "Display the username instead of You in the Chat": "نمایش نام کاربری به جای «شما» در چت", - "Displays citations in the response": "", - "Dive into knowledge": "", - "Do not install functions from sources you do not fully trust.": "", - "Do not install tools from sources you do not fully trust.": "", - "Docling": "", - "Docling Server URL required.": "", + "Displays citations in the response": "نمایش استنادها در پاسخ", + "Dive into knowledge": "غوطه\u200cور شدن در دانش", + "Do not install functions from sources you do not fully trust.": "توابع را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", + "Do not install tools from sources you do not fully trust.": "ابزارها را از منابعی که کاملاً به آنها اعتماد ندارید نصب نکنید.", + "Docling": "داکلینگ", + "Docling Server URL required.": "آدرس سرور داکلینگ مورد نیاز است.", "Document": "سند", - "Document Intelligence": "", - "Document Intelligence endpoint and key required.": "", - "Documentation": "", + "Document Intelligence": "هوش اسناد", + "Document Intelligence endpoint and key required.": "نقطه پایانی و کلید هوش اسناد مورد نیاز است.", + "Documentation": "مستندات", "Documents": "اسناد", "does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.", - "Domain Filter List": "", + "Domain Filter List": "لیست فیلتر دامنه", "Don't have an account?": "حساب کاربری ندارید؟", - "don't install random functions from sources you don't trust.": "", - "don't install random tools from sources you don't trust.": "", + "don't install random functions from sources you don't trust.": "توابع تصادفی را از منابعی که به آنها اعتماد ندارید نصب نکنید.", + "don't install random tools from sources you don't trust.": "ابزارهای تصادفی را از منابعی که به آنها اعتماد ندارید نصب نکنید.", "Don't like the style": "نظری ندارید؟", - "Done": "", + "Done": "انجام شد", "Download": "دانلود کن", - "Download as SVG": "", + "Download as SVG": "دانلود به صورت SVG", "Download canceled": "دانلود لغو شد", "Download Database": "دانلود پایگاه داده", - "Drag and drop a file to upload or select a file to view": "", - "Draw": "", - "Drop any files here to add to the conversation": "هر فایلی را اینجا رها کنید تا به مکالمه اضافه شود", + "Drag and drop a file to upload or select a file to view": "یک فایل را برای آپلود بکشید و رها کنید یا برای مشاهده یک فایل را انتخاب کنید", + "Draw": "رسم کردن", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.", - "e.g. \"json\" or a JSON schema": "", - "e.g. 60": "", - "e.g. A filter to remove profanity from text": "", - "e.g. My Filter": "", - "e.g. My Tools": "", - "e.g. my_filter": "", - "e.g. my_tools": "", - "e.g. Tools for performing various operations": "", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g. \"json\" or a JSON schema": "مثلا \"json\" یا یک طرح JSON", + "e.g. 60": "مثلا 60", + "e.g. A filter to remove profanity from text": "مثلا فیلتری برای حذف ناسزا از متن", + "e.g. My Filter": "مثلا فیلتر من", + "e.g. My Tools": "مثلا ابزارهای من", + "e.g. my_filter": "مثلا my_filter", + "e.g. my_tools": "مثلا my_tools", + "e.g. Tools for performing various operations": "مثلا ابزارهایی برای انجام عملیات مختلف", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "مثلا en-US,ja-JP (برای تشخیص خودکار خالی بگذارید)", "Edit": "ویرایش", - "Edit Arena Model": "", - "Edit Channel": "", - "Edit Connection": "", - "Edit Default Permissions": "", - "Edit Memory": "", + "Edit Arena Model": "ویرایش مدل آرنا", + "Edit Channel": "ویرایش کانال", + "Edit Connection": "ویرایش اتصال", + "Edit Default Permissions": "ویرایش مجوزهای پیش\u200cفرض", + "Edit Memory": "ویرایش حافظه", "Edit User": "ویرایش کاربر", - "Edit User Group": "", - "ElevenLabs": "", + "Edit User Group": "ویرایش گروه کاربری", + "ElevenLabs": "الون\u200cلبز", "Email": "ایمیل", - "Embark on adventures": "", - "Embedding": "", - "Embedding Batch Size": "", + "Embark on adventures": "شروع ماجراجویی\u200cها", + "Embedding": "پیدائش", + "Embedding Batch Size": "اندازه دسته پیدائش", "Embedding Model": "مدل پیدائش", "Embedding Model Engine": "محرک مدل پیدائش", "Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید", - "Enable API Key": "", - "Enable autocomplete generation for chat messages": "", - "Enable Code Execution": "", - "Enable Code Interpreter": "", + "Enable API Key": "فعال\u200cسازی کلید API", + "Enable autocomplete generation for chat messages": "فعال\u200cسازی تولید تکمیل خودکار برای پیام\u200cهای چت", + "Enable Code Execution": "فعال\u200cسازی اجرای کد", + "Enable Code Interpreter": "فعال\u200cسازی مفسر کد", "Enable Community Sharing": "فعالسازی اشتراک انجمن", - "Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "", - "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.": "", - "Enable Message Rating": "", - "Enable Mirostat sampling for controlling perplexity.": "", + "Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "فعال\u200cسازی قفل حافظه (mlock) برای جلوگیری از تعویض داده\u200cهای مدل از RAM. این گزینه مجموعه صفحات کاری مدل را در RAM قفل می\u200cکند و اطمینان می\u200cدهد که به دیسک منتقل نمی\u200cشوند. این می\u200cتواند با جلوگیری از خطاهای صفحه و تضمین دسترسی سریع به داده\u200cها، عملکرد را حفظ کند.", + "Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "فعال\u200cسازی نگاشت حافظه (mmap) برای بارگیری داده\u200cهای مدل. این گزینه به سیستم اجازه می\u200cدهد از فضای دیسک به عنوان گسترش RAM استفاده کند با در نظر گرفتن فایل\u200cهای دیسک مانند اینکه در RAM هستند. این می\u200cتواند با اجازه دادن به دسترسی سریع\u200cتر به داده\u200cها، عملکرد مدل را بهبود بخشد. با این حال، ممکن است با همه سیستم\u200cها به درستی کار نکند و می\u200cتواند مقدار قابل توجهی از فضای دیسک را مصرف کند.", + "Enable Message Rating": "فعال\u200cسازی امتیازدهی پیام", + "Enable Mirostat sampling for controlling perplexity.": "فعال\u200cسازی نمونه\u200cبرداری میروستات برای کنترل سردرگمی", "Enable New Sign Ups": "فعال کردن ثبت نام\u200cهای جدید", - "Enabled": "", - "Enforce Temporary Chat": "", + "Enabled": "فعال شده", + "Enforce Temporary Chat": "اجبار چت موقت", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "اطمینان حاصل کنید که فایل CSV شما شامل چهار ستون در این ترتیب است: نام، ایمیل، رمز عبور، نقش.", "Enter {{role}} message here": "پیام {{role}} را اینجا وارد کنید", "Enter a detail about yourself for your LLMs to recall": "برای ذخیره سازی اطلاعات خود، یک توضیح کوتاه درباره خود را وارد کنید", - "Enter api auth string (e.g. username:password)": "", - "Enter Application DN": "", - "Enter Application DN Password": "", - "Enter Bing Search V7 Endpoint": "", - "Enter Bing Search V7 Subscription Key": "", - "Enter Bocha Search API Key": "", + "Enter api auth string (e.g. username:password)": "رشته احراز هویت api را وارد کنید (مثلا username:password)", + "Enter Application DN": "DN برنامه را وارد کنید", + "Enter Application DN Password": "رمز عبور DN برنامه را وارد کنید", + "Enter Bing Search V7 Endpoint": "نقطه پایانی جستجوی Bing V7 را وارد کنید", + "Enter Bing Search V7 Subscription Key": "کلید اشتراک جستجوی Bing V7 را وارد کنید", + "Enter Bocha Search API Key": "کلید API جستجوی Bocha را وارد کنید", "Enter Brave Search API Key": "کلید API جستجوی شجاع را وارد کنید", - "Enter certificate path": "", - "Enter CFG Scale (e.g. 7.0)": "", + "Enter certificate path": "مسیر گواهینامه را وارد کنید", + "Enter CFG Scale (e.g. 7.0)": "مقیاس CFG را وارد کنید (مثال: 7.0)", "Enter Chunk Overlap": "مقدار Chunk Overlap را وارد کنید", "Enter Chunk Size": "مقدار Chunk Size را وارد کنید", - "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", - "Enter description": "", - "Enter Docling Server URL": "", - "Enter Document Intelligence Endpoint": "", - "Enter Document Intelligence Key": "", - "Enter domains separated by commas (e.g., example.com,site.org)": "", - "Enter Exa API Key": "", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", - "Enter Github Raw URL": "ادرس Github Raw را وارد کنید", + "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "جفت\u200cهای \"توکن:مقدار_بایاس\" را با کاما جدا شده وارد کنید (مثال: 5432:100, 413:-100)", + "Enter description": "توضیحات را وارد کنید", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", + "Enter Docling Server URL": "آدرس سرور Docling را وارد کنید", + "Enter Document Intelligence Endpoint": "نقطه پایانی هوش سند را وارد کنید", + "Enter Document Intelligence Key": "کلید هوش سند را وارد کنید", + "Enter domains separated by commas (e.g., example.com,site.org)": "دامنه\u200cها را با کاما جدا کنید (مثال: example.com,site.org)", + "Enter Exa API Key": "کلید API اکسا را وارد کنید", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", + "Enter Firecrawl API Base URL": "آدرس پایه API فایرکراول را وارد کنید", + "Enter Firecrawl API Key": "کلید API فایرکراول را وارد کنید", + "Enter Github Raw URL": "آدرس Github Raw را وارد کنید", "Enter Google PSE API Key": "کلید API گوگل PSE را وارد کنید", "Enter Google PSE Engine Id": "شناسه موتور PSE گوگل را وارد کنید", "Enter Image Size (e.g. 512x512)": "اندازه تصویر را وارد کنید (مثال: 512x512)", - "Enter Jina API Key": "", - "Enter Jupyter Password": "", - "Enter Jupyter Token": "", - "Enter Jupyter URL": "", - "Enter Kagi Search API Key": "", - "Enter Key Behavior": "", + "Enter Jina API Key": "کلید API جینا را وارد کنید", + "Enter Jupyter Password": "رمز عبور ژوپیتر را وارد کنید", + "Enter Jupyter Token": "توکن ژوپیتر را وارد کنید", + "Enter Jupyter URL": "آدرس ژوپیتر را وارد کنید", + "Enter Kagi Search API Key": "کلید API جستجوی کاگی را وارد کنید", + "Enter Key Behavior": "رفتار کلید را وارد کنید", "Enter language codes": "کد زبان را وارد کنید", - "Enter Mistral API Key": "", - "Enter Model ID": "", + "Enter Mistral API Key": "کلید API میسترال را وارد کنید", + "Enter Model ID": "شناسه مدل را وارد کنید", "Enter model tag (e.g. {{modelTag}})": "تگ مدل را وارد کنید (مثلا {{modelTag}})", - "Enter Mojeek Search API Key": "", - "Enter Number of Steps (e.g. 50)": "تعداد گام ها را وارد کنید (مثال: 50)", - "Enter Perplexity API Key": "", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", - "Enter proxy URL (e.g. https://user:password@host:port)": "", - "Enter reasoning effort": "", - "Enter Sampler (e.g. Euler a)": "", - "Enter Scheduler (e.g. Karras)": "", + "Enter Mojeek Search API Key": "کلید API جستجوی موجیک را وارد کنید", + "Enter New Password": "", + "Enter Number of Steps (e.g. 50)": "تعداد گام\u200cها را وارد کنید (مثال: 50)", + "Enter Perplexity API Key": "کلید API پرپلکسیتی را وارد کنید", + "Enter Playwright Timeout": "مهلت پلی\u200cرایت را وارد کنید", + "Enter Playwright WebSocket URL": "آدرس وب\u200cسوکت پلی\u200cرایت را وارد کنید", + "Enter proxy URL (e.g. https://user:password@host:port)": "آدرس پراکسی را وارد کنید (مثال: https://user:password@host:port)", + "Enter reasoning effort": "تلاش استدلال را وارد کنید", + "Enter Sampler (e.g. Euler a)": "نمونه\u200cگیر را وارد کنید (مثال: Euler a)", + "Enter Scheduler (e.g. Karras)": "زمان\u200cبند را وارد کنید (مثال: Karras)", "Enter Score": "امتیاز را وارد کنید", - "Enter SearchApi API Key": "", - "Enter SearchApi Engine": "", + "Enter SearchApi API Key": "کلید API جستجو را وارد کنید", + "Enter SearchApi Engine": "موتور جستجو را وارد کنید", "Enter Searxng Query URL": "نشانی وب پرسوجوی Searxng را وارد کنید", - "Enter Seed": "", - "Enter SerpApi API Key": "", - "Enter SerpApi Engine": "", - "Enter Serper API Key": "کلید API Serper را وارد کنید", - "Enter Serply API Key": "", - "Enter Serpstack API Key": "کلید API Serpstack را وارد کنید", - "Enter server host": "", - "Enter server label": "", - "Enter server port": "", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Seed": "مقدار بذر را وارد کنید", + "Enter SerpApi API Key": "کلید API سرپ را وارد کنید", + "Enter SerpApi Engine": "موتور سرپ را وارد کنید", + "Enter Serper API Key": "کلید API سرپر را وارد کنید", + "Enter Serply API Key": "کلید API سرپلی را وارد کنید", + "Enter Serpstack API Key": "کلید API سرپ\u200cاستک را وارد کنید", + "Enter server host": "میزبان سرور را وارد کنید", + "Enter server label": "برچسب سرور را وارد کنید", + "Enter server port": "پورت سرور را وارد کنید", + "Enter Sougou Search API sID": "شناسه API جستجوی سوگو را وارد کنید", + "Enter Sougou Search API SK": "کلید SK جستجوی سوگو را وارد کنید", "Enter stop sequence": "توالی توقف را وارد کنید", - "Enter system prompt": "", - "Enter system prompt here": "", - "Enter Tavily API Key": "", - "Enter Tavily Extract Depth": "", - "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "", - "Enter Tika Server URL": "", - "Enter timeout in seconds": "", - "Enter to Send": "", + "Enter system prompt": "پرامپت سیستم را وارد کنید", + "Enter system prompt here": "پرامپت سیستم را اینجا وارد کنید", + "Enter Tavily API Key": "کلید API تاویلی را وارد کنید", + "Enter Tavily Extract Depth": "عمق استخراج تاویلی را وارد کنید", + "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "آدرس عمومی رابط کاربری وب خود را وارد کنید. این آدرس برای تولید پیوندها در اعلان\u200cها استفاده خواهد شد.", + "Enter Tika Server URL": "آدرس سرور تیکا را وارد کنید", + "Enter timeout in seconds": "مهلت زمانی را به ثانیه وارد کنید", + "Enter to Send": "برای ارسال اینتر را بزنید", "Enter Top K": "مقدار Top K را وارد کنید", - "Enter Top K Reranker": "", + "Enter Top K Reranker": "مقدار Top K بازچینش\u200cگر را وارد کنید", "Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "مقدار URL را وارد کنید (مثال http://localhost:11434)", - "Enter your current password": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", + "Enter your current password": "رمز عبور فعلی خود را وارد کنید", "Enter Your Email": "ایمیل خود را وارد کنید", "Enter Your Full Name": "نام کامل خود را وارد کنید", - "Enter your message": "", - "Enter your name": "", - "Enter your new password": "", + "Enter your message": "پیام خود را وارد کنید", + "Enter your name": "نام خود را وارد کنید", + "Enter Your Name": "", + "Enter your new password": "رمز عبور جدید خود را وارد کنید", "Enter Your Password": "رمز عبور خود را وارد کنید", "Enter Your Role": "نقش خود را وارد کنید", - "Enter Your Username": "", - "Enter your webhook URL": "", + "Enter Your Username": "نام کاربری خود را وارد کنید", + "Enter your webhook URL": "آدرس وب\u200cهوک خود را وارد کنید", "Error": "خطا", - "ERROR": "", - "Error accessing Google Drive: {{error}}": "", - "Error uploading file: {{error}}": "", - "Evaluations": "", - "Exa API Key": "", - "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "", - "Example: ALL": "", - "Example: mail": "", - "Example: ou=users,dc=foo,dc=example": "", - "Example: sAMAccountName or uid or userPrincipalName": "", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "", - "Exclude": "", - "Execute code for analysis": "", - "Executing **{{NAME}}**...": "", - "Expand": "", + "ERROR": "خطا", + "Error accessing Google Drive: {{error}}": "خطا در دسترسی به گوگل درایو: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", + "Error uploading file: {{error}}": "خطا در بارگذاری فایل: {{error}}", + "Evaluations": "ارزیابی\u200cها", + "Exa API Key": "کلید API اکسا", + "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "مثال: (&(objectClass=inetOrgPerson)(uid=%s))", + "Example: ALL": "مثال: ALL", + "Example: mail": "مثال: mail", + "Example: ou=users,dc=foo,dc=example": "مثال: ou=users,dc=foo,dc=example", + "Example: sAMAccountName or uid or userPrincipalName": "مثال: sAMAccountName یا uid یا userPrincipalName", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "تعداد جایگاه\u200cهای مجاز در مجوز شما تمام شده است. لطفاً برای افزایش تعداد جایگاه\u200cها با پشتیبانی تماس بگیرید.", + "Exclude": "مستثنی کردن", + "Execute code for analysis": "اجرای کد برای تحلیل", + "Executing **{{NAME}}**...": "در حال اجرای **{{NAME}}**...", + "Expand": "گسترش", "Experimental": "آزمایشی", - "Explain": "", - "Explain this section to me in more detail": "", - "Explore the cosmos": "", - "Export": "برون\u200cریزی", - "Export All Archived Chats": "", - "Export All Chats (All Users)": "برون\u200cریزی همه گفتگو\u200cها (همه کاربران)", - "Export chat (.json)": "برون\u200cریزی گفتگو (json)", - "Export Chats": "برون\u200cریزی گفتگوها", + "Explain": "توضیح", + "Explain this section to me in more detail": "این بخش را با جزئیات بیشتر برای من توضیح دهید", + "Explore the cosmos": "کاوش کیهان", + "Export": "خروجی گرفتن", + "Export All Archived Chats": "خروجی گرفتن تمام گفتگوهای بایگانی شده", + "Export All Chats (All Users)": "خروجی گرفتن همه گفتگو\u200cها (همه کاربران)", + "Export chat (.json)": "خروجی گرفتن گفتگو (json)", + "Export Chats": "خروجی گرفتن گفتگوها", "Export Config to JSON File": "برون\u200cریزی پیکربندی به پروندهٔ JSON", "Export Functions": "برون\u200cریزی توابع", "Export Models": "برون\u200cریزی مدل\u200cها", - "Export Presets": "", + "Export Presets": "برون\u200cریزی پیش\u200cتنظیم\u200cها", "Export Prompts": "برون\u200cریزی پرامپت\u200cها", - "Export to CSV": "", + "Export to CSV": "برون\u200cریزی به CSV", "Export Tools": "برون\u200cریزی ابزارها", - "External": "", + "External": "خارجی", "External Models": "مدل\u200cهای بیرونی", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "خطا در افزودن پرونده", - "Failed to connect to {{URL}} OpenAPI tool server": "", + "Failed to connect to {{URL}} OpenAPI tool server": "خطا در اتصال به سرور ابزار OpenAPI {{URL}}", "Failed to create API Key.": "ایجاد کلید API با خطا مواجه شد.", - "Failed to fetch models": "", + "Failed to delete note": "", + "Failed to fetch models": "خطا در دریافت مدل\u200cها", + "Failed to load file content.": "", "Failed to read clipboard contents": "خواندن محتوای کلیپ بورد ناموفق بود", - "Failed to save connections": "", - "Failed to save models configuration": "", + "Failed to save connections": "خطا در ذخیره\u200cسازی اتصالات", + "Failed to save models configuration": "خطا در ذخیره\u200cسازی پیکربندی مدل\u200cها", "Failed to update settings": "خطا در به\u200cروزرسانی تنظیمات", "Failed to upload file.": "خطا در بارگذاری پرونده", - "Features": "", - "Features Permissions": "", + "Features": "ویژگی\u200cها", + "Features Permissions": "مجوزهای ویژگی\u200cها", "February": "فوریه", "Feedback History": "تاریخچهٔ بازخورد", - "Feedbacks": "", + "Feedbacks": "بازخوردها", "Feel free to add specific details": "اگر به دلخواه، معلومات خاصی اضافه کنید", "File": "پرونده", "File added successfully.": "پرونده با موفقیت افزوده شد.", @@ -533,405 +565,420 @@ "File not found.": "پرونده یافت نشد.", "File removed successfully.": "پرونده با موفقیت حذف شد.", "File size should not exceed {{maxSize}} MB.": "حجم پرونده نبایستی از {{maxSize}} MB بیشتر باشد.", - "File uploaded successfully": "", + "File uploaded successfully": "پرونده با موفقیت بارگذاری شد", "Files": "پرونده\u200cها", - "Filter is now globally disabled": "", - "Filter is now globally enabled": "", - "Filters": "", + "Filter is now globally disabled": "فیلتر به صورت سراسری غیرفعال شد", + "Filter is now globally enabled": "فیلتر به صورت سراسری فعال شد", + "Filters": "فیلترها", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "فانگ سرفیس شناسایی شد: نمی توان از نمایه شما به عنوان آواتار استفاده کرد. پیش فرض به عکس پروفایل پیش فرض برگشت داده شد.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "آدرس پایه API فایرکراول", + "Firecrawl API Key": "کلید API فایرکراول", "Fluidly stream large external response chunks": "تکه های پاسخ خارجی بزرگ را به صورت سیال پخش کنید", "Focus chat input": "فوکوس کردن ورودی گپ", - "Folder deleted successfully": "", - "Folder name cannot be empty": "", - "Folder name cannot be empty.": "", - "Folder name updated successfully": "", + "Folder deleted successfully": "پوشه با موفقیت حذف شد", + "Folder name cannot be empty.": "نام پوشه نمی\u200cتواند خالی باشد.", + "Folder name updated successfully": "نام پوشه با موفقیت به\u200cروز شد", "Followed instructions perfectly": "دستورالعمل ها را کاملا دنبال کرد", - "Forge new paths": "", - "Form": "", - "Format your variables using brackets like this:": "", - "Forwards system user session credentials to authenticate": "", + "Forge new paths": "مسیرهای جدید بسازید", + "Form": "فرم", + "Format your variables using brackets like this:": "متغیرهای خود را با استفاده از براکت به این شکل قالب\u200cبندی کنید:", + "Forwards system user session credentials to authenticate": "اعتبارنامه\u200cهای نشست کاربر سیستم را برای احراز هویت ارسال می\u200cکند", "Frequency Penalty": "مجازات فرکانس", - "Full Context Mode": "", - "Function": "", - "Function Calling": "", - "Function created successfully": "", - "Function deleted successfully": "", - "Function Description": "", - "Function ID": "", - "Function is now globally disabled": "", - "Function is now globally enabled": "", - "Function Name": "", - "Function updated successfully": "", - "Functions": "", - "Functions allow arbitrary code execution": "", - "Functions allow arbitrary code execution.": "", + "Full Context Mode": "حالت متن کامل", + "Function": "تابع", + "Function Calling": "فراخوانی تابع", + "Function created successfully": "تابع با موفقیت ایجاد شد", + "Function deleted successfully": "تابع با موفقیت حذف شد", + "Function Description": "توضیحات تابع", + "Function ID": "شناسه تابع", + "Function is now globally disabled": "تابع به صورت سراسری غیرفعال شد", + "Function is now globally enabled": "تابع به صورت سراسری فعال شد", + "Function Name": "نام تابع", + "Function updated successfully": "تابع با موفقیت به\u200cروز شد", + "Functions": "توابع", + "Functions allow arbitrary code execution.": "توابع اجازه اجرای کد دلخواه را می\u200cدهند.", "Functions imported successfully": "درون\u200cریزی توابع با موفقیت انجام شد", - "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", + "Gemini": "جمینی", + "Gemini API Config": "پیکربندی API جمینی", + "Gemini API Key is required.": "کلید API جمینی مورد نیاز است.", "General": "عمومی", - "Generate an image": "", - "Generate Image": "", - "Generate prompt pair": "", + "Generate": "", + "Generate an image": "تولید یک تصویر", + "Generate Image": "تولید تصویر", + "Generate prompt pair": "تولید جفت پرامپت", "Generating search query": "در حال تولید پرسوجوی جستجو", - "Get started": "", - "Get started with {{WEBUI_NAME}}": "", - "Global": "", + "Generating...": "", + "Get started": "شروع کنید", + "Get started with {{WEBUI_NAME}}": "شروع کار با {{WEBUI_NAME}}", + "Global": "سراسری", "Good Response": "پاسخ خوب", - "Google Drive": "", + "Google Drive": "گوگل درایو", "Google PSE API Key": "گوگل PSE API کلید", "Google PSE Engine Id": "شناسه موتور PSE گوگل", - "Group created successfully": "", - "Group deleted successfully": "", - "Group Description": "", - "Group Name": "", - "Group updated successfully": "", - "Groups": "", - "Haptic Feedback": "", + "Group created successfully": "گروه با موفقیت ایجاد شد", + "Group deleted successfully": "گروه با موفقیت حذف شد", + "Group Description": "توضیحات گروه", + "Group Name": "نام گروه", + "Group updated successfully": "گروه با موفقیت به\u200cروز شد", + "Groups": "گروه\u200cها", + "Haptic Feedback": "بازخورد لمسی", "has no conversations.": "ندارد.", "Hello, {{name}}": "سلام، {{name}}", "Help": "کمک", - "Help us create the best community leaderboard by sharing your feedback history!": "", - "Hex Color": "", - "Hex Color - Leave empty for default color": "", + "Help us create the best community leaderboard by sharing your feedback history!": "با به اشتراک گذاشتن تاریخچه بازخورد خود به ما در ایجاد بهترین تابلوی امتیازات جامعه کمک کنید!", + "Hex Color": "رنگ هگز", + "Hex Color - Leave empty for default color": "رنگ هگز - برای رنگ پیش\u200cفرض خالی بگذارید", "Hide": "پنهان\u200cسازی", - "Hide Model": "", - "Home": "", - "Host": "", + "Hide Model": "پنهان کردن مدل", + "Home": "خانه", + "Host": "میزبان", "How can I help you today?": "امروز چطور می توانم کمک تان کنم؟", - "How would you rate this response?": "", + "How would you rate this response?": "این پاسخ را چگونه ارزیابی می\u200cکنید؟", "Hybrid Search": "جستجوی همزمان", - "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "", - "ID": "", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", - "Ignite curiosity": "", - "Image": "", - "Image Compression": "", - "Image Generation": "", + "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "من تأیید می\u200cکنم که پیامدهای اقدام خود را خوانده و درک کرده\u200cام. از خطرات مرتبط با اجرای کد دلخواه آگاه هستم و اعتبار منبع را تأیید کرده\u200cام.", + "ID": "شناسه", + "iframe Sandbox Allow Forms": "اجازه فرم\u200cها در سندباکس iframe", + "iframe Sandbox Allow Same Origin": "اجازه منشأ یکسان در سندباکس iframe", + "Ignite curiosity": "کنجکاوی را برانگیزید", + "Image": "تصویر", + "Image Compression": "فشرده\u200cسازی تصویر", + "Image Generation": "تولید تصویر", "Image Generation (Experimental)": "تولید تصویر (آزمایشی)", "Image Generation Engine": "موتور تولید تصویر", - "Image Max Compression Size": "", - "Image Prompt Generation": "", - "Image Prompt Generation Prompt": "", + "Image Max Compression Size": "حداکثر اندازه فشرده\u200cسازی تصویر", + "Image Prompt Generation": "تولید پرامپت تصویر", + "Image Prompt Generation Prompt": "پرامپت تولید پرامپت تصویر", "Image Settings": "تنظیمات تصویر", "Images": "تصاویر", "Import Chats": "درون\u200cریزی گفتگوها", "Import Config from JSON File": "درون\u200cریزی از پروندهٔ JSON", "Import Functions": "درون\u200cریزی توابع", "Import Models": "درون\u200cریزی مدل\u200cها", - "Import Presets": "", + "Import Notes": "", + "Import Presets": "درون\u200cریزی پیش\u200cتنظیم\u200cها", "Import Prompts": "درون\u200cریزی پرامپت\u200cها", "Import Tools": "درون\u200cریزی ابزارها", "Include": "شامل", - "Include `--api-auth` flag when running stable-diffusion-webui": "", + "Include `--api-auth` flag when running stable-diffusion-webui": "هنگام اجرای stable-diffusion-webui پرچم `--api-auth` را اضافه کنید", "Include `--api` flag when running stable-diffusion-webui": "فلگ `--api` را هنکام اجرای stable-diffusion-webui استفاده کنید.", - "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.": "", + "Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive.": "تأثیر می\u200cگذارد که الگوریتم چقدر سریع به بازخورد متن تولید شده پاسخ می\u200cدهد. نرخ یادگیری پایین\u200cتر منجر به تنظیمات کندتر می\u200cشود، در حالی که نرخ یادگیری بالاتر الگوریتم را پاسخگوتر می\u200cکند.", "Info": "اطلاعات", - "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "", + "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "کل محتوا را به عنوان زمینه برای پردازش جامع تزریق کنید، این برای پرس\u200cوجوهای پیچیده توصیه می\u200cشود.", "Input commands": "ورودی دستورات", "Install from Github URL": "نصب از ادرس Github", - "Instant Auto-Send After Voice Transcription": "", - "Integration": "", + "Instant Auto-Send After Voice Transcription": "ارسال خودکار فوری پس از رونویسی صوتی", + "Integration": "یکپارچه\u200cسازی", "Interface": "رابط", - "Invalid file format.": "", - "Invalid JSON schema": "", + "Invalid file content": "", + "Invalid file format.": "قالب فایل نامعتبر است.", + "Invalid JSON schema": "طرح JSON نامعتبر", "Invalid Tag": "تگ نامعتبر", - "is typing...": "", + "is typing...": "در حال تایپ...", "January": "ژانویه", - "Jina API Key": "", + "Jina API Key": "کلید API جینا", "join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.", "JSON": "JSON", "JSON Preview": "پیش نمایش JSON", "July": "ژوئن", "June": "جولای", - "Jupyter Auth": "", - "Jupyter URL": "", + "Jupyter Auth": "احراز هویت ژوپیتر", + "Jupyter URL": "آدرس ژوپیتر", "JWT Expiration": "JWT انقضای", "JWT Token": "JWT توکن", - "Kagi Search API Key": "", + "Kagi Search API Key": "کلید API جستجوی کاگی", "Keep Alive": "Keep Alive", - "Key": "", + "Key": "کلید", "Keyboard shortcuts": "میانبرهای صفحه کلید", - "Knowledge": "", - "Knowledge Access": "", - "Knowledge created successfully.": "", - "Knowledge deleted successfully.": "", - "Knowledge Public Sharing": "", - "Knowledge reset successfully.": "", - "Knowledge updated successfully": "", - "Kokoro.js (Browser)": "", - "Kokoro.js Dtype": "", - "Label": "", - "Landing Page Mode": "", + "Knowledge": "دانش", + "Knowledge Access": "دسترسی به دانش", + "Knowledge created successfully.": "دانش با موفقیت ایجاد شد.", + "Knowledge deleted successfully.": "دانش با موفقیت حذف شد.", + "Knowledge Public Sharing": "اشتراک\u200cگذاری عمومی دانش", + "Knowledge reset successfully.": "دانش با موفقیت بازنشانی شد.", + "Knowledge updated successfully": "دانش با موفقیت به\u200cروز شد", + "Kokoro.js (Browser)": "Kokoro.js (مرورگر)", + "Kokoro.js Dtype": "نوع داده Kokoro.js", + "Label": "برچسب", + "Landing Page Mode": "حالت صفحه فرود", "Language": "زبان", - "Language Locales": "", + "Language Locales": "محلی\u200cسازی زبان", "Last Active": "آخرین فعال", - "Last Modified": "", - "Last reply": "", - "LDAP": "", - "LDAP server updated": "", - "Leaderboard": "", - "Learn more about OpenAPI tool servers.": "", - "Leave empty for unlimited": "", - "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "", - "Leave empty to include all models from \"{{url}}/models\" endpoint": "", - "Leave empty to include all models or select specific models": "", - "Leave empty to use the default prompt, or enter a custom prompt": "", - "Leave model field empty to use the default model.": "", - "License": "", + "Last Modified": "آخرین تغییر", + "Last reply": "آخرین پاسخ", + "LDAP": "LDAP", + "LDAP server updated": "سرور LDAP به\u200cروز شد", + "Leaderboard": "تابلوی امتیازات", + "Learn more about OpenAPI tool servers.": "درباره سرورهای ابزار OpenAPI بیشتر بدانید.", + "Leave empty for unlimited": "برای نامحدود خالی بگذارید", + "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "برای شامل شدن همه مدل\u200cها از نقطه پایانی \"{{url}}/api/tags\" خالی بگذارید", + "Leave empty to include all models from \"{{url}}/models\" endpoint": "برای شامل شدن همه مدل\u200cها از نقطه پایانی \"{{url}}/models\" خالی بگذارید", + "Leave empty to include all models or select specific models": "برای شامل شدن همه مدل\u200cها خالی بگذارید یا مدل\u200cهای خاص را انتخاب کنید", + "Leave empty to use the default prompt, or enter a custom prompt": "برای استفاده از پرامپت پیش\u200cفرض خالی بگذارید، یا یک پرامپت سفارشی وارد کنید", + "Leave model field empty to use the default model.": "برای استفاده از مدل پیش\u200cفرض، فیلد مدل را خالی بگذارید.", + "License": "مجوز", "Light": "روشن", - "Listening...": "", - "Llama.cpp": "", + "Listening...": "در حال گوش دادن...", + "Llama.cpp": "Llama.cpp", "LLMs can make mistakes. Verify important information.": "مدل\u200cهای زبانی بزرگ می\u200cتوانند اشتباه کنند. اطلاعات مهم را راستی\u200cآزمایی کنید.", - "Loader": "", - "Loading Kokoro.js...": "", - "Local": "", - "Local Models": "", - "Location access not allowed": "", - "Logit Bias": "", - "Lost": "", + "Loader": "بارگذار", + "Loading Kokoro.js...": "در حال بارگذاری Kokoro.js...", + "Local": "محلی", + "Local Models": "مدل\u200cهای محلی", + "Location access not allowed": "دسترسی به موقعیت مکانی مجاز نیست", + "Logit Bias": "بایاس لاجیت", + "Lost": "گم شده", "LTR": "LTR", "Made by Open WebUI Community": "ساخته شده توسط OpenWebUI Community", "Make sure to enclose them with": "مطمئن شوید که آنها را با این محصور کنید:", - "Make sure to export a workflow.json file as API format from ComfyUI.": "", - "Manage": "", - "Manage Direct Connections": "", - "Manage Models": "", - "Manage Ollama": "", - "Manage Ollama API Connections": "", - "Manage OpenAI API Connections": "", + "Make sure to export a workflow.json file as API format from ComfyUI.": "مطمئن شوید که یک فایل workflow.json را به عنوان قالب API از ComfyUI صادر کنید.", + "Manage": "مدیریت", + "Manage Direct Connections": "مدیریت اتصالات مستقیم", + "Manage Models": "مدیریت مدل\u200cها", + "Manage Ollama": "مدیریت ollama", + "Manage Ollama API Connections": "مدیریت اتصالات API ollama", + "Manage OpenAI API Connections": "مدیریت اتصالات API اوپن\u200cای\u200cآی", "Manage Pipelines": "مدیریت خطوط لوله", - "Manage Tool Servers": "", + "Manage Tool Servers": "مدیریت سرورهای ابزار", "March": "مارچ", + "Max Speakers": "", "Max Tokens (num_predict)": "توکنهای بیشینه (num_predict)", - "Max Upload Count": "", - "Max Upload Size": "", + "Max Upload Count": "حداکثر تعداد آپلود", + "Max Upload Size": "حداکثر اندازه آپلود", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.", "May": "ماهی", "Memories accessible by LLMs will be shown here.": "حافظه های دسترسی به LLMs در اینجا نمایش داده می شوند.", "Memory": "حافظه", - "Memory added successfully": "", - "Memory cleared successfully": "", - "Memory deleted successfully": "", - "Memory updated successfully": "", - "Merge Responses": "", - "Message rating should be enabled to use this feature": "", + "Memory added successfully": "حافظه با موفقیت اضافه شد", + "Memory cleared successfully": "حافظه با موفقیت پاک شد", + "Memory deleted successfully": "حافظه با موفقیت حذف شد", + "Memory updated successfully": "حافظه با موفقیت به\u200cروز شد", + "Merge Responses": "ادغام پاسخ\u200cها", + "Merged Response": "پاسخ ادغام شده", + "Message rating should be enabled to use this feature": "برای استفاده از این ویژگی باید امتیازدهی پیام\u200cها فعال باشد", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "پیام های شما بعد از ایجاد لینک شما به اشتراک نمی گردد. کاربران با لینک URL می توانند چت اشتراک را مشاهده کنند.", - "Min P": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", + "Min P": "حداقل P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", - "Mistral OCR": "", - "Mistral OCR API Key required.": "", - "Model": "", + "Mistral OCR": "تشخیص متن میسترال", + "Mistral OCR API Key required.": "کلید API تشخیص متن میسترال مورد نیاز است.", + "Model": "مدل", "Model '{{modelName}}' has been successfully downloaded.": "مدل '{{modelName}}' با موفقیت دانلود شد.", "Model '{{modelTag}}' is already in queue for downloading.": "مدل '{{modelTag}}' در حال حاضر در صف برای دانلود است.", "Model {{modelId}} not found": "مدل {{modelId}} یافت نشد", "Model {{modelName}} is not vision capable": "مدل {{modelName}} قادر به بینایی نیست", "Model {{name}} is now {{status}}": "مدل {{name}} در حال حاضر {{status}}", - "Model {{name}} is now hidden": "", - "Model {{name}} is now visible": "", - "Model accepts image inputs": "", - "Model created successfully!": "", + "Model {{name}} is now hidden": "مدل {{name}} اکنون مخفی است", + "Model {{name}} is now visible": "مدل {{name}} اکنون قابل مشاهده است", + "Model accepts image inputs": "مدل ورودی تصویر را می\u200cپذیرد", + "Model created successfully!": "مدل با موفقیت ایجاد شد!", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "مسیر فایل سیستم مدل یافت شد. برای بروزرسانی نیاز است نام کوتاه مدل وجود داشته باشد.", - "Model Filtering": "", + "Model Filtering": "فیلتر کردن مدل", "Model ID": "شناسه مدل", - "Model IDs": "", - "Model Name": "", + "Model IDs": "شناسه\u200cهای مدل", + "Model Name": "نام مدل", "Model not selected": "مدل انتخاب نشده", "Model Params": "مدل پارامز", - "Model Permissions": "", - "Model updated successfully": "", + "Model Permissions": "مجوزهای مدل", + "Model updated successfully": "مدل با موفقیت به\u200cروز شد", "Modelfile Content": "محتویات فایل مدل", "Models": "مدل\u200cها", - "Models Access": "", - "Models configuration saved successfully": "", - "Models Public Sharing": "", - "Mojeek Search API Key": "", - "more": "", + "Models Access": "دسترسی به مدل\u200cها", + "Models configuration saved successfully": "پیکربندی مدل\u200cها با موفقیت ذخیره شد", + "Models Public Sharing": "اشتراک\u200cگذاری عمومی مدل\u200cها", + "Mojeek Search API Key": "کلید API جستجوی موجیک", + "more": "بیشتر", "More": "بیشتر", + "My Notes": "", "Name": "نام", - "Name your knowledge base": "", - "Native": "", + "Name your knowledge base": "پایگاه دانش خود را نام\u200cگذاری کنید", + "Native": "بومی", "New Chat": "گپ جدید", - "New Folder": "", + "New Folder": "پوشه جدید", + "New Note": "", "New Password": "رمز عبور جدید", - "new-channel": "", - "No content found": "", - "No content to speak": "", - "No distance available": "", - "No feedbacks found": "", - "No file selected": "", - "No files found.": "", - "No groups with access, add a group to grant access": "", - "No HTML, CSS, or JavaScript content found.": "", - "No inference engine with management support found": "", - "No knowledge found": "", - "No memories to clear": "", - "No model IDs": "", - "No models found": "", - "No models selected": "", + "new-channel": "کانال-جدید", + "No content": "", + "No content found": "محتوایی یافت نشد", + "No content found in file.": "", + "No content to speak": "محتوایی برای خواندن وجود ندارد", + "No distance available": "فاصله\u200cای در دسترس نیست", + "No feedbacks found": "بازخوردی یافت نشد", + "No file selected": "فایلی انتخاب نشده است", + "No groups with access, add a group to grant access": "هیچ گروهی با دسترسی وجود ندارد، یک گروه برای اعطای دسترسی اضافه کنید", + "No HTML, CSS, or JavaScript content found.": "محتوای HTML، CSS یا JavaScript یافت نشد.", + "No inference engine with management support found": "موتور استنتاج با پشتیبانی مدیریت یافت نشد", + "No knowledge found": "دانشی یافت نشد", + "No memories to clear": "حافظه\u200cای برای پاک کردن وجود ندارد", + "No model IDs": "شناسه مدلی وجود ندارد", + "No models found": "مدلی یافت نشد", + "No models selected": "مدلی انتخاب نشده است", + "No Notes": "", "No results found": "نتیجه\u200cای یافت نشد", "No search query generated": "پرسوجوی جستجویی ایجاد نشده است", "No source available": "منبعی در دسترس نیست", - "No users were found.": "", - "No valves to update": "", + "No users were found.": "کاربری یافت نشد.", + "No valves to update": "شیری برای به\u200cروزرسانی وجود ندارد", "None": "هیچ کدام", "Not factually correct": "اشتباهی فکری نیست", - "Not helpful": "", + "Not helpful": "مفید نیست", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "توجه: اگر حداقل نمره را تعیین کنید، جستجو تنها اسنادی را با نمره بیشتر یا برابر با حداقل نمره باز می گرداند.", - "Notes": "", - "Notification Sound": "", - "Notification Webhook": "", + "Notes": "یادداشت\u200cها", + "Notification Sound": "صدای اعلان", + "Notification Webhook": "وب\u200cهوک اعلان", "Notifications": "اعلان", "November": "نوامبر", - "num_gpu (Ollama)": "", - "num_thread (Ollama)": "num_thread (اولاما)", - "OAuth ID": "", + "num_gpu (Ollama)": "تعداد GPU (ollama)", + "num_thread (Ollama)": "num_thread (ollama)", + "OAuth ID": "شناسه OAuth", "October": "اکتبر", "Off": "خاموش", "Okay, Let's Go!": "باشه، بزن بریم!", "OLED Dark": "OLED تیره", "Ollama": "Ollama", "Ollama API": "Ollama API", - "Ollama API settings updated": "", - "Ollama Version": "نسخه اولاما", + "Ollama API settings updated": "تنظیمات API ollama به\u200cروز شد", + "Ollama Version": "نسخه ollama", "On": "روشن", - "OneDrive": "", - "Only alphanumeric characters and hyphens are allowed": "", + "OneDrive": "وان\u200cدرایو", + "Only alphanumeric characters and hyphens are allowed": "فقط حروف الفبا، اعداد و خط تیره مجاز هستند", "Only alphanumeric characters and hyphens are allowed in the command string.": "فقط کاراکترهای الفبایی و خط فاصله در رشته فرمان مجاز هستند.", - "Only collections can be edited, create a new knowledge base to edit/add documents.": "", - "Only select users and groups with permission can access": "", + "Only collections can be edited, create a new knowledge base to edit/add documents.": "فقط مجموعه\u200cها قابل ویرایش هستند، برای ویرایش/افزودن اسناد یک پایگاه دانش جدید ایجاد کنید.", + "Only markdown files are allowed": "", + "Only select users and groups with permission can access": "فقط کاربران و گروه\u200cهای دارای مجوز می\u200cتوانند دسترسی داشته باشند", "Oops! Looks like the URL is invalid. Please double-check and try again.": "اوه! به نظر می رسد URL نامعتبر است. لطفاً دوباره بررسی کنید و دوباره امتحان کنید.", - "Oops! There are files still uploading. Please wait for the upload to complete.": "", - "Oops! There was an error in the previous response.": "", + "Oops! There are files still uploading. Please wait for the upload to complete.": "اوه! هنوز فایل\u200cهایی در حال آپلود هستند. لطفاً منتظر تکمیل آپلود بمانید.", + "Oops! There was an error in the previous response.": "اوه! در پاسخ قبلی خطایی رخ داد.", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "اوه! شما از یک روش پشتیبانی نشده (فقط frontend) استفاده می کنید. لطفاً WebUI را از بکند اجرا کنید.", - "Open file": "", - "Open in full screen": "", + "Open file": "باز کردن فایل", + "Open in full screen": "باز کردن در تمام صفحه", "Open new chat": "باز کردن گپ جدید", - "Open WebUI can use tools provided by any OpenAPI server.": "", - "Open WebUI uses faster-whisper internally.": "", - "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "", - "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "", + "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI می\u200cتواند از ابزارهای ارائه شده توسط هر سرور OpenAPI استفاده کند.", + "Open WebUI uses faster-whisper internally.": "Open WebUI به صورت داخلی از faster-whisper استفاده می\u200cکند.", + "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI از SpeechT5 و جاسازی\u200cهای گوینده CMU Arctic استفاده می\u200cکند.", + "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "نسخه Open WebUI (v{{OPEN_WEBUI_VERSION}}) پایین\u200cتر از نسخه مورد نیاز (v{{REQUIRED_VERSION}}) است", "OpenAI": "OpenAI", "OpenAI API": "OpenAI API", - "OpenAI API Config": "OpenAI API Config", + "OpenAI API Config": "OpenAI API تنظیمات", "OpenAI API Key is required.": "مقدار کلید OpenAI API مورد نیاز است.", - "OpenAI API settings updated": "", + "OpenAI API settings updated": "تنظیمات API اوپن\u200cای\u200cآی به\u200cروز شد", "OpenAI URL/Key required.": "URL/Key OpenAI مورد نیاز است.", - "openapi.json Path": "", + "openapi.json Path": "مسیر openapi.json", "or": "یا", - "Organize your users": "", + "Organize your users": "کاربران خود را سازماندهی کنید", "Other": "دیگر", "OUTPUT": "خروجی", "Output format": "قالب خروجی", "Overview": "نمای کلی", "page": "صفحه", "Password": "رمز عبور", - "Paste Large Text as File": "", + "Paste Large Text as File": "چسباندن متن بزرگ به عنوان فایل", "PDF document (.pdf)": "PDF سند (.pdf)", "PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)", "pending": "در انتظار", - "Permission denied when accessing media devices": "", - "Permission denied when accessing microphone": "", + "Permission denied when accessing media devices": "دسترسی به دستگاه\u200cهای رسانه رد شد", + "Permission denied when accessing microphone": "دسترسی به میکروفون رد شد", "Permission denied when accessing microphone: {{error}}": "هنگام دسترسی به میکروفون، اجازه داده نشد: {{error}}", - "Permissions": "", - "Perplexity API Key": "", + "Permissions": "مجوزها", + "Perplexity API Key": "کلید API پرپلکسیتی", "Personalization": "شخصی سازی", - "Pin": "", - "Pinned": "", - "Pioneer insights": "", - "Pipeline deleted successfully": "", - "Pipeline downloaded successfully": "", + "Pin": "پین کردن", + "Pinned": "پین شده", + "Pioneer insights": "بینش\u200cهای پیشگام", + "Pipeline deleted successfully": "خط لوله با موفقیت حذف شد", + "Pipeline downloaded successfully": "خط لوله با موفقیت دانلود شد", "Pipelines": "خط لوله", - "Pipelines Not Detected": "", + "Pipelines Not Detected": "خطوط لوله شناسایی نشدند", "Pipelines Valves": "شیرالات خطوط لوله", + "Plain text (.md)": "", "Plain text (.txt)": "متن ساده (.txt)", "Playground": "زمین بازی", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", - "Please carefully review the following warnings:": "", - "Please do not close the settings page while loading the model.": "", - "Please enter a prompt": "", - "Please enter a valid path": "", - "Please enter a valid URL": "", - "Please fill in all fields.": "", - "Please select a model first.": "", - "Please select a model.": "", - "Please select a reason": "", - "Port": "", + "Playwright Timeout (ms)": "مهلت زمانی پلی\u200cرایت (میلی\u200cثانیه)", + "Playwright WebSocket URL": "آدرس وب\u200cسوکت پلی\u200cرایت", + "Please carefully review the following warnings:": "لطفاً هشدارهای زیر را با دقت بررسی کنید:", + "Please do not close the settings page while loading the model.": "لطفاً در حین بارگیری مدل، صفحه تنظیمات را نبندید.", + "Please enter a prompt": "لطفاً یک پرامپت وارد کنید", + "Please enter a valid path": "لطفاً یک مسیر معتبر وارد کنید", + "Please enter a valid URL": "لطفاً یک URL معتبر وارد کنید", + "Please fill in all fields.": "لطفاً همه فیلدها را پر کنید.", + "Please select a model first.": "لطفاً ابتدا یک مدل انتخاب کنید.", + "Please select a model.": "لطفاً یک مدل انتخاب کنید.", + "Please select a reason": "لطفاً یک دلیل انتخاب کنید", + "Port": "پورت", "Positive attitude": "نظرات مثبت", - "Prefix ID": "", - "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "", - "Presence Penalty": "", + "Prefix ID": "شناسه پیشوند", + "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "شناسه پیشوند برای جلوگیری از تداخل با سایر اتصالات با افزودن پیشوند به شناسه\u200cهای مدل استفاده می\u200cشود - برای غیرفعال کردن خالی بگذارید", + "Presence Penalty": "جریمه حضور", "Previous 30 days": "30 روز قبل", "Previous 7 days": "7 روز قبل", - "Private": "", + "Private": "خصوصی", "Profile Image": "تصویر پروفایل", - "Prompt": "", + "Prompt": "پرامپت", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "پیشنهاد (برای مثال: به من بگوید چیزی که برای من یک کاربرد داره درباره ایران)", - "Prompt Autocompletion": "", + "Prompt Autocompletion": "تکمیل خودکار پرامپت", "Prompt Content": "محتویات پرامپت", - "Prompt created successfully": "", + "Prompt created successfully": "پرامپت با موفقیت ایجاد شد", "Prompt suggestions": "پیشنهادات پرامپت", - "Prompt updated successfully": "", + "Prompt updated successfully": "پرامپت با موفقیت به\u200cروز شد", "Prompts": "پرامپت\u200cها", - "Prompts Access": "", - "Prompts Public Sharing": "", - "Public": "", + "Prompts Access": "دسترسی پرامپت\u200cها", + "Prompts Public Sharing": "اشتراک\u200cگذاری عمومی پرامپت\u200cها", + "Public": "عمومی", "Pull \"{{searchValue}}\" from Ollama.com": "بازگرداندن \"{{searchValue}}\" از Ollama.com", "Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com", - "Query Generation Prompt": "", + "Query Generation Prompt": "پرامپت تولید کوئری", "RAG Template": "RAG الگوی", - "Rating": "", - "Re-rank models by topic similarity": "", - "Read": "", + "Rating": "امتیازدهی", + "Re-rank models by topic similarity": "رتبه\u200cبندی مجدد مدل\u200cها براساس شباهت موضوعی", + "Read": "خواندن", "Read Aloud": "خواندن به صورت صوتی", - "Reasoning Effort": "", + "Reasoning Effort": "تلاش استدلال", + "Record": "", "Record voice": "ضبط صدا", "Redirecting you to Open WebUI Community": "در حال هدایت به OpenWebUI Community", - "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", - "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "", - "References from": "", + "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "احتمال تولید محتوای بی\u200cمعنی را کاهش می\u200cدهد. مقدار بالاتر (مثلاً 100) پاسخ\u200cهای متنوع\u200cتری می\u200cدهد، در حالی که مقدار پایین\u200cتر (مثلاً 10) محافظه\u200cکارانه\u200cتر خواهد بود.", + "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "به خود به عنوان \"کاربر\" اشاره کنید (مثلاً، \"کاربر در حال یادگیری اسپانیایی است\")", + "References from": "مراجع از", "Refused when it shouldn't have": "رد شده زمانی که باید نباشد", "Regenerate": "ری\u200cسازی", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "فهرست\u200cبندی مجدد", + "Reindex Knowledge Base Vectors": "فهرست\u200cبندی مجدد بردارهای پایگاه دانش", "Release Notes": "یادداشت\u200cهای انتشار", "Relevance": "ارتباط", - "Relevance Threshold": "", + "Relevance Threshold": "آستانه ارتباط", "Remove": "حذف", "Remove Model": "حذف مدل", "Rename": "تغییر نام", - "Reorder Models": "", - "Repeat Last N": "Repeat Last N", - "Repeat Penalty (Ollama)": "", - "Reply in Thread": "", + "Reorder Models": "ترتیب مجدد مدل\u200cها", + "Repeat Last N": "تکرار آخرین N", + "Repeat Penalty (Ollama)": "جریمه تکرار (ollama)", + "Reply in Thread": "پاسخ در رشته", "Request Mode": "حالت درخواست", "Reranking Model": "مدل ری\u200cشناسی مجدد غیرفعال است", "Reranking model disabled": "مدل ری\u200cشناسی مجدد غیرفعال است", "Reranking model set to \"{{reranking_model}}\"": "مدل ری\u200cشناسی مجدد به \"{{reranking_model}}\" تنظیم شده است", - "Reset": "", - "Reset All Models": "", - "Reset Upload Directory": "", - "Reset Vector Storage/Knowledge": "", - "Reset view": "", - "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "", - "Response splitting": "", + "Reset": "بازنشانی", + "Reset All Models": "بازنشانی همه مدل\u200cها", + "Reset Upload Directory": "بازنشانی پوشه آپلود", + "Reset Vector Storage/Knowledge": "بازنشانی ذخیره\u200cسازی برداری/دانش", + "Reset view": "بازنشانی نما", + "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "اعلان\u200cهای پاسخ نمی\u200cتوانند فعال شوند زیرا مجوزهای وب\u200cسایت رد شده\u200cاند. لطفاً تنظیمات مرورگر خود را برای اعطای دسترسی لازم بررسی کنید.", + "Response splitting": "تقسیم پاسخ", "Result": "نتیجه", - "Retrieval": "", - "Retrieval Query Generation": "", - "Rich Text Input for Chat": "", - "RK": "", + "Retrieval": "بازیابی", + "Retrieval Query Generation": "تولید کوئری بازیابی", + "Rich Text Input for Chat": "ورودی متن غنی برای چت", + "RK": "RK", "Role": "نقش", "Rosé Pine": "Rosé Pine", "Rosé Pine Dawn": "Rosé Pine Dawn", "RTL": "RTL", "Run": "اجرا", - "Running": "", + "Running": "در حال اجرا", "Save": "ذخیره", "Save & Create": "ذخیره و ایجاد", "Save & Update": "ذخیره و به\u200cروزرسانی", @@ -939,108 +986,109 @@ "Save Tag": "ذخیرهٔ برچسب", "Saved": "ذخیره شد", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "ذخیره گزارش\u200cهای چت مستقیماً در حافظه مرورگر شما دیگر پشتیبانی نمی\u200cشود. لطفاً با کلیک بر روی دکمه زیر، چند لحظه برای دانلود و حذف گزارش های چت خود وقت بگذارید. نگران نباشید، شما به راحتی می توانید گزارش های چت خود را از طریق بکند دوباره وارد کنید", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "جستجو", "Search a model": "جستجوی یک مدل", - "Search Base": "", + "Search Base": "پایه جستجو", "Search Chats": "جستجو گفتگوها", "Search Collection": "جستجوی مجموعه\u200cها", - "Search Filters": "", + "Search Filters": "فیلترهای جستجو", "search for tags": "جستجو برای برچسب\u200cها", "Search Functions": "جستجوی توابع", "Search Knowledge": "جستجوی دانش", "Search Models": "جستجوی مدل\u200cها", - "Search options": "", + "Search options": "گزینه\u200cهای جستجو", "Search Prompts": "جستجوی پرامپت\u200cها", "Search Result Count": "تعداد نتایج جستجو", - "Search the internet": "", + "Search the internet": "جستجوی اینترنت", "Search Tools": "ابزارهای جستجو", - "SearchApi API Key": "", - "SearchApi Engine": "", - "Searched {{count}} sites": "", + "SearchApi API Key": "کلید API SearchApi", + "SearchApi Engine": "موتور SearchApi", + "Searched {{count}} sites": "جستجوی {{count}} سایت", "Searching \"{{searchQuery}}\"": "جستجوی «{{searchQuery}}»", "Searching Knowledge for \"{{searchQuery}}\"": "جستجوی دانش برای «{{searchQuery}}»", + "Searching the web...": "", "Searxng Query URL": "نشانی وب جستجوی Searxng", "See readme.md for instructions": "برای مشاهده دستورالعمل\u200cها به readme.md مراجعه کنید", "See what's new": "ببینید موارد جدید چه بوده", - "Seed": "", + "Seed": "هسته", "Select a base model": "انتخاب یک مدل پایه", "Select a engine": "انتخاب یک موتور", "Select a function": "انتخاب یک تابع", - "Select a group": "", + "Select a group": "انتخاب یک گروه", "Select a model": "انتخاب یک مدل", "Select a pipeline": "انتخاب یک خط لوله", "Select a pipeline url": "یک ادرس خط لوله را انتخاب کنید", "Select a tool": "انتخاب یک ابقزار", - "Select an auth method": "", - "Select an Ollama instance": "", + "Select an auth method": "یک روش احراز هویت را انتخاب کنید", + "Select an Ollama instance": "یک نمونه ollama را انتخاب کنید", "Select Engine": "انتخاب موتور", "Select Knowledge": "انتخاب دانش", "Select only one model to call": "تنها یک مدل را برای صدا زدن انتخاب کنید", "Selected model(s) do not support image inputs": "مدل) های (انتخاب شده ورودیهای تصویر را پشتیبانی نمیکند", - "Semantic distance to query": "", + "Semantic distance to query": "فاصله معنایی تا پرس و جو", "Send": "ارسال", "Send a Message": "ارسال یک پیام", "Send message": "ارسال پیام", - "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "", + "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "ارسال `stream_options: { include_usage: true }` در درخواست.\nارائه دهندگان پشتیبانی شده در صورت تنظیم، اطلاعات استفاده از توکن را در پاسخ برمی گردانند.", "September": "سپتامبر", - "SerpApi API Key": "", - "SerpApi Engine": "", + "SerpApi API Key": "کلید API سرپ\u200cای\u200cپی\u200cآی", + "SerpApi Engine": "موتور سرپ\u200cای\u200cپی\u200cآی", "Serper API Key": "کلید API Serper", - "Serply API Key": "", + "Serply API Key": "کلید API سرپلی", "Serpstack API Key": "کلید API Serpstack", "Server connection verified": "اتصال سرور تأیید شد", "Set as default": "تنظیم به عنوان پیشفرض", - "Set CFG Scale": "", + "Set CFG Scale": "تنظیم مقیاس CFG", "Set Default Model": "تنظیم مدل پیش فرض", - "Set embedding model": "", + "Set embedding model": "تنظیم مدل جاسازی", "Set embedding model (e.g. {{model}})": "تنظیم مدل پیچشی (برای مثال {{model}})", "Set Image Size": "تنظیم اندازه تصویر", "Set reranking model (e.g. {{model}})": "تنظیم مدل ری\u200cراینگ (برای مثال {{model}})", - "Set Sampler": "", - "Set Scheduler": "", + "Set Sampler": "تنظیم نمونه\u200cگیر", + "Set Scheduler": "تنظیم زمان\u200cبند", "Set Steps": "تنظیم گام\u200cها", "Set Task Model": "تنظیم مدل تکلیف", - "Set the number of layers, which will be off-loaded to GPU. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "", - "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "", + "Set the number of layers, which will be off-loaded to GPU. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "تعداد لایه\u200cهایی را که به GPU منتقل می\u200cشوند تنظیم کنید. افزایش این مقدار می\u200cتواند عملکرد مدل\u200cهایی که برای شتاب\u200cدهی GPU بهینه\u200cسازی شده\u200cاند را به طور قابل توجهی بهبود بخشد اما ممکن است مصرف برق و منابع GPU را نیز افزایش دهد.", + "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "تعداد نخ\u200cهای کارگر مورد استفاده برای محاسبات را تنظیم کنید. این گزینه کنترل می\u200cکند که چند نخ برای پردازش همزمان درخواست\u200cهای ورودی استفاده می\u200cشود. افزایش این مقدار می\u200cتواند عملکرد را در بارهای کاری با همزمانی بالا بهبود بخشد اما ممکن است منابع CPU بیشتری مصرف کند.", "Set Voice": "تنظیم صدا", - "Set whisper model": "", - "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "", - "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.": "", - "Sets how far back for the model to look back to prevent repetition.": "", - "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt.": "", - "Sets the size of the context window used to generate the next token.": "", - "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "", + "Set whisper model": "تنظیم مدل ویسپر", + "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "یک بایاس ثابت در برابر توکن\u200cهایی که حداقل یک بار ظاهر شده\u200cاند تنظیم می\u200cکند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 0.9) آسان\u200cگیرتر خواهد بود. در 0، غیرفعال می\u200cشود.", + "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "یک بایاس مقیاس\u200cپذیر در برابر توکن\u200cها برای جریمه کردن تکرارها، بر اساس تعداد دفعات ظاهر شدن آنها تنظیم می\u200cکند. مقدار بالاتر (مثلاً 1.5) تکرارها را شدیدتر جریمه می\u200cکند، در حالی که مقدار پایین\u200cتر (مثلاً 0.9) آسان\u200cگیرتر خواهد بود. در 0، غیرفعال می\u200cشود.", + "Sets how far back for the model to look back to prevent repetition.": "تنظیم می\u200cکند که مدل چقدر به عقب نگاه کند تا از تکرار جلوگیری شود.", + "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt.": "عدد تصادفی اولیه را برای تولید تنظیم می\u200cکند. تنظیم این به یک عدد خاص باعث می\u200cشود مدل برای پرامپت یکسان، متن یکسانی تولید کند.", + "Sets the size of the context window used to generate the next token.": "اندازه پنجره متن مورد استفاده برای تولید توکن بعدی را تنظیم می\u200cکند.", + "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "توالی\u200cهای توقف مورد استفاده را تنظیم می\u200cکند. وقتی این الگو مشاهده شود، LLM تولید متن را متوقف کرده و برمی\u200cگردد. الگوهای توقف متعدد می\u200cتوانند با مشخص کردن پارامترهای توقف جداگانه متعدد در فایل مدل تنظیم شوند.", "Settings": "تنظیمات", "Settings saved successfully!": "تنظیمات با موفقیت ذخیره شد!", "Share": "اشتراک\u200cگذاری", "Share Chat": "اشتراک\u200cگذاری چت", "Share to Open WebUI Community": "اشتراک گذاری با OpenWebUI Community", - "Sharing Permissions": "", + "Sharing Permissions": "مجوزهای اشتراک\u200cگذاری", "Show": "نمایش", - "Show \"What's New\" modal on login": "", - "Show Admin Details in Account Pending Overlay": "", - "Show Model": "", + "Show \"What's New\" modal on login": "نمایش مودال \"موارد جدید\" هنگام ورود", + "Show Admin Details in Account Pending Overlay": "نمایش جزئیات مدیر در پوشش حساب در انتظار", + "Show Model": "نمایش مدل", "Show shortcuts": "نمایش میانبرها", - "Show your support!": "", + "Show your support!": "حمایت خود را نشان دهید!", "Showcased creativity": "ایده\u200cآفرینی", "Sign in": "ورود", - "Sign in to {{WEBUI_NAME}}": "", - "Sign in to {{WEBUI_NAME}} with LDAP": "", + "Sign in to {{WEBUI_NAME}}": "ورود به {{WEBUI_NAME}}", + "Sign in to {{WEBUI_NAME}} with LDAP": "ورود به {{WEBUI_NAME}} با LDAP", "Sign Out": "خروج", "Sign up": "ثبت نام", - "Sign up to {{WEBUI_NAME}}": "", - "Signing in to {{WEBUI_NAME}}": "", - "sk-1234": "", - "Sougou Search API sID": "", - "Sougou Search API SK": "", + "Sign up to {{WEBUI_NAME}}": "ثبت نام در {{WEBUI_NAME}}", + "Signing in to {{WEBUI_NAME}}": "در حال ورود به {{WEBUI_NAME}}", + "sk-1234": "sk-1234", + "Sougou Search API sID": "شناسه API جستجوی سوگو", + "Sougou Search API SK": "کلید SK API جستجوی سوگو", "Source": "منبع", - "Speech Playback Speed": "", + "Speech Playback Speed": "سرعت پخش گفتار", "Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}", "Speech-to-Text Engine": "موتور گفتار به متن", "Stop": "توقف", "Stop Sequence": "توقف توالی", - "Stream Chat Response": "", + "Stream Chat Response": "پاسخ چت جریانی", "STT Model": "مدل تبدیل صدا به متن", "STT Settings": "تنظیمات تبدیل صدا به متن", "Subtitle (e.g. about the Roman Empire)": "زیرنویس (برای مثال: درباره رمانی)", @@ -1051,216 +1099,219 @@ "Support this plugin:": "حمایت از این افزونه", "Sync directory": "هم\u200cگام\u200cسازی پوشه", "System": "سیستم", - "System Instructions": "", + "System Instructions": "دستورالعمل\u200cهای سیستم", "System Prompt": "پرامپت سیستم", - "Tags": "", - "Tags Generation": "", - "Tags Generation Prompt": "", - "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "", - "Talk to model": "", - "Tap to interrupt": "", - "Tasks": "", - "Tavily API Key": "", - "Tavily Extract Depth": "", + "Tags": "برچسب\u200cها", + "Tags Generation": "تولید برچسب\u200cها", + "Tags Generation Prompt": "پرامپت تولید برچسب\u200cها", + "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "نمونه\u200cبرداری دنباله آزاد برای کاهش تأثیر توکن\u200cهای کم احتمال\u200cتر از خروجی استفاده می\u200cشود. مقدار بالاتر (مثلاً 2.0) تأثیر را بیشتر کاهش می\u200cدهد، در حالی که مقدار 1.0 این تنظیم را غیرفعال می\u200cکند.", + "Talk to model": "گفتگو با مدل", + "Tap to interrupt": "برای وقفه ضربه بزنید", + "Tasks": "وظایف", + "Tavily API Key": "کلید API تاویلی", + "Tavily Extract Depth": "عمق استخراج تاویلی", "Tell us more:": "بیشتر بگویید:", "Temperature": "دما", "Template": "الگو", - "Temporary Chat": "", - "Text Splitter": "", + "Temporary Chat": "چت موقت", + "Text Splitter": "تقسیم\u200cکننده متن", "Text-to-Speech Engine": "موتور تبدیل متن به گفتار", "Tfs Z": "Tfs Z", "Thanks for your feedback!": "با تشکر از بازخورد شما!", - "The Application Account DN you bind with for search": "", - "The base to search for users": "", - "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "", - "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "", - "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "", - "The LDAP attribute that maps to the mail that users use to sign in.": "", - "The LDAP attribute that maps to the username that users use to sign in.": "", - "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "", - "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "", - "The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "", - "The score should be a value between 0.0 (0%) and 1.0 (100%).": "امتیاز باید یک مقدار بین 0.0 (0%) و 1.0 (100%) باشد.", - "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "", + "The Application Account DN you bind with for search": "DN حساب برنامه که برای جستجو به آن متصل می\u200cشوید", + "The base to search for users": "پایه برای جستجوی کاربران", + "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "اندازه دسته تعیین می\u200cکند که چند درخواست متنی همزمان پردازش می\u200cشوند. اندازه دسته بزرگتر می\u200cتواند عملکرد و سرعت مدل را افزایش دهد، اما به حافظه بیشتری نیاز دارد.", + "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "توسعه\u200cدهندگان این افزونه داوطلبان مشتاق از جامعه هستند. اگر این افزونه را مفید می\u200cدانید، لطفاً در توسعه آن مشارکت کنید.", + "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "تابلوی امتیازات ارزیابی بر اساس سیستم رتبه\u200cبندی Elo است و در زمان واقعی به\u200cروز می\u200cشود.", + "The LDAP attribute that maps to the mail that users use to sign in.": "ویژگی LDAP که به ایمیلی که کاربران برای ورود استفاده می\u200cکنند نگاشت می\u200cشود.", + "The LDAP attribute that maps to the username that users use to sign in.": "ویژگی LDAP که به نام کاربری که کاربران برای ورود استفاده می\u200cکنند نگاشت می\u200cشود.", + "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "تابلوی امتیازات در حال حاضر در نسخه بتا است و ممکن است محاسبات رتبه\u200cبندی را با بهبود الگوریتم تنظیم کنیم.", + "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "حداکثر اندازه فایل به مگابایت. اگر اندازه فایل از این حد بیشتر باشد، فایل آپلود نخواهد شد.", + "The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "حداکثر تعداد فایل\u200cهایی که می\u200cتوانند همزمان در چت استفاده شوند. اگر تعداد فایل\u200cها از این حد بیشتر باشد، فایل\u200cها آپلود نخواهند شد.", + "The score should be a value between 0.0 (0%) and 1.0 (100%).": "امتیاز باید مقداری بین 0.0 (0%) و 1.0 (100%) باشد.", + "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "دمای مدل. افزایش دما باعث می\u200cشود مدل خلاقانه\u200cتر پاسخ دهد.", "Theme": "پوسته", - "Thinking...": "در حال فکر...", - "This action cannot be undone. Do you wish to continue?": "این اقدام قابل بازگردانی نیست. برای ادامه اطمینان دارید؟", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "", + "Thinking...": "در حال فکر کردن...", + "This action cannot be undone. Do you wish to continue?": "این عمل قابل بازگشت نیست. آیا می\u200cخواهید ادامه دهید؟", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "این کانال در {{createdAt}} ایجاد شد. این آغاز کانال {{channelName}} است.", "This chat won’t appear in history and your messages will not be saved.": "", - "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "این تضمین می کند که مکالمات ارزشمند شما به طور ایمن در پایگاه داده بکند ذخیره می شود. تشکر!", - "This is an experimental feature, it may not function as expected and is subject to change at any time.": "", - "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "", - "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "", - "This option will delete all existing files in the collection and replace them with newly uploaded files.": "", - "This response was generated by \"{{model}}\"": "", - "This will delete": "", - "This will delete {{NAME}} and all its contents.": "", - "This will delete all models including custom models": "", - "This will delete all models including custom models and cannot be undone.": "", - "This will reset the knowledge base and sync all files. Do you wish to continue?": "", + "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "این اطمینان می\u200cدهد که مکالمات ارزشمند شما به طور امن در پایگاه داده پشتیبان ذخیره می\u200cشوند. متشکریم!", + "This is an experimental feature, it may not function as expected and is subject to change at any time.": "این یک ویژگی آزمایشی است، ممکن است طبق انتظار کار نکند و در هر زمان ممکن است تغییر کند.", + "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "این گزینه کنترل می\u200cکند که هنگام تازه\u200cسازی متن، چند توکن حفظ شوند. برای مثال، اگر روی 2 تنظیم شود، 2 توکن آخر متن مکالمه حفظ خواهند شد. حفظ متن می\u200cتواند به حفظ پیوستگی مکالمه کمک کند، اما ممکن است توانایی پاسخ به موضوعات جدید را کاهش دهد.", + "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "این گزینه حداکثر تعداد توکن\u200cهایی را که مدل می\u200cتواند در پاسخ خود تولید کند تنظیم می\u200cکند. افزایش این محدودیت به مدل اجازه می\u200cدهد پاسخ\u200cهای طولانی\u200cتری ارائه دهد، اما ممکن است احتمال تولید محتوای بی\u200cفایده یا نامربوط را نیز افزایش دهد.", + "This option will delete all existing files in the collection and replace them with newly uploaded files.": "این گزینه تمام فایل\u200cهای موجود در مجموعه را حذف کرده و با فایل\u200cهای جدید آپلود شده جایگزین می\u200cکند.", + "This response was generated by \"{{model}}\"": "این پاسخ توسط \"{{model}}\" تولید شده است", + "This will delete": "این حذف خواهد شد", + "This will delete {{NAME}} and all its contents.": "این {{NAME}} و تمام محتویات آن را حذف خواهد کرد.", + "This will delete all models including custom models": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد", + "This will delete all models including custom models and cannot be undone.": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد و قابل بازگشت نیست.", + "This will reset the knowledge base and sync all files. Do you wish to continue?": "این پایگاه دانش را بازنشانی کرده و همه فایل\u200cها را همگام\u200cسازی خواهد کرد. آیا می\u200cخواهید ادامه دهید؟", "Thorough explanation": "توضیح کامل", - "Thought for {{DURATION}}": "", - "Thought for {{DURATION}} seconds": "", - "Tika": "", - "Tika Server URL required.": "", - "Tiktoken": "", + "Thought for {{DURATION}}": "فکر کردن برای {{DURATION}}", + "Thought for {{DURATION}} seconds": "فکر کردن برای {{DURATION}} ثانیه", + "Tika": "تیکا", + "Tika Server URL required.": "آدرس سرور تیکا مورد نیاز است.", + "Tiktoken": "تیک توکن", "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "با فشردن کلید Tab در ورودی چت پس از هر بار تعویض، چندین متغیر را به صورت متوالی به روزرسانی کنید.", "Title": "عنوان", "Title (e.g. Tell me a fun fact)": "عنوان (برای مثال: به من بگوید چیزی که دوست دارید)", "Title Auto-Generation": "تولید خودکار عنوان", "Title cannot be an empty string.": "عنوان نمی تواند یک رشته خالی باشد.", - "Title Generation": "", + "Title Generation": "تولید عنوان", "Title Generation Prompt": "پرامپت تولید عنوان", - "TLS": "", + "TLS": "TLS", "To access the available model names for downloading,": "برای دسترسی به نام مدل های موجود برای دانلود،", "To access the GGUF models available for downloading,": "برای دسترسی به مدل\u200cهای GGUF موجود برای دانلود،", - "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "", - "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "", - "To learn more about available endpoints, visit our documentation.": "", - "To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "", - "To select actions here, add them to the \"Functions\" workspace first.": "", - "To select filters here, add them to the \"Functions\" workspace first.": "", - "To select toolkits here, add them to the \"Tools\" workspace first.": "", - "Toast notifications for new updates": "", + "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "برای دسترسی به رابط کاربری وب، لطفاً با مدیر تماس بگیرید. مدیران می\u200cتوانند وضعیت کاربران را از پنل مدیریت مدیریت کنند.", + "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "برای اتصال پایگاه دانش در اینجا، ابتدا آنها را به فضای کاری \"دانش\" اضافه کنید.", + "To learn more about available endpoints, visit our documentation.": "برای کسب اطلاعات بیشتر در مورد نقاط پایانی موجود، به مستندات ما مراجعه کنید.", + "To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "برای حفظ حریم خصوصی شما، فقط امتیازات، شناسه\u200cهای مدل، برچسب\u200cها و متادیتا از بازخورد شما به اشتراک گذاشته می\u200cشود - گفتگوهای شما خصوصی باقی می\u200cماند و شامل نمی\u200cشود.", + "To select actions here, add them to the \"Functions\" workspace first.": "برای انتخاب عملیات در اینجا، ابتدا آنها را به فضای کاری \"توابع\" اضافه کنید.", + "To select filters here, add them to the \"Functions\" workspace first.": "برای انتخاب فیلترها در اینجا، ابتدا آنها را به فضای کاری \"توابع\" اضافه کنید.", + "To select toolkits here, add them to the \"Tools\" workspace first.": "برای انتخاب ابزارها در اینجا، ابتدا آنها را به فضای کاری \"ابزارها\" اضافه کنید.", + "Toast notifications for new updates": "اعلان\u200cهای پاپ\u200cآپ برای به\u200cروزرسانی\u200cهای جدید", "Today": "امروز", "Toggle settings": "نمایش/عدم نمایش تنظیمات", "Toggle sidebar": "نمایش/عدم نمایش نوار کناری", - "Token": "", - "Tokens To Keep On Context Refresh (num_keep)": "", - "Too verbose": "", - "Tool created successfully": "", - "Tool deleted successfully": "", - "Tool Description": "", - "Tool ID": "", - "Tool imported successfully": "", - "Tool Name": "", - "Tool Servers": "", - "Tool updated successfully": "", - "Tools": "", - "Tools Access": "", - "Tools are a function calling system with arbitrary code execution": "", - "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", - "Tools have a function calling system that allows arbitrary code execution.": "", - "Tools Public Sharing": "", + "Token": "توکن", + "Tokens To Keep On Context Refresh (num_keep)": "تعداد توکن\u200cها برای نگهداری در بازخوانی متن (num_keep)", + "Too verbose": "خیلی طولانی", + "Tool created successfully": "ابزار با موفقیت ایجاد شد", + "Tool deleted successfully": "ابزار با موفقیت حذف شد", + "Tool Description": "توضیحات ابزار", + "Tool ID": "شناسه ابزار", + "Tool imported successfully": "ابزار با موفقیت وارد شد", + "Tool Name": "نام ابزار", + "Tool Servers": "سرورهای ابزار", + "Tool updated successfully": "ابزار با موفقیت به\u200cروزرسانی شد", + "Tools": "ابزارها", + "Tools Access": "دسترسی به ابزارها", + "Tools are a function calling system with arbitrary code execution": "ابزارها یک سیستم فراخوانی تابع با اجرای کد دلخواه هستند", + "Tools Function Calling Prompt": "پرامپت فراخوانی تابع ابزارها", + "Tools have a function calling system that allows arbitrary code execution.": "ابزارها دارای سیستم فراخوانی تابع هستند که اجازه اجرای کد دلخواه را می\u200cدهد.", + "Tools Public Sharing": "اشتراک\u200cگذاری عمومی ابزارها", "Top K": "Top K", - "Top K Reranker": "", + "Top K Reranker": "رتبه\u200cبندی مجدد Top K", "Top P": "Top P", - "Transformers": "", - "Trouble accessing Ollama?": "در دسترسی به اولاما مشکل دارید؟", - "Trust Proxy Environment": "", - "TTS Model": "", + "Transformers": "ترنسفورمرها", + "Trouble accessing Ollama?": "در دسترسی به ollama مشکل دارید؟", + "Trust Proxy Environment": "اعتماد به محیط پراکسی", + "TTS Model": "مدل TTS", "TTS Settings": "تنظیمات TTS", - "TTS Voice": "", + "TTS Voice": "صدای TTS", "Type": "نوع", "Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید", - "Uh-oh! There was an issue with the response.": "", - "UI": "", - "Unarchive All": "", - "Unarchive All Archived Chats": "", - "Unarchive Chat": "", - "Unlock mysteries": "", - "Unpin": "", - "Unravel secrets": "", - "Untagged": "", + "Uh-oh! There was an issue with the response.": "اوه! مشکلی در پاسخ وجود داشت.", + "UI": "رابط کاربری", + "Unarchive All": "خارج کردن همه از آرشیو", + "Unarchive All Archived Chats": "خارج کردن همه چت\u200cهای آرشیو شده از آرشیو", + "Unarchive Chat": "خارج کردن چت از آرشیو", + "Unlock mysteries": "رمزگشایی از اسرار", + "Unpin": "برداشتن پین", + "Unravel secrets": "کشف رازها", + "Untagged": "بدون برچسب", + "Untitled": "", "Update": "به\u200cروزرسانی", "Update and Copy Link": "به روزرسانی و کپی لینک", - "Update for the latest features and improvements.": "", + "Update for the latest features and improvements.": "برای آخرین ویژگی\u200cها و بهبودها به\u200cروزرسانی کنید.", "Update password": "به روزرسانی رمزعبور", "Updated": "بارگذاری شد", "Updated at": "بارگذاری در", "Updated At": "بارگذاری در", - "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", + "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "برای قابلیت\u200cهای پیشرفته، از جمله تم و برندسازی سفارشی و پشتیبانی اختصاصی، به طرح دارای مجوز ارتقا دهید.", "Upload": "بارگذاری", "Upload a GGUF model": "آپلود یک مدل GGUF", - "Upload directory": "", - "Upload files": "", + "Upload Audio": "", + "Upload directory": "پوشه آپلود", + "Upload files": "آپلود فایل\u200cها", "Upload Files": "بارگذاری پروندهها", - "Upload Pipeline": "", + "Upload Pipeline": "خط تولید آپلود", "Upload Progress": "پیشرفت آپلود", - "URL": "", + "URL": "آدرس اینترنتی", "URL Mode": "حالت URL", - "Use '#' in the prompt input to load and include your knowledge.": "", + "Use '#' in the prompt input to load and include your knowledge.": "از '#' در ورودی پرامپت برای بارگیری و شامل کردن دانش خود استفاده کنید.", "Use Gravatar": "استفاده از گراواتار", - "Use groups to group your users and assign permissions.": "", + "Use groups to group your users and assign permissions.": "از گروه\u200cها برای گروه\u200cبندی کاربران و تخصیص مجوزها استفاده کنید.", "Use Initials": "استفاده از سرواژه", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", - "use_mlock (Ollama)": "use_mlock (اولاما)", - "use_mmap (Ollama)": "use_mmap (اولاما)", + "Use no proxy to fetch page contents.": "از هیچ پراکسی برای دریافت محتوای صفحه استفاده نکنید.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "از پراکسی تعیین شده توسط متغیرهای محیطی http_proxy و https_proxy برای دریافت محتوای صفحه استفاده کنید.", + "use_mlock (Ollama)": "use_mlock (ollama)", + "use_mmap (Ollama)": "use_mmap (ollama)", "user": "کاربر", "User": "کاربر", "User location successfully retrieved.": "موقعیت مکانی کاربر با موفقیت دریافت شد.", - "User Webhooks": "", - "Username": "", + "User Webhooks": "وب\u200cهوک\u200cهای کاربر", + "Username": "نام کاربری", "Users": "کاربران", "Using the default arena model with all models. Click the plus button to add custom models.": "در حال استفاده از مدل آرنا با همهٔ مدل\u200cهای دیگر به طور پیش\u200cفرض. برای افزودن مدل\u200cهای سفارشی، روی دکمه به\u200cعلاوه کلیک کنید.", "Utilize": "استفاده کنید", "Valid time units:": "واحدهای زمانی معتبر:", - "Valves": "", - "Valves updated": "", - "Valves updated successfully": "", + "Valves": "شیرها", + "Valves updated": "شیرها به\u200cروزرسانی شدند", + "Valves updated successfully": "شیرها با موفقیت به\u200cروزرسانی شدند", "variable": "متغیر", "variable to have them replaced with clipboard content.": "متغیر برای جایگزینی آنها با محتوای بریده\u200cدان.", - "Verify Connection": "", - "Verify SSL Certificate": "", + "Verify Connection": "تأیید اتصال", + "Verify SSL Certificate": "تأیید گواهی SSL", "Version": "نسخه", "Version {{selectedVersion}} of {{totalVersions}}": "نسخهٔ {{selectedVersion}} از {{totalVersions}}", - "View Replies": "", - "View Result from **{{NAME}}**": "", - "Visibility": "", + "View Replies": "مشاهده پاسخ\u200cها", + "View Result from **{{NAME}}**": "مشاهده نتیجه از **{{NAME}}**", + "Visibility": "قابلیت مشاهده", "Voice": "صوت", "Voice Input": "ورودی صوتی", "Warning": "هشدار", "Warning:": "هشدار", - "Warning: Enabling this will allow users to upload arbitrary code on the server.": "", + "Warning: Enabling this will allow users to upload arbitrary code on the server.": "هشدار: فعال کردن این گزینه به کاربران اجازه می\u200cدهد کد دلخواه را روی سرور آپلود کنند.", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "هشدار: اگر شما به روز کنید یا تغییر دهید مدل شما، باید تمام سند ها را مجددا وارد کنید.", - "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", + "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "هشدار: اجرای ژوپیتر امکان اجرای کد دلخواه را فراهم می\u200cکند که خطرات امنیتی جدی به همراه دارد - با احتیاط زیاد ادامه دهید.", "Web": "وب", - "Web API": "", - "Web Loader Engine": "", + "Web API": "API وب", + "Web Loader Engine": "موتور بارگذاری وب", "Web Search": "جستجوی وب", "Web Search Engine": "موتور جستجوی وب", - "Web Search in Chat": "", - "Web Search Query Generation": "", + "Web Search in Chat": "جستجوی وب در گفتگو", + "Web Search Query Generation": "تولید کوئری جستجوی وب", "Webhook URL": "نشانی وب\u200cهوک", "WebUI Settings": "تنظیمات WebUI", - "WebUI URL": "", - "WebUI will make requests to \"{{url}}\"": "", - "WebUI will make requests to \"{{url}}/api/chat\"": "", - "WebUI will make requests to \"{{url}}/chat/completions\"": "", - "What are you trying to achieve?": "", - "What are you working on?": "", - "What’s New in": "موارد جدید در", - "When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "", - "wherever you are": "", - "Whisper (Local)": "", - "Why?": "", + "WebUI URL": "آدرس WebUI", + "WebUI will make requests to \"{{url}}\"": "WebUI به \"{{url}}\" درخواست خواهد داد", + "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI به \"{{url}}/api/chat\" درخواست خواهد داد", + "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI به \"{{url}}/chat/completions\" درخواست خواهد داد", + "What are you trying to achieve?": "به دنبال دستیابی به چه هدفی هستید؟", + "What are you working on?": "روی چه چیزی کار می\u200cکنید؟", + "What’s New in": "", + "When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "وقتی فعال باشد، مدل به هر پیام گفتگو در زمان واقعی پاسخ می\u200cدهد و به محض ارسال پیام توسط کاربر، پاسخی تولید می\u200cکند. این حالت برای برنامه\u200cهای گفتگوی زنده مفید است، اما ممکن است در سخت\u200cافزارهای کندتر بر عملکرد تأثیر بگذارد.", + "wherever you are": "هر جا که هستید", + "Whisper (Local)": "ویسپر (محلی)", + "Why?": "چرا؟", "Widescreen Mode": "حالت صفحهٔ عریض", - "Won": "", - "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "", + "Won": "برنده شد", + "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "با top-k همکاری می\u200cکند. مقدار بالاتر (مثلاً 0.95) منجر به متن متنوع\u200cتر می\u200cشود، در حالی که مقدار پایین\u200cتر (مثلاً 0.5) متن متمرکزتر و محافظه\u200cکارانه\u200cتری تولید می\u200cکند.", "Workspace": "محیط کار", - "Workspace Permissions": "", - "Write": "", + "Workspace Permissions": "مجوزهای محیط کار", + "Write": "نوشتن", "Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)", "Write a summary in 50 words that summarizes [topic or keyword].": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.", - "Write something...": "", - "Write your model template content here": "", + "Write something...": "چیزی بنویسید...", + "Write your model template content here": "محتوای قالب مدل خود را اینجا بنویسید", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "دیروز", "You": "شما", - "You are currently using a trial license. Please contact support to upgrade your license.": "", + "You are currently using a trial license. Please contact support to upgrade your license.": "شما در حال حاضر از نسخه آزمایشی استفاده می\u200cکنید. لطفاً برای ارتقای مجوز خود با پشتیبانی تماس بگیرید.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "شما در هر زمان نهایتا می\u200cتوانید با {{maxCount}} پرونده گفتگو کنید.", - "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", - "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", - "You do not have permission to upload files.": "", + "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "شما می\u200cتوانید تعاملات خود با LLM\u200cها را با افزودن خاطرات از طریق دکمه 'مدیریت' در زیر شخصی\u200cسازی کنید تا آنها مفیدتر و متناسب\u200cتر با شما شوند.", + "You cannot upload an empty file.": "نمی\u200cتوانید فایل خالی آپلود کنید.", + "You do not have permission to upload files.": "شما اجازه آپلود فایل ندارید.", "You have no archived conversations.": "شما هیچ گفتگوی ذخیره شده ندارید.", "You have shared this chat": "شما این گفتگو را به اشتراک گذاشته اید", "You're a helpful assistant.": "تو یک دستیار سودمند هستی.", "You're now logged in.": "شما اکنون وارد شده\u200cاید.", - "Your account status is currently pending activation.": "", - "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "", + "Your account status is currently pending activation.": "وضعیت حساب شما در حال حاضر در انتظار فعال\u200cسازی است.", + "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "تمام مشارکت شما مستقیماً به توسعه\u200cدهنده افزونه می\u200cرسد؛ Open WebUI هیچ درصدی دریافت نمی\u200cکند. با این حال، پلتفرم تأمین مالی انتخاب شده ممکن است کارمزد خود را داشته باشد.", "Youtube": "یوتیوب", - "Youtube Language": "", - "Youtube Proxy URL": "" + "Youtube Language": "زبان یوتیوب", + "Youtube Proxy URL": "آدرس پراکسی یوتیوب" } diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json index b406c5497..bbe29e46d 100644 --- a/src/lib/i18n/locales/fi-FI/translation.json +++ b/src/lib/i18n/locales/fi-FI/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(esim. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(esim. `sh webui.sh --api`)", "(latest)": "(uusin)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ mallit }}", "{{COUNT}} Available Tools": "{{COUNT}} työkalua saatavilla", @@ -57,17 +58,19 @@ "All": "Kaikki", "All Documents": "Kaikki asiakirjat", "All models deleted successfully": "Kaikki mallit poistettu onnistuneesti", - "Allow Call": "", + "Allow Call": "Salli puhelut", "Allow Chat Controls": "Salli keskustelujen hallinta", "Allow Chat Delete": "Salli keskustelujen poisto", "Allow Chat Deletion": "Salli keskustelujen poisto", "Allow Chat Edit": "Salli keskustelujen muokkaus", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Salli tiedostojen lataus", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "Salli useampi malli keskustelussa", "Allow non-local voices": "Salli ei-paikalliset äänet", - "Allow Speech to Text": "", + "Allow Speech to Text": "Salli puhe tekstiksi", "Allow Temporary Chat": "Salli väliaikaiset keskustelut", - "Allow Text to Speech": "", + "Allow Text to Speech": "Salli teksti puheeksi", "Allow User Location": "Salli käyttäjän sijainti", "Allow Voice Interruption in Call": "Salli äänen keskeytys puhelussa", "Allowed Endpoints": "Hyväksytyt päätepisteet", @@ -76,6 +79,7 @@ "Always": "Aina", "Always Collapse Code Blocks": "Pienennä aina koodilohkot", "Always Expand Details": "Laajenna aina tiedot", + "Always Play Notification Sound": "", "Amazing": "Hämmästyttävä", "an assistant": "avustaja", "Analyzed": "Analysoitu", @@ -83,7 +87,7 @@ "and": "ja", "and {{COUNT}} more": "ja {{COUNT}} muuta", "and create a new shared link.": "ja luo uusi jaettu linkki.", - "Android": "", + "Android": "Android", "API Base URL": "API:n verkko-osoite", "API Key": "API-avain", "API Key created.": "API-avain luotu.", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Haluatko varmasti poistaa tämän kanavan?", "Are you sure you want to delete this message?": "Haluatko varmasti poistaa tämän viestin?", "Are you sure you want to unarchive all archived chats?": "Haluatko varmasti purkaa kaikkien arkistoitujen keskustelujen arkistoinnin?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Oletko varma?", "Arena Models": "Arena-mallit", "Artifacts": "Artefaktit", @@ -116,7 +121,7 @@ "Auth": "Todennus", "Authenticate": "Todentaa", "Authentication": "Todennus", - "Auto": "", + "Auto": "Automaattinen", "Auto-Copy Response to Clipboard": "Kopioi vastaus automaattisesti leikepöydälle", "Auto-playback response": "Soita vastaus automaattisesti", "Autocomplete Generation": "Automaattisen täydennyksen luonti", @@ -135,6 +140,7 @@ "Bad Response": "Huono vastaus", "Banners": "Bannerit", "Base Model (From)": "Perusmalli (alkaen)", + "Base URL": "", "Batch Size (num_batch)": "Erän koko (num_batch)", "before": "ennen", "Being lazy": "Oli laiska", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7 -tilauskäyttäjäavain", "Bocha Search API Key": "Bocha Search API -avain", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API -avain", "By {{name}}": "Tekijä {{name}}", "Bypass Embedding and Retrieval": "Ohita upotus ja haku", @@ -153,11 +160,12 @@ "Cancel": "Peruuta", "Capabilities": "Ominaisuuksia", "Capture": "Näyttökuva", + "Capture Audio": "", "Certificate Path": "Varmennepolku", "Change Password": "Vaihda salasana", "Channel Name": "Kanavan nimi", "Channels": "Kanavat", - "Character": "Hahmo", + "Character": "Kirjain", "Character limit for autocomplete generation input": "Automaattisen täydennyksen syötteen merkkiraja", "Chart new frontiers": "Kartoita uusia rajapintoja", "Chat": "Keskustelu", @@ -224,10 +232,10 @@ "Confirm your new password": "Vahvista uusi salasanasi", "Connect to your own OpenAI compatible API endpoints.": "Yhdistä omat OpenAI yhteensopivat API päätepisteet.", "Connect to your own OpenAPI compatible external tool servers.": "Yhdistä omat ulkopuoliset OpenAPI yhteensopivat työkalu palvelimet.", - "Connection failed": "", - "Connection successful": "", + "Connection failed": "Yhteys epäonnistui", + "Connection successful": "Yhteys onnistui", "Connections": "Yhteydet", - "Connections saved successfully": "", + "Connections saved successfully": "Yhteyksien tallentaminen onnistui", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", "Contact Admin for WebUI Access": "Ota yhteyttä ylläpitäjään WebUI-käyttöä varten", "Content": "Sisältö", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "Jaettu keskustelulinkki kopioitu leikepöydälle!", "Copied to clipboard": "Kopioitu leikepöydälle", "Copy": "Kopioi", - "Copy Formatted Text": "", + "Copy Formatted Text": "Kopioi muotoiltu teksti", "Copy last code block": "Kopioi viimeisin koodilohko", "Copy last response": "Kopioi viimeisin vastaus", "Copy Link": "Kopioi linkki", @@ -262,6 +270,8 @@ "Create Knowledge": "Luo tietoa", "Create new key": "Luo uusi avain", "Create new secret key": "Luo uusi salainen avain", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Luotu", "Created At": "Luotu", "Created by": "Luonut", @@ -299,6 +309,7 @@ "Delete function?": "Haluatko varmasti poistaa tämän toiminnon?", "Delete Message": "Poista viesti", "Delete message?": "Poista viesti?", + "Delete note?": "", "Delete prompt?": "Haluatko varmasti poistaa tämän kehotteen?", "delete this link": "poista tämä linkki", "Delete tool?": "Haluatko varmasti poistaa tämän työkalun?", @@ -308,7 +319,7 @@ "Deleted User": "Käyttäjä poistettu", "Describe your knowledge base and objectives": "Kuvaa tietokantasi ja tavoitteesi", "Description": "Kuvaus", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Tunnista artefaktit automaattisesti", "Didn't fully follow instructions": "Ei noudattanut ohjeita täysin", "Direct": "Suora", "Direct Connections": "Suorat yhteydet", @@ -354,7 +365,7 @@ "Download Database": "Lataa tietokanta", "Drag and drop a file to upload or select a file to view": "Raahaa ja pudota tiedosto ladattavaksi tai valitse tiedosto katseltavaksi", "Draw": "Piirros", - "Drop any files here to add to the conversation": "Pudota tiedostoja tähän lisätäksesi ne keskusteluun", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "esim. '30s', '10m'. Kelpoiset aikayksiköt ovat 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "esim. \"json\" tai JSON kaava", "e.g. 60": "esim. 60", @@ -364,7 +375,8 @@ "e.g. my_filter": "esim. oma_suodatin", "e.g. my_tools": "esim. omat_työkalut", "e.g. Tools for performing various operations": "esim. työkaluja erilaisten toimenpiteiden suorittamiseen", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "esim. en-US,ja-JP (Tyhjäksi jättämällä, automaattinen tunnistus)", "Edit": "Muokkaa", "Edit Arena Model": "Muokkaa Arena-mallia", "Edit Channel": "Muokkaa kanavaa", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Salli uudet rekisteröitymiset", "Enabled": "Käytössä", "Enforce Temporary Chat": "Pakota väliaikaiset keskustelut", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Varmista, että CSV-tiedostossasi on 4 saraketta tässä järjestyksessä: Nimi, Sähköposti, Salasana, Rooli.", "Enter {{role}} message here": "Kirjoita {{role}}-viesti tähän", "Enter a detail about yourself for your LLMs to recall": "Kirjoita yksityiskohta itsestäsi, jonka LLM-ohjelmat voivat muistaa", @@ -407,15 +420,21 @@ "Enter CFG Scale (e.g. 7.0)": "Kirjoita CFG-mitta (esim. 7.0)", "Enter Chunk Overlap": "Syötä osien päällekkäisyys", "Enter Chunk Size": "Syötä osien koko", - "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", + "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Syötä pilkulla erottaen \"token:bias_value\" parit (esim. 5432:100, 413:-100)", "Enter description": "Kirjoita kuvaus", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Kirjoita Docling palvelimen verkko-osoite", "Enter Document Intelligence Endpoint": "Kirjoita asiakirja tiedustelun päätepiste", "Enter Document Intelligence Key": "Kirjoiuta asiakirja tiedustelun avain", "Enter domains separated by commas (e.g., example.com,site.org)": "Verkko-osoitteet erotetaan pilkulla (esim. esimerkki.com,sivu.org)", "Enter Exa API Key": "Kirjoita Exa API -avain", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", + "Enter Firecrawl API Base URL": "Kirjoita Firecrawl API -verkko-osoite", + "Enter Firecrawl API Key": "Kirjoita Firecrawl API-avain", "Enter Github Raw URL": "Kirjoita Github Raw -verkko-osoite", "Enter Google PSE API Key": "Kirjoita Google PSE API -avain", "Enter Google PSE Engine Id": "Kirjoita Google PSE -moottorin tunnus", @@ -431,10 +450,11 @@ "Enter Model ID": "Kirjoita mallitunnus", "Enter model tag (e.g. {{modelTag}})": "Kirjoita mallitagi (esim. {{modelTag}})", "Enter Mojeek Search API Key": "Kirjoita Mojeek Search API -avain", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Kirjoita askelten määrä (esim. 50)", "Enter Perplexity API Key": "Aseta Perplexity API-avain", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Playwright Timeout": "Aseta Playwright aikakatkaisu", + "Enter Playwright WebSocket URL": "Aseta Playwright WebSocket-aikakatkaisu", "Enter proxy URL (e.g. https://user:password@host:port)": "Kirjoita välityspalvelimen verkko-osoite (esim. https://käyttäjä:salasana@host:portti)", "Enter reasoning effort": "", "Enter Sampler (e.g. Euler a)": "Kirjoita näytteistäjä (esim. Euler a)", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Kirjoita Top K uudelleen sijoittaja", "Enter URL (e.g. http://127.0.0.1:7860/)": "Kirjoita verkko-osoite (esim. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Kirjoita verkko-osoite (esim. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Kirjoita nykyinen salasanasi", "Enter Your Email": "Kirjoita sähköpostiosoitteesi", "Enter Your Full Name": "Kirjoita koko nimesi", "Enter your message": "Kirjoita viestisi", "Enter your name": "Kirjoita nimesi tähän", + "Enter Your Name": "", "Enter your new password": "Kirjoita uusi salasanasi", "Enter Your Password": "Kirjoita salasanasi", "Enter Your Role": "Kirjoita roolisi", @@ -480,6 +504,8 @@ "Error": "Virhe", "ERROR": "VIRHE", "Error accessing Google Drive: {{error}}": "Virhe yhdistäessä Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Virhe ladattaessa tiedostoa: {{error}}", "Evaluations": "Arvioinnit", "Exa API Key": "Exa API -avain", @@ -511,12 +537,18 @@ "Export Tools": "Vie työkalut", "External": "Ulkoiset", "External Models": "Ulkoiset mallit", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Tiedoston lisääminen epäonnistui.", "Failed to connect to {{URL}} OpenAPI tool server": "Yhdistäminen {{URL}} OpenAPI työkalu palvelimeen epäonnistui", "Failed to create API Key.": "API-avaimen luonti epäonnistui.", + "Failed to delete note": "", "Failed to fetch models": "Mallien hakeminen epäonnistui", + "Failed to load file content.": "", "Failed to read clipboard contents": "Leikepöydän sisällön lukeminen epäonnistui", - "Failed to save connections": "", + "Failed to save connections": "Yhteyksien tallentaminen epäonnistui", "Failed to save models configuration": "Mallien määrityksen tallentaminen epäonnistui", "Failed to update settings": "Asetusten päivittäminen epäonnistui", "Failed to upload file.": "Tiedoston lataaminen epäonnistui.", @@ -539,12 +571,11 @@ "Filter is now globally enabled": "Suodatin on nyt otettu käyttöön globaalisti", "Filters": "Suodattimet", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Sormenjäljen väärentäminen havaittu: Alkukirjaimia ei voi käyttää avatarina. Käytetään oletusprofiilikuvaa.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "Firecrawl API -verkko-osoite", + "Firecrawl API Key": "Firecrawl API-avain", "Fluidly stream large external response chunks": "Virtaa suuria ulkoisia vastausosia joustavasti", "Focus chat input": "Fokusoi syöttökenttään", "Folder deleted successfully": "Kansio poistettu onnistuneesti", - "Folder name cannot be empty": "Kansion nimi ei voi olla tyhjä", "Folder name cannot be empty.": "Kansion nimi ei voi olla tyhjä.", "Folder name updated successfully": "Kansion nimi päivitetty onnistuneesti", "Followed instructions perfectly": "Noudatti ohjeita täydellisesti", @@ -565,17 +596,18 @@ "Function Name": "Toiminnon nimi", "Function updated successfully": "Toiminto päivitetty onnistuneesti", "Functions": "Toiminnot", - "Functions allow arbitrary code execution": "Toiminnot sallivat mielivaltaisen koodin suorittamisen", "Functions allow arbitrary code execution.": "Toiminnot sallivat mielivaltaisen koodin suorittamisen.", "Functions imported successfully": "Toiminnot tuotu onnistuneesti", "Gemini": "Gemini", "Gemini API Config": "Gemini API konfiguraatio", "Gemini API Key is required.": "Gemini API -avain on vaaditaan.", "General": "Yleinen", + "Generate": "", "Generate an image": "Luo kuva", "Generate Image": "Luo kuva", "Generate prompt pair": "Luo kehotepari", "Generating search query": "Luodaan hakukyselyä", + "Generating...": "", "Get started": "Aloita", "Get started with {{WEBUI_NAME}}": "Aloita käyttämään {{WEBUI_NAME}}:iä", "Global": "Yleinen", @@ -605,8 +637,8 @@ "Hybrid Search": "Hybridihaku", "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.": "Vahvistan, että olen lukenut ja ymmärrän toimintani seuraukset. Olen tietoinen mielivaltaisen koodin suorittamiseen liittyvistä riskeistä ja olen varmistanut lähteen luotettavuuden.", "ID": "Tunnus", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", + "iframe Sandbox Allow Forms": "Salli lomakkeet iframe hiekkalaatikossa", + "iframe Sandbox Allow Same Origin": "Salli iframe hiekkalaatikko samasta alkuperästä", "Ignite curiosity": "Sytytä uteliaisuus", "Image": "Kuva", "Image Compression": "Kuvan pakkaus", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Tuo asetukset JSON-tiedostosta", "Import Functions": "Tuo toiminnot", "Import Models": "Tuo malleja", + "Import Notes": "", "Import Presets": "Tuo esiasetuksia", "Import Prompts": "Tuo kehotteet", "Import Tools": "Tuo työkalut", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Heti automaattinen lähetys äänitunnistuksen jälkeen", "Integration": "Integrointi", "Interface": "Käyttöliittymä", + "Invalid file content": "", "Invalid file format.": "Virheellinen tiedostomuoto.", "Invalid JSON schema": "Virheellinen JSON kaava", "Invalid Tag": "Virheellinen tagi", @@ -667,14 +701,14 @@ "Label": "Tunniste", "Landing Page Mode": "Etusivun tila", "Language": "Kieli", - "Language Locales": "", + "Language Locales": "Kielialueet", "Last Active": "Viimeksi aktiivinen", "Last Modified": "Viimeksi muokattu", "Last reply": "Viimeksi vastattu", "LDAP": "LDAP", "LDAP server updated": "LDAP-palvelin päivitetty", "Leaderboard": "Tulosluettelo", - "Learn more about OpenAPI tool servers.": "", + "Learn more about OpenAPI tool servers.": "Lue lisää OpenAPI työkalu palvelimista.", "Leave empty for unlimited": "Rajaton tyhjäksi jättämällä", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Jätä tyhjäksi sisällyttääksesi \"{{url}}/api/tags\" päätepisteen mallit", "Leave empty to include all models from \"{{url}}/models\" endpoint": "Jätä tyhjäksi sisällyttääksesi \"{{url}}/models\" päätepisteen mallit", @@ -706,6 +740,7 @@ "Manage Pipelines": "Hallitse putkia", "Manage Tool Servers": "Hallitse työkalu palvelimia", "March": "maaliskuu", + "Max Speakers": "", "Max Tokens (num_predict)": "Tokenien enimmäismäärä (num_predict)", "Max Upload Count": "Latausten enimmäismäärä", "Max Upload Size": "Latausten enimmäiskoko", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Muisti poistettu onnistuneesti", "Memory updated successfully": "Muisti päivitetty onnistuneesti", "Merge Responses": "Yhdistä vastaukset", + "Merged Response": "Yhdistetty vastaus", "Message rating should be enabled to use this feature": "Tämän toiminnon käyttämiseksi viestiarviointi on otettava käyttöön", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Linkin luomisen jälkeen lähettämäsi viestit eivät ole jaettuja. Käyttäjät, joilla on verkko-osoite, voivat tarkastella jaettua keskustelua.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API -avain", "more": "lisää", "More": "Lisää", + "My Notes": "", "Name": "Nimi", "Name your knowledge base": "Anna tietokannalle nimi", "Native": "Natiivi", "New Chat": "Uusi keskustelu", "New Folder": "Uusi kansio", + "New Note": "", "New Password": "Uusi salasana", "new-channel": "uusi-kanava", + "No content": "", "No content found": "Sisältöä ei löytynyt", + "No content found in file.": "", "No content to speak": "Ei puhuttavaa sisältöä", "No distance available": "Etäisyyttä ei saatavilla", "No feedbacks found": "Palautteita ei löytynyt", "No file selected": "Tiedostoa ei ole valittu", - "No files found.": "Tiedostoja ei löytynyt.", "No groups with access, add a group to grant access": "Ei ryhmiä, joilla on pääsy, lisää ryhmä antaaksesi pääsyn", "No HTML, CSS, or JavaScript content found.": "HTML-, CSS- tai JavaScript-sisältöä ei löytynyt.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "Ei mallitunnuksia", "No models found": "Malleja ei löytynyt", "No models selected": "Malleja ei ole valittu", + "No Notes": "", "No results found": "Ei tuloksia", "No search query generated": "Hakukyselyä ei luotu", "No source available": "Lähdettä ei saatavilla", @@ -782,6 +825,7 @@ "None": "Ei mikään", "Not factually correct": "Ei faktuaalisesti oikein", "Not helpful": "Ei hyödyllinen", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Huomautus: Jos asetat vähimmäispistemäärän, haku palauttaa vain sellaiset asiakirjat, joiden pistemäärä on vähintään vähimmäismäärä.", "Notes": "Muistiinpanot", "Notification Sound": "Ilmoitusääni", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Vain kirjaimet, numerot ja väliviivat ovat sallittuja", "Only alphanumeric characters and hyphens are allowed in the command string.": "Vain kirjaimet, numerot ja väliviivat ovat sallittuja komentosarjassa.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Vain kokoelmia voi muokata, luo uusi tietokanta muokataksesi/lisätäksesi asiakirjoja.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Vain valitut käyttäjät ja ryhmät, joilla on käyttöoikeus, pääsevät käyttämään", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Hups! Näyttää siltä, että verkko-osoite on virheellinen. Tarkista se ja yritä uudelleen.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Hups! Tiedostoja on vielä ladattavana. Odota, että lataus on valmis.", @@ -812,7 +857,7 @@ "Open file": "Avaa tiedosto", "Open in full screen": "Avaa koko näytön tilaan", "Open new chat": "Avaa uusi keskustelu", - "Open WebUI can use tools provided by any OpenAPI server.": "", + "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI voi käyttää minkä tahansa OpenAPI-palvelimen tarjoamia työkaluja.", "Open WebUI uses faster-whisper internally.": "Open WebUI käyttää faster-whisperia sisäisesti.", "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI käyttää SpeechT5:tä ja CMU Arctic -kaiuttimen upotuksia.", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Open WebUI -versio (v{{OPEN_WEBUI_VERSION}}) on alempi kuin vaadittu versio (v{{REQUIRED_VERSION}})", @@ -849,15 +894,16 @@ "Pipelines": "Putkistot", "Pipelines Not Detected": "Putkistoja ei havaittu", "Pipelines Valves": "Putkistojen venttiilit", + "Plain text (.md)": "", "Plain text (.txt)": "Pelkkä teksti (.txt)", "Playground": "Leikkipaikka", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Playwright aikakatkaisu (ms)", + "Playwright WebSocket URL": "Playwright WebSocket verkko-osoite", "Please carefully review the following warnings:": "Tarkista huolellisesti seuraavat varoitukset:", "Please do not close the settings page while loading the model.": "Älä sulje asetussivua mallin latautuessa.", "Please enter a prompt": "Kirjoita kehote", - "Please enter a valid path": "", - "Please enter a valid URL": "", + "Please enter a valid path": "Kirjoita kelvollinen polku", + "Please enter a valid URL": "Kirjoita kelvollinen verkko-osoite", "Please fill in all fields.": "Täytä kaikki kentät.", "Please select a model first.": "Valitse ensin malli.", "Please select a model.": "Valitse malli.", @@ -885,12 +931,13 @@ "Pull \"{{searchValue}}\" from Ollama.com": "Lataa \"{{searchValue}}\" Ollama.comista", "Pull a model from Ollama.com": "Lataa malli Ollama.comista", "Query Generation Prompt": "Kyselytulosten luontikehote", - "RAG Template": "RAG-malline", + "RAG Template": "RAG-kehote", "Rating": "Arviointi", "Re-rank models by topic similarity": "Uudelleenjärjestä mallit aiheyhteyden mukaan", "Read": "Lue", "Read Aloud": "Lue ääneen", "Reasoning Effort": "", + "Record": "", "Record voice": "Nauhoita ääntä", "Redirecting you to Open WebUI Community": "Ohjataan sinut OpenWebUI-yhteisöön", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -898,11 +945,11 @@ "References from": "Viitteet lähteistä", "Refused when it shouldn't have": "Kieltäytyi, vaikka ei olisi pitänyt", "Regenerate": "Uudelleentuota", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "Indeksoi uudelleen", + "Reindex Knowledge Base Vectors": "Indeksoi tietämyksen vektorit uudelleen", "Release Notes": "Julkaisutiedot", "Relevance": "Relevanssi", - "Relevance Threshold": "", + "Relevance Threshold": "Relevanssikynnys", "Remove": "Poista", "Remove Model": "Poista malli", "Rename": "Nimeä uudelleen", @@ -939,7 +986,7 @@ "Save Tag": "Tallenna tagi", "Saved": "Tallennettu", "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": "Keskustelulokien tallentaminen suoraan selaimen tallennustilaan ei ole enää tuettu. Lataa ja poista keskustelulokit napsauttamalla alla olevaa painiketta. Älä huoli, voit helposti tuoda keskustelulokit takaisin backendiin", - "Scroll to bottom when switching between branches": "Vierittää alaspäin vaihdettaessa haarojen välillä", + "Scroll On Branch Change": "", "Search": "Haku", "Search a model": "Hae mallia", "Search Base": "Hakupohja", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Etsitty {{count}} sivulta", "Searching \"{{searchQuery}}\"": "Haetaan \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Haetaan tietämystä \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng-kyselyn verkko-osoite", "See readme.md for instructions": "Katso ohjeet readme.md-tiedostosta", "See what's new": "Katso, mitä uutta", @@ -1085,7 +1133,7 @@ "Theme": "Teema", "Thinking...": "Ajattelee...", "This action cannot be undone. Do you wish to continue?": "Tätä toimintoa ei voi peruuttaa. Haluatko jatkaa?", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "Tämä kanava on luotiin {{createdAt}}. Tämä on {{channelName}} kanavan alku.", "This chat won’t appear in history and your messages will not be saved.": "Tämä keskustelu ei näy historiassa, eikä viestejäsi tallenneta.", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Tämä varmistaa, että arvokkaat keskustelusi tallennetaan turvallisesti backend-tietokantaasi. Kiitos!", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "Tämä on kokeellinen ominaisuus, se ei välttämättä toimi odotetulla tavalla ja se voi muuttua milloin tahansa.", @@ -1140,11 +1188,10 @@ "Tools Access": "Työkalujen käyttöoikeudet", "Tools are a function calling system with arbitrary code execution": "Työkalut ovat toimintokutsuihin perustuva järjestelmä, joka sallii mielivaltaisen koodin suorittamisen", "Tools Function Calling Prompt": "Työkalujen kutsukehote", - "Tools have a function calling system that allows arbitrary code execution": "Työkaluilla on toimintokutsuihin perustuva järjestelmä, joka sallii mielivaltaisen koodin suorittamisen", "Tools have a function calling system that allows arbitrary code execution.": "Työkalut sallivat mielivaltaisen koodin suorittamisen toimintokutsuilla.", "Tools Public Sharing": "Työkalujen julkinen jakaminen", "Top K": "Top K", - "Top K Reranker": "", + "Top K Reranker": "Top K uudelleen sijoittaja", "Top P": "Top P", "Transformers": "Muunnokset", "Trouble accessing Ollama?": "Ongelmia Ollama-yhteydessä?", @@ -1163,6 +1210,7 @@ "Unpin": "Irrota kiinnitys", "Unravel secrets": "Avaa salaisuuksia", "Untagged": "Ei tageja", + "Untitled": "", "Update": "Päivitä", "Update and Copy Link": "Päivitä ja kopioi linkki", "Update for the latest features and improvements.": "Päivitä uusimpiin ominaisuuksiin ja parannuksiin.", @@ -1170,9 +1218,10 @@ "Updated": "Päivitetty", "Updated at": "Päivitetty", "Updated At": "Päivitetty", - "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", + "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Päivitä lisenssi saadaksesi parempia ominaisuuksia, mukaan lukien mukautetun teeman ja brändäyksen sekä yksilöllistä tukea.", "Upload": "Lataa", "Upload a GGUF model": "Lataa GGUF-malli", + "Upload Audio": "", "Upload directory": "Latauksen hakemisto", "Upload files": "Lataa tiedostoja", "Upload Files": "Lataa tiedostoja", @@ -1184,8 +1233,8 @@ "Use Gravatar": "Käytä Gravataria", "Use groups to group your users and assign permissions.": "Käytä ryhmiä jäsentääksesi käyttäjiä ja antaaksesi käyttöoikeuksia.", "Use Initials": "Käytä alkukirjaimia", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", + "Use no proxy to fetch page contents.": "Älä käytä välityspalvelinta sivun tietoja haettaessa.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Käytä http_proxy- ja https_proxy-ympäristömuuttujien määrittämää välityspalvelinta sivun sisällön hakemiseen.", "use_mlock (Ollama)": "use_mlock (Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "käyttäjä", @@ -1203,7 +1252,7 @@ "variable": "muuttuja", "variable to have them replaced with clipboard content.": "muuttuja korvataan leikepöydän sisällöllä.", "Verify Connection": "Tarkista yhteys", - "Verify SSL Certificate": "", + "Verify SSL Certificate": "Tarkista SSL-varmenne", "Version": "Versio", "Version {{selectedVersion}} of {{totalVersions}}": "Versio {{selectedVersion}} / {{totalVersions}}", "View Replies": "Näytä vastaukset", @@ -1218,7 +1267,7 @@ "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Varoitus: Jupyter käyttö voi mahdollistaa mielivaltaiseen koodin suorittamiseen, mikä voi aiheuttaa tietoturvariskejä - käytä äärimmäisen varoen.", "Web": "Web", "Web API": "Web-API", - "Web Loader Engine": "", + "Web Loader Engine": "Verkko lataaja moottori", "Web Search": "Verkkohaku", "Web Search Engine": "Hakukoneet", "Web Search in Chat": "Verkkohaku keskustelussa", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Kirjoita 50 sanan yhteenveto, joka tiivistää [aihe tai avainsana].", "Write something...": "Kirjoita jotain...", "Write your model template content here": "Kirjoita mallisi mallinnesisältö tähän", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Eilen", "You": "Sinä", - "You are currently using a trial license. Please contact support to upgrade your license.": "", + "You are currently using a trial license. Please contact support to upgrade your license.": "Käytät tällä hetkellä kokeiluversiota. Ota yhteyttä tukeen lisenssin päivittämiseksi.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Voit keskustella enintään {{maxCount}} tiedoston kanssa kerralla.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Voit personoida vuorovaikutustasi LLM-ohjelmien kanssa lisäämällä muistoja 'Hallitse'-painikkeen kautta, jolloin ne ovat hyödyllisempiä ja räätälöityjä sinua varten.", "You cannot upload an empty file.": "Et voi ladata tyhjää tiedostoa.", - "You do not have permission to upload files": "Sinulla ei ole lupaa ladata tiedostoja", "You do not have permission to upload files.": "Sinulla ei ole lupaa ladata tiedostoja.", "You have no archived conversations.": "Sinulla ei ole arkistoituja keskusteluja.", "You have shared this chat": "Olet jakanut tämän keskustelun", diff --git a/src/lib/i18n/locales/fr-CA/translation.json b/src/lib/i18n/locales/fr-CA/translation.json index 54adb90ff..a6b8e8fa7 100644 --- a/src/lib/i18n/locales/fr-CA/translation.json +++ b/src/lib/i18n/locales/fr-CA/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(par ex. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(par exemple `sh webui.sh --api`)", "(latest)": "(dernier)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modèles }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Autoriser la suppression de l'historique de chat", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Autoriser les voix non locales", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "un assistant", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Êtes-vous certain ?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Mauvaise réponse", "Banners": "Banniers", "Base Model (From)": "Modèle de base (à partir de)", + "Base URL": "", "Batch Size (num_batch)": "Taille du lot (num_batch)", "before": "avant", "Being lazy": "Être fainéant", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Clé API Brave Search", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Annuler", "Capabilities": "Capacités", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Changer le mot de passe", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Créer une nouvelle clé principale", "Create new secret key": "Créer une nouvelle clé secrète", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Créé à", "Created At": "Créé le", "Created by": "Créé par", @@ -299,6 +309,7 @@ "Delete function?": "Supprimer la fonction ?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Supprimer la prompt ?", "delete this link": "supprimer ce lien", "Delete tool?": "Effacer l'outil ?", @@ -354,7 +365,7 @@ "Download Database": "Télécharger la base de données", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10 min'. Les unités de temps valides sont 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Modifier", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Activer les nouvelles inscriptions", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Vérifiez que votre fichier CSV comprenne les 4 colonnes dans cet ordre : Name, Email, Password, Role.", "Enter {{role}} message here": "Entrez le message {{role}} ici", "Enter a detail about yourself for your LLMs to recall": "Saisissez un détail sur vous-même que vos LLMs pourront se rappeler", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Entrez la taille de bloc", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Entrez l'URL brute de GitHub", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Entrez l'étiquette du modèle (par ex. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Entrez le nombre de pas (par ex. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (par ex. {http://127.0.0.1:7860/})", "Enter URL (e.g. http://localhost:11434)": "Entrez l'URL (par ex. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Entrez votre adresse e-mail", "Enter Your Full Name": "Entrez votre nom complet", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Entrez votre mot de passe", "Enter Your Role": "Entrez votre rôle", @@ -480,6 +504,8 @@ "Error": "Erreur", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Outils d'exportation", "External": "", "External Models": "Modèles externes", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Échec de la création de la clé API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Diffuser de manière fluide de larges portions de réponses externes", "Focus chat input": "Se concentrer sur le chat en entrée", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "A parfaitement suivi les instructions", @@ -565,17 +596,18 @@ "Function Name": "Nom de la fonction", "Function updated successfully": "La fonction a été mise à jour avec succès", "Functions": "Fonctions", - "Functions allow arbitrary code execution": "Les fonctions permettent l'exécution de code arbitraire", "Functions allow arbitrary code execution.": "Les fonctions permettent l'exécution de code arbitraire.", "Functions imported successfully": "Fonctions importées avec succès", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Général", + "Generate": "", "Generate an image": "", "Generate Image": "Générer une image", "Generate prompt pair": "", "Generating search query": "Génération d'une requête de recherche", + "Generating...": "", "Get started": "Démarrer", "Get started with {{WEBUI_NAME}}": "Démarrez avec {{WEBUI_NAME}}", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "Import de fonctions", "Import Models": "Importer des modèles", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importer des Enseignes", "Import Tools": "Outils d'importation", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Envoi automatique instantané après transcription vocale", "Integration": "", "Interface": "Interface utilisateur", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Étiquette non valide", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gérer les pipelines", "Manage Tool Servers": "", "March": "Mars", + "Max Speakers": "", "Max Tokens (num_predict)": "Tokens maximaux (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "La mémoire a été supprimée avec succès", "Memory updated successfully": "La mémoire a été mise à jour avec succès", "Merge Responses": "", + "Merged Response": "Réponse fusionnée", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Les messages que vous envoyez après avoir créé votre lien ne seront pas partagés. Les utilisateurs disposant de l'URL pourront voir le chat partagé.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Plus de", + "My Notes": "", "Name": "Nom", "Name your knowledge base": "", "Native": "", "New Chat": "Nouvelle conversation", "New Folder": "", + "New Note": "", "New Password": "Nouveau mot de passe", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "Rien à signaler", "No distance available": "", "No feedbacks found": "", "No file selected": "Aucun fichier sélectionné", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Aucun résultat trouvé", "No search query generated": "Aucune requête de recherche générée", "No source available": "Aucune source n'est disponible", @@ -782,6 +825,7 @@ "None": "Aucun", "Not factually correct": "Non factuellement correct", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Note : Si vous définissez un score minimum, seuls les documents ayant un score supérieur ou égal à ce score minimum seront retournés par la recherche.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Seuls les caractères alphanumériques et les tirets sont autorisés dans la chaîne de commande.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oups ! Il semble que l'URL soit invalide. Veuillez vérifier à nouveau et réessayer.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Aucun pipelines détecté", "Pipelines Valves": "Vannes de Pipelines", + "Plain text (.md)": "", "Plain text (.txt)": "Texte simple (.txt)", "Playground": "Aire de jeux", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Lire à haute voix", "Reasoning Effort": "", + "Record": "", "Record voice": "Enregistrer la voix", "Redirecting you to Open WebUI Community": "Redirection vers la communauté OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "La sauvegarde des journaux de discussion directement dans le stockage de votre navigateur n'est plus prise en charge. Veuillez prendre un instant pour télécharger et supprimer vos journaux de discussion en cliquant sur le bouton ci-dessous. Pas de soucis, vous pouvez facilement les réimporter depuis le backend via l'interface ci-dessous", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Recherche", "Search a model": "Rechercher un modèle", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Recherche de « {{searchQuery}} »", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "URL de recherche Searxng", "See readme.md for instructions": "Voir le fichier readme.md pour les instructions", "See what's new": "Découvrez les nouvelles fonctionnalités", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "Mise à jour", "Update and Copy Link": "Mettre à jour et copier le lien", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Télécharger", "Upload a GGUF model": "Téléverser un modèle GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Télécharger des fichiers", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé de 50 mots qui résume [sujet ou mot-clé].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Hier", "You": "Vous", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Vous pouvez personnaliser vos interactions avec les LLM en ajoutant des souvenirs via le bouton 'Gérer' ci-dessous, ce qui les rendra plus utiles et adaptés à vos besoins.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Vous n'avez aucune conversation archivée", "You have shared this chat": "Vous avez partagé cette conversation.", diff --git a/src/lib/i18n/locales/fr-FR/translation.json b/src/lib/i18n/locales/fr-FR/translation.json index 2c701f12d..e9efb8551 100644 --- a/src/lib/i18n/locales/fr-FR/translation.json +++ b/src/lib/i18n/locales/fr-FR/translation.json @@ -4,10 +4,11 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(par ex. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(par exemple `sh webui.sh --api`)", "(latest)": "(dernière version)", - "(Ollama)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", + "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", - "{{COUNT}} Available Tools": "", - "{{COUNT}} hidden lines": "", + "{{COUNT}} Available Tools": "Nombre d'outils disponibles {{COUNT}}", + "{{COUNT}} hidden lines": "Nombres de lignes cachées {{COUNT}}", "{{COUNT}} Replies": "{{COUNT}} réponses", "{{user}}'s Chats": "Conversations de {{user}}", "{{webUIName}} Backend Required": "Backend {{webUIName}} requis", @@ -16,7 +17,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.", "a user": "un utilisateur", "About": "À propos", - "Accept autocomplete generation / Jump to prompt variable": "", + "Accept autocomplete generation / Jump to prompt variable": "Accepter la génération de saisie semi-automatique / Accéder directement à la variable du prompt", "Access": "Accès", "Access Control": "Contrôle d'accès", "Accessible to all users": "Accessible à tous les utilisateurs", @@ -54,20 +55,22 @@ "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Les administrateurs ont accès à tous les outils en permanence ; les utilisateurs doivent se voir attribuer des outils pour chaque modèle dans l’espace de travail.", "Advanced Parameters": "Paramètres avancés", "Advanced Params": "Paramètres avancés", - "All": "", + "All": "Tout", "All Documents": "Tous les documents", "All models deleted successfully": "Tous les modèles ont été supprimés avec succès", - "Allow Call": "", + "Allow Call": "Autoriser les appels", "Allow Chat Controls": "Autoriser les contrôles de chat", "Allow Chat Delete": "Autoriser la suppression de la conversation", "Allow Chat Deletion": "Autoriser la suppression de l'historique de chat", "Allow Chat Edit": "Autoriser la modification de la conversation", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Autoriser le téléchargement de fichiers", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "Autoriser plusieurs modèles dans le chat", "Allow non-local voices": "Autoriser les voix non locales", - "Allow Speech to Text": "", + "Allow Speech to Text": "Autoriser la reconnaissance vocale", "Allow Temporary Chat": "Autoriser le chat éphémère", - "Allow Text to Speech": "", + "Allow Text to Speech": "Autoriser la synthèse vocale", "Allow User Location": "Autoriser l'emplacement de l'utilisateur", "Allow Voice Interruption in Call": "Autoriser l'interruption vocale pendant un appel", "Allowed Endpoints": "Points de terminaison autorisés", @@ -76,14 +79,15 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Incroyable", "an assistant": "un assistant", - "Analyzed": "", - "Analyzing...": "", + "Analyzed": "Analysé", + "Analyzing...": "Analyse en cours", "and": "et", "and {{COUNT}} more": "et {{COUNT}} autres", "and create a new shared link.": "et créer un nouveau lien partagé.", - "Android": "", + "Android": "Android", "API Base URL": "URL de base de l'API", "API Key": "Clé d'API", "API Key created.": "Clé d'API générée.", @@ -97,26 +101,27 @@ "Archive All Chats": "Archiver toutes les conversations", "Archived Chats": "Conversations archivées", "archived-chat-export": "exportation de conversation archivée", - "Are you sure you want to clear all memories? This action cannot be undone.": "", + "Are you sure you want to clear all memories? This action cannot be undone.": "Êtes-vous certain de vouloir supprimer toutes les mémoires ? Cette action est définitive.", "Are you sure you want to delete this channel?": "Êtes-vous sûr de vouloir supprimer ce canal ?", "Are you sure you want to delete this message?": "Êtes-vous sûr de vouloir supprimer ce message ?", "Are you sure you want to unarchive all archived chats?": "Êtes-vous sûr de vouloir désarchiver toutes les conversations archivées?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Êtes-vous certain ?", "Arena Models": "Modèles d'arène", "Artifacts": "Artéfacts", - "Ask": "", + "Ask": "Demander", "Ask a question": "Posez votre question", "Assistant": "Assistant", - "Attach file from knowledge": "", + "Attach file from knowledge": "Joindre un fichier depuis la base de connaissances", "Attention to detail": "Attention aux détails", "Attribute for Mail": "Attribut pour l'e-mail", "Attribute for Username": "Attribut pour le nom d'utilisateur", "Audio": "Audio", "August": "Août", - "Auth": "", + "Auth": "Auth", "Authenticate": "Authentifier", - "Authentication": "", - "Auto": "", + "Authentication": "Authentification", + "Auto": "Automatique", "Auto-Copy Response to Clipboard": "Copie automatique de la réponse vers le presse-papiers", "Auto-playback response": "Lire automatiquement la réponse", "Autocomplete Generation": "Génération des suggestions", @@ -126,7 +131,7 @@ "AUTOMATIC1111 Base URL": "URL de base AUTOMATIC1111", "AUTOMATIC1111 Base URL is required.": "L'URL de base {AUTOMATIC1111} est requise.", "Available list": "Liste disponible", - "Available Tools": "", + "Available Tools": "Outils disponibles", "available!": "disponible !", "Awful": "Horrible", "Azure AI Speech": "Azure AI Speech", @@ -135,24 +140,27 @@ "Bad Response": "Mauvaise réponse", "Banners": "Bannières", "Base Model (From)": "Modèle de base (à partir de)", + "Base URL": "", "Batch Size (num_batch)": "Batch Size (num_batch)", "before": "avant", "Being lazy": "Être fainéant", "Beta": "Bêta", "Bing Search V7 Endpoint": "Point de terminaison Bing Search V7", "Bing Search V7 Subscription Key": "Clé d'abonnement Bing Search V7", - "Bocha Search API Key": "", + "Bocha Search API Key": "Clé API Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Clé API Brave Search", "By {{name}}": "Par {{name}}", - "Bypass Embedding and Retrieval": "", - "Calendar": "", + "Bypass Embedding and Retrieval": "Ignorer l'Embedding et le Retrieval", + "Calendar": "Calendrier", "Call": "Appeler", "Call feature is not supported when using Web STT engine": "La fonction d'appel n'est pas prise en charge lors de l'utilisation du moteur Web STT", "Camera": "Appareil photo", "Cancel": "Annuler", "Capabilities": "Capacités", "Capture": "Prise de vue", + "Capture Audio": "", "Certificate Path": "Chemin du certificat", "Change Password": "Changer le mot de passe", "Channel Name": "Nom du canal", @@ -178,14 +186,14 @@ "Ciphers": "Chiffres", "Citation": "Citation", "Clear memory": "Effacer la mémoire", - "Clear Memory": "", + "Clear Memory": "Effacer la mémoire", "click here": "cliquez ici", "Click here for filter guides.": "Cliquez ici pour les guides de filtrage.", "Click here for help.": "Cliquez ici pour obtenir de l'aide.", "Click here to": "Cliquez ici pour", "Click here to download user import template file.": "Cliquez ici pour télécharger le fichier modèle d'importation des utilisateurs.", "Click here to learn more about faster-whisper and see the available models.": "Cliquez ici pour en savoir plus sur faster-whisper et voir les modèles disponibles.", - "Click here to see available models.": "", + "Click here to see available models.": "Cliquer ici pour voir tous les modèles disponibles.", "Click here to select": "Cliquez ici pour sélectionner", "Click here to select a csv file.": "Cliquez ici pour sélectionner un fichier .csv.", "Click here to select a py file.": "Cliquez ici pour sélectionner un fichier .py.", @@ -195,17 +203,17 @@ "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "L'autorisation d'écriture du presse-papier a été refusée. Veuillez vérifier les paramètres de votre navigateur pour accorder l'accès nécessaire.", "Clone": "Cloner", "Clone Chat": "Dupliquer le Chat", - "Clone of {{TITLE}}": "", + "Clone of {{TITLE}}": "Dupliquat de {{TITLE}}", "Close": "Fermer", "Code execution": "Exécution de code", - "Code Execution": "", - "Code Execution Engine": "", - "Code Execution Timeout": "", + "Code Execution": "Exécution de code", + "Code Execution Engine": "Moteur d'execution de code", + "Code Execution Timeout": "Délai d'exécution du code dépassé", "Code formatted successfully": "Le code a été formaté avec succès", - "Code Interpreter": "", - "Code Interpreter Engine": "", - "Code Interpreter Prompt Template": "", - "Collapse": "", + "Code Interpreter": "Interpreteur de code", + "Code Interpreter Engine": "Moteur de l'interpreteur de code", + "Code Interpreter Prompt Template": "Modèle d'invite pour l'interpréteur de code", + "Collapse": "Réduire", "Collection": "Collection", "Color": "Couleur", "ComfyUI": "ComfyUI", @@ -222,16 +230,16 @@ "Confirm Password": "Confirmer le mot de passe", "Confirm your action": "Confirmer votre action", "Confirm your new password": "Confirmer votre nouveau mot de passe", - "Connect to your own OpenAI compatible API endpoints.": "", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", + "Connect to your own OpenAI compatible API endpoints.": "Connectez-vous à vos points d'extension API compatibles OpenAI.", + "Connect to your own OpenAPI compatible external tool servers.": "Connectez-vous à vos serveurs d'outils externes.", + "Connection failed": "Échec de la connexion", + "Connection successful": "Connexion réussie", "Connections": "Connexions", - "Connections saved successfully": "", + "Connections saved successfully": "Connexions enregistrées avec succès", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", "Contact Admin for WebUI Access": "Contacter l'administrateur pour obtenir l'accès à WebUI", "Content": "Contenu", - "Content Extraction Engine": "", + "Content Extraction Engine": "Moteur d'extraction de contenu", "Context Length": "Longueur du contexte", "Continue Response": "Continuer la réponse", "Continue with {{provider}}": "Continuer avec {{provider}}", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "URL du chat copié dans le presse-papiers !", "Copied to clipboard": "Copié dans le presse-papiers", "Copy": "Copier", - "Copy Formatted Text": "", + "Copy Formatted Text": "Copier le texte en gardant le format", "Copy last code block": "Copier le dernier bloc de code", "Copy last response": "Copier la dernière réponse", "Copy Link": "Copier le lien", @@ -262,15 +270,17 @@ "Create Knowledge": "Créer une connaissance", "Create new key": "Créer une nouvelle clé", "Create new secret key": "Créer une nouvelle clé secrète", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Créé le", "Created At": "Créé le", "Created by": "Créé par", "CSV Import": "Import CSV", - "Ctrl+Enter to Send": "", + "Ctrl+Enter to Send": "Ctrl+Enter pour envoyer", "Current Model": "Modèle actuel", "Current Password": "Mot de passe actuel", "Custom": "Sur mesure", - "Danger Zone": "", + "Danger Zone": "Zone de danger", "Dark": "Sombre", "Database": "Base de données", "December": "Décembre", @@ -298,7 +308,8 @@ "Delete folder?": "Supprimer le dossier ?", "Delete function?": "Supprimer la fonction ?", "Delete Message": "Supprimer le message", - "Delete message?": "", + "Delete message?": "Supprimer le message ?", + "Delete note?": "", "Delete prompt?": "Supprimer le prompt ?", "delete this link": "supprimer ce lien", "Delete tool?": "Effacer l'outil ?", @@ -308,19 +319,19 @@ "Deleted User": "Utilisateur supprimé", "Describe your knowledge base and objectives": "Décrivez votre base de connaissances et vos objectifs", "Description": "Description", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Détection automatique des Artifacts", "Didn't fully follow instructions": "N'a pas entièrement respecté les instructions", - "Direct": "", - "Direct Connections": "", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", - "Direct Connections settings updated": "", - "Direct Tool Servers": "", + "Direct": "Direct", + "Direct Connections": "Direct connexions", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permettent aux utilisateurs de se connecter à leurs propres points d'extension API compatibles OpenAI.", + "Direct Connections settings updated": "Paramètres des connexions directes mis à jour", + "Direct Tool Servers": "Serveur d'outils directs", "Disabled": "Désactivé", "Discover a function": "Trouvez une fonction", "Discover a model": "Trouvez un modèle", "Discover a prompt": "Trouvez un prompt", "Discover a tool": "Trouvez un outil", - "Discover how to use Open WebUI and seek support from the community.": "", + "Discover how to use Open WebUI and seek support from the community.": "Découvrez comment utiliser Open WebUI et obtenir de l’aide de la communauté.", "Discover wonders": "Découvrir des merveilles", "Discover, download, and explore custom functions": "Découvrez, téléchargez et explorez des fonctions personnalisées", "Discover, download, and explore custom prompts": "Découvrez, téléchargez et explorez des prompts personnalisés", @@ -334,15 +345,15 @@ "Dive into knowledge": "Plonger dans les connaissances", "Do not install functions from sources you do not fully trust.": "N'installez pas de fonctions provenant de sources auxquelles vous ne faites pas entièrement confiance.", "Do not install tools from sources you do not fully trust.": "N'installez pas d'outils provenant de sources auxquelles vous ne faites pas entièrement confiance.", - "Docling": "", - "Docling Server URL required.": "", + "Docling": "Docling", + "Docling Server URL required.": "URL du serveur Docling requise.", "Document": "Document", - "Document Intelligence": "", - "Document Intelligence endpoint and key required.": "", + "Document Intelligence": "Intelligence documentaire", + "Document Intelligence endpoint and key required.": "Endpoint et clé requis pour l'intelligence documentaire", "Documentation": "Documentation", "Documents": "Documents", "does not make any external connections, and your data stays securely on your locally hosted server.": "n'établit aucune connexion externe et garde vos données en sécurité sur votre serveur local.", - "Domain Filter List": "", + "Domain Filter List": "Liste des domaines à filtrés", "Don't have an account?": "Vous n'avez pas de compte ?", "don't install random functions from sources you don't trust.": "n'installez pas de fonctions aléatoires provenant de sources auxquelles vous ne faites pas confiance.", "don't install random tools from sources you don't trust.": "n'installez pas d'outils aléatoires provenant de sources auxquelles vous ne faites pas confiance.", @@ -354,17 +365,18 @@ "Download Database": "Télécharger la base de données", "Drag and drop a file to upload or select a file to view": "Glissez et déposez un fichier pour le télécharger ou sélectionnez un fichier à visualiser", "Draw": "Match nul", - "Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10 min'. Les unités de temps valides sont 's', 'm', 'h'.", - "e.g. \"json\" or a JSON schema": "", - "e.g. 60": "", + "e.g. \"json\" or a JSON schema": "par ex. \"json\" ou un schéma JSON", + "e.g. 60": "par ex. 60", "e.g. A filter to remove profanity from text": "par ex. un filtre pour retirer les vulgarités du texte", "e.g. My Filter": "par ex. Mon Filtre", "e.g. My Tools": "par ex. Mes Outils", "e.g. my_filter": "par ex. mon_filtre", "e.g. my_tools": "par ex. mes_outils", "e.g. Tools for performing various operations": "par ex. Outils pour effectuer diverses opérations", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "par ex., en-US, ja-JP (laisser vide pour détection automatique)", "Edit": "Modifier", "Edit Arena Model": "Modifier le modèle d'arène", "Edit Channel": "Modifier le canal", @@ -376,23 +388,24 @@ "ElevenLabs": "ElevenLabs", "Email": "E-mail", "Embark on adventures": "Embarquez pour des aventures", - "Embedding": "", + "Embedding": "Embedding", "Embedding Batch Size": "Taille du lot d'embedding", "Embedding Model": "Modèle d'embedding", "Embedding Model Engine": "Moteur de modèle d'embedding", "Embedding model set to \"{{embedding_model}}\"": "Modèle d'embedding défini sur « {{embedding_model}} »", "Enable API Key": "Activer la clé API", "Enable autocomplete generation for chat messages": "Activer la génération des suggestions pour les messages", - "Enable Code Execution": "", - "Enable Code Interpreter": "", + "Enable Code Execution": "Autoriser l'execution de code", + "Enable Code Interpreter": "Autoriser l'interprétation de code", "Enable Community Sharing": "Activer le partage communautaire", "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.": "Activer le verrouillage de la mémoire (mlock) pour empêcher les données du modèle d'être échangées de la RAM. Cette option verrouille l'ensemble de pages de travail du modèle en RAM, garantissant qu'elles ne seront pas échangées vers le disque. Cela peut aider à maintenir les performances en évitant les défauts de page et en assurant un accès rapide aux données.", "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.": "Activer le mappage de la mémoire (mmap) pour charger les données du modèle. Cette option permet au système d'utiliser le stockage disque comme une extension de la RAM en traitant les fichiers disque comme s'ils étaient en RAM. Cela peut améliorer les performances du modèle en permettant un accès plus rapide aux données. Cependant, cela peut ne pas fonctionner correctement avec tous les systèmes et peut consommer une quantité significative d'espace disque.", "Enable Message Rating": "Activer l'évaluation des messages", - "Enable Mirostat sampling for controlling perplexity.": "", + "Enable Mirostat sampling for controlling perplexity.": "Activer l'échantillonnage Mirostat pour contrôler Perplexité.", "Enable New Sign Ups": "Activer les nouvelles inscriptions", "Enabled": "Activé", - "Enforce Temporary Chat": "", + "Enforce Temporary Chat": "Imposer les discussions temporaires", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Vérifiez que votre fichier CSV comprenne les 4 colonnes dans cet ordre : Name, Email, Password, Role.", "Enter {{role}} message here": "Entrez le message {{role}} ici", "Enter a detail about yourself for your LLMs to recall": "Saisissez un détail sur vous-même que vos LLMs pourront se rappeler", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Entrez la taille des chunks", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Entrez la description", - "Enter Docling Server URL": "", - "Enter Document Intelligence Endpoint": "", - "Enter Document Intelligence Key": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", + "Enter Docling Server URL": "Entrez l'url du serveur Docling", + "Enter Document Intelligence Endpoint": "Entrez le point d'extension d'Intelligence documentaire", + "Enter Document Intelligence Key": "Entrez la clé du sevice d'Intelligence documentaire", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Entrez l'URL brute de GitHub", @@ -421,20 +440,21 @@ "Enter Google PSE Engine Id": "Entrez l'identifiant du moteur Google PSE", "Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (par ex. 512x512)", "Enter Jina API Key": "Entrez la clé API Jina", - "Enter Jupyter Password": "", - "Enter Jupyter Token": "", - "Enter Jupyter URL": "", + "Enter Jupyter Password": "Entrez le mot de passe Jupyter", + "Enter Jupyter Token": "Entrez le Token Jupyter", + "Enter Jupyter URL": "Entrez l'url de Jupyter", "Enter Kagi Search API Key": "Entrez la clé API Kagi Search", - "Enter Key Behavior": "", + "Enter Key Behavior": "Entrez la clé Behavior", "Enter language codes": "Entrez les codes de langue", - "Enter Mistral API Key": "", + "Enter Mistral API Key": "Entrez la clé APU de Mistral", "Enter Model ID": "Entrez l'ID du modèle", "Enter model tag (e.g. {{modelTag}})": "Entrez le tag du modèle (par ex. {{modelTag}})", "Enter Mojeek Search API Key": "Entrez la clé API Mojeek", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Entrez le nombre d'étapes (par ex. 50)", - "Enter Perplexity API Key": "", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Perplexity API Key": "Entrez la clé pour l'API de Perplixity", + "Enter Playwright Timeout": "Entrez le délai d'expiration Playwright", + "Enter Playwright WebSocket URL": "Entrez l'irl du websocket Playwright", "Enter proxy URL (e.g. https://user:password@host:port)": "Entrez l'URL du proxy (par ex. https://use:password@host:port)", "Enter reasoning effort": "Entrez l'effort de raisonnement", "Enter Sampler (e.g. Euler a)": "Entrez le sampler (par ex. Euler a)", @@ -444,34 +464,38 @@ "Enter SearchApi Engine": "Entrez le moteur de recherche SearchApi", "Enter Searxng Query URL": "Entrez l'URL de la requête Searxng", "Enter Seed": "Entrez Seed", - "Enter SerpApi API Key": "", - "Enter SerpApi Engine": "", + "Enter SerpApi API Key": "Entrez la clé API SerPAI", + "Enter SerpApi Engine": "Entrez le moteur SerApi", "Enter Serper API Key": "Entrez la clé API Serper", "Enter Serply API Key": "Entrez la clé API Serply", "Enter Serpstack API Key": "Entrez la clé API Serpstack", "Enter server host": "Entrez l'hôte du serveur", "Enter server label": "Entrez l'étiquette du serveur", "Enter server port": "Entrez le port du serveur", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Sougou Search API sID": "Entrez le sID pour l'API Search de Sougou", + "Enter Sougou Search API SK": "Entrez la SK pour l'API Search de Sougou", "Enter stop sequence": "Entrez la séquence d'arrêt", "Enter system prompt": "Entrez le prompt système", - "Enter system prompt here": "", + "Enter system prompt here": "Entrez le prompt système ici", "Enter Tavily API Key": "Entrez la clé API Tavily", - "Enter Tavily Extract Depth": "", + "Enter Tavily Extract Depth": "Entrez la profondeur d'extraction de Tavily", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Entrez l'URL publique de votre WebUI. Cette URL sera utilisée pour générer des liens dans les notifications.", "Enter Tika Server URL": "Entrez l'URL du serveur Tika", - "Enter timeout in seconds": "", - "Enter to Send": "", - "Enter Top K": "Entrez les Top K", - "Enter Top K Reranker": "", + "Enter timeout in seconds": "Entrez le délai d'expiration en secondes", + "Enter to Send": "Taper entrer pour envoyer", + "Enter Top K": "Entrez la valeur Top K", + "Enter Top K Reranker": "Entrez la valeur Top K pour le Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (par ex. {http://127.0.0.1:7860/})", "Enter URL (e.g. http://localhost:11434)": "Entrez l'URL (par ex. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Entrez votre mot de passe actuel", "Enter Your Email": "Entrez votre adresse e-mail", "Enter Your Full Name": "Entrez votre nom complet", "Enter your message": "Entrez votre message", - "Enter your name": "", + "Enter your name": "Entrez votre nom", + "Enter Your Name": "", "Enter your new password": "Entrez votre nouveau mot de passe", "Enter Your Password": "Entrez votre mot de passe", "Enter Your Role": "Entrez votre rôle", @@ -480,9 +504,11 @@ "Error": "Erreur", "ERROR": "ERREUR", "Error accessing Google Drive: {{error}}": "Erreur d'accès à Google Drive : {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Erreur de téléversement du fichier : {{error}}", "Evaluations": "Évaluations", - "Exa API Key": "", + "Exa API Key": "Clé d'Exa API", "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Exemple: (&(objectClass=inetOrgPerson)(uid=%s))", "Example: ALL": "Exemple: TOUS", "Example: mail": "Exemple: mail", @@ -490,12 +516,12 @@ "Example: sAMAccountName or uid or userPrincipalName": "Exemple: sAMAccountName ou uid ou userPrincipalName", "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "", "Exclude": "Exclure", - "Execute code for analysis": "", - "Executing **{{NAME}}**...": "", - "Expand": "", + "Execute code for analysis": "Executer le code pour l'analyse", + "Executing **{{NAME}}**...": "Execution **{{NAME}}**...", + "Expand": "Développer", "Experimental": "Expérimental", - "Explain": "", - "Explain this section to me in more detail": "", + "Explain": "Explique", + "Explain this section to me in more detail": "Explique-moi cette section plus en détail", "Explore the cosmos": "Explorer le cosmos", "Export": "Exportation", "Export All Archived Chats": "Exporter toutes les conversations archivées", @@ -509,18 +535,24 @@ "Export Prompts": "Exporter des prompts", "Export to CSV": "Exporter en CSV", "Export Tools": "Exporter des outils", - "External": "", + "External": "Externe", "External Models": "Modèles externes", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Échec de l'ajout du fichier.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Échec de la création de la clé API.", + "Failed to delete note": "", "Failed to fetch models": "Échec de la récupération des modèles", + "Failed to load file content.": "", "Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers", - "Failed to save connections": "", + "Failed to save connections": "Échec de la sauvegarde des connexions", "Failed to save models configuration": "Échec de la sauvegarde de la configuration des modèles", "Failed to update settings": "Échec de la mise à jour des paramètres", "Failed to upload file.": "Échec du téléchargement du fichier.", - "Features": "", + "Features": "Fonctionnalités", "Features Permissions": "Autorisations des fonctionnalités", "February": "Février", "Feedback History": "Historique des avis", @@ -539,23 +571,22 @@ "Filter is now globally enabled": "Le filtre est désormais activé globalement", "Filters": "Filtres", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Spoofing détecté : impossible d'utiliser les initiales comme avatar. Retour à l'image de profil par défaut.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "Url de l'API Base Firecrawl", + "Firecrawl API Key": "Clé de l'API Firecrawl", "Fluidly stream large external response chunks": "Streaming fluide de gros chunks de réponses externes", "Focus chat input": "Mettre le focus sur le champ de chat", "Folder deleted successfully": "Dossier supprimé avec succès", - "Folder name cannot be empty": "Le nom du dossier ne peut pas être vide", "Folder name cannot be empty.": "Le nom du dossier ne peut pas être vide.", "Folder name updated successfully": "Le nom du dossier a été mis à jour avec succès", "Followed instructions perfectly": "A parfaitement suivi les instructions", "Forge new paths": "Créer de nouveaux chemins", "Form": "Formulaire", "Format your variables using brackets like this:": "Formatez vos variables en utilisant des parenthèses comme ceci :", - "Forwards system user session credentials to authenticate": "", + "Forwards system user session credentials to authenticate": "Transmet les identifiants de session de l'utilisateur pour l'authentification", "Frequency Penalty": "Pénalité de fréquence", - "Full Context Mode": "", + "Full Context Mode": "Mode avec injection complète dans le Context", "Function": "Fonction", - "Function Calling": "", + "Function Calling": "Appel de fonction", "Function created successfully": "La fonction a été créée avec succès", "Function deleted successfully": "Fonction supprimée avec succès", "Function Description": "Description de la fonction", @@ -565,17 +596,18 @@ "Function Name": "Nom de la fonction", "Function updated successfully": "La fonction a été mise à jour avec succès", "Functions": "Fonctions", - "Functions allow arbitrary code execution": "Les fonctions permettent l'exécution de code arbitraire", "Functions allow arbitrary code execution.": "Les fonctions permettent l'exécution de code arbitraire.", "Functions imported successfully": "Fonctions importées avec succès", - "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", + "Gemini": "Gemini", + "Gemini API Config": "Configuration de l'API de Gemini", + "Gemini API Key is required.": "La clé d'API de Gemini est requise", "General": "Général", - "Generate an image": "", + "Generate": "", + "Generate an image": "Génère une image", "Generate Image": "Générer une image", - "Generate prompt pair": "", + "Generate prompt pair": "Générer une paire de prompt", "Generating search query": "Génération d'une requête de recherche", + "Generating...": "", "Get started": "Démarrer", "Get started with {{WEBUI_NAME}}": "Démarrez avec {{WEBUI_NAME}}", "Global": "Globale", @@ -597,16 +629,16 @@ "Hex Color": "Couleur Hex", "Hex Color - Leave empty for default color": "Couleur Hex - Laissez vide pour la couleur par défaut", "Hide": "Cacher", - "Hide Model": "", - "Home": "", + "Hide Model": "Cache le Model", + "Home": "Home", "Host": "Hôte", "How can I help you today?": "Comment puis-je vous aider aujourd'hui ?", "How would you rate this response?": "Comment évalueriez-vous cette réponse ?", "Hybrid Search": "Recherche hybride", "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.": "Je reconnais avoir lu et compris les implications de mes actions. Je suis conscient des risques associés à l'exécution d'un code arbitraire et j'ai vérifié la fiabilité de la source.", "ID": "ID", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", + "iframe Sandbox Allow Forms": "Autoriser les formulaires dans l'iframe sandbox", + "iframe Sandbox Allow Same Origin": "Autoriser même origine dans l'iframe sandbox", "Ignite curiosity": "Éveiller la curiosité", "Image": "Image", "Image Compression": "Compression d'image", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importer la configuration depuis un fichier JSON", "Import Functions": "Importer des fonctions", "Import Models": "Importer des modèles", + "Import Notes": "", "Import Presets": "Importer les préréglages", "Import Prompts": "Importer des prompts", "Import Tools": "Importer des outils", @@ -630,14 +663,15 @@ "Include `--api` flag when running stable-diffusion-webui": "Inclure le drapeau `--api` lorsque vous exécutez stable-diffusion-webui", "Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive.": "", "Info": "Info", - "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "", + "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "Injecter l'ensemble du contenu comme contexte pour un traitement complet, recommandé pour les requêtes complexes.", "Input commands": "Commandes d'entrée", "Install from Github URL": "Installer depuis une URL GitHub", "Instant Auto-Send After Voice Transcription": "Envoi automatique après la transcription", - "Integration": "", + "Integration": "Intégration", "Interface": "Interface utilisateur", + "Invalid file content": "", "Invalid file format.": "Format de fichier non valide.", - "Invalid JSON schema": "", + "Invalid JSON schema": "Schema JSon non valide", "Invalid Tag": "Tag non valide", "is typing...": "est en train d'écrire...", "January": "Janvier", @@ -647,8 +681,8 @@ "JSON Preview": "Aperçu JSON", "July": "Juillet", "June": "Juin", - "Jupyter Auth": "", - "Jupyter URL": "", + "Jupyter Auth": "Auth Jupyther", + "Jupyter URL": "URL Jupyter", "JWT Expiration": "Expiration du token JWT", "JWT Token": "Token JWT", "Kagi Search API Key": "Clé API Kagi Search", @@ -659,53 +693,54 @@ "Knowledge Access": "Accès aux connaissances", "Knowledge created successfully.": "Connaissance créée avec succès.", "Knowledge deleted successfully.": "Connaissance supprimée avec succès.", - "Knowledge Public Sharing": "", + "Knowledge Public Sharing": "Partage public des Connaissances", "Knowledge reset successfully.": "Connaissance réinitialisée avec succès.", "Knowledge updated successfully": "Connaissance mise à jour avec succès", - "Kokoro.js (Browser)": "", - "Kokoro.js Dtype": "", + "Kokoro.js (Browser)": "Kokoro.js (Navigateur)", + "Kokoro.js Dtype": "Kokoro.js Dtype", "Label": "Étiquette", "Landing Page Mode": "Mode de la page d'accueil", "Language": "Langue", - "Language Locales": "", + "Language Locales": "Paramètres régionaux de langue", "Last Active": "Dernière activité", "Last Modified": "Dernière modification", "Last reply": "Déernière réponse", "LDAP": "LDAP", "LDAP server updated": "Serveur LDAP mis à jour", "Leaderboard": "Classement", - "Learn more about OpenAPI tool servers.": "", + "Learn more about OpenAPI tool servers.": "En savoir plus sur les serveurs d'outils OpenAPI.", "Leave empty for unlimited": "Laissez vide pour illimité", "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "", "Leave empty to include all models from \"{{url}}/models\" endpoint": "", "Leave empty to include all models or select specific models": "Laissez vide pour inclure tous les modèles ou sélectionnez des modèles spécifiques", "Leave empty to use the default prompt, or enter a custom prompt": "Laissez vide pour utiliser le prompt par défaut, ou entrez un prompt personnalisé", - "Leave model field empty to use the default model.": "", - "License": "", + "Leave model field empty to use the default model.": "Laisser le champ du modèle vide pour utiliser le modèle par défaut.", + "License": "Licence", "Light": "Clair", "Listening...": "Écoute en cours...", "Llama.cpp": "Llama.cpp", "LLMs can make mistakes. Verify important information.": "Les LLM peuvent faire des erreurs. Vérifiez les informations importantes.", - "Loader": "", - "Loading Kokoro.js...": "", + "Loader": "Chargeur", + "Loading Kokoro.js...": "Chargement de Kokoro.js...", "Local": "Local", "Local Models": "Modèles locaux", - "Location access not allowed": "", - "Logit Bias": "", + "Location access not allowed": "Accès à la localisation non autorisé", + "Logit Bias": "Biais de Logit", "Lost": "Perdu", "LTR": "LTR", "Made by Open WebUI Community": "Réalisé par la communauté OpenWebUI", "Make sure to enclose them with": "Assurez-vous de les inclure dans", "Make sure to export a workflow.json file as API format from ComfyUI.": "Veillez à exporter un fichier workflow.json au format API depuis ComfyUI.", "Manage": "Gérer", - "Manage Direct Connections": "", + "Manage Direct Connections": "Gérer les connexions directes", "Manage Models": "Gérer les modèles", "Manage Ollama": "Gérer Ollama", "Manage Ollama API Connections": "Gérer les connexions API Ollama", "Manage OpenAI API Connections": "Gérer les connexions API OpenAI", "Manage Pipelines": "Gérer les pipelines", - "Manage Tool Servers": "", + "Manage Tool Servers": "Gérer les serveurs d'outils", "March": "Mars", + "Max Speakers": "", "Max Tokens (num_predict)": "Nb max de tokens (num_predict)", "Max Upload Count": "Nombre maximal de téléversements", "Max Upload Size": "Limite de taille de téléversement", @@ -718,22 +753,26 @@ "Memory deleted successfully": "Le souvenir a été supprimé avec succès", "Memory updated successfully": "Le souvenir a été mis à jour avec succès", "Merge Responses": "Fusionner les réponses", + "Merged Response": "Réponse fusionnée", "Message rating should be enabled to use this feature": "L'évaluation des messages doit être activée pour pouvoir utiliser cette fonctionnalité", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Les messages que vous envoyez après avoir créé votre lien ne seront pas partagés. Les utilisateurs disposant de l'URL pourront voir la conversation partagée.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "P min", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", - "Mistral OCR": "", - "Mistral OCR API Key required.": "", + "Mistral OCR": "Mistral OCR", + "Mistral OCR API Key required.": "Clé d'API pour Mistral OCR requise", "Model": "Modèle", "Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.", "Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.", "Model {{modelId}} not found": "Modèle {{modelId}} introuvable", "Model {{modelName}} is not vision capable": "Le modèle {{modelName}} n'a pas de capacités visuelles", "Model {{name}} is now {{status}}": "Le modèle {{name}} est désormais {{status}}.", - "Model {{name}} is now hidden": "", - "Model {{name}} is now visible": "", + "Model {{name}} is now hidden": "Le modèle {{name}} est maintenant masqué", + "Model {{name}} is now visible": "Le modèle {{name}} est maintenant visible", "Model accepts image inputs": "Le modèle accepte les images en entrée", "Model created successfully!": "Le modèle a été créé avec succès !", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "Chemin du système de fichiers de modèle détecté. Le nom court du modèle est requis pour la mise à jour, l'opération ne peut pas être poursuivie.", @@ -749,23 +788,26 @@ "Models": "Modèles", "Models Access": "Accès aux modèles", "Models configuration saved successfully": "Configuration des modèles enregistrée avec succès", - "Models Public Sharing": "", + "Models Public Sharing": "Partage public des modèles", "Mojeek Search API Key": "Clé API Mojeek", "more": "plus", "More": "Plus", + "My Notes": "", "Name": "Nom d'utilisateur", "Name your knowledge base": "Nommez votre base de connaissances", "Native": "Natif", "New Chat": "Nouvelle conversation", "New Folder": "Nouveau dossier", + "New Note": "", "New Password": "Nouveau mot de passe", "new-channel": "nouveau-canal", + "No content": "", "No content found": "Aucun contenu trouvé", + "No content found in file.": "", "No content to speak": "Rien à signaler", "No distance available": "Aucune distance disponible", "No feedbacks found": "Aucun avis trouvé", "No file selected": "Aucun fichier sélectionné", - "No files found.": "Aucun fichier trouvé.", "No groups with access, add a group to grant access": "Aucun groupe n'a accès, ajoutez un groupe pour accorder l'accès", "No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.", "No inference engine with management support found": "Aucun moteur d'inférence avec support trouvé", @@ -774,6 +816,7 @@ "No model IDs": "Aucun ID de modèle", "No models found": "Aucun modèle trouvé", "No models selected": "Aucun modèle sélectionné", + "No Notes": "", "No results found": "Aucun résultat trouvé", "No search query generated": "Aucune requête de recherche générée", "No source available": "Aucune source n'est disponible", @@ -782,6 +825,7 @@ "None": "Aucun", "Not factually correct": "Non factuellement correct", "Not helpful": "Pas utile", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Note : Si vous définissez un score minimum, seuls les documents ayant un score supérieur ou égal à ce score minimum seront retournés par la recherche.", "Notes": "Notes", "Notification Sound": "Son de notification", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Seuls les caractères alphanumériques et les tirets sont autorisés", "Only alphanumeric characters and hyphens are allowed in the command string.": "Seuls les caractères alphanumériques et les tirets sont autorisés dans la chaîne de commande.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Seules les collections peuvent être modifiées, créez une nouvelle base de connaissance pour modifier/ajouter des documents.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Seuls les utilisateurs et groupes autorisés peuvent accéder", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oups ! Il semble que l'URL soit invalide. Veuillez vérifier à nouveau et réessayer.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Oups ! Des fichiers sont encore en cours de téléversement. Veuillez patienter jusqu'à la fin du téléversement.", @@ -812,7 +857,7 @@ "Open file": "Ouvrir le fichier", "Open in full screen": "Ouvrir en plein écran", "Open new chat": "Ouvrir une nouvelle conversation", - "Open WebUI can use tools provided by any OpenAPI server.": "", + "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI peut utiliser les outils fournis par n'importe quel serveur OpenAPI.", "Open WebUI uses faster-whisper internally.": "Open WebUI utilise faster-whisper en interne.", "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI utilise SpeechT5 et les embeddings de locuteur CMU Arctic.", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "La version Open WebUI (v{{OPEN_WEBUI_VERSION}}) est inférieure à la version requise (v{{REQUIRED_VERSION}})", @@ -822,7 +867,7 @@ "OpenAI API Key is required.": "Une clé API OpenAI est requise.", "OpenAI API settings updated": "Paramètres de l'API OpenAI mis à jour", "OpenAI URL/Key required.": "URL/Clé OpenAI requise.", - "openapi.json Path": "", + "openapi.json Path": "Chemin du fichier openapi.json", "or": "ou", "Organize your users": "Organisez vos utilisateurs", "Other": "Autre", @@ -839,7 +884,7 @@ "Permission denied when accessing microphone": "Accès au microphone refusé", "Permission denied when accessing microphone: {{error}}": "Accès au microphone refusé : {{error}}", "Permissions": "Permissions", - "Perplexity API Key": "", + "Perplexity API Key": "Clé d'API de Perplexity", "Personalization": "Personnalisation", "Pin": "Épingler", "Pinned": "Épinglé", @@ -849,15 +894,16 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Aucun pipelines détecté", "Pipelines Valves": "Vannes de pipelines", + "Plain text (.md)": "", "Plain text (.txt)": "Texte (.txt)", "Playground": "Playground", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Délai d'attente Playwright (ms)", + "Playwright WebSocket URL": "URL du websocket Playwright", "Please carefully review the following warnings:": "Veuillez lire attentivement les avertissements suivants :", "Please do not close the settings page while loading the model.": "Veuillez ne pas fermer les paramètres pendant le chargement du modèle.", "Please enter a prompt": "Veuillez saisir un prompt", - "Please enter a valid path": "", - "Please enter a valid URL": "", + "Please enter a valid path": "Veuillez entrer un chemin d'accès valide", + "Please enter a valid URL": "Veuillez entrer une URL valide", "Please fill in all fields.": "Veuillez remplir tous les champs.", "Please select a model first.": "Veuillez d'abord sélectionner un modèle.", "Please select a model.": "Veuillez sélectionner un modèle.", @@ -869,19 +915,19 @@ "Presence Penalty": "Pénalité de présence", "Previous 30 days": "30 derniers jours", "Previous 7 days": "7 derniers jours", - "Private": "", + "Private": "Privé", "Profile Image": "Image de profil", "Prompt": "Prompt", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (par ex. Dites-moi un fait amusant à propos de l'Empire romain)", - "Prompt Autocompletion": "", + "Prompt Autocompletion": "Autocomplétion de prompt", "Prompt Content": "Contenu du prompt", "Prompt created successfully": "Prompt créé avec succès", "Prompt suggestions": "Suggestions pour le prompt", "Prompt updated successfully": "Prompt mis à jour avec succès", "Prompts": "Prompts", "Prompts Access": "Accès aux prompts", - "Prompts Public Sharing": "", - "Public": "", + "Prompts Public Sharing": "Partage public des promts", + "Public": "Public", "Pull \"{{searchValue}}\" from Ollama.com": "Récupérer « {{searchValue}} » depuis Ollama.com", "Pull a model from Ollama.com": "Télécharger un modèle depuis Ollama.com", "Query Generation Prompt": "Prompt de génération de requête", @@ -891,18 +937,19 @@ "Read": "Lire", "Read Aloud": "Lire à haute voix", "Reasoning Effort": "Effort de raisonnement", + "Record": "", "Record voice": "Enregistrer la voix", "Redirecting you to Open WebUI Community": "Redirection vers la communauté OpenWebUI", - "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", + "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.": "Réduit la probabilité de générer du contenu incohérent. Une valeur plus élevée (ex. : 100) produira des réponses plus variées, tandis qu'une valeur plus faible (ex. : 10) sera plus conservatrice.", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Désignez-vous comme « Utilisateur » (par ex. « L'utilisateur apprend l'espagnol »)", "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", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "Réindexer", + "Reindex Knowledge Base Vectors": "Réindexer les vecteurs de la base de connaissance", "Release Notes": "Notes de mise à jour", "Relevance": "Pertinence", - "Relevance Threshold": "", + "Relevance Threshold": "Seuil de pertinence", "Remove": "Retirer", "Remove Model": "Retirer le modèle", "Rename": "Renommer", @@ -939,7 +986,7 @@ "Save Tag": "Enregistrer le tag", "Saved": "Enregistré", "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": "La sauvegarde des journaux de conversation directement dans le stockage de votre navigateur n'est plus prise en charge. Veuillez prendre un instant pour télécharger et supprimer vos journaux de conversation en cliquant sur le bouton ci-dessous. Ne vous inquiétez pas, vous pouvez facilement réimporter vos journaux de conversation dans le backend via", - "Scroll to bottom when switching between branches": "Défiler vers le bas lors du passage d'une branche à l'autre", + "Scroll On Branch Change": "", "Search": "Recherche", "Search a model": "Rechercher un modèle", "Search Base": "Base de recherche", @@ -953,13 +1000,14 @@ "Search options": "Options de recherche", "Search Prompts": "Rechercher des prompts", "Search Result Count": "Nombre de résultats de recherche", - "Search the internet": "", + "Search the internet": "Cherche sur Internet", "Search Tools": "Rechercher des outils", "SearchApi API Key": "Clé API SearchApi", "SearchApi Engine": "Moteur de recherche SearchApi", "Searched {{count}} sites": "{{count}} sites recherchés", "Searching \"{{searchQuery}}\"": "Recherche de « {{searchQuery}} »", "Searching Knowledge for \"{{searchQuery}}\"": "Recherche des connaissances pour « {{searchQuery}} »", + "Searching the web...": "", "Searxng Query URL": "URL de recherche Searxng", "See readme.md for instructions": "Voir le fichier readme.md pour les instructions", "See what's new": "Découvrez les nouvelles fonctionnalités", @@ -1005,22 +1053,22 @@ "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.": "Définir le nombre de threads de travail utilisés pour le calcul. Cette option contrôle combien de threads sont utilisés pour traiter les demandes entrantes simultanément. L'augmentation de cette valeur peut améliorer les performances sous de fortes charges de travail concurrentes mais peut également consommer plus de ressources CPU.", "Set Voice": "Choisir la voix", "Set whisper model": "Choisir le modèle Whisper", - "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "", - "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.": "", - "Sets how far back for the model to look back to prevent repetition.": "", - "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt.": "", - "Sets the size of the context window used to generate the next token.": "", + "Sets 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.": "Applique un biais uniforme contre les jetons déjà apparus. Une valeur élevée (ex. : 1,5) pénalise fortement les répétitions, une valeur faible (ex. : 0,9) les tolère davantage. À 0, ce paramètre est désactivé.", + "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.": "Applique un biais progressif contre les jetons en fonction de leur fréquence d'apparition. Une valeur plus élevée les pénalise davantage ; une valeur plus faible est plus indulgente. À 0, ce paramètre est désactivé.", + "Sets how far back for the model to look back to prevent repetition.": "Définit la profondeur de rétrospection du modèle pour éviter les répétitions.", + "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.": "Définit la graine du générateur aléatoire pour produire un résultat déterministe. Une même graine produira toujours la même sortie pour une invite donnée.", + "Sets the size of the context window used to generate the next token.": "Définit la taille de la fenêtre de contexte utilisée pour générer le prochain Token.", "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "Définit les séquences d'arrêt à utiliser. Lorsque ce motif est rencontré, le LLM cessera de générer du texte et retournera. Plusieurs motifs d'arrêt peuvent être définis en spécifiant plusieurs paramètres d'arrêt distincts dans un fichier modèle.", "Settings": "Paramètres", "Settings saved successfully!": "Paramètres enregistrés avec succès !", "Share": "Partager", "Share Chat": "Partage de conversation", "Share to Open WebUI Community": "Partager avec la communauté OpenWebUI", - "Sharing Permissions": "", + "Sharing Permissions": "Autorisation de partage", "Show": "Afficher", "Show \"What's New\" modal on login": "Afficher la fenêtre modale \"Quoi de neuf\" lors de la connexion", "Show Admin Details in Account Pending Overlay": "Afficher les coordonnées de l'administrateur aux comptes en attente", - "Show Model": "", + "Show Model": "Afficher le model", "Show shortcuts": "Afficher les raccourcis", "Show your support!": "Montrez votre soutien !", "Showcased creativity": "Créativité mise en avant", @@ -1032,8 +1080,8 @@ "Sign up to {{WEBUI_NAME}}": "Inscrivez-vous à {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "Connexion à {{WEBUI_NAME}}", "sk-1234": "sk-1234", - "Sougou Search API sID": "", - "Sougou Search API SK": "", + "Sougou Search API sID": "Identifiant API Sougou Search (sID)", + "Sougou Search API SK": "Clé secrète API Sougou Search (SK)", "Source": "Source", "Speech Playback Speed": "Vitesse de lecture de la parole", "Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}", @@ -1053,7 +1101,7 @@ "System": "Système", "System Instructions": "Instructions système", "System Prompt": "Prompt système", - "Tags": "", + "Tags": "Étiquettes", "Tags Generation": "Génération de tags", "Tags Generation Prompt": "Prompt de génération de tags", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "", @@ -1061,7 +1109,7 @@ "Tap to interrupt": "Appuyez pour interrompre", "Tasks": "Tâches", "Tavily API Key": "Clé API Tavily", - "Tavily Extract Depth": "", + "Tavily Extract Depth": "Profondeur d'extraction Tavily", "Tell us more:": "Dites-nous en plus à ce sujet : ", "Temperature": "Température", "Template": "Template", @@ -1072,7 +1120,7 @@ "Thanks for your feedback!": "Merci pour vos commentaires !", "The Application Account DN you bind with for search": "Le DN du compte de l'application avec lequel vous vous liez pour la recherche", "The base to search for users": "La base pour rechercher des utilisateurs", - "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "", + "The 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.": "La taille du lot détermine combien de requêtes texte sont traitées simultanément. Une taille plus grande améliore les performances mais consomme plus de mémoire.", "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Les développeurs de ce plugin sont des bénévoles passionnés issus de la communauté. Si vous trouvez ce plugin utile, merci de contribuer à son développement.", "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Le classement d'évaluation est basé sur le système de notation Elo et est mis à jour en temps réel.", "The LDAP attribute that maps to the mail that users use to sign in.": "L'attribut LDAP qui correspond à l'adresse e-mail que les utilisateurs utilisent pour se connecter.", @@ -1081,16 +1129,16 @@ "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "La taille maximale du fichier en Mo. Si la taille du fichier dépasse cette limite, le fichier ne sera pas téléchargé.", "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.": "Le nombre maximal de fichiers pouvant être utilisés en même temps dans la conversation. Si le nombre de fichiers dépasse cette limite, les fichiers ne seront pas téléchargés.", "The score should be a value between 0.0 (0%) and 1.0 (100%).": "Le score doit être une valeur comprise entre 0,0 (0%) et 1,0 (100%).", - "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "", + "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "La température du modèle. Une température plus élevée rend les réponses plus créatives.", "Theme": "Thème", "Thinking...": "En train de réfléchir...", "This action cannot be undone. Do you wish to continue?": "Cette action ne peut pas être annulée. Souhaitez-vous continuer ?", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "", - "This chat won’t appear in history and your messages will not be saved.": "", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "Ce canal a été créé le {{createdAt}}. Voici le tout début du canal {{channelName}}.", + "This chat won’t appear in history and your messages will not be saved.": "Cette conversation n'apparaîtra pas dans l'historique et vos messages ne seront pas enregistrés.", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cela garantit que vos conversations précieuses soient sauvegardées en toute sécurité dans votre base de données backend. Merci !", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "Il s'agit d'une fonctionnalité expérimentale, elle peut ne pas fonctionner comme prévu et est sujette à modification à tout moment.", - "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 sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "", + "This option 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.": "Cette option détermine combien de Token sont conservés lors du rafraîchissement du contexte. Par exemple, avec une valeur de 2, les 2 derniers Token seront conservés. Cela aide à maintenir la continuité de la conversation, mais peut limiter la capacité à traiter de nouveaux sujets.", + "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.": "Cette option définit le nombre maximal de Token que le modèle peut générer dans sa réponse. Une valeur plus élevée permet des réponses plus longues, mais peut aussi générer du contenu moins pertinent.", "This option will delete all existing files in the collection and replace them with newly uploaded files.": "Cette option supprimera tous les fichiers existants dans la collection et les remplacera par les fichiers nouvellement téléchargés.", "This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"", "This will delete": "Cela supprimera", @@ -1100,7 +1148,7 @@ "This will reset the knowledge base and sync all files. Do you wish to continue?": "Cela réinitialisera la base de connaissances et synchronisera tous les fichiers. Souhaitez-vous continuer ?", "Thorough explanation": "Explication approfondie", "Thought for {{DURATION}}": "Réflexion de {{DURATION}}", - "Thought for {{DURATION}} seconds": "", + "Thought for {{DURATION}} seconds": "Réflexion pendant {{DURATION}} secondes", "Tika": "Tika", "Tika Server URL required.": "URL du serveur Tika requise.", "Tiktoken": "Tiktoken", @@ -1134,17 +1182,16 @@ "Tool ID": "ID de l'outil", "Tool imported successfully": "Outil importé avec succès", "Tool Name": "Nom de l'outil", - "Tool Servers": "", + "Tool Servers": "Serveurs d'outils", "Tool updated successfully": "L'outil a été mis à jour avec succès", "Tools": "Outils", "Tools Access": "Accès aux outils", "Tools are a function calling system with arbitrary code execution": "Les outils sont un système d'appel de fonction avec exécution de code arbitraire", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Les outils ont un système d'appel de fonction qui permet l'exécution de code arbitraire", "Tools have a function calling system that allows arbitrary code execution.": "Les outils ont un système d'appel de fonction qui permet l'exécution de code arbitraire.", - "Tools Public Sharing": "", + "Tools Public Sharing": "Partage public des outils", "Top K": "Top K", - "Top K Reranker": "", + "Top K Reranker": "Top K Reranker", "Top P": "Top P", "Transformers": "Transformers", "Trouble accessing Ollama?": "Problèmes d'accès à Ollama ?", @@ -1163,6 +1210,7 @@ "Unpin": "Désépingler", "Unravel secrets": "Dévoiler les secrets", "Untagged": "Pas de tag", + "Untitled": "", "Update": "Mise à jour", "Update and Copy Link": "Mettre à jour et copier le lien", "Update for the latest features and improvements.": "Mettez à jour pour bénéficier des dernières fonctionnalités et améliorations.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Effectuez la mise à niveau vers le plan payant pour bénéficier de fonctionnalités améliorées, notamment les thèmes et le branding personnalisé, ainsi qu'un support dédié.", "Upload": "Téléverser", "Upload a GGUF model": "Téléverser un modèle GGUF", + "Upload Audio": "", "Upload directory": "Téléverser un dossier", "Upload files": "Téléverser des fichiers", "Upload Files": "Téléverser des fichiers", @@ -1184,14 +1233,14 @@ "Use Gravatar": "Utiliser Gravatar", "Use groups to group your users and assign permissions.": "Utilisez des groupes pour regrouper vos utilisateurs et attribuer des permissions.", "Use Initials": "Utiliser les initiales", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", + "Use no proxy to fetch page contents.": "Ne pas utiliser de proxy pour récupérer le contenu des pages.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Utiliser le proxy défini par les variables d'environnement http_proxy et https_proxy pour récupérer le contenu des pages.", "use_mlock (Ollama)": "Utiliser mlock (Ollama)", "use_mmap (Ollama)": "Utiliser mmap (Ollama)", "user": "utilisateur", "User": "Utilisateur", "User location successfully retrieved.": "L'emplacement de l'utilisateur a été récupéré avec succès.", - "User Webhooks": "", + "User Webhooks": "Webhooks utilisateur", "Username": "Nom d'utilisateur", "Users": "Utilisateurs", "Using the default arena model with all models. Click the plus button to add custom models.": "Utilisation du modèle d'arène par défaut avec tous les modèles. Cliquez sur le bouton plus pour ajouter des modèles personnalisés.", @@ -1202,12 +1251,12 @@ "Valves updated successfully": "Les vannes ont été mises à jour avec succès", "variable": "variable", "variable to have them replaced with clipboard content.": "variable pour qu'elles soient remplacées par le contenu du presse-papiers.", - "Verify Connection": "", - "Verify SSL Certificate": "", + "Verify Connection": "Vérifier la connexion", + "Verify SSL Certificate": "Vérifier le certificat SSL", "Version": "Version:", "Version {{selectedVersion}} of {{totalVersions}}": "Version {{selectedVersion}} de {{totalVersions}}", "View Replies": "Voir les réponses", - "View Result from **{{NAME}}**": "", + "View Result from **{{NAME}}**": "Voir le résultat de **{{NAME}}**", "Visibility": "Visibilité", "Voice": "Voix", "Voice Input": "Saisie vocale", @@ -1215,10 +1264,10 @@ "Warning:": "Avertissement :", "Warning: Enabling this will allow users to upload arbitrary code on the server.": "Avertissement : Activer cette option permettra aux utilisateurs de télécharger du code arbitraire sur le serveur.", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avertissement : Si vous mettez à jour ou modifiez votre modèle d'embedding, vous devrez réimporter tous les documents.", - "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", + "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Avertissement : L'exécution Jupyter permet l'exécution de code arbitraire, ce qui présente des risques de sécurité importants. Procédez avec une extrême prudence.", "Web": "Web", "Web API": "API Web", - "Web Loader Engine": "", + "Web Loader Engine": "Moteur de chargement Web", "Web Search": "Recherche Web", "Web Search Engine": "Moteur de recherche Web", "Web Search in Chat": "Recherche web depuis le chat", @@ -1226,7 +1275,7 @@ "Webhook URL": "URL du webhook", "WebUI Settings": "Paramètres de WebUI", "WebUI URL": "URL de WebUI", - "WebUI will make requests to \"{{url}}\"": "", + "WebUI will make requests to \"{{url}}\"": "WebUI effectuera des requêtes vers \"{{url}}\"", "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI fera des requêtes à \"{{url}}/api/chat\"", "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI fera des requêtes à \"{{url}}/chat/completions\"", "What are you trying to achieve?": "Que cherchez-vous à accomplir ?", @@ -1246,14 +1295,16 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé de 50 mots qui résume [sujet ou mot-clé].", "Write something...": "Écrivez quelque chose...", "Write your model template content here": "Écrivez ici le contenu de votre modèle", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Hier", "You": "Vous", - "You are currently using a trial license. Please contact support to upgrade your license.": "", + "You are currently using a trial license. Please contact support to upgrade your license.": "Vous utilisez actuellement une licence d'essai. Veuillez contacter le support pour mettre à niveau votre licence.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Vous ne pouvez discuter qu'avec un maximum de {{maxCount}} fichier(s) à la fois.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Vous pouvez personnaliser vos interactions avec les LLM en ajoutant des mémoires à l'aide du bouton « Gérer » ci-dessous, ce qui les rendra plus utiles et mieux adaptées à vos besoins.", "You cannot upload an empty file.": "Vous ne pouvez pas envoyer un fichier vide.", - "You do not have permission to upload files": "", - "You do not have permission to upload files.": "Vous n'avez pas la permission de télécharger des fichiers.", + "You do not have permission to upload files.": "", "You have no archived conversations.": "Vous n'avez aucune conversation archivée.", "You have shared this chat": "Vous avez partagé cette conversation.", "You're a helpful assistant.": "Vous êtes un assistant efficace.", diff --git a/src/lib/i18n/locales/gl-ES/translation.json b/src/lib/i18n/locales/gl-ES/translation.json index 83ccece89..d660ddd53 100644 --- a/src/lib/i18n/locales/gl-ES/translation.json +++ b/src/lib/i18n/locales/gl-ES/translation.json @@ -665,6 +665,7 @@ "Memory deleted successfully": "Memoria borrada correctamente", "Memory updated successfully": "Memoria actualizada correctamente", "Merge Responses": "Fusionar Respuestas", + "Merged Response": "Resposta combinada", "Message rating should be enabled to use this feature": "a calificación de mensaxes debe estar habilitada para usar esta función", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Os mensaxes que envíe despois de xerar su enlace no compartiránse. os usuarios co enlace podrán ver o chat compartido.", "Min P": "Min P", diff --git a/src/lib/i18n/locales/he-IL/translation.json b/src/lib/i18n/locales/he-IL/translation.json index 31b8906c0..a4d07343d 100644 --- a/src/lib/i18n/locales/he-IL/translation.json +++ b/src/lib/i18n/locales/he-IL/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(למשל `sh webui.sh --api`)", "(latest)": "(האחרון)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ דגמים }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "אפשר מחיקת צ'אט", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "עוזר", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "האם אתה בטוח?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "תגובה שגויה", "Banners": "באנרים", "Base Model (From)": "דגם בסיס (מ)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "לפני", "Being lazy": "להיות עצלן", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "מפתח API של חיפוש אמיץ", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "בטל", "Capabilities": "יכולות", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "שנה סיסמה", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "צור מפתח חדש", "Create new secret key": "צור מפתח סודי חדש", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "נוצר ב", "Created At": "נוצר ב", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "מחק את הקישור הזה", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "הורד מסד נתונים", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "גרור כל קובץ לכאן כדי להוסיף לשיחה", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "למשל '30s', '10m'. יחידות זמן חוקיות הן 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "ערוך", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "אפשר הרשמות חדשות", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ודא שקובץ ה-CSV שלך כולל 4 עמודות בסדר הבא: שם, דוא\"ל, סיסמה, תפקיד.", "Enter {{role}} message here": "הזן הודעת {{role}} כאן", "Enter a detail about yourself for your LLMs to recall": "הזן פרטים על עצמך כדי שLLMs יזכור", @@ -409,11 +422,17 @@ "Enter Chunk Size": "הזן גודל נתונים", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "הזן כתובת URL של Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "הזן תג מודל (למשל {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "הזן מספר שלבים (למשל 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "הזן כתובת URL (למשל http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "הזן כתובת URL (למשל http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "הזן את דוא\"ל שלך", "Enter Your Full Name": "הזן את שמך המלא", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "הזן את הסיסמה שלך", "Enter Your Role": "הזן את התפקיד שלך", @@ -480,6 +504,8 @@ "Error": "שגיאה", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "יצירת מפתח API נכשלה.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "קריאת תוכן הלוח נכשלה", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "שידור נתונים חיצוניים בקצב רציף", "Focus chat input": "מיקוד הקלט לצ'אט", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "עקב אחר ההוראות במושלמות", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "כללי", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "יצירת שאילתת חיפוש", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "ייבוא דגמים", + "Import Notes": "", "Import Presets": "", "Import Prompts": "יבוא פקודות", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "ממשק", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "תג לא חוקי", @@ -706,6 +740,7 @@ "Manage Pipelines": "ניהול צינורות", "Manage Tool Servers": "", "March": "מרץ", + "Max Speakers": "", "Max Tokens (num_predict)": "מקסימום אסימונים (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "תגובה ממוזגת", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "הודעות שתשלח לאחר יצירת הקישור לא ישותפו. משתמשים עם כתובת האתר יוכלו לצפות בצ'אט המשותף.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "עוד", + "My Notes": "", "Name": "שם", "Name your knowledge base": "", "Native": "", "New Chat": "צ'אט חדש", "New Folder": "", + "New Note": "", "New Password": "סיסמה חדשה", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "לא נמצאו תוצאות", "No search query generated": "לא נוצרה שאילתת חיפוש", "No source available": "אין מקור זמין", @@ -782,6 +825,7 @@ "None": "ללא", "Not factually correct": "לא נכון מבחינה עובדתית", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "הערה: אם תקבע ציון מינימלי, החיפוש יחזיר רק מסמכים עם ציון שגבוה או שווה לציון המינימלי.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "רק תווים אלפאנומריים ומקפים מותרים במחרוזת הפקודה.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "אופס! נראה שהכתובת URL אינה תקינה. אנא בדוק שוב ונסה שנית.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "צינורות", "Pipelines Not Detected": "", "Pipelines Valves": "צינורות שסתומים", + "Plain text (.md)": "", "Plain text (.txt)": "טקסט פשוט (.txt)", "Playground": "אזור משחקים", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "קרא בקול", "Reasoning Effort": "", + "Record": "", "Record voice": "הקלט קול", "Redirecting you to Open WebUI Community": "מפנה אותך לקהילת OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "שמירת יומני צ'אט ישירות באחסון הדפדפן שלך אינה נתמכת יותר. אנא הקדש רגע להוריד ולמחוק את יומני הצ'אט שלך על ידי לחיצה על הכפתור למטה. אל דאגה, באפשרותך לייבא מחדש בקלות את יומני הצ'אט שלך לשרת האחורי דרך", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "חפש", "Search a model": "חפש מודל", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "כתובת URL של שאילתת Searxng", "See readme.md for instructions": "ראה את readme.md להוראות", "See what's new": "ראה מה חדש", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "עדכן ושכפל קישור", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "העלה מודל GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "העלאת קבצים", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "כתוב סיכום ב-50 מילים שמסכם [נושא או מילת מפתח].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "אתמול", "You": "אתה", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "אין לך שיחות בארכיון.", "You have shared this chat": "שיתפת את השיחה הזו", diff --git a/src/lib/i18n/locales/hi-IN/translation.json b/src/lib/i18n/locales/hi-IN/translation.json index ed19f6bff..3d53349a7 100644 --- a/src/lib/i18n/locales/hi-IN/translation.json +++ b/src/lib/i18n/locales/hi-IN/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)", "(latest)": "(latest)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ मॉडल }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "चैट हटाने की अनुमति दें", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "एक सहायक", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "क्या आपको यकीन है?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "ख़राब प्रतिक्रिया", "Banners": "बैनर", "Base Model (From)": "बेस मॉडल (से)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "पहले", "Being lazy": "आलसी होना", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave सर्च एपीआई कुंजी", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "रद्द करें", "Capabilities": "क्षमताओं", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "पासवर्ड बदलें", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "नया क्रिप्टोग्राफिक क्षेत्र बनाएं", "Create new secret key": "नया क्रिप्टोग्राफिक क्षेत्र बनाएं", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "किस समय बनाया गया", "Created At": "किस समय बनाया गया", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "इस लिंक को हटाएं", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "डेटाबेस डाउनलोड करें", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "बातचीत में जोड़ने के लिए कोई भी फ़ाइल यहां छोड़ें", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "जैसे '30s', '10m', मान्य समय इकाइयाँ 's', 'm', 'h' हैं।", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "संपादित करें", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "नए साइन अप सक्रिय करें", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "सुनिश्चित करें कि आपकी CSV फ़ाइल में इस क्रम में 4 कॉलम शामिल हैं: नाम, ईमेल, पासवर्ड, भूमिका।", "Enter {{role}} message here": "यहां {{role}} संदेश दर्ज करें", "Enter a detail about yourself for your LLMs to recall": "अपने एलएलएम को याद करने के लिए अपने बारे में एक विवरण दर्ज करें", @@ -409,11 +422,17 @@ "Enter Chunk Size": "खंड आकार दर्ज करें", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Github Raw URL दर्ज करें", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Model tag दर्ज करें (उदा. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "चरणों की संख्या दर्ज करें (उदा. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "यूआरएल दर्ज करें (उदा. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "यूआरएल दर्ज करें (उदा. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "अपना ईमेल दर्ज करें", "Enter Your Full Name": "अपना पूरा नाम भरें", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "अपना पासवर्ड भरें", "Enter Your Role": "अपनी भूमिका दर्ज करें", @@ -480,6 +504,8 @@ "Error": "चूक", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "एपीआई कुंजी बनाने में विफल.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "क्लिपबोर्ड सामग्री पढ़ने में विफल", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "बड़े बाह्य प्रतिक्रिया खंडों को तरल रूप से प्रवाहित करें", "Focus chat input": "चैट इनपुट पर फ़ोकस करें", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "निर्देशों का पूर्णतः पालन किया", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "सामान्य", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "खोज क्वेरी जनरेट करना", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "आयात मॉडल", + "Import Notes": "", "Import Presets": "", "Import Prompts": "प्रॉम्प्ट आयात करें", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "इंटरफेस", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "अवैध टैग", @@ -706,6 +740,7 @@ "Manage Pipelines": "पाइपलाइनों का प्रबंधन करें", "Manage Tool Servers": "", "March": "मार्च", + "Max Speakers": "", "Max Tokens (num_predict)": "अधिकतम टोकन (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "मिली-जुली प्रतिक्रिया", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "अपना लिंक बनाने के बाद आपके द्वारा भेजे गए संदेश साझा नहीं किए जाएंगे। यूआरएल वाले यूजर्स शेयर की गई चैट देख पाएंगे।", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "मिरोस्टा", "Mirostat Eta": "मिरोस्टा ईटा", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "और..", + "My Notes": "", "Name": "नाम", "Name your knowledge base": "", "Native": "", "New Chat": "नई चैट", "New Folder": "", + "New Note": "", "New Password": "नया पासवर्ड", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "कोई परिणाम नहीं मिला", "No search query generated": "कोई खोज क्वेरी जनरेट नहीं हुई", "No source available": "कोई स्रोत उपलब्ध नहीं है", @@ -782,6 +825,7 @@ "None": "कोई नहीं", "Not factually correct": "तथ्यात्मक रूप से सही नहीं है", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "ध्यान दें: यदि आप न्यूनतम स्कोर निर्धारित करते हैं, तो खोज केवल न्यूनतम स्कोर से अधिक या उसके बराबर स्कोर वाले दस्तावेज़ वापस लाएगी।", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "कमांड स्ट्रिंग में केवल अल्फ़ान्यूमेरिक वर्ण और हाइफ़न की अनुमति है।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "उफ़! ऐसा लगता है कि यूआरएल अमान्य है. कृपया दोबारा जांचें और पुनः प्रयास करें।", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "पाइपलाइनों", "Pipelines Not Detected": "", "Pipelines Valves": "पाइपलाइन वाल्व", + "Plain text (.md)": "", "Plain text (.txt)": "सादा पाठ (.txt)", "Playground": "कार्यक्षेत्र", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "जोर से पढ़ें", "Reasoning Effort": "", + "Record": "", "Record voice": "आवाज रिकॉर्ड करना", "Redirecting you to Open WebUI Community": "आपको OpenWebUI समुदाय पर पुनर्निर्देशित किया जा रहा है", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "चैट लॉग को सीधे आपके ब्राउज़र के स्टोरेज में सहेजना अब समर्थित नहीं है। कृपया नीचे दिए गए बटन पर क्लिक करके डाउनलोड करने और अपने चैट लॉग को हटाने के लिए कुछ समय दें। चिंता न करें, आप आसानी से अपने चैट लॉग को बैकएंड पर पुनः आयात कर सकते हैं", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "खोजें", "Search a model": "एक मॉडल खोजें", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng क्वेरी URL", "See readme.md for instructions": "निर्देशों के लिए readme.md देखें", "See what's new": "देखें, क्या नया है", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "शीर्ष K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "अपडेट करें और लिंक कॉपी करें", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "GGUF मॉडल अपलोड करें", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "फ़ाइलें अपलोड करें", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "50 शब्दों में एक सारांश लिखें जो [विषय या कीवर्ड] का सारांश प्रस्तुत करता हो।", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "कल", "You": "आप", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "आपको कोई अंकित चैट नहीं है।", "You have shared this chat": "आपने इस चैट को शेयर किया है", diff --git a/src/lib/i18n/locales/hr-HR/translation.json b/src/lib/i18n/locales/hr-HR/translation.json index 975aee125..e248eff57 100644 --- a/src/lib/i18n/locales/hr-HR/translation.json +++ b/src/lib/i18n/locales/hr-HR/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(npr. `sh webui.sh --api`)", "(latest)": "(najnovije)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modeli }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Dopusti brisanje razgovora", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Dopusti nelokalne glasove", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "asistent", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Jeste li sigurni?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Loš odgovor", "Banners": "Baneri", "Base Model (From)": "Osnovni model (Od)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "prije", "Being lazy": "Biti lijen", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave tražilica - API ključ", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Otkaži", "Capabilities": "Mogućnosti", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Promijeni lozinku", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Stvori novi ključ", "Create new secret key": "Stvori novi tajni ključ", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Stvoreno", "Created At": "Stvoreno", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "izbriši ovu vezu", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "Preuzmi bazu podataka", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Spustite bilo koje datoteke ovdje za dodavanje u razgovor", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "npr. '30s','10m'. Važeće vremenske jedinice su 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Uredi", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Omogući nove prijave", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Provjerite da vaša CSV datoteka uključuje 4 stupca u ovom redoslijedu: Name, Email, Password, Role.", "Enter {{role}} message here": "Unesite {{role}} poruku ovdje", "Enter a detail about yourself for your LLMs to recall": "Unesite pojedinosti o sebi da bi učitali memoriju u LLM", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Unesite veličinu dijela", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Unesite Github sirovi URL", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Unesite oznaku modela (npr. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Unesite broj koraka (npr. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Unesite URL (npr. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Unesite URL (npr. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Unesite svoj email", "Enter Your Full Name": "Unesite svoje puno ime", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Unesite svoju lozinku", "Enter Your Role": "Unesite svoju ulogu", @@ -480,6 +504,8 @@ "Error": "Greška", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Izvoz alata", "External": "", "External Models": "Vanjski modeli", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Neuspješno stvaranje API ključa.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Neuspješno čitanje sadržaja međuspremnika", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Glavno strujanje velikih vanjskih dijelova odgovora", "Focus chat input": "Fokusiraj unos razgovora", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Savršeno slijedio upute", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Općenito", + "Generate": "", "Generate an image": "", "Generate Image": "Gneriraj sliku", "Generate prompt pair": "", "Generating search query": "Generiranje upita za pretraživanje", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "Uvoz modela", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Uvoz prompta", "Import Tools": "Uvoz alata", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Trenutačno automatsko slanje nakon glasovne transkripcije", "Integration": "", "Interface": "Sučelje", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Nevažeća oznaka", @@ -706,6 +740,7 @@ "Manage Pipelines": "Upravljanje cjevovodima", "Manage Tool Servers": "", "March": "Ožujak", + "Max Speakers": "", "Max Tokens (num_predict)": "Maksimalan broj tokena (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Spojeni odgovor", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Poruke koje pošaljete nakon stvaranja veze neće se dijeliti. Korisnici s URL-om moći će vidjeti zajednički chat.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Više", + "My Notes": "", "Name": "Ime", "Name your knowledge base": "", "Native": "", "New Chat": "Novi razgovor", "New Folder": "", + "New Note": "", "New Password": "Nova lozinka", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Nema rezultata", "No search query generated": "Nije generiran upit za pretraživanje", "No source available": "Nema dostupnog izvora", @@ -782,6 +825,7 @@ "None": "Ništa", "Not factually correct": "Nije činjenično točno", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Napomena: Ako postavite minimalnu ocjenu, pretraga će vratiti samo dokumente s ocjenom većom ili jednakom minimalnoj ocjeni.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Samo alfanumerički znakovi i crtice su dopušteni u naredbenom nizu.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ups! Izgleda da je URL nevažeći. Molimo provjerite ponovno i pokušajte ponovo.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Cjevovodi", "Pipelines Not Detected": "", "Pipelines Valves": "Ventili za cjevovode", + "Plain text (.md)": "", "Plain text (.txt)": "Običan tekst (.txt)", "Playground": "Igralište", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Čitaj naglas", "Reasoning Effort": "", + "Record": "", "Record voice": "Snimanje glasa", "Redirecting you to Open WebUI Community": "Preusmjeravanje na OpenWebUI zajednicu", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Spremanje zapisnika razgovora izravno u pohranu vašeg preglednika više nije podržano. Molimo vas da odvojite trenutak za preuzimanje i brisanje zapisnika razgovora klikom na gumb ispod. Ne brinite, možete lako ponovno uvesti zapisnike razgovora u backend putem", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Pretraga", "Search a model": "Pretraži model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng URL upita", "See readme.md for instructions": "Pogledajte readme.md za upute", "See what's new": "Pogledajte što je novo", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "Ažuriraj i kopiraj vezu", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "Učitaj GGUF model", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Prijenos datoteka", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Napišite sažetak u 50 riječi koji sažima [temu ili ključnu riječ].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Jučer", "You": "Vi", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Možete personalizirati svoje interakcije s LLM-ima dodavanjem uspomena putem gumba 'Upravljanje' u nastavku, čineći ih korisnijima i prilagođenijima vama.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Nemate arhiviranih razgovora.", "You have shared this chat": "Podijelili ste ovaj razgovor", diff --git a/src/lib/i18n/locales/hu-HU/translation.json b/src/lib/i18n/locales/hu-HU/translation.json index bb0e6494d..056e7c0c2 100644 --- a/src/lib/i18n/locales/hu-HU/translation.json +++ b/src/lib/i18n/locales/hu-HU/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(pl. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(pl. `sh webui.sh --api`)", "(latest)": "(legújabb)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ modellek }}", "{{COUNT}} Available Tools": "{{COUNT}} Elérhető eszköz", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Csevegés törlésének engedélyezése", "Allow Chat Deletion": "Beszélgetések törlésének engedélyezése", "Allow Chat Edit": "Csevegés szerkesztésének engedélyezése", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Fájlfeltöltés engedélyezése", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Nem helyi hangok engedélyezése", @@ -76,6 +79,7 @@ "Always": "Mindig", "Always Collapse Code Blocks": "Kódblokkok mindig összecsukása", "Always Expand Details": "Részletek mindig kibontása", + "Always Play Notification Sound": "", "Amazing": "Csodálatos", "an assistant": "egy asszisztens", "Analyzed": "Elemezve", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Biztosan törölni szeretnéd ezt a csatornát?", "Are you sure you want to delete this message?": "Biztosan törölni szeretnéd ezt az üzenetet?", "Are you sure you want to unarchive all archived chats?": "Biztosan vissza szeretnéd állítani az összes archivált csevegést?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Biztos vagy benne?", "Arena Models": "Arena modellek", "Artifacts": "Műtermékek", @@ -135,6 +140,7 @@ "Bad Response": "Rossz válasz", "Banners": "Bannerek", "Base Model (From)": "Alap modell (Forrás)", + "Base URL": "", "Batch Size (num_batch)": "Köteg méret (num_batch)", "before": "előtt", "Being lazy": "Lustaság", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7 előfizetési kulcs", "Bocha Search API Key": "Bocha Search API kulcs", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Specifikus tokenek növelése vagy büntetése korlátozott válaszokhoz. Az elfogultság értékei -100 és 100 között lesznek rögzítve (beleértve). (Alapértelmezett: nincs)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API kulcs", "By {{name}}": "Készítette: {{name}}", "Bypass Embedding and Retrieval": "Beágyazás és visszakeresés kihagyása", @@ -153,6 +160,7 @@ "Cancel": "Mégse", "Capabilities": "Képességek", "Capture": "Rögzítés", + "Capture Audio": "", "Certificate Path": "Tanúsítvány útvonal", "Change Password": "Jelszó módosítása", "Channel Name": "Csatorna neve", @@ -262,6 +270,8 @@ "Create Knowledge": "Tudás létrehozása", "Create new key": "Új kulcs létrehozása", "Create new secret key": "Új titkos kulcs létrehozása", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Létrehozva", "Created At": "Létrehozva", "Created by": "Létrehozta", @@ -299,6 +309,7 @@ "Delete function?": "Törli a funkciót?", "Delete Message": "Üzenet törlése", "Delete message?": "Üzenet törlése?", + "Delete note?": "", "Delete prompt?": "Törli a promptot?", "delete this link": "link törlése", "Delete tool?": "Törli az eszközt?", @@ -354,7 +365,7 @@ "Download Database": "Adatbázis letöltése", "Drag and drop a file to upload or select a file to view": "Húzz ide egy fájlt a feltöltéshez vagy válassz fájlt a megtekintéshez", "Draw": "Rajzolás", - "Drop any files here to add to the conversation": "Húzz ide fájlokat a beszélgetéshez való hozzáadáshoz", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "pl. '30s','10m'. Érvényes időegységek: 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "pl. \"json\" vagy egy JSON séma", "e.g. 60": "pl. 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "pl. az_en_szűrőm", "e.g. my_tools": "pl. az_en_eszkozeim", "e.g. Tools for performing various operations": "pl. Eszközök különböző műveletek elvégzéséhez", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Szerkesztés", "Edit Arena Model": "Arena modell szerkesztése", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Új regisztrációk engedélyezése", "Enabled": "Engedélyezve", "Enforce Temporary Chat": "Ideiglenes csevegés kikényszerítése", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Győződj meg róla, hogy a CSV fájl tartalmazza ezt a 4 oszlopot ebben a sorrendben: Név, Email, Jelszó, Szerep.", "Enter {{role}} message here": "Írd ide a {{role}} üzenetet", "Enter a detail about yourself for your LLMs to recall": "Adj meg egy részletet magadról, amit az LLM-ek megjegyezhetnek", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Add meg a darab méretet", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Add meg vesszővel elválasztott \"token:bias_érték\" párokat (példa: 5432:100, 413:-100)", "Enter description": "Add meg a leírást", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Add meg a Docling szerver URL-t", "Enter Document Intelligence Endpoint": "Add meg a dokumentum intelligencia végpontot", "Enter Document Intelligence Key": "Add meg a dokumentum intelligencia kulcsot", "Enter domains separated by commas (e.g., example.com,site.org)": "Add meg a domaineket vesszővel elválasztva (pl. example.com,site.org)", "Enter Exa API Key": "Add meg az Exa API kulcsot", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Add meg a Github Raw URL-t", @@ -431,6 +450,7 @@ "Enter Model ID": "Add meg a modell azonosítót", "Enter model tag (e.g. {{modelTag}})": "Add meg a modell címkét (pl. {{modelTag}})", "Enter Mojeek Search API Key": "Add meg a Mojeek Search API kulcsot", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Add meg a lépések számát (pl. 50)", "Enter Perplexity API Key": "Add meg a Perplexity API kulcsot", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Add meg a Top K újrarangsorolót", "Enter URL (e.g. http://127.0.0.1:7860/)": "Add meg az URL-t (pl. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Add meg az URL-t (pl. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Add meg a jelenlegi jelszavad", "Enter Your Email": "Add meg az email címed", "Enter Your Full Name": "Add meg a teljes neved", "Enter your message": "Írd be az üzeneted", "Enter your name": "Add meg a neved", + "Enter Your Name": "", "Enter your new password": "Add meg az új jelszavad", "Enter Your Password": "Add meg a jelszavad", "Enter Your Role": "Add meg a szereped", @@ -480,6 +504,8 @@ "Error": "Hiba", "ERROR": "HIBA", "Error accessing Google Drive: {{error}}": "Hiba a Google Drive elérése során: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Hiba a fájl feltöltése során: {{error}}", "Evaluations": "Értékelések", "Exa API Key": "Exa API kulcs", @@ -511,10 +537,16 @@ "Export Tools": "Eszközök exportálása", "External": "Külső", "External Models": "Külső modellek", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Nem sikerült hozzáadni a fájlt.", "Failed to connect to {{URL}} OpenAPI tool server": "Nem sikerült csatlakozni a {{URL}} OpenAPI eszköszerverhez", "Failed to create API Key.": "Nem sikerült létrehozni az API kulcsot.", + "Failed to delete note": "", "Failed to fetch models": "Nem sikerült lekérni a modelleket", + "Failed to load file content.": "", "Failed to read clipboard contents": "Nem sikerült olvasni a vágólap tartalmát", "Failed to save connections": "Nem sikerült menteni a kapcsolatokat", "Failed to save models configuration": "Nem sikerült menteni a modellek konfigurációját", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Nagy külső válasz darabok folyamatos streamelése", "Focus chat input": "Chat bevitel fókuszálása", "Folder deleted successfully": "Mappa sikeresen törölve", - "Folder name cannot be empty": "A mappa neve nem lehet üres", "Folder name cannot be empty.": "A mappa neve nem lehet üres.", "Folder name updated successfully": "Mappa neve sikeresen frissítve", "Followed instructions perfectly": "Tökéletesen követte az utasításokat", @@ -565,17 +596,18 @@ "Function Name": "Funkció neve", "Function updated successfully": "Funkció sikeresen frissítve", "Functions": "Funkciók", - "Functions allow arbitrary code execution": "A funkciók tetszőleges kód végrehajtását teszik lehetővé", "Functions allow arbitrary code execution.": "A funkciók tetszőleges kód végrehajtását teszik lehetővé.", "Functions imported successfully": "Funkciók sikeresen importálva", "Gemini": "Gemini", "Gemini API Config": "Gemini API konfiguráció", "Gemini API Key is required.": "Gemini API kulcs szükséges.", "General": "Általános", + "Generate": "", "Generate an image": "Kép generálása", "Generate Image": "Kép generálása", "Generate prompt pair": "Prompt pár generálása", "Generating search query": "Keresési lekérdezés generálása", + "Generating...": "", "Get started": "Kezdj neki", "Get started with {{WEBUI_NAME}}": "Kezdj neki a {{WEBUI_NAME}}-val", "Global": "Globális", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Konfiguráció importálása JSON fájlból", "Import Functions": "Funkciók importálása", "Import Models": "Modellek importálása", + "Import Notes": "", "Import Presets": "Előre beállított importálás", "Import Prompts": "Promptok importálása", "Import Tools": "Eszközök importálása", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Azonnali automatikus küldés hangfelismerés után", "Integration": "Integráció", "Interface": "Felület", + "Invalid file content": "", "Invalid file format.": "Érvénytelen fájlformátum.", "Invalid JSON schema": "Érvénytelen JSON séma", "Invalid Tag": "Érvénytelen címke", @@ -706,6 +740,7 @@ "Manage Pipelines": "Folyamatok kezelése", "Manage Tool Servers": "Eszközszerverek kezelése", "March": "Március", + "Max Speakers": "", "Max Tokens (num_predict)": "Maximum tokenek (num_predict)", "Max Upload Count": "Maximum feltöltések száma", "Max Upload Size": "Maximum feltöltési méret", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memória sikeresen törölve", "Memory updated successfully": "Memória sikeresen frissítve", "Merge Responses": "Válaszok egyesítése", + "Merged Response": "Összevont válasz", "Message rating should be enabled to use this feature": "Az üzenetértékelésnek engedélyezve kell lennie ehhez a funkcióhoz", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "A link létrehozása után küldött üzenetei nem lesznek megosztva. A URL-lel rendelkező felhasználók megtekinthetik a megosztott beszélgetést.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API kulcs", "more": "több", "More": "Több", + "My Notes": "", "Name": "Név", "Name your knowledge base": "Nevezd el a tudásbázisodat", "Native": "Natív", "New Chat": "Új beszélgetés", "New Folder": "Új mappa", + "New Note": "", "New Password": "Új jelszó", "new-channel": "új csatorna", + "No content": "", "No content found": "Nem található tartalom", + "No content found in file.": "", "No content to speak": "Nincs felolvasható tartalom", "No distance available": "Nincs elérhető távolság", "No feedbacks found": "Nem található visszajelzés", "No file selected": "Nincs kiválasztva fájl", - "No files found.": "Nem található fájl.", "No groups with access, add a group to grant access": "Nincs hozzáféréssel rendelkező csoport, adj hozzá egy csoportot a hozzáférés megadásához", "No HTML, CSS, or JavaScript content found.": "Nem található HTML, CSS vagy JavaScript tartalom.", "No inference engine with management support found": "Nem található kezelést támogató következtetési motor", @@ -774,6 +816,7 @@ "No model IDs": "Nincs modell azonosító", "No models found": "Nem található modell", "No models selected": "Nincs kiválasztott modell", + "No Notes": "", "No results found": "Nincs találat", "No search query generated": "Nem generálódott keresési lekérdezés", "No source available": "Nincs elérhető forrás", @@ -782,6 +825,7 @@ "None": "Nincs", "Not factually correct": "Tényszerűen nem helyes", "Not helpful": "Nem segítőkész", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Megjegyzés: Ha minimum pontszámot állít be, a keresés csak olyan dokumentumokat ad vissza, amelyek pontszáma nagyobb vagy egyenlő a minimum pontszámmal.", "Notes": "Jegyzetek", "Notification Sound": "Értesítési hang", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Csak alfanumerikus karakterek és kötőjelek engedélyezettek", "Only alphanumeric characters and hyphens are allowed in the command string.": "Csak alfanumerikus karakterek és kötőjelek engedélyezettek a parancssorban.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Csak gyűjtemények szerkeszthetők, hozzon létre új tudásbázist dokumentumok szerkesztéséhez/hozzáadásához.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Csak a kiválasztott, engedéllyel rendelkező felhasználók és csoportok férhetnek hozzá", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Hoppá! Úgy tűnik, az URL érvénytelen. Kérjük, ellenőrizze és próbálja újra.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Hoppá! Még vannak feltöltés alatt álló fájlok. Kérjük, várja meg a feltöltés befejezését.", @@ -849,6 +894,7 @@ "Pipelines": "Folyamatok", "Pipelines Not Detected": "Folyamatok nem észlelhetők", "Pipelines Valves": "Folyamat szelepek", + "Plain text (.md)": "", "Plain text (.txt)": "Egyszerű szöveg (.txt)", "Playground": "Játszótér", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Olvasás", "Read Aloud": "Felolvasás", "Reasoning Effort": "Érvelési erőfeszítés", + "Record": "", "Record voice": "Hang rögzítése", "Redirecting you to Open WebUI Community": "Átirányítás az OpenWebUI közösséghez", "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.": "Csökkenti a ostobaság generálásának valószínűségét. Magasabb érték (pl. 100) változatosabb válaszokat ad, míg alacsonyabb érték (pl. 10) konzervatívabb lesz.", @@ -939,7 +986,7 @@ "Save Tag": "Címke mentése", "Saved": "Mentve", "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": "A csevegési naplók közvetlen mentése a böngésző tárolójába már nem támogatott. Kérjük, szánjon egy percet a csevegési naplók letöltésére és törlésére az alábbi gomb megnyomásával. Ne aggódjon, könnyen újra importálhatja a csevegési naplókat a backend-be", - "Scroll to bottom when switching between branches": "Görgetés az aljára ágak közötti váltáskor", + "Scroll On Branch Change": "", "Search": "Keresés", "Search a model": "Modell keresése", "Search Base": "Keresési alap", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "{{count}} oldal keresése megtörtént", "Searching \"{{searchQuery}}\"": "Keresés: \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Tudásbázis keresése: \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng lekérdezési URL", "See readme.md for instructions": "Lásd a readme.md fájlt az útmutatásért", "See what's new": "Újdonságok megtekintése", @@ -1140,7 +1188,6 @@ "Tools Access": "Eszközök hozzáférése", "Tools are a function calling system with arbitrary code execution": "Az eszközök olyan függvényhívó rendszert alkotnak, amely tetszőleges kód végrehajtását teszi lehetővé", "Tools Function Calling Prompt": "Eszközök függvényhívási promptja", - "Tools have a function calling system that allows arbitrary code execution": "Az eszközök olyan függvényhívó rendszerrel rendelkeznek, amely lehetővé teszi tetszőleges kód végrehajtását", "Tools have a function calling system that allows arbitrary code execution.": "Az eszközök olyan függvényhívó rendszerrel rendelkeznek, amely lehetővé teszi tetszőleges kód végrehajtását.", "Tools Public Sharing": "Eszközök nyilvános megosztása", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Rögzítés feloldása", "Unravel secrets": "Titkok megfejtése", "Untagged": "Címkézetlen", + "Untitled": "", "Update": "Frissítés", "Update and Copy Link": "Frissítés és link másolása", "Update for the latest features and improvements.": "Frissítsen a legújabb funkciókért és fejlesztésekért.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Frissítsen licencelt csomagra a bővített képességekért, beleértve az egyéni témázást és márkázást, valamint dedikált támogatást.", "Upload": "Feltöltés", "Upload a GGUF model": "GGUF modell feltöltése", + "Upload Audio": "", "Upload directory": "Könyvtár feltöltése", "Upload files": "Fájlok feltöltése", "Upload Files": "Fájlok feltöltése", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Írjon egy 50 szavas összefoglalót a [téma vagy kulcsszó]-ról.", "Write something...": "Írjon valamit...", "Write your model template content here": "Írja ide a modell sablon tartalmát", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Tegnap", "You": "Ön", "You are currently using a trial license. Please contact support to upgrade your license.": "Jelenleg próbaverziós licencet használ. Kérjük, lépjen kapcsolatba a támogatással a licenc frissítéséhez.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Egyszerre maximum {{maxCount}} fájllal tud csevegni.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Az LLM-ekkel való interakcióit személyre szabhatja emlékek hozzáadásával a lenti 'Kezelés' gomb segítségével, így azok még hasznosabbak és személyre szabottabbak lesznek.", "You cannot upload an empty file.": "Nem tölthet fel üres fájlt.", - "You do not have permission to upload files": "Nincs jogosultsága fájlok feltöltésére", "You do not have permission to upload files.": "Nincs jogosultsága fájlok feltöltésére.", "You have no archived conversations.": "Nincsenek archivált beszélgetései.", "You have shared this chat": "Megosztotta ezt a beszélgetést", diff --git a/src/lib/i18n/locales/id-ID/translation.json b/src/lib/i18n/locales/id-ID/translation.json index c78a47d67..b11a217a4 100644 --- a/src/lib/i18n/locales/id-ID/translation.json +++ b/src/lib/i18n/locales/id-ID/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(contoh: `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(contoh: `sh webui.sh --api`)", "(latest)": "(terbaru)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Izinkan Penghapusan Obrolan", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Izinkan suara non-lokal", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "asisten", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Apakah Anda yakin?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Respons Buruk", "Banners": "Spanduk", "Base Model (From)": "Model Dasar (Dari)", + "Base URL": "", "Batch Size (num_batch)": "Ukuran Batch (num_batch)", "before": "sebelum", "Being lazy": "Menjadi malas", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Kunci API Pencarian Berani", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Batal", "Capabilities": "Kemampuan", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Ubah Kata Sandi", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Buat kunci baru", "Create new secret key": "Buat kunci rahasia baru", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Dibuat di", "Created At": "Dibuat di", "Created by": "Dibuat oleh", @@ -299,6 +309,7 @@ "Delete function?": "Fungsi hapus?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Perintah hapus?", "delete this link": "hapus tautan ini", "Delete tool?": "Hapus alat?", @@ -354,7 +365,7 @@ "Download Database": "Unduh Basis Data", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Letakkan file apa pun di sini untuk ditambahkan ke percakapan", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "misalnya '30-an', '10m'. Satuan waktu yang valid adalah 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Edit", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Aktifkan Pendaftaran Baru", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Pastikan file CSV Anda menyertakan 4 kolom dengan urutan sebagai berikut: Nama, Email, Kata Sandi, Peran.", "Enter {{role}} message here": "Masukkan pesan {{role}} di sini", "Enter a detail about yourself for your LLMs to recall": "Masukkan detail tentang diri Anda untuk diingat oleh LLM Anda", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Masukkan Ukuran Potongan", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Masukkan URL Mentah Github", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Masukkan tag model (misalnya {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Masukkan Jumlah Langkah (mis. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Masukkan URL (mis. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Masukkan URL (mis. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Masukkan Email Anda", "Enter Your Full Name": "Masukkan Nama Lengkap Anda", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Masukkan Kata Sandi Anda", "Enter Your Role": "Masukkan Peran Anda", @@ -480,6 +504,8 @@ "Error": "Kesalahan", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Alat Ekspor", "External": "", "External Models": "Model Eksternal", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Gagal membuat API Key.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Gagal membaca konten papan klip", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Mengalirkan potongan respons eksternal yang besar dengan lancar", "Focus chat input": "Memfokuskan input obrolan", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Mengikuti instruksi dengan sempurna", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Fungsi berhasil diperbarui", "Functions": "Fungsi", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "Fungsi berhasil diimpor", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Umum", + "Generate": "", "Generate an image": "", "Generate Image": "Menghasilkan Gambar", "Generate prompt pair": "", "Generating search query": "Membuat kueri penelusuran", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "Fungsi Impor", "Import Models": "Model Impor", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Petunjuk Impor", "Import Tools": "Alat Impor", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Kirim Otomatis Instan Setelah Transkripsi Suara", "Integration": "", "Interface": "Antarmuka", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Tag tidak valid", @@ -706,6 +740,7 @@ "Manage Pipelines": "Mengelola Saluran Pipa", "Manage Tool Servers": "", "March": "Maret", + "Max Speakers": "", "Max Tokens (num_predict)": "Token Maksimal (num_prediksi)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memori berhasil dihapus", "Memory updated successfully": "Memori berhasil diperbarui", "Merge Responses": "", + "Merged Response": "Tanggapan yang Digabungkan", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Pesan yang Anda kirim setelah membuat tautan tidak akan dibagikan. Pengguna yang memiliki URL tersebut akan dapat melihat obrolan yang dibagikan.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Lainnya", + "My Notes": "", "Name": "Nama", "Name your knowledge base": "", "Native": "", "New Chat": "Obrolan Baru", "New Folder": "", + "New Note": "", "New Password": "Kata Sandi Baru", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "Tidak ada konten untuk dibicarakan", "No distance available": "", "No feedbacks found": "", "No file selected": "Tidak ada file yang dipilih", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Tidak ada hasil yang ditemukan", "No search query generated": "Tidak ada permintaan pencarian yang dibuat", "No source available": "Tidak ada sumber yang tersedia", @@ -782,6 +825,7 @@ "None": "Tidak ada", "Not factually correct": "Tidak benar secara faktual", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Catatan: Jika Anda menetapkan skor minimum, pencarian hanya akan mengembalikan dokumen dengan skor yang lebih besar atau sama dengan skor minimum.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Hanya karakter alfanumerik dan tanda hubung yang diizinkan dalam string perintah.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ups! Sepertinya URL tidak valid. Mohon periksa ulang dan coba lagi.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Saluran pipa", "Pipelines Not Detected": "Saluran Pipa Tidak Terdeteksi", "Pipelines Valves": "Katup Saluran Pipa", + "Plain text (.md)": "", "Plain text (.txt)": "Teks biasa (.txt)", "Playground": "Taman bermain", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Baca dengan Keras", "Reasoning Effort": "", + "Record": "", "Record voice": "Rekam suara", "Redirecting you to Open WebUI Community": "Mengarahkan Anda ke Komunitas OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Menyimpan log obrolan secara langsung ke penyimpanan browser Anda tidak lagi didukung. Mohon luangkan waktu sejenak untuk mengunduh dan menghapus log obrolan Anda dengan mengeklik tombol di bawah ini. Jangan khawatir, Anda dapat dengan mudah mengimpor kembali log obrolan Anda ke backend melalui", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Cari", "Search a model": "Mencari model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Mencari \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "URL Kueri Pencarian Searxng", "See readme.md for instructions": "Lihat readme.md untuk instruksi", "See what's new": "Lihat apa yang baru", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "K atas", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "Memperbarui", "Update and Copy Link": "Perbarui dan Salin Tautan", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Unggah", "Upload a GGUF model": "Unggah model GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Unggah File", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Tulis ringkasan dalam 50 kata yang merangkum [topik atau kata kunci].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Kemarin", "You": "Anda", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Anda dapat mempersonalisasi interaksi Anda dengan LLM dengan menambahkan kenangan melalui tombol 'Kelola' di bawah ini, sehingga lebih bermanfaat dan disesuaikan untuk Anda.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Anda tidak memiliki percakapan yang diarsipkan.", "You have shared this chat": "Anda telah membagikan obrolan ini", diff --git a/src/lib/i18n/locales/ie-GA/translation.json b/src/lib/i18n/locales/ie-GA/translation.json index 615089e67..45f86682e 100644 --- a/src/lib/i18n/locales/ie-GA/translation.json +++ b/src/lib/i18n/locales/ie-GA/translation.json @@ -4,10 +4,11 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(m.sh. `sh webui.sh --api --api-auth username_password `)", "(e.g. `sh webui.sh --api`)": "(m.sh. `sh webui.sh --api`)", "(latest)": "(is déanaí)", - "(Ollama)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", + "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", - "{{COUNT}} Available Tools": "", - "{{COUNT}} hidden lines": "", + "{{COUNT}} Available Tools": "{{COUNT}} Uirlisí ar Fáil", + "{{COUNT}} hidden lines": "{{COUNT}} línte folaithe", "{{COUNT}} Replies": "{{COUNT}} Freagra", "{{user}}'s Chats": "Comhráite {{user}}", "{{webUIName}} Backend Required": "{{webUIName}} Ceoldeireadh Riachtanach", @@ -54,28 +55,31 @@ "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Tá rochtain ag riarthóirí ar gach uirlis i gcónaí; teastaíonn ó úsáideoirí uirlisí a shanntar in aghaidh an mhúnla sa spás oibre.", "Advanced Parameters": "Paraiméadair Casta", "Advanced Params": "Paraiméid Casta", - "All": "", + "All": "Gach", "All Documents": "Gach Doiciméad", "All models deleted successfully": "Scriosadh na múnlaí go léir go rathúil", - "Allow Call": "", + "Allow Call": "Ceadaigh Glao", "Allow Chat Controls": "Ceadaigh Rialuithe Comhrá", "Allow Chat Delete": "Ceadaigh Comhrá a Scriosadh", "Allow Chat Deletion": "Cead Scriosadh Comhrá", "Allow Chat Edit": "Ceadaigh Eagarthóireacht Comhrá", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Ceadaigh Uaslódáil Comhad", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "Ceadaigh Múnlaí Il sa Chomhrá", "Allow non-local voices": "Lig guthanna neamh-áitiúla", - "Allow Speech to Text": "", + "Allow Speech to Text": "Ceadaigh Óráid go Téacs", "Allow Temporary Chat": "Cead Comhrá Sealadach", - "Allow Text to Speech": "", + "Allow Text to Speech": "Ceadaigh Téacs a Chaint", "Allow User Location": "Ceadaigh Suíomh Úsáideora", "Allow Voice Interruption in Call": "Ceadaigh Briseadh Guth i nGlao", "Allowed Endpoints": "Críochphointí Ceadaithe", "Already have an account?": "Tá cuntas agat cheana féin?", - "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.": "", + "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.": "Rogha eile seachas an top_p, agus tá sé mar aidhm aige cothromaíocht cáilíochta agus éagsúlachta a chinntiú. Léiríonn an paraiméadar p an dóchúlacht íosta go mbreithneofar comhartha, i gcoibhneas le dóchúlacht an chomhartha is dóichí. Mar shampla, le p=0.05 agus dóchúlacht 0.9 ag an comhartha is dóichí, déantar logits le luach níos lú ná 0.045 a scagadh amach.", "Always": "I gcónaí", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", + "Always Collapse Code Blocks": "Laghdaigh Bloic Chóid i gcónaí", + "Always Expand Details": "Leathnaigh Sonraí i gcónaí", + "Always Play Notification Sound": "", "Amazing": "Iontach", "an assistant": "cúntóir", "Analyzed": "Anailísithe", @@ -83,7 +87,7 @@ "and": "agus", "and {{COUNT}} more": "agus {{COUNT}} eile", "and create a new shared link.": "agus cruthaigh nasc nua roinnte.", - "Android": "", + "Android": "Android", "API Base URL": "URL Bonn API", "API Key": "Eochair API", "API Key created.": "Cruthaíodh Eochair API.", @@ -101,10 +105,11 @@ "Are you sure you want to delete this channel?": "An bhfuil tú cinnte gur mhaith leat an cainéal seo a scriosadh?", "Are you sure you want to delete this message?": "An bhfuil tú cinnte gur mhaith leat an teachtaireacht seo a scriosadh?", "Are you sure you want to unarchive all archived chats?": "An bhfuil tú cinnte gur mhaith leat gach comhrá cartlainne a dhíchartlannú?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "An bhfuil tú cinnte?", "Arena Models": "Múnlaí Airéine", "Artifacts": "Déantáin", - "Ask": "", + "Ask": "Fiafraigh", "Ask a question": "Cuir ceist", "Assistant": "Cúntóir", "Attach file from knowledge": "Ceangail comhad ó eolas", @@ -113,10 +118,10 @@ "Attribute for Username": "Tréith don Ainm Úsáideora", "Audio": "Fuaim", "August": "Lúnasa", - "Auth": "", + "Auth": "Údarú", "Authenticate": "Fíordheimhnigh", "Authentication": "Fíordheimhniú", - "Auto": "", + "Auto": "Uath", "Auto-Copy Response to Clipboard": "Freagra AutoCopy go Gearrthaisce", "Auto-playback response": "Freagra uathsheinm", "Autocomplete Generation": "Giniúint Uathchríochnaithe", @@ -126,7 +131,7 @@ "AUTOMATIC1111 Base URL": "UATHOIBRÍOCH1111 Bun URL", "AUTOMATIC1111 Base URL is required.": "Tá URL bonn UATHOIBRÍOCH1111 ag teastáil.", "Available list": "Liosta atá ar fáil", - "Available Tools": "", + "Available Tools": "Uirlisí ar Fáil", "available!": "ar fáil!", "Awful": "Uafásach", "Azure AI Speech": "Óráid Azure AI", @@ -135,6 +140,7 @@ "Bad Response": "Droch-fhreagra", "Banners": "Meirgí", "Base Model (From)": "Múnla Bonn (Ó)", + "Base URL": "", "Batch Size (num_batch)": "Méid Baisc (num_batch)", "before": "roimh", "Being lazy": "A bheith leisciúil", @@ -142,7 +148,8 @@ "Bing Search V7 Endpoint": "Cuardach Bing V7 Críochphointe", "Bing Search V7 Subscription Key": "Eochair Síntiúis Bing Cuardach V7", "Bocha Search API Key": "Eochair API Cuardach Bocha", - "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Treisiú nó pionós a ghearradh ar chomharthaí sonracha as freagraí srianta. Déanfar luachanna laofachta a chlampáil idir -100 agus 100 (san áireamh). (Réamhshocrú: ceann ar bith)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Eochair API Cuardaigh Brave", "By {{name}}": "Le {{name}}", "Bypass Embedding and Retrieval": "Seachbhóthar Leabú agus Aisghabháil", @@ -153,6 +160,7 @@ "Cancel": "Cealaigh", "Capabilities": "Cumais", "Capture": "Gabháil", + "Capture Audio": "", "Certificate Path": "Cosán Teastais", "Change Password": "Athraigh Pasfhocal", "Channel Name": "Ainm Cainéal", @@ -205,7 +213,7 @@ "Code Interpreter": "Ateangaire Cód", "Code Interpreter Engine": "Inneall Ateangaire Cóid", "Code Interpreter Prompt Template": "Teimpléad Pras Ateangaire Cód", - "Collapse": "", + "Collapse": "Laghdaigh", "Collection": "Bailiúchán", "Color": "Dath", "ComfyUI": "ComfyUI", @@ -223,12 +231,12 @@ "Confirm your action": "Deimhnigh do ghníomh", "Confirm your new password": "Deimhnigh do phasfhocal nua", "Connect to your own OpenAI compatible API endpoints.": "Ceangail le do chríochphointí API atá comhoiriúnach le OpenAI.", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", + "Connect to your own OpenAPI compatible external tool servers.": "Ceangail le do fhreastalaithe uirlisí seachtracha atá comhoiriúnach le OpenAPI.", + "Connection failed": "Theip ar an gceangal", + "Connection successful": "Ceangal rathúil", "Connections": "Naisc", - "Connections saved successfully": "", - "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", + "Connections saved successfully": "D'éirigh le naisc a shábháil", + "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "Srianann iarracht ar réasúnaíocht a dhéanamh ar shamhlacha réasúnaíochta. Ní bhaineann ach le samhlacha réasúnaíochta ó sholáthraithe sonracha a thacaíonn le hiarracht réasúnaíochta.", "Contact Admin for WebUI Access": "Déan teagmháil le Riarachán le haghaidh Rochtana WebUI", "Content": "Ábhar", "Content Extraction Engine": "Inneall Eastóscadh Ábhar", @@ -240,12 +248,12 @@ "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.": "Rialú conas a roinntear téacs teachtaireachta d'iarratais TTS. Roinneann 'poncaíocht' ina abairtí, scoilteann 'míreanna' i míreanna, agus coinníonn 'aon' an teachtaireacht mar shreang amháin.", "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.": "Rialú a dhéanamh ar athrá seichimh chomharthaí sa téacs ginte. Cuirfidh luach níos airde (m.sh., 1.5) pionós níos láidre ar athrá, agus beidh luach níos ísle (m.sh., 1.1) níos boige. Ag 1, tá sé díchumasaithe. (Réamhshocrú: 1.1)", "Controls": "Rialuithe", - "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "", + "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "Rialaíonn sé an chothromaíocht idir comhleanúnachas agus éagsúlacht an aschuir. Beidh téacs níos dírithe agus níos soiléire mar thoradh ar luach níos ísle.", "Copied": "Cóipeáladh", "Copied shared chat URL to clipboard!": "Cóipeáladh URL an chomhrá roinnte chuig an ngearrthaisce!", "Copied to clipboard": "Cóipeáilte go gear", "Copy": "Cóipeáil", - "Copy Formatted Text": "", + "Copy Formatted Text": "Cóipeáil Téacs Formáidithe", "Copy last code block": "Cóipeáil bloc cód deireanach", "Copy last response": "Cóipeáil an fhreagairt", "Copy Link": "Cóipeáil Nasc", @@ -262,11 +270,13 @@ "Create Knowledge": "Cruthaigh Eolais", "Create new key": "Cruthaigh eochair nua", "Create new secret key": "Cruthaigh eochair rúnda nua", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Cruthaithe ag", "Created At": "Cruthaithe Ag", "Created by": "Cruthaithe ag", "CSV Import": "Iompórtáil CSV", - "Ctrl+Enter to Send": "", + "Ctrl+Enter to Send": "Ctrl+Iontráil chun Seol", "Current Model": "Múnla Reatha", "Current Password": "Pasfhocal Reatha", "Custom": "Saincheaptha", @@ -286,7 +296,7 @@ "Default Prompt Suggestions": "Moltaí Leid Réamhshocraithe", "Default to 389 or 636 if TLS is enabled": "Réamhshocrú go 389 nó 636 má tá TLS cumasaithe", "Default to ALL": "Réamhshocrú do GACH", - "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "", + "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "Réamhshocrú maidir le haisghabháil deighilte d’eastóscadh ábhar dírithe agus ábhartha, moltar é seo i bhformhór na gcásanna.", "Default User Role": "Ról Úsáideora Réamhshocraithe", "Delete": "Scrios", "Delete a model": "Scrios múnla", @@ -299,6 +309,7 @@ "Delete function?": "Scrios feidhm?", "Delete Message": "Scrios Teachtaireacht", "Delete message?": "Scrios teachtaireacht?", + "Delete note?": "", "Delete prompt?": "Scrios leid?", "delete this link": "scrios an nasc seo", "Delete tool?": "Uirlis a scriosadh?", @@ -308,13 +319,13 @@ "Deleted User": "Úsáideoir Scriosta", "Describe your knowledge base and objectives": "Déan cur síos ar do bhunachar eolais agus do chuspóirí", "Description": "Cur síos", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "Déan Déantáin a bhrath go huathoibríoch", "Didn't fully follow instructions": "Níor lean sé treoracha go hiomlán", - "Direct": "", + "Direct": "Díreach", "Direct Connections": "Naisc Dhíreacha", "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Ligeann Connections Direct d’úsáideoirí ceangal lena gcríochphointí API féin atá comhoiriúnach le OpenAI.", "Direct Connections settings updated": "Nuashonraíodh socruithe Connections Direct", - "Direct Tool Servers": "", + "Direct Tool Servers": "Freastalaithe Uirlisí Díreacha", "Disabled": "Díchumasaithe", "Discover a function": "Faigh amach feidhm", "Discover a model": "Faigh amach múnla", @@ -334,8 +345,8 @@ "Dive into knowledge": "Léim isteach eolas", "Do not install functions from sources you do not fully trust.": "Ná suiteáil feidhmeanna ó fhoinsí nach bhfuil muinín iomlán agat.", "Do not install tools from sources you do not fully trust.": "Ná suiteáil uirlisí ó fhoinsí nach bhfuil muinín iomlán agat.", - "Docling": "", - "Docling Server URL required.": "", + "Docling": "Docling", + "Docling Server URL required.": "URL Freastalaí Doling ag teastáil.", "Document": "Doiciméad", "Document Intelligence": "Faisnéise Doiciméad", "Document Intelligence endpoint and key required.": "Críochphointe Faisnéise Doiciméad agus eochair ag teastáil.", @@ -354,17 +365,18 @@ "Download Database": "Íoslódáil Bunachair", "Drag and drop a file to upload or select a file to view": "Tarraing agus scaoil comhad le huaslódáil nó roghnaigh comhad le féachaint air", "Draw": "Tarraing", - "Drop any files here to add to the conversation": "Scaoil aon chomhaid anseo le cur leis an gcomhrá", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "m.sh. '30s', '10m'. Is iad aonaid ama bailí ná 's', 'm', 'h'.", - "e.g. \"json\" or a JSON schema": "", + "e.g. \"json\" or a JSON schema": "m.sh. \"json\" nó scéimre JSON", "e.g. 60": "m.sh. 60", "e.g. A filter to remove profanity from text": "m.h. Scagaire chun profanity a bhaint as téacs", "e.g. My Filter": "m.sh. Mo Scagaire", - "e.g. My Tools": "e.g. Mo Uirlisí", + "e.g. My Tools": "m.sh. Mo Uirlisí", "e.g. my_filter": "m.sh. mo_scagaire", "e.g. my_tools": "m.sh. mo_uirlisí", "e.g. Tools for performing various operations": "m.sh. Uirlisí chun oibríochtaí éagsúla a dhéanamh", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "m.sh., en-US, ja-JP (fág bán le haghaidh uathbhraite)", "Edit": "Cuir in eagar", "Edit Arena Model": "Cuir Samhail Airéine in Eagar", "Edit Channel": "Cuir Cainéal in Eagar", @@ -383,16 +395,17 @@ "Embedding model set to \"{{embedding_model}}\"": "Múnla leabaithe socraithe go \"{{embedding_model}}\"", "Enable API Key": "Cumasaigh Eochair API", "Enable autocomplete generation for chat messages": "Cumasaigh giniúint uathchríochnaithe le haghaidh teachtaireachtaí comhrá", - "Enable Code Execution": "", + "Enable Code Execution": "Cumasaigh Forghníomhú Cód", "Enable Code Interpreter": "Cumasaigh Ateangaire Cóid", "Enable Community Sharing": "Cumasaigh Comhroinnt Pobail", "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.": "Cumasaigh Glasáil Cuimhne (mlock) chun sonraí samhaltaithe a chosc ó RAM. Glasálann an rogha seo sraith oibre leathanaigh an mhúnla isteach i RAM, ag cinntiú nach ndéanfar iad a mhalartú go diosca. Is féidir leis seo cabhrú le feidhmíocht a choinneáil trí lochtanna leathanaigh a sheachaint agus rochtain tapa ar shonraí a chinntiú.", "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.": "Cumasaigh Mapáil Cuimhne (mmap) chun sonraí samhla a lódáil. Ligeann an rogha seo don chóras stóráil diosca a úsáid mar leathnú ar RAM trí chomhaid diosca a chóireáil amhail is dá mba i RAM iad. Is féidir leis seo feidhmíocht na samhla a fheabhsú trí rochtain níos tapúla ar shonraí a cheadú. Mar sin féin, d'fhéadfadh sé nach n-oibreoidh sé i gceart le gach córas agus féadfaidh sé méid suntasach spáis diosca a ithe.", "Enable Message Rating": "Cumasaigh Rátáil Teachtai", - "Enable Mirostat sampling for controlling perplexity.": "", + "Enable Mirostat sampling for controlling perplexity.": "Cumasaigh sampláil Mirostat chun seachrán a rialú.", "Enable New Sign Ups": "Cumasaigh Clárúcháin Nua", "Enabled": "Cumasaithe", - "Enforce Temporary Chat": "", + "Enforce Temporary Chat": "Cuir Comhrá Sealadach i bhfeidhm", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Déan cinnte go bhfuil 4 cholún san ord seo i do chomhad CSV: Ainm, Ríomhphost, Pasfhocal, Ról.", "Enter {{role}} message here": "Cuir isteach teachtaireacht {{role}} anseo", "Enter a detail about yourself for your LLMs to recall": "Cuir isteach mionsonraí fút féin chun do LLManna a mheabhrú", @@ -407,15 +420,21 @@ "Enter CFG Scale (e.g. 7.0)": "Cuir isteach Scála CFG (m.sh. 7.0)", "Enter Chunk Overlap": "Cuir isteach Chunk Forluí", "Enter Chunk Size": "Cuir isteach Méid an Smután", - "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", + "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Cuir isteach péirí camóg-scartha \"comhartha:luach laofachta\" (mar shampla: 5432:100, 413:-100)", "Enter description": "Iontráil cur síos", - "Enter Docling Server URL": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", + "Enter Docling Server URL": "Cuir isteach URL Freastalaí Doling", "Enter Document Intelligence Endpoint": "Iontráil Críochphointe Faisnéise Doiciméid", "Enter Document Intelligence Key": "Iontráil Eochair Faisnéise Doiciméad", "Enter domains separated by commas (e.g., example.com,site.org)": "Cuir isteach fearainn atá scartha le camóga (m.sh., example.com,site.org)", "Enter Exa API Key": "Cuir isteach Eochair Exa API", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", + "Enter Firecrawl API Base URL": "Cuir isteach URL Bonn API Firecrawl", + "Enter Firecrawl API Key": "Cuir isteach Eochair API Firecrawl", "Enter Github Raw URL": "Cuir isteach URL Github Raw", "Enter Google PSE API Key": "Cuir isteach Eochair API Google PSE", "Enter Google PSE Engine Id": "Cuir isteach ID Inneall Google PSE", @@ -425,16 +444,17 @@ "Enter Jupyter Token": "Cuir isteach Jupyter Chomhartha", "Enter Jupyter URL": "Cuir isteach URL Jupyter", "Enter Kagi Search API Key": "Cuir isteach Eochair Kagi Cuardach API", - "Enter Key Behavior": "", + "Enter Key Behavior": "Iontráil Iompar Eochair", "Enter language codes": "Cuir isteach cóid teanga", - "Enter Mistral API Key": "", + "Enter Mistral API Key": "Cuir isteach Eochair API Mistral", "Enter Model ID": "Iontráil ID Mhúnla", "Enter model tag (e.g. {{modelTag}})": "Cuir isteach chlib samhail (m.sh. {{modelTag}})", "Enter Mojeek Search API Key": "Cuir isteach Eochair API Cuardach Mojeek", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Iontráil Líon na gCéimeanna (m.sh. 50)", - "Enter Perplexity API Key": "", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Perplexity API Key": "Cuir isteach Eochair API Perplexity", + "Enter Playwright Timeout": "Iontráil Teorainn Ama na nDrámadóir", + "Enter Playwright WebSocket URL": "Cuir isteach URL WebSocket Seinmeora", "Enter proxy URL (e.g. https://user:password@host:port)": "Cuir isteach URL seachfhreastalaí (m.sh. https://user:password@host:port)", "Enter reasoning effort": "Cuir isteach iarracht réasúnaíochta", "Enter Sampler (e.g. Euler a)": "Cuir isteach Sampler (m.sh. Euler a)", @@ -452,26 +472,30 @@ "Enter server host": "Cuir isteach óstach freastalaí", "Enter server label": "Cuir isteach lipéad freastalaí", "Enter server port": "Cuir isteach port freastalaí", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Sougou Search API sID": "Cuir isteach sID Sougou Search API", + "Enter Sougou Search API SK": "Cuir isteach Sougou Search API SK", "Enter stop sequence": "Cuir isteach seicheamh stad", "Enter system prompt": "Cuir isteach an chóras leid", - "Enter system prompt here": "", + "Enter system prompt here": "Cuir leid córais isteach anseo", "Enter Tavily API Key": "Cuir isteach eochair API Tavily", - "Enter Tavily Extract Depth": "", + "Enter Tavily Extract Depth": "Cuir isteach Doimhneacht Sliocht Tavily", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Cuir isteach URL poiblí do WebUI. Bainfear úsáid as an URL seo chun naisc a ghiniúint sna fógraí.", "Enter Tika Server URL": "Cuir isteach URL freastalaí Tika", "Enter timeout in seconds": "Cuir isteach an t-am istigh i soicindí", - "Enter to Send": "", + "Enter to Send": "Iontráil chun Seol", "Enter Top K": "Cuir isteach Barr K", - "Enter Top K Reranker": "", + "Enter Top K Reranker": "Cuir isteach Barr K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "Iontráil URL (m.sh. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Iontráil URL (m.sh. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Cuir isteach do phasfhocal reatha", "Enter Your Email": "Cuir isteach do Ríomhphost", "Enter Your Full Name": "Cuir isteach d'Ainm Iomlán", "Enter your message": "Cuir isteach do theachtaireacht", - "Enter your name": "", + "Enter your name": "Cuir isteach d'ainm", + "Enter Your Name": "", "Enter your new password": "Cuir isteach do phasfhocal nua", "Enter Your Password": "Cuir isteach do phasfhocal", "Enter Your Role": "Cuir isteach do Ról", @@ -480,6 +504,8 @@ "Error": "Earráid", "ERROR": "EARRÁID", "Error accessing Google Drive: {{error}}": "Earráid agus tú ag rochtain Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Earráid agus comhad á uaslódáil: {{error}}", "Evaluations": "Meastóireachtaí", "Exa API Key": "Eochair Exa API", @@ -488,14 +514,14 @@ "Example: mail": "Sampla: ríomhphost", "Example: ou=users,dc=foo,dc=example": "Sampla: ou=úsáideoirí,dc=foo,dc=sampla", "Example: sAMAccountName or uid or userPrincipalName": "Sampla: sAMAaccountName nó uid nó userPrincipalName", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "Níos mó ná líon na suíochán i do cheadúnas. Déan teagmháil le do thoil le tacaíocht chun líon na suíochán a mhéadú.", "Exclude": "Eisigh", "Execute code for analysis": "Íosluchtaigh cód le haghaidh anailíse", - "Executing **{{NAME}}**...": "", - "Expand": "", + "Executing **{{NAME}}**...": "**{{NAME}}** á rith...", + "Expand": "Leathnaigh", "Experimental": "Turgnamhach", - "Explain": "", - "Explain this section to me in more detail": "", + "Explain": "Mínigh", + "Explain this section to me in more detail": "Mínigh an chuid seo dom níos mine", "Explore the cosmos": "Déan iniúchadh ar an cosmos", "Export": "Easpórtáil", "Export All Archived Chats": "Easpórtáil Gach Comhrá Cartlainne", @@ -509,14 +535,20 @@ "Export Prompts": "Leideanna Easpórtála", "Export to CSV": "Easpórtáil go CSV", "Export Tools": "Uirlisí Easpór", - "External": "", + "External": "Seachtrach", "External Models": "Múnlaí Seachtracha", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Theip ar an gcomhad a chur leis.", - "Failed to connect to {{URL}} OpenAPI tool server": "", + "Failed to connect to {{URL}} OpenAPI tool server": "Theip ar nascadh le {{URL}} freastalaí uirlisí OpenAPI", "Failed to create API Key.": "Theip ar an eochair API a chruthú.", + "Failed to delete note": "", "Failed to fetch models": "Theip ar shamhlacha a fháil", + "Failed to load file content.": "", "Failed to read clipboard contents": "Theip ar ábhar gearrthaisce a lé", - "Failed to save connections": "", + "Failed to save connections": "Theip ar na naisc a shábháil", "Failed to save models configuration": "Theip ar chumraíocht na múnlaí a shábháil", "Failed to update settings": "Theip ar shocruithe a nuashonrú", "Failed to upload file.": "Theip ar uaslódáil an chomhaid.", @@ -539,19 +571,18 @@ "Filter is now globally enabled": "Tá an scagaire cumasaithe go domhanda anois", "Filters": "Scagairí", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Braithíodh spoofing méarloirg: Ní féidir teachlitreacha a úsáid mar avatar. Réamhshocrú ar íomhá próifíle réamhshocraithe.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "URL Bunús API Firecrawl", + "Firecrawl API Key": "Eochair API Firecrawl", "Fluidly stream large external response chunks": "Sruthaigh codanna móra freagartha seachtracha go sreabhach", "Focus chat input": "Ionchur comhrá fócas", "Folder deleted successfully": "Scriosadh an fillteán go rathúil", - "Folder name cannot be empty": "Ní féidir ainm fillteáin a bheith folamh", "Folder name cannot be empty.": "Ní féidir ainm fillteáin a bheith folamh.", "Folder name updated successfully": "D'éirigh le hainm an fhillteáin a nuashonrú", "Followed instructions perfectly": "Lean treoracha go foirfe", "Forge new paths": "Déan cosáin nua a chruthú", "Form": "Foirm", "Format your variables using brackets like this:": "Formáidigh na hathróga ag baint úsáide as lúibíní mar seo:", - "Forwards system user session credentials to authenticate": "", + "Forwards system user session credentials to authenticate": "Cuir dintiúir seisiúin úsáideora córais ar aghaidh lena bhfíordheimhniú", "Frequency Penalty": "Pionós Minicíochta", "Full Context Mode": "Mód Comhthéacs Iomlán", "Function": "Feidhm", @@ -565,17 +596,18 @@ "Function Name": "Ainm Feidhme", "Function updated successfully": "Feidhm nuashonraithe", "Functions": "Feidhmeanna", - "Functions allow arbitrary code execution": "Ligeann feidhmeanna forghníomhú cód", "Functions allow arbitrary code execution.": "Ceadaíonn feidhmeanna forghníomhú cód treallach.", "Functions imported successfully": "Feidhmeanna allmhairi", "Gemini": "Gemini", "Gemini API Config": "Cumraíocht Gemini API", "Gemini API Key is required.": "Tá Eochair Gemini API ag teastáil.", "General": "Ginearálta", + "Generate": "", "Generate an image": "Gin íomhá", - "Generate Image": "Ginigh Íomhá", + "Generate Image": "Gin Íomhá", "Generate prompt pair": "Gin péire pras", "Generating search query": "Giniúint ceist cuardaigh", + "Generating...": "", "Get started": "Cuir tús leis", "Get started with {{WEBUI_NAME}}": "Cuir tús le {{WEBUI_NAME}}", "Global": "Domhanda", @@ -597,7 +629,7 @@ "Hex Color": "Dath Heics", "Hex Color - Leave empty for default color": "Dath Heics - Fág folamh don dath réamhshocraithe", "Hide": "Folaigh", - "Hide Model": "", + "Hide Model": "Folaigh Múnla", "Home": "Baile", "Host": "Óstach", "How can I help you today?": "Conas is féidir liom cabhrú leat inniu?", @@ -605,8 +637,8 @@ "Hybrid Search": "Cuardach Hibrideach", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Admhaím gur léigh mé agus tuigim impleachtaí mo ghníomhaíochta. Táim ar an eolas faoi na rioscaí a bhaineann le cód treallach a fhorghníomhú agus tá iontaofacht na foinse fíoraithe agam.", "ID": "ID", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", + "iframe Sandbox Allow Forms": "iframe Bosca Gainimh Foirmeacha Ceadaithe", + "iframe Sandbox Allow Same Origin": "Bosca Gainimh iframe Ceadaigh an Bunús Céanna", "Ignite curiosity": "Las fiosracht", "Image": "Íomhá", "Image Compression": "Comhbhrú Íomhá", @@ -622,22 +654,24 @@ "Import Config from JSON File": "Cumraíocht Iompórtáil ó Chomhad JSON", "Import Functions": "Feidhmeanna Iom", "Import Models": "Múnlaí a Iompórtáil", + "Import Notes": "", "Import Presets": "Réamhshocruithe Iompórtáil", "Import Prompts": "Leideanna Iompórtála", "Import Tools": "Uirlisí Iomp", "Include": "Cuir san áireamh", "Include `--api-auth` flag when running stable-diffusion-webui": "Cuir bratach `--api-auth` san áireamh agus webui stable-diffusion-reatha á rith", "Include `--api` flag when running stable-diffusion-webui": "Cuir bratach `--api` san áireamh agus webui cobhsaí-scaipthe á rith", - "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.": "", + "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.": "Bíonn tionchar aige ar chomh tapa agus a fhreagraíonn an t-algartam d’aiseolas ón téacs ginte. Beidh coigeartuithe níos moille mar thoradh ar ráta foghlama níos ísle, agus déanfaidh ráta foghlama níos airde an t-algartam níos freagraí.", "Info": "Eolas", - "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "", + "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "Instealladh an t-ábhar ar fad mar chomhthéacs do phróiseáil chuimsitheach, moltar é seo le haghaidh ceisteanna casta.", "Input commands": "Orduithe ionchuir", "Install from Github URL": "Suiteáil ó Github URL", "Instant Auto-Send After Voice Transcription": "Seoladh Uathoibríoch Láithreach Tar éis", "Integration": "Comhtháthú", "Interface": "Comhéadan", + "Invalid file content": "", "Invalid file format.": "Formáid comhaid neamhbhailí.", - "Invalid JSON schema": "", + "Invalid JSON schema": "Scéimre JSON neamhbhailí", "Invalid Tag": "Clib neamhbhailí", "is typing...": "ag clóscríobh...", "January": "Eanáir", @@ -645,7 +679,7 @@ "join our Discord for help.": "bí inár Discord chun cabhair a fháil.", "JSON": "JSON", "JSON Preview": "Réamhamharc JSON", - "July": "Lúil", + "July": "Iúil", "June": "Meitheamh", "Jupyter Auth": "Fíordheimhniú Jupyter", "Jupyter URL": "URL Jupyter", @@ -659,7 +693,7 @@ "Knowledge Access": "Rochtain Eolais", "Knowledge created successfully.": "Eolas cruthaithe go rathúil.", "Knowledge deleted successfully.": "D'éirigh leis an eolas a scriosadh.", - "Knowledge Public Sharing": "", + "Knowledge Public Sharing": "Roinnt Faisnéise Poiblí", "Knowledge reset successfully.": "D'éirigh le hathshocrú eolais.", "Knowledge updated successfully": "D'éirigh leis an eolas a nuashonrú", "Kokoro.js (Browser)": "Kokoro.js (Brabhsálaí)", @@ -667,17 +701,17 @@ "Label": "Lipéad", "Landing Page Mode": "Mód Leathanach Tuirlingthe", "Language": "Teanga", - "Language Locales": "", + "Language Locales": "Logánta Teanga", "Last Active": "Gníomhach Deiridh", "Last Modified": "Athraithe Deiridh", "Last reply": "Freagra deiridh", "LDAP": "LDAP", "LDAP server updated": "Nuashonraíodh freastalaí LDAP", "Leaderboard": "An Clár Ceannairí", - "Learn more about OpenAPI tool servers.": "", + "Learn more about OpenAPI tool servers.": "Foghlaim tuilleadh faoi fhreastalaithe uirlisí OpenAPI.", "Leave empty for unlimited": "Fág folamh le haghaidh neamhtheoranta", - "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "", - "Leave empty to include all models from \"{{url}}/models\" endpoint": "", + "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Fág folamh chun gach múnla ó chríochphointe \"{{url}}/api/tags\" a chur san áireamh", + "Leave empty to include all models from \"{{url}}/models\" endpoint": "Fág folamh chun gach múnla ón gcríochphointe \"{{url}}/models\" a chur san áireamh", "Leave empty to include all models or select specific models": "Fág folamh chun gach múnla a chur san áireamh nó roghnaigh múnlaí sonracha", "Leave empty to use the default prompt, or enter a custom prompt": "Fág folamh chun an leid réamhshocraithe a úsáid, nó cuir isteach leid saincheaptha", "Leave model field empty to use the default model.": "Fág réimse an mhúnla folamh chun an tsamhail réamhshocraithe a úsáid.", @@ -691,7 +725,7 @@ "Local": "Áitiúil", "Local Models": "Múnlaí Áitiúla", "Location access not allowed": "Ní cheadaítear rochtain suímh", - "Logit Bias": "", + "Logit Bias": "Bias Logit", "Lost": "Cailleadh", "LTR": "LTR", "Made by Open WebUI Community": "Déanta ag OpenWebUI Community", @@ -704,8 +738,9 @@ "Manage Ollama API Connections": "Bainistigh Naisc API Ollama", "Manage OpenAI API Connections": "Bainistigh Naisc API OpenAI", "Manage Pipelines": "Bainistigh píblín", - "Manage Tool Servers": "", + "Manage Tool Servers": "Bainistigh Freastalaithe Uirlisí", "March": "Márta", + "Max Speakers": "", "Max Tokens (num_predict)": "Comharthaí Uasta (num_predicate)", "Max Upload Count": "Líon Uaslódála Max", "Max Upload Size": "Méid Uaslódála Max", @@ -718,22 +753,26 @@ "Memory deleted successfully": "Cuimhne scriosta go rathúil", "Memory updated successfully": "Cuimhne nuashonraithe", "Merge Responses": "Cumaisc Freagraí", + "Merged Response": "Freagra Cumaiscthe", "Message rating should be enabled to use this feature": "Ba cheart rátáil teachtaireachta a chumasú chun an ghné seo a úsáid", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Ní roinnfear teachtaireachtaí a sheolann tú tar éis do nasc a chruthú. Beidh úsáideoirí leis an URL in ann féachaint ar an gcomhrá roinnte.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", - "Mistral OCR": "", - "Mistral OCR API Key required.": "", + "Mistral OCR": "OCR Mistral", + "Mistral OCR API Key required.": "Mistral OCR API Eochair ag teastáil.", "Model": "Múnla", "Model '{{modelName}}' has been successfully downloaded.": "Rinneadh an tsamhail '{{modelName}}' a íoslódáil go rathúil.", "Model '{{modelTag}}' is already in queue for downloading.": "Tá múnla ‘{{modelTag}}’ sa scuaine cheana féin le híoslódáil.", "Model {{modelId}} not found": "Múnla {{modelId}} gan aimsiú", "Model {{modelName}} is not vision capable": "Níl samhail {{modelName}} in ann amharc", "Model {{name}} is now {{status}}": "Tá samhail {{name}} {{status}} anois", - "Model {{name}} is now hidden": "", - "Model {{name}} is now visible": "", + "Model {{name}} is now hidden": "Tá múnla {{name}} i bhfolach anois", + "Model {{name}} is now visible": "Tá múnla {{name}} le feiceáil anois", "Model accepts image inputs": "Glacann múnla le hionchuir", "Model created successfully!": "Cruthaíodh múnla go rathúil!", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "Fuarthas cosán an múnla. Teastaíonn ainm gearr an mhúnla le haghaidh nuashonraithe, ní féidir leanúint ar aghaidh.", @@ -749,23 +788,26 @@ "Models": "Múnlaí", "Models Access": "Rochtain Múnlaí", "Models configuration saved successfully": "Sábháladh cumraíocht na múnlaí go rathúil", - "Models Public Sharing": "", + "Models Public Sharing": "Múnlaí Comhroinnte Poiblí", "Mojeek Search API Key": "Eochair API Cuardach Mojeek", "more": "níos mó", "More": "Tuilleadh", + "My Notes": "", "Name": "Ainm", "Name your knowledge base": "Cuir ainm ar do bhunachar eolais", "Native": "Dúchasach", "New Chat": "Comhrá Nua", "New Folder": "Fillteán Nua", + "New Note": "", "New Password": "Pasfhocal Nua", "new-channel": "nua-chainéil", + "No content": "", "No content found": "Níor aimsíodh aon ábhar", + "No content found in file.": "", "No content to speak": "Níl aon ábhar le labhairt", "No distance available": "Níl achar ar fáil", "No feedbacks found": "Níor aimsíodh aon aiseolas", "No file selected": "Níl aon chomhad roghnaithe", - "No files found.": "Níor aimsíodh aon chomhaid.", "No groups with access, add a group to grant access": "Gan aon ghrúpa a bhfuil rochtain acu, cuir grúpa leis chun rochtain a dheonú", "No HTML, CSS, or JavaScript content found.": "Níor aimsíodh aon ábhar HTML, CSS nó JavaScript.", "No inference engine with management support found": "Níor aimsíodh aon inneall tátail le tacaíocht bhainistíochta", @@ -774,6 +816,7 @@ "No model IDs": "Gan IDanna múnla", "No models found": "Níor aimsíodh aon mhúnlaí", "No models selected": "Níor roghnaíodh aon mhúnlaí", + "No Notes": "", "No results found": "Níl aon torthaí le fáil", "No search query generated": "Ní ghintear aon cheist cuardaigh", "No source available": "Níl aon fhoinse ar fáil", @@ -782,6 +825,7 @@ "None": "Dada", "Not factually correct": "Níl sé ceart go fírineach", "Not helpful": "Gan a bheith cabhrach", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nóta: Má shocraíonn tú íosscór, ní thabharfaidh an cuardach ach doiciméid a bhfuil scór níos mó ná nó cothrom leis an scór íosta ar ais.", "Notes": "Nótaí", "Notification Sound": "Fuaim Fógra", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Ní cheadaítear ach carachtair alfa-uimhriúla agus fleiscíní", "Only alphanumeric characters and hyphens are allowed in the command string.": "Ní cheadaítear ach carachtair alfauméireacha agus braithíní sa sreangán ordaithe.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Ní féidir ach bailiúcháin a chur in eagar, bonn eolais nua a chruthú chun doiciméid a chur in eagar/a chur leis.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Ní féidir ach le húsáideoirí roghnaithe agus le grúpaí a bhfuil cead acu rochtain a fháil", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ups! Is cosúil go bhfuil an URL neamhbhailí. Seiceáil faoi dhó le do thoil agus iarracht arís.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Úps! Tá comhaid fós á n-uaslódáil. Fan go mbeidh an uaslódáil críochnaithe.", @@ -812,7 +857,7 @@ "Open file": "Oscail comhad", "Open in full screen": "Oscail i scáileán iomlán", "Open new chat": "Oscail comhrá nua", - "Open WebUI can use tools provided by any OpenAPI server.": "", + "Open WebUI can use tools provided by any OpenAPI server.": "Is féidir le WebUI Oscailte uirlisí a úsáid a sholáthraíonn aon fhreastalaí OpenAPI.", "Open WebUI uses faster-whisper internally.": "Úsáideann Open WebUI cogar níos tapúla go hinmheánach.", "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Úsáideann Open WebUI úsáidí SpeechT5 agus CMU leabaithe cainteoir Artach.", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Tá leagan WebUI oscailte (v{{OPEN_WEBUI_VERSION}}) níos ísle ná an leagan riachtanach (v{{REQUIRED_VERSION}})", @@ -822,7 +867,7 @@ "OpenAI API Key is required.": "Tá Eochair API OpenAI ag teastáil.", "OpenAI API settings updated": "Nuashonraíodh socruithe OpenAI API", "OpenAI URL/Key required.": "Teastaíonn URL/eochair OpenAI.", - "openapi.json Path": "", + "openapi.json Path": "Conair openapi.json", "or": "nó", "Organize your users": "Eagraigh do chuid úsáideoirí", "Other": "Eile", @@ -839,7 +884,7 @@ "Permission denied when accessing microphone": "Cead diúltaithe agus tú ag rochtain ar", "Permission denied when accessing microphone: {{error}}": "Cead diúltaithe agus tú ag teacht ar mhicreafón: {{error}}", "Permissions": "Ceadanna", - "Perplexity API Key": "", + "Perplexity API Key": "Eochair API Perplexity", "Personalization": "Pearsantú", "Pin": "Bioráin", "Pinned": "Pinneáilte", @@ -849,15 +894,16 @@ "Pipelines": "Píblínte", "Pipelines Not Detected": "Níor aimsíodh píblínte", "Pipelines Valves": "Comhlaí Píblíne", + "Plain text (.md)": "", "Plain text (.txt)": "Téacs simplí (.txt)", "Playground": "Clós súgartha", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Teorainn Ama drámadóra (ms)", + "Playwright WebSocket URL": "URL drámadóir WebSocket", "Please carefully review the following warnings:": "Déan athbhreithniú cúramach ar na rabhaidh seo a leanas le do thoil:", "Please do not close the settings page while loading the model.": "Ná dún leathanach na socruithe agus an tsamhail á luchtú.", "Please enter a prompt": "Cuir isteach leid", - "Please enter a valid path": "", - "Please enter a valid URL": "", + "Please enter a valid path": "Cuir isteach cosán bailí", + "Please enter a valid URL": "Cuir isteach URL bailí", "Please fill in all fields.": "Líon isteach gach réimse le do thoil.", "Please select a model first.": "Roghnaigh munla ar dtús le do thoil.", "Please select a model.": "Roghnaigh múnla le do thoil.", @@ -869,19 +915,19 @@ "Presence Penalty": "Pionós Láithreacht", "Previous 30 days": "30 lá roimhe seo", "Previous 7 days": "7 lá roimhe seo", - "Private": "", + "Private": "Príobháideach", "Profile Image": "Íomhá Próifíl", "Prompt": "Leid", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Leid (m.sh. inis dom fíric spraíúil faoin Impireacht Rómhánach)", - "Prompt Autocompletion": "", + "Prompt Autocompletion": "Uathchríochnú Pras", "Prompt Content": "Ábhar Leid", "Prompt created successfully": "Leid cruthaithe go rathúil", "Prompt suggestions": "Moltaí leid", "Prompt updated successfully": "D'éirigh leis an leid a nuashonrú", "Prompts": "Leabhair", "Prompts Access": "Rochtain ar Chuirí", - "Prompts Public Sharing": "", - "Public": "", + "Prompts Public Sharing": "Spreagann Roinnt Phoiblí", + "Public": "Poiblí", "Pull \"{{searchValue}}\" from Ollama.com": "Tarraing \"{{searchValue}}\" ó Ollama.com", "Pull a model from Ollama.com": "Tarraing múnla ó Ollama.com", "Query Generation Prompt": "Cuirí Ginearáil Ceisteanna", @@ -891,18 +937,19 @@ "Read": "Léigh", "Read Aloud": "Léigh Ard", "Reasoning Effort": "Iarracht Réasúnúcháin", + "Record": "", "Record voice": "Taifead guth", "Redirecting you to Open WebUI Community": "Tú a atreorú chuig OpenWebUI Community", - "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", + "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.": "Laghdaíonn sé an dóchúlacht go giniúint nonsense. Tabharfaidh luach níos airde (m.sh. 100) freagraí níos éagsúla, agus beidh luach níos ísle (m.sh. 10) níos coimeádaí.", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Tagairt duit féin mar \"Úsáideoir\" (m.sh., \"Tá an úsáideoir ag foghlaim Spáinnis\")", "References from": "Tagairtí ó", "Refused when it shouldn't have": "Diúltaíodh nuair nár chóir dó", "Regenerate": "Athghiniúint", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "Reindex", + "Reindex Knowledge Base Vectors": "Veicteoirí Bonn Eolais a ath-innéacsú", "Release Notes": "Nótaí Scaoilte", "Relevance": "Ábharthacht", - "Relevance Threshold": "", + "Relevance Threshold": "Tairseach Ábharthaíochta", "Remove": "Bain", "Remove Model": "Bain Múnla", "Rename": "Athainmnigh", @@ -939,7 +986,7 @@ "Save Tag": "Sábháil Clib", "Saved": "Shábháil", "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": "Ní thacaítear le logaí comhrá a shábháil go díreach chuig stóráil do bhrabhsálaí Tóg nóiméad chun do logaí comhrá a íoslódáil agus a scriosadh trí chliceáil an cnaipe thíos. Ná bíodh imní ort, is féidir leat do logaí comhrá a athiompórtáil go héasca chuig an gcúltaca trí", - "Scroll to bottom when switching between branches": "Scrollaigh go bun agus tú ag athrú idir brainsí", + "Scroll On Branch Change": "", "Search": "Cuardaigh", "Search a model": "Cuardaigh múnla", "Search Base": "Bonn Cuardaigh", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Cuardaíodh {{count}} suíomh", "Searching \"{{searchQuery}}\"": "Ag cuardach \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Cuardach Eolas do \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL ceisteanna cuardaigh", "See readme.md for instructions": "Féach readme.md le haghaidh treoracha", "See what's new": "Féach cad atá nua", @@ -1005,22 +1053,22 @@ "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.": "Socraigh líon na snáitheanna oibrithe a úsáidtear le haghaidh ríomh. Rialaíonn an rogha seo cé mhéad snáithe a úsáidtear chun iarratais a thagann isteach a phróiseáil i gcomhthráth. D'fhéadfadh méadú ar an luach seo feidhmíocht a fheabhsú faoi ualaí oibre comhairgeadra ard ach féadfaidh sé níos mó acmhainní LAP a úsáid freisin.", "Set Voice": "Socraigh Guth", "Set whisper model": "Socraigh múnla cogar", - "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.": "", - "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.": "", - "Sets how far back for the model to look back to prevent repetition.": "", - "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt.": "", - "Sets the size of the context window used to generate the next token.": "", + "Sets 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.": "Socraíonn sé claonadh cothrom i gcoinne comharthaí a tháinig chun solais uair amháin ar a laghad. Cuirfidh luach níos airde (m.sh., 1.5) pionós níos láidre ar athrá, agus beidh luach níos ísle (m.sh., 0.9) níos boige. Ag 0, tá sé díchumasaithe.", + "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.": "Socraíonn sé laofacht scálaithe i gcoinne comharthaí chun pionós a ghearradh ar athrá, bunaithe ar cé mhéad uair a tháinig siad chun solais. Cuirfidh luach níos airde (m.sh., 1.5) pionós níos láidre ar athrá, agus beidh luach níos ísle (m.sh., 0.9) níos boige. Ag 0, tá sé díchumasaithe.", + "Sets how far back for the model to look back to prevent repetition.": "Socraíonn sé cé chomh fada siar is atá an tsamhail le breathnú siar chun athrá a chosc.", + "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.": "Socraíonn sé an síol uimhir randamach a úsáid le haghaidh giniúna. Má shocraítear é seo ar uimhir shainiúil, ginfidh an tsamhail an téacs céanna don leid céanna.", + "Sets the size of the context window used to generate the next token.": "Socraíonn sé méid na fuinneoige comhthéacs a úsáidtear chun an chéad chomhartha eile a ghiniúint.", "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.": "Socraíonn sé na stadanna le húsáid. Nuair a thagtar ar an bpatrún seo, stopfaidh an LLM ag giniúint téacs agus ag filleadh. Is féidir patrúin stad iolracha a shocrú trí pharaiméadair stadanna iolracha a shonrú i gcomhad samhail.", "Settings": "Socruithe", "Settings saved successfully!": "Socruithe sábhálta go rathúil!", "Share": "Comhroinn", "Share Chat": "Comhroinn Comhrá", "Share to Open WebUI Community": "Comhroinn le Pobal OpenWebUI", - "Sharing Permissions": "", + "Sharing Permissions": "Ceadanna a Roinnt", "Show": "Taispeáin", "Show \"What's New\" modal on login": "Taispeáin módúil \"Cad atá Nua\" ar logáil isteach", "Show Admin Details in Account Pending Overlay": "Taispeáin Sonraí Riaracháin sa Chuntas ar Feitheamh Forleagan", - "Show Model": "", + "Show Model": "Taispeáin Múnla", "Show shortcuts": "Taispeáin aicearraí", "Show your support!": "Taispeáin do thacaíocht!", "Showcased creativity": "Cruthaitheacht léirithe", @@ -1032,8 +1080,8 @@ "Sign up to {{WEBUI_NAME}}": "Cláraigh le {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "Ag síniú isteach ar {{WEBUI_NAME}}", "sk-1234": "sk-1234", - "Sougou Search API sID": "", - "Sougou Search API SK": "", + "Sougou Search API sID": "Sougou Search API sID", + "Sougou Search API SK": "Sougou Search API SK", "Source": "Foinse", "Speech Playback Speed": "Luas Athsheinm Urlabhra", "Speech recognition error: {{error}}": "Earráid aitheantais cainte: {{error}}", @@ -1053,7 +1101,7 @@ "System": "Córas", "System Instructions": "Treoracha Córas", "System Prompt": "Córas Leid", - "Tags": "", + "Tags": "Clibeanna", "Tags Generation": "Giniúint Clibeanna", "Tags Generation Prompt": "Clibeanna Giniúint Leid", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "Úsáidtear sampláil saor ó eireabaill chun tionchar na n-chomharthaí ón aschur nach bhfuil chomh dóchúil céanna a laghdú. Laghdóidh luach níos airde (m.sh., 2.0) an tionchar níos mó, agus díchumasaíonn luach 1.0 an socrú seo. (réamhshocraithe: 1)", @@ -1061,7 +1109,7 @@ "Tap to interrupt": "Tapáil chun cur isteach", "Tasks": "Tascanna", "Tavily API Key": "Eochair API Tavily", - "Tavily Extract Depth": "", + "Tavily Extract Depth": "Doimhneacht Sliocht Tavily", "Tell us more:": "Inis dúinn níos mó:", "Temperature": "Teocht", "Template": "Teimpléad", @@ -1072,7 +1120,7 @@ "Thanks for your feedback!": "Go raibh maith agat as do chuid aiseolas!", "The Application Account DN you bind with for search": "An Cuntas Feidhmchláir DN a nascann tú leis le haghaidh cuardaigh", "The base to search for users": "An bonn chun cuardach a dhéanamh ar úsáideoirí", - "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "", + "The 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.": "Cinneann méid an bhaisc cé mhéad iarratas téacs a phróiseáiltear le chéile ag an am céanna. Is féidir le méid baisc níos airde feidhmíocht agus luas an mhúnla a mhéadú, ach éilíonn sé níos mó cuimhne freisin.", "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Is deonacha paiseanta ón bpobal iad na forbróirí taobh thiar den bhreiseán seo. Má aimsíonn an breiseán seo cabhrach leat, smaoinigh ar rannchuidiú lena fhorbairt.", "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Tá an clár ceannairí meastóireachta bunaithe ar chóras rátála Elo agus déantar é a nuashonrú i bhfíor-am.", "The LDAP attribute that maps to the mail that users use to sign in.": "An tréith LDAP a mhapálann don ríomhphost a úsáideann úsáideoirí chun síniú isteach.", @@ -1081,16 +1129,16 @@ "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "Uasmhéid an chomhaid i MB. Má sháraíonn méid an chomhaid an teorainn seo, ní uaslódófar an comhad.", "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.": "An líon uasta na gcomhaid is féidir a úsáid ag an am céanna i gcomhrá. Má sháraíonn líon na gcomhaid an teorainn seo, ní uaslódófar na comhaid.", "The score should be a value between 0.0 (0%) and 1.0 (100%).": "Ba chóir go mbeadh an scór ina luach idir 0.0 (0%) agus 1.0 (100%).", - "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "", + "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "Teocht an mhúnla. Déanfaidh méadú ar an teocht an freagra múnla níos cruthaithí.", "Theme": "Téama", "Thinking...": "Ag smaoineamh...", "This action cannot be undone. Do you wish to continue?": "Ní féidir an gníomh seo a chur ar ais. Ar mhaith leat leanúint ar aghaidh?", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "", - "This chat won’t appear in history and your messages will not be saved.": "", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "Cruthaíodh an cainéal seo ar {{createdAt}}. Seo tús an chainéil {{channelName}}.", + "This chat won’t appear in history and your messages will not be saved.": "Ní bheidh an comhrá seo le feiceáil sa stair agus ní shábhálfar do theachtaireachtaí.", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cinntíonn sé seo go sábhálfar do chomhráite luachmhara go daingean i do bhunachar sonraí cúltaca Go raibh maith agat!", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "Is gné turgnamhach í seo, b'fhéidir nach bhfeidhmeoidh sé mar a bhíothas ag súil leis agus tá sé faoi réir athraithe ag am ar bith.", - "This 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 sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "", + "This option 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.": "Rialaíonn an rogha seo cé mhéad comhartha a chaomhnaítear agus an comhthéacs á athnuachan. Mar shampla, má shocraítear go 2 é, coinneofar an 2 chomhartha dheireanacha de chomhthéacs an chomhrá. Is féidir le comhthéacs a chaomhnú cabhrú le leanúnachas comhrá a choinneáil, ach d’fhéadfadh sé laghdú a dhéanamh ar an gcumas freagairt do thopaicí nua.", + "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.": "Socraíonn an rogha seo an t-uaslíon comharthaí is féidir leis an tsamhail a ghiniúint ina fhreagra. Tríd an teorainn seo a mhéadú is féidir leis an tsamhail freagraí níos faide a sholáthar, ach d’fhéadfadh go méadódh sé an dóchúlacht go nginfear ábhar neamhchabhrach nó nach mbaineann le hábhar.", "This option will delete all existing files in the collection and replace them with newly uploaded files.": "Scriosfaidh an rogha seo gach comhad atá sa bhailiúchán agus cuirfear comhaid nua-uaslódála ina n-ionad.", "This response was generated by \"{{model}}\"": "Gin an freagra seo ag \"{{model}}\"", "This will delete": "Scriosfaidh sé seo", @@ -1103,7 +1151,7 @@ "Thought for {{DURATION}} seconds": "Smaoineamh ar feadh {{DURATION}} soicind", "Tika": "Tika", "Tika Server URL required.": "Teastaíonn URL Freastalaí Tika.", - "Tiktoken": "Tictoken", + "Tiktoken": "Tiktoken", "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Leid: Nuashonraigh sliotáin iolracha athróg as a chéile trí bhrú ar an eochair cluaisín san ionchur comhrá tar éis gach athsholáthair.", "Title": "Teideal", "Title (e.g. Tell me a fun fact)": "Teideal (m.sh. inis dom fíric spraíúil)", @@ -1134,17 +1182,16 @@ "Tool ID": "ID Uirlis", "Tool imported successfully": "Uirlis iompórtáilte", "Tool Name": "Ainm Uirlis", - "Tool Servers": "", + "Tool Servers": "Freastalaithe Uirlisí", "Tool updated successfully": "An uirlis nuashonraithe", "Tools": "Uirlisí", "Tools Access": "Rochtain Uirlisí", "Tools are a function calling system with arbitrary code execution": "Is córas glaonna feidhme iad uirlisí le forghníomhú cód treallach", "Tools Function Calling Prompt": "Leid Glaonna Feidhm Uirlisí", - "Tools have a function calling system that allows arbitrary code execution": "Tá córas glaonna feidhme ag uirlisí a cheadaíonn forghníomhú cód treallach", "Tools have a function calling system that allows arbitrary code execution.": "Tá córas glaonna feidhme ag uirlisí a cheadaíonn forghníomhú cód treallach.", - "Tools Public Sharing": "", + "Tools Public Sharing": "Uirlisí Roinnte Poiblí", "Top K": "Barr K", - "Top K Reranker": "", + "Top K Reranker": "Barr K Reranker", "Top P": "Barr P", "Transformers": "Claochladáin", "Trouble accessing Ollama?": "Deacracht teacht ar Ollama?", @@ -1163,6 +1210,7 @@ "Unpin": "Díphoráil", "Unravel secrets": "Rúin a réiteach", "Untagged": "Gan chlib", + "Untitled": "", "Update": "Nuashonraigh", "Update and Copy Link": "Nuashonraigh agus Cóipeáil Nasc", "Update for the latest features and improvements.": "Nuashonrú le haghaidh na gnéithe agus na feabhsuithe is déanaí.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Uasghrádú go dtí plean ceadúnaithe le haghaidh cumais fheabhsaithe, lena n-áirítear téamaí saincheaptha agus brandáil, agus tacaíocht thiomanta.", "Upload": "Uaslódáil", "Upload a GGUF model": "Uaslódáil múnla GGUF", + "Upload Audio": "", "Upload directory": "Uaslódáil eolaire", "Upload files": "Uaslódáil comhaid", "Upload Files": "Uaslódáil Comhaid", @@ -1184,14 +1233,14 @@ "Use Gravatar": "Úsáid Gravatar", "Use groups to group your users and assign permissions.": "Úsáid grúpaí chun d'úsáideoirí a ghrúpáil agus ceadanna a shannadh", "Use Initials": "Úsáid ceannlitreacha", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", + "Use no proxy to fetch page contents.": "Ná húsáid seachfhreastalaí chun inneachar an leathanaigh a fháil.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Úsáid seachfhreastalaí ainmnithe ag athróga timpeallachta http_proxy agus https_proxy chun inneachar an leathanaigh a fháil.", "use_mlock (Ollama)": "use_mlock (Ollama)", "use_mmap (Ollama)": "use_mmap (Ollama)", "user": "úsáideoir", "User": "Úsáideoir", "User location successfully retrieved.": "Fuarthas suíomh an úsáideora go rathúil.", - "User Webhooks": "", + "User Webhooks": "Crúcaí Gréasáin Úsáideoir", "Username": "Ainm Úsáideora", "Users": "Úsáideoirí", "Using the default arena model with all models. Click the plus button to add custom models.": "Ag baint úsáide as an múnla réimse réamhshocraithe le gach múnlaí. Cliceáil ar an gcnaipe móide chun múnlaí saincheaptha a chur leis.", @@ -1202,12 +1251,12 @@ "Valves updated successfully": "Comhlaí nuashonraíodh", "variable": "athraitheach", "variable to have them replaced with clipboard content.": "athróg chun ábhar gearrthaisce a chur in ionad iad.", - "Verify Connection": "", - "Verify SSL Certificate": "", + "Verify Connection": "Fíoraigh Ceangal", + "Verify SSL Certificate": "Fíoraigh Deimhniú SSL", "Version": "Leagan", "Version {{selectedVersion}} of {{totalVersions}}": "Leagan {{selectedVersion}} de {{totalVersions}}", "View Replies": "Féach ar Fhreagraí", - "View Result from **{{NAME}}**": "", + "View Result from **{{NAME}}**": "Féach ar Thoradh ó **{{NAME}}**", "Visibility": "Infheictheacht", "Voice": "Guth", "Voice Input": "Ionchur Gutha", @@ -1218,7 +1267,7 @@ "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Rabhadh: Trí fhorghníomhú Jupyter is féidir cód a fhorghníomhú go treallach, rud a chruthaíonn mór-rioscaí slándála - bí fíorchúramach.", "Web": "Gréasán", "Web API": "API Gréasáin", - "Web Loader Engine": "", + "Web Loader Engine": "Inneall Luchtaithe Gréasáin", "Web Search": "Cuardach Gréasáin", "Web Search Engine": "Inneall Cuardaigh Gréasáin", "Web Search in Chat": "Cuardach Gréasáin i gComhrá", @@ -1226,7 +1275,7 @@ "Webhook URL": "URL Webhook", "WebUI Settings": "Socruithe WebUI", "WebUI URL": "URL WebUI", - "WebUI will make requests to \"{{url}}\"": "", + "WebUI will make requests to \"{{url}}\"": "Déanfaidh WebUI iarratais ar \"{{url}}\"", "WebUI will make requests to \"{{url}}/api/chat\"": "Déanfaidh WebUI iarratais ar \"{{url}}/api/chat\"", "WebUI will make requests to \"{{url}}/chat/completions\"": "Déanfaidh WebUI iarratais ar \"{{url}}/chat/completions\"", "What are you trying to achieve?": "Cad atá tú ag iarraidh a bhaint amach?", @@ -1238,7 +1287,7 @@ "Why?": "Cén fáth?", "Widescreen Mode": "Mód Leathanscáileán", "Won": "Bhuaigh", - "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.": "", + "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.": "Oibríonn sé le barr-k. Beidh téacs níos éagsúla mar thoradh ar luach níos airde (m.sh., 0.95), agus ginfidh luach níos ísle (m.sh., 0.5) téacs níos dírithe agus níos coimeádaí.", "Workspace": "Spás oibre", "Workspace Permissions": "Ceadanna Spás Oibre", "Write": "Scríobh", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Scríobh achoimre i 50 focal a dhéanann achoimre ar [ábhar nó eochairfhocal].", "Write something...": "Scríobh rud...", "Write your model template content here": "Scríobh do mhúnla ábhar teimpléad anseo", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Inné", "You": "Tú", - "You are currently using a trial license. Please contact support to upgrade your license.": "", + "You are currently using a trial license. Please contact support to upgrade your license.": "Tá ceadúnas trialach á úsáid agat faoi láthair. Déan teagmháil leis an bhfoireann tacaíochta chun do cheadúnas a uasghrádú.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Ní féidir leat comhrá a dhéanamh ach le comhad {{maxCount}} ar a mhéad ag an am.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Is féidir leat do chuid idirghníomhaíochtaí le LLManna a phearsantú ach cuimhní cinn a chur leis tríd an gcnaipe 'Bainistigh' thíos, rud a fhágann go mbeidh siad níos cabhrach agus níos oiriúnaí duit.", "You cannot upload an empty file.": "Ní féidir leat comhad folamh a uaslódáil.", - "You do not have permission to upload files": "Níl cead agat comhaid a uaslódáil", "You do not have permission to upload files.": "Níl cead agat comhaid a uaslódáil.", "You have no archived conversations.": "Níl aon chomhráite cartlainne agat.", "You have shared this chat": "Tá an comhrá seo roinnte agat", diff --git a/src/lib/i18n/locales/it-IT/translation.json b/src/lib/i18n/locales/it-IT/translation.json index 4e604d9b2..762062530 100644 --- a/src/lib/i18n/locales/it-IT/translation.json +++ b/src/lib/i18n/locales/it-IT/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(p.e. `sh webui.sh --api`)", "(latest)": "(ultima)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modelli }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Consenti l'eliminazione della chat", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "un assistente", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Sei sicuro?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Risposta non valida", "Banners": "Banner", "Base Model (From)": "Modello base (da)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "prima", "Being lazy": "Essere pigri", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Chiave API di ricerca Brave", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Annulla", "Capabilities": "Funzionalità", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Cambia password", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Crea nuova chiave", "Create new secret key": "Crea nuova chiave segreta", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Creato il", "Created At": "Creato il", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "elimina questo link", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "Scarica database", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Trascina qui i file da aggiungere alla conversazione", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ad esempio '30s','10m'. Le unità di tempo valide sono 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Modifica", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Abilita nuove iscrizioni", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assicurati che il tuo file CSV includa 4 colonne in questo ordine: Nome, Email, Password, Ruolo.", "Enter {{role}} message here": "Inserisci il messaggio per {{role}} qui", "Enter a detail about yourself for your LLMs to recall": "Inserisci un dettaglio su di te per che i LLM possano ricordare", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Inserisci la dimensione chunk", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Immettere l'URL grezzo di Github", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Inserisci il tag del modello (ad esempio {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Inserisci il numero di passaggi (ad esempio 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Inserisci URL (ad esempio http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Inserisci URL (ad esempio http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Inserisci la tua email", "Enter Your Full Name": "Inserisci il tuo nome completo", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Inserisci la tua password", "Enter Your Role": "Inserisci il tuo ruolo", @@ -480,6 +504,8 @@ "Error": "Errore", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Impossibile creare la chiave API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Impossibile leggere il contenuto degli appunti", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Trasmetti in modo fluido blocchi di risposta esterni di grandi dimensioni", "Focus chat input": "Metti a fuoco l'input della chat", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Ha seguito le istruzioni alla perfezione", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Generale", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "Generazione di query di ricerca", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "Importazione di modelli", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importa prompt", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "Interfaccia", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Tag non valido", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gestire le pipeline", "Manage Tool Servers": "", "March": "Marzo", + "Max Speakers": "", "Max Tokens (num_predict)": "Numero massimo di gettoni (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Risposta Unita", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "I messaggi inviati dopo la creazione del link non verranno condivisi. Gli utenti con l'URL saranno in grado di visualizzare la chat condivisa.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Altro", + "My Notes": "", "Name": "Nome", "Name your knowledge base": "", "Native": "", "New Chat": "Nuova chat", "New Folder": "", + "New Note": "", "New Password": "Nuova password", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Nessun risultato trovato", "No search query generated": "Nessuna query di ricerca generata", "No source available": "Nessuna fonte disponibile", @@ -782,6 +825,7 @@ "None": "Nessuno", "Not factually correct": "Non corretto dal punto di vista fattuale", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: se imposti un punteggio minimo, la ricerca restituirà solo i documenti con un punteggio maggiore o uguale al punteggio minimo.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Nella stringa di comando sono consentiti solo caratteri alfanumerici e trattini.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ops! Sembra che l'URL non sia valido. Si prega di ricontrollare e riprovare.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Condutture", "Pipelines Not Detected": "", "Pipelines Valves": "Valvole per tubazioni", + "Plain text (.md)": "", "Plain text (.txt)": "Testo normale (.txt)", "Playground": "Terreno di gioco", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Leggi ad alta voce", "Reasoning Effort": "", + "Record": "", "Record voice": "Registra voce", "Redirecting you to Open WebUI Community": "Reindirizzamento alla comunità OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Il salvataggio dei registri della chat direttamente nell'archivio del browser non è più supportato. Si prega di dedicare un momento per scaricare ed eliminare i registri della chat facendo clic sul pulsante in basso. Non preoccuparti, puoi facilmente reimportare i registri della chat nel backend tramite", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Cerca", "Search a model": "Cerca un modello", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "Vedi readme.md per le istruzioni", "See what's new": "Guarda le novità", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "Aggiorna e copia link", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "Carica un modello GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Carica file", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Scrivi un riassunto in 50 parole che riassume [argomento o parola chiave].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ieri", "You": "Tu", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Non hai conversazioni archiviate.", "You have shared this chat": "Hai condiviso questa chat", diff --git a/src/lib/i18n/locales/ja-JP/translation.json b/src/lib/i18n/locales/ja-JP/translation.json index 352e1f641..57e61d638 100644 --- a/src/lib/i18n/locales/ja-JP/translation.json +++ b/src/lib/i18n/locales/ja-JP/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(例: `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(例: `sh webui.sh --api`)", "(latest)": "(最新)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ モデル }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "チャットの削除を許可", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "ローカル以外のボイスを許可", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "アシスタント", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "よろしいですか?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "応答が悪い", "Banners": "バナー", "Base Model (From)": "ベースモデル (From)", + "Base URL": "", "Batch Size (num_batch)": "バッチサイズ (num_batch)", "before": "より前", "Being lazy": "怠惰な", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search APIキー", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "キャンセル", "Capabilities": "資格", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "パスワードを変更", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "ナレッジベース作成", "Create new key": "新しいキーを作成", "Create new secret key": "新しいシークレットキーを作成", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "作成日時", "Created At": "作成日時", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "Functionを削除しますか?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "プロンプトを削除しますか?", "delete this link": "このリンクを削除します", "Delete tool?": "ツールを削除しますか?", @@ -354,7 +365,7 @@ "Download Database": "データベースをダウンロード", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "会話を追加するには、ここにファイルをドロップしてください", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例: '30秒'、'10分'。有効な時間単位は '秒'、'分'、'時間' です。", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "編集", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "新規登録を有効にする", "Enabled": "有効", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSVファイルに4つの列が含まれていることを確認してください: Name, Email, Password, Role.", "Enter {{role}} message here": "{{role}} メッセージをここに入力してください", "Enter a detail about yourself for your LLMs to recall": "LLM が記憶するために、自分についての詳細を入力してください", @@ -409,11 +422,17 @@ "Enter Chunk Size": "チャンクサイズを入力してください", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Github Raw URLを入力", @@ -431,6 +450,7 @@ "Enter Model ID": "モデルIDを入力してください。", "Enter model tag (e.g. {{modelTag}})": "モデルタグを入力してください (例: {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "ステップ数を入力してください (例: 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "URL を入力してください (例: http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL を入力してください (例: http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "メールアドレスを入力してください", "Enter Your Full Name": "フルネームを入力してください", "Enter your message": "メッセージを入力してください", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "パスワードを入力してください", "Enter Your Role": "ロールを入力してください", @@ -480,6 +504,8 @@ "Error": "エラー", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "ツールのエクスポート", "External": "", "External Models": "外部モデル", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "APIキーの作成に失敗しました。", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "クリップボードの内容を読み取れませんでした", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "大規模な外部応答チャンクをスムーズにストリーミングする", "Focus chat input": "チャット入力をフォーカス", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "完全に指示に従った", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Functionのアップデートが成功しました。", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "Functionsのインポートが成功しました", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "一般", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "検索クエリの生成", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "グローバル", @@ -622,6 +654,7 @@ "Import Config from JSON File": "設定をJSONファイルからインポート", "Import Functions": "Functionのインポート", "Import Models": "モデルのインポート", + "Import Notes": "", "Import Presets": "", "Import Prompts": "プロンプトをインポート", "Import Tools": "ツールのインポート", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "インターフェース", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "無効なタグ", @@ -706,6 +740,7 @@ "Manage Pipelines": "パイプラインの管理", "Manage Tool Servers": "", "March": "3月", + "Max Speakers": "", "Max Tokens (num_predict)": "最大トークン数 (num_predict)", "Max Upload Count": "最大アップロード数", "Max Upload Size": "最大アップロードサイズ", @@ -718,8 +753,12 @@ "Memory deleted successfully": "メモリを削除しました。", "Memory updated successfully": "メモリアップデート成功", "Merge Responses": "", + "Merged Response": "統合された応答", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "リンクを作成した後、送信したメッセージは共有されません。URL を持つユーザーは共有チャットを閲覧できます。", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "ミロスタット", "Mirostat Eta": "ミロスタット Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "もっと見る", + "My Notes": "", "Name": "名前", "Name your knowledge base": "", "Native": "", "New Chat": "新しいチャット", "New Folder": "", + "New Note": "", "New Password": "新しいパスワード", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "結果が見つかりません", "No search query generated": "検索クエリは生成されません", "No source available": "使用可能なソースがありません", @@ -782,6 +825,7 @@ "None": "何一つ", "Not factually correct": "実事上正しくない", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "注意:最小スコアを設定した場合、検索は最小スコア以上のスコアを持つドキュメントのみを返します。", "Notes": "", "Notification Sound": "通知音", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "コマンド文字列には英数字とハイフンのみが許可されています。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "おっと! URL が無効なようです。もう一度確認してやり直してください。", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "パイプライン", "Pipelines Not Detected": "パイプラインは検出されませんでした", "Pipelines Valves": "パイプラインバルブ", + "Plain text (.md)": "", "Plain text (.txt)": "プレーンテキスト (.txt)", "Playground": "プレイグラウンド", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "読み上げ", "Reasoning Effort": "", + "Record": "", "Record voice": "音声を録音", "Redirecting you to Open WebUI Community": "OpenWebUI コミュニティにリダイレクトしています", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "チャットログをブラウザのストレージに直接保存する機能はサポートされなくなりました。下のボタンをクリックして、チャットログをダウンロードして削除してください。ご心配なく。チャットログは、次の方法でバックエンドに簡単に再インポートできます。", - "Scroll to bottom when switching between branches": "ブランチの切り替え時にボタンをスクロールする", + "Scroll On Branch Change": "", "Search": "検索", "Search a model": "モデルを検索", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng クエリ URL", "See readme.md for instructions": "手順については readme.md を参照してください", "See what's new": "新機能を見る", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "トップ K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "リンクの更新とコピー", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "アップロード", "Upload a GGUF model": "GGUF モデルをアップロード", + "Upload Audio": "", "Upload directory": "アップロードディレクトリ", "Upload files": "アップロードファイル", "Upload Files": "ファイルのアップロード", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "[トピックまたはキーワード] を要約する 50 語の概要を書いてください。", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "昨日", "You": "あなた", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "これまでにアーカイブされた会話はありません。", "You have shared this chat": "このチャットを共有しました", diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json index 8cbe928ee..fa40e819a 100644 --- a/src/lib/i18n/locales/ka-GE/translation.json +++ b/src/lib/i18n/locales/ka-GE/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(მაგ: `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(მაგ: `sh webui.sh --api`)", "(latest)": "(უახლესი)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ მოდელები }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "ჩატის წაშლის დაშვება", "Allow Chat Deletion": "ჩატის წაშლის დაშვება", "Allow Chat Edit": "ჩატის ჩასწორების დაშვება", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "ფაილის ატვირთვის დაშვება", "Allow Multiple Models in Chat": "", "Allow non-local voices": "არალოკალური ხმების დაშვება", @@ -76,6 +79,7 @@ "Always": "ყოველთვის", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "გადასარევია", "an assistant": "დამხმარე", "Analyzed": "გაანაზლიებულია", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "დარწმუნებული ბრძანდებით?", "Arena Models": "არენის მოდელები", "Artifacts": "არტეფაქტები", @@ -135,6 +140,7 @@ "Bad Response": "არასწორი პასუხი", "Banners": "ბანერები", "Base Model (From)": "საბაზისო მოდელი (საიდან)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "მითითებულ დრომდე", "Being lazy": "ზარმაცობა", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API-ის გასაღები", "By {{name}}": "ავტორი {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "გაუქმება", "Capabilities": "შესაძლებლობები", "Capture": "ჩაჭერა", + "Capture Audio": "", "Certificate Path": "სერტიფიკატის ბილიკი", "Change Password": "პაროლის შეცვლა", "Channel Name": "არხის სახელი", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "ახალი გასაღების შექმნა", "Create new secret key": "ახალი საიდუმლო გასაღების შექმნა", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "შექმნის დრო", "Created At": "შექმნის დრო", "Created by": "ავტორი", @@ -299,6 +309,7 @@ "Delete function?": "წავშალო ფუნქცია?", "Delete Message": "შეტყობინების წაშლა", "Delete message?": "წავშალო შეტყობინება?", + "Delete note?": "", "Delete prompt?": "წავშალო მოთხოვნის ზოლი?", "delete this link": "ამ ბმული წაშლა", "Delete tool?": "წავშალო ხელსაწყო?", @@ -354,7 +365,7 @@ "Download Database": "მონაცემთა ბაზის გადმოწერა", "Drag and drop a file to upload or select a file to view": "", "Draw": "ხატვა", - "Drop any files here to add to the conversation": "დაყარეთ ფაილები აქ მათი საუბარში ჩასამატებლად", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგ: '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "მაგ: 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "მაგ: ჩემი_ფილტრი", "e.g. my_tools": "მაგ: ჩემი_ხელსაწყოები", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "ჩასწორება", "Edit Arena Model": "არენის მოდელის ჩასწორება", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "ახალი რეგისტრაციების ჩართვა", "Enabled": "ჩართულია", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "დარწმუნდით, რომ თქვენი CSV-ფაილი შეიცავს 4 ველს ამ მიმდევრობით: სახელი, ელფოსტა, პაროლი, როლი.", "Enter {{role}} message here": "შეიყვანე {{role}} შეტყობინება აქ", "Enter a detail about yourself for your LLMs to recall": "შეიყვანეთ რამე თქვენს შესახებ, რომ თქვენმა LLM-მა გაიხსენოს", @@ -409,11 +422,17 @@ "Enter Chunk Size": "შეიყვანე ფრაგმენტის ზომა", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "შეიყვანეთ აღწერა", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "შეიყვანეთ Github Raw URL", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "შეიყვანეთ მოდელის ჭდე (მაგ: {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "შეიყვანეთ ნაბიჯების რაოდენობა (მაგ. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ ბმული (მაგ: http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "შეიყვანეთ ბმული (მაგ: http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "შეიყვანეთ თქვენი მიმდინარე პაროლი", "Enter Your Email": "შეიყვანეთ თქვენი ელფოსტა", "Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "შეიყვანეთ თქვენი ახალი პაროლი", "Enter Your Password": "შეიყვანეთ თქვენი პაროლი", "Enter Your Role": "შეიყვანეთ თქვენი როლი", @@ -480,6 +504,8 @@ "Error": "შეცდომა", "ERROR": "ERROR", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "ფაილის დამატების შეცდომა.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API-ის გასაღების შექმნა ჩავარდა.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "ბუფერის შემცველობის წაკითხვა ჩავარდა", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "დიდი გარე პასუხის ფრაგმენტების გლუვად დასტრიმვა", "Focus chat input": "ჩატში შეყვანის ფოკუსი", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "ინსტრუქციების ზუსტად მიჰყევით", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "ფუნქციები", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "მარჩბივი", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "ზოგადი", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "ძებნის მოთხოვნის გენერაცია", + "Generating...": "", "Get started": "დაიწყეთ", "Get started with {{WEBUI_NAME}}": "", "Global": "გლობალური", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "მოდელების შემოტანა", + "Import Notes": "", "Import Presets": "პრესეტების შემოტანა", "Import Prompts": "მოთხოვნების შემოტანა", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "ინტერფეისი", + "Invalid file content": "", "Invalid file format.": "არასწორი ფაილის ფორმატი.", "Invalid JSON schema": "", "Invalid Tag": "არასწორი ჭდე", @@ -706,6 +740,7 @@ "Manage Pipelines": "მილსადენების მართვა", "Manage Tool Servers": "", "March": "მარტი", + "Max Speakers": "", "Max Tokens (num_predict)": "მაქს. ტოკეტები (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "პასუხების შერწყმა", + "Merged Response": "შერწყმული პასუხი", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "შეტყობინებები, რომელსაც თქვენ აგზავნით თქვენი ბმულის შექმნის შემდეგ, არ იქნება გაზიარებული. URL– ის მქონე მომხმარებლებს შეეძლებათ ნახონ საერთო ჩატი.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "მეტი", "More": "მეტი", + "My Notes": "", "Name": "სახელი", "Name your knowledge base": "", "Native": "საკუთარი", "New Chat": "ახალი მიმოწერა", "New Folder": "ახალი საქაღალდე", + "New Note": "", "New Password": "ახალი პაროლი", "new-channel": "new-channel", + "No content": "", "No content found": "შემცველობა აღმოჩენილი არაა", + "No content found in file.": "", "No content to speak": "წარმოსათქმელი შემცველობის გარეშე", "No distance available": "მანძილი ხელმისაწვდომი არაა", "No feedbacks found": "", "No file selected": "ფაილი არჩეული არაა", - "No files found.": "ფაილები ვერ მოიძებნა.", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "მოდელის ID-ების გარეშე", "No models found": "მოდელები აღმოჩენილი არაა", "No models selected": "მოდელები არჩეული არაა", + "No Notes": "", "No results found": "შედეგების გარეშე", "No search query generated": "ძებნის მოთხოვნა არ შექმნილა", "No source available": "წყარო ხელმისაწვდომი არაა", @@ -782,6 +825,7 @@ "None": "არცერთი", "Not factually correct": "მთლად სწორი არაა", "Not helpful": "სასარგებლო არაა", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "შენიშვნა: თუ თქვენ დააყენებთ მინიმალურ ქულას, ძებნა დააბრუნებს მხოლოდ დოკუმენტებს მინიმალური ქულის მეტი ან ტოლი ქულით.", "Notes": "შენიშვნები", "Notification Sound": "გაფრთხილების ხმა", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "ბრძანების სტრიქონში დაშვებულია, მხოლოდ, ალფარიცხვითი სიმბოლოები და ტირეები.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "უი! როგორც ჩანს, მისამართი არასწორია. გთხოვთ, გადაამოწმოთ და ისევ სცადოთ.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "მილსადენები", "Pipelines Not Detected": "", "Pipelines Valves": "მილსადენის სარქველები", + "Plain text (.md)": "", "Plain text (.txt)": "უბრალო ტექსტი (.txt)", "Playground": "საცდელი ფუნქციები", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "წაკითხვა", "Read Aloud": "ხმამაღლა წაკითხვა", "Reasoning Effort": "", + "Record": "", "Record voice": "ხმის ჩაწერა", "Redirecting you to Open WebUI Community": "მიმდინარეობს გადამისამართება OpenWebUI-ის საზოგადოების საიტზე", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "ჭდის შენახვა", "Saved": "შენახულია", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "ჩეთის ისტორიის შენახვა პირდაპირ თქვენი ბრაუზერის საცავში აღარ არის მხარდაჭერილი. გთხოვთ, დაუთმოთ და წაშალოთ თქვენი ჩატის ჟურნალები ქვემოთ მოცემულ ღილაკზე დაწკაპუნებით. არ ინერვიულოთ, თქვენ შეგიძლიათ მარტივად ხელახლა შემოიტანოთ თქვენი ჩეთის ისტორია ბექენდში", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "ძებნა", "Search a model": "მოდელის ძებნა", "Search Base": "ბაზის ძებნა", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "მოძებნილია {{count}} საიტზე", "Searching \"{{searchQuery}}\"": "მიმდინარეობს ძებნა \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "ინსტრუქციებისთვის იხილეთ readme.md", "See what's new": "ნახეთ, რა არის ახალი", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "ტოპ K", @@ -1163,6 +1210,7 @@ "Unpin": "ჩამოხსნა", "Unravel secrets": "", "Untagged": "ჭდის გარეშე", + "Untitled": "", "Update": "განახლება", "Update and Copy Link": "განახლება და ბმულის კოპირება", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "ატვირთვა", "Upload a GGUF model": "GGUF მოდელის ატვირთვა", + "Upload Audio": "", "Upload directory": "ატვირთვის დირექტორია", "Upload files": "ფაილების ატვირთვა", "Upload Files": "ფაილების ატვირთვა", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "გუშინ", "You": "თქვენ", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "დაარქივებული საუბრები არ გაქვთ.", "You have shared this chat": "თქვენ გააზიარეთ ეს ჩატი", diff --git a/src/lib/i18n/locales/ko-KR/translation.json b/src/lib/i18n/locales/ko-KR/translation.json index e2ee9a61e..9f1809a15 100644 --- a/src/lib/i18n/locales/ko-KR/translation.json +++ b/src/lib/i18n/locales/ko-KR/translation.json @@ -1,14 +1,15 @@ { - "-1 for no limit, or a positive integer for a specific limit": "", + "-1 for no limit, or a positive integer for a specific limit": "-1은 제한 없음을 의미하며, 양의 정수는 특정 제한을 나타냅니다", "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "만료 없음은 's', 'm', 'h', 'd', 'w' 아니면 '-1' 중 하나를 사용하세요.", "(e.g. `sh webui.sh --api --api-auth username_password`)": "(예: `sh webui.sh --api --api-auth 사용자이름_비밀번호`)", "(e.g. `sh webui.sh --api`)": "(예: `sh webui.sh --api`)", "(latest)": "(최근)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", - "{{COUNT}} Available Tools": "", - "{{COUNT}} hidden lines": "", - "{{COUNT}} Replies": "", + "{{COUNT}} Available Tools": "사용 가능한 도구 {{COUNT}}개", + "{{COUNT}} hidden lines": "숨겨진 줄 {{COUNT}}개", + "{{COUNT}} Replies": "답글 {{COUNT}}개", "{{user}}'s Chats": "{{user}}의 채팅", "{{webUIName}} Backend Required": "{{webUIName}} 백엔드가 필요합니다.", "*Prompt node ID(s) are required for image generation": "사진 생성을 위해 프롬프트 노드 ID가 필요합니다", @@ -16,7 +17,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "작업 모델은 채팅 및 웹 검색 쿼리에 대한 제목 생성 등의 작업 수행 시 사용됩니다.", "a user": "사용자", "About": "정보", - "Accept autocomplete generation / Jump to prompt variable": "", + "Accept autocomplete generation / Jump to prompt variable": "자동 완성 생성 수락 / 프롬프트 변수로 이동", "Access": "접근", "Access Control": "접근 제어", "Accessible to all users": "모든 사용자가 접근 가능", @@ -46,7 +47,7 @@ "Add text content": "글 추가", "Add User": "사용자 추가", "Add User Group": "사용자 그룹 추가", - "Adjusting these settings will apply changes universally to all users.": "위와 같이 설정시 모든 사용자에게 적용됩니다.", + "Adjusting these settings will apply changes universally to all users.": "이 설정을 조정하면 모든 사용자에게 변경 사항이 일괄 적용됩니다.", "admin": "관리자", "Admin": "관리자", "Admin Panel": "관리자 패널", @@ -62,24 +63,27 @@ "Allow Chat Delete": "채팅 삭제 허용", "Allow Chat Deletion": "채팅 삭제 허용", "Allow Chat Edit": "채팅 수정 허용", + "Allow Chat Export": "채팅 내보내기 허용", + "Allow Chat Share": "채팅 공유 허용", "Allow File Upload": "파일 업로드 허용", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "채팅에서 여러 모델 허용", "Allow non-local voices": "외부 음성 허용", - "Allow Speech to Text": "", + "Allow Speech to Text": "음성 텍스트 변환 허용", "Allow Temporary Chat": "임시 채팅 허용", - "Allow Text to Speech": "", + "Allow Text to Speech": "텍스트 음성 변환 허용", "Allow User Location": "사용자 위치 활용 허용", "Allow Voice Interruption in Call": "음성 기능에서 음성 방해 허용", - "Allowed Endpoints": "", + "Allowed Endpoints": "허용 엔드포인트", "Already have an account?": "이미 계정이 있으신가요?", - "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "", - "Always": "", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", + "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "top_p의 대안으로, 품질과 다양성 간의 균형을 보장하는 것을 목표로 합니다. 매개변수 p는 가장 가능성이 높은 토큰의 확률 대비 고려될 토큰의 최소 확률을 나타냅니다. 예를 들어, p=0.05이고 가장 가능성이 높은 토큰의 확률이 0.9인 경우, 값이 0.045보다 작은 로짓은 필터링됩니다.", + "Always": "항상", + "Always Collapse Code Blocks": "항상 코드 블록 접기", + "Always Expand Details": "항상 세부 정보 펼치기", + "Always Play Notification Sound": "항상 알림 소리 재생", "Amazing": "놀라움", "an assistant": "어시스턴트", - "Analyzed": "", - "Analyzing...": "", + "Analyzed": "분석됨", + "Analyzing...": "분석 중...", "and": "그리고", "and {{COUNT}} more": "그리고 {{COUNT}} 더", "and create a new shared link.": "새로운 공유 링크를 생성합니다.", @@ -96,27 +100,28 @@ "Archive": "보관", "Archive All Chats": "모든 채팅 보관", "Archived Chats": "보관된 채팅", - "archived-chat-export": "", - "Are you sure you want to clear all memories? This action cannot be undone.": "", + "archived-chat-export": "보관된 채팅 내보내기", + "Are you sure you want to clear all memories? This action cannot be undone.": "정말 모든 메모리를 지우시겠습니까? 이 작업은 되돌릴 수 없습니다.", "Are you sure you want to delete this channel?": "정말 이 채널을 삭제하시겠습니까?", "Are you sure you want to delete this message?": "정말 이 메세지를 삭제하시겠습니까?", "Are you sure you want to unarchive all archived chats?": "정말 보관된 모든 채팅을 보관 해제하시겠습니까?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "확실합니까?", "Arena Models": "아레나 모델", "Artifacts": "아티팩트", "Ask": "", "Ask a question": "질문하기", "Assistant": "어시스턴트", - "Attach file from knowledge": "", + "Attach file from knowledge": "지식 베이스에서 파일 첨부", "Attention to detail": "세부 사항에 대한 주의", - "Attribute for Mail": "", - "Attribute for Username": "", + "Attribute for Mail": "메일 속성", + "Attribute for Username": "사용자 이름 속성", "Audio": "오디오", "August": "8월", - "Auth": "", - "Authenticate": "", - "Authentication": "", - "Auto": "", + "Auth": "인증", + "Authenticate": "인증하다", + "Authentication": "인증", + "Auto": "자동", "Auto-Copy Response to Clipboard": "응답을 클립보드에 자동 복사", "Auto-playback response": "응답 자동 재생", "Autocomplete Generation": "자동완성 생성", @@ -126,40 +131,43 @@ "AUTOMATIC1111 Base URL": "AUTOMATIC1111 기본 URL", "AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 기본 URL 설정이 필요합니다.", "Available list": "가능한 목록", - "Available Tools": "", + "Available Tools": "사용 가능한 도구", "available!": "사용 가능!", - "Awful": "끔찍함", + "Awful": "형편없음", "Azure AI Speech": "Azure AI 음성", "Azure Region": "Azure 지역", "Back": "뒤로가기", "Bad Response": "잘못된 응답", "Banners": "배너", "Base Model (From)": "기본 모델(시작)", + "Base URL": "", "Batch Size (num_batch)": "배치 크기 (num_batch)", "before": "이전", "Being lazy": "게으름 피우기", - "Beta": "", + "Beta": "베타", "Bing Search V7 Endpoint": "Bing Search V7 엔드포인트", "Bing Search V7 Subscription Key": "Bing Search V7 구독 키", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API 키", - "By {{name}}": "", - "Bypass Embedding and Retrieval": "", - "Calendar": "", + "By {{name}}": "작성자: {{name}}", + "Bypass Embedding and Retrieval": "임베딩 검색 우회", + "Calendar": "캘린더", "Call": "음성 기능", "Call feature is not supported when using Web STT engine": "웹 STT 엔진 사용 시, 음성 기능은 지원되지 않습니다.", "Camera": "카메라", "Cancel": "취소", "Capabilities": "기능", - "Capture": "", - "Certificate Path": "", + "Capture": "캡처", + "Capture Audio": "", + "Certificate Path": "인증서 경로", "Change Password": "비밀번호 변경", - "Channel Name": "", + "Channel Name": "채널 이름", "Channels": "채널", "Character": "캐릭터", - "Character limit for autocomplete generation input": "", - "Chart new frontiers": "", + "Character limit for autocomplete generation input": "자동 완성 생성 입력 문자 제한", + "Chart new frontiers": "새로운 영역 개척", "Chat": "채팅", "Chat Background Image": "채팅 배경 이미지", "Chat Bubble UI": "버블형 채팅 UI", @@ -178,14 +186,14 @@ "Ciphers": "", "Citation": "인용", "Clear memory": "메모리 초기화", - "Clear Memory": "", - "click here": "", - "Click here for filter guides.": "", + "Clear Memory": "메모리 지우기", + "click here": "여기를 클릭하세요", + "Click here for filter guides.": "필터 가이드를 보려면 여기를 클릭하세요.", "Click here for help.": "도움말을 보려면 여기를 클릭하세요.", "Click here to": "여기를 클릭하면", "Click here to download user import template file.": "사용자 삽입 템플렛 파일을 다운받으려면 여기를 클릭하세요", "Click here to learn more about faster-whisper and see the available models.": "빠른 속삭임에 대해 배우거나 가능한 모델을 보려면 여기를 클릭하세요", - "Click here to see available models.": "", + "Click here to see available models.": "사용 가능한 모델을 보려면 여기를 클릭하세요.", "Click here to select": "선택하려면 여기를 클릭하세요.", "Click here to select a csv file.": "csv 파일을 선택하려면 여기를 클릭하세요.", "Click here to select a py file.": "py 파일을 선택하려면 여기를 클릭하세요.", @@ -194,22 +202,22 @@ "Click on the user role button to change a user's role.": "사용자 역할 버튼을 클릭하여 사용자의 역할을 변경하세요.", "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "클립보드 사용 권한이 거절되었습니다. 필요한 접근을 사용하기 위해 브라우져 설정을 확인 부탁드립니다.", "Clone": "복제", - "Clone Chat": "", - "Clone of {{TITLE}}": "", + "Clone Chat": "채팅 복제", + "Clone of {{TITLE}}": "{{TITLE}}의 복제본", "Close": "닫기", "Code execution": "코드 실행", - "Code Execution": "", - "Code Execution Engine": "", - "Code Execution Timeout": "", + "Code Execution": "코드 실행", + "Code Execution Engine": "코드 실행 엔진", + "Code Execution Timeout": "코드 실행 시간 초과", "Code formatted successfully": "성공적으로 코드가 생성되었습니다", - "Code Interpreter": "", - "Code Interpreter Engine": "", - "Code Interpreter Prompt Template": "", - "Collapse": "", + "Code Interpreter": "코드 인터프리터", + "Code Interpreter Engine": "코드 인터프리터 엔진", + "Code Interpreter Prompt Template": "코드 인터프리터 프롬프트 템플릿", + "Collapse": "접기", "Collection": "컬렉션", - "Color": "", + "Color": "색상", "ComfyUI": "ComfyUI", - "ComfyUI API Key": "", + "ComfyUI API Key": "ComfyUI API 키", "ComfyUI Base URL": "ComfyUI 기본 URL", "ComfyUI Base URL is required.": "ComfyUI 기본 URL이 필요합니다.", "ComfyUI Workflow": "ComfyUI 워크플로", @@ -217,41 +225,41 @@ "Command": "명령", "Completions": "완성됨", "Concurrent Requests": "동시 요청 수", - "Configure": "", + "Configure": "구성", "Confirm": "확인", "Confirm Password": "비밀번호 확인", "Confirm your action": "액션 확인", "Confirm your new password": "새로운 비밀번호를 한 번 더 입력해 주세요", - "Connect to your own OpenAI compatible API endpoints.": "", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", + "Connect to your own OpenAI compatible API endpoints.": "OpenAI 호환 API 엔드포인트에 연결합니다.", + "Connect to your own OpenAPI compatible external tool servers.": "OpenAPI 호환 외부 도구 서버에 연결합니다.", + "Connection failed": "연결 실패", + "Connection successful": "연결 성공", "Connections": "연결", - "Connections saved successfully": "", - "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", + "Connections saved successfully": "연결이 성공적으로 저장되었습니다", + "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "추론 모델의 추론 난이도를 제한합니다. 추론 난이도를 지원하는 특정 공급자의 추론 모델에만 적용됩니다.", "Contact Admin for WebUI Access": "WebUI 접속을 위해서는 관리자에게 연락에 연락하십시오", "Content": "내용", - "Content Extraction Engine": "", + "Content Extraction Engine": "콘텐츠 추출 엔진", "Context Length": "내용 길이", "Continue Response": "대화 계속", "Continue with {{provider}}": "{{provider}}로 계속", "Continue with Email": "", "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.": "TTS 요청에 메시지가 어떻게 나뉘어지는지 제어하십시오. '문장 부호'는 문장으로 나뉘고, '문단'은 문단으로 나뉘고, '없음'은 메세지를 하나의 문자열로 인식합니다.", - "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "", + "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "생성된 텍스트에서 토큰 시퀀스의 반복을 제어합니다. 높은 값(예: 1.5)은 반복에 더 강한 페널티를 부과하고, 낮은 값(예: 1.1)은 더 관대합니다. 1일 경우 비활성화됩니다.", "Controls": "제어", - "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "", + "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "출력의 일관성과 다양성 간의 균형을 제어합니다. 낮은 값은 더 집중되고 일관성 있는 텍스트를 생성합니다.", "Copied": "복사됨", "Copied shared chat URL to clipboard!": "채팅 공유 URL이 클립보드에 복사되었습니다!", "Copied to clipboard": "클립보드에 복사되었습니다", "Copy": "복사", - "Copy Formatted Text": "", + "Copy Formatted Text": "서식 있는 텍스트 복사", "Copy last code block": "마지막 코드 블록 복사", "Copy last response": "마지막 응답 복사", "Copy Link": "링크 복사", "Copy to clipboard": "클립보드에 복사", "Copying to clipboard was successful!": "성공적으로 클립보드에 복사되었습니다!", - "CORS must be properly configured by the provider to allow requests from Open WebUI.": "", + "CORS must be properly configured by the provider to allow requests from Open WebUI.": "Open WebUI의 요청을 허용하려면 공급자가 CORS를 올바르게 구성해야 합니다.", "Create": "생성", "Create a knowledge base": "지식 기반 생성", "Create a model": "모델 생성", @@ -262,15 +270,17 @@ "Create Knowledge": "지식 생성", "Create new key": "새로운 키 생성", "Create new secret key": "새로운 비밀 키 생성", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "생성일", "Created At": "생성일", "Created by": "생성자", "CSV Import": "CSV 가져오기", - "Ctrl+Enter to Send": "", + "Ctrl+Enter to Send": "Ctrl+Enter로 보내기", "Current Model": "현재 모델", "Current Password": "현재 비밀번호", "Custom": "사용자 정의", - "Danger Zone": "", + "Danger Zone": "위험 기능", "Dark": "다크", "Database": "데이터베이스", "December": "12월", @@ -285,8 +295,8 @@ "Default permissions updated successfully": "성공적으로 기본 권한이 수정되었습니다", "Default Prompt Suggestions": "기본 프롬프트 제안", "Default to 389 or 636 if TLS is enabled": "", - "Default to ALL": "", - "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "", + "Default to ALL": "기본값: 모두", + "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "집중적이고 관련성 있는 콘텐츠 추출을 위해 세분화된 검색을 기본값으로 사용합니다. 대부분의 경우 권장됩니다.", "Default User Role": "기본 사용자 역할", "Delete": "삭제", "Delete a model": "모델 삭제", @@ -297,8 +307,9 @@ "Delete chat?": "채팅을 삭제하겠습니까?", "Delete folder?": "폴더를 삭제하시겠습니까?", "Delete function?": "함수를 삭제하시겠습니까?", - "Delete Message": "", - "Delete message?": "", + "Delete Message": "메시지 삭제", + "Delete message?": "메시지를 삭제하시겠습니까?", + "Delete note?": "", "Delete prompt?": "프롬프트를 삭제하시겠습니까?", "delete this link": "이 링크를 삭제합니다.", "Delete tool?": "도구를 삭제하시겠습니까?", @@ -308,20 +319,20 @@ "Deleted User": "삭제된 사용자", "Describe your knowledge base and objectives": "지식 기반에 대한 설명과 목적을 입력하세요", "Description": "설명", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "아티팩트 자동 감지", "Didn't fully follow instructions": "완전히 지침을 따르지 않음", "Direct": "", - "Direct Connections": "", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", - "Direct Connections settings updated": "", + "Direct Connections": "직접 연결", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "직접 연결을 통해 사용자는 자체 OpenAI 호환 API 엔드포인트에 연결할 수 있습니다.", + "Direct Connections settings updated": "직접 연결 설정이 업데이트되었습니다", "Direct Tool Servers": "", "Disabled": "제한됨", "Discover a function": "함수 검색", "Discover a model": "모델 검색", "Discover a prompt": "프롬프트 검색", "Discover a tool": "도구 검색", - "Discover how to use Open WebUI and seek support from the community.": "", - "Discover wonders": "", + "Discover how to use Open WebUI and seek support from the community.": "Open WebUI 사용 방법을 알아보고 커뮤니티에서 지원을 받으세요.", + "Discover wonders": "놀라움을 체험하세요", "Discover, download, and explore custom functions": "사용자 정의 함수 검색, 다운로드 및 탐색", "Discover, download, and explore custom prompts": "사용자 정의 프롬프트 검색, 다운로드 및 탐색", "Discover, download, and explore custom tools": "사용자 정의 도구 검색, 다운로드 및 탐색", @@ -330,148 +341,161 @@ "Display": "", "Display Emoji in Call": "음성기능에서 이모지 표시", "Display the username instead of You in the Chat": "채팅에서 '당신' 대신 사용자 이름 표시", - "Displays citations in the response": "", - "Dive into knowledge": "", + "Displays citations in the response": "응답에 인용 표시", + "Dive into knowledge": "지식 탐구", "Do not install functions from sources you do not fully trust.": "불분명한 출처를 가진 함수를 설치하지마세요", "Do not install tools from sources you do not fully trust.": "불분명한 출처를 가진 도구를 설치하지마세요", "Docling": "", - "Docling Server URL required.": "", + "Docling Server URL required.": "Docling 서버 URL이 필요합니다.", "Document": "문서", "Document Intelligence": "", - "Document Intelligence endpoint and key required.": "", + "Document Intelligence endpoint and key required.": "Document Intelligence 엔드포인트 및 키가 필요합니다.", "Documentation": "문서 조사", "Documents": "문서", "does not make any external connections, and your data stays securely on your locally hosted server.": "외부와 어떠한 연결도 하지 않으며, 데이터는 로컬에서 호스팅되는 서버에 안전하게 유지됩니다.", - "Domain Filter List": "", + "Domain Filter List": "도메인 필터 목록", "Don't have an account?": "계정이 없으신가요?", "don't install random functions from sources you don't trust.": "불분명한 출처를 가진 임의의 함수를 설치하지마세요", "don't install random tools from sources you don't trust.": "불분명한 출처를 가진 임의의 도구를 설치하지마세요", "Don't like the style": "스타일이 마음에 안 드시나요?", "Done": "완료됨", "Download": "다운로드", - "Download as SVG": "", + "Download as SVG": "SVG로 다운로드", "Download canceled": "다운로드 취소", "Download Database": "데이터베이스 다운로드", - "Drag and drop a file to upload or select a file to view": "", + "Drag and drop a file to upload or select a file to view": "파일을 끌어다 놓아 업로드하거나 파일을 선택하여 보기", "Draw": "그리기", - "Drop any files here to add to the conversation": "대화에 추가할 파일을 여기에 드롭하세요.", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "예: '30초','10분'. 유효한 시간 단위는 '초', '분', '시'입니다.", - "e.g. \"json\" or a JSON schema": "", - "e.g. 60": "", - "e.g. A filter to remove profanity from text": "", - "e.g. My Filter": "", - "e.g. My Tools": "", - "e.g. my_filter": "", - "e.g. my_tools": "", - "e.g. Tools for performing various operations": "", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g. \"json\" or a JSON schema": "예: \\\"json\\\" 또는 JSON 스키마", + "e.g. 60": "예: 60", + "e.g. A filter to remove profanity from text": "예: 텍스트에서 비속어를 제거하는 필터", + "e.g. My Filter": "예: 내 필터", + "e.g. My Tools": "예: 내 도구", + "e.g. my_filter": "예: my_filter", + "e.g. my_tools": "예: my_tools", + "e.g. Tools for performing various operations": "예: 다양한 작업을 수행하는 도구", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "예: en-US, ja-JP (자동 감지를 위해 비워 두세요)", "Edit": "편집", "Edit Arena Model": "아레나 모델 편집", - "Edit Channel": "", - "Edit Connection": "", - "Edit Default Permissions": "", + "Edit Channel": "채널 편집", + "Edit Connection": "연결 편집", + "Edit Default Permissions": "기본 권한 편집", "Edit Memory": "메모리 편집", "Edit User": "사용자 편집", - "Edit User Group": "", + "Edit User Group": "사용자 그룹 편집", "ElevenLabs": "ElevenLabs", "Email": "이메일", "Embark on adventures": "", - "Embedding": "", + "Embedding": "임베딩", "Embedding Batch Size": "임베딩 배치 크기", "Embedding Model": "임베딩 모델", "Embedding Model Engine": "임베딩 모델 엔진", "Embedding model set to \"{{embedding_model}}\"": "임베딩 모델을 \"{{embedding_model}}\"로 설정함", "Enable API Key": "API 키 활성화", - "Enable autocomplete generation for chat messages": "", - "Enable Code Execution": "", - "Enable Code Interpreter": "", + "Enable autocomplete generation for chat messages": "채팅 메시지에 대한 자동 완성 생성 활성화", + "Enable Code Execution": "코드 실행 활성화", + "Enable Code Interpreter": "코드 인터프리터 활성화", "Enable Community Sharing": "커뮤니티 공유 활성화", - "Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "", - "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.": "", + "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.": "모델 데이터가 RAM에서 스왑 아웃되는 것을 방지하기 위해 메모리 잠금(mlock)을 활성화합니다. 이 옵션은 모델의 작업 페이지 집합을 RAM에 잠가 디스크로 스왑 아웃되지 않도록 보장합니다. 이는 페이지 폴트를 피하고 빠른 데이터 액세스를 보장하여 성능을 유지하는 데 도움이 될 수 있습니다.", + "Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "모델 데이터를 로드하기 위해 메모리 매핑(mmap)을 활성화합니다. 이 옵션을 사용하면 시스템이 디스크 파일을 RAM에 있는 것처럼 처리하여 디스크 스토리지를 RAM의 확장으로 사용할 수 있습니다. 이는 더 빠른 데이터 액세스를 허용하여 모델 성능을 향상시킬 수 있습니다. 그러나 모든 시스템에서 올바르게 작동하지 않을 수 있으며 상당한 양의 디스크 공간을 소비할 수 있습니다.", "Enable Message Rating": "메시지 평가 활성화", - "Enable Mirostat sampling for controlling perplexity.": "", + "Enable Mirostat sampling for controlling perplexity.": "퍼플렉서티 제어를 위해 Mirostat 샘플링 활성화", "Enable New Sign Ups": "새 회원가입 활성화", "Enabled": "활성화됨", - "Enforce Temporary Chat": "", + "Enforce Temporary Chat": "임시 채팅 강제 적용", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSV 파일에 이름, 이메일, 비밀번호, 역할 4개의 열이 순서대로 포함되어 있는지 확인하세요.", "Enter {{role}} message here": "여기에 {{role}} 메시지 입력", "Enter a detail about yourself for your LLMs to recall": "자신에 대한 세부사항을 입력하여 LLM들이 기억할 수 있도록 하세요.", "Enter api auth string (e.g. username:password)": "API 인증 문자 입력 (예: 사용자 이름:비밀번호)", - "Enter Application DN": "", - "Enter Application DN Password": "", + "Enter Application DN": "애플리케이션 DN 입력", + "Enter Application DN Password": "애플리케이션 DN 비밀번호 입력", "Enter Bing Search V7 Endpoint": "Bing Search V7 엔드포인트 입력", "Enter Bing Search V7 Subscription Key": "Bing Search V7 구독 키 입력", - "Enter Bocha Search API Key": "", + "Enter Bocha Search API Key": "Bocha 검색 API 키 입력", "Enter Brave Search API Key": "Brave Search API Key 입력", - "Enter certificate path": "", + "Enter certificate path": "인증서 경로 입력", "Enter CFG Scale (e.g. 7.0)": "CFG Scale 입력 (예: 7.0)", "Enter Chunk Overlap": "청크 오버랩 입력", "Enter Chunk Size": "청크 크기 입력", - "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", + "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "쉼표로 구분된 \\\"토큰:편향_값\\\" 쌍 입력 (예: 5432:100, 413:-100)", "Enter description": "설명 입력", - "Enter Docling Server URL": "", - "Enter Document Intelligence Endpoint": "", - "Enter Document Intelligence Key": "", - "Enter domains separated by commas (e.g., example.com,site.org)": "", - "Enter Exa API Key": "", - "Enter Firecrawl API Base URL": "", - "Enter Firecrawl API Key": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", + "Enter Docling Server URL": "Docling 서버 URL 입력", + "Enter Document Intelligence Endpoint": "Document Intelligence 엔드포인트 입력", + "Enter Document Intelligence Key": "Document Intelligence 키 입력", + "Enter domains separated by commas (e.g., example.com,site.org)": "쉼표로 구분된 도메인 입력 (예: example.com, site.org)", + "Enter Exa API Key": "Exa API 키 입력", + "Enter External Web Loader API Key": "외부 웹 로더 API 키 입력", + "Enter External Web Loader URL": "외부 웹 로더 URL 입력", + "Enter External Web Search API Key": "외부 웹 검색 API 키 입력", + "Enter External Web Search URL": "외부 웹 검색 URL 입력", + "Enter Firecrawl API Base URL": "Firecrawl API 기본 URL 입력", + "Enter Firecrawl API Key": "Firecrawl API 키 입력", "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 Jupyter Password": "", - "Enter Jupyter Token": "", - "Enter Jupyter URL": "", + "Enter Jupyter Password": "Jupyter 비밀번호 입력", + "Enter Jupyter Token": "Jupyter 토큰 입력", + "Enter Jupyter URL": "Jupyter URL 입력", "Enter Kagi Search API Key": "Kagi Search API 키 입력", - "Enter Key Behavior": "", + "Enter Key Behavior": "키 동작 입력", "Enter language codes": "언어 코드 입력", - "Enter Mistral API Key": "", + "Enter Mistral API Key": "Mistral API 키 입력", "Enter Model ID": "모델 ID 입력", "Enter model tag (e.g. {{modelTag}})": "모델 태그 입력(예: {{modelTag}})", "Enter Mojeek Search API Key": "Mojeek Search API 키 입력", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "단계 수 입력(예: 50)", - "Enter Perplexity API Key": "", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", + "Enter Perplexity API Key": "Perplexity API 키 입력", + "Enter Playwright Timeout": "Playwright 시간 초과 입력", + "Enter Playwright WebSocket URL": "Playwright WebSocket URL 입력", "Enter proxy URL (e.g. https://user:password@host:port)": "프록시 URL 입력(예: https://user:password@host:port)", - "Enter reasoning effort": "", + "Enter reasoning effort": "추론 난이도", "Enter Sampler (e.g. Euler a)": "샘플러 입력 (예: 오일러 a(Euler a))", "Enter Scheduler (e.g. Karras)": "스케쥴러 입력 (예: 카라스(Karras))", "Enter Score": "점수 입력", "Enter SearchApi API Key": "SearchApi API 키 입력", "Enter SearchApi Engine": "SearchApi 엔진 입력", "Enter Searxng Query URL": "Searxng 쿼리 URL 입력", - "Enter Seed": "", - "Enter SerpApi API Key": "", - "Enter SerpApi Engine": "", + "Enter Seed": "Seed 입력", + "Enter SerpApi API Key": "SerpApi API 키 입력", + "Enter SerpApi Engine": "SerpApi 엔진 입력", "Enter Serper API Key": "Serper API 키 입력", "Enter Serply API Key": "Serply API 키 입력", "Enter Serpstack API Key": "Serpstack API 키 입력", - "Enter server host": "", - "Enter server label": "", - "Enter server port": "", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter server host": "서버 호스트 입력", + "Enter server label": "서버 레이블 입력", + "Enter server port": "서버 포트 입력", + "Enter Sougou Search API sID": "Sougou 검색 API sID 입력", + "Enter Sougou Search API SK": "Sougou 검색 API SK 입력", "Enter stop sequence": "중지 시퀀스 입력", "Enter system prompt": "시스템 프롬프트 입력", - "Enter system prompt here": "", + "Enter system prompt here": "여기에 시스템 프롬프트 입력", "Enter Tavily API Key": "Tavily API 키 입력", - "Enter Tavily Extract Depth": "", + "Enter Tavily Extract Depth": "Tavily 추출 깊이 입력", "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "WebUI의 공개 URL을 입력해 주세요. 이 URL은 알림에서 링크를 생성하는 데 사용합니다.", "Enter Tika Server URL": "Tika 서버 URL 입력", - "Enter timeout in seconds": "", - "Enter to Send": "", + "Enter timeout in seconds": "시간 초과(초) 입력", + "Enter to Send": "Enter로 보내기", "Enter Top K": "Top K 입력", - "Enter Top K Reranker": "", + "Enter Top K Reranker": "Top K 리랭커 입력", "Enter URL (e.g. http://127.0.0.1:7860/)": "URL 입력(예: http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL 입력(예: http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "현재 비밀번호를 입력해 주세요", "Enter Your Email": "이메일 입력", "Enter Your Full Name": "이름 입력", "Enter your message": "메세지 입력", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "새로운 비밀번호를 입력해 주세요", "Enter Your Password": "비밀번호 입력", "Enter Your Role": "역할 입력", @@ -479,23 +503,25 @@ "Enter your webhook URL": "웹훅 URL을 입력해 주세요", "Error": "오류", "ERROR": "오류", - "Error accessing Google Drive: {{error}}": "", - "Error uploading file: {{error}}": "", + "Error accessing Google Drive: {{error}}": "Google Drive 액세스 오류: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", + "Error uploading file: {{error}}": "파일 업로드 오류: {{error}}", "Evaluations": "평가", - "Exa API Key": "", - "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "", - "Example: ALL": "", - "Example: mail": "", - "Example: ou=users,dc=foo,dc=example": "", - "Example: sAMAccountName or uid or userPrincipalName": "", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "", + "Exa API Key": "Exa API 키", + "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "예: (&(objectClass=inetOrgPerson)(uid=%s))", + "Example: ALL": "예: ALL", + "Example: mail": "예: mail", + "Example: ou=users,dc=foo,dc=example": "예: ou=users,dc=foo,dc=example", + "Example: sAMAccountName or uid or userPrincipalName": "예: sAMAccountName 또는 uid 또는 userPrincipalName", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "라이선스의 사용자 수를 초과했습니다. 사용자 수를 늘리려면 지원팀에 문의하세요.", "Exclude": "미포함", - "Execute code for analysis": "", - "Executing **{{NAME}}**...": "", - "Expand": "", + "Execute code for analysis": "분석을 위한 코드 실행", + "Executing **{{NAME}}**...": "**{{NAME}}** 실행 중...", + "Expand": "펼치기", "Experimental": "실험적", - "Explain": "", - "Explain this section to me in more detail": "", + "Explain": "설명", + "Explain this section to me in more detail": "이 섹션을 더 자세히 설명해주세요", "Explore the cosmos": "", "Export": "내보내기", "Export All Archived Chats": "", @@ -507,20 +533,26 @@ "Export Models": "모델 내보내기", "Export Presets": "프리셋 내보내기", "Export Prompts": "프롬프트 내보내기", - "Export to CSV": "", + "Export to CSV": "CSV로 내보내기", "Export Tools": "도구 내보내기", - "External": "", + "External": "외부", "External Models": "외부 모델", + "External Web Loader API Key": "외부 웹 로더 API 키", + "External Web Loader URL": "외부 웹 로더 URL", + "External Web Search API Key": "외부 웹 검색 API 키", + "External Web Search URL": "외부 웹 검색 URL", "Failed to add file.": "파일추가에 실패했습니다", - "Failed to connect to {{URL}} OpenAPI tool server": "", + "Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI 도구 서버 연결 실패", "Failed to create API Key.": "API 키 생성에 실패했습니다.", - "Failed to fetch models": "", + "Failed to delete note": "", + "Failed to fetch models": "모델 가져오기 실패", + "Failed to load file content.": "파일 내용 로드 실패.", "Failed to read clipboard contents": "클립보드 내용 가져오기를 실패하였습니다.", - "Failed to save connections": "", - "Failed to save models configuration": "", + "Failed to save connections": "연결 저장 실패", + "Failed to save models configuration": "모델 구성 저장 실패", "Failed to update settings": "설정 업데이트에 실패하였습니다.", "Failed to upload file.": "파일 업로드에 실패했습니다", - "Features": "", + "Features": "기능", "Features Permissions": "기능 권한", "February": "2월", "Feedback History": "피드백 기록", @@ -533,51 +565,51 @@ "File not found.": "파일을 찾을 수 없습니다.", "File removed successfully.": "성공적으로 파일이 제거되었습니다", "File size should not exceed {{maxSize}} MB.": "파일 사이즈가 {{maxSize}} MB를 초과하면 안됩니다.", - "File uploaded successfully": "", + "File uploaded successfully": "파일이 성공적으로 업로드되었습니다", "Files": "파일", "Filter is now globally disabled": "전반적으로 필터 비활성화됨", "Filter is now globally enabled": "전반적으로 필터 활성화됨", "Filters": "필터", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Fingerprint spoofing 감지: 이니셜을 아바타로 사용할 수 없습니다. 기본 프로필 이미지로 설정합니다.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "Firecrawl API 기본 URL", + "Firecrawl API Key": "Firecrawl API 키", "Fluidly stream large external response chunks": "대규모 외부 응답 청크를 유연하게 스트리밍", "Focus chat input": "채팅 입력창에 포커스", "Folder deleted successfully": "성공적으로 폴터가 생성되었습니다", - "Folder name cannot be empty": "폴더 이름을 작성해주세요", "Folder name cannot be empty.": "폴더 이름을 작성해주세요", "Folder name updated successfully": "성공적으로 폴더 이름이 저장되었습니다", "Followed instructions perfectly": "명령을 완벽히 수행함", "Forge new paths": "", "Form": "폼", "Format your variables using brackets like this:": "변수를 다음과 같이 괄호를 사용하여 생성하세요", - "Forwards system user session credentials to authenticate": "", + "Forwards system user session credentials to authenticate": "인증을 위해 시스템 사용자 세션 자격 증명 전달", "Frequency Penalty": "빈도 페널티", "Full Context Mode": "", "Function": "함수", - "Function Calling": "", + "Function Calling": "함수 호출", "Function created successfully": "성공적으로 함수가 생성되었습니다", "Function deleted successfully": "성공적으로 함수가 삭제되었습니다", - "Function Description": "", - "Function ID": "", + "Function Description": "함수 설명", + "Function ID": "함수 ID", "Function is now globally disabled": "전반적으로 함수 비활성화됨", "Function is now globally enabled": "전반적으로 함수 활성화됨", - "Function Name": "", + "Function Name": "함수 이름", "Function updated successfully": "성공적으로 함수가 업데이트되었습니다", "Functions": "함수", - "Functions allow arbitrary code execution": "함수로 임이의 코드 실행 허용하기", "Functions allow arbitrary code execution.": "함수가 임이의 코드를 실행하도록 허용하였습니다", "Functions imported successfully": "성공적으로 함수가 가져왔습니다", "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", + "Gemini API Config": "Gemini API 구성", + "Gemini API Key is required.": "Gemini API 키가 필요합니다.", "General": "일반", + "Generate": "", "Generate an image": "", "Generate Image": "이미지 생성", "Generate prompt pair": "", "Generating search query": "검색 쿼리 생성", - "Get started": "", - "Get started with {{WEBUI_NAME}}": "", + "Generating...": "", + "Get started": "시작하기", + "Get started with {{WEBUI_NAME}}": "{{WEBUI_NAME}} 시작하기", "Global": "글로벌", "Good Response": "좋은 응답", "Google Drive": "", @@ -597,13 +629,13 @@ "Hex Color": "", "Hex Color - Leave empty for default color": "", "Hide": "숨기기", - "Hide Model": "", - "Home": "", - "Host": "", + "Hide Model": "모델 숨기기", + "Home": "홈", + "Host": "호스트", "How can I help you today?": "오늘 어떻게 도와드릴까요?", "How would you rate this response?": "이 응답을 어떻게 평가하시겠어요?", "Hybrid Search": "하이브리드 검색", - "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "", + "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "저는 제 행동의 의미를 읽고 이해했음을 인정합니다. 임의 코드 실행과 관련된 위험을 인지하고 있으며 출처의 신뢰성을 확인했습니다.", "ID": "ID", "iframe Sandbox Allow Forms": "", "iframe Sandbox Allow Same Origin": "", @@ -614,14 +646,15 @@ "Image Generation (Experimental)": "이미지 생성(실험적)", "Image Generation Engine": "이미지 생성 엔진", "Image Max Compression Size": "이미지 최대 압축 크기", - "Image Prompt Generation": "", - "Image Prompt Generation Prompt": "", + "Image Prompt Generation": "이미지 프롬프트 생성", + "Image Prompt Generation Prompt": "이미지 프롬프트를 생성하기 위한 프롬프트", "Image Settings": "이미지 설정", "Images": "이미지", "Import Chats": "채팅 가져오기", "Import Config from JSON File": "JSON 파일에서 Config 불러오기", "Import Functions": "함수 가져오기", "Import Models": "모델 가져오기", + "Import Notes": "", "Import Presets": "프리셋 가져오기", "Import Prompts": "프롬프트 가져오기", "Import Tools": "도구 가져오기", @@ -634,12 +667,13 @@ "Input commands": "명령어 입력", "Install from Github URL": "Github URL에서 설치", "Instant Auto-Send After Voice Transcription": "음성 변환 후 즉시 자동 전송", - "Integration": "", + "Integration": "통합", "Interface": "인터페이스", + "Invalid file content": "", "Invalid file format.": "잘못된 파일 형식", - "Invalid JSON schema": "", + "Invalid JSON schema": "잘못된 JSON 스키마", "Invalid Tag": "잘못된 태그", - "is typing...": "", + "is typing...": "입력 중...", "January": "1월", "Jina API Key": "Jina API 키", "join our Discord for help.": "도움말을 보려면 Discord에 가입하세요.", @@ -647,8 +681,8 @@ "JSON Preview": "JSON 미리 보기", "July": "7월", "June": "6월", - "Jupyter Auth": "", - "Jupyter URL": "", + "Jupyter Auth": "Jupyter 인증", + "Jupyter URL": "Jupyter URL", "JWT Expiration": "JWT 만료", "JWT Token": "JWT 토큰", "Kagi Search API Key": "Kagi Search API 키", @@ -670,27 +704,27 @@ "Language Locales": "", "Last Active": "최근 활동", "Last Modified": "마지막 수정", - "Last reply": "", + "Last reply": "마지막 답글", "LDAP": "", - "LDAP server updated": "", + "LDAP server updated": "LDAP 서버가 업데이트되었습니다", "Leaderboard": "리더보드", - "Learn more about OpenAPI tool servers.": "", + "Learn more about OpenAPI tool servers.": "OpenAPI 도구 서버에 대해 자세히 알아보세요.", "Leave empty for unlimited": "무제한을 위해 빈칸으로 남겨두세요", - "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "", - "Leave empty to include all models from \"{{url}}/models\" endpoint": "", - "Leave empty to include all models or select specific models": "특정 모델을 선택하거나 모든 모델을 포함하고 싶으면 빈칸으로 남겨두세요", + "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "\\\"{{url}}/api/tags\\\" 엔드포인트의 모든 모델을 포함하려면 비워 두세요", + "Leave empty to include all models from \"{{url}}/models\" endpoint": "\\\"{{url}}/models\\\" 엔드포인트의 모든 모델을 포함하려면 비워 두세요", + "Leave empty to include all models or select specific models": "", "Leave empty to use the default prompt, or enter a custom prompt": "기본 프롬프트를 사용하기 위해 빈칸으로 남겨두거나, 커스텀 프롬프트를 입력하세요", - "Leave model field empty to use the default model.": "", - "License": "", + "Leave model field empty to use the default model.": "기본 모델을 사용하려면 모델 필드를 비워 두세요.", + "License": "라이선스", "Light": "라이트", "Listening...": "듣는 중...", - "Llama.cpp": "", + "Llama.cpp": "Llama.cpp", "LLMs can make mistakes. Verify important information.": "LLM에 오류가 있을 수 있습니다. 중요한 정보는 확인이 필요합니다.", - "Loader": "", - "Loading Kokoro.js...": "", + "Loader": "로더", + "Loading Kokoro.js...": "Kokoro.js 로딩 중...", "Local": "", "Local Models": "로컬 모델", - "Location access not allowed": "", + "Location access not allowed": "위치 접근이 허용되지 않음", "Logit Bias": "", "Lost": "패배", "LTR": "LTR", @@ -698,14 +732,15 @@ "Make sure to enclose them with": "꼭 다음으로 감싸세요:", "Make sure to export a workflow.json file as API format from ComfyUI.": "꼭 workflow.json 파일을 ComfyUI의 API 형식대로 내보내세요", "Manage": "관리", - "Manage Direct Connections": "", - "Manage Models": "", - "Manage Ollama": "", + "Manage Direct Connections": "다이렉트 연결 관리", + "Manage Models": "모델 관리", + "Manage Ollama": "Ollama 관리", "Manage Ollama API Connections": "Ollama API 연결 관리", "Manage OpenAI API Connections": "OpenAI API 연결 관리", "Manage Pipelines": "파이프라인 관리", - "Manage Tool Servers": "", + "Manage Tool Servers": "툴 서버 관리", "March": "3월", + "Max Speakers": "", "Max Tokens (num_predict)": "최대 토큰(num_predict)", "Max Upload Count": "업로드 최대 수", "Max Upload Size": "업로드 최대 사이즈", @@ -718,26 +753,30 @@ "Memory deleted successfully": "성공적으로 메모리가 삭제되었습니다", "Memory updated successfully": "성공적으로 메모리가 업데이트되었습니다", "Merge Responses": "응답들 결합하기", + "Merged Response": "결합된 응답", "Message rating should be enabled to use this feature": "이 기능을 사용하려면 메시지 평가가 활성화되어야합니다", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "링크 생성 후에 보낸 메시지는 공유되지 않습니다. URL이 있는 사용자는 공유된 채팅을 볼 수 있습니다.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "Microsoft OneDrive (개인용)", + "Microsoft OneDrive (work/school)": "Microsoft OneDrive (회사/학교용)", "Min P": "최소 P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", "Mirostat Tau": "Mirostat Tau", "Mistral OCR": "", - "Mistral OCR API Key required.": "", + "Mistral OCR API Key required.": "Mistral OCR API 키가 필요합니다.", "Model": "모델", "Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' 모델이 성공적으로 다운로드되었습니다.", "Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' 모델은 이미 다운로드 대기열에 있습니다.", "Model {{modelId}} not found": "{{modelId}} 모델을 찾을 수 없습니다.", "Model {{modelName}} is not vision capable": "{{modelName}} 모델은 비전을 사용할 수 없습니다.", "Model {{name}} is now {{status}}": "{{name}} 모델은 이제 {{status}} 상태입니다.", - "Model {{name}} is now hidden": "", - "Model {{name}} is now visible": "", + "Model {{name}} is now hidden": "{{name}} 모델이 이제 숨겨짐", + "Model {{name}} is now visible": "{{name}} 모델이 이제 표시됨", "Model accepts image inputs": "모델이 이미지 삽입을 허용합니다", "Model created successfully!": "성공적으로 모델이 생성되었습니다", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "모델 파일 시스템 경로가 감지되었습니다. 업데이트하려면 모델 단축 이름이 필요하며 계속할 수 없습니다.", - "Model Filtering": "", + "Model Filtering": "모델 필터링", "Model ID": "모델 ID", "Model IDs": "", "Model Name": "모델 이름", @@ -748,32 +787,36 @@ "Modelfile Content": "Modelfile 내용", "Models": "모델", "Models Access": "모델 접근", - "Models configuration saved successfully": "", - "Models Public Sharing": "", + "Models configuration saved successfully": "모델 구성이 성공적으로 저장되었습니다", + "Models Public Sharing": "모델 공개 공유", "Mojeek Search API Key": "Mojeek Search API 키", "more": "더보기", "More": "더보기", + "My Notes": "", "Name": "이름", "Name your knowledge base": "지식 기반 이름을 지정하세요", - "Native": "", + "Native": "네이티브", "New Chat": "새 채팅", "New Folder": "", + "New Note": "", "New Password": "새 비밀번호", "new-channel": "", + "No content": "", "No content found": "내용을 찾을 수 없음", + "No content found in file.": "파일에서 내용을 찾을 수 없습니다.", "No content to speak": "음성 출력할 내용을 찾을 수 없음", "No distance available": "거리 불가능", "No feedbacks found": "피드백 없음", "No file selected": "파일이 선택되지 않음", - "No files found.": "파일 없음", "No groups with access, add a group to grant access": "접근 권한이 있는 그룹이 없습니다. 접근 권한을 부여하려면 그룹을 추가하세요.", "No HTML, CSS, or JavaScript content found.": "HTML, CSS, JavaScript이 발견되지 않음", - "No inference engine with management support found": "", + "No inference engine with management support found": "관리 지원이 포함된 추론 엔진을 찾을 수 없음", "No knowledge found": "지식 기반 없음", - "No memories to clear": "", - "No model IDs": "", + "No memories to clear": "지울 메모리 없음", + "No model IDs": "모델 ID 없음", "No models found": "모델 없음", "No models selected": "", + "No Notes": "", "No results found": "결과 없음", "No search query generated": "검색어가 생성되지 않았습니다.", "No source available": "사용 가능한 소스 없음", @@ -782,6 +825,7 @@ "None": "없음", "Not factually correct": "사실상 맞지 않음", "Not helpful": "도움이 되지않음", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "참고: 최소 점수를 설정하면, 검색 결과로 최소 점수 이상의 점수를 가진 문서만 반환합니다.", "Notes": "노트", "Notification Sound": "알림 소리", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "영문자, 숫자 및 하이픈(-)만 허용됨", "Only alphanumeric characters and hyphens are allowed in the command string.": "명령어 문자열에는 영문자, 숫자 및 하이픈(-)만 허용됩니다.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "가지고 있는 컬렉션만 수정 가능합니다, 새 지식 기반을 생성하여 문서를 수정 혹은 추가하십시오", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "권한이 있는 사용자와 그룹만 접근 가능합니다", "Oops! Looks like the URL is invalid. Please double-check and try again.": "이런! URL이 잘못된 것 같습니다. 다시 한번 확인하고 다시 시도해주세요.", "Oops! There are files still uploading. Please wait for the upload to complete.": "이런! 파일이 계속 업로드중 입니다. 업로드가 완료될 때까지 잠시만 기다려주세요", @@ -812,7 +857,7 @@ "Open file": "파일 열기", "Open in full screen": "전체화면으로 열기", "Open new chat": "새 채팅 열기", - "Open WebUI can use tools provided by any OpenAPI server.": "", + "Open WebUI can use tools provided by any OpenAPI server.": "Open WebUI는 모든 OpenAPI 서버에서 제공하는 도구를 사용할 수 있습니다.", "Open WebUI uses faster-whisper internally.": "Open WebUI는 내부적으로 패스트 위스퍼를 사용합니다.", "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI는 SpeechT5와 CMU Arctic 스피커 임베딩을 사용합니다.", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "열린 WebUI 버젼(v{{OPEN_WEBUI_VERSION}})은 최소 버젼 (v{{REQUIRED_VERSION}})보다 낮습니다", @@ -822,7 +867,7 @@ "OpenAI API Key is required.": "OpenAI API 키가 필요합니다.", "OpenAI API settings updated": "", "OpenAI URL/Key required.": "OpenAI URL/키가 필요합니다.", - "openapi.json Path": "", + "openapi.json Path": "openapi.json 경로", "or": "또는", "Organize your users": "사용자를 ", "Other": "기타", @@ -839,7 +884,7 @@ "Permission denied when accessing microphone": "마이크 접근 권한이 거부되었습니다.", "Permission denied when accessing microphone: {{error}}": "마이크 접근 권환이 거부되었습니다: {{error}}", "Permissions": "권한", - "Perplexity API Key": "", + "Perplexity API Key": "Perplexity API 키", "Personalization": "개인화", "Pin": "고정", "Pinned": "고정됨", @@ -849,18 +894,19 @@ "Pipelines": "파이프라인", "Pipelines Not Detected": "파이프라인이 발견되지 않음", "Pipelines Valves": "파이프라인 밸브", + "Plain text (.md)": "", "Plain text (.txt)": "일반 텍스트(.txt)", "Playground": "놀이터", - "Playwright Timeout (ms)": "", - "Playwright WebSocket URL": "", + "Playwright Timeout (ms)": "Playwright 시간 초과 (ms)", + "Playwright WebSocket URL": "Playwright WebSocket URL", "Please carefully review the following warnings:": "다음 주의를 조심히 확인해주십시오", - "Please do not close the settings page while loading the model.": "", + "Please do not close the settings page while loading the model.": "모델을 로드하는 동안 설정 페이지를 닫지 마세요.", "Please enter a prompt": "프롬프트를 입력해주세요", - "Please enter a valid path": "", - "Please enter a valid URL": "", + "Please enter a valid path": "유효한 경로를 입력하세요", + "Please enter a valid URL": "유효한 URL을 입력하세요", "Please fill in all fields.": "모두 빈칸없이 채워주세요", - "Please select a model first.": "", - "Please select a model.": "", + "Please select a model first.": "먼저 모델을 선택하세요.", + "Please select a model.": "모델을 선택하세요.", "Please select a reason": "이유를 선택해주세요", "Port": "포트", "Positive attitude": "긍정적인 자세", @@ -869,11 +915,11 @@ "Presence Penalty": "", "Previous 30 days": "이전 30일", "Previous 7 days": "이전 7일", - "Private": "", + "Private": "비공개", "Profile Image": "프로필 이미지", - "Prompt": "", + "Prompt": "프롬프트", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "프롬프트 (예: 로마 황제에 대해 재미있는 사실을 알려주세요)", - "Prompt Autocompletion": "", + "Prompt Autocompletion": "프롬프트 자동 완성", "Prompt Content": "프롬프트 내용", "Prompt created successfully": "성공적으로 프롬프트를 생성했습니다", "Prompt suggestions": "프롬프트 제안", @@ -881,16 +927,17 @@ "Prompts": "프롬프트", "Prompts Access": "프롬프트 접근", "Prompts Public Sharing": "", - "Public": "", + "Public": "공개", "Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com에서 \"{{searchValue}}\" 가져오기", "Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기(pull)", "Query Generation Prompt": "", "RAG Template": "RAG 템플릿", "Rating": "평가", "Re-rank models by topic similarity": "주제 유사성으로 모델을 재정렬하기", - "Read": "", + "Read": "읽기", "Read Aloud": "읽어주기", - "Reasoning Effort": "", + "Reasoning Effort": "추론 난이도", + "Record": "", "Record voice": "음성 녹음", "Redirecting you to Open WebUI Community": "OpenWebUI 커뮤니티로 리디렉션 중", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -898,18 +945,18 @@ "References from": "출처", "Refused when it shouldn't have": "허용되지 않았지만 허용되어야 합니다.", "Regenerate": "재생성", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "재색인", + "Reindex Knowledge Base Vectors": "전체 지식 베이스 재색인", "Release Notes": "릴리스 노트", "Relevance": "관련도", - "Relevance Threshold": "", + "Relevance Threshold": "관련성 임계값", "Remove": "삭제", "Remove Model": "모델 삭제", "Rename": "이름 변경", "Reorder Models": "모델 재정렬", "Repeat Last N": "마지막 N 반복", "Repeat Penalty (Ollama)": "", - "Reply in Thread": "", + "Reply in Thread": "스레드에 답글 달기", "Request Mode": "요청 모드", "Reranking Model": "Reranking 모델", "Reranking model disabled": "Reranking 모델 비활성화", @@ -918,12 +965,12 @@ "Reset All Models": "모든 모델 초기화", "Reset Upload Directory": "업로드 디렉토리 초기화", "Reset Vector Storage/Knowledge": "벡터 저장 공간/지식 기반 초기화", - "Reset view": "", + "Reset view": "보기 초기화", "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "웹사이트 권환과 같이 응답 알림이 활성화될 수 없습니다. 필요한 접근을 사용하기 위해 브라우져 설정을 확인 부탁드립니다.", "Response splitting": "응답 나누기", "Result": "결과", - "Retrieval": "", - "Retrieval Query Generation": "", + "Retrieval": "검색", + "Retrieval Query Generation": "검색 쿼리 생성", "Rich Text Input for Chat": "채팅을 위한 풍부한 텍스트(Rich Text) 입력", "RK": "RK", "Role": "역할", @@ -939,10 +986,10 @@ "Save Tag": "태그 저장", "Saved": "저장됨", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "브라우저의 저장소에 채팅 로그를 직접 저장하는 것은 더 이상 지원되지 않습니다. 아래 버튼을 클릭하여 채팅 로그를 다운로드하고 삭제하세요. 걱정 마세요. 백엔드를 통해 채팅 로그를 쉽게 다시 가져올 수 있습니다.", - "Scroll to bottom when switching between branches": "브랜치 간 전환시 밑으로 스크롤 하세요", + "Scroll On Branch Change": "브랜치 변경 시 스크롤", "Search": "검색", "Search a model": "모델 검색", - "Search Base": "", + "Search Base": "검색 기반", "Search Chats": "채팅 검색", "Search Collection": "컬렉션 검색", "Search Filters": "필터 검색", @@ -953,13 +1000,14 @@ "Search options": "옵션 검색", "Search Prompts": "프롬프트 검색", "Search Result Count": "검색 결과 수", - "Search the internet": "", + "Search the internet": "인터넷 검색", "Search Tools": "검색 도구", "SearchApi API Key": "SearchApi API 키", "SearchApi Engine": "SearchApi 엔진", - "Searched {{count}} sites": "", + "Searched {{count}} sites": "{{count}}개 사이트 검색됨", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" 검색 중", "Searching Knowledge for \"{{searchQuery}}\"": "\"{{searchQuery}}\"위한 지식 기반 검색 중", + "Searching the web...": "", "Searxng Query URL": "Searxng 쿼리 URL", "See readme.md for instructions": "설명은 readme.md를 참조하세요.", "See what's new": "새로운 기능 보기", @@ -972,8 +1020,8 @@ "Select a pipeline": "파이프라인 선택", "Select a pipeline url": "파이프라인 URL 선택", "Select a tool": "도구 선택", - "Select an auth method": "", - "Select an Ollama instance": "", + "Select an auth method": "인증 방법 선택", + "Select an Ollama instance": "Ollama 인스턴스 선택", "Select Engine": "엔진 선택", "Select Knowledge": "지식 기반 선택", "Select only one model to call": "음성 기능을 위해서는 모델을 하나만 선택해야 합니다.", @@ -984,8 +1032,8 @@ "Send message": "메시지 보내기", "Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.": "'stream_options: { include_usage: true }' 요청 보내기 \n지원되는 제공자가 토큰 사용 정보를 응답할 예정입니다", "September": "9월", - "SerpApi API Key": "", - "SerpApi Engine": "", + "SerpApi API Key": "SerpApi API 키", + "SerpApi Engine": "SerpApi 엔진", "Serper API Key": "Serper API 키", "Serply API Key": "Serply API 키", "Serpstack API Key": "Serpstack API 키", @@ -1059,7 +1107,7 @@ "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "", "Talk to model": "", "Tap to interrupt": "탭하여 중단", - "Tasks": "", + "Tasks": "작업", "Tavily API Key": "Tavily API 키", "Tavily Extract Depth": "", "Tell us more:": "더 알려주세요:", @@ -1070,13 +1118,13 @@ "Text-to-Speech Engine": "텍스트-음성 변환 엔진", "Tfs Z": "Tfs Z", "Thanks for your feedback!": "피드백 감사합니다!", - "The Application Account DN you bind with for search": "", - "The base to search for users": "", + "The Application Account DN you bind with for search": "검색을 위해 바인딩하는 응용 프로그램 계정 DN", + "The base to search for users": "사용자 검색을 위한 기본 경로", "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "", "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "이 플러그인 뒤에 있는 개발자는 커뮤니티에서 활동하는 단순한 열정적인 일반인들입니다. 만약 플러그인이 도움 되었다면, 플러그인 개발에 기여를 고려해주세요!", "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "평가 리더보드는 Elo 평가 시스템을 기반으로 하고 실시간으로 업데이트됩니다", - "The LDAP attribute that maps to the mail that users use to sign in.": "", - "The LDAP attribute that maps to the username that users use to sign in.": "", + "The LDAP attribute that maps to the mail that users use to sign in.": "사용자가 로그인할 때 사용하는 메일에 매핑되는 LDAP 속성입니다.", + "The LDAP attribute that maps to the username that users use to sign in.": "사용자가 로그인할 때 사용하는 사용자 이름에 매핑되는 LDAP 속성입니다.", "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "리더보드는 베타테스트중에 있습니다, 평가 기준이 알고리즘 수정과 함께 변할 수 있습니다", "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "최대 파일 크기(MB). 만약 파일 크기가 한도를 초과할 시, 파일은 업로드되지 않습니다", "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.": "하나의 채팅에서는 사용가능한 최대 파일 수가 있습니다. 만약 파일 수가 한도를 초과할 시, 파일은 업로드되지 않습니다.", @@ -1085,7 +1133,7 @@ "Theme": "테마", "Thinking...": "생각 중...", "This action cannot be undone. Do you wish to continue?": "이 액션은 되돌릴 수 없습니다. 계속 하시겠습니까?", - "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "", + "This channel was created on {{createdAt}}. This is the very beginning of the {{channelName}} channel.": "이 채널은 {{createdAt}}에 생성되었습니다. 여기가 {{channelName}} 채널의 시작입니다.", "This chat won’t appear in history and your messages will not be saved.": "", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "이렇게 하면 소중한 대화 내용이 백엔드 데이터베이스에 안전하게 저장됩니다. 감사합니다!", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "이것은 실험적 기능으로, 예상대로 작동하지 않을 수 있으며 언제든지 변경될 수 있습니다.", @@ -1100,7 +1148,7 @@ "This will reset the knowledge base and sync all files. Do you wish to continue?": "지식 기반과 모든 파일 연동을 초기화합니다. 계속 하시겠습니까?", "Thorough explanation": "완전한 설명", "Thought for {{DURATION}}": "{{DURATION}} 동안 생각함", - "Thought for {{DURATION}} seconds": "", + "Thought for {{DURATION}} seconds": "{{DURATION}}초 동안 생각함", "Tika": "티카(Tika)", "Tika Server URL required.": "티카 서버 URL이 필요합니다", "Tiktoken": "틱토큰 (Tiktoken)", @@ -1134,35 +1182,35 @@ "Tool ID": "도구 ID", "Tool imported successfully": "성공적으로 도구를 가져왔습니다", "Tool Name": "도구 이름", - "Tool Servers": "", + "Tool Servers": "도구 서버", "Tool updated successfully": "성공적으로 도구가 업데이트되었습니다", "Tools": "도구", "Tools Access": "도구 접근", "Tools are a function calling system with arbitrary code execution": "도구는 임의 코드를 실행시키는 함수를 불러오는 시스템입니다", - "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "도구에 임의 코드 실행을 허용하는 함수가 포함되어 있습니다", + "Tools Function Calling Prompt": "도구 함수 호출 프롬프트", "Tools have a function calling system that allows arbitrary code execution.": "도구에 임의 코드 실행을 허용하는 함수가 포함되어 있습니다.", - "Tools Public Sharing": "", + "Tools Public Sharing": "도구 공개 및 공유", "Top K": "Top K", "Top K Reranker": "", "Top P": "Top P", "Transformers": "", "Trouble accessing Ollama?": "올라마(Ollama)에 접근하는 데 문제가 있나요?", - "Trust Proxy Environment": "", + "Trust Proxy Environment": "신뢰 할 수 있는 프록시 환경", "TTS Model": "TTS 모델", "TTS Settings": "TTS 설정", "TTS Voice": "TTS 음성", "Type": "입력", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (다운로드) URL 입력", - "Uh-oh! There was an issue with the response.": "", + "Uh-oh! There was an issue with the response.": "이런! 응답에 문제가 발생했습니다.", "UI": "UI", "Unarchive All": "모두 보관 해제", "Unarchive All Archived Chats": "보관된 모든 채팅을 보관 해제", "Unarchive Chat": "채팅 보관 해제", - "Unlock mysteries": "", + "Unlock mysteries": "미스터리 풀기", "Unpin": "고정 해제", - "Unravel secrets": "", + "Unravel secrets": "비밀 풀기", "Untagged": "태그 해제", + "Untitled": "", "Update": "업데이트", "Update and Copy Link": "링크 업데이트 및 복사", "Update for the latest features and improvements.": "이번 업데이트의 새로운 기능과 개선", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "업로드", "Upload a GGUF model": "GGUF 모델 업로드", + "Upload Audio": "", "Upload directory": "디렉토리 업로드", "Upload files": "파일 업로드", "Upload Files": "파일 업로드", @@ -1191,8 +1240,8 @@ "user": "사용자", "User": "사용자", "User location successfully retrieved.": "성공적으로 사용자의 위치를 불러왔습니다", - "User Webhooks": "", - "Username": "", + "User Webhooks": "사용자 웹훅", + "Username": "사용자 이름", "Users": "사용자", "Using the default arena model with all models. Click the plus button to add custom models.": "모든 모델은 기본 아레나 모델을 사용중입니다. 플러스 버튼을 눌러 커스텀 모델을 추가하세요", "Utilize": "활용", @@ -1206,8 +1255,8 @@ "Verify SSL Certificate": "", "Version": "버전", "Version {{selectedVersion}} of {{totalVersions}}": "버전 {{totalVersions}}의 {{selectedVersion}}", - "View Replies": "", - "View Result from **{{NAME}}**": "", + "View Replies": "답글 보기", + "View Result from **{{NAME}}**": "**{{NAME}}**의 결과 보기", "Visibility": "공개 범위", "Voice": "음성", "Voice Input": "음성 입력", @@ -1218,22 +1267,22 @@ "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", "Web": "웹", "Web API": "웹 API", - "Web Loader Engine": "", + "Web Loader Engine": "웹 로더 엔진", "Web Search": "웹 검색", "Web Search Engine": "웹 검색 엔진", - "Web Search in Chat": "", - "Web Search Query Generation": "", + "Web Search in Chat": "채팅에서 웹 검색", + "Web Search Query Generation": "웹 검색 쿼리 생성", "Webhook URL": "웹훅 URL", "WebUI Settings": "WebUI 설정", "WebUI URL": "", - "WebUI will make requests to \"{{url}}\"": "", + "WebUI will make requests to \"{{url}}\"": "WebUI가 \"{{url}}\"로 요청을 보냅니다", "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI가 \"{{url}}/api/chat\"로 요청을 보냅니다", "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI가 \"{{url}}/chat/completions\"로 요청을 보냅니다", "What are you trying to achieve?": "무엇을 성취하고 싶으신가요?", "What are you working on?": "어떤 작업을 하고 계신가요?", "What’s New in": "새로운 기능:", "When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "활성화하면 모델이 각 채팅 메시지에 실시간으로 응답하여 사용자가 메시지를 보내는 즉시 응답을 생성합니다. 이 모드는 실시간 채팅 애플리케이션에 유용하지만, 느린 하드웨어에서는 성능에 영향을 미칠 수 있습니다.", - "wherever you are": "", + "wherever you are": "당신이 어디에 있든", "Whisper (Local)": "Whisper (로컬)", "Why?": "이유는?", "Widescreen Mode": "와이드스크린 모드", @@ -1246,14 +1295,16 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "[주제 또는 키워드]에 대한 50단어 요약문 작성.", "Write something...": "아무거나 쓰세요...", "Write your model template content here": "여기에 모델 템플릿 내용을 입력하세요", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "어제", "You": "당신", - "You are currently using a trial license. Please contact support to upgrade your license.": "", + "You are currently using a trial license. Please contact support to upgrade your license.": "현재 평가판 라이선스를 사용 중입니다. 라이선스 업그레이드를 위해 지원팀에 문의하세요.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "동시에 최대 {{maxCount}} 파일과만 대화할 수 있습니다 ", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "아래 '관리' 버튼으로 메모리를 추가하여 LLM들과의 상호작용을 개인화할 수 있습니다. 이를 통해 더 유용하고 맞춤화된 경험을 제공합니다.", "You cannot upload an empty file.": "빈 파일을 업로드 할 수 없습니다", - "You do not have permission to upload files": "", - "You do not have permission to upload files.": "", + "You do not have permission to upload files.": "파일을 업로드할 권한이 없습니다.", "You have no archived conversations.": "채팅을 보관한 적이 없습니다.", "You have shared this chat": "이 채팅을 공유했습니다.", "You're a helpful assistant.": "당신은 유용한 어시스턴트입니다.", @@ -1261,6 +1312,6 @@ "Your account status is currently pending activation.": "현재 계정은 아직 활성화되지 않았습니다.", "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "당신의 모든 기여는 곧바로 플러그인 개발자에게 갑니다; Open WebUI는 일절 가져가지 않습니다 하지만, 선택한 후원 플랫폼은 수수료를 가져갈 수 있습니다.", "Youtube": "유튜브", - "Youtube Language": "", - "Youtube Proxy URL": "" + "Youtube Language": "Youtube 언어", + "Youtube Proxy URL": "Youtube 프록시 URL" } diff --git a/src/lib/i18n/locales/lt-LT/translation.json b/src/lib/i18n/locales/lt-LT/translation.json index 6d0ef6fae..cfda7c594 100644 --- a/src/lib/i18n/locales/lt-LT/translation.json +++ b/src/lib/i18n/locales/lt-LT/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(pvz. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(pvz. `sh webui.sh --api`)", "(latest)": "(naujausias)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Leisti pokalbių ištrynimą", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Leisti nelokalius balsus", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "assistentas", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Are esate tikri?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Neteisingas atsakymas", "Banners": "Baneriai", "Base Model (From)": "Bazinis modelis", + "Base URL": "", "Batch Size (num_batch)": "Batch dydis", "before": "prieš", "Being lazy": "Būvimas tingiu", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API raktas", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Atšaukti", "Capabilities": "Gebėjimai", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Keisti slaptažodį", "Channel Name": "", @@ -234,7 +242,7 @@ "Content Extraction Engine": "", "Context Length": "Konteksto ilgis", "Continue Response": "Tęsti atsakymą", - "Continue with {{provider}}": "Tęstti su {{tiekėju}}", + "Continue with {{provider}}": "Tęsti su {{tiekėju}}", "Continue with Email": "", "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.": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Sukurti naują raktą", "Create new secret key": "Sukurti naują slaptą raktą", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Sukurta", "Created At": "Sukurta", "Created by": "Sukurta", @@ -299,6 +309,7 @@ "Delete function?": "Ištrinti funkciją", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Ištrinti užklausą?", "delete this link": "Ištrinti nuorodą", "Delete tool?": "Ištrinti įrankį?", @@ -354,7 +365,7 @@ "Download Database": "Parsisiųsti duomenų bazę", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Įkelkite dokumentus čia, kad juos pridėti į pokalbį", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "pvz. '30s', '10m'. Laiko vienetai yra 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Redaguoti", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Aktyvuoti naujas registracijas", "Enabled": "Leisti", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Įsitikinkite, kad CSV failas turi 4 kolonas šiuo eiliškumu: Name, Email, Password, Role.", "Enter {{role}} message here": "Įveskite {{role}} žinutę čia", "Enter a detail about yourself for your LLMs to recall": "Įveskite informaciją apie save jūsų modelio atminčiai", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Įveskite blokų dydį", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Įveskite GitHub Raw nuorodą", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Įveskite modelio žymą (pvz. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Įveskite žingsnių kiekį (pvz. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Įveskite nuorodą (pvz. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Įveskite nuorododą (pvz. http://localhost:11434", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Įveskite el. pašto adresą", "Enter Your Full Name": "Įveskite vardą bei pavardę", "Enter your message": "Įveskite žinutę", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Įveskite slaptažodį", "Enter Your Role": "Įveskite savo rolę", @@ -480,6 +504,8 @@ "Error": "Klaida", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Eksportuoti įrankius", "External": "", "External Models": "Išoriniai modeliai", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Nepavyko sukurti API rakto", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Nepavyko perskaityti kopijuoklės", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Sklandžiai transliuoti ilgus atsakymus", "Focus chat input": "Fokusuoti žinutės įvestį", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Tobulai sekė instrukcijas", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Funkcija atnaujinta sėkmingai", "Functions": "Funkcijos", - "Functions allow arbitrary code execution": "Funkcijos leidžia nekontroliuojamo kodo vykdymą", "Functions allow arbitrary code execution.": "Funkcijos leidžia nekontroliuojamo kodo vykdymą", "Functions imported successfully": "Funkcijos importuotos sėkmingai", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Bendri", + "Generate": "", "Generate an image": "", "Generate Image": "Generuoti paveikslėlį", "Generate prompt pair": "", "Generating search query": "Generuoti paieškos užklausą", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Globalu", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "Importuoti funkcijas", "Import Models": "Importuoti modelius", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importuoti užklausas", "Import Tools": "Importuoti įrankius", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Siųsti iškart po balso transkripcijos", "Integration": "", "Interface": "Sąsaja", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Neteisinga žyma", @@ -706,6 +740,7 @@ "Manage Pipelines": "Tvarkyti procesus", "Manage Tool Servers": "", "March": "Kovas", + "Max Speakers": "", "Max Tokens (num_predict)": "Maksimalus žetonų kiekis (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Atmintis ištrinta sėkmingai", "Memory updated successfully": "Atmintis atnaujinta sėkmingai", "Merge Responses": "", + "Merged Response": "Sujungtas atsakymas", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Žinutės, kurias siunčiate po nuorodos sukūrimo nebus matomos nuorodos turėtojams. Naudotojai su nuoroda matys žinutes iki nuorodos sukūrimo.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Mažiausias p", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Daugiau", + "My Notes": "", "Name": "Pavadinimas", "Name your knowledge base": "", "Native": "", "New Chat": "Naujas pokalbis", "New Folder": "", + "New Note": "", "New Password": "Naujas slaptažodis", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "Nėra turinio kalbėjimui", "No distance available": "", "No feedbacks found": "", "No file selected": "Nėra pasirinktų dokumentų", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Rezultatų nerasta", "No search query generated": "Paieškos užklausa nesugeneruota", "No source available": "Šaltinių nerasta", @@ -782,6 +825,7 @@ "None": "Nėra", "Not factually correct": "Faktiškai netikslu", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Jei turite minimalų įvertį, paieška gražins tik tą informaciją, kuri viršyje šį įvertį", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Leistinos tik raidės, skaičiai ir brūkšneliai.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Regis nuoroda nevalidi. Prašau patikrtinkite ir pabandykite iš naujo.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Procesai", "Pipelines Not Detected": "Procesai neaptikti", "Pipelines Valves": "Procesų įeitys", + "Plain text (.md)": "", "Plain text (.txt)": "Grynas tekstas (.txt)", "Playground": "Eksperimentavimo erdvė", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Skaityti garsiai", "Reasoning Effort": "", + "Record": "", "Record voice": "Įrašyti balsą", "Redirecting you to Open WebUI Community": "Perkeliam Jus į OpenWebUI bendruomenę", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "Išsaugoti žymą", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Pokalbių saugojimas naršyklėje nebegalimas.", - "Scroll to bottom when switching between branches": "Slikite link apačios norėdami pakeisti šakas", + "Scroll On Branch Change": "", "Search": "Ieškoti", "Search a model": "Ieškoti modelio", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Ieškoma \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng užklausos URL", "See readme.md for instructions": "Žiūrėti readme.md papildomoms instrukcijoms", "See what's new": "Žiūrėti naujoves", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Įrankiai gali naudoti funkcijas ir vykdyti kodą", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Įrankiai gali naudoti funkcijas ir leisti vykdyti kodą", "Tools have a function calling system that allows arbitrary code execution.": "Įrankiai gali naudoti funkcijas ir leisti vykdyti kodą", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Atsemigti", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "Atnaujinti", "Update and Copy Link": "Atnaujinti ir kopijuoti nuorodą", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Atnaujinti", "Upload a GGUF model": "Parsisiųsti GGUF modelį", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Atnaujinti rinkmenas", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Parašyk santrumpą trumpesnę nei 50 žodžių šiam tekstui: [tekstas]", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Vakar", "You": "Jūs", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Galite pagerinti modelių darbą suteikdami jiems atminties funkcionalumą.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Jūs neturite archyvuotų pokalbių", "You have shared this chat": "Pasidalinote šiuo pokalbiu", diff --git a/src/lib/i18n/locales/ms-MY/translation.json b/src/lib/i18n/locales/ms-MY/translation.json index 0d9d9090d..2dd5e01c4 100644 --- a/src/lib/i18n/locales/ms-MY/translation.json +++ b/src/lib/i18n/locales/ms-MY/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(contoh `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(contoh `sh webui.sh --api`)", "(latest)": "(terkini)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Benarkan Penghapusan Perbualan", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Benarkan suara bukan tempatan ", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "seorang pembantu", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Adakah anda pasti", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Maklumbalas Salah", "Banners": "Sepanduk", "Base Model (From)": "Model Asas (Dari)", + "Base URL": "", "Batch Size (num_batch)": "Saiz Kumpulan (num_batch)", "before": "sebelum,", "Being lazy": "Menjadi Malas", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Kunci API Carian Brave", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Batal", "Capabilities": "Keupayaan", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Tukar Kata Laluan", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Cipta kekunci baharu", "Create new secret key": "Cipta kekunci rahsia baharu", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Dicipta di", "Created At": "Dicipta Pada", "Created by": "Dicipta oleh", @@ -299,6 +309,7 @@ "Delete function?": "Padam fungsi?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Padam Gesaan?", "delete this link": "Padam pautan ini?", "Delete tool?": "Padam alat?", @@ -354,7 +365,7 @@ "Download Database": "Muat turun Pangkalan Data", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Letakkan mana-mana fail di sini untuk ditambahkan pada perbualan", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "cth '30s','10m'. Unit masa yang sah ialah 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Edit", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Benarkan Pendaftaran Baharu", "Enabled": "Dibenarkan", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "astikan fail CSV anda mengandungi 4 lajur dalam susunan ini: Nama, E-mel, Kata Laluan, Peranan.", "Enter {{role}} message here": "Masukkan mesej {{role}} di sini", "Enter a detail about yourself for your LLMs to recall": "Masukkan butiran tentang diri anda untuk diingati oleh LLM anda", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Masukkan Saiz 'Chunk'", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Masukkan URL 'Github Raw'", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Masukkan tag model (cth {{ modelTag }})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Masukkan Bilangan Langkah (cth 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Masukkan URL (cth http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Masukkan URL (cth http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Masukkan E-mel Anda", "Enter Your Full Name": "Masukkan Nama Penuh Anda", "Enter your message": "Masukkan mesej anda", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Masukkan Kata Laluan Anda", "Enter Your Role": "Masukkan Peranan Anda", @@ -480,6 +504,8 @@ "Error": "Ralat", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Eksport Alat", "External": "", "External Models": "Model Luaran", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Gagal mencipta kekunci API", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Gagal membaca konten papan klip", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Strim 'chunks' respons luaran yang besar dengan lancar", "Focus chat input": "Fokus kepada input perbualan", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Mengikut arahan dengan sempurna", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Fungsi berjaya dikemaskini", "Functions": "Fungsi", - "Functions allow arbitrary code execution": "Fungsi membenarkan pelaksanaan kod sewenang-wenangnya", "Functions allow arbitrary code execution.": "Fungsi membenarkan pelaksanaan kod sewenang-wenangnya.", "Functions imported successfully": "Fungsi berjaya diimport", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Umum", + "Generate": "", "Generate an image": "", "Generate Image": "Jana Imej", "Generate prompt pair": "", "Generating search query": "Jana pertanyaan carian", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "Import Fungsi", "Import Models": "Import Model", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Import Gesaan", "Import Tools": "Import Alat", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Hantar Secara Automatik Dengan Segera Selepas Transkripsi Suara", "Integration": "", "Interface": "Antaramuka", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Tag tidak sah", @@ -706,6 +740,7 @@ "Manage Pipelines": "Urus 'Pipelines'", "Manage Tool Servers": "", "March": "Mac", + "Max Speakers": "", "Max Tokens (num_predict)": "Token Maksimum ( num_predict )", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memori berjaya dihapuskan", "Memory updated successfully": "Memori berjaya dikemaskini", "Merge Responses": "", + "Merged Response": "Respons Digabungkan", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mesej yang anda hantar selepas membuat pautan anda tidak akan dikongsi. Pengguna dengan URL akan dapat melihat perbualan yang dikongsi.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "P Minimum", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Lagi", + "My Notes": "", "Name": "Nama", "Name your knowledge base": "", "Native": "", "New Chat": "Perbualan Baru", "New Folder": "", + "New Note": "", "New Password": "Kata Laluan Baru", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "Tiada kandungan untuk bercakap", "No distance available": "", "No feedbacks found": "", "No file selected": "Tiada fail dipilih", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Tiada keputusan dijumpai", "No search query generated": "Tiada pertanyaan carian dijana", "No source available": "Tiada sumber tersedia", @@ -782,6 +825,7 @@ "None": "Tiada", "Not factually correct": "Tidak tepat secara fakta", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Jika anda menetapkan skor minimum, carian hanya akan mengembalikan dokumen dengan skor lebih besar daripada atau sama dengan skor minimum.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Hanya aksara alfanumerik dan sempang dibenarkan dalam rentetan arahan.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Maaf, didapati URL tidak sah. Sila semak semula dan cuba lagi.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "'Pipeline'", "Pipelines Not Detected": "'Pipeline' tidak ditemui", "Pipelines Valves": "'Pipeline Valves'", + "Plain text (.md)": "", "Plain text (.txt)": "Teks biasa (.txt)", "Playground": "Taman Permainan", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Baca dengan lantang", "Reasoning Effort": "", + "Record": "", "Record voice": "Rakam suara", "Redirecting you to Open WebUI Community": "Membawa anda ke Komuniti OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Simpan Tag", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Penyimpanan log perbualan terus ke storan pelayan web anda tidak lagi disokong. Sila luangkan sedikit masa untuk memuat turun dan memadam log perbualan anda dengan mengklik butang di bawah. Jangan risau, anda boleh mengimport semula log perbualan anda dengan mudah melalui 'backend'", - "Scroll to bottom when switching between branches": "Skrol ke bawah apabila bertukar antara cawangan", + "Scroll On Branch Change": "", "Search": "Carian", "Search a model": "Cari Model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "encari \"{{ searchQuery }}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "URL Pertanyaan Searxng", "See readme.md for instructions": "Lihat readme.md untuk arahan", "See what's new": "Lihat apa yang terbaru", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Alatan ialah sistem panggilan fungsi dengan pelaksanaan kod sewenang-wenangnya", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Alatan mempunyai sistem panggilan fungsi yang membolehkan pelaksanaan kod sewenang-wenangnya", "Tools have a function calling system that allows arbitrary code execution.": "Alatan mempunyai sistem panggilan fungsi yang membolehkan pelaksanaan kod sewenang-wenangnya.", "Tools Public Sharing": "", "Top K": "'Top K'", @@ -1163,6 +1210,7 @@ "Unpin": "Nyahsematkan", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "Kemaskini", "Update and Copy Link": "Kemaskini dan salin pautan", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Muatnaik", "Upload a GGUF model": "Muatnaik model GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Muatnaik fail", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Tulis ringkasan dalam 50 patah perkataan yang meringkaskan [topik atau kata kunci].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Semalam", "You": "Anda", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Anda boleh memperibadikan interaksi anda dengan LLM dengan menambahkan memori melalui butang 'Urus' di bawah, menjadikannya lebih membantu dan disesuaikan dengan anda.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Anda tidak mempunyai perbualan yang diarkibkan", "You have shared this chat": "Anda telah berkongsi perbualan ini", diff --git a/src/lib/i18n/locales/nb-NO/translation.json b/src/lib/i18n/locales/nb-NO/translation.json index 59ec12e27..e0db76637 100644 --- a/src/lib/i18n/locales/nb-NO/translation.json +++ b/src/lib/i18n/locales/nb-NO/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(f.eks. `sh webui.sh --api --api-auth brukernavn_passord`)", "(e.g. `sh webui.sh --api`)": "(f.eks. `sh webui.sh --api`)", "(latest)": "(siste)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modeller }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Tillat sletting av chatter", "Allow Chat Deletion": "Tillat sletting av chatter", "Allow Chat Edit": "Tillat redigering av chatter", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Tillatt opplasting av filer", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Tillat ikke-lokale stemmer", @@ -76,6 +79,7 @@ "Always": "Alltid", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Flott", "an assistant": "en assistent", "Analyzed": "Analysert", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Er du sikker på at du vil slette denne kanalen?", "Are you sure you want to delete this message?": "Er du sikker på at du vil slette denne meldingen?", "Are you sure you want to unarchive all archived chats?": "Er du sikker på at du vil oppheve arkiveringen av alle arkiverte chatter?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Er du sikker?", "Arena Models": "Arena-modeller", "Artifacts": "Artifakter", @@ -135,6 +140,7 @@ "Bad Response": "Dårlig svar", "Banners": "Bannere", "Base Model (From)": "Grunnmodell (fra)", + "Base URL": "", "Batch Size (num_batch)": "Batchstørrelse (num_batch)", "before": "før", "Being lazy": "Er lat", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Abonnementsnøkkel for Bing Search V7", "Bocha Search API Key": "API-nøkkel for Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "API-nøkkel for Brave Search", "By {{name}}": "Etter {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Avbryt", "Capabilities": "Muligheter", "Capture": "Opptak", + "Capture Audio": "", "Certificate Path": "Sertifikatbane", "Change Password": "Endre passord", "Channel Name": "Kanalens navn", @@ -262,6 +270,8 @@ "Create Knowledge": "Opprett kunnskap", "Create new key": "Lag ny nøkkel", "Create new secret key": "Lag ny hemmelig nøkkel", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Opprettet", "Created At": "Opprettet", "Created by": "Opprettet av", @@ -299,6 +309,7 @@ "Delete function?": "Slette funksjon?", "Delete Message": "Slett melding", "Delete message?": "Slette melding?", + "Delete note?": "", "Delete prompt?": "Slette ledetekst?", "delete this link": "slett denne lenken", "Delete tool?": "Slette verktøy?", @@ -354,7 +365,7 @@ "Download Database": "Last ned database", "Drag and drop a file to upload or select a file to view": "Dra og slipp en fil for å laste den opp, eller velg en fil å vise den", "Draw": "Tegne", - "Drop any files here to add to the conversation": "Slipp filer her for å legge dem til i samtalen", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "f.eks. '30s','10m'. Gyldige tidsenheter er 's', 'm', 't'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "f.eks. 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "f.eks. mitt_filter", "e.g. my_tools": "f.eks. mine_verktøy", "e.g. Tools for performing various operations": "f.eks. Verktøy for å gjøre ulike handlinger", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Rediger", "Edit Arena Model": "Rediger Arena-modell", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Aktiver nye registreringer", "Enabled": "Aktivert", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Sørg for at CSV-filen din inkluderer fire kolonner i denne rekkefølgen: Navn, E-post, Passord, Rolle.", "Enter {{role}} message here": "Skriv inn {{role}} melding her", "Enter a detail about yourself for your LLMs to recall": "Skriv inn en detalj om deg selv som språkmodellene dine kan huske", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Angi Chunk-størrelse", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Angi beskrivelse", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "Angi endepunkt for Intelligens i dokumenter", "Enter Document Intelligence Key": "Angi nøkkel for Intelligens i dokumenter", "Enter domains separated by commas (e.g., example.com,site.org)": "Angi domener atskilt med komma (f.eks. eksempel.com, side.org)", "Enter Exa API Key": "Angi API-nøkkel for Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Angi Github Raw-URL", @@ -431,6 +450,7 @@ "Enter Model ID": "Angi modellens ID", "Enter model tag (e.g. {{modelTag}})": "Angi modellens etikett (f.eks. {{modelTag}})", "Enter Mojeek Search API Key": "Angi API-nøkkel for Mojeek-søk", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Angi antall steg (f.eks. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Angi URL (f.eks. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Angi URL (f.eks. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Angi det gjeldende passordet ditt", "Enter Your Email": "Skriv inn e-postadressen din", "Enter Your Full Name": "Skriv inn det fulle navnet ditt", "Enter your message": "Skriv inn din melding", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Angi ditt nye passord", "Enter Your Password": "Skriv inn passordet ditt", "Enter Your Role": "Skriv inn rollen din", @@ -480,6 +504,8 @@ "Error": "Feil", "ERROR": "FEIL", "Error accessing Google Drive: {{error}}": "Feil under tilgang til Google Disk: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Feil under opplasting av fil: {{error}}", "Evaluations": "Vurderinger", "Exa API Key": "API-nøkkel for Exa", @@ -511,10 +537,16 @@ "Export Tools": "Eksporter verktøy", "External": "", "External Models": "Eksterne modeller", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Kan ikke legge til filen.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Kan ikke opprette en API-nøkkel.", + "Failed to delete note": "", "Failed to fetch models": "Kan ikke hente modeller", + "Failed to load file content.": "", "Failed to read clipboard contents": "Kan ikke lese utklippstavlens innhold", "Failed to save connections": "", "Failed to save models configuration": "Kan ikke lagre konfigurasjonen av modeller", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Flytende strømming av store eksterne svarpakker", "Focus chat input": "Fokusert chat-inndata", "Folder deleted successfully": "Mappe slettet", - "Folder name cannot be empty": "Mappenavn kan ikke være tomt", "Folder name cannot be empty.": "Mappenavn kan ikke være tomt.", "Folder name updated successfully": "Mappenavn oppdatert", "Followed instructions perfectly": "Fulgte instruksjonene perfekt", @@ -565,17 +596,18 @@ "Function Name": "Funksjonens navn", "Function updated successfully": "Funksjonen er oppdatert", "Functions": "Funksjoner", - "Functions allow arbitrary code execution": "Funksjoner tillater vilkårlig kodekjøring", "Functions allow arbitrary code execution.": "Funksjoner tillater vilkårlig kodekjøring.", "Functions imported successfully": "Funksjoner er importert", "Gemini": "Gemini", "Gemini API Config": "Konfigurasjon", "Gemini API Key is required.": "Det kreves en API-nøkkel for Gemini.", "General": "Generelt", + "Generate": "", "Generate an image": "Genrer et bilde", "Generate Image": "Generer bilde", "Generate prompt pair": "Generer ledetekst-kombinasjon", "Generating search query": "Genererer søkespørring", + "Generating...": "", "Get started": "Kom i gang", "Get started with {{WEBUI_NAME}}": "Kom i gang med {{WEBUI_NAME}}", "Global": "Globalt", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importer konfigurasjon fra en JSON-fil", "Import Functions": "Importer funksjoner", "Import Models": "Importer modeller", + "Import Notes": "", "Import Presets": "Importer forhåndsinnstillinger", "Import Prompts": "Importer ledetekster", "Import Tools": "Importer verktøy", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Øyeblikkelig automatisk sending etter taletranskripsjon", "Integration": "", "Interface": "Grensesnitt", + "Invalid file content": "", "Invalid file format.": "Ugyldig filformat.", "Invalid JSON schema": "", "Invalid Tag": "Ugyldig etikett", @@ -706,6 +740,7 @@ "Manage Pipelines": "Behandle pipelines", "Manage Tool Servers": "", "March": "mars", + "Max Speakers": "", "Max Tokens (num_predict)": "Maks antall tokener (num_predict)", "Max Upload Count": "Maks antall opplastinger", "Max Upload Size": "Maks størrelse på opplasting", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Minne slettet", "Memory updated successfully": "Minne oppdatert", "Merge Responses": "Flette svar", + "Merged Response": "Sammenslått svar", "Message rating should be enabled to use this feature": "Vurdering av meldinger må være aktivert for å ta i bruk denne funksjonen", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Meldinger du sender etter at du har opprettet lenken, blir ikke delt. Brukere med URL-en vil kunne se den delte chatten.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "API-nøekkel for Mojeek Search", "more": "mer", "More": "Mer", + "My Notes": "", "Name": "Navn", "Name your knowledge base": "Gi kunnskapsbasen et navn", "Native": "Opprinnelig", "New Chat": "Ny chat", "New Folder": "Ny mappe", + "New Note": "", "New Password": "Nytt passord", "new-channel": "ny-kanal", + "No content": "", "No content found": "Finner ikke noe innhold", + "No content found in file.": "", "No content to speak": "Mangler innhold for tale", "No distance available": "Ingen avstand tilgjengelig", "No feedbacks found": "Finner ingen tilbakemeldinger", "No file selected": "Ingen fil valgt", - "No files found.": "Finner ingen filer", "No groups with access, add a group to grant access": "Ingen grupper med tilgang. Legg til en gruppe som skal ha tilgang.", "No HTML, CSS, or JavaScript content found.": "Finner ikke noe HTML, CSS- eller JavaScript-innhold.", "No inference engine with management support found": "Fant ingen konklusjonsmotor med støtte for administrasjon", @@ -774,6 +816,7 @@ "No model IDs": "Ingen modell-ID-er", "No models found": "Finner ingen modeller", "No models selected": "Ingen modeller er valgt", + "No Notes": "", "No results found": "Finner ingen resultater", "No search query generated": "Ingen søkespørringer er generert", "No source available": "Ingen kilde tilgjengelig", @@ -782,6 +825,7 @@ "None": "Ingen", "Not factually correct": "Uriktig informasjon", "Not helpful": "Ikke nyttig", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Merk: Hvis du setter en minimumspoengsum, returnerer søket kun dokumenter med en poengsum som er større enn eller lik minimumspoengsummen.", "Notes": "Notater", "Notification Sound": "Lyd for varsler", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Bare alfanumeriske tegn og bindestreker er tillatt", "Only alphanumeric characters and hyphens are allowed in the command string.": "Bare alfanumeriske tegn og bindestreker er tillatt i kommandostrengen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Bare samlinger kan redigeres, eller lag en ny kunnskapsbase for å kunne redigere / legge til dokumenter.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Bare utvalgte brukere og grupper med tillatelse kan få tilgang", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oi! Det ser ut som URL-en er ugyldig. Dobbeltsjekk, og prøv på nytt.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Oi! Det er fortsatt filer som lastes opp. Vent til opplastingen er ferdig.", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Ingen pipelines oppdaget", "Pipelines Valves": "Pipeline-ventiler", + "Plain text (.md)": "", "Plain text (.txt)": "Ren tekst (.txt)", "Playground": "Lekeplass", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Les", "Read Aloud": "Les høyt", "Reasoning Effort": "Resonneringsinnsats", + "Record": "", "Record voice": "Ta opp tale", "Redirecting you to Open WebUI Community": "Omdirigerer deg til OpenWebUI-fellesskapet", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "Lagre etikett", "Saved": "Lagret", "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": "Lagring av chattelogger direkte til nettleserens lagringsområde støttes ikke lenger. Ta et øyeblikk til å laste ned og slette chatteloggende dine ved å klikke på knappen nedenfor. Ikke bekymre deg, du kan enkelt importere chatteloggene dine til backend på nytt via", - "Scroll to bottom when switching between branches": "Bla til bunnen når du bytter mellom grener", + "Scroll On Branch Change": "", "Search": "Søk", "Search a model": "Søk etter en modell", "Search Base": "Søke etter base", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Søkte på {{count}} nettsider", "Searching \"{{searchQuery}}\"": "Søker etter \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Søker etter kunnskap for \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng forespørsels-URL", "See readme.md for instructions": "Se readme.md for å få instruksjoner", "See what's new": "Se hva som er nytt", @@ -1140,7 +1188,6 @@ "Tools Access": "Verktøyets tilgang", "Tools are a function calling system with arbitrary code execution": "Verktøy er et funksjonskallsystem med vilkårlig kodekjøring", "Tools Function Calling Prompt": "Ledetekst for kalling av verktøyfunksjonen", - "Tools have a function calling system that allows arbitrary code execution": "Verktøy inneholder et funksjonskallsystem som tillater vilkårlig kodekjøring", "Tools have a function calling system that allows arbitrary code execution.": "Verktøy inneholder et funksjonskallsystem som tillater vilkårlig kodekjøring.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Løsne", "Unravel secrets": "Avslør hemmeligheter", "Untagged": "Ikke merket", + "Untitled": "", "Update": "Oppdater", "Update and Copy Link": "Oppdater og kopier lenke", "Update for the latest features and improvements.": "Oppdater for å få siste funksjoner og forbedringer.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Oppgrader til en lisensplan for å få flere funksjoner, inkludert tilpasset temaer og merkevarebygging, og dedikert kundestøtte.", "Upload": "Last opp", "Upload a GGUF model": "Last opp en GGUF-modell", + "Upload Audio": "", "Upload directory": "Mappe for opplastinger", "Upload files": "Last opp filer", "Upload Files": "Last opp filer", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Skriv inn et sammendrag på 50 ord som oppsummerer [emne eller nøkkelord].", "Write something...": "Skriv inn noe...", "Write your model template content here": "Skriv inn modellens malinnhold her", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "I går", "You": "Du", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Du kan bare chatte med maksimalt {{maxCount}} fil(er) om gangen.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Du kan tilpasse interaksjonene dine med språkmodeller ved å legge til minner gjennom Administrer-knappen nedenfor, slik at de blir mer til nyttige og tilpasset deg.", "You cannot upload an empty file.": "Du kan ikke laste opp en tom fil.", - "You do not have permission to upload files": "Du har ikke tillatelse til å laste opp filer", "You do not have permission to upload files.": "Du har ikke tillatelse til å laste opp filer.", "You have no archived conversations.": "Du har ingen arkiverte samtaler.", "You have shared this chat": "Du har delt denne chatten", diff --git a/src/lib/i18n/locales/nl-NL/translation.json b/src/lib/i18n/locales/nl-NL/translation.json index 51bee7322..22e1af3bb 100644 --- a/src/lib/i18n/locales/nl-NL/translation.json +++ b/src/lib/i18n/locales/nl-NL/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(bv. `sh webui.sh --api --api-auth gebruikersnaam_wachtwoord`)", "(e.g. `sh webui.sh --api`)": "(bv. `sh webui.sh --api`)", "(latest)": "(nieuwste)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ modellen }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Chatverwijdering toestaan", "Allow Chat Deletion": "Chatverwijdering toestaan", "Allow Chat Edit": "Chatwijziging toestaan", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Bestandenupload toestaan", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Niet-lokale stemmen toestaan", @@ -76,6 +79,7 @@ "Always": "Altijd", "Always Collapse Code Blocks": "Codeblokken altijd inklappen", "Always Expand Details": "Details altijd uitklappen", + "Always Play Notification Sound": "", "Amazing": "Geweldig", "an assistant": "een assistent", "Analyzed": "Geanalyseerd", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Weet je zeker dat je dit kanaal wil verwijderen?", "Are you sure you want to delete this message?": "Weet je zeker dat je dit bericht wil verwijderen?", "Are you sure you want to unarchive all archived chats?": "Weet je zeker dat je alle gearchiveerde chats wil onarchiveren?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Weet je het zeker?", "Arena Models": "Arenamodellen", "Artifacts": "Artefacten", @@ -135,6 +140,7 @@ "Bad Response": "Ongeldig antwoord", "Banners": "Banners", "Base Model (From)": "Basismodel (Vanaf)", + "Base URL": "", "Batch Size (num_batch)": "Batchgrootte (num_batch)", "before": "voor", "Being lazy": "Lui zijn", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Search V7 Subscription Key", "Bocha Search API Key": "Bocha Search API-sleutel", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Versterken of bestraffen van specifieke tokens voor beperkte reacties. Biaswaarden worden geklemd tussen -100 en 100 (inclusief). (Standaard: none)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API-sleutel", "By {{name}}": "Op {{name}}", "Bypass Embedding and Retrieval": "Embedding en ophalen omzeilen ", @@ -153,6 +160,7 @@ "Cancel": "Annuleren", "Capabilities": "Mogelijkheden", "Capture": "Vangen", + "Capture Audio": "", "Certificate Path": "Certificaatpad", "Change Password": "Wijzig Wachtwoord", "Channel Name": "Kanaalnaam", @@ -262,6 +270,8 @@ "Create Knowledge": "Creër kennis", "Create new key": "Maak nieuwe sleutel", "Create new secret key": "Maak nieuwe geheime sleutel", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Gemaakt op", "Created At": "Gemaakt op", "Created by": "Gemaakt door", @@ -299,6 +309,7 @@ "Delete function?": "Verwijder functie?", "Delete Message": "Verwijder bericht", "Delete message?": "Verwijder bericht", + "Delete note?": "", "Delete prompt?": "Verwijder prompt?", "delete this link": "verwijder deze link", "Delete tool?": "Verwijder tool?", @@ -354,7 +365,7 @@ "Download Database": "Download database", "Drag and drop a file to upload or select a file to view": "Sleep een bestand om te uploaden of selecteer een bestand om te bekijken", "Draw": "Teken", - "Drop any files here to add to the conversation": "Sleep hier bestanden om toe te voegen aan het gesprek", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "bijv. '30s', '10m'. Geldige tijdseenheden zijn 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "bijv. \"json\" of een JSON-schema", "e.g. 60": "bijv. 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "bijv. mijn_filter", "e.g. my_tools": "bijv. mijn_gereedschappen", "e.g. Tools for performing various operations": "Gereedschappen om verschillende bewerkingen uit te voeren", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Wijzig", "Edit Arena Model": "Bewerk arenamodel", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Schakel nieuwe registraties in", "Enabled": "Ingeschakeld", "Enforce Temporary Chat": "Tijdelijke chat afdwingen", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Zorg ervoor dat uw CSV-bestand de volgende vier kolommen in deze volgorde bevat: Naam, E-mail, Wachtwoord, Rol.", "Enter {{role}} message here": "Voeg {{role}} bericht hier toe", "Enter a detail about yourself for your LLMs to recall": "Voer een detail over jezelf in zodat LLM's het kunnen onthouden", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Voeg Chunk Size toe", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Voer kommagescheiden \"token:bias_waarde\" paren in (bijv. 5432:100, 413:-100)", "Enter description": "Voer beschrijving in", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Voer Docling Server-URL in", "Enter Document Intelligence Endpoint": "Voer Document Intelligence endpoint in", "Enter Document Intelligence Key": "Voer Document Intelligence sleutel in", "Enter domains separated by commas (e.g., example.com,site.org)": "Voer domeinen in gescheiden met komma's (bijv., voorbeeld.com,site.org)", "Enter Exa API Key": "Voer Exa API-sleutel in", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Voer de Github Raw-URL in", @@ -431,6 +450,7 @@ "Enter Model ID": "Voer model-ID in", "Enter model tag (e.g. {{modelTag}})": "Voeg model-tag toe (Bijv. {{modelTag}})", "Enter Mojeek Search API Key": "Voer Mojeek Search API-sleutel in", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Voeg aantal stappen toe (Bijv. 50)", "Enter Perplexity API Key": "Voer Perplexity API-sleutel in", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Voer Tok K reranker in", "Enter URL (e.g. http://127.0.0.1:7860/)": "Voer URL in (Bijv. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Voer URL in (Bijv. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Voer je huidige wachtwoord in", "Enter Your Email": "Voer je Email in", "Enter Your Full Name": "Voer je Volledige Naam in", "Enter your message": "Voer je bericht in", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Voer je nieuwe wachtwoord in", "Enter Your Password": "Voer je wachtwoord in", "Enter Your Role": "Voer je rol in", @@ -480,6 +504,8 @@ "Error": "Fout", "ERROR": "ERROR", "Error accessing Google Drive: {{error}}": "Fout bij het benaderen van Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Error bij het uploaden van bestand: {{error}}", "Evaluations": "Beoordelingen", "Exa API Key": "Exa API-sleutel", @@ -511,10 +537,16 @@ "Export Tools": "Exporteer gereedschappen", "External": "Extern", "External Models": "Externe modules", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Het is niet gelukt om het bestand toe te voegen.", "Failed to connect to {{URL}} OpenAPI tool server": "Kan geen verbinding maken met {{URL}} OpenAPI gereedschapserver", "Failed to create API Key.": "Kan API Key niet aanmaken.", + "Failed to delete note": "", "Failed to fetch models": "Kan modellen niet ophalen", + "Failed to load file content.": "", "Failed to read clipboard contents": "Kan klembord inhoud niet lezen", "Failed to save connections": "", "Failed to save models configuration": "Het is niet gelukt om de modelconfiguratie op te slaan", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Stream grote externe responsbrokken vloeiend", "Focus chat input": "Focus chat input", "Folder deleted successfully": "Map succesvol verwijderd", - "Folder name cannot be empty": "Mapnaam kan niet leeg zijn", "Folder name cannot be empty.": "Mapnaam kan niet leeg zijn", "Folder name updated successfully": "Mapnaam succesvol aangepast", "Followed instructions perfectly": "Volgde instructies perfect", @@ -565,17 +596,18 @@ "Function Name": "Functienaam", "Function updated successfully": "Functienaam succesvol aangepast", "Functions": "Functies", - "Functions allow arbitrary code execution": "Functies staan willekeurige code-uitvoering toe", "Functions allow arbitrary code execution.": "Functies staan willekeurige code-uitvoering toe", "Functions imported successfully": "Functies succesvol geïmporteerd", "Gemini": "Gemini", "Gemini API Config": "Gemini API-configuratie", "Gemini API Key is required.": "Gemini API-sleutel is vereisd", "General": "Algemeen", + "Generate": "", "Generate an image": "Genereer een afbeelding", "Generate Image": "Genereer afbeelding", "Generate prompt pair": "Genereer promptpaar", "Generating search query": "Zoekopdracht genereren", + "Generating...": "", "Get started": "Begin", "Get started with {{WEBUI_NAME}}": "Begin met {{WEBUI_NAME}}", "Global": "Globaal", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importeer configuratie vanuit JSON-bestand", "Import Functions": "Importeer Functies", "Import Models": "Modellen importeren", + "Import Notes": "", "Import Presets": "Importeer voorinstellingen", "Import Prompts": "Importeer Prompts", "Import Tools": "Importeer Gereedschappen", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Direct automatisch verzenden na spraaktranscriptie", "Integration": "Integratie", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "Ongeldig bestandsformaat", "Invalid JSON schema": "Ongeldig JSON-schema", "Invalid Tag": "Ongeldige Tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Pijplijnen beheren", "Manage Tool Servers": "Beheer gereedschapservers", "March": "Maart", + "Max Speakers": "", "Max Tokens (num_predict)": "Max Tokens (num_predict)", "Max Upload Count": "Maximale Uploadhoeveelheid", "Max Upload Size": "Maximale Uploadgrootte", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Geheugen succesvol verwijderd", "Memory updated successfully": "Geheugen succesvol bijgewerkt", "Merge Responses": "Voeg antwoorden samen", + "Merged Response": "Samengevoegd antwoord", "Message rating should be enabled to use this feature": "Berichtbeoordeling moet ingeschakeld zijn om deze functie te gebruiken", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Berichten die je verzendt nadat je jouw link hebt gemaakt, worden niet gedeeld. Gebruikers met de URL kunnen de gedeelde chat bekijken.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API-sleutel", "more": "Meer", "More": "Meer", + "My Notes": "", "Name": "Naam", "Name your knowledge base": "Geef je kennisbasis een naam", "Native": "Native", "New Chat": "Nieuwe Chat", "New Folder": "Nieuwe map", + "New Note": "", "New Password": "Nieuw Wachtwoord", "new-channel": "nieuw-kanaal", + "No content": "", "No content found": "Geen content gevonden", + "No content found in file.": "", "No content to speak": "Geen inhoud om over te spreken", "No distance available": "Geen afstand beschikbaar", "No feedbacks found": "Geen feedback gevonden", "No file selected": "Geen bestand geselecteerd", - "No files found.": "Geen bestanden gevonden", "No groups with access, add a group to grant access": "Geen groepen met toegang, voeg een groep toe om toegang te geven", "No HTML, CSS, or JavaScript content found.": "Geen HTML, CSS, of JavaScript inhoud gevonden", "No inference engine with management support found": "Geen inferentie-engine met beheerondersteuning gevonden", @@ -774,6 +816,7 @@ "No model IDs": "Geen model-ID's", "No models found": "Geen modellen gevonden", "No models selected": "Geen modellen geselecteerd", + "No Notes": "", "No results found": "Geen resultaten gevonden", "No search query generated": "Geen zoekopdracht gegenereerd", "No source available": "Geen bron beschikbaar", @@ -782,6 +825,7 @@ "None": "Geen", "Not factually correct": "Niet feitelijk juist", "Not helpful": "Niet nuttig", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Opmerking: Als je een minimumscore instelt, levert de zoekopdracht alleen documenten op met een score groter dan of gelijk aan de minimumscore.", "Notes": "Aantekeningen", "Notification Sound": "Notificatiegeluid", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Alleen alfanumerieke tekens en koppeltekens zijn toegestaan", "Only alphanumeric characters and hyphens are allowed in the command string.": "Alleen alfanumerieke karakters en streepjes zijn toegestaan in de commando string.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Alleen verzamelinge kunnen gewijzigd worden, maak een nieuwe kennisbank aan om bestanden aan te passen/toe te voegen", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Alleen geselecteerde gebruikers en groepen met toestemming hebben toegang", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oeps! Het lijkt erop dat de URL ongeldig is. Controleer het nogmaals en probeer opnieuw.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Oeps! Er zijn nog bestanden aan het uploaden. Wacht tot het uploaden voltooid is.", @@ -849,6 +894,7 @@ "Pipelines": "Pijpleidingen", "Pipelines Not Detected": "Pijpleiding niet gedetecteerd", "Pipelines Valves": "Pijpleidingen Kleppen", + "Plain text (.md)": "", "Plain text (.txt)": "Platte tekst (.txt)", "Playground": "Speeltuin", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Voorlezen", "Read Aloud": "Voorlezen", "Reasoning Effort": "Redeneerinspanning", + "Record": "", "Record voice": "Neem stem op", "Redirecting you to Open WebUI Community": "Je wordt doorgestuurd naar OpenWebUI Community", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Vermindert de kans op het genereren van onzin. Een hogere waarde (bijv. 100) zal meer diverse antwoorden geven, terwijl een lagere waarde (bijv. 10) conservatiever zal zijn.", @@ -939,7 +986,7 @@ "Save Tag": "Bewaar Tag", "Saved": "Opgeslagen", "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": "Chat logs direct opslaan in de opslag van je browser wordt niet langer ondersteund. Neem even de tijd om je chat logs te downloaden en te verwijderen door op de knop hieronder te klikken. Maak je geen zorgen, je kunt je chat logs eenvoudig opnieuw importeren naar de backend via", - "Scroll to bottom when switching between branches": "Scroll naar onderen bij het wisselen tussen takken", + "Scroll On Branch Change": "", "Search": "Zoeken", "Search a model": "Zoek een model", "Search Base": "Zoeken naar basis", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Zocht op {{count}} sites", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" aan het zoeken.", "Searching Knowledge for \"{{searchQuery}}\"": "Zoek kennis bij \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "Zie readme.md voor instructies", "See what's new": "Zie wat er nieuw is", @@ -1140,7 +1188,6 @@ "Tools Access": "Gereedschaptoegang", "Tools are a function calling system with arbitrary code execution": "Gereedschappen zijn een systeem voor het aanroepen van functies met willekeurige code-uitvoering", "Tools Function Calling Prompt": "Gereedschapsfunctie aanroepprompt", - "Tools have a function calling system that allows arbitrary code execution": "Gereedschappen hebben een systeem voor het aanroepen van functies waarmee willekeurige code kan worden uitgevoerd", "Tools have a function calling system that allows arbitrary code execution.": "Gereedschappen hebben een systeem voor het aanroepen van functies waarmee willekeurige code kan worden uitgevoerd", "Tools Public Sharing": "Gereedschappen publiek delen", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Losmaken", "Unravel secrets": "Ontrafel geheimen", "Untagged": "Ongemarkeerd", + "Untitled": "", "Update": "Bijwerken", "Update and Copy Link": "Bijwerken en kopieer link", "Update for the latest features and improvements.": "Bijwerken voor de nieuwste functies en verbeteringen", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Upgrade naar een licentie voor meer mogelijkheden, waaronder aangepaste thematisering en branding, en speciale ondersteuning.", "Upload": "Uploaden", "Upload a GGUF model": "Upload een GGUF-model", + "Upload Audio": "", "Upload directory": "Upload map", "Upload files": "Bestanden uploaden", "Upload Files": "Bestanden uploaden", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Schrijf een samenvatting in 50 woorden die [onderwerp of trefwoord] samenvat.", "Write something...": "Schrijf iets...", "Write your model template content here": "Schrijf je modelsjablooninhoud hier", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Gisteren", "You": "Jij", "You are currently using a trial license. Please contact support to upgrade your license.": "Je gebruikt momenteel een proeflicentie. Neem contact op met de ondersteuning om je licentie te upgraden.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Je kunt slechts met maximaal {{maxCount}} bestand(en) tegelijk chatten", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Je kunt je interacties met LLM's personaliseren door herinneringen toe te voegen via de 'Beheer'-knop hieronder, waardoor ze nuttiger en voor jou op maat gemaakt worden.", "You cannot upload an empty file.": "Je kunt een leeg bestand niet uploaden.", - "You do not have permission to upload files": "Je hebt geen toestemming om bestanden up te loaden", "You do not have permission to upload files.": "Je hebt geen toestemming om bestanden up te loaden", "You have no archived conversations.": "Je hebt geen gearchiveerde gesprekken.", "You have shared this chat": "Je hebt dit gesprek gedeeld", diff --git a/src/lib/i18n/locales/pa-IN/translation.json b/src/lib/i18n/locales/pa-IN/translation.json index ad3409ab0..ffb4f0d4e 100644 --- a/src/lib/i18n/locales/pa-IN/translation.json +++ b/src/lib/i18n/locales/pa-IN/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(ਉਦਾਹਰਣ ਦੇ ਤੌਰ ਤੇ `sh webui.sh --api`)", "(latest)": "(ਤਾਜ਼ਾ)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ ਮਾਡਲ }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "ਗੱਲਬਾਤ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "ਇੱਕ ਸਹਾਇਕ", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "ਕੀ ਤੁਸੀਂ ਯਕੀਨਨ ਹੋ?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "ਖਰਾਬ ਜਵਾਬ", "Banners": "ਬੈਨਰ", "Base Model (From)": "ਬੇਸ ਮਾਡਲ (ਤੋਂ)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "ਪਹਿਲਾਂ", "Being lazy": "ਆਲਸੀ ਹੋਣਾ", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "ਬਹਾਦਰ ਖੋਜ API ਕੁੰਜੀ", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "ਰੱਦ ਕਰੋ", "Capabilities": "ਸਮਰੱਥਾਵਾਂ", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "ਪਾਸਵਰਡ ਬਦਲੋ", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "ਨਵੀਂ ਕੁੰਜੀ ਬਣਾਓ", "Create new secret key": "ਨਵੀਂ ਗੁਪਤ ਕੁੰਜੀ ਬਣਾਓ", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "ਤੇ ਬਣਾਇਆ ਗਿਆ", "Created At": "ਤੇ ਬਣਾਇਆ ਗਿਆ", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "ਇਸ ਲਿੰਕ ਨੂੰ ਮਿਟਾਓ", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "ਡਾਟਾਬੇਸ ਡਾਊਨਲੋਡ ਕਰੋ", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "ਗੱਲਬਾਤ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕੋਈ ਵੀ ਫਾਈਲ ਇੱਥੇ ਛੱਡੋ", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ਉਦਾਹਰਣ ਲਈ '30ਸ','10ਮਿ'. ਸਹੀ ਸਮਾਂ ਇਕਾਈਆਂ ਹਨ 'ਸ', 'ਮ', 'ਘੰ'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "ਸੰਪਾਦਨ ਕਰੋ", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "ਨਵੇਂ ਸਾਈਨ ਅਪ ਯੋਗ ਕਰੋ", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ਸੁਨਿਸ਼ਚਿਤ ਕਰੋ ਕਿ ਤੁਹਾਡੀ CSV ਫਾਈਲ ਵਿੱਚ ਇਸ ਕ੍ਰਮ ਵਿੱਚ 4 ਕਾਲਮ ਹਨ: ਨਾਮ, ਈਮੇਲ, ਪਾਸਵਰਡ, ਭੂਮਿਕਾ।", "Enter {{role}} message here": "{{role}} ਸੁਨੇਹਾ ਇੱਥੇ ਦਰਜ ਕਰੋ", "Enter a detail about yourself for your LLMs to recall": "ਤੁਹਾਡੇ LLMs ਨੂੰ ਸੁਨੇਹਾ ਕਰਨ ਲਈ ਸੁਨੇਹਾ ਇੱਥੇ ਦਰਜ ਕਰੋ", @@ -409,11 +422,17 @@ "Enter Chunk Size": "ਚੰਕ ਆਕਾਰ ਦਰਜ ਕਰੋ", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Github ਕੱਚਾ URL ਦਾਖਲ ਕਰੋ", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "ਮਾਡਲ ਟੈਗ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "ਕਦਮਾਂ ਦੀ ਗਿਣਤੀ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "URL ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "ਆਪਣੀ ਈਮੇਲ ਦਰਜ ਕਰੋ", "Enter Your Full Name": "ਆਪਣਾ ਪੂਰਾ ਨਾਮ ਦਰਜ ਕਰੋ", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "ਆਪਣਾ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ", "Enter Your Role": "ਆਪਣੀ ਭੂਮਿਕਾ ਦਰਜ ਕਰੋ", @@ -480,6 +504,8 @@ "Error": "ਗਲਤੀ", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API ਕੁੰਜੀ ਬਣਾਉਣ ਵਿੱਚ ਅਸਫਲ।", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "ਕਲਿੱਪਬੋਰਡ ਸਮੱਗਰੀ ਪੜ੍ਹਣ ਵਿੱਚ ਅਸਫਲ", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "ਵੱਡੇ ਬਾਹਰੀ ਜਵਾਬ ਚੰਕਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸਟ੍ਰੀਮ ਕਰੋ", "Focus chat input": "ਗੱਲਬਾਤ ਇਨਪੁਟ 'ਤੇ ਧਿਆਨ ਦਿਓ", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "ਹਦਾਇਤਾਂ ਨੂੰ ਬਿਲਕੁਲ ਫਾਲੋ ਕੀਤਾ", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "ਆਮ", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "ਖੋਜ ਪੁੱਛਗਿੱਛ ਤਿਆਰ ਕਰਨਾ", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "ਮਾਡਲ ਆਯਾਤ ਕਰੋ", + "Import Notes": "", "Import Presets": "", "Import Prompts": "ਪ੍ਰੰਪਟ ਆਯਾਤ ਕਰੋ", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "ਇੰਟਰਫੇਸ", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "ਗਲਤ ਟੈਗ", @@ -706,6 +740,7 @@ "Manage Pipelines": "ਪਾਈਪਲਾਈਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ", "Manage Tool Servers": "", "March": "ਮਾਰਚ", + "Max Speakers": "", "Max Tokens (num_predict)": "ਮੈਕਸ ਟੋਕਨ (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "ਮਿਲਾਇਆ ਗਿਆ ਜਵਾਬ", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "ਤੁਹਾਡਾ ਲਿੰਕ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡੇ ਵੱਲੋਂ ਭੇਜੇ ਗਏ ਸੁਨੇਹੇ ਸਾਂਝੇ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ। URL ਵਾਲੇ ਉਪਭੋਗਤਾ ਸਾਂਝੀ ਚੈਟ ਨੂੰ ਵੇਖ ਸਕਣਗੇ।", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "ਮਿਰੋਸਟੈਟ", "Mirostat Eta": "ਮਿਰੋਸਟੈਟ ਈਟਾ", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "ਹੋਰ", + "My Notes": "", "Name": "ਨਾਮ", "Name your knowledge base": "", "Native": "", "New Chat": "ਨਵੀਂ ਗੱਲਬਾਤ", "New Folder": "", + "New Note": "", "New Password": "ਨਵਾਂ ਪਾਸਵਰਡ", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ", "No search query generated": "ਕੋਈ ਖੋਜ ਪੁੱਛਗਿੱਛ ਤਿਆਰ ਨਹੀਂ ਕੀਤੀ ਗਈ", "No source available": "ਕੋਈ ਸਰੋਤ ਉਪਲਬਧ ਨਹੀਂ", @@ -782,6 +825,7 @@ "None": "ਕੋਈ ਨਹੀਂ", "Not factually correct": "ਤੱਥਕ ਰੂਪ ਵਿੱਚ ਸਹੀ ਨਹੀਂ", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "ਨੋਟ: ਜੇ ਤੁਸੀਂ ਘੱਟੋ-ਘੱਟ ਸਕੋਰ ਸੈੱਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਖੋਜ ਸਿਰਫ਼ ਉਹੀ ਡਾਕੂਮੈਂਟ ਵਾਪਸ ਕਰੇਗੀ ਜਿਨ੍ਹਾਂ ਦਾ ਸਕੋਰ ਘੱਟੋ-ਘੱਟ ਸਕੋਰ ਦੇ ਬਰਾਬਰ ਜਾਂ ਵੱਧ ਹੋਵੇ।", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "ਕਮਾਂਡ ਸਤਰ ਵਿੱਚ ਸਿਰਫ਼ ਅਲਫ਼ਾਨਯੂਮੈਰਿਕ ਅੱਖਰ ਅਤੇ ਹਾਈਫਨ ਦੀ ਆਗਿਆ ਹੈ।", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "ਓਹੋ! ਲੱਗਦਾ ਹੈ ਕਿ URL ਗਲਤ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰੋ ਅਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "ਪਾਈਪਲਾਈਨਾਂ", "Pipelines Not Detected": "", "Pipelines Valves": "ਪਾਈਪਲਾਈਨਾਂ ਵਾਲਵ", + "Plain text (.md)": "", "Plain text (.txt)": "ਸਧਾਰਨ ਪਾਠ (.txt)", "Playground": "ਖੇਡ ਦਾ ਮੈਦਾਨ", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "ਜੋਰ ਨਾਲ ਪੜ੍ਹੋ", "Reasoning Effort": "", + "Record": "", "Record voice": "ਆਵਾਜ਼ ਰਿਕਾਰਡ ਕਰੋ", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਸਟੋਰੇਜ ਵਿੱਚ ਸਿੱਧੇ ਗੱਲਬਾਤ ਲੌਗ ਸੰਭਾਲਣਾ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੇ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਆਪਣੇ ਗੱਲਬਾਤ ਲੌਗ ਡਾਊਨਲੋਡ ਅਤੇ ਮਿਟਾਉਣ ਲਈ ਕੁਝ ਸਮਾਂ ਲਓ। ਚਿੰਤਾ ਨਾ ਕਰੋ, ਤੁਸੀਂ ਆਪਣੇ ਗੱਲਬਾਤ ਲੌਗ ਨੂੰ ਬੈਕਐਂਡ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਮੁੜ ਆਯਾਤ ਕਰ ਸਕਦੇ ਹੋ", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "ਖੋਜ", "Search a model": "ਇੱਕ ਮਾਡਲ ਖੋਜੋ", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "ਹਦਾਇਤਾਂ ਲਈ readme.md ਵੇਖੋ", "See what's new": "ਨਵਾਂ ਕੀ ਹੈ ਵੇਖੋ", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "ਸਿਖਰ K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "ਇੱਕ GGUF ਮਾਡਲ ਅਪਲੋਡ ਕਰੋ", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "50 ਸ਼ਬਦਾਂ ਵਿੱਚ ਇੱਕ ਸੰਖੇਪ ਲਿਖੋ ਜੋ [ਵਿਸ਼ਾ ਜਾਂ ਕੁੰਜੀ ਸ਼ਬਦ] ਨੂੰ ਸੰਖੇਪ ਕਰਦਾ ਹੈ।", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "ਕੱਲ੍ਹ", "You": "ਤੁਸੀਂ", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਆਰਕਾਈਵ ਕੀਤੀਆਂ ਗੱਲਾਂ ਨਹੀਂ ਹਨ।", "You have shared this chat": "ਤੁਸੀਂ ਇਹ ਗੱਲਬਾਤ ਸਾਂਝੀ ਕੀਤੀ ਹੈ", diff --git a/src/lib/i18n/locales/pl-PL/translation.json b/src/lib/i18n/locales/pl-PL/translation.json index 66d6d138f..98290c7af 100644 --- a/src/lib/i18n/locales/pl-PL/translation.json +++ b/src/lib/i18n/locales/pl-PL/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(np. `sh webui.sh --api --api-auth username_password`)>", "(e.g. `sh webui.sh --api`)": "(np. `sh webui.sh --api`)", "(latest)": "(najnowszy)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modele }}", "{{COUNT}} Available Tools": "", @@ -43,7 +44,7 @@ "Add Reaction": "Dodaj reakcję", "Add Tag": "Dodaj tag", "Add Tags": "Dodaj tagi", - "Add text content": "Dodaj tekstową zawartość", + "Add text content": "Dodaj zawartość tekstową", "Add User": "Dodaj użytkownika", "Add User Group": "Dodaj grupę użytkowników", "Adjusting these settings will apply changes universally to all users.": "Dostosowanie tych ustawień spowoduje wprowadzenie zmian dla wszystkich użytkowników.", @@ -54,7 +55,7 @@ "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratorzy mają dostęp do wszystkich narzędzi przez cały czas; użytkownicy muszą mieć przydzielone narzędzia dla każdego modelu w przestrzeni roboczej.", "Advanced Parameters": "Zaawansowane ustawienia", "Advanced Params": "Zaawansowane ustawienia", - "All": "", + "All": "Wszystkie", "All Documents": "Wszystkie dokumenty", "All models deleted successfully": "Wszystkie modele zostały usunięte pomyślnie.", "Allow Call": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Zezwól na usunięcie czatu", "Allow Chat Deletion": "Zezwól na usuwanie czatu", "Allow Chat Edit": "Zezwól na edycję czatu", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Pozwól na przesyłanie plików", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Pozwól na głosy spoza lokalnej społeczności", @@ -74,8 +77,9 @@ "Already have an account?": "Czy masz już konto?", "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": "Zawsze", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", + "Always Collapse Code Blocks": "Zawsze zwijaj bloki kodu", + "Always Expand Details": "Zawsze rozwiń szczegóły", + "Always Play Notification Sound": "", "Amazing": "Niesamowite", "an assistant": "asystent", "Analyzed": "Przeanalizowane", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Czy na pewno chcesz usunąć ten kanał?", "Are you sure you want to delete this message?": "Czy na pewno chcesz usunąć tę wiadomość?", "Are you sure you want to unarchive all archived chats?": "Czy na pewno chcesz przywrócić wszystkie zapisane rozmowy?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Czy jesteś pewien?", "Arena Models": "Modele Areny", "Artifacts": "Artefakty", @@ -135,6 +140,7 @@ "Bad Response": "Nieprawidłowa odpowiedź", "Banners": "Bannery", "Base Model (From)": "Model bazowy (od)", + "Base URL": "", "Batch Size (num_batch)": "Rozmiar partii (num_batch)", "before": "przed", "Being lazy": "Jest leniwy.", @@ -143,16 +149,18 @@ "Bing Search V7 Subscription Key": "Klucz subskrypcji Wyszukiwarki Bing V7", "Bocha Search API Key": "Klucz API Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Klucz API wyszukiwania Brave", "By {{name}}": "Przez {{name}}", "Bypass Embedding and Retrieval": "", "Calendar": "Kalendarz", - "Call": "Wywołanie", - "Call feature is not supported when using Web STT engine": "Funkcja wywołania nie jest obsługiwana podczas korzystania z silnika Web STT", + "Call": "Rozmowa", + "Call feature is not supported when using Web STT engine": "Funkcja rozmowy nie jest obsługiwana podczas korzystania z silnika Web STT", "Camera": "Kamera", "Cancel": "Anuluj", "Capabilities": "Możliwości", "Capture": "Przechwyć", + "Capture Audio": "", "Certificate Path": "Ścieżka certyfikatu", "Change Password": "Zmień hasło", "Channel Name": "Nazwa kanału", @@ -193,14 +201,14 @@ "click here.": "kliknij tutaj.", "Click on the user role button to change a user's role.": "Kliknij przycisk roli użytkownika, aby zmienić jego uprawnienia.", "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Nie można było skopiować do schowka. Sprawdź ustawienia przeglądarki, aby przyznać wymagany dostęp.", - "Clone": "Sklonuj", + "Clone": "Duplikuj", "Clone Chat": "Sklonuj czat", "Clone of {{TITLE}}": "Klon {{TITLE}}", "Close": "Zamknij", "Code execution": "Wykonanie kodu", "Code Execution": "Wykonanie kodu", "Code Execution Engine": "Silnik wykonawczy kodu", - "Code Execution Timeout": "Limit czasu wykonania kodu", + "Code Execution Timeout": "Limit czasu wykonywania kodu", "Code formatted successfully": "Kod został sformatowany pomyślnie.", "Code Interpreter": "Interpreter kodu", "Code Interpreter Engine": "Silnik interpretatora kodu", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "Skopiowano udostępniony URL czatu do schowka!", "Copied to clipboard": "Skopiowane do schowka", "Copy": "Skopiuj", - "Copy Formatted Text": "", + "Copy Formatted Text": "Skopiuj sformatowany tekst", "Copy last code block": "Skopiuj ostatni fragment kodu", "Copy last response": "Skopiuj ostatnią wypowiedź", "Copy Link": "Skopiuj link", @@ -262,6 +270,8 @@ "Create Knowledge": "Utwórz wiedzę", "Create new key": "Utwórz nowy klucz", "Create new secret key": "Utwórz nowy secret key", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Utworzono o", "Created At": "Utworzono o", "Created by": "Stworzone przez", @@ -283,7 +293,7 @@ "Default Models": "Domyślne modele", "Default permissions": "Domyślne uprawnienia", "Default permissions updated successfully": "Domyślne uprawnienia zaktualizowane pomyślnie", - "Default Prompt Suggestions": "Domyślne propozycje wpisów", + "Default Prompt Suggestions": "Domyślne propozycje promptów", "Default to 389 or 636 if TLS is enabled": "Domyślnie użyj 389 lub 636, jeśli TLS jest włączony", "Default to ALL": "Domyślne dla wszystkich", "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "", @@ -299,6 +309,7 @@ "Delete function?": "Czy na pewno chcesz usunąć funkcję?", "Delete Message": "Usuń wiadomość", "Delete message?": "Usuń wiadomość?", + "Delete note?": "", "Delete prompt?": "Czy chcesz usunąć prompt?", "delete this link": "usuń to połączenie", "Delete tool?": "Usunąć narzędzie?", @@ -316,12 +327,12 @@ "Direct Connections settings updated": "Ustawienia połączeń bezpośrednich zaktualizowane", "Direct Tool Servers": "", "Disabled": "Wyłączony", - "Discover a function": "Odkryj funkcję", - "Discover a model": "Odkryj model", - "Discover a prompt": "Odkryj prompty", - "Discover a tool": "Odkryj narzędzie", + "Discover a function": "Odkrywaj funkcję", + "Discover a model": "Odkrywaj model", + "Discover a prompt": "Odkrywaj prompty", + "Discover a tool": "Odkrywaj narzędzia", "Discover how to use Open WebUI and seek support from the community.": "Odkryj, jak korzystać z Open WebUI i szukaj wsparcia w społeczności.", - "Discover wonders": "Odkryj cuda", + "Discover wonders": "Odkrywaj cuda", "Discover, download, and explore custom functions": "Odkryj, pobierz i eksploruj niestandardowe funkcje", "Discover, download, and explore custom prompts": "Odkryj, pobierz i eksploruj niestandardowe prompty", "Discover, download, and explore custom tools": "Odkryj, pobierz i eksploruj niestandardowe narzędzia", @@ -354,7 +365,7 @@ "Download Database": "Pobierz bazę danych", "Drag and drop a file to upload or select a file to view": "Przeciągnij i upuść plik, aby go przesłać lub wybierz plik, aby go wyświetlić.", "Draw": "Rysuj", - "Drop any files here to add to the conversation": "Przeciągnij i upuść pliki tutaj, aby dodać je do rozmowy.", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "np. '30s', '10m'. Poprawne jednostki czasu to: 's' (sekunda), 'm' (minuta), 'h' (godzina).", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "np. moj_filtr", "e.g. my_tools": "np. moje_narzędzia", "e.g. Tools for performing various operations": "np. Narzędzia do wykonywania różnych operacji", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Edytuj", "Edit Arena Model": "Edytuj model arenę", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Włącz nowe rejestracje", "Enabled": "Włączone", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Upewnij się, że twój plik CSV zawiera dokładnie 4 kolumny w następującej kolejności: Nazwa, Email, Hasło, Rola.", "Enter {{role}} message here": "Wprowadź komunikat dla {{role}} tutaj", "Enter a detail about yourself for your LLMs to recall": "Podaj informacje o sobie, aby LLMs mogły je przypomnieć.", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Wprowadź wielkość bloku", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Wprowadź opis", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "Wprowadź domeny oddzielone przecinkami (np. example.com, site.org)", "Enter Exa API Key": "Wprowadź klucz API Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Wprowadź surowy adres URL usługi GitHub", @@ -425,12 +444,13 @@ "Enter Jupyter Token": "Wprowadź token Jupyter", "Enter Jupyter URL": "Podaj adres URL Jupytera", "Enter Kagi Search API Key": "Wprowadź klucz wyszukiwania Kagi", - "Enter Key Behavior": "", + "Enter Key Behavior": "Zachowanie klawisza Enter", "Enter language codes": "Wprowadź kody języków", "Enter Mistral API Key": "", "Enter Model ID": "Wprowadź ID modelu", "Enter model tag (e.g. {{modelTag}})": "Wprowadź znacznik modelu (np. {{modelTag}})", "Enter Mojeek Search API Key": "Wprowadź klucz API Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Podaj liczbę kroków (np. 50)", "Enter Perplexity API Key": "Klucz API Perplexity", "Enter Playwright Timeout": "", @@ -455,7 +475,7 @@ "Enter Sougou Search API sID": "", "Enter Sougou Search API SK": "", "Enter stop sequence": "Wprowadź sekwencję stop", - "Enter system prompt": "Wprowadź polecenie systemowe", + "Enter system prompt": "Wprowadź prompt systemowy", "Enter system prompt here": "", "Enter Tavily API Key": "Wprowadź klucz API Tavily", "Enter Tavily Extract Depth": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Podaj adres URL (np. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Wprowadź adres URL (np. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Wprowadź swoje aktualne hasło", "Enter Your Email": "Podaj swój adres e-mail", "Enter Your Full Name": "Podaj swoje pełne imię i nazwisko", "Enter your message": "Wprowadź swój komunikat", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Wprowadź nowe hasło", "Enter Your Password": "Wprowadź swoje hasło", "Enter Your Role": "Podaj swoją rolę", @@ -480,6 +504,8 @@ "Error": "Błąd", "ERROR": "BŁĄD", "Error accessing Google Drive: {{error}}": "Błąd podczas dostępu do Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Błąd podczas przesyłania pliku: {{error}}", "Evaluations": "Oceny", "Exa API Key": "Klucz API Exa", @@ -511,10 +537,16 @@ "Export Tools": "Eksportuj narzędzia", "External": "", "External Models": "Modele lokalne", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Nie udało się dodać pliku.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Nie udało się wygenerować klucza API.", + "Failed to delete note": "", "Failed to fetch models": "Nie udało się pobrać modeli", + "Failed to load file content.": "", "Failed to read clipboard contents": "Nie udało się odczytać zawartości schowka", "Failed to save connections": "", "Failed to save models configuration": "Nie udało się zapisać konfiguracji modelu", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Płynnie strumieniuj duże fragmenty odpowiedzi zewnętrznych", "Focus chat input": "Skup się na czacie", "Folder deleted successfully": "Folder został usunięty pomyślnie", - "Folder name cannot be empty": "Nazwa folderu nie może być pusta", "Folder name cannot be empty.": "Nazwa folderu nie może być pusta.", "Folder name updated successfully": "Nazwa folderu została zaktualizowana pomyślnie", "Followed instructions perfectly": "Wykonał instrukcje idealnie", @@ -565,17 +596,18 @@ "Function Name": "Nazwa Funkcji", "Function updated successfully": "Funkcja została zaktualizowana pomyślnie", "Functions": "Funkcje", - "Functions allow arbitrary code execution": "Funkcje umożliwiają wykonanie dowolnego kodu", "Functions allow arbitrary code execution.": "Funkcje umożliwiają wykonanie dowolnego kodu.", "Functions imported successfully": "Funkcje zostały pomyślnie zaimportowane", "Gemini": "Gemini", "Gemini API Config": "Konfiguracja API Gemini", "Gemini API Key is required.": "Wymagany jest klucz API Gemini.", "General": "Ogólne", + "Generate": "", "Generate an image": "Wygeneruj obraz", "Generate Image": "Wygeneruj obraz", "Generate prompt pair": "", "Generating search query": "Tworzenie zapytania wyszukiwania", + "Generating...": "", "Get started": "Rozpocznij", "Get started with {{WEBUI_NAME}}": "Rozpocznij pracę z {{WEBUI_NAME}}", "Global": "Globalny", @@ -622,9 +654,10 @@ "Import Config from JSON File": "Importuj konfigurację z pliku JSON", "Import Functions": "Importowanie funkcji", "Import Models": "Importowanie modeli", + "Import Notes": "", "Import Presets": "Importuj ustawienia", "Import Prompts": "Importuj prompty", - "Import Tools": "Import narzędzi", + "Import Tools": "Importuj narzędzia", "Include": "Włączyć", "Include `--api-auth` flag when running stable-diffusion-webui": "Użyj flagi `--api-auth` podczas uruchamiania stable-diffusion-webui", "Include `--api` flag when running stable-diffusion-webui": "Użyj flagi `--api` podczas uruchamiania stable-diffusion-webui.", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Automatyczne natychmiastowe wysyłanie po transkrypcji głosowej", "Integration": "", "Interface": "Interfejs", + "Invalid file content": "", "Invalid file format.": "Nieprawidłowy format pliku.", "Invalid JSON schema": "Nieprawidłowy schemat JSON", "Invalid Tag": "Nieprawidłowy tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Zarządzanie przepływem", "Manage Tool Servers": "", "March": "Marzec", + "Max Speakers": "", "Max Tokens (num_predict)": "Maksymalna liczba tokenów (num_predict)", "Max Upload Count": "Maksymalna liczba przesyłanych plików", "Max Upload Size": "Maksymalny rozmiar przesyłanego pliku", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Pamięć została usunięta pomyślnie", "Memory updated successfully": "Pamięć zaktualizowana pomyślnie", "Merge Responses": "Scalaj odpowiedzi ", + "Merged Response": "Połączona odpowiedź", "Message rating should be enabled to use this feature": "Ocena wiadomości powinna być włączona, aby korzystać z tej funkcji.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Wiadomości wysyłane po utworzeniu linku nie będą udostępniane. Użytkownicy z adresem URL będą mogli wyświetlić udostępnioną rozmowę.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Klucz API Mojeek Search", "more": "więcej", "More": "Więcej", + "My Notes": "", "Name": "Nazwa", "Name your knowledge base": "Nazwij swoją bazę wiedzy", "Native": "Rodzimy", "New Chat": "Nowy czat", "New Folder": "Nowy Folder", + "New Note": "", "New Password": "Nowe hasło", "new-channel": "nowy-kanał", + "No content": "", "No content found": "Nie znaleziono żadnej zawartości.", + "No content found in file.": "", "No content to speak": "Brak treści do omówienia", "No distance available": "Brak dostępnej odległości", "No feedbacks found": "Nie znaleziono żadnych opinii", "No file selected": "Nie wybrano żadnego pliku", - "No files found.": "Nie znaleziono żadnych plików.", "No groups with access, add a group to grant access": "Brak grup z dostępem, dodaj grupę, aby przyznać dostęp", "No HTML, CSS, or JavaScript content found.": "Nie znaleziono żadnej zawartości HTML, CSS ani JavaScript.", "No inference engine with management support found": "Nie znaleziono silnika wnioskującego z obsługą zarządzania", @@ -774,6 +816,7 @@ "No model IDs": "Brak identyfikatorów modeli", "No models found": "Nie znaleziono modeli", "No models selected": "Brak wybranych modeli", + "No Notes": "", "No results found": "Brak wyników", "No search query generated": "Nie wygenerowano żadnego zapytania wyszukiwania", "No source available": "Źródło nie jest dostępne.", @@ -782,6 +825,7 @@ "None": "Brak", "Not factually correct": "Niezgodne z rzeczywistością", "Not helpful": "Nieprzydatne", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Uwaga: Jeśli określisz minimalną punktację, wyszukiwanie zwróci tylko dokumenty o wyniku równym lub wyższym niż minimalna punktacja.", "Notes": "Uwagi", "Notification Sound": "Dźwięk powiadomienia", @@ -792,18 +836,19 @@ "num_thread (Ollama)": "num_thread (Ollama)", "OAuth ID": "Identyfikator OAuth", "October": "Październik", - "Off": "Wyłączony", + "Off": "Wyłączone", "Okay, Let's Go!": "Okej, do dzieła!", "OLED Dark": "Ciemny OLED", "Ollama": "Ollama", "Ollama API": "Interfejs API Ollama", "Ollama API settings updated": "Ustawienia API Ollama zostały zaktualizowane", "Ollama Version": "Wersja Ollama", - "On": "Włączony", + "On": "Włączone", "OneDrive": "", "Only alphanumeric characters and hyphens are allowed": "Dozwolone są tylko znaki alfanumeryczne i myślniki", "Only alphanumeric characters and hyphens are allowed in the command string.": "W komendzie dozwolone są wyłącznie znaki alfanumeryczne i myślniki.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Tylko kolekcje można edytować, utwórz nową bazę wiedzy, aby edytować/dodawać dokumenty.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Tylko wybrani użytkownicy i grupy z uprawnieniami mogą uzyskać dostęp.", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oops! Wygląda na to, że podany URL jest nieprawidłowy. Proszę sprawdzić go ponownie i spróbować jeszcze raz.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Oops! Nadal trwa przesyłanie plików. Proszę poczekać, aż przesyłanie zostanie ukończone.", @@ -849,13 +894,14 @@ "Pipelines": "Przepływy", "Pipelines Not Detected": "Przepływ nie wykryty", "Pipelines Valves": "Przepływy i Zawory", + "Plain text (.md)": "", "Plain text (.txt)": "Zwykły tekst (.txt)", "Playground": "Plac zabaw", "Playwright Timeout (ms)": "", "Playwright WebSocket URL": "", "Please carefully review the following warnings:": "Proszę uważnie przejrzeć poniższe ostrzeżenia:", "Please do not close the settings page while loading the model.": "Proszę nie zamykać strony ustawień podczas ładowania modelu.", - "Please enter a prompt": "Proszę podać promp", + "Please enter a prompt": "Proszę podać prompt", "Please enter a valid path": "", "Please enter a valid URL": "", "Please fill in all fields.": "Proszę wypełnić wszystkie pola.", @@ -874,7 +920,7 @@ "Prompt": "Wprowadź prompt: ", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (np. podaj ciekawostkę o Imperium Rzymskim)", "Prompt Autocompletion": "", - "Prompt Content": "Treść podpowiedzi", + "Prompt Content": "Treść promptu", "Prompt created successfully": "Prompt został utworzony pomyślnie", "Prompt suggestions": "Sugestie promptów", "Prompt updated successfully": "Prompt został zaktualizowany pomyślnie.", @@ -891,10 +937,11 @@ "Read": "Czytaj", "Read Aloud": "Czytaj na głos", "Reasoning Effort": "Wysiłek rozumowania", + "Record": "", "Record voice": "Nagraj swój głos", "Redirecting you to Open WebUI Community": "Przekierowujemy Cię do społeczności Open WebUI", "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.": "", - "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Odnosić się do siebie jako \"Użytkownik\" (np. \"Użytkownik uczy się hiszpańskiego\")", + "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Odnoś się do mnie jako \"Użytkownik\" (np. \"Użytkownik uczy się hiszpańskiego\")", "References from": "Odniesienia do", "Refused when it shouldn't have": "Odmówił, gdy nie powinien", "Regenerate": "Wygeneruj ponownie", @@ -939,7 +986,7 @@ "Save Tag": "Zapisz tag", "Saved": "Zapisano", "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": "Zapisywanie dzienników czatu bezpośrednio w pamięci przeglądarki nie jest już obsługiwane. Prosimy o pobranie i usunięcie dzienników czatu, klikając przycisk poniżej. Nie przejmuj się, możesz łatwo ponownie zaimportować dzienniki czatu do backendu przez", - "Scroll to bottom when switching between branches": "Przewiń do dołu podczas przełączania gałęzi", + "Scroll On Branch Change": "", "Search": "Szukaj", "Search a model": "Wyszukaj model", "Search Base": "Użytkownicy - Baza wyszukiwania", @@ -948,18 +995,19 @@ "Search Filters": "Filtry wyszukiwania", "search for tags": "wyszukiwanie tagów", "Search Functions": "Funkcje wyszukiwania", - "Search Knowledge": "Wyszukaj wiedzę", + "Search Knowledge": "Przeszukaj wiedzę", "Search Models": "Wyszukiwanie modeli", "Search options": "Opcje wyszukiwania", - "Search Prompts": "Prompty wyszukiwania", + "Search Prompts": "Szukaj promptów", "Search Result Count": "Liczba wyników wyszukiwania", "Search the internet": "Przeszukaj internet", - "Search Tools": "Narzędzia wyszukiwania", + "Search Tools": "Szukaj narzędzi", "SearchApi API Key": "Klucz API SearchApi", "SearchApi Engine": "Search API Engine", "Searched {{count}} sites": "Przeszukano {{count}} stron", "Searching \"{{searchQuery}}\"": "Wyszukiwanie \"{{searchQuery}}\"", - "Searching Knowledge for \"{{searchQuery}}\"": "Wyszukiwanie wiedzy dla \"{{searchQuery}}\"", + "Searching Knowledge for \"{{searchQuery}}\"": "Przeszukiwanie wiedzy dla \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Adres URL zapytania Searxng", "See readme.md for instructions": "Sprawdź readme.md dla instrukcji", "See what's new": "Sprawdź nowości", @@ -998,7 +1046,7 @@ "Set Image Size": "Ustaw rozmiar obrazu", "Set reranking model (e.g. {{model}})": "Skonfiguruj model ponownego rankingu (np. {{model}})", "Set Sampler": "Próbnik samplera", - "Set Scheduler": "Ustawiacz harmonogramu", + "Set Scheduler": "Ustaw harmonogram", "Set Steps": "Ustaw kroki", "Set Task Model": "Konfiguracja modelu zadań", "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.": "Ustaw liczbę warstw, które zostaną przeniesione na GPU. Zwiększenie tej wartości może znacząco poprawić wydajność dla modeli optymalizowanych pod kątem akceleracji GPU, ale także może zużywać więcej energii i zasobów GPU.", @@ -1038,7 +1086,7 @@ "Speech Playback Speed": "Prędkość odtwarzania mowy", "Speech recognition error: {{error}}": "Błąd rozpoznawania mowy: {{error}}", "Speech-to-Text Engine": "Silnik konwersji mowy na tekst", - "Stop": "Zatrzymaj się", + "Stop": "Zatrzymaj", "Stop Sequence": "Zatrzymaj sekwencję", "Stream Chat Response": "Strumieniowanie odpowiedzi z czatu", "STT Model": "Model STT", @@ -1108,7 +1156,7 @@ "Title": "Tytuł", "Title (e.g. Tell me a fun fact)": "Tytuł (na przykład {e.g.} Powiedz mi jakiś zabawny fakt)", "Title Auto-Generation": "Automatyczne tworzenie tytułu", - "Title cannot be an empty string.": "Tytuł nie może być pustą stringiem.", + "Title cannot be an empty string.": "Tytuł nie może być pustym stringiem.", "Title Generation": "Generowanie tytułów", "Title Generation Prompt": "Prompt do generowania tytułu", "TLS": "TLS", @@ -1140,7 +1188,6 @@ "Tools Access": "Narzędzia Dostępu", "Tools are a function calling system with arbitrary code execution": "Narzędzia to system wywoływania funkcji z możliwością wykonania dowolnego kodu.", "Tools Function Calling Prompt": "Narzędzia Funkcja Wywołania Promptu", - "Tools have a function calling system that allows arbitrary code execution": "Narzędzia mają funkcję wywoływania systemu, która umożliwia wykonywanie dowolnego kodu", "Tools have a function calling system that allows arbitrary code execution.": "Narzędzia mają funkcję wywoływania systemu, która umożliwia wykonanie dowolnego kodu.", "Tools Public Sharing": "", "Top K": "Najlepsze K", @@ -1163,6 +1210,7 @@ "Unpin": "Odpiąć", "Unravel secrets": "Odkryj tajemnice", "Untagged": "Nie otagowane", + "Untitled": "", "Update": "Aktualizacja", "Update and Copy Link": "Aktualizuj i kopiuj link", "Update for the latest features and improvements.": "Aktualizacja do najnowszych funkcji i ulepszeń.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Przejdź na licencjonowany plan, aby uzyskać rozszerzone możliwości, w tym niestandardowe motywy, personalizację oraz dedykowane wsparcie.", "Upload": "Prześlij", "Upload a GGUF model": "Prześlij model GGUF", + "Upload Audio": "", "Upload directory": "Prześlij katalog", "Upload files": "Prześlij pliki", "Upload Files": "Prześlij pliki", @@ -1202,8 +1251,8 @@ "Valves updated successfully": "Zawory zaktualizowane pomyślnie", "variable": "zmienna", "variable to have them replaced with clipboard content.": "Zmienna, która ma zostać zastąpiona zawartością schowka.", - "Verify Connection": "", - "Verify SSL Certificate": "", + "Verify Connection": "Sprawdź połączenie", + "Verify SSL Certificate": "Sprawdź certyfikat SSL", "Version": "Wersja", "Version {{selectedVersion}} of {{totalVersions}}": "Wersja {{selectedVersion}} z {{totalVersions}}", "View Replies": "Wyświetl odpowiedzi", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Napisz krótkie podsumowanie w maksymalnie 50 słowach, które streszcza [temat lub słowo kluczowe].", "Write something...": "Napisz coś...", "Write your model template content here": "Napisz tutaj zawartość szablonu modelu", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Wczoraj", "You": "Ty", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Możesz rozmawiać jednocześnie maksymalnie z {{maxCount}} plikiem(i).", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Możesz spersonalizować swoje interakcje z LLM, dodając wspomnienia za pomocą przycisku 'Zarządzaj' poniżej, dzięki czemu będą one bardziej pomocne i dostosowane do Ciebie.", "You cannot upload an empty file.": "Nie możesz przesłać pustego pliku.", - "You do not have permission to upload files": "Nie masz uprawnień do przesyłania plików.", "You do not have permission to upload files.": "Nie masz uprawnień do przesyłania plików.", "You have no archived conversations.": "Nie posiadasz zarchiwizowanych konwersacji.", "You have shared this chat": "Udostępniłeś tę rozmowę", diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 71f9a59ae..a45e87e01 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(por exemplo, `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)", "(latest)": "(último)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Permitir Exclusão de Chats", "Allow Chat Deletion": "Permitir Exclusão de Chats", "Allow Chat Edit": "Permitir Edição de Chats", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Permitir Envio de arquivos", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Permitir vozes não locais", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Incrível", "an assistant": "um assistente", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "Você tem certeza que deseja desarquivar todos os chats arquivados?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Você tem certeza?", "Arena Models": "Arena de Modelos", "Artifacts": "Artefatos", @@ -135,6 +140,7 @@ "Bad Response": "Resposta Ruim", "Banners": "Banners", "Base Model (From)": "Modelo Base (De)", + "Base URL": "", "Batch Size (num_batch)": "Tamanho do Lote (num_batch)", "before": "antes", "Being lazy": "Sendo preguiçoso", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Chave API do Brave Search", "By {{name}}": "Por {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Cancelar", "Capabilities": "Capacidades", "Capture": "", + "Capture Audio": "", "Certificate Path": "Caminho do Certificado", "Change Password": "Mudar Senha", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Criar Conhecimento", "Create new key": "Criar nova chave", "Create new secret key": "Criar nova chave secreta", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Criado em", "Created At": "Criado Em", "Created by": "Criado por", @@ -299,6 +309,7 @@ "Delete function?": "Excluir função?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Excluir prompt?", "delete this link": "Excluir este link", "Delete tool?": "Excluir ferramenta?", @@ -354,7 +365,7 @@ "Download Database": "Baixar Banco de Dados", "Drag and drop a file to upload or select a file to view": "Arraste e solte um arquivo para enviar ou selecione um arquivo para visualizar", "Draw": "Empate", - "Drop any files here to add to the conversation": "Solte qualquer arquivo aqui para adicionar à conversa", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "Exemplo: my_filter", "e.g. my_tools": "Exemplo: my_tools", "e.g. Tools for performing various operations": "Exemplo: Ferramentas para executar operações diversas", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Editar", "Edit Arena Model": "Editar Arena de Modelos", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Ativar Novos Cadastros", "Enabled": "Ativado", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Certifique-se de que seu arquivo CSV inclua 4 colunas nesta ordem: Nome, Email, Senha, Função.", "Enter {{role}} message here": "Digite a mensagem de {{role}} aqui", "Enter a detail about yourself for your LLMs to recall": "Digite um detalhe sobre você para seus LLMs lembrarem", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Digite o Tamanho do Chunk", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Digite a descrição", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Digite a URL bruta do Github", @@ -431,6 +450,7 @@ "Enter Model ID": "Digite o ID do modelo", "Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})", "Enter Mojeek Search API Key": "Digite a Chave API do Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Digite o Número de Passos (por exemplo, 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Digite a URL (por exemplo, http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Digite Seu Email", "Enter Your Full Name": "Digite Seu Nome Completo", "Enter your message": "Digite sua mensagem", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Digite Sua Senha", "Enter Your Role": "Digite Sua Função", @@ -480,6 +504,8 @@ "Error": "Erro", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Avaliações", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Exportar Ferramentas", "External": "", "External Models": "Modelos Externos", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Falha ao adicionar arquivo.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Falha ao criar a Chave API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Transmitir fluentemente grandes blocos de respostas externas", "Focus chat input": "Focar entrada de chat", "Folder deleted successfully": "Pasta excluída com sucesso", - "Folder name cannot be empty": "Nome da pasta não pode estar vazio", "Folder name cannot be empty.": "Nome da pasta não pode estar vazio.", "Folder name updated successfully": "Nome da pasta atualizado com sucesso", "Followed instructions perfectly": "Seguiu as instruções perfeitamente", @@ -565,17 +596,18 @@ "Function Name": "Nome da Função", "Function updated successfully": "Função atualizada com sucesso", "Functions": "Funções", - "Functions allow arbitrary code execution": "Funções permitem a execução arbitrária de código", "Functions allow arbitrary code execution.": "Funções permitem a execução arbitrária de código.", "Functions imported successfully": "Funções importadas com sucesso", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Geral", + "Generate": "", "Generate an image": "", "Generate Image": "Gerar Imagem", "Generate prompt pair": "", "Generating search query": "Gerando consulta de pesquisa", + "Generating...": "", "Get started": "Iniciar", "Get started with {{WEBUI_NAME}}": "Iniciar com {{WEBUI_NAME}}", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importar Configurações de JSON", "Import Functions": "Importar Funções", "Import Models": "Importar Modelos", + "Import Notes": "", "Import Presets": "Importar Presets", "Import Prompts": "Importar Prompts", "Import Tools": "Importar Ferramentas", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Envio Automático Instantâneo Após Transcrição de Voz", "Integration": "", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "Formato de arquivo inválido.", "Invalid JSON schema": "", "Invalid Tag": "Tag Inválida", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gerenciar Pipelines", "Manage Tool Servers": "", "March": "Março", + "Max Speakers": "", "Max Tokens (num_predict)": "Máximo de Tokens (num_predict)", "Max Upload Count": "Quantidade máxima de anexos", "Max Upload Size": "Tamanho máximo do arquivo", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memória excluída com sucesso", "Memory updated successfully": "Memória atualizada com sucesso", "Merge Responses": "Mesclar respostas", + "Merged Response": "Resposta Mesclada", "Message rating should be enabled to use this feature": "Mensagem de avaliação deve estar habilitada para usar esta função", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mensagens enviadas após criar seu link não serão compartilhadas. Usuários com o URL poderão visualizar o chat compartilhado.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Chave de API Mojeel Search", "more": "mais", "More": "Mais", + "My Notes": "", "Name": "Nome", "Name your knowledge base": "Nome da sua base de conhecimento", "Native": "", "New Chat": "Novo Chat", "New Folder": "", + "New Note": "", "New Password": "Nova Senha", "new-channel": "", + "No content": "", "No content found": "Nenhum conteúdo encontrado", + "No content found in file.": "", "No content to speak": "Sem conteúdo para falar", "No distance available": "Sem distância disponível", "No feedbacks found": "Comentários não encontrados", "No file selected": "Nenhum arquivo selecionado", - "No files found.": "Nenhum arquivo encontrado.", "No groups with access, add a group to grant access": "Nenhum grupo com acesso, adicione um grupo para dar acesso", "No HTML, CSS, or JavaScript content found.": "Nenhum conteúdo HTML, CSS ou JavaScript encontrado.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "Nenhum ID de modelo", "No models found": "Nenhum modelo encontrado", "No models selected": "", + "No Notes": "", "No results found": "Nenhum resultado encontrado", "No search query generated": "Nenhuma consulta de pesquisa gerada", "No source available": "Nenhuma fonte disponível", @@ -782,6 +825,7 @@ "None": "Nenhum", "Not factually correct": "Não está factualmente correto", "Not helpful": "Não é útil", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Se você definir uma pontuação mínima, a pesquisa retornará apenas documentos com pontuação igual ou superior à pontuação mínima.", "Notes": "Notas", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Somente caracteres alfanuméricos e hífens são permitidos", "Only alphanumeric characters and hyphens are allowed in the command string.": "Apenas caracteres alfanuméricos e hífens são permitidos na string de comando.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Somente coleções podem ser editadas. Crie uma nova base de conhecimento para editar/adicionar documentos.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Somente usuários e grupos selecionados com permissão podem acessar.", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Ops! Parece que a URL é inválida. Por favor, verifique novamente e tente de novo.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ops! Existem arquivos a serem carregados. Por favor, aguarde que o carregamento tenha concluído.", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Pipelines Não Detectados", "Pipelines Valves": "Válvulas de Pipelines", + "Plain text (.md)": "", "Plain text (.txt)": "Texto simples (.txt)", "Playground": "Playground", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Ler em Voz Alta", "Reasoning Effort": "", + "Record": "", "Record voice": "Gravar voz", "Redirecting you to Open WebUI Community": "Redirecionando você para a Comunidade OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Salvar Tag", "Saved": "Armazenado", "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": "Salvar registros de chat diretamente no armazenamento do seu navegador não é mais suportado. Por favor, reserve um momento para baixar e excluir seus registros de chat clicando no botão abaixo. Não se preocupe, você pode facilmente reimportar seus registros de chat para o backend através de", - "Scroll to bottom when switching between branches": "Rolar para baixo quando se troca entre modelos", + "Scroll On Branch Change": "", "Search": "Pesquisar", "Search a model": "Pesquisar um modelo", "Search Base": "Pesquisar base", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Pesquisando \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Buscando conhecimento para \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL da Consulta Searxng", "See readme.md for instructions": "Veja readme.md para instruções", "See what's new": "Veja o que há de novo", @@ -1140,7 +1188,6 @@ "Tools Access": "Acesso as Ferramentas", "Tools are a function calling system with arbitrary code execution": "Ferramentas são um sistema de chamada de funções com execução de código arbitrário", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Ferramentas possuem um sistema de chamada de funções que permite a execução de código arbitrário", "Tools have a function calling system that allows arbitrary code execution.": "Ferramentas possuem um sistema de chamada de funções que permite a execução de código arbitrário.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Desfixar", "Unravel secrets": "Desvendar segredos", "Untagged": "Sem tag", + "Untitled": "", "Update": "Atualizar", "Update and Copy Link": "Atualizar e Copiar Link", "Update for the latest features and improvements.": "Atualizar para as novas funcionalidades e melhorias.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Fazer upload", "Upload a GGUF model": "Fazer upload de um modelo GGUF", + "Upload Audio": "", "Upload directory": "Carregar diretório", "Upload files": "Carregar arquivos", "Upload Files": "Fazer upload de Arquivos", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].", "Write something...": "Escreva algo...", "Write your model template content here": "Escreva o conteúdo do template do modelo aqui.", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ontem", "You": "Você", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Você só pode conversar com no máximo {{maxCount}} arquivo(s) de cada vez.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Você pode personalizar suas interações com LLMs adicionando memórias através do botão 'Gerenciar' abaixo, tornando-as mais úteis e adaptadas a você.", "You cannot upload an empty file.": "Você não pode carregar um arquivo vazio.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "Você não tem permissão para fazer upload de arquivos.", "You have no archived conversations.": "Você não tem conversas arquivadas.", "You have shared this chat": "Você compartilhou este chat", diff --git a/src/lib/i18n/locales/pt-PT/translation.json b/src/lib/i18n/locales/pt-PT/translation.json index c120b3c08..639e67d97 100644 --- a/src/lib/i18n/locales/pt-PT/translation.json +++ b/src/lib/i18n/locales/pt-PT/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)", "(latest)": "(mais recente)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modelos }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "Permitir Exclusão de Conversa", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Permitir vozes não locais", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "um assistente", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Tem a certeza?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "Resposta má", "Banners": "Estandartes", "Base Model (From)": "Modelo Base (De)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "antes", "Being lazy": "Ser preguiçoso", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Chave da API de Pesquisa Brave", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Cancelar", "Capabilities": "Capacidades", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Alterar Senha", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Criar nova chave", "Create new secret key": "Criar nova chave secreta", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Criado em", "Created At": "Criado em", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "apagar este link", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "Descarregar Base de Dados", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Largue os ficheiros aqui para adicionar à conversa", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Editar", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Ativar Novas Inscrições", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Confirme que o seu ficheiro CSV inclui 4 colunas nesta ordem: Nome, E-mail, Senha, Função.", "Enter {{role}} message here": "Escreva a mensagem de {{role}} aqui", "Enter a detail about yourself for your LLMs to recall": "Escreva um detalhe sobre você para que os seus LLMs possam lembrar-se", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Escreva o Tamanho do Fragmento", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Escreva o URL cru do Github", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Escreva a tag do modelo (por exemplo, {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Escreva o Número de Etapas (por exemplo, 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Escreva o URL (por exemplo, http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Escreva o URL (por exemplo, http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Escreva o seu E-mail", "Enter Your Full Name": "Escreva o seu Nome Completo", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Escreva a sua Senha", "Enter Your Role": "Escreva a sua Função", @@ -480,6 +504,8 @@ "Error": "Erro", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "Modelos Externos", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Falha ao criar a Chave da API.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Transmita com fluidez grandes blocos de resposta externa", "Focus chat input": "Focar na conversa", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Seguiu instruções perfeitamente", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Geral", + "Generate": "", "Generate an image": "", "Generate Image": "Gerar imagem", "Generate prompt pair": "", "Generating search query": "A gerar a consulta da pesquisa", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "Importar Modelos", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importar Prompts", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Enviar automaticamente depois da transcrição da voz", "Integration": "", "Interface": "Interface", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Etiqueta Inválida", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gerir pipelines", "Manage Tool Servers": "", "March": "Março", + "Max Speakers": "", "Max Tokens (num_predict)": "Máx Tokens (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Resposta Fundida", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mensagens que você enviar após criar o seu link não serão partilhadas. Os utilizadores com o URL poderão visualizar a conversa partilhada.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Mais", + "My Notes": "", "Name": "Nome", "Name your knowledge base": "", "Native": "", "New Chat": "Nova Conversa", "New Folder": "", + "New Note": "", "New Password": "Nova Senha", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Não foram encontrados resultados", "No search query generated": "Não foi gerada nenhuma consulta de pesquisa", "No source available": "Nenhuma fonte disponível", @@ -782,6 +825,7 @@ "None": "Nenhum", "Not factually correct": "Não é correto em termos factuais", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Se você definir uma pontuação mínima, a pesquisa só retornará documentos com uma pontuação maior ou igual à pontuação mínima.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Apenas caracteres alfanuméricos e hífens são permitidos na string de comando.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Epá! Parece que o URL é inválido. Verifique novamente e tente outra vez.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Condutas", "Pipelines Not Detected": "", "Pipelines Valves": "Válvulas de Condutas", + "Plain text (.md)": "", "Plain text (.txt)": "Texto sem formatação (.txt)", "Playground": "Recreio", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Ler em Voz Alta", "Reasoning Effort": "", + "Record": "", "Record voice": "Gravar voz", "Redirecting you to Open WebUI Community": "Redirecionando-o para a Comunidade OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Guardar o registo das conversas diretamente no armazenamento do seu navegador já não é suportado. Reserve um momento para descarregar e eliminar os seus registos de conversas clicando no botão abaixo. Não se preocupe, você pode facilmente reimportar os seus registos de conversas para o backend através de", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Pesquisar", "Search a model": "Pesquisar um modelo", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "URL de consulta Searxng", "See readme.md for instructions": "Consulte readme.md para obter instruções", "See what's new": "Veja o que há de novo", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "Atualizar e Copiar Link", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "Carregar um modelo GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "Carregar ficheiros", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ontem", "You": "Você", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Você pode personalizar as suas interações com LLMs adicionando memórias através do botão ‘Gerir’ abaixo, tornando-as mais úteis e personalizadas para você.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Você não tem conversas arquivadas.", "You have shared this chat": "Você partilhou esta conversa", diff --git a/src/lib/i18n/locales/ro-RO/translation.json b/src/lib/i18n/locales/ro-RO/translation.json index f63475e05..24a7f3a0b 100644 --- a/src/lib/i18n/locales/ro-RO/translation.json +++ b/src/lib/i18n/locales/ro-RO/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(de ex. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(de ex. `sh webui.sh --api`)", "(latest)": "(ultimul)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modele }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Permite ștergerea chat-ului", "Allow Chat Deletion": "Permite ștergerea conversațiilor", "Allow Chat Edit": "Permite editarea chat-ului", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Permite încărcarea fișierelor", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Permite voci non-locale", @@ -76,6 +79,7 @@ "Always": "Întotdeauna", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Uimitor", "an assistant": "un asistent", "Analyzed": "Analizat", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Ești sigur că vrei să ștergi acest canal?", "Are you sure you want to delete this message?": "Ești sigur că vrei să ștergi acest mesaj?", "Are you sure you want to unarchive all archived chats?": "Ești sigur că vrei să dezarhivezi toate conversațiile arhivate?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Ești sigur?", "Arena Models": "Arena Models", "Artifacts": "Artefacte", @@ -135,6 +140,7 @@ "Bad Response": "Răspuns Greșit", "Banners": "Bannere", "Base Model (From)": "Model de Bază (De la)", + "Base URL": "", "Batch Size (num_batch)": "Dimensiune Lot (num_batch)", "before": "înainte", "Being lazy": "Fiind leneș", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Cheie API Brave Search", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Anulează", "Capabilities": "Capabilități", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Schimbă Parola", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Creează cunoștințe", "Create new key": "Creează cheie nouă", "Create new secret key": "Creează cheie secretă nouă", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Creat la", "Created At": "Creat La", "Created by": "Creat de", @@ -299,6 +309,7 @@ "Delete function?": "Șterge funcția?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Șterge promptul?", "delete this link": "șterge acest link", "Delete tool?": "Șterge instrumentul?", @@ -354,7 +365,7 @@ "Download Database": "Descarcă Baza de Date", "Drag and drop a file to upload or select a file to view": "", "Draw": "Desenează", - "Drop any files here to add to the conversation": "Plasează orice fișiere aici pentru a le adăuga la conversație", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "de ex. '30s', '10m'. Unitățile de timp valide sunt 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Editează", "Edit Arena Model": "Editați Modelul Arena", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Activează Înscrierile Noi", "Enabled": "Activat", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asigurați-vă că fișierul CSV include 4 coloane în această ordine: Nume, Email, Parolă, Rol.", "Enter {{role}} message here": "Introduceți mesajul pentru {{role}} aici", "Enter a detail about yourself for your LLMs to recall": "Introduceți un detaliu despre dvs. pe care LLM-urile să-l rețină", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Introduceți Dimensiunea Blocului", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Introduceți descrierea", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Introduceți URL-ul Raw de pe Github", @@ -431,6 +450,7 @@ "Enter Model ID": "Introdu codul modelului", "Enter model tag (e.g. {{modelTag}})": "Introduceți eticheta modelului (de ex. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Introduceți Numărul de Pași (de ex. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Introduceți URL-ul (de ex. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Introduceți URL-ul (de ex. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Introduceți Email-ul Dvs.", "Enter Your Full Name": "Introduceți Numele Dvs. Complet", "Enter your message": "Introduceți mesajul dvs.", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Introduceți Parola Dvs.", "Enter Your Role": "Introduceți Rolul Dvs.", @@ -480,6 +504,8 @@ "Error": "Eroare", "ERROR": "EROARE", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Evaluări", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Exportă Instrumentele", "External": "", "External Models": "Modele Externe", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Eșec la adăugarea fișierului.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Crearea cheii API a eșuat.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Citirea conținutului clipboard-ului a eșuat", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Transmite fluent blocuri mari de răspuns extern", "Focus chat input": "Focalizează câmpul de intrare pentru conversație", "Folder deleted successfully": "Folder șters cu succes", - "Folder name cannot be empty": "Numele folderului nu poate fi gol", "Folder name cannot be empty.": "Numele folderului nu poate fi gol.", "Folder name updated successfully": "Numele folderului a fost actualizat cu succes", "Followed instructions perfectly": "A urmat instrucțiunile perfect", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Funcția a fost actualizată cu succes", "Functions": "Funcții", - "Functions allow arbitrary code execution": "Funcțiile permit executarea arbitrară a codului", "Functions allow arbitrary code execution.": "Funcțiile permit executarea arbitrară a codului.", "Functions imported successfully": "Funcțiile au fost importate cu succes", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "General", + "Generate": "", "Generate an image": "", "Generate Image": "Generează Imagine", "Generate prompt pair": "", "Generating search query": "Se generează interogarea de căutare", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Global", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importarea configurației dintr-un fișier JSON", "Import Functions": "Importă Funcțiile", "Import Models": "Importă Modelele", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importă Prompturile", "Import Tools": "Importă Instrumentele", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Trimitere Automată Instantanee După Transcrierea Vocii", "Integration": "", "Interface": "Interfață", + "Invalid file content": "", "Invalid file format.": "Format de fișier invalid.", "Invalid JSON schema": "", "Invalid Tag": "Etichetă Invalidă", @@ -706,6 +740,7 @@ "Manage Pipelines": "Gestionează Conductele", "Manage Tool Servers": "", "March": "Martie", + "Max Speakers": "", "Max Tokens (num_predict)": "Număr Maxim de Tokeni (num_predict)", "Max Upload Count": "Număr maxim de încărcări", "Max Upload Size": "Dimensiune Maximă de Încărcare", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memoria a fost ștearsă cu succes", "Memory updated successfully": "Memoria a fost actualizată cu succes", "Merge Responses": "Combină răspunsurile", + "Merged Response": "Răspuns Combinat", "Message rating should be enabled to use this feature": "Evaluarea mesajelor ar trebui să fie activată pentru a utiliza această funcționalitate.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Mesajele pe care le trimiteți după crearea link-ului dvs. nu vor fi partajate. Utilizatorii cu URL-ul vor putea vizualiza conversația partajată.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "mai mult", "More": "Mai multe", + "My Notes": "", "Name": "Nume", "Name your knowledge base": "", "Native": "", "New Chat": "Conversație Nouă", "New Folder": "", + "New Note": "", "New Password": "Parolă Nouă", "new-channel": "", + "No content": "", "No content found": "Nu a fost găsit niciun conținut", + "No content found in file.": "", "No content to speak": "Nu există conținut de vorbit", "No distance available": "Nicio distanță disponibilă", "No feedbacks found": "Niciun feedback găsit", "No file selected": "Nu a fost selectat niciun fișier", - "No files found.": "Nu au fost găsite fișiere.", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "Niciun conținut HTML, CSS sau JavaScript găsit.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "Nu s-au găsit modele", "No models selected": "", + "No Notes": "", "No results found": "Nu au fost găsite rezultate", "No search query generated": "Nu a fost generată nicio interogare de căutare", "No source available": "Nicio sursă disponibilă", @@ -782,6 +825,7 @@ "None": "Niciunul", "Not factually correct": "Nu este corect din punct de vedere factual", "Not helpful": "Nu este de ajutor", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Notă: Dacă setați un scor minim, căutarea va returna doar documente cu un scor mai mare sau egal cu scorul minim.", "Notes": "Note", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Doar caracterele alfanumerice și cratimele sunt permise în șirul de comandă.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Doar colecțiile pot fi editate, creați o nouă bază de cunoștințe pentru a edita/adăuga documente.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Oops! Se pare că URL-ul este invalid. Vă rugăm să verificați din nou și să încercați din nou.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ups! Încă mai există fișiere care se încarcă. Vă rugăm să așteptați până se finalizează încărcarea.", @@ -849,6 +894,7 @@ "Pipelines": "Conducte", "Pipelines Not Detected": "Conducte Nedetectate", "Pipelines Valves": "Valvele Conductelor", + "Plain text (.md)": "", "Plain text (.txt)": "Text simplu (.txt)", "Playground": "Teren de Joacă", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Citește", "Read Aloud": "Citește cu Voce Tare", "Reasoning Effort": "", + "Record": "", "Record voice": "Înregistrează vocea", "Redirecting you to Open WebUI Community": "Vă redirecționăm către Comunitatea OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Salvează Eticheta", "Saved": "Salvat", "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": "Salvarea jurnalelor de conversație direct în stocarea browserului dvs. nu mai este suportată. Vă rugăm să luați un moment pentru a descărca și a șterge jurnalele de conversație făcând clic pe butonul de mai jos. Nu vă faceți griji, puteți reimporta ușor jurnalele de conversație în backend prin", - "Scroll to bottom when switching between branches": "Derulați până jos când comutați între ramuri.", + "Scroll On Branch Change": "", "Search": "Caută", "Search a model": "Caută un model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Căutare \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Căutare cunoștințe pentru \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL Interogare Searxng", "See readme.md for instructions": "Consultați readme.md pentru instrucțiuni", "See what's new": "Vezi ce e nou", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Instrumentele sunt un sistem de apelare a funcțiilor cu executare arbitrară a codului", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Instrumentele au un sistem de apelare a funcțiilor care permite executarea arbitrară a codului", "Tools have a function calling system that allows arbitrary code execution.": "Instrumentele au un sistem de apelare a funcțiilor care permite executarea arbitrară a codului.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Anulează Fixarea", "Unravel secrets": "Dezvăluie secretele", "Untagged": "Netichetat", + "Untitled": "", "Update": "Actualizează", "Update and Copy Link": "Actualizează și Copiază Link-ul", "Update for the latest features and improvements.": "Actualizare pentru cele mai recente caracteristici și îmbunătățiri.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Încărcare", "Upload a GGUF model": "Încarcă un model GGUF", + "Upload Audio": "", "Upload directory": "Încărcare director", "Upload files": "Încărcați fișiere", "Upload Files": "Încarcă Fișiere", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Scrieți un rezumat în 50 de cuvinte care rezumă [subiect sau cuvânt cheie].", "Write something...": "Scrie ceva...", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Ieri", "You": "Tu", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Puteți discuta cu un număr maxim de {{maxCount}} fișier(e) simultan.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Puteți personaliza interacțiunile dvs. cu LLM-urile adăugând amintiri prin butonul 'Gestionează' de mai jos, făcându-le mai utile și adaptate la dvs.", "You cannot upload an empty file.": "Nu poți încărca un fișier gol.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Nu aveți conversații arhivate.", "You have shared this chat": "Ați partajat această conversație", diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json index 85ad61e74..c513775ea 100644 --- a/src/lib/i18n/locales/ru-RU/translation.json +++ b/src/lib/i18n/locales/ru-RU/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(например, `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(например, `sh webui.sh --api`)", "(latest)": "(последняя)", + "(leave blank for Azure Commercial URL auto-generation)": "(оставьте поле пустым для автоматической генерации коммерческого URL-адреса Azure)", "(Ollama)": "", "{{ models }}": "{{ модели }}", "{{COUNT}} Available Tools": "{{COUNT}} доступных инструментов", @@ -57,17 +58,19 @@ "All": "Все", "All Documents": "Все документы", "All models deleted successfully": "Все модели успешно удалены", - "Allow Call": "", + "Allow Call": "Разрешить звонки", "Allow Chat Controls": "Разрешить управление чатом", "Allow Chat Delete": "Разрешить удаление чата", "Allow Chat Deletion": "Разрешить удаление чата", "Allow Chat Edit": "Разрешить редактирование чата", + "Allow Chat Export": "Разрешить экспорт чата", + "Allow Chat Share": "Разрешить общий доступ к чату", "Allow File Upload": "Разрешить загрузку файлов", "Allow Multiple Models in Chat": "Разрешить использование нескольких моделей в чате", "Allow non-local voices": "Разрешить не локальные голоса", - "Allow Speech to Text": "", + "Allow Speech to Text": "Разрешить преобразование речи в текст", "Allow Temporary Chat": "Разрешить временные чаты", - "Allow Text to Speech": "", + "Allow Text to Speech": "Разрешить преобразование текста в речь", "Allow User Location": "Разрешить доступ к местоположению пользователя", "Allow Voice Interruption in Call": "Разрешить прерывание голоса во время вызова", "Allowed Endpoints": "Разрешенные энд-поинты", @@ -76,6 +79,7 @@ "Always": "Всегда", "Always Collapse Code Blocks": "Всегда сворачивать блоки кода", "Always Expand Details": "Всегда разворачивать детали", + "Always Play Notification Sound": "Всегда проигрывать звук уведомления", "Amazing": "Удивительно", "an assistant": "ассистент", "Analyzed": "Проанализировано", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Вы уверены, что хотите удалить этот канал?", "Are you sure you want to delete this message?": "Вы уверены, что хотите удалить это сообщение?", "Are you sure you want to unarchive all archived chats?": "Вы уверены, что хотите разархивировать все заархивированные чаты?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Вы уверены?", "Arena Models": "Арена моделей", "Artifacts": "Артефакты", @@ -135,6 +140,7 @@ "Bad Response": "Плохой ответ", "Banners": "Баннеры", "Base Model (From)": "Базовая модель (от)", + "Base URL": "Базовый URL адрес", "Batch Size (num_batch)": "Размер партии (num_batch)", "before": "до", "Being lazy": "Лениво", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Ключ API Bing Search V7", "Bocha Search API Key": "Ключ API поиска Bocha", "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 должны быть указаны как механизм распознавания текста, так и язык(и), или оба должны быть оставлены пустыми.", "Brave Search API Key": "Ключ API поиска Brave", "By {{name}}": "От {{name}}", "Bypass Embedding and Retrieval": "Обход встраивания и извлечения данных", @@ -153,6 +160,7 @@ "Cancel": "Отменить", "Capabilities": "Возможности", "Capture": "Захват", + "Capture Audio": "", "Certificate Path": "Путь к сертификату", "Change Password": "Изменить пароль", "Channel Name": "Название канала", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "Копирование в буфер обмена выполнено успешно!", "Copied to clipboard": "Скопировано в буфер обмена", "Copy": "Копировать", - "Copy Formatted Text": "", + "Copy Formatted Text": "Копировать форматированный текст", "Copy last code block": "Копировать последний блок кода", "Copy last response": "Копировать последний ответ", "Copy Link": "Копировать ссылку", @@ -262,6 +270,8 @@ "Create Knowledge": "Создать знание", "Create new key": "Создать новый ключ", "Create new secret key": "Создать новый секретный ключ", + "Create Note": "Создать заметку", + "Create your first note by clicking on the plus button below.": "Создайте свою первую заметку, нажав на кнопку плюс ниже.", "Created at": "Создан(а)", "Created At": "Создано", "Created by": "Создано", @@ -299,6 +309,7 @@ "Delete function?": "Удалить функцию?", "Delete Message": "Удалить сообщение", "Delete message?": "Удалить сообщение?", + "Delete note?": "Удалить заметку?", "Delete prompt?": "Удалить промпт?", "delete this link": "удалить эту ссылку", "Delete tool?": "Удалить этот инструмент?", @@ -354,7 +365,7 @@ "Download Database": "Загрузить базу данных", "Drag and drop a file to upload or select a file to view": "Перетащите файл для загрузки или выберите файл для просмотра.", "Draw": "Рисовать", - "Drop any files here to add to the conversation": "Перетащите сюда файлы, чтобы добавить их в разговор", + "Drop any files here to upload": "Переместите сюда любые файлы для загрузки", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30s','10m'. Допустимые единицы времени: 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "например, \"json\" или схему JSON", "e.g. 60": "например, 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "например, мой_фильтр", "e.g. my_tools": "например, мой_инструмент", "e.g. Tools for performing various operations": "например, инструменты для выполнения различных операций", + "e.g., 3, 4, 5 (leave blank for default)": "например, 3, 4, 5 (оставьте поле пустым по умолчанию)", "e.g., en-US,ja-JP (leave blank for auto-detect)": "например, en-US,ja-JP (оставьте поле пустым для автоматического определения)", "Edit": "Редактировать", "Edit Arena Model": "Изменить модель арены", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Разрешить новые регистрации", "Enabled": "Включено", "Enforce Temporary Chat": "Принудительный временный чат", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Убедитесь, что ваш CSV-файл включает в себя 4 столбца в следующем порядке: Имя, Электронная почта, Пароль, Роль.", "Enter {{role}} message here": "Введите сообщение {{role}} здесь", "Enter a detail about yourself for your LLMs to recall": "Введите детали о себе, чтобы LLMs могли запомнить", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Введите размер фрагмента", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Введите пары \"token:bias_value\", разделенные запятыми (пример: 5432:100, 413:-100).", "Enter description": "Введите описание", + "Enter Docling OCR Engine": "Введите Docling OCR Engine", + "Enter Docling OCR Language(s)": "Введите языки для Docling OCR", "Enter Docling Server URL": "Введите URL сервера Docling", "Enter Document Intelligence Endpoint": "Введите энд-поинт анализа документов", "Enter Document Intelligence Key": "Введите ключ для анализа документов", "Enter domains separated by commas (e.g., example.com,site.org)": "Введите домены, разделенные запятыми (например, example.com,site.org)", "Enter Exa API Key": "Введите ключ API для Exa", + "Enter External Web Loader API Key": "Введите ключ API внешнего веб-загрузчика", + "Enter External Web Loader URL": "Введите URL-адрес внешнего веб-загрузчика", + "Enter External Web Search API Key": "Введите ключ API внешнего веб-поиска", + "Enter External Web Search URL": "Введите URL-адрес внешнего веб-поиска", "Enter Firecrawl API Base URL": "Введите базовый URL-адрес Firecrawl API", "Enter Firecrawl API Key": "Введите ключ API для Firecrawl", "Enter Github Raw URL": "Введите необработанный URL-адрес Github", @@ -431,6 +450,7 @@ "Enter Model ID": "Введите ID модели", "Enter model tag (e.g. {{modelTag}})": "Введите тег модели (например, {{modelTag}})", "Enter Mojeek Search API Key": "Введите ключ API поиска Mojeek", + "Enter New Password": "Введите новый пароль", "Enter Number of Steps (e.g. 50)": "Введите количество шагов (например, 50)", "Enter Perplexity API Key": "Введите ключ API Perplexity", "Enter Playwright Timeout": "Введите таймаут для Playwright", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Введите Top K переоценщика", "Enter URL (e.g. http://127.0.0.1:7860/)": "Введите URL-адрес (например, http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Введите URL-адрес (например, http://localhost:11434)", + "Enter Yacy Password": "Введите пароль Yacy", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "Введите URL-адрес Yacy (напр., http://yacy.example.com:8090)", + "Enter Yacy Username": "Введите имя пользователя Yacy", "Enter your current password": "Введите ваш текущий пароль", "Enter Your Email": "Введите вашу электронную почту", "Enter Your Full Name": "Введите ваше полное имя", "Enter your message": "Введите ваше сообщение", "Enter your name": "Введите ваше имя", + "Enter Your Name": "Введите ваше Имя", "Enter your new password": "Введите свой новый пароль", "Enter Your Password": "Введите ваш пароль", "Enter Your Role": "Введите вашу роль", @@ -480,6 +504,8 @@ "Error": "Ошибка", "ERROR": "ОШИБКА", "Error accessing Google Drive: {{error}}": "Ошибка доступа к Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Ошибка загрузки файла: {{error}}", "Evaluations": "Оценки", "Exa API Key": "Ключ API для Exa", @@ -511,10 +537,16 @@ "Export Tools": "Экспортировать инструменты", "External": "Внешнее", "External Models": "Внешние модели", + "External Web Loader API Key": "Ключ API внешнего веб-загрузчика", + "External Web Loader URL": "URL-адрес внешнего веб-загрузчика", + "External Web Search API Key": "Внешний ключ API веб-поиска", + "External Web Search URL": "URL-адрес внешнего веб-поиска", "Failed to add file.": "Не удалось добавить файл.", "Failed to connect to {{URL}} OpenAPI tool server": "Не удалось подключиться к серверу инструмента OpenAI {{URL}}", "Failed to create API Key.": "Не удалось создать ключ API.", + "Failed to delete note": "", "Failed to fetch models": "Не удалось получить модели", + "Failed to load file content.": "Не удалось загрузить содержимое файла.", "Failed to read clipboard contents": "Не удалось прочитать содержимое буфера обмена", "Failed to save connections": "Не удалось сохранить подключения", "Failed to save models configuration": "Не удалось сохранить конфигурацию моделей", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Плавная потоковая передача больших фрагментов внешних ответов", "Focus chat input": "Фокус ввода чата", "Folder deleted successfully": "Папка успешно удалена", - "Folder name cannot be empty": "Имя папки не может быть пустым", "Folder name cannot be empty.": "Имя папки не может быть пустым.", "Folder name updated successfully": "Имя папки успешно обновлено", "Followed instructions perfectly": "Идеально соответствует инструкциям", @@ -565,17 +596,18 @@ "Function Name": "Имя Функции", "Function updated successfully": "Функция успешно обновлена", "Functions": "Функции", - "Functions allow arbitrary code execution": "Функции позволяют выполнять произвольный код", "Functions allow arbitrary code execution.": "Функции позволяют выполнять произвольный код.", "Functions imported successfully": "Функции успешно импортированы", "Gemini": "", "Gemini API Config": "Конфигурация Gemini API", "Gemini API Key is required.": "Требуется API ключ для Gemini.", "General": "Общее", + "Generate": "Сгенерировать", "Generate an image": "Сгенерировать изображение", "Generate Image": "Сгенерировать изображение", "Generate prompt pair": "Сгенерировать пару запросов", "Generating search query": "Генерация поискового запроса", + "Generating...": "", "Get started": "Давайте начнём", "Get started with {{WEBUI_NAME}}": "Давайте начнём с {{WEBUI_NAME}}", "Global": "Глобально", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Импорт конфигурации из JSON-файла", "Import Functions": "Импортировать Функции", "Import Models": "Импортировать Модели", + "Import Notes": "Импортировать Заметки", "Import Presets": "Импортировать Пресеты", "Import Prompts": "Импортировать Промпты", "Import Tools": "Импортировать Инструменты", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Мгновенная автоматическая отправка после расшифровки голоса", "Integration": "Интеграция", "Interface": "Интерфейс", + "Invalid file content": "", "Invalid file format.": "Неверный формат файла.", "Invalid JSON schema": "Недопустимая схема JSON", "Invalid Tag": "Недопустимый тег", @@ -706,6 +740,7 @@ "Manage Pipelines": "Управление конвейерами", "Manage Tool Servers": "Управление серверами инструментов", "March": "Март", + "Max Speakers": "", "Max Tokens (num_predict)": "Максимальное количество токенов (num_predict)", "Max Upload Count": "Максимальное количество загрузок", "Max Upload Size": "Максимальный размер загрузок", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Воспоминание успешно удалено", "Memory updated successfully": "Воспоминание успешно обновлено", "Merge Responses": "Объединить ответы", + "Merged Response": "Объединенный ответ", "Message rating should be enabled to use this feature": "Чтобы использовать эту функцию, необходимо включить оценку сообщения.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Сообщения, отправленные вами после создания ссылки, не будут передаваться другим. Пользователи, у которых есть URL, смогут просматривать общий чат.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "Microsoft OneDrive (личный)", + "Microsoft OneDrive (work/school)": "Microsoft OneDrive (работа/школа)", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Ключ API для поиска Mojeek", "more": "больше", "More": "Больше", + "My Notes": "", "Name": "Имя", "Name your knowledge base": "Назовите свою базу знаний", "Native": "Нативно", "New Chat": "Новый чат", "New Folder": "Новая папка", + "New Note": "Новая заметка", "New Password": "Новый пароль", "new-channel": "", + "No content": "Нет контента", "No content found": "Контент не найден", + "No content found in file.": "В файле не найдено никакого содержимого", "No content to speak": "Нечего говорить", "No distance available": "Никаких доступных растояний", "No feedbacks found": "Никаких обратных связей не найдено", "No file selected": "Файлы не выбраны", - "No files found.": "Файлы не найдены.", "No groups with access, add a group to grant access": "Нет групп с доступом, добавьте группу для предоставления доступа", "No HTML, CSS, or JavaScript content found.": "Содержимое в формате HTML, CSS или JavaScript не найдено.", "No inference engine with management support found": "Механизм логического вывода с поддержкой управления не найден", @@ -774,6 +816,7 @@ "No model IDs": "Нет ID модели", "No models found": "Модели не найдены", "No models selected": "Модели не выбраны", + "No Notes": "Нет заметок", "No results found": "Результатов не найдено", "No search query generated": "Поисковый запрос не сгенерирован", "No source available": "Нет доступных источников", @@ -782,6 +825,7 @@ "None": "Нет", "Not factually correct": "Не соответствует действительности", "Not helpful": "Бесполезно", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Обратите внимание: Если вы установите минимальный балл, поиск будет возвращать только документы с баллом больше или равным минимальному баллу.", "Notes": "Заметки", "Notification Sound": "Звук уведомления", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Разрешены только буквенно-цифровые символы и дефисы.", "Only alphanumeric characters and hyphens are allowed in the command string.": "В строке команды разрешено использовать только буквенно-цифровые символы и дефисы.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Редактировать можно только коллекции, создайте новую базу знаний для редактирования/добавления документов.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Доступ имеют только избранные пользователи и группы, имеющие разрешение.", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Похоже, что URL-адрес недействителен. Пожалуйста, перепроверьте и попробуйте еще раз.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Упс! Есть файлы, которые все еще загружаются. Пожалуйста, дождитесь завершения загрузки.", @@ -849,6 +894,7 @@ "Pipelines": "Конвейеры", "Pipelines Not Detected": "Конвейеры не обнаружены", "Pipelines Valves": "Вентили конвейеров", + "Plain text (.md)": "", "Plain text (.txt)": "Текст в формате .txt", "Playground": "Песочница", "Playwright Timeout (ms)": "Таймаут Playwright (мс)", @@ -891,6 +937,7 @@ "Read": "Прочитать", "Read Aloud": "Прочитать вслух", "Reasoning Effort": "Усилие рассуждения", + "Record": "Запись", "Record voice": "Записать голос", "Redirecting you to Open WebUI Community": "Перенаправляем вас в сообщество OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Снижает вероятность появления бессмыслицы. Большее значение (например, 100) даст более разнообразные ответы, в то время как меньшее значение (например, 10) будет более консервативным.", @@ -939,7 +986,7 @@ "Save Tag": "Сохранить тег", "Saved": "Сохранено", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Прямое сохранение журналов чата в хранилище вашего браузера больше не поддерживается. Пожалуйста, потратьте минуту, чтобы скачать и удалить ваши журналы чата, нажав на кнопку ниже. Не волнуйтесь, вы легко сможете повторно импортировать свои журналы чата в бэкенд через", - "Scroll to bottom when switching between branches": "Прокручивать вниз при переключении веток", + "Scroll On Branch Change": "Чтобы изменить ветку. прокрутите страницу", "Search": "Поиск", "Search a model": "Поиск по моделям", "Search Base": "Поиск в базе", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Поиск по {{count}} сайтам", "Searching \"{{searchQuery}}\"": "Поиск по запросу \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Поиск знания для \"{{searchQuery}}\"", + "Searching the web...": "Поиск в интернете...", "Searxng Query URL": "URL-адрес запроса Searxng", "See readme.md for instructions": "Смотрите readme.md для инструкций", "See what's new": "Посмотреть, что нового", @@ -1100,7 +1148,7 @@ "This will reset the knowledge base and sync all files. Do you wish to continue?": "Это сбросит базу знаний и синхронизирует все файлы. Хотите продолжить?", "Thorough explanation": "Подробное объяснение", "Thought for {{DURATION}}": "Рассуждаю {{DURATION}}", - "Thought for {{DURATION}} seconds": "Рассуждал {{DURATION}} секунд", + "Thought for {{DURATION}} seconds": "Рассуждал {{DURATION}} секунд(ы)", "Tika": "Tika", "Tika Server URL required.": "Требуется URL-адрес сервера Tika.", "Tiktoken": "", @@ -1140,7 +1188,6 @@ "Tools Access": "Доступ к инструментам", "Tools are a function calling system with arbitrary code execution": "Инструменты - это система вызова функций с выполнением произвольного кода", "Tools Function Calling Prompt": "Промпт на вызов функции Инструменты", - "Tools have a function calling system that allows arbitrary code execution": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код", "Tools have a function calling system that allows arbitrary code execution.": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код.", "Tools Public Sharing": "Публичный обмен инструментами", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Открепить", "Unravel secrets": "Разгадать секреты", "Untagged": "Без тегов", + "Untitled": "", "Update": "Обновить", "Update and Copy Link": "Обновить и скопировать ссылку", "Update for the latest features and improvements.": "Обновитесь для получения последних функций и улучшений.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Перейдите на лицензионный тарифный план, чтобы получить расширенные возможности, включая настраиваемую тематику и фирменный стиль, а также специальную поддержку.", "Upload": "Загрузить", "Upload a GGUF model": "Загрузить модель GGUF", + "Upload Audio": "", "Upload directory": "Загрузить каталог", "Upload files": "Загрузить файлы", "Upload Files": "Загрузить файлы", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].", "Write something...": "Напишите что-нибудь...", "Write your model template content here": "Напишите здесь содержимое шаблона вашей модели.", + "Yacy Instance URL": "URL-адрес экземпляра Yacy", + "Yacy Password": "Пароль Yacy", + "Yacy Username": "Имя пользователя Yacy", "Yesterday": "Вчера", "You": "Вы", "You are currently using a trial license. Please contact support to upgrade your license.": "В настоящее время вы используете пробную лицензию. Пожалуйста, обратитесь в службу поддержки для обновления вашей лицензии.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Одновременно вы можете общаться только с максимальным количеством файлов {{maxCount}}.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Вы можете персонализировать свое взаимодействие с LLMs, добавив воспоминания с помощью кнопки \"Управлять\" ниже, что сделает их более полезными и адаптированными для вас.", "You cannot upload an empty file.": "Вы не можете загрузить пустой файл.", - "You do not have permission to upload files": "У вас нет разрешения на загрузку файлов", "You do not have permission to upload files.": "У вас нет разрешения на загрузку файлов.", "You have no archived conversations.": "У вас нет архивированных бесед.", "You have shared this chat": "Вы поделились этим чатом", diff --git a/src/lib/i18n/locales/sk-SK/translation.json b/src/lib/i18n/locales/sk-SK/translation.json index 7ef64cb32..cec5d4c54 100644 --- a/src/lib/i18n/locales/sk-SK/translation.json +++ b/src/lib/i18n/locales/sk-SK/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(napr. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(napr. `sh webui.sh --api`)", "(latest)": "Najnovšie", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Povoliť odstránenie chatu", "Allow Chat Deletion": "Povoliť odstránenie chatu", "Allow Chat Edit": "Povoliť úpravu chatu", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Povoliť nahrávanie súborov", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Povoliť ne-lokálne hlasy", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "asistent", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Ste si istý?", "Arena Models": "Arena modely", "Artifacts": "Artefakty", @@ -135,6 +140,7 @@ "Bad Response": "Zlá odozva", "Banners": "Bannery", "Base Model (From)": "Základný model (z)", + "Base URL": "", "Batch Size (num_batch)": "Veľkosť batchu (num_batch)", "before": "pred", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "API kľúč pre Brave Search", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Zrušiť", "Capabilities": "Schopnosti", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "Zmeniť heslo", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "Vytvoriť knowledge", "Create new key": "Vytvoriť nový kľúč", "Create new secret key": "Vytvoriť nový tajný kľúč", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Vytvorené dňa", "Created At": "Vytvorené dňa", "Created by": "Vytvorené užívateľom", @@ -299,6 +309,7 @@ "Delete function?": "Funkcia na odstránenie?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Odstrániť prompt?", "delete this link": "odstrániť tento odkaz", "Delete tool?": "Odstrániť nástroj?", @@ -354,7 +365,7 @@ "Download Database": "Stiahnuť databázu", "Drag and drop a file to upload or select a file to view": "", "Draw": "Nakresliť", - "Drop any files here to add to the conversation": "Sem presuňte akékoľvek súbory, ktoré chcete pridať do konverzácie", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "napr. '30s','10m'. Platné časové jednotky sú 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Upraviť", "Edit Arena Model": "Upraviť Arena Model", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Povoliť nové registrácie", "Enabled": "Povolené", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Uistite sa, že váš CSV súbor obsahuje 4 stĺpce v tomto poradí: Name, Email, Password, Role.", "Enter {{role}} message here": "Zadajte správu {{role}} sem", "Enter a detail about yourself for your LLMs to recall": "Zadajte podrobnosť o sebe, ktorú si vaše LLM majú zapamätať.", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Zadajte veľkosť časti", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Zadajte popis", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Zadajte URL adresu Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "Zadajte ID modelu", "Enter model tag (e.g. {{modelTag}})": "Zadajte označenie modelu (napr. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Zadajte počet krokov (napr. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Zadajte URL (napr. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Zadajte URL (napr. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Zadajte svoj email", "Enter Your Full Name": "Zadajte svoje celé meno", "Enter your message": "Zadajte svoju správu", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Zadajte svoje heslo", "Enter Your Role": "Zadajte svoju rolu", @@ -480,6 +504,8 @@ "Error": "Chyba", "ERROR": "Chyba", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Hodnotenia", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Exportné nástroje", "External": "", "External Models": "Externé modely", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Nepodarilo sa pridať súbor.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Nepodarilo sa vytvoriť API kľúč.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Nepodarilo sa prečítať obsah schránky", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Plynule streamujte veľké externé časti odpovedí", "Focus chat input": "Zamerajte sa na vstup chatu", "Folder deleted successfully": "Priečinok bol úspešne vymazaný", - "Folder name cannot be empty": "Názov priečinka nesmie byť prázdny", "Folder name cannot be empty.": "Názov priečinka nesmie byť prázdny.", "Folder name updated successfully": "Názov priečinka bol úspešne aktualizovaný.", "Followed instructions perfectly": "Dodržal pokyny dokonale.", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "Funkcia bola úspešne aktualizovaná.", "Functions": "Funkcie", - "Functions allow arbitrary code execution": "Funkcie umožňujú vykonávať ľubovoľný kód.", "Functions allow arbitrary code execution.": "Funkcie umožňujú vykonávanie ľubovoľného kódu.", "Functions imported successfully": "Funkcie boli úspešne importované", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Všeobecné", + "Generate": "", "Generate an image": "", "Generate Image": "Vygenerovať obrázok", "Generate prompt pair": "", "Generating search query": "Generovanie vyhľadávacieho dotazu", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "Globálne", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Importovanie konfigurácie z JSON súboru", "Import Functions": "Načítanie funkcií", "Import Models": "Importovanie modelov", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importovať Prompty", "Import Tools": "Importovať nástroje", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Okamžité automatické odoslanie po prepisu hlasu", "Integration": "", "Interface": "Rozhranie", + "Invalid file content": "", "Invalid file format.": "Neplatný formát súboru.", "Invalid JSON schema": "", "Invalid Tag": "Neplatný tag", @@ -706,6 +740,7 @@ "Manage Pipelines": "Správa pipelines", "Manage Tool Servers": "", "March": "Marec", + "Max Speakers": "", "Max Tokens (num_predict)": "Maximálny počet tokenov (num_predict)", "Max Upload Count": "Maximálny počet nahraní", "Max Upload Size": "Maximálna veľkosť nahrávania", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Pamäť bola úspešne vymazaná", "Memory updated successfully": "Pamäť úspešne aktualizovaná", "Merge Responses": "Zlúčiť odpovede", + "Merged Response": "Zlúčená odpoveď", "Message rating should be enabled to use this feature": "Hodnotenie správ musí byť povolené, aby bolo možné túto funkciu používať.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Správy, ktoré odošlete po vytvorení odkazu, nebudú zdieľané. Používatelia s URL budú môcť zobraziť zdieľaný chat.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "viac", "More": "Viac", + "My Notes": "", "Name": "Meno", "Name your knowledge base": "", "Native": "", "New Chat": "Nový chat", "New Folder": "", + "New Note": "", "New Password": "Nové heslo", "new-channel": "", + "No content": "", "No content found": "Nebol nájdený žiadny obsah.", + "No content found in file.": "", "No content to speak": "Žiadny obsah na diskusiu.", "No distance available": "Nie je dostupná žiadna vzdialenosť", "No feedbacks found": "Žiadna spätná väzba nenájdená", "No file selected": "Nebola vybratá žiadna súbor", - "No files found.": "Neboli nájdené žiadne súbory.", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "Nebola nájdená žiadny obsah HTML, CSS ani JavaScript.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "Neboli nájdené žiadne modely", "No models selected": "", + "No Notes": "", "No results found": "Neboli nájdené žiadne výsledky", "No search query generated": "Nebola vygenerovaná žiadna vyhľadávacia otázka.", "No source available": "Nie je dostupný žiadny zdroj.", @@ -782,6 +825,7 @@ "None": "Žiadny", "Not factually correct": "Nie je fakticky správne", "Not helpful": "Nepomocné", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Poznámka: Ak nastavíte minimálne skóre, vyhľadávanie vráti iba dokumenty s hodnotením, ktoré je väčšie alebo rovné zadanému minimálnemu skóre.", "Notes": "Poznámky", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Príkazový reťazec môže obsahovať iba alfanumerické znaky a pomlčky.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Iba kolekcie môžu byť upravované, na úpravu/pridanie dokumentov vytvorte novú znalostnú databázu.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Jejda! Vyzerá to, že URL adresa je neplatná. Prosím, skontrolujte ju a skúste to znova.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Jejda! Niektoré súbory sa stále nahrávajú. Prosím, počkajte, kým sa nahrávanie dokončí.", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "Prenosové kanály neboli detekované", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "Čistý text (.txt)", "Playground": "", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Čítať nahlas", "Reasoning Effort": "", + "Record": "", "Record voice": "Nahrať hlas", "Redirecting you to Open WebUI Community": "Presmerovanie na komunitu OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Uložiť štítok", "Saved": "Uložené", "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": "Ukladanie záznamov chatu priamo do úložiska vášho prehliadača už nie je podporované. Venujte prosím chvíľu stiahnutiu a vymazaniu svojich záznamov chatu kliknutím na tlačidlo nižšie. Nemajte obavy, môžete ľahko znovu importovať svoje záznamy chatu na backend prostredníctvom", - "Scroll to bottom when switching between branches": "Prejsť na koniec pri prepínaní medzi vetvami.", + "Scroll On Branch Change": "", "Search": "Vyhľadávanie", "Search a model": "Vyhľadať model", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Hľadanie \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Vyhľadávanie znalostí pre \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Adresa URL dotazu Searxng", "See readme.md for instructions": "Pozrite si {{readme.md}} pre pokyny.", "See what's new": "Pozrite sa, čo je nové", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Nástroje sú systémom na volanie funkcií s vykonávaním ľubovoľného kódu.", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Nástroje majú systém volania funkcií, ktorý umožňuje ľubovoľné spúšťanie kódu.", "Tools have a function calling system that allows arbitrary code execution.": "Nástroje majú systém volania funkcií, ktorý umožňuje spúšťanie ľubovoľného kódu.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Odopnúť", "Unravel secrets": "", "Untagged": "Nebola označená", + "Untitled": "", "Update": "Aktualizovať", "Update and Copy Link": "Aktualizovať a skopírovať odkaz", "Update for the latest features and improvements.": "Aktualizácia pre najnovšie funkcie a vylepšenia.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Nahrať", "Upload a GGUF model": "Nahrať model vo formáte GGUF", + "Upload Audio": "", "Upload directory": "Nahrať adresár", "Upload files": "Nahrať súbory", "Upload Files": "Nahrať súbory", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Napíšte zhrnutie na 50 slov, ktoré zhrňuje [tému alebo kľúčové slovo].", "Write something...": "Napíšte niečo...", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Včera", "You": "Vy", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Môžete komunikovať len s maximálne {{maxCount}} súbor(ami) naraz.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Môžete personalizovať svoje interakcie s LLM pridaním spomienok prostredníctvom tlačidla 'Spravovať' nižšie, čo ich urobí pre vás užitočnejšími a lepšie prispôsobenými.", "You cannot upload an empty file.": "Nemôžete nahrať prázdny súbor.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Nemáte žiadne archivované konverzácie.", "You have shared this chat": "Zdieľali ste tento chat.", diff --git a/src/lib/i18n/locales/sr-RS/translation.json b/src/lib/i18n/locales/sr-RS/translation.json index 489718d70..709cdb04b 100644 --- a/src/lib/i18n/locales/sr-RS/translation.json +++ b/src/lib/i18n/locales/sr-RS/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(нпр. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(нпр. `sh webui.sh --api`)", "(latest)": "(најновије)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ модели }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Дозволи брисање ћаскања", "Allow Chat Deletion": "Дозволи брисање ћаскања", "Allow Chat Edit": "Дозволи измену ћаскања", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Дозволи отпремање датотека", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Дозволи нелокалне гласове", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Невероватно", "an assistant": "помоћник", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Да ли сигурно желите обрисати овај канал?", "Are you sure you want to delete this message?": "Да ли сигурно желите обрисати ову поруку?", "Are you sure you want to unarchive all archived chats?": "Да ли сигурно желите деархивирати све архиве?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Да ли сте сигурни?", "Arena Models": "Модели са Арене", "Artifacts": "Артефакти", @@ -135,6 +140,7 @@ "Bad Response": "Лош одговор", "Banners": "Барјаке", "Base Model (From)": "Основни модел (од)", + "Base URL": "", "Batch Size (num_batch)": "", "before": "пре", "Being lazy": "Бити лењ", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Апи кључ за храбру претрагу", "By {{name}}": "Од {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Откажи", "Capabilities": "Могућности", "Capture": "Ухвати", + "Capture Audio": "", "Certificate Path": "Путања до сертификата", "Change Password": "Промени лозинку", "Channel Name": "Назив канала", @@ -262,6 +270,8 @@ "Create Knowledge": "Направи знање", "Create new key": "Направи нови кључ", "Create new secret key": "Направи нови тајни кључ", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Направљено у", "Created At": "Направљено у", "Created by": "Направио/ла", @@ -299,6 +309,7 @@ "Delete function?": "Обрисати функцију?", "Delete Message": "Обриши поруку", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Обрисати упит?", "delete this link": "обриши ову везу", "Delete tool?": "Обрисати алат?", @@ -354,7 +365,7 @@ "Download Database": "Преузми базу података", "Drag and drop a file to upload or select a file to view": "", "Draw": "Нацртај", - "Drop any files here to add to the conversation": "Убаците било које датотеке овде да их додате у разговор", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "нпр. '30s', '10m'. Важеће временске јединице су 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Измени", "Edit Arena Model": "Измени модел арене", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Омогући нове пријаве", "Enabled": "Омогућено", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверите се да ваша CSV датотека укључује 4 колоне у овом редоследу: Име, Е-пошта, Лозинка, Улога.", "Enter {{role}} message here": "Унесите {{role}} поруку овде", "Enter a detail about yourself for your LLMs to recall": "Унесите детаље за себе да ће LLMs преузимати", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Унесите величину дела", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Унесите Гитхуб Раw УРЛ адресу", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Унесите ознаку модела (нпр. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Унесите број корака (нпр. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Унесите адресу (нпр. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Унесите адресу (нпр. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Унесите вашу е-пошту", "Enter Your Full Name": "Унесите ваше име и презиме", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Унесите вашу лозинку", "Enter Your Role": "Унесите вашу улогу", @@ -480,6 +504,8 @@ "Error": "Грешка", "ERROR": "ГРЕШКА", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "Процењивања", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Неуспешно стварање API кључа.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Неуспешно читање садржаја оставе", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Течно стримујте велике спољне делове одговора", "Focus chat input": "Усредсредите унос ћаскања", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Упутства су савршено праћена", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "Функције", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Опште", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "Генерисање упита претраге", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "Увези функције", "Import Models": "Увези моделе", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Увези упите", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "Изглед", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Неисправна ознака", @@ -706,6 +740,7 @@ "Manage Pipelines": "Управљање цевоводима", "Manage Tool Servers": "", "March": "Март", + "Max Speakers": "", "Max Tokens (num_predict)": "Маx Токенс (нум_предицт)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Сећање успешно обрисано", "Memory updated successfully": "Сећање успешно измењено", "Merge Responses": "Спој одговоре", + "Merged Response": "Спојени одговор", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Поруке које пошаљете након стварања ваше везе неће бити подељене. Корисници са URL-ом ће моћи да виде дељено ћаскање.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Миростат", "Mirostat Eta": "Миростат Ета", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "више", "More": "Више", + "My Notes": "", "Name": "Име", "Name your knowledge base": "", "Native": "", "New Chat": "Ново ћаскање", "New Folder": "", + "New Note": "", "New Password": "Нова лозинка", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Нема резултата", "No search query generated": "Није генерисан упит за претрагу", "No source available": "Нема доступног извора", @@ -782,6 +825,7 @@ "None": "Нико", "Not factually correct": "Није чињенично тачно", "Not helpful": "Није од помоћи", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Напомена: ако подесите најмањи резултат, претрага ће вратити само документе са резултатом већим или једнаким најмањем резултату.", "Notes": "Белешке", "Notification Sound": "Звук обавештења", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Само алфанумерички знакови и цртице су дозвољени у низу наредби.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Изгледа да је адреса неважећа. Молимо вас да проверите и покушате поново.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Цевоводи", "Pipelines Not Detected": "Цевоводи нису уочени", "Pipelines Valves": "Вентили за цевоводе", + "Plain text (.md)": "", "Plain text (.txt)": "Обичан текст (.txt)", "Playground": "Игралиште", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Читање", "Read Aloud": "Прочитај наглас", "Reasoning Effort": "Јачина размишљања", + "Record": "", "Record voice": "Сними глас", "Redirecting you to Open WebUI Community": "Преусмеравање на OpenWebUI заједницу", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "Сачувај ознаку", "Saved": "Сачувано", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Чување ћаскања директно у складиште вашег прегледача више није подржано. Одвојите тренутак да преузмете и избришете ваша ћаскања кликом на дугме испод. Не брините, можете лако поново увезти ваша ћаскања у бекенд кроз", - "Scroll to bottom when switching between branches": "Иди на дно странице приликом промене гране", + "Scroll On Branch Change": "", "Search": "Претражи", "Search a model": "Претражи модел", "Search Base": "Претражи базу", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "УРЛ адреса Сеарxнг упита", "See readme.md for instructions": "Погледај readme.md за упутства", "See what's new": "Погледај шта је ново", @@ -1140,7 +1188,6 @@ "Tools Access": "Приступ алатима", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "Топ К", @@ -1163,6 +1210,7 @@ "Unpin": "Откачи", "Unravel secrets": "Разоткриј тајне", "Untagged": "Неозначено", + "Untitled": "", "Update": "Ажурирај", "Update and Copy Link": "Ажурирај и копирај везу", "Update for the latest features and improvements.": "Ажурирајте за најновије могућности и побољшања.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Отпреми", "Upload a GGUF model": "Отпреми GGUF модел", + "Upload Audio": "", "Upload directory": "Отпреми фасциклу", "Upload files": "Отпремање датотека", "Upload Files": "Отпремање датотека", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Напишите сажетак у 50 речи који резимира [тему или кључну реч].", "Write something...": "Упишите нешто...", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Јуче", "You": "Ти", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Можете учинити разговор са ВЈМ-овима приснијим додавањем сећања користећи „Управљај“ думе испод и тиме их учинити приснијим и кориснијим.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Немате архивиране разговоре.", "You have shared this chat": "Поделили сте ово ћаскање", diff --git a/src/lib/i18n/locales/sv-SE/translation.json b/src/lib/i18n/locales/sv-SE/translation.json index 5fcc30032..76fe56661 100644 --- a/src/lib/i18n/locales/sv-SE/translation.json +++ b/src/lib/i18n/locales/sv-SE/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(t.ex. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(t.ex. `sh webui.sh --api`)", "(latest)": "(senaste)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ modeller }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Tillåt radering av chatt", "Allow Chat Deletion": "Tillåt chattborttagning", "Allow Chat Edit": "Tillåt redigering av chatt", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Tillåt filuppladdning", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Tillåt icke-lokala röster", @@ -76,6 +79,7 @@ "Always": "Alltid", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Fantastiskt", "an assistant": "en assistent", "Analyzed": "Analyserad", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Är du säker på att du vill radera denna kanal?", "Are you sure you want to delete this message?": "Är du säker på att du vill radera detta meddelande?", "Are you sure you want to unarchive all archived chats?": "Är du säker på att du vill avarkivera alla arkiverade chattar?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Är du säker?", "Arena Models": "Arenamodeller", "Artifacts": "Artefakter", @@ -135,6 +140,7 @@ "Bad Response": "Felaktig respons", "Banners": "Banners", "Base Model (From)": "Basmodell (Från)", + "Base URL": "", "Batch Size (num_batch)": "Batchstorlek (num_batch)", "before": "före", "Being lazy": "Lägg till", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "API-nyckel för Brave Search", "By {{name}}": "Av {{name}}", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "Avbryt", "Capabilities": "Kapaciteter", "Capture": "Fånga", + "Capture Audio": "", "Certificate Path": "Certifikatväg", "Change Password": "Ändra lösenord", "Channel Name": "Kanalnamn", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "Skapa ny nyckel", "Create new secret key": "Skapa ny hemlig nyckel", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Skapad", "Created At": "Skapad", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "radera denna länk", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "Ladda ner databas", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "Släpp filer här för att lägga till i samtalet", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "t.ex. '30s', '10m'. Giltiga tidsenheter är 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Redigera", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Aktivera nya registreringar", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Se till att din CSV-fil innehåller fyra kolumner i denna ordning: Name, Email, Password, Role.", "Enter {{role}} message here": "Skriv {{role}} meddelande här", "Enter a detail about yourself for your LLMs to recall": "Skriv en detalj om dig själv för att dina LLMs ska komma ihåg", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Ange chunkstorlek", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Ange Github Raw URL", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "Ange modelltagg (t.ex. {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Ange antal steg (t.ex. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "Ange URL (t.ex. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Ange URL (t.ex. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "Ange din e-post", "Enter Your Full Name": "Ange ditt fullständiga namn", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "Ange ditt lösenord", "Enter Your Role": "Ange din roll", @@ -480,6 +504,8 @@ "Error": "Fel", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Exportera verktyg", "External": "", "External Models": "Externa modeller", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "Misslyckades med att skapa API-nyckel.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Misslyckades med att läsa urklippsinnehåll", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Strömma flytande stora externa svarschunks", "Focus chat input": "Fokusera på chattfältet", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "Följde instruktionerna perfekt", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Allmän", + "Generate": "", "Generate an image": "", "Generate Image": "Generera bild", "Generate prompt pair": "", "Generating search query": "Genererar sökfråga", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "Importera modeller", + "Import Notes": "", "Import Presets": "", "Import Prompts": "Importera instruktioner", "Import Tools": "Importera verktyg", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Skicka automatiskt efter rösttranskribering", "Integration": "", "Interface": "Gränssnitt", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "Ogiltig tagg", @@ -706,6 +740,7 @@ "Manage Pipelines": "Hantera rörledningar", "Manage Tool Servers": "", "March": "mars", + "Max Speakers": "", "Max Tokens (num_predict)": "Maximalt antal tokens (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Sammanslaget svar", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Meddelanden du skickar efter att ha skapat din länk kommer inte att delas. Användare med URL:en kommer att kunna se delad chatt.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "Mer", + "My Notes": "", "Name": "Namn", "Name your knowledge base": "", "Native": "", "New Chat": "Ny chatt", "New Folder": "", + "New Note": "", "New Password": "Nytt lösenord", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "Inga resultat hittades", "No search query generated": "Ingen sökfråga genererad", "No source available": "Ingen tillgänglig källa", @@ -782,6 +825,7 @@ "None": "Ingen", "Not factually correct": "Inte faktiskt korrekt", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Obs: Om du anger en tröskel kommer sökningen endast att returnera dokument med ett betyg som är större än eller lika med tröskeln.", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "Endast alfanumeriska tecken och bindestreck är tillåtna i kommandosträngen.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Hoppsan! Det ser ut som om URL:en är ogiltig. Dubbelkolla gärna och försök igen.", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "Rörledningar", "Pipelines Not Detected": "", "Pipelines Valves": "Ventiler för rörledningar", + "Plain text (.md)": "", "Plain text (.txt)": "Text (.txt)", "Playground": "Lekplats", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "Läs igenom", "Reasoning Effort": "", + "Record": "", "Record voice": "Spela in röst", "Redirecting you to Open WebUI Community": "Omdirigerar dig till OpenWebUI Community", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Att spara chatloggar direkt till din webbläsares lagring stöds inte längre. Ta en stund och ladda ner och radera dina chattloggar genom att klicka på knappen nedan. Oroa dig inte, du kan enkelt importera dina chattloggar till backend genom", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "Sök", "Search a model": "Sök efter en modell", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "Söker \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "Se readme.md för instruktioner", "See what's new": "Se vad som är nytt", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "Verktyg är ett funktionsanropssystem med godtycklig kodkörning", "Tools Function Calling Prompt": "Prompt för anrop av verktygsfunktion:", - "Tools have a function calling system that allows arbitrary code execution": "Verktyg har ett funktionsanropssystem som tillåter godtycklig kodkörning", "Tools have a function calling system that allows arbitrary code execution.": "Verktyg har ett funktionsanropssystem som tillåter godtycklig kodkörning", "Tools Public Sharing": "", "Top K": "Topp K", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "Avslöja hemligheter", "Untagged": "", + "Untitled": "", "Update": "Uppdatera", "Update and Copy Link": "Uppdatera och kopiera länk", "Update for the latest features and improvements.": "Uppdatera för att få de senaste funktionerna och förbättringarna.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Uppgradera till en licensierad plan för utökade funktioner, inklusive anpassade teman och varumärken, och dedikerad support.", "Upload": "", "Upload a GGUF model": "Ladda upp en GGUF-modell", + "Upload Audio": "", "Upload directory": "", "Upload files": "Ladda upp filer", "Upload Files": "Ladda upp filer", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en sammanfattning på 50 ord som sammanfattar [ämne eller nyckelord].", "Write something...": "Skriv någonting...", "Write your model template content here": "Skriv din models innehåll här", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Igår", "You": "Dig", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Du kan endast chatta med maximalt {{maxCount}} fil(er) på samma gång", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Du kan anpassa dina interaktioner med stora språkmodeller genom att lägga till minnen via knappen 'Hantera' nedan, så att de blir mer användbara och skräddarsydda för dig.", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "Du har inga arkiverade samtal.", "You have shared this chat": "Du har delat denna chatt", diff --git a/src/lib/i18n/locales/th-TH/translation.json b/src/lib/i18n/locales/th-TH/translation.json index ca9df6800..69aae71e3 100644 --- a/src/lib/i18n/locales/th-TH/translation.json +++ b/src/lib/i18n/locales/th-TH/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(เช่น `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(เช่น `sh webui.sh --api`)", "(latest)": "(ล่าสุด)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -32,12 +33,12 @@ "Add a short description about what this model does": "เพิ่มคำอธิบายสั้นๆ เกี่ยวกับสิ่งที่โมเดลนี้ทำ", "Add a tag": "เพิ่มแท็ก", "Add Arena Model": "", - "Add Connection": "", - "Add Content": "", - "Add content here": "", + "Add Connection": "เพิ่มการเชื่อมต่อ", + "Add Content": "เพิ่มเนื้อหา", + "Add content here": "เพิ่มเนื้อหาตรงนี้", "Add custom prompt": "เพิ่มพรอมต์ที่กำหนดเอง", "Add Files": "เพิ่มไฟล์", - "Add Group": "", + "Add Group": "เพิ่มกลุ่ม", "Add Memory": "เพิ่มความจำ", "Add Model": "เพิ่มโมเดล", "Add Reaction": "", @@ -57,17 +58,19 @@ "All": "", "All Documents": "เอกสารทั้งหมด", "All models deleted successfully": "", - "Allow Call": "", - "Allow Chat Controls": "", - "Allow Chat Delete": "", + "Allow Call": "อนุญาตการโทร", + "Allow Chat Controls": "อนุญาตการควบคุมแชท", + "Allow Chat Delete": "อนุญาตการลบแชท", "Allow Chat Deletion": "อนุญาตการลบการสนทนา", - "Allow Chat Edit": "", - "Allow File Upload": "", + "Allow Chat Edit": "อนุญาตการแก้ไขแชท", + "Allow Chat Export": "อนุญาตการส่งออกแชท", + "Allow Chat Share": "อนุญาตการแชร์แชท", + "Allow File Upload": "อนุญาตการนำเข้าไฟล์", "Allow Multiple Models in Chat": "", "Allow non-local voices": "อนุญาตเสียงที่ไม่ใช่ท้องถิ่น", - "Allow Speech to Text": "", - "Allow Temporary Chat": "", - "Allow Text to Speech": "", + "Allow Speech to Text": "อนุญาตแปลงเสียงเป็นตัวอักษร", + "Allow Temporary Chat": "อนุญาตการแชทชั่วคราว", + "Allow Text to Speech": "อนุญาตแปลงตัวอักษรเป็นตัวเสียง", "Allow User Location": "อนุญาตตำแหน่งผู้ใช้", "Allow Voice Interruption in Call": "อนุญาตการแทรกเสียงในสาย", "Allowed Endpoints": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "ผู้ช่วย", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "คุณแน่ใจหรือ?", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "การตอบสนองที่ไม่ดี", "Banners": "แบนเนอร์", "Base Model (From)": "โมเดลพื้นฐาน (จาก)", + "Base URL": "", "Batch Size (num_batch)": "ขนาดชุด (num_batch)", "before": "ก่อน", "Being lazy": "ขี้เกียจ", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "คีย์ API ของ Brave Search", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "ยกเลิก", "Capabilities": "ความสามารถ", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "เปลี่ยนรหัสผ่าน", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "สร้างคีย์ใหม่", "Create new secret key": "สร้างคีย์ลับใหม่", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "สร้างเมื่อ", "Created At": "สร้างเมื่อ", "Created by": "สร้างโดย", @@ -299,6 +309,7 @@ "Delete function?": "ลบฟังก์ชัน?", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "ลบพรอมต์?", "delete this link": "ลบลิงก์นี้", "Delete tool?": "ลบเครื่องมือ?", @@ -354,7 +365,7 @@ "Download Database": "ดาวน์โหลดฐานข้อมูล", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "วางไฟล์ใดๆ ที่นี่เพื่อเพิ่มในการสนทนา", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "เช่น '30s', '10m' หน่วยเวลาที่ถูกต้องคือ 's', 'm', 'h'", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "แก้ไข", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "เปิดใช้งานการสมัครใหม่", "Enabled": "เปิดใช้งาน", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ตรวจสอบว่าไฟล์ CSV ของคุณมี 4 คอลัมน์ในลำดับนี้: ชื่อ, อีเมล, รหัสผ่าน, บทบาท", "Enter {{role}} message here": "ใส่ข้อความ {{role}} ที่นี่", "Enter a detail about yourself for your LLMs to recall": "ใส่รายละเอียดเกี่ยวกับตัวคุณสำหรับ LLMs ของคุณให้จดจำ", @@ -409,11 +422,17 @@ "Enter Chunk Size": "ใส่ขนาดส่วนข้อมูล", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "ใส่ URL ดิบของ Github", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "ใส่แท็กโมเดล (เช่น {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "ใส่จำนวนขั้นตอน (เช่น 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,21 +487,27 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "ใส่ URL (เช่น http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "ใส่ URL (เช่น http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "ใส่อีเมลของคุณ", "Enter Your Full Name": "ใส่ชื่อเต็มของคุณ", "Enter your message": "ใส่ข้อความของคุณ", - "Enter your name": "", - "Enter your new password": "", + "Enter your name": "กรอกชื่อของคุณ", + "Enter Your Name": "", + "Enter your new password": "กรอกรหัสผ่านใหม่ของคุณ", "Enter Your Password": "ใส่รหัสผ่านของคุณ", "Enter Your Role": "ใส่บทบาทของคุณ", - "Enter Your Username": "", + "Enter Your Username": "กรอกชื่อบัญชีผู้ใช้ของคุณ", "Enter your webhook URL": "", "Error": "ข้อผิดพลาด", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", - "Evaluations": "", + "Evaluations": "การประเมิน", "Exa API Key": "", "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "", "Example: ALL": "", @@ -492,9 +518,9 @@ "Exclude": "", "Execute code for analysis": "", "Executing **{{NAME}}**...": "", - "Expand": "", + "Expand": "ขยาย", "Experimental": "การทดลอง", - "Explain": "", + "Explain": "อธิบาย", "Explain this section to me in more detail": "", "Explore the cosmos": "", "Export": "ส่งออก", @@ -511,10 +537,16 @@ "Export Tools": "ส่งออกเครื่องมือ", "External": "", "External Models": "โมเดลภายนอก", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "สร้างคีย์ API ล้มเหลว", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "อ่านเนื้อหาคลิปบอร์ดล้มเหลว", "Failed to save connections": "", "Failed to save models configuration": "", @@ -523,8 +555,8 @@ "Features": "", "Features Permissions": "", "February": "กุมภาพันธ์", - "Feedback History": "", - "Feedbacks": "", + "Feedback History": "ประวัติการการตอบรับ", + "Feedbacks": "การตอบรับ", "Feel free to add specific details": "สามารถเพิ่มรายละเอียดเฉพาะได้", "File": "ไฟล์", "File added successfully.": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "สตรีมชิ้นส่วนการตอบสนองขนาดใหญ่จากภายนอกอย่างลื่นไหล", "Focus chat input": "โฟกัสการป้อนแชท", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "ปฏิบัติตามคำแนะนำอย่างสมบูรณ์แบบ", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "อัปเดตฟังก์ชันสำเร็จ", "Functions": "ฟังก์ชัน", - "Functions allow arbitrary code execution": "ฟังก์ชันอนุญาตการเรียกใช้โค้ดโดยพลการ", "Functions allow arbitrary code execution.": "ฟังก์ชันอนุญาตการเรียกใช้โค้ดโดยพลการ", "Functions imported successfully": "นำเข้าฟังก์ชันสำเร็จ", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "ทั่วไป", + "Generate": "", "Generate an image": "", "Generate Image": "สร้างภาพ", "Generate prompt pair": "", "Generating search query": "สร้างคำค้นหา", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "ทั่วโลก", @@ -586,9 +618,9 @@ "Group created successfully": "", "Group deleted successfully": "", "Group Description": "", - "Group Name": "", + "Group Name": "ชื่อกลุ่ม", "Group updated successfully": "", - "Groups": "", + "Groups": "กลุ่ม", "Haptic Feedback": "", "has no conversations.": "ไม่มีการสนทนา", "Hello, {{name}}": "สวัสดี, {{name}}", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "นำเข้าฟังก์ชัน", "Import Models": "นำเข้าโมเดล", + "Import Notes": "", "Import Presets": "", "Import Prompts": "นำเข้าพรอมต์", "Import Tools": "นำเข้าเครื่องมือ", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "ส่งอัตโนมัติทันทีหลังจากการถอดเสียง", "Integration": "", "Interface": "อินเทอร์เฟซ", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "แท็กไม่ถูกต้อง", @@ -656,9 +690,9 @@ "Key": "", "Keyboard shortcuts": "ทางลัดแป้นพิมพ์", "Knowledge": "ความรู้", - "Knowledge Access": "", - "Knowledge created successfully.": "", - "Knowledge deleted successfully.": "", + "Knowledge Access": "การเข้าถึงความรู้", + "Knowledge created successfully.": "สร้างความรู้สำเร็จ", + "Knowledge deleted successfully.": "ลบความรู้สำเร็จ", "Knowledge Public Sharing": "", "Knowledge reset successfully.": "", "Knowledge updated successfully": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "จัดการไปป์ไลน์", "Manage Tool Servers": "", "March": "มีนาคม", + "Max Speakers": "", "Max Tokens (num_predict)": "โทเค็นสูงสุด (num_predict)", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "ลบโมเดลสำเร็จ", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "การตอบกลับที่รวมกัน", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "ข้อความที่คุณส่งหลังจากสร้างลิงก์ของคุณแล้วจะไม่ถูกแชร์ ผู้ใช้ที่มี URL จะสามารถดูแชทที่แชร์ได้", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "เพิ่มเติม", + "My Notes": "", "Name": "ชื่อ", "Name your knowledge base": "", "Native": "", "New Chat": "แชทใหม่", "New Folder": "", + "New Note": "", "New Password": "รหัสผ่านใหม่", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "ไม่มีเนื้อหาที่จะพูด", "No distance available": "", "No feedbacks found": "", "No file selected": "ไม่ได้เลือกไฟล์", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "ไม่มีผลลัพธ์", "No search query generated": "ไม่มีการสร้างคำค้นหา", "No source available": "ไม่มีแหล่งข้อมูล", @@ -782,6 +825,7 @@ "None": "ไม่มี", "Not factually correct": "ไม่ถูกต้องตามข้อเท็จจริง", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "หมายเหตุ: หากคุณตั้งค่าคะแนนขั้นต่ำ การค้นหาจะคืนเอกสารที่มีคะแนนมากกว่าหรือเท่ากับคะแนนขั้นต่ำเท่านั้น", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "อนุญาตให้ใช้เฉพาะอักขระตัวอักษรและตัวเลข รวมถึงเครื่องหมายขีดกลางในสตริงคำสั่งเท่านั้น", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "อุ๊บส์! ดูเหมือนว่า URL ไม่ถูกต้อง กรุณาตรวจสอบและลองใหม่อีกครั้ง", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "ไปป์ไลน์", "Pipelines Not Detected": "ไม่พบไปป์ไลน์", "Pipelines Valves": "วาล์วของไปป์ไลน์", + "Plain text (.md)": "", "Plain text (.txt)": "ไฟล์ข้อความ (.txt)", "Playground": "สนามทดสอบ", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "อ่านออกเสียง", "Reasoning Effort": "", + "Record": "", "Record voice": "บันทึกเสียง", "Redirecting you to Open WebUI Community": "กำลังเปลี่ยนเส้นทางคุณไปยังชุมชน OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "การบันทึกบันทึกการสนทนาโดยตรงไปยังที่จัดเก็บในเบราว์เซอร์ของคุณไม่ได้รับการสนับสนุนอีกต่อไป โปรดสละเวลาสักครู่เพื่อดาวน์โหลดและลบบันทึกการสนทนาของคุณโดยคลิกที่ปุ่มด้านล่าง ไม่ต้องกังวล คุณสามารถนำเข้าบันทึกการสนทนาของคุณกลับไปยังส่วนแบ็กเอนด์ได้อย่างง่ายดายผ่าน", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "ค้นหา", "Search a model": "ค้นหาโมเดล", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "กำลังค้นหา \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "URL คำค้นหา", "See readme.md for instructions": "ดู readme.md สำหรับคำแนะนำ", "See what's new": "ดูสิ่งที่ใหม่", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "เครื่องมือคือระบบการเรียกใช้ฟังก์ชันที่สามารถดำเนินการโค้ดใดๆ ได้", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "เครื่องมือมีระบบการเรียกใช้ฟังก์ชันที่สามารถดำเนินการโค้ดใดๆ ได้", "Tools have a function calling system that allows arbitrary code execution.": "เครื่องมือมีระบบการเรียกใช้ฟังก์ชันที่สามารถดำเนินการโค้ดใดๆ ได้", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "ยกเลิกการปักหมุด", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "อัปเดต", "Update and Copy Link": "อัปเดตและคัดลอกลิงก์", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "อัปโหลด", "Upload a GGUF model": "อัปโหลดโมเดล GGUF", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "อัปโหลดไฟล์", @@ -1194,7 +1243,7 @@ "User Webhooks": "", "Username": "", "Users": "ผู้ใช้", - "Using the default arena model with all models. Click the plus button to add custom models.": "", + "Using the default arena model with all models. Click the plus button to add custom models.": "ใช้โมเดล Arena กับโมเดลทั้งหมด คลิกปุ่มบวกเพื่อเพิ่มโมเดลที่กำหนดเอง", "Utilize": "ใช้", "Valid time units:": "หน่วยเวลาใช้ได้:", "Valves": "วาล์ว", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "เขียนสรุปใน 50 คำที่สรุป [หัวข้อหรือคำสำคัญ]", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "เมื่อวาน", "You": "คุณ", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "คุณสามารถปรับแต่งการโต้ตอบของคุณกับ LLMs โดยเพิ่มความทรงจำผ่านปุ่ม 'จัดการ' ด้านล่าง ทำให้มันมีประโยชน์และเหมาะกับคุณมากขึ้น", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "คุณไม่มีการสนทนาที่เก็บถาวร", "You have shared this chat": "คุณได้แชร์แชทนี้แล้ว", diff --git a/src/lib/i18n/locales/tk-TM/translation.json b/src/lib/i18n/locales/tk-TM/translation.json index c065f8789..93a73c070 100644 --- a/src/lib/i18n/locales/tk-TM/translation.json +++ b/src/lib/i18n/locales/tk-TM/translation.json @@ -712,5 +712,6 @@ "Your username": "Ulanyjy adyňyz", "You're offline.": "Offline.", "You've reached your token limit for the day.": "Günüňize token çägiňize ýetdiňiz.", + "Merged Response": "Birleşdirilen jogap", "ZIP Code": "Poçta Kody" } diff --git a/src/lib/i18n/locales/tk-TW/translation.json b/src/lib/i18n/locales/tk-TW/translation.json index c541bfac3..c1bc2b3f2 100644 --- a/src/lib/i18n/locales/tk-TW/translation.json +++ b/src/lib/i18n/locales/tk-TW/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "", "(e.g. `sh webui.sh --api`)": "", "(latest)": "", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "", "Arena Models": "", "Artifacts": "", @@ -135,6 +140,7 @@ "Bad Response": "", "Banners": "", "Base Model (From)": "", + "Base URL": "", "Batch Size (num_batch)": "", "before": "", "Being lazy": "", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "", "Capabilities": "", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "", "Create new key": "", "Create new secret key": "", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "", "Created At": "", "Created by": "", @@ -299,6 +309,7 @@ "Delete function?": "", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "", "delete this link": "", "Delete tool?": "", @@ -354,7 +365,7 @@ "Download Database": "", "Drag and drop a file to upload or select a file to view": "", "Draw": "", - "Drop any files here to add to the conversation": "", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "", "Edit Arena Model": "", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "", "Enabled": "", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Enter {{role}} message here": "", "Enter a detail about yourself for your LLMs to recall": "", @@ -409,11 +422,17 @@ "Enter Chunk Size": "", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "", @@ -431,6 +450,7 @@ "Enter Model ID": "", "Enter model tag (e.g. {{modelTag}})": "", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "", "Enter URL (e.g. http://localhost:11434)": "", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "", "Enter Your Full Name": "", "Enter your message": "", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "", "Enter Your Role": "", @@ -480,6 +504,8 @@ "Error": "", "ERROR": "", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "", "External": "", "External Models": "", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "", "Focus chat input": "", "Folder deleted successfully": "", - "Folder name cannot be empty": "", "Folder name cannot be empty.": "", "Folder name updated successfully": "", "Followed instructions perfectly": "", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "", "Functions": "", - "Functions allow arbitrary code execution": "", "Functions allow arbitrary code execution.": "", "Functions imported successfully": "", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "", + "Generate": "", "Generate an image": "", "Generate Image": "", "Generate prompt pair": "", "Generating search query": "", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "", @@ -622,6 +654,7 @@ "Import Config from JSON File": "", "Import Functions": "", "Import Models": "", + "Import Notes": "", "Import Presets": "", "Import Prompts": "", "Import Tools": "", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "", "Integration": "", "Interface": "", + "Invalid file content": "", "Invalid file format.": "", "Invalid JSON schema": "", "Invalid Tag": "", @@ -706,6 +740,7 @@ "Manage Pipelines": "", "Manage Tool Servers": "", "March": "", + "Max Speakers": "", "Max Tokens (num_predict)": "", "Max Upload Count": "", "Max Upload Size": "", @@ -718,8 +753,12 @@ "Memory deleted successfully": "", "Memory updated successfully": "", "Merge Responses": "", + "Merged Response": "Birleşdirilen jogap", "Message rating should be enabled to use this feature": "", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "", "Mirostat": "", "Mirostat Eta": "", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "", "More": "", + "My Notes": "", "Name": "", "Name your knowledge base": "", "Native": "", "New Chat": "", "New Folder": "", + "New Note": "", "New Password": "", "new-channel": "", + "No content": "", "No content found": "", + "No content found in file.": "", "No content to speak": "", "No distance available": "", "No feedbacks found": "", "No file selected": "", - "No files found.": "", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "", "No models selected": "", + "No Notes": "", "No results found": "", "No search query generated": "", "No source available": "", @@ -782,6 +825,7 @@ "None": "", "Not factually correct": "", "Not helpful": "", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Notes": "", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "", "Only collections can be edited, create a new knowledge base to edit/add documents.": "", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "", "Oops! There are files still uploading. Please wait for the upload to complete.": "", @@ -849,6 +894,7 @@ "Pipelines": "", "Pipelines Not Detected": "", "Pipelines Valves": "", + "Plain text (.md)": "", "Plain text (.txt)": "", "Playground": "", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "", "Reasoning Effort": "", + "Record": "", "Record voice": "", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "", "Saved": "", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "", - "Scroll to bottom when switching between branches": "", + "Scroll On Branch Change": "", "Search": "", "Search a model": "", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "", "Searching Knowledge for \"{{searchQuery}}\"": "", + "Searching the web...": "", "Searxng Query URL": "", "See readme.md for instructions": "", "See what's new": "", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "", "Tools have a function calling system that allows arbitrary code execution.": "", "Tools Public Sharing": "", "Top K": "", @@ -1163,6 +1210,7 @@ "Unpin": "", "Unravel secrets": "", "Untagged": "", + "Untitled": "", "Update": "", "Update and Copy Link": "", "Update for the latest features and improvements.": "", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "", "Upload a GGUF model": "", + "Upload Audio": "", "Upload directory": "", "Upload files": "", "Upload Files": "", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "", "Write something...": "", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "", "You": "", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "", "You cannot upload an empty file.": "", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "", "You have shared this chat": "", diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json index 4f3446aa1..9926f1e2e 100644 --- a/src/lib/i18n/locales/tr-TR/translation.json +++ b/src/lib/i18n/locales/tr-TR/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(örn. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(örn. `sh webui.sh --api`)", "(latest)": "(en son)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Sohbet Silmeye İzin Ver", "Allow Chat Deletion": "Sohbet Silmeye İzin Ver", "Allow Chat Edit": "Sohbet Silmeye İzin Ver", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Dosya Yüklemeye İzin Ver", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Yerel olmayan seslere izin verin", @@ -76,6 +79,7 @@ "Always": "Daima", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "Harika", "an assistant": "bir asistan", "Analyzed": "Analiz edildi", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Bu kanalı silmek istediğinizden emin misiniz?", "Are you sure you want to delete this message?": "Bu mesajı silmek istediğinizden emin misiniz?", "Are you sure you want to unarchive all archived chats?": "Arşivlenmiş tüm sohbetlerin arşivini kaldırmak istediğinizden emin misiniz?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Emin misiniz?", "Arena Models": "Arena Modelleri", "Artifacts": "Eserler", @@ -135,6 +140,7 @@ "Bad Response": "Kötü Yanıt", "Banners": "Afişler", "Base Model (From)": "Temel Model ('den)", + "Base URL": "", "Batch Size (num_batch)": "Yığın Boyutu (num_batch)", "before": "önce", "Being lazy": "Tembelleşiyor", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing Arama V7 Abonelik Anahtarı", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Brave Search API Anahtarı", "By {{name}}": "{{name}} Tarafından", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "İptal", "Capabilities": "Yetenekler", "Capture": "Kayıt", + "Capture Audio": "", "Certificate Path": "Sertifika Yolu", "Change Password": "Parola Değiştir", "Channel Name": "Kanal Adı", @@ -262,6 +270,8 @@ "Create Knowledge": "Bilgi Oluştur", "Create new key": "Yeni anahtar oluştur", "Create new secret key": "Yeni gizli anahtar oluştur", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Oluşturulma tarihi", "Created At": "Şu Tarihte Oluşturuldu:", "Created by": "Şunun tarafından oluşturuldu:", @@ -299,6 +309,7 @@ "Delete function?": "Fonksiyonu sil?", "Delete Message": "Mesajı Sil", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "Promptu sil?", "delete this link": "bu bağlantıyı sil", "Delete tool?": "Aracı sil?", @@ -354,7 +365,7 @@ "Download Database": "Veritabanını İndir", "Drag and drop a file to upload or select a file to view": "Yüklemek için bir dosyayı sürükleyip bırakın veya görüntülemek için bir dosya seçin", "Draw": "Çiz", - "Drop any files here to add to the conversation": "Sohbete eklemek istediğiniz dosyaları buraya bırakın", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "örn. '30s', '10m'. Geçerli zaman birimleri 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "örn. benim_filtrem", "e.g. my_tools": "örn. benim_araçlarım", "e.g. Tools for performing various operations": " örn.Çeşitli işlemleri gerçekleştirmek için araçlar", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Düzenle", "Edit Arena Model": "Arena Modelini Düzenle", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Yeni Kayıtları Etkinleştir", "Enabled": "Etkin", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSV dosyanızın şu sırayla 4 sütun içerdiğinden emin olun: İsim, E-posta, Şifre, Rol.", "Enter {{role}} message here": "Buraya {{role}} mesajını girin", "Enter a detail about yourself for your LLMs to recall": "LLM'lerinizin hatırlaması için kendiniz hakkında bir bilgi girin", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Chunk Boyutunu Girin", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "Açıklama girin", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Github Raw URL'sini girin", @@ -431,6 +450,7 @@ "Enter Model ID": "Model ID'sini Girin", "Enter model tag (e.g. {{modelTag}})": "Model etiketini girin (örn. {{modelTag}})", "Enter Mojeek Search API Key": "Mojeek Search API Anahtarını Girin", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Adım Sayısını Girin (örn. 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "URL'yi Girin (örn. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "URL'yi Girin (e.g. http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Mevcut parolanızı girin", "Enter Your Email": "E-postanızı Girin", "Enter Your Full Name": "Tam Adınızı Girin", "Enter your message": "Mesajınızı girin", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Yeni parolanızı girin", "Enter Your Password": "Parolanızı Girin", "Enter Your Role": "Rolünüzü Girin", @@ -480,6 +504,8 @@ "Error": "Hata", "ERROR": "HATA", "Error accessing Google Drive: {{error}}": "Google Drive'a erişim hatası: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Dosya yüklenirken hata oluştu: {{error}}", "Evaluations": "Değerlendirmeler", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "Araçları Dışa Aktar", "External": "", "External Models": "Modelleri Dışa Aktar", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Dosya eklenemedi.", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API Anahtarı oluşturulamadı.", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "Pano içeriği okunamadı", "Failed to save connections": "", "Failed to save models configuration": "Modeller yapılandırması kaydedilemedi", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Büyük harici yanıt chunklarını akıcı bir şekilde yayınlayın", "Focus chat input": "Sohbet girişine odaklan", "Folder deleted successfully": "Klasör başarıyla silindi", - "Folder name cannot be empty": "Klasör adı boş olamaz", "Folder name cannot be empty.": "Klasör adı boş olamaz.", "Folder name updated successfully": "Klasör adı başarıyla güncellendi", "Followed instructions perfectly": "Talimatları mükemmel şekilde takip etti", @@ -565,17 +596,18 @@ "Function Name": "Fonksiyon Adı", "Function updated successfully": "Fonksiyon başarıyla güncellendi", "Functions": "Fonksiyonlar", - "Functions allow arbitrary code execution": "Fonksiyonlar keyfi kod yürütülmesine izin verir", "Functions allow arbitrary code execution.": "Fonksiyonlar keyfi kod yürütülmesine izin verir.", "Functions imported successfully": "Fonksiyonlar başarıyla içe aktarıldı", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "Genel", + "Generate": "", "Generate an image": "Bir Görsel Oluştur", "Generate Image": "Görsel Üret", "Generate prompt pair": "", "Generating search query": "Arama sorgusu oluşturma", + "Generating...": "", "Get started": "Başlayın", "Get started with {{WEBUI_NAME}}": "{{WEBUI_NAME}} ile başlayın", "Global": "Evrensel", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Yapılandırmayı JSON Dosyasından İçe Aktar", "Import Functions": "Fonksiyonları İçe Aktar", "Import Models": "Modelleri İçe Aktar", + "Import Notes": "", "Import Presets": "Ön Ayarları İçe Aktar", "Import Prompts": "Promptları İçe Aktar", "Import Tools": "Araçları İçe Aktar", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Ses Transkripsiyonundan Sonra Anında Otomatik Gönder", "Integration": "", "Interface": "Arayüz", + "Invalid file content": "", "Invalid file format.": "Geçersiz dosya biçimi.", "Invalid JSON schema": "", "Invalid Tag": "Geçersiz etiket", @@ -706,6 +740,7 @@ "Manage Pipelines": "Pipelineları Yönet", "Manage Tool Servers": "", "March": "Mart", + "Max Speakers": "", "Max Tokens (num_predict)": "Maksimum Token (num_predict)", "Max Upload Count": "Maksimum Yükleme Sayısı", "Max Upload Size": "Maksimum Yükleme Boyutu", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Bellek başarıyla silindi", "Memory updated successfully": "Bellek başarıyla güncellendi", "Merge Responses": "Yanıtları Birleştir", + "Merged Response": "Birleştirilmiş Yanıt", "Message rating should be enabled to use this feature": "Bu özelliği kullanmak için mesaj derecelendirmesi etkinleştirilmelidir", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Bağlantınızı oluşturduktan sonra gönderdiğiniz mesajlar paylaşılmayacaktır. URL'ye sahip kullanıcılar paylaşılan sohbeti görüntüleyebilecektir.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API Anahtarı", "more": "daha fazla", "More": "Daha Fazla", + "My Notes": "", "Name": "Ad", "Name your knowledge base": "Bilgi tabanınıza bir ad verin", "Native": "", "New Chat": "Yeni Sohbet", "New Folder": "Yeni Klasör", + "New Note": "", "New Password": "Yeni Parola", "new-channel": "yeni-kanal", + "No content": "", "No content found": "İçerik bulunamadı", + "No content found in file.": "", "No content to speak": "Konuşacak içerik yok", "No distance available": "Mesafe mevcut değil", "No feedbacks found": "Geri bildirim bulunamadı", "No file selected": "Hiçbir dosya seçilmedi", - "No files found.": "Dosya bulunamadı.", "No groups with access, add a group to grant access": "Erişimi olan grup yok, erişim sağlamak için bir grup ekleyin", "No HTML, CSS, or JavaScript content found.": "HTML, CSS veya JavaScript içeriği bulunamadı.", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "Model ID yok", "No models found": "Model bulunamadı", "No models selected": "Model seçilmedi", + "No Notes": "", "No results found": "Sonuç bulunamadı", "No search query generated": "Hiç arama sorgusu oluşturulmadı", "No source available": "Kaynak mevcut değil", @@ -782,6 +825,7 @@ "None": "Yok", "Not factually correct": "Gerçeklere göre doğru değil", "Not helpful": "Yardımcı olmadı", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Not: Minimum bir skor belirlerseniz, arama yalnızca minimum skora eşit veya daha yüksek bir skora sahip belgeleri getirecektir.", "Notes": "Notlar", "Notification Sound": "Bildirim Sesi", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Yalnızca alfasayısal karakterler ve tireler kabul edilir", "Only alphanumeric characters and hyphens are allowed in the command string.": "Komut dizisinde yalnızca alfasayısal karakterler ve tireler kabul edilir.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Yalnızca koleksiyonlar düzenlenebilir, belgeleri düzenlemek/eklemek için yeni bir bilgi tabanı oluşturun.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "İzinli kullanıcılar ve gruplar yalnızca erişebilir", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Hop! URL geçersiz gibi görünüyor. Lütfen tekrar kontrol edin ve yeniden deneyin.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Hop! Hala yüklenen dosyalar var. Yüklemenin tamamlanmasını bekleyin.", @@ -849,6 +894,7 @@ "Pipelines": "Pipelinelar", "Pipelines Not Detected": "Pipeline Tespit Edilmedi", "Pipelines Valves": "Pipeline Valvleri", + "Plain text (.md)": "", "Plain text (.txt)": "Düz metin (.txt)", "Playground": "Oyun Alanı", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Oku", "Read Aloud": "Sesli Oku", "Reasoning Effort": "", + "Record": "", "Record voice": "Ses kaydı yap", "Redirecting you to Open WebUI Community": "OpenWebUI Topluluğuna yönlendiriliyorsunuz", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "Etiketi Kaydet", "Saved": "Kaydedildi", "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": "Sohbet kayıtlarının doğrudan tarayıcınızın depolama alanına kaydedilmesi artık desteklenmemektedir. Lütfen aşağıdaki butona tıklayarak sohbet kayıtlarınızı indirmek ve silmek için bir dakikanızı ayırın. Endişelenmeyin, sohbet günlüklerinizi arkayüze kolayca yeniden aktarabilirsiniz:", - "Scroll to bottom when switching between branches": "Dallar arasında geçiş yaparken en alta kaydır", + "Scroll On Branch Change": "", "Search": "Ara", "Search a model": "Bir model ara", "Search Base": "Temel Ara", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "{{count}} site arandı", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" aranıyor", "Searching Knowledge for \"{{searchQuery}}\"": "\"{{searchQuery}}\" için Bilgi aranıyor", + "Searching the web...": "", "Searxng Query URL": "Searxng Sorgu URL'si", "See readme.md for instructions": "Yönergeler için readme.md dosyasına bakın", "See what's new": "Yeniliklere göz atın", @@ -1140,7 +1188,6 @@ "Tools Access": "Araçlara Erişim", "Tools are a function calling system with arbitrary code execution": "Araçlar, keyfi kod yürütme ile bir fonksiyon çağırma sistemine sahiptir", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "Araçlar, keyfi kod yürütme izni veren bir fonksiyon çağırma sistemine sahiptir", "Tools have a function calling system that allows arbitrary code execution.": "Araçlar, keyfi kod yürütme izni veren bir fonksiyon çağırma sistemine sahiptir.", "Tools Public Sharing": "", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Sabitlemeyi Kaldır", "Unravel secrets": "", "Untagged": "Etiketsiz", + "Untitled": "", "Update": "Güncelle", "Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala", "Update for the latest features and improvements.": "En son özellikler ve iyileştirmeler için güncelleyin.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "Yükle", "Upload a GGUF model": "Bir GGUF modeli yükle", + "Upload Audio": "", "Upload directory": "Dizini yükle", "Upload files": "Dosyaları yükle", "Upload Files": "Dosyaları Yükle", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "[Konuyu veya anahtar kelimeyi] özetleyen 50 kelimelik bir özet yazın.", "Write something...": "Bir şeyler yazın...", "Write your model template content here": "Model şablon içeriğinizi buraya yazın", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Dün", "You": "Sen", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Aynı anda en fazla {{maxCount}} dosya ile sohbet edebilirsiniz.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Aşağıdaki 'Yönet' düğmesi aracılığıyla bellekler ekleyerek LLM'lerle etkileşimlerinizi kişiselleştirebilir, onları daha yararlı ve size özel hale getirebilirsiniz.", "You cannot upload an empty file.": "Boş bir dosya yükleyemezsiniz.", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "Dosya yüklemek için izniniz yok.", "You have no archived conversations.": "Arşivlenmiş sohbetleriniz yok.", "You have shared this chat": "Bu sohbeti paylaştınız", diff --git a/src/lib/i18n/locales/uk-UA/translation.json b/src/lib/i18n/locales/uk-UA/translation.json index 6b56dc5e8..df8247344 100644 --- a/src/lib/i18n/locales/uk-UA/translation.json +++ b/src/lib/i18n/locales/uk-UA/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(напр. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(напр. `sh webui.sh --api`)", "(latest)": "(остання)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Дозволити видалення чату", "Allow Chat Deletion": "Дозволити видалення чату", "Allow Chat Edit": "Дозволити редагування чату", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Дозволити завантаження файлів", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Дозволити не локальні голоси", @@ -76,6 +79,7 @@ "Always": "Завжди", "Always Collapse Code Blocks": "Завжди згортати блоки коду", "Always Expand Details": "Завжди розгортати деталі", + "Always Play Notification Sound": "", "Amazing": "Чудово", "an assistant": "асистента", "Analyzed": "Проаналізовано", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Ви впевнені, що хочете видалити цей канал?", "Are you sure you want to delete this message?": "Ви впевнені, що хочете видалити це повідомлення?", "Are you sure you want to unarchive all archived chats?": "Ви впевнені, що хочете розархівувати усі архівовані чати?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Ви впевнені?", "Arena Models": "Моделі Arena", "Artifacts": "Артефакти", @@ -135,6 +140,7 @@ "Bad Response": "Неправильна відповідь", "Banners": "Прапори", "Base Model (From)": "Базова модель (від)", + "Base URL": "", "Batch Size (num_batch)": "Розмір партії (num_batch)", "before": "до того, як", "Being lazy": "Не поспішати", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Ключ підписки Bing Search V7", "Bocha Search API Key": "Ключ API пошуку Bocha", "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.": "", "Brave Search API Key": "Ключ API пошуку Brave", "By {{name}}": "Від {{name}}", "Bypass Embedding and Retrieval": "Минути вбудовування та пошук", @@ -153,6 +160,7 @@ "Cancel": "Скасувати", "Capabilities": "Можливості", "Capture": "Захоплення", + "Capture Audio": "", "Certificate Path": "Шлях до сертифіката", "Change Password": "Змінити пароль", "Channel Name": "Назва каналу", @@ -262,6 +270,8 @@ "Create Knowledge": "Створити знання", "Create new key": "Створити новий ключ", "Create new secret key": "Створити новий секретний ключ", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Створено у", "Created At": "Створено у", "Created by": "Створено", @@ -299,6 +309,7 @@ "Delete function?": "Видалити функцію?", "Delete Message": "Видалити повідомлення", "Delete message?": "Видалити повідомлення?", + "Delete note?": "", "Delete prompt?": "Видалити промт?", "delete this link": "видалити це посилання", "Delete tool?": "Видалити інструмент?", @@ -354,7 +365,7 @@ "Download Database": "Завантажити базу даних", "Drag and drop a file to upload or select a file to view": "Перетягніть файл для завантаження або виберіть файл для перегляду", "Draw": "Малювати", - "Drop any files here to add to the conversation": "Перетягніть сюди файли, щоб додати до розмови", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр., '30s','10m'. Дійсні одиниці часу: 'с', 'хв', 'г'.", "e.g. \"json\" or a JSON schema": "напр., \"json\" або схема JSON", "e.g. 60": "напр. 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "напр., my_filter", "e.g. my_tools": "напр., my_tools", "e.g. Tools for performing various operations": "напр., Інструменти для виконання різних операцій", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Редагувати", "Edit Arena Model": "Редагувати модель Arena", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Дозволити нові реєстрації", "Enabled": "Увімкнено", "Enforce Temporary Chat": "Застосувати тимчасовий чат", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Переконайтеся, що ваш CSV-файл містить 4 колонки в такому порядку: Ім'я, Email, Пароль, Роль.", "Enter {{role}} message here": "Введіть повідомлення {{role}} тут", "Enter a detail about yourself for your LLMs to recall": "Введіть відомості про себе для запам'ятовування вашими LLM.", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Введіть розмір фрагменту", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Введіть пари \"токен:значення_зміщення\", розділені комами (напр.: 5432:100, 413:-100)", "Enter description": "Введіть опис", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Введіть URL-адресу сервера Docling", "Enter Document Intelligence Endpoint": "Введіть кінцеву точку Інтелекту документа", "Enter Document Intelligence Key": "Введіть ключ Інтелекту документа", "Enter domains separated by commas (e.g., example.com,site.org)": "Введіть домени, розділені комами (наприклад, example.com, site.org)", "Enter Exa API Key": "Введіть ключ API Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Введіть Raw URL-адресу Github", @@ -431,6 +450,7 @@ "Enter Model ID": "Введіть ID моделі", "Enter model tag (e.g. {{modelTag}})": "Введіть тег моделі (напр., {{modelTag}})", "Enter Mojeek Search API Key": "Введіть API ключ для пошуку Mojeek", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Введіть кількість кроків (напр., 50)", "Enter Perplexity API Key": "Введіть ключ API для Perplexity", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Введіть Top K Реранкер", "Enter URL (e.g. http://127.0.0.1:7860/)": "Введіть URL-адресу (напр., http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Введіть URL-адресу (напр., http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Введіть ваш поточний пароль", "Enter Your Email": "Введіть вашу ел. пошту", "Enter Your Full Name": "Введіть ваше ім'я", "Enter your message": "Введіть повідомлення ", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "Введіть ваш новий пароль", "Enter Your Password": "Введіть ваш пароль", "Enter Your Role": "Введіть вашу роль", @@ -480,6 +504,8 @@ "Error": "Помилка", "ERROR": "ПОМИЛКА", "Error accessing Google Drive: {{error}}": "Помилка доступу до Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Помилка завантаження файлу: {{error}}", "Evaluations": "Оцінювання", "Exa API Key": "Exa API ключ", @@ -511,10 +537,16 @@ "Export Tools": "Експорт інструментів", "External": "Зовнішній", "External Models": "Зовнішні моделі", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Не вдалося додати файл.", "Failed to connect to {{URL}} OpenAPI tool server": "Не вдалося підключитися до серверу інструментів OpenAPI {{URL}}", "Failed to create API Key.": "Не вдалося створити API ключ.", + "Failed to delete note": "", "Failed to fetch models": "Не вдалося отримати моделі", + "Failed to load file content.": "", "Failed to read clipboard contents": "Не вдалося прочитати вміст буфера обміну", "Failed to save connections": "", "Failed to save models configuration": "Не вдалося зберегти конфігурацію моделей", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Плавно передавати великі фрагменти зовнішніх відповідей", "Focus chat input": "Фокус вводу чату", "Folder deleted successfully": "Папку успішно видалено", - "Folder name cannot be empty": "Назва папки не може бути порожньою", "Folder name cannot be empty.": "Назва папки не може бути порожньою.", "Folder name updated successfully": "Назву папки успішно оновлено", "Followed instructions perfectly": "Бездоганно дотримувався інструкцій", @@ -565,17 +596,18 @@ "Function Name": "Назва функції", "Function updated successfully": "Функцію успішно оновлено", "Functions": "Функції", - "Functions allow arbitrary code execution": "Функції дозволяють виконання довільного коду", "Functions allow arbitrary code execution.": "Функції дозволяють виконання довільного коду.", "Functions imported successfully": "Функції успішно імпортовано", "Gemini": "Gemini", "Gemini API Config": "Конфігурація Gemini API", "Gemini API Key is required.": "Потрібен ключ API Gemini.", "General": "Загальні", + "Generate": "", "Generate an image": "Згенерувати зображення", "Generate Image": "Створити зображення", "Generate prompt pair": "Згенерувати пару промтів", "Generating search query": "Сформувати пошуковий запит", + "Generating...": "", "Get started": "Почати", "Get started with {{WEBUI_NAME}}": "Почати з {{WEBUI_NAME}}", "Global": "Глоб.", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Імпорт конфігурації з файлу JSON", "Import Functions": "Імпорт функцій ", "Import Models": "Імпорт моделей", + "Import Notes": "", "Import Presets": "Імпорт пресетів", "Import Prompts": "Імпорт промтів", "Import Tools": "Імпорт інструментів", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Миттєва автоматична відправка після транскрипції голосу", "Integration": "Інтеграція", "Interface": "Інтерфейс", + "Invalid file content": "", "Invalid file format.": "Неправильний формат файлу.", "Invalid JSON schema": "Невірна схема JSON", "Invalid Tag": "Недійсний тег", @@ -706,6 +740,7 @@ "Manage Pipelines": "Керування конвеєрами", "Manage Tool Servers": "Керувати серверами інструментів", "March": "Березень", + "Max Speakers": "", "Max Tokens (num_predict)": "Макс токенів (num_predict)", "Max Upload Count": "Макс. кількість завантажень", "Max Upload Size": "Макс. розмір завантаження", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Пам'ять успішно видалено", "Memory updated successfully": "Пам'ять успішно оновлено", "Merge Responses": "Об'єднати відповіді", + "Merged Response": "Об'єднана відповідь", "Message rating should be enabled to use this feature": "Оцінювання повідомлень має бути увімкнено для використання цієї функції.", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Повідомлення, які ви надішлете після створення посилання, не будуть доступні для інших. Користувачі, які мають URL, зможуть переглядати спільний чат.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "API ключ для пошуку Mojeek", "more": "більше", "More": "Більше", + "My Notes": "", "Name": "Ім'я", "Name your knowledge base": "Назвіть вашу базу знань", "Native": "Рідний", "New Chat": "Новий чат", "New Folder": "Нова папка", + "New Note": "", "New Password": "Новий пароль", "new-channel": "новий-канал", + "No content": "", "No content found": "Контент не знайдено.", + "No content found in file.": "", "No content to speak": "Нема чого говорити", "No distance available": "Відстань недоступна", "No feedbacks found": "Відгуків не знайдено", "No file selected": "Файл не обрано", - "No files found.": "Файли не знайдено.", "No groups with access, add a group to grant access": "Немає груп з доступом, додайте групу для надання доступу", "No HTML, CSS, or JavaScript content found.": "HTML, CSS або JavaScript контент не знайдено.", "No inference engine with management support found": "Не знайдено двигуна висновків з підтримкою керування", @@ -774,6 +816,7 @@ "No model IDs": "Немає ID моделей", "No models found": "Моделей не знайдено", "No models selected": "Моделі не вибрано", + "No Notes": "", "No results found": "Не знайдено жодного результату", "No search query generated": "Пошуковий запит не сформовано", "No source available": "Джерело не доступне", @@ -782,6 +825,7 @@ "None": "Нема", "Not factually correct": "Не відповідає дійсності", "Not helpful": "Не корисно", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Примітка: Якщо ви встановите мінімальну кількість балів, пошук поверне лише документи з кількістю балів, більшою або рівною мінімальній кількості балів.", "Notes": "Примітки", "Notification Sound": "Звук сповіщення", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Дозволені тільки алфавітно-цифрові символи та дефіси", "Only alphanumeric characters and hyphens are allowed in the command string.": "У рядку команди дозволено використовувати лише алфавітно-цифрові символи та дефіси.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Редагувати можна лише колекції, створіть нову базу знань, щоб редагувати або додавати документи.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Тільки вибрані користувачі та групи з дозволом можуть отримати доступ", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Схоже, що URL-адреса невірна. Будь ласка, перевірте ще раз та спробуйте ще раз.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Упс! Деякі файли все ще завантажуються. Будь ласка, зачекайте, поки завантаження завершиться.", @@ -849,6 +894,7 @@ "Pipelines": "Конвеєри", "Pipelines Not Detected": "Конвеєрів не знайдено", "Pipelines Valves": "Клапани конвеєрів", + "Plain text (.md)": "", "Plain text (.txt)": "Простий текст (.txt)", "Playground": "Майданчик", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Читати", "Read Aloud": "Читати вголос", "Reasoning Effort": "Зусилля на міркування", + "Record": "", "Record voice": "Записати голос", "Redirecting you to Open WebUI Community": "Перенаправляємо вас до спільноти OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Зменшує ймовірність генерування нісенітниць. Вищий показник (напр., 100) забезпечить більше різноманітних відповідей, тоді як нижчий показник (напр., 10) буде більш обережним.", @@ -939,7 +986,7 @@ "Save Tag": "Зберегти тег", "Saved": "Збережено", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Збереження журналів чату безпосередньо в сховище вашого браузера більше не підтримується. Будь ласка, завантажте та видаліть журнали чату, натиснувши кнопку нижче. Не хвилюйтеся, ви можете легко повторно імпортувати журнали чату до бекенду через", - "Scroll to bottom when switching between branches": "Перемотувати до кінця при перемиканні між гілками", + "Scroll On Branch Change": "", "Search": "Пошук", "Search a model": "Шукати модель", "Search Base": "База пошуку", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Шукалося {{count}} сайтів", "Searching \"{{searchQuery}}\"": "Шукаю \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Пошук знань для \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "Searxng Query URL", "See readme.md for instructions": "Див. readme.md для інструкцій", "See what's new": "Подивіться, що нового", @@ -1140,7 +1188,6 @@ "Tools Access": "Доступ до інструментів", "Tools are a function calling system with arbitrary code execution": "Інструменти - це система виклику функцій з довільним виконанням коду", "Tools Function Calling Prompt": "Підказка для виклику функцій інструментів", - "Tools have a function calling system that allows arbitrary code execution": "Інструменти мають систему виклику функцій, яка дозволяє виконання довільного коду", "Tools have a function calling system that allows arbitrary code execution.": "Інструменти мають систему виклику функцій, яка дозволяє виконання довільного коду.", "Tools Public Sharing": "Публічний обмін інструментами", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Відчепити", "Unravel secrets": "Розплутуйте секрети", "Untagged": "Без тегів", + "Untitled": "", "Update": "Оновлення", "Update and Copy Link": "Оновлення та копіювання посилання", "Update for the latest features and improvements.": "Оновіть програми для нових функцій та покращень.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Оновіть до ліцензованого плану для розширених можливостей, включаючи кастомізацію теми та брендування, а також спеціалізовану підтримку.", "Upload": "Завантажити", "Upload a GGUF model": "Завантажити GGUF модель", + "Upload Audio": "", "Upload directory": "Завантажити каталог", "Upload files": "Завантажити файли", "Upload Files": "Завантажити файли", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Напишіть стислий зміст у 50 слів, який узагальнює [тема або ключове слово].", "Write something...": "Напишіть щось...", "Write your model template content here": "Напишіть вміст шаблону моделі тут", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Вчора", "You": "Ви", "You are currently using a trial license. Please contact support to upgrade your license.": "Ви наразі використовуєте пробну ліцензію. Будь ласка, зверніться до підтримки для оновлення вашої ліцензії.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Ви можете спілкуватися лише з максимальною кількістю {{maxCount}} файлів одночасно.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Ви можете налаштувати ваші взаємодії з мовними моделями, додавши спогади через кнопку 'Керувати' внизу, що зробить їх більш корисними та персоналізованими для вас.", "You cannot upload an empty file.": "Ви не можете завантажити порожній файл.", - "You do not have permission to upload files": "У вас немає дозволу на завантаження файлів", "You do not have permission to upload files.": "У вас немає дозволу завантажувати файли.", "You have no archived conversations.": "У вас немає архівованих розмов.", "You have shared this chat": "Ви поділилися цим чатом", diff --git a/src/lib/i18n/locales/ur-PK/translation.json b/src/lib/i18n/locales/ur-PK/translation.json index 51edf6c08..e6de5acda 100644 --- a/src/lib/i18n/locales/ur-PK/translation.json +++ b/src/lib/i18n/locales/ur-PK/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(مثال کے طور پر: `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(مثال کے طور پر: `sh webui.sh --api`)", "(latest)": "(تازہ ترین)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "", "{{ models }}": "{{ ماڈلز }}", "{{COUNT}} Available Tools": "", @@ -62,6 +63,8 @@ "Allow Chat Delete": "", "Allow Chat Deletion": "چیٹ کو حذف کرنے کی اجازت دیں", "Allow Chat Edit": "", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "", "Allow Multiple Models in Chat": "", "Allow non-local voices": "غیر مقامی آوازوں کی اجازت دیں", @@ -76,6 +79,7 @@ "Always": "", "Always Collapse Code Blocks": "", "Always Expand Details": "", + "Always Play Notification Sound": "", "Amazing": "", "an assistant": "معاون", "Analyzed": "", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "", "Are you sure you want to delete this message?": "", "Are you sure you want to unarchive all archived chats?": "", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "کیا آپ کو یقین ہے؟", "Arena Models": "ارینا ماڈلز", "Artifacts": "نوادرات", @@ -135,6 +140,7 @@ "Bad Response": "غلط جواب", "Banners": "بینرز", "Base Model (From)": "بیس ماڈل (سے)", + "Base URL": "", "Batch Size (num_batch)": "بیچ سائز (num_batch)", "before": "پہلے", "Being lazy": "سستی کر رہا ہے", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "", "Bocha Search API Key": "", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "بریو سرچ API کلید", "By {{name}}": "", "Bypass Embedding and Retrieval": "", @@ -153,6 +160,7 @@ "Cancel": "منسوخ کریں", "Capabilities": "صلاحیتیں", "Capture": "", + "Capture Audio": "", "Certificate Path": "", "Change Password": "پاس ورڈ تبدیل کریں", "Channel Name": "", @@ -262,6 +270,8 @@ "Create Knowledge": "علم بنائیں", "Create new key": "نیا کلید بنائیں", "Create new secret key": "نیا خفیہ کلید بنائیں", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "پر بنایا گیا", "Created At": "بنایا گیا:", "Created by": "تخلیق کردہ", @@ -299,6 +309,7 @@ "Delete function?": "حذف کریں؟", "Delete Message": "", "Delete message?": "", + "Delete note?": "", "Delete prompt?": "پرومپٹ کو حذف کریں؟", "delete this link": "اس لنک کو حذف کریں", "Delete tool?": "کیا آپ حذف کرنا چاہتے ہیں؟", @@ -354,7 +365,7 @@ "Download Database": "ڈیٹا بیس ڈاؤن لوڈ کریں", "Drag and drop a file to upload or select a file to view": "", "Draw": "ڈرائنگ کریں", - "Drop any files here to add to the conversation": "گفتگو میں شامل کرنے کے لیے کوئی بھی فائل یہاں چھوڑیں", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "مثلاً '30s'، '10m' درست وقت کی اکائیاں ہیں 's'، 'm'، 'h'", "e.g. \"json\" or a JSON schema": "", "e.g. 60": "", @@ -364,6 +375,7 @@ "e.g. my_filter": "", "e.g. my_tools": "", "e.g. Tools for performing various operations": "", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "ترمیم کریں", "Edit Arena Model": "ایرینا ماڈل میں ترمیم کریں", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "نئے سائن اپس کو فعال کریں", "Enabled": "فعال کردیا گیا ہے", "Enforce Temporary Chat": "", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "یقینی بنائیں کہ آپ کی CSV فائل میں 4 کالم اس ترتیب میں شامل ہوں: نام، ای میل، پاس ورڈ، کردار", "Enter {{role}} message here": "یہاں {{کردار}} پیغام درج کریں", "Enter a detail about yourself for your LLMs to recall": "اپنی ذات کے بارے میں کوئی تفصیل درج کریں تاکہ آپ کے LLMs اسے یاد رکھ سکیں", @@ -409,11 +422,17 @@ "Enter Chunk Size": "چنک سائز درج کریں", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "", "Enter description": "تفصیل درج کریں", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", "Enter domains separated by commas (e.g., example.com,site.org)": "", "Enter Exa API Key": "", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "گیٹ ہب را یو آر ایل درج کریں", @@ -431,6 +450,7 @@ "Enter Model ID": "ماڈل آئی ڈی درج کریں", "Enter model tag (e.g. {{modelTag}})": "ماڈل ٹیگ داخل کریں (مثال کے طور پر {{modelTag}})", "Enter Mojeek Search API Key": "", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "درج کریں مراحل کی تعداد (جیسے 50)", "Enter Perplexity API Key": "", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "", "Enter URL (e.g. http://127.0.0.1:7860/)": "یو آر ایل درج کریں (جیسے کہ http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "یو آر ایل درج کریں (مثلاً http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "", "Enter Your Email": "اپنا ای میل درج کریں", "Enter Your Full Name": "اپنا مکمل نام درج کریں", "Enter your message": "اپنا پیغام درج کریں", "Enter your name": "", + "Enter Your Name": "", "Enter your new password": "", "Enter Your Password": "اپنا پاس ورڈ درج کریں", "Enter Your Role": "اپنا کردار درج کریں", @@ -480,6 +504,8 @@ "Error": "غلطی", "ERROR": "غلطی", "Error accessing Google Drive: {{error}}": "", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "", "Evaluations": "تشخیصات", "Exa API Key": "", @@ -511,10 +537,16 @@ "Export Tools": "ایکسپورٹ ٹولز", "External": "", "External Models": "بیرونی ماڈلز", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "فائل شامل کرنے میں ناکام", "Failed to connect to {{URL}} OpenAPI tool server": "", "Failed to create API Key.": "API کلید بنانے میں ناکام", + "Failed to delete note": "", "Failed to fetch models": "", + "Failed to load file content.": "", "Failed to read clipboard contents": "کلپ بورڈ مواد کو پڑھنے میں ناکام", "Failed to save connections": "", "Failed to save models configuration": "", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "بڑے بیرونی جوابات کے حصوں کو بہاؤ میں منتقل کریں", "Focus chat input": "چیٹ ان پٹ پر توجہ مرکوز کریں", "Folder deleted successfully": "پوشہ کامیابی سے حذف ہو گیا", - "Folder name cannot be empty": "پوشے کا نام خالی نہیں ہو سکتا", "Folder name cannot be empty.": "پوشے کا نام خالی نہیں ہو سکتا", "Folder name updated successfully": "فولڈر کا نام کامیابی سے اپ ڈیٹ ہوگیا", "Followed instructions perfectly": "ہدایتوں کی مکمل پیروی کی گئی", @@ -565,17 +596,18 @@ "Function Name": "", "Function updated successfully": "فنکشن کو کامیابی سے اپ ڈیٹ کر دیا گیا", "Functions": "افعال", - "Functions allow arbitrary code execution": "فنکشنز کوڈ کے بلاواسطہ نفاذ کی اجازت دیتے ہیں", "Functions allow arbitrary code execution.": "افعال صوابدیدی کوڈ کے اجرا کی اجازت دیتے ہیں", "Functions imported successfully": "فنکشنز کامیابی سے درآمد ہو گئے ہیں", "Gemini": "", "Gemini API Config": "", "Gemini API Key is required.": "", "General": "عمومی", + "Generate": "", "Generate an image": "", "Generate Image": "تصویر بنائیں", "Generate prompt pair": "", "Generating search query": "تلاش کے لیے سوالیہ عبارت تیار کی جا رہی ہے", + "Generating...": "", "Get started": "", "Get started with {{WEBUI_NAME}}": "", "Global": "عالمی", @@ -622,6 +654,7 @@ "Import Config from JSON File": "JSON فائل سے تشکیلات درآمد کریں", "Import Functions": "درآمد فنکشنز", "Import Models": "ماڈلز درآمد کریں", + "Import Notes": "", "Import Presets": "", "Import Prompts": "پرامپٹس درآمد کریں", "Import Tools": "امپورٹ ٹولز", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "آواز کی نقل کے بعد فوری خودکار بھیجنا", "Integration": "", "Interface": "انٹرفیس", + "Invalid file content": "", "Invalid file format.": "غلط فائل فارمیٹ", "Invalid JSON schema": "", "Invalid Tag": "غلط ٹیگ", @@ -706,6 +740,7 @@ "Manage Pipelines": "پائپ لائنز کا نظم کریں", "Manage Tool Servers": "", "March": "مارچ", + "Max Speakers": "", "Max Tokens (num_predict)": "زیادہ سے زیادہ ٹوکنز (num_predict)", "Max Upload Count": "زیادہ سے زیادہ اپلوڈ تعداد", "Max Upload Size": "زیادہ سے زیادہ اپلوڈ سائز", @@ -718,8 +753,12 @@ "Memory deleted successfully": "میموری کامیابی سے حذف ہوگئی", "Memory updated successfully": "حافظہ کامیابی سے اپ ڈیٹ کر دیا گیا", "Merge Responses": "جوابات کو یکجا کریں", + "Merged Response": "مرکب جواب", "Message rating should be enabled to use this feature": "اس فیچر کو استعمال کرنے کے لئے پیغام کی درجہ بندی فعال کی جانی چاہئے", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "آپ کے لنک بنانے کے بعد بھیجے گئے پیغامات شیئر نہیں کیے جائیں گے یو آر ایل والے صارفین شیئر کیا گیا چیٹ دیکھ سکیں گے", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "کم سے کم P", "Mirostat": "میروسٹیٹ", "Mirostat Eta": "میروسٹیٹ ایٹا", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "", "more": "مزید", "More": "مزید", + "My Notes": "", "Name": "نام", "Name your knowledge base": "", "Native": "", "New Chat": "نئی بات چیت", "New Folder": "", + "New Note": "", "New Password": "نیا پاس ورڈ", "new-channel": "", + "No content": "", "No content found": "کوئی مواد نہیں ملا", + "No content found in file.": "", "No content to speak": "بولنے کے لیے کوئی مواد نہیں", "No distance available": "فاصلہ دستیاب نہیں ہے", "No feedbacks found": "کوئی تبصرے نہیں ملے", "No file selected": "کوئی فائل منتخب نہیں کی گئی", - "No files found.": "کوئی فائلیں نہیں ملیں", "No groups with access, add a group to grant access": "", "No HTML, CSS, or JavaScript content found.": "کوئی HTML، CSS، یا جاوا اسکرپٹ مواد نہیں ملا", "No inference engine with management support found": "", @@ -774,6 +816,7 @@ "No model IDs": "", "No models found": "کوئی ماڈل نہیں ملا", "No models selected": "", + "No Notes": "", "No results found": "کوئی نتائج نہیں ملے", "No search query generated": "کوئی تلاش کی درخواست نہیں بنائی گئی", "No source available": "ماخذ دستیاب نہیں ہے", @@ -782,6 +825,7 @@ "None": "کوئی نہیں", "Not factually correct": "حقیقت کے مطابق نہیں ہے", "Not helpful": "مددگار نہیں ہے", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "نوٹ: اگر آپ کم از کم سکور سیٹ کرتے ہیں، تو تلاش صرف ان دستاویزات کو واپس کرے گی جن کا سکور کم از کم سکور کے برابر یا اس سے زیادہ ہوگا", "Notes": "نوٹس", "Notification Sound": "", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "", "Only alphanumeric characters and hyphens are allowed in the command string.": "کمانڈ سٹرنگ میں صرف حروفی، عددی کردار اور ہائفن کی اجازت ہے", "Only collections can be edited, create a new knowledge base to edit/add documents.": "صرف مجموعے ترمیم کیے جا سکتے ہیں، دستاویزات کو ترمیم یا شامل کرنے کے لیے نیا علمی بنیاد بنائیں", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "", "Oops! Looks like the URL is invalid. Please double-check and try again.": "اوہ! لگتا ہے کہ یو آر ایل غلط ہے براۂ کرم دوبارہ چیک کریں اور دوبارہ کوشش کریں", "Oops! There are files still uploading. Please wait for the upload to complete.": "اوہ! کچھ فائلیں ابھی بھی اپ لوڈ ہو رہی ہیں براہ کرم اپ لوڈ مکمل ہونے کا انتظار کریں", @@ -849,6 +894,7 @@ "Pipelines": "پائپ لائنز", "Pipelines Not Detected": "پائپ لائنز کی نشاندہی نہیں ہوئی", "Pipelines Valves": "پائپ لائنز والوز", + "Plain text (.md)": "", "Plain text (.txt)": "سادہ متن (.txt)", "Playground": "کھیل کا میدان", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "", "Read Aloud": "بُلند آواز میں پڑھیں", "Reasoning Effort": "", + "Record": "", "Record voice": "صوت ریکارڈ کریں", "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.": "", @@ -939,7 +986,7 @@ "Save Tag": "ٹیگ محفوظ کریں", "Saved": "محفوظ شدہ", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "براہ کرم اپنے براؤزر کے اسٹوریج میں چیٹ لاگز کو محفوظ کرنا اب تعاون یافتہ نہیں ہے براہ کرم نیچے دیئے گئے بٹن پر کلک کرکے اپنے چیٹ لاگز کو ڈاؤن لوڈ اور حذف کریں فکر نہ کریں، آپ اپنے چیٹ لاگز کو بیک اینڈ میں دوبارہ آسانی سے درآمد کر سکتے ہیں", - "Scroll to bottom when switching between branches": "شاخیں تبدیل کرتے وقت نیچے تک سکرول کریں", + "Scroll On Branch Change": "", "Search": "تلاش کریں", "Search a model": "ماڈل تلاش کریں", "Search Base": "", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "", "Searching \"{{searchQuery}}\"": "\"{{searchQuery}}\" تلاش کر رہے ہیں", "Searching Knowledge for \"{{searchQuery}}\"": "\"{{searchQuery}}\" کے لیے علم کی تلاش", + "Searching the web...": "", "Searxng Query URL": "تلاش کا سوال URL", "See readme.md for instructions": "ہدایات کے لیے readme.md دیکھیں", "See what's new": "نیا کیا ہے دیکھیں", @@ -1140,7 +1188,6 @@ "Tools Access": "", "Tools are a function calling system with arbitrary code execution": "ٹولز ایک فنکشن کالنگ سسٹم ہیں جس میں مرضی کے مطابق کوڈ چلایا جاتا ہے", "Tools Function Calling Prompt": "", - "Tools have a function calling system that allows arbitrary code execution": "ٹولز کے پاس ایک فنکشن کالنگ سسٹم ہے جو اختیاری کوڈ کے نفاذ کی اجازت دیتا ہے", "Tools have a function calling system that allows arbitrary code execution.": "ٹولز کے پاس ایک فنکشن کالنگ سسٹم ہے جو اختیاری کوڈ کی عمل درآمد کی اجازت دیتا ہے", "Tools Public Sharing": "", "Top K": "اوپر کے K", @@ -1163,6 +1210,7 @@ "Unpin": "ان پن کریں", "Unravel secrets": "", "Untagged": "غیر مہر شدہ", + "Untitled": "", "Update": "اپ ڈیٹ کریں", "Update and Copy Link": "اپڈیٹ اور لنک کاپی کریں", "Update for the latest features and improvements.": "تازہ ترین خصوصیات اور بہتریوں کے لیے اپ ڈیٹ کریں", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", "Upload": "اپ لوڈ کریں", "Upload a GGUF model": "جی جی یو ایف ماڈل اپلوڈ کریں", + "Upload Audio": "", "Upload directory": "ڈائریکٹری اپلوڈ کریں", "Upload files": "فائلیں اپلوڈ کریں", "Upload Files": "فائلیں اپ لوڈ کریں", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "موضوع یا کلیدی لفظ کا خلاصہ 50 الفاظ میں لکھیں", "Write something...": "کچھ لکھیں...", "Write your model template content here": "", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "کل", "You": "آپ", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "آپ ایک وقت میں زیادہ سے زیادہ {{maxCount}} فائل(وں) کے ساتھ صرف چیٹ کر سکتے ہیں", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "آپ نیچے موجود 'Manage' بٹن کے ذریعے LLMs کے ساتھ اپنی بات چیت کو یادداشتیں شامل کرکے ذاتی بنا سکتے ہیں، جو انہیں آپ کے لیے زیادہ مددگار اور آپ کے متعلق بنائے گی", "You cannot upload an empty file.": "آپ خالی فائل اپلوڈ نہیں کر سکتے", - "You do not have permission to upload files": "", "You do not have permission to upload files.": "", "You have no archived conversations.": "آپ کے پاس کوئی محفوظ شدہ مکالمات نہیں ہیں", "You have shared this chat": "آپ نے یہ چیٹ شیئر کی ہے", diff --git a/src/lib/i18n/locales/vi-VN/translation.json b/src/lib/i18n/locales/vi-VN/translation.json index 9d65ed7d7..6ea53db8d 100644 --- a/src/lib/i18n/locales/vi-VN/translation.json +++ b/src/lib/i18n/locales/vi-VN/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(vd: `sh webui.sh --api --api-auth tên_người_dùng_mật_khẩu`)", "(e.g. `sh webui.sh --api`)": "(vd: `sh webui.sh --api`)", "(latest)": "(mới nhất)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ mô hình }}", "{{COUNT}} Available Tools": "{{COUNT}} Công cụ có sẵn", @@ -62,6 +63,8 @@ "Allow Chat Delete": "Cho phép Xóa Chat", "Allow Chat Deletion": "Cho phép Xóa nội dung chat", "Allow Chat Edit": "Cho phép Chỉnh sửa Chat", + "Allow Chat Export": "", + "Allow Chat Share": "", "Allow File Upload": "Cho phép Tải tệp lên", "Allow Multiple Models in Chat": "", "Allow non-local voices": "Cho phép giọng nói không bản xứ", @@ -76,6 +79,7 @@ "Always": "Luôn luôn", "Always Collapse Code Blocks": "Luôn Thu gọn Khối mã", "Always Expand Details": "Luôn Mở rộng Chi tiết", + "Always Play Notification Sound": "", "Amazing": "Tuyệt vời", "an assistant": "trợ lý", "Analyzed": "Đã phân tích", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "Bạn có chắc chắn muốn xóa kênh này không?", "Are you sure you want to delete this message?": "Bạn có chắc chắn muốn xóa tin nhắn này không?", "Are you sure you want to unarchive all archived chats?": "Bạn có chắc chắn muốn bỏ lưu trữ tất cả các cuộc trò chuyện đã lưu trữ không?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "Bạn có chắc chắn không?", "Arena Models": "Các Mô hình Arena", "Artifacts": "Kết quả tạo ra", @@ -135,6 +140,7 @@ "Bad Response": "Trả lời KHÔNG tốt", "Banners": "Biểu ngữ", "Base Model (From)": "Mô hình cơ sở (từ)", + "Base URL": "", "Batch Size (num_batch)": "Kích thước Lô (num_batch)", "before": "trước", "Being lazy": "Lười biếng", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Khóa đăng ký Bing Search V7", "Bocha Search API Key": "Khóa API Bocha Search", "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "Tăng cường hoặc phạt các token cụ thể cho các phản hồi bị ràng buộc. Giá trị bias sẽ được giới hạn trong khoảng từ -100 đến 100 (bao gồm). (Mặc định: không có)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "", "Brave Search API Key": "Khóa API tìm kiếm dũng cảm", "By {{name}}": "Bởi {{name}}", "Bypass Embedding and Retrieval": "Bỏ qua Embedding và Truy xuất", @@ -153,6 +160,7 @@ "Cancel": "Hủy bỏ", "Capabilities": "Năng lực", "Capture": "Chụp", + "Capture Audio": "", "Certificate Path": "Đường dẫn Chứng chỉ", "Change Password": "Đổi Mật khẩu", "Channel Name": "Tên Kênh", @@ -262,6 +270,8 @@ "Create Knowledge": "Tạo Kiến thức", "Create new key": "Tạo key mới", "Create new secret key": "Tạo key bí mật mới", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "Được tạo vào lúc", "Created At": "Tạo lúc", "Created by": "Tạo bởi", @@ -299,6 +309,7 @@ "Delete function?": "Xóa function?", "Delete Message": "Xóa Tin nhắn", "Delete message?": "Xóa tin nhắn?", + "Delete note?": "", "Delete prompt?": "Xóa prompt?", "delete this link": "Xóa link này", "Delete tool?": "Xóa tool?", @@ -354,7 +365,7 @@ "Download Database": "Tải xuống Cơ sở dữ liệu", "Drag and drop a file to upload or select a file to view": "Kéo và thả tệp để tải lên hoặc chọn tệp để xem", "Draw": "Vẽ", - "Drop any files here to add to the conversation": "Thả bất kỳ tệp nào ở đây để thêm vào nội dung chat", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.", "e.g. \"json\" or a JSON schema": "ví dụ: \"json\" hoặc một lược đồ JSON", "e.g. 60": "vd: 60", @@ -364,6 +375,7 @@ "e.g. my_filter": "vd: bo_loc_cua_toi", "e.g. my_tools": "vd: cong_cu_cua_toi", "e.g. Tools for performing various operations": "vd: Các công cụ để thực hiện các hoạt động khác nhau", + "e.g., 3, 4, 5 (leave blank for default)": "", "e.g., en-US,ja-JP (leave blank for auto-detect)": "", "Edit": "Chỉnh sửa", "Edit Arena Model": "Chỉnh sửa Mô hình Arena", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "Cho phép đăng ký mới", "Enabled": "Đã bật", "Enforce Temporary Chat": "Bắt buộc Chat nháp", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Đảm bảo tệp CSV của bạn bao gồm 4 cột theo thứ tự sau: Name, Email, Password, Role.", "Enter {{role}} message here": "Nhập yêu cầu của {{role}} ở đây", "Enter a detail about yourself for your LLMs to recall": "Nhập chi tiết về bản thân của bạn để LLMs có thể nhớ", @@ -409,11 +422,17 @@ "Enter Chunk Size": "Nhập Kích thước Chunk", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "Nhập các cặp \"token:giá_trị_bias\" được phân tách bằng dấu phẩy (ví dụ: 5432:100, 413:-100)", "Enter description": "Nhập mô tả", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "Nhập URL Máy chủ Docling", "Enter Document Intelligence Endpoint": "Nhập Endpoint Trí tuệ Tài liệu", "Enter Document Intelligence Key": "Nhập Khóa Trí tuệ Tài liệu", "Enter domains separated by commas (e.g., example.com,site.org)": "Nhập các tên miền được phân tách bằng dấu phẩy (ví dụ: example.com,site.org)", "Enter Exa API Key": "Nhập Khóa API Exa", + "Enter External Web Loader API Key": "", + "Enter External Web Loader URL": "", + "Enter External Web Search API Key": "", + "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", "Enter Github Raw URL": "Nhập URL cho Github Raw", @@ -431,6 +450,7 @@ "Enter Model ID": "Nhập ID Mô hình", "Enter model tag (e.g. {{modelTag}})": "Nhập thẻ mô hình (vd: {{modelTag}})", "Enter Mojeek Search API Key": "Nhập Khóa API Mojeek Search", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "Nhập số Steps (vd: 50)", "Enter Perplexity API Key": "Nhập Khóa API Perplexity", "Enter Playwright Timeout": "", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "Nhập Top K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Nhập URL (vd: http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "Nhập mật khẩu hiện tại của bạn", "Enter Your Email": "Nhập Email của bạn", "Enter Your Full Name": "Nhập Họ và Tên của bạn", "Enter your message": "Nhập tin nhắn của bạn", "Enter your name": "Nhập tên của bạn", + "Enter Your Name": "", "Enter your new password": "Nhập mật khẩu mới của bạn", "Enter Your Password": "Nhập Mật khẩu của bạn", "Enter Your Role": "Nhập vai trò của bạn", @@ -480,6 +504,8 @@ "Error": "Lỗi", "ERROR": "LỖI", "Error accessing Google Drive: {{error}}": "Lỗi truy cập Google Drive: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "Lỗi tải lên tệp: {{error}}", "Evaluations": "Đánh giá", "Exa API Key": "Khóa API Exa", @@ -511,10 +537,16 @@ "Export Tools": "Tải Tools về máy", "External": "Bên ngoài", "External Models": "Các model ngoài", + "External Web Loader API Key": "", + "External Web Loader URL": "", + "External Web Search API Key": "", + "External Web Search URL": "", "Failed to add file.": "Không thể thêm tệp.", "Failed to connect to {{URL}} OpenAPI tool server": "Không thể kết nối đến máy chủ công cụ OpenAPI {{URL}}", "Failed to create API Key.": "Lỗi khởi tạo API Key", + "Failed to delete note": "", "Failed to fetch models": "Không thể lấy danh sách mô hình", + "Failed to load file content.": "", "Failed to read clipboard contents": "Không thể đọc nội dung clipboard", "Failed to save connections": "Không thể lưu các kết nối", "Failed to save models configuration": "Không thể lưu cấu hình mô hình", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "Truyền tải các khối phản hồi bên ngoài lớn một cách trôi chảy", "Focus chat input": "Tập trung vào nội dung chat", "Folder deleted successfully": "Xóa thư mục thành công", - "Folder name cannot be empty": "Tên thư mục không được để trống", "Folder name cannot be empty.": "Tên thư mục không được để trống.", "Folder name updated successfully": "Cập nhật tên thư mục thành công", "Followed instructions perfectly": "Tuân theo chỉ dẫn một cách hoàn hảo", @@ -565,17 +596,18 @@ "Function Name": "Tên Function", "Function updated successfully": "Function được cập nhật thành công", "Functions": "Functions", - "Functions allow arbitrary code execution": "Các Function cho phép thực thi mã tùy ý", "Functions allow arbitrary code execution.": "Các Function cho phép thực thi mã tùy ý.", "Functions imported successfully": "Các function đã được nạp thành công", "Gemini": "Gemini", "Gemini API Config": "Cấu hình API Gemini", "Gemini API Key is required.": "Yêu cầu Khóa API Gemini.", "General": "Cài đặt chung", + "Generate": "", "Generate an image": "Tạo một hình ảnh", "Generate Image": "Sinh ảnh", "Generate prompt pair": "Tạo cặp prompt", "Generating search query": "Tạo truy vấn tìm kiếm", + "Generating...": "", "Get started": "Bắt đầu", "Get started with {{WEBUI_NAME}}": "Bắt đầu với {{WEBUI_NAME}}", "Global": "Toàn hệ thống", @@ -622,6 +654,7 @@ "Import Config from JSON File": "Nhập Cấu hình từ Tệp JSON", "Import Functions": "Nạp Functions", "Import Models": "Nạp model", + "Import Notes": "", "Import Presets": "Nhập các Preset", "Import Prompts": "Nạp các prompt lên hệ thống", "Import Tools": "Nạp Tools", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "Tự động gửi ngay lập tức sau khi phiên dịch giọng nói", "Integration": "Tích hợp", "Interface": "Giao diện", + "Invalid file content": "", "Invalid file format.": "Định dạng tệp không hợp lệ.", "Invalid JSON schema": "Lược đồ JSON không hợp lệ", "Invalid Tag": "Tag không hợp lệ", @@ -706,6 +740,7 @@ "Manage Pipelines": "Quản lý Pipelines", "Manage Tool Servers": "Quản lý Máy chủ Công cụ", "March": "Tháng 3", + "Max Speakers": "", "Max Tokens (num_predict)": "Tokens tối đa (num_predict)", "Max Upload Count": "Số lượng Tải lên Tối đa", "Max Upload Size": "Kích thước Tải lên Tối đa", @@ -718,8 +753,12 @@ "Memory deleted successfully": "Memory đã bị loại bỏ", "Memory updated successfully": "Memory đã cập nhật thành công", "Merge Responses": "Hợp nhất các phản hồi", + "Merged Response": "Phản hồi Hợp nhất", "Message rating should be enabled to use this feature": "Cần bật tính năng đánh giá tin nhắn để sử dụng tính năng này", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Tin nhắn bạn gửi sau khi tạo liên kết sẽ không được chia sẻ. Người dùng có URL sẽ có thể xem cuộc trò chuyện được chia sẻ.", + "Microsoft OneDrive": "", + "Microsoft OneDrive (personal)": "", + "Microsoft OneDrive (work/school)": "", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Khóa API Mojeek Search", "more": "thêm", "More": "Thêm", + "My Notes": "", "Name": "Tên", "Name your knowledge base": "Đặt tên cho cơ sở kiến thức của bạn", "Native": "Gốc", "New Chat": "Tạo chat mới", "New Folder": "Thư mục Mới", + "New Note": "", "New Password": "Mật khẩu mới", "new-channel": "kênh-mới", + "No content": "", "No content found": "Không tìm thấy nội dung", + "No content found in file.": "", "No content to speak": "Không có nội dung để nói", "No distance available": "Không có khoảng cách khả dụng", "No feedbacks found": "Không tìm thấy phản hồi nào", "No file selected": "Chưa có tệp nào được chọn", - "No files found.": "Không tìm thấy tệp nào.", "No groups with access, add a group to grant access": "Không có nhóm nào có quyền truy cập, hãy thêm một nhóm để cấp quyền truy cập", "No HTML, CSS, or JavaScript content found.": "Không tìm thấy nội dung HTML, CSS hoặc JavaScript.", "No inference engine with management support found": "Không tìm thấy engine suy luận nào có hỗ trợ quản lý", @@ -774,6 +816,7 @@ "No model IDs": "Không có ID mô hình", "No models found": "Không tìm thấy mô hình nào", "No models selected": "Chưa chọn mô hình nào", + "No Notes": "", "No results found": "Không tìm thấy kết quả", "No search query generated": "Không có truy vấn tìm kiếm nào được tạo ra", "No source available": "Không có nguồn", @@ -782,6 +825,7 @@ "None": "Không ai", "Not factually correct": "Không chính xác so với thực tế", "Not helpful": "Không hữu ích", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Lưu ý: Nếu bạn đặt điểm (Score) tối thiểu thì tìm kiếm sẽ chỉ trả về những tài liệu có điểm lớn hơn hoặc bằng điểm tối thiểu.", "Notes": "Ghi chú", "Notification Sound": "Âm thanh Thông báo", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "Chỉ cho phép các ký tự chữ và số và dấu gạch nối", "Only alphanumeric characters and hyphens are allowed in the command string.": "Chỉ ký tự số và gạch nối được phép trong chuỗi lệnh.", "Only collections can be edited, create a new knowledge base to edit/add documents.": "Chỉ có thể chỉnh sửa bộ sưu tập, tạo cơ sở kiến thức mới để chỉnh sửa/thêm tài liệu.", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "Chỉ người dùng và nhóm được chọn có quyền mới có thể truy cập", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Rất tiếc! URL dường như không hợp lệ. Vui lòng kiểm tra lại và thử lại.", "Oops! There are files still uploading. Please wait for the upload to complete.": "Ối! Vẫn còn tệp đang tải lên. Vui lòng đợi quá trình tải lên hoàn tất.", @@ -849,6 +894,7 @@ "Pipelines": "Pipelines", "Pipelines Not Detected": "Chưa tìm thấy Pipelines", "Pipelines Valves": "Các Valve của Pipeline", + "Plain text (.md)": "", "Plain text (.txt)": "Văn bản thô (.txt)", "Playground": "Thử nghiệm (Playground)", "Playwright Timeout (ms)": "", @@ -891,6 +937,7 @@ "Read": "Đọc", "Read Aloud": "Đọc ra loa", "Reasoning Effort": "Nỗ lực Suy luận", + "Record": "", "Record voice": "Ghi âm", "Redirecting you to Open WebUI Community": "Đang chuyển hướng bạn đến Cộng đồng OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Giảm xác suất tạo ra nội dung vô nghĩa. Giá trị cao hơn (ví dụ: 100) sẽ cho câu trả lời đa dạng hơn, trong khi giá trị thấp hơn (ví dụ: 10) sẽ thận trọng hơn.", @@ -939,7 +986,7 @@ "Save Tag": "Lưu Thẻ", "Saved": "Đã lưu", "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": "Không còn hỗ trợ lưu trữ lịch sử chat trực tiếp vào bộ nhớ trình duyệt của bạn. Vui lòng dành thời gian để tải xuống và xóa lịch sử chat của bạn bằng cách nhấp vào nút bên dưới. Đừng lo lắng, bạn có thể dễ dàng nhập lại lịch sử chat của mình vào backend thông qua", - "Scroll to bottom when switching between branches": "Cuộn xuống dưới cùng khi chuyển đổi giữa các nhánh", + "Scroll On Branch Change": "", "Search": "Tìm kiếm", "Search a model": "Tìm model", "Search Base": "Cơ sở Tìm kiếm", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "Đã tìm kiếm {{count}} trang web", "Searching \"{{searchQuery}}\"": "Đang tìm \"{{searchQuery}}\"", "Searching Knowledge for \"{{searchQuery}}\"": "Đang tìm kiếm Kiến thức cho \"{{searchQuery}}\"", + "Searching the web...": "", "Searxng Query URL": "URL truy vấn Searxng", "See readme.md for instructions": "Xem readme.md để biết hướng dẫn", "See what's new": "Xem những cập nhật mới", @@ -1140,7 +1188,6 @@ "Tools Access": "Truy cập Tools", "Tools are a function calling system with arbitrary code execution": "Tools là một hệ thống gọi function với việc thực thi mã tùy ý", "Tools Function Calling Prompt": "Prompt Gọi Function của Tools", - "Tools have a function calling system that allows arbitrary code execution": "Các Tools có hệ thống gọi function cho phép thực thi mã tùy ý", "Tools have a function calling system that allows arbitrary code execution.": "Các Tools có hệ thống gọi function cho phép thực thi mã tùy ý.", "Tools Public Sharing": "Chia sẻ Công khai Tools", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "Bỏ ghim", "Unravel secrets": "Làm sáng tỏ những bí mật", "Untagged": "Chưa gắn thẻ", + "Untitled": "", "Update": "Cập nhật", "Update and Copy Link": "Cập nhật và sao chép link", "Update for the latest features and improvements.": "Cập nhật để có các tính năng và cải tiến mới nhất.", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Nâng cấp lên gói cấp phép để có các khả năng nâng cao, bao gồm chủ đề và thương hiệu tùy chỉnh, và hỗ trợ chuyên dụng.", "Upload": "Tải lên", "Upload a GGUF model": "Tải lên mô hình GGUF", + "Upload Audio": "", "Upload directory": "Thư mục tải lên", "Upload files": "Tải lên các tệp", "Upload Files": "Tải tệp lên máy chủ", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].", "Write something...": "Viết gì đó...", "Write your model template content here": "Viết nội dung mẫu mô hình của bạn tại đây", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "Hôm qua", "You": "Bạn", "You are currently using a trial license. Please contact support to upgrade your license.": "Bạn hiện đang sử dụng giấy phép dùng thử. Vui lòng liên hệ bộ phận hỗ trợ để nâng cấp giấy phép của bạn.", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Bạn chỉ có thể trò chuyện với tối đa {{maxCount}} tệp cùng một lúc.", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Bạn có thể cá nhân hóa các tương tác của mình với LLM bằng cách thêm bộ nhớ thông qua nút 'Quản lý' bên dưới, làm cho chúng hữu ích hơn và phù hợp với bạn hơn.", "You cannot upload an empty file.": "Bạn không thể tải lên một tệp trống.", - "You do not have permission to upload files": "Bạn không có quyền tải lên tệp", "You do not have permission to upload files.": "Bạn không có quyền tải lên tệp.", "You have no archived conversations.": "Bạn chưa lưu trữ một nội dung chat nào", "You have shared this chat": "Bạn vừa chia sẻ chat này", diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index caf8b2594..50421f2d4 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -4,6 +4,7 @@ "(e.g. `sh webui.sh --api --api-auth username_password`)": "(例如 `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)", "(latest)": "(最新版)", + "(leave blank for Azure Commercial URL auto-generation)": "", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "{{COUNT}} 个可用工具", @@ -57,25 +58,28 @@ "All": "全部", "All Documents": "所有文档", "All models deleted successfully": "所有模型删除成功", - "Allow Call": "", - "Allow Chat Controls": "允许对话高级设置", + "Allow Call": "允许通话", + "Allow Chat Controls": "允许使用对话高级设置", "Allow Chat Delete": "允许删除对话记录", "Allow Chat Deletion": "允许删除对话记录", "Allow Chat Edit": "允许编辑对话记录", + "Allow Chat Export": "允许导出聊天", + "Allow Chat Share": "允许共享聊天", "Allow File Upload": "允许上传文件", - "Allow Multiple Models in Chat": "", + "Allow Multiple Models in Chat": "允许同时与多个模型聊天", "Allow non-local voices": "允许调用非本地音色", - "Allow Speech to Text": "", + "Allow Speech to Text": "允许语音转文本", "Allow Temporary Chat": "允许临时对话", - "Allow Text to Speech": "", + "Allow Text to Speech": "允许文本转语音", "Allow User Location": "允许获取您的位置", "Allow Voice Interruption in Call": "允许通话中的打断语音", - "Allowed Endpoints": "允许的端点", + "Allowed Endpoints": "允许的 API 端点", "Already have an account?": "已经拥有账号了?", "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "top_p 的替代方法,旨在确保质量和多样性之间的平衡。参数 p 表示相对于最可能令牌的概率,一个令牌被考虑的最小概率。例如,当 p=0.05 且最可能的令牌概率为 0.9 时,概率值小于 0.045 的词元将被过滤掉。", "Always": "保持", "Always Collapse Code Blocks": "始终折叠代码块", "Always Expand Details": "始终展开详细信息", + "Always Play Notification Sound": "始终播放通知声音", "Amazing": "很棒", "an assistant": "一个助手", "Analyzed": "已分析", @@ -83,7 +87,7 @@ "and": "和", "and {{COUNT}} more": "还有 {{COUNT}} 个", "and create a new shared link.": "并创建一个新的分享链接。", - "Android": "", + "Android": "Android", "API Base URL": "API 请求地址", "API Key": "API 密钥", "API Key created.": "API 密钥已创建。", @@ -101,6 +105,7 @@ "Are you sure you want to delete this channel?": "是否确认删除此频道?", "Are you sure you want to delete this message?": "是否确认删除此消息?", "Are you sure you want to unarchive all archived chats?": "是否确认取消所有已归档的对话?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "是否确定?", "Arena Models": "启用竞技场匿名评价模型", "Artifacts": "Artifacts", @@ -135,6 +140,7 @@ "Bad Response": "点踩此回答", "Banners": "公告横幅", "Base Model (From)": "基础模型 (来自)", + "Base URL": "", "Batch Size (num_batch)": "批大小 (num_batch)", "before": "对话", "Being lazy": "懒惰", @@ -143,6 +149,7 @@ "Bing Search V7 Subscription Key": "Bing 搜索 V7 订阅密钥", "Bocha Search API Key": "Bocha Search API 密钥", "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.": "", "Brave Search API Key": "Brave Search API 密钥", "By {{name}}": "由 {{name}} 提供", "Bypass Embedding and Retrieval": "绕过嵌入和检索", @@ -153,6 +160,7 @@ "Cancel": "取消", "Capabilities": "能力", "Capture": "截图", + "Capture Audio": "", "Certificate Path": "证书路径", "Change Password": "更改密码", "Channel Name": "频道名称", @@ -245,7 +253,7 @@ "Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!", "Copied to clipboard": "已复制到剪贴板", "Copy": "复制", - "Copy Formatted Text": "", + "Copy Formatted Text": "复制格式化文本", "Copy last code block": "复制最后一个代码块中的代码", "Copy last response": "复制最后一次回复内容", "Copy Link": "复制链接", @@ -262,6 +270,8 @@ "Create Knowledge": "创建知识", "Create new key": "创建新密钥", "Create new secret key": "创建新安全密钥", + "Create Note": "", + "Create your first note by clicking on the plus button below.": "", "Created at": "创建于", "Created At": "创建于", "Created by": "作者", @@ -299,6 +309,7 @@ "Delete function?": "删除函数?", "Delete Message": "删除消息", "Delete message?": "删除消息?", + "Delete note?": "", "Delete prompt?": "删除提示词?", "delete this link": "此处删除这个链接", "Delete tool?": "删除工具?", @@ -308,7 +319,7 @@ "Deleted User": "已删除用户", "Describe your knowledge base and objectives": "描述您的知识库和目标", "Description": "描述", - "Detect Artifacts Automatically": "", + "Detect Artifacts Automatically": "自动检测 Artifacts", "Didn't fully follow instructions": "没有完全遵照指示", "Direct": "直接", "Direct Connections": "直接连接", @@ -354,7 +365,7 @@ "Download Database": "下载数据库", "Drag and drop a file to upload or select a file to view": "拖动文件上传或选择文件查看", "Draw": "平局", - "Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中", + "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。", "e.g. \"json\" or a JSON schema": "例如 \"json\" 或一个 JSON schema", "e.g. 60": "例如 '60'", @@ -364,7 +375,8 @@ "e.g. my_filter": "例如:my_filter", "e.g. my_tools": "例如:my_tools", "e.g. Tools for performing various operations": "例如:用于执行各种操作的工具", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", + "e.g., 3, 4, 5 (leave blank for default)": "", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "例如,'en-US,ja-JP'(留空以便自动检测)", "Edit": "编辑", "Edit Arena Model": "编辑竞技场模型", "Edit Channel": "编辑频道", @@ -393,6 +405,7 @@ "Enable New Sign Ups": "允许新用户注册", "Enabled": "启用", "Enforce Temporary Chat": "强制临时聊天", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "确保您的 CSV 文件按以下顺序包含 4 列: 姓名、电子邮箱、密码、角色。", "Enter {{role}} message here": "在此处输入 {{role}} 的对话内容", "Enter a detail about yourself for your LLMs to recall": "输入一个关于你自己的详细信息,方便你的大语言模型记住这些内容", @@ -409,11 +422,17 @@ "Enter Chunk Size": "输入块大小 (Chunk Size)", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "输入以逗号分隔的“token:bias_value”对(例如:5432:100, 413:-100)", "Enter description": "输入简介描述", + "Enter Docling OCR Engine": "", + "Enter Docling OCR Language(s)": "", "Enter Docling Server URL": "输入 Docling 服务器 URL", "Enter Document Intelligence Endpoint": "输入 Document Intelligence 端点", "Enter Document Intelligence Key": "输入 Document Intelligence 密钥", "Enter domains separated by commas (e.g., example.com,site.org)": "输入以逗号分隔的域名(例如:example.com,site.org)", "Enter Exa API Key": "输入 Exa API 密钥", + "Enter External Web Loader API Key": "输入外部 Web Loader API 密钥", + "Enter External Web Loader URL": "输入外部 Web Loader URL", + "Enter External Web Search API Key": "输入外部 Web Search API 密钥", + "Enter External Web Search URL": "输入外部 Web Search URL", "Enter Firecrawl API Base URL": "输入 Firecrawl API 请求地址", "Enter Firecrawl API Key": "输入 Firecrawl API 密钥", "Enter Github Raw URL": "输入 Github Raw 地址", @@ -431,6 +450,7 @@ "Enter Model ID": "输入模型 ID", "Enter model tag (e.g. {{modelTag}})": "输入模型标签 (例如:{{modelTag}})", "Enter Mojeek Search API Key": "输入 Mojeek Search API 密钥", + "Enter New Password": "", "Enter Number of Steps (e.g. 50)": "输入步骤数 (Steps) (例如:50)", "Enter Perplexity API Key": "输入 Perplexity API 密钥", "Enter Playwright Timeout": "输入 Playwright 超时时间", @@ -452,8 +472,8 @@ "Enter server host": "输入服务器主机名 ", "Enter server label": "输入服务器标签", "Enter server port": "输入服务器端口", - "Enter Sougou Search API sID": "输入搜狗搜索 API 的 Secret ID", - "Enter Sougou Search API SK": "输入搜狗搜索 API 的 Secret Key", + "Enter Sougou Search API sID": "输入搜狗搜索 API Secret ID", + "Enter Sougou Search API SK": "输入搜狗搜索 API Secret 密钥", "Enter stop sequence": "输入停止序列 (Stop Sequence)", "Enter system prompt": "输入系统提示词 (Prompt)", "Enter system prompt here": "在这里输入系统提示词 (Prompt)", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "输入 Top K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "输入地址 (例如:http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "输入地址 (例如:http://localhost:11434)", + "Enter Yacy Password": "", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", + "Enter Yacy Username": "", "Enter your current password": "输入当前密码", "Enter Your Email": "输入您的电子邮箱", "Enter Your Full Name": "输入您的名称", "Enter your message": "输入您的消息", "Enter your name": "输入您的名称", + "Enter Your Name": "", "Enter your new password": "输入新的密码", "Enter Your Password": "输入您的密码", "Enter Your Role": "输入您的权限组", @@ -480,6 +504,8 @@ "Error": "错误", "ERROR": "错误", "Error accessing Google Drive: {{error}}": "访问 Google 云端硬盘 出错: {{error}}", + "Error accessing media devices.": "", + "Error starting recording.": "", "Error uploading file: {{error}}": "上传文件时出错: {{error}}", "Evaluations": "竞技场评估", "Exa API Key": "Exa API 密钥", @@ -511,10 +537,16 @@ "Export Tools": "导出工具", "External": "外部", "External Models": "外部模型", + "External Web Loader API Key": "外部 Web Loader API 密钥", + "External Web Loader URL": "外部 Web Loader API URL", + "External Web Search API Key": "外部 Web Search API 密钥", + "External Web Search URL": "外部 Web Search API URL", "Failed to add file.": "添加文件失败。", "Failed to connect to {{URL}} OpenAPI tool server": "无法连接到 {{URL}} OpenAPI 工具服务器", "Failed to create API Key.": "无法创建 API 密钥。", + "Failed to delete note": "", "Failed to fetch models": "无法获取模型", + "Failed to load file content.": "无法加载文件内容。", "Failed to read clipboard contents": "无法读取剪贴板内容", "Failed to save connections": "无法保存连接", "Failed to save models configuration": "无法保存模型配置", @@ -544,7 +576,6 @@ "Fluidly stream large external response chunks": "流畅地传输外部大型响应块数据", "Focus chat input": "聚焦对话输入", "Folder deleted successfully": "分组删除成功", - "Folder name cannot be empty": "分组名称不能为空", "Folder name cannot be empty.": "分组名称不能为空。", "Folder name updated successfully": "分组名称更新成功。", "Followed instructions perfectly": "完全按照指示执行", @@ -565,17 +596,18 @@ "Function Name": "函数名称", "Function updated successfully": "函数更新成功", "Functions": "函数", - "Functions allow arbitrary code execution": "注意:函数有权执行任意代码", "Functions allow arbitrary code execution.": "注意:函数有权执行任意代码。", "Functions imported successfully": "函数导入成功", "Gemini": "Gemini", "Gemini API Config": "Gemini API 配置", "Gemini API Key is required.": "需要 Gemini API 密钥。", "General": "通用", + "Generate": "", "Generate an image": "生成图像", "Generate Image": "生成图像", "Generate prompt pair": "生成提示对", "Generating search query": "生成搜索查询", + "Generating...": "", "Get started": "开始使用", "Get started with {{WEBUI_NAME}}": "开始使用 {{WEBUI_NAME}}", "Global": "全局", @@ -605,8 +637,8 @@ "Hybrid Search": "混合搜索", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "我已阅读并理解我的行为所带来的影响,明白执行任意代码所涉及的风险。且我已验证代码来源可信度。", "ID": "ID", - "iframe Sandbox Allow Forms": "", - "iframe Sandbox Allow Same Origin": "", + "iframe Sandbox Allow Forms": "iframe 沙盒允许表单提交", + "iframe Sandbox Allow Same Origin": "iframe 沙盒允许同源访问", "Ignite curiosity": "点燃好奇心", "Image": "图像生成", "Image Compression": "图像压缩", @@ -622,6 +654,7 @@ "Import Config from JSON File": "导入 JSON 文件中的配置信息", "Import Functions": "导入函数", "Import Models": "导入模型", + "Import Notes": "", "Import Presets": "导入预设", "Import Prompts": "导入提示词", "Import Tools": "导入工具", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "语音转录文字后即时自动发送", "Integration": "集成", "Interface": "界面", + "Invalid file content": "", "Invalid file format.": "无效文件格式。", "Invalid JSON schema": "无效的 JSON schema", "Invalid Tag": "无效标签", @@ -667,7 +701,7 @@ "Label": "标签", "Landing Page Mode": "默认主页样式", "Language": "语言", - "Language Locales": "", + "Language Locales": "语言环境", "Last Active": "最后在线时间", "Last Modified": "最后修改时间", "Last reply": "最后回复", @@ -706,6 +740,7 @@ "Manage Pipelines": "管理 Pipeline", "Manage Tool Servers": "管理工具服务器", "March": "三月", + "Max Speakers": "", "Max Tokens (num_predict)": "最大 Token 数量 (num_predict)", "Max Upload Count": "最大上传数量", "Max Upload Size": "最大上传大小", @@ -718,8 +753,12 @@ "Memory deleted successfully": "记忆删除成功", "Memory updated successfully": "记忆更新成功", "Merge Responses": "合并回复", + "Merged Response": "合并的回复", "Message rating should be enabled to use this feature": "要使用此功能,应先启用回复评价功能", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "创建链接后发送的消息不会被共享。具有 URL 的用户将能够查看共享对话。", + "Microsoft OneDrive": "Microsoft OneDrive", + "Microsoft OneDrive (personal)": "Microsoft OneDrive(个人账户)", + "Microsoft OneDrive (work/school)": "Microsoft OneDrive(工作或学校账户)", "Min P": "Min P", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek Search API 密钥", "more": "更多", "More": "更多", + "My Notes": "", "Name": "名称", "Name your knowledge base": "为您的知识库命名", "Native": "原生", "New Chat": "新对话", "New Folder": "新文件夹", + "New Note": "", "New Password": "新密码", "new-channel": "新频道", + "No content": "", "No content found": "未发现内容", + "No content found in file.": "文件中未找到内容", "No content to speak": "没有内容可朗读", "No distance available": "没有可用距离", "No feedbacks found": "暂无任何反馈", "No file selected": "未选中文件", - "No files found.": "未找到文件。", "No groups with access, add a group to grant access": "没有权限组,请添加一个权限组以授予访问权限", "No HTML, CSS, or JavaScript content found.": "未找到 HTML、CSS 或 JavaScript 内容。", "No inference engine with management support found": "未找到支持管理的推理引擎", @@ -774,6 +816,7 @@ "No model IDs": "没有模型 ID", "No models found": "未找到任何模型", "No models selected": "未选择任何模型", + "No Notes": "", "No results found": "未找到结果", "No search query generated": "未生成搜索查询", "No source available": "没有可用来源", @@ -782,6 +825,7 @@ "None": "无", "Not factually correct": "事实并非如此", "Not helpful": "无帮助", + "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "注意:如果设置了最低分数,搜索只会返回分数大于或等于最低分数的文档。", "Notes": "笔记", "Notification Sound": "通知提示音", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "只允许使用英文字母,数字 (0-9) 以及连字符 (-)", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字 (0-9) 以及连字符 (-)。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能编辑文件集,创建一个新的知识库来编辑/添加文件。", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "只有具有权限的用户和组才能访问", "Oops! Looks like the URL is invalid. Please double-check and try again.": "此链接似乎为无效链接。请检查后重试。", "Oops! There are files still uploading. Please wait for the upload to complete.": "稍等!还有文件正在上传。请等待上传完成。", @@ -849,6 +894,7 @@ "Pipelines": "Pipeline", "Pipelines Not Detected": "未检测到 Pipeline", "Pipelines Valves": "Pipeline 值", + "Plain text (.md)": "", "Plain text (.txt)": "TXT 文档 (.txt)", "Playground": "AI 对话游乐场", "Playwright Timeout (ms)": "Playwright 超时时间 (ms)", @@ -891,6 +937,7 @@ "Read": "只读", "Read Aloud": "朗读", "Reasoning Effort": "推理努力", + "Record": "", "Record voice": "录音", "Redirecting you to Open WebUI Community": "正在将您重定向到 OpenWebUI 社区", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "降低生成无意义内容的概率。较高的值(如100)将产生更多样化的回答,而较低的值(如10)则更加保守。", @@ -902,7 +949,7 @@ "Reindex Knowledge Base Vectors": "重建知识库向量", "Release Notes": "更新日志", "Relevance": "相关性", - "Relevance Threshold": "", + "Relevance Threshold": "相关性阈值", "Remove": "移除", "Remove Model": "移除模型", "Rename": "重命名", @@ -939,7 +986,7 @@ "Save Tag": "保存标签", "Saved": "已保存", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "我们不再支持将聊天记录直接保存到浏览器的存储空间。请点击下面的按钮下载并删除您的聊天记录。别担心,您可以轻松地将聊天记录重新导入到后台。", - "Scroll to bottom when switching between branches": "在分支间切换时滚动到底部", + "Scroll On Branch Change": "切换对话分支时滚动", "Search": "搜索", "Search a model": "搜索模型", "Search Base": "搜索库", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "已搜索 {{count}} 个网站", "Searching \"{{searchQuery}}\"": "搜索 \"{{searchQuery}}\" 中", "Searching Knowledge for \"{{searchQuery}}\"": "检索有关 \"{{searchQuery}}\" 的知识中", + "Searching the web...": "", "Searxng Query URL": "Searxng 查询 URL", "See readme.md for instructions": "查看 readme.md 以获取说明", "See what's new": "查阅最新更新内容", @@ -1032,8 +1080,8 @@ "Sign up to {{WEBUI_NAME}}": "注册 {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "正在登录 {{WEBUI_NAME}}", "sk-1234": "sk-1234", - "Sougou Search API sID": "搜狗搜索 API 的 Secret ID", - "Sougou Search API SK": "搜狗搜索 API 的 Secret Key", + "Sougou Search API sID": "搜狗搜索 API Secret ID", + "Sougou Search API SK": "搜狗搜索 API Secret 密钥", "Source": "来源", "Speech Playback Speed": "语音播放速度", "Speech recognition error: {{error}}": "语音识别错误:{{error}}", @@ -1140,7 +1188,6 @@ "Tools Access": "访问工具", "Tools are a function calling system with arbitrary code execution": "工具是一个具有任意代码执行能力的函数调用系统", "Tools Function Calling Prompt": "工具函数调用提示词", - "Tools have a function calling system that allows arbitrary code execution": "注意:工具有权执行任意代码", "Tools have a function calling system that allows arbitrary code execution.": "注意:工具有权执行任意代码。", "Tools Public Sharing": "工具公开分享", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "取消置顶", "Unravel secrets": "解开秘密", "Untagged": "无标签", + "Untitled": "", "Update": "更新", "Update and Copy Link": "更新和复制链接", "Update for the latest features and improvements.": "更新来获得最新功能与改进。", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "升级到授权计划以获得增强功能,包括自定义主题与品牌以及专属支持。", "Upload": "上传", "Upload a GGUF model": "上传一个 GGUF 模型", + "Upload Audio": "", "Upload directory": "上传目录", "Upload files": "上传文件", "Upload Files": "上传文件", @@ -1203,7 +1252,7 @@ "variable": "变量", "variable to have them replaced with clipboard content.": "变量将被剪贴板内容替换。", "Verify Connection": "验证连接", - "Verify SSL Certificate": "", + "Verify SSL Certificate": "验证 SSL 证书", "Version": "版本", "Version {{selectedVersion}} of {{totalVersions}}": "版本 {{selectedVersion}}/{{totalVersions}}", "View Replies": "查看回复", @@ -1246,13 +1295,15 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "用 50 个字写一个总结 [主题或关键词]。", "Write something...": "单击以键入内容...", "Write your model template content here": "在此写入模型模板内容", + "Yacy Instance URL": "", + "Yacy Password": "", + "Yacy Username": "", "Yesterday": "昨天", "You": "你", "You are currently using a trial license. Please contact support to upgrade your license.": "当前为试用许可证,请联系支持人员升级许可证。", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "每次对话最多仅能附上 {{maxCount}} 个文件。", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "通过点击下方的“管理”按钮,你可以添加记忆,以个性化大语言模型的互动,使其更有用,更符合你的需求。", "You cannot upload an empty file.": "请勿上传空文件。", - "You do not have permission to upload files": "你没有上传文件的权限", "You do not have permission to upload files.": "你没有上传文件的权限。", "You have no archived conversations.": "没有已归档的对话。", "You have shared this chat": "此对话已经分享过", diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index 83c424262..a8b7ecf2c 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -1,9 +1,10 @@ { "-1 for no limit, or a positive integer for a specific limit": "-1 表示無限制,或正整數表示特定限制", "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s'、'm'、'h'、'd'、'w' 或 '-1' 表示無到期時間。", - "(e.g. `sh webui.sh --api --api-auth username_password`)": "(例如 `sh webui.sh --api --api-auth username_password`)", - "(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)", + "(e.g. `sh webui.sh --api --api-auth username_password`)": "(例如:`sh webui.sh --api --api-auth username_password`)", + "(e.g. `sh webui.sh --api`)": "(例如:`sh webui.sh --api`)", "(latest)": "(最新版)", + "(leave blank for Azure Commercial URL auto-generation)": "(留空以自動產生 Azure Commercial URL)", "(Ollama)": "(Ollama)", "{{ models }}": "{{ models }}", "{{COUNT}} Available Tools": "{{COUNT}} 個可用工具", @@ -12,14 +13,14 @@ "{{user}}'s Chats": "{{user}} 的對話", "{{webUIName}} Backend Required": "需要 {{webUIName}} 後端", "*Prompt node ID(s) are required for image generation": "* 圖片生成需要提示詞節點 ID", - "A new version (v{{LATEST_VERSION}}) is now available.": "新版本 (v{{LATEST_VERSION}}) 現已釋出。", + "A new version (v{{LATEST_VERSION}}) is now available.": "新版本 (v{{LATEST_VERSION}}) 已釋出。", "A task model is used when performing tasks such as generating titles for chats and web search queries": "執行產生對話標題和網頁搜尋查詢等任務時會使用任務模型", - "a user": "一位使用者", + "a user": "使用者", "About": "關於", "Accept autocomplete generation / Jump to prompt variable": "接受自動完成生成/跳轉至提示變數", "Access": "存取", "Access Control": "存取控制", - "Accessible to all users": "所有使用者可存取", + "Accessible to all users": "所有使用者皆可存取", "Account": "帳號", "Account Activation Pending": "帳號待啟用", "Accurate information": "準確資訊", @@ -31,7 +32,7 @@ "Add a model ID": "新增模型 ID", "Add a short description about what this model does": "新增這個模型的簡短描述", "Add a tag": "新增標籤", - "Add Arena Model": "新增競技模型", + "Add Arena Model": "新增競技場模型", "Add Connection": "新增連線", "Add Content": "新增內容", "Add content here": "在此新增內容", @@ -57,17 +58,19 @@ "All": "全部", "All Documents": "所有文件", "All models deleted successfully": "成功刪除所有模型", - "Allow Call": "", + "Allow Call": "允許通話", "Allow Chat Controls": "允許控制對話", "Allow Chat Delete": "允許刪除對話", "Allow Chat Deletion": "允許刪除對話紀錄", "Allow Chat Edit": "允許編輯對話", + "Allow Chat Export": "允許匯出對話", + "Allow Chat Share": "允許分享對話", "Allow File Upload": "允許上傳檔案", "Allow Multiple Models in Chat": "允許在聊天中使用多個模型", "Allow non-local voices": "允許非本機語音", - "Allow Speech to Text": "", - "Allow Temporary Chat": "允許暫時對話", - "Allow Text to Speech": "", + "Allow Speech to Text": "允許語音轉文字", + "Allow Temporary Chat": "允許臨時對話", + "Allow Text to Speech": "允許文字轉語音", "Allow User Location": "允許使用者位置", "Allow Voice Interruption in Call": "允許在通話中打斷語音", "Allowed Endpoints": "允許的端點", @@ -76,8 +79,9 @@ "Always": "總是", "Always Collapse Code Blocks": "總是摺疊程式碼區塊", "Always Expand Details": "總是展開詳細資訊", + "Always Play Notification Sound": "總是播放通知音效", "Amazing": "很棒", - "an assistant": "一位助手", + "an assistant": "助理", "Analyzed": "分析完畢", "Analyzing...": "分析中……", "and": "和", @@ -101,12 +105,13 @@ "Are you sure you want to delete this channel?": "您確定要刪除此頻道嗎?", "Are you sure you want to delete this message?": "您確定要刪除此訊息嗎?", "Are you sure you want to unarchive all archived chats?": "您確定要解除封存所有封存的對話記錄嗎?", + "Are you sure you want to update this user's role to **{{ROLE}}**?": "", "Are you sure?": "您確定嗎?", - "Arena Models": "競技模型", + "Arena Models": "競技場模型", "Artifacts": "成品", "Ask": "提問", "Ask a question": "提出問題", - "Assistant": "助手", + "Assistant": "助理", "Attach file from knowledge": "從知識庫附加檔案", "Attention to detail": "注重細節", "Attribute for Mail": "使用者郵箱屬性", @@ -120,7 +125,7 @@ "Auto-Copy Response to Clipboard": "自動將回應複製到剪貼簿", "Auto-playback response": "自動播放回應", "Autocomplete Generation": "自動完成生成", - "Autocomplete Generation Input Max Length": "自動完成產生輸入最大長度", + "Autocomplete Generation Input Max Length": "自動完成輸入最大長度", "Automatic1111": "Automatic1111", "AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 API 驗證字串", "AUTOMATIC1111 Base URL": "AUTOMATIC1111 基礎 URL", @@ -135,6 +140,7 @@ "Bad Response": "錯誤回應", "Banners": "橫幅", "Base Model (From)": "基礎模型(來自)", + "Base URL": "Base URL", "Batch Size (num_batch)": "批次大小(num_batch)", "before": "之前", "Being lazy": "懶惰模式", @@ -142,7 +148,8 @@ "Bing Search V7 Endpoint": "Bing 搜尋 V7 端點", "Bing Search V7 Subscription Key": "Bing 搜尋 V7 訂閱金鑰", "Bocha Search API Key": "Bocha 搜尋 API 金鑰", - "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "針對受限的回應,增強或懲罰特定 tokens。偏置值將限制在 -100 到 100 (含)。 (預設:none)", + "Boosting or penalizing specific tokens for constrained responses. Bias values will be clamped between -100 and 100 (inclusive). (Default: none)": "針對受限的回應,增強或懲罰特定 tokens。偏差值將限制在 -100 到 100 (含)。 (預設:none)", + "Both Docling OCR Engine and Language(s) must be provided or both left empty.": "必須同時提供 Docling OCR 引擎與語言設定,或兩者皆留空。", "Brave Search API Key": "Brave 搜尋 API 金鑰", "By {{name}}": "由 {{name}} 製作", "Bypass Embedding and Retrieval": "繞過嵌入與檢索", @@ -153,21 +160,22 @@ "Cancel": "取消", "Capabilities": "功能", "Capture": "擷取", + "Capture Audio": "錄製音訊", "Certificate Path": "憑證路徑", "Change Password": "修改密碼", "Channel Name": "頻道名稱", "Channels": "頻道", "Character": "角色", - "Character limit for autocomplete generation input": "自動完成產生輸入的字元限制", + "Character limit for autocomplete generation input": "自動完成生成輸入的字元限制", "Chart new frontiers": "探索新領域", "Chat": "對話", "Chat Background Image": "對話背景圖片", "Chat Bubble UI": "對話氣泡介面", - "Chat Controls": "對話控制項", + "Chat Controls": "對話控制選項", "Chat direction": "對話方向", "Chat Overview": "對話概覽", "Chat Permissions": "對話權限", - "Chat Tags Auto-Generation": "對話標籤自動生成", + "Chat Tags Auto-Generation": "自動產生對話標籤", "Chats": "對話", "Check Again": "再次檢查", "Check for updates": "檢查更新", @@ -215,7 +223,7 @@ "ComfyUI Workflow": "ComfyUI 工作流程", "ComfyUI Workflow Nodes": "ComfyUI 工作流程節點", "Command": "命令", - "Completions": "補全", + "Completions": "自動完成", "Concurrent Requests": "平行請求", "Configure": "設定", "Confirm": "確認", @@ -238,14 +246,14 @@ "Continue with Email": "使用 Email 繼續", "Continue with LDAP": "使用 LDAP 繼續", "Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "控制文字轉語音(TTS)請求中如何分割訊息文字。「標點符號」分割為句子,「段落」分割為段落,「無」則保持訊息為單一字串。", - "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "控制生成文字中 token 序列的重複程度。較高的值(例如 1.5)會更強烈地懲罰重複,而較低的值(例如 1.1)會更寬容。設為 1 時,此功能將停用。", - "Controls": "控制項", + "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.": "控制生成文字中 token 序列的重複程度。較高的值(例如:1.5)會更強烈地懲罰重複,而較低的值(例如:1.1)會更寬容。設為 1 時,此功能將停用。", + "Controls": "控制選項", "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "控制輸出結果的連貫性與多樣性之間的平衡。數值越低會產生更集中且連貫的文字。", "Copied": "已複製", "Copied shared chat URL to clipboard!": "已複製共用對話 URL 到剪貼簿!", "Copied to clipboard": "已複製到剪貼簿", "Copy": "複製", - "Copy Formatted Text": "", + "Copy Formatted Text": "複製格式化文字", "Copy last code block": "複製最後一個程式碼區塊", "Copy last response": "複製最後一個回應", "Copy Link": "複製連結", @@ -262,6 +270,8 @@ "Create Knowledge": "建立知識", "Create new key": "建立新的金鑰", "Create new secret key": "建立新的金鑰", + "Create Note": "新增筆記", + "Create your first note by clicking on the plus button below.": "點擊下方加號按鈕建立您的第一則筆記。", "Created at": "建立於", "Created At": "建立於", "Created by": "建立者", @@ -299,6 +309,7 @@ "Delete function?": "刪除函式?", "Delete Message": "刪除訊息", "Delete message?": "刪除訊息?", + "Delete note?": "刪除筆記?", "Delete prompt?": "刪除提示詞?", "delete this link": "刪除此連結", "Delete tool?": "刪除工具?", @@ -308,7 +319,7 @@ "Deleted User": "刪除使用者?", "Describe your knowledge base and objectives": "描述您的知識庫和目標", "Description": "描述", - "Detect Artifacts Automatically": "自動檢測 Artifacts", + "Detect Artifacts Automatically": "自動偵測 Artifacts", "Didn't fully follow instructions": "未完全遵循指示", "Direct": "直接", "Direct Connections": "直接連線", @@ -354,19 +365,20 @@ "Download Database": "下載資料庫", "Drag and drop a file to upload or select a file to view": "拖放檔案以上傳或選擇檔案以檢視", "Draw": "繪製", - "Drop any files here to add to the conversation": "拖拽任意檔案到此處以新增至對話", + "Drop any files here to upload": "拖曳檔案至此處進行上傳", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如:'30s'、'10m'。有效的時間單位為 's'、'm'、'h'。", "e.g. \"json\" or a JSON schema": "範例:\"json\" 或一個 JSON schema", - "e.g. 60": "例如 60", - "e.g. A filter to remove profanity from text": "例如:從文字中移除髒話的篩選器", + "e.g. 60": "例如:60", + "e.g. A filter to remove profanity from text": "例如:用來移除不雅詞彙的過濾器", "e.g. My Filter": "例如:我的篩選器", "e.g. My Tools": "例如:我的工具", "e.g. my_filter": "例如:my_filter", "e.g. my_tools": "例如:my_tools", "e.g. Tools for performing various operations": "例如:用於執行各種操作的工具", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "例如:en-US, ja-JP(留空以自動檢測)", + "e.g., 3, 4, 5 (leave blank for default)": "例如:3、4、5(留空使用預設值)", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "例如:en-US, ja-JP(留空以自動偵測)", "Edit": "編輯", - "Edit Arena Model": "編輯競技模型", + "Edit Arena Model": "編輯競技場模型", "Edit Channel": "編輯頻道", "Edit Connection": "編輯連線", "Edit Default Permissions": "編輯預設權限", @@ -382,7 +394,7 @@ "Embedding Model Engine": "嵌入模型引擎", "Embedding model set to \"{{embedding_model}}\"": "嵌入模型已設定為 \"{{embedding_model}}\"", "Enable API Key": "啟用 API 金鑰", - "Enable autocomplete generation for chat messages": "啟用聊天訊息的自動完成生成", + "Enable autocomplete generation for chat messages": "啟用聊天訊息的自動完成", "Enable Code Execution": "啟用程式碼執行", "Enable Code Interpreter": "啟用程式碼直譯器", "Enable Community Sharing": "啟用社群分享", @@ -392,7 +404,8 @@ "Enable Mirostat sampling for controlling perplexity.": "啟用 Mirostat 取樣以控制 perplexity。", "Enable New Sign Ups": "允許新使用者註冊", "Enabled": "已啟用", - "Enforce Temporary Chat": "強制使用臨時聊天", + "Enforce Temporary Chat": "強制使用臨時對話", + "Enhance": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "請確認您的 CSV 檔案包含以下 4 個欄位,並按照此順序排列:姓名、電子郵件、密碼、角色。", "Enter {{role}} message here": "在此輸入 {{role}} 訊息", "Enter a detail about yourself for your LLMs to recall": "輸入有關您的詳細資訊,讓您的大型語言模型可以回想起來", @@ -409,17 +422,23 @@ "Enter Chunk Size": "輸入區塊大小", "Enter comma-separated \"token:bias_value\" pairs (example: 5432:100, 413:-100)": "輸入逗號分隔的 \"token:bias_value\" 配對 (範例:5432:100, 413:-100)", "Enter description": "輸入描述", + "Enter Docling OCR Engine": "輸入 Docling OCR 引擎", + "Enter Docling OCR Language(s)": "輸入 Docling OCR 語言", "Enter Docling Server URL": "請輸入 Docling 伺服器 URL", "Enter Document Intelligence Endpoint": "輸入 Document Intelligence 端點", "Enter Document Intelligence Key": "輸入 Document Intelligence 金鑰", "Enter domains separated by commas (e.g., example.com,site.org)": "輸入網域,以逗號分隔(例如:example.com, site.org)", "Enter Exa API Key": "輸入 Exa API 金鑰", - "Enter Firecrawl API Base URL": "輸入 Firecrawl API Base URL", + "Enter External Web Loader API Key": "輸入外部網頁載入器 API 金鑰", + "Enter External Web Loader URL": "輸入外部網頁載入器 URL", + "Enter External Web Search API Key": "輸入外部網路搜尋 API 金鑰", + "Enter External Web Search URL": "輸入外部網路搜尋 URL", + "Enter Firecrawl API Base URL": "輸入 Firecrawl API 基礎 URL", "Enter Firecrawl API Key": "輸入 Firecrawl API 金鑰", "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 Image Size (e.g. 512x512)": "輸入圖片尺寸(例如:512x512)", "Enter Jina API Key": "輸入 Jina API 金鑰", "Enter Jupyter Password": "輸入 Jupyter 密碼", "Enter Jupyter Token": "輸入 Jupyter Token", @@ -431,6 +450,7 @@ "Enter Model ID": "輸入模型 ID", "Enter model tag (e.g. {{modelTag}})": "輸入模型標籤(例如:{{modelTag}})", "Enter Mojeek Search API Key": "輸入 Mojeek 搜尋 API 金鑰", + "Enter New Password": "輸入新密碼", "Enter Number of Steps (e.g. 50)": "輸入步驟數(例如:50)", "Enter Perplexity API Key": "輸入 Perplexity API 金鑰", "Enter Playwright Timeout": "輸入 Playwright 逾時時間(毫秒)", @@ -452,8 +472,8 @@ "Enter server host": "輸入伺服器主機", "Enter server label": "輸入伺服器標籤", "Enter server port": "輸入伺服器連接埠", - "Enter Sougou Search API sID": "輸入 搜狗搜索 API sID", - "Enter Sougou Search API SK": "輸入 搜狗搜索 API SK", + "Enter Sougou Search API sID": "輸入 搜狗搜尋 API sID", + "Enter Sougou Search API SK": "輸入 搜狗搜尋 API SK", "Enter stop sequence": "輸入停止序列", "Enter system prompt": "輸入系統提示詞", "Enter system prompt here": "在此輸入系統提示詞", @@ -467,11 +487,15 @@ "Enter Top K Reranker": "輸入 Top K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如:http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "輸入 URL(例如:http://localhost:11434)", + "Enter Yacy Password": "輸入 Yacy 密碼", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "輸入 Yacy URL(例如:http://yacy.example.com:8090)", + "Enter Yacy Username": "輸入 Yacy 使用者名稱", "Enter your current password": "輸入您的目前密碼", "Enter Your Email": "輸入您的電子郵件", "Enter Your Full Name": "輸入您的全名", "Enter your message": "輸入您的訊息", "Enter your name": "輸入你的名稱", + "Enter Your Name": "輸入您的姓名", "Enter your new password": "輸入您的新密碼", "Enter Your Password": "輸入您的密碼", "Enter Your Role": "輸入您的角色", @@ -480,6 +504,8 @@ "Error": "錯誤", "ERROR": "錯誤", "Error accessing Google Drive: {{error}}": "存取 Google Drive 時發生錯誤:{{error}}", + "Error accessing media devices.": "存取媒體裝置時發生錯誤。", + "Error starting recording.": "", "Error uploading file: {{error}}": "上傳檔案時發生錯誤:{{error}}", "Evaluations": "評估", "Exa API Key": "Exa API 金鑰", @@ -511,10 +537,16 @@ "Export Tools": "匯出工具", "External": "外部", "External Models": "外部模型", + "External Web Loader API Key": "外部網頁載入器 API 金鑰", + "External Web Loader URL": "外部網頁載入器 URL", + "External Web Search API Key": "外部網路搜尋 API 金鑰", + "External Web Search URL": "外部網路搜尋 URL", "Failed to add file.": "新增檔案失敗。", "Failed to connect to {{URL}} OpenAPI tool server": "無法連線至 {{URL}} OpenAPI 工具伺服器", "Failed to create API Key.": "建立 API 金鑰失敗。", + "Failed to delete note": "刪除筆記失敗", "Failed to fetch models": "取得模型失敗", + "Failed to load file content.": "載入檔案內容失敗。", "Failed to read clipboard contents": "讀取剪貼簿內容失敗", "Failed to save connections": "儲存連線失敗", "Failed to save models configuration": "儲存模型設定失敗", @@ -539,12 +571,11 @@ "Filter is now globally enabled": "篩選器現在已全域啟用", "Filters": "篩選器", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "偵測到指紋偽造:無法使用姓名縮寫作為大頭貼。將預設為預設個人檔案圖片。", - "Firecrawl API Base URL": "Firecrawl API Base URL", + "Firecrawl API Base URL": "Firecrawl API 基礎 URL", "Firecrawl API Key": "Firecrawl API 金鑰", "Fluidly stream large external response chunks": "流暢地串流大型外部回應區塊", "Focus chat input": "聚焦對話輸入", "Folder deleted successfully": "資料夾刪除成功", - "Folder name cannot be empty": "資料夾名稱不能為空", "Folder name cannot be empty.": "資料夾名稱不能為空。", "Folder name updated successfully": "資料夾名稱更新成功", "Followed instructions perfectly": "完全遵循指示", @@ -565,17 +596,18 @@ "Function Name": "函式名稱", "Function updated successfully": "成功更新函式", "Functions": "函式", - "Functions allow arbitrary code execution": "函式允許執行任意程式碼", "Functions allow arbitrary code execution.": "函式允許執行任意程式碼。", "Functions imported successfully": "成功匯入函式", "Gemini": "Gemini", "Gemini API Config": "Gemini API 設定", "Gemini API Key is required.": "必須提供 Gemini API 金鑰", "General": "一般", + "Generate": "產生", "Generate an image": "產生圖片", "Generate Image": "產生圖片", "Generate prompt pair": "產生提示配對", "Generating search query": "正在產生搜尋查詢", + "Generating...": "", "Get started": "開始使用", "Get started with {{WEBUI_NAME}}": "開始使用 {{WEBUI_NAME}}", "Global": "全域", @@ -622,13 +654,14 @@ "Import Config from JSON File": "從 JSON 檔案匯入設定", "Import Functions": "匯入函式", "Import Models": "匯入模型", + "Import Notes": "匯入筆記", "Import Presets": "匯入預設集", "Import Prompts": "匯入提示詞", "Import Tools": "匯入工具", "Include": "包含", "Include `--api-auth` flag when running stable-diffusion-webui": "執行 stable-diffusion-webui 時包含 `--api-auth` 參數", "Include `--api` flag when running stable-diffusion-webui": "執行 stable-diffusion-webui 時包含 `--api` 參數", - "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.": "影響演算法對生成文本回饋的反應速度。較低的學習率會導致調整速度較慢,而較高的學習率會使演算法反應更靈敏。", + "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 commands": "輸入命令", @@ -636,6 +669,7 @@ "Instant Auto-Send After Voice Transcription": "語音轉錄後立即自動傳送", "Integration": "整合", "Interface": "介面", + "Invalid file content": "", "Invalid file format.": "無效檔案格式。", "Invalid JSON schema": "無效的 JSON schema", "Invalid Tag": "無效標籤", @@ -659,16 +693,16 @@ "Knowledge Access": "知識存取", "Knowledge created successfully.": "知識建立成功。", "Knowledge deleted successfully.": "知識刪除成功。", - "Knowledge Public Sharing": "知識庫公開分享", + "Knowledge Public Sharing": "知識公開分享", "Knowledge reset successfully.": "知識重設成功。", "Knowledge updated successfully": "知識更新成功", - "Kokoro.js (Browser)": "Kokoro.js (Browser)", + "Kokoro.js (Browser)": "Kokoro.js (瀏覽器)", "Kokoro.js Dtype": "Kokoro.js Dtype", "Label": "標籤", "Landing Page Mode": "首頁模式", "Language": "語言", "Language Locales": "語言區域設定", - "Last Active": "上次活動時間", + "Last Active": "最近活動時間", "Last Modified": "上次修改時間", "Last reply": "上次回覆", "LDAP": "LDAP", @@ -685,16 +719,16 @@ "Light": "淺色", "Listening...": "正在聆聽...", "Llama.cpp": "Llama.cpp", - "LLMs can make mistakes. Verify important information.": "大型語言模型可能會出錯。請驗證重要資訊。", - "Loader": "載入器", + "LLMs can make mistakes. Verify important information.": "大型語言模型可能會犯錯。請自行驗證重要資訊。", + "Loader": "載入工具", "Loading Kokoro.js...": "Kokoro.js 載入中……", "Local": "本機", "Local Models": "本機模型", "Location access not allowed": "位置存取未獲允許", - "Logit Bias": "Logit 偏置", + "Logit Bias": "Logit 偏差", "Lost": "已遺失", "LTR": "從左到右", - "Made by Open WebUI Community": "由 OpenWebUI 社群製作", + "Made by Open WebUI Community": "由 Open WebUI 社群製作", "Make sure to enclose them with": "請務必將它們放在", "Make sure to export a workflow.json file as API format from ComfyUI.": "請確保從 ComfyUI 匯出 workflow.json 檔案為 API 格式。", "Manage": "管理", @@ -706,6 +740,7 @@ "Manage Pipelines": "管理管線", "Manage Tool Servers": "管理工具伺服器", "March": "3 月", + "Max Speakers": "最大發言者數", "Max Tokens (num_predict)": "最大 token 數(num_predict)", "Max Upload Count": "最大上傳數量", "Max Upload Size": "最大上傳大小", @@ -718,8 +753,12 @@ "Memory deleted successfully": "成功刪除記憶", "Memory updated successfully": "成功更新記憶", "Merge Responses": "合併回應", + "Merged Response": "整合回應結果", "Message rating should be enabled to use this feature": "需要啟用訊息評分才能使用此功能", "Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "建立連結後傳送的訊息不會被分享。擁有網址的使用者可檢視分享的對話內容。", + "Microsoft OneDrive": "Microsoft OneDrive", + "Microsoft OneDrive (personal)": "Microsoft OneDrive(個人版)", + "Microsoft OneDrive (work/school)": "Microsoft OneDrive(公司版/學校版)", "Min P": "最小 P 值", "Mirostat": "Mirostat", "Mirostat Eta": "Mirostat Eta", @@ -732,8 +771,8 @@ "Model {{modelId}} not found": "找不到模型 {{modelId}}", "Model {{modelName}} is not vision capable": "模型 {{modelName}} 不具備視覺能力", "Model {{name}} is now {{status}}": "模型 {{name}} 現在狀態為 {{status}}", - "Model {{name}} is now hidden": "模型 {{name}} 現已隱藏", - "Model {{name}} is now visible": "模型 {{name}} 現已可見", + "Model {{name}} is now hidden": "模型 {{name}} 已隱藏", + "Model {{name}} is now visible": "模型 {{name}} 已顯示", "Model accepts image inputs": "模型接受影像輸入", "Model created successfully!": "成功建立模型!", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "偵測到模型檔案系統路徑。更新需要模型簡稱,因此無法繼續。", @@ -753,19 +792,22 @@ "Mojeek Search API Key": "Mojeek 搜尋 API 金鑰", "more": "更多", "More": "更多", + "My Notes": "", "Name": "名稱", "Name your knowledge base": "命名您的知識庫", "Native": "原生", "New Chat": "新增對話", "New Folder": "新增資料夾", + "New Note": "新增筆記", "New Password": "新密碼", "new-channel": "new-channel", + "No content": "無內容", "No content found": "找不到內容", + "No content found in file.": "檔案中找不到內容。", "No content to speak": "無可朗讀的內容", "No distance available": "無可用距離", "No feedbacks found": "找不到回饋", "No file selected": "未選取檔案", - "No files found.": "找不到檔案。", "No groups with access, add a group to grant access": "沒有具有存取權限的群組,新增群組以授予存取權限", "No HTML, CSS, or JavaScript content found.": "找不到 HTML、CSS 或 JavaScript 內容。", "No inference engine with management support found": "找不到支援管理功能的推理引擎", @@ -774,6 +816,7 @@ "No model IDs": "沒有任何模型 ID", "No models found": "找不到模型", "No models selected": "未選取模型", + "No Notes": "尚無筆記", "No results found": "找不到任何結果", "No search query generated": "未產生搜尋查詢", "No source available": "無可用源", @@ -782,6 +825,7 @@ "None": "無", "Not factually correct": "與事實不符", "Not helpful": "沒有幫助", + "Note deleted successfully": "筆記已成功刪除", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "注意:如果您設定了最低分數,則搜尋只會回傳分數大於或等於最低分數的文件。", "Notes": "注意", "Notification Sound": "通知聲音", @@ -804,6 +848,7 @@ "Only alphanumeric characters and hyphens are allowed": "只允許使用英文字母、數字和連字號", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字串中只允許使用英文字母、數字和連字號。", "Only collections can be edited, create a new knowledge base to edit/add documents.": "只能編輯集合,請建立新的知識以編輯或新增文件。", + "Only markdown files are allowed": "", "Only select users and groups with permission can access": "只有具有權限的選定使用者和群組可以存取", "Oops! Looks like the URL is invalid. Please double-check and try again.": "哎呀!這個 URL 似乎無效。請仔細檢查並再試一次。", "Oops! There are files still uploading. Please wait for the upload to complete.": "哎呀!還有檔案正在上傳。請等候上傳完畢。", @@ -849,6 +894,7 @@ "Pipelines": "管線", "Pipelines Not Detected": "未偵測到管線", "Pipelines Valves": "管線閥門", + "Plain text (.md)": "純文字 (.md)", "Plain text (.txt)": "純文字 (.txt)", "Playground": "遊樂場", "Playwright Timeout (ms)": "Playwright 逾時時間(毫秒)", @@ -873,7 +919,7 @@ "Profile Image": "個人檔案圖片", "Prompt": "提示詞", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "提示詞(例如:告訴我關於羅馬帝國的一些趣事)", - "Prompt Autocompletion": "提示詞自動補全", + "Prompt Autocompletion": "提示詞自動完成", "Prompt Content": "提示詞內容", "Prompt created successfully": "提示詞建立成功", "Prompt suggestions": "提示詞建議", @@ -891,9 +937,10 @@ "Read": "讀取", "Read Aloud": "大聲朗讀", "Reasoning Effort": "推理程度", + "Record": "錄製", "Record voice": "錄音", - "Redirecting you to Open WebUI Community": "正在將您重導向至 OpenWebUI 社群", - "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "降低產生無意義內容的機率。較高的值(例如 100)會產生更多樣化的答案,而較低的值(例如 10)會更保守。", + "Redirecting you to Open WebUI Community": "正在將您重導向至 Open WebUI 社群", + "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "降低產生無意義內容的機率。較高的值(例如:100)會產生更多樣化的答案,而較低的值(例如:10)會更保守。", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "以「使用者」稱呼自己(例如:「使用者正在學習西班牙文」)", "References from": "引用來源", "Refused when it shouldn't have": "不應拒絕時拒絕了", @@ -939,7 +986,7 @@ "Save Tag": "儲存標籤", "Saved": "已儲存", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "不再支援直接將對話紀錄儲存到您的瀏覽器儲存空間。請點選下方按鈕來下載並刪除您的對話紀錄。別擔心,您可以透過以下方式輕鬆地將對話紀錄重新匯入後端", - "Scroll to bottom when switching between branches": "切換分支時捲動到底端", + "Scroll On Branch Change": "切換分支時自動捲動", "Search": "搜尋", "Search a model": "搜尋模型", "Search Base": "搜尋基礎", @@ -960,6 +1007,7 @@ "Searched {{count}} sites": "搜尋到 {{count}} 個站點", "Searching \"{{searchQuery}}\"": "正在搜尋「{{searchQuery}}」", "Searching Knowledge for \"{{searchQuery}}\"": "正在搜尋知識庫中的「{{searchQuery}}」", + "Searching the web...": "正在搜尋網路……", "Searxng Query URL": "Searxng 查詢 URL", "See readme.md for instructions": "檢視 readme.md 以取得說明", "See what's new": "檢視新功能", @@ -995,7 +1043,7 @@ "Set Default Model": "設定預設模型", "Set embedding model": "設定嵌入模型", "Set embedding model (e.g. {{model}})": "設定嵌入模型(例如:{{model}})", - "Set Image Size": "設定圖片大小", + "Set Image Size": "設定圖片尺寸", "Set reranking model (e.g. {{model}})": "設定重新排序模型(例如:{{model}})", "Set Sampler": "設定取樣器", "Set Scheduler": "設定排程器", @@ -1005,9 +1053,9 @@ "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "設定用於計算的工作執行緒數量。此選項控制使用多少執行緒來同時處理傳入的請求。增加此值可以在高併發工作負載下提升效能,但也可能消耗更多 CPU 資源。", "Set Voice": "設定語音", "Set whisper model": "設定 whisper 模型", - "Sets a flat bias against tokens that have appeared at least once. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "對至少出現過一次的 token 設定統一的偏差值。較高的值(例如 1.5)會更強烈地懲罰重複,而較低的值(例如 0.9)會更寬容。設為 0 時,此功能將停用。", - "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "根據 token 出現的次數,設定一個縮放偏差值來懲罰重複。較高的值(例如 1.5)會更強烈地懲罰重複,而較低的值(例如 0.9)會更寬容。設為 0 時,此功能將停用。", - "Sets how far back for the model to look back to prevent repetition.": "設定模型回溯多遠以防止重複。", + "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.": "對至少出現過一次的 token 設定統一的偏差值。較高的值(例如:1.5)會更強烈地懲罰重複,而較低的值(例如:0.9)會更寬容。設為 0 時,此功能將停用。", + "Sets a scaling bias against tokens to penalize repetitions, based on how many times they have appeared. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. At 0, it is disabled.": "根據 token 出現的次數,設定一個縮放偏差值來懲罰重複。較高的值(例如:1.5)會更強烈地懲罰重複,而較低的值(例如:0.9)會更寬容。設為 0 時,此功能將停用。", + "Sets how far back for the model to look back to prevent repetition.": "設定模型要回溯多遠來防止重複。", "Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt.": "設定用於生成的隨機數種子。將其設定為特定數字將使模型針對相同的提示生成相同的文字。", "Sets the size of the context window used to generate the next token.": "設定用於生成下一個 token 的上下文視窗大小。", "Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "設定要使用的停止序列。當遇到此模式時,大型語言模型將停止生成文字並返回。可以在模型檔案中指定多個單獨的停止參數來設定多個停止模式。", @@ -1015,7 +1063,7 @@ "Settings saved successfully!": "設定已成功儲存!", "Share": "分享", "Share Chat": "分享對話", - "Share to Open WebUI Community": "分享到 OpenWebUI 社群", + "Share to Open WebUI Community": "分享到 Open WebUI 社群", "Sharing Permissions": "分享權限設定", "Show": "顯示", "Show \"What's New\" modal on login": "登入時顯示「新功能」對話框", @@ -1032,8 +1080,8 @@ "Sign up to {{WEBUI_NAME}}": "註冊 {{WEBUI_NAME}}", "Signing in to {{WEBUI_NAME}}": "正在登入 {{WEBUI_NAME}}", "sk-1234": "sk-1234", - "Sougou Search API sID": "搜狗搜索 API sID", - "Sougou Search API SK": "搜狗搜索 API SK", + "Sougou Search API sID": "搜狗搜尋 API sID", + "Sougou Search API SK": "搜狗搜尋 API SK", "Source": "來源", "Speech Playback Speed": "語音播放速度", "Speech recognition error: {{error}}": "語音辨識錯誤:{{error}}", @@ -1056,7 +1104,7 @@ "Tags": "標籤", "Tags Generation": "標籤生成", "Tags Generation Prompt": "標籤生成提示詞", - "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "尾部自由取樣用於減少輸出結果中較低機率 token 的影響。較高的值(例如 2.0)會減少更多影響,而值為 1.0 時會停用此設定。", + "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "尾部自由取樣用於減少輸出結果中較低機率 token 的影響。較高的值(例如:2.0)會減少更多影響,而值為 1.0 時會停用此設定。", "Talk to model": "與模型對話", "Tap to interrupt": "點選以中斷", "Tasks": "任務", @@ -1140,7 +1188,6 @@ "Tools Access": "工具存取", "Tools are a function calling system with arbitrary code execution": "工具是一個具有任意程式碼執行功能的函式呼叫系統", "Tools Function Calling Prompt": "工具函式呼叫提示詞", - "Tools have a function calling system that allows arbitrary code execution": "工具具有允許執行任意程式碼的函式呼叫系統", "Tools have a function calling system that allows arbitrary code execution.": "工具具有允許執行任意程式碼的函式呼叫系統。", "Tools Public Sharing": "工具公開分享", "Top K": "Top K", @@ -1163,6 +1210,7 @@ "Unpin": "取消釘選", "Unravel secrets": "揭開秘密", "Untagged": "取消標簽的", + "Untitled": "未命名", "Update": "更新", "Update and Copy Link": "更新並複製連結", "Update for the latest features and improvements.": "更新以獲得最新功能和改進。", @@ -1173,6 +1221,7 @@ "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "升級至授權方案以獲得更強大功能,包括客製化主題與品牌,和專屬支援。", "Upload": "上傳", "Upload a GGUF model": "上傳 GGUF 模型", + "Upload Audio": "上傳音訊", "Upload directory": "上傳目錄", "Upload files": "上傳檔案", "Upload Files": "上傳檔案", @@ -1194,7 +1243,7 @@ "User Webhooks": "使用者 Webhooks", "Username": "使用者名稱", "Users": "使用者", - "Using the default arena model with all models. Click the plus button to add custom models.": "正在使用預設競技模型與所有模型。點選加號按鈕以新增自訂模型。", + "Using the default arena model with all models. Click the plus button to add custom models.": "正在使用預設競技場模型與所有模型。點選加號按鈕以新增自訂模型。", "Utilize": "使用", "Valid time units:": "有效的時間單位:", "Valves": "閥門", @@ -1208,7 +1257,7 @@ "Version {{selectedVersion}} of {{totalVersions}}": "第 {{selectedVersion}} 版,共 {{totalVersions}} 版", "View Replies": "檢視回覆", "View Result from **{{NAME}}**": "檢視來自 **{{NAME}}** 的結果", - "Visibility": "可見性", + "Visibility": "可見度", "Voice": "語音", "Voice Input": "語音輸入", "Warning": "警告", @@ -1226,7 +1275,7 @@ "Webhook URL": "Webhook URL", "WebUI Settings": "WebUI 設定", "WebUI URL": "WebUI URL", - "WebUI will make requests to \"{{url}}\"": "WebUI 將向 \"{{url}}\" 發送請求", + "WebUI will make requests to \"{{url}}\"": "WebUI 將向 \"{{url}}\" 傳送請求", "WebUI will make requests to \"{{url}}/api/chat\"": "WebUI 將向 \"{{url}}/api/chat\" 傳送請求", "WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI 將向 \"{{url}}/chat/completions\" 傳送請求", "What are you trying to achieve?": "您正在試圖完成什麼?", @@ -1238,7 +1287,7 @@ "Why?": "為什麼?", "Widescreen Mode": "寬螢幕模式", "Won": "獲勝", - "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "與 top-k 一起使用。較高的值(例如 0.95)將產生更多樣化的文字,而較低的值(例如 0.5)將生成更集中和保守的文字。", + "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "與 top-k 一起使用。較高的值(例如:0.95)將產生更多樣化的文字,而較低的值(例如:0.5)將產生更集中和保守的文字。", "Workspace": "工作區", "Workspace Permissions": "工作區權限", "Write": "寫入", @@ -1246,21 +1295,23 @@ "Write a summary in 50 words that summarizes [topic or keyword].": "用 50 字寫一篇總結 [主題或關鍵字] 的摘要。", "Write something...": "寫一些什麼...", "Write your model template content here": "在此撰寫您的模型範本內容", + "Yacy Instance URL": "Yacy 實例 URL", + "Yacy Password": "Yacy 密碼", + "Yacy Username": "Yacy 使用者名稱", "Yesterday": "昨天", "You": "您", "You are currently using a trial license. Please contact support to upgrade your license.": "您目前使用的是試用授權。請聯絡支援以升級您的授權。", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "您一次最多只能與 {{maxCount}} 個檔案進行對話。", "You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "您可以透過下方的「管理」按鈕新增記憶,將您與大型語言模型的互動個人化,讓它們更有幫助並更符合您的需求。", "You cannot upload an empty file.": "您無法上傳空檔案", - "You do not have permission to upload files": "您沒有權限上傳檔案", "You do not have permission to upload files.": "您沒有權限上傳檔案。", "You have no archived conversations.": "您沒有已封存的對話。", "You have shared this chat": "您已分享此對話", - "You're a helpful assistant.": "您是一位樂於助人的助手。", + "You're a helpful assistant.": "您是一位樂於助人的助理。", "You're now logged in.": "您已登入。", "Your account status is currently pending activation.": "您的帳號目前正在等待啟用。", "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "您的所有貢獻將會直接交給外掛開發者;Open WebUI 不會收取任何百分比。然而,所選擇的贊助平臺可能有其自身的費用。", "Youtube": "YouTube", "Youtube Language": "YouTube 語言", - "Youtube Proxy URL": "YouTube 代理網址" + "Youtube Proxy URL": "YouTube 代理伺服器網址" } diff --git a/src/lib/utils/index.ts b/src/lib/utils/index.ts index 022a901c1..25aea433b 100644 --- a/src/lib/utils/index.ts +++ b/src/lib/utils/index.ts @@ -41,8 +41,7 @@ export const replaceTokens = (content, sourceIds, char, user) => { }, { regex: /{{HTML_FILE_ID_([a-f0-9-]+)}}/gi, - replacement: (_, fileId) => - `` + replacement: (_, fileId) => `` } ]; @@ -1243,58 +1242,80 @@ export const convertOpenApiToToolPayload = (openApiSpec) => { for (const [path, methods] of Object.entries(openApiSpec.paths)) { for (const [method, operation] of Object.entries(methods)) { - const tool = { - type: 'function', - name: operation.operationId, - description: operation.description || operation.summary || 'No description available.', - parameters: { - type: 'object', - properties: {}, - required: [] - } - }; - - // Extract path and query parameters - if (operation.parameters) { - operation.parameters.forEach((param) => { - tool.parameters.properties[param.name] = { - type: param.schema.type, - description: param.schema.description || '' - }; - - if (param.required) { - tool.parameters.required.push(param.name); + if (operation?.operationId) { + const tool = { + type: 'function', + name: operation.operationId, + description: operation.description || operation.summary || 'No description available.', + parameters: { + type: 'object', + properties: {}, + required: [] } - }); - } + }; - // Extract and recursively resolve requestBody if available - if (operation.requestBody) { - const content = operation.requestBody.content; - if (content && content['application/json']) { - const requestSchema = content['application/json'].schema; - const resolvedRequestSchema = resolveSchema(requestSchema, openApiSpec.components); - - if (resolvedRequestSchema.properties) { - tool.parameters.properties = { - ...tool.parameters.properties, - ...resolvedRequestSchema.properties + // Extract path and query parameters + if (operation.parameters) { + operation.parameters.forEach((param) => { + let description = param.schema.description || param.description || ''; + if (param.schema.enum && Array.isArray(param.schema.enum)) { + description += `. Possible values: ${param.schema.enum.join(', ')}`; + } + tool.parameters.properties[param.name] = { + type: param.schema.type, + description: description }; - if (resolvedRequestSchema.required) { - tool.parameters.required = [ - ...new Set([...tool.parameters.required, ...resolvedRequestSchema.required]) - ]; + if (param.required) { + tool.parameters.required.push(param.name); + } + }); + } + + // Extract and recursively resolve requestBody if available + if (operation.requestBody) { + const content = operation.requestBody.content; + if (content && content['application/json']) { + const requestSchema = content['application/json'].schema; + const resolvedRequestSchema = resolveSchema(requestSchema, openApiSpec.components); + + if (resolvedRequestSchema.properties) { + tool.parameters.properties = { + ...tool.parameters.properties, + ...resolvedRequestSchema.properties + }; + + if (resolvedRequestSchema.required) { + tool.parameters.required = [ + ...new Set([...tool.parameters.required, ...resolvedRequestSchema.required]) + ]; + } + } else if (resolvedRequestSchema.type === 'array') { + tool.parameters = resolvedRequestSchema; // special case when root schema is an array } - } else if (resolvedRequestSchema.type === 'array') { - tool.parameters = resolvedRequestSchema; // special case when root schema is an array } } - } - toolPayload.push(tool); + toolPayload.push(tool); + } } } return toolPayload; }; + +export const slugify = (str: string): string => { + return ( + str + // 1. Normalize: separate accented letters into base + combining marks + .normalize('NFD') + // 2. Remove all combining marks (the accents) + .replace(/[\u0300-\u036f]/g, '') + // 3. Replace any sequence of whitespace with a single hyphen + .replace(/\s+/g, '-') + // 4. Remove all characters except alphanumeric characters and hyphens + .replace(/[^a-zA-Z0-9-]/g, '') + // 5. Convert to lowercase + .toLowerCase() + ); +}; diff --git a/src/lib/utils/onedrive-file-picker.ts b/src/lib/utils/onedrive-file-picker.ts index 60d2bb13c..180840524 100644 --- a/src/lib/utils/onedrive-file-picker.ts +++ b/src/lib/utils/onedrive-file-picker.ts @@ -2,70 +2,133 @@ import { PublicClientApplication } from '@azure/msal-browser'; import type { PopupRequest } from '@azure/msal-browser'; import { v4 as uuidv4 } from 'uuid'; -let CLIENT_ID = ''; +class OneDriveConfig { + private static instance: OneDriveConfig; + private clientId: string = ''; + private sharepointUrl: string = ''; + private msalInstance: PublicClientApplication | null = null; + private currentAuthorityType: 'personal' | 'organizations' = 'personal'; -async function getCredentials() { - if (CLIENT_ID) return; + private constructor() {} - const response = await fetch('/api/config'); - if (!response.ok) { - throw new Error('Failed to fetch OneDrive credentials'); - } - const config = await response.json(); - CLIENT_ID = config.onedrive?.client_id; - if (!CLIENT_ID) { - throw new Error('OneDrive client ID not configured'); - } -} - -let msalInstance: PublicClientApplication | null = null; - -// Initialize MSAL authentication -async function initializeMsal() { - try { - if (!CLIENT_ID) { - await getCredentials(); + public static getInstance(): OneDriveConfig { + if (!OneDriveConfig.instance) { + OneDriveConfig.instance = new OneDriveConfig(); } + return OneDriveConfig.instance; + } - const msalParams = { - auth: { - authority: 'https://login.microsoftonline.com/consumers', - clientId: CLIENT_ID - } + public async initialize(authorityType?: 'personal' | 'organizations'): Promise { + if (authorityType && this.currentAuthorityType !== authorityType) { + this.currentAuthorityType = authorityType; + this.msalInstance = null; + } + await this.getCredentials(); + } + + public async ensureInitialized(authorityType?: 'personal' | 'organizations'): Promise { + await this.initialize(authorityType); + } + + private async getCredentials(): Promise { + const headers: HeadersInit = { + 'Content-Type': 'application/json' }; - if (!msalInstance) { - msalInstance = new PublicClientApplication(msalParams); - if (msalInstance.initialize) { - await msalInstance.initialize(); + const response = await fetch('/api/config', { + headers, + credentials: 'include' + }); + + if (!response.ok) { + throw new Error('Failed to fetch OneDrive credentials'); + } + + const config = await response.json(); + + const newClientId = config.onedrive?.client_id; + const newSharepointUrl = config.onedrive?.sharepoint_url; + + if (!newClientId) { + throw new Error('OneDrive configuration is incomplete'); + } + + this.clientId = newClientId; + this.sharepointUrl = newSharepointUrl; + } + + public async getMsalInstance( + authorityType?: 'personal' | 'organizations' + ): Promise { + await this.ensureInitialized(authorityType); + + if (!this.msalInstance) { + const authorityEndpoint = + this.currentAuthorityType === 'organizations' ? 'common' : 'consumers'; + const msalParams = { + auth: { + authority: `https://login.microsoftonline.com/${authorityEndpoint}`, + clientId: this.clientId + } + }; + + this.msalInstance = new PublicClientApplication(msalParams); + if (this.msalInstance.initialize) { + await this.msalInstance.initialize(); } } - return msalInstance; - } catch (error) { - throw new Error( - 'MSAL initialization failed: ' + (error instanceof Error ? error.message : String(error)) - ); + return this.msalInstance; + } + + public getAuthorityType(): 'personal' | 'organizations' { + return this.currentAuthorityType; + } + + public getSharepointUrl(): string { + return this.sharepointUrl; + } + + public getBaseUrl(): string { + if (this.currentAuthorityType === 'organizations') { + if (!this.sharepointUrl || this.sharepointUrl === '') { + throw new Error('Sharepoint URL not configured'); + } + + let sharePointBaseUrl = this.sharepointUrl.replace(/^https?:\/\//, ''); + sharePointBaseUrl = sharePointBaseUrl.replace(/\/$/, ''); + + return `https://${sharePointBaseUrl}`; + } else { + return 'https://onedrive.live.com/picker'; + } } } // Retrieve OneDrive access token -async function getToken(): Promise { - const authParams: PopupRequest = { scopes: ['OneDrive.ReadWrite'] }; - let accessToken = ''; - try { - msalInstance = await initializeMsal(); - if (!msalInstance) { - throw new Error('MSAL not initialized'); - } +async function getToken( + resource?: string, + authorityType?: 'personal' | 'organizations' +): Promise { + const config = OneDriveConfig.getInstance(); + await config.ensureInitialized(authorityType); + const currentAuthorityType = config.getAuthorityType(); + + const scopes = + currentAuthorityType === 'organizations' + ? [`${resource || config.getBaseUrl()}/.default`] + : ['OneDrive.ReadWrite']; + + const authParams: PopupRequest = { scopes }; + let accessToken = ''; + + try { + const msalInstance = await config.getMsalInstance(authorityType); const resp = await msalInstance.acquireTokenSilent(authParams); accessToken = resp.accessToken; } catch (err) { - if (!msalInstance) { - throw new Error('MSAL not initialized'); - } - + const msalInstance = await config.getMsalInstance(authorityType); try { const resp = await msalInstance.loginPopup(authParams); msalInstance.setActiveAccount(resp.account); @@ -88,60 +151,128 @@ async function getToken(): Promise { return accessToken; } -const baseUrl = 'https://onedrive.live.com/picker'; -const params = { - sdk: '8.0', +interface PickerParams { + sdk: string; entry: { - oneDrive: { - files: {} - } - }, - authentication: {}, + oneDrive: Record; + }; + authentication: Record; messaging: { - origin: window?.location?.origin, - channelId: uuidv4() - }, + origin: string; + channelId: string; + }; typesAndSources: { - mode: 'files', - pivots: { - oneDrive: true, - recent: true + mode: string; + pivots: Record; + }; +} + +interface PickerResult { + command?: string; + items?: OneDriveFileInfo[]; + [key: string]: any; +} + +// Get picker parameters based on account type +function getPickerParams(): PickerParams { + const channelId = uuidv4(); + const config = OneDriveConfig.getInstance(); + + const params: PickerParams = { + sdk: '8.0', + entry: { + oneDrive: {} + }, + authentication: {}, + messaging: { + origin: window?.location?.origin || '', + channelId + }, + typesAndSources: { + mode: 'files', + pivots: { + oneDrive: true, + recent: true + } } + }; + + // For personal accounts, set files object in oneDrive + if (config.getAuthorityType() !== 'organizations') { + params.entry.oneDrive = { files: {} }; } -}; + + return params; +} + +interface OneDriveFileInfo { + id: string; + name: string; + parentReference: { + driveId: string; + }; + '@sharePoint.endpoint': string; + [key: string]: any; +} // Download file from OneDrive -async function downloadOneDriveFile(fileInfo: any): Promise { - const accessToken = await getToken(); +async function downloadOneDriveFile( + fileInfo: OneDriveFileInfo, + authorityType?: 'personal' | 'organizations' +): Promise { + const accessToken = await getToken(undefined, authorityType); if (!accessToken) { throw new Error('Unable to retrieve OneDrive access token.'); } + + // The endpoint URL is provided in the file info const fileInfoUrl = `${fileInfo['@sharePoint.endpoint']}/drives/${fileInfo.parentReference.driveId}/items/${fileInfo.id}`; + const response = await fetch(fileInfoUrl, { headers: { Authorization: `Bearer ${accessToken}` } }); + if (!response.ok) { - throw new Error('Failed to fetch file information.'); + throw new Error(`Failed to fetch file information: ${response.status} ${response.statusText}`); } + const fileData = await response.json(); const downloadUrl = fileData['@content.downloadUrl']; - const downloadResponse = await fetch(downloadUrl); - if (!downloadResponse.ok) { - throw new Error('Failed to download file.'); + + if (!downloadUrl) { + throw new Error('Download URL not found in file data'); } + + const downloadResponse = await fetch(downloadUrl); + + if (!downloadResponse.ok) { + throw new Error( + `Failed to download file: ${downloadResponse.status} ${downloadResponse.statusText}` + ); + } + return await downloadResponse.blob(); } // Open OneDrive file picker and return selected file metadata -export async function openOneDrivePicker(): Promise { +export async function openOneDrivePicker( + authorityType?: 'personal' | 'organizations' +): Promise { if (typeof window === 'undefined') { throw new Error('Not in browser environment'); } + + // Initialize OneDrive config with the specified authority type + const config = OneDriveConfig.getInstance(); + await config.initialize(authorityType); + return new Promise((resolve, reject) => { let pickerWindow: Window | null = null; let channelPort: MessagePort | null = null; + const params = getPickerParams(); + const baseUrl = config.getBaseUrl(); const handleWindowMessage = (event: MessageEvent) => { if (event.source !== pickerWindow) return; @@ -166,7 +297,10 @@ export async function openOneDrivePicker(): Promise { switch (command.command) { case 'authenticate': { try { - const newToken = await getToken(); + // Pass the resource from the command for org accounts + const resource = + config.getAuthorityType() === 'organizations' ? command.resource : undefined; + const newToken = await getToken(resource, authorityType); if (newToken) { channelPort?.postMessage({ type: 'result', @@ -178,9 +312,12 @@ export async function openOneDrivePicker(): Promise { } } catch (err) { channelPort?.postMessage({ - result: 'error', - error: { code: 'tokenError', message: 'Failed to get token' }, - isExpected: true + type: 'result', + id: portData.id, + data: { + result: 'error', + error: { code: 'tokenError', message: 'Failed to get token' } + } }); } break; @@ -227,7 +364,7 @@ export async function openOneDrivePicker(): Promise { const initializePicker = async () => { try { - const authToken = await getToken(); + const authToken = await getToken(undefined, authorityType); if (!authToken) { return reject(new Error('Failed to acquire access token')); } @@ -240,7 +377,13 @@ export async function openOneDrivePicker(): Promise { const queryString = new URLSearchParams({ filePicker: JSON.stringify(params) }); - const url = `${baseUrl}?${queryString.toString()}`; + + let url = ''; + if (config.getAuthorityType() === 'organizations') { + url = baseUrl + `/_layouts/15/FilePicker.aspx?${queryString}`; + } else { + url = baseUrl + `?${queryString}`; + } const form = pickerWindow.document.createElement('form'); form.setAttribute('action', url); @@ -268,15 +411,17 @@ export async function openOneDrivePicker(): Promise { } // Pick and download file from OneDrive -export async function pickAndDownloadFile(): Promise<{ blob: Blob; name: string } | null> { - const pickerResult = await openOneDrivePicker(); +export async function pickAndDownloadFile( + authorityType?: 'personal' | 'organizations' +): Promise<{ blob: Blob; name: string } | null> { + const pickerResult = await openOneDrivePicker(authorityType); if (!pickerResult || !pickerResult.items || pickerResult.items.length === 0) { return null; } const selectedFile = pickerResult.items[0]; - const blob = await downloadOneDriveFile(selectedFile); + const blob = await downloadOneDriveFile(selectedFile, authorityType); return { blob, name: selectedFile.name }; } diff --git a/src/lib/utils/websocket.ts b/src/lib/utils/websocket.ts new file mode 100644 index 000000000..a24ef21a8 --- /dev/null +++ b/src/lib/utils/websocket.ts @@ -0,0 +1,51 @@ +import { io } from 'socket.io-client'; + +import { socket, activeUserIds, USAGE_POOL } from '$lib/stores'; +import { WEBUI_BASE_URL } from '$lib/constants'; + +export const setupSocket = async (enableWebsocket) => { + const _socket = io(`${WEBUI_BASE_URL}` || undefined, { + reconnection: true, + reconnectionDelay: 1000, + reconnectionDelayMax: 5000, + randomizationFactor: 0.5, + path: '/ws/socket.io', + transports: enableWebsocket ? ['websocket'] : ['polling', 'websocket'], + auth: { token: localStorage.token } + }); + + await socket.set(_socket); + + _socket.on('connect_error', (err) => { + console.log('connect_error', err); + }); + + _socket.on('connect', () => { + console.log('connected', _socket.id); + }); + + _socket.on('reconnect_attempt', (attempt) => { + console.log('reconnect_attempt', attempt); + }); + + _socket.on('reconnect_failed', () => { + console.log('reconnect_failed'); + }); + + _socket.on('disconnect', (reason, details) => { + console.log(`Socket ${_socket.id} disconnected due to ${reason}`); + if (details) { + console.log('Additional details:', details); + } + }); + + _socket.on('user-list', (data) => { + console.log('user-list', data); + activeUserIds.set(data.user_ids); + }); + + _socket.on('usage', (data) => { + console.log('usage', data); + USAGE_POOL.set(data['models']); + }); +}; diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index fd9a33111..104f92e27 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -251,77 +251,79 @@
{/if} -
-
- {#if !['user', 'admin'].includes($user?.role)} - - {:else if localDBChats.length > 0} -
-
-
-
-
- Important Update
Action Required for Chat Log Storage -
+{#if $user} +
+
+ {#if !['user', 'admin'].includes($user?.role)} + + {:else if localDBChats.length > 0} +
+
+
+
+
+ Important Update
Action Required for Chat Log Storage +
-
- {$i18n.t( - "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" - )} - {$i18n.t('Settings')} > {$i18n.t('Chats')} > {$i18n.t('Import Chats')}. {$i18n.t( - 'This ensures that your valuable conversations are securely saved to your backend database. Thank you!' - )} -
+
+ {$i18n.t( + "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" + )} + {$i18n.t('Settings')} > {$i18n.t('Chats')} > {$i18n.t('Import Chats')}. {$i18n.t( + 'This ensures that your valuable conversations are securely saved to your backend database. Thank you!' + )} +
-
- + localDBChats = []; + }} + > + Download & Delete + - + +
-
- {/if} + {/if} - + - {#if loaded} - - {:else} -
- -
- {/if} + {#if loaded} + + {:else} +
+ +
+ {/if} +
-
+{/if}