diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index b5dd72192..86d27f4dc 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -84,6 +84,8 @@ jobs: outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }} cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max + build-args: | + BUILD_HASH=${{ github.sha }} - name: Export digest run: | @@ -170,7 +172,9 @@ jobs: outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }} cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max - build-args: USE_CUDA=true + build-args: | + BUILD_HASH=${{ github.sha }} + USE_CUDA=true - name: Export digest run: | @@ -257,7 +261,9 @@ jobs: outputs: type=image,name=${{ env.FULL_IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true cache-from: type=registry,ref=${{ steps.cache-meta.outputs.tags }} cache-to: type=registry,ref=${{ steps.cache-meta.outputs.tags }},mode=max - build-args: USE_OLLAMA=true + build-args: | + BUILD_HASH=${{ github.sha }} + USE_OLLAMA=true - name: Export digest run: | diff --git a/Dockerfile b/Dockerfile index 52987b5a6..be5c1da41 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,12 +11,14 @@ ARG USE_CUDA_VER=cu121 # IMPORTANT: If you change the embedding model (sentence-transformers/all-MiniLM-L6-v2) and vice versa, you aren't able to use RAG Chat with your previous documents loaded in the WebUI! You need to re-embed them. ARG USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 ARG USE_RERANKING_MODEL="" +ARG BUILD_HASH=dev-build # Override at your own risk - non-root configurations are untested ARG UID=0 ARG GID=0 ######## WebUI frontend ######## FROM --platform=$BUILDPLATFORM node:21-alpine3.19 as build +ARG BUILD_HASH WORKDIR /app @@ -24,6 +26,7 @@ COPY package.json package-lock.json ./ RUN npm ci COPY . . +ENV APP_BUILD_HASH=${BUILD_HASH} RUN npm run build ######## WebUI backend ######## @@ -35,6 +38,7 @@ ARG USE_OLLAMA ARG USE_CUDA_VER ARG USE_EMBEDDING_MODEL ARG USE_RERANKING_MODEL +ARG BUILD_HASH ARG UID ARG GID @@ -150,4 +154,6 @@ HEALTHCHECK CMD curl --silent --fail http://localhost:8080/health | jq -e '.stat USER $UID:$GID +ENV WEBUI_BUILD_VERSION=${BUILD_HASH} + CMD [ "bash", "start.sh"] diff --git a/backend/apps/openai/main.py b/backend/apps/openai/main.py index 74ac18a12..e19e0bbcf 100644 --- a/backend/apps/openai/main.py +++ b/backend/apps/openai/main.py @@ -198,7 +198,7 @@ async def fetch_url(url, key): def merge_models_lists(model_lists): - log.info(f"merge_models_lists {model_lists}") + log.debug(f"merge_models_lists {model_lists}") merged_list = [] for idx, models in enumerate(model_lists): @@ -237,7 +237,7 @@ async def get_all_models(): ] responses = await asyncio.gather(*tasks) - log.info(f"get_all_models:responses() {responses}") + log.debug(f"get_all_models:responses() {responses}") models = { "data": merge_models_lists( @@ -254,7 +254,7 @@ async def get_all_models(): ) } - log.info(f"models: {models}") + log.debug(f"models: {models}") app.state.MODELS = {model["id"]: model for model in models["data"]} return models diff --git a/backend/apps/webui/internal/migrations/011_add_user_settings.py b/backend/apps/webui/internal/migrations/011_add_user_settings.py new file mode 100644 index 000000000..a1620dcad --- /dev/null +++ b/backend/apps/webui/internal/migrations/011_add_user_settings.py @@ -0,0 +1,48 @@ +"""Peewee migrations -- 002_add_local_sharing.py. + +Some examples (model - class or model name):: + + > Model = migrator.orm['table_name'] # Return model in current state by name + > Model = migrator.ModelClass # Return model in current state by name + + > migrator.sql(sql) # Run custom SQL + > migrator.run(func, *args, **kwargs) # Run python function with the given args + > migrator.create_model(Model) # Create a model (could be used as decorator) + > migrator.remove_model(model, cascade=True) # Remove a model + > migrator.add_fields(model, **fields) # Add fields to a model + > migrator.change_fields(model, **fields) # Change fields + > migrator.remove_fields(model, *field_names, cascade=True) + > migrator.rename_field(model, old_field_name, new_field_name) + > migrator.rename_table(model, new_table_name) + > migrator.add_index(model, *col_names, unique=False) + > migrator.add_not_null(model, *field_names) + > migrator.add_default(model, field_name, default) + > migrator.add_constraint(model, name, sql) + > migrator.drop_index(model, *col_names) + > migrator.drop_not_null(model, *field_names) + > migrator.drop_constraints(model, *constraints) + +""" + +from contextlib import suppress + +import peewee as pw +from peewee_migrate import Migrator + + +with suppress(ImportError): + import playhouse.postgres_ext as pw_pext + + +def migrate(migrator: Migrator, database: pw.Database, *, fake=False): + """Write your migrations here.""" + + # Adding fields settings to the 'user' table + migrator.add_fields("user", settings=pw.TextField(null=True)) + + +def rollback(migrator: Migrator, database: pw.Database, *, fake=False): + """Write your rollback migrations here.""" + + # Remove the settings field + migrator.remove_fields("user", "settings") diff --git a/backend/apps/webui/main.py b/backend/apps/webui/main.py index d736cef9a..b823859a6 100644 --- a/backend/apps/webui/main.py +++ b/backend/apps/webui/main.py @@ -13,7 +13,7 @@ from apps.webui.routers import ( utils, ) from config import ( - WEBUI_VERSION, + WEBUI_BUILD_HASH, WEBUI_AUTH, DEFAULT_MODELS, DEFAULT_PROMPT_SUGGESTIONS, @@ -23,7 +23,9 @@ from config import ( WEBHOOK_URL, WEBUI_AUTH_TRUSTED_EMAIL_HEADER, JWT_EXPIRES_IN, + WEBUI_BANNERS, AppConfig, + ENABLE_COMMUNITY_SHARING, ) app = FastAPI() @@ -40,7 +42,9 @@ app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE app.state.config.USER_PERMISSIONS = USER_PERMISSIONS app.state.config.WEBHOOK_URL = WEBHOOK_URL +app.state.config.BANNERS = WEBUI_BANNERS +app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING app.state.MODELS = {} app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER diff --git a/backend/apps/webui/models/users.py b/backend/apps/webui/models/users.py index 8f600c6d5..48811e8af 100644 --- a/backend/apps/webui/models/users.py +++ b/backend/apps/webui/models/users.py @@ -1,11 +1,11 @@ -from pydantic import BaseModel +from pydantic import BaseModel, ConfigDict from peewee import * from playhouse.shortcuts import model_to_dict from typing import List, Union, Optional import time from utils.misc import get_gravatar_url -from apps.webui.internal.db import DB +from apps.webui.internal.db import DB, JSONField from apps.webui.models.chats import Chats #################### @@ -25,11 +25,18 @@ class User(Model): created_at = BigIntegerField() api_key = CharField(null=True, unique=True) + settings = JSONField(null=True) class Meta: database = DB +class UserSettings(BaseModel): + ui: Optional[dict] = {} + model_config = ConfigDict(extra="allow") + pass + + class UserModel(BaseModel): id: str name: str @@ -42,6 +49,7 @@ class UserModel(BaseModel): created_at: int # timestamp in epoch api_key: Optional[str] = None + settings: Optional[UserSettings] = None #################### diff --git a/backend/apps/webui/routers/configs.py b/backend/apps/webui/routers/configs.py index 00feafb18..c127e721b 100644 --- a/backend/apps/webui/routers/configs.py +++ b/backend/apps/webui/routers/configs.py @@ -8,6 +8,8 @@ from pydantic import BaseModel import time import uuid +from config import BannerModel + from apps.webui.models.users import Users from utils.utils import ( @@ -57,3 +59,31 @@ async def set_global_default_suggestions( data = form_data.model_dump() request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS = data["suggestions"] return request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS + + +############################ +# SetBanners +############################ + + +class SetBannersForm(BaseModel): + banners: List[BannerModel] + + +@router.post("/banners", response_model=List[BannerModel]) +async def set_banners( + request: Request, + form_data: SetBannersForm, + user=Depends(get_admin_user), +): + data = form_data.model_dump() + request.app.state.config.BANNERS = data["banners"] + return request.app.state.config.BANNERS + + +@router.get("/banners", response_model=List[BannerModel]) +async def get_banners( + request: Request, + user=Depends(get_current_user), +): + return request.app.state.config.BANNERS diff --git a/backend/apps/webui/routers/users.py b/backend/apps/webui/routers/users.py index bb9c557db..cd17e3a7c 100644 --- a/backend/apps/webui/routers/users.py +++ b/backend/apps/webui/routers/users.py @@ -9,7 +9,13 @@ import time import uuid import logging -from apps.webui.models.users import UserModel, UserUpdateForm, UserRoleUpdateForm, Users +from apps.webui.models.users import ( + UserModel, + UserUpdateForm, + UserRoleUpdateForm, + UserSettings, + Users, +) from apps.webui.models.auths import Auths from apps.webui.models.chats import Chats @@ -68,6 +74,42 @@ async def update_user_role(form_data: UserRoleUpdateForm, user=Depends(get_admin ) +############################ +# GetUserSettingsBySessionUser +############################ + + +@router.get("/user/settings", response_model=Optional[UserSettings]) +async def get_user_settings_by_session_user(user=Depends(get_verified_user)): + user = Users.get_user_by_id(user.id) + if user: + return user.settings + else: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=ERROR_MESSAGES.USER_NOT_FOUND, + ) + + +############################ +# UpdateUserSettingsBySessionUser +############################ + + +@router.post("/user/settings/update", response_model=UserSettings) +async def update_user_settings_by_session_user( + form_data: UserSettings, user=Depends(get_verified_user) +): + user = Users.update_user_by_id(user.id, {"settings": form_data.model_dump()}) + if user: + return user.settings + else: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=ERROR_MESSAGES.USER_NOT_FOUND, + ) + + ############################ # GetUserById ############################ @@ -81,6 +123,8 @@ class UserResponse(BaseModel): @router.get("/{user_id}", response_model=UserResponse) async def get_user_by_id(user_id: str, user=Depends(get_verified_user)): + # Check if user_id is a shared chat + # If it is, get the user_id from the chat if user_id.startswith("shared-"): chat_id = user_id.replace("shared-", "") chat = Chats.get_chat_by_id(chat_id) diff --git a/backend/config.py b/backend/config.py index 6d603bab9..cb720031e 100644 --- a/backend/config.py +++ b/backend/config.py @@ -8,6 +8,8 @@ from chromadb import Settings from base64 import b64encode from bs4 import BeautifulSoup from typing import TypeVar, Generic, Union +from pydantic import BaseModel +from typing import Optional from pathlib import Path import json @@ -166,10 +168,10 @@ CHANGELOG = changelog_json #################################### -# WEBUI_VERSION +# WEBUI_BUILD_HASH #################################### -WEBUI_VERSION = os.environ.get("WEBUI_VERSION", "v1.0.0-alpha.100") +WEBUI_BUILD_HASH = os.environ.get("WEBUI_BUILD_HASH", "dev-build") #################################### # DATA/FRONTEND BUILD DIR @@ -566,6 +568,27 @@ WEBHOOK_URL = PersistentConfig( ENABLE_ADMIN_EXPORT = os.environ.get("ENABLE_ADMIN_EXPORT", "True").lower() == "true" +ENABLE_COMMUNITY_SHARING = PersistentConfig( + "ENABLE_COMMUNITY_SHARING", + "ui.enable_community_sharing", + os.environ.get("ENABLE_COMMUNITY_SHARING", "True").lower() == "true", +) + +class BannerModel(BaseModel): + id: str + type: str + title: Optional[str] = None + content: str + dismissible: bool + timestamp: int + + +WEBUI_BANNERS = PersistentConfig( + "WEBUI_BANNERS", + "ui.banners", + [BannerModel(**banner) for banner in json.loads("[]")], +) + #################################### # WEBUI_SECRET_KEY #################################### diff --git a/backend/main.py b/backend/main.py index 0362cd579..e4e79e26b 100644 --- a/backend/main.py +++ b/backend/main.py @@ -56,6 +56,7 @@ from config import ( ENABLE_ADMIN_EXPORT, RAG_WEB_SEARCH_ENABLED, AppConfig, + WEBUI_BUILD_HASH, ) from constants import ERROR_MESSAGES @@ -85,7 +86,8 @@ print( |_| -v{VERSION} - building the best open-source AI user interface. +v{VERSION} - building the best open-source AI user interface. +{f"Commit: {WEBUI_BUILD_HASH}" if WEBUI_BUILD_HASH != "dev-build" else ""} https://github.com/open-webui/open-webui """ ) @@ -357,15 +359,18 @@ async def get_app_config(): "status": True, "name": WEBUI_NAME, "version": VERSION, - "auth": WEBUI_AUTH, - "auth_trusted_header": bool(webui_app.state.AUTH_TRUSTED_EMAIL_HEADER), - "enable_signup": webui_app.state.config.ENABLE_SIGNUP, - "enable_image_generation": images_app.state.config.ENABLED, - "enable_admin_export": ENABLE_ADMIN_EXPORT, "default_locale": default_locale, "default_models": webui_app.state.config.DEFAULT_MODELS, "default_prompt_suggestions": webui_app.state.config.DEFAULT_PROMPT_SUGGESTIONS, - "enable_websearch": RAG_WEB_SEARCH_ENABLED, + "features": { + "auth": WEBUI_AUTH, + "auth_trusted_header": bool(webui_app.state.AUTH_TRUSTED_EMAIL_HEADER), + "enable_signup": webui_app.state.config.ENABLE_SIGNUP, + "enable_websearch": RAG_WEB_SEARCH_ENABLED, + "enable_image_generation": images_app.state.config.ENABLED, + "enable_community_sharing": webui_app.state.config.ENABLE_COMMUNITY_SHARING, + "enable_admin_export": ENABLE_ADMIN_EXPORT, + }, } @@ -416,6 +421,19 @@ async def update_webhook_url(form_data: UrlForm, user=Depends(get_admin_user)): } +@app.get("/api/community_sharing", response_model=bool) +async def get_community_sharing_status(request: Request, user=Depends(get_admin_user)): + return webui_app.state.config.ENABLE_COMMUNITY_SHARING + + +@app.get("/api/community_sharing/toggle", response_model=bool) +async def toggle_community_sharing(request: Request, user=Depends(get_admin_user)): + webui_app.state.config.ENABLE_COMMUNITY_SHARING = ( + not webui_app.state.config.ENABLE_COMMUNITY_SHARING + ) + return webui_app.state.config.ENABLE_COMMUNITY_SHARING + + @app.get("/api/version") async def get_app_config(): return { diff --git a/hatch_build.py b/hatch_build.py index 2fa9e4805..8ddaf0749 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -1,4 +1,5 @@ # noqa: INP001 +import os import shutil import subprocess from sys import stderr @@ -18,4 +19,5 @@ class CustomBuildHook(BuildHookInterface): stderr.write("### npm install\n") subprocess.run([npm, "install"], check=True) # noqa: S603 stderr.write("\n### npm run build\n") + os.environ["APP_BUILD_HASH"] = version subprocess.run([npm, "run", "build"], check=True) # noqa: S603 diff --git a/package-lock.json b/package-lock.json index 5d5a1c6e3..5b1461939 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "open-webui", - "version": "0.2.0.dev1", + "version": "0.2.0.dev2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "open-webui", - "version": "0.2.0.dev1", + "version": "0.2.0.dev2", "dependencies": { "@pyscript/core": "^0.4.32", "@sveltejs/adapter-node": "^1.3.1", diff --git a/package.json b/package.json index 49a417da0..8522cffe5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-webui", - "version": "0.2.0.dev1", + "version": "0.2.0.dev2", "private": true, "scripts": { "dev": "npm run pyodide:fetch && vite dev --host", diff --git a/src/lib/apis/configs/index.ts b/src/lib/apis/configs/index.ts index 30d562ba4..4f53c53c8 100644 --- a/src/lib/apis/configs/index.ts +++ b/src/lib/apis/configs/index.ts @@ -1,4 +1,5 @@ import { WEBUI_API_BASE_URL } from '$lib/constants'; +import type { Banner } from '$lib/types'; export const setDefaultModels = async (token: string, models: string) => { let error = null; @@ -59,3 +60,60 @@ export const setDefaultPromptSuggestions = async (token: string, promptSuggestio return res; }; + +export const getBanners = async (token: string): Promise => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/configs/banners`, { + 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 setBanners = async (token: string, banners: Banner[]) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/configs/banners`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + }, + body: JSON.stringify({ + banners: banners + }) + }) + .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; +}; diff --git a/src/lib/apis/index.ts b/src/lib/apis/index.ts index 5d94e7678..dc51abd52 100644 --- a/src/lib/apis/index.ts +++ b/src/lib/apis/index.ts @@ -1,4 +1,4 @@ -import { WEBUI_BASE_URL } from '$lib/constants'; +import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants'; export const getModels = async (token: string = '') => { let error = null; @@ -246,6 +246,60 @@ export const updateWebhookUrl = async (token: string, url: string) => { return res.url; }; +export const getCommunitySharingEnabledStatus = async (token: string) => { + let error = null; + + const res = await fetch(`${WEBUI_BASE_URL}/api/community_sharing`, { + 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; + return null; + }); + + if (error) { + throw error; + } + + return res; +}; + +export const toggleCommunitySharingEnabledStatus = async (token: string) => { + let error = null; + + const res = await fetch(`${WEBUI_BASE_URL}/api/community_sharing/toggle`, { + 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 getModelConfig = async (token: string): Promise => { let error = null; diff --git a/src/lib/apis/users/index.ts b/src/lib/apis/users/index.ts index 2d2bd386f..4c97b0036 100644 --- a/src/lib/apis/users/index.ts +++ b/src/lib/apis/users/index.ts @@ -115,6 +115,62 @@ export const getUsers = async (token: string) => { return res ? res : []; }; +export const getUserSettings = async (token: string) => { + let error = null; + const res = await fetch(`${WEBUI_API_BASE_URL}/users/user/settings`, { + 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 updateUserSettings = async (token: string, settings: object) => { + let error = null; + + const res = await fetch(`${WEBUI_API_BASE_URL}/users/user/settings/update`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + }, + body: JSON.stringify({ + ...settings + }) + }) + .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 getUserById = async (token: string, userId: string) => { let error = null; diff --git a/src/lib/components/admin/Settings/Banners.svelte b/src/lib/components/admin/Settings/Banners.svelte new file mode 100644 index 000000000..e69a8ebb1 --- /dev/null +++ b/src/lib/components/admin/Settings/Banners.svelte @@ -0,0 +1,137 @@ + + +
{ + updateBanners(); + saveHandler(); + }} +> +
+
+
+
+ {$i18n.t('Banners')} +
+ + +
+
+ {#each banners as banner, bannerIdx} +
+
+ + + + +
+ + + +
+
+ + +
+ {/each} +
+
+
+
+ +
+
diff --git a/src/lib/components/admin/Settings/Database.svelte b/src/lib/components/admin/Settings/Database.svelte index 711c1254f..3ae01a668 100644 --- a/src/lib/components/admin/Settings/Database.svelte +++ b/src/lib/components/admin/Settings/Database.svelte @@ -34,7 +34,7 @@
{$i18n.t('Database')}
- {#if $config?.enable_admin_export ?? true} + {#if $config?.features.enable_admin_export ?? true}
diff --git a/src/lib/components/admin/Settings/General.svelte b/src/lib/components/admin/Settings/General.svelte index 5674916d6..572ff82ad 100644 --- a/src/lib/components/admin/Settings/General.svelte +++ b/src/lib/components/admin/Settings/General.svelte @@ -1,5 +1,10 @@ @@ -114,6 +137,47 @@
+
+
{$i18n.t('Enable Community Sharing')}
+ + +
+
diff --git a/src/lib/components/admin/Settings/Users.svelte b/src/lib/components/admin/Settings/Users.svelte index f2a8bb19a..44e38f40c 100644 --- a/src/lib/components/admin/Settings/Users.svelte +++ b/src/lib/components/admin/Settings/Users.svelte @@ -1,15 +1,19 @@ @@ -34,10 +39,13 @@ class="flex flex-col h-full justify-between space-y-3 text-sm" on:submit|preventDefault={async () => { // console.log('submit'); - await updateUserPermissions(localStorage.token, permissions); + await setDefaultModels(localStorage.token, defaultModelId); + await updateUserPermissions(localStorage.token, permissions); await updateModelFilterConfig(localStorage.token, whitelistEnabled, whitelistModels); saveHandler(); + + await config.set(await getBackendConfig()); }} >
@@ -88,26 +96,40 @@
-
+
{$i18n.t('Manage Models')}
+
+
+
+
{$i18n.t('Default Model')}
+
+
-
-
+
+ +
+
+ +
+
{$i18n.t('Model Whitelisting')}
- +
diff --git a/src/lib/components/admin/SettingsModal.svelte b/src/lib/components/admin/SettingsModal.svelte index 923ab576a..38a2602b6 100644 --- a/src/lib/components/admin/SettingsModal.svelte +++ b/src/lib/components/admin/SettingsModal.svelte @@ -6,6 +6,9 @@ import General from './Settings/General.svelte'; import Users from './Settings/Users.svelte'; + import Banners from '$lib/components/admin/Settings/Banners.svelte'; + import { toast } from 'svelte-sonner'; + const i18n = getContext('i18n'); export let show = false; @@ -117,24 +120,63 @@
{$i18n.t('Database')}
+ +
{#if selectedTab === 'general'} { show = false; + toast.success($i18n.t('Settings saved successfully!')); }} /> {:else if selectedTab === 'users'} { show = false; + toast.success($i18n.t('Settings saved successfully!')); }} /> {:else if selectedTab === 'db'} { show = false; + toast.success($i18n.t('Settings saved successfully!')); + }} + /> + {:else if selectedTab === 'banners'} + { + show = false; + toast.success($i18n.t('Settings saved successfully!')); }} /> {/if} diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index e0b563d69..fa5280c24 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -15,7 +15,8 @@ settings, showSidebar, tags as _tags, - WEBUI_NAME + WEBUI_NAME, + banners } from '$lib/stores'; import { convertMessagesToHistory, copyToClipboard, splitStream } from '$lib/utils'; @@ -45,7 +46,10 @@ import type { Writable } from 'svelte/store'; import type { i18n as i18nType } from 'i18next'; import { runWebSearch } from '$lib/apis/rag'; - + import Banner from '../common/Banner.svelte'; + import { getUserSettings } from '$lib/apis/users'; + + const i18n: Writable = getContext('i18n'); export let chatIdProp = ''; @@ -141,6 +145,7 @@ } else if ($settings?.models) { selectedModels = $settings?.models; } else if ($config?.default_models) { + console.log($config?.default_models.split(',') ?? ''); selectedModels = $config?.default_models.split(','); } else { selectedModels = ['']; @@ -159,10 +164,13 @@ $models.map((m) => m.id).includes(modelId) ? modelId : '' ); - let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); - settings.set({ - ..._settings - }); + const userSettings = await getUserSettings(localStorage.token); + + if (userSettings) { + settings.set(userSettings.ui); + } else { + settings.set(JSON.parse(localStorage.getItem('settings') ?? '{}')); + } const chatInput = document.getElementById('chat-textarea'); setTimeout(() => chatInput?.focus(), 0); @@ -192,12 +200,20 @@ : convertMessagesToHistory(chatContent.messages); title = chatContent.title; - let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); + const userSettings = await getUserSettings(localStorage.token); + + if (userSettings) { + await settings.set(userSettings.ui); + } else { + await settings.set(JSON.parse(localStorage.getItem('settings') ?? '{}')); + } + await settings.set({ - ..._settings, - system: chatContent.system ?? _settings.system, - params: chatContent.options ?? _settings.params + ...$settings, + system: chatContent.system ?? $settings.system, + params: chatContent.options ?? $settings.params }); + autoScroll = true; await tick(); @@ -1073,6 +1089,34 @@ {chat} {initNewChat} /> + + {#if $banners.length > 0 && !$chatId && selectedModels.length <= 1} +
+
+ {#each $banners.filter( (b) => (b.dismissible ? !JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]').includes(b.id) : true) ) as banner} + { + const bannerId = e.detail; + + localStorage.setItem( + 'dismissedBannerIds', + JSON.stringify( + [ + bannerId, + ...JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]') + ].filter((id) => $banners.find((b) => b.id === id)) + ) + ); + }} + /> + {/each} +
+
+ {/if} +
+
+
+ {$i18n.t('WebUI will make requests to')} + '{url}/models' +
+ {/each} +
+ {/if} +
+
+ +
+ +
-
{$i18n.t('OpenAI API')}
+
{$i18n.t('Ollama API')}
{ - updateOpenAIConfig(localStorage.token, ENABLE_OPENAI_API); + updateOllamaConfig(localStorage.token, ENABLE_OLLAMA_API); }} />
- - {#if ENABLE_OPENAI_API} -
- {#each OPENAI_API_BASE_URLS as url, idx} -
-
+ {#if ENABLE_OLLAMA_API} +
+
+ {#each OLLAMA_BASE_URLS as url, idx} +
-
-
- + {#if idx === 0} + + {:else} + + {/if} +
+
+ {/each} +
+ +
+
-
- {#if idx === 0} - - {:else} - - {/if} -
-
-
- {$i18n.t('WebUI will make requests to')} - '{url}/models' -
- {/each} + + +
+
+ +
+ {$i18n.t('Trouble accessing Ollama?')} + + {$i18n.t('Click here for help.')} +
{/if}
-
- -
- -
-
-
{$i18n.t('Ollama API')}
- -
- { - updateOllamaConfig(localStorage.token, ENABLE_OLLAMA_API); - }} - /> + {:else} +
+
+
- {#if ENABLE_OLLAMA_API} -
-
- {#each OLLAMA_BASE_URLS as url, idx} -
- - -
- {#if idx === 0} - - {:else} - - {/if} -
-
- {/each} -
- -
- -
-
- -
- {$i18n.t('Trouble accessing Ollama?')} - - {$i18n.t('Click here for help.')} - -
- {/if} -
+ {/if}
diff --git a/src/lib/components/chat/Settings/General.svelte b/src/lib/components/chat/Settings/General.svelte index c20c9465b..6cb86fdca 100644 --- a/src/lib/components/chat/Settings/General.svelte +++ b/src/lib/components/chat/Settings/General.svelte @@ -4,7 +4,7 @@ import { getLanguages } from '$lib/i18n'; const dispatch = createEventDispatcher(); - import { models, user, theme } from '$lib/stores'; + import { models, settings, theme } from '$lib/stores'; const i18n = getContext('i18n'); @@ -71,23 +71,22 @@ onMount(async () => { selectedTheme = localStorage.theme ?? 'system'; - let settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); languages = await getLanguages(); - notificationEnabled = settings.notificationEnabled ?? false; - system = settings.system ?? ''; + notificationEnabled = $settings.notificationEnabled ?? false; + system = $settings.system ?? ''; - requestFormat = settings.requestFormat ?? ''; - keepAlive = settings.keepAlive ?? null; + requestFormat = $settings.requestFormat ?? ''; + keepAlive = $settings.keepAlive ?? null; - params.seed = settings.seed ?? 0; - params.temperature = settings.temperature ?? ''; - params.frequency_penalty = settings.frequency_penalty ?? ''; - params.top_k = settings.top_k ?? ''; - params.top_p = settings.top_p ?? ''; - params.num_ctx = settings.num_ctx ?? ''; - params = { ...params, ...settings.params }; - params.stop = settings?.params?.stop ? (settings?.params?.stop ?? []).join(',') : null; + params.seed = $settings.seed ?? 0; + params.temperature = $settings.temperature ?? ''; + params.frequency_penalty = $settings.frequency_penalty ?? ''; + params.top_k = $settings.top_k ?? ''; + params.top_p = $settings.top_p ?? ''; + params.num_ctx = $settings.num_ctx ?? ''; + params = { ...params, ...$settings.params }; + params.stop = $settings?.params?.stop ? ($settings?.params?.stop ?? []).join(',') : null; }); const applyTheme = (_theme: string) => { diff --git a/src/lib/components/chat/Settings/Interface.svelte b/src/lib/components/chat/Settings/Interface.svelte index 8e794da55..7d6b5762e 100644 --- a/src/lib/components/chat/Settings/Interface.svelte +++ b/src/lib/components/chat/Settings/Interface.svelte @@ -105,23 +105,18 @@ promptSuggestions = $config?.default_prompt_suggestions; } - let settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); - - titleAutoGenerate = settings?.title?.auto ?? true; - titleAutoGenerateModel = settings?.title?.model ?? ''; - titleAutoGenerateModelExternal = settings?.title?.modelExternal ?? ''; + titleAutoGenerate = $settings?.title?.auto ?? true; + titleAutoGenerateModel = $settings?.title?.model ?? ''; + titleAutoGenerateModelExternal = $settings?.title?.modelExternal ?? ''; titleGenerationPrompt = - settings?.title?.prompt ?? - $i18n.t( - "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':" - ) + ' {{prompt}}'; - - responseAutoCopy = settings.responseAutoCopy ?? false; - showUsername = settings.showUsername ?? false; - chatBubble = settings.chatBubble ?? true; - fullScreenMode = settings.fullScreenMode ?? false; - splitLargeChunks = settings.splitLargeChunks ?? false; - chatDirection = settings.chatDirection ?? 'LTR'; + $settings?.title?.prompt ?? + `Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title': {{prompt}}`; + responseAutoCopy = $settings.responseAutoCopy ?? false; + showUsername = $settings.showUsername ?? false; + chatBubble = $settings.chatBubble ?? true; + fullScreenMode = $settings.fullScreenMode ?? false; + splitLargeChunks = $settings.splitLargeChunks ?? false; + chatDirection = $settings.chatDirection ?? 'LTR'; }); diff --git a/src/lib/components/chat/Settings/Personalization.svelte b/src/lib/components/chat/Settings/Personalization.svelte index cbe03b10d..e1f0a1e27 100644 --- a/src/lib/components/chat/Settings/Personalization.svelte +++ b/src/lib/components/chat/Settings/Personalization.svelte @@ -19,8 +19,7 @@ let enableMemory = false; onMount(async () => { - let settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); - enableMemory = settings?.memory ?? false; + enableMemory = $settings?.memory ?? false; }); diff --git a/src/lib/components/chat/SettingsModal.svelte b/src/lib/components/chat/SettingsModal.svelte index fd7cea574..6bfebfecb 100644 --- a/src/lib/components/chat/SettingsModal.svelte +++ b/src/lib/components/chat/SettingsModal.svelte @@ -17,6 +17,7 @@ import Images from './Settings/Images.svelte'; import User from '../icons/User.svelte'; import Personalization from './Settings/Personalization.svelte'; + import { updateUserSettings } from '$lib/apis/users'; const i18n = getContext('i18n'); @@ -26,7 +27,7 @@ console.log(updated); await settings.set({ ...$settings, ...updated }); await models.set(await getModels()); - localStorage.setItem('settings', JSON.stringify($settings)); + await updateUserSettings(localStorage.token, { ui: $settings }); }; const getModels = async () => { diff --git a/src/lib/components/chat/ShareChatModal.svelte b/src/lib/components/chat/ShareChatModal.svelte index 2c0042fb5..e6ccc1323 100644 --- a/src/lib/components/chat/ShareChatModal.svelte +++ b/src/lib/components/chat/ShareChatModal.svelte @@ -1,6 +1,6 @@ + +{#if !dismissed} + {#if mounted} +
+
+
+
+ {banner.type} +
+ + {#if banner.url} +
+ Learn More + +
+ + + + +
+
+ {/if} +
+ +
+ {banner.content} +
+
+ + {#if banner.url} + + {/if} +
+ {#if banner.dismissible} + + {/if} +
+
+ {/if} +{/if} diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index 09b51f293..c746e343a 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -33,6 +33,7 @@ import ArchiveBox from '../icons/ArchiveBox.svelte'; import ArchivedChatsModal from './Sidebar/ArchivedChatsModal.svelte'; import UserMenu from './Sidebar/UserMenu.svelte'; + import { updateUserSettings } from '$lib/apis/users'; const BREAKPOINT = 768; @@ -183,7 +184,7 @@ const saveSettings = async (updated) => { await settings.set({ ...$settings, ...updated }); - localStorage.setItem('settings', JSON.stringify($settings)); + await updateUserSettings(localStorage.token, { ui: $settings }); location.href = '/'; }; diff --git a/src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte b/src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte index 2044da2b6..da5fc08a0 100644 --- a/src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte +++ b/src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte @@ -101,7 +101,7 @@
{#if chats.length > 0} -
+
diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 9f6070bee..5ae74448f 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -13,6 +13,7 @@ export const IMAGES_API_BASE_URL = `${WEBUI_BASE_URL}/images/api/v1`; export const RAG_API_BASE_URL = `${WEBUI_BASE_URL}/rag/api/v1`; export const WEBUI_VERSION = APP_VERSION; +export const WEBUI_BUILD_HASH = APP_BUILD_HASH; export const REQUIRED_OLLAMA_VERSION = '0.1.16'; export const SUPPORTED_FILE_TYPE = [ diff --git a/src/lib/i18n/locales/ar-BH/translation.json b/src/lib/i18n/locales/ar-BH/translation.json index 47ed7a80a..6b4163b07 100644 --- a/src/lib/i18n/locales/ar-BH/translation.json +++ b/src/lib/i18n/locales/ar-BH/translation.json @@ -63,6 +63,7 @@ "available!": "متاح", "Back": "خلف", "Bad Response": "استجابة خطاء", + "Banners": "", "Base Model (From)": "", "before": "قبل", "Being lazy": "كون كسول", @@ -188,6 +189,7 @@ "Enter Your Full Name": "أدخل الاسم كامل", "Enter Your Password": "ادخل كلمة المرور", "Enter Your Role": "أدخل الصلاحيات", + "Error": "", "Experimental": "تجريبي", "Export All Chats (All Users)": "تصدير جميع الدردشات (جميع المستخدمين)", "Export Chats": "تصدير جميع الدردشات", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "مطالبات الاستيراد", "Include `--api` flag when running stable-diffusion-webui": "قم بتضمين علامة `-api` عند تشغيل Stable-diffusion-webui", + "Info": "", "Input commands": "إدخال الأوامر", "Interface": "واجهه المستخدم", "Invalid Tag": "تاق غير صالحة", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "هل تواجه مشكلة في الوصول", "TTS Settings": "TTS اعدادات", + "Type": "", "Type Hugging Face Resolve (Download) URL": "اكتب عنوان URL لحل مشكلة الوجه (تنزيل).", "Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}خطاء أوه! حدثت مشكلة في الاتصال بـ ", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ", @@ -470,6 +474,7 @@ "variable": "المتغير", "variable to have them replaced with clipboard content.": "متغير لاستبدالها بمحتوى الحافظة.", "Version": "إصدار", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.", "Web": "Web", "Web Loader Settings": "Web تحميل اعدادات", diff --git a/src/lib/i18n/locales/bg-BG/translation.json b/src/lib/i18n/locales/bg-BG/translation.json index 0093079ee..d546d9b51 100644 --- a/src/lib/i18n/locales/bg-BG/translation.json +++ b/src/lib/i18n/locales/bg-BG/translation.json @@ -63,6 +63,7 @@ "available!": "наличен!", "Back": "Назад", "Bad Response": "Невалиден отговор от API", + "Banners": "", "Base Model (From)": "", "before": "преди", "Being lazy": "Да бъдеш мързелив", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Въведете вашето пълно име", "Enter Your Password": "Въведете вашата парола", "Enter Your Role": "Въведете вашата роля", + "Error": "", "Experimental": "Експериментално", "Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)", "Export Chats": "Експортване на чатове", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Импортване на промптове", "Include `--api` flag when running stable-diffusion-webui": "Включете флага `--api`, когато стартирате stable-diffusion-webui", + "Info": "", "Input commands": "Въведете команди", "Interface": "Интерфейс", "Invalid Tag": "Невалиден тег", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Проблеми с достъпът до Ollama?", "TTS Settings": "TTS Настройки", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL", "Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст", @@ -470,6 +474,7 @@ "variable": "променлива", "variable to have them replaced with clipboard content.": "променливи да се заменят съдържанието от клипборд.", "Version": "Версия", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Ако актуализирате или промените вашия модел за вграждане, трябва да повторите импортирането на всички документи.", "Web": "Уеб", "Web Loader Settings": "Настройки за зареждане на уеб", diff --git a/src/lib/i18n/locales/bn-BD/translation.json b/src/lib/i18n/locales/bn-BD/translation.json index d50c46041..6f8edbb94 100644 --- a/src/lib/i18n/locales/bn-BD/translation.json +++ b/src/lib/i18n/locales/bn-BD/translation.json @@ -63,6 +63,7 @@ "available!": "উপলব্ধ!", "Back": "পেছনে", "Bad Response": "খারাপ প্রতিক্রিয়া", + "Banners": "", "Base Model (From)": "", "before": "পূর্ববর্তী", "Being lazy": "অলস হওয়া", @@ -188,6 +189,7 @@ "Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন", "Enter Your Password": "আপনার পাসওয়ার্ড লিখুন", "Enter Your Role": "আপনার রোল লিখুন", + "Error": "", "Experimental": "পরিক্ষামূলক", "Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)", "Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "প্রম্পটগুলো ইমপোর্ট করুন", "Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui চালু করার সময় `--api` ফ্ল্যাগ সংযুক্ত করুন", + "Info": "", "Input commands": "ইনপুট কমান্ডস", "Interface": "ইন্টারফেস", "Invalid Tag": "অবৈধ ট্যাগ", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Ollama এক্সেস করতে সমস্যা হচ্ছে?", "TTS Settings": "TTS সেটিংসমূহ", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন", "Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো", @@ -470,6 +474,7 @@ "variable": "ভেরিয়েবল", "variable to have them replaced with clipboard content.": "ক্লিপবোর্ডের কন্টেন্ট দিয়ে যেই ভেরিয়েবল রিপ্লেস করা যাবে।", "Version": "ভার্সন", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "সতর্কীকরণ: আপনি যদি আপনার এম্বেডিং মডেল আপডেট বা পরিবর্তন করেন, তাহলে আপনাকে সমস্ত নথি পুনরায় আমদানি করতে হবে।.", "Web": "ওয়েব", "Web Loader Settings": "ওয়েব লোডার সেটিংস", diff --git a/src/lib/i18n/locales/ca-ES/translation.json b/src/lib/i18n/locales/ca-ES/translation.json index a0e81950a..fcbda986d 100644 --- a/src/lib/i18n/locales/ca-ES/translation.json +++ b/src/lib/i18n/locales/ca-ES/translation.json @@ -63,6 +63,7 @@ "available!": "disponible!", "Back": "Enrere", "Bad Response": "Resposta Erroni", + "Banners": "", "Base Model (From)": "", "before": "abans", "Being lazy": "Ser l'estupidez", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Introdueix el Teu Nom Complet", "Enter Your Password": "Introdueix la Teva Contrasenya", "Enter Your Role": "Introdueix el Teu Ròl", + "Error": "", "Experimental": "Experimental", "Export All Chats (All Users)": "Exporta Tots els Xats (Tots els Usuaris)", "Export Chats": "Exporta Xats", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importa Prompts", "Include `--api` flag when running stable-diffusion-webui": "Inclou la bandera `--api` quan executis stable-diffusion-webui", + "Info": "", "Input commands": "Entra ordres", "Interface": "Interfície", "Invalid Tag": "Etiqueta Inválida", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemes accedint a Ollama?", "TTS Settings": "Configuracions TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Escriu URL de Resolució (Descàrrega) de Hugging Face", "Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla", @@ -470,6 +474,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.", "Version": "Versió", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si actualitzeu o canvieu el model d'incrustació, haureu de tornar a importar tots els documents.", "Web": "Web", "Web Loader Settings": "Configuració del carregador web", diff --git a/src/lib/i18n/locales/ceb-PH/translation.json b/src/lib/i18n/locales/ceb-PH/translation.json index b557230ed..934cfbc28 100644 --- a/src/lib/i18n/locales/ceb-PH/translation.json +++ b/src/lib/i18n/locales/ceb-PH/translation.json @@ -63,6 +63,7 @@ "available!": "magamit!", "Back": "Balik", "Bad Response": "", + "Banners": "", "Base Model (From)": "", "before": "", "Being lazy": "", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Ibutang ang imong tibuok nga ngalan", "Enter Your Password": "Ibutang ang imong password", "Enter Your Role": "", + "Error": "", "Experimental": "Eksperimento", "Export All Chats (All Users)": "I-export ang tanan nga mga chat (Tanan nga tiggamit)", "Export Chats": "I-export ang mga chat", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Import prompt", "Include `--api` flag when running stable-diffusion-webui": "Iapil ang `--api` nga bandila kung nagdagan nga stable-diffusion-webui", + "Info": "", "Input commands": "Pagsulod sa input commands", "Interface": "Interface", "Invalid Tag": "", @@ -450,6 +453,7 @@ "Top P": "Ibabaw nga P", "Trouble accessing Ollama?": "Adunay mga problema sa pag-access sa Ollama?", "TTS Settings": "Mga Setting sa TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Pagsulod sa resolusyon (pag-download) URL Hugging Face", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Wala mailhi nga tipo sa file '{{file_type}}', apan gidawat ug gitratar ingon yano nga teksto", @@ -470,6 +474,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable aron pulihan kini sa mga sulud sa clipboard.", "Version": "Bersyon", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Web": "Web", "Web Loader Settings": "", diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index d98adfd9c..f79c52ad3 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -63,6 +63,7 @@ "available!": "verfügbar!", "Back": "Zurück", "Bad Response": "Schlechte Antwort", + "Banners": "", "Base Model (From)": "", "before": "bereits geteilt", "Being lazy": "Faul sein", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Gib deinen vollständigen Namen ein", "Enter Your Password": "Gib dein Passwort ein", "Enter Your Role": "Gebe deine Rolle ein", + "Error": "", "Experimental": "Experimentell", "Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)", "Export Chats": "Chats exportieren", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Prompts importieren", "Include `--api` flag when running stable-diffusion-webui": "Füge das `--api`-Flag hinzu, wenn du stable-diffusion-webui nutzt", + "Info": "", "Input commands": "Eingabebefehle", "Interface": "Benutzeroberfläche", "Invalid Tag": "Ungültiger Tag", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Probleme beim Zugriff auf Ollama?", "TTS Settings": "TTS-Einstellungen", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Gib die Hugging Face Resolve (Download) URL ein", "Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.", @@ -470,6 +474,7 @@ "variable": "Variable", "variable to have them replaced with clipboard content.": "Variable, um den Inhalt der Zwischenablage beim Nutzen des Prompts zu ersetzen.", "Version": "Version", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.", "Web": "Web", "Web Loader Settings": "Web Loader Einstellungen", diff --git a/src/lib/i18n/locales/dg-DG/translation.json b/src/lib/i18n/locales/dg-DG/translation.json index 5338aa403..ca15a2909 100644 --- a/src/lib/i18n/locales/dg-DG/translation.json +++ b/src/lib/i18n/locales/dg-DG/translation.json @@ -63,6 +63,7 @@ "available!": "available! So excite!", "Back": "Back", "Bad Response": "", + "Banners": "", "Base Model (From)": "", "before": "", "Being lazy": "", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Enter Your Full Wow", "Enter Your Password": "Enter Your Barkword", "Enter Your Role": "", + "Error": "", "Experimental": "Much Experiment", "Export All Chats (All Users)": "Export All Chats (All Doggos)", "Export Chats": "Export Barks", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Import Promptos", "Include `--api` flag when running stable-diffusion-webui": "Include `--api` flag when running stable-diffusion-webui", + "Info": "", "Input commands": "Input commands", "Interface": "Interface", "Invalid Tag": "", @@ -450,6 +453,7 @@ "Top P": "Top P very top", "Trouble accessing Ollama?": "Trouble accessing Ollama? Much trouble?", "TTS Settings": "TTS Settings much settings", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL much download", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! There was an issue connecting to {{provider}}. Much uh-oh!", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unknown File Type '{{file_type}}', but accepting and treating as plain text very unknown", @@ -470,6 +474,7 @@ "variable": "variable very variable", "variable to have them replaced with clipboard content.": "variable to have them replaced with clipboard content. Very replace.", "Version": "Version much version", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Web": "Web very web", "Web Loader Settings": "", diff --git a/src/lib/i18n/locales/en-GB/translation.json b/src/lib/i18n/locales/en-GB/translation.json index 663b16a40..3c1105623 100644 --- a/src/lib/i18n/locales/en-GB/translation.json +++ b/src/lib/i18n/locales/en-GB/translation.json @@ -63,6 +63,7 @@ "available!": "", "Back": "", "Bad Response": "", + "Banners": "", "Base Model (From)": "", "before": "", "Being lazy": "", @@ -188,6 +189,7 @@ "Enter Your Full Name": "", "Enter Your Password": "", "Enter Your Role": "", + "Error": "", "Experimental": "", "Export All Chats (All Users)": "", "Export Chats": "", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "", "Include `--api` flag when running stable-diffusion-webui": "", + "Info": "", "Input commands": "", "Interface": "", "Invalid Tag": "", @@ -450,6 +453,7 @@ "Top P": "", "Trouble accessing Ollama?": "", "TTS Settings": "", + "Type": "", "Type Hugging Face Resolve (Download) URL": "", "Uh-oh! There was an issue connecting to {{provider}}.": "", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "", @@ -470,6 +474,7 @@ "variable": "", "variable to have them replaced with clipboard content.": "", "Version": "", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Web": "", "Web Loader Settings": "", diff --git a/src/lib/i18n/locales/en-US/translation.json b/src/lib/i18n/locales/en-US/translation.json index 663b16a40..3c1105623 100644 --- a/src/lib/i18n/locales/en-US/translation.json +++ b/src/lib/i18n/locales/en-US/translation.json @@ -63,6 +63,7 @@ "available!": "", "Back": "", "Bad Response": "", + "Banners": "", "Base Model (From)": "", "before": "", "Being lazy": "", @@ -188,6 +189,7 @@ "Enter Your Full Name": "", "Enter Your Password": "", "Enter Your Role": "", + "Error": "", "Experimental": "", "Export All Chats (All Users)": "", "Export Chats": "", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "", "Include `--api` flag when running stable-diffusion-webui": "", + "Info": "", "Input commands": "", "Interface": "", "Invalid Tag": "", @@ -450,6 +453,7 @@ "Top P": "", "Trouble accessing Ollama?": "", "TTS Settings": "", + "Type": "", "Type Hugging Face Resolve (Download) URL": "", "Uh-oh! There was an issue connecting to {{provider}}.": "", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "", @@ -470,6 +474,7 @@ "variable": "", "variable to have them replaced with clipboard content.": "", "Version": "", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Web": "", "Web Loader Settings": "", diff --git a/src/lib/i18n/locales/es-ES/translation.json b/src/lib/i18n/locales/es-ES/translation.json index 30ba4a97e..c364d6368 100644 --- a/src/lib/i18n/locales/es-ES/translation.json +++ b/src/lib/i18n/locales/es-ES/translation.json @@ -63,6 +63,7 @@ "available!": "¡disponible!", "Back": "Volver", "Bad Response": "Respuesta incorrecta", + "Banners": "", "Base Model (From)": "", "before": "antes", "Being lazy": "Ser perezoso", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Ingrese su nombre completo", "Enter Your Password": "Ingrese su contraseña", "Enter Your Role": "Ingrese su rol", + "Error": "", "Experimental": "Experimental", "Export All Chats (All Users)": "Exportar todos los chats (Todos los usuarios)", "Export Chats": "Exportar Chats", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importar Prompts", "Include `--api` flag when running stable-diffusion-webui": "Incluir el indicador `--api` al ejecutar stable-diffusion-webui", + "Info": "", "Input commands": "Ingresar comandos", "Interface": "Interfaz", "Invalid Tag": "Etiqueta Inválida", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "¿Problemas para acceder a Ollama?", "TTS Settings": "Configuración de TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Escriba la URL (Descarga) de Hugging Face Resolve", "Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato", @@ -470,6 +474,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable para reemplazarlos con el contenido del portapapeles.", "Version": "Versión", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Advertencia: Si actualiza o cambia su modelo de inserción, necesitará volver a importar todos los documentos.", "Web": "Web", "Web Loader Settings": "Web Loader Settings", diff --git a/src/lib/i18n/locales/fa-IR/translation.json b/src/lib/i18n/locales/fa-IR/translation.json index f28e0ac62..0b79db6ac 100644 --- a/src/lib/i18n/locales/fa-IR/translation.json +++ b/src/lib/i18n/locales/fa-IR/translation.json @@ -63,6 +63,7 @@ "available!": "در دسترس!", "Back": "بازگشت", "Bad Response": "پاسخ خوب نیست", + "Banners": "", "Base Model (From)": "", "before": "قبل", "Being lazy": "حالت سازنده", @@ -188,6 +189,7 @@ "Enter Your Full Name": "نام کامل خود را وارد کنید", "Enter Your Password": "رمز عبور خود را وارد کنید", "Enter Your Role": "نقش خود را وارد کنید", + "Error": "", "Experimental": "آزمایشی", "Export All Chats (All Users)": "اکسپورت از همه گپ\u200cها(همه کاربران)", "Export Chats": "اکسپورت از گپ\u200cها", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "ایمپورت پرامپت\u200cها", "Include `--api` flag when running stable-diffusion-webui": "فلگ `--api` را هنکام اجرای stable-diffusion-webui استفاده کنید.", + "Info": "", "Input commands": "ورودی دستورات", "Interface": "رابط", "Invalid Tag": "تگ نامعتبر", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "در دسترسی به اولاما مشکل دارید؟", "TTS Settings": "تنظیمات TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید", "Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.", @@ -470,6 +474,7 @@ "variable": "متغیر", "variable to have them replaced with clipboard content.": "متغیر برای جایگزینی آنها با محتوای کلیپ بورد.", "Version": "نسخه", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "هشدار: اگر شما به روز کنید یا تغییر دهید مدل شما، باید تمام سند ها را مجددا وارد کنید.", "Web": "وب", "Web Loader Settings": "تنظیمات لودر وب", diff --git a/src/lib/i18n/locales/fi-FI/translation.json b/src/lib/i18n/locales/fi-FI/translation.json index 32d9d58b2..7bd6031f3 100644 --- a/src/lib/i18n/locales/fi-FI/translation.json +++ b/src/lib/i18n/locales/fi-FI/translation.json @@ -63,6 +63,7 @@ "available!": "saatavilla!", "Back": "Takaisin", "Bad Response": "Epäkelpo vastaus", + "Banners": "", "Base Model (From)": "", "before": "ennen", "Being lazy": "Oli laiska", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Syötä koko nimesi", "Enter Your Password": "Syötä salasanasi", "Enter Your Role": "Syötä roolisi", + "Error": "", "Experimental": "Kokeellinen", "Export All Chats (All Users)": "Vie kaikki keskustelut (kaikki käyttäjät)", "Export Chats": "Vie keskustelut", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Tuo kehotteita", "Include `--api` flag when running stable-diffusion-webui": "Sisällytä `--api`-parametri suorittaessasi stable-diffusion-webui", + "Info": "", "Input commands": "Syötä komennot", "Interface": "Käyttöliittymä", "Invalid Tag": "Virheellinen tagi", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Ongelmia Ollama-yhteydessä?", "TTS Settings": "Puheentuottamisasetukset", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Kirjoita Hugging Face -resolve-osoite", "Uh-oh! There was an issue connecting to {{provider}}.": "Voi ei! Yhteysongelma {{provider}}:n kanssa.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tuntematon tiedostotyyppi '{{file_type}}', mutta hyväksytään ja käsitellään pelkkänä tekstinä", @@ -470,6 +474,7 @@ "variable": "muuttuja", "variable to have them replaced with clipboard content.": "muuttuja korvataan leikepöydän sisällöllä.", "Version": "Versio", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Varoitus: Jos päivität tai vaihdat upotusmallia, sinun on tuotava kaikki asiakirjat uudelleen.", "Web": "Web", "Web Loader Settings": "Web Loader asetukset", diff --git a/src/lib/i18n/locales/fr-CA/translation.json b/src/lib/i18n/locales/fr-CA/translation.json index 41736894e..9e33fa741 100644 --- a/src/lib/i18n/locales/fr-CA/translation.json +++ b/src/lib/i18n/locales/fr-CA/translation.json @@ -63,6 +63,7 @@ "available!": "disponible !", "Back": "Retour", "Bad Response": "Mauvaise réponse", + "Banners": "", "Base Model (From)": "", "before": "avant", "Being lazy": "En manque de temps", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Entrez votre nom complet", "Enter Your Password": "Entrez votre mot de passe", "Enter Your Role": "Entrez votre rôle", + "Error": "", "Experimental": "Expérimental", "Export All Chats (All Users)": "Exporter toutes les discussions (Tous les utilisateurs)", "Export Chats": "Exporter les discussions", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importer les prompts", "Include `--api` flag when running stable-diffusion-webui": "Inclure l'indicateur `--api` lors de l'exécution de stable-diffusion-webui", + "Info": "", "Input commands": "Entrez des commandes d'entrée", "Interface": "Interface", "Invalid Tag": "Tag invalide", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Des problèmes pour accéder à Ollama ?", "TTS Settings": "Paramètres TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Entrez l'URL de résolution (téléchargement) Hugging Face", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut", @@ -470,6 +474,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable pour les remplacer par le contenu du presse-papiers.", "Version": "Version", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Attention : Si vous mettez à jour ou changez votre modèle d'intégration, vous devrez réimporter tous les documents.", "Web": "Web", "Web Loader Settings": "Paramètres du chargeur Web", diff --git a/src/lib/i18n/locales/fr-FR/translation.json b/src/lib/i18n/locales/fr-FR/translation.json index ddbc2a435..3c725b767 100644 --- a/src/lib/i18n/locales/fr-FR/translation.json +++ b/src/lib/i18n/locales/fr-FR/translation.json @@ -63,6 +63,7 @@ "available!": "disponible !", "Back": "Retour", "Bad Response": "Mauvaise Réponse", + "Banners": "", "Base Model (From)": "Modèle de Base (De)", "before": "avant", "Being lazy": "Est paresseux", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Entrez Votre Nom Complet", "Enter Your Password": "Entrez Votre Mot De Passe", "Enter Your Role": "Entrez Votre Rôle", + "Error": "", "Experimental": "Expérimental", "Export All Chats (All Users)": "Exporter Tous les Chats (Tous les Utilisateurs)", "Export Chats": "Exporter les Chats", @@ -228,6 +230,7 @@ "Import Models": "Importer des Modèles", "Import Prompts": "Importer des Prompts", "Include `--api` flag when running stable-diffusion-webui": "Inclure le drapeau `--api` lors de l'exécution de stable-diffusion-webui", + "Info": "", "Input commands": "Entrez les commandes d'entrée", "Interface": "Interface", "Invalid Tag": "Tag Invalide", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problèmes d'accès à Ollama ?", "TTS Settings": "Paramètres TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Entrez l'URL de Résolution (Téléchargement) Hugging Face", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de Fichier Inconnu '{{file_type}}', mais accepté et traité comme du texte brut", @@ -470,6 +474,7 @@ "variable": "variable", "variable to have them replaced with clipboard content.": "variable pour les remplacer par le contenu du presse-papiers.", "Version": "Version", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avertissement : Si vous mettez à jour ou modifier votre modèle d'embedding, vous devrez réimporter tous les documents.", "Web": "Web", "Web Loader Settings": "Paramètres du Chargeur Web", diff --git a/src/lib/i18n/locales/he-IL/translation.json b/src/lib/i18n/locales/he-IL/translation.json index 162c5e9ba..56a44f7e1 100644 --- a/src/lib/i18n/locales/he-IL/translation.json +++ b/src/lib/i18n/locales/he-IL/translation.json @@ -63,6 +63,7 @@ "available!": "זמין!", "Back": "חזור", "Bad Response": "תגובה שגויה", + "Banners": "", "Base Model (From)": "", "before": "לפני", "Being lazy": "להיות עצלן", @@ -188,6 +189,7 @@ "Enter Your Full Name": "הזן את שמך המלא", "Enter Your Password": "הזן את הסיסמה שלך", "Enter Your Role": "הזן את התפקיד שלך", + "Error": "", "Experimental": "ניסיוני", "Export All Chats (All Users)": "ייצוא כל הצ'אטים (כל המשתמשים)", "Export Chats": "ייצוא צ'אטים", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "יבוא פקודות", "Include `--api` flag when running stable-diffusion-webui": "כלול את הדגל `--api` בעת הרצת stable-diffusion-webui", + "Info": "", "Input commands": "פקודות קלט", "Interface": "ממשק", "Invalid Tag": "תג לא חוקי", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "קשה לגשת לOllama?", "TTS Settings": "הגדרות TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "הקלד כתובת URL של פתרון פנים מחבק (הורד)", "Uh-oh! There was an issue connecting to {{provider}}.": "או-הו! אירעה בעיה בהתחברות ל- {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "סוג קובץ לא ידוע '{{file_type}}', אך מקבל ומתייחס אליו כטקסט רגיל", @@ -470,6 +474,7 @@ "variable": "משתנה", "variable to have them replaced with clipboard content.": "משתנה להחליפו ב- clipboard תוכן.", "Version": "גרסה", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "אזהרה: אם תעדכן או תשנה את מודל ההטבעה שלך, יהיה עליך לייבא מחדש את כל המסמכים.", "Web": "רשת", "Web Loader Settings": "הגדרות טעינת אתר", diff --git a/src/lib/i18n/locales/hi-IN/translation.json b/src/lib/i18n/locales/hi-IN/translation.json index 88c44d373..0782c7361 100644 --- a/src/lib/i18n/locales/hi-IN/translation.json +++ b/src/lib/i18n/locales/hi-IN/translation.json @@ -63,6 +63,7 @@ "available!": "उपलब्ध!", "Back": "पीछे", "Bad Response": "ख़राब प्रतिक्रिया", + "Banners": "", "Base Model (From)": "", "before": "पहले", "Being lazy": "आलसी होना", @@ -188,6 +189,7 @@ "Enter Your Full Name": "अपना पूरा नाम भरें", "Enter Your Password": "अपना पासवर्ड भरें", "Enter Your Role": "अपनी भूमिका दर्ज करें", + "Error": "", "Experimental": "प्रयोगात्मक", "Export All Chats (All Users)": "सभी चैट निर्यात करें (सभी उपयोगकर्ताओं की)", "Export Chats": "चैट निर्यात करें", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "प्रॉम्प्ट आयात करें", "Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui चलाते समय `--api` ध्वज शामिल करें", + "Info": "", "Input commands": "इनपुट क命", "Interface": "इंटरफेस", "Invalid Tag": "अवैध टैग", @@ -450,6 +453,7 @@ "Top P": "शीर्ष P", "Trouble accessing Ollama?": "Ollama तक पहुँचने में परेशानी हो रही है?", "TTS Settings": "TTS सेटिंग्स", + "Type": "", "Type Hugging Face Resolve (Download) URL": "हगिंग फेस रिज़ॉल्व (डाउनलोड) यूआरएल टाइप करें", "Uh-oh! There was an issue connecting to {{provider}}.": "उह ओह! {{provider}} से कनेक्ट करने में एक समस्या थी।", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "अज्ञात फ़ाइल प्रकार '{{file_type}}', लेकिन स्वीकार करना और सादे पाठ के रूप में व्यवहार करना", @@ -470,6 +474,7 @@ "variable": "वेरिएबल", "variable to have them replaced with clipboard content.": "उन्हें क्लिपबोर्ड सामग्री से बदलने के लिए वेरिएबल।", "Version": "संस्करण", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "चेतावनी: यदि आप अपने एम्बेडिंग मॉडल को अपडेट या बदलते हैं, तो आपको सभी दस्तावेज़ों को फिर से आयात करने की आवश्यकता होगी।", "Web": "वेब", "Web Loader Settings": "वेब लोडर सेटिंग्स", diff --git a/src/lib/i18n/locales/hr-HR/translation.json b/src/lib/i18n/locales/hr-HR/translation.json index 4a6e43312..8b653a2f7 100644 --- a/src/lib/i18n/locales/hr-HR/translation.json +++ b/src/lib/i18n/locales/hr-HR/translation.json @@ -63,6 +63,7 @@ "available!": "dostupno!", "Back": "Natrag", "Bad Response": "Loš odgovor", + "Banners": "", "Base Model (From)": "", "before": "prije", "Being lazy": "Biti lijen", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Unesite svoje puno ime", "Enter Your Password": "Unesite svoju lozinku", "Enter Your Role": "Unesite svoju ulogu", + "Error": "", "Experimental": "Eksperimentalno", "Export All Chats (All Users)": "Izvoz svih razgovora (svi korisnici)", "Export Chats": "Izvoz razgovora", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Uvoz prompta", "Include `--api` flag when running stable-diffusion-webui": "Uključite zastavicu `--api` prilikom pokretanja stable-diffusion-webui", + "Info": "", "Input commands": "Unos naredbi", "Interface": "Sučelje", "Invalid Tag": "Nevažeća oznaka", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemi s pristupom Ollama?", "TTS Settings": "TTS postavke", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Upišite Hugging Face Resolve (Download) URL", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Pojavio se problem s povezivanjem na {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nepoznata vrsta datoteke '{{file_type}}', ali prihvaćena i obrađuje se kao običan tekst", @@ -470,6 +474,7 @@ "variable": "varijabla", "variable to have them replaced with clipboard content.": "varijabla za zamjenu sadržajem međuspremnika.", "Version": "Verzija", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Upozorenje: Ako ažurirate ili promijenite svoj model za umetanje, morat ćete ponovno uvesti sve dokumente.", "Web": "Web", "Web Loader Settings": "Postavke web učitavanja", diff --git a/src/lib/i18n/locales/it-IT/translation.json b/src/lib/i18n/locales/it-IT/translation.json index c8409d364..1c4473223 100644 --- a/src/lib/i18n/locales/it-IT/translation.json +++ b/src/lib/i18n/locales/it-IT/translation.json @@ -63,6 +63,7 @@ "available!": "disponibile!", "Back": "Indietro", "Bad Response": "Risposta non valida", + "Banners": "", "Base Model (From)": "", "before": "prima", "Being lazy": "Essere pigri", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Inserisci il tuo nome completo", "Enter Your Password": "Inserisci la tua password", "Enter Your Role": "Inserisci il tuo ruolo", + "Error": "", "Experimental": "Sperimentale", "Export All Chats (All Users)": "Esporta tutte le chat (tutti gli utenti)", "Export Chats": "Esporta chat", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importa prompt", "Include `--api` flag when running stable-diffusion-webui": "Includi il flag `--api` quando esegui stable-diffusion-webui", + "Info": "", "Input commands": "Comandi di input", "Interface": "Interfaccia", "Invalid Tag": "Tag non valido", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemi di accesso a Ollama?", "TTS Settings": "Impostazioni TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Digita l'URL di Hugging Face Resolve (Download)", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Si è verificato un problema durante la connessione a {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo di file sconosciuto '{{file_type}}', ma accettato e trattato come testo normale", @@ -470,6 +474,7 @@ "variable": "variabile", "variable to have them replaced with clipboard content.": "variabile per farli sostituire con il contenuto degli appunti.", "Version": "Versione", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Attenzione: se aggiorni o cambi il tuo modello di embedding, dovrai reimportare tutti i documenti.", "Web": "Web", "Web Loader Settings": "Impostazioni del caricatore Web", diff --git a/src/lib/i18n/locales/ja-JP/translation.json b/src/lib/i18n/locales/ja-JP/translation.json index 1afe63030..e54e95fb0 100644 --- a/src/lib/i18n/locales/ja-JP/translation.json +++ b/src/lib/i18n/locales/ja-JP/translation.json @@ -63,6 +63,7 @@ "available!": "利用可能!", "Back": "戻る", "Bad Response": "応答が悪い", + "Banners": "", "Base Model (From)": "", "before": "より前", "Being lazy": "怠惰な", @@ -188,6 +189,7 @@ "Enter Your Full Name": "フルネームを入力してください", "Enter Your Password": "パスワードを入力してください", "Enter Your Role": "ロールを入力してください", + "Error": "", "Experimental": "実験的", "Export All Chats (All Users)": "すべてのチャットをエクスポート (すべてのユーザー)", "Export Chats": "チャットをエクスポート", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "プロンプトをインポート", "Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webuiを実行する際に`--api`フラグを含める", + "Info": "", "Input commands": "入力コマンド", "Interface": "インターフェース", "Invalid Tag": "無効なタグ", @@ -450,6 +453,7 @@ "Top P": "トップ P", "Trouble accessing Ollama?": "Ollama へのアクセスに問題がありますか?", "TTS Settings": "TTS 設定", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ダウンロード) URL を入力してください", "Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します", @@ -470,6 +474,7 @@ "variable": "変数", "variable to have them replaced with clipboard content.": "クリップボードの内容に置き換える変数。", "Version": "バージョン", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告: 埋め込みモデルを更新または変更した場合は、すべてのドキュメントを再インポートする必要があります。", "Web": "ウェブ", "Web Loader Settings": "Web 読み込み設定", diff --git a/src/lib/i18n/locales/ka-GE/translation.json b/src/lib/i18n/locales/ka-GE/translation.json index a3984feac..4b0acfb0f 100644 --- a/src/lib/i18n/locales/ka-GE/translation.json +++ b/src/lib/i18n/locales/ka-GE/translation.json @@ -63,6 +63,7 @@ "available!": "ხელმისაწვდომია!", "Back": "უკან", "Bad Response": "ხარვეზი", + "Banners": "", "Base Model (From)": "", "before": "ადგილზე", "Being lazy": "ჩაიტყვევა", @@ -188,6 +189,7 @@ "Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი", "Enter Your Password": "შეიყვანეთ თქვენი პაროლი", "Enter Your Role": "შეიყვანეთ თქვენი როლი", + "Error": "", "Experimental": "ექსპერიმენტალური", "Export All Chats (All Users)": "ექსპორტი ყველა ჩათი (ყველა მომხმარებელი)", "Export Chats": "მიმოწერის ექსპორტირება", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "მოთხოვნების იმპორტი", "Include `--api` flag when running stable-diffusion-webui": "ჩართეთ `--api` დროშა stable-diffusion-webui-ის გაშვებისას", + "Info": "", "Input commands": "შეყვანით ბრძანებებს", "Interface": "ინტერფეისი", "Invalid Tag": "არასწორი ტეგი", @@ -450,6 +453,7 @@ "Top P": "ტოპ P", "Trouble accessing Ollama?": "Ollama-ს ვერ უკავშირდები?", "TTS Settings": "TTS პარამეტრები", + "Type": "", "Type Hugging Face Resolve (Download) URL": "სცადე გადმოწერო Hugging Face Resolve URL", "Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი", @@ -470,6 +474,7 @@ "variable": "ცვლადი", "variable to have them replaced with clipboard content.": "ცვლადი, რომ შეცვალოს ისინი ბუფერში შიგთავსით.", "Version": "ვერსია", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "გაფრთხილება: თუ განაახლებთ ან შეცვლით ჩანერგვის მოდელს, მოგიწევთ ყველა დოკუმენტის ხელახლა იმპორტი.", "Web": "ვები", "Web Loader Settings": "ვების ჩატარების პარამეტრები", diff --git a/src/lib/i18n/locales/ko-KR/translation.json b/src/lib/i18n/locales/ko-KR/translation.json index cee383d5d..15d4757c3 100644 --- a/src/lib/i18n/locales/ko-KR/translation.json +++ b/src/lib/i18n/locales/ko-KR/translation.json @@ -63,6 +63,7 @@ "available!": "사용 가능!", "Back": "뒤로가기", "Bad Response": "응답이 좋지 않습니다.", + "Banners": "", "Base Model (From)": "", "before": "이전", "Being lazy": "게으름 피우기", @@ -188,6 +189,7 @@ "Enter Your Full Name": "전체 이름 입력", "Enter Your Password": "비밀번호 입력", "Enter Your Role": "역할 입력", + "Error": "", "Experimental": "실험적", "Export All Chats (All Users)": "모든 채팅 내보내기 (모든 사용자)", "Export Chats": "채팅 내보내기", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "프롬프트 가져오기", "Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui를 실행할 때 '--api' 플래그 포함", + "Info": "", "Input commands": "입력 명령", "Interface": "인터페이스", "Invalid Tag": "잘못된 태그", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Ollama에 접근하는 데 문제가 있나요?", "TTS Settings": "TTS 설정", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (다운로드) URL 입력", "Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.", @@ -470,6 +474,7 @@ "variable": "변수", "variable to have them replaced with clipboard content.": "변수를 사용하여 클립보드 내용으로 바꾸세요.", "Version": "버전", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "웹 로더를 업데이트하거나 변경할 경우 모든 문서를 다시 가져와야 합니다.", "Web": "웹", "Web Loader Settings": "웹 로더 설정", diff --git a/src/lib/i18n/locales/nl-NL/translation.json b/src/lib/i18n/locales/nl-NL/translation.json index b5c4b12aa..7591bcb1a 100644 --- a/src/lib/i18n/locales/nl-NL/translation.json +++ b/src/lib/i18n/locales/nl-NL/translation.json @@ -63,6 +63,7 @@ "available!": "beschikbaar!", "Back": "Terug", "Bad Response": "Ongeldig antwoord", + "Banners": "", "Base Model (From)": "", "before": "voor", "Being lazy": "Lustig zijn", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Voer je Volledige Naam in", "Enter Your Password": "Voer je Wachtwoord in", "Enter Your Role": "Voer je Rol in", + "Error": "", "Experimental": "Experimenteel", "Export All Chats (All Users)": "Exporteer Alle Chats (Alle Gebruikers)", "Export Chats": "Exporteer Chats", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importeer Prompts", "Include `--api` flag when running stable-diffusion-webui": "Voeg `--api` vlag toe bij het uitvoeren van stable-diffusion-webui", + "Info": "", "Input commands": "Voer commando's in", "Interface": "Interface", "Invalid Tag": "Ongeldige Tag", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemen met toegang tot Ollama?", "TTS Settings": "TTS instellingen", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst", @@ -470,6 +474,7 @@ "variable": "variabele", "variable to have them replaced with clipboard content.": "variabele om ze te laten vervangen door klembord inhoud.", "Version": "Versie", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warning: Als je de embedding model bijwerkt of wijzigt, moet je alle documenten opnieuw importeren.", "Web": "Web", "Web Loader Settings": "Web Loader instellingen", diff --git a/src/lib/i18n/locales/pa-IN/translation.json b/src/lib/i18n/locales/pa-IN/translation.json index 30738ad74..fb964886a 100644 --- a/src/lib/i18n/locales/pa-IN/translation.json +++ b/src/lib/i18n/locales/pa-IN/translation.json @@ -63,6 +63,7 @@ "available!": "ਉਪਲਬਧ ਹੈ!", "Back": "ਵਾਪਸ", "Bad Response": "ਖਰਾਬ ਜਵਾਬ", + "Banners": "", "Base Model (From)": "", "before": "ਪਹਿਲਾਂ", "Being lazy": "ਆਲਸੀ ਹੋਣਾ", @@ -188,6 +189,7 @@ "Enter Your Full Name": "ਆਪਣਾ ਪੂਰਾ ਨਾਮ ਦਰਜ ਕਰੋ", "Enter Your Password": "ਆਪਣਾ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ", "Enter Your Role": "ਆਪਣੀ ਭੂਮਿਕਾ ਦਰਜ ਕਰੋ", + "Error": "", "Experimental": "ਪਰਮਾਣੂਕ੍ਰਿਤ", "Export All Chats (All Users)": "ਸਾਰੀਆਂ ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ (ਸਾਰੇ ਉਪਭੋਗਤਾ)", "Export Chats": "ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "ਪ੍ਰੰਪਟ ਆਯਾਤ ਕਰੋ", "Include `--api` flag when running stable-diffusion-webui": "ਸਟੇਬਲ-ਡਿਫਿਊਸ਼ਨ-ਵੈਬਯੂਆਈ ਚਲਾਉਣ ਸਮੇਂ `--api` ਝੰਡਾ ਸ਼ਾਮਲ ਕਰੋ", + "Info": "", "Input commands": "ਇਨਪੁਟ ਕਮਾਂਡਾਂ", "Interface": "ਇੰਟਰਫੇਸ", "Invalid Tag": "ਗਲਤ ਟੈਗ", @@ -450,6 +453,7 @@ "Top P": "ਸਿਖਰ P", "Trouble accessing Ollama?": "ਓਲਾਮਾ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਮੁਸ਼ਕਲ?", "TTS Settings": "TTS ਸੈਟਿੰਗਾਂ", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ਡਾਊਨਲੋਡ) URL ਟਾਈਪ ਕਰੋ", "Uh-oh! There was an issue connecting to {{provider}}.": "ਓਹੋ! {{provider}} ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ।", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "ਅਣਜਾਣ ਫਾਈਲ ਕਿਸਮ '{{file_type}}', ਪਰ ਸਧਾਰਨ ਪਾਠ ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਦੇ ਹੋਏ", @@ -470,6 +474,7 @@ "variable": "ਵੈਰੀਏਬਲ", "variable to have them replaced with clipboard content.": "ਕਲਿੱਪਬੋਰਡ ਸਮੱਗਰੀ ਨਾਲ ਬਦਲਣ ਲਈ ਵੈਰੀਏਬਲ।", "Version": "ਵਰਜਨ", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "ਚੇਤਾਵਨੀ: ਜੇ ਤੁਸੀਂ ਆਪਣਾ ਐਮਬੈੱਡਿੰਗ ਮਾਡਲ ਅੱਪਡੇਟ ਜਾਂ ਬਦਲਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸਾਰੇ ਡਾਕੂਮੈਂਟ ਮੁੜ ਆਯਾਤ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।", "Web": "ਵੈਬ", "Web Loader Settings": "ਵੈਬ ਲੋਡਰ ਸੈਟਿੰਗਾਂ", diff --git a/src/lib/i18n/locales/pl-PL/translation.json b/src/lib/i18n/locales/pl-PL/translation.json index d643bc9f6..10da4b894 100644 --- a/src/lib/i18n/locales/pl-PL/translation.json +++ b/src/lib/i18n/locales/pl-PL/translation.json @@ -63,6 +63,7 @@ "available!": "dostępny!", "Back": "Wstecz", "Bad Response": "Zła odpowiedź", + "Banners": "", "Base Model (From)": "", "before": "przed", "Being lazy": "Jest leniwy", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Wprowadź swoje imię i nazwisko", "Enter Your Password": "Wprowadź swoje hasło", "Enter Your Role": "Wprowadź swoją rolę", + "Error": "", "Experimental": "Eksperymentalne", "Export All Chats (All Users)": "Eksportuj wszystkie czaty (wszyscy użytkownicy)", "Export Chats": "Eksportuj czaty", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importuj prompty", "Include `--api` flag when running stable-diffusion-webui": "Dołącz flagę `--api` podczas uruchamiania stable-diffusion-webui", + "Info": "", "Input commands": "Wprowadź komendy", "Interface": "Interfejs", "Invalid Tag": "Nieprawidłowy tag", @@ -450,6 +453,7 @@ "Top P": "Najlepsze P", "Trouble accessing Ollama?": "Problemy z dostępem do Ollama?", "TTS Settings": "Ustawienia TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Wprowadź adres URL do pobrania z Hugging Face", "Uh-oh! There was an issue connecting to {{provider}}.": "O nie! Wystąpił problem z połączeniem z {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nieznany typ pliku '{{file_type}}', ale akceptowany i traktowany jako zwykły tekst", @@ -470,6 +474,7 @@ "variable": "zmienna", "variable to have them replaced with clipboard content.": "zmienna która zostanie zastąpiona zawartością schowka.", "Version": "Wersja", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Uwaga: Jeśli uaktualnisz lub zmienisz model osadzania, będziesz musiał ponownie zaimportować wszystkie dokumenty.", "Web": "Sieć", "Web Loader Settings": "Ustawienia pobierania z sieci", diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index c55c8a38a..384e4572b 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -63,6 +63,7 @@ "available!": "disponível!", "Back": "Voltar", "Bad Response": "Resposta ruim", + "Banners": "", "Base Model (From)": "", "before": "antes", "Being lazy": "Ser preguiçoso", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Digite seu Nome Completo", "Enter Your Password": "Digite sua Senha", "Enter Your Role": "Digite sua Função", + "Error": "", "Experimental": "Experimental", "Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)", "Export Chats": "Exportar Bate-papos", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importar Prompts", "Include `--api` flag when running stable-diffusion-webui": "Inclua a flag `--api` ao executar stable-diffusion-webui", + "Info": "", "Input commands": "Comandos de entrada", "Interface": "Interface", "Invalid Tag": "Etiqueta Inválida", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemas para acessar o Ollama?", "TTS Settings": "Configurações TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)", "Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples", @@ -470,6 +474,7 @@ "variable": "variável", "variable to have them replaced with clipboard content.": "variável para que sejam substituídos pelo conteúdo da área de transferência.", "Version": "Versão", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Aviso: Se você atualizar ou alterar seu modelo de incorporação, você precisará reimportar todos os documentos.", "Web": "Web", "Web Loader Settings": "Configurações do Carregador da Web", diff --git a/src/lib/i18n/locales/pt-PT/translation.json b/src/lib/i18n/locales/pt-PT/translation.json index 3c2b72b72..c3d885843 100644 --- a/src/lib/i18n/locales/pt-PT/translation.json +++ b/src/lib/i18n/locales/pt-PT/translation.json @@ -63,6 +63,7 @@ "available!": "disponível!", "Back": "Voltar", "Bad Response": "Resposta ruim", + "Banners": "", "Base Model (From)": "", "before": "antes", "Being lazy": "Ser preguiçoso", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Digite seu Nome Completo", "Enter Your Password": "Digite sua Senha", "Enter Your Role": "Digite sua Função", + "Error": "", "Experimental": "Experimental", "Export All Chats (All Users)": "Exportar Todos os Bate-papos (Todos os Usuários)", "Export Chats": "Exportar Bate-papos", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importar Prompts", "Include `--api` flag when running stable-diffusion-webui": "Inclua a flag `--api` ao executar stable-diffusion-webui", + "Info": "", "Input commands": "Comandos de entrada", "Interface": "Interface", "Invalid Tag": "Etiqueta Inválida", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Problemas para acessar o Ollama?", "TTS Settings": "Configurações TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)", "Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples", @@ -470,6 +474,7 @@ "variable": "variável", "variable to have them replaced with clipboard content.": "variável para que sejam substituídos pelo conteúdo da área de transferência.", "Version": "Versão", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Aviso: Se você atualizar ou alterar seu modelo de vetorização, você precisará reimportar todos os documentos.", "Web": "Web", "Web Loader Settings": "Configurações do Carregador da Web", diff --git a/src/lib/i18n/locales/ru-RU/translation.json b/src/lib/i18n/locales/ru-RU/translation.json index 4bd94cadc..cd5f7cd5f 100644 --- a/src/lib/i18n/locales/ru-RU/translation.json +++ b/src/lib/i18n/locales/ru-RU/translation.json @@ -63,6 +63,7 @@ "available!": "доступный!", "Back": "Назад", "Bad Response": "Недопустимый ответ", + "Banners": "", "Base Model (From)": "", "before": "до", "Being lazy": "ленивый", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Введите ваше полное имя", "Enter Your Password": "Введите ваш пароль", "Enter Your Role": "Введите вашу роль", + "Error": "", "Experimental": "Экспериментальное", "Export All Chats (All Users)": "Экспортировать все чаты (все пользователи)", "Export Chats": "Экспортировать чаты", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Импорт подсказок", "Include `--api` flag when running stable-diffusion-webui": "Добавьте флаг `--api` при запуске stable-diffusion-webui", + "Info": "", "Input commands": "Введите команды", "Interface": "Интерфейс", "Invalid Tag": "Недопустимый тег", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Проблемы с доступом к Ollama?", "TTS Settings": "Настройки TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)", "Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст", @@ -470,6 +474,7 @@ "variable": "переменная", "variable to have them replaced with clipboard content.": "переменная, чтобы их заменить содержимым буфера обмена.", "Version": "Версия", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Если вы обновите или измените модель эмбеддинга, вам нужно будет повторно импортировать все документы.", "Web": "Веб", "Web Loader Settings": "Настройки загрузчика Web", diff --git a/src/lib/i18n/locales/sr-RS/translation.json b/src/lib/i18n/locales/sr-RS/translation.json index 448ec039a..7729d748c 100644 --- a/src/lib/i18n/locales/sr-RS/translation.json +++ b/src/lib/i18n/locales/sr-RS/translation.json @@ -63,6 +63,7 @@ "available!": "доступно!", "Back": "Назад", "Bad Response": "Лош одговор", + "Banners": "", "Base Model (From)": "", "before": "пре", "Being lazy": "Бити лењ", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Унесите ваше име и презиме", "Enter Your Password": "Унесите вашу лозинку", "Enter Your Role": "Унесите вашу улогу", + "Error": "", "Experimental": "Експериментално", "Export All Chats (All Users)": "Извези сва ћаскања (сви корисници)", "Export Chats": "Извези ћаскања", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Увези упите", "Include `--api` flag when running stable-diffusion-webui": "Укључи `--api` заставицу при покретању stable-diffusion-webui", + "Info": "", "Input commands": "Унеси наредбе", "Interface": "Изглед", "Invalid Tag": "Неисправна ознака", @@ -450,6 +453,7 @@ "Top P": "Топ П", "Trouble accessing Ollama?": "Проблеми са приступом Ollama-и?", "TTS Settings": "TTS подешавања", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Унесите Hugging Face Resolve (Download) адресу", "Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Дошло је до проблема при повезивању са {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат тип датотеке '{{file_type}}', али прихваћен и третиран као обичан текст", @@ -470,6 +474,7 @@ "variable": "променљива", "variable to have them replaced with clipboard content.": "променљива за замену са садржајем оставе.", "Version": "Издање", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Упозорење: ако ажурирате или промените ваш модел уградње, мораћете поново да увезете све документе.", "Web": "Веб", "Web Loader Settings": "Подешавања веб учитавача", diff --git a/src/lib/i18n/locales/sv-SE/translation.json b/src/lib/i18n/locales/sv-SE/translation.json index 0b746a94a..2639dba09 100644 --- a/src/lib/i18n/locales/sv-SE/translation.json +++ b/src/lib/i18n/locales/sv-SE/translation.json @@ -63,6 +63,7 @@ "available!": "tillgänglig!", "Back": "Tillbaka", "Bad Response": "Felaktig respons", + "Banners": "", "Base Model (From)": "", "before": "før", "Being lazy": "Lägg till", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Ange ditt fullständiga namn", "Enter Your Password": "Ange ditt lösenord", "Enter Your Role": "Ange din roll", + "Error": "", "Experimental": "Experimentell", "Export All Chats (All Users)": "Exportera alla chattar (alla användare)", "Export Chats": "Exportera chattar", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Importera prompts", "Include `--api` flag when running stable-diffusion-webui": "Inkludera `--api`-flagga när du kör stabil-diffusion-webui", + "Info": "", "Input commands": "Indatakommandon", "Interface": "Gränssnitt", "Invalid Tag": "Ogiltig tagg", @@ -450,6 +453,7 @@ "Top P": "Topp P", "Trouble accessing Ollama?": "Problem med att komma åt Ollama?", "TTS Settings": "TTS-inställningar", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Skriv Hugging Face Resolve (nedladdning) URL", "Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med att ansluta till {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text", @@ -470,6 +474,7 @@ "variable": "variabel", "variable to have them replaced with clipboard content.": "variabel för att få dem ersatta med urklippsinnehåll.", "Version": "Version", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Varning: Om du uppdaterar eller ändrar din embedding modell måste du importera alla dokument igen.", "Web": "Webb", "Web Loader Settings": "Web Loader-inställningar", diff --git a/src/lib/i18n/locales/tr-TR/translation.json b/src/lib/i18n/locales/tr-TR/translation.json index d6d49c38b..b38680c9f 100644 --- a/src/lib/i18n/locales/tr-TR/translation.json +++ b/src/lib/i18n/locales/tr-TR/translation.json @@ -63,6 +63,7 @@ "available!": "mevcut!", "Back": "Geri", "Bad Response": "Kötü Yanıt", + "Banners": "", "Base Model (From)": "", "before": "önce", "Being lazy": "Tembelleşiyor", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Tam Adınızı Girin", "Enter Your Password": "Parolanızı Girin", "Enter Your Role": "Rolünüzü Girin", + "Error": "", "Experimental": "Deneysel", "Export All Chats (All Users)": "Tüm Sohbetleri Dışa Aktar (Tüm Kullanıcılar)", "Export Chats": "Sohbetleri Dışa Aktar", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Promptları İçe Aktar", "Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui çalıştırılırken `--api` bayrağını dahil edin", + "Info": "", "Input commands": "Giriş komutları", "Interface": "Arayüz", "Invalid Tag": "Geçersiz etiket", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Ollama'ya erişmede sorun mu yaşıyorsunuz?", "TTS Settings": "TTS Ayarları", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (Download) URL'sini Yazın", "Uh-oh! There was an issue connecting to {{provider}}.": "Ah! {{provider}}'a bağlanırken bir sorun oluştu.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Bilinmeyen Dosya Türü '{{file_type}}', ancak düz metin olarak kabul ediliyor ve işleniyor", @@ -470,6 +474,7 @@ "variable": "değişken", "variable to have them replaced with clipboard content.": "panodaki içerikle değiştirilmesi için değişken.", "Version": "Sürüm", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Uyarı: Gömme modelinizi günceller veya değiştirirseniz, tüm belgeleri yeniden içe aktarmanız gerekecektir.", "Web": "Web", "Web Loader Settings": "Web Yükleyici Ayarları", diff --git a/src/lib/i18n/locales/uk-UA/translation.json b/src/lib/i18n/locales/uk-UA/translation.json index 5f9c6f693..88c7a4085 100644 --- a/src/lib/i18n/locales/uk-UA/translation.json +++ b/src/lib/i18n/locales/uk-UA/translation.json @@ -63,6 +63,7 @@ "available!": "доступно!", "Back": "Назад", "Bad Response": "Неправильна відповідь", + "Banners": "", "Base Model (From)": "", "before": "до того, як", "Being lazy": "Не поспішати", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Введіть ваше ім'я", "Enter Your Password": "Введіть ваш пароль", "Enter Your Role": "Введіть вашу роль", + "Error": "", "Experimental": "Експериментальне", "Export All Chats (All Users)": "Експортувати всі чати (всі користувачі)", "Export Chats": "Експортувати чати", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "Імпортувати промти", "Include `--api` flag when running stable-diffusion-webui": "Включіть прапор `--api` при запуску stable-diffusion-webui", + "Info": "", "Input commands": "Команди вводу", "Interface": "Інтерфейс", "Invalid Tag": "Недійсний тег", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Проблеми з доступом до Ollama?", "TTS Settings": "Налаштування TTS", + "Type": "", "Type Hugging Face Resolve (Download) URL": "Введіть URL ресурсу Hugging Face Resolve (завантаження)", "Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст", @@ -470,6 +474,7 @@ "variable": "змінна", "variable to have them replaced with clipboard content.": "змінна, щоб замінити їх вмістом буфера обміну.", "Version": "Версія", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Попередження: Якщо ви оновлюєте або змінюєте модель вбудовування, вам потрібно буде повторно імпортувати всі документи.", "Web": "Веб", "Web Loader Settings": "Налаштування веб-завантажувача", diff --git a/src/lib/i18n/locales/vi-VN/translation.json b/src/lib/i18n/locales/vi-VN/translation.json index ecad1761f..79097dead 100644 --- a/src/lib/i18n/locales/vi-VN/translation.json +++ b/src/lib/i18n/locales/vi-VN/translation.json @@ -4,7 +4,7 @@ "(e.g. `sh webui.sh --api`)": "(vd: `sh webui.sh --api`)", "(latest)": "(mới nhất)", "{{ models }}": "", - "{{ owner }}: You cannot delete a base model": "", + "{{ owner }}: You cannot delete a base model": "{{ owner }}: Bạn không thể xóa base model", "{{modelName}} is thinking...": "{{modelName}} đang suy nghĩ...", "{{user}}'s Chats": "{{user}}'s Chats", "{{webUIName}} Backend Required": "{{webUIName}} Yêu cầu Backend", @@ -15,7 +15,7 @@ "Accurate information": "Thông tin chính xác", "Add": "Thêm", "Add a model id": "", - "Add a short description about what this model does": "", + "Add a short description about what this model does": "Thêm mô tả ngắn về những khả năng của model", "Add a short title for this prompt": "Thêm tiêu đề ngắn cho prompt này", "Add a tag": "Thêm thẻ (tag)", "Add custom prompt": "Thêm prompt tùy chỉnh", @@ -48,7 +48,7 @@ "API keys": "API Keys", "April": "Tháng 4", "Archive": "Lưu trữ", - "Archive All Chats": "", + "Archive All Chats": "Lưu tất cả các cuộc Chat", "Archived Chats": "bản ghi trò chuyện", "are allowed - Activate this command by typing": "được phép - Kích hoạt lệnh này bằng cách gõ", "Are you sure?": "Bạn có chắc chắn không?", @@ -63,12 +63,13 @@ "available!": "có sẵn!", "Back": "Quay lại", "Bad Response": "Trả lời KHÔNG tốt", + "Banners": "", "Base Model (From)": "", "before": "trước", "Being lazy": "Lười biếng", "Bypass SSL verification for Websites": "Bỏ qua xác thực SSL cho các trang web", "Cancel": "Hủy bỏ", - "Capabilities": "", + "Capabilities": "Năng lực", "Change Password": "Đổi Mật khẩu", "Chat": "Trò chuyện", "Chat Bubble UI": "Bảng chat", @@ -110,7 +111,7 @@ "Copy Link": "Sao chép link", "Copying to clipboard was successful!": "Sao chép vào clipboard thành công!", "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':", - "Create a model": "", + "Create a model": "Tạo model", "Create Account": "Tạo Tài khoản", "Create new key": "Tạo key mới", "Create new secret key": "Tạo key bí mật mới", @@ -119,7 +120,7 @@ "Current Model": "Mô hình hiện tại", "Current Password": "Mật khẩu hiện tại", "Custom": "Tùy chỉnh", - "Customize models for a specific purpose": "", + "Customize models for a specific purpose": "Tùy chỉnh model cho những mục đích riêng", "Dark": "Tối", "Database": "Cơ sở dữ liệu", "December": "Tháng 12", @@ -133,17 +134,17 @@ "delete": "xóa", "Delete": "Xóa", "Delete a model": "Xóa mô hình", - "Delete All Chats": "", + "Delete All Chats": "Xóa mọi cuộc Chat", "Delete chat": "Xóa nội dung chat", "Delete Chat": "Xóa chat", "delete this link": "Xóa link này", "Delete User": "Xóa người dùng", "Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}", - "Deleted {{name}}": "", + "Deleted {{name}}": "Đã xóa {{name}}", "Description": "Mô tả", "Didn't fully follow instructions": "Không tuân theo chỉ dẫn một cách đầy đủ", "Disabled": "Đã vô hiệu hóa", - "Discover a model": "", + "Discover a model": "Khám phá model", "Discover a prompt": "Khám phá thêm prompt mới", "Discover, download, and explore custom prompts": "Tìm kiếm, tải về và khám phá thêm các prompt tùy chỉnh", "Discover, download, and explore model presets": "Tìm kiếm, tải về và khám phá thêm các thiết lập mô hình sẵn", @@ -188,6 +189,7 @@ "Enter Your Full Name": "Nhập Họ và Tên 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", + "Error": "Lỗi", "Experimental": "Thử nghiệm", "Export All Chats (All Users)": "Tải về tất cả nội dung chat (tất cả mọi người)", "Export Chats": "Tải nội dung chat về máy", @@ -214,7 +216,7 @@ "Good Response": "Trả lời tốt", "h:mm a": "h:mm a", "has no conversations.": "không có hội thoại", - "Hello, {{name}}": "Xin chào, {{name}}", + "Hello, {{name}}": "Xin chào {{name}}", "Help": "Trợ giúp", "Hide": "Ẩn", "How can I help you today?": "Tôi có thể giúp gì cho bạn hôm nay?", @@ -225,9 +227,10 @@ "Images": "Hình ảnh", "Import Chats": "Nạp lại nội dung chat", "Import Documents Mapping": "Nạp cấu trúc tài liệu", - "Import Models": "", + "Import Models": "Nạp model", "Import Prompts": "Nạp các prompt lên hệ thống", "Include `--api` flag when running stable-diffusion-webui": "Bao gồm flag `--api` khi chạy stable-diffusion-webui", + "Info": "Thông tin", "Input commands": "Nhập các câu lệnh", "Interface": "Giao diện", "Invalid Tag": "Tag không hợp lệ", @@ -279,8 +282,8 @@ "More": "Thêm", "Name": "Tên", "Name Tag": "Tên Thẻ", - "Name your model": "", - "New Chat": "Tạo cuộc trò chuyện mới", + "Name your model": "Tên model", + "New Chat": "Tạo chat mới", "New Password": "Mật khẩu mới", "No results found": "Không tìm thấy kết quả", "No search query generated": "", @@ -364,16 +367,16 @@ "Scan for documents from {{path}}": "Quét tài liệu từ đường dẫn: {{path}}", "Search": "Tìm kiếm", "Search a model": "Tìm model", - "Search Chats": "", + "Search Chats": "Tìm kiếm các cuộc Chat", "Search Documents": "Tìm tài liệu", - "Search Models": "", + "Search Models": "Tìm model", "Search Prompts": "Tìm prompt", "Search Results": "", "Searching the web for '{{searchQuery}}'": "", "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", "Seed": "Seed", - "Select a base model": "", + "Select a base model": "Chọn một base model", "Select a mode": "Chọn một chế độ", "Select a model": "Chọn mô hình", "Select an Ollama instance": "Chọn một thực thể Ollama", @@ -422,7 +425,7 @@ "System Prompt": "Prompt Hệ thống (System Prompt)", "Tags": "Thẻ", "Tell us more:": "Hãy cho chúng tôi hiểu thêm về chất lượng của câu trả lời:", - "Temperature": "Temperature", + "Temperature": "Mức độ sáng tạo", "Template": "Mẫu", "Text Completion": "Hoàn tất Văn bản", "Text-to-Speech Engine": "Công cụ Chuyển Văn bản thành Giọng nói", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "Gặp vấn đề khi truy cập Ollama?", "TTS Settings": "Cài đặt Chuyển văn bản thành Giọng nói", + "Type": "Kiểu", "Type Hugging Face Resolve (Download) URL": "Nhập URL Hugging Face Resolve (Tải xuống)", "Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô", @@ -470,6 +474,7 @@ "variable": "biến", "variable to have them replaced with clipboard content.": "biến để có chúng được thay thế bằng nội dung clipboard.", "Version": "Version", + "Warning": "Cảnh báo", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "Cảnh báo: Nếu cập nhật hoặc thay đổi embedding model, bạn sẽ cần cập nhật lại tất cả tài liệu.", "Web": "Web", "Web Loader Settings": "Cài đặt Web Loader", @@ -488,7 +493,7 @@ "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].", "Yesterday": "Hôm qua", "You": "Bạn", - "You cannot clone a base model": "", + "You cannot clone a base model": "Bạn không thể nhân bản base model", "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", "You're a helpful assistant.": "Bạn là một trợ lý hữu ích.", diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index 4f55ed100..115f71125 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -63,6 +63,7 @@ "available!": "可用!", "Back": "返回", "Bad Response": "不良响应", + "Banners": "", "Base Model (From)": "", "before": "之前", "Being lazy": "懒惰", @@ -188,6 +189,7 @@ "Enter Your Full Name": "输入您的全名", "Enter Your Password": "输入您的密码", "Enter Your Role": "输入您的角色", + "Error": "", "Experimental": "实验性", "Export All Chats (All Users)": "导出所有聊天(所有用户)", "Export Chats": "导出聊天", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "导入提示", "Include `--api` flag when running stable-diffusion-webui": "运行 stable-diffusion-webui 时包含 `--api` 标志", + "Info": "", "Input commands": "输入命令", "Interface": "界面", "Invalid Tag": "无效标签", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "访问 Ollama 时遇到问题?", "TTS Settings": "文本转语音设置", + "Type": "", "Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL", "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理", @@ -470,6 +474,7 @@ "variable": "变量", "variable to have them replaced with clipboard content.": "变量将被剪贴板内容替换。", "Version": "版本", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告: 如果更新或更改 embedding 模型,则需要重新导入所有文档。", "Web": "网页", "Web Loader Settings": "Web 加载器设置", diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index 94bdae311..0ee7111b8 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -63,6 +63,7 @@ "available!": "可以使用!", "Back": "返回", "Bad Response": "錯誤回應", + "Banners": "", "Base Model (From)": "", "before": "前", "Being lazy": "懶人模式", @@ -188,6 +189,7 @@ "Enter Your Full Name": "輸入你的全名", "Enter Your Password": "輸入你的密碼", "Enter Your Role": "輸入你的角色", + "Error": "", "Experimental": "實驗功能", "Export All Chats (All Users)": "匯出所有聊天紀錄(所有使用者)", "Export Chats": "匯出聊天紀錄", @@ -228,6 +230,7 @@ "Import Models": "", "Import Prompts": "匯入提示詞", "Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌", + "Info": "", "Input commands": "輸入命令", "Interface": "介面", "Invalid Tag": "無效標籤", @@ -450,6 +453,7 @@ "Top P": "Top P", "Trouble accessing Ollama?": "存取 Ollama 時遇到問題?", "TTS Settings": "文字轉語音設定", + "Type": "", "Type Hugging Face Resolve (Download) URL": "輸入 Hugging Face 解析後的(下載)URL", "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字", @@ -470,6 +474,7 @@ "variable": "變數", "variable to have them replaced with clipboard content.": "變數將替換為剪貼簿內容", "Version": "版本", + "Warning": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "警告:如果更新或更改你的嵌入模型,則需要重新導入所有文件", "Web": "網頁", "Web Loader Settings": "Web 載入器設定", diff --git a/src/lib/stores/index.ts b/src/lib/stores/index.ts index 15e961779..8aa17995d 100644 --- a/src/lib/stores/index.ts +++ b/src/lib/stores/index.ts @@ -1,6 +1,7 @@ import { APP_NAME } from '$lib/constants'; import { type Writable, writable } from 'svelte/store'; import type { GlobalModelConfig, ModelConfig } from '$lib/apis'; +import type { Banner } from '$lib/types'; // Backend export const WEBUI_NAME = writable(APP_NAME); @@ -36,6 +37,8 @@ export const documents = writable([ } ]); +export const banners: Writable = writable([]); + export const settings: Writable = writable({}); export const showSidebar = writable(false); @@ -126,16 +129,21 @@ type Prompt = { }; type Config = { - status?: boolean; - name?: string; - version?: string; - default_locale?: string; - images?: boolean; - default_models?: string[]; - default_prompt_suggestions?: PromptSuggestion[]; - auth_trusted_header?: boolean; - model_config?: GlobalModelConfig; - enable_websearch?: boolean; + status: boolean; + name: string; + version: string; + default_locale: string; + default_models: string[]; + default_prompt_suggestions: PromptSuggestion[]; + features: { + auth: boolean; + auth_trusted_header: boolean; + enable_signup: boolean; + enable_websearch?: boolean; + enable_image_generation: boolean; + enable_admin_export: boolean; + enable_community_sharing: boolean; + }; }; type PromptSuggestion = { diff --git a/src/lib/types/index.ts b/src/lib/types/index.ts new file mode 100644 index 000000000..2d9156c8d --- /dev/null +++ b/src/lib/types/index.ts @@ -0,0 +1,9 @@ +export type Banner = { + id: string; + type: string; + title?: string; + content: string; + url?: string; + dismissible?: boolean; + timestamp: number; +}; diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 95cf9d9b6..fe960f44f 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -22,6 +22,7 @@ prompts, documents, tags, + banners, showChangelog, config } from '$lib/stores'; @@ -33,6 +34,8 @@ import ShortcutsModal from '$lib/components/chat/ShortcutsModal.svelte'; import ChangelogModal from '$lib/components/ChangelogModal.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte'; + import { getBanners } from '$lib/apis/configs'; + import { getUserSettings } from '$lib/apis/users'; const i18n = getContext('i18n'); @@ -70,7 +73,13 @@ // IndexedDB Not Found } - settings.set(JSON.parse(localStorage.getItem('settings') ?? '{}')); + const userSettings = await getUserSettings(localStorage.token); + + if (userSettings) { + await settings.set(userSettings.ui); + } else { + await settings.set(JSON.parse(localStorage.getItem('settings') ?? '{}')); + } await Promise.all([ (async () => { @@ -82,6 +91,9 @@ (async () => { documents.set(await getDocs(localStorage.token)); })(), + (async () => { + banners.set(await getBanners(localStorage.token)); + })(), (async () => { tags.set(await getAllChatTags(localStorage.token)); })() diff --git a/src/routes/auth/+page.svelte b/src/routes/auth/+page.svelte index f13cbe4db..f836a5cc9 100644 --- a/src/routes/auth/+page.svelte +++ b/src/routes/auth/+page.svelte @@ -60,7 +60,7 @@ await goto('/'); } loaded = true; - if (($config?.auth_trusted_header ?? false) || $config?.auth === false) { + if (($config?.features.auth_trusted_header ?? false) || $config?.features.auth === false) { await signInHandler(); } }); @@ -102,7 +102,7 @@ -->
- {#if ($config?.auth_trusted_header ?? false) || $config?.auth === false} + {#if ($config?.features.auth_trusted_header ?? false) || $config?.features.auth === false}
- {#if $config.enable_signup} + {#if $config?.features.enable_signup}
{mode === 'signin' ? $i18n.t("Don't have an account?") diff --git a/src/routes/s/[id]/+page.svelte b/src/routes/s/[id]/+page.svelte index 441440175..73be10d3f 100644 --- a/src/routes/s/[id]/+page.svelte +++ b/src/routes/s/[id]/+page.svelte @@ -98,12 +98,6 @@ : convertMessagesToHistory(chatContent.messages); title = chatContent.title; - let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}'); - await settings.set({ - ..._settings, - system: chatContent.system ?? _settings.system, - options: chatContent.options ?? _settings.options - }); autoScroll = true; await tick(); diff --git a/vite.config.ts b/vite.config.ts index 12bb85b8b..c6af4bba5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,7 +18,8 @@ import { defineConfig } from 'vite'; export default defineConfig({ plugins: [sveltekit()], define: { - APP_VERSION: JSON.stringify(process.env.npm_package_version) + APP_VERSION: JSON.stringify(process.env.npm_package_version), + APP_BUILD_HASH: JSON.stringify(process.env.APP_BUILD_HASH || 'dev-build') }, build: { sourcemap: true