diff --git a/CHANGELOG.md b/CHANGELOG.md
index 04a79ca43..98ba0c4c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.4.8] - 2024-12-07
+
+### Added
+
+- **🔓 Bypass Model Access Control**: Introduced the 'BYPASS_MODEL_ACCESS_CONTROL' environment variable. Easily bypass model access controls for user roles when access control isn't required, simplifying workflows for trusted environments.
+- **📝 Markdown in Banners**: Now supports markdown for banners, enabling richer, more visually engaging announcements.
+- **🌐 Internationalization Updates**: Enhanced translations across multiple languages, further improving accessibility and global user experience.
+- **🎨 Styling Enhancements**: General UI style refinements for a cleaner and more polished interface.
+- **📋 Rich Text Reliability**: Improved the reliability and stability of rich text input across chats for smoother interactions.
+
+### Fixed
+
+- **💡 Tailwind Build Issue**: Resolved a breaking bug caused by Tailwind, ensuring smoother builds and overall system reliability.
+- **📚 Knowledge Collection Query Fix**: Addressed API endpoint issues with querying knowledge collections, ensuring accurate and reliable information retrieval.
+
## [0.4.7] - 2024-12-01
### Added
diff --git a/backend/open_webui/apps/ollama/main.py b/backend/open_webui/apps/ollama/main.py
index 71a40cb47..82a37a752 100644
--- a/backend/open_webui/apps/ollama/main.py
+++ b/backend/open_webui/apps/ollama/main.py
@@ -24,6 +24,7 @@ from open_webui.config import (
from open_webui.env import (
AIOHTTP_CLIENT_TIMEOUT,
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST,
+ BYPASS_MODEL_ACCESS_CONTROL,
)
@@ -359,7 +360,7 @@ async def get_ollama_tags(
detail=error_detail,
)
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
# Filter models based on user access control
filtered_models = []
for model in models.get("models", []):
@@ -1067,7 +1068,7 @@ async def generate_openai_chat_completion(
payload = apply_model_system_prompt_to_body(params, payload, user)
# Check if user has access to the model
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
if not (
user.id == model_info.user_id
or has_access(
@@ -1156,7 +1157,7 @@ async def get_openai_models(
detail=error_detail,
)
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
# Filter models based on user access control
filtered_models = []
for model in models:
diff --git a/backend/open_webui/apps/openai/main.py b/backend/open_webui/apps/openai/main.py
index 31c36a8a1..9193c2be6 100644
--- a/backend/open_webui/apps/openai/main.py
+++ b/backend/open_webui/apps/openai/main.py
@@ -24,6 +24,7 @@ from open_webui.env import (
AIOHTTP_CLIENT_TIMEOUT,
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST,
ENABLE_FORWARD_USER_INFO_HEADERS,
+ BYPASS_MODEL_ACCESS_CONTROL,
)
from open_webui.constants import ERROR_MESSAGES
@@ -422,7 +423,7 @@ async def get_models(url_idx: Optional[int] = None, user=Depends(get_verified_us
error_detail = f"Unexpected error: {str(e)}"
raise HTTPException(status_code=500, detail=error_detail)
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
# Filter models based on user access control
filtered_models = []
for model in models.get("data", []):
diff --git a/backend/open_webui/apps/retrieval/main.py b/backend/open_webui/apps/retrieval/main.py
index 7ad4af064..341f4f500 100644
--- a/backend/open_webui/apps/retrieval/main.py
+++ b/backend/open_webui/apps/retrieval/main.py
@@ -1399,7 +1399,7 @@ def query_collection_handler(
if app.state.config.ENABLE_RAG_HYBRID_SEARCH:
return query_collection_with_hybrid_search(
collection_names=form_data.collection_names,
- query=form_data.query,
+ queries=[form_data.query],
embedding_function=app.state.EMBEDDING_FUNCTION,
k=form_data.k if form_data.k else app.state.config.TOP_K,
reranking_function=app.state.sentence_transformer_rf,
@@ -1410,7 +1410,7 @@ def query_collection_handler(
else:
return query_collection(
collection_names=form_data.collection_names,
- query=form_data.query,
+ queries=[form_data.query],
embedding_function=app.state.EMBEDDING_FUNCTION,
k=form_data.k if form_data.k else app.state.config.TOP_K,
)
diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py
index 15d209941..c0a0f63b5 100644
--- a/backend/open_webui/config.py
+++ b/backend/open_webui/config.py
@@ -702,6 +702,7 @@ ENABLE_LOGIN_FORM = PersistentConfig(
os.environ.get("ENABLE_LOGIN_FORM", "True").lower() == "true",
)
+
DEFAULT_LOCALE = PersistentConfig(
"DEFAULT_LOCALE",
"ui.default_locale",
@@ -758,7 +759,6 @@ DEFAULT_USER_ROLE = PersistentConfig(
os.getenv("DEFAULT_USER_ROLE", "pending"),
)
-
USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS = (
os.environ.get("USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS", "False").lower()
== "true"
diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py
index 28b5a10a5..e1b350ead 100644
--- a/backend/open_webui/env.py
+++ b/backend/open_webui/env.py
@@ -329,6 +329,9 @@ WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os.environ.get(
)
WEBUI_AUTH_TRUSTED_NAME_HEADER = os.environ.get("WEBUI_AUTH_TRUSTED_NAME_HEADER", None)
+BYPASS_MODEL_ACCESS_CONTROL = (
+ os.environ.get("BYPASS_MODEL_ACCESS_CONTROL", "False").lower() == "true"
+)
####################################
# WEBUI_SECRET_KEY
diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py
index 177bded66..1bf221beb 100644
--- a/backend/open_webui/main.py
+++ b/backend/open_webui/main.py
@@ -112,6 +112,7 @@ from open_webui.env import (
WEBUI_SESSION_COOKIE_SAME_SITE,
WEBUI_SESSION_COOKIE_SECURE,
WEBUI_URL,
+ BYPASS_MODEL_ACCESS_CONTROL,
RESET_CONFIG_ON_START,
OFFLINE_MODE,
)
@@ -621,7 +622,7 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
)
model_info = Models.get_model_by_id(model["id"])
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
if model.get("arena"):
if not has_access(
user.id,
@@ -1224,7 +1225,7 @@ async def get_models(user=Depends(get_verified_user)):
)
# Filter out models that the user does not have access to
- if user.role == "user":
+ if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
filtered_models = []
for model in models:
if model.get("arena"):
diff --git a/package-lock.json b/package-lock.json
index 51dcb23eb..020cd0f53 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "open-webui",
- "version": "0.4.7",
+ "version": "0.4.8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "open-webui",
- "version": "0.4.7",
+ "version": "0.4.8",
"dependencies": {
"@codemirror/lang-javascript": "^6.2.2",
"@codemirror/lang-python": "^6.1.6",
@@ -2249,10 +2249,11 @@
}
},
"node_modules/@sveltejs/adapter-static": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.2.tgz",
- "integrity": "sha512-/EBFydZDwfwFfFEuF1vzUseBoRziwKP7AoHAwv+Ot3M084sE/HTVBHf9mCmXfdM9ijprY5YEugZjleflncX5fQ==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.6.tgz",
+ "integrity": "sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"@sveltejs/kit": "^2.0.0"
}
diff --git a/package.json b/package.json
index 220f5c691..c131e1f91 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "open-webui",
- "version": "0.4.7",
+ "version": "0.4.8",
"private": true,
"scripts": {
"dev": "npm run pyodide:fetch && vite dev --host",
diff --git a/src/app.css b/src/app.css
index dba61300a..cf0afea4f 100644
--- a/src/app.css
+++ b/src/app.css
@@ -45,15 +45,15 @@ math {
}
.input-prose {
- @apply prose dark:prose-invert prose-headings:font-semibold prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
+ @apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-hr:border-gray-100 prose-hr:dark:border-gray-800 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
}
.input-prose-sm {
- @apply prose dark:prose-invert prose-headings:font-semibold prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line text-sm;
+ @apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-hr:border-gray-100 prose-hr:dark:border-gray-800 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line text-sm;
}
.markdown-prose {
- @apply prose dark:prose-invert prose-headings:font-semibold prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
+ @apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
}
.markdown a {
@@ -211,7 +211,8 @@ input[type='number'] {
float: left;
color: #adb5bd;
pointer-events: none;
- height: 0;
+
+ @apply line-clamp-1 absolute;
}
.ai-autocompletion::after {
diff --git a/src/app.html b/src/app.html
index f6e46c9cf..537e28dbe 100644
--- a/src/app.html
+++ b/src/app.html
@@ -2,9 +2,12 @@
-
-
-
+
+
+
+
+
+
searchValue === '' || m.name.toLowerCase().includes(searchValue.toLowerCase()))
.sort((a, b) => {
- // Check if either model is inactive and push them to the bottom
- if ((a.is_active ?? true) !== (b.is_active ?? true)) {
- return (b.is_active ?? true) - (a.is_active ?? true);
- }
+ // // Check if either model is inactive and push them to the bottom
+ // if ((a.is_active ?? true) !== (b.is_active ?? true)) {
+ // return (b.is_active ?? true) - (a.is_active ?? true);
+ // }
// If both models' active states are the same, sort alphabetically
return a.name.localeCompare(b.name);
});
diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte
index 4df2b552a..296cc7939 100644
--- a/src/lib/components/chat/MessageInput.svelte
+++ b/src/lib/components/chat/MessageInput.svelte
@@ -271,7 +271,7 @@
{#if loaded}
{{NAME}} and all its contents.": "Tímto dojde k odstranění {{NAME}} a všech jeho obsahů.",
"This will delete all models including custom models": "",
"This will delete all models including custom models and cannot be undone.": "",
@@ -893,16 +893,16 @@
"Title (e.g. Tell me a fun fact)": "Název (např. Řekni mi zajímavost)",
"Title Auto-Generation": "Automatické generování názvu",
"Title cannot be an empty string.": "Název nemůže být prázdným řetězcem.",
- "Title Generation Prompt": "Generování názvu výzvy",
+ "Title Generation Prompt": "Generování názvu promptu",
"TLS": "",
"To access the available model names for downloading,": "Pro získání dostupných názvů modelů ke stažení,",
"To access the GGUF models available for downloading,": "Pro přístup k modelům GGUF dostupným pro stažení,",
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Pro přístup k WebUI se prosím obraťte na administrátora. Administrátoři mohou spravovat stavy uživatelů z Admin Panelu.",
- "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Chcete-li zde připojit znalostní databázi, nejprve ji přidejte do pracovního prostoru \"Knowledge\".",
+ "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Chcete-li zde připojit znalostní databázi, nejprve ji přidejte do workspace \"Knowledge\".",
"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.": "Aby byla chráněna vaše soukromí, z vaší zpětné vazby jsou sdílena pouze hodnocení, ID modelů, značky a metadata – vaše chatové záznamy zůstávají soukromé a nejsou zahrnuty.",
"To select actions here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat akce, nejprve je přidejte do pracovní plochy \"Functions\".",
- "To select filters here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat filtry, nejprve je přidejte do pracovního prostoru „Functions“.",
- "To select toolkits here, add them to the \"Tools\" workspace first.": "Chcete-li zde vybrat nástroje, přidejte je nejprve do pracovního prostoru \"Tools\".",
+ "To select filters here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat filtry, nejprve je přidejte do workspace „Functions“.",
+ "To select toolkits here, add them to the \"Tools\" workspace first.": "Chcete-li zde vybrat nástroje, přidejte je nejprve do workspace \"Tools\".",
"Toast notifications for new updates": "Oznámení ve formě toastů pro nové aktualizace",
"Today": "Dnes",
"Toggle settings": "Přepnout nastavení",
@@ -913,7 +913,7 @@
"Tool created successfully": "Nástroj byl úspěšně vytvořen.",
"Tool deleted successfully": "Nástroj byl úspěšně smazán.",
"Tool Description": "",
- "Tool ID": "",
+ "Tool ID": "ID nástroje",
"Tool imported successfully": "Nástroj byl úspěšně importován",
"Tool Name": "",
"Tool updated successfully": "Nástroj byl úspěšně aktualizován.",
@@ -933,7 +933,7 @@
"Type Hugging Face Resolve (Download) URL": "Zadejte URL pro úspěšné stažení z Hugging Face.",
"Uh-oh! There was an issue connecting to {{provider}}.": "Jejda! Došlo k problému s připojením k poskytovateli {{provider}}.",
"UI": "UI",
- "Unarchive All": "",
+ "Unarchive All": "Odarchivovat všechny",
"Unarchive All Archived Chats": "",
"Unarchive Chat": "",
"Unlock mysteries": "",
@@ -952,7 +952,7 @@
"Upload directory": "Nahrát adresář",
"Upload files": "Nahrát soubory",
"Upload Files": "Nahrát soubory",
- "Upload Pipeline": "Nahrát potrubí",
+ "Upload Pipeline": "Nahrát pipeline",
"Upload Progress": "Průběh nahrávání",
"URL": "",
"URL Mode": "Režim URL",
@@ -965,7 +965,7 @@
"user": "uživatel",
"User": "Uživatel",
"User location successfully retrieved.": "Umístění uživatele bylo úspěšně získáno.",
- "Username": "",
+ "Username": "Uživatelské jméno",
"Users": "Uživatelé",
"Using the default arena model with all models. Click the plus button to add custom models.": "Použití výchozího modelu arény se všemi modely. Kliknutím na tlačítko plus přidejte vlastní modely.",
"Utilize": "Využít",
@@ -977,7 +977,7 @@
"variable to have them replaced with clipboard content.": "proměnnou, aby byl jejich obsah nahrazen obsahem schránky.",
"Version": "Verze",
"Version {{selectedVersion}} of {{totalVersions}}": "Verze {{selectedVersion}} z {{totalVersions}}",
- "Visibility": "",
+ "Visibility": "Viditelnost",
"Voice": "Hlas",
"Voice Input": "Hlasový vstup",
"Warning": "Varování",
@@ -998,17 +998,17 @@
"What are you working on?": "",
"What’s New in": "Co je nového v",
"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": "kdekoliv jste",
"Whisper (Local)": "Whisper (Lokálně)",
- "Why?": "",
+ "Why?": "Proč?",
"Widescreen Mode": "Režim širokoúhlého zobrazení",
"Won": "Vyhrál",
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "",
- "Workspace": "Pracovní prostor",
+ "Workspace": "",
"Workspace Permissions": "",
"Write a prompt suggestion (e.g. Who are you?)": "Navrhněte dotaz (např. Kdo jsi?)",
"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š něco...",
+ "Write something...": "Napište něco...",
"Write your model template content here": "",
"Yesterday": "Včera",
"You": "Vy",
@@ -1023,5 +1023,5 @@
"Your account status is currently pending activation.": "Stav vašeho účtu je nyní čekající na aktivaci.",
"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.": "Váš celý příspěvek půjde přímo vývojáři pluginu; Open WebUI si nebere žádné procento. Vybraná platforma pro financování však může mít vlastní poplatky.",
"Youtube": "YouTube",
- "Youtube Loader Settings": "Nastavení Stahovače YouTube"
+ "Youtube Loader Settings": "Nastavení YouTube loaderu"
}
diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json
index 93fa94972..6e12bd251 100644
--- a/src/lib/i18n/locales/ru-RU/translation.json
+++ b/src/lib/i18n/locales/ru-RU/translation.json
@@ -1,5 +1,5 @@
{
- "-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 username_password`)",
"(e.g. `sh webui.sh --api`)": "(например, `sh webui.sh --api`)",
@@ -12,33 +12,33 @@
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач используется при выполнении таких задач, как генерация заголовков для чатов и поисковых запросов в Интернете",
"a user": "пользователь",
"About": "О программе",
- "Access": "",
- "Access Control": "",
- "Accessible to all users": "",
+ "Access": "Доступ",
+ "Access Control": "Контроль доступа",
+ "Accessible to all users": "Доступно всем пользователям",
"Account": "Учетная запись",
"Account Activation Pending": "Ожидание активации учетной записи",
"Accurate information": "Точная информация",
"Actions": "Действия",
- "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
+ "Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Активируйте эту команду, набрав \"/{{COMMAND}}\" для ввода в чате.",
"Active Users": "Активные пользователи",
"Add": "Добавить",
- "Add a model ID": "",
+ "Add a model ID": "Добавить ID модели",
"Add a short description about what this model does": "Добавьте краткое описание того, что делает эта модель",
"Add a tag": "Добавьте тег",
- "Add Arena Model": "",
- "Add Connection": "",
- "Add Content": "",
- "Add content here": "",
+ "Add Arena Model": "Добавить модель арены",
+ "Add Connection": "Добавить соединение",
+ "Add Content": "Добавить контент",
+ "Add content here": "Добавить контент сюда",
"Add custom prompt": "Добавьте пользовательский промпт",
"Add Files": "Добавить файлы",
- "Add Group": "",
+ "Add Group": "Добавить группу",
"Add Memory": "Добавить воспоминание",
"Add Model": "Добавить модель",
"Add Tag": "Добавить тег",
"Add Tags": "Добавить теги",
"Add text content": "",
"Add User": "Добавить пользователя",
- "Add User Group": "",
+ "Add User Group": "Добавить группу пользователей",
"Adjusting these settings will apply changes universally to all users.": "Изменения в этих настройках будут применены для всех пользователей.",
"admin": "админ",
"Admin": "Админ",
@@ -47,20 +47,20 @@
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Администраторы всегда имеют доступ ко всем инструментам; пользователям нужны инструменты, назначенные для каждой модели в рабочем пространстве.",
"Advanced Parameters": "Расширенные Параметры",
"Advanced Params": "Расширенные параметры",
- "All chats": "",
+ "All chats": "Все чаты",
"All Documents": "Все документы",
- "All models deleted successfully": "",
- "Allow Chat Delete": "",
+ "All models deleted successfully": "Все модели успешно удалены",
+ "Allow Chat Delete": "Разрешить удаление чата",
"Allow Chat Deletion": "Разрешить удаление чата",
- "Allow Chat Edit": "",
- "Allow File Upload": "",
+ "Allow Chat Edit": "Разрешить редактирование чата",
+ "Allow File Upload": "Разрешить загрузку файлов",
"Allow non-local voices": "Разрешить не локальные голоса",
"Allow Temporary Chat": "Разрешить временные чаты",
"Allow User Location": "Разрешить доступ к местоположению пользователя",
"Allow Voice Interruption in Call": "Разрешить прерывание голоса во время вызова",
"Already have an account?": "У вас уже есть учетная запись?",
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "",
- "Amazing": "",
+ "Amazing": "Удивительный",
"an assistant": "ассистент",
"and": "и",
"and {{COUNT}} more": "",
@@ -69,30 +69,30 @@
"API Key": "Ключ API",
"API Key created.": "Ключ 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": "применяется ко всем пользователям с ролью «пользователь»",
"April": "Апрель",
"Archive": "Архив",
"Archive All Chats": "Архивировать все чаты",
"Archived Chats": "Архив чатов",
"archived-chat-export": "",
- "Are you sure you want to unarchive all archived chats?": "",
+ "Are you sure you want to unarchive all archived chats?": "Вы уверены, что хотите разархивировать все заархивированные чаты?",
"Are you sure?": "Вы уверены?",
- "Arena Models": "",
- "Artifacts": "",
- "Ask a question": "",
- "Assistant": "",
+ "Arena Models": "Модели арены",
+ "Artifacts": "Артефакты",
+ "Ask a question": "Задать вопрос",
+ "Assistant": "Ассистент",
"Attach file": "Прикрепить файл",
"Attention to detail": "Внимание к деталям",
- "Attribute for Username": "",
+ "Attribute for Username": "Атрибут для имени пользователя",
"Audio": "Аудио",
"August": "Август",
- "Authenticate": "",
+ "Authenticate": "Аутентификация",
"Auto-Copy Response to Clipboard": "Автоматическое копирование ответа в буфер обмена",
"Auto-playback response": "Автоматическое воспроизведение ответа",
- "Autocomplete Generation": "",
- "Autocomplete Generation Input Max Length": "",
+ "Autocomplete Generation": "Генерация автозаполнения",
+ "Autocomplete Generation Input Max Length": "Максимальная длина входных данных автозаполнения",
"Automatic1111": "Automatic1111",
"AUTOMATIC1111 Api Auth String": "строка авторизации API AUTOMATIC1111",
"AUTOMATIC1111 Base URL": "Базовый URL адрес AUTOMATIC1111",
@@ -109,8 +109,8 @@
"Batch Size (num_batch)": "Размер партии (num_batch)",
"before": "до",
"Being lazy": "Лениво",
- "Bing Search V7 Endpoint": "",
- "Bing Search V7 Subscription Key": "",
+ "Bing Search V7 Endpoint": "Конечная точка поиска Bing V7",
+ "Bing Search V7 Subscription Key": "Ключ API Bing Search V7",
"Brave Search API Key": "Ключ API поиска Brave",
"By {{name}}": "",
"Bypass SSL verification for Websites": "Обход проверки SSL для веб-сайтов",
@@ -122,16 +122,16 @@
"Certificate Path": "",
"Change Password": "Изменить пароль",
"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": "Bubble UI чат",
"Chat Controls": "Управление чатом",
"Chat direction": "Направление чата",
"Chat Overview": "Обзор чата",
- "Chat Permissions": "",
- "Chat Tags Auto-Generation": "",
+ "Chat Permissions": "Разрешения для чата",
+ "Chat Tags Auto-Generation": "Автогенерация тегов чата",
"Chats": "Чаты",
"Check Again": "Перепроверьте ещё раз",
"Check for updates": "Проверить обновления",
@@ -140,11 +140,11 @@
"Chunk Overlap": "Перекрытие фрагментов",
"Chunk Params": "Параметры фрагментов",
"Chunk Size": "Размер фрагмента",
- "Ciphers": "",
+ "Ciphers": "Шифры",
"Citation": "Цитирование",
"Clear memory": "Очистить воспоминания",
- "click here": "",
- "Click here for filter guides.": "",
+ "click here": "кликните сюда",
+ "Click here for filter guides.": "Нажмите здесь, чтобы просмотреть руководства по фильтрам.",
"Click here for help.": "Нажмите здесь для получения помощи.",
"Click here to": "Нажмите здесь, чтобы",
"Click here to download user import template file.": "Нажмите здесь, чтобы загрузить файл шаблона импорта пользователя",
@@ -158,20 +158,20 @@
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "В разрешении на запись в буфер обмена отказано. Пожалуйста, проверьте настройки своего браузера, чтобы предоставить необходимый доступ.",
"Clone": "Клонировать",
"Close": "Закрыть",
- "Code execution": "",
+ "Code execution": "Выполнение кода",
"Code formatted successfully": "Код успешно отформатирован",
"Collection": "Коллекция",
- "Color": "",
+ "Color": "Цвет",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "Базовый адрес URL ComfyUI",
"ComfyUI Base URL is required.": "Необходим базовый адрес URL ComfyUI.",
"ComfyUI Workflow": "ComfyUI Workflow",
"ComfyUI Workflow Nodes": "Узлы ComfyUI Workflow",
"Command": "Команда",
- "Completions": "",
+ "Completions": "Завершения",
"Concurrent Requests": "Одновременные запросы",
- "Configure": "",
- "Configure Models": "",
+ "Configure": "Настроить",
+ "Configure Models": "Настройка моделей",
"Confirm": "Подтвердить",
"Confirm Password": "Подтвердите пароль",
"Confirm your action": "Подтвердите свое действие",
@@ -182,11 +182,11 @@
"Context Length": "Длина контекста",
"Continue Response": "Продолжить ответ",
"Continue with {{provider}}": "Продолжить с {{provider}}",
- "Continue with Email": "",
- "Continue with LDAP": "",
+ "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. 'Пунктуация' разделяет на предложения, 'абзацы' - разделяет на абзацы, а 'нет' сохраняет сообщение в виде одной строки.",
"Controls": "Управление",
- "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "",
+ "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "Управляет балансом между согласованностью и разнообразием выходных данных. Меньшее значение приведет к более сфокусированному и связному тексту. (По умолчанию: 5.0)",
"Copied": "Скопировано",
"Copied shared chat URL to clipboard!": "Копирование в буфер обмена выполнено успешно!",
"Copied to clipboard": "Скопировано в буфер обмена",
@@ -194,15 +194,15 @@
"Copy last code block": "Копировать последний блок кода",
"Copy last response": "Копировать последний ответ",
"Copy Link": "Копировать ссылку",
- "Copy to clipboard": "",
+ "Copy to clipboard": "Скопировать в буфер обмена",
"Copying to clipboard was successful!": "Копирование в буфер обмена прошло успешно!",
- "Create": "",
- "Create a knowledge base": "",
+ "Create": "Создать",
+ "Create a knowledge base": "Создайте базу знаний",
"Create a model": "Создание модели",
"Create Account": "Создать аккаунт",
- "Create Admin Account": "",
- "Create Group": "",
- "Create Knowledge": "",
+ "Create Admin Account": "Создать Аккаунт Администратора",
+ "Create Group": "Создать Группу",
+ "Create Knowledge": "Создать Знания",
"Create new key": "Создать новый ключ",
"Create new secret key": "Создать новый секретный ключ",
"Created at": "Создано",
@@ -220,30 +220,30 @@
"Default (SentenceTransformers)": "По умолчанию (SentenceTransformers)",
"Default Model": "Модель по умолчанию",
"Default model updated": "Модель по умолчанию обновлена",
- "Default Models": "",
- "Default permissions": "",
- "Default permissions updated successfully": "",
+ "Default Models": "Модели по умолчанию",
+ "Default permissions": "Разрешения по умолчанию",
+ "Default permissions updated successfully": "Разрешения по умолчанию успешно обновлены.",
"Default Prompt Suggestions": "Предложения промптов по умолчанию",
- "Default to 389 or 636 if TLS is enabled": "",
- "Default to ALL": "",
+ "Default to 389 or 636 if TLS is enabled": "По умолчанию 389 или 636, если TLS включен.",
+ "Default to ALL": "По умолчанию ВСЕ",
"Default User Role": "Роль пользователя по умолчанию",
"Delete": "Удалить",
"Delete a model": "Удалить модель",
- "Delete All Chats": "Удалить все чаты",
- "Delete All Models": "",
+ "Delete All Chats": "Удалить ВСЕ Чаты",
+ "Delete All Models": "Удалить ВСЕ Модели",
"Delete chat": "Удалить чат",
- "Delete Chat": "Удалить чат",
+ "Delete Chat": "Удалить Чат",
"Delete chat?": "Удалить чат?",
- "Delete folder?": "",
+ "Delete folder?": "Удалить папку?",
"Delete function?": "Удалить функцию?",
"Delete prompt?": "Удалить промпт?",
"delete this link": "удалить эту ссылку",
"Delete tool?": "Удалить этот инструмент?",
- "Delete User": "Удалить пользователя",
+ "Delete User": "Удалить Пользователя",
"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
"Deleted {{name}}": "Удалено {{name}}",
"Deleted User": "",
- "Describe your knowledge base and objectives": "",
+ "Describe your knowledge base and objectives": "Опишите свою базу знаний и цели",
"Description": "Описание",
"Didn't fully follow instructions": "Не полностью следует инструкциям",
"Disabled": "Отключено",
@@ -251,17 +251,17 @@
"Discover a model": "Найти модель",
"Discover a prompt": "Найти промпт",
"Discover a tool": "Найти инструмент",
- "Discover wonders": "",
+ "Discover wonders": "Откройте для себя чудеса",
"Discover, download, and explore custom functions": "Находите, загружайте и исследуйте пользовательские функции",
"Discover, download, and explore custom prompts": "Находите, загружайте и исследуйте пользовательские промпты",
"Discover, download, and explore custom tools": "Находите, загружайте и исследуйте пользовательские инструменты",
"Discover, download, and explore model presets": "Находите, загружайте и исследуйте пользовательские предустановки моделей",
"Dismissible": "Можно отклонить",
- "Display": "",
+ "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.": "Не устанавливайте инструменты из источников, которым вы не полностью доверяете.",
"Document": "Документ",
@@ -276,8 +276,8 @@
"Download": "Загрузить",
"Download canceled": "Загрузка отменена",
"Download Database": "Загрузить базу данных",
- "Drag and drop a file to upload or select a file to view": "",
- "Draw": "",
+ "Drag and drop a file to upload or select a file to view": "Перетащите файл для загрузки или выберите файл для просмотра.",
+ "Draw": "Рисовать",
"Drop any files here to add to the conversation": "Перетащите сюда файлы, чтобы добавить их в разговор",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30s','10m'. Допустимые единицы времени: 's', 'm', 'h'.",
"e.g. A filter to remove profanity from text": "",
@@ -287,24 +287,24 @@
"e.g. my_tools": "",
"e.g. Tools for performing various operations": "",
"Edit": "Редактировать",
- "Edit Arena Model": "",
- "Edit Connection": "",
- "Edit Default Permissions": "",
+ "Edit Arena Model": "Изменить модель арены",
+ "Edit Connection": "Изменить соединение",
+ "Edit Default Permissions": "Изменить разрешения по умолчанию",
"Edit Memory": "Редактировать воспоминание",
"Edit User": "Редактировать пользователя",
- "Edit User Group": "",
+ "Edit User Group": "Редактировать Пользовательскую Группу",
"ElevenLabs": "ElevenLabs",
"Email": "Электронная почта",
- "Embark on adventures": "",
+ "Embark on adventures": "Отправляйтесь в приключения",
"Embedding Batch Size": "Размер пакета для встраивания",
"Embedding Model": "Модель встраивания",
"Embedding Model Engine": "Движок модели встраивания",
"Embedding model set to \"{{embedding_model}}\"": "Модель встраивания установлена в \"{{embedding_model}}\"",
- "Enable API Key Auth": "",
- "Enable autocomplete generation for chat messages": "",
+ "Enable API Key Auth": "Включить аутентификацию по API Ключу",
+ "Enable autocomplete generation for chat messages": "Включить генерацию автозаполнения для сообщений чата",
"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.": "Включите блокировку памяти (mlock), чтобы предотвратить выгрузку данных модели из ОЗУ. Эта опция блокирует рабочий набор страниц модели в оперативной памяти, гарантируя, что они не будут выгружены на диск. Это может помочь поддерживать производительность, избегая ошибок страниц и обеспечивая быстрый доступ к данным.",
+ "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), чтобы загрузить данные модели. Эта опция позволяет системе использовать дисковое хранилище в качестве расширения оперативной памяти, обрабатывая дисковые файлы так, как если бы они находились в оперативной памяти. Это может улучшить производительность модели за счет более быстрого доступа к данным. Однако он может работать некорректно со всеми системами и занимать значительный объем дискового пространства.",
"Enable Message Rating": "Разрешить оценку ответов",
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
"Enable New Sign Ups": "Разрешить новые регистрации",
@@ -320,11 +320,11 @@
"Enter Bing Search V7 Endpoint": "",
"Enter Bing Search V7 Subscription Key": "",
"Enter Brave Search API Key": "Введите ключ API поиска Brave",
- "Enter certificate path": "",
+ "Enter certificate path": "Введите путь к сертификату",
"Enter CFG Scale (e.g. 7.0)": "Введите CFG Scale (например, 7.0)",
"Enter Chunk Overlap": "Введите перекрытие фрагмента",
"Enter Chunk Size": "Введите размер фрагмента",
- "Enter description": "",
+ "Enter description": "Введите описание",
"Enter Github Raw URL": "Введите необработанный URL-адрес Github",
"Enter Google PSE API Key": "Введите ключ API Google PSE",
"Enter Google PSE Engine Id": "Введите Id движка Google PSE",
@@ -342,13 +342,13 @@
"Enter SearchApi API Key": "Введите ключ API SearchApi",
"Enter SearchApi Engine": "Введите SearchApi движок",
"Enter Searxng Query URL": "Введите URL-адрес запроса Searxng",
- "Enter Seed": "",
+ "Enter Seed": "Введите Seed",
"Enter Serper API Key": "Введите ключ API Serper",
"Enter Serply API Key": "Введите ключ API Serply",
"Enter Serpstack API Key": "Введите ключ API Serpstack",
- "Enter server host": "",
- "Enter server label": "",
- "Enter server port": "",
+ "Enter server host": "Введите хост сервера",
+ "Enter server label": "Введите метку сервера",
+ "Enter server port": "Введите порт сервера",
"Enter stop sequence": "Введите последовательность остановки",
"Enter system prompt": "Введите системный промпт",
"Enter Tavily API Key": "Введите ключ API Tavily",
@@ -364,16 +364,16 @@
"Enter Your Username": "",
"Error": "Ошибка",
"ERROR": "",
- "Evaluations": "",
+ "Evaluations": "Оценки",
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "",
"Example: ALL": "",
"Example: ou=users,dc=foo,dc=example": "",
"Example: sAMAccountName or uid or userPrincipalName": "",
- "Exclude": "",
+ "Exclude": "Исключать",
"Experimental": "Экспериментальное",
- "Explore the cosmos": "",
+ "Explore the cosmos": "Исследуйте космос",
"Export": "Экспорт",
- "Export All Archived Chats": "",
+ "Export All Archived Chats": "Экспортировать ВСЕ Архивированные Чаты",
"Export All Chats (All Users)": "Экспортировать все чаты (всех пользователей)",
"Export chat (.json)": "Экспортировать чат (.json)",
"Export Chats": "Экспортировать чаты",
@@ -390,17 +390,17 @@
"Failed to read clipboard contents": "Не удалось прочитать содержимое буфера обмена",
"Failed to save models configuration": "",
"Failed to update settings": "Не удалось обновить настройки",
- "Failed to upload file.": "",
+ "Failed to upload file.": "Не удалось загрузить файл.",
"February": "Февраль",
- "Feedback History": "",
- "Feedbacks": "",
+ "Feedback History": "История отзывов",
+ "Feedbacks": "Отзывы",
"Feel free to add specific details": "Не стесняйтесь добавлять конкретные детали",
"File": "Файл",
- "File added successfully.": "",
- "File content updated successfully.": "",
+ "File added successfully.": "Файл успешно добавлен.",
+ "File content updated successfully.": "Содержимое файла успешно обновлено.",
"File Mode": "Режим файла",
"File not found.": "Файл не найден.",
- "File removed successfully.": "",
+ "File removed successfully.": "Файл успешно удален.",
"File size should not exceed {{maxSize}} MB.": "Размер файла не должен превышать {{maxSize}} МБ.",
"Files": "Файлы",
"Filter is now globally disabled": "Фильтр теперь отключен глобально",
@@ -409,23 +409,23 @@
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Определение подделки отпечатка: Невозможно использовать инициалы в качестве аватара. По умолчанию используется изображение профиля по умолчанию.",
"Fluidly stream large external response chunks": "Плавная потоковая передача больших фрагментов внешних ответов",
"Focus chat input": "Фокус ввода чата",
- "Folder deleted successfully": "",
- "Folder name cannot be empty": "",
- "Folder name cannot be empty.": "",
- "Folder name updated successfully": "",
+ "Folder deleted successfully": "Папка успешно удалена",
+ "Folder name cannot be empty": "Имя папки не может быть пустым",
+ "Folder name cannot be empty.": "Имя папки не может быть пустым.",
+ "Folder name updated successfully": "Имя папки успешно обновлено",
"Followed instructions perfectly": "Идеально соответствует инструкциям",
- "Forge new paths": "",
+ "Forge new paths": "Прокладывайте новые пути",
"Form": "Форма",
- "Format your variables using brackets like this:": "",
+ "Format your variables using brackets like this:": "Отформатируйте переменные, используя такие : скобки",
"Frequency Penalty": "Штраф за частоту",
- "Function": "",
+ "Function": "Функция",
"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": "Функции позволяют выполнять произвольный код",
@@ -463,19 +463,19 @@
"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": "",
- "Ignite curiosity": "",
+ "Ignite curiosity": "Разожгите любопытство",
"Image Generation (Experimental)": "Генерация изображений (Экспериментально)",
"Image Generation Engine": "Механизм генерации изображений",
"Image Settings": "Настройки изображения",
"Images": "Изображения",
- "Import Chats": "Импортировать чаты",
+ "Import Chats": "Импортировать Чаты",
"Import Config from JSON File": "Импорт конфигурации из JSON-файла",
- "Import Functions": "Импортировать функции",
- "Import Models": "Импортировать модели",
- "Import Presets": "",
- "Import Prompts": "Импортировать промпты",
- "Import Tools": "Импортировать инструменты",
- "Include": "",
+ "Import Functions": "Импортировать Функции",
+ "Import Models": "Импортировать Модели",
+ "Import Presets": "Импортировать Пресеты",
+ "Import Prompts": "Импортировать Промпты",
+ "Import Tools": "Импортировать Инструменты",
+ "Include": "Включать",
"Include `--api-auth` flag when running stable-diffusion-webui": "Добавьте флаг '--api-auth' при запуске stable-diffusion-webui",
"Include `--api` flag when running stable-diffusion-webui": "Добавьте флаг `--api` при запуске stable-diffusion-webui",
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "",
@@ -484,7 +484,7 @@
"Install from Github URL": "Установка с URL-адреса Github",
"Instant Auto-Send After Voice Transcription": "Мгновенная автоматическая отправка после расшифровки голоса",
"Interface": "Интерфейс",
- "Invalid file format.": "",
+ "Invalid file format.": "Неверный формат файла.",
"Invalid Tag": "Недопустимый тег",
"January": "Январь",
"Jina API Key": "",
@@ -499,19 +499,19 @@
"Key": "",
"Keyboard shortcuts": "Горячие клавиши",
"Knowledge": "Знания",
- "Knowledge Access": "",
- "Knowledge created successfully.": "",
- "Knowledge deleted successfully.": "",
- "Knowledge reset successfully.": "",
- "Knowledge updated successfully": "",
+ "Knowledge Access": "Доступ к Знаниям",
+ "Knowledge created successfully.": "Знания созданы успешно.",
+ "Knowledge deleted successfully.": "Знания успешно удалены.",
+ "Knowledge reset successfully.": "Знания успешно сброшены.",
+ "Knowledge updated successfully": "Знания успешно обновлены",
"Label": "",
- "Landing Page Mode": "",
+ "Landing Page Mode": "Режим Целевой Страницы",
"Language": "Язык",
- "Last Active": "Последний активный",
- "Last Modified": "Последнее изменение",
+ "Last Active": "Последний Активный",
+ "Last Modified": "Последнее Изменение",
"LDAP": "",
- "LDAP server updated": "",
- "Leaderboard": "",
+ "LDAP server updated": "LDAP сервер обновлен",
+ "Leaderboard": "Таблица Лидеров",
"Leave empty for unlimited": "Оставьте пустым для неограниченного",
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "",
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "",
@@ -528,10 +528,10 @@
"Make sure to enclose them with": "Убедитесь, что они заключены в",
"Make sure to export a workflow.json file as API format from ComfyUI.": "Убедитесь, что экспортируете файл workflow.json в формате API из ComfyUI.",
"Manage": "Управлять",
- "Manage Arena Models": "",
- "Manage Ollama": "",
- "Manage Ollama API Connections": "",
- "Manage OpenAI API Connections": "",
+ "Manage Arena Models": "Управление Ареной Моделей",
+ "Manage Ollama": "Управление Ollama",
+ "Manage Ollama API Connections": "Управление соединениями API Ollama",
+ "Manage OpenAI API Connections": "Управление соединениями API OpenAI",
"Manage Pipelines": "Управление конвейерами",
"March": "Март",
"Max Tokens (num_predict)": "Максимальное количество токенов (num_predict)",
@@ -546,7 +546,7 @@
"Memory deleted successfully": "Воспоминание успешно удалено",
"Memory updated successfully": "Воспоминание успешно обновлено",
"Merge Responses": "Объединить ответы",
- "Message rating should be enabled to use this feature": "",
+ "Message rating should be enabled to use this feature": "Чтобы использовать эту функцию, необходимо включить оценку сообщения.",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Сообщения, отправленные вами после создания ссылки, не будут передаваться другим. Пользователи, у которых есть URL, смогут просматривать общий чат.",
"Min P": "Min P",
"Minimum Score": "Минимальный балл",
@@ -556,7 +556,7 @@
"MMMM DD, YYYY": "DD MMMM YYYY",
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "MMMM DD, YYYY hh:mm:ss A",
- "Model": "",
+ "Model": "Модель",
"Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успешно загружена.",
"Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' уже находится в очереди на загрузку.",
"Model {{modelId}} not found": "Модель {{modelId}} не найдена",
@@ -565,18 +565,18 @@
"Model accepts image inputs": "Модель принимает изображения как входные данные",
"Model created successfully!": "Модель успешно создана!",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Обнаружен путь к файловой системе модели. Для обновления требуется краткое имя модели, не удается продолжить.",
- "Model Filtering": "",
- "Model ID": "ID модели",
- "Model IDs": "",
- "Model Name": "",
+ "Model Filtering": "Фильтрация Моделей",
+ "Model ID": "ID Модели",
+ "Model IDs": "IDs Модели",
+ "Model Name": "Имя Модели",
"Model not selected": "Модель не выбрана",
"Model Params": "Параметры модели",
- "Model Permissions": "",
+ "Model Permissions": "Разрешения Модели",
"Model updated successfully": "Модель успешно обновлена",
"Modelfile Content": "Содержимое файла модели",
"Models": "Модели",
- "Models Access": "",
- "Models configuration saved successfully": "",
+ "Models Access": "Доступ к Моделям",
+ "Models configuration saved successfully": "Конфигурация модели успешно сохранена.",
"Mojeek Search API Key": "",
"more": "",
"More": "Больше",
@@ -585,26 +585,26 @@
"New Chat": "Новый чат",
"New folder": "",
"New Password": "Новый пароль",
- "No content found": "",
+ "No content found": "Контент не найден",
"No content to speak": "Нечего говорить",
"No distance available": "",
"No feedbacks found": "",
"No file selected": "Файлы не выбраны",
- "No files found.": "",
+ "No files found.": "Файлы не найдены.",
"No groups with access, add a group to grant access": "",
"No HTML, CSS, or JavaScript content found.": "",
- "No knowledge found": "",
+ "No knowledge found": "Знания не найдены",
"No model IDs": "",
- "No models found": "",
- "No models selected": "",
+ "No models found": "Модели не найдены",
+ "No models selected": "Модели не выбраны",
"No results found": "Результатов не найдено",
"No search query generated": "Поисковый запрос не сгенерирован",
"No source available": "Нет доступных источников",
- "No users were found.": "",
+ "No users were found.": "Пользователи не найдены.",
"No valves to update": "Нет вентилей для обновления",
"None": "Нет",
"Not factually correct": "Не соответствует действительности",
- "Not helpful": "",
+ "Not helpful": "Бесполезно",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Обратите внимание: Если вы установите минимальный балл, поиск будет возвращать только документы с баллом больше или равным минимальному баллу.",
"Notes": "",
"Notifications": "Уведомления",
@@ -622,16 +622,16 @@
"Ollama API settings updated": "",
"Ollama Version": "Версия Ollama",
"On": "Включено",
- "Only alphanumeric characters and hyphens are allowed": "",
+ "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 select users and groups with permission can access": "Доступ имеют только избранные пользователи и группы, имеющие разрешение.",
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Похоже, что URL-адрес недействителен. Пожалуйста, перепроверьте и попробуйте еще раз.",
- "Oops! There are files still uploading. Please wait for the upload to complete.": "",
+ "Oops! There are files still uploading. Please wait for the upload to complete.": "Упс! Есть файлы, которые все еще загружаются. Пожалуйста, дождитесь завершения загрузки.",
"Oops! There was an error in the previous response.": "",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Упс! Вы используете неподдерживаемый метод (только фронтенд). Пожалуйста, обслуживайте веб-интерфейс из бэкенда.",
"Open file": "Открыть файл",
- "Open in full screen": "",
+ "Open in full screen": "Открыть на весь экран",
"Open new chat": "Открыть новый чат",
"Open WebUI uses faster-whisper internally.": "",
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "",
@@ -643,25 +643,25 @@
"OpenAI API settings updated": "",
"OpenAI URL/Key required.": "Требуется URL-адрес API OpenAI или ключ API.",
"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 microphone: {{error}}": "Отказано в разрешении на доступ к микрофону: {{error}}",
- "Permissions": "",
+ "Permissions": "Разрешения",
"Personalization": "Персонализация",
"Pin": "Закрепить",
"Pinned": "Закреплено",
- "Pioneer insights": "",
+ "Pioneer insights": "Новаторские идеи",
"Pipeline deleted successfully": "Конвейер успешно удален",
"Pipeline downloaded successfully": "Конвейер успешно загружен",
"Pipelines": "Конвейеры",
@@ -670,9 +670,9 @@
"Plain text (.txt)": "Текст в формате .txt",
"Playground": "Песочница",
"Please carefully review the following warnings:": "Пожалуйста, внимательно ознакомьтесь со следующими предупреждениями:",
- "Please enter a prompt": "",
- "Please fill in all fields.": "",
- "Please select a model first.": "",
+ "Please enter a prompt": "Пожалуйста, введите подсказку",
+ "Please fill in all fields.": "Пожалуйста, заполните все поля.",
+ "Please select a model first.": "Пожалуйста, сначала выберите модель.",
"Please select a reason": "Пожалуйста, выберите причину",
"Port": "",
"Positive attitude": "Позитивный настрой",
@@ -723,7 +723,7 @@
"Response splitting": "Разделение ответов",
"Result": "",
"Retrieval Query Generation": "",
- "Rich Text Input for Chat": "",
+ "Rich Text Input for Chat": "Ввод форматированного текста для чата",
"RK": "",
"Role": "Роль",
"Rosé Pine": "Rosé Pine",
@@ -815,7 +815,7 @@
"Share Chat": "Поделиться чатом",
"Share to OpenWebUI Community": "Поделиться с сообществом OpenWebUI",
"Show": "Показать",
- "Show \"What's New\" modal on login": "",
+ "Show \"What's New\" modal on login": "Показывать окно «Что нового» при входе в систему",
"Show Admin Details in Account Pending Overlay": "Показывать данные администратора в оверлее ожидающей учетной записи",
"Show shortcuts": "Показать горячие клавиши",
"Show your support!": "Поддержите нас!",
@@ -869,21 +869,21 @@
"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. (Default: 0.8)": "",
+ "The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "Температура модели. Повышение температуры заставит модель отвечать более творчески. (По умолчанию: 0,8)",
"Theme": "Тема",
"Thinking...": "Думаю...",
"This action cannot be undone. Do you wish to continue?": "Это действие нельзя отменить. Вы хотите продолжить?",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Это обеспечивает сохранение ваших ценных разговоров в безопасной базе данных на вашем сервере. Спасибо!",
"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Это экспериментальная функция, она может работать не так, как ожидалось, и может быть изменена в любое время.",
- "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "",
- "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "",
- "This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
+ "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "Этот параметр определяет, сколько токенов сохраняется при обновлении контекста. Например, если установлено значение 2, будут сохранены два последних токена контекста разговора. Сохранение контекста может помочь сохранить непрерывность разговора, но может снизить способность реагировать на новые темы. (По умолчанию: 24)",
+ "This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "Этот параметр устанавливает максимальное количество токенов, которые модель может сгенерировать в своем ответе. Увеличение этого предела позволяет модели предоставлять более длинные ответы, но также может увеличить вероятность создания бесполезного или нерелевантного контента. (По умолчанию: 128)",
+ "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 will delete {{NAME}} and all its contents.": "При этом будет удален {{NAME}} и все его содержимое.",
+ "This will delete all models including custom models": "Это приведет к удалению всех моделей, включая пользовательские модели.",
+ "This will delete all models including custom models and cannot be undone.": "При этом будут удалены все модели, включая пользовательские, и это действие нельзя будет отменить.",
+ "This will reset the knowledge base and sync all files. Do you wish to continue?": "Это сбросит базу знаний и синхронизирует все файлы. Хотите продолжить?",
"Thorough explanation": "Подробное объяснение",
"Tika": "Tika",
"Tika Server URL required.": "Требуется URL-адрес сервера Tika.",
@@ -898,12 +898,12 @@
"To access the available model names for downloading,": "Чтобы получить доступ к доступным для загрузки именам моделей,",
"To access the GGUF models available for downloading,": "Чтобы получить доступ к моделям GGUF, доступным для загрузки,",
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Чтобы получить доступ к WebUI, пожалуйста, обратитесь к администратору. Администраторы могут управлять статусами пользователей из панели администратора.",
- "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "",
+ "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Чтобы прикрепить сюда базу знаний, сначала добавьте её в \"Знания\" рабочего пространства.",
"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": "",
+ "Toast notifications for new updates": "Уведомления о обновлениях",
"Today": "Сегодня",
"Toggle settings": "Переключить настройки",
"Toggle sidebar": "Переключить боковую панель",
@@ -912,13 +912,13 @@
"Too verbose": "",
"Tool created successfully": "Инструмент успешно создан",
"Tool deleted successfully": "Инструмент успешно удален",
- "Tool Description": "",
- "Tool ID": "",
+ "Tool Description": "Описание Инструмента",
+ "Tool ID": "ID Инструмента",
"Tool imported successfully": "Инструмент успешно импортирован",
- "Tool Name": "",
+ "Tool Name": "Имя Инструмента",
"Tool updated successfully": "Инструмент успешно обновлен",
"Tools": "Инструменты",
- "Tools Access": "",
+ "Tools Access": "Доступ к инструментам",
"Tools are a function calling system with arbitrary code execution": "Инструменты - это система вызова функций с выполнением произвольного кода",
"Tools have a function calling system that allows arbitrary code execution": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код",
"Tools have a function calling system that allows arbitrary code execution.": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код.",
@@ -933,41 +933,41 @@
"Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
"UI": "Пользовательский интерфейс",
- "Unarchive All": "",
- "Unarchive All Archived Chats": "",
- "Unarchive Chat": "",
- "Unlock mysteries": "",
+ "Unarchive All": "Разархивировать ВСЁ",
+ "Unarchive All Archived Chats": "Разархивировать ВСЕ Заархивированные Чаты",
+ "Unarchive Chat": "Разархивировать чат",
+ "Unlock mysteries": "Разблокируйте тайны",
"Unpin": "Открепить",
- "Unravel secrets": "",
- "Untagged": "",
+ "Unravel secrets": "Разгадать секреты",
+ "Untagged": "Без тегов",
"Update": "Обновить",
"Update and Copy Link": "Обновить и скопировать ссылку",
"Update for the latest features and improvements.": "Обновитесь для получения последних функций и улучшений.",
"Update password": "Обновить пароль",
- "Updated": "",
+ "Updated": "Обновлено",
"Updated at": "Обновлено",
"Updated At": "",
"Upload": "Загрузить",
"Upload a GGUF model": "Загрузить модель GGUF",
- "Upload directory": "",
- "Upload files": "",
+ "Upload directory": "Загрузить каталог",
+ "Upload files": "Загрузить файлы",
"Upload Files": "Загрузить файлы",
"Upload Pipeline": "Загрузить конвейер",
"Upload Progress": "Прогресс загрузки",
"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": "Использовать Gravatar",
- "Use groups to group your users and assign permissions.": "",
+ "Use groups to group your users and assign permissions.": "Используйте группы, чтобы группировать пользователей и назначать разрешения.",
"Use Initials": "Использовать инициалы",
"use_mlock (Ollama)": "use_mlock (Ollama)",
"use_mmap (Ollama)": "use_mmap (Ollama)",
"user": "пользователь",
- "User": "",
+ "User": "Пользователь",
"User location successfully retrieved.": "Местоположение пользователя успешно получено.",
- "Username": "",
+ "Username": "Имя пользователя",
"Users": "Пользователи",
- "Using the default arena model with all models. Click the plus button to add custom models.": "",
+ "Using the default arena model with all models. Click the plus button to add custom models.": "Использование модели арены по умолчанию со всеми моделями. Нажмите кнопку «плюс», чтобы добавить пользовательские модели.",
"Utilize": "Используйте",
"Valid time units:": "Допустимые единицы времени:",
"Valves": "Вентили",
@@ -977,45 +977,45 @@
"variable to have them replaced with clipboard content.": "переменную, чтобы заменить их содержимым буфера обмена.",
"Version": "Версия",
"Version {{selectedVersion}} of {{totalVersions}}": "",
- "Visibility": "",
+ "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.": "Предупреждение. Включение этого параметра позволит пользователям загружать произвольный код на сервер.",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Если вы обновите или измените модель эмбеддинга, вам нужно будет повторно импортировать все документы.",
"Web": "Веб",
"Web API": "Веб API",
"Web Loader Settings": "Настройки веб-загрузчика",
"Web Search": "Веб-поиск",
"Web Search Engine": "Поисковая система",
- "Web Search Query Generation": "",
+ "Web Search Query Generation": "Генерация запросов веб-поиска",
"Webhook URL": "URL-адрес веб-хука",
"WebUI Settings": "Настройки WebUI",
- "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?": "",
+ "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": "",
+ "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)": "Whisper (Локально)",
- "Why?": "",
+ "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. (Default: 0.9)": "",
+ "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Работает совместно с top-k. Более высокое значение (например, 0,95) приведет к созданию более разнообразного текста, а более низкое значение (например, 0,5) приведет к созданию более сфокусированного и консервативного текста. (По умолчанию: 0,9)",
"Workspace": "Рабочее пространство",
- "Workspace Permissions": "",
+ "Workspace Permissions": "Разрешения для Рабочего пространства",
"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": "Напишите здесь содержимое шаблона вашей модели.",
"Yesterday": "Вчера",
"You": "Вы",
"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 cannot upload an empty file.": "Вы не можете загрузить пустой файл.",
+ "You do not have permission to upload files.": "У вас нет разрешения на загрузку файлов.",
"You have no archived conversations.": "У вас нет архивированных бесед.",
"You have shared this chat": "Вы поделились этим чатом",
"You're a helpful assistant.": "Вы полезный ассистент.",
diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json
index 18014562d..1e80d5d79 100644
--- a/src/lib/i18n/locales/zh-CN/translation.json
+++ b/src/lib/i18n/locales/zh-CN/translation.json
@@ -1,5 +1,5 @@
{
- "-1 for no limit, or a positive integer for a specific limit": "",
+ "-1 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`)",
@@ -60,7 +60,7 @@
"Allow Voice Interruption in Call": "允许通话中的打断语音",
"Already have an account?": "已经拥有账号了?",
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "top_p的替代方法,目标是在质量和多样性之间取得平衡。参数p表示一个token相对于最有可能的token所需的最低概率。比如,当p=0.05且最有可能的token概率为0.9时,概率低于0.045的logits会被排除。(默认值:0.0)",
- "Amazing": "",
+ "Amazing": "很棒",
"an assistant": "AI模型",
"and": "和",
"and {{COUNT}} more": "还有 {{COUNT}} 个",
@@ -91,15 +91,15 @@
"Authenticate": "认证",
"Auto-Copy Response to Clipboard": "自动复制回复到剪贴板",
"Auto-playback response": "自动念出回复内容",
- "Autocomplete Generation": "",
- "Autocomplete Generation Input Max Length": "",
+ "Autocomplete Generation": "自动完成生成",
+ "Autocomplete Generation Input Max Length": "自动完成生成输入最大长度",
"Automatic1111": "Automatic1111",
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api 鉴权字符串",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 基础地址",
"AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基础地址。",
"Available list": "可用列表",
"available!": "版本可用!",
- "Awful": "",
+ "Awful": "糟糕",
"Azure AI Speech": "Azure AI 语音",
"Azure Region": "Azure 区域",
"Back": "返回",
@@ -122,7 +122,7 @@
"Certificate Path": "证书路径",
"Change Password": "更改密码",
"Character": "字符",
- "Character limit for autocomplete generation input": "",
+ "Character limit for autocomplete generation input": "自动完成生成输入的字符限制",
"Chart new frontiers": "开拓新领域",
"Chat": "对话",
"Chat Background Image": "对话背景图片",
@@ -166,7 +166,7 @@
"ComfyUI Base URL": "ComfyUI 基础地址",
"ComfyUI Base URL is required.": "ComfyUI 基础地址为必需填写。",
"ComfyUI Workflow": "ComfyUI Workflow",
- "ComfyUI Workflow Nodes": "ComfyUI Workflow Nodes",
+ "ComfyUI Workflow Nodes": "ComfyUI Workflow 节点",
"Command": "命令",
"Completions": "续写",
"Concurrent Requests": "并发请求",
@@ -279,7 +279,7 @@
"Drag and drop a file to upload or select a file to view": "拖动文件上传或选择文件查看",
"Draw": "平局",
"Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中",
- "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
+ "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
"e.g. A filter to remove profanity from text": "例如:一个用于过滤文本中不当内容的过滤器",
"e.g. My Filter": "例如:我的过滤器",
"e.g. My Tools": "例如:我的工具",
@@ -301,7 +301,7 @@
"Embedding Model Engine": "语义向量模型引擎",
"Embedding model set to \"{{embedding_model}}\"": "语义向量模型设置为 \"{{embedding_model}}\"",
"Enable API Key Auth": "启用 API 密钥鉴权",
- "Enable autocomplete generation for chat messages": "",
+ "Enable autocomplete generation for chat messages": "启用聊天消息的自动完成生成",
"Enable Community Sharing": "启用分享至社区",
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "启用内存锁定(mlock)以防止模型数据被交换出RAM。此选项将模型的工作集页面锁定在RAM中,确保它们不会被交换到磁盘。这可以通过避免页面错误和确保快速数据访问来帮助维持性能。",
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "启用内存映射(mmap)以加载模型数据。此选项允许系统通过将磁盘文件视为在RAM中来使用磁盘存储作为RAM的扩展。这可以通过更快的数据访问来提高模型性能。然而,它可能无法在所有系统上正常工作,并且可能会消耗大量磁盘空间。",
@@ -314,11 +314,11 @@
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "确保您的 CSV 文件按以下顺序包含 4 列: 姓名、电子邮箱、密码、角色。",
"Enter {{role}} message here": "在此处输入 {{role}} 的对话内容",
"Enter a detail about yourself for your LLMs to recall": "输入一个关于你自己的详细信息,方便你的大语言模型记住这些内容",
- "Enter api auth string (e.g. username:password)": "输入 api 鉴权路径 (例如:username:password)",
+ "Enter api auth string (e.g. username:password)": "输入 api 鉴权路径 (例如:用户名:密码)",
"Enter Application DN": "输入 Application DN",
- "Enter Application DN Password": "输入 Application DN Password",
- "Enter Bing Search V7 Endpoint": "输入 Enter Bing Search V7 Endpoint",
- "Enter Bing Search V7 Subscription Key": "输入 Bing Search V7 Subscription Key",
+ "Enter Application DN Password": "输入 Application DN 密码",
+ "Enter Bing Search V7 Endpoint": "输入 Bing Search V7 端点",
+ "Enter Bing Search V7 Subscription Key": "输入 Bing Search V7 订阅密钥",
"Enter Brave Search API Key": "输入 Brave Search API 密钥",
"Enter certificate path": "输入证书路径",
"Enter CFG Scale (e.g. 7.0)": "输入 CFG Scale (例如:7.0)",
@@ -335,7 +335,7 @@
"Enter model tag (e.g. {{modelTag}})": "输入模型标签 (例如:{{modelTag}})",
"Enter Mojeek Search API Key": "输入 Mojeek Search API 密钥",
"Enter Number of Steps (e.g. 50)": "输入步骤数 (Steps) (例如:50)",
- "Enter proxy URL (e.g. https://user:password@host:port)": "",
+ "Enter proxy URL (e.g. https://user:password@host:port)": "输入代理 URL (例如:https://用户名:密码@主机名:端口)",
"Enter Sampler (e.g. Euler a)": "输入 Sampler (例如:Euler a)",
"Enter Scheduler (e.g. Karras)": "输入 Scheduler (例如:Karras)",
"Enter Score": "输入评分",
@@ -346,9 +346,9 @@
"Enter Serper API Key": "输入 Serper API 密钥",
"Enter Serply API Key": "输入 Serply API 密钥",
"Enter Serpstack API Key": "输入 Serpstack API 密钥",
- "Enter server host": "输入 server host",
- "Enter server label": "输入 server label",
- "Enter server port": "输入 server port",
+ "Enter server host": "输入服务器主机名 ",
+ "Enter server label": "输入服务器标签",
+ "Enter server port": "输入服务器端口",
"Enter stop sequence": "输入停止序列 (Stop Sequence)",
"Enter system prompt": "输入系统提示词 (Prompt)",
"Enter Tavily API Key": "输入 Tavily API 密钥",
@@ -457,7 +457,7 @@
"Hex Color": "十六进制颜色代码",
"Hex Color - Leave empty for default color": "十六进制颜色代码 - 留空使用默认颜色",
"Hide": "隐藏",
- "Host": "Host",
+ "Host": "主机",
"How can I help you today?": "有什么我能帮您的吗?",
"How would you rate this response?": "您如何评价这个回应?",
"Hybrid Search": "混合搜索",
@@ -672,7 +672,7 @@
"Please carefully review the following warnings:": "请仔细阅读以下警告信息:",
"Please enter a prompt": "请输出一个 prompt",
"Please fill in all fields.": "请填写所有字段。",
- "Please select a model first.": "",
+ "Please select a model first.": "请先选择一个模型。",
"Please select a reason": "请选择原因",
"Port": "端口",
"Positive attitude": "积极的态度",
@@ -688,7 +688,7 @@
"Prompt updated successfully": "提示词更新成功",
"Prompts": "提示词",
"Prompts Access": "访问提示词",
- "Proxy URL": "",
+ "Proxy URL": "代理 URL",
"Pull \"{{searchValue}}\" from Ollama.com": "从 Ollama.com 拉取 \"{{searchValue}}\"",
"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
"Query Generation Prompt": "查询生成提示词",
@@ -722,7 +722,7 @@
"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 Query Generation": "",
+ "Retrieval Query Generation": "检索查询生成",
"Rich Text Input for Chat": "对话富文本输入",
"RK": "排名",
"Role": "权限组",
@@ -843,7 +843,7 @@
"System": "系统",
"System Instructions": "系统指令",
"System Prompt": "系统提示词 (System Prompt)",
- "Tags Generation": "",
+ "Tags Generation": "标签生成",
"Tags Generation Prompt": "标签生成提示词",
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling 用于减少输出中可能性较低的标记的影响。数值越大(如 2.0),影响就越小,而数值为 1.0 则会禁用此设置。(默认值:1)",
"Tap to interrupt": "点击以中断",
@@ -986,7 +986,7 @@
"Web Loader Settings": "网页爬取设置",
"Web Search": "联网搜索",
"Web Search Engine": "联网搜索引擎",
- "Web Search Query Generation": "",
+ "Web Search Query Generation": "网页搜索查询生成",
"Webhook URL": "Webhook URL",
"WebUI Settings": "WebUI 设置",
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI 将向 \"{{url}}/api/chat\" 发出请求",
diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json
index 0b8229c08..dbc9a9ade 100644
--- a/src/lib/i18n/locales/zh-TW/translation.json
+++ b/src/lib/i18n/locales/zh-TW/translation.json
@@ -1,5 +1,5 @@
{
- "-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 username_password`)",
"(e.g. `sh webui.sh --api`)": "(例如 `sh webui.sh --api`)",
@@ -60,7 +60,7 @@
"Allow Voice Interruption in Call": "允許在通話中打斷語音",
"Already have an account?": "已經有帳號了嗎?",
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "作為 top_p 的替代方案,旨在確保質量和多樣性的平衡。相對於最可能的 token 機率而言,參數 p 代表一個 token 被考慮在内的最低機率。例如,當 p=0.05 且最可能的 token 機率為 0.9 時,數值低於 0.045 的對數機率會被過濾掉。(預設值:0.0)",
- "Amazing": "驚人",
+ "Amazing": "很棒",
"an assistant": "一位助手",
"and": "和",
"and {{COUNT}} more": "和另外 {{COUNT}} 個",
@@ -91,8 +91,8 @@
"Authenticate": "驗證",
"Auto-Copy Response to Clipboard": "自動將回應複製到剪貼簿",
"Auto-playback response": "自動播放回應",
- "Autocomplete Generation": "",
- "Autocomplete Generation Input Max Length": "",
+ "Autocomplete Generation": "自動完成生成",
+ "Autocomplete Generation Input Max Length": "自動完成產生輸入最大長度",
"Automatic1111": "Automatic1111",
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 API 驗證字串",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 基礎 URL",
@@ -122,7 +122,7 @@
"Certificate Path": "憑證路徑",
"Change Password": "修改密碼",
"Character": "角色",
- "Character limit for autocomplete generation input": "",
+ "Character limit for autocomplete generation input": "自動完成產生輸入的字元限制",
"Chart new frontiers": "探索新領域",
"Chat": "對話",
"Chat Background Image": "對話背景圖片",
@@ -220,7 +220,7 @@
"Default (SentenceTransformers)": "預設 (SentenceTransformers)",
"Default Model": "預設模型",
"Default model updated": "預設模型已更新",
- "Default Models": "預設的多個模型",
+ "Default Models": "預設模型",
"Default permissions": "預設權限",
"Default permissions updated successfully": "預設權限更新成功",
"Default Prompt Suggestions": "預設提示詞建議",
@@ -301,7 +301,7 @@
"Embedding Model Engine": "嵌入模型引擎",
"Embedding model set to \"{{embedding_model}}\"": "嵌入模型已設定為 \"{{embedding_model}}\"",
"Enable API Key Auth": "啟用 API 金鑰驗證",
- "Enable autocomplete generation for chat messages": "",
+ "Enable autocomplete generation for chat messages": "啟用聊天訊息的自動完成生成",
"Enable Community Sharing": "啟用社群分享",
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "啟用記憶體鎖定(mlock)以防止模型資料被換出 RAM。此選項會將模型的工作頁面集鎖定在 RAM 中,確保它們不會被換出到磁碟。這可以透過避免頁面錯誤和確保快速資料存取來維持效能。",
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "啟用記憶體映射(mmap)以載入模型資料。此選項允許系統使用磁碟儲存作為 RAM 的延伸,透過將磁碟檔案視為在 RAM 中來處理。這可以透過允許更快的資料存取來改善模型效能。然而,它可能無法在所有系統上正常運作,並且可能會消耗大量磁碟空間。",
@@ -335,7 +335,7 @@
"Enter model tag (e.g. {{modelTag}})": "輸入模型標籤(例如:{{modelTag}})",
"Enter Mojeek Search API Key": "輸入 Mojeek 搜尋 API 金鑰",
"Enter Number of Steps (e.g. 50)": "輸入步驟數(例如:50)",
- "Enter proxy URL (e.g. https://user:password@host:port)": "",
+ "Enter proxy URL (e.g. https://user:password@host:port)": "輸入代理程式 URL(例如:https://user:password@host:port)",
"Enter Sampler (e.g. Euler a)": "輸入取樣器(例如:Euler a)",
"Enter Scheduler (e.g. Karras)": "輸入排程器(例如:Karras)",
"Enter Score": "輸入分數",
@@ -672,7 +672,7 @@
"Please carefully review the following warnings:": "請仔細閱讀以下警告:",
"Please enter a prompt": "請輸入提示詞",
"Please fill in all fields.": "請填寫所有欄位。",
- "Please select a model first.": "",
+ "Please select a model first.": "請先選擇型號。",
"Please select a reason": "請選擇原因",
"Port": "連接埠",
"Positive attitude": "積極的態度",
@@ -688,7 +688,7 @@
"Prompt updated successfully": "提示詞更新成功",
"Prompts": "提示詞",
"Prompts Access": "提示詞存取",
- "Proxy URL": "",
+ "Proxy URL": "代理網址",
"Pull \"{{searchValue}}\" from Ollama.com": "從 Ollama.com 下載「{{searchValue}}」",
"Pull a model from Ollama.com": "從 Ollama.com 下載模型",
"Query Generation Prompt": "查詢生成提示詞",
@@ -722,7 +722,7 @@
"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 Query Generation": "",
+ "Retrieval Query Generation": "檢索查詢生成",
"Rich Text Input for Chat": "使用富文本輸入對話",
"RK": "RK",
"Role": "角色",
@@ -844,7 +844,7 @@
"System": "系統",
"System Instructions": "系統指令",
"System Prompt": "系統提示詞",
- "Tags Generation": "",
+ "Tags Generation": "標籤生成",
"Tags Generation Prompt": "標籤生成提示詞",
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "使用無尾採樣來減少較不可能的 token 對輸出的影響。較高的值(例如 2.0)會減少更多影響,而值為 1.0 則停用此設定。(預設:1)",
"Tap to interrupt": "點選以中斷",
@@ -987,7 +987,7 @@
"Web Loader Settings": "網頁載入器設定",
"Web Search": "網頁搜尋",
"Web Search Engine": "網頁搜尋引擎",
- "Web Search Query Generation": "",
+ "Web Search Query Generation": "網頁搜尋查詢生成",
"Webhook URL": "Webhook URL",
"WebUI Settings": "WebUI 設定",
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI 將向 \"{{url}}/api/chat\" 發送請求",
diff --git a/static/favicon/apple-touch-icon.png b/static/favicon/apple-touch-icon.png
new file mode 100644
index 000000000..77ae5bd6c
Binary files /dev/null and b/static/favicon/apple-touch-icon.png differ
diff --git a/static/favicon/favicon-96x96.png b/static/favicon/favicon-96x96.png
new file mode 100644
index 000000000..197a07131
Binary files /dev/null and b/static/favicon/favicon-96x96.png differ
diff --git a/static/favicon/favicon.ico b/static/favicon/favicon.ico
new file mode 100644
index 000000000..3d8002cd4
Binary files /dev/null and b/static/favicon/favicon.ico differ
diff --git a/static/favicon/favicon.svg b/static/favicon/favicon.svg
new file mode 100644
index 000000000..af01b2228
--- /dev/null
+++ b/static/favicon/favicon.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/static/favicon/site.webmanifest b/static/favicon/site.webmanifest
new file mode 100644
index 000000000..0e59bbb28
--- /dev/null
+++ b/static/favicon/site.webmanifest
@@ -0,0 +1,21 @@
+{
+ "name": "Open WebUI",
+ "short_name": "WebUI",
+ "icons": [
+ {
+ "src": "/favicon/web-app-manifest-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
+ },
+ {
+ "src": "/favicon/web-app-manifest-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
\ No newline at end of file
diff --git a/static/favicon/web-app-manifest-192x192.png b/static/favicon/web-app-manifest-192x192.png
new file mode 100644
index 000000000..3fd0833f4
Binary files /dev/null and b/static/favicon/web-app-manifest-192x192.png differ
diff --git a/static/favicon/web-app-manifest-512x512.png b/static/favicon/web-app-manifest-512x512.png
new file mode 100644
index 000000000..9c4c24d12
Binary files /dev/null and b/static/favicon/web-app-manifest-512x512.png differ
diff --git a/tailwind.config.js b/tailwind.config.js
index 69b84725e..937c0ab56 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,3 +1,5 @@
+import typography from '@tailwindcss/typography';
+
/** @type {import('tailwindcss').Config} */
export default {
darkMode: 'class',
@@ -36,5 +38,5 @@ export default {
}
}
},
- plugins: [require('@tailwindcss/typography')]
+ plugins: [typography]
};