mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-13 12:55:19 +00:00
Merge branch 'dev' into dev
This commit is contained in:
commit
c9c79852a5
89 changed files with 3413 additions and 1183 deletions
|
|
@ -709,8 +709,8 @@ def save_docs_to_vector_db(
|
|||
if overwrite:
|
||||
VECTOR_DB_CLIENT.delete_collection(collection_name=collection_name)
|
||||
log.info(f"deleting existing collection {collection_name}")
|
||||
|
||||
if add is False:
|
||||
elif add is False:
|
||||
log.info(f"collection {collection_name} already exists, overwrite is False and add is False")
|
||||
return True
|
||||
|
||||
log.info(f"adding to collection {collection_name}")
|
||||
|
|
|
|||
|
|
@ -385,6 +385,8 @@ def get_rag_context(
|
|||
extracted_collections.extend(collection_names)
|
||||
|
||||
if context:
|
||||
if "data" in file:
|
||||
del file["data"]
|
||||
relevant_contexts.append({**context, "file": file})
|
||||
|
||||
contexts = []
|
||||
|
|
@ -401,11 +403,8 @@ def get_rag_context(
|
|||
]
|
||||
)
|
||||
)
|
||||
|
||||
contexts.append(
|
||||
(", ".join(file_names) + ":\n\n")
|
||||
if file_names
|
||||
else ""
|
||||
((", ".join(file_names) + ":\n\n") if file_names else "")
|
||||
+ "\n\n".join(
|
||||
[text for text in context["documents"][0] if text is not None]
|
||||
)
|
||||
|
|
@ -423,7 +422,9 @@ def get_rag_context(
|
|||
except Exception as e:
|
||||
log.exception(e)
|
||||
|
||||
print(contexts, citations)
|
||||
print("contexts", contexts)
|
||||
print("citations", citations)
|
||||
|
||||
return contexts, citations
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ from open_webui.apps.webui.models.models import Models
|
|||
from open_webui.apps.webui.routers import (
|
||||
auths,
|
||||
chats,
|
||||
folders,
|
||||
configs,
|
||||
files,
|
||||
functions,
|
||||
|
|
@ -110,6 +111,7 @@ app.include_router(configs.router, prefix="/configs", tags=["configs"])
|
|||
app.include_router(auths.router, prefix="/auths", tags=["auths"])
|
||||
app.include_router(users.router, prefix="/users", tags=["users"])
|
||||
app.include_router(chats.router, prefix="/chats", tags=["chats"])
|
||||
app.include_router(folders.router, prefix="/folders", tags=["folders"])
|
||||
|
||||
app.include_router(models.router, prefix="/models", tags=["models"])
|
||||
app.include_router(knowledge.router, prefix="/knowledge", tags=["knowledge"])
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ class Chat(Base):
|
|||
pinned = Column(Boolean, default=False, nullable=True)
|
||||
|
||||
meta = Column(JSON, server_default="{}")
|
||||
folder_id = Column(Text, nullable=True)
|
||||
|
||||
|
||||
class ChatModel(BaseModel):
|
||||
|
|
@ -51,6 +52,7 @@ class ChatModel(BaseModel):
|
|||
pinned: Optional[bool] = False
|
||||
|
||||
meta: dict = {}
|
||||
folder_id: Optional[str] = None
|
||||
|
||||
|
||||
####################
|
||||
|
|
@ -61,10 +63,12 @@ class ChatModel(BaseModel):
|
|||
class ChatForm(BaseModel):
|
||||
chat: dict
|
||||
|
||||
|
||||
class ChatTitleMessagesForm(BaseModel):
|
||||
title: str
|
||||
messages: list[dict]
|
||||
|
||||
|
||||
class ChatTitleForm(BaseModel):
|
||||
title: str
|
||||
|
||||
|
|
@ -80,6 +84,7 @@ class ChatResponse(BaseModel):
|
|||
archived: bool
|
||||
pinned: Optional[bool] = False
|
||||
meta: dict = {}
|
||||
folder_id: Optional[str] = None
|
||||
|
||||
|
||||
class ChatTitleIdResponse(BaseModel):
|
||||
|
|
@ -252,14 +257,18 @@ class ChatTable:
|
|||
limit: int = 50,
|
||||
) -> list[ChatModel]:
|
||||
with get_db() as db:
|
||||
query = db.query(Chat).filter_by(user_id=user_id)
|
||||
query = db.query(Chat).filter_by(user_id=user_id).filter_by(folder_id=None)
|
||||
if not include_archived:
|
||||
query = query.filter_by(archived=False)
|
||||
all_chats = (
|
||||
query.order_by(Chat.updated_at.desc())
|
||||
# .limit(limit).offset(skip)
|
||||
.all()
|
||||
)
|
||||
|
||||
query = query.order_by(Chat.updated_at.desc())
|
||||
|
||||
if skip:
|
||||
query = query.offset(skip)
|
||||
if limit:
|
||||
query = query.limit(limit)
|
||||
|
||||
all_chats = query.all()
|
||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||
|
||||
def get_chat_title_id_list_by_user_id(
|
||||
|
|
@ -270,7 +279,9 @@ class ChatTable:
|
|||
limit: Optional[int] = None,
|
||||
) -> list[ChatTitleIdResponse]:
|
||||
with get_db() as db:
|
||||
query = db.query(Chat).filter_by(user_id=user_id)
|
||||
query = db.query(Chat).filter_by(user_id=user_id).filter_by(folder_id=None)
|
||||
query = query.filter(or_(Chat.pinned == False, Chat.pinned == None))
|
||||
|
||||
if not include_archived:
|
||||
query = query.filter_by(archived=False)
|
||||
|
||||
|
|
@ -361,7 +372,7 @@ class ChatTable:
|
|||
with get_db() as db:
|
||||
all_chats = (
|
||||
db.query(Chat)
|
||||
.filter_by(user_id=user_id, pinned=True)
|
||||
.filter_by(user_id=user_id, pinned=True, archived=False)
|
||||
.order_by(Chat.updated_at.desc())
|
||||
)
|
||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||
|
|
@ -387,9 +398,25 @@ class ChatTable:
|
|||
Filters chats based on a search query using Python, allowing pagination using skip and limit.
|
||||
"""
|
||||
search_text = search_text.lower().strip()
|
||||
|
||||
if not search_text:
|
||||
return self.get_chat_list_by_user_id(user_id, include_archived, skip, limit)
|
||||
|
||||
search_text_words = search_text.split(" ")
|
||||
|
||||
# search_text might contain 'tag:tag_name' format so we need to extract the tag_name, split the search_text and remove the tags
|
||||
tag_ids = [
|
||||
word.replace("tag:", "").replace(" ", "_").lower()
|
||||
for word in search_text_words
|
||||
if word.startswith("tag:")
|
||||
]
|
||||
|
||||
search_text_words = [
|
||||
word for word in search_text_words if not word.startswith("tag:")
|
||||
]
|
||||
|
||||
search_text = " ".join(search_text_words)
|
||||
|
||||
with get_db() as db:
|
||||
query = db.query(Chat).filter(Chat.user_id == user_id)
|
||||
|
||||
|
|
@ -418,6 +445,26 @@ class ChatTable:
|
|||
)
|
||||
).params(search_text=search_text)
|
||||
)
|
||||
|
||||
# Check if there are any tags to filter, it should have all the tags
|
||||
if tag_ids:
|
||||
query = query.filter(
|
||||
and_(
|
||||
*[
|
||||
text(
|
||||
f"""
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM json_each(Chat.meta, '$.tags') AS tag
|
||||
WHERE tag.value = :tag_id_{tag_idx}
|
||||
)
|
||||
"""
|
||||
).params(**{f"tag_id_{tag_idx}": tag_id})
|
||||
for tag_idx, tag_id in enumerate(tag_ids)
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
elif dialect_name == "postgresql":
|
||||
# PostgreSQL relies on proper JSON query for search
|
||||
query = query.filter(
|
||||
|
|
@ -436,6 +483,25 @@ class ChatTable:
|
|||
)
|
||||
).params(search_text=search_text)
|
||||
)
|
||||
|
||||
# Check if there are any tags to filter, it should have all the tags
|
||||
if tag_ids:
|
||||
query = query.filter(
|
||||
and_(
|
||||
*[
|
||||
text(
|
||||
f"""
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM json_array_elements_text(Chat.meta->'tags') AS tag
|
||||
WHERE tag = :tag_id_{tag_idx}
|
||||
)
|
||||
"""
|
||||
).params(**{f"tag_id_{tag_idx}": tag_id})
|
||||
for tag_idx, tag_id in enumerate(tag_ids)
|
||||
]
|
||||
)
|
||||
)
|
||||
else:
|
||||
raise NotImplementedError(
|
||||
f"Unsupported dialect: {db.bind.dialect.name}"
|
||||
|
|
@ -444,9 +510,34 @@ class ChatTable:
|
|||
# Perform pagination at the SQL level
|
||||
all_chats = query.offset(skip).limit(limit).all()
|
||||
|
||||
print(len(all_chats))
|
||||
|
||||
# Validate and return chats
|
||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||
|
||||
def get_chats_by_folder_id_and_user_id(
|
||||
self, folder_id: str, user_id: str
|
||||
) -> list[ChatModel]:
|
||||
with get_db() as db:
|
||||
all_chats = (
|
||||
db.query(Chat).filter_by(folder_id=folder_id, user_id=user_id).all()
|
||||
)
|
||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||
|
||||
def update_chat_folder_id_by_id_and_user_id(
|
||||
self, id: str, user_id: str, folder_id: str
|
||||
) -> Optional[ChatModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
chat = db.get(Chat, id)
|
||||
chat.folder_id = folder_id
|
||||
chat.updated_at = int(time.time())
|
||||
db.commit()
|
||||
db.refresh(chat)
|
||||
return ChatModel.model_validate(chat)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def get_chat_tags_by_id_and_user_id(self, id: str, user_id: str) -> list[TagModel]:
|
||||
with get_db() as db:
|
||||
chat = db.get(Chat, id)
|
||||
|
|
@ -498,7 +589,7 @@ class ChatTable:
|
|||
if tag_id not in chat.meta.get("tags", []):
|
||||
chat.meta = {
|
||||
**chat.meta,
|
||||
"tags": chat.meta.get("tags", []) + [tag_id],
|
||||
"tags": list(set(chat.meta.get("tags", []) + [tag_id])),
|
||||
}
|
||||
|
||||
db.commit()
|
||||
|
|
@ -509,7 +600,7 @@ class ChatTable:
|
|||
|
||||
def count_chats_by_tag_name_and_user_id(self, tag_name: str, user_id: str) -> int:
|
||||
with get_db() as db: # Assuming `get_db()` returns a session object
|
||||
query = db.query(Chat).filter_by(user_id=user_id)
|
||||
query = db.query(Chat).filter_by(user_id=user_id, archived=False)
|
||||
|
||||
# Normalize the tag_name for consistency
|
||||
tag_id = tag_name.replace(" ", "_").lower()
|
||||
|
|
@ -555,7 +646,7 @@ class ChatTable:
|
|||
tags = [tag for tag in tags if tag != tag_id]
|
||||
chat.meta = {
|
||||
**chat.meta,
|
||||
"tags": tags,
|
||||
"tags": list(set(tags)),
|
||||
}
|
||||
db.commit()
|
||||
return True
|
||||
|
|
|
|||
225
backend/open_webui/apps/webui/models/folders.py
Normal file
225
backend/open_webui/apps/webui/models/folders.py
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
import logging
|
||||
import time
|
||||
import uuid
|
||||
from typing import Optional
|
||||
|
||||
from open_webui.apps.webui.internal.db import Base, get_db
|
||||
|
||||
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from sqlalchemy import BigInteger, Column, Text, JSON, Boolean
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["MODELS"])
|
||||
|
||||
|
||||
####################
|
||||
# Folder DB Schema
|
||||
####################
|
||||
|
||||
|
||||
class Folder(Base):
|
||||
__tablename__ = "folder"
|
||||
id = Column(Text, primary_key=True)
|
||||
parent_id = Column(Text, nullable=True)
|
||||
user_id = Column(Text)
|
||||
name = Column(Text)
|
||||
items = Column(JSON, nullable=True)
|
||||
meta = Column(JSON, nullable=True)
|
||||
is_expanded = Column(Boolean, default=False)
|
||||
created_at = Column(BigInteger)
|
||||
updated_at = Column(BigInteger)
|
||||
|
||||
|
||||
class FolderModel(BaseModel):
|
||||
id: str
|
||||
parent_id: Optional[str] = None
|
||||
user_id: str
|
||||
name: str
|
||||
items: Optional[dict] = None
|
||||
meta: Optional[dict] = None
|
||||
is_expanded: bool = False
|
||||
created_at: int
|
||||
updated_at: int
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
####################
|
||||
# Forms
|
||||
####################
|
||||
|
||||
|
||||
class FolderForm(BaseModel):
|
||||
name: str
|
||||
model_config = ConfigDict(extra="allow")
|
||||
|
||||
|
||||
class FolderTable:
|
||||
def insert_new_folder(
|
||||
self, user_id: str, name: str, parent_id: Optional[str] = None
|
||||
) -> Optional[FolderModel]:
|
||||
with get_db() as db:
|
||||
id = str(uuid.uuid4())
|
||||
folder = FolderModel(
|
||||
**{
|
||||
"id": id,
|
||||
"user_id": user_id,
|
||||
"name": name,
|
||||
"parent_id": parent_id,
|
||||
"created_at": int(time.time()),
|
||||
"updated_at": int(time.time()),
|
||||
}
|
||||
)
|
||||
try:
|
||||
result = Folder(**folder.model_dump())
|
||||
db.add(result)
|
||||
db.commit()
|
||||
db.refresh(result)
|
||||
if result:
|
||||
return FolderModel.model_validate(result)
|
||||
else:
|
||||
return None
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return None
|
||||
|
||||
def get_folder_by_id_and_user_id(
|
||||
self, id: str, user_id: str
|
||||
) -> Optional[FolderModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||
|
||||
if not folder:
|
||||
return None
|
||||
|
||||
return FolderModel.model_validate(folder)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def get_folders_by_user_id(self, user_id: str) -> list[FolderModel]:
|
||||
with get_db() as db:
|
||||
return [
|
||||
FolderModel.model_validate(folder)
|
||||
for folder in db.query(Folder).filter_by(user_id=user_id).all()
|
||||
]
|
||||
|
||||
def get_folder_by_parent_id_and_user_id_and_name(
|
||||
self, parent_id: Optional[str], user_id: str, name: str
|
||||
) -> Optional[FolderModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
# Check if folder exists
|
||||
folder = (
|
||||
db.query(Folder)
|
||||
.filter_by(parent_id=parent_id, user_id=user_id)
|
||||
.filter(Folder.name.ilike(name))
|
||||
.first()
|
||||
)
|
||||
|
||||
if not folder:
|
||||
return None
|
||||
|
||||
return FolderModel.model_validate(folder)
|
||||
except Exception as e:
|
||||
log.error(f"get_folder_by_parent_id_and_user_id_and_name: {e}")
|
||||
return None
|
||||
|
||||
def get_folders_by_parent_id_and_user_id(
|
||||
self, parent_id: Optional[str], user_id: str
|
||||
) -> list[FolderModel]:
|
||||
with get_db() as db:
|
||||
return [
|
||||
FolderModel.model_validate(folder)
|
||||
for folder in db.query(Folder)
|
||||
.filter_by(parent_id=parent_id, user_id=user_id)
|
||||
.all()
|
||||
]
|
||||
|
||||
def update_folder_parent_id_by_id_and_user_id(
|
||||
self,
|
||||
id: str,
|
||||
user_id: str,
|
||||
parent_id: str,
|
||||
) -> Optional[FolderModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||
|
||||
if not folder:
|
||||
return None
|
||||
|
||||
folder.parent_id = parent_id
|
||||
folder.updated_at = int(time.time())
|
||||
|
||||
db.commit()
|
||||
|
||||
return FolderModel.model_validate(folder)
|
||||
except Exception as e:
|
||||
log.error(f"update_folder: {e}")
|
||||
return
|
||||
|
||||
def update_folder_name_by_id_and_user_id(
|
||||
self, id: str, user_id: str, name: str
|
||||
) -> Optional[FolderModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||
|
||||
if not folder:
|
||||
return None
|
||||
|
||||
existing_folder = (
|
||||
db.query(Folder)
|
||||
.filter_by(name=name, parent_id=folder.parent_id, user_id=user_id)
|
||||
.first()
|
||||
)
|
||||
|
||||
if existing_folder:
|
||||
return None
|
||||
|
||||
folder.name = name
|
||||
folder.updated_at = int(time.time())
|
||||
|
||||
db.commit()
|
||||
|
||||
return FolderModel.model_validate(folder)
|
||||
except Exception as e:
|
||||
log.error(f"update_folder: {e}")
|
||||
return
|
||||
|
||||
def update_folder_is_expanded_by_id_and_user_id(
|
||||
self, id: str, user_id: str, is_expanded: bool
|
||||
) -> Optional[FolderModel]:
|
||||
try:
|
||||
with get_db() as db:
|
||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||
|
||||
if not folder:
|
||||
return None
|
||||
|
||||
folder.is_expanded = is_expanded
|
||||
folder.updated_at = int(time.time())
|
||||
|
||||
db.commit()
|
||||
|
||||
return FolderModel.model_validate(folder)
|
||||
except Exception as e:
|
||||
log.error(f"update_folder: {e}")
|
||||
return
|
||||
|
||||
def delete_folder_by_id_and_user_id(self, id: str, user_id: str) -> bool:
|
||||
try:
|
||||
with get_db() as db:
|
||||
folder = db.query(Folder).filter_by(id=id, user_id=user_id).first()
|
||||
db.delete(folder)
|
||||
db.commit()
|
||||
return True
|
||||
except Exception as e:
|
||||
log.error(f"delete_folder: {e}")
|
||||
return False
|
||||
|
||||
|
||||
Folders = FolderTable()
|
||||
|
|
@ -1,10 +1,13 @@
|
|||
import re
|
||||
import uuid
|
||||
import time
|
||||
import datetime
|
||||
|
||||
from open_webui.apps.webui.models.auths import (
|
||||
AddUserForm,
|
||||
ApiKey,
|
||||
Auths,
|
||||
Token,
|
||||
SigninForm,
|
||||
SigninResponse,
|
||||
SignupForm,
|
||||
|
|
@ -34,6 +37,7 @@ from open_webui.utils.utils import (
|
|||
get_password_hash,
|
||||
)
|
||||
from open_webui.utils.webhook import post_webhook
|
||||
from typing import Optional
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
|
@ -42,25 +46,44 @@ router = APIRouter()
|
|||
############################
|
||||
|
||||
|
||||
@router.get("/", response_model=UserResponse)
|
||||
class SessionUserResponse(Token, UserResponse):
|
||||
expires_at: Optional[int] = None
|
||||
|
||||
|
||||
@router.get("/", response_model=SessionUserResponse)
|
||||
async def get_session_user(
|
||||
request: Request, response: Response, user=Depends(get_current_user)
|
||||
):
|
||||
expires_delta = parse_duration(request.app.state.config.JWT_EXPIRES_IN)
|
||||
expires_at = None
|
||||
if expires_delta:
|
||||
expires_at = int(time.time()) + int(expires_delta.total_seconds())
|
||||
|
||||
token = create_token(
|
||||
data={"id": user.id},
|
||||
expires_delta=parse_duration(request.app.state.config.JWT_EXPIRES_IN),
|
||||
expires_delta=expires_delta,
|
||||
)
|
||||
|
||||
datetime_expires_at = (
|
||||
datetime.datetime.fromtimestamp(expires_at, datetime.timezone.utc)
|
||||
if expires_at
|
||||
else None
|
||||
)
|
||||
|
||||
# Set the cookie token
|
||||
response.set_cookie(
|
||||
key="token",
|
||||
value=token,
|
||||
expires=datetime_expires_at,
|
||||
httponly=True, # Ensures the cookie is not accessible via JavaScript
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
)
|
||||
|
||||
return {
|
||||
"token": token,
|
||||
"token_type": "Bearer",
|
||||
"expires_at": expires_at,
|
||||
"id": user.id,
|
||||
"email": user.email,
|
||||
"name": user.name,
|
||||
|
|
@ -119,7 +142,7 @@ async def update_password(
|
|||
############################
|
||||
|
||||
|
||||
@router.post("/signin", response_model=SigninResponse)
|
||||
@router.post("/signin", response_model=SessionUserResponse)
|
||||
async def signin(request: Request, response: Response, form_data: SigninForm):
|
||||
if WEBUI_AUTH_TRUSTED_EMAIL_HEADER:
|
||||
if WEBUI_AUTH_TRUSTED_EMAIL_HEADER not in request.headers:
|
||||
|
|
@ -161,23 +184,37 @@ async def signin(request: Request, response: Response, form_data: SigninForm):
|
|||
user = Auths.authenticate_user(form_data.email.lower(), form_data.password)
|
||||
|
||||
if user:
|
||||
|
||||
expires_delta = parse_duration(request.app.state.config.JWT_EXPIRES_IN)
|
||||
expires_at = None
|
||||
if expires_delta:
|
||||
expires_at = int(time.time()) + int(expires_delta.total_seconds())
|
||||
|
||||
token = create_token(
|
||||
data={"id": user.id},
|
||||
expires_delta=parse_duration(request.app.state.config.JWT_EXPIRES_IN),
|
||||
expires_delta=expires_delta,
|
||||
)
|
||||
|
||||
datetime_expires_at = (
|
||||
datetime.datetime.fromtimestamp(expires_at, datetime.timezone.utc)
|
||||
if expires_at
|
||||
else None
|
||||
)
|
||||
|
||||
# Set the cookie token
|
||||
response.set_cookie(
|
||||
key="token",
|
||||
value=token,
|
||||
expires=datetime_expires_at,
|
||||
httponly=True, # Ensures the cookie is not accessible via JavaScript
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
)
|
||||
|
||||
return {
|
||||
"token": token,
|
||||
"token_type": "Bearer",
|
||||
"expires_at": expires_at,
|
||||
"id": user.id,
|
||||
"email": user.email,
|
||||
"name": user.name,
|
||||
|
|
@ -193,7 +230,7 @@ async def signin(request: Request, response: Response, form_data: SigninForm):
|
|||
############################
|
||||
|
||||
|
||||
@router.post("/signup", response_model=SigninResponse)
|
||||
@router.post("/signup", response_model=SessionUserResponse)
|
||||
async def signup(request: Request, response: Response, form_data: SignupForm):
|
||||
if WEBUI_AUTH:
|
||||
if (
|
||||
|
|
@ -233,18 +270,30 @@ async def signup(request: Request, response: Response, form_data: SignupForm):
|
|||
)
|
||||
|
||||
if user:
|
||||
expires_delta = parse_duration(request.app.state.config.JWT_EXPIRES_IN)
|
||||
expires_at = None
|
||||
if expires_delta:
|
||||
expires_at = int(time.time()) + int(expires_delta.total_seconds())
|
||||
|
||||
token = create_token(
|
||||
data={"id": user.id},
|
||||
expires_delta=parse_duration(request.app.state.config.JWT_EXPIRES_IN),
|
||||
expires_delta=expires_delta,
|
||||
)
|
||||
|
||||
datetime_expires_at = (
|
||||
datetime.datetime.fromtimestamp(expires_at, datetime.timezone.utc)
|
||||
if expires_at
|
||||
else None
|
||||
)
|
||||
|
||||
# Set the cookie token
|
||||
response.set_cookie(
|
||||
key="token",
|
||||
value=token,
|
||||
expires=datetime_expires_at,
|
||||
httponly=True, # Ensures the cookie is not accessible via JavaScript
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
samesite=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
secure=WEBUI_SESSION_COOKIE_SECURE,
|
||||
)
|
||||
|
||||
if request.app.state.config.WEBHOOK_URL:
|
||||
|
|
@ -261,6 +310,7 @@ async def signup(request: Request, response: Response, form_data: SignupForm):
|
|||
return {
|
||||
"token": token,
|
||||
"token_type": "Bearer",
|
||||
"expires_at": expires_at,
|
||||
"id": user.id,
|
||||
"email": user.email,
|
||||
"name": user.name,
|
||||
|
|
|
|||
|
|
@ -114,13 +114,24 @@ async def search_user_chats(
|
|||
limit = 60
|
||||
skip = (page - 1) * limit
|
||||
|
||||
return [
|
||||
chat_list = [
|
||||
ChatTitleIdResponse(**chat.model_dump())
|
||||
for chat in Chats.get_chats_by_user_id_and_search_text(
|
||||
user.id, text, skip=skip, limit=limit
|
||||
)
|
||||
]
|
||||
|
||||
# Delete tag if no chat is found
|
||||
words = text.strip().split(" ")
|
||||
if page == 1 and len(words) == 1 and words[0].startswith("tag:"):
|
||||
tag_id = words[0].replace("tag:", "")
|
||||
if len(chat_list) == 0:
|
||||
if Tags.get_tag_by_name_and_user_id(tag_id, user.id):
|
||||
log.debug(f"deleting tag: {tag_id}")
|
||||
Tags.delete_tag_by_name_and_user_id(tag_id, user.id)
|
||||
|
||||
return chat_list
|
||||
|
||||
|
||||
############################
|
||||
# GetPinnedChats
|
||||
|
|
@ -315,7 +326,13 @@ async def update_chat_by_id(
|
|||
@router.delete("/{id}", response_model=bool)
|
||||
async def delete_chat_by_id(request: Request, id: str, user=Depends(get_verified_user)):
|
||||
if user.role == "admin":
|
||||
chat = Chats.get_chat_by_id(id)
|
||||
for tag in chat.meta.get("tags", []):
|
||||
if Chats.count_chats_by_tag_name_and_user_id(tag, user.id) == 1:
|
||||
Tags.delete_tag_by_name_and_user_id(tag, user.id)
|
||||
|
||||
result = Chats.delete_chat_by_id(id)
|
||||
|
||||
return result
|
||||
else:
|
||||
if not request.app.state.config.USER_PERMISSIONS.get("chat", {}).get(
|
||||
|
|
@ -326,6 +343,11 @@ async def delete_chat_by_id(request: Request, id: str, user=Depends(get_verified
|
|||
detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
|
||||
)
|
||||
|
||||
chat = Chats.get_chat_by_id(id)
|
||||
for tag in chat.meta.get("tags", []):
|
||||
if Chats.count_chats_by_tag_name_and_user_id(tag, user.id) == 1:
|
||||
Tags.delete_tag_by_name_and_user_id(tag, user.id)
|
||||
|
||||
result = Chats.delete_chat_by_id_and_user_id(id, user.id)
|
||||
return result
|
||||
|
||||
|
|
@ -397,6 +419,20 @@ async def archive_chat_by_id(id: str, user=Depends(get_verified_user)):
|
|||
chat = Chats.get_chat_by_id_and_user_id(id, user.id)
|
||||
if chat:
|
||||
chat = Chats.toggle_chat_archive_by_id(id)
|
||||
|
||||
# Delete tags if chat is archived
|
||||
if chat.archived:
|
||||
for tag_id in chat.meta.get("tags", []):
|
||||
if Chats.count_chats_by_tag_name_and_user_id(tag_id, user.id) == 0:
|
||||
log.debug(f"deleting tag: {tag_id}")
|
||||
Tags.delete_tag_by_name_and_user_id(tag_id, user.id)
|
||||
else:
|
||||
for tag_id in chat.meta.get("tags", []):
|
||||
tag = Tags.get_tag_by_name_and_user_id(tag_id, user.id)
|
||||
if tag is None:
|
||||
log.debug(f"inserting tag: {tag_id}")
|
||||
tag = Tags.insert_new_tag(tag_id, user.id)
|
||||
|
||||
return ChatResponse(**chat.model_dump())
|
||||
else:
|
||||
raise HTTPException(
|
||||
|
|
@ -455,6 +491,31 @@ async def delete_shared_chat_by_id(id: str, user=Depends(get_verified_user)):
|
|||
)
|
||||
|
||||
|
||||
############################
|
||||
# UpdateChatFolderIdById
|
||||
############################
|
||||
|
||||
|
||||
class ChatFolderIdForm(BaseModel):
|
||||
folder_id: Optional[str] = None
|
||||
|
||||
|
||||
@router.post("/{id}/folder", response_model=Optional[ChatResponse])
|
||||
async def update_chat_folder_id_by_id(
|
||||
id: str, form_data: ChatFolderIdForm, user=Depends(get_verified_user)
|
||||
):
|
||||
chat = Chats.get_chat_by_id_and_user_id(id, user.id)
|
||||
if chat:
|
||||
chat = Chats.update_chat_folder_id_by_id_and_user_id(
|
||||
id, user.id, form_data.folder_id
|
||||
)
|
||||
return ChatResponse(**chat.model_dump())
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.DEFAULT()
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# GetChatTagsById
|
||||
############################
|
||||
|
|
|
|||
259
backend/open_webui/apps/webui/routers/folders.py
Normal file
259
backend/open_webui/apps/webui/routers/folders.py
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
import mimetypes
|
||||
|
||||
|
||||
from open_webui.apps.webui.models.folders import (
|
||||
FolderForm,
|
||||
FolderModel,
|
||||
Folders,
|
||||
)
|
||||
from open_webui.apps.webui.models.chats import Chats
|
||||
|
||||
from open_webui.config import UPLOAD_DIR
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
|
||||
|
||||
from fastapi import APIRouter, Depends, File, HTTPException, UploadFile, status
|
||||
from fastapi.responses import FileResponse, StreamingResponse
|
||||
|
||||
|
||||
from open_webui.utils.utils import get_admin_user, get_verified_user
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["MODELS"])
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
############################
|
||||
# Get Folders
|
||||
############################
|
||||
|
||||
|
||||
@router.get("/", response_model=list[FolderModel])
|
||||
async def get_folders(user=Depends(get_verified_user)):
|
||||
folders = Folders.get_folders_by_user_id(user.id)
|
||||
|
||||
return [
|
||||
{
|
||||
**folder.model_dump(),
|
||||
"items": {
|
||||
"chats": [
|
||||
{"title": chat.title, "id": chat.id}
|
||||
for chat in Chats.get_chats_by_folder_id_and_user_id(
|
||||
folder.id, user.id
|
||||
)
|
||||
]
|
||||
},
|
||||
}
|
||||
for folder in folders
|
||||
]
|
||||
|
||||
|
||||
############################
|
||||
# Create Folder
|
||||
############################
|
||||
|
||||
|
||||
@router.post("/")
|
||||
def create_folder(form_data: FolderForm, user=Depends(get_verified_user)):
|
||||
folder = Folders.get_folder_by_parent_id_and_user_id_and_name(
|
||||
None, user.id, form_data.name
|
||||
)
|
||||
|
||||
if folder:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Folder already exists"),
|
||||
)
|
||||
|
||||
try:
|
||||
folder = Folders.insert_new_folder(user.id, form_data.name)
|
||||
return folder
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
log.error("Error creating folder")
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error creating folder"),
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# Get Folders By Id
|
||||
############################
|
||||
|
||||
|
||||
@router.get("/{id}", response_model=Optional[FolderModel])
|
||||
async def get_folder_by_id(id: str, user=Depends(get_verified_user)):
|
||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||
if folder:
|
||||
return folder
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# Update Folder Name By Id
|
||||
############################
|
||||
|
||||
|
||||
@router.post("/{id}/update")
|
||||
async def update_folder_name_by_id(
|
||||
id: str, form_data: FolderForm, user=Depends(get_verified_user)
|
||||
):
|
||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||
if folder:
|
||||
existing_folder = Folders.get_folder_by_parent_id_and_user_id_and_name(
|
||||
folder.parent_id, user.id, form_data.name
|
||||
)
|
||||
if existing_folder:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Folder already exists"),
|
||||
)
|
||||
|
||||
try:
|
||||
folder = Folders.update_folder_name_by_id_and_user_id(
|
||||
id, user.id, form_data.name
|
||||
)
|
||||
|
||||
return folder
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
log.error(f"Error updating folder: {id}")
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error updating folder"),
|
||||
)
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# Update Folder Parent Id By Id
|
||||
############################
|
||||
|
||||
|
||||
class FolderParentIdForm(BaseModel):
|
||||
parent_id: Optional[str] = None
|
||||
|
||||
|
||||
@router.post("/{id}/update/parent")
|
||||
async def update_folder_parent_id_by_id(
|
||||
id: str, form_data: FolderParentIdForm, user=Depends(get_verified_user)
|
||||
):
|
||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||
if folder:
|
||||
existing_folder = Folders.get_folder_by_parent_id_and_user_id_and_name(
|
||||
form_data.parent_id, user.id, folder.name
|
||||
)
|
||||
|
||||
if existing_folder:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Folder already exists"),
|
||||
)
|
||||
|
||||
try:
|
||||
folder = Folders.update_folder_parent_id_by_id_and_user_id(
|
||||
id, user.id, form_data.parent_id
|
||||
)
|
||||
return folder
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
log.error(f"Error updating folder: {id}")
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error updating folder"),
|
||||
)
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# Update Folder Is Expanded By Id
|
||||
############################
|
||||
|
||||
|
||||
class FolderIsExpandedForm(BaseModel):
|
||||
is_expanded: bool
|
||||
|
||||
|
||||
@router.post("/{id}/update/expanded")
|
||||
async def update_folder_is_expanded_by_id(
|
||||
id: str, form_data: FolderIsExpandedForm, user=Depends(get_verified_user)
|
||||
):
|
||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||
if folder:
|
||||
try:
|
||||
folder = Folders.update_folder_is_expanded_by_id_and_user_id(
|
||||
id, user.id, form_data.is_expanded
|
||||
)
|
||||
return folder
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
log.error(f"Error updating folder: {id}")
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error updating folder"),
|
||||
)
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||
)
|
||||
|
||||
|
||||
############################
|
||||
# Delete Folder By Id
|
||||
############################
|
||||
|
||||
|
||||
@router.delete("/{id}")
|
||||
async def delete_folder_by_id(id: str, user=Depends(get_verified_user)):
|
||||
folder = Folders.get_folder_by_id_and_user_id(id, user.id)
|
||||
if folder:
|
||||
try:
|
||||
result = Folders.delete_folder_by_id_and_user_id(id, user.id)
|
||||
if result:
|
||||
# Delete all chats in the folder
|
||||
chats = Chats.get_chats_by_folder_id_and_user_id(id, user.id)
|
||||
for chat in chats:
|
||||
Chats.delete_chat_by_id(chat.id, user.id)
|
||||
|
||||
return result
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error deleting folder"),
|
||||
)
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
log.error(f"Error deleting folder: {id}")
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT("Error deleting folder"),
|
||||
)
|
||||
else:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||
)
|
||||
|
|
@ -1042,7 +1042,7 @@ CHUNK_OVERLAP = PersistentConfig(
|
|||
DEFAULT_RAG_TEMPLATE = """You are given a user query, some textual context and rules, all inside xml tags. You have to answer the query based on the context while respecting the rules.
|
||||
|
||||
<context>
|
||||
[context]
|
||||
{{CONTEXT}}
|
||||
</context>
|
||||
|
||||
<rules>
|
||||
|
|
@ -1055,7 +1055,7 @@ DEFAULT_RAG_TEMPLATE = """You are given a user query, some textual context and r
|
|||
</rules>
|
||||
|
||||
<user_query>
|
||||
[query]
|
||||
{{QUERY}}
|
||||
</user_query>
|
||||
"""
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ class ERROR_MESSAGES(str, Enum):
|
|||
def __str__(self) -> str:
|
||||
return super().__str__()
|
||||
|
||||
DEFAULT = lambda err="": f"Something went wrong :/\n[ERROR: {err if err else ''}]"
|
||||
DEFAULT = (
|
||||
lambda err="": f'{"Something went wrong :/" if err == "" else "[ERROR: " + err + "]"}'
|
||||
)
|
||||
ENV_VAR_NOT_FOUND = "Required environment variable not found. Terminating now."
|
||||
CREATE_USER_ERROR = "Oops! Something went wrong while creating your account. Please try again later. If the issue persists, contact support for assistance."
|
||||
DELETE_USER_ERROR = "Oops! Something went wrong. We encountered an issue while trying to delete the user. Please give it another shot."
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ def upgrade():
|
|||
tags = chat_updates[chat_id]["meta"].get("tags", [])
|
||||
tags.append(tag_name)
|
||||
|
||||
chat_updates[chat_id]["meta"]["tags"] = tags
|
||||
chat_updates[chat_id]["meta"]["tags"] = list(set(tags))
|
||||
|
||||
# Update chats based on accumulated changes
|
||||
for chat_id, updates in chat_updates.items():
|
||||
|
|
|
|||
|
|
@ -28,25 +28,39 @@ def upgrade():
|
|||
unique_constraints = inspector.get_unique_constraints("tag")
|
||||
existing_indexes = inspector.get_indexes("tag")
|
||||
|
||||
print(existing_pk, unique_constraints)
|
||||
print(f"Primary Key: {existing_pk}")
|
||||
print(f"Unique Constraints: {unique_constraints}")
|
||||
print(f"Indexes: {existing_indexes}")
|
||||
|
||||
with op.batch_alter_table("tag", schema=None) as batch_op:
|
||||
# Drop unique constraints that could conflict with new primary key
|
||||
# Drop existing primary key constraint if it exists
|
||||
if existing_pk and existing_pk.get("constrained_columns"):
|
||||
pk_name = existing_pk.get("name")
|
||||
if pk_name:
|
||||
print(f"Dropping primary key constraint: {pk_name}")
|
||||
batch_op.drop_constraint(pk_name, type_="primary")
|
||||
|
||||
# Now create the new primary key with the combination of 'id' and 'user_id'
|
||||
print("Creating new primary key with 'id' and 'user_id'.")
|
||||
batch_op.create_primary_key("pk_id_user_id", ["id", "user_id"])
|
||||
|
||||
# Drop unique constraints that could conflict with the new primary key
|
||||
for constraint in unique_constraints:
|
||||
if constraint["name"] == "uq_id_user_id":
|
||||
if (
|
||||
constraint["name"] == "uq_id_user_id"
|
||||
): # Adjust this name according to what is actually returned by the inspector
|
||||
print(f"Dropping unique constraint: {constraint['name']}")
|
||||
batch_op.drop_constraint(constraint["name"], type_="unique")
|
||||
|
||||
for index in existing_indexes:
|
||||
if index["unique"]:
|
||||
# Drop the unique index
|
||||
batch_op.drop_index(index["name"])
|
||||
|
||||
# Drop existing primary key constraint if it exists
|
||||
if existing_pk and existing_pk.get("constrained_columns"):
|
||||
batch_op.drop_constraint(existing_pk["name"], type_="primary")
|
||||
|
||||
# Immediately after dropping the old primary key, create the new one
|
||||
batch_op.create_primary_key("pk_id_user_id", ["id", "user_id"])
|
||||
if not any(
|
||||
constraint["name"] == index["name"]
|
||||
for constraint in unique_constraints
|
||||
):
|
||||
# You are attempting to drop unique indexes
|
||||
print(f"Dropping unique index: {index['name']}")
|
||||
batch_op.drop_index(index["name"])
|
||||
|
||||
|
||||
def downgrade():
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
"""Add folder table
|
||||
|
||||
Revision ID: c69f45358db4
|
||||
Revises: 3ab32c4b8f59
|
||||
Create Date: 2024-10-16 02:02:35.241684
|
||||
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
revision = "c69f45358db4"
|
||||
down_revision = "3ab32c4b8f59"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_table(
|
||||
"folder",
|
||||
sa.Column("id", sa.Text(), nullable=False),
|
||||
sa.Column("parent_id", sa.Text(), nullable=True),
|
||||
sa.Column("user_id", sa.Text(), nullable=False),
|
||||
sa.Column("name", sa.Text(), nullable=False),
|
||||
sa.Column("items", sa.JSON(), nullable=True),
|
||||
sa.Column("meta", sa.JSON(), nullable=True),
|
||||
sa.Column("is_expanded", sa.Boolean(), default=False, nullable=False),
|
||||
sa.Column(
|
||||
"created_at", sa.DateTime(), server_default=sa.func.now(), nullable=False
|
||||
),
|
||||
sa.Column(
|
||||
"updated_at",
|
||||
sa.DateTime(),
|
||||
nullable=False,
|
||||
server_default=sa.func.now(),
|
||||
onupdate=sa.func.now(),
|
||||
),
|
||||
sa.PrimaryKeyConstraint("id", "user_id"),
|
||||
)
|
||||
|
||||
op.add_column(
|
||||
"chat",
|
||||
sa.Column("folder_id", sa.Text(), nullable=True),
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column("chat", "folder_id")
|
||||
|
||||
op.drop_table("folder")
|
||||
|
|
@ -7,7 +7,7 @@ import jwt
|
|||
from open_webui.apps.webui.models.users import Users
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
from open_webui.env import WEBUI_SECRET_KEY
|
||||
from fastapi import Depends, HTTPException, Request, status
|
||||
from fastapi import Depends, HTTPException, Request, Response, status
|
||||
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
||||
from passlib.context import CryptContext
|
||||
|
||||
|
|
|
|||
|
|
@ -90,3 +90,5 @@ duckduckgo-search~=6.2.13
|
|||
docker~=7.1.0
|
||||
pytest~=8.3.2
|
||||
pytest-docker~=3.1.1
|
||||
|
||||
googleapis-common-protos==1.63.2
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ dependencies = [
|
|||
"sentence-transformers==3.2.0",
|
||||
"colbert-ai==0.2.21",
|
||||
"einops==0.8.0",
|
||||
|
||||
|
||||
"ftfy==6.2.3",
|
||||
"pypdf==4.3.1",
|
||||
|
|
@ -94,7 +93,9 @@ dependencies = [
|
|||
|
||||
"docker~=7.1.0",
|
||||
"pytest~=8.3.2",
|
||||
"pytest-docker~=3.1.1"
|
||||
"pytest-docker~=3.1.1",
|
||||
|
||||
"googleapis-common-protos==1.63.2"
|
||||
]
|
||||
readme = "README.md"
|
||||
requires-python = ">= 3.11, < 3.12.0a1"
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ li p {
|
|||
|
||||
::-webkit-scrollbar-thumb {
|
||||
--tw-border-opacity: 1;
|
||||
background-color: rgba(217, 217, 227, 0.8);
|
||||
background-color: rgba(236, 236, 236, 0.8);
|
||||
border-color: rgba(255, 255, 255, var(--tw-border-opacity));
|
||||
border-radius: 9999px;
|
||||
border-width: 1px;
|
||||
|
|
@ -64,7 +64,7 @@ li p {
|
|||
|
||||
/* Dark theme scrollbar styles */
|
||||
.dark ::-webkit-scrollbar-thumb {
|
||||
background-color: rgba(69, 69, 74, 0.8); /* Darker color for dark theme */
|
||||
background-color: rgba(33, 33, 33, 0.8); /* Darker color for dark theme */
|
||||
border-color: rgba(0, 0, 0, var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ export const getAllUserChats = async (token: string) => {
|
|||
return res;
|
||||
};
|
||||
|
||||
export const getAllChatTags = async (token: string) => {
|
||||
export const getAllTags = async (token: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/all/tags`, {
|
||||
|
|
@ -579,6 +579,41 @@ export const shareChatById = async (token: string, id: string) => {
|
|||
return res;
|
||||
};
|
||||
|
||||
export const updateChatFolderIdById = async (token: string, id: string, folderId?: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/folder`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
...(token && { authorization: `Bearer ${token}` })
|
||||
},
|
||||
body: JSON.stringify({
|
||||
folder_id: folderId
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err;
|
||||
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const archiveChatById = async (token: string, id: string) => {
|
||||
let error = null;
|
||||
|
||||
|
|
|
|||
269
src/lib/apis/folders/index.ts
Normal file
269
src/lib/apis/folders/index.ts
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
import { WEBUI_API_BASE_URL } from '$lib/constants';
|
||||
|
||||
export const createNewFolder = async (token: string, name: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const getFolders = async (token: string = '') => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
}
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const getFolderById = async (token: string, id: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
}
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const updateFolderNameById = async (token: string, id: string, name: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}/update`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: name
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const updateFolderIsExpandedById = async (
|
||||
token: string,
|
||||
id: string,
|
||||
isExpanded: boolean
|
||||
) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}/update/expanded`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
is_expanded: isExpanded
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const updateFolderParentIdById = async (token: string, id: string, parentId?: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}/update/parent`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
parent_id: parentId
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
type FolderItems = {
|
||||
chat_ids: string[];
|
||||
file_ids: string[];
|
||||
};
|
||||
|
||||
export const updateFolderItemsById = async (token: string, id: string, items: FolderItems) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}/update/items`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
items: items
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const deleteFolderById = async (token: string, id: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/folders/${id}`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
authorization: `Bearer ${token}`
|
||||
}
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.then((json) => {
|
||||
return json;
|
||||
})
|
||||
.catch((err) => {
|
||||
error = err.detail;
|
||||
console.log(err);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
|
@ -651,8 +651,8 @@
|
|||
class="dark:bg-gray-900 w-fit pr-8 rounded px-2 text-xs bg-transparent outline-none text-right"
|
||||
bind:value={textSplitter}
|
||||
>
|
||||
<option value="">{$i18n.t('Default (Character)')} </option>
|
||||
<option value="token">{$i18n.t('Token (Tiktoken)')}</option>
|
||||
<option value="">{$i18n.t('Default')} ({$i18n.t('Character')})</option>
|
||||
<option value="token">{$i18n.t('Token')} ({$i18n.t('Tiktoken')})</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -184,7 +184,13 @@
|
|||
|
||||
const onDragOver = (e) => {
|
||||
e.preventDefault();
|
||||
dragged = true;
|
||||
|
||||
// Check if a file is being dragged.
|
||||
if (e.dataTransfer?.types?.includes('Files')) {
|
||||
dragged = true;
|
||||
} else {
|
||||
dragged = false;
|
||||
}
|
||||
};
|
||||
|
||||
const onDragLeave = () => {
|
||||
|
|
@ -200,8 +206,6 @@
|
|||
if (inputFiles && inputFiles.length > 0) {
|
||||
console.log(inputFiles);
|
||||
inputFilesHandler(inputFiles);
|
||||
} else {
|
||||
toast.error($i18n.t(`File not found.`));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -269,6 +269,13 @@
|
|||
await mediaRecorder.stop();
|
||||
}
|
||||
clearInterval(durationCounter);
|
||||
|
||||
if (stream) {
|
||||
const tracks = stream.getTracks();
|
||||
tracks.forEach((track) => track.stop());
|
||||
}
|
||||
|
||||
stream = null;
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
import { toast } from 'svelte-sonner';
|
||||
|
||||
import { createEventDispatcher, onMount, getContext } from 'svelte';
|
||||
import { config } from '$lib/stores';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
|
|
@ -50,15 +51,15 @@
|
|||
loadReasons();
|
||||
});
|
||||
|
||||
const submitHandler = () => {
|
||||
console.log('submitHandler');
|
||||
const saveHandler = () => {
|
||||
console.log('saveHandler');
|
||||
|
||||
if (!selectedReason) {
|
||||
toast.error($i18n.t('Please select a reason'));
|
||||
return;
|
||||
}
|
||||
|
||||
dispatch('submit', {
|
||||
dispatch('save', {
|
||||
reason: selectedReason,
|
||||
comment: comment
|
||||
});
|
||||
|
|
@ -69,7 +70,7 @@
|
|||
</script>
|
||||
|
||||
<div
|
||||
class=" my-2.5 rounded-xl px-4 py-3 border dark:border-gray-850"
|
||||
class=" my-2.5 rounded-xl px-4 py-3 border border-gray-50 dark:border-gray-850"
|
||||
id="message-feedback-{message.id}"
|
||||
>
|
||||
<div class="flex justify-between items-center">
|
||||
|
|
@ -97,7 +98,7 @@
|
|||
<div class="flex flex-wrap gap-2 text-sm mt-2.5">
|
||||
{#each reasons as reason}
|
||||
<button
|
||||
class="px-3.5 py-1 border dark:border-gray-850 hover:bg-gray-100 dark:hover:bg-gray-850 {selectedReason ===
|
||||
class="px-3.5 py-1 border border-gray-50 dark:border-gray-850 hover:bg-gray-100 dark:hover:bg-gray-850 {selectedReason ===
|
||||
reason
|
||||
? 'bg-gray-200 dark:bg-gray-800'
|
||||
: ''} transition rounded-lg"
|
||||
|
|
@ -120,14 +121,26 @@
|
|||
/>
|
||||
</div>
|
||||
|
||||
<div class="mt-2 flex justify-end">
|
||||
<div class="mt-2 gap-1.5 flex justify-end">
|
||||
{#if $config?.features.enable_community_sharing}
|
||||
<button
|
||||
class=" self-center px-3.5 py-2 rounded-xl text-sm font-medium bg-gray-50 hover:bg-gray-100 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-white transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
show = false;
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Share to OpenWebUI Community')}
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
class=" bg-emerald-700 text-white text-sm font-medium rounded-lg px-3.5 py-1.5"
|
||||
class=" bg-emerald-700 hover:bg-emerald-800 transition text-white text-sm font-medium rounded-xl px-3.5 py-1.5"
|
||||
on:click={() => {
|
||||
submitHandler();
|
||||
saveHandler();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Submit')}
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1103,7 +1103,7 @@
|
|||
<RateComment
|
||||
bind:message
|
||||
bind:show={showRateComment}
|
||||
on:submit={(e) => {
|
||||
on:save={(e) => {
|
||||
dispatch('save', {
|
||||
...message,
|
||||
annotation: {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
import {
|
||||
addTagById,
|
||||
deleteTagById,
|
||||
getAllChatTags,
|
||||
getAllTags,
|
||||
getChatList,
|
||||
getChatListByTagName,
|
||||
getTagsById,
|
||||
|
|
@ -37,7 +37,10 @@
|
|||
tags: tags
|
||||
});
|
||||
|
||||
_tags.set(await getAllChatTags(localStorage.token));
|
||||
await _tags.set(await getAllTags(localStorage.token));
|
||||
dispatch('add', {
|
||||
name: tagName
|
||||
});
|
||||
};
|
||||
|
||||
const deleteTag = async (tagName) => {
|
||||
|
|
@ -47,7 +50,7 @@
|
|||
tags: tags
|
||||
});
|
||||
|
||||
await _tags.set(await getAllChatTags(localStorage.token));
|
||||
await _tags.set(await getAllTags(localStorage.token));
|
||||
dispatch('delete', {
|
||||
name: tagName
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
<script lang="ts">
|
||||
import { getContext, createEventDispatcher } from 'svelte';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
$: dispatch('change', open);
|
||||
|
||||
import { slide } from 'svelte/transition';
|
||||
import { quintOut } from 'svelte/easing';
|
||||
|
||||
|
|
@ -7,26 +12,26 @@
|
|||
|
||||
export let open = false;
|
||||
export let className = '';
|
||||
export let buttonClassName = 'w-fit';
|
||||
export let title = null;
|
||||
|
||||
let contentHeight = 0;
|
||||
let contentElement: HTMLElement;
|
||||
|
||||
function handleClick(event) {
|
||||
if (!event.target.closest('.no-toggle')) {
|
||||
open = !open;
|
||||
}
|
||||
}
|
||||
|
||||
$: if (contentElement) {
|
||||
contentHeight = open ? contentElement.scrollHeight : 0;
|
||||
}
|
||||
export let disabled = false;
|
||||
export let hide = false;
|
||||
</script>
|
||||
|
||||
<div class={className}>
|
||||
{#if title !== null}
|
||||
<button class="w-full" on:click={handleClick}>
|
||||
<div class="w-full font-medium transition flex items-center justify-between gap-2">
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<div
|
||||
class={buttonClassName}
|
||||
on:pointerup={() => {
|
||||
if (!disabled) {
|
||||
open = !open;
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div class=" w-fit font-medium transition flex items-center justify-between gap-2">
|
||||
<div>
|
||||
{title}
|
||||
</div>
|
||||
|
|
@ -39,23 +44,28 @@
|
|||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
{:else}
|
||||
<button
|
||||
type="button"
|
||||
on:click={handleClick}
|
||||
class="flex w-full items-center gap-2 text-left text-gray-500 transition hover:text-gray-700 dark:hover:text-gray-300"
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<div
|
||||
class={buttonClassName}
|
||||
on:pointerup={() => {
|
||||
if (!disabled) {
|
||||
open = !open;
|
||||
}
|
||||
}}
|
||||
>
|
||||
<slot />
|
||||
</button>
|
||||
<div
|
||||
class="flex items-center gap-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 transition"
|
||||
>
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div
|
||||
bind:this={contentElement}
|
||||
class="overflow-hidden transition-all duration-300 ease-in-out"
|
||||
style="max-height: {contentHeight}px;"
|
||||
>
|
||||
<div>
|
||||
{#if open && !hide}
|
||||
<div transition:slide={{ duration: 300, easing: quintOut, axis: 'y' }}>
|
||||
<slot name="content" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
30
src/lib/components/common/DragGhost.svelte
Normal file
30
src/lib/components/common/DragGhost.svelte
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<script lang="ts">
|
||||
import { onDestroy, onMount } from 'svelte';
|
||||
|
||||
export let x;
|
||||
export let y;
|
||||
|
||||
let popupElement = null;
|
||||
|
||||
onMount(() => {
|
||||
document.body.appendChild(popupElement);
|
||||
document.body.style.overflow = 'hidden';
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
document.body.removeChild(popupElement);
|
||||
document.body.style.overflow = 'unset';
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
|
||||
<div
|
||||
bind:this={popupElement}
|
||||
class="fixed top-0 left-0 w-screen h-[100dvh] z-50 touch-none pointer-events-none"
|
||||
>
|
||||
<div class=" absolute text-white z-[99999]" style="top: {y + 10}px; left: {x + 10}px;">
|
||||
<slot></slot>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
<slot name="content">
|
||||
<DropdownMenu.Content
|
||||
class="w-full max-w-[130px] rounded-lg px-1 py-1.5 border border-gray-700 z-50 bg-gray-850 text-white"
|
||||
class="w-full max-w-[130px] rounded-lg px-1 py-1.5 border border-gray-900 z-50 bg-gray-850 text-white"
|
||||
sideOffset={8}
|
||||
side="bottom"
|
||||
align="start"
|
||||
|
|
|
|||
108
src/lib/components/common/Folder.svelte
Normal file
108
src/lib/components/common/Folder.svelte
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<script>
|
||||
import { getContext, createEventDispatcher, onMount, onDestroy } from 'svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
import ChevronDown from '../icons/ChevronDown.svelte';
|
||||
import ChevronRight from '../icons/ChevronRight.svelte';
|
||||
import Collapsible from './Collapsible.svelte';
|
||||
|
||||
export let open = true;
|
||||
|
||||
export let id = '';
|
||||
export let name = '';
|
||||
export let collapsible = true;
|
||||
|
||||
export let className = '';
|
||||
|
||||
let folderElement;
|
||||
|
||||
let draggedOver = false;
|
||||
|
||||
const onDragOver = (e) => {
|
||||
e.preventDefault();
|
||||
draggedOver = true;
|
||||
};
|
||||
|
||||
const onDrop = (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (folderElement.contains(e.target)) {
|
||||
console.log('Dropped on the Button');
|
||||
|
||||
try {
|
||||
// get data from the drag event
|
||||
const dataTransfer = e.dataTransfer.getData('text/plain');
|
||||
const data = JSON.parse(dataTransfer);
|
||||
console.log(data);
|
||||
dispatch('drop', data);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
draggedOver = false;
|
||||
}
|
||||
};
|
||||
|
||||
const onDragLeave = (e) => {
|
||||
e.preventDefault();
|
||||
draggedOver = false;
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
folderElement.addEventListener('dragover', onDragOver);
|
||||
folderElement.addEventListener('drop', onDrop);
|
||||
folderElement.addEventListener('dragleave', onDragLeave);
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
folderElement.addEventListener('dragover', onDragOver);
|
||||
folderElement.removeEventListener('drop', onDrop);
|
||||
folderElement.removeEventListener('dragleave', onDragLeave);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div bind:this={folderElement} class="relative {className}">
|
||||
{#if draggedOver}
|
||||
<div
|
||||
class="absolute top-0 left-0 w-full h-full rounded-sm bg-[hsla(258,88%,66%,0.1)] bg-opacity-50 dark:bg-opacity-10 z-50 pointer-events-none touch-none"
|
||||
></div>
|
||||
{/if}
|
||||
|
||||
{#if collapsible}
|
||||
<Collapsible
|
||||
bind:open
|
||||
className="w-full "
|
||||
buttonClassName="w-full"
|
||||
on:change={(e) => {
|
||||
dispatch('change', e.detail);
|
||||
}}
|
||||
>
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div class="w-full">
|
||||
<button
|
||||
class="w-full py-1.5 px-2 rounded-md flex items-center gap-1.5 text-xs text-gray-500 dark:text-gray-500 font-medium hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
>
|
||||
<div class="text-gray-300 dark:text-gray-600">
|
||||
{#if open}
|
||||
<ChevronDown className=" size-3" strokeWidth="2.5" />
|
||||
{:else}
|
||||
<ChevronRight className=" size-3" strokeWidth="2.5" />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="translate-y-[0.5px]">
|
||||
{name}
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div slot="content" class="w-full">
|
||||
<slot></slot>
|
||||
</div>
|
||||
</Collapsible>
|
||||
{:else}
|
||||
<slot></slot>
|
||||
{/if}
|
||||
</div>
|
||||
19
src/lib/components/icons/Document.svelte
Normal file
19
src/lib/components/icons/Document.svelte
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<script lang="ts">
|
||||
export let className = 'size-4';
|
||||
export let strokeWidth = '1.5';
|
||||
</script>
|
||||
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width={strokeWidth}
|
||||
stroke="currentColor"
|
||||
class={className}
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"
|
||||
/>
|
||||
</svg>
|
||||
|
|
@ -14,28 +14,23 @@
|
|||
pinnedChats,
|
||||
scrollPaginationEnabled,
|
||||
currentChatPage,
|
||||
temporaryChatEnabled,
|
||||
showArtifacts,
|
||||
showOverview,
|
||||
showControls
|
||||
temporaryChatEnabled
|
||||
} from '$lib/stores';
|
||||
import { onMount, getContext, tick, onDestroy } from 'svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
import { updateUserSettings } from '$lib/apis/users';
|
||||
import {
|
||||
deleteChatById,
|
||||
getChatList,
|
||||
getChatById,
|
||||
getChatListByTagName,
|
||||
updateChatById,
|
||||
getAllChatTags,
|
||||
archiveChatById,
|
||||
cloneChatById,
|
||||
getAllTags,
|
||||
getChatListBySearchText,
|
||||
createNewChat,
|
||||
getPinnedChatList
|
||||
getPinnedChatList,
|
||||
toggleChatPinnedStatusById,
|
||||
getChatPinnedStatusById,
|
||||
getChatById,
|
||||
updateChatFolderIdById
|
||||
} from '$lib/apis/chats';
|
||||
import { WEBUI_BASE_URL } from '$lib/constants';
|
||||
|
||||
|
|
@ -45,9 +40,13 @@
|
|||
import DeleteConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
|
||||
import Spinner from '../common/Spinner.svelte';
|
||||
import Loader from '../common/Loader.svelte';
|
||||
import FilesOverlay from '../chat/MessageInput/FilesOverlay.svelte';
|
||||
import AddFilesPlaceholder from '../AddFilesPlaceholder.svelte';
|
||||
import { select } from 'd3-selection';
|
||||
import SearchInput from './Sidebar/SearchInput.svelte';
|
||||
import Folder from '../common/Folder.svelte';
|
||||
import Plus from '../icons/Plus.svelte';
|
||||
import Tooltip from '../common/Tooltip.svelte';
|
||||
import { createNewFolder, getFolders, updateFolderParentIdById } from '$lib/apis/folders';
|
||||
import Folders from './Sidebar/Folders.svelte';
|
||||
|
||||
const BREAKPOINT = 768;
|
||||
|
||||
|
|
@ -64,12 +63,82 @@
|
|||
|
||||
let selectedTagName = null;
|
||||
|
||||
let showPinnedChat = true;
|
||||
|
||||
// Pagination variables
|
||||
let chatListLoading = false;
|
||||
let allChatsLoaded = false;
|
||||
|
||||
let folders = {};
|
||||
|
||||
const initFolders = async () => {
|
||||
const folderList = await getFolders(localStorage.token).catch((error) => {
|
||||
toast.error(error);
|
||||
return [];
|
||||
});
|
||||
|
||||
folders = {};
|
||||
|
||||
// First pass: Initialize all folder entries
|
||||
for (const folder of folderList) {
|
||||
// Ensure folder is added to folders with its data
|
||||
folders[folder.id] = { ...(folders[folder.id] || {}), ...folder };
|
||||
}
|
||||
|
||||
// Second pass: Tie child folders to their parents
|
||||
for (const folder of folderList) {
|
||||
if (folder.parent_id) {
|
||||
// Ensure the parent folder is initialized if it doesn't exist
|
||||
if (!folders[folder.parent_id]) {
|
||||
folders[folder.parent_id] = {}; // Create a placeholder if not already present
|
||||
}
|
||||
|
||||
// Initialize childrenIds array if it doesn't exist and add the current folder id
|
||||
folders[folder.parent_id].childrenIds = folders[folder.parent_id].childrenIds
|
||||
? [...folders[folder.parent_id].childrenIds, folder.id]
|
||||
: [folder.id];
|
||||
|
||||
// Sort the children by updated_at field
|
||||
folders[folder.parent_id].childrenIds.sort((a, b) => {
|
||||
return folders[b].updated_at - folders[a].updated_at;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const createFolder = async (name = 'Untitled') => {
|
||||
if (name === '') {
|
||||
toast.error($i18n.t('Folder name cannot be empty.'));
|
||||
return;
|
||||
}
|
||||
|
||||
const rootFolders = Object.values(folders).filter((folder) => folder.parent_id === null);
|
||||
if (rootFolders.find((folder) => folder.name.toLowerCase() === name.toLowerCase())) {
|
||||
// If a folder with the same name already exists, append a number to the name
|
||||
let i = 1;
|
||||
while (
|
||||
rootFolders.find((folder) => folder.name.toLowerCase() === `${name} ${i}`.toLowerCase())
|
||||
) {
|
||||
i++;
|
||||
}
|
||||
|
||||
name = `${name} ${i}`;
|
||||
}
|
||||
|
||||
const res = await createNewFolder(localStorage.token, name).catch((error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (res) {
|
||||
await initFolders();
|
||||
}
|
||||
};
|
||||
|
||||
const initChatList = async () => {
|
||||
// Reset pagination variables
|
||||
tags.set(await getAllTags(localStorage.token));
|
||||
|
||||
currentChatPage.set(1);
|
||||
allChatsLoaded = false;
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
|
|
@ -93,7 +162,7 @@
|
|||
|
||||
// once the bottom of the list has been reached (no results) there is no need to continue querying
|
||||
allChatsLoaded = newChatList.length === 0;
|
||||
await chats.set([...$chats, ...newChatList]);
|
||||
await chats.set([...($chats ? $chats : []), ...newChatList]);
|
||||
|
||||
chatListLoading = false;
|
||||
};
|
||||
|
|
@ -116,6 +185,10 @@
|
|||
searchDebounceTimeout = setTimeout(async () => {
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatListBySearchText(localStorage.token, search));
|
||||
|
||||
if ($chats.length === 0) {
|
||||
tags.set(await getAllTags(localStorage.token));
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
};
|
||||
|
|
@ -127,6 +200,8 @@
|
|||
});
|
||||
|
||||
if (res) {
|
||||
tags.set(await getAllTags(localStorage.token));
|
||||
|
||||
if ($chatId === id) {
|
||||
await chatId.set('');
|
||||
await tick();
|
||||
|
|
@ -136,7 +211,6 @@
|
|||
allChatsLoaded = false;
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
}
|
||||
};
|
||||
|
|
@ -171,14 +245,11 @@
|
|||
const tagEventHandler = async (type, tagName, chatId) => {
|
||||
console.log(type, tagName, chatId);
|
||||
if (type === 'delete') {
|
||||
if (selectedTagName === tagName) {
|
||||
if ($tags.map((t) => t.name).includes(tagName)) {
|
||||
await chats.set(await getChatListByTagName(localStorage.token, tagName));
|
||||
} else {
|
||||
selectedTagName = null;
|
||||
await initChatList();
|
||||
}
|
||||
}
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatListBySearchText(localStorage.token, search, $currentChatPage));
|
||||
} else if (type === 'add') {
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatListBySearchText(localStorage.token, search, $currentChatPage));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -186,7 +257,13 @@
|
|||
|
||||
const onDragOver = (e) => {
|
||||
e.preventDefault();
|
||||
dragged = true;
|
||||
|
||||
// Check if a file is being dragged.
|
||||
if (e.dataTransfer?.types?.includes('Files')) {
|
||||
dragged = true;
|
||||
} else {
|
||||
dragged = false;
|
||||
}
|
||||
};
|
||||
|
||||
const onDragLeave = () => {
|
||||
|
|
@ -195,19 +272,19 @@
|
|||
|
||||
const onDrop = async (e) => {
|
||||
e.preventDefault();
|
||||
console.log(e);
|
||||
console.log(e); // Log the drop event
|
||||
|
||||
// Perform file drop check and handle it accordingly
|
||||
if (e.dataTransfer?.files) {
|
||||
const inputFiles = Array.from(e.dataTransfer?.files);
|
||||
|
||||
if (inputFiles && inputFiles.length > 0) {
|
||||
console.log(inputFiles);
|
||||
inputFilesHandler(inputFiles);
|
||||
} else {
|
||||
toast.error($i18n.t(`File not found.`));
|
||||
console.log(inputFiles); // Log the dropped files
|
||||
inputFilesHandler(inputFiles); // Handle the dropped files
|
||||
}
|
||||
}
|
||||
|
||||
dragged = false;
|
||||
dragged = false; // Reset dragged status after drop
|
||||
};
|
||||
|
||||
let touchstart;
|
||||
|
|
@ -256,6 +333,8 @@
|
|||
};
|
||||
|
||||
onMount(async () => {
|
||||
showPinnedChat = localStorage?.showPinnedChat ? localStorage.showPinnedChat === 'true' : true;
|
||||
|
||||
mobile.subscribe((e) => {
|
||||
if ($showSidebar && e) {
|
||||
showSidebar.set(false);
|
||||
|
|
@ -271,6 +350,7 @@
|
|||
localStorage.sidebar = value;
|
||||
});
|
||||
|
||||
await initFolders();
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
await initChatList();
|
||||
|
||||
|
|
@ -311,7 +391,8 @@
|
|||
<ArchivedChatsModal
|
||||
bind:show={$showArchivedChats}
|
||||
on:change={async () => {
|
||||
await chats.set(await getChatList(localStorage.token));
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
await initChatList();
|
||||
}}
|
||||
/>
|
||||
|
||||
|
|
@ -342,8 +423,8 @@
|
|||
bind:this={navElement}
|
||||
id="sidebar"
|
||||
class="h-screen max-h-[100dvh] min-h-screen select-none {$showSidebar
|
||||
? 'md:relative w-[260px]'
|
||||
: '-translate-x-[260px] w-[0px]'} bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-200 text-sm transition fixed z-50 top-0 left-0
|
||||
? 'md:relative w-[260px] max-w-[260px]'
|
||||
: '-translate-x-[260px] w-[0px]'} bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-200 text-sm transition fixed z-50 top-0 left-0 overflow-x-hidden
|
||||
"
|
||||
data-state={$showSidebar}
|
||||
>
|
||||
|
|
@ -360,14 +441,14 @@
|
|||
</div>
|
||||
{/if}
|
||||
<div
|
||||
class="py-2.5 my-auto flex flex-col justify-between h-screen max-h-[100dvh] w-[260px] z-50 {$showSidebar
|
||||
class="py-2.5 my-auto flex flex-col justify-between h-screen max-h-[100dvh] w-[260px] overflow-x-hidden z-50 {$showSidebar
|
||||
? ''
|
||||
: 'invisible'}"
|
||||
>
|
||||
<div class="px-2.5 flex justify-between space-x-1 text-gray-600 dark:text-gray-400">
|
||||
<a
|
||||
id="sidebar-new-chat-button"
|
||||
class="flex flex-1 justify-between rounded-xl px-2 h-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
class="flex flex-1 justify-between rounded-lg px-2 h-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
href="/"
|
||||
draggable="false"
|
||||
on:click={async () => {
|
||||
|
|
@ -411,7 +492,7 @@
|
|||
</a>
|
||||
|
||||
<button
|
||||
class=" cursor-pointer px-2 py-2 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
class=" cursor-pointer px-2 py-2 flex rounded-lg hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
on:click={() => {
|
||||
showSidebar.set(!$showSidebar);
|
||||
}}
|
||||
|
|
@ -438,7 +519,7 @@
|
|||
{#if $user?.role === 'admin'}
|
||||
<div class="px-2.5 flex justify-center text-gray-800 dark:text-gray-200">
|
||||
<a
|
||||
class="flex-grow flex space-x-3 rounded-xl px-2.5 py-2 hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
class="flex-grow flex space-x-3 rounded-lg px-2.5 py-2 hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
href="/workspace"
|
||||
on:click={() => {
|
||||
selectedChatId = null;
|
||||
|
|
@ -474,6 +555,31 @@
|
|||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="relative {$temporaryChatEnabled ? 'opacity-20' : ''}">
|
||||
{#if $temporaryChatEnabled}
|
||||
<div class="absolute z-40 w-full h-full flex justify-center"></div>
|
||||
{/if}
|
||||
|
||||
<div class="absolute z-40 right-4 top-1">
|
||||
<Tooltip content={$i18n.t('New folder')}>
|
||||
<button
|
||||
class="p-1 rounded-lg bg-gray-50 hover:bg-gray-100 dark:bg-gray-950 dark:hover:bg-gray-900 transition"
|
||||
on:click={() => {
|
||||
createFolder();
|
||||
}}
|
||||
>
|
||||
<Plus />
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
<SearchInput
|
||||
bind:value={search}
|
||||
on:input={searchDebounceHandler}
|
||||
placeholder={$i18n.t('Search')}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="relative flex flex-col flex-1 overflow-y-auto {$temporaryChatEnabled
|
||||
? 'opacity-20'
|
||||
|
|
@ -483,120 +589,169 @@
|
|||
<div class="absolute z-40 w-full h-full flex justify-center"></div>
|
||||
{/if}
|
||||
|
||||
<div class="px-2 mt-0.5 mb-2 flex justify-center space-x-2">
|
||||
<div class="flex w-full rounded-xl" id="chat-search">
|
||||
<div class="self-center pl-3 py-2 rounded-l-xl bg-transparent">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
{#if !search && $pinnedChats.length > 0}
|
||||
<div class="flex flex-col space-y-1 rounded-xl">
|
||||
<Folder
|
||||
className="px-2"
|
||||
bind:open={showPinnedChat}
|
||||
on:change={(e) => {
|
||||
localStorage.setItem('showPinnedChat', e.detail);
|
||||
console.log(e.detail);
|
||||
}}
|
||||
on:drop={async (e) => {
|
||||
const { type, id } = e.detail;
|
||||
|
||||
<input
|
||||
class="w-full rounded-r-xl py-1.5 pl-2.5 pr-4 text-sm bg-transparent dark:text-gray-300 outline-none"
|
||||
placeholder={$i18n.t('Search')}
|
||||
bind:value={search}
|
||||
on:input={() => {
|
||||
searchDebounceHandler();
|
||||
if (type === 'chat') {
|
||||
const chat = await getChatById(localStorage.token, id);
|
||||
|
||||
if (chat) {
|
||||
console.log(chat);
|
||||
if (chat.folder_id) {
|
||||
const res = await updateChatFolderIdById(
|
||||
localStorage.token,
|
||||
chat.id,
|
||||
null
|
||||
).catch((error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (res) {
|
||||
initChatList();
|
||||
await initFolders();
|
||||
}
|
||||
}
|
||||
|
||||
if (!chat.pinned) {
|
||||
const res = await toggleChatPinnedStatusById(localStorage.token, id);
|
||||
|
||||
if (res) {
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
initChatList();
|
||||
await initFolders();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}}
|
||||
name={$i18n.t('Pinned')}
|
||||
>
|
||||
<div
|
||||
class="ml-3 pl-1 mt-[1px] flex flex-col overflow-y-auto scrollbar-hidden border-s border-gray-100 dark:border-gray-900"
|
||||
>
|
||||
{#each $pinnedChats as chat, idx}
|
||||
<ChatItem
|
||||
className=""
|
||||
id={chat.id}
|
||||
title={chat.title}
|
||||
{shiftKey}
|
||||
selected={selectedChatId === chat.id}
|
||||
on:select={() => {
|
||||
selectedChatId = chat.id;
|
||||
}}
|
||||
on:unselect={() => {
|
||||
selectedChatId = null;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
if ((e?.detail ?? '') === 'shift') {
|
||||
deleteChatHandler(chat.id);
|
||||
} else {
|
||||
deleteChat = chat;
|
||||
showDeleteConfirm = true;
|
||||
}
|
||||
}}
|
||||
on:change={async () => {
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
initChatList();
|
||||
}}
|
||||
on:tag={(e) => {
|
||||
const { type, name } = e.detail;
|
||||
tagEventHandler(type, name, chat.id);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
</Folder>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class=" flex-1 flex flex-col overflow-y-auto scrollbar-hidden">
|
||||
{#if !search && folders}
|
||||
<Folders
|
||||
{folders}
|
||||
on:update={async (e) => {
|
||||
initChatList();
|
||||
await initFolders();
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if $tags.length > 0}
|
||||
<div class="px-3.5 mb-2.5 flex gap-0.5 flex-wrap">
|
||||
<button
|
||||
class="px-2.5 py-[1px] text-xs transition {selectedTagName === null
|
||||
? 'bg-gray-100 dark:bg-gray-900'
|
||||
: ' '} rounded-md font-medium"
|
||||
on:click={async () => {
|
||||
selectedTagName = null;
|
||||
await initChatList();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('all')}
|
||||
</button>
|
||||
{#each $tags as tag}
|
||||
<button
|
||||
class="px-2.5 py-[1px] text-xs transition {selectedTagName === tag.name
|
||||
? 'bg-gray-100 dark:bg-gray-900'
|
||||
: ''} rounded-md font-medium"
|
||||
on:click={async () => {
|
||||
selectedTagName = tag.name;
|
||||
scrollPaginationEnabled.set(false);
|
||||
<Folder
|
||||
collapsible={!search}
|
||||
className="px-2"
|
||||
name={$i18n.t('All chats')}
|
||||
on:drop={async (e) => {
|
||||
const { type, id } = e.detail;
|
||||
|
||||
let taggedChatList = await getChatListByTagName(localStorage.token, tag.name);
|
||||
if (taggedChatList.length === 0) {
|
||||
await tags.set(await getAllChatTags(localStorage.token));
|
||||
// if the tag we deleted is no longer a valid tag, return to main chat list view
|
||||
await initChatList();
|
||||
} else {
|
||||
await chats.set(taggedChatList);
|
||||
}
|
||||
chatListLoading = false;
|
||||
}}
|
||||
>
|
||||
{tag.name}
|
||||
</button>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
if (type === 'chat') {
|
||||
const chat = await getChatById(localStorage.token, id);
|
||||
|
||||
{#if !search && $pinnedChats.length > 0}
|
||||
<div class="pl-2 pb-2 flex flex-col space-y-1">
|
||||
<div class="">
|
||||
<div class="w-full pl-2.5 text-xs text-gray-500 dark:text-gray-500 font-medium pb-1.5">
|
||||
{$i18n.t('Pinned')}
|
||||
</div>
|
||||
if (chat) {
|
||||
console.log(chat);
|
||||
if (chat.folder_id) {
|
||||
const res = await updateChatFolderIdById(localStorage.token, chat.id, null).catch(
|
||||
(error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
{#each $pinnedChats as chat, idx}
|
||||
<ChatItem
|
||||
{chat}
|
||||
{shiftKey}
|
||||
selected={selectedChatId === chat.id}
|
||||
on:select={() => {
|
||||
selectedChatId = chat.id;
|
||||
}}
|
||||
on:unselect={() => {
|
||||
selectedChatId = null;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
if ((e?.detail ?? '') === 'shift') {
|
||||
deleteChatHandler(chat.id);
|
||||
} else {
|
||||
deleteChat = chat;
|
||||
showDeleteConfirm = true;
|
||||
if (res) {
|
||||
initChatList();
|
||||
await initFolders();
|
||||
}
|
||||
}}
|
||||
on:tag={(e) => {
|
||||
const { type, name } = e.detail;
|
||||
tagEventHandler(type, name, chat.id);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
}
|
||||
|
||||
<div class="pl-2 flex-1 flex flex-col space-y-1 overflow-y-auto scrollbar-hidden">
|
||||
{#if $chats}
|
||||
{#each $chats as chat, idx}
|
||||
{#if idx === 0 || (idx > 0 && chat.time_range !== $chats[idx - 1].time_range)}
|
||||
<div
|
||||
class="w-full pl-2.5 text-xs text-gray-500 dark:text-gray-500 font-medium {idx === 0
|
||||
? ''
|
||||
: 'pt-5'} pb-0.5"
|
||||
>
|
||||
{$i18n.t(chat.time_range)}
|
||||
<!-- localisation keys for time_range to be recognized from the i18next parser (so they don't get automatically removed):
|
||||
if (chat.pinned) {
|
||||
const res = await toggleChatPinnedStatusById(localStorage.token, id);
|
||||
|
||||
if (res) {
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
initChatList();
|
||||
await initFolders();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (type === 'folder') {
|
||||
if (folders[id].parent_id === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
const res = await updateFolderParentIdById(localStorage.token, id, null).catch(
|
||||
(error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
if (res) {
|
||||
await initFolders();
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div class="pt-1.5">
|
||||
{#if $chats}
|
||||
{#each $chats as chat, idx}
|
||||
{#if idx === 0 || (idx > 0 && chat.time_range !== $chats[idx - 1].time_range)}
|
||||
<div
|
||||
class="w-full pl-2.5 text-xs text-gray-500 dark:text-gray-500 font-medium {idx ===
|
||||
0
|
||||
? ''
|
||||
: 'pt-5'} pb-1.5"
|
||||
>
|
||||
{$i18n.t(chat.time_range)}
|
||||
<!-- localisation keys for time_range to be recognized from the i18next parser (so they don't get automatically removed):
|
||||
{$i18n.t('Today')}
|
||||
{$i18n.t('Yesterday')}
|
||||
{$i18n.t('Previous 7 days')}
|
||||
|
|
@ -614,60 +769,68 @@
|
|||
{$i18n.t('November')}
|
||||
{$i18n.t('December')}
|
||||
-->
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<ChatItem
|
||||
{chat}
|
||||
{shiftKey}
|
||||
selected={selectedChatId === chat.id}
|
||||
on:select={() => {
|
||||
selectedChatId = chat.id;
|
||||
}}
|
||||
on:unselect={() => {
|
||||
selectedChatId = null;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
if ((e?.detail ?? '') === 'shift') {
|
||||
deleteChatHandler(chat.id);
|
||||
} else {
|
||||
deleteChat = chat;
|
||||
showDeleteConfirm = true;
|
||||
}
|
||||
}}
|
||||
on:tag={(e) => {
|
||||
const { type, name } = e.detail;
|
||||
tagEventHandler(type, name, chat.id);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
<ChatItem
|
||||
className=""
|
||||
id={chat.id}
|
||||
title={chat.title}
|
||||
{shiftKey}
|
||||
selected={selectedChatId === chat.id}
|
||||
on:select={() => {
|
||||
selectedChatId = chat.id;
|
||||
}}
|
||||
on:unselect={() => {
|
||||
selectedChatId = null;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
if ((e?.detail ?? '') === 'shift') {
|
||||
deleteChatHandler(chat.id);
|
||||
} else {
|
||||
deleteChat = chat;
|
||||
showDeleteConfirm = true;
|
||||
}
|
||||
}}
|
||||
on:change={async () => {
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
initChatList();
|
||||
}}
|
||||
on:tag={(e) => {
|
||||
const { type, name } = e.detail;
|
||||
tagEventHandler(type, name, chat.id);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
|
||||
{#if $scrollPaginationEnabled && !allChatsLoaded}
|
||||
<Loader
|
||||
on:visible={(e) => {
|
||||
if (!chatListLoading) {
|
||||
loadMoreChats();
|
||||
}
|
||||
}}
|
||||
>
|
||||
{#if $scrollPaginationEnabled && !allChatsLoaded}
|
||||
<Loader
|
||||
on:visible={(e) => {
|
||||
if (!chatListLoading) {
|
||||
loadMoreChats();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div
|
||||
class="w-full flex justify-center py-1 text-xs animate-pulse items-center gap-2"
|
||||
>
|
||||
<Spinner className=" size-4" />
|
||||
<div class=" ">Loading...</div>
|
||||
</div>
|
||||
</Loader>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class="w-full flex justify-center py-1 text-xs animate-pulse items-center gap-2">
|
||||
<Spinner className=" size-4" />
|
||||
<div class=" ">Loading...</div>
|
||||
</div>
|
||||
</Loader>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class="w-full flex justify-center py-1 text-xs animate-pulse items-center gap-2">
|
||||
<Spinner className=" size-4" />
|
||||
<div class=" ">Loading...</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</Folder>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-2.5 pb-safe-bottom">
|
||||
<!-- <hr class=" border-gray-900 mb-1 w-full" /> -->
|
||||
|
||||
<div class="px-2">
|
||||
<div class="flex flex-col font-primary">
|
||||
{#if $user !== undefined}
|
||||
<UserMenu
|
||||
|
|
@ -679,7 +842,7 @@
|
|||
}}
|
||||
>
|
||||
<button
|
||||
class=" flex rounded-xl py-3 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
class=" flex items-center rounded-xl py-2.5 px-2.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
on:click={() => {
|
||||
showDropdown = !showDropdown;
|
||||
}}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
getArchivedChatList
|
||||
} from '$lib/apis/chats';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
export let show = false;
|
||||
|
|
@ -30,7 +29,6 @@
|
|||
});
|
||||
|
||||
chats = await getArchivedChatList(localStorage.token);
|
||||
|
||||
dispatch('change');
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<script lang="ts">
|
||||
import { toast } from 'svelte-sonner';
|
||||
import { goto, invalidate, invalidateAll } from '$app/navigation';
|
||||
import { onMount, getContext, createEventDispatcher, tick } from 'svelte';
|
||||
import { onMount, getContext, createEventDispatcher, tick, onDestroy } from 'svelte';
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
archiveChatById,
|
||||
cloneChatById,
|
||||
deleteChatById,
|
||||
getAllTags,
|
||||
getChatList,
|
||||
getChatListByTagName,
|
||||
getPinnedChatList,
|
||||
|
|
@ -22,7 +23,8 @@
|
|||
mobile,
|
||||
pinnedChats,
|
||||
showSidebar,
|
||||
currentChatPage
|
||||
currentChatPage,
|
||||
tags
|
||||
} from '$lib/stores';
|
||||
|
||||
import ChatMenu from './ChatMenu.svelte';
|
||||
|
|
@ -30,8 +32,16 @@
|
|||
import GarbageBin from '$lib/components/icons/GarbageBin.svelte';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
import ArchiveBox from '$lib/components/icons/ArchiveBox.svelte';
|
||||
import DragGhost from '$lib/components/common/DragGhost.svelte';
|
||||
import Check from '$lib/components/icons/Check.svelte';
|
||||
import XMark from '$lib/components/icons/XMark.svelte';
|
||||
import Document from '$lib/components/icons/Document.svelte';
|
||||
|
||||
export let className = '';
|
||||
|
||||
export let id;
|
||||
export let title;
|
||||
|
||||
export let chat;
|
||||
export let selected = false;
|
||||
export let shiftKey = false;
|
||||
|
||||
|
|
@ -40,7 +50,7 @@
|
|||
let showShareChatModal = false;
|
||||
let confirmEdit = false;
|
||||
|
||||
let chatTitle = chat.title;
|
||||
let chatTitle = title;
|
||||
|
||||
const editChatTitle = async (id, title) => {
|
||||
if (title === '') {
|
||||
|
|
@ -77,6 +87,7 @@
|
|||
|
||||
const archiveChatHandler = async (id) => {
|
||||
await archiveChatById(localStorage.token, id);
|
||||
tags.set(await getAllTags(localStorage.token));
|
||||
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
|
|
@ -86,14 +97,89 @@
|
|||
const focusEdit = async (node: HTMLInputElement) => {
|
||||
node.focus();
|
||||
};
|
||||
|
||||
let itemElement;
|
||||
|
||||
let dragged = false;
|
||||
let x = 0;
|
||||
let y = 0;
|
||||
|
||||
const dragImage = new Image();
|
||||
dragImage.src =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
||||
|
||||
const onDragStart = (event) => {
|
||||
event.stopPropagation();
|
||||
|
||||
event.dataTransfer.setDragImage(dragImage, 0, 0);
|
||||
|
||||
// Set the data to be transferred
|
||||
event.dataTransfer.setData(
|
||||
'text/plain',
|
||||
JSON.stringify({
|
||||
type: 'chat',
|
||||
id: id
|
||||
})
|
||||
);
|
||||
|
||||
dragged = true;
|
||||
itemElement.style.opacity = '0.5'; // Optional: Visual cue to show it's being dragged
|
||||
};
|
||||
|
||||
const onDrag = (event) => {
|
||||
event.stopPropagation();
|
||||
|
||||
x = event.clientX;
|
||||
y = event.clientY;
|
||||
};
|
||||
|
||||
const onDragEnd = (event) => {
|
||||
event.stopPropagation();
|
||||
|
||||
itemElement.style.opacity = '1'; // Reset visual cue after drag
|
||||
dragged = false;
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
if (itemElement) {
|
||||
// Event listener for when dragging starts
|
||||
itemElement.addEventListener('dragstart', onDragStart);
|
||||
// Event listener for when dragging occurs (optional)
|
||||
itemElement.addEventListener('drag', onDrag);
|
||||
// Event listener for when dragging ends
|
||||
itemElement.addEventListener('dragend', onDragEnd);
|
||||
}
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
if (itemElement) {
|
||||
itemElement.removeEventListener('dragstart', onDragStart);
|
||||
itemElement.removeEventListener('drag', onDrag);
|
||||
itemElement.removeEventListener('dragend', onDragEnd);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<ShareChatModal bind:show={showShareChatModal} chatId={chat.id} />
|
||||
<ShareChatModal bind:show={showShareChatModal} chatId={id} />
|
||||
|
||||
<div class=" w-full pr-2 relative group">
|
||||
{#if dragged && x && y}
|
||||
<DragGhost {x} {y}>
|
||||
<div class=" bg-black/80 backdrop-blur-2xl px-2 py-1 rounded-lg w-fit max-w-40">
|
||||
<div class="flex items-center gap-1">
|
||||
<Document className=" size-[18px]" strokeWidth="2" />
|
||||
<div class=" text-xs text-white line-clamp-1">
|
||||
{title}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DragGhost>
|
||||
{/if}
|
||||
|
||||
<div bind:this={itemElement} class=" w-full {className} relative group" draggable="true">
|
||||
{#if confirmEdit}
|
||||
<div
|
||||
class=" w-full flex justify-between rounded-xl px-3 py-2 {chat.id === $chatId || confirmEdit
|
||||
class=" w-full flex justify-between rounded-lg px-[11px] py-[7px] {id === $chatId ||
|
||||
confirmEdit
|
||||
? 'bg-gray-200 dark:bg-gray-900'
|
||||
: selected
|
||||
? 'bg-gray-100 dark:bg-gray-950'
|
||||
|
|
@ -107,12 +193,13 @@
|
|||
</div>
|
||||
{:else}
|
||||
<a
|
||||
class=" w-full flex justify-between rounded-xl px-3 py-2 {chat.id === $chatId || confirmEdit
|
||||
class=" w-full flex justify-between rounded-lg px-[11px] py-[7px] {id === $chatId ||
|
||||
confirmEdit
|
||||
? 'bg-gray-200 dark:bg-gray-900'
|
||||
: selected
|
||||
? 'bg-gray-100 dark:bg-gray-950'
|
||||
: ' group-hover:bg-gray-100 dark:group-hover:bg-gray-950'} whitespace-nowrap text-ellipsis"
|
||||
href="/c/{chat.id}"
|
||||
href="/c/{id}"
|
||||
on:click={() => {
|
||||
dispatch('select');
|
||||
|
||||
|
|
@ -121,7 +208,7 @@
|
|||
}
|
||||
}}
|
||||
on:dblclick={() => {
|
||||
chatTitle = chat.title;
|
||||
chatTitle = title;
|
||||
confirmEdit = true;
|
||||
}}
|
||||
on:mouseenter={(e) => {
|
||||
|
|
@ -135,7 +222,7 @@
|
|||
>
|
||||
<div class=" flex self-center flex-1 w-full">
|
||||
<div class=" text-left self-center overflow-hidden w-full h-[20px]">
|
||||
{chat.title}
|
||||
{title}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
|
@ -144,12 +231,14 @@
|
|||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div
|
||||
class="
|
||||
{chat.id === $chatId || confirmEdit
|
||||
{id === $chatId || confirmEdit
|
||||
? 'from-gray-200 dark:from-gray-900'
|
||||
: selected
|
||||
? 'from-gray-100 dark:from-gray-950'
|
||||
: 'invisible group-hover:visible from-gray-100 dark:from-gray-950'}
|
||||
absolute right-[10px] top-[6px] py-1 pr-2 pl-5 bg-gradient-to-l from-80%
|
||||
absolute {className === 'pr-2'
|
||||
? 'right-[8px]'
|
||||
: 'right-0'} top-[5px] py-1 pr-0.5 mr-2 pl-5 bg-gradient-to-l from-80%
|
||||
|
||||
to-transparent"
|
||||
on:mouseenter={(e) => {
|
||||
|
|
@ -160,28 +249,19 @@
|
|||
}}
|
||||
>
|
||||
{#if confirmEdit}
|
||||
<div class="flex self-center space-x-1.5 z-10">
|
||||
<div
|
||||
class="flex self-center items-center space-x-1.5 z-10 translate-y-[0.5px] -translate-x-[0.5px]"
|
||||
>
|
||||
<Tooltip content={$i18n.t('Confirm')}>
|
||||
<button
|
||||
class=" self-center dark:hover:text-white transition"
|
||||
on:click={() => {
|
||||
editChatTitle(chat.id, chatTitle);
|
||||
editChatTitle(id, chatTitle);
|
||||
confirmEdit = false;
|
||||
chatTitle = '';
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
<Check className=" size-3.5" strokeWidth="2.5" />
|
||||
</button>
|
||||
</Tooltip>
|
||||
|
||||
|
|
@ -193,16 +273,7 @@
|
|||
chatTitle = '';
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
|
||||
/>
|
||||
</svg>
|
||||
<XMark strokeWidth="2.5" />
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
|
@ -212,7 +283,7 @@
|
|||
<button
|
||||
class=" self-center dark:hover:text-white transition"
|
||||
on:click={() => {
|
||||
archiveChatHandler(chat.id);
|
||||
archiveChatHandler(id);
|
||||
}}
|
||||
type="button"
|
||||
>
|
||||
|
|
@ -235,18 +306,18 @@
|
|||
{:else}
|
||||
<div class="flex self-center space-x-1 z-10">
|
||||
<ChatMenu
|
||||
chatId={chat.id}
|
||||
chatId={id}
|
||||
cloneChatHandler={() => {
|
||||
cloneChatHandler(chat.id);
|
||||
cloneChatHandler(id);
|
||||
}}
|
||||
shareHandler={() => {
|
||||
showShareChatModal = true;
|
||||
}}
|
||||
archiveChatHandler={() => {
|
||||
archiveChatHandler(chat.id);
|
||||
archiveChatHandler(id);
|
||||
}}
|
||||
renameHandler={() => {
|
||||
chatTitle = chat.title;
|
||||
chatTitle = title;
|
||||
|
||||
confirmEdit = true;
|
||||
}}
|
||||
|
|
@ -257,7 +328,7 @@
|
|||
dispatch('unselect');
|
||||
}}
|
||||
on:change={async () => {
|
||||
await pinnedChats.set(await getPinnedChatList(localStorage.token));
|
||||
dispatch('change');
|
||||
}}
|
||||
on:tag={(e) => {
|
||||
dispatch('tag', e.detail);
|
||||
|
|
@ -283,7 +354,7 @@
|
|||
</button>
|
||||
</ChatMenu>
|
||||
|
||||
{#if chat.id === $chatId}
|
||||
{#if id === $chatId}
|
||||
<!-- Shortcut support using "delete-chat-button" id -->
|
||||
<button
|
||||
id="delete-chat-button"
|
||||
|
|
|
|||
|
|
@ -15,13 +15,8 @@
|
|||
import DocumentDuplicate from '$lib/components/icons/DocumentDuplicate.svelte';
|
||||
import Bookmark from '$lib/components/icons/Bookmark.svelte';
|
||||
import BookmarkSlash from '$lib/components/icons/BookmarkSlash.svelte';
|
||||
import {
|
||||
addTagById,
|
||||
deleteTagById,
|
||||
getChatPinnedStatusById,
|
||||
getTagsById,
|
||||
toggleChatPinnedStatusById
|
||||
} from '$lib/apis/chats';
|
||||
import { getChatPinnedStatusById, toggleChatPinnedStatusById } from '$lib/apis/chats';
|
||||
import { chats } from '$lib/stores';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
|
|
@ -65,14 +60,14 @@
|
|||
|
||||
<div slot="content">
|
||||
<DropdownMenu.Content
|
||||
class="w-full max-w-[180px] rounded-xl px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-850 dark:text-white shadow"
|
||||
class="w-full max-w-[160px] rounded-xl px-1 py-1.5 z-50 bg-white dark:bg-gray-850 dark:text-white shadow-xl"
|
||||
sideOffset={-2}
|
||||
side="bottom"
|
||||
align="start"
|
||||
transition={flyAndScale}
|
||||
>
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
pinHandler();
|
||||
}}
|
||||
|
|
@ -87,7 +82,7 @@
|
|||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
renameHandler();
|
||||
}}
|
||||
|
|
@ -97,7 +92,7 @@
|
|||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
cloneChatHandler();
|
||||
}}
|
||||
|
|
@ -107,7 +102,7 @@
|
|||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
archiveChatHandler();
|
||||
}}
|
||||
|
|
@ -117,7 +112,7 @@
|
|||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
shareHandler();
|
||||
}}
|
||||
|
|
@ -127,7 +122,7 @@
|
|||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
deleteHandler();
|
||||
}}
|
||||
|
|
@ -136,16 +131,25 @@
|
|||
<div class="flex items-center">{$i18n.t('Delete')}</div>
|
||||
</DropdownMenu.Item>
|
||||
|
||||
<hr class="border-gray-100 dark:border-gray-800 mt-2.5 mb-1.5" />
|
||||
<hr class="border-gray-100 dark:border-gray-800 mt-1 mb-1" />
|
||||
|
||||
<div class="flex p-1">
|
||||
<Tags
|
||||
{chatId}
|
||||
on:add={(e) => {
|
||||
dispatch('tag', {
|
||||
type: 'add',
|
||||
name: e.detail.name
|
||||
});
|
||||
|
||||
show = false;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
dispatch('tag', {
|
||||
type: 'delete',
|
||||
name: e.detail.name
|
||||
});
|
||||
|
||||
show = false;
|
||||
}}
|
||||
on:close={() => {
|
||||
|
|
|
|||
29
src/lib/components/layout/Sidebar/Folders.svelte
Normal file
29
src/lib/components/layout/Sidebar/Folders.svelte
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<script lang="ts">
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
import RecursiveFolder from './RecursiveFolder.svelte';
|
||||
export let folders = {};
|
||||
|
||||
let folderList = [];
|
||||
// Get the list of folders that have no parent, sorted by name alphabetically
|
||||
$: folderList = Object.keys(folders)
|
||||
.filter((key) => folders[key].parent_id === null)
|
||||
.sort((a, b) =>
|
||||
folders[a].name.localeCompare(folders[b].name, undefined, {
|
||||
numeric: true,
|
||||
sensitivity: 'base'
|
||||
})
|
||||
);
|
||||
</script>
|
||||
|
||||
{#each folderList as folderId (folderId)}
|
||||
<RecursiveFolder
|
||||
className="px-2"
|
||||
{folders}
|
||||
{folderId}
|
||||
on:update={(e) => {
|
||||
dispatch('update', e.detail);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
58
src/lib/components/layout/Sidebar/Folders/FolderMenu.svelte
Normal file
58
src/lib/components/layout/Sidebar/Folders/FolderMenu.svelte
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<script lang="ts">
|
||||
import { DropdownMenu } from 'bits-ui';
|
||||
import { flyAndScale } from '$lib/utils/transitions';
|
||||
import { getContext, createEventDispatcher } from 'svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
import Dropdown from '$lib/components/common/Dropdown.svelte';
|
||||
import GarbageBin from '$lib/components/icons/GarbageBin.svelte';
|
||||
import Pencil from '$lib/components/icons/Pencil.svelte';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
|
||||
let show = false;
|
||||
</script>
|
||||
|
||||
<Dropdown
|
||||
bind:show
|
||||
on:change={(e) => {
|
||||
if (e.detail === false) {
|
||||
dispatch('close');
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Tooltip content={$i18n.t('More')}>
|
||||
<slot />
|
||||
</Tooltip>
|
||||
|
||||
<div slot="content">
|
||||
<DropdownMenu.Content
|
||||
class="w-full max-w-[160px] rounded-lg px-1 py-1.5 z-50 bg-white dark:bg-gray-850 dark:text-white shadow-xl"
|
||||
sideOffset={-2}
|
||||
side="bottom"
|
||||
align="start"
|
||||
transition={flyAndScale}
|
||||
>
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
dispatch('rename');
|
||||
}}
|
||||
>
|
||||
<Pencil strokeWidth="2" />
|
||||
<div class="flex items-center">{$i18n.t('Rename')}</div>
|
||||
</DropdownMenu.Item>
|
||||
|
||||
<DropdownMenu.Item
|
||||
class="flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
|
||||
on:click={() => {
|
||||
dispatch('delete');
|
||||
}}
|
||||
>
|
||||
<GarbageBin strokeWidth="2" />
|
||||
<div class="flex items-center">{$i18n.t('Delete')}</div>
|
||||
</DropdownMenu.Item>
|
||||
</DropdownMenu.Content>
|
||||
</div>
|
||||
</Dropdown>
|
||||
397
src/lib/components/layout/Sidebar/RecursiveFolder.svelte
Normal file
397
src/lib/components/layout/Sidebar/RecursiveFolder.svelte
Normal file
|
|
@ -0,0 +1,397 @@
|
|||
<script>
|
||||
import { getContext, createEventDispatcher, onMount, onDestroy, tick } from 'svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
import ChevronDown from '../../icons/ChevronDown.svelte';
|
||||
import ChevronRight from '../../icons/ChevronRight.svelte';
|
||||
import Collapsible from '../../common/Collapsible.svelte';
|
||||
import DragGhost from '$lib/components/common/DragGhost.svelte';
|
||||
|
||||
import FolderOpen from '$lib/components/icons/FolderOpen.svelte';
|
||||
import EllipsisHorizontal from '$lib/components/icons/EllipsisHorizontal.svelte';
|
||||
import {
|
||||
deleteFolderById,
|
||||
updateFolderIsExpandedById,
|
||||
updateFolderNameById,
|
||||
updateFolderParentIdById
|
||||
} from '$lib/apis/folders';
|
||||
import { toast } from 'svelte-sonner';
|
||||
import { updateChatFolderIdById } from '$lib/apis/chats';
|
||||
import ChatItem from './ChatItem.svelte';
|
||||
import FolderMenu from './Folders/FolderMenu.svelte';
|
||||
|
||||
export let open = false;
|
||||
|
||||
export let folders;
|
||||
export let folderId;
|
||||
|
||||
export let className = '';
|
||||
|
||||
export let parentDragged = false;
|
||||
|
||||
let folderElement;
|
||||
|
||||
let edit = false;
|
||||
|
||||
let draggedOver = false;
|
||||
let dragged = false;
|
||||
|
||||
let name = '';
|
||||
|
||||
const onDragOver = (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (dragged || parentDragged) {
|
||||
return;
|
||||
}
|
||||
draggedOver = true;
|
||||
};
|
||||
|
||||
const onDrop = async (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (dragged || parentDragged) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (folderElement.contains(e.target)) {
|
||||
console.log('Dropped on the Button');
|
||||
|
||||
try {
|
||||
// get data from the drag event
|
||||
const dataTransfer = e.dataTransfer.getData('text/plain');
|
||||
const data = JSON.parse(dataTransfer);
|
||||
console.log(data);
|
||||
|
||||
const { type, id } = data;
|
||||
|
||||
if (type === 'folder') {
|
||||
open = true;
|
||||
if (id === folderId) {
|
||||
return;
|
||||
}
|
||||
// Move the folder
|
||||
const res = await updateFolderParentIdById(localStorage.token, id, folderId).catch(
|
||||
(error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
if (res) {
|
||||
dispatch('update');
|
||||
}
|
||||
} else if (type === 'chat') {
|
||||
open = true;
|
||||
|
||||
// Move the chat
|
||||
const res = await updateChatFolderIdById(localStorage.token, id, folderId).catch(
|
||||
(error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
if (res) {
|
||||
dispatch('update');
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
draggedOver = false;
|
||||
}
|
||||
};
|
||||
|
||||
const onDragLeave = (e) => {
|
||||
e.preventDefault();
|
||||
if (dragged || parentDragged) {
|
||||
return;
|
||||
}
|
||||
|
||||
draggedOver = false;
|
||||
};
|
||||
|
||||
const dragImage = new Image();
|
||||
dragImage.src =
|
||||
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
||||
|
||||
let x;
|
||||
let y;
|
||||
|
||||
const onDragStart = (event) => {
|
||||
event.stopPropagation();
|
||||
event.dataTransfer.setDragImage(dragImage, 0, 0);
|
||||
|
||||
// Set the data to be transferred
|
||||
event.dataTransfer.setData(
|
||||
'text/plain',
|
||||
JSON.stringify({
|
||||
type: 'folder',
|
||||
id: folderId
|
||||
})
|
||||
);
|
||||
|
||||
dragged = true;
|
||||
folderElement.style.opacity = '0.5'; // Optional: Visual cue to show it's being dragged
|
||||
};
|
||||
|
||||
const onDrag = (event) => {
|
||||
event.stopPropagation();
|
||||
|
||||
x = event.clientX;
|
||||
y = event.clientY;
|
||||
};
|
||||
|
||||
const onDragEnd = (event) => {
|
||||
event.stopPropagation();
|
||||
|
||||
folderElement.style.opacity = '1'; // Reset visual cue after drag
|
||||
dragged = false;
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
open = folders[folderId].is_expanded;
|
||||
if (folderElement) {
|
||||
folderElement.addEventListener('dragover', onDragOver);
|
||||
folderElement.addEventListener('drop', onDrop);
|
||||
folderElement.addEventListener('dragleave', onDragLeave);
|
||||
|
||||
// Event listener for when dragging starts
|
||||
folderElement.addEventListener('dragstart', onDragStart);
|
||||
// Event listener for when dragging occurs (optional)
|
||||
folderElement.addEventListener('drag', onDrag);
|
||||
// Event listener for when dragging ends
|
||||
folderElement.addEventListener('dragend', onDragEnd);
|
||||
}
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
if (folderElement) {
|
||||
folderElement.addEventListener('dragover', onDragOver);
|
||||
folderElement.removeEventListener('drop', onDrop);
|
||||
folderElement.removeEventListener('dragleave', onDragLeave);
|
||||
|
||||
folderElement.removeEventListener('dragstart', onDragStart);
|
||||
folderElement.removeEventListener('drag', onDrag);
|
||||
folderElement.removeEventListener('dragend', onDragEnd);
|
||||
}
|
||||
});
|
||||
|
||||
const deleteHandler = async () => {
|
||||
const res = await deleteFolderById(localStorage.token, folderId).catch((error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (res) {
|
||||
toast.success($i18n.t('Folder deleted successfully'));
|
||||
dispatch('update');
|
||||
}
|
||||
};
|
||||
|
||||
const nameUpdateHandler = async () => {
|
||||
if (name === '') {
|
||||
toast.error($i18n.t('Folder name cannot be empty'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (name === folders[folderId].name) {
|
||||
edit = false;
|
||||
return;
|
||||
}
|
||||
|
||||
const currentName = folders[folderId].name;
|
||||
|
||||
name = name.trim();
|
||||
folders[folderId].name = name;
|
||||
|
||||
const res = await updateFolderNameById(localStorage.token, folderId, name).catch((error) => {
|
||||
toast.error(error);
|
||||
|
||||
folders[folderId].name = currentName;
|
||||
return null;
|
||||
});
|
||||
|
||||
if (res) {
|
||||
folders[folderId].name = name;
|
||||
toast.success($i18n.t('Folder name updated successfully'));
|
||||
dispatch('update');
|
||||
}
|
||||
};
|
||||
|
||||
const isExpandedUpdateHandler = async () => {
|
||||
const res = await updateFolderIsExpandedById(localStorage.token, folderId, open).catch(
|
||||
(error) => {
|
||||
toast.error(error);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
let isExpandedUpdateTimeout;
|
||||
|
||||
const isExpandedUpdateDebounceHandler = (open) => {
|
||||
clearTimeout(isExpandedUpdateTimeout);
|
||||
isExpandedUpdateTimeout = setTimeout(() => {
|
||||
isExpandedUpdateHandler();
|
||||
}, 500);
|
||||
};
|
||||
|
||||
$: isExpandedUpdateDebounceHandler(open);
|
||||
|
||||
const editHandler = async () => {
|
||||
console.log('Edit');
|
||||
await tick();
|
||||
name = folders[folderId].name;
|
||||
edit = true;
|
||||
|
||||
await tick();
|
||||
|
||||
// focus on the input
|
||||
setTimeout(() => {
|
||||
const input = document.getElementById(`folder-${folderId}-input`);
|
||||
input.focus();
|
||||
}, 100);
|
||||
};
|
||||
</script>
|
||||
|
||||
{#if dragged && x && y}
|
||||
<DragGhost {x} {y}>
|
||||
<div class=" bg-black/80 backdrop-blur-2xl px-2 py-1 rounded-lg w-fit max-w-40">
|
||||
<div class="flex items-center gap-1">
|
||||
<FolderOpen className="size-3.5" strokeWidth="2" />
|
||||
<div class=" text-xs text-white line-clamp-1">
|
||||
{folders[folderId].name}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</DragGhost>
|
||||
{/if}
|
||||
|
||||
<div bind:this={folderElement} class="relative {className}" draggable="true">
|
||||
{#if draggedOver}
|
||||
<div
|
||||
class="absolute top-0 left-0 w-full h-full rounded-sm bg-[hsla(258,88%,66%,0.1)] bg-opacity-50 dark:bg-opacity-10 z-50 pointer-events-none touch-none"
|
||||
></div>
|
||||
{/if}
|
||||
|
||||
<Collapsible
|
||||
bind:open
|
||||
className="w-full"
|
||||
buttonClassName="w-full"
|
||||
hide={(folders[folderId]?.childrenIds ?? []).length === 0 &&
|
||||
(folders[folderId].items?.chats ?? []).length === 0}
|
||||
on:change={(e) => {
|
||||
dispatch('open', e.detail);
|
||||
}}
|
||||
>
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div class="w-full group">
|
||||
<button
|
||||
id="folder-{folderId}-button"
|
||||
class="relative w-full py-1.5 px-2 rounded-md flex items-center gap-1.5 text-xs text-gray-500 dark:text-gray-500 font-medium hover:bg-gray-100 dark:hover:bg-gray-900 transition"
|
||||
on:dblclick={() => {
|
||||
editHandler();
|
||||
}}
|
||||
>
|
||||
<div class="text-gray-300 dark:text-gray-600">
|
||||
{#if open}
|
||||
<ChevronDown className=" size-3" strokeWidth="2.5" />
|
||||
{:else}
|
||||
<ChevronRight className=" size-3" strokeWidth="2.5" />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="translate-y-[0.5px] flex-1 justify-start text-start line-clamp-1">
|
||||
{#if edit}
|
||||
<input
|
||||
id="folder-{folderId}-input"
|
||||
type="text"
|
||||
bind:value={name}
|
||||
on:blur={() => {
|
||||
nameUpdateHandler();
|
||||
edit = false;
|
||||
}}
|
||||
on:click={(e) => {
|
||||
// Prevent accidental collapse toggling when clicking inside input
|
||||
e.stopPropagation();
|
||||
}}
|
||||
on:mousedown={(e) => {
|
||||
// Prevent accidental collapse toggling when clicking inside input
|
||||
e.stopPropagation();
|
||||
}}
|
||||
on:keydown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
edit = false;
|
||||
}
|
||||
}}
|
||||
class="w-full h-full bg-transparent text-gray-500 dark:text-gray-500 outline-none"
|
||||
/>
|
||||
{:else}
|
||||
{folders[folderId].name}
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="absolute z-10 right-2 invisible group-hover:visible self-center flex items-center dark:text-gray-300"
|
||||
on:pointerup={(e) => {
|
||||
e.stopPropagation();
|
||||
}}
|
||||
>
|
||||
<FolderMenu
|
||||
on:rename={() => {
|
||||
editHandler();
|
||||
}}
|
||||
on:delete={() => {
|
||||
deleteHandler();
|
||||
}}
|
||||
>
|
||||
<button class="p-0.5 dark:hover:bg-gray-850 rounded-lg touch-auto" on:click={(e) => {}}>
|
||||
<EllipsisHorizontal className="size-4" strokeWidth="2.5" />
|
||||
</button>
|
||||
</FolderMenu>
|
||||
</button>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div slot="content" class="w-full">
|
||||
{#if (folders[folderId]?.childrenIds ?? []).length > 0 || (folders[folderId].items?.chats ?? []).length > 0}
|
||||
<div
|
||||
class="ml-3 pl-1 mt-[1px] flex flex-col overflow-y-auto scrollbar-hidden border-s border-gray-100 dark:border-gray-900"
|
||||
>
|
||||
{#if folders[folderId]?.childrenIds}
|
||||
{@const children = folders[folderId]?.childrenIds
|
||||
.map((id) => folders[id])
|
||||
.sort((a, b) =>
|
||||
a.name.localeCompare(b.name, undefined, {
|
||||
numeric: true,
|
||||
sensitivity: 'base'
|
||||
})
|
||||
)}
|
||||
|
||||
{#each children as childFolder (`${folderId}-${childFolder.id}`)}
|
||||
<svelte:self
|
||||
{folders}
|
||||
folderId={childFolder.id}
|
||||
parentDragged={dragged}
|
||||
on:update={(e) => {
|
||||
dispatch('update', e.detail);
|
||||
}}
|
||||
/>
|
||||
{/each}
|
||||
{/if}
|
||||
|
||||
{#if folders[folderId].items?.chats}
|
||||
{#each folders[folderId].items.chats as chat (chat.id)}
|
||||
<ChatItem id={chat.id} title={chat.title} />
|
||||
{/each}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</Collapsible>
|
||||
</div>
|
||||
208
src/lib/components/layout/Sidebar/SearchInput.svelte
Normal file
208
src/lib/components/layout/Sidebar/SearchInput.svelte
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
<script lang="ts">
|
||||
import { tags } from '$lib/stores';
|
||||
import { stringify } from 'postcss';
|
||||
import { getContext, createEventDispatcher, onMount, onDestroy, tick } from 'svelte';
|
||||
import { fade } from 'svelte/transition';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
export let placeholder = '';
|
||||
export let value = '';
|
||||
|
||||
let selectedIdx = 0;
|
||||
|
||||
let lastWord = '';
|
||||
$: lastWord = value ? value.split(' ').at(-1) : value;
|
||||
|
||||
let focused = false;
|
||||
let options = [
|
||||
{
|
||||
name: 'tag:',
|
||||
description: $i18n.t('search for tags')
|
||||
}
|
||||
];
|
||||
|
||||
let filteredOptions = options;
|
||||
$: filteredOptions = options.filter((option) => {
|
||||
return option.name.startsWith(lastWord);
|
||||
});
|
||||
|
||||
let filteredTags = [];
|
||||
$: filteredTags = lastWord.startsWith('tag:')
|
||||
? $tags.filter((tag) => {
|
||||
const tagName = lastWord.slice(4);
|
||||
if (tagName) {
|
||||
const tagId = tagName.replace(' ', '_').toLowerCase();
|
||||
|
||||
if (tag.id !== tagId) {
|
||||
return tag.id.startsWith(tagId);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
: [];
|
||||
|
||||
const documentClickHandler = (e) => {
|
||||
const searchContainer = document.getElementById('search-container');
|
||||
const chatSearch = document.getElementById('chat-search');
|
||||
|
||||
if (!searchContainer.contains(e.target) && !chatSearch.contains(e.target)) {
|
||||
if (e.target.id.startsWith('search-tag-') || e.target.id.startsWith('search-option-')) {
|
||||
return;
|
||||
}
|
||||
focused = false;
|
||||
}
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
document.addEventListener('click', documentClickHandler);
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
document.removeEventListener('click', documentClickHandler);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="px-2 mb-1 flex justify-center space-x-2 relative z-10" id="search-container">
|
||||
<div class="flex w-full rounded-xl" id="chat-search">
|
||||
<div class="self-center pl-3 py-2 rounded-l-xl bg-transparent">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<input
|
||||
class="w-full rounded-r-xl py-1.5 pl-2.5 pr-4 text-sm bg-transparent dark:text-gray-300 outline-none"
|
||||
placeholder={placeholder ? placeholder : $i18n.t('Search')}
|
||||
bind:value
|
||||
on:input={() => {
|
||||
dispatch('input');
|
||||
}}
|
||||
on:focus={() => {
|
||||
focused = true;
|
||||
}}
|
||||
on:keydown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
if (filteredTags.length > 0) {
|
||||
const tagElement = document.getElementById(`search-tag-${selectedIdx}`);
|
||||
tagElement.click();
|
||||
return;
|
||||
}
|
||||
|
||||
if (filteredOptions.length > 0) {
|
||||
const optionElement = document.getElementById(`search-option-${selectedIdx}`);
|
||||
optionElement.click();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (e.key === 'ArrowUp') {
|
||||
e.preventDefault();
|
||||
selectedIdx = Math.max(0, selectedIdx - 1);
|
||||
} else if (e.key === 'ArrowDown') {
|
||||
e.preventDefault();
|
||||
|
||||
if (filteredTags.length > 0) {
|
||||
selectedIdx = Math.min(selectedIdx + 1, filteredTags.length - 1);
|
||||
} else {
|
||||
selectedIdx = Math.min(selectedIdx + 1, filteredOptions.length - 1);
|
||||
}
|
||||
} else {
|
||||
// if the user types something, reset to the top selection.
|
||||
selectedIdx = 0;
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{#if focused && (filteredOptions.length > 0 || filteredTags.length > 0)}
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div
|
||||
class="absolute top-0 mt-8 left-0 right-1 border dark:border-gray-900 bg-gray-50 dark:bg-gray-950 rounded-lg z-10 shadow-lg"
|
||||
in:fade={{ duration: 50 }}
|
||||
on:mouseenter={() => {
|
||||
selectedIdx = null;
|
||||
}}
|
||||
on:mouseleave={() => {
|
||||
selectedIdx = 0;
|
||||
}}
|
||||
>
|
||||
<div class="px-2 py-2 text-xs group">
|
||||
{#if filteredTags.length > 0}
|
||||
<div class="px-1 font-medium dark:text-gray-300 text-gray-700 mb-1">Tags</div>
|
||||
|
||||
<div class="">
|
||||
{#each filteredTags as tag, tagIdx}
|
||||
<button
|
||||
class=" px-1.5 py-0.5 flex gap-1 hover:bg-gray-100 dark:hover:bg-gray-900 w-full rounded {selectedIdx ===
|
||||
tagIdx
|
||||
? 'bg-gray-100 dark:bg-gray-900'
|
||||
: ''}"
|
||||
id="search-tag-{tagIdx}"
|
||||
on:click|stopPropagation={async () => {
|
||||
const words = value.split(' ');
|
||||
|
||||
words.pop();
|
||||
words.push(`tag:${tag.id} `);
|
||||
|
||||
value = words.join(' ');
|
||||
|
||||
dispatch('input');
|
||||
}}
|
||||
>
|
||||
<div class="dark:text-gray-300 text-gray-700 font-medium">{tag.name}</div>
|
||||
|
||||
<div class=" text-gray-500 line-clamp-1">
|
||||
{tag.id}
|
||||
</div>
|
||||
</button>
|
||||
{/each}
|
||||
</div>
|
||||
{:else if filteredOptions.length > 0}
|
||||
<div class="px-1 font-medium dark:text-gray-300 text-gray-700 mb-1">Search options</div>
|
||||
|
||||
<div class="">
|
||||
{#each filteredOptions as option, optionIdx}
|
||||
<button
|
||||
class=" px-1.5 py-0.5 flex gap-1 hover:bg-gray-100 dark:hover:bg-gray-900 w-full rounded {selectedIdx ===
|
||||
optionIdx
|
||||
? 'bg-gray-100 dark:bg-gray-900'
|
||||
: ''}"
|
||||
id="search-option-{optionIdx}"
|
||||
on:click|stopPropagation={async () => {
|
||||
const words = value.split(' ');
|
||||
|
||||
words.pop();
|
||||
words.push('tag:');
|
||||
|
||||
value = words.join(' ');
|
||||
|
||||
dispatch('input');
|
||||
}}
|
||||
>
|
||||
<div class="dark:text-gray-300 text-gray-700 font-medium">{option.name}</div>
|
||||
|
||||
<div class=" text-gray-500 line-clamp-1">
|
||||
{option.description}
|
||||
</div>
|
||||
</button>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
@ -47,6 +47,14 @@
|
|||
|
||||
let showDeleteConfirm = false;
|
||||
|
||||
let filteredItems = [];
|
||||
$: filteredItems = $functions.filter(
|
||||
(f) =>
|
||||
query === '' ||
|
||||
f.name.toLowerCase().includes(query.toLowerCase()) ||
|
||||
f.id.toLowerCase().includes(query.toLowerCase())
|
||||
);
|
||||
|
||||
const shareHandler = async (func) => {
|
||||
const item = await getFunctionById(localStorage.token, func.id).catch((error) => {
|
||||
toast.error(error);
|
||||
|
|
@ -174,17 +182,7 @@
|
|||
</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-lg font-medium px-0.5">
|
||||
{$i18n.t('Functions')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-lg font-medium text-gray-500 dark:text-gray-300">{$functions.length}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" flex w-full space-x-2">
|
||||
<div class=" flex w-full space-x-2 mb-2.5">
|
||||
<div class="flex flex-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<svg
|
||||
|
|
@ -225,12 +223,21 @@
|
|||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
|
||||
<div class="mb-3.5">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-base font-medium px-0.5">
|
||||
{$i18n.t('Functions')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-base font-medium text-gray-500 dark:text-gray-300"
|
||||
>{filteredItems.length}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3 mb-5">
|
||||
{#each $functions.filter((f) => query === '' || f.name
|
||||
.toLowerCase()
|
||||
.includes(query.toLowerCase()) || f.id.toLowerCase().includes(query.toLowerCase())) as func}
|
||||
{#each filteredItems as func}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -72,17 +72,7 @@
|
|||
}}
|
||||
/>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-lg font-medium px-0.5">
|
||||
{$i18n.t('Knowledge')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-lg font-medium text-gray-500 dark:text-gray-300">{$knowledge.length}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" flex w-full space-x-2">
|
||||
<div class=" flex w-full space-x-2 mb-2.5">
|
||||
<div class="flex flex-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<svg
|
||||
|
|
@ -127,12 +117,22 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
<div class="mb-3.5">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-base font-medium px-0.5">
|
||||
{$i18n.t('Knowledge')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-base font-medium text-gray-500 dark:text-gray-300"
|
||||
>{filteredItems.length}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3 mb-5 grid lg:grid-cols-2 xl:grid-cols-3 gap-2">
|
||||
<div class="my-3 mb-5 grid md:grid-cols-2 lg:grid-cols-3 gap-2">
|
||||
{#each filteredItems as item}
|
||||
<button
|
||||
class=" flex space-x-4 cursor-pointer text-left w-full px-4 py-3 border border-gray-50 dark:border-gray-850 hover:bg-gray-50 dark:hover:bg-gray-850 transition rounded-xl"
|
||||
class=" flex space-x-4 cursor-pointer text-left w-full px-4 py-3 border border-gray-50 dark:border-gray-850 dark:hover:border-gray-800 hover:bg-gray-50 dark:hover:bg-gray-850 transition rounded-xl"
|
||||
on:click={() => {
|
||||
if (item?.meta?.document) {
|
||||
toast.error(
|
||||
|
|
|
|||
|
|
@ -553,37 +553,7 @@
|
|||
/>
|
||||
|
||||
<div class="flex flex-col w-full max-h-[100dvh] h-full">
|
||||
<div class="flex items-center justify-between">
|
||||
<button
|
||||
class="flex space-x-1 w-fit"
|
||||
on:click={() => {
|
||||
goto('/workspace/knowledge');
|
||||
}}
|
||||
>
|
||||
<div class=" self-center">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M17 10a.75.75 0 01-.75.75H5.612l4.158 3.96a.75.75 0 11-1.04 1.08l-5.5-5.25a.75.75 0 010-1.08l5.5-5.25a.75.75 0 111.04 1.08L5.612 9.25H16.25A.75.75 0 0117 10z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class=" self-center font-medium text-sm">{$i18n.t('Back')}</div>
|
||||
</button>
|
||||
|
||||
<div class=" flex-shrink-0">
|
||||
<div>
|
||||
<Badge type="success" content="Collection" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-col my-2 flex-1 overflow-auto h-0">
|
||||
<div class="flex flex-col mb-2 flex-1 overflow-auto h-0">
|
||||
{#if id && knowledge}
|
||||
<div class="flex flex-row h-0 flex-1 overflow-auto">
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -35,8 +35,16 @@
|
|||
let modelsImportInputElement: HTMLInputElement;
|
||||
|
||||
let _models = [];
|
||||
|
||||
let filteredModels = [];
|
||||
let selectedModel = null;
|
||||
|
||||
$: if (_models) {
|
||||
filteredModels = _models.filter(
|
||||
(m) => searchValue === '' || m.name.toLowerCase().includes(searchValue.toLowerCase())
|
||||
);
|
||||
}
|
||||
|
||||
let sortable = null;
|
||||
let searchValue = '';
|
||||
|
||||
|
|
@ -294,17 +302,7 @@
|
|||
}}
|
||||
/>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-lg font-medium px-0.5">
|
||||
{$i18n.t('Models')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-lg font-medium text-gray-500 dark:text-gray-300">{$models.length}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" flex w-full space-x-2">
|
||||
<div class=" flex w-full space-x-2 mb-2.5">
|
||||
<div class="flex flex-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<svg
|
||||
|
|
@ -329,7 +327,7 @@
|
|||
|
||||
<div>
|
||||
<a
|
||||
class=" px-2 py-2 rounded-xl border border-gray-200 dark:border-gray-600 dark:border-0 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 transition font-medium text-sm flex items-center space-x-1"
|
||||
class=" px-2 py-2 rounded-xl border border-gray-200 dark:border-gray-600 dark:border-0 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition font-medium text-sm flex items-center space-x-1"
|
||||
href="/workspace/models/create"
|
||||
>
|
||||
<svg
|
||||
|
|
@ -346,12 +344,22 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
<div class="mb-3.5">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-base font-medium px-0.5">
|
||||
{$i18n.t('Models')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-850" />
|
||||
<span class="text-base font-medium text-gray-500 dark:text-gray-300"
|
||||
>{filteredModels.length}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class=" flex space-x-4 cursor-pointer w-full mb-2 px-3 py-1" href="/workspace/models/create">
|
||||
<div class=" self-center w-10 flex-shrink-0">
|
||||
<div class=" self-center w-8 flex-shrink-0">
|
||||
<div
|
||||
class="w-full h-10 flex justify-center rounded-full bg-transparent dark:bg-gray-700 border border-dashed border-gray-200"
|
||||
class="w-full h-8 flex justify-center rounded-full bg-transparent dark:bg-gray-700 border border-dashed border-gray-200"
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-6">
|
||||
<path
|
||||
|
|
@ -365,16 +373,14 @@
|
|||
|
||||
<div class=" self-center">
|
||||
<div class=" font-semibold line-clamp-1">{$i18n.t('Create a model')}</div>
|
||||
<div class=" text-sm line-clamp-1">{$i18n.t('Customize models for a specific purpose')}</div>
|
||||
<div class=" text-sm line-clamp-1 text-gray-500">
|
||||
{$i18n.t('Customize models for a specific purpose')}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
|
||||
<div class=" my-2 mb-5" id="model-list">
|
||||
{#each _models.filter((m) => searchValue === '' || m.name
|
||||
.toLowerCase()
|
||||
.includes(searchValue.toLowerCase())) as model}
|
||||
{#each filteredModels as model}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl"
|
||||
id="model-item-{model.id}"
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@
|
|||
let showDeleteConfirm = false;
|
||||
let deletePrompt = null;
|
||||
|
||||
let filteredItems = [];
|
||||
$: filteredItems = $prompts.filter((p) => query === '' || p.command.includes(query));
|
||||
|
||||
const shareHandler = async (prompt) => {
|
||||
toast.success($i18n.t('Redirecting you to OpenWebUI Community'));
|
||||
|
||||
|
|
@ -64,17 +67,7 @@
|
|||
</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-lg font-medium px-0.5">
|
||||
{$i18n.t('Prompts')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-lg font-medium text-gray-500 dark:text-gray-300">{$prompts.length}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" flex w-full space-x-2">
|
||||
<div class=" flex w-full space-x-2 mb-2.5">
|
||||
<div class="flex flex-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<svg
|
||||
|
|
@ -116,10 +109,20 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
<div class="mb-3.5">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-base font-medium px-0.5">
|
||||
{$i18n.t('Prompts')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-base font-medium text-gray-500 dark:text-gray-300"
|
||||
>{filteredItems.length}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3 mb-5">
|
||||
{#each $prompts.filter((p) => query === '' || p.command.includes(query)) as prompt}
|
||||
{#each filteredItems as prompt}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,14 @@
|
|||
|
||||
let showDeleteConfirm = false;
|
||||
|
||||
let filteredItems = [];
|
||||
$: filteredItems = $tools.filter(
|
||||
(t) =>
|
||||
query === '' ||
|
||||
t.name.toLowerCase().includes(query.toLowerCase()) ||
|
||||
t.id.toLowerCase().includes(query.toLowerCase())
|
||||
);
|
||||
|
||||
const shareHandler = async (tool) => {
|
||||
const item = await getToolById(localStorage.token, tool.id).catch((error) => {
|
||||
toast.error(error);
|
||||
|
|
@ -146,17 +154,7 @@
|
|||
</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-lg font-medium px-0.5">
|
||||
{$i18n.t('Tools')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-lg font-medium text-gray-500 dark:text-gray-300">{$tools.length}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" flex w-full space-x-2">
|
||||
<div class=" flex w-full space-x-2 mb-2.5">
|
||||
<div class="flex flex-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<svg
|
||||
|
|
@ -198,12 +196,20 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-2.5" />
|
||||
<div class="mb-3.5">
|
||||
<div class="flex justify-between items-center">
|
||||
<div class="flex md:self-center text-base font-medium px-0.5">
|
||||
{$i18n.t('Tools')}
|
||||
<div class="flex self-center w-[1px] h-6 mx-2.5 bg-gray-200 dark:bg-gray-700" />
|
||||
<span class="text-base font-medium text-gray-500 dark:text-gray-300"
|
||||
>{filteredItems.length}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="my-3 mb-5">
|
||||
{#each $tools.filter((t) => query === '' || t.name
|
||||
.toLowerCase()
|
||||
.includes(query.toLowerCase()) || t.id.toLowerCase().includes(query.toLowerCase())) as tool}
|
||||
{#each filteredItems as tool}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "أضافة مطالبة مخصصه",
|
||||
"Add Docs": "إضافة المستندات",
|
||||
"Add Files": "إضافة ملفات",
|
||||
"Add Memory": "إضافة ذكرايات",
|
||||
"Add message": "اضافة رسالة",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "التعليمات المتقدمة",
|
||||
"Advanced Params": "المعلمات المتقدمة",
|
||||
"all": "الكل",
|
||||
"All Documents": "جميع الملفات",
|
||||
"All Users": "جميع المستخدمين",
|
||||
"Allow": "يسمح",
|
||||
"Allow Chat Deletion": "يستطيع حذف المحادثات",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "اللغاء",
|
||||
"Capabilities": "قدرات",
|
||||
"Change Password": "تغير الباسورد",
|
||||
"Character": "",
|
||||
"Chat": "المحادثة",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "UI الدردشة",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "أضغط هنا للاختيار",
|
||||
"Click here to select a csv file.": "أضغط هنا للاختيار ملف csv",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "انقر هنا لاختيار المستندات",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "أضغط هنا",
|
||||
"Click on the user role button to change a user's role.": "أضغط على أسم الصلاحيات لتغيرها للمستخدم",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "استنساخ",
|
||||
"Close": "أغلق",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "مجموعة",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "انسخ كتلة التعليمات البرمجية الأخيرة",
|
||||
"Copy last response": "انسخ الرد الأخير",
|
||||
"Copy Link": "أنسخ الرابط",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "تم النسخ إلى الحافظة بنجاح",
|
||||
"Create a model": "إنشاء نموذج",
|
||||
"Create Account": "إنشاء حساب",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "الإفتراضي تحديث الموديل",
|
||||
"Default Prompt Suggestions": "الإفتراضي Prompt الاقتراحات",
|
||||
"Default User Role": "الإفتراضي صلاحيات المستخدم",
|
||||
"delete": "حذف",
|
||||
"Delete": "حذف",
|
||||
"Delete a model": "حذف الموديل",
|
||||
"Delete All Chats": "حذف جميع الدردشات",
|
||||
"Delete chat": "حذف المحادثه",
|
||||
"Delete Chat": "حذف المحادثه.",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "أحذف هذا الرابط",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "مستندات",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "لا يجري أي اتصالات خارجية، وتظل بياناتك آمنة على الخادم المستضاف محليًا.",
|
||||
"Don't Allow": "لا تسمح بذلك",
|
||||
"Don't have an account?": "ليس لديك حساب؟",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "تحميل",
|
||||
"Download canceled": "تم اللغاء التحميل",
|
||||
"Download Database": "تحميل قاعدة البيانات",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "أسقط أية ملفات هنا لإضافتها إلى المحادثة",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. الوحدات الزمنية الصالحة هي 's', 'm', 'h'.",
|
||||
"Edit": "تعديل",
|
||||
"Edit Doc": "تعديل الملف",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "تعديل المستخدم",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "ادخل كلمة المرور",
|
||||
"Enter Your Role": "أدخل الصلاحيات",
|
||||
"Error": "خطأ",
|
||||
"ERROR": "",
|
||||
"Experimental": "تجريبي",
|
||||
"Export": "تصدير",
|
||||
"Export All Chats (All Users)": "تصدير جميع الدردشات (جميع المستخدمين)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "تصدير جميع الدردشات",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "تصدير وثائق الخرائط",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "نماذج التصدير",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "الصور",
|
||||
"Import Chats": "استيراد الدردشات",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "استيراد خرائط المستندات",
|
||||
"Import Functions": "",
|
||||
"Import Models": "استيراد النماذج",
|
||||
"Import Prompts": "مطالبات الاستيراد",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "التثبيت من عنوان URL لجيثب",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "واجهه المستخدم",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "تاق غير صالحة",
|
||||
"January": "يناير",
|
||||
"join our Discord for help.": "انضم إلى Discord للحصول على المساعدة.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "المزيد",
|
||||
"Move to Top": "",
|
||||
"Name": "الأسم",
|
||||
"Name Tag": "أسم التاق",
|
||||
"Name your model": "قم بتسمية النموذج الخاص بك",
|
||||
"New Chat": "دردشة جديدة",
|
||||
"New Password": "كلمة المرور الجديدة",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "لا توجد نتايج",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/مفتاح OpenAI.مطلوب عنوان ",
|
||||
"or": "أو",
|
||||
"Other": "آخر",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "النسخ التلقائي للاستجابة إلى الحافظة",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "البحث عن موديل",
|
||||
"Search Chats": "البحث في الدردشات",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "البحث المستندات",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "نماذج البحث",
|
||||
|
|
@ -648,6 +646,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "{{error}} خطأ في التعرف على الكلام",
|
||||
"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "وقف التسلسل",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -670,6 +669,7 @@
|
|||
"Template": "نموذج",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "اكتمال النص",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "محرك تحويل النص إلى كلام",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "شكرا لملاحظاتك!",
|
||||
|
|
@ -688,6 +688,7 @@
|
|||
"Thorough explanation": "شرح شامل",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "ملاحضة: قم بتحديث عدة فتحات متغيرة على التوالي عن طريق الضغط على مفتاح tab في مدخلات الدردشة بعد كل استبدال.",
|
||||
"Title": "العنوان",
|
||||
"Title (e.g. Tell me a fun fact)": "(e.g. Tell me a fun fact) العناون",
|
||||
|
|
@ -705,6 +706,7 @@
|
|||
"Today": "اليوم",
|
||||
"Toggle settings": "فتح وأغلاق الاعدادات",
|
||||
"Toggle sidebar": "فتح وأغلاق الشريط الجانبي",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -743,7 +745,6 @@
|
|||
"Upload Progress": "جاري التحميل",
|
||||
"URL Mode": "رابط الموديل",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "أستخدم '#' في المحادثة لربطهامن المستندات",
|
||||
"Use Gravatar": "Gravatar أستخدم",
|
||||
"Use Initials": "Initials أستخدم",
|
||||
"use_mlock (Ollama)": "use_mlock (أولاما)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Добавяне на собствен промпт",
|
||||
"Add Docs": "Добавяне на Документи",
|
||||
"Add Files": "Добавяне на Файлове",
|
||||
"Add Memory": "Добавяне на Памет",
|
||||
"Add message": "Добавяне на съобщение",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Разширени Параметри",
|
||||
"Advanced Params": "Разширени параметри",
|
||||
"all": "всички",
|
||||
"All Documents": "Всички Документи",
|
||||
"All Users": "Всички Потребители",
|
||||
"Allow": "Позволи",
|
||||
"Allow Chat Deletion": "Позволи Изтриване на Чат",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Отказ",
|
||||
"Capabilities": "Възможности",
|
||||
"Change Password": "Промяна на Парола",
|
||||
"Character": "",
|
||||
"Chat": "Чат",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "UI за чат бублон",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Натиснете тук, за да изберете",
|
||||
"Click here to select a csv file.": "Натиснете тук, за да изберете csv файл.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Натиснете тук, за да изберете документи.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "натиснете тук.",
|
||||
"Click on the user role button to change a user's role.": "Натиснете върху бутона за промяна на ролята на потребителя.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Клонинг",
|
||||
"Close": "Затвори",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Колекция",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Копиране на последен код блок",
|
||||
"Copy last response": "Копиране на последен отговор",
|
||||
"Copy Link": "Копиране на връзка",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Копирането в клипборда беше успешно!",
|
||||
"Create a model": "Създаване на модел",
|
||||
"Create Account": "Създаване на Акаунт",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Моделът по подразбиране е обновен",
|
||||
"Default Prompt Suggestions": "Промпт Предложения по подразбиране",
|
||||
"Default User Role": "Роля на потребителя по подразбиране",
|
||||
"delete": "изтриване",
|
||||
"Delete": "Изтриване",
|
||||
"Delete a model": "Изтриване на модел",
|
||||
"Delete All Chats": "Изтриване на всички чатове",
|
||||
"Delete chat": "Изтриване на чат",
|
||||
"Delete Chat": "Изтриване на Чат",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "Изтриване на този линк",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Документи",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "няма външни връзки, и вашите данни остават сигурни на локално назначен сървър.",
|
||||
"Don't Allow": "Не Позволявай",
|
||||
"Don't have an account?": "Нямате акаунт?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Изтегляне отменено",
|
||||
"Download canceled": "Изтегляне отменено",
|
||||
"Download Database": "Сваляне на база данни",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Пускане на файлове тук, за да ги добавите в чата",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.",
|
||||
"Edit": "Редактиране",
|
||||
"Edit Doc": "Редактиране на документ",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Редактиране на потребител",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Въведете вашата парола",
|
||||
"Enter Your Role": "Въведете вашата роля",
|
||||
"Error": "Грешка",
|
||||
"ERROR": "",
|
||||
"Experimental": "Експериментално",
|
||||
"Export": "Износ",
|
||||
"Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Експортване на чатове",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Експортване на документен мапинг",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Експортиране на модели",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Изображения",
|
||||
"Import Chats": "Импортване на чатове",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Импортване на документен мапинг",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Импортиране на модели",
|
||||
"Import Prompts": "Импортване на промптове",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Инсталиране от URL адреса на Github",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Интерфейс",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Невалиден тег",
|
||||
"January": "Януари",
|
||||
"join our Discord for help.": "свържете се с нашия Discord за помощ.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Повече",
|
||||
"Move to Top": "",
|
||||
"Name": "Име",
|
||||
"Name Tag": "Име Таг",
|
||||
"Name your model": "Дайте име на вашия модел",
|
||||
"New Chat": "Нов чат",
|
||||
"New Password": "Нова парола",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Няма намерени резултати",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Key е задължителен.",
|
||||
"or": "или",
|
||||
"Other": "Other",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Ресет Vector Storage",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Търси модел",
|
||||
"Search Chats": "Търсене на чатове",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Търси Документи",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Търсене на модели",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
|
||||
"Speech-to-Text Engine": "Speech-to-Text Engine",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stop Sequence",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Шаблон",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Text Completion",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Text-to-Speech Engine",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Благодарим ви за вашия отзив!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Това е подробно описание.",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Съвет: Актуализирайте няколко слота за променливи последователно, като натискате клавиша Tab в чат входа след всяка подмяна.",
|
||||
"Title": "Заглавие",
|
||||
"Title (e.g. Tell me a fun fact)": "Заглавие (напр. Моля, кажете ми нещо забавно)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "днес",
|
||||
"Toggle settings": "Toggle settings",
|
||||
"Toggle sidebar": "Toggle sidebar",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Прогрес на качването",
|
||||
"URL Mode": "URL Mode",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Използвайте '#' във промпта за да заредите и изберете вашите документи.",
|
||||
"Use Gravatar": "Използвайте Gravatar",
|
||||
"Use Initials": "Използвайте Инициали",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "একটি কাস্টম প্রম্পট যোগ করুন",
|
||||
"Add Docs": "ডকুমেন্ট যোগ করুন",
|
||||
"Add Files": "ফাইল যোগ করুন",
|
||||
"Add Memory": "মেমোরি যোগ করুন",
|
||||
"Add message": "মেসেজ যোগ করুন",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "এডভান্সড প্যারামিটার্স",
|
||||
"Advanced Params": "অ্যাডভান্সড প্যারাম",
|
||||
"all": "সব",
|
||||
"All Documents": "সব ডকুমেন্ট",
|
||||
"All Users": "সব ইউজার",
|
||||
"Allow": "অনুমোদন",
|
||||
"Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "বাতিল",
|
||||
"Capabilities": "সক্ষমতা",
|
||||
"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||
"Character": "",
|
||||
"Chat": "চ্যাট",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "চ্যাট বাবল UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
|
||||
"Click here to select a csv file.": "একটি csv ফাইল নির্বাচন করার জন্য এখানে ক্লিক করুন",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "ডকুমেন্টগুলো নির্বাচন করার জন্য এখানে ক্লিক করুন",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "এখানে ক্লিক করুন",
|
||||
"Click on the user role button to change a user's role.": "ইউজারের পদবি পরিবর্তন করার জন্য ইউজারের পদবি বাটনে ক্লিক করুন",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "ক্লোন",
|
||||
"Close": "বন্ধ",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "সংগ্রহ",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",
|
||||
"Copy last response": "সর্বশেষ রেসপন্স কপি করুন",
|
||||
"Copy Link": "লিংক কপি করুন",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "ক্লিপবোর্ডে কপি করা সফল হয়েছে",
|
||||
"Create a model": "একটি মডেল তৈরি করুন",
|
||||
"Create Account": "একাউন্ট তৈরি করুন",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "ডিফল্ট মডেল আপডেট হয়েছে",
|
||||
"Default Prompt Suggestions": "ডিফল্ট প্রম্পট সাজেশন",
|
||||
"Default User Role": "ইউজারের ডিফল্ট পদবি",
|
||||
"delete": "মুছে ফেলুন",
|
||||
"Delete": "মুছে ফেলুন",
|
||||
"Delete a model": "একটি মডেল মুছে ফেলুন",
|
||||
"Delete All Chats": "সব চ্যাট মুছে ফেলুন",
|
||||
"Delete chat": "চ্যাট মুছে ফেলুন",
|
||||
"Delete Chat": "চ্যাট মুছে ফেলুন",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "এই লিংক মুছে ফেলুন",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "ডকুমেন্টসমূহ",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "কোন এক্সটার্নাল কানেকশন তৈরি করে না, এবং আপনার ডেটা আর লোকালি হোস্টেড সার্ভারেই নিরাপদে থাকে।",
|
||||
"Don't Allow": "অনুমোদন দেবেন না",
|
||||
"Don't have an account?": "একাউন্ট নেই?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "ডাউনলোড",
|
||||
"Download canceled": "ডাউনলোড বাতিল করা হয়েছে",
|
||||
"Download Database": "ডেটাবেজ ডাউনলোড করুন",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "আলোচনায় যুক্ত করার জন্য যে কোন ফাইল এখানে ড্রপ করুন",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.",
|
||||
"Edit": "এডিট করুন",
|
||||
"Edit Doc": "ডকুমেন্ট এডিট করুন",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "ইউজার এডিট করুন",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
|
||||
"Enter Your Role": "আপনার রোল লিখুন",
|
||||
"Error": "ত্রুটি",
|
||||
"ERROR": "",
|
||||
"Experimental": "পরিক্ষামূলক",
|
||||
"Export": "রপ্তানি",
|
||||
"Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং এক্সপোর্ট করুন",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "রপ্তানি মডেল",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "ছবিসমূহ",
|
||||
"Import Chats": "চ্যাটগুলি ইমপোর্ট করুন",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং ইমপোর্ট করুন",
|
||||
"Import Functions": "",
|
||||
"Import Models": "মডেল আমদানি করুন",
|
||||
"Import Prompts": "প্রম্পটগুলো ইমপোর্ট করুন",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Github URL থেকে ইনস্টল করুন",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "ইন্টারফেস",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "অবৈধ ট্যাগ",
|
||||
"January": "জানুয়ারী",
|
||||
"join our Discord for help.": "সাহায্যের জন্য আমাদের Discord-এ যুক্ত হোন",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "আরো",
|
||||
"Move to Top": "",
|
||||
"Name": "নাম",
|
||||
"Name Tag": "নামের ট্যাগ",
|
||||
"Name your model": "আপনার মডেলের নাম দিন",
|
||||
"New Chat": "নতুন চ্যাট",
|
||||
"New Password": "নতুন পাসওয়ার্ড",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "কোন ফলাফল পাওয়া যায়নি",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Key আবশ্যক",
|
||||
"or": "অথবা",
|
||||
"Other": "অন্যান্য",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "রির ্যাঙ্কিং মডেল \"{{reranking_model}}\" -এ সেট করা আছে",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "মডেল অনুসন্ধান করুন",
|
||||
"Search Chats": "চ্যাট অনুসন্ধান করুন",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "ডকুমেন্টসমূহ অনুসন্ধান করুন",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "অনুসন্ধান মডেল",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
|
||||
"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "সিকোয়েন্স থামান",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "টেম্পলেট",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "লেখা সম্পন্নকরণ",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "টেক্সট-টু-স্পিচ ইঞ্জিন",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "আপনার মতামত ধন্যবাদ!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "পুঙ্খানুপুঙ্খ ব্যাখ্যা",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "পরামর্শ: একাধিক ভেরিয়েবল স্লট একের পর এক রিপ্লেস করার জন্য চ্যাট ইনপুটে কিবোর্ডের Tab বাটন ব্যবহার করুন।",
|
||||
"Title": "শিরোনাম",
|
||||
"Title (e.g. Tell me a fun fact)": "শিরোনাম (একটি উপস্থিতি বিবরণ জানান)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "আজ",
|
||||
"Toggle settings": "সেটিংস টোগল",
|
||||
"Toggle sidebar": "সাইডবার টোগল",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "আপলোড হচ্ছে",
|
||||
"URL Mode": "ইউআরএল মোড",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "আপনার ডকুমেন্টসমূহ নির্বাচন করার জন্য আপনার প্রম্পট ইনপুটে '# ব্যবহার করুন।",
|
||||
"Use Gravatar": "Gravatar ব্যবহার করুন",
|
||||
"Use Initials": "নামের আদ্যক্ষর ব্যবহার করুন",
|
||||
"use_mlock (Ollama)": "use_mlock (ওলামা)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "Afegir contingut",
|
||||
"Add content here": "Afegir contingut aquí",
|
||||
"Add custom prompt": "Afegir una indicació personalitzada",
|
||||
"Add Docs": "Afegir documents",
|
||||
"Add Files": "Afegir arxius",
|
||||
"Add Memory": "Afegir memòria",
|
||||
"Add message": "Afegir un missatge",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Els administradors tenen accés a totes les eines en tot moment; els usuaris necessiten eines assignades per model a l'espai de treball.",
|
||||
"Advanced Parameters": "Paràmetres avançats",
|
||||
"Advanced Params": "Paràmetres avançats",
|
||||
"all": "tots",
|
||||
"All Documents": "Tots els documents",
|
||||
"All Users": "Tots els usuaris",
|
||||
"Allow": "Permetre",
|
||||
"Allow Chat Deletion": "Permetre la supressió del xat",
|
||||
"Allow Chat Editing": "Permetre l'edició del xat",
|
||||
"Allow non-local voices": "Permetre veus no locals",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cancel·lar",
|
||||
"Capabilities": "Capacitats",
|
||||
"Change Password": "Canviar la contrasenya",
|
||||
"Character": "",
|
||||
"Chat": "Xat",
|
||||
"Chat Background Image": "Imatge de fons del xat",
|
||||
"Chat Bubble UI": "Chat Bubble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Clica aquí per seleccionar",
|
||||
"Click here to select a csv file.": "Clica aquí per seleccionar un fitxer csv.",
|
||||
"Click here to select a py file.": "Clica aquí per seleccionar un fitxer py.",
|
||||
"Click here to select documents.": "Clica aquí per seleccionar documents.",
|
||||
"Click here to upload a workflow.json file.": "Clica aquí per pujar un arxiu workflow.json",
|
||||
"click here.": "clica aquí.",
|
||||
"Click on the user role button to change a user's role.": "Clica sobre el botó de rol d'usuari per canviar el rol d'un usuari.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permís d'escriptura al porta-retalls denegat. Comprova els ajustos de navegador per donar l'accés necessari.",
|
||||
"Clone": "Clonar",
|
||||
"Close": "Tancar",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Codi formatat correctament",
|
||||
"Collection": "Col·lecció",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copiar l'últim bloc de codi",
|
||||
"Copy last response": "Copiar l'última resposta",
|
||||
"Copy Link": "Copiar l'enllaç",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "La còpia al porta-retalls s'ha realitzat correctament",
|
||||
"Create a model": "Crear un model",
|
||||
"Create Account": "Crear un compte",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Model per defecte actualitzat",
|
||||
"Default Prompt Suggestions": "Suggeriments d'indicació per defecte",
|
||||
"Default User Role": "Rol d'usuari per defecte",
|
||||
"delete": "eliminar",
|
||||
"Delete": "Eliminar",
|
||||
"Delete a model": "Eliminar un model",
|
||||
"Delete All Chats": "Eliminar tots els xats",
|
||||
"Delete chat": "Eliminar xat",
|
||||
"Delete Chat": "Eliminar xat",
|
||||
"Delete chat?": "Eliminar el xat?",
|
||||
"Delete Doc": "Eliminar document",
|
||||
"Delete function?": "Eliminar funció?",
|
||||
"Delete prompt?": "Eliminar indicació?",
|
||||
"delete this link": "Eliminar aquest enllaç",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentació",
|
||||
"Documents": "Documents",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "no realitza connexions externes, i les teves dades romanen segures al teu servidor allotjat localment.",
|
||||
"Don't Allow": "No permetre",
|
||||
"Don't have an account?": "No tens un compte?",
|
||||
"don't install random functions from sources you don't trust.": "no instal·lis funcions aleatòries de fonts en què no confiïs.",
|
||||
"don't install random tools from sources you don't trust.": "no instal·lis eines aleatòries de fonts en què no confiïs.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Descarregar",
|
||||
"Download canceled": "Descàrrega cancel·lada",
|
||||
"Download Database": "Descarregar la base de dades",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Deixa qualsevol arxiu aquí per afegir-lo a la conversa",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s','10m'. Les unitats de temps vàlides són 's', 'm', 'h'.",
|
||||
"Edit": "Editar",
|
||||
"Edit Doc": "Editar el document",
|
||||
"Edit Memory": "Editar la memòria",
|
||||
"Edit User": "Editar l'usuari",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,20 +278,20 @@
|
|||
"Enter Your Password": "Introdueix la teva contrasenya",
|
||||
"Enter Your Role": "Introdueix el teu rol",
|
||||
"Error": "Error",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimental",
|
||||
"Export": "Exportar",
|
||||
"Export All Chats (All Users)": "Exportar tots els xats (Tots els usuaris)",
|
||||
"Export chat (.json)": "Exportar el xat (.json)",
|
||||
"Export Chats": "Exportar els xats",
|
||||
"Export Config to JSON File": "Exportar la configuració a un arxiu JSON",
|
||||
"Export Documents Mapping": "Exportar el mapatge de documents",
|
||||
"Export Functions": "Exportar funcions",
|
||||
"Export LiteLLM config.yaml": "Exportar la configuració LiteLLM config.yaml",
|
||||
"Export Models": "Exportar els models",
|
||||
"Export Prompts": "Exportar les indicacions",
|
||||
"Export Tools": "Exportar les eines",
|
||||
"External Models": "Models externs",
|
||||
"Failed to add file.": "",
|
||||
"Failed to add file.": "No s'ha pogut afegir l'arxiu.",
|
||||
"Failed to create API Key.": "No s'ha pogut crear la clau API.",
|
||||
"Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls",
|
||||
"Failed to update settings": "No s'han pogut actualitzar les preferències",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imatges",
|
||||
"Import Chats": "Importar xats",
|
||||
"Import Config from JSON File": "Importar la configuració des d'un arxiu JSON",
|
||||
"Import Documents Mapping": "Importar el mapatge de documents",
|
||||
"Import Functions": "Importar funcions",
|
||||
"Import Models": "Importar models",
|
||||
"Import Prompts": "Importar indicacions",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instal·lar des de l'URL de Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Enviament automàtic després de la transcripció de veu",
|
||||
"Interface": "Interfície",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Etiqueta no vàlida",
|
||||
"January": "Gener",
|
||||
"join our Discord for help.": "uneix-te al nostre Discord per obtenir ajuda.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Més",
|
||||
"Move to Top": "Moure a dalt de tot",
|
||||
"Name": "Nom",
|
||||
"Name Tag": "Etiqueta de nom",
|
||||
"Name your model": "Posa un nom al teu model",
|
||||
"New Chat": "Nou xat",
|
||||
"New Password": "Nova contrasenya",
|
||||
"No content found": "",
|
||||
"No content found": "No s'ha trobat contingut",
|
||||
"No content to speak": "No hi ha contingut per parlar",
|
||||
"No file selected": "No s'ha escollit cap fitxer",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "No s'ha trobat contingut HTML, CSS o JavaScript.",
|
||||
"No knowledge found": "No s'ha trobat Coneixement",
|
||||
"No results found": "No s'han trobat resultats",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Clau d'OpenAI requerides.",
|
||||
"or": "o",
|
||||
"Other": "Altres",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Format de sortida",
|
||||
"Overview": "Vista general",
|
||||
"page": "pàgina",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Model de reavaluació establert a \"{{reranking_model}}\"",
|
||||
"Reset": "Restableix",
|
||||
"Reset Upload Directory": "Restableix el directori de pujades",
|
||||
"Reset Vector Storage": "Restableix l'emmagatzematge de vectors",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copiar la resposta automàticament al porta-retalls",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de resposta no es poden activar perquè els permisos del lloc web han estat rebutjats. Comprova les preferències del navegador per donar l'accés necessari.",
|
||||
"Response splitting": "Divisió de la resposta",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Cercar un model",
|
||||
"Search Chats": "Cercar xats",
|
||||
"Search Collection": "Cercar col·leccions",
|
||||
"Search Documents": "Cercar documents",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Cercar funcions",
|
||||
"Search Knowledge": "Cercar coneixement",
|
||||
"Search Models": "Cercar models",
|
||||
|
|
@ -591,7 +589,7 @@
|
|||
"Seed": "Llavor",
|
||||
"Select a base model": "Seleccionar un model base",
|
||||
"Select a engine": "Seleccionar un motor",
|
||||
"Select a file to view or drag and drop a file to upload": "",
|
||||
"Select a file to view or drag and drop a file to upload": "Seleccionar un arxiu o arrossegar un arxiu a pujar",
|
||||
"Select a function": "Seleccionar una funció",
|
||||
"Select a model": "Seleccionar un model",
|
||||
"Select a pipeline": "Seleccionar una Pipeline",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "Velocitat de la parla",
|
||||
"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
|
||||
"Speech-to-Text Engine": "Motor de veu a text",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Atura la seqüència",
|
||||
"Stream Chat Response": "Fer streaming de la resposta del xat",
|
||||
"STT Model": "Model SST",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Plantilla",
|
||||
"Temporary Chat": "Xat temporal",
|
||||
"Text Completion": "Completament de text",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motor de text a veu",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Gràcies pel teu comentari!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explicació en detall",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "La URL del servidor Tika és obligatòria.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Consell: Actualitza les diverses variables consecutivament prement la tecla de tabulació en l'entrada del xat després de cada reemplaçament.",
|
||||
"Title": "Títol",
|
||||
"Title (e.g. Tell me a fun fact)": "Títol (p. ex. Digues-me quelcom divertit)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Avui",
|
||||
"Toggle settings": "Alterna preferències",
|
||||
"Toggle sidebar": "Alterna la barra lateral",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokens a mantenir en l'actualització del context (num_keep)",
|
||||
"Tool created successfully": "Eina creada correctament",
|
||||
"Tool deleted successfully": "Eina eliminada correctament",
|
||||
|
|
@ -729,8 +731,8 @@
|
|||
"Update and Copy Link": "Actualitzar i copiar l'enllaç",
|
||||
"Update for the latest features and improvements.": "Actualitza per a les darreres característiques i millores.",
|
||||
"Update password": "Actualitzar la contrasenya",
|
||||
"Updated": "",
|
||||
"Updated at": "Actualitzat",
|
||||
"Updated": "Actualitzat",
|
||||
"Updated at": "Actualitzat el",
|
||||
"Upload": "Pujar",
|
||||
"Upload a GGUF model": "Pujar un model GGUF",
|
||||
"Upload directory": "Pujar directori",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progrés de càrrega",
|
||||
"URL Mode": "Mode URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Utilitza '#' a l'entrada de la indicació per carregar i incloure els teus coneixements.",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Utilitza '#' a l'entrada de la indicació per carregar i seleccionar els teus documents.",
|
||||
"Use Gravatar": "Utilitzar Gravatar",
|
||||
"Use Initials": "Utilitzar inicials",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Pagdugang og custom prompt",
|
||||
"Add Docs": "Pagdugang og mga dokumento",
|
||||
"Add Files": "Idugang ang mga file",
|
||||
"Add Memory": "",
|
||||
"Add message": "Pagdugang og mensahe",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "advanced settings",
|
||||
"Advanced Params": "",
|
||||
"all": "tanan",
|
||||
"All Documents": "",
|
||||
"All Users": "Ang tanan nga mga tiggamit",
|
||||
"Allow": "Sa pagtugot",
|
||||
"Allow Chat Deletion": "Tugoti nga mapapas ang mga chat",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Pagkanselar",
|
||||
"Capabilities": "",
|
||||
"Change Password": "Usba ang password",
|
||||
"Character": "",
|
||||
"Chat": "Panaghisgot",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "I-klik dinhi aron makapili",
|
||||
"Click here to select a csv file.": "",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Pag-klik dinhi aron mapili ang mga dokumento.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "I-klik dinhi.",
|
||||
"Click on the user role button to change a user's role.": "I-klik ang User Role button aron usbon ang role sa user.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "",
|
||||
"Close": "Suod nga",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Koleksyon",
|
||||
"ComfyUI": "",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopyaha ang katapusang bloke sa code",
|
||||
"Copy last response": "Kopyaha ang kataposang tubag",
|
||||
"Copy Link": "",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Ang pagkopya sa clipboard malampuson!",
|
||||
"Create a model": "",
|
||||
"Create Account": "Paghimo og account",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Gi-update nga default template",
|
||||
"Default Prompt Suggestions": "Default nga prompt nga mga sugyot",
|
||||
"Default User Role": "Default nga Papel sa Gumagamit",
|
||||
"delete": "DELETE",
|
||||
"Delete": "",
|
||||
"Delete a model": "Pagtangtang sa usa ka template",
|
||||
"Delete All Chats": "",
|
||||
"Delete chat": "Pagtangtang sa panaghisgot",
|
||||
"Delete Chat": "",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Mga dokumento",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "wala maghimo ug eksternal nga koneksyon, ug ang imong data nagpabiling luwas sa imong lokal nga host server.",
|
||||
"Don't Allow": "Dili tugotan",
|
||||
"Don't have an account?": "Wala kay account ?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "",
|
||||
"Download canceled": "",
|
||||
"Download Database": "I-download ang database",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Ihulog ang bisan unsang file dinhi aron idugang kini sa panag-istoryahanay",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ",
|
||||
"Edit": "",
|
||||
"Edit Doc": "I-edit ang dokumento",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "I-edit ang tiggamit",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Ibutang ang imong password",
|
||||
"Enter Your Role": "",
|
||||
"Error": "",
|
||||
"ERROR": "",
|
||||
"Experimental": "Eksperimento",
|
||||
"Export": "",
|
||||
"Export All Chats (All Users)": "I-export ang tanan nga mga chat (Tanan nga tiggamit)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "I-export ang mga chat",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "I-export ang pagmapa sa dokumento",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Mga hulagway",
|
||||
"Import Chats": "Import nga mga chat",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Import nga pagmapa sa dokumento",
|
||||
"Import Functions": "",
|
||||
"Import Models": "",
|
||||
"Import Prompts": "Import prompt",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Interface",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "",
|
||||
"January": "",
|
||||
"join our Discord for help.": "Apil sa among Discord alang sa tabang.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "",
|
||||
"Move to Top": "",
|
||||
"Name": "Ngalan",
|
||||
"Name Tag": "Tag sa ngalan",
|
||||
"Name your model": "",
|
||||
"New Chat": "Bag-ong diskusyon",
|
||||
"New Password": "Bag-ong Password",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "",
|
||||
"or": "O",
|
||||
"Other": "",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "I-reset ang pagtipig sa vector",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Awtomatikong kopya sa tubag sa clipboard",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "",
|
||||
"Search Chats": "",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Pangitaa ang mga dokumento",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Sayop sa pag-ila sa tingog: {{error}}",
|
||||
"Speech-to-Text Engine": "Engine sa pag-ila sa tingog",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Pagkasunod-sunod sa pagsira",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Modelo",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Pagkompleto sa teksto",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Text-to-speech nga makina",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Sugyot: Pag-update sa daghang variable nga lokasyon nga sunud-sunod pinaagi sa pagpindot sa tab key sa chat entry pagkahuman sa matag puli.",
|
||||
"Title": "Titulo",
|
||||
"Title (e.g. Tell me a fun fact)": "",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "",
|
||||
"Toggle settings": "I-toggle ang mga setting",
|
||||
"Toggle sidebar": "I-toggle ang sidebar",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Pag-uswag sa Pag-upload",
|
||||
"URL Mode": "URL mode",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Gamita ang '#' sa dali nga pagsulod aron makarga ug mapili ang imong mga dokumento.",
|
||||
"Use Gravatar": "Paggamit sa Gravatar",
|
||||
"Use Initials": "",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Benutzerdefinierten Prompt hinzufügen",
|
||||
"Add Docs": "Dokumente hinzufügen",
|
||||
"Add Files": "Dateien hinzufügen",
|
||||
"Add Memory": "Erinnerung hinzufügen",
|
||||
"Add message": "Nachricht hinzufügen",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratoren haben jederzeit Zugriff auf alle Werkzeuge. Benutzer können im Arbeitsbereich zugewiesen.",
|
||||
"Advanced Parameters": "Erweiterte Parameter",
|
||||
"Advanced Params": "Erweiterte Parameter",
|
||||
"all": "Alle",
|
||||
"All Documents": "Alle Dokumente",
|
||||
"All Users": "Alle Benutzer",
|
||||
"Allow": "Erlauben",
|
||||
"Allow Chat Deletion": "Unterhaltungen löschen erlauben",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Nicht-lokale Stimmen erlauben",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Abbrechen",
|
||||
"Capabilities": "Fähigkeiten",
|
||||
"Change Password": "Passwort ändern",
|
||||
"Character": "",
|
||||
"Chat": "Gespräch",
|
||||
"Chat Background Image": "Hintergrundbild des Unterhaltungsfensters",
|
||||
"Chat Bubble UI": "Chat Bubble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klicke Sie zum Auswählen hier",
|
||||
"Click here to select a csv file.": "Klicken Sie zum Auswählen einer CSV-Datei hier.",
|
||||
"Click here to select a py file.": "Klicken Sie zum Auswählen einer py-Datei hier.",
|
||||
"Click here to select documents.": "Klicken Sie zum Auswählen von Dokumenten hier",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "hier klicken.",
|
||||
"Click on the user role button to change a user's role.": "Klicken Sie auf die Benutzerrolle, um sie zu ändern.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Schreibberechtigung für die Zwischenablage verweigert. Bitte überprüfen Sie Ihre Browsereinstellungen, um den erforderlichen Zugriff zu erlauben.",
|
||||
"Clone": "Klonen",
|
||||
"Close": "Schließen",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Code erfolgreich formatiert",
|
||||
"Collection": "Kollektion",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Letzten Codeblock kopieren",
|
||||
"Copy last response": "Letzte Antwort kopieren",
|
||||
"Copy Link": "Link kopieren",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
|
||||
"Create a model": "Ein Modell erstellen",
|
||||
"Create Account": "Konto erstellen",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Standardmodell aktualisiert",
|
||||
"Default Prompt Suggestions": "Prompt-Vorschläge",
|
||||
"Default User Role": "Standardbenutzerrolle",
|
||||
"delete": "löschen",
|
||||
"Delete": "Löschen",
|
||||
"Delete a model": "Ein Modell löschen",
|
||||
"Delete All Chats": "Alle Unterhaltungen löschen",
|
||||
"Delete chat": "Unterhaltung löschen",
|
||||
"Delete Chat": "Unterhaltung löschen",
|
||||
"Delete chat?": "Unterhaltung löschen?",
|
||||
"Delete Doc": "Dokument löschen",
|
||||
"Delete function?": "Funktion löschen?",
|
||||
"Delete prompt?": "Prompt löschen?",
|
||||
"delete this link": "diesen Link löschen",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentation",
|
||||
"Documents": "Dokumente",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "stellt keine externen Verbindungen her, und Ihre Daten bleiben sicher auf Ihrem lokal gehosteten Server.",
|
||||
"Don't Allow": "Verbieten",
|
||||
"Don't have an account?": "Haben Sie noch kein Benutzerkonto?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Exportieren",
|
||||
"Download canceled": "Exportierung abgebrochen",
|
||||
"Download Database": "Datenbank exportieren",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Ziehen Sie beliebige Dateien hierher, um sie der Unterhaltung hinzuzufügen",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z. B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.",
|
||||
"Edit": "Bearbeiten",
|
||||
"Edit Doc": "Dokument bearbeiten",
|
||||
"Edit Memory": "Erinnerungen bearbeiten",
|
||||
"Edit User": "Benutzer bearbeiten",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Geben Sie Ihr Passwort ein",
|
||||
"Enter Your Role": "Geben Sie Ihre Rolle ein",
|
||||
"Error": "Fehler",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimentell",
|
||||
"Export": "Exportieren",
|
||||
"Export All Chats (All Users)": "Alle Unterhaltungen exportieren (alle Benutzer)",
|
||||
"Export chat (.json)": "Unterhaltung exportieren (.json)",
|
||||
"Export Chats": "Unterhaltungen exportieren",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Dokumentenzuordnung exportieren",
|
||||
"Export Functions": "Funktionen exportieren",
|
||||
"Export LiteLLM config.yaml": "LiteLLM-Konfiguration exportieren (config.yaml)",
|
||||
"Export Models": "Modelle exportieren",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Bilder",
|
||||
"Import Chats": "Unterhaltungen importieren",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Dokumentenzuordnung importieren",
|
||||
"Import Functions": "Funktionen importieren",
|
||||
"Import Models": "Modelle importieren",
|
||||
"Import Prompts": "Prompts importieren",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installiere von der Github-URL",
|
||||
"Instant Auto-Send After Voice Transcription": "Spracherkennung direkt absenden",
|
||||
"Interface": "Benutzeroberfläche",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Ungültiger Tag",
|
||||
"January": "Januar",
|
||||
"join our Discord for help.": "Treten Sie unserem Discord bei, um Hilfe zu erhalten.",
|
||||
|
|
@ -447,13 +444,13 @@
|
|||
"more": "mehr",
|
||||
"Move to Top": "",
|
||||
"Name": "Name",
|
||||
"Name Tag": "Namens-Tag",
|
||||
"Name your model": "Benennen Sie Ihr Modell",
|
||||
"New Chat": "Neue Unterhaltung",
|
||||
"New Password": "Neues Passwort",
|
||||
"No content found": "",
|
||||
"No content to speak": "Kein Inhalt zum Vorlesen",
|
||||
"No file selected": "Keine Datei ausgewählt",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Keine Ergebnisse gefunden",
|
||||
|
|
@ -496,6 +493,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI-URL/Schlüssel erforderlich.",
|
||||
"or": "oder",
|
||||
"Other": "Andere",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "Seite",
|
||||
|
|
@ -548,7 +546,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking-Modell \"{{reranking_model}}\" fesgelegt",
|
||||
"Reset": "Zurücksetzen",
|
||||
"Reset Upload Directory": "Upload-Verzeichnis zurücksetzen",
|
||||
"Reset Vector Storage": "Vektorspeicher zurücksetzen",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Benachrichtigungen können nicht aktiviert werden, da die Website-Berechtigungen abgelehnt wurden. Bitte besuchen Sie Ihre Browser-Einstellungen, um den erforderlichen Zugriff zu gewähren.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -571,7 +569,7 @@
|
|||
"Search a model": "Modell suchen",
|
||||
"Search Chats": "Unterhaltungen durchsuchen...",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Dokumente durchsuchen...",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Funktionen durchsuchen...",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Modelle durchsuchen...",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Spracherkennungsfehler: {{error}}",
|
||||
"Speech-to-Text Engine": "Sprache-zu-Text-Engine",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stop-Sequenz",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT-Modell",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Vorlage",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Textvervollständigung",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Text-zu-Sprache-Engine",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Danke für Ihr Feedback!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Ausführliche Erklärung",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Tika-Server-URL erforderlich.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tipp: Aktualisieren Sie mehrere Variablenfelder nacheinander, indem Sie nach jedem Ersetzen die Tabulatortaste im Eingabefeld der Unterhaltung drücken.",
|
||||
"Title": "Titel",
|
||||
"Title (e.g. Tell me a fun fact)": "Titel (z. B. Erzähl mir einen lustigen Fakt)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Heute",
|
||||
"Toggle settings": "Einstellungen umschalten",
|
||||
"Toggle sidebar": "Seitenleiste umschalten",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Beizubehaltende Tokens bei Kontextaktualisierung (num_keep)",
|
||||
"Tool created successfully": "Werkzeug erfolgreich erstellt",
|
||||
"Tool deleted successfully": "Werkzeug erfolgreich gelöscht",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Hochladefortschritt",
|
||||
"URL Mode": "URL-Modus",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Verwenden Sie '#' in der Eingabeaufforderung, um Ihre Dokumente zu laden und auszuwählen.",
|
||||
"Use Gravatar": "Gravatar verwenden",
|
||||
"Use Initials": "Initialen verwenden",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "",
|
||||
"Add Docs": "Add Docs",
|
||||
"Add Files": "Add Files",
|
||||
"Add Memory": "",
|
||||
"Add message": "Add Prompt",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Advanced Parameters",
|
||||
"Advanced Params": "",
|
||||
"all": "all",
|
||||
"All Documents": "",
|
||||
"All Users": "All Users",
|
||||
"Allow": "Allow",
|
||||
"Allow Chat Deletion": "Allow Delete Chats",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cancel",
|
||||
"Capabilities": "",
|
||||
"Change Password": "Change Password",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Click to select",
|
||||
"Click here to select a csv file.": "",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Click to select documents",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "click here. Such click.",
|
||||
"Click on the user role button to change a user's role.": "Click user role button to change role.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "",
|
||||
"Close": "Close",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Collection",
|
||||
"ComfyUI": "",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copy last code block",
|
||||
"Copy last response": "Copy last response",
|
||||
"Copy Link": "",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Copying to clipboard was success! Very success!",
|
||||
"Create a model": "",
|
||||
"Create Account": "Create Account",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Default model much updated",
|
||||
"Default Prompt Suggestions": "Default Prompt Suggestions",
|
||||
"Default User Role": "Default User Role",
|
||||
"delete": "delete",
|
||||
"Delete": "",
|
||||
"Delete a model": "Delete a model",
|
||||
"Delete All Chats": "",
|
||||
"Delete chat": "Delete chat",
|
||||
"Delete Chat": "",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Documents",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "does not connect external, data stays safe locally.",
|
||||
"Don't Allow": "Don't Allow",
|
||||
"Don't have an account?": "No account? Much sad.",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "",
|
||||
"Download canceled": "",
|
||||
"Download Database": "Download Database",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Drop files here to add to conversation",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Much time units are 's', 'm', 'h'.",
|
||||
"Edit": "",
|
||||
"Edit Doc": "Edit Doge",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Edit Wowser",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Enter Your Barkword",
|
||||
"Enter Your Role": "",
|
||||
"Error": "",
|
||||
"ERROR": "",
|
||||
"Experimental": "Much Experiment",
|
||||
"Export": "",
|
||||
"Export All Chats (All Users)": "Export All Chats (All Doggos)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Export Barks",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Export Mappings of Dogos",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Wowmages",
|
||||
"Import Chats": "Import Barks",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Import Doge Mapping",
|
||||
"Import Functions": "",
|
||||
"Import Models": "",
|
||||
"Import Prompts": "Import Promptos",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Interface",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "",
|
||||
"January": "",
|
||||
"join our Discord for help.": "join our Discord for help.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "",
|
||||
"Move to Top": "",
|
||||
"Name": "Name",
|
||||
"Name Tag": "Name Tag",
|
||||
"Name your model": "",
|
||||
"New Chat": "New Bark",
|
||||
"New Password": "New Barkword",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "",
|
||||
"or": "or",
|
||||
"Other": "",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Reset Vector Storage",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copy Bark Auto Bark",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "",
|
||||
"Search Chats": "",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Search Documents much find",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "",
|
||||
|
|
@ -646,6 +644,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
|
||||
"Speech-to-Text Engine": "Speech-to-Text Engine much speak",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stop Sequence much stop",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -668,6 +667,7 @@
|
|||
"Template": "Template much template",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Text Completion much complete",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Text-to-Speech Engine much speak",
|
||||
"Tfs Z": "Tfs Z much Z",
|
||||
"Thanks for your feedback!": "",
|
||||
|
|
@ -686,6 +686,7 @@
|
|||
"Thorough explanation": "",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement. Much tip!",
|
||||
"Title": "Title very title",
|
||||
"Title (e.g. Tell me a fun fact)": "",
|
||||
|
|
@ -703,6 +704,7 @@
|
|||
"Today": "",
|
||||
"Toggle settings": "Toggle settings much toggle",
|
||||
"Toggle sidebar": "Toggle sidebar much toggle",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -741,7 +743,6 @@
|
|||
"Upload Progress": "Upload Progress much progress",
|
||||
"URL Mode": "URL Mode much mode",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Use '#' in the prompt input to load and select your documents. Much use.",
|
||||
"Use Gravatar": "Use Gravatar much avatar",
|
||||
"Use Initials": "Use Initials much initial",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "",
|
||||
"Add Docs": "",
|
||||
"Add Files": "",
|
||||
"Add Memory": "",
|
||||
"Add message": "",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "",
|
||||
"Advanced Params": "",
|
||||
"all": "",
|
||||
"All Documents": "",
|
||||
"All Users": "",
|
||||
"Allow": "",
|
||||
"Allow Chat Deletion": "",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "",
|
||||
"Capabilities": "",
|
||||
"Change Password": "",
|
||||
"Character": "",
|
||||
"Chat": "",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "",
|
||||
"Click here to select a csv file.": "",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "",
|
||||
"Click on the user role button to change a user's role.": "",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "",
|
||||
"Close": "",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "",
|
||||
"ComfyUI": "",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "",
|
||||
"Copy last response": "",
|
||||
"Copy Link": "",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "",
|
||||
"Create a model": "",
|
||||
"Create Account": "",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "",
|
||||
"Default Prompt Suggestions": "",
|
||||
"Default User Role": "",
|
||||
"delete": "",
|
||||
"Delete": "",
|
||||
"Delete a model": "",
|
||||
"Delete All Chats": "",
|
||||
"Delete chat": "",
|
||||
"Delete Chat": "",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "",
|
||||
"Don't Allow": "",
|
||||
"Don't have an account?": "",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "",
|
||||
"Download canceled": "",
|
||||
"Download Database": "",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "",
|
||||
"Edit": "",
|
||||
"Edit Doc": "",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "",
|
||||
"Enter Your Role": "",
|
||||
"Error": "",
|
||||
"ERROR": "",
|
||||
"Experimental": "",
|
||||
"Export": "",
|
||||
"Export All Chats (All Users)": "",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "",
|
||||
"Import Chats": "",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "",
|
||||
"Import Functions": "",
|
||||
"Import Models": "",
|
||||
"Import Prompts": "",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "",
|
||||
"January": "",
|
||||
"join our Discord for help.": "",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "",
|
||||
"Move to Top": "",
|
||||
"Name": "",
|
||||
"Name Tag": "",
|
||||
"Name your model": "",
|
||||
"New Chat": "",
|
||||
"New Password": "",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "",
|
||||
"or": "",
|
||||
"Other": "",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "",
|
||||
"Search Chats": "",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "",
|
||||
"Speech-to-Text Engine": "",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "",
|
||||
"Tfs Z": "",
|
||||
"Thanks for your feedback!": "",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "",
|
||||
"Title": "",
|
||||
"Title (e.g. Tell me a fun fact)": "",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "",
|
||||
"Toggle settings": "",
|
||||
"Toggle sidebar": "",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "",
|
||||
"URL Mode": "",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "",
|
||||
"Use Gravatar": "",
|
||||
"Use Initials": "",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "",
|
||||
"Add Docs": "",
|
||||
"Add Files": "",
|
||||
"Add Memory": "",
|
||||
"Add message": "",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "",
|
||||
"Advanced Params": "",
|
||||
"all": "",
|
||||
"All Documents": "",
|
||||
"All Users": "",
|
||||
"Allow": "",
|
||||
"Allow Chat Deletion": "",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "",
|
||||
"Capabilities": "",
|
||||
"Change Password": "",
|
||||
"Character": "",
|
||||
"Chat": "",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "",
|
||||
"Click here to select a csv file.": "",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "",
|
||||
"Click on the user role button to change a user's role.": "",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "",
|
||||
"Close": "",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "",
|
||||
"ComfyUI": "",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "",
|
||||
"Copy last response": "",
|
||||
"Copy Link": "",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "",
|
||||
"Create a model": "",
|
||||
"Create Account": "",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "",
|
||||
"Default Prompt Suggestions": "",
|
||||
"Default User Role": "",
|
||||
"delete": "",
|
||||
"Delete": "",
|
||||
"Delete a model": "",
|
||||
"Delete All Chats": "",
|
||||
"Delete chat": "",
|
||||
"Delete Chat": "",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "",
|
||||
"Don't Allow": "",
|
||||
"Don't have an account?": "",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "",
|
||||
"Download canceled": "",
|
||||
"Download Database": "",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "",
|
||||
"Edit": "",
|
||||
"Edit Doc": "",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "",
|
||||
"Enter Your Role": "",
|
||||
"Error": "",
|
||||
"ERROR": "",
|
||||
"Experimental": "",
|
||||
"Export": "",
|
||||
"Export All Chats (All Users)": "",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "",
|
||||
"Import Chats": "",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "",
|
||||
"Import Functions": "",
|
||||
"Import Models": "",
|
||||
"Import Prompts": "",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "",
|
||||
"January": "",
|
||||
"join our Discord for help.": "",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "",
|
||||
"Move to Top": "",
|
||||
"Name": "",
|
||||
"Name Tag": "",
|
||||
"Name your model": "",
|
||||
"New Chat": "",
|
||||
"New Password": "",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "",
|
||||
"or": "",
|
||||
"Other": "",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "",
|
||||
"Search Chats": "",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "",
|
||||
"Speech-to-Text Engine": "",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "",
|
||||
"Tfs Z": "",
|
||||
"Thanks for your feedback!": "",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "",
|
||||
"Title": "",
|
||||
"Title (e.g. Tell me a fun fact)": "",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "",
|
||||
"Toggle settings": "",
|
||||
"Toggle sidebar": "",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "",
|
||||
"URL Mode": "",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "",
|
||||
"Use Gravatar": "",
|
||||
"Use Initials": "",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "Agregar Contenido",
|
||||
"Add content here": "Agrege contenido aquí",
|
||||
"Add custom prompt": "Agregar un prompt personalizado",
|
||||
"Add Docs": "Agregar Documentos",
|
||||
"Add Files": "Agregar Archivos",
|
||||
"Add Memory": "Agregar Memoria",
|
||||
"Add message": "Agregar mensaje",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Admins tienen acceso a todas las herramientas en todo momento; los usuarios necesitan herramientas asignadas por modelo en el espacio de trabajo.",
|
||||
"Advanced Parameters": "Parámetros Avanzados",
|
||||
"Advanced Params": "Parámetros avanzados",
|
||||
"all": "todo",
|
||||
"All Documents": "Todos los Documentos",
|
||||
"All Users": "Todos los Usuarios",
|
||||
"Allow": "Permitir",
|
||||
"Allow Chat Deletion": "Permitir Borrar Chats",
|
||||
"Allow Chat Editing": "Permitir Editar Chat",
|
||||
"Allow non-local voices": "Permitir voces no locales",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cancelar",
|
||||
"Capabilities": "Capacidades",
|
||||
"Change Password": "Cambia la Contraseña",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Imágen de fondo del Chat",
|
||||
"Chat Bubble UI": "Burbuja de chat UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Presiona aquí para seleccionar",
|
||||
"Click here to select a csv file.": "Presiona aquí para seleccionar un archivo csv.",
|
||||
"Click here to select a py file.": "Presiona aquí para seleccionar un archivo py.",
|
||||
"Click here to select documents.": "Presiona aquí para seleccionar documentos",
|
||||
"Click here to upload a workflow.json file.": "Presiona aquí para subir un archivo workflow.json.",
|
||||
"click here.": "Presiona aquí.",
|
||||
"Click on the user role button to change a user's role.": "Presiona en el botón de roles del usuario para cambiar su rol.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permisos de escritura del portapapeles denegados. Por favor, comprueba las configuraciones de tu navegador para otorgar el acceso necesario.",
|
||||
"Clone": "Clonar",
|
||||
"Close": "Cerrar",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Se ha formateado correctamente el código.",
|
||||
"Collection": "Colección",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copia el último bloque de código",
|
||||
"Copy last response": "Copia la última respuesta",
|
||||
"Copy Link": "Copiar enlace",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "¡La copia al portapapeles se ha realizado correctamente!",
|
||||
"Create a model": "Crear un modelo",
|
||||
"Create Account": "Crear una cuenta",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "El modelo por defecto ha sido actualizado",
|
||||
"Default Prompt Suggestions": "Sugerencias de mensajes por defecto",
|
||||
"Default User Role": "Rol por defecto para usuarios",
|
||||
"delete": "borrar",
|
||||
"Delete": "Borrar",
|
||||
"Delete a model": "Borra un modelo",
|
||||
"Delete All Chats": "Eliminar todos los chats",
|
||||
"Delete chat": "Borrar chat",
|
||||
"Delete Chat": "Borrar Chat",
|
||||
"Delete chat?": "Borrar el chat?",
|
||||
"Delete Doc": "Borrar Doc",
|
||||
"Delete function?": "Borrar la función?",
|
||||
"Delete prompt?": "Borrar el prompt?",
|
||||
"delete this link": "Borrar este enlace",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentación",
|
||||
"Documents": "Documentos",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "no realiza ninguna conexión externa y sus datos permanecen seguros en su servidor alojado localmente.",
|
||||
"Don't Allow": "No Permitir",
|
||||
"Don't have an account?": "¿No tienes una cuenta?",
|
||||
"don't install random functions from sources you don't trust.": "no instale funciones aleatorias desde fuentes que no confíe.",
|
||||
"don't install random tools from sources you don't trust.": "no instale herramientas aleatorias desde fuentes que no confíe.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Descargar",
|
||||
"Download canceled": "Descarga cancelada",
|
||||
"Download Database": "Descarga la Base de Datos",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Suelta cualquier archivo aquí para agregarlo a la conversación",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p.ej. '30s','10m'. Unidades válidas de tiempo son 's', 'm', 'h'.",
|
||||
"Edit": "Editar",
|
||||
"Edit Doc": "Editar Documento",
|
||||
"Edit Memory": "Editar Memoria",
|
||||
"Edit User": "Editar Usuario",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Ingrese su contraseña",
|
||||
"Enter Your Role": "Ingrese su rol",
|
||||
"Error": "Error",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimental",
|
||||
"Export": "Exportar",
|
||||
"Export All Chats (All Users)": "Exportar todos los chats (Todos los usuarios)",
|
||||
"Export chat (.json)": "Exportar chat (.json)",
|
||||
"Export Chats": "Exportar Chats",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportar el mapeo de documentos",
|
||||
"Export Functions": "Exportar Funciones",
|
||||
"Export LiteLLM config.yaml": "Exportar LiteLLM config.yaml",
|
||||
"Export Models": "Exportar Modelos",
|
||||
|
|
@ -295,7 +292,7 @@
|
|||
"Export Tools": "Exportar Herramientas",
|
||||
"External Models": "Modelos Externos",
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "No se pudo crear la clave API.",
|
||||
"Failed to create API Key.": "No se pudo crear la clave API.",
|
||||
"Failed to read clipboard contents": "No se pudo leer el contenido del portapapeles",
|
||||
"Failed to update settings": "Falla al actualizar los ajustes",
|
||||
"Failed to upload file.": "Falla al subir el archivo.",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imágenes",
|
||||
"Import Chats": "Importar chats",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importar Mapeo de Documentos",
|
||||
"Import Functions": "Importar Funciones",
|
||||
"Import Models": "Importar modelos",
|
||||
"Import Prompts": "Importar Prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instalar desde la URL de Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Auto-Enviar Después de la Transcripción de Voz",
|
||||
"Interface": "Interfaz",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Etiqueta Inválida",
|
||||
"January": "Enero",
|
||||
"join our Discord for help.": "Únase a nuestro Discord para obtener ayuda.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Más",
|
||||
"Move to Top": "Mueve al tope",
|
||||
"Name": "Nombre",
|
||||
"Name Tag": "Nombre de etiqueta",
|
||||
"Name your model": "Asigne un nombre a su modelo",
|
||||
"New Chat": "Nuevo Chat",
|
||||
"New Password": "Nueva Contraseña",
|
||||
"No content found": "",
|
||||
"No content to speak": "No hay contenido para hablar",
|
||||
"No content to speak": "No hay contenido para hablar",
|
||||
"No file selected": "Ningún archivo fué seleccionado",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "No se encontró contenido HTML, CSS, o JavaScript.",
|
||||
"No knowledge found": "No se encontró ningún conocimiento",
|
||||
"No results found": "No se han encontrado resultados",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Clave de OpenAI es requerida.",
|
||||
"or": "o",
|
||||
"Other": "Otro",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Formato de salida",
|
||||
"Overview": "Vista general",
|
||||
"page": "página",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de reranking establecido en \"{{reranking_model}}\"",
|
||||
"Reset": "Reiniciar",
|
||||
"Reset Upload Directory": "Reiniciar Directorio de carga",
|
||||
"Reset Vector Storage": "Restablecer almacenamiento vectorial",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copiar respuesta automáticamente al portapapeles",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Las notificaciones de respuesta no pueden activarse debido a que los permisos del sitio web han sido denegados. Por favor, visite las configuraciones de su navegador para otorgar el acceso necesario.",
|
||||
"Response splitting": "División de respuestas",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Buscar un modelo",
|
||||
"Search Chats": "Chats de búsqueda",
|
||||
"Search Collection": "Buscar Colección",
|
||||
"Search Documents": "Buscar Documentos",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Buscar Funciones",
|
||||
"Search Knowledge": "Buscar Conocimiento",
|
||||
"Search Models": "Buscar Modelos",
|
||||
|
|
@ -592,7 +590,7 @@
|
|||
"Select a base model": "Seleccionar un modelo base",
|
||||
"Select a engine": "Busca un motor",
|
||||
"Select a file to view or drag and drop a file to upload": "",
|
||||
"Select a function": "Busca una función",
|
||||
"Select a function": "Busca una función",
|
||||
"Select a model": "Selecciona un modelo",
|
||||
"Select a pipeline": "Selección de una Pipeline",
|
||||
"Select a pipeline url": "Selección de una dirección URL de Pipeline",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "Velocidad de reproducción de voz",
|
||||
"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
|
||||
"Speech-to-Text Engine": "Motor de voz a texto",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Detener secuencia",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Modelo STT",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Plantilla",
|
||||
"Temporary Chat": "Chat temporal",
|
||||
"Text Completion": "Finalización de texto",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motor de texto a voz",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "¡Gracias por tu retroalimentación!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explicación exhaustiva",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "URL del servidor de Tika",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Consejo: Actualice múltiples variables consecutivamente presionando la tecla tab en la entrada del chat después de cada reemplazo.",
|
||||
"Title": "Título",
|
||||
"Title (e.g. Tell me a fun fact)": "Título (por ejemplo, cuéntame una curiosidad)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Hoy",
|
||||
"Toggle settings": "Alternar configuración",
|
||||
"Toggle sidebar": "Alternar barra lateral",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokens a mantener en el contexto de actualización (num_keep)",
|
||||
"Tool created successfully": "Herramienta creada con éxito",
|
||||
"Tool deleted successfully": "Herramienta eliminada con éxito",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progreso de carga",
|
||||
"URL Mode": "Modo de URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Utilize '#' en el prompt para cargar y incluir su conocimiento.",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Utilice '#' en el prompt para cargar y seleccionar sus documentos.",
|
||||
"Use Gravatar": "Usar Gravatar",
|
||||
"Use Initials": "Usar Iniciales",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "اضافه کردن یک درخواست سفارشی",
|
||||
"Add Docs": "اضافه کردن اسناد",
|
||||
"Add Files": "اضافه کردن فایل\u200cها",
|
||||
"Add Memory": "اضافه کردن یادگیری",
|
||||
"Add message": "اضافه کردن پیغام",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "پارامترهای پیشرفته",
|
||||
"Advanced Params": "پارام های پیشرفته",
|
||||
"all": "همه",
|
||||
"All Documents": "تمام سند ها",
|
||||
"All Users": "همه کاربران",
|
||||
"Allow": "اجازه دادن",
|
||||
"Allow Chat Deletion": "اجازه حذف گپ",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "لغو",
|
||||
"Capabilities": "قابلیت",
|
||||
"Change Password": "تغییر رمز عبور",
|
||||
"Character": "",
|
||||
"Chat": "گپ",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "UI\u200cی\u200c گفتگو\u200c",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "برای انتخاب اینجا کلیک کنید",
|
||||
"Click here to select a csv file.": "برای انتخاب یک فایل csv اینجا را کلیک کنید.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "برای انتخاب اسناد اینجا را کلیک کنید.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "اینجا کلیک کنید.",
|
||||
"Click on the user role button to change a user's role.": "برای تغییر نقش کاربر، روی دکمه نقش کاربر کلیک کنید.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "کلون",
|
||||
"Close": "بسته",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "مجموعه",
|
||||
"ComfyUI": "کومیوآی",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "کپی آخرین بلوک کد",
|
||||
"Copy last response": "کپی آخرین پاسخ",
|
||||
"Copy Link": "کپی لینک",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "کپی کردن در کلیپ بورد با موفقیت انجام شد!",
|
||||
"Create a model": "ایجاد یک مدل",
|
||||
"Create Account": "ساخت حساب کاربری",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "مدل پیشفرض به\u200cروزرسانی شد",
|
||||
"Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض",
|
||||
"Default User Role": "نقش کاربر پیش فرض",
|
||||
"delete": "حذف",
|
||||
"Delete": "حذف",
|
||||
"Delete a model": "حذف یک مدل",
|
||||
"Delete All Chats": "حذف همه گفتگوها",
|
||||
"Delete chat": "حذف گپ",
|
||||
"Delete Chat": "حذف گپ",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "حذف این لینک",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "اسناد",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "هیچ اتصال خارجی ایجاد نمی کند و داده های شما به طور ایمن در سرور میزبان محلی شما باقی می ماند.",
|
||||
"Don't Allow": "اجازه نده",
|
||||
"Don't have an account?": "حساب کاربری ندارید؟",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "دانلود کن",
|
||||
"Download canceled": "دانلود لغو شد",
|
||||
"Download Database": "دانلود پایگاه داده",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "هر فایلی را اینجا رها کنید تا به مکالمه اضافه شود",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.",
|
||||
"Edit": "ویرایش",
|
||||
"Edit Doc": "ویرایش سند",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "ویرایش کاربر",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "رمز عبور خود را وارد کنید",
|
||||
"Enter Your Role": "نقش خود را وارد کنید",
|
||||
"Error": "خطا",
|
||||
"ERROR": "",
|
||||
"Experimental": "آزمایشی",
|
||||
"Export": "صادرات",
|
||||
"Export All Chats (All Users)": "اکسپورت از همه گپ\u200cها(همه کاربران)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "اکسپورت از گپ\u200cها",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "اکسپورت از نگاشت اسناد",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "مدل های صادرات",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "تصاویر",
|
||||
"Import Chats": "ایمپورت گپ\u200cها",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "ایمپورت نگاشت اسناد",
|
||||
"Import Functions": "",
|
||||
"Import Models": "واردات مدلها",
|
||||
"Import Prompts": "ایمپورت پرامپت\u200cها",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "نصب از ادرس Github",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "رابط",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "تگ نامعتبر",
|
||||
"January": "ژانویه",
|
||||
"join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "بیشتر",
|
||||
"Move to Top": "",
|
||||
"Name": "نام",
|
||||
"Name Tag": "نام تگ",
|
||||
"Name your model": "نام مدل خود را",
|
||||
"New Chat": "گپ جدید",
|
||||
"New Password": "رمز عبور جدید",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "نتیجه\u200cای یافت نشد",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Key OpenAI مورد نیاز است.",
|
||||
"or": "روشن",
|
||||
"Other": "دیگر",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "مدل ری\u200cشناسی مجدد به \"{{reranking_model}}\" تنظیم شده است",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "بازنشانی ذخیره سازی برداری",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "جستجوی مدل",
|
||||
"Search Chats": "جستجو گپ ها",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "جستجوی اسناد",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "مدل های جستجو",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
|
||||
"Speech-to-Text Engine": "موتور گفتار به متن",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "توالی توقف",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "الگو",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "تکمیل متن",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "موتور تبدیل متن به گفتار",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "با تشکر از بازخورد شما!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "توضیح کامل",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "با فشردن کلید Tab در ورودی چت پس از هر بار تعویض، چندین متغیر را به صورت متوالی به روزرسانی کنید.",
|
||||
"Title": "عنوان",
|
||||
"Title (e.g. Tell me a fun fact)": "عنوان (برای مثال: به من بگوید چیزی که دوست دارید)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "امروز",
|
||||
"Toggle settings": "نمایش/عدم نمایش تنظیمات",
|
||||
"Toggle sidebar": "نمایش/عدم نمایش نوار کناری",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "پیشرفت آپلود",
|
||||
"URL Mode": "حالت URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "در پرامپت از '#' برای لود و انتخاب اسناد خود استفاده کنید.",
|
||||
"Use Gravatar": "استفاده از گراواتار",
|
||||
"Use Initials": "استفاده از آبزوده",
|
||||
"use_mlock (Ollama)": "use_mlock (اولاما)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Lisää mukautettu kehote",
|
||||
"Add Docs": "Lisää asiakirjoja",
|
||||
"Add Files": "Lisää tiedostoja",
|
||||
"Add Memory": "Lisää muistia",
|
||||
"Add message": "Lisää viesti",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Edistyneet parametrit",
|
||||
"Advanced Params": "Edistyneet parametrit",
|
||||
"all": "kaikki",
|
||||
"All Documents": "Kaikki asiakirjat",
|
||||
"All Users": "Kaikki käyttäjät",
|
||||
"Allow": "Salli",
|
||||
"Allow Chat Deletion": "Salli keskustelujen poisto",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Peruuta",
|
||||
"Capabilities": "Ominaisuuksia",
|
||||
"Change Password": "Vaihda salasana",
|
||||
"Character": "",
|
||||
"Chat": "Keskustelu",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Keskustelu-pallojen käyttöliittymä",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klikkaa tästä valitaksesi",
|
||||
"Click here to select a csv file.": "Klikkaa tästä valitaksesi CSV-tiedosto.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Klikkaa tästä valitaksesi asiakirjoja.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "klikkaa tästä.",
|
||||
"Click on the user role button to change a user's role.": "Klikkaa käyttäjän roolipainiketta vaihtaaksesi käyttäjän roolia.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Klooni",
|
||||
"Close": "Sulje",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Kokoelma",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopioi viimeisin koodilohko",
|
||||
"Copy last response": "Kopioi viimeisin vastaus",
|
||||
"Copy Link": "Kopioi linkki",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopioiminen leikepöydälle onnistui!",
|
||||
"Create a model": "Mallin luominen",
|
||||
"Create Account": "Luo tili",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Oletusmalli päivitetty",
|
||||
"Default Prompt Suggestions": "Oletuskehotteiden ehdotukset",
|
||||
"Default User Role": "Oletuskäyttäjärooli",
|
||||
"delete": "poista",
|
||||
"Delete": "Poista",
|
||||
"Delete a model": "Poista malli",
|
||||
"Delete All Chats": "Poista kaikki keskustelut",
|
||||
"Delete chat": "Poista keskustelu",
|
||||
"Delete Chat": "Poista keskustelu",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "poista tämä linkki",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Asiakirjat",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ei tee ulkoisia yhteyksiä, ja tietosi pysyvät turvallisesti paikallisesti isännöidyllä palvelimellasi.",
|
||||
"Don't Allow": "Älä salli",
|
||||
"Don't have an account?": "Eikö sinulla ole tiliä?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Lataa",
|
||||
"Download canceled": "Lataus peruutettu",
|
||||
"Download Database": "Lataa tietokanta",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Pudota tiedostoja tähän lisätäksesi ne keskusteluun",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "esim. '30s', '10m'. Kelpoiset aikayksiköt ovat 's', 'm', 'h'.",
|
||||
"Edit": "Muokkaa",
|
||||
"Edit Doc": "Muokkaa asiakirjaa",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Muokkaa käyttäjää",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Syötä salasanasi",
|
||||
"Enter Your Role": "Syötä roolisi",
|
||||
"Error": "Virhe",
|
||||
"ERROR": "",
|
||||
"Experimental": "Kokeellinen",
|
||||
"Export": "Vienti",
|
||||
"Export All Chats (All Users)": "Vie kaikki keskustelut (kaikki käyttäjät)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Vie keskustelut",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Vie asiakirjakartoitus",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Vie malleja",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Kuvat",
|
||||
"Import Chats": "Tuo keskustelut",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Tuo asiakirjakartoitus",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Mallien tuominen",
|
||||
"Import Prompts": "Tuo kehotteita",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Asenna Githubin URL-osoitteesta",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Käyttöliittymä",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Virheellinen tagi",
|
||||
"January": "tammikuu",
|
||||
"join our Discord for help.": "liity Discordiimme saadaksesi apua.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Lisää",
|
||||
"Move to Top": "",
|
||||
"Name": "Nimi",
|
||||
"Name Tag": "Nimitagi",
|
||||
"Name your model": "Mallin nimeäminen",
|
||||
"New Chat": "Uusi keskustelu",
|
||||
"New Password": "Uusi salasana",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Ei tuloksia",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/ -avain vaaditaan.",
|
||||
"or": "tai",
|
||||
"Other": "Muu",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "\"{{reranking_model}}\" valittu uudelleenpisteytysmalliksi",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Tyhjennä vektorivarasto",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Vastauksen automaattikopiointi leikepöydälle",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Hae mallia",
|
||||
"Search Chats": "Etsi chatteja",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Hae asiakirjoja",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Hae malleja",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Puheentunnistusvirhe: {{error}}",
|
||||
"Speech-to-Text Engine": "Puheentunnistusmoottori",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Lopetussekvenssi",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Malline",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Tekstin täydennys",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Puhemoottori",
|
||||
"Tfs Z": "TFS Z",
|
||||
"Thanks for your feedback!": "Kiitos palautteestasi!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Perusteellinen selitys",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Vinkki: Päivitä useita muuttujapaikkoja peräkkäin painamalla tabulaattoria keskustelusyötteessä jokaisen korvauksen jälkeen.",
|
||||
"Title": "Otsikko",
|
||||
"Title (e.g. Tell me a fun fact)": "Otsikko (esim. Kerro hauska fakta)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Tänään",
|
||||
"Toggle settings": "Kytke asetukset",
|
||||
"Toggle sidebar": "Kytke sivupalkki",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Latauksen eteneminen",
|
||||
"URL Mode": "URL-tila",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Käytä '#' syötteessä ladataksesi ja valitaksesi asiakirjoja.",
|
||||
"Use Gravatar": "Käytä Gravataria",
|
||||
"Use Initials": "Käytä alkukirjaimia",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Ajouter une prompt personnalisée",
|
||||
"Add Docs": "Ajouter de la documentation",
|
||||
"Add Files": "Ajouter des fichiers",
|
||||
"Add Memory": "Ajouter de la mémoire",
|
||||
"Add message": "Ajouter un message",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Les administrateurs ont accès à tous les outils en tout temps ; les utilisateurs ont besoin d'outils affectés par modèle dans l'espace de travail.",
|
||||
"Advanced Parameters": "Paramètres avancés",
|
||||
"Advanced Params": "Paramètres avancés",
|
||||
"all": "toutes",
|
||||
"All Documents": "Tous les documents",
|
||||
"All Users": "Tous les Utilisateurs",
|
||||
"Allow": "Autoriser",
|
||||
"Allow Chat Deletion": "Autoriser la suppression de l'historique de chat",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Autoriser les voix non locales",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Annuler",
|
||||
"Capabilities": "Capacités",
|
||||
"Change Password": "Changer le mot de passe",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Image d'arrière-plan de la fenêtre de chat",
|
||||
"Chat Bubble UI": "Bulles de discussion",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Cliquez ici pour sélectionner",
|
||||
"Click here to select a csv file.": "Cliquez ici pour sélectionner un fichier CSV.",
|
||||
"Click here to select a py file.": "Cliquez ici pour sélectionner un fichier .py.",
|
||||
"Click here to select documents.": "Cliquez ici pour sélectionner les documents.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "cliquez ici.",
|
||||
"Click on the user role button to change a user's role.": "Cliquez sur le bouton de rôle d'utilisateur pour modifier le rôle d'un utilisateur.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "L'autorisation d'écriture du presse-papier a été refusée. Veuillez vérifier les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Clone": "Copie conforme",
|
||||
"Close": "Fermer",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Le code a été formaté avec succès",
|
||||
"Collection": "Collection",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copier le dernier bloc de code",
|
||||
"Copy last response": "Copier la dernière réponse",
|
||||
"Copy Link": "Copier le lien",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
|
||||
"Create a model": "Créer un modèle",
|
||||
"Create Account": "Créer un compte",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modèle par défaut mis à jour",
|
||||
"Default Prompt Suggestions": "Suggestions de prompts par défaut",
|
||||
"Default User Role": "Rôle utilisateur par défaut",
|
||||
"delete": "supprimer",
|
||||
"Delete": "Supprimer",
|
||||
"Delete a model": "Supprimer un modèle",
|
||||
"Delete All Chats": "Supprimer toutes les conversations",
|
||||
"Delete chat": "Supprimer la conversation",
|
||||
"Delete Chat": "Supprimer la Conversation",
|
||||
"Delete chat?": "Supprimer la conversation ?",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "Supprimer la fonction ?",
|
||||
"Delete prompt?": "Supprimer la prompt ?",
|
||||
"delete this link": "supprimer ce lien",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentation",
|
||||
"Documents": "Documents",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ne fait aucune connexion externe et garde vos données en sécurité sur votre serveur local.",
|
||||
"Don't Allow": "Ne pas autoriser",
|
||||
"Don't have an account?": "Vous n'avez pas de compte ?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Télécharger",
|
||||
"Download canceled": "Téléchargement annulé",
|
||||
"Download Database": "Télécharger la base de données",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10 min'. Les unités de temps valides sont 's', 'm', 'h'.",
|
||||
"Edit": "Modifier",
|
||||
"Edit Doc": "Modifier le document",
|
||||
"Edit Memory": "Modifier la mémoire",
|
||||
"Edit User": "Modifier l'utilisateur",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Entrez votre mot de passe",
|
||||
"Enter Your Role": "Entrez votre rôle",
|
||||
"Error": "Erreur",
|
||||
"ERROR": "",
|
||||
"Experimental": "Expérimental",
|
||||
"Export": "Exportation",
|
||||
"Export All Chats (All Users)": "Exporter toutes les conversations (tous les utilisateurs)",
|
||||
"Export chat (.json)": "Exporter la discussion (.json)",
|
||||
"Export Chats": "Exporter les conversations",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportez la correspondance des documents",
|
||||
"Export Functions": "Exportez les Fonctions",
|
||||
"Export LiteLLM config.yaml": "Exportez le fichier LiteLLM config.yaml",
|
||||
"Export Models": "Exporter les modèles",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Images",
|
||||
"Import Chats": "Importer les discussions",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Import de la correspondance des documents",
|
||||
"Import Functions": "Import de fonctions",
|
||||
"Import Models": "Importer des modèles",
|
||||
"Import Prompts": "Importer des Enseignes",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installer depuis l'URL GitHub",
|
||||
"Instant Auto-Send After Voice Transcription": "Envoi automatique instantané après transcription vocale",
|
||||
"Interface": "Interface utilisateur",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Étiquette non valide",
|
||||
"January": "Janvier",
|
||||
"join our Discord for help.": "Rejoignez notre Discord pour obtenir de l'aide.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Plus de",
|
||||
"Move to Top": "",
|
||||
"Name": "Nom",
|
||||
"Name Tag": "Étiquette de nom",
|
||||
"Name your model": "Nommez votre modèle",
|
||||
"New Chat": "Nouvelle conversation",
|
||||
"New Password": "Nouveau mot de passe",
|
||||
"No content found": "",
|
||||
"No content to speak": "Rien à signaler",
|
||||
"No file selected": "Aucun fichier sélectionné",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Aucun résultat trouvé",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Clé OpenAI requise.",
|
||||
"or": "ou",
|
||||
"Other": "Autre",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modèle de ré-ranking défini sur « {{reranking_model}} »",
|
||||
"Reset": "Réinitialiser",
|
||||
"Reset Upload Directory": "Répertoire de téléchargement réinitialisé",
|
||||
"Reset Vector Storage": "Réinitialiser le stockage des vecteurs",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de réponse ne peuvent pas être activées car les autorisations du site web ont été refusées. Veuillez visiter les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Response splitting": "Fractionnement de la réponse",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Rechercher un modèle",
|
||||
"Search Chats": "Rechercher des conversations",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Recherche de documents",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Fonctions de recherche",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Rechercher des modèles",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale\u00a0: {{error}}",
|
||||
"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Séquence d'arrêt",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Modèle de STT",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Template",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Complétion de texte",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Moteur de synthèse vocale",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Merci pour vos commentaires !",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explication approfondie",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "URL du serveur Tika requise.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Conseil\u00a0: mettez à jour plusieurs emplacements de variables consécutivement en appuyant sur la touche Tab dans l’entrée de chat après chaque remplacement.",
|
||||
"Title": "Titre",
|
||||
"Title (e.g. Tell me a fun fact)": "Titre (par ex. raconte-moi un fait amusant)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Aujourd'hui",
|
||||
"Toggle settings": "Basculer les paramètres",
|
||||
"Toggle sidebar": "Basculer la barre latérale",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Jeton à conserver pour l'actualisation du contexte (num_keep)",
|
||||
"Tool created successfully": "L'outil a été créé avec succès",
|
||||
"Tool deleted successfully": "Outil supprimé avec succès",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progression de l'envoi",
|
||||
"URL Mode": "Mode d'URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Utilisez '#' dans l'entrée de prompt pour charger et sélectionner vos documents.",
|
||||
"Use Gravatar": "Utilisez Gravatar",
|
||||
"Use Initials": "Utiliser les initiales",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "Ajouter du contenu",
|
||||
"Add content here": "Ajoutez du contenu ici",
|
||||
"Add custom prompt": "Ajouter une prompt personnalisée",
|
||||
"Add Docs": "Ajouter de la documentation",
|
||||
"Add Files": "Ajouter des fichiers",
|
||||
"Add Memory": "Ajouter de la mémoire",
|
||||
"Add message": "Ajouter un message",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Les administrateurs ont accès à tous les outils en tout temps ; il faut attribuer des outils aux utilisateurs par modèle dans l'espace de travail.",
|
||||
"Advanced Parameters": "Paramètres avancés",
|
||||
"Advanced Params": "Paramètres avancés",
|
||||
"all": "toutes",
|
||||
"All Documents": "Tous les documents",
|
||||
"All Users": "Tous les Utilisateurs",
|
||||
"Allow": "Autoriser",
|
||||
"Allow Chat Deletion": "Autoriser la suppression de l'historique de chat",
|
||||
"Allow Chat Editing": "Autoriser la modification de l'historique de chat",
|
||||
"Allow non-local voices": "Autoriser les voix non locales",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Annuler",
|
||||
"Capabilities": "Capacités",
|
||||
"Change Password": "Changer le mot de passe",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Image d'arrière-plan de la fenêtre de chat",
|
||||
"Chat Bubble UI": "Bulles de chat",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Cliquez ici pour sélectionner",
|
||||
"Click here to select a csv file.": "Cliquez ici pour sélectionner un fichier .csv.",
|
||||
"Click here to select a py file.": "Cliquez ici pour sélectionner un fichier .py.",
|
||||
"Click here to select documents.": "Cliquez ici pour sélectionner les documents.",
|
||||
"Click here to upload a workflow.json file.": "Cliquez ici pour télécharger un fichier workflow.json.",
|
||||
"click here.": "cliquez ici.",
|
||||
"Click on the user role button to change a user's role.": "Cliquez sur le bouton de rôle d'utilisateur pour modifier le rôle d'un utilisateur.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "L'autorisation d'écriture du presse-papier a été refusée. Veuillez vérifier les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Clone": "Cloner",
|
||||
"Close": "Fermer",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Le code a été formaté avec succès",
|
||||
"Collection": "Collection",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copier le dernier bloc de code",
|
||||
"Copy last response": "Copier la dernière réponse",
|
||||
"Copy Link": "Copier le lien",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
|
||||
"Create a model": "Créer un modèle",
|
||||
"Create Account": "Créer un compte",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modèle par défaut mis à jour",
|
||||
"Default Prompt Suggestions": "Suggestions de prompts par défaut",
|
||||
"Default User Role": "Rôle utilisateur par défaut",
|
||||
"delete": "supprimer",
|
||||
"Delete": "Supprimer",
|
||||
"Delete a model": "Supprimer un modèle",
|
||||
"Delete All Chats": "Supprimer toutes les conversations",
|
||||
"Delete chat": "Supprimer la conversation",
|
||||
"Delete Chat": "Supprimer la Conversation",
|
||||
"Delete chat?": "Supprimer la conversation ?",
|
||||
"Delete Doc": "Supprimer le document",
|
||||
"Delete function?": "Supprimer la fonction ?",
|
||||
"Delete prompt?": "Supprimer la prompt ?",
|
||||
"delete this link": "supprimer ce lien",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentation",
|
||||
"Documents": "Documents",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ne fait aucune connexion externe et garde vos données en sécurité sur votre serveur local.",
|
||||
"Don't Allow": "Ne pas autoriser",
|
||||
"Don't have an account?": "Vous n'avez pas de compte ?",
|
||||
"don't install random functions from sources you don't trust.": "n'installez pas de fonctions aléatoires provenant de sources auxquelles vous ne faites pas confiance.",
|
||||
"don't install random tools from sources you don't trust.": "n'installez pas d'outils aléatoires provenant de sources auxquelles vous ne faites pas confiance.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Télécharger",
|
||||
"Download canceled": "Téléchargement annulé",
|
||||
"Download Database": "Télécharger la base de données",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10 min'. Les unités de temps valides sont 's', 'm', 'h'.",
|
||||
"Edit": "Modifier",
|
||||
"Edit Doc": "Modifier le document",
|
||||
"Edit Memory": "Modifier la mémoire",
|
||||
"Edit User": "Modifier l'utilisateur",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Entrez votre mot de passe",
|
||||
"Enter Your Role": "Entrez votre rôle",
|
||||
"Error": "Erreur",
|
||||
"ERROR": "",
|
||||
"Experimental": "Expérimental",
|
||||
"Export": "Exportation",
|
||||
"Export All Chats (All Users)": "Exporter toutes les conversations (pour tous les utilisateurs)",
|
||||
"Export chat (.json)": "Exporter la conversation (.json)",
|
||||
"Export Chats": "Exporter les conversations",
|
||||
"Export Config to JSON File": "Exporter la configuration vers un fichier JSON",
|
||||
"Export Documents Mapping": "Exporter le mapping des documents",
|
||||
"Export Functions": "Exportez des fonctions",
|
||||
"Export LiteLLM config.yaml": "Exportez le fichier LiteLLM config.yaml",
|
||||
"Export Models": "Exporter des modèles",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Images",
|
||||
"Import Chats": "Importer les conversations",
|
||||
"Import Config from JSON File": "Importer la configuration depuis un fichier JSON",
|
||||
"Import Documents Mapping": "Importer le mapping des documents",
|
||||
"Import Functions": "Import de fonctions",
|
||||
"Import Models": "Importer des modèles",
|
||||
"Import Prompts": "Importer des prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installer depuis l'URL GitHub",
|
||||
"Instant Auto-Send After Voice Transcription": "Envoi automatique après la transcription",
|
||||
"Interface": "Interface utilisateur",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Étiquette non valide",
|
||||
"January": "Janvier",
|
||||
"join our Discord for help.": "Rejoignez notre Discord pour obtenir de l'aide.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Plus de",
|
||||
"Move to Top": "Déplacer en haut",
|
||||
"Name": "Nom d'utilisateur",
|
||||
"Name Tag": "Nom de l'étiquette",
|
||||
"Name your model": "Nommez votre modèle",
|
||||
"New Chat": "Nouvelle conversation",
|
||||
"New Password": "Nouveau mot de passe",
|
||||
"No content found": "",
|
||||
"No content to speak": "Rien à signaler",
|
||||
"No file selected": "Aucun fichier sélectionné",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
||||
"No knowledge found": "Aucune connaissance trouvée",
|
||||
"No results found": "Aucun résultat trouvé",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Clé OpenAI requise.",
|
||||
"or": "ou",
|
||||
"Other": "Autre",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Format de sortie",
|
||||
"Overview": "Aperçu",
|
||||
"page": "page",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modèle de ré-ranking défini sur « {{reranking_model}} »",
|
||||
"Reset": "Réinitialiser",
|
||||
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
||||
"Reset Vector Storage": "Réinitialiser le stockage des vecteurs",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de réponse ne peuvent pas être activées car les autorisations du site web ont été refusées. Veuillez vérifier les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Response splitting": "Fractionnement de la réponse",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Rechercher un modèle",
|
||||
"Search Chats": "Rechercher des conversations",
|
||||
"Search Collection": "Rechercher une collection",
|
||||
"Search Documents": "Rechercher des documents",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Rechercher des fonctions",
|
||||
"Search Knowledge": "Rechercher des connaissances",
|
||||
"Search Models": "Rechercher des modèles",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "Vitesse de lecture de la parole",
|
||||
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale\u00a0: {{error}}",
|
||||
"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Séquence d'arrêt",
|
||||
"Stream Chat Response": "Streamer la réponse de la conversation",
|
||||
"STT Model": "Modèle de Speech-to-Text",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Template",
|
||||
"Temporary Chat": "Chat éphémère",
|
||||
"Text Completion": "Complétion de texte",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Moteur de Text-to-Speech",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Merci pour vos commentaires !",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explication approfondie",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "URL du serveur Tika requise.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Conseil\u00a0: mettez à jour plusieurs emplacements de variables consécutivement en appuyant sur la touche Tab dans l’entrée de chat après chaque remplacement.",
|
||||
"Title": "Titre",
|
||||
"Title (e.g. Tell me a fun fact)": "Titre (par ex. raconte-moi un fait amusant)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Aujourd'hui",
|
||||
"Toggle settings": "Basculer les paramètres",
|
||||
"Toggle sidebar": "Basculer la barre latérale",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Jeton à conserver lors du rafraîchissement du contexte (num_keep)",
|
||||
"Tool created successfully": "L'outil a été créé avec succès",
|
||||
"Tool deleted successfully": "Outil supprimé avec succès",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progression de l'envoi",
|
||||
"URL Mode": "Mode d'URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Utilisez '#' dans la zone de saisie du prompt pour charger et inclure vos connaissances.",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Utilisez '#' dans la zone de saisie du prompt pour charger et sélectionner vos documents.",
|
||||
"Use Gravatar": "Utilisez Gravatar",
|
||||
"Use Initials": "Utiliser les initiales",
|
||||
"use_mlock (Ollama)": "Utiliser mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "הוסף פקודה מותאמת אישית",
|
||||
"Add Docs": "הוסף מסמכים",
|
||||
"Add Files": "הוסף קבצים",
|
||||
"Add Memory": "הוסף זיכרון",
|
||||
"Add message": "הוסף הודעה",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "פרמטרים מתקדמים",
|
||||
"Advanced Params": "פרמטרים מתקדמים",
|
||||
"all": "הכל",
|
||||
"All Documents": "כל המסמכים",
|
||||
"All Users": "כל המשתמשים",
|
||||
"Allow": "אפשר",
|
||||
"Allow Chat Deletion": "אפשר מחיקת צ'אט",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "בטל",
|
||||
"Capabilities": "יכולות",
|
||||
"Change Password": "שנה סיסמה",
|
||||
"Character": "",
|
||||
"Chat": "צ'אט",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "UI של תיבת הדיבור",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "לחץ כאן לבחירה",
|
||||
"Click here to select a csv file.": "לחץ כאן לבחירת קובץ csv.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "לחץ כאן לבחירת מסמכים.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "לחץ כאן.",
|
||||
"Click on the user role button to change a user's role.": "לחץ על כפתור תפקיד המשתמש כדי לשנות את תפקיד המשתמש.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "שיבוט",
|
||||
"Close": "סגור",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "אוסף",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "העתק את בלוק הקוד האחרון",
|
||||
"Copy last response": "העתק את התגובה האחרונה",
|
||||
"Copy Link": "העתק קישור",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "ההעתקה ללוח הייתה מוצלחת!",
|
||||
"Create a model": "יצירת מודל",
|
||||
"Create Account": "צור חשבון",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "המודל המוגדר כברירת מחדל עודכן",
|
||||
"Default Prompt Suggestions": "הצעות ברירת מחדל לפקודות",
|
||||
"Default User Role": "תפקיד משתמש ברירת מחדל",
|
||||
"delete": "מחק",
|
||||
"Delete": "מחק",
|
||||
"Delete a model": "מחק מודל",
|
||||
"Delete All Chats": "מחק את כל הצ'אטים",
|
||||
"Delete chat": "מחק צ'אט",
|
||||
"Delete Chat": "מחק צ'אט",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "מחק את הקישור הזה",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "מסמכים",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "לא מבצע חיבורים חיצוניים, והנתונים שלך נשמרים באופן מאובטח בשרת המקומי שלך.",
|
||||
"Don't Allow": "אל תאפשר",
|
||||
"Don't have an account?": "אין לך חשבון?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "הורד",
|
||||
"Download canceled": "ההורדה בוטלה",
|
||||
"Download Database": "הורד מסד נתונים",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "גרור כל קובץ לכאן כדי להוסיף לשיחה",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "למשל '30s', '10m'. יחידות זמן חוקיות הן 's', 'm', 'h'.",
|
||||
"Edit": "ערוך",
|
||||
"Edit Doc": "ערוך מסמך",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "ערוך משתמש",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "הזן את הסיסמה שלך",
|
||||
"Enter Your Role": "הזן את התפקיד שלך",
|
||||
"Error": "שגיאה",
|
||||
"ERROR": "",
|
||||
"Experimental": "ניסיוני",
|
||||
"Export": "ייצא",
|
||||
"Export All Chats (All Users)": "ייצוא כל הצ'אטים (כל המשתמשים)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "ייצוא צ'אטים",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "ייצוא מיפוי מסמכים",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "ייצוא מודלים",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "תמונות",
|
||||
"Import Chats": "יבוא צ'אטים",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "יבוא מיפוי מסמכים",
|
||||
"Import Functions": "",
|
||||
"Import Models": "ייבוא דגמים",
|
||||
"Import Prompts": "יבוא פקודות",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "התקן מכתובת URL של Github",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "ממשק",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "תג לא חוקי",
|
||||
"January": "ינואר",
|
||||
"join our Discord for help.": "הצטרף ל-Discord שלנו לעזרה.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "עוד",
|
||||
"Move to Top": "",
|
||||
"Name": "שם",
|
||||
"Name Tag": "תג שם",
|
||||
"Name your model": "תן שם לדגם שלך",
|
||||
"New Chat": "צ'אט חדש",
|
||||
"New Password": "סיסמה חדשה",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "לא נמצאו תוצאות",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "נדרשת כתובת URL/מפתח של OpenAI.",
|
||||
"or": "או",
|
||||
"Other": "אחר",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "מודל דירוג מחדש הוגדר ל-\"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "איפוס אחסון וקטורים",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "העתקה אוטומטית של תגובה ללוח",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "חפש מודל",
|
||||
"Search Chats": "חיפוש צ'אטים",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "חפש מסמכים",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "חיפוש מודלים",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "שגיאת תחקור שמע: {{error}}",
|
||||
"Speech-to-Text Engine": "מנוע תחקור שמע",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "סידור עצירה",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "תבנית",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "תחילת טקסט",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "מנוע טקסט לדיבור",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "תודה על המשוב שלך!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "תיאור מפורט",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "טיפ: עדכן חריצים משתנים מרובים ברציפות על-ידי לחיצה על מקש Tab בקלט הצ'אט לאחר כל החלפה.",
|
||||
"Title": "שם",
|
||||
"Title (e.g. Tell me a fun fact)": "שם (לדוגמה: תרגום)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "היום",
|
||||
"Toggle settings": "החלפת מצב של הגדרות",
|
||||
"Toggle sidebar": "החלפת מצב של סרגל הצד",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "תקדמות העלאה",
|
||||
"URL Mode": "מצב URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "השתמש ב- '#' בקלט הבקשה כדי לטעון ולבחור את המסמכים שלך.",
|
||||
"Use Gravatar": "שימוש ב Gravatar",
|
||||
"Use Initials": "שימוש ב initials",
|
||||
"use_mlock (Ollama)": "use_mlock (אולמה)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "अनुकूल संकेत जोड़ें",
|
||||
"Add Docs": "दस्तावेज़ जोड़ें",
|
||||
"Add Files": "फाइलें जोड़ें",
|
||||
"Add Memory": "मेमोरी जोड़ें",
|
||||
"Add message": "संदेश डालें",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "उन्नत पैरामीटर",
|
||||
"Advanced Params": "उन्नत परम",
|
||||
"all": "सभी",
|
||||
"All Documents": "सभी डॉक्यूमेंट्स",
|
||||
"All Users": "सभी उपयोगकर्ता",
|
||||
"Allow": "अनुमति दें",
|
||||
"Allow Chat Deletion": "चैट हटाने की अनुमति दें",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "रद्द करें",
|
||||
"Capabilities": "क्षमताओं",
|
||||
"Change Password": "पासवर्ड बदलें",
|
||||
"Character": "",
|
||||
"Chat": "चैट करें",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "चैट बॉली",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "चयन करने के लिए यहां क्लिक करें।",
|
||||
"Click here to select a csv file.": "सीएसवी फ़ाइल का चयन करने के लिए यहां क्लिक करें।",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "दस्तावेज़ चुनने के लिए यहां क्लिक करें।",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "यहाँ क्लिक करें।",
|
||||
"Click on the user role button to change a user's role.": "उपयोगकर्ता की भूमिका बदलने के लिए उपयोगकर्ता भूमिका बटन पर क्लिक करें।",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "क्लोन",
|
||||
"Close": "बंद करना",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "संग्रह",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "अंतिम कोड ब्लॉक कॉपी करें",
|
||||
"Copy last response": "अंतिम प्रतिक्रिया कॉपी करें",
|
||||
"Copy Link": "लिंक को कॉपी करें",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "क्लिपबोर्ड पर कॉपी बनाना सफल रहा!",
|
||||
"Create a model": "एक मॉडल बनाएं",
|
||||
"Create Account": "खाता बनाएं",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "डिफ़ॉल्ट मॉडल अपडेट किया गया",
|
||||
"Default Prompt Suggestions": "डिफ़ॉल्ट प्रॉम्प्ट सुझाव",
|
||||
"Default User Role": "डिफ़ॉल्ट उपयोगकर्ता भूमिका",
|
||||
"delete": "डिलीट",
|
||||
"Delete": "डिलीट",
|
||||
"Delete a model": "एक मॉडल हटाएँ",
|
||||
"Delete All Chats": "सभी चैट हटाएं",
|
||||
"Delete chat": "चैट हटाएं",
|
||||
"Delete Chat": "चैट हटाएं",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "इस लिंक को हटाएं",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "दस्तावेज़",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "कोई बाहरी कनेक्शन नहीं बनाता है, और आपका डेटा आपके स्थानीय रूप से होस्ट किए गए सर्वर पर सुरक्षित रूप से रहता है।",
|
||||
"Don't Allow": "अनुमति न दें",
|
||||
"Don't have an account?": "कोई खाता नहीं है?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "डाउनलोड",
|
||||
"Download canceled": "डाउनलोड रद्द किया गया",
|
||||
"Download Database": "डेटाबेस डाउनलोड करें",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "बातचीत में जोड़ने के लिए कोई भी फ़ाइल यहां छोड़ें",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "जैसे '30s', '10m', मान्य समय इकाइयाँ 's', 'm', 'h' हैं।",
|
||||
"Edit": "संपादित करें",
|
||||
"Edit Doc": "दस्तावेज़ संपादित करें",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "यूजर को संपादित करो",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "अपना पासवर्ड भरें",
|
||||
"Enter Your Role": "अपनी भूमिका दर्ज करें",
|
||||
"Error": "चूक",
|
||||
"ERROR": "",
|
||||
"Experimental": "प्रयोगात्मक",
|
||||
"Export": "निर्यातित माल",
|
||||
"Export All Chats (All Users)": "सभी चैट निर्यात करें (सभी उपयोगकर्ताओं की)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "चैट निर्यात करें",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "निर्यात दस्तावेज़ मैपिंग",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "निर्यात मॉडल",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "इमेजिस",
|
||||
"Import Chats": "चैट आयात करें",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "दस्तावेज़ मैपिंग आयात करें",
|
||||
"Import Functions": "",
|
||||
"Import Models": "आयात मॉडल",
|
||||
"Import Prompts": "प्रॉम्प्ट आयात करें",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Github URL से इंस्टॉल करें",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "इंटरफेस",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "अवैध टैग",
|
||||
"January": "जनवरी",
|
||||
"join our Discord for help.": "मदद के लिए हमारे डिस्कोर्ड में शामिल हों।",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "और..",
|
||||
"Move to Top": "",
|
||||
"Name": "नाम",
|
||||
"Name Tag": "नाम टैग",
|
||||
"Name your model": "अपने मॉडल को नाम दें",
|
||||
"New Chat": "नई चैट",
|
||||
"New Password": "नया पासवर्ड",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "कोई परिणाम नहीं मिला",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Key आवश्यक है।",
|
||||
"or": "या",
|
||||
"Other": "अन्य",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "रीरैंकिंग मॉडल को \"{{reranking_model}}\" पर \u200b\u200bसेट किया गया",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "वेक्टर संग्रहण रीसेट करें",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "क्लिपबोर्ड पर प्रतिक्रिया ऑटोकॉपी",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "एक मॉडल खोजें",
|
||||
"Search Chats": "चैट खोजें",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "दस्तावेज़ खोजें",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "मॉडल खोजें",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "वाक् पहचान त्रुटि: {{error}}",
|
||||
"Speech-to-Text Engine": "वाक्-से-पाठ इंजन",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "अनुक्रम रोकें",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "टेम्पलेट",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "पाठ समापन",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "टेक्स्ट-टू-स्पीच इंजन",
|
||||
"Tfs Z": "टफ्स Z",
|
||||
"Thanks for your feedback!": "आपकी प्रतिक्रिया के लिए धन्यवाद!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "विस्तृत व्याख्या",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "टिप: प्रत्येक प्रतिस्थापन के बाद चैट इनपुट में टैब कुंजी दबाकर लगातार कई वैरिएबल स्लॉट अपडेट करें।",
|
||||
"Title": "शीर्षक",
|
||||
"Title (e.g. Tell me a fun fact)": "शीर्षक (उदा. मुझे एक मज़ेदार तथ्य बताएं)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "आज",
|
||||
"Toggle settings": "सेटिंग्स टॉगल करें",
|
||||
"Toggle sidebar": "साइडबार टॉगल करें",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "प्रगति अपलोड करें",
|
||||
"URL Mode": "URL मोड",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "अपने दस्तावेज़ों को लोड करने और चुनने के लिए शीघ्र इनपुट में '#' का उपयोग करें।",
|
||||
"Use Gravatar": "Gravatar का प्रयोग करें",
|
||||
"Use Initials": "प्रथमाक्षर का प्रयोग करें",
|
||||
"use_mlock (Ollama)": "use_mlock (ओलामा)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Dodaj prilagođeni prompt",
|
||||
"Add Docs": "Dodaj dokumente",
|
||||
"Add Files": "Dodaj datoteke",
|
||||
"Add Memory": "Dodaj memoriju",
|
||||
"Add message": "Dodaj poruku",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Napredni parametri",
|
||||
"Advanced Params": "Napredni parametri",
|
||||
"all": "sve",
|
||||
"All Documents": "Svi dokumenti",
|
||||
"All Users": "Svi korisnici",
|
||||
"Allow": "Dopusti",
|
||||
"Allow Chat Deletion": "Dopusti brisanje razgovora",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Dopusti nelokalne glasove",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Otkaži",
|
||||
"Capabilities": "Mogućnosti",
|
||||
"Change Password": "Promijeni lozinku",
|
||||
"Character": "",
|
||||
"Chat": "Razgovor",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Razgovor - Bubble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Kliknite ovdje za odabir",
|
||||
"Click here to select a csv file.": "Kliknite ovdje da odaberete csv datoteku.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Kliknite ovdje da odaberete dokumente.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "kliknite ovdje.",
|
||||
"Click on the user role button to change a user's role.": "Kliknite na gumb uloge korisnika za promjenu uloge korisnika.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Kloniraj",
|
||||
"Close": "Zatvori",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Kolekcija",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopiraj zadnji blok koda",
|
||||
"Copy last response": "Kopiraj zadnji odgovor",
|
||||
"Copy Link": "Kopiraj vezu",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopiranje u međuspremnik je uspješno!",
|
||||
"Create a model": "Izradite model",
|
||||
"Create Account": "Stvori račun",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Zadani model ažuriran",
|
||||
"Default Prompt Suggestions": "Zadani prijedlozi prompta",
|
||||
"Default User Role": "Zadana korisnička uloga",
|
||||
"delete": "izbriši",
|
||||
"Delete": "Izbriši",
|
||||
"Delete a model": "Izbriši model",
|
||||
"Delete All Chats": "Izbriši sve razgovore",
|
||||
"Delete chat": "Izbriši razgovor",
|
||||
"Delete Chat": "Izbriši razgovor",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "izbriši ovu vezu",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentacija",
|
||||
"Documents": "Dokumenti",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ne uspostavlja vanjske veze, a vaši podaci ostaju sigurno na vašem lokalno hostiranom poslužitelju.",
|
||||
"Don't Allow": "Ne dopuštaj",
|
||||
"Don't have an account?": "Nemate račun?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Preuzimanje",
|
||||
"Download canceled": "Preuzimanje otkazano",
|
||||
"Download Database": "Preuzmi bazu podataka",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Spustite bilo koje datoteke ovdje za dodavanje u razgovor",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "npr. '30s','10m'. Važeće vremenske jedinice su 's', 'm', 'h'.",
|
||||
"Edit": "Uredi",
|
||||
"Edit Doc": "Uredi dokument",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Uredi korisnika",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Unesite svoju lozinku",
|
||||
"Enter Your Role": "Unesite svoju ulogu",
|
||||
"Error": "Greška",
|
||||
"ERROR": "",
|
||||
"Experimental": "Eksperimentalno",
|
||||
"Export": "Izvoz",
|
||||
"Export All Chats (All Users)": "Izvoz svih razgovora (svi korisnici)",
|
||||
"Export chat (.json)": "Izvoz četa (.json)",
|
||||
"Export Chats": "Izvoz razgovora",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Izvoz mapiranja dokumenata",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Izvoz modela",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Slike",
|
||||
"Import Chats": "Uvoz razgovora",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Uvoz mapiranja dokumenata",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Uvoz modela",
|
||||
"Import Prompts": "Uvoz prompta",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instaliraj s Github URL-a",
|
||||
"Instant Auto-Send After Voice Transcription": "Trenutačno automatsko slanje nakon glasovne transkripcije",
|
||||
"Interface": "Sučelje",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Nevažeća oznaka",
|
||||
"January": "Siječanj",
|
||||
"join our Discord for help.": "pridružite se našem Discordu za pomoć.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Više",
|
||||
"Move to Top": "",
|
||||
"Name": "Ime",
|
||||
"Name Tag": "Naziv oznake",
|
||||
"Name your model": "Dodijelite naziv modelu",
|
||||
"New Chat": "Novi razgovor",
|
||||
"New Password": "Nova lozinka",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Nema rezultata",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Potreban je OpenAI URL/ključ.",
|
||||
"or": "ili",
|
||||
"Other": "Ostalo",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Model za ponovno rangiranje postavljen na \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "Poništi upload direktorij",
|
||||
"Reset Vector Storage": "Resetiraj pohranu vektora",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Automatsko kopiranje odgovora u međuspremnik",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Pretraži model",
|
||||
"Search Chats": "Pretraži razgovore",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Pretraga dokumenata",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Pretražite modele",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Pogreška prepoznavanja govora: {{error}}",
|
||||
"Speech-to-Text Engine": "Stroj za prepoznavanje govora",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Zaustavi sekvencu",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT model",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Predložak",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Dovršavanje teksta",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Stroj za pretvorbu teksta u govor",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Hvala na povratnim informacijama!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Detaljno objašnjenje",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Savjet: Ažurirajte više mjesta za varijable uzastopno pritiskom na tipku tab u unosu razgovora nakon svake zamjene.",
|
||||
"Title": "Naslov",
|
||||
"Title (e.g. Tell me a fun fact)": "Naslov (npr. Reci mi zanimljivost)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Danas",
|
||||
"Toggle settings": "Prebaci postavke",
|
||||
"Toggle sidebar": "Prebaci bočnu traku",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Napredak učitavanja",
|
||||
"URL Mode": "URL način",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Koristite '#' u unosu prompta za učitavanje i odabir vaših dokumenata.",
|
||||
"Use Gravatar": "Koristi Gravatar",
|
||||
"Use Initials": "Koristi inicijale",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Tambahkan prompt khusus",
|
||||
"Add Docs": "Tambahkan Dokumen",
|
||||
"Add Files": "Menambahkan File",
|
||||
"Add Memory": "Menambahkan Memori",
|
||||
"Add message": "Tambahkan pesan",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Admin memiliki akses ke semua alat setiap saat; pengguna memerlukan alat yang ditetapkan per model di ruang kerja.",
|
||||
"Advanced Parameters": "Parameter Lanjutan",
|
||||
"Advanced Params": "Parameter Lanjutan",
|
||||
"all": "semua",
|
||||
"All Documents": "Semua Dokumen",
|
||||
"All Users": "Semua Pengguna",
|
||||
"Allow": "Mengizinkan",
|
||||
"Allow Chat Deletion": "Izinkan Penghapusan Obrolan",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Izinkan suara non-lokal",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Batal",
|
||||
"Capabilities": "Kemampuan",
|
||||
"Change Password": "Ubah Kata Sandi",
|
||||
"Character": "",
|
||||
"Chat": "Obrolan",
|
||||
"Chat Background Image": "Gambar Latar Belakang Obrolan",
|
||||
"Chat Bubble UI": "UI Gelembung Obrolan",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klik di sini untuk memilih",
|
||||
"Click here to select a csv file.": "Klik di sini untuk memilih file csv.",
|
||||
"Click here to select a py file.": "Klik di sini untuk memilih file py.",
|
||||
"Click here to select documents.": "Klik di sini untuk memilih dokumen.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "Klik di sini.",
|
||||
"Click on the user role button to change a user's role.": "Klik tombol peran pengguna untuk mengubah peran pengguna.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Izin menulis papan klip ditolak. Periksa pengaturan peramban Anda untuk memberikan akses yang diperlukan.",
|
||||
"Clone": "Kloning",
|
||||
"Close": "Tutup",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Kode berhasil diformat",
|
||||
"Collection": "Koleksi",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Salin blok kode terakhir",
|
||||
"Copy last response": "Salin tanggapan terakhir",
|
||||
"Copy Link": "Salin Tautan",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Penyalinan ke papan klip berhasil!",
|
||||
"Create a model": "Buat model",
|
||||
"Create Account": "Buat Akun",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Model default diperbarui",
|
||||
"Default Prompt Suggestions": "Saran Permintaan Default",
|
||||
"Default User Role": "Peran Pengguna Default",
|
||||
"delete": "Hapus",
|
||||
"Delete": "Menghapus",
|
||||
"Delete a model": "Menghapus model",
|
||||
"Delete All Chats": "Menghapus Semua Obrolan",
|
||||
"Delete chat": "Menghapus obrolan",
|
||||
"Delete Chat": "Menghapus Obrolan",
|
||||
"Delete chat?": "Menghapus obrolan?",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "Fungsi hapus?",
|
||||
"Delete prompt?": "Perintah hapus?",
|
||||
"delete this link": "hapus tautan ini",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentasi",
|
||||
"Documents": "Dokumen",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "tidak membuat koneksi eksternal apa pun, dan data Anda tetap aman di server yang dihosting secara lokal.",
|
||||
"Don't Allow": "Jangan Izinkan",
|
||||
"Don't have an account?": "Tidak memiliki akun?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Unduh",
|
||||
"Download canceled": "Unduh dibatalkan",
|
||||
"Download Database": "Unduh Basis Data",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Letakkan file apa pun di sini untuk ditambahkan ke percakapan",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "misalnya '30-an', '10m'. Satuan waktu yang valid adalah 's', 'm', 'h'.",
|
||||
"Edit": "Edit",
|
||||
"Edit Doc": "Edit Dokumen",
|
||||
"Edit Memory": "Edit Memori",
|
||||
"Edit User": "Edit Pengguna",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Masukkan Kata Sandi Anda",
|
||||
"Enter Your Role": "Masukkan Peran Anda",
|
||||
"Error": "Kesalahan",
|
||||
"ERROR": "",
|
||||
"Experimental": "Percobaan",
|
||||
"Export": "Ekspor",
|
||||
"Export All Chats (All Users)": "Ekspor Semua Obrolan (Semua Pengguna)",
|
||||
"Export chat (.json)": "Ekspor obrolan (.json)",
|
||||
"Export Chats": "Ekspor Obrolan",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Pemetaan Dokumen Ekspor",
|
||||
"Export Functions": "Fungsi Ekspor",
|
||||
"Export LiteLLM config.yaml": "Ekspor LiteLLM config.yaml",
|
||||
"Export Models": "Model Ekspor",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Gambar",
|
||||
"Import Chats": "Impor Obrolan",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Pemetaan Dokumen Impor",
|
||||
"Import Functions": "Fungsi Impor",
|
||||
"Import Models": "Model Impor",
|
||||
"Import Prompts": "Petunjuk Impor",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instal dari URL Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Kirim Otomatis Instan Setelah Transkripsi Suara",
|
||||
"Interface": "Antarmuka",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Tag tidak valid",
|
||||
"January": "Januari",
|
||||
"join our Discord for help.": "bergabunglah dengan Discord kami untuk mendapatkan bantuan.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Lainnya",
|
||||
"Move to Top": "",
|
||||
"Name": "Nama",
|
||||
"Name Tag": "Label Nama",
|
||||
"Name your model": "Beri nama model Anda",
|
||||
"New Chat": "Obrolan Baru",
|
||||
"New Password": "Kata Sandi Baru",
|
||||
"No content found": "",
|
||||
"No content to speak": "Tidak ada konten untuk dibicarakan",
|
||||
"No file selected": "Tidak ada file yang dipilih",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Tidak ada hasil yang ditemukan",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Diperlukan URL/Kunci OpenAI.",
|
||||
"or": "atau",
|
||||
"Other": "Lainnya",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Model pemeringkatan diatur ke \"{{reranking_model}}\"",
|
||||
"Reset": "Atur Ulang",
|
||||
"Reset Upload Directory": "Setel Ulang Direktori Unggahan",
|
||||
"Reset Vector Storage": "Setel Ulang Penyimpanan Vektor",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Tanggapan Salin Otomatis ke Papan Klip",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notifikasi respons tidak dapat diaktifkan karena izin situs web telah ditolak. Silakan kunjungi pengaturan browser Anda untuk memberikan akses yang diperlukan.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Mencari model",
|
||||
"Search Chats": "Cari Obrolan",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Cari Dokumen",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Fungsi Pencarian",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Cari Model",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Kesalahan pengenalan suara: {{error}}",
|
||||
"Speech-to-Text Engine": "Mesin Pengenal Ucapan ke Teks",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Hentikan Urutan",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Model STT",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Templat",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Penyelesaian Teks",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Mesin Teks-ke-Suara",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Terima kasih atas umpan balik Anda!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Penjelasan menyeluruh",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tips: Perbarui beberapa slot variabel secara berurutan dengan menekan tombol tab di input obrolan setelah setiap penggantian.",
|
||||
"Title": "Judul",
|
||||
"Title (e.g. Tell me a fun fact)": "Judul (misalnya, Ceritakan sebuah fakta menarik)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Hari ini",
|
||||
"Toggle settings": "Beralih pengaturan",
|
||||
"Toggle sidebar": "Beralih bilah sisi",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Token Untuk Menyimpan Penyegaran Konteks (num_keep)",
|
||||
"Tool created successfully": "Alat berhasil dibuat",
|
||||
"Tool deleted successfully": "Alat berhasil dihapus",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Kemajuan Unggah",
|
||||
"URL Mode": "Mode URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Gunakan '#' pada input prompt untuk memuat dan memilih dokumen Anda.",
|
||||
"Use Gravatar": "Gunakan Gravatar",
|
||||
"Use Initials": "Gunakan Inisial",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Cuir pras saincheaptha leis",
|
||||
"Add Docs": "Cuir Docs leis",
|
||||
"Add Files": "Cuir Comhaid",
|
||||
"Add Memory": "Cuir Cuimhne",
|
||||
"Add message": "Cuir teachtaireacht leis",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Tá rochtain ag riarthóirí ar gach uirlis i gcónaí; teastaíonn uirlisí sannta in aghaidh an tsamhail sa spás oibre ó úsáideoirí.",
|
||||
"Advanced Parameters": "Paraiméadair Casta",
|
||||
"Advanced Params": "Paraiméid Casta",
|
||||
"all": "go léir",
|
||||
"All Documents": "Gach Doiciméad",
|
||||
"All Users": "Gach Úsáideoir",
|
||||
"Allow": "Ceadaigh",
|
||||
"Allow Chat Deletion": "Cead Scriosadh Comhrá",
|
||||
"Allow Chat Editing": "Ceadaigh Eagarthóireacht",
|
||||
"Allow non-local voices": "Lig guthanna neamh-áitiúla",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cealaigh",
|
||||
"Capabilities": "Cumais",
|
||||
"Change Password": "Athraigh Pasfhocal",
|
||||
"Character": "",
|
||||
"Chat": "Comhrá",
|
||||
"Chat Background Image": "Íomhá Cúlra Comhrá",
|
||||
"Chat Bubble UI": "Comhrá Bubble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Cliceáil anseo chun roghnú",
|
||||
"Click here to select a csv file.": "Cliceáil anseo chun comhad csv a roghnú.",
|
||||
"Click here to select a py file.": "Cliceáil anseo chun comhad py a roghnú.",
|
||||
"Click here to select documents.": "Cliceáil anseo chun cáipéis a roghnú.",
|
||||
"Click here to upload a workflow.json file.": "Cliceáil anseo chun comhad workflow.json a uaslódáil.",
|
||||
"click here.": "cliceáil anseo.",
|
||||
"Click on the user role button to change a user's role.": "Cliceáil ar an gcnaipe ról úsáideora chun ról úsáideora a athrú.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Diúltaíodh cead scríofa an ghearrthaisce. Seiceáil socruithe do bhrabhsálaí chun an rochtain riachtanach a dheonú.",
|
||||
"Clone": "Clón",
|
||||
"Close": "Dún",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Cód formáidithe go rathúil",
|
||||
"Collection": "Bailiúchán",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Cóipeáil bloc cód deireanach",
|
||||
"Copy last response": "Cóipeáil an fhreagairt",
|
||||
"Copy Link": "Cóipeáil Nasc",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "D'éirigh le cóipeáil chuig an ngearrthaisce!",
|
||||
"Create a model": "Cruthaigh samhail",
|
||||
"Create Account": "Cruthaigh Cuntas",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "An tsamhail réamhshocraithe",
|
||||
"Default Prompt Suggestions": "Moltaí Pras Réamhshocraithe",
|
||||
"Default User Role": "Ról Úsáideora Réamhshoc",
|
||||
"delete": "scrios",
|
||||
"Delete": "Scrios",
|
||||
"Delete a model": "Scrios samhail",
|
||||
"Delete All Chats": "Scrios Gach Comhrá",
|
||||
"Delete chat": "Scrios comhrá",
|
||||
"Delete Chat": "Scrios Comhrá",
|
||||
"Delete chat?": "Scrios comhrá?",
|
||||
"Delete Doc": "Scrios Doc",
|
||||
"Delete function?": "Scrios feidhm?",
|
||||
"Delete prompt?": "Scrios pras?",
|
||||
"delete this link": "scrios an nasc seo",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Doiciméadú",
|
||||
"Documents": "Doiciméid",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ní dhéanann sé aon naisc sheachtracha, agus fanann do chuid sonraí go slán ar do fhreastalaí a óstáiltear go háitiúil.",
|
||||
"Don't Allow": "Ná Ceadaigh",
|
||||
"Don't have an account?": "Níl cuntas agat?",
|
||||
"don't install random functions from sources you don't trust.": "ná suiteáil feidhmeanna randamacha ó fhoinsí nach bhfuil muinín agat.",
|
||||
"don't install random tools from sources you don't trust.": "ná suiteáil uirlisí randamacha ó fhoinsí nach bhfuil muinín agat.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Íoslódáil",
|
||||
"Download canceled": "Íoslódáil cealaithe",
|
||||
"Download Database": "Íoslódáil Bunachair",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Scaoil aon chomhaid anseo le cur leis an gcomhrá",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "m.sh. '30s', '10m'. Is iad aonaid ama bailí ná 's', 'm', 'h'.",
|
||||
"Edit": "Cuir in eagar",
|
||||
"Edit Doc": "Cuir Doc in eagar",
|
||||
"Edit Memory": "Cuir Cuimhne in eagar",
|
||||
"Edit User": "Cuir Úsáideoir in eagar",
|
||||
"ElevenLabs": "Eleven Labs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Cuir isteach do phasfhocal",
|
||||
"Enter Your Role": "Cuir isteach do Ról",
|
||||
"Error": "Earráid",
|
||||
"ERROR": "",
|
||||
"Experimental": "Turgnamhach",
|
||||
"Export": "Easpórtáil",
|
||||
"Export All Chats (All Users)": "Easpórtáil gach comhrá (Gach Úsáideoir)",
|
||||
"Export chat (.json)": "Easpórtáil comhrá (.json)",
|
||||
"Export Chats": "Comhráite Easpórtá",
|
||||
"Export Config to JSON File": "Easpórtáil Cumraíocht chuig Comhad JSON",
|
||||
"Export Documents Mapping": "Mapáil Doiciméad Onnm",
|
||||
"Export Functions": "Feidhmeanna Easp",
|
||||
"Export LiteLLM config.yaml": "Easpórtáil LitellM config.yaml",
|
||||
"Export Models": "Samhlacha Easpórtá",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Íomhánna",
|
||||
"Import Chats": "Comhráite iompórtá",
|
||||
"Import Config from JSON File": "Cumraíocht Iompórtáil ó Chomhad JSON",
|
||||
"Import Documents Mapping": "Mapáil Doiciméad Iomp",
|
||||
"Import Functions": "Feidhmeanna Iom",
|
||||
"Import Models": "Samhlacha iompórtá",
|
||||
"Import Prompts": "Leideanna Iompórtála",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Suiteáil ó Github URL",
|
||||
"Instant Auto-Send After Voice Transcription": "Seoladh Uathoibríoch Láithreach Tar éis",
|
||||
"Interface": "Comhéadan",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Clib neamhbhailí",
|
||||
"January": "Eanáir",
|
||||
"join our Discord for help.": "bí inár Discord chun cabhair a fháil.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Tuilleadh",
|
||||
"Move to Top": "Bogadh go dtí an Barr",
|
||||
"Name": "Ainm",
|
||||
"Name Tag": "Clib Ainm",
|
||||
"Name your model": "Ainmnigh do mhúnla",
|
||||
"New Chat": "Comhrá Nua",
|
||||
"New Password": "Pasfhocal Nua",
|
||||
"No content found": "",
|
||||
"No content to speak": "Níl aon ábhar le labhairt",
|
||||
"No file selected": "Níl aon chomhad roghnaithe",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Níl aon torthaí le fáil",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Teastaíonn URL/eochair OpenAI.",
|
||||
"or": "nó",
|
||||
"Other": "Eile",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Formáid aschuir",
|
||||
"Overview": "Forbhreathnú",
|
||||
"page": "leathanach",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Samhail athrangú socraithe go “{{reranking_model}}”",
|
||||
"Reset": "Athshocraigh",
|
||||
"Reset Upload Directory": "Athshocraigh Eolaire Uas",
|
||||
"Reset Vector Storage": "Athshocraigh Stóráil Vector",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Freagra AutoCopy go Gearrthaisce",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Ní féidir fógraí freagartha a ghníomhachtú toisc gur diúltaíodh ceadanna an tsuímh Ghréasáin. Tabhair cuairt ar do shocruithe brabhsálaí chun an rochtain riachtanach a dheonú.",
|
||||
"Response splitting": "Scoilt freagartha",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Cuardaigh samhail",
|
||||
"Search Chats": "Cuardaigh Comhráite",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Cuardaigh Doiciméid",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Feidhmeanna Cuardaigh",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Múnlaí Cuardaigh",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "Luas Athsheinm Urlabhra",
|
||||
"Speech recognition error: {{error}}": "Earráid aitheantais cainte: {{error}}",
|
||||
"Speech-to-Text Engine": "Inneall Cainte-go-Téacs",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stop Seicheamh",
|
||||
"Stream Chat Response": "Freagra Comhrá Sruth",
|
||||
"STT Model": "Múnla STT",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Teimpléad",
|
||||
"Temporary Chat": "Comhrá Sealadach",
|
||||
"Text Completion": "Críochnú Téacs",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Inneall téacs-go-labhra",
|
||||
"Tfs Z": "TFS Z",
|
||||
"Thanks for your feedback!": "Go raibh maith agat as do chuid aiseolas!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Míniú críochnúil",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Teastaíonn URL Freastalaí Tika.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Leid: Nuashonraigh sliotáin iolracha athróg as a chéile trí bhrú ar an eochair cluaisín san ionchur comhrá tar éis gach athsholáthair.",
|
||||
"Title": "Teideal",
|
||||
"Title (e.g. Tell me a fun fact)": "Teideal (m.sh. inis dom fíric spraíúil)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Inniu",
|
||||
"Toggle settings": "Socraigh socruithe",
|
||||
"Toggle sidebar": "Athraigh barra taobh",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Comharthaí le Coinneáil ar Athnuachan Comhthéacs (num_keep)",
|
||||
"Tool created successfully": "Uirlis cruthaithe go rathúil",
|
||||
"Tool deleted successfully": "Uirlis scriosta go rathúil",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Uaslódáil an Dul",
|
||||
"URL Mode": "Mód URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Úsáid '#' san ionchur pras chun do dhoiciméid a luchtú agus a roghnú.",
|
||||
"Use Gravatar": "Úsáid Gravatar",
|
||||
"Use Initials": "Úsáid ceannlitreacha",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Aggiungi un prompt custom",
|
||||
"Add Docs": "Aggiungi documenti",
|
||||
"Add Files": "Aggiungi file",
|
||||
"Add Memory": "Aggiungi memoria",
|
||||
"Add message": "Aggiungi messaggio",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Parametri avanzati",
|
||||
"Advanced Params": "Parametri avanzati",
|
||||
"all": "tutti",
|
||||
"All Documents": "Tutti i documenti",
|
||||
"All Users": "Tutti gli utenti",
|
||||
"Allow": "Consenti",
|
||||
"Allow Chat Deletion": "Consenti l'eliminazione della chat",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Annulla",
|
||||
"Capabilities": "Funzionalità",
|
||||
"Change Password": "Cambia password",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "UI bolle chat",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Clicca qui per selezionare",
|
||||
"Click here to select a csv file.": "Clicca qui per selezionare un file csv.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Clicca qui per selezionare i documenti.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "clicca qui.",
|
||||
"Click on the user role button to change a user's role.": "Clicca sul pulsante del ruolo utente per modificare il ruolo di un utente.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Clone",
|
||||
"Close": "Chiudi",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Collezione",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copia ultimo blocco di codice",
|
||||
"Copy last response": "Copia ultima risposta",
|
||||
"Copy Link": "Copia link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Copia negli appunti riuscita!",
|
||||
"Create a model": "Creare un modello",
|
||||
"Create Account": "Crea account",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modello predefinito aggiornato",
|
||||
"Default Prompt Suggestions": "Suggerimenti prompt predefiniti",
|
||||
"Default User Role": "Ruolo utente predefinito",
|
||||
"delete": "elimina",
|
||||
"Delete": "Elimina",
|
||||
"Delete a model": "Elimina un modello",
|
||||
"Delete All Chats": "Elimina tutte le chat",
|
||||
"Delete chat": "Elimina chat",
|
||||
"Delete Chat": "Elimina chat",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "elimina questo link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Documenti",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "non effettua connessioni esterne e i tuoi dati rimangono al sicuro sul tuo server ospitato localmente.",
|
||||
"Don't Allow": "Non consentire",
|
||||
"Don't have an account?": "Non hai un account?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Scarica",
|
||||
"Download canceled": "Scaricamento annullato",
|
||||
"Download Database": "Scarica database",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Trascina qui i file da aggiungere alla conversazione",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ad esempio '30s','10m'. Le unità di tempo valide sono 's', 'm', 'h'.",
|
||||
"Edit": "Modifica",
|
||||
"Edit Doc": "Modifica documento",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Modifica utente",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Inserisci la tua password",
|
||||
"Enter Your Role": "Inserisci il tuo ruolo",
|
||||
"Error": "Errore",
|
||||
"ERROR": "",
|
||||
"Experimental": "Sperimentale",
|
||||
"Export": "Esportazione",
|
||||
"Export All Chats (All Users)": "Esporta tutte le chat (tutti gli utenti)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Esporta chat",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Esporta mappatura documenti",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Esporta modelli",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Immagini",
|
||||
"Import Chats": "Importa chat",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importa mappatura documenti",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Importazione di modelli",
|
||||
"Import Prompts": "Importa prompt",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Eseguire l'installazione dall'URL di Github",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Interfaccia",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Tag non valido",
|
||||
"January": "Gennaio",
|
||||
"join our Discord for help.": "unisciti al nostro Discord per ricevere aiuto.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Altro",
|
||||
"Move to Top": "",
|
||||
"Name": "Nome",
|
||||
"Name Tag": "Nome tag",
|
||||
"Name your model": "Assegna un nome al tuo modello",
|
||||
"New Chat": "Nuova chat",
|
||||
"New Password": "Nuova password",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Nessun risultato trovato",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Chiave OpenAI obbligatori.",
|
||||
"or": "o",
|
||||
"Other": "Altro",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modello di riclassificazione impostato su \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Reimposta archivio vettoriale",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copia automatica della risposta negli appunti",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Cerca un modello",
|
||||
"Search Chats": "Cerca nelle chat",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Cerca documenti",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Cerca modelli",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
|
||||
"Speech-to-Text Engine": "Motore da voce a testo",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Sequenza di arresto",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Modello",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Completamento del testo",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motore da testo a voce",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Grazie per il tuo feedback!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Spiegazione dettagliata",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Suggerimento: aggiorna più slot di variabili consecutivamente premendo il tasto tab nell'input della chat dopo ogni sostituzione.",
|
||||
"Title": "Titolo",
|
||||
"Title (e.g. Tell me a fun fact)": "Titolo (ad esempio Dimmi un fatto divertente)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Oggi",
|
||||
"Toggle settings": "Attiva/disattiva impostazioni",
|
||||
"Toggle sidebar": "Attiva/disattiva barra laterale",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Avanzamento caricamento",
|
||||
"URL Mode": "Modalità URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Usa '#' nell'input del prompt per caricare e selezionare i tuoi documenti.",
|
||||
"Use Gravatar": "Usa Gravatar",
|
||||
"Use Initials": "Usa iniziali",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "コンテンツを追加",
|
||||
"Add content here": "ここへコンテンツを追加",
|
||||
"Add custom prompt": "カスタムプロンプトを追加",
|
||||
"Add Docs": "ドキュメントを追加",
|
||||
"Add Files": "ファイルを追加",
|
||||
"Add Memory": "メモリを追加",
|
||||
"Add message": "メッセージを追加",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "管理者は全てのツールにアクセス出来ます。ユーザーはワークスペースのモデル毎に割り当てて下さい。",
|
||||
"Advanced Parameters": "詳細パラメーター",
|
||||
"Advanced Params": "高度なパラメータ",
|
||||
"all": "すべて",
|
||||
"All Documents": "全てのドキュメント",
|
||||
"All Users": "すべてのユーザー",
|
||||
"Allow": "許可",
|
||||
"Allow Chat Deletion": "チャットの削除を許可",
|
||||
"Allow Chat Editing": "チャットの編集を許可",
|
||||
"Allow non-local voices": "ローカル以外のボイスを許可",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "キャンセル",
|
||||
"Capabilities": "資格",
|
||||
"Change Password": "パスワードを変更",
|
||||
"Character": "",
|
||||
"Chat": "チャット",
|
||||
"Chat Background Image": "チャットの背景画像",
|
||||
"Chat Bubble UI": "チャットバブルUI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "選択するにはここをクリックしてください",
|
||||
"Click here to select a csv file.": "CSVファイルを選択するにはここをクリックしてください。",
|
||||
"Click here to select a py file.": "Pythonスクリプトファイルを選択するにはここをクリックしてください。",
|
||||
"Click here to select documents.": "ドキュメントを選択するにはここをクリックしてください。",
|
||||
"Click here to upload a workflow.json file.": "workflow.jsonファイルをアップロードするにはここをクリックしてください。",
|
||||
"click here.": "ここをクリックしてください。",
|
||||
"Click on the user role button to change a user's role.": "ユーザーの役割を変更するには、ユーザー役割ボタンをクリックしてください。",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "クリップボードへの書き込み許可がありません。ブラウザ設定を確認し許可してください。",
|
||||
"Clone": "クローン",
|
||||
"Close": "閉じる",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "コードフォーマットに成功しました",
|
||||
"Collection": "コレクション",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "最後のコードブロックをコピー",
|
||||
"Copy last response": "最後の応答をコピー",
|
||||
"Copy Link": "リンクをコピー",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "クリップボードへのコピーが成功しました!",
|
||||
"Create a model": "モデルを作成する",
|
||||
"Create Account": "アカウントを作成",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "デフォルトモデルが更新されました",
|
||||
"Default Prompt Suggestions": "デフォルトのプロンプトの提案",
|
||||
"Default User Role": "デフォルトのユーザー役割",
|
||||
"delete": "削除",
|
||||
"Delete": "削除",
|
||||
"Delete a model": "モデルを削除",
|
||||
"Delete All Chats": "すべてのチャットを削除",
|
||||
"Delete chat": "チャットを削除",
|
||||
"Delete Chat": "チャットを削除",
|
||||
"Delete chat?": "チャットを削除しますか?",
|
||||
"Delete Doc": "ドキュメントを削除しますか?",
|
||||
"Delete function?": "Functionを削除しますか?",
|
||||
"Delete prompt?": "プロンプトを削除しますか?",
|
||||
"delete this link": "このリンクを削除します",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "ドキュメント",
|
||||
"Documents": "ドキュメント",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "外部接続を行わず、データはローカルでホストされているサーバー上に安全に保持されます。",
|
||||
"Don't Allow": "許可しない",
|
||||
"Don't have an account?": "アカウントをお持ちではありませんか?",
|
||||
"don't install random functions from sources you don't trust.": "信頼出来ないソースからランダムFunctionをインストールしないでください。",
|
||||
"don't install random tools from sources you don't trust.": "信頼出来ないソースからランダムツールをインストールしないでください。",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "ダウンロード",
|
||||
"Download canceled": "ダウンロードをキャンセルしました",
|
||||
"Download Database": "データベースをダウンロード",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "会話を追加するには、ここにファイルをドロップしてください",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例: '30秒'、'10分'。有効な時間単位は '秒'、'分'、'時間' です。",
|
||||
"Edit": "編集",
|
||||
"Edit Doc": "ドキュメントを編集",
|
||||
"Edit Memory": "メモリを編集",
|
||||
"Edit User": "ユーザーを編集",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,19 +278,20 @@
|
|||
"Enter Your Password": "パスワードを入力してください",
|
||||
"Enter Your Role": "ロールを入力してください",
|
||||
"Error": "エラー",
|
||||
"ERROR": "",
|
||||
"Experimental": "実験的",
|
||||
"Export": "エクスポート",
|
||||
"Export All Chats (All Users)": "すべてのチャットをエクスポート (すべてのユーザー)",
|
||||
"Export chat (.json)": "チャットをエクスポート(.json)",
|
||||
"Export Chats": "チャットをエクスポート",
|
||||
"Export Config to JSON File": "設定をJSONファイルでエクスポート",
|
||||
"Export Documents Mapping": "ドキュメントマッピングをエクスポート",
|
||||
"Export Functions": "Functionのエクスポート",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "モデルのエクスポート",
|
||||
"Export Prompts": "プロンプトをエクスポート",
|
||||
"Export Tools": "ツールのエクスポート",
|
||||
"External Models": "外部モデル",
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "APIキーの作成に失敗しました。",
|
||||
"Failed to read clipboard contents": "クリップボードの内容を読み取れませんでした",
|
||||
"Failed to update settings": "設定アップデート失敗",
|
||||
|
|
@ -356,7 +354,6 @@
|
|||
"Images": "画像",
|
||||
"Import Chats": "チャットをインポート",
|
||||
"Import Config from JSON File": "設定をJSONファイルからインポート",
|
||||
"Import Documents Mapping": "ドキュメントマッピングをインポート",
|
||||
"Import Functions": "Functionのインポート",
|
||||
"Import Models": "モデルのインポート",
|
||||
"Import Prompts": "プロンプトをインポート",
|
||||
|
|
@ -368,6 +365,7 @@
|
|||
"Install from Github URL": "Github URLからインストール",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "インターフェース",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "無効なタグ",
|
||||
"January": "1月",
|
||||
"join our Discord for help.": "ヘルプについては、Discord に参加してください。",
|
||||
|
|
@ -445,12 +443,13 @@
|
|||
"More": "もっと見る",
|
||||
"Move to Top": "",
|
||||
"Name": "名前",
|
||||
"Name Tag": "名前タグ",
|
||||
"Name your model": "モデルに名前を付ける",
|
||||
"New Chat": "新しいチャット",
|
||||
"New Password": "新しいパスワード",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "知識が見つかりません",
|
||||
"No results found": "結果が見つかりません",
|
||||
|
|
@ -493,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Key が必要です。",
|
||||
"or": "または",
|
||||
"Other": "その他",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -545,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "再ランキングモデルを \"{{reranking_model}}\" に設定しました",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "アップロードディレクトリをリセット",
|
||||
"Reset Vector Storage": "ベクトルストレージをリセット",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "クリップボードへの応答の自動コピー",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "応答の分割",
|
||||
|
|
@ -568,7 +568,7 @@
|
|||
"Search a model": "モデルを検索",
|
||||
"Search Chats": "チャットの検索",
|
||||
"Search Collection": "Collectionの検索",
|
||||
"Search Documents": "ドキュメントを検索",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Functionの検索",
|
||||
"Search Knowledge": "知識の検索",
|
||||
"Search Models": "モデル検索",
|
||||
|
|
@ -587,6 +587,7 @@
|
|||
"Seed": "シード",
|
||||
"Select a base model": "基本モデルの選択",
|
||||
"Select a engine": "エンジンの選択",
|
||||
"Select a file to view or drag and drop a file to upload": "",
|
||||
"Select a function": "Functionの選択",
|
||||
"Select a model": "モデルを選択",
|
||||
"Select a pipeline": "パイプラインの選択",
|
||||
|
|
@ -597,7 +598,6 @@
|
|||
"Select Knowledge": "知識の選択",
|
||||
"Select model": "モデルを選択",
|
||||
"Select only one model to call": "",
|
||||
"Select/Add Files": "",
|
||||
"Selected model(s) do not support image inputs": "一部のモデルは画像入力をサポートしていません",
|
||||
"Send": "送信",
|
||||
"Send a Message": "メッセージを送信",
|
||||
|
|
@ -641,6 +641,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
|
||||
"Speech-to-Text Engine": "音声テキスト変換エンジン",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "ストップシーケンス",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STTモデル",
|
||||
|
|
@ -663,6 +664,7 @@
|
|||
"Template": "テンプレート",
|
||||
"Temporary Chat": "一時的なチャット",
|
||||
"Text Completion": "テキスト補完",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "テキスト音声変換エンジン",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "ご意見ありがとうございます!",
|
||||
|
|
@ -681,6 +683,7 @@
|
|||
"Thorough explanation": "詳細な説明",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "ヒント: 各置換後にチャット入力で Tab キーを押すことで、複数の変数スロットを連続して更新できます。",
|
||||
"Title": "タイトル",
|
||||
"Title (e.g. Tell me a fun fact)": "タイトル (例: 楽しい事を教えて)",
|
||||
|
|
@ -698,6 +701,7 @@
|
|||
"Today": "今日",
|
||||
"Toggle settings": "設定を切り替え",
|
||||
"Toggle sidebar": "サイドバーを切り替え",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -725,6 +729,7 @@
|
|||
"Update and Copy Link": "リンクの更新とコピー",
|
||||
"Update for the latest features and improvements.": "",
|
||||
"Update password": "パスワードを更新",
|
||||
"Updated": "",
|
||||
"Updated at": "",
|
||||
"Upload": "アップロード",
|
||||
"Upload a GGUF model": "GGUF モデルをアップロード",
|
||||
|
|
@ -735,7 +740,6 @@
|
|||
"Upload Progress": "アップロードの進行状況",
|
||||
"URL Mode": "URL モード",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "#を入力すると知識データを参照することが出来ます。",
|
||||
"Use '#' in the prompt input to load and select your documents.": "プロンプト入力で '#' を使用して、ドキュメントを読み込んで選択します。",
|
||||
"Use Gravatar": "Gravatar を使用する",
|
||||
"Use Initials": "初期値を使用する",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "პირველადი მოთხოვნის დამატება",
|
||||
"Add Docs": "დოკუმენტის დამატება",
|
||||
"Add Files": "ფაილების დამატება",
|
||||
"Add Memory": "მემორიის დამატება",
|
||||
"Add message": "შეტყობინების დამატება",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "დამატებითი პარამეტრები",
|
||||
"Advanced Params": "მოწინავე პარამები",
|
||||
"all": "ყველა",
|
||||
"All Documents": "ყველა დოკუმენტი",
|
||||
"All Users": "ყველა მომხმარებელი",
|
||||
"Allow": "ნების დართვა",
|
||||
"Allow Chat Deletion": "მიმოწერის წაშლის დაშვება",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "გაუქმება",
|
||||
"Capabilities": "შესაძლებლობები",
|
||||
"Change Password": "პაროლის შეცვლა",
|
||||
"Character": "",
|
||||
"Chat": "მიმოწერა",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "ჩატის ბულბი",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "ასარჩევად, დააკლიკე აქ",
|
||||
"Click here to select a csv file.": "ასარჩევად, დააკლიკე აქ",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "დოკუმენტების ასარჩევად, დააკლიკე აქ",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "დააკლიკე აქ",
|
||||
"Click on the user role button to change a user's role.": "დააკლიკეთ მომხმარებლის როლის ღილაკს რომ შეცვალოთ მომხმარების როლი",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "კლონი",
|
||||
"Close": "დახურვა",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "ნაკრები",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "ბოლო ბლოკის კოპირება",
|
||||
"Copy last response": "ბოლო პასუხის კოპირება",
|
||||
"Copy Link": "კოპირება",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "კლავიატურაზე კოპირება წარმატებით დასრულდა",
|
||||
"Create a model": "შექმენით მოდელი",
|
||||
"Create Account": "ანგარიშის შექმნა",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "დეფოლტ მოდელი განახლებულია",
|
||||
"Default Prompt Suggestions": "დეფოლტ პრომპტი პირველი პირველი",
|
||||
"Default User Role": "მომხმარებლის დეფოლტ როლი",
|
||||
"delete": "წაშლა",
|
||||
"Delete": "წაშლა",
|
||||
"Delete a model": "მოდელის წაშლა",
|
||||
"Delete All Chats": "ყველა ჩატის წაშლა",
|
||||
"Delete chat": "შეტყობინების წაშლა",
|
||||
"Delete Chat": "შეტყობინების წაშლა",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "ბმულის წაშლა",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "დოკუმენტები",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "არ ამყარებს გარე კავშირებს და თქვენი მონაცემები უსაფრთხოდ რჩება თქვენს ადგილობრივ სერვერზე.",
|
||||
"Don't Allow": "არ დაუშვა",
|
||||
"Don't have an account?": "არ გაქვს ანგარიში?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "ჩამოტვირთვა გაუქმებულია",
|
||||
"Download canceled": "ჩამოტვირთვა გაუქმებულია",
|
||||
"Download Database": "გადმოწერე მონაცემთა ბაზა",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "გადაიტანეთ ფაილები აქ, რათა დაამატოთ ისინი მიმოწერაში",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგალითად, '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.",
|
||||
"Edit": "რედაქტირება",
|
||||
"Edit Doc": "დოკუმენტის ედიტირება",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "მომხმარებლის ედიტირება",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "შეიყვანეთ თქვენი პაროლი",
|
||||
"Enter Your Role": "შეიყვანეთ თქვენი როლი",
|
||||
"Error": "შეცდომა",
|
||||
"ERROR": "",
|
||||
"Experimental": "ექსპერიმენტალური",
|
||||
"Export": "ექსპორტი",
|
||||
"Export All Chats (All Users)": "ექსპორტი ყველა ჩათი (ყველა მომხმარებელი)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "მიმოწერის ექსპორტირება",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "დოკუმენტების კავშირის ექსპორტი",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "ექსპორტის მოდელები",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "სურათები",
|
||||
"Import Chats": "მიმოწერების იმპორტი",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "დოკუმენტების კავშირის იმპორტი",
|
||||
"Import Functions": "",
|
||||
"Import Models": "იმპორტის მოდელები",
|
||||
"Import Prompts": "მოთხოვნების იმპორტი",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "დააინსტალირეთ Github URL- დან",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "ინტერფეისი",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "არასწორი ტეგი",
|
||||
"January": "იანვარი",
|
||||
"join our Discord for help.": "შეუერთდით ჩვენს Discord-ს დახმარებისთვის",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "ვრცლად",
|
||||
"Move to Top": "",
|
||||
"Name": "სახელი",
|
||||
"Name Tag": "სახელის ტეგი",
|
||||
"Name your model": "დაასახელეთ თქვენი მოდელი",
|
||||
"New Chat": "ახალი მიმოწერა",
|
||||
"New Password": "ახალი პაროლი",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "ჩვენ ვერ პოულობით ნაპოვნი ჩაწერები",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Key აუცილებელია",
|
||||
"or": "ან",
|
||||
"Other": "სხვა",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "ვექტორული მეხსიერების გადატვირთვა",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "მოდელის ძიება",
|
||||
"Search Chats": "ჩატების ძებნა",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "დოკუმენტების ძიება",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "საძიებო მოდელები",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}",
|
||||
"Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "შეჩერების თანმიმდევრობა",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "შაბლონი",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "ტექსტის დასრულება",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "ტექსტურ-ხმოვანი ძრავი",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "მადლობა გამოხმაურებისთვის!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "ვრცლად აღწერა",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "რჩევა: განაახლეთ რამდენიმე ცვლადი სლოტი თანმიმდევრულად, ყოველი ჩანაცვლების შემდეგ ჩატის ღილაკზე დაჭერით.",
|
||||
"Title": "სათაური",
|
||||
"Title (e.g. Tell me a fun fact)": "სათაური (მაგ. გაიხსნე რაღაც ხარისხი)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "დღეს",
|
||||
"Toggle settings": "პარამეტრების გადართვა",
|
||||
"Toggle sidebar": "გვერდითი ზოლის გადართვა",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "პროგრესის ატვირთვა",
|
||||
"URL Mode": "URL რეჟიმი",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "პრომტში გამოიყენე '#' რომელიც გაიტანს დოკუმენტებს",
|
||||
"Use Gravatar": "გამოიყენე Gravatar",
|
||||
"Use Initials": "გამოიყენე ინიციალები",
|
||||
"use_mlock (Ollama)": "use_mlock (ოლამა)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "프롬프트 추가",
|
||||
"Add Docs": "문서 추가",
|
||||
"Add Files": "파일 추가",
|
||||
"Add Memory": "메모리 추가",
|
||||
"Add message": "메시지 추가",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "관리자는 항상 모든 도구에 접근할 수 있지만, 사용자는 워크스페이스에서 모델마다 도구를 할당받아야 합니다.",
|
||||
"Advanced Parameters": "고급 파라미터",
|
||||
"Advanced Params": "고급 파라미터",
|
||||
"all": "모두",
|
||||
"All Documents": "모든 문서",
|
||||
"All Users": "모든 사용자",
|
||||
"Allow": "허용",
|
||||
"Allow Chat Deletion": "채팅 삭제 허용",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "외부 음성 허용",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "취소",
|
||||
"Capabilities": "기능",
|
||||
"Change Password": "비밀번호 변경",
|
||||
"Character": "",
|
||||
"Chat": "채팅",
|
||||
"Chat Background Image": "채팅 배경 이미지",
|
||||
"Chat Bubble UI": "버블형 채팅 UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "선택하려면 여기를 클릭하세요.",
|
||||
"Click here to select a csv file.": "csv 파일을 선택하려면 여기를 클릭하세요.",
|
||||
"Click here to select a py file.": "py 파일을 선택하려면 여기를 클릭하세요.",
|
||||
"Click here to select documents.": "문서를 선택하려면 여기를 클릭하세요.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "여기를 클릭하세요.",
|
||||
"Click on the user role button to change a user's role.": "사용자 역할 버튼을 클릭하여 사용자의 역할을 변경하세요.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "복제",
|
||||
"Close": "닫기",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "컬렉션",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "마지막 코드 블록 복사",
|
||||
"Copy last response": "마지막 응답 복사",
|
||||
"Copy Link": "링크 복사",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "클립보드에 복사되었습니다!",
|
||||
"Create a model": "모델 만들기",
|
||||
"Create Account": "계정 만들기",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "기본 모델이 업데이트되었습니다.",
|
||||
"Default Prompt Suggestions": "기본 프롬프트 제안",
|
||||
"Default User Role": "기본 사용자 역할",
|
||||
"delete": "삭제",
|
||||
"Delete": "삭제",
|
||||
"Delete a model": "모델 삭제",
|
||||
"Delete All Chats": "모든 채팅 삭제",
|
||||
"Delete chat": "채팅 삭제",
|
||||
"Delete Chat": "채팅 삭제",
|
||||
"Delete chat?": "채팅을 삭제하겠습니까?",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "이 링크를 삭제합니다.",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "문서 조사",
|
||||
"Documents": "문서",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "어떠한 외부 연결도 하지 않으며, 데이터는 로컬에서 호스팅되는 서버에 안전하게 유지됩니다.",
|
||||
"Don't Allow": "허용 안 함",
|
||||
"Don't have an account?": "계정이 없으신가요?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "다운로드",
|
||||
"Download canceled": "다운로드 취소",
|
||||
"Download Database": "데이터베이스 다운로드",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "대화에 추가할 파일을 여기에 드롭하세요.",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "예: '30s','10m'. 유효한 시간 단위는 's', 'm', 'h'입니다.",
|
||||
"Edit": "편집",
|
||||
"Edit Doc": "문서 편집",
|
||||
"Edit Memory": "메모리 편집",
|
||||
"Edit User": "사용자 편집",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "비밀번호 입력",
|
||||
"Enter Your Role": "역할 입력",
|
||||
"Error": "오류",
|
||||
"ERROR": "",
|
||||
"Experimental": "실험적",
|
||||
"Export": "내보내기",
|
||||
"Export All Chats (All Users)": "모든 채팅 내보내기(모든 사용자)",
|
||||
"Export chat (.json)": "채팅 내보내기(.json)",
|
||||
"Export Chats": "채팅 내보내기",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "문서 매핑 내보내기",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "모델 내보내기",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "이미지",
|
||||
"Import Chats": "채팅 가져오기",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "문서 매핑 가져오기",
|
||||
"Import Functions": "",
|
||||
"Import Models": "모델 가져오기",
|
||||
"Import Prompts": "프롬프트 가져오기",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Github URL에서 설치",
|
||||
"Instant Auto-Send After Voice Transcription": "음성 변환 후 즉시 자동 전송",
|
||||
"Interface": "인터페이스",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "잘못된 태그",
|
||||
"January": "1월",
|
||||
"join our Discord for help.": "도움말을 보려면 Discord에 가입하세요.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "더보기",
|
||||
"Move to Top": "",
|
||||
"Name": "이름",
|
||||
"Name Tag": "이름 태그",
|
||||
"Name your model": "모델 이름 지정",
|
||||
"New Chat": "새 채팅",
|
||||
"New Password": "새 비밀번호",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "결과 없음",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/키가 필요합니다.",
|
||||
"or": "또는",
|
||||
"Other": "기타",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking 모델을 \"{{reranking_model}}\"로 설정",
|
||||
"Reset": "초기화",
|
||||
"Reset Upload Directory": "업로드 디렉토리 초기화",
|
||||
"Reset Vector Storage": "벡터 스토리지 초기화",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "응답을 클립보드에 자동 복사",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "모델 검색",
|
||||
"Search Chats": "채팅 검색",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "문서 검색",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "모델 검색",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "음성 인식 오류: {{error}}",
|
||||
"Speech-to-Text Engine": "음성-텍스트 변환 엔진",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "중지 시퀀스",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT 모델",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "템플릿",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "텍스트 완성",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "텍스트-음성 변환 엔진",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "피드백 감사합니다!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "완전한 설명",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "팁: 각 대체 후 채팅 입력에서 탭 키를 눌러 여러 개의 변수 슬롯을 연속적으로 업데이트하세요.",
|
||||
"Title": "제목",
|
||||
"Title (e.g. Tell me a fun fact)": "제목 (예: 재미있는 사실을 알려주세요)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "오늘",
|
||||
"Toggle settings": "설정 전환",
|
||||
"Toggle sidebar": "사이드바 전환",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "컨텍스트 새로 고침 시 유지할 토큰 수(num_keep)",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "업로드 진행 상황",
|
||||
"URL Mode": "URL 모드",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "프롬프트 입력에서 '#'를 사용하여 문서를 로드하고 선택하세요.",
|
||||
"Use Gravatar": "Gravatar 사용",
|
||||
"Use Initials": "초성 사용",
|
||||
"use_mlock (Ollama)": "use_mlock (올라마)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Pridėti užklausos šabloną",
|
||||
"Add Docs": "Pridėti dokumentų",
|
||||
"Add Files": "Pridėti failus",
|
||||
"Add Memory": "Pridėti atminį",
|
||||
"Add message": "Pridėti žinutę",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratoriai visada turi visus įrankius. Naudotojai turi tuėti prieigą prie dokumentų per modelių nuostatas",
|
||||
"Advanced Parameters": "Pažengę nustatymai",
|
||||
"Advanced Params": "Pažengę nustatymai",
|
||||
"all": "visi",
|
||||
"All Documents": "Visi dokumentai",
|
||||
"All Users": "Visi naudotojai",
|
||||
"Allow": "Leisti",
|
||||
"Allow Chat Deletion": "Leisti pokalbių ištrynimą",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Leisti nelokalius balsus",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Atšaukti",
|
||||
"Capabilities": "Gebėjimai",
|
||||
"Change Password": "Keisti slaptažodį",
|
||||
"Character": "",
|
||||
"Chat": "Pokalbis",
|
||||
"Chat Background Image": "Pokalbio galinė užsklanda",
|
||||
"Chat Bubble UI": "Pokalbio burbulo sąsaja",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Spauskite čia norėdami pasirinkti",
|
||||
"Click here to select a csv file.": "Spauskite čia tam, kad pasirinkti csv failą",
|
||||
"Click here to select a py file.": "Spauskite čia norėdami pasirinkti py failą",
|
||||
"Click here to select documents.": "Spauskite čia norėdami pasirinkti dokumentus.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "paspauskite čia.",
|
||||
"Click on the user role button to change a user's role.": "Paspauskite ant naudotojo rolės mygtuko tam, kad pakeisti naudotojo rolę.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Iškarpinės naudojimas neleidžiamas naršyklės.",
|
||||
"Clone": "Klonuoti",
|
||||
"Close": "Uždaryti",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Kodas suformatuotas sėkmingai",
|
||||
"Collection": "Kolekcija",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopijuoti paskutinį kodo bloką",
|
||||
"Copy last response": "Kopijuoti paskutinį atsakymą",
|
||||
"Copy Link": "Kopijuoti nuorodą",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
|
||||
"Create a model": "Sukurti modelį",
|
||||
"Create Account": "Créer un compte",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Numatytasis modelis atnaujintas",
|
||||
"Default Prompt Suggestions": "Numatytieji užklausų pasiūlymai",
|
||||
"Default User Role": "Numatytoji naudotojo rolė",
|
||||
"delete": "ištrinti",
|
||||
"Delete": "ištrinti",
|
||||
"Delete a model": "Ištrinti modėlį",
|
||||
"Delete All Chats": "Ištrinti visus pokalbius",
|
||||
"Delete chat": "Išrinti pokalbį",
|
||||
"Delete Chat": "Ištrinti pokalbį",
|
||||
"Delete chat?": "Ištrinti pokalbį?",
|
||||
"Delete Doc": "Ištrinti dokumentą",
|
||||
"Delete function?": "Ištrinti funkciją",
|
||||
"Delete prompt?": "Ištrinti užklausą?",
|
||||
"delete this link": "Ištrinti nuorodą",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentacija",
|
||||
"Documents": "Dokumentai",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "neturi jokių išorinių ryšių ir duomenys lieka serveryje.",
|
||||
"Don't Allow": "Neleisti",
|
||||
"Don't have an account?": "Neturite paskyros?",
|
||||
"don't install random functions from sources you don't trust.": "neinstaliuokite funkcijų iš nepatikimų šaltinių",
|
||||
"don't install random tools from sources you don't trust.": "neinstaliuokite įrankių iš nepatikimų šaltinių",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Parsisiųsti",
|
||||
"Download canceled": "Parsisiuntimas atšauktas",
|
||||
"Download Database": "Parsisiųsti duomenų bazę",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Įkelkite dokumentus čia, kad juos pridėti į pokalbį",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "pvz. '30s', '10m'. Laiko vienetai yra 's', 'm', 'h'.",
|
||||
"Edit": "Redaguoti",
|
||||
"Edit Doc": "Redaguoti dokumentą",
|
||||
"Edit Memory": "Koreguoti atminį",
|
||||
"Edit User": "Redaguoti naudotoją",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Įveskite slaptažodį",
|
||||
"Enter Your Role": "Įveskite savo rolę",
|
||||
"Error": "Klaida",
|
||||
"ERROR": "",
|
||||
"Experimental": "Eksperimentinis",
|
||||
"Export": "Eksportuoti",
|
||||
"Export All Chats (All Users)": "Eksportuoti visų naudotojų visus pokalbius",
|
||||
"Export chat (.json)": "Eksportuoti pokalbį (.json)",
|
||||
"Export Chats": "Eksportuoti pokalbius",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Eksportuoti dokumentų žemėlapį",
|
||||
"Export Functions": "Eksportuoti funkcijas",
|
||||
"Export LiteLLM config.yaml": "Eksportuoti LiteLLM config.yaml",
|
||||
"Export Models": "Eksportuoti modelius",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Vaizdai",
|
||||
"Import Chats": "Importuoti pokalbius",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importuoti dokumentų žemėlapį",
|
||||
"Import Functions": "Importuoti funkcijas",
|
||||
"Import Models": "Importuoti modelius",
|
||||
"Import Prompts": "Importuoti užklausas",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instaliuoti Github nuorodą",
|
||||
"Instant Auto-Send After Voice Transcription": "Siųsti iškart po balso transkripcijos",
|
||||
"Interface": "Sąsaja",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Neteisinga žyma",
|
||||
"January": "Sausis",
|
||||
"join our Discord for help.": "prisijunkite prie mūsų Discord.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Daugiau",
|
||||
"Move to Top": "",
|
||||
"Name": "Pavadinimas",
|
||||
"Name Tag": "Žymos pavadinimas",
|
||||
"Name your model": "Pavadinkite savo modelį",
|
||||
"New Chat": "Naujas pokalbis",
|
||||
"New Password": "Naujas slaptažodis",
|
||||
"No content found": "",
|
||||
"No content to speak": "Nėra turinio kalbėjimui",
|
||||
"No file selected": "Nėra pasirinktų dokumentų",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Rezultatų nerasta",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI API nuoroda ir raktas būtini",
|
||||
"or": "arba",
|
||||
"Other": "Kita",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Nustatytas rereanking modelis: \"{{reranking_model}}\"",
|
||||
"Reset": "Atkurti",
|
||||
"Reset Upload Directory": "Atkurti įkėlimų direktoiją",
|
||||
"Reset Vector Storage": "Reinicializuoti vektorių atmintį",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Automatiškai nukopijuoti atsakymą",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Naršyklė neleidžia siųsti pranešimų",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Ieškoti modelio",
|
||||
"Search Chats": "Ieškoti pokalbiuose",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Ieškoti dokumentų",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Ieškoti funkcijų",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Ieškoti modelių",
|
||||
|
|
@ -646,6 +644,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Balso atpažinimo problema: {{error}}",
|
||||
"Speech-to-Text Engine": "Balso atpažinimo modelis",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Baigt sekvenciją",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT modelis",
|
||||
|
|
@ -668,6 +667,7 @@
|
|||
"Template": "Modelis",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Teksto pildymas",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Balso sintezės modelis",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Ačiū už atsiliepimus",
|
||||
|
|
@ -686,6 +686,7 @@
|
|||
"Thorough explanation": "Platus paaiškinimas",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Reiklainga Tika serverio nuorodą",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Jei norite pakeisti keletą kintamųjų vieną po kitos, spauskite Tab",
|
||||
"Title": "Pavadinimas",
|
||||
"Title (e.g. Tell me a fun fact)": "Pavadinimas",
|
||||
|
|
@ -703,6 +704,7 @@
|
|||
"Today": "Šiandien",
|
||||
"Toggle settings": "Atverti/užverti parametrus",
|
||||
"Toggle sidebar": "Atverti/užverti šoninį meniu",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Žetonų kiekis konteksto atnaujinimui (num_keep)",
|
||||
"Tool created successfully": "Įrankis sukurtas sėkmingai",
|
||||
"Tool deleted successfully": "Įrankis ištrintas sėkmingai",
|
||||
|
|
@ -741,7 +743,6 @@
|
|||
"Upload Progress": "Įkėlimo progresas",
|
||||
"URL Mode": "URL režimas",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Naudokite '#' norėdami naudoti dokumentą.",
|
||||
"Use Gravatar": "Naudoti Gravatar",
|
||||
"Use Initials": "Naudotojo inicialai",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Tambah arahan khusus",
|
||||
"Add Docs": "Tambah Dokumen",
|
||||
"Add Files": "Tambah Fail",
|
||||
"Add Memory": "Tambah Memori",
|
||||
"Add message": "Tambah Mesej",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Pentadbir mempunyai akses kepada semua alat pada setiap masa; pengguna memerlukan alat yang ditetapkan mengikut model dalam ruang kerja.",
|
||||
"Advanced Parameters": "Parameter Lanjutan",
|
||||
"Advanced Params": "Parameter Lanjutan",
|
||||
"all": "semua",
|
||||
"All Documents": "Semua Dokumen",
|
||||
"All Users": "Semua Pengguna",
|
||||
"Allow": "Benarkan",
|
||||
"Allow Chat Deletion": "Benarkan Penghapusan Perbualan",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Benarkan suara bukan tempatan ",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Batal",
|
||||
"Capabilities": "Keupayaan",
|
||||
"Change Password": "Tukar Kata Laluan",
|
||||
"Character": "",
|
||||
"Chat": "Perbualan",
|
||||
"Chat Background Image": "Imej Latar Belakang Perbualan",
|
||||
"Chat Bubble UI": "Antaramuka Buih Perbualan",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klik disini untuk memilih",
|
||||
"Click here to select a csv file.": "Klik disini untuk memilih fail csv",
|
||||
"Click here to select a py file.": "Klik disini untuk memilih fail py",
|
||||
"Click here to select documents.": "Klik disini untuk memilih dokumen",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "klik disini.",
|
||||
"Click on the user role button to change a user's role.": "Klik pada butang peranan pengguna untuk menukar peranan pengguna",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Kebenaran untuk menulis di papan klip ditolak. Sila semak tetapan pelayan web anda untuk memberikan akses yang diperlukan",
|
||||
"Clone": "Klon",
|
||||
"Close": "Tutup",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Kod berjaya diformatkan",
|
||||
"Collection": "Koleksi",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Salin Blok Kod Terakhir",
|
||||
"Copy last response": "Salin Respons Terakhir",
|
||||
"Copy Link": "Salin Pautan",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Menyalin ke papan klip berjaya!",
|
||||
"Create a model": "Cipta model",
|
||||
"Create Account": "Cipta Akaun",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Model lalai dikemas kini",
|
||||
"Default Prompt Suggestions": "Cadangan Gesaan Lalai",
|
||||
"Default User Role": "Peranan Pengguna Lalai",
|
||||
"delete": "padam",
|
||||
"Delete": "Padam",
|
||||
"Delete a model": "Padam Model",
|
||||
"Delete All Chats": "Padam Semua Perbualan",
|
||||
"Delete chat": "Padam perbualan",
|
||||
"Delete Chat": "Padam Perbualan",
|
||||
"Delete chat?": "Padam perbualan?",
|
||||
"Delete Doc": "Padam Dokumen",
|
||||
"Delete function?": "Padam fungsi?",
|
||||
"Delete prompt?": "Padam Gesaan?",
|
||||
"delete this link": "Padam pautan ini?",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentasi",
|
||||
"Documents": "Dokumen",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "tidak membuat sebarang sambungan luaran, dan data anda kekal selamat pada pelayan yang dihoskan ditempat anda",
|
||||
"Don't Allow": "Tidak Dibenarkan",
|
||||
"Don't have an account?": "Anda tidak mempunyai akaun?",
|
||||
"don't install random functions from sources you don't trust.": "jangan pasang mana-mana fungsi daripada sumber yang anda tidak percayai.",
|
||||
"don't install random tools from sources you don't trust.": "jangan pasang mana-mana alat daripada sumber yang anda tidak percayai.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Muat Turun",
|
||||
"Download canceled": "Muat Turun dibatalkan",
|
||||
"Download Database": "Muat turun Pangkalan Data",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Letakkan mana-mana fail di sini untuk ditambahkan pada perbualan",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "cth '30s','10m'. Unit masa yang sah ialah 's', 'm', 'h'.",
|
||||
"Edit": "Edit",
|
||||
"Edit Doc": "Edit Dokumen",
|
||||
"Edit Memory": "Edit Memori",
|
||||
"Edit User": "Edit Penggunal",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Masukkan Kata Laluan Anda",
|
||||
"Enter Your Role": "Masukkan Peranan Anda",
|
||||
"Error": "Ralat",
|
||||
"ERROR": "",
|
||||
"Experimental": "Percubaan",
|
||||
"Export": "Eksport",
|
||||
"Export All Chats (All Users)": "Eksport Semua Perbualan (Semua Pengguna)",
|
||||
"Export chat (.json)": "Eksport perbualan (.json)",
|
||||
"Export Chats": "Eksport Perbualan",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Eksport Pemetaan Dokumen",
|
||||
"Export Functions": "Eksport Fungsi",
|
||||
"Export LiteLLM config.yaml": "Eksport LiteLLM config.yaml",
|
||||
"Export Models": "Eksport Model",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imej",
|
||||
"Import Chats": "Import Perbualan",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Import Pemetaan Dokumen",
|
||||
"Import Functions": "Import Fungsi",
|
||||
"Import Models": "Import Model",
|
||||
"Import Prompts": "Import Gesaan",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Pasang daripada URL Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Hantar Secara Automatik Dengan Segera Selepas Transkripsi Suara",
|
||||
"Interface": "Antaramuka",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Tag tidak sah",
|
||||
"January": "Januari",
|
||||
"join our Discord for help.": "sertai Discord kami untuk mendapatkan bantuan.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Lagi",
|
||||
"Move to Top": "",
|
||||
"Name": "Nama",
|
||||
"Name Tag": "Nama Tag",
|
||||
"Name your model": "Namakan Model Anda",
|
||||
"New Chat": "Perbualan Baru",
|
||||
"New Password": "Kata Laluan Baru",
|
||||
"No content found": "",
|
||||
"No content to speak": "Tiada kandungan untuk bercakap",
|
||||
"No file selected": "Tiada fail dipilih",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Tiada keputusan dijumpai",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Kekunci OpenAI diperlukan",
|
||||
"or": "atau",
|
||||
"Other": "Lain-lain",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Model 'Reranking' ditetapkan kepada \"{{reranking_model}}\"",
|
||||
"Reset": "Tetapkan Semula",
|
||||
"Reset Upload Directory": "Tetapkan Semula Direktori Muat Naik",
|
||||
"Reset Vector Storage": "Tetapkan Semula Storan Vektor",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Salin Response secara Automatik ke Papan Klip",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Pemberitahuan respons tidak boleh diaktifkan kerana kebenaran tapak web tidak diberi. Sila lawati tetapan pelayar web anda untuk memberikan akses yang diperlukan.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Cari Model",
|
||||
"Search Chats": "Cari Perbualan",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Carian Dokumen",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Carian Fungsi",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Carian Model",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Ralat pengecaman pertuturan: {{error}}",
|
||||
"Speech-to-Text Engine": "Enjin Ucapan-ke-Teks",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Jujukan Henti",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Model STT",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Templat",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Penyiapan Teks",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Enjin Teks-ke-Ucapan",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Terima kasih atas maklum balas anda!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Penjelasan menyeluruh",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "URL Pelayan Tika diperlukan.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Petua: Kemas kini berbilang slot pembolehubah secara berturut-turut dengan menekan kekunci tab dalam input perbualan selepas setiap penggantian.",
|
||||
"Title": "Tajuk",
|
||||
"Title (e.g. Tell me a fun fact)": "Tajuk (cth Beritahu saya fakta yang menyeronokkan)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Hari Ini",
|
||||
"Toggle settings": "Suis Tetapan ",
|
||||
"Toggle sidebar": "Suis Bar Sisi",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Token Untuk Teruskan Dalam Muat Semula Konteks ( num_keep )",
|
||||
"Tool created successfully": "Alat berjaya dibuat",
|
||||
"Tool deleted successfully": "Alat berjaya dipadamkan",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Kemajuan Muatnaik",
|
||||
"URL Mode": "Mod URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Gunakan '#' dalam input gesaan untuk memuatkan dan memilih dokumen anda",
|
||||
"Use Gravatar": "Gunakan Gravatar",
|
||||
"Use Initials": "Gunakan nama pendek",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Legg til egendefinert prompt",
|
||||
"Add Docs": "Legg til dokumenter",
|
||||
"Add Files": "Legg til filer",
|
||||
"Add Memory": "Legg til minne",
|
||||
"Add message": "Legg til melding",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratorer har alltid tilgang til alle verktøy, mens brukere må få tildelt verktøy for hver enkelt modell i arbeidsområdet.",
|
||||
"Advanced Parameters": "Avanserte parametere",
|
||||
"Advanced Params": "Avanserte parametere",
|
||||
"all": "alle",
|
||||
"All Documents": "Alle dokumenter",
|
||||
"All Users": "Alle brukere",
|
||||
"Allow": "Tillat",
|
||||
"Allow Chat Deletion": "Tillat sletting av chatter",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Tillat ikke-lokale stemmer",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Avbryt",
|
||||
"Capabilities": "Muligheter",
|
||||
"Change Password": "Endre passord",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Bakgrunnsbilde for chat",
|
||||
"Chat Bubble UI": "Chat-boble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klikk her for å velge",
|
||||
"Click here to select a csv file.": "Klikk her for å velge en csv-fil.",
|
||||
"Click here to select a py file.": "Klikk her for å velge en py-fil.",
|
||||
"Click here to select documents.": "Klikk her for å velge dokumenter.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "klikk her.",
|
||||
"Click on the user role button to change a user's role.": "Klikk på brukerrolle-knappen for å endre en brukers rolle.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Skrivetilgang til utklippstavlen ble avslått. Kontroller nettleserinnstillingene for å gi nødvendig tillatelse.",
|
||||
"Clone": "Klon",
|
||||
"Close": "Lukk",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Koden ble formatert",
|
||||
"Collection": "Samling",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopier siste kodeblokk",
|
||||
"Copy last response": "Kopier siste svar",
|
||||
"Copy Link": "Kopier lenke",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopiering til utklippstavlen var vellykket!",
|
||||
"Create a model": "Lag en modell",
|
||||
"Create Account": "Opprett konto",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Standardmodell oppdatert",
|
||||
"Default Prompt Suggestions": "Standard promptforslag",
|
||||
"Default User Role": "Standard brukerrolle",
|
||||
"delete": "slett",
|
||||
"Delete": "Slett",
|
||||
"Delete a model": "Slett en modell",
|
||||
"Delete All Chats": "Slett alle chatter",
|
||||
"Delete chat": "Slett chat",
|
||||
"Delete Chat": "Slett chat",
|
||||
"Delete chat?": "Slett chat?",
|
||||
"Delete Doc": "Slett dokument",
|
||||
"Delete function?": "Slett funksjon?",
|
||||
"Delete prompt?": "Slett prompt?",
|
||||
"delete this link": "slett denne lenken",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentasjon",
|
||||
"Documents": "Dokumenter",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "har ingen tilkobling til eksterne tjenester, og dataene dine blir værende sikkert på din lokale tjener.",
|
||||
"Don't Allow": "Ikke tillat",
|
||||
"Don't have an account?": "Har du ikke en konto?",
|
||||
"don't install random functions from sources you don't trust.": "ikke installer tilfeldige funksjoner fra kilder du ikke stoler på.",
|
||||
"don't install random tools from sources you don't trust.": "ikke installer tilfeldige verktøy fra kilder du ikke stoler på.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Last ned",
|
||||
"Download canceled": "Nedlasting avbrutt",
|
||||
"Download Database": "Last ned database",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Slipp filer her for å legge dem til i samtalen",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "f.eks. '30s','10m'. Gyldige tidsenheter er 's', 'm', 't'.",
|
||||
"Edit": "Rediger",
|
||||
"Edit Doc": "Rediger dokument",
|
||||
"Edit Memory": "Rediger minne",
|
||||
"Edit User": "Rediger bruker",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Skriv inn ditt passord",
|
||||
"Enter Your Role": "Skriv inn din rolle",
|
||||
"Error": "Feil",
|
||||
"ERROR": "",
|
||||
"Experimental": "Eksperimentell",
|
||||
"Export": "Eksporter",
|
||||
"Export All Chats (All Users)": "Eksporter alle chatter (alle brukere)",
|
||||
"Export chat (.json)": "Eksporter chat (.json)",
|
||||
"Export Chats": "Eksporter chatter",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Eksporter dokumentkartlegging",
|
||||
"Export Functions": "Eksporter funksjoner",
|
||||
"Export LiteLLM config.yaml": "Eksporter LiteLLM config.yaml",
|
||||
"Export Models": "Eksporter modeller",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Bilder",
|
||||
"Import Chats": "Importer chatter",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importer dokumentkartlegging",
|
||||
"Import Functions": "Funksjoner",
|
||||
"Import Models": "Importer modeller",
|
||||
"Import Prompts": "Importer prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installer fra Github-URL",
|
||||
"Instant Auto-Send After Voice Transcription": "Direkte autosending etter stemmegjenkjenning",
|
||||
"Interface": "Grensesnitt",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Ugyldig tag",
|
||||
"January": "januar",
|
||||
"join our Discord for help.": "bli med i vår Discord for hjelp.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Mer",
|
||||
"Move to Top": "",
|
||||
"Name": "Navn",
|
||||
"Name Tag": "Navnetag",
|
||||
"Name your model": "Gi modellen din et navn",
|
||||
"New Chat": "Ny chat",
|
||||
"New Password": "Nytt passord",
|
||||
"No content found": "",
|
||||
"No content to speak": "Mangler innhold for tale",
|
||||
"No file selected": "Ingen fil valgt",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Ingen resultater funnet",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/nøkkel kreves.",
|
||||
"or": "eller",
|
||||
"Other": "Annet",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking-modell satt til \"{{reranking_model}}\"",
|
||||
"Reset": "Tilbakestill",
|
||||
"Reset Upload Directory": "Tilbakestill opplastingskatalog",
|
||||
"Reset Vector Storage": "Tilbakestill vektorlagring",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Respons auto-kopi til utklippstavle",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Respons-varsler kan ikke aktiveres da nettstedsrettighetene er nektet. Vennligst se nettleserinnstillingene dine for å gi nødvendig tilgang.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Søk en modell",
|
||||
"Search Chats": "Søk chatter",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Søk dokumenter",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Søk funksjoner",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Søk modeller",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Feil ved talegjenkjenning: {{error}}",
|
||||
"Speech-to-Text Engine": "Tale-til-tekst-motor",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stoppsekvens",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT-modell",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Mal",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Tekstfullføring",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Tekst-til-tale-motor",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Takk for tilbakemeldingen!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Grundig forklaring",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Tika Server-URL kreves.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tips: Oppdater flere variabelplasser etter hverandre ved å trykke på tab-tasten i chatinputen etter hver erstatning.",
|
||||
"Title": "Tittel",
|
||||
"Title (e.g. Tell me a fun fact)": "Tittel (f.eks. Fortell meg et morsomt faktum)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "I dag",
|
||||
"Toggle settings": "Veksle innstillinger",
|
||||
"Toggle sidebar": "Veksle sidefelt",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokens å beholde ved kontekstoppdatering (num_keep)",
|
||||
"Tool created successfully": "Verktøy opprettet",
|
||||
"Tool deleted successfully": "Verktøy slettet",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Opplastingsfremdrift",
|
||||
"URL Mode": "URL-modus",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Bruk '#' i prompt-input for å laste og velge dokumentene dine.",
|
||||
"Use Gravatar": "Bruk Gravatar",
|
||||
"Use Initials": "Bruk initialer",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Voeg een aangepaste prompt toe",
|
||||
"Add Docs": "Voeg Docs toe",
|
||||
"Add Files": "Voege Bestanden toe",
|
||||
"Add Memory": "Voeg Geheugen toe",
|
||||
"Add message": "Voeg bericht toe",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Geavanceerde Parameters",
|
||||
"Advanced Params": "Geavanceerde parameters",
|
||||
"all": "alle",
|
||||
"All Documents": "Alle Documenten",
|
||||
"All Users": "Alle Gebruikers",
|
||||
"Allow": "Toestaan",
|
||||
"Allow Chat Deletion": "Sta Chat Verwijdering toe",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Annuleren",
|
||||
"Capabilities": "Mogelijkheden",
|
||||
"Change Password": "Wijzig Wachtwoord",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Chat Bubble UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klik hier om te selecteren",
|
||||
"Click here to select a csv file.": "Klik hier om een csv file te selecteren.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Klik hier om documenten te selecteren",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "klik hier.",
|
||||
"Click on the user role button to change a user's role.": "Klik op de gebruikersrol knop om de rol van een gebruiker te wijzigen.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Kloon",
|
||||
"Close": "Sluiten",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Verzameling",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopieer laatste code blok",
|
||||
"Copy last response": "Kopieer laatste antwoord",
|
||||
"Copy Link": "Kopieer Link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopiëren naar klembord was succesvol!",
|
||||
"Create a model": "Een model maken",
|
||||
"Create Account": "Maak Account",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Standaard model bijgewerkt",
|
||||
"Default Prompt Suggestions": "Standaard Prompt Suggesties",
|
||||
"Default User Role": "Standaard Gebruikersrol",
|
||||
"delete": "verwijderen",
|
||||
"Delete": "Verwijderen",
|
||||
"Delete a model": "Verwijder een model",
|
||||
"Delete All Chats": "Verwijder alle chats",
|
||||
"Delete chat": "Verwijder chat",
|
||||
"Delete Chat": "Verwijder Chat",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "verwijder deze link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Documenten",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "maakt geen externe verbindingen, en je gegevens blijven veilig op je lokaal gehoste server.",
|
||||
"Don't Allow": "Niet Toestaan",
|
||||
"Don't have an account?": "Heb je geen account?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Download",
|
||||
"Download canceled": "Download geannuleerd",
|
||||
"Download Database": "Download Database",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Sleep bestanden hier om toe te voegen aan het gesprek",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "bijv. '30s', '10m'. Geldige tijdseenheden zijn 's', 'm', 'h'.",
|
||||
"Edit": "Wijzig",
|
||||
"Edit Doc": "Wijzig Doc",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Wijzig Gebruiker",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Voer je Wachtwoord in",
|
||||
"Enter Your Role": "Voer je Rol in",
|
||||
"Error": "Fout",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimenteel",
|
||||
"Export": "Exporteren",
|
||||
"Export All Chats (All Users)": "Exporteer Alle Chats (Alle Gebruikers)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Exporteer Chats",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exporteer Documenten Mapping",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Modellen exporteren",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Afbeeldingen",
|
||||
"Import Chats": "Importeer Chats",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importeer Documenten Mapping",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Modellen importeren",
|
||||
"Import Prompts": "Importeer Prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installeren vanaf Github-URL",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Interface",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Ongeldige Tag",
|
||||
"January": "Januari",
|
||||
"join our Discord for help.": "join onze Discord voor hulp.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Meer",
|
||||
"Move to Top": "",
|
||||
"Name": "Naam",
|
||||
"Name Tag": "Naam Tag",
|
||||
"Name your model": "Geef uw model een naam",
|
||||
"New Chat": "Nieuwe Chat",
|
||||
"New Password": "Nieuw Wachtwoord",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Geen resultaten gevonden",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Sleutel vereist.",
|
||||
"or": "of",
|
||||
"Other": "Andere",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model ingesteld op \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Reset Vector Opslag",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Antwoord Automatisch Kopiëren naar Klembord",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Zoek een model",
|
||||
"Search Chats": "Chats zoeken",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Zoek Documenten",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Modellen zoeken",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
|
||||
"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stop Sequentie",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Template",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Tekst Aanvulling",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Tekst-naar-Spraak Engine",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Bedankt voor uw feedback!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Gevorderde uitleg",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tip: Werk meerdere variabele slots achtereenvolgens bij door op de tab-toets te drukken in de chat input na elke vervanging.",
|
||||
"Title": "Titel",
|
||||
"Title (e.g. Tell me a fun fact)": "Titel (bv. Vertel me een leuke gebeurtenis)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Vandaag",
|
||||
"Toggle settings": "Wissel instellingen",
|
||||
"Toggle sidebar": "Wissel sidebar",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Upload Voortgang",
|
||||
"URL Mode": "URL Modus",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Gebruik '#' in de prompt input om je documenten te laden en te selecteren.",
|
||||
"Use Gravatar": "Gebruik Gravatar",
|
||||
"Use Initials": "Gebruik Initials",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "ਕਸਟਮ ਪ੍ਰੰਪਟ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
"Add Docs": "ਡਾਕੂਮੈਂਟ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
"Add Files": "ਫਾਈਲਾਂ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
"Add Memory": "ਮਿਹਾਨ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
"Add message": "ਸੁਨੇਹਾ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "ਉੱਚ ਸਤਰ ਦੇ ਪੈਰਾਮੀਟਰ",
|
||||
"Advanced Params": "ਐਡਵਾਂਸਡ ਪਰਮਜ਼",
|
||||
"all": "ਸਾਰੇ",
|
||||
"All Documents": "ਸਾਰੇ ਡਾਕੂਮੈਂਟ",
|
||||
"All Users": "ਸਾਰੇ ਉਪਭੋਗਤਾ",
|
||||
"Allow": "ਅਨੁਮਤੀ",
|
||||
"Allow Chat Deletion": "ਗੱਲਬਾਤ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "ਰੱਦ ਕਰੋ",
|
||||
"Capabilities": "ਸਮਰੱਥਾਵਾਂ",
|
||||
"Change Password": "ਪਾਸਵਰਡ ਬਦਲੋ",
|
||||
"Character": "",
|
||||
"Chat": "ਗੱਲਬਾਤ",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "ਗੱਲਬਾਤ ਬਬਲ UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "ਚੁਣਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ",
|
||||
"Click here to select a csv file.": "CSV ਫਾਈਲ ਚੁਣਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ।",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "ਡਾਕੂਮੈਂਟ ਚੁਣਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ।",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ।",
|
||||
"Click on the user role button to change a user's role.": "ਉਪਭੋਗਤਾ ਦੀ ਭੂਮਿਕਾ ਬਦਲਣ ਲਈ ਉਪਭੋਗਤਾ ਭੂਮਿਕਾ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "ਕਲੋਨ",
|
||||
"Close": "ਬੰਦ ਕਰੋ",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "ਸੰਗ੍ਰਹਿ",
|
||||
"ComfyUI": "ਕੰਫੀਯੂਆਈ",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "ਆਖਰੀ ਕੋਡ ਬਲਾਕ ਨੂੰ ਕਾਪੀ ਕਰੋ",
|
||||
"Copy last response": "ਆਖਰੀ ਜਵਾਬ ਨੂੰ ਕਾਪੀ ਕਰੋ",
|
||||
"Copy Link": "ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰਨਾ ਸਫਲ ਰਿਹਾ!",
|
||||
"Create a model": "ਇੱਕ ਮਾਡਲ ਬਣਾਓ",
|
||||
"Create Account": "ਖਾਤਾ ਬਣਾਓ",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "ਮੂਲ ਮਾਡਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Default Prompt Suggestions": "ਮੂਲ ਪ੍ਰੰਪਟ ਸੁਝਾਅ",
|
||||
"Default User Role": "ਮੂਲ ਉਪਭੋਗਤਾ ਭੂਮਿਕਾ",
|
||||
"delete": "ਮਿਟਾਓ",
|
||||
"Delete": "ਮਿਟਾਓ",
|
||||
"Delete a model": "ਇੱਕ ਮਾਡਲ ਮਿਟਾਓ",
|
||||
"Delete All Chats": "ਸਾਰੀਆਂ ਚੈਟਾਂ ਨੂੰ ਮਿਟਾਓ",
|
||||
"Delete chat": "ਗੱਲਬਾਤ ਮਿਟਾਓ",
|
||||
"Delete Chat": "ਗੱਲਬਾਤ ਮਿਟਾਓ",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "ਇਸ ਲਿੰਕ ਨੂੰ ਮਿਟਾਓ",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "ਡਾਕੂਮੈਂਟ",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ਕੋਈ ਬਾਹਰੀ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਬਣਾਉਂਦਾ, ਅਤੇ ਤੁਹਾਡਾ ਡਾਟਾ ਤੁਹਾਡੇ ਸਥਾਨਕ ਸਰਵਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਰਹਿੰਦਾ ਹੈ।",
|
||||
"Don't Allow": "ਆਗਿਆ ਨਾ ਦਿਓ",
|
||||
"Don't have an account?": "ਖਾਤਾ ਨਹੀਂ ਹੈ?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "ਡਾਊਨਲੋਡ",
|
||||
"Download canceled": "ਡਾਊਨਲੋਡ ਰੱਦ ਕੀਤਾ ਗਿਆ",
|
||||
"Download Database": "ਡਾਟਾਬੇਸ ਡਾਊਨਲੋਡ ਕਰੋ",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "ਗੱਲਬਾਤ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕੋਈ ਵੀ ਫਾਈਲ ਇੱਥੇ ਛੱਡੋ",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ਉਦਾਹਰਣ ਲਈ '30ਸ','10ਮਿ'. ਸਹੀ ਸਮਾਂ ਇਕਾਈਆਂ ਹਨ 'ਸ', 'ਮ', 'ਘੰ'.",
|
||||
"Edit": "ਸੰਪਾਦਨ ਕਰੋ",
|
||||
"Edit Doc": "ਡਾਕੂਮੈਂਟ ਸੰਪਾਦਨ ਕਰੋ",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "ਉਪਭੋਗਤਾ ਸੰਪਾਦਨ ਕਰੋ",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "ਆਪਣਾ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ",
|
||||
"Enter Your Role": "ਆਪਣੀ ਭੂਮਿਕਾ ਦਰਜ ਕਰੋ",
|
||||
"Error": "ਗਲਤੀ",
|
||||
"ERROR": "",
|
||||
"Experimental": "ਪਰਮਾਣੂਕ੍ਰਿਤ",
|
||||
"Export": "ਨਿਰਯਾਤ",
|
||||
"Export All Chats (All Users)": "ਸਾਰੀਆਂ ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ (ਸਾਰੇ ਉਪਭੋਗਤਾ)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "ਗੱਲਾਂ ਨਿਰਯਾਤ ਕਰੋ",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "ਡਾਕੂਮੈਂਟ ਮੈਪਿੰਗ ਨਿਰਯਾਤ ਕਰੋ",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "ਨਿਰਯਾਤ ਮਾਡਲ",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "ਚਿੱਤਰ",
|
||||
"Import Chats": "ਗੱਲਾਂ ਆਯਾਤ ਕਰੋ",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "ਡਾਕੂਮੈਂਟ ਮੈਪਿੰਗ ਆਯਾਤ ਕਰੋ",
|
||||
"Import Functions": "",
|
||||
"Import Models": "ਮਾਡਲ ਆਯਾਤ ਕਰੋ",
|
||||
"Import Prompts": "ਪ੍ਰੰਪਟ ਆਯਾਤ ਕਰੋ",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Github URL ਤੋਂ ਇੰਸਟਾਲ ਕਰੋ",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "ਇੰਟਰਫੇਸ",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "ਗਲਤ ਟੈਗ",
|
||||
"January": "ਜਨਵਰੀ",
|
||||
"join our Discord for help.": "ਮਦਦ ਲਈ ਸਾਡੇ ਡਿਸਕੋਰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ।",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "ਹੋਰ",
|
||||
"Move to Top": "",
|
||||
"Name": "ਨਾਮ",
|
||||
"Name Tag": "ਨਾਮ ਟੈਗ",
|
||||
"Name your model": "ਆਪਣੇ ਮਾਡਲ ਦਾ ਨਾਮ ਦੱਸੋ",
|
||||
"New Chat": "ਨਵੀਂ ਗੱਲਬਾਤ",
|
||||
"New Password": "ਨਵਾਂ ਪਾਸਵਰਡ",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "ਓਪਨਏਆਈ URL/ਕੁੰਜੀ ਦੀ ਲੋੜ ਹੈ।",
|
||||
"or": "ਜਾਂ",
|
||||
"Other": "ਹੋਰ",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "ਮਾਡਲ ਮੁੜ ਰੈਂਕਿੰਗ ਨੂੰ \"{{reranking_model}}\" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "ਵੈਕਟਰ ਸਟੋਰੇਜ ਨੂੰ ਰੀਸੈਟ ਕਰੋ",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "ਜਵਾਬ ਆਟੋ ਕਾਪੀ ਕਲਿੱਪਬੋਰਡ 'ਤੇ",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "ਇੱਕ ਮਾਡਲ ਖੋਜੋ",
|
||||
"Search Chats": "ਖੋਜ ਚੈਟਾਂ",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "ਡਾਕੂਮੈਂਟ ਖੋਜੋ",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "ਖੋਜ ਮਾਡਲ",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "ਬੋਲ ਪਛਾਣ ਗਲਤੀ: {{error}}",
|
||||
"Speech-to-Text Engine": "ਬੋਲ-ਤੋਂ-ਪਾਠ ਇੰਜਣ",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "ਰੋਕੋ ਕ੍ਰਮ",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "ਟੈਮਪਲੇਟ",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "ਪਾਠ ਪੂਰਨਤਾ",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "ਪਾਠ-ਤੋਂ-ਬੋਲ ਇੰਜਣ",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "ਤੁਹਾਡੇ ਫੀਡਬੈਕ ਲਈ ਧੰਨਵਾਦ!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "ਵਿਸਥਾਰ ਨਾਲ ਵਿਆਖਿਆ",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "ਸਲਾਹ: ਹਰ ਬਦਲਾਅ ਦੇ ਬਾਅਦ ਗੱਲਬਾਤ ਇਨਪੁਟ ਵਿੱਚ ਟੈਬ ਕੀ ਦਬਾ ਕੇ ਲਗਾਤਾਰ ਕਈ ਵੈਰੀਏਬਲ ਸਲਾਟਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ।",
|
||||
"Title": "ਸਿਰਲੇਖ",
|
||||
"Title (e.g. Tell me a fun fact)": "ਸਿਰਲੇਖ (ਉਦਾਹਰਣ ਲਈ ਮੈਨੂੰ ਇੱਕ ਮਜ਼ੇਦਾਰ ਤੱਥ ਦੱਸੋ)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "ਅੱਜ",
|
||||
"Toggle settings": "ਸੈਟਿੰਗਾਂ ਟੌਗਲ ਕਰੋ",
|
||||
"Toggle sidebar": "ਸਾਈਡਬਾਰ ਟੌਗਲ ਕਰੋ",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "ਅਪਲੋਡ ਪ੍ਰਗਤੀ",
|
||||
"URL Mode": "URL ਮੋਡ",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "ਆਪਣੇ ਡਾਕੂਮੈਂਟ ਲੋਡ ਅਤੇ ਚੁਣਨ ਲਈ ਪ੍ਰੰਪਟ ਇਨਪੁਟ ਵਿੱਚ '#' ਵਰਤੋ।",
|
||||
"Use Gravatar": "ਗ੍ਰਾਵਾਟਾਰ ਵਰਤੋ",
|
||||
"Use Initials": "ਸ਼ੁਰੂਆਤੀ ਅੱਖਰ ਵਰਤੋ",
|
||||
"use_mlock (Ollama)": "use_mlock (ਓਲਾਮਾ)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Dodaj własne polecenie",
|
||||
"Add Docs": "Dodaj dokumenty",
|
||||
"Add Files": "Dodaj pliki",
|
||||
"Add Memory": "Dodaj pamięć",
|
||||
"Add message": "Dodaj wiadomość",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Zaawansowane parametry",
|
||||
"Advanced Params": "Zaawansowane parametry",
|
||||
"all": "wszyscy",
|
||||
"All Documents": "Wszystkie dokumenty",
|
||||
"All Users": "Wszyscy użytkownicy",
|
||||
"Allow": "Pozwól",
|
||||
"Allow Chat Deletion": "Pozwól na usuwanie czatu",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Anuluj",
|
||||
"Capabilities": "Możliwości",
|
||||
"Change Password": "Zmień hasło",
|
||||
"Character": "",
|
||||
"Chat": "Czat",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Bąbelki czatu",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Kliknij tutaj, aby wybrać",
|
||||
"Click here to select a csv file.": "Kliknij tutaj, żeby wybrać plik CSV",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Kliknij tutaj, aby wybrać dokumenty.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "kliknij tutaj.",
|
||||
"Click on the user role button to change a user's role.": "Kliknij przycisk roli użytkownika, aby zmienić rolę użytkownika.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Klon",
|
||||
"Close": "Zamknij",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Kolekcja",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Skopiuj ostatni blok kodu",
|
||||
"Copy last response": "Skopiuj ostatnią odpowiedź",
|
||||
"Copy Link": "Kopiuj link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopiowanie do schowka zakończone powodzeniem!",
|
||||
"Create a model": "Tworzenie modelu",
|
||||
"Create Account": "Utwórz konto",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Domyślny model zaktualizowany",
|
||||
"Default Prompt Suggestions": "Domyślne sugestie promptów",
|
||||
"Default User Role": "Domyślna rola użytkownika",
|
||||
"delete": "usuń",
|
||||
"Delete": "Usuń",
|
||||
"Delete a model": "Usuń model",
|
||||
"Delete All Chats": "Usuń wszystkie czaty",
|
||||
"Delete chat": "Usuń czat",
|
||||
"Delete Chat": "Usuń czat",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "usuń ten link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Dokumenty",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "nie nawiązuje żadnych zewnętrznych połączeń, a Twoje dane pozostają bezpiecznie na Twoim lokalnie hostowanym serwerze.",
|
||||
"Don't Allow": "Nie zezwalaj",
|
||||
"Don't have an account?": "Nie masz konta?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Pobieranie",
|
||||
"Download canceled": "Pobieranie przerwane",
|
||||
"Download Database": "Pobierz bazę danych",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Upuść pliki tutaj, aby dodać do rozmowy",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "np. '30s', '10m'. Poprawne jednostki czasu to 's', 'm', 'h'.",
|
||||
"Edit": "Edytuj",
|
||||
"Edit Doc": "Edytuj dokument",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Edytuj użytkownika",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Wprowadź swoje hasło",
|
||||
"Enter Your Role": "Wprowadź swoją rolę",
|
||||
"Error": "Błąd",
|
||||
"ERROR": "",
|
||||
"Experimental": "Eksperymentalne",
|
||||
"Export": "Eksport",
|
||||
"Export All Chats (All Users)": "Eksportuj wszystkie czaty (wszyscy użytkownicy)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Eksportuj czaty",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Eksportuj mapowanie dokumentów",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Eksportuj modele",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Obrazy",
|
||||
"Import Chats": "Importuj czaty",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importuj mapowanie dokumentów",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Importowanie modeli",
|
||||
"Import Prompts": "Importuj prompty",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instalowanie z adresu URL usługi Github",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Interfejs",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Nieprawidłowy tag",
|
||||
"January": "Styczeń",
|
||||
"join our Discord for help.": "Dołącz do naszego Discorda po pomoc.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Więcej",
|
||||
"Move to Top": "",
|
||||
"Name": "Nazwa",
|
||||
"Name Tag": "Etykieta nazwy",
|
||||
"Name your model": "Nazwij swój model",
|
||||
"New Chat": "Nowy czat",
|
||||
"New Password": "Nowe hasło",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Nie znaleziono rezultatów",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Klucz OpenAI jest wymagany.",
|
||||
"or": "lub",
|
||||
"Other": "Inne",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Zmiana rankingu modelu ustawiona na \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Resetuj przechowywanie wektorów",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Automatyczne kopiowanie odpowiedzi do schowka",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Szukaj modelu",
|
||||
"Search Chats": "Szukaj w czatach",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Szukaj dokumentów",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Szukaj modeli",
|
||||
|
|
@ -646,6 +644,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Błąd rozpoznawania mowy: {{error}}",
|
||||
"Speech-to-Text Engine": "Silnik mowy na tekst",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Zatrzymaj sekwencję",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -668,6 +667,7 @@
|
|||
"Template": "Szablon",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Uzupełnienie tekstu",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Silnik tekstu na mowę",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Dzięki za informację zwrotną!",
|
||||
|
|
@ -686,6 +686,7 @@
|
|||
"Thorough explanation": "Dokładne wyjaśnienie",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Porada: Aktualizuj wiele zmiennych kolejno, naciskając klawisz tabulatora w polu wprowadzania czatu po każdej zmianie.",
|
||||
"Title": "Tytuł",
|
||||
"Title (e.g. Tell me a fun fact)": "Tytuł (np. Powiedz mi jakiś zabawny fakt)",
|
||||
|
|
@ -703,6 +704,7 @@
|
|||
"Today": "Dzisiaj",
|
||||
"Toggle settings": "Przełącz ustawienia",
|
||||
"Toggle sidebar": "Przełącz panel boczny",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -741,7 +743,6 @@
|
|||
"Upload Progress": "Postęp przesyłania",
|
||||
"URL Mode": "Tryb adresu URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Użyj '#' w polu wprowadzania polecenia, aby załadować i wybrać swoje dokumenty.",
|
||||
"Use Gravatar": "Użyj Gravatara",
|
||||
"Use Initials": "Użyj inicjałów",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Adicionar prompt personalizado",
|
||||
"Add Docs": "Adicionar Documentos",
|
||||
"Add Files": "Adicionar Arquivos",
|
||||
"Add Memory": "Adicionar Memória",
|
||||
"Add message": "Adicionar mensagem",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Os admins têm acesso a todas as ferramentas o tempo todo; os usuários precisam de ferramentas atribuídas por modelo no workspace.",
|
||||
"Advanced Parameters": "Parâmetros Avançados",
|
||||
"Advanced Params": "Parâmetros Avançados",
|
||||
"all": "todos",
|
||||
"All Documents": "Todos os Documentos",
|
||||
"All Users": "Todos os Usuários",
|
||||
"Allow": "Permitir",
|
||||
"Allow Chat Deletion": "Permitir Exclusão de Chats",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Permitir vozes não locais",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cancelar",
|
||||
"Capabilities": "Capacidades",
|
||||
"Change Password": "Mudar Senha",
|
||||
"Character": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Imagem de Fundo do Chat",
|
||||
"Chat Bubble UI": "Interface de Bolha de Chat",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Clique aqui para enviar",
|
||||
"Click here to select a csv file.": "Clique aqui para enviar um arquivo csv.",
|
||||
"Click here to select a py file.": "Clique aqui para enviar um arquivo py.",
|
||||
"Click here to select documents.": "Clique aqui para enviar documentos.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "clique aqui.",
|
||||
"Click on the user role button to change a user's role.": "Clique no botão de função do usuário para alterar a função de um usuário.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permissão de escrita na área de transferência negada. Verifique as configurações do seu navegador para conceder o acesso necessário.",
|
||||
"Clone": "Clonar",
|
||||
"Close": "Fechar",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Código formatado com sucesso",
|
||||
"Collection": "Coleção",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copiar último bloco de código",
|
||||
"Copy last response": "Copiar última resposta",
|
||||
"Copy Link": "Copiar Link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Cópia para a área de transferência bem-sucedida!",
|
||||
"Create a model": "Criar um modelo",
|
||||
"Create Account": "Criar Conta",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modelo padrão atualizado",
|
||||
"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
|
||||
"Default User Role": "Função de Usuário Padrão",
|
||||
"delete": "deletar",
|
||||
"Delete": "Deletar",
|
||||
"Delete a model": "Deletar um modelo",
|
||||
"Delete All Chats": "Deletar Todos os Chats",
|
||||
"Delete chat": "Deletar chat",
|
||||
"Delete Chat": "Deletar Chat",
|
||||
"Delete chat?": "Deletar chat?",
|
||||
"Delete Doc": "Deletar Documento",
|
||||
"Delete function?": "Deletar função?",
|
||||
"Delete prompt?": "Deletar prompt?",
|
||||
"delete this link": "deletar este link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentação",
|
||||
"Documents": "Documentos",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "não faz nenhuma conexão externa, e seus dados permanecem seguros no seu servidor local.",
|
||||
"Don't Allow": "Não Permitir",
|
||||
"Don't have an account?": "Não tem uma conta?",
|
||||
"don't install random functions from sources you don't trust.": "não instale funções aleatórias de fontes que você não confia.",
|
||||
"don't install random tools from sources you don't trust.": "não instale ferramentas aleatórias de fontes que você não confia.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Baixar",
|
||||
"Download canceled": "Download cancelado",
|
||||
"Download Database": "Baixar Banco de Dados",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Solte qualquer arquivo aqui para adicionar à conversa",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
|
||||
"Edit": "Editar",
|
||||
"Edit Doc": "Editar Documento",
|
||||
"Edit Memory": "Editar Memória",
|
||||
"Edit User": "Editar Usuário",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Digite Sua Senha",
|
||||
"Enter Your Role": "Digite Sua Função",
|
||||
"Error": "Erro",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimental",
|
||||
"Export": "Exportar",
|
||||
"Export All Chats (All Users)": "Exportar Todos os Chats (Todos os Usuários)",
|
||||
"Export chat (.json)": "Exportar chat (.json)",
|
||||
"Export Chats": "Exportar Chats",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportar Mapeamento de Documentos",
|
||||
"Export Functions": "Exportar Funções",
|
||||
"Export LiteLLM config.yaml": "Exportar config.yaml do LiteLLM",
|
||||
"Export Models": "Exportar Modelos",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imagens",
|
||||
"Import Chats": "Importar Chats",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importar Mapeamento de Documentos",
|
||||
"Import Functions": "Importar Funções",
|
||||
"Import Models": "Importar Modelos",
|
||||
"Import Prompts": "Importar Prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instalar da URL do Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Envio Automático Instantâneo Após Transcrição de Voz",
|
||||
"Interface": "Interface",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Tag Inválida",
|
||||
"January": "Janeiro",
|
||||
"join our Discord for help.": "junte-se ao nosso Discord para ajuda.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Mais",
|
||||
"Move to Top": "",
|
||||
"Name": "Nome",
|
||||
"Name Tag": "Nome da Tag",
|
||||
"Name your model": "Nomeie seu modelo",
|
||||
"New Chat": "Novo Chat",
|
||||
"New Password": "Nova Senha",
|
||||
"No content found": "",
|
||||
"No content to speak": "Sem conteúdo para falar",
|
||||
"No file selected": "Nenhum arquivo selecionado",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Nenhum resultado encontrado",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Chave OpenAI necessária.",
|
||||
"or": "ou",
|
||||
"Other": "Outro",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reclassificação definido como \"{{reranking_model}}\"",
|
||||
"Reset": "Redefinir",
|
||||
"Reset Upload Directory": "Redefinir Diretório de Upload",
|
||||
"Reset Vector Storage": "Redefinir Armazenamento de Vetores",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notificações de resposta não podem ser ativadas pois as permissões do site foram negadas. Por favor, visite as configurações do seu navegador para conceder o acesso necessário.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Pesquisar um modelo",
|
||||
"Search Chats": "Pesquisar Chats",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Pesquisar Documentos",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Pesquisar Funções",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Pesquisar Modelos",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
|
||||
"Speech-to-Text Engine": "Motor de Transcrição de Fala",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Sequência de Parada",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Modelo STT",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Modelo",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Conclusão de Texto",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motor de Texto para Fala",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Obrigado pelo seu feedback!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explicação detalhada",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "URL do servidor Tika necessária.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Dica: Atualize vários slots de variáveis consecutivamente pressionando a tecla Tab na entrada de chat após cada substituição.",
|
||||
"Title": "Título",
|
||||
"Title (e.g. Tell me a fun fact)": "Título (por exemplo, Conte-me um fato divertido)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Hoje",
|
||||
"Toggle settings": "Alternar configurações",
|
||||
"Toggle sidebar": "Alternar barra lateral",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokens a Manter na Atualização do Contexto (num_keep)",
|
||||
"Tool created successfully": "Ferramenta criada com sucesso",
|
||||
"Tool deleted successfully": "Ferramenta excluída com sucesso",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progresso do Upload",
|
||||
"URL Mode": "Modo URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Use '#' na entrada de prompt para carregar e selecionar seus documentos.",
|
||||
"Use Gravatar": "Usar Gravatar",
|
||||
"Use Initials": "Usar Iniciais",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Adicionar um prompt curto",
|
||||
"Add Docs": "Adicionar Documentos",
|
||||
"Add Files": "Adicionar Ficheiros",
|
||||
"Add Memory": "Adicionar memória",
|
||||
"Add message": "Adicionar mensagem",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Parâmetros Avançados",
|
||||
"Advanced Params": "Params Avançados",
|
||||
"all": "todos",
|
||||
"All Documents": "Todos os Documentos",
|
||||
"All Users": "Todos os utilizadores",
|
||||
"Allow": "Permitir",
|
||||
"Allow Chat Deletion": "Permitir Exclusão de Conversa",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Permitir vozes não locais",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Cancelar",
|
||||
"Capabilities": "Capacidades",
|
||||
"Change Password": "Alterar Senha",
|
||||
"Character": "",
|
||||
"Chat": "Conversa",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Bolha UI da Conversa",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Clique aqui para selecionar",
|
||||
"Click here to select a csv file.": "Clique aqui para selecionar um ficheiro csv.",
|
||||
"Click here to select a py file.": "Clique aqui para selecionar um ficheiro py",
|
||||
"Click here to select documents.": "Clique aqui para selecionar documentos.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "clique aqui.",
|
||||
"Click on the user role button to change a user's role.": "Clique no botão de função do utilizador para alterar a função de um utilizador.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Clonar",
|
||||
"Close": "Fechar",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Coleção",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copiar último bloco de código",
|
||||
"Copy last response": "Copiar última resposta",
|
||||
"Copy Link": "Copiar link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Cópia para a área de transferência bem-sucedida!",
|
||||
"Create a model": "Criar um modelo",
|
||||
"Create Account": "Criar Conta",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modelo padrão atualizado",
|
||||
"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
|
||||
"Default User Role": "Função de Utilizador Padrão",
|
||||
"delete": "apagar",
|
||||
"Delete": "Apagar",
|
||||
"Delete a model": "Apagar um modelo",
|
||||
"Delete All Chats": "Apagar todas as conversas",
|
||||
"Delete chat": "Apagar conversa",
|
||||
"Delete Chat": "Apagar Conversa",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "apagar este link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentação",
|
||||
"Documents": "Documentos",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "não faz conexões externas e os seus dados permanecem seguros no seu servidor alojado localmente.",
|
||||
"Don't Allow": "Não Permitir",
|
||||
"Don't have an account?": "Não tem uma conta?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Descarregar",
|
||||
"Download canceled": "Download cancelado",
|
||||
"Download Database": "Descarregar Base de Dados",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Largue os ficheiros aqui para adicionar à conversa",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
|
||||
"Edit": "Editar",
|
||||
"Edit Doc": "Editar Documento",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Editar Utilizador",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Escreva a sua Senha",
|
||||
"Enter Your Role": "Escreva a sua Função",
|
||||
"Error": "Erro",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimental",
|
||||
"Export": "Exportar",
|
||||
"Export All Chats (All Users)": "Exportar Todas as Conversas (Todos os Utilizadores)",
|
||||
"Export chat (.json)": "Exportar Conversa (.json)",
|
||||
"Export Chats": "Exportar Conversas",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportar Mapeamento de Documentos",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Modelos de Exportação",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imagens",
|
||||
"Import Chats": "Importar Conversas",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importar Mapeamento de Documentos",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Importar Modelos",
|
||||
"Import Prompts": "Importar Prompts",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instalar a partir do URL do Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Enviar automaticamente depois da transcrição da voz",
|
||||
"Interface": "Interface",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Etiqueta Inválida",
|
||||
"January": "Janeiro",
|
||||
"join our Discord for help.": "junte-se ao nosso Discord para obter ajuda.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Mais",
|
||||
"Move to Top": "",
|
||||
"Name": "Nome",
|
||||
"Name Tag": "Etiqueta de Nome",
|
||||
"Name your model": "Atribua um nome ao seu modelo",
|
||||
"New Chat": "Nova Conversa",
|
||||
"New Password": "Nova Senha",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Não foram encontrados resultados",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "URL/Chave da API OpenAI é necessária.",
|
||||
"or": "ou",
|
||||
"Other": "Outro",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reranking definido como \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "Limpar Pasta de Carregamento",
|
||||
"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Pesquisar um modelo",
|
||||
"Search Chats": "Pesquisar Conversas",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Pesquisar Documentos",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Modelos de pesquisa",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
|
||||
"Speech-to-Text Engine": "Motor de Fala para Texto",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Sequência de Paragem",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Modelo STT",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Modelo",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Conclusão de Texto",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motor de Texto para Fala",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Obrigado pelo seu feedback!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explicação Minuciosa",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Dica: Atualize vários slots de variáveis consecutivamente pressionando a tecla Tab na entrada da conversa após cada substituição.",
|
||||
"Title": "Título",
|
||||
"Title (e.g. Tell me a fun fact)": "Título (ex.: Diz-me um facto divertido)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Hoje",
|
||||
"Toggle settings": "Alternar configurações",
|
||||
"Toggle sidebar": "Alternar barra lateral",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progresso do Carregamento",
|
||||
"URL Mode": "Modo de URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Use '#' na entrada do prompt para carregar e selecionar os seus documentos.",
|
||||
"Use Gravatar": "Usar Gravatar",
|
||||
"Use Initials": "Usar Iniciais",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Adaugă prompt personalizat",
|
||||
"Add Docs": "Adaugă Documente",
|
||||
"Add Files": "Adaugă Fișiere",
|
||||
"Add Memory": "Adaugă Memorie",
|
||||
"Add message": "Adaugă mesaj",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratorii au acces la toate instrumentele în orice moment; utilizatorii au nevoie de instrumente asignate pe model în spațiul de lucru.",
|
||||
"Advanced Parameters": "Parametri Avansați",
|
||||
"Advanced Params": "Parametri Avansați",
|
||||
"all": "toate",
|
||||
"All Documents": "Toate Documentele",
|
||||
"All Users": "Toți Utilizatorii",
|
||||
"Allow": "Permite",
|
||||
"Allow Chat Deletion": "Permite Ștergerea Conversațiilor",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Permite voci non-locale",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Anulează",
|
||||
"Capabilities": "Capabilități",
|
||||
"Change Password": "Schimbă Parola",
|
||||
"Character": "",
|
||||
"Chat": "Conversație",
|
||||
"Chat Background Image": "Imagine de Fundal pentru Conversație",
|
||||
"Chat Bubble UI": "Interfață cu Bule de Conversație",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Apasă aici pentru a selecta",
|
||||
"Click here to select a csv file.": "Apasă aici pentru a selecta un fișier csv.",
|
||||
"Click here to select a py file.": "Apasă aici pentru a selecta un fișier py.",
|
||||
"Click here to select documents.": "Apasă aici pentru a selecta documente.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "apasă aici.",
|
||||
"Click on the user role button to change a user's role.": "Apasă pe butonul rolului utilizatorului pentru a schimba rolul unui utilizator.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Permisiunea de scriere în clipboard a fost refuzată. Vă rugăm să verificați setările browserului pentru a acorda accesul necesar.",
|
||||
"Clone": "Clonează",
|
||||
"Close": "Închide",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Cod formatat cu succes",
|
||||
"Collection": "Colecție",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Copiază ultimul bloc de cod",
|
||||
"Copy last response": "Copiază ultimul răspuns",
|
||||
"Copy Link": "Copiază Link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Copierea în clipboard a fost realizată cu succes!",
|
||||
"Create a model": "Creează un model",
|
||||
"Create Account": "Creează Cont",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Modelul implicit a fost actualizat",
|
||||
"Default Prompt Suggestions": "Sugestii de Prompt Implicite",
|
||||
"Default User Role": "Rolul Implicit al Utilizatorului",
|
||||
"delete": "șterge",
|
||||
"Delete": "Șterge",
|
||||
"Delete a model": "Șterge un model",
|
||||
"Delete All Chats": "Șterge Toate Conversațiile",
|
||||
"Delete chat": "Șterge conversația",
|
||||
"Delete Chat": "Șterge Conversația",
|
||||
"Delete chat?": "Șterge conversația?",
|
||||
"Delete Doc": "Șterge document",
|
||||
"Delete function?": "Șterge funcția?",
|
||||
"Delete prompt?": "Șterge promptul?",
|
||||
"delete this link": "șterge acest link",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Documentație",
|
||||
"Documents": "Documente",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "nu face nicio conexiune externă, iar datele tale rămân în siguranță pe serverul găzduit local.",
|
||||
"Don't Allow": "Nu Permite",
|
||||
"Don't have an account?": "Nu ai un cont?",
|
||||
"don't install random functions from sources you don't trust.": "nu instala funcții aleatorii din surse în care nu ai încredere.",
|
||||
"don't install random tools from sources you don't trust.": "nu instala instrumente aleatorii din surse în care nu ai încredere.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Descarcă",
|
||||
"Download canceled": "Descărcare anulată",
|
||||
"Download Database": "Descarcă Baza de Date",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Plasează orice fișiere aici pentru a le adăuga la conversație",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "de ex. '30s', '10m'. Unitățile de timp valide sunt 's', 'm', 'h'.",
|
||||
"Edit": "Editează",
|
||||
"Edit Doc": "Editează Document",
|
||||
"Edit Memory": "Editează Memorie",
|
||||
"Edit User": "Editează Utilizator",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Introduceți Parola Dvs.",
|
||||
"Enter Your Role": "Introduceți Rolul Dvs.",
|
||||
"Error": "Eroare",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimental",
|
||||
"Export": "Exportă",
|
||||
"Export All Chats (All Users)": "Exportă Toate Conversațiile (Toți Utilizatorii)",
|
||||
"Export chat (.json)": "Exportă conversația (.json)",
|
||||
"Export Chats": "Exportă Conversațiile",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportă Maparea Documentelor",
|
||||
"Export Functions": "Exportă Funcțiile",
|
||||
"Export LiteLLM config.yaml": "Exportă Configurația LiteLLM config.yaml",
|
||||
"Export Models": "Exportă Modelele",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Imagini",
|
||||
"Import Chats": "Importă Conversațiile",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importă Maparea Documentelor",
|
||||
"Import Functions": "Importă Funcțiile",
|
||||
"Import Models": "Importă Modelele",
|
||||
"Import Prompts": "Importă Prompturile",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Instalează de la URL-ul Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Trimitere Automată Instantanee După Transcrierea Vocii",
|
||||
"Interface": "Interfață",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Etichetă Invalidă",
|
||||
"January": "Ianuarie",
|
||||
"join our Discord for help.": "alătură-te Discord-ului nostru pentru ajutor.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Mai multe",
|
||||
"Move to Top": "",
|
||||
"Name": "Nume",
|
||||
"Name Tag": "Etichetă Nume",
|
||||
"Name your model": "Denumirea modelului",
|
||||
"New Chat": "Conversație Nouă",
|
||||
"New Password": "Parolă Nouă",
|
||||
"No content found": "",
|
||||
"No content to speak": "Nu există conținut de vorbit",
|
||||
"No file selected": "Nu a fost selectat niciun fișier",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Nu au fost găsite rezultate",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Este necesar URL-ul/Cheia OpenAI.",
|
||||
"or": "sau",
|
||||
"Other": "Altele",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Modelul de Rearanjare setat la \"{{reranking_model}}\"",
|
||||
"Reset": "Resetează",
|
||||
"Reset Upload Directory": "Resetează Directorul de Încărcare",
|
||||
"Reset Vector Storage": "Resetează Stocarea Vectorilor",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Copiere Automată a Răspunsului în Clipboard",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notificările de răspuns nu pot fi activate deoarece permisiunile site-ului au fost refuzate. Vă rugăm să vizitați setările browserului pentru a acorda accesul necesar.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Caută un model",
|
||||
"Search Chats": "Caută în Conversații",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Caută în Documente",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Caută Funcții",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Caută Modele",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Eroare de recunoaștere vocală: {{error}}",
|
||||
"Speech-to-Text Engine": "Motor de Conversie a Vocii în Text",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Oprește Secvența",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Model STT",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Șablon",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Completare Text",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Motor de Conversie a Textului în Vorbire",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Mulțumim pentru feedback!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Explicație detaliată",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Este necesar URL-ul serverului Tika.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Sfat: Actualizați mai multe sloturi de variabile consecutiv apăsând tasta tab în câmpul de intrare al conversației după fiecare înlocuire.",
|
||||
"Title": "Titlu",
|
||||
"Title (e.g. Tell me a fun fact)": "Titlu (de ex. Spune-mi un fapt amuzant)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Astăzi",
|
||||
"Toggle settings": "Comută setările",
|
||||
"Toggle sidebar": "Comută bara laterală",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokeni de Păstrat la Reîmprospătarea Contextului (num_keep)",
|
||||
"Tool created successfully": "Instrumentul a fost creat cu succes",
|
||||
"Tool deleted successfully": "Instrumentul a fost șters cu succes",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Progres Încărcare",
|
||||
"URL Mode": "Mod URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Folosiți '#' în câmpul de intrare al promptului pentru a încărca și selecta documentele dvs.",
|
||||
"Use Gravatar": "Folosește Gravatar",
|
||||
"Use Initials": "Folosește Inițialele",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Добавьте пользовательский промпт",
|
||||
"Add Docs": "Добавить документы",
|
||||
"Add Files": "Добавить файлы",
|
||||
"Add Memory": "Добавить воспоминание",
|
||||
"Add message": "Добавить сообщение",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Администраторы всегда имеют доступ ко всем инструментам; пользователям нужны инструменты, назначенные для каждой модели в рабочем пространстве.",
|
||||
"Advanced Parameters": "Расширенные Параметры",
|
||||
"Advanced Params": "Расширенные параметры",
|
||||
"all": "все",
|
||||
"All Documents": "Все документы",
|
||||
"All Users": "Все пользователи",
|
||||
"Allow": "Разрешить",
|
||||
"Allow Chat Deletion": "Разрешить удаление чата",
|
||||
"Allow Chat Editing": "Разрешить редактирование чата",
|
||||
"Allow non-local voices": "Разрешить не локальные голоса",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Отменить",
|
||||
"Capabilities": "Возможности",
|
||||
"Change Password": "Изменить пароль",
|
||||
"Character": "",
|
||||
"Chat": "Чат",
|
||||
"Chat Background Image": "Фоновое изображение чата",
|
||||
"Chat Bubble UI": "Bubble UI чат",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Нажмите здесь, чтобы выбрать",
|
||||
"Click here to select a csv file.": "Нажмите здесь, чтобы выбрать csv-файл.",
|
||||
"Click here to select a py file.": "Нажмите здесь, чтобы выбрать py-файл",
|
||||
"Click here to select documents.": "Нажмите здесь, чтобы выбрать документы.",
|
||||
"Click here to upload a workflow.json file.": "Нажмите здесь, чтобы загрузить файл workflow.json.",
|
||||
"click here.": "нажмите здесь.",
|
||||
"Click on the user role button to change a user's role.": "Нажмите кнопку роли пользователя, чтобы изменить роль пользователя.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "В разрешении на запись в буфер обмена отказано. Пожалуйста, проверьте настройки своего браузера, чтобы предоставить необходимый доступ.",
|
||||
"Clone": "Клонировать",
|
||||
"Close": "Закрыть",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Код успешно отформатирован",
|
||||
"Collection": "Коллекция",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Копировать последний блок кода",
|
||||
"Copy last response": "Копировать последний ответ",
|
||||
"Copy Link": "Копировать ссылку",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Копирование в буфер обмена прошло успешно!",
|
||||
"Create a model": "Создание модели",
|
||||
"Create Account": "Создать аккаунт",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Модель по умолчанию обновлена",
|
||||
"Default Prompt Suggestions": "Предложения промптов по умолчанию",
|
||||
"Default User Role": "Роль пользователя по умолчанию",
|
||||
"delete": "удалить",
|
||||
"Delete": "Удалить",
|
||||
"Delete a model": "Удалить модель",
|
||||
"Delete All Chats": "Удалить все чаты",
|
||||
"Delete chat": "Удалить чат",
|
||||
"Delete Chat": "Удалить чат",
|
||||
"Delete chat?": "Удалить чат?",
|
||||
"Delete Doc": "Удалить документ",
|
||||
"Delete function?": "Удалить функцию?",
|
||||
"Delete prompt?": "Удалить промпт?",
|
||||
"delete this link": "удалить эту ссылку",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Документация",
|
||||
"Documents": "Документы",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "не устанавливает никаких внешних соединений, и ваши данные надежно хранятся на вашем локальном сервере.",
|
||||
"Don't Allow": "Не разрешать",
|
||||
"Don't have an account?": "У вас нет аккаунта?",
|
||||
"don't install random functions from sources you don't trust.": "не устанавливайте случайные функции из источников, которым вы не доверяете.",
|
||||
"don't install random tools from sources you don't trust.": "не устанавливайте случайные инструменты из источников, которым вы не доверяете.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Загрузить",
|
||||
"Download canceled": "Загрузка отменена",
|
||||
"Download Database": "Загрузить базу данных",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Перетащите сюда файлы, чтобы добавить их в разговор",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30s','10m'. Допустимые единицы времени: 's', 'm', 'h'.",
|
||||
"Edit": "Редактировать",
|
||||
"Edit Doc": "Редактировать документ",
|
||||
"Edit Memory": "Редактировать воспоминание",
|
||||
"Edit User": "Редактировать пользователя",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Введите ваш пароль",
|
||||
"Enter Your Role": "Введите вашу роль",
|
||||
"Error": "Ошибка",
|
||||
"ERROR": "",
|
||||
"Experimental": "Экспериментальное",
|
||||
"Export": "Экспорт",
|
||||
"Export All Chats (All Users)": "Экспортировать все чаты (всех пользователей)",
|
||||
"Export chat (.json)": "Экспортировать чат (.json)",
|
||||
"Export Chats": "Экспортировать чаты",
|
||||
"Export Config to JSON File": "Экспорт конфигурации в JSON-файл",
|
||||
"Export Documents Mapping": "Экспортировать сопоставление документов",
|
||||
"Export Functions": "Экспортировать функции",
|
||||
"Export LiteLLM config.yaml": "Экспортировать LiteLLM config.yaml",
|
||||
"Export Models": "Экспортировать модели",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Изображения",
|
||||
"Import Chats": "Импортировать чаты",
|
||||
"Import Config from JSON File": "Импорт конфигурации из JSON-файла",
|
||||
"Import Documents Mapping": "Импорт сопоставления документов",
|
||||
"Import Functions": "Импортировать функции",
|
||||
"Import Models": "Импортировать модели",
|
||||
"Import Prompts": "Импортировать промпты",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Установка с URL-адреса Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Мгновенная автоматическая отправка после расшифровки голоса",
|
||||
"Interface": "Интерфейс",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Недопустимый тег",
|
||||
"January": "Январь",
|
||||
"join our Discord for help.": "присоединяйтесь к нашему Discord для помощи.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Больше",
|
||||
"Move to Top": "Поднять вверх",
|
||||
"Name": "Имя",
|
||||
"Name Tag": "Имя тега",
|
||||
"Name your model": "Присвойте модели имя",
|
||||
"New Chat": "Новый чат",
|
||||
"New Password": "Новый пароль",
|
||||
"No content found": "",
|
||||
"No content to speak": "Нечего говорить",
|
||||
"No file selected": "Файлы не выбраны",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Результатов не найдено",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Требуется URL-адрес API OpenAI или ключ API.",
|
||||
"or": "или",
|
||||
"Other": "Прочее",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Формат вывода",
|
||||
"Overview": "Обзор",
|
||||
"page": "страница",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Модель реранжирования установлена на \"{{reranking_model}}\"",
|
||||
"Reset": "Сбросить",
|
||||
"Reset Upload Directory": "Сбросить каталог загрузок",
|
||||
"Reset Vector Storage": "Сбросить векторное хранилище",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Автоматическое копирование ответа в буфер обмена",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Уведомления об ответах не могут быть активированы, поскольку доступ к веб-сайту был заблокирован. Пожалуйста, перейдите к настройкам своего браузера, чтобы предоставить необходимый доступ.",
|
||||
"Response splitting": "Разделение ответов",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Поиск модели",
|
||||
"Search Chats": "Поиск в чатах",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Поиск документов",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Поиск функций",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Поиск моделей",
|
||||
|
|
@ -646,6 +644,7 @@
|
|||
"Speech Playback Speed": "Скорость воспроизведения речи",
|
||||
"Speech recognition error: {{error}}": "Ошибка распознавания речи: {{error}}",
|
||||
"Speech-to-Text Engine": "Система распознавания речи",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Последовательность остановки",
|
||||
"Stream Chat Response": "Потоковый вывод ответа",
|
||||
"STT Model": "Модель распознавания речи",
|
||||
|
|
@ -668,6 +667,7 @@
|
|||
"Template": "Шаблон",
|
||||
"Temporary Chat": "Временный чат",
|
||||
"Text Completion": "Автодополнение текста",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Система синтеза речи",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Спасибо за вашу обратную связь!",
|
||||
|
|
@ -686,6 +686,7 @@
|
|||
"Thorough explanation": "Подробное объяснение",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Требуется URL-адрес сервера Tika.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Совет: Обновляйте несколько переменных подряд, нажимая клавишу Tab в поле ввода чата после каждой замены.",
|
||||
"Title": "Заголовок",
|
||||
"Title (e.g. Tell me a fun fact)": "Заголовок (например, Расскажи мне интересный факт)",
|
||||
|
|
@ -703,6 +704,7 @@
|
|||
"Today": "Сегодня",
|
||||
"Toggle settings": "Переключить настройки",
|
||||
"Toggle sidebar": "Переключить боковую панель",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Количество токенов для сохранения при обновлении контекста (num_keep)",
|
||||
"Tool created successfully": "Инструмент успешно создан",
|
||||
"Tool deleted successfully": "Инструмент успешно удален",
|
||||
|
|
@ -741,7 +743,6 @@
|
|||
"Upload Progress": "Прогресс загрузки",
|
||||
"URL Mode": "Режим URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Используйте '#' в поле ввода промпта для загрузки и выбора ваших документов.",
|
||||
"Use Gravatar": "Использовать Gravatar",
|
||||
"Use Initials": "Использовать инициалы",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Додај прилагођен упит",
|
||||
"Add Docs": "Додај документе",
|
||||
"Add Files": "Додај датотеке",
|
||||
"Add Memory": "Додај меморију",
|
||||
"Add message": "Додај поруку",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "Напредни параметри",
|
||||
"Advanced Params": "Напредни парамови",
|
||||
"all": "сви",
|
||||
"All Documents": "Сви документи",
|
||||
"All Users": "Сви корисници",
|
||||
"Allow": "Дозволи",
|
||||
"Allow Chat Deletion": "Дозволи брисање ћаскања",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Откажи",
|
||||
"Capabilities": "Могућности",
|
||||
"Change Password": "Промени лозинку",
|
||||
"Character": "",
|
||||
"Chat": "Ћаскање",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Интерфејс балона ћаскања",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Кликните овде да изаберете",
|
||||
"Click here to select a csv file.": "Кликните овде да изаберете csv датотеку.",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "Кликните овде да изаберете документе.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "кликните овде.",
|
||||
"Click on the user role button to change a user's role.": "Кликните на дугме за улогу корисника да промените улогу корисника.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Клон",
|
||||
"Close": "Затвори",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Колекција",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Копирај последњи блок кода",
|
||||
"Copy last response": "Копирај последњи одговор",
|
||||
"Copy Link": "Копирај везу",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Успешно копирање у оставу!",
|
||||
"Create a model": "Креирање модела",
|
||||
"Create Account": "Направи налог",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Подразумевани модел ажуриран",
|
||||
"Default Prompt Suggestions": "Подразумевани предлози упита",
|
||||
"Default User Role": "Подразумевана улога корисника",
|
||||
"delete": "обриши",
|
||||
"Delete": "Обриши",
|
||||
"Delete a model": "Обриши модел",
|
||||
"Delete All Chats": "Избриши сва ћаскања",
|
||||
"Delete chat": "Обриши ћаскање",
|
||||
"Delete Chat": "Обриши ћаскање",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "обриши ову везу",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "Документи",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "не отвара никакве спољне везе и ваши подаци остају сигурно на вашем локално хостованом серверу.",
|
||||
"Don't Allow": "Не дозволи",
|
||||
"Don't have an account?": "Немате налог?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Преузми",
|
||||
"Download canceled": "Преузимање отказано",
|
||||
"Download Database": "Преузми базу података",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Убаците било које датотеке овде да их додате у разговор",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "нпр. '30s', '10m'. Важеће временске јединице су 's', 'm', 'h'.",
|
||||
"Edit": "Уреди",
|
||||
"Edit Doc": "Уреди документ",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Уреди корисника",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Унесите вашу лозинку",
|
||||
"Enter Your Role": "Унесите вашу улогу",
|
||||
"Error": "Грешка",
|
||||
"ERROR": "",
|
||||
"Experimental": "Експериментално",
|
||||
"Export": "Извоз",
|
||||
"Export All Chats (All Users)": "Извези сва ћаскања (сви корисници)",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "Извези ћаскања",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Извези мапирање докумената",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Извези моделе",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Слике",
|
||||
"Import Chats": "Увези ћаскања",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Увези мапирање докумената",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Увези моделе",
|
||||
"Import Prompts": "Увези упите",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Инсталирај из Гитхуб УРЛ адресе",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "Изглед",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Неисправна ознака",
|
||||
"January": "Јануар",
|
||||
"join our Discord for help.": "придружите се нашем Дискорду за помоћ.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Више",
|
||||
"Move to Top": "",
|
||||
"Name": "Име",
|
||||
"Name Tag": "Назив ознаке",
|
||||
"Name your model": "Наведи свој модел",
|
||||
"New Chat": "Ново ћаскање",
|
||||
"New Password": "Нова лозинка",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Нема резултата",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Потребан је OpenAI URL/кључ.",
|
||||
"or": "или",
|
||||
"Other": "Остало",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Модел поновног рангирања подешен на \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "Ресетуј складиште вектора",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Самостално копирање одговора у оставу",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Претражи модел",
|
||||
"Search Chats": "Претражи ћаскања",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Претражи документе",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Модели претраге",
|
||||
|
|
@ -645,6 +643,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Грешка у препознавању говора: {{error}}",
|
||||
"Speech-to-Text Engine": "Мотор за говор у текст",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Секвенца заустављања",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -667,6 +666,7 @@
|
|||
"Template": "Шаблон",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Допуна текста",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Мотор за текст у говор",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Хвала на вашем коментару!",
|
||||
|
|
@ -685,6 +685,7 @@
|
|||
"Thorough explanation": "Детаљно објашњење",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Савет: ажурирајте више променљивих слотова узастопно притиском на тастер Таб у уносу ћаскања након сваке замене.",
|
||||
"Title": "Наслов",
|
||||
"Title (e.g. Tell me a fun fact)": "Наслов (нпр. „реци ми занимљивост“)",
|
||||
|
|
@ -702,6 +703,7 @@
|
|||
"Today": "Данас",
|
||||
"Toggle settings": "Пребаци подешавања",
|
||||
"Toggle sidebar": "Пребаци бочну траку",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -740,7 +742,6 @@
|
|||
"Upload Progress": "Напредак отпремања",
|
||||
"URL Mode": "Режим адресе",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Користи '#' у уносу упита да учитате и изаберете ваше документе.",
|
||||
"Use Gravatar": "Користи Граватар",
|
||||
"Use Initials": "Користи иницијале",
|
||||
"use_mlock (Ollama)": "усе _млоцк (Оллама)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Lägg till en anpassad instruktion",
|
||||
"Add Docs": "Lägg till dokument",
|
||||
"Add Files": "Lägg till filer",
|
||||
"Add Memory": "Lägg till minne",
|
||||
"Add message": "Lägg till meddelande",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratörer har tillgång till alla verktyg hela tiden, medan användare behöver verktyg som tilldelas per modell i arbetsytan.",
|
||||
"Advanced Parameters": "Avancerade parametrar",
|
||||
"Advanced Params": "Avancerade parametrar",
|
||||
"all": "alla",
|
||||
"All Documents": "Alla dokument",
|
||||
"All Users": "Alla användare",
|
||||
"Allow": "Tillåt",
|
||||
"Allow Chat Deletion": "Tillåt chattborttagning",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "Tillåt icke-lokala röster",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Avbryt",
|
||||
"Capabilities": "Kapaciteter",
|
||||
"Change Password": "Ändra lösenord",
|
||||
"Character": "",
|
||||
"Chat": "Chatt",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "Chatbubblar UI",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Klicka här för att välja",
|
||||
"Click here to select a csv file.": "Klicka här för att välja en csv-fil.",
|
||||
"Click here to select a py file.": "Klicka här för att välja en python-fil.",
|
||||
"Click here to select documents.": "Klicka här för att välja dokument.",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "klicka här.",
|
||||
"Click on the user role button to change a user's role.": "Klicka på knappen för användarroll för att ändra en användares roll.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "Klon",
|
||||
"Close": "Stäng",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "Samling",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Kopiera sista kodblock",
|
||||
"Copy last response": "Kopiera sista svar",
|
||||
"Copy Link": "Kopiera länk",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Kopiering till urklipp lyckades!",
|
||||
"Create a model": "Skapa en modell",
|
||||
"Create Account": "Skapa konto",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Standardmodell uppdaterad",
|
||||
"Default Prompt Suggestions": "Standardinstruktionsförslag",
|
||||
"Default User Role": "Standardanvändarroll",
|
||||
"delete": "radera",
|
||||
"Delete": "Radera",
|
||||
"Delete a model": "Ta bort en modell",
|
||||
"Delete All Chats": "Ta bort alla chattar",
|
||||
"Delete chat": "Radera chatt",
|
||||
"Delete Chat": "Radera chatt",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "radera denna länk",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dokumentation",
|
||||
"Documents": "Dokument",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "gör inga externa anslutningar, och dina data förblir säkra på din lokalt värdade server.",
|
||||
"Don't Allow": "Tillåt inte",
|
||||
"Don't have an account?": "Har du inget konto?",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Ladda ner",
|
||||
"Download canceled": "Nedladdning avbruten",
|
||||
"Download Database": "Ladda ner databas",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Släpp filer här för att lägga till i samtalet",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "t.ex. '30s', '10m'. Giltiga tidsenheter är 's', 'm', 'h'.",
|
||||
"Edit": "Redigera",
|
||||
"Edit Doc": "Redigera dokument",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "Redigera användare",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Ange ditt lösenord",
|
||||
"Enter Your Role": "Ange din roll",
|
||||
"Error": "Fel",
|
||||
"ERROR": "",
|
||||
"Experimental": "Experimentell",
|
||||
"Export": "Export",
|
||||
"Export All Chats (All Users)": "Exportera alla chattar (alla användare)",
|
||||
"Export chat (.json)": "Exportera chatt (.json)",
|
||||
"Export Chats": "Exportera chattar",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Exportera dokumentmappning",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Exportera modeller",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Bilder",
|
||||
"Import Chats": "Importera chattar",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Importera dokumentmappning",
|
||||
"Import Functions": "",
|
||||
"Import Models": "Importera modeller",
|
||||
"Import Prompts": "Importera instruktioner",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Installera från Github-URL",
|
||||
"Instant Auto-Send After Voice Transcription": "Skicka automatiskt efter rösttranskribering",
|
||||
"Interface": "Gränssnitt",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Ogiltig tagg",
|
||||
"January": "januari",
|
||||
"join our Discord for help.": "gå med i vår Discord för hjälp.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Mer",
|
||||
"Move to Top": "",
|
||||
"Name": "Namn",
|
||||
"Name Tag": "Namntag",
|
||||
"Name your model": "Namnge din modell",
|
||||
"New Chat": "Ny chatt",
|
||||
"New Password": "Nytt lösenord",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Inga resultat hittades",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI-URL/nyckel krävs.",
|
||||
"or": "eller",
|
||||
"Other": "Andra",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking modell inställd på \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "Återställ uppladdningskatalog",
|
||||
"Reset Vector Storage": "Återställ vektorlager",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Svara AutoCopy till urklipp",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Sök efter en modell",
|
||||
"Search Chats": "Sök i chattar",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Sök dokument",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Sök modeller",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Fel vid taligenkänning: {{error}}",
|
||||
"Speech-to-Text Engine": "Tal-till-text-motor",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Stoppsekvens",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "Tal-till-text-modell",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Mall",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "Textslutförande",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Text-till-tal-motor",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Tack för din feedback!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Djupare förklaring",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Tips: Uppdatera fler variabler genom att trycka på tabb-tangenten i chattinmatningen efter varje ersättning.",
|
||||
"Title": "Titel",
|
||||
"Title (e.g. Tell me a fun fact)": "Titel (t.ex. Berätta en kuriosa)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Idag",
|
||||
"Toggle settings": "Växla inställningar",
|
||||
"Toggle sidebar": "Växla sidofält",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Tokens att behålla vid kontextuppdatering (num_keep)",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Uppladdningsframsteg",
|
||||
"URL Mode": "URL-läge",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Använd '#' i instruktionsinmatningen för att ladda och välja dina dokument.",
|
||||
"Use Gravatar": "Använd Gravatar",
|
||||
"Use Initials": "Använd initialer",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "เพิ่มพรอมต์ที่กำหนดเอง",
|
||||
"Add Docs": "เพิ่มเอกสาร",
|
||||
"Add Files": "เพิ่มไฟล์",
|
||||
"Add Memory": "เพิ่มความจำ",
|
||||
"Add message": "เพิ่มข้อความ",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "ผู้ดูแลระบบสามารถเข้าถึงเครื่องมือทั้งหมดได้ตลอดเวลา; ผู้ใช้ต้องการเครื่องมือที่กำหนดต่อโมเดลในพื้นที่ทำงาน",
|
||||
"Advanced Parameters": "พารามิเตอร์ขั้นสูง",
|
||||
"Advanced Params": "พารามิเตอร์ขั้นสูง",
|
||||
"all": "ทั้งหมด",
|
||||
"All Documents": "เอกสารทั้งหมด",
|
||||
"All Users": "ผู้ใช้ทั้งหมด",
|
||||
"Allow": "อนุญาต",
|
||||
"Allow Chat Deletion": "อนุญาตการลบการสนทนา",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "อนุญาตเสียงที่ไม่ใช่ท้องถิ่น",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "ยกเลิก",
|
||||
"Capabilities": "ความสามารถ",
|
||||
"Change Password": "เปลี่ยนรหัสผ่าน",
|
||||
"Character": "",
|
||||
"Chat": "แชท",
|
||||
"Chat Background Image": "ภาพพื้นหลังแชท",
|
||||
"Chat Bubble UI": "UI ฟองแชท",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "คลิกที่นี่เพื่อเลือก",
|
||||
"Click here to select a csv file.": "คลิกที่นี่เพื่อเลือกไฟล์ csv",
|
||||
"Click here to select a py file.": "คลิกที่นี่เพื่อเลือกไฟล์ py",
|
||||
"Click here to select documents.": "คลิกที่นี่เพื่อเลือกเอกสาร",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "คลิกที่นี่",
|
||||
"Click on the user role button to change a user's role.": "คลิกที่ปุ่มบทบาทผู้ใช้เพื่อเปลี่ยนบทบาทของผู้ใช้",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "การอนุญาตเขียนคลิปบอร์ดถูกปฏิเสธ โปรดตรวจสอบการตั้งค่าเบราว์เซอร์ของคุณเพื่อให้สิทธิ์ที่จำเป็น",
|
||||
"Clone": "โคลน",
|
||||
"Close": "ปิด",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "จัดรูปแบบโค้ดสำเร็จแล้ว",
|
||||
"Collection": "คอลเลคชัน",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "คัดลอกบล็อกโค้ดสุดท้าย",
|
||||
"Copy last response": "คัดลอกการตอบสนองล่าสุด",
|
||||
"Copy Link": "คัดลอกลิงก์",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "คัดลอกไปยังคลิปบอร์ดสำเร็จแล้ว!",
|
||||
"Create a model": "สร้างโมเดล",
|
||||
"Create Account": "สร้างบัญชี",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "อัปเดตโมเดลค่าเริ่มต้นแล้ว",
|
||||
"Default Prompt Suggestions": "คำแนะนำพรอมต์ค่าเริ่มต้น",
|
||||
"Default User Role": "บทบาทผู้ใช้ค่าเริ่มต้น",
|
||||
"delete": "ลบ",
|
||||
"Delete": "ลบ",
|
||||
"Delete a model": "ลบโมเดล",
|
||||
"Delete All Chats": "ลบการสนทนาทั้งหมด",
|
||||
"Delete chat": "ลบแชท",
|
||||
"Delete Chat": "ลบแชท",
|
||||
"Delete chat?": "ลบแชท?",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "ลบฟังก์ชัน?",
|
||||
"Delete prompt?": "ลบพรอมต์?",
|
||||
"delete this link": "ลบลิงก์นี้",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "เอกสารประกอบ",
|
||||
"Documents": "เอกสาร",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "ไม่เชื่อมต่อภายนอกใดๆ และข้อมูลของคุณจะอยู่บนเซิร์ฟเวอร์ที่โฮสต์ในท้องถิ่นของคุณอย่างปลอดภัย",
|
||||
"Don't Allow": "ไม่อนุญาต",
|
||||
"Don't have an account?": "ยังไม่มีบัญชี?",
|
||||
"don't install random functions from sources you don't trust.": "อย่าติดตั้งฟังก์ชันแบบสุ่มจากแหล่งที่คุณไม่ไว้วางใจ",
|
||||
"don't install random tools from sources you don't trust.": "อย่าติดตั้งเครื่องมือแบบสุ่มจากแหล่งที่คุณไม่ไว้วางใจ",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "ดาวน์โหลด",
|
||||
"Download canceled": "ยกเลิกการดาวน์โหลด",
|
||||
"Download Database": "ดาวน์โหลดฐานข้อมูล",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "วางไฟล์ใดๆ ที่นี่เพื่อเพิ่มในการสนทนา",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "เช่น '30s', '10m' หน่วยเวลาที่ถูกต้องคือ 's', 'm', 'h'",
|
||||
"Edit": "แก้ไข",
|
||||
"Edit Doc": "แก้ไขเอกสาร",
|
||||
"Edit Memory": "แก้ไขความจำ",
|
||||
"Edit User": "แก้ไขผู้ใช้",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "ใส่รหัสผ่านของคุณ",
|
||||
"Enter Your Role": "ใส่บทบาทของคุณ",
|
||||
"Error": "ข้อผิดพลาด",
|
||||
"ERROR": "",
|
||||
"Experimental": "การทดลอง",
|
||||
"Export": "ส่งออก",
|
||||
"Export All Chats (All Users)": "ส่งออกการสนทนาทั้งหมด (ผู้ใช้ทั้งหมด)",
|
||||
"Export chat (.json)": "ส่งออกการสนทนา (.json)",
|
||||
"Export Chats": "ส่งออกการสนทนา",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "ส่งออกการแมปเอกสาร",
|
||||
"Export Functions": "ส่งออกฟังก์ชัน",
|
||||
"Export LiteLLM config.yaml": "ส่งออกการตั้งค่า LiteLLM config.yaml",
|
||||
"Export Models": "ส่งออกโมเดล",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "ภาพ",
|
||||
"Import Chats": "นำเข้าการสนทนา",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "นำเข้าการแมปเอกสาร",
|
||||
"Import Functions": "นำเข้าฟังก์ชัน",
|
||||
"Import Models": "นำเข้าโมเดล",
|
||||
"Import Prompts": "นำเข้าพรอมต์",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "ติดตั้งจาก URL ของ Github",
|
||||
"Instant Auto-Send After Voice Transcription": "ส่งอัตโนมัติทันทีหลังจากการถอดเสียง",
|
||||
"Interface": "อินเทอร์เฟซ",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "แท็กไม่ถูกต้อง",
|
||||
"January": "มกราคม",
|
||||
"join our Discord for help.": "เข้าร่วม Discord ของเราเพื่อขอความช่วยเหลือ",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "เพิ่มเติม",
|
||||
"Move to Top": "",
|
||||
"Name": "ชื่อ",
|
||||
"Name Tag": "ป้ายชื่อ",
|
||||
"Name your model": "ตั้งชื่อโมเดลของคุณ",
|
||||
"New Chat": "แชทใหม่",
|
||||
"New Password": "รหัสผ่านใหม่",
|
||||
"No content found": "",
|
||||
"No content to speak": "ไม่มีเนื้อหาที่จะพูด",
|
||||
"No file selected": "ไม่ได้เลือกไฟล์",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "ไม่มีผลลัพธ์",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "จำเป็นต้องใช้ URL/คีย์ OpenAI",
|
||||
"or": "หรือ",
|
||||
"Other": "อื่น ๆ",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "ตั้งค่าโมเดลการจัดอันดับใหม่เป็น \"{{reranking_model}}\"",
|
||||
"Reset": "รีเซ็ต",
|
||||
"Reset Upload Directory": "รีเซ็ตไดเร็กทอรีการอัปโหลด",
|
||||
"Reset Vector Storage": "รีเซ็ตการจัดเก็บเวกเตอร์",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "ตอบสนองการคัดลอกอัตโนมัติไปยังคลิปบอร์ด",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "ไม่สามารถเปิดการแจ้งเตือนการตอบสนองได้เนื่องจากเว็บไซต์ปฏิเสธ กรุณาเข้าการตั้งค่าเบราว์เซอร์ของคุณเพื่อให้สิทธิ์การเข้าถึงที่จำเป็น",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "ค้นหาโมเดล",
|
||||
"Search Chats": "ค้นหาแชท",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "ค้นหาเอกสาร",
|
||||
"search for tags": "",
|
||||
"Search Functions": "ค้นหาฟังก์ชัน",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "ค้นหาโมเดล",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "ข้อผิดพลาดในการรู้จำเสียง: {{error}}",
|
||||
"Speech-to-Text Engine": "เครื่องมือแปลงเสียงเป็นข้อความ",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "หยุดลำดับ",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "โมเดลแปลงเสียงเป็นข้อความ",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "แม่แบบ",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "การเติมข้อความ",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "เครื่องมือแปลงข้อความเป็นเสียง",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "ขอบคุณสำหรับความคิดเห็นของคุณ!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "คำอธิบายอย่างละเอียด",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "จำเป็นต้องมี URL ของเซิร์ฟเวอร์ Tika",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "เคล็ดลับ: อัปเดตช่องตัวแปรหลายช่องติดต่อกันโดยการกดปุ่มแท็บในช่องใส่ข้อความแชทหลังจากแต่ละการแทนที่",
|
||||
"Title": "ชื่อเรื่อง",
|
||||
"Title (e.g. Tell me a fun fact)": "ชื่อเรื่อง (เช่น บอกข้อเท็จจริงที่น่าสนุก)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "วันนี้",
|
||||
"Toggle settings": "สลับการตั้งค่า",
|
||||
"Toggle sidebar": "สลับแถบด้านข้าง",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "โทเค็นที่เก็บไว้เมื่อรีเฟรชบริบท (num_keep)",
|
||||
"Tool created successfully": "สร้างเครื่องมือเรียบร้อยแล้ว",
|
||||
"Tool deleted successfully": "ลบเครื่องมือเรียบร้อยแล้ว",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "ความคืบหน้าการอัปโหลด",
|
||||
"URL Mode": "โหมด URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "ใช้ '#' ในการใส่พรอมต์เพื่อโหลดและเลือกเอกสารของคุณ",
|
||||
"Use Gravatar": "ใช้ Gravatar",
|
||||
"Use Initials": "ใช้ตัวย่อ",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "",
|
||||
"Add Docs": "",
|
||||
"Add Files": "",
|
||||
"Add Memory": "",
|
||||
"Add message": "",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "",
|
||||
"Advanced Parameters": "",
|
||||
"Advanced Params": "",
|
||||
"all": "",
|
||||
"All Documents": "",
|
||||
"All Users": "",
|
||||
"Allow": "",
|
||||
"Allow Chat Deletion": "",
|
||||
"Allow Chat Editing": "",
|
||||
"Allow non-local voices": "",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "",
|
||||
"Capabilities": "",
|
||||
"Change Password": "",
|
||||
"Character": "",
|
||||
"Chat": "",
|
||||
"Chat Background Image": "",
|
||||
"Chat Bubble UI": "",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "",
|
||||
"Click here to select a csv file.": "",
|
||||
"Click here to select a py file.": "",
|
||||
"Click here to select documents.": "",
|
||||
"Click here to upload a workflow.json file.": "",
|
||||
"click here.": "",
|
||||
"Click on the user role button to change a user's role.": "",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "",
|
||||
"Clone": "",
|
||||
"Close": "",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "",
|
||||
"Collection": "",
|
||||
"ComfyUI": "",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "",
|
||||
"Copy last response": "",
|
||||
"Copy Link": "",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "",
|
||||
"Create a model": "",
|
||||
"Create Account": "",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "",
|
||||
"Default Prompt Suggestions": "",
|
||||
"Default User Role": "",
|
||||
"delete": "",
|
||||
"Delete": "",
|
||||
"Delete a model": "",
|
||||
"Delete All Chats": "",
|
||||
"Delete chat": "",
|
||||
"Delete Chat": "",
|
||||
"Delete chat?": "",
|
||||
"Delete Doc": "",
|
||||
"Delete function?": "",
|
||||
"Delete prompt?": "",
|
||||
"delete this link": "",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "",
|
||||
"Documents": "",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "",
|
||||
"Don't Allow": "",
|
||||
"Don't have an account?": "",
|
||||
"don't install random functions from sources you don't trust.": "",
|
||||
"don't install random tools from sources you don't trust.": "",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "",
|
||||
"Download canceled": "",
|
||||
"Download Database": "",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "",
|
||||
"Edit": "",
|
||||
"Edit Doc": "",
|
||||
"Edit Memory": "",
|
||||
"Edit User": "",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "",
|
||||
"Enter Your Role": "",
|
||||
"Error": "",
|
||||
"ERROR": "",
|
||||
"Experimental": "",
|
||||
"Export": "",
|
||||
"Export All Chats (All Users)": "",
|
||||
"Export chat (.json)": "",
|
||||
"Export Chats": "",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "",
|
||||
"Export Functions": "",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "",
|
||||
"Import Chats": "",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "",
|
||||
"Import Functions": "",
|
||||
"Import Models": "",
|
||||
"Import Prompts": "",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "",
|
||||
"Instant Auto-Send After Voice Transcription": "",
|
||||
"Interface": "",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "",
|
||||
"January": "",
|
||||
"join our Discord for help.": "",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "",
|
||||
"Move to Top": "",
|
||||
"Name": "",
|
||||
"Name Tag": "",
|
||||
"Name your model": "",
|
||||
"New Chat": "",
|
||||
"New Password": "",
|
||||
"No content found": "",
|
||||
"No content to speak": "",
|
||||
"No file selected": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "",
|
||||
"or": "",
|
||||
"Other": "",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "",
|
||||
"Search Chats": "",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "",
|
||||
"search for tags": "",
|
||||
"Search Functions": "",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "",
|
||||
"Speech-to-Text Engine": "",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "",
|
||||
"Temporary Chat": "",
|
||||
"Text Completion": "",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "",
|
||||
"Tfs Z": "",
|
||||
"Thanks for your feedback!": "",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "",
|
||||
"Title": "",
|
||||
"Title (e.g. Tell me a fun fact)": "",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "",
|
||||
"Toggle settings": "",
|
||||
"Toggle sidebar": "",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "",
|
||||
"Tool deleted successfully": "",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "",
|
||||
"URL Mode": "",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "",
|
||||
"Use Gravatar": "",
|
||||
"Use Initials": "",
|
||||
"use_mlock (Ollama)": "",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Özel prompt ekleyin",
|
||||
"Add Docs": "Belgeler Ekle",
|
||||
"Add Files": "Dosyalar Ekle",
|
||||
"Add Memory": "Bellek Ekle",
|
||||
"Add message": "Mesaj Ekle",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Yöneticiler her zaman tüm araçlara erişebilir; kullanıcıların çalışma alanındaki model başına atanmış araçlara ihtiyacı vardır.",
|
||||
"Advanced Parameters": "Gelişmiş Parametreler",
|
||||
"Advanced Params": "Gelişmiş Parametreler",
|
||||
"all": "tümü",
|
||||
"All Documents": "Tüm Belgeler",
|
||||
"All Users": "Tüm Kullanıcılar",
|
||||
"Allow": "İzin ver",
|
||||
"Allow Chat Deletion": "Sohbet Silmeye İzin Ver",
|
||||
"Allow Chat Editing": "Soğbet Düzenlemeye İzin Ver",
|
||||
"Allow non-local voices": "Yerel olmayan seslere izin verin",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "İptal",
|
||||
"Capabilities": "Yetenekler",
|
||||
"Change Password": "Parola Değiştir",
|
||||
"Character": "",
|
||||
"Chat": "Sohbet",
|
||||
"Chat Background Image": "Sohbet Arka Plan Resmi",
|
||||
"Chat Bubble UI": "Sohbet Balonu Arayüzü",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Seçmek için buraya tıklayın",
|
||||
"Click here to select a csv file.": "Bir CSV dosyası seçmek için buraya tıklayın.",
|
||||
"Click here to select a py file.": "Bir py dosyası seçmek için buraya tıklayın.",
|
||||
"Click here to select documents.": "Belgeleri seçmek için buraya tıklayın.",
|
||||
"Click here to upload a workflow.json file.": "Bir workflow.json dosyası yüklemek için buraya tıklayın.",
|
||||
"click here.": "buraya tıklayın.",
|
||||
"Click on the user role button to change a user's role.": "Bir kullanıcının rolünü değiştirmek için kullanıcı rolü düğmesine tıklayın.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Panoya yazma izni reddedildi. Tarayıcı ayarlarını kontrol ederek gerekli izinleri sağlayabilirsiniz.",
|
||||
"Clone": "Klon",
|
||||
"Close": "Kapat",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Kod başarıyla biçimlendirildi",
|
||||
"Collection": "Koleksiyon",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Son kod bloğunu kopyala",
|
||||
"Copy last response": "Son yanıtı kopyala",
|
||||
"Copy Link": "Bağlantıyı Kopyala",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Panoya kopyalama başarılı!",
|
||||
"Create a model": "Bir model oluştur",
|
||||
"Create Account": "Hesap Oluştur",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Varsayılan model güncellendi",
|
||||
"Default Prompt Suggestions": "Varsayılan Prompt Önerileri",
|
||||
"Default User Role": "Varsayılan Kullanıcı Rolü",
|
||||
"delete": "sil",
|
||||
"Delete": "Sil",
|
||||
"Delete a model": "Bir modeli sil",
|
||||
"Delete All Chats": "Tüm Sohbetleri Sil",
|
||||
"Delete chat": "Sohbeti sil",
|
||||
"Delete Chat": "Sohbeti Sil",
|
||||
"Delete chat?": "Sohbeti sil?",
|
||||
"Delete Doc": "Belgeyi Sil",
|
||||
"Delete function?": "Fonksiyonu sil?",
|
||||
"Delete prompt?": "Promptu sil?",
|
||||
"delete this link": "bu bağlantıyı sil",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Dökümantasyon",
|
||||
"Documents": "Belgeler",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "herhangi bir harici bağlantı yapmaz ve verileriniz güvenli bir şekilde yerel olarak barındırılan sunucunuzda kalır.",
|
||||
"Don't Allow": "İzin Verme",
|
||||
"Don't have an account?": "Hesabınız yok mu?",
|
||||
"don't install random functions from sources you don't trust.": "Tanımadığınız kaynaklardan rastgele fonksiyonlar yüklemeyin.",
|
||||
"don't install random tools from sources you don't trust.": "Tanımadığınız kaynaklardan rastgele araçlar yüklemeyin.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "İndir",
|
||||
"Download canceled": "İndirme iptal edildi",
|
||||
"Download Database": "Veritabanını İndir",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Sohbete eklemek istediğiniz dosyaları buraya bırakın",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "örn. '30s', '10m'. Geçerli zaman birimleri 's', 'm', 'h'.",
|
||||
"Edit": "Düzenle",
|
||||
"Edit Doc": "Belgeyi Düzenle",
|
||||
"Edit Memory": "Belleği Düzenle",
|
||||
"Edit User": "Kullanıcıyı Düzenle",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "Parolanızı Girin",
|
||||
"Enter Your Role": "Rolünüzü Girin",
|
||||
"Error": "Hata",
|
||||
"ERROR": "",
|
||||
"Experimental": "Deneysel",
|
||||
"Export": "Dışa Aktar",
|
||||
"Export All Chats (All Users)": "Tüm Sohbetleri Dışa Aktar (Tüm Kullanıcılar)",
|
||||
"Export chat (.json)": "Sohbeti dışa aktar (.json)",
|
||||
"Export Chats": "Sohbetleri Dışa Aktar",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Belge Eşlemesini Dışa Aktar",
|
||||
"Export Functions": "Fonksiyonları Dışa Aktar",
|
||||
"Export LiteLLM config.yaml": "LiteLLM config.yaml'ı Dışa Aktar",
|
||||
"Export Models": "Modelleri Dışa Aktar",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Görüntüler",
|
||||
"Import Chats": "Sohbetleri İçe Aktar",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Belge Eşlemesini İçe Aktar",
|
||||
"Import Functions": "Fonksiyonları İçe Aktar",
|
||||
"Import Models": "Modelleri İçe Aktar",
|
||||
"Import Prompts": "Promptları İçe Aktar",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Github URL'sinden yükleyin",
|
||||
"Instant Auto-Send After Voice Transcription": "Ses Transkripsiyonundan Sonra Anında Otomatik Gönder",
|
||||
"Interface": "Arayüz",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Geçersiz etiket",
|
||||
"January": "Ocak",
|
||||
"join our Discord for help.": "yardım için Discord'umuza katılın.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Daha Fazla",
|
||||
"Move to Top": "En Üste Taşı",
|
||||
"Name": "Ad",
|
||||
"Name Tag": "Ad Etiketi",
|
||||
"Name your model": "Modelinizi Adlandırın",
|
||||
"New Chat": "Yeni Sohbet",
|
||||
"New Password": "Yeni Parola",
|
||||
"No content found": "",
|
||||
"No content to speak": "Konuşacak içerik yok",
|
||||
"No file selected": "Hiçbir dosya seçilmedi",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Sonuç bulunamadı",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "OpenAI URL/Anahtar gereklidir.",
|
||||
"or": "veya",
|
||||
"Other": "Diğer",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Çıktı formatı",
|
||||
"Overview": "Genel Bakış",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Yeniden sıralama modeli \"{{reranking_model}}\" olarak ayarlandı",
|
||||
"Reset": "Sıfırla",
|
||||
"Reset Upload Directory": "Yükleme Dizinini Sıfırla",
|
||||
"Reset Vector Storage": "Vektör Depolamayı Sıfırla",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Yanıtı Panoya Otomatik Kopyala",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Web sitesi izinleri reddedildiğinden yanıt bildirimleri etkinleştirilemiyor. Gerekli erişimi sağlamak için lütfen tarayıcı ayarlarınızı ziyaret edin.",
|
||||
"Response splitting": "Yanıt bölme",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Bir model ara",
|
||||
"Search Chats": "Sohbetleri Ara",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Belgeleri Ara",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Fonksiyonları Ara",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Modelleri Ara",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "Konuşma Oynatma Hızı",
|
||||
"Speech recognition error: {{error}}": "Konuşma tanıma hatası: {{error}}",
|
||||
"Speech-to-Text Engine": "Konuşmadan Metne Motoru",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Diziyi Durdur",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "STT Modeli",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "Şablon",
|
||||
"Temporary Chat": "Geçici Sohbet",
|
||||
"Text Completion": "Metin Tamamlama",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Metinden Sese Motoru",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Geri bildiriminiz için teşekkürler!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "Kapsamlı açıklama",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "Tika Sunucu URL'si gereklidir.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "İpucu: Her değiştirmeden sonra sohbet girişinde tab tuşuna basarak birden fazla değişken yuvasını art arda güncelleyin.",
|
||||
"Title": "Başlık",
|
||||
"Title (e.g. Tell me a fun fact)": "Başlık (e.g. Bana ilginç bir bilgi ver)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "Bugün",
|
||||
"Toggle settings": "Ayarları Aç/Kapat",
|
||||
"Toggle sidebar": "Kenar Çubuğunu Aç/Kapat",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Bağlam Yenilemesinde Korunacak Tokenler (num_keep)",
|
||||
"Tool created successfully": "Araç başarıyla oluşturuldu",
|
||||
"Tool deleted successfully": "Araç başarıyla silindi",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "Yükleme İlerlemesi",
|
||||
"URL Mode": "URL Modu",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Belgelerinizi yüklemek ve seçmek için promptda '#' kullanın.",
|
||||
"Use Gravatar": "Gravatar Kullan",
|
||||
"Use Initials": "Baş Harfleri Kullan",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -23,17 +23,16 @@
|
|||
"Add a short description about what this model does": "Додайте короткий опис того, що робить ця модель",
|
||||
"Add a short title for this prompt": "Додати коротку назву для цього промту",
|
||||
"Add a tag": "Додайте тег",
|
||||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add Content": "Додати вміст",
|
||||
"Add content here": "Додайте вміст сюди",
|
||||
"Add custom prompt": "Додати користувацьку підказку",
|
||||
"Add Docs": "Додати документи",
|
||||
"Add Files": "Додати файли",
|
||||
"Add Memory": "Додати пам'ять",
|
||||
"Add message": "Додати повідомлення",
|
||||
"Add Model": "Додати модель",
|
||||
"Add Tag": "Додати тег",
|
||||
"Add Tags": "Додати теги",
|
||||
"Add text content": "",
|
||||
"Add text content": "Додати текстовий вміст",
|
||||
"Add User": "Додати користувача",
|
||||
"Adjusting these settings will apply changes universally to all users.": "Зміни в цих налаштуваннях будуть застосовані для всіх користувачів.",
|
||||
"admin": "адмін",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Адміністратори мають доступ до всіх інструментів у будь-який час; користувачам потрібні інструменти, призначені для кожної моделі в робочій області.",
|
||||
"Advanced Parameters": "Розширені параметри",
|
||||
"Advanced Params": "Розширені параметри",
|
||||
"all": "всі",
|
||||
"All Documents": "Усі документи",
|
||||
"All Users": "Всі користувачі",
|
||||
"Allow": "Дозволити",
|
||||
"Allow Chat Deletion": "Дозволити видалення чату",
|
||||
"Allow Chat Editing": "Дозволити редагування чату",
|
||||
"Allow non-local voices": "Дозволити не локальні голоси",
|
||||
|
|
@ -68,8 +65,8 @@
|
|||
"Archived Chats": "Архівовані чати",
|
||||
"are allowed - Activate this command by typing": "дозволено - активізуйте цю команду набором",
|
||||
"Are you sure?": "Ви впевнені?",
|
||||
"Artifacts": "",
|
||||
"Ask a question": "",
|
||||
"Artifacts": "Артефакти",
|
||||
"Ask a question": "Задати питання",
|
||||
"Attach file": "Прикріпити файл",
|
||||
"Attention to detail": "Увага до деталей",
|
||||
"Audio": "Аудіо",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Скасувати",
|
||||
"Capabilities": "Можливості",
|
||||
"Change Password": "Змінити пароль",
|
||||
"Character": "",
|
||||
"Chat": "Чат",
|
||||
"Chat Background Image": "Фонове зображення чату",
|
||||
"Chat Bubble UI": "Чат у вигляді бульбашок",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Натисніть тут, щоб обрати",
|
||||
"Click here to select a csv file.": "Натисніть тут, щоб обрати csv-файл.",
|
||||
"Click here to select a py file.": "Натисніть тут, щоб обрати py-файл.",
|
||||
"Click here to select documents.": "Натисніть тут, щоб обрати документи.",
|
||||
"Click here to upload a workflow.json file.": "Натисніть тут, щоб завантажити файл workflow.json.",
|
||||
"click here.": "клацніть тут.",
|
||||
"Click on the user role button to change a user's role.": "Натисніть кнопку ролі користувача, щоб змінити роль користувача.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Відмовлено в дозволі на запис до буфера обміну. Будь ласка, перевірте налаштування вашого браузера, щоб надати необхідний доступ.",
|
||||
"Clone": "Клонувати",
|
||||
"Close": "Закрити",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Код успішно відформатовано",
|
||||
"Collection": "Колекція",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,10 +153,11 @@
|
|||
"Copy last code block": "Копіювати останній блок коду",
|
||||
"Copy last response": "Копіювати останню відповідь",
|
||||
"Copy Link": "Копіювати посилання",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Копіювання в буфер обміну виконано успішно!",
|
||||
"Create a model": "Створити модель",
|
||||
"Create Account": "Створити обліковий запис",
|
||||
"Create Knowledge": "",
|
||||
"Create Knowledge": "Створити знання",
|
||||
"Create new key": "Створити новий ключ",
|
||||
"Create new secret key": "Створити новий секретний ключ",
|
||||
"Created at": "Створено у",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Модель за замовчуванням оновлено",
|
||||
"Default Prompt Suggestions": "Пропозиції промтів замовчуванням",
|
||||
"Default User Role": "Роль користувача за замовчуванням",
|
||||
"delete": "видалити",
|
||||
"Delete": "Видалити",
|
||||
"Delete a model": "Видалити модель",
|
||||
"Delete All Chats": "Видалити усі чати",
|
||||
"Delete chat": "Видалити чат",
|
||||
"Delete Chat": "Видалити чат",
|
||||
"Delete chat?": "Видалити чат?",
|
||||
"Delete Doc": "Видалити док",
|
||||
"Delete function?": "Видалити функцію?",
|
||||
"Delete prompt?": "Видалити промт?",
|
||||
"delete this link": "видалити це посилання",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Документація",
|
||||
"Documents": "Документи",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "не встановлює жодних зовнішніх з'єднань, і ваші дані залишаються в безпеці на вашому локальному сервері.",
|
||||
"Don't Allow": "Не дозволяти",
|
||||
"Don't have an account?": "Немає облікового запису?",
|
||||
"don't install random functions from sources you don't trust.": "не встановлюйте випадкові функції з джерел, яким ви не довіряєте.",
|
||||
"don't install random tools from sources you don't trust.": "не встановлюйте випадкові інструменти з джерел, яким ви не довіряєте.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Завантажити",
|
||||
"Download canceled": "Завантаження скасовано",
|
||||
"Download Database": "Завантажити базу даних",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Перетягніть сюди файли, щоб додати до розмови",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр., '30s','10m'. Дійсні одиниці часу: 'с', 'хв', 'г'.",
|
||||
"Edit": "Редагувати",
|
||||
"Edit Doc": "Редагувати документ",
|
||||
"Edit Memory": "Редагувати пам'ять",
|
||||
"Edit User": "Редагувати користувача",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,32 +278,32 @@
|
|||
"Enter Your Password": "Введіть ваш пароль",
|
||||
"Enter Your Role": "Введіть вашу роль",
|
||||
"Error": "Помилка",
|
||||
"ERROR": "",
|
||||
"Experimental": "Експериментальне",
|
||||
"Export": "Експорт",
|
||||
"Export All Chats (All Users)": "Експортувати всі чати (всіх користувачів)",
|
||||
"Export chat (.json)": "Експорт чату (.json)",
|
||||
"Export Chats": "Експортувати чати",
|
||||
"Export Config to JSON File": "Експортувати конфігурацію у файл JSON",
|
||||
"Export Documents Mapping": "Експортувати відображення документів",
|
||||
"Export Functions": "Експорт функцій ",
|
||||
"Export LiteLLM config.yaml": "Експорт LiteLLM config.yaml",
|
||||
"Export Models": "Експорт моделей",
|
||||
"Export Prompts": "Експортувати промти",
|
||||
"Export Tools": "Експортувати інструменти",
|
||||
"External Models": "Зовнішні моделі",
|
||||
"Failed to add file.": "",
|
||||
"Failed to add file.": "Не вдалося додати файл.",
|
||||
"Failed to create API Key.": "Не вдалося створити API ключ.",
|
||||
"Failed to read clipboard contents": "Не вдалося прочитати вміст буфера обміну",
|
||||
"Failed to update settings": "Не вдалося оновити налаштування",
|
||||
"Failed to upload file.": "",
|
||||
"Failed to upload file.": "Не вдалося завантажити файл.",
|
||||
"February": "Лютий",
|
||||
"Feel free to add specific details": "Не соромтеся додавати конкретні деталі",
|
||||
"File": "Файл",
|
||||
"File added successfully.": "",
|
||||
"File content updated successfully.": "",
|
||||
"File added successfully.": "Файл успішно додано.",
|
||||
"File content updated successfully.": "Вміст файлу успішно оновлено.",
|
||||
"File Mode": "Файловий режим",
|
||||
"File not found.": "Файл не знайдено.",
|
||||
"File removed successfully.": "",
|
||||
"File removed successfully.": "Файл успішно видалено.",
|
||||
"File size should not exceed {{maxSize}} MB.": "Розмір файлу не повинен перевищувати {{maxSize}} МБ.",
|
||||
"Files": "Файли",
|
||||
"Filter is now globally disabled": "Фільтр глобально вимкнено",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Зображення",
|
||||
"Import Chats": "Імпортувати чати",
|
||||
"Import Config from JSON File": "Імпортувати конфігурацію з файлу JSON",
|
||||
"Import Documents Mapping": "Імпортувати відображення документів",
|
||||
"Import Functions": "Імпорт функцій ",
|
||||
"Import Models": "Імпорт моделей",
|
||||
"Import Prompts": "Імпортувати промти",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Встановіть з URL-адреси Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Миттєва автоматична відправка після транскрипції голосу",
|
||||
"Interface": "Інтерфейс",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Недійсний тег",
|
||||
"January": "Січень",
|
||||
"join our Discord for help.": "приєднуйтеся до нашого Discord для допомоги.",
|
||||
|
|
@ -381,11 +378,11 @@
|
|||
"Keep Alive": "Зберегти активність",
|
||||
"Keyboard shortcuts": "Клавіатурні скорочення",
|
||||
"Knowledge": "Знання",
|
||||
"Knowledge created successfully.": "",
|
||||
"Knowledge deleted successfully.": "",
|
||||
"Knowledge reset successfully.": "",
|
||||
"Knowledge updated successfully": "",
|
||||
"Landing Page Mode": "",
|
||||
"Knowledge created successfully.": "Знання успішно створено.",
|
||||
"Knowledge deleted successfully.": "Знання успішно видалено.",
|
||||
"Knowledge reset successfully.": "Знання успішно скинуто.",
|
||||
"Knowledge updated successfully": "Знання успішно оновлено",
|
||||
"Landing Page Mode": "Режим головної сторінки",
|
||||
"Language": "Мова",
|
||||
"large language models, locally.": "великими мовними моделями, локально.",
|
||||
"Last Active": "Остання активність",
|
||||
|
|
@ -446,15 +443,15 @@
|
|||
"More": "Більше",
|
||||
"Move to Top": "Перейти до початку",
|
||||
"Name": "Ім'я",
|
||||
"Name Tag": "Назва тегу",
|
||||
"Name your model": "Назвіть свою модель",
|
||||
"New Chat": "Новий чат",
|
||||
"New Password": "Новий пароль",
|
||||
"No content found": "",
|
||||
"No content found": "Контент не знайдено.",
|
||||
"No content to speak": "Нема чого говорити",
|
||||
"No file selected": "Файл не обрано",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "HTML, CSS або JavaScript контент не знайдено.",
|
||||
"No knowledge found": "Знання не знайдено.",
|
||||
"No results found": "Не знайдено жодного результату",
|
||||
"No search query generated": "Пошуковий запит не сформовано",
|
||||
"No source available": "Джерело не доступне",
|
||||
|
|
@ -479,13 +476,13 @@
|
|||
"On": "Увімк",
|
||||
"Only": "Тільки",
|
||||
"Only alphanumeric characters and hyphens are allowed in the command string.": "У рядку команди дозволено використовувати лише алфавітно-цифрові символи та дефіси.",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "Редагувати можна лише колекції, створіть нову базу знань, щоб редагувати або додавати документи.",
|
||||
"Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "Ой! Зачекайте, будь ласка! Ваші файли ще готуються. Ми робимо все, щоб вони були ідеальними. Будь ласка, будьте терплячі, ми повідомимо вам, коли вони будуть готові.",
|
||||
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Схоже, що URL-адреса невірна. Будь ласка, перевірте ще раз та спробуйте ще раз.",
|
||||
"Oops! There was an error in the previous response. Please try again or contact admin.": "Упс! У попередній відповіді сталася помилка. Будь ласка, спробуйте ще раз або зверніться до адміністратора.",
|
||||
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Упс! Ви використовуєте непідтримуваний метод (тільки для фронтенду). Будь ласка, обслуговуйте WebUI з бекенду.",
|
||||
"Open file": "Відкрити файл",
|
||||
"Open in full screen": "",
|
||||
"Open in full screen": "Відкрити на весь екран",
|
||||
"Open new chat": "Відкрити новий чат",
|
||||
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Open WebUI версія (v{{OPEN_WEBUI_VERSION}}) нижча за необхідну версію (v{{REQUIRED_VERSION}})",
|
||||
"OpenAI": "OpenAI",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Потрібен OpenAI URL/ключ.",
|
||||
"or": "або",
|
||||
"Other": "Інше",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Формат відповіді",
|
||||
"Overview": "Огляд",
|
||||
"page": "сторінка",
|
||||
|
|
@ -516,8 +514,8 @@
|
|||
"Plain text (.txt)": "Простий текст (.txt)",
|
||||
"Playground": "Майданчик",
|
||||
"Please carefully review the following warnings:": "Будь ласка, уважно ознайомтеся з наступними попередженнями:",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a reason": "",
|
||||
"Please fill in all fields.": "Будь ласка, заповніть всі поля.",
|
||||
"Please select a reason": "Будь ласка, виберіть причину",
|
||||
"Positive attitude": "Позитивне ставлення",
|
||||
"Previous 30 days": "Попередні 30 днів",
|
||||
"Previous 7 days": "Попередні 7 днів",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Модель переранжування встановлено на \"{{reranking_model}}\"",
|
||||
"Reset": "Скидання",
|
||||
"Reset Upload Directory": "Скинути каталог завантажень",
|
||||
"Reset Vector Storage": "Скинути векторне сховище",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Автокопіювання відповіді в буфер обміну",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Сповіщення про відповіді не можуть бути активовані, оскільки вам було відмовлено в доступі до веб-сайту. Будь ласка, відвідайте налаштування вашого браузера, щоб надати необхідний доступ.",
|
||||
"Response splitting": "Розбиття відповіді",
|
||||
|
|
@ -563,16 +561,16 @@
|
|||
"Save & Update": "Зберегти та оновити",
|
||||
"Save As Copy": "Зберегти як копію",
|
||||
"Save Tag": "Зберегти тег",
|
||||
"Saved": "",
|
||||
"Saved": "Збережено",
|
||||
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Збереження журналів чату безпосередньо в сховище вашого браузера більше не підтримується. Будь ласка, завантажте та видаліть журнали чату, натиснувши кнопку нижче. Не хвилюйтеся, ви можете легко повторно імпортувати журнали чату до бекенду через",
|
||||
"Scroll to bottom when switching between branches": "Перемотувати до кінця при перемиканні між гілками",
|
||||
"Search": "Пошук",
|
||||
"Search a model": "Шукати модель",
|
||||
"Search Chats": "Пошук в чатах",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Пошук документів",
|
||||
"Search Collection": "Шукати колекцію",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Пошук функцій",
|
||||
"Search Knowledge": "",
|
||||
"Search Knowledge": "Шукати знання",
|
||||
"Search Models": "Пошук моделей",
|
||||
"Search Prompts": "Пошук промтів",
|
||||
"Search Query Generation Prompt": "Підказка для формування пошукового промту",
|
||||
|
|
@ -592,7 +590,7 @@
|
|||
"Seed": "Сід",
|
||||
"Select a base model": "Обрати базову модель",
|
||||
"Select a engine": "Оберіть рушій",
|
||||
"Select a file to view or drag and drop a file to upload": "",
|
||||
"Select a file to view or drag and drop a file to upload": "Виберіть файл для перегляду або перетягніть і скиньте файл для завантаження.",
|
||||
"Select a function": "Оберіть функцію",
|
||||
"Select a model": "Оберіть модель",
|
||||
"Select a pipeline": "Оберіть конвеєр",
|
||||
|
|
@ -600,7 +598,7 @@
|
|||
"Select a tool": "Оберіть інструмент",
|
||||
"Select an Ollama instance": "Оберіть екземпляр Ollama",
|
||||
"Select Engine": "Виберіть двигун",
|
||||
"Select Knowledge": "",
|
||||
"Select Knowledge": "Вибрати знання",
|
||||
"Select model": "Обрати модель",
|
||||
"Select only one model to call": "Оберіть лише одну модель для виклику",
|
||||
"Selected model(s) do not support image inputs": "Вибрані модель(і) не підтримують вхідні зображення",
|
||||
|
|
@ -637,15 +635,16 @@
|
|||
"Show your support!": "Підтримайте нас!",
|
||||
"Showcased creativity": "Продемонстрований креатив",
|
||||
"Sign in": "Увійти",
|
||||
"Sign in to {{WEBUI_NAME}}": "",
|
||||
"Sign in to {{WEBUI_NAME}}": "Увійти в {{WEBUI_NAME}}",
|
||||
"Sign Out": "Вийти",
|
||||
"Sign up": "Зареєструватися",
|
||||
"Sign up to {{WEBUI_NAME}}": "",
|
||||
"Signing in to {{WEBUI_NAME}}": "",
|
||||
"Sign up to {{WEBUI_NAME}}": "Зареєструватися в {{WEBUI_NAME}}",
|
||||
"Signing in to {{WEBUI_NAME}}": "Увійти в {{WEBUI_NAME}}",
|
||||
"Source": "Джерело",
|
||||
"Speech Playback Speed": "Швидкість відтворення мовлення",
|
||||
"Speech recognition error: {{error}}": "Помилка розпізнавання мови: {{error}}",
|
||||
"Speech-to-Text Engine": "Система розпізнавання мови",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Символ зупинки",
|
||||
"Stream Chat Response": "Відповідь стрім-чату",
|
||||
"STT Model": "Модель STT ",
|
||||
|
|
@ -657,7 +656,7 @@
|
|||
"Suggested": "Запропоновано",
|
||||
"Support": "Підтримати",
|
||||
"Support this plugin:": "Підтримайте цей плагін:",
|
||||
"Sync directory": "",
|
||||
"Sync directory": "Синхронізувати каталог",
|
||||
"System": "Система",
|
||||
"System Prompt": "Системний промт",
|
||||
"Tags": "Теги",
|
||||
|
|
@ -668,6 +667,7 @@
|
|||
"Template": "Шаблон",
|
||||
"Temporary Chat": "Тимчасовий чат",
|
||||
"Text Completion": "Завершення тексту",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Система синтезу мови",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Дякуємо за ваш відгук!",
|
||||
|
|
@ -680,12 +680,13 @@
|
|||
"This action cannot be undone. Do you wish to continue?": "Цю дію не можна скасувати. Ви бажаєте продовжити?",
|
||||
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Це забезпечує збереження ваших цінних розмов у безпечному бекенд-сховищі. Дякуємо!",
|
||||
"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Це експериментальна функція, вона може працювати не так, як очікувалося, і може бути змінена в будь-який час.",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Цей варіант видалить усі існуючі файли в колекції та замінить їх новими завантаженими файлами.",
|
||||
"This will delete": "Це призведе до видалення",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Це скине базу знань і синхронізує всі файли. Ви бажаєте продовжити?",
|
||||
"Thorough explanation": "Детальне пояснення",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Потрібна URL-адреса сервера Tika.",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Порада: Оновіть кілька слотів змінних послідовно, натискаючи клавішу табуляції у вікні чату після кожної заміни.",
|
||||
"Title": "Заголовок",
|
||||
"Title (e.g. Tell me a fun fact)": "Заголовок (напр., Розкажіть мені цікавий факт)",
|
||||
|
|
@ -695,7 +696,7 @@
|
|||
"To access the available model names for downloading,": "Щоб отримати доступ до назв доступних для завантаження моделей,",
|
||||
"To access the GGUF models available for downloading,": "Щоб отримати доступ до моделей GGUF, які можна завантажити,,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Щоб отримати доступ до веб-інтерфейсу, зверніться до адміністратора. Адміністратори можуть керувати статусами користувачів з Панелі адміністратора.",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Щоб прикріпити базу знань тут, спочатку додайте їх до робочого простору \"Знання\".",
|
||||
"to chat input.": "в чаті.",
|
||||
"To select actions here, add them to the \"Functions\" workspace first.": "Щоб вибрати дії тут, спочатку додайте їх до робочої області \"Функції\".",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Щоб обрати фільтри тут, спочатку додайте їх до робочої області \"Функції\".",
|
||||
|
|
@ -703,6 +704,7 @@
|
|||
"Today": "Сьогодні",
|
||||
"Toggle settings": "Переключити налаштування",
|
||||
"Toggle sidebar": "Переключити бокову панель",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "Токени для збереження при оновленні контексту (num_keep)",
|
||||
"Tool created successfully": "Інструмент успішно створено",
|
||||
"Tool deleted successfully": "Інструмент успішно видалено",
|
||||
|
|
@ -730,18 +732,17 @@
|
|||
"Update and Copy Link": "Оновлення та копіювання посилання",
|
||||
"Update for the latest features and improvements.": "Оновіть програми для нових функцій та покращень.",
|
||||
"Update password": "Оновити пароль",
|
||||
"Updated": "",
|
||||
"Updated": "Завантажено",
|
||||
"Updated at": "Оновлено на",
|
||||
"Upload": "Завантажити",
|
||||
"Upload a GGUF model": "Завантажити GGUF модель",
|
||||
"Upload directory": "",
|
||||
"Upload files": "",
|
||||
"Upload directory": "Завантажити каталог",
|
||||
"Upload files": "Завантажити файли",
|
||||
"Upload Files": "Завантажити файли",
|
||||
"Upload Pipeline": "Завантажити конвеєр",
|
||||
"Upload Progress": "Прогрес завантаження",
|
||||
"URL Mode": "Режим URL-адреси",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Для введення промтів до веб-сторінок (URL) або вибору документів, будь ласка, використовуйте символ '#'.",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Використовуйте '#' у полі введення підказки, щоб завантажити та включити свої знання.",
|
||||
"Use Gravatar": "Змінити аватар",
|
||||
"Use Initials": "Використовувати ініціали",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
@ -758,7 +759,7 @@
|
|||
"variable": "змінна",
|
||||
"variable to have them replaced with clipboard content.": "змінна, щоб замінити їх вмістом буфера обміну.",
|
||||
"Version": "Версія",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "Версія {{selectedVersion}} з {{totalVersions}}",
|
||||
"Voice": "Голос",
|
||||
"Warning": "Увага!",
|
||||
"Warning:": "Увага:",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add custom prompt": "Thêm prompt tùy chỉnh",
|
||||
"Add Docs": "Thêm tài liệu",
|
||||
"Add Files": "Thêm tệp",
|
||||
"Add Memory": "Thêm bộ nhớ",
|
||||
"Add message": "Thêm tin nhắn",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Quản trị viên luôn có quyền truy cập vào tất cả các tool; người dùng cần các tools được chỉ định cho mỗi mô hình trong workspace.",
|
||||
"Advanced Parameters": "Các tham số Nâng cao",
|
||||
"Advanced Params": "Các tham số Nâng cao",
|
||||
"all": "tất cả",
|
||||
"All Documents": "Tất cả tài liệu",
|
||||
"All Users": "Danh sách người sử dụng",
|
||||
"Allow": "Cho phép",
|
||||
"Allow Chat Deletion": "Cho phép Xóa nội dung chat",
|
||||
"Allow Chat Editing": "Cho phép Sửa nội dung chat",
|
||||
"Allow non-local voices": "Cho phép giọng nói không bản xứ",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "Hủy bỏ",
|
||||
"Capabilities": "Năng lực",
|
||||
"Change Password": "Đổi Mật khẩu",
|
||||
"Character": "",
|
||||
"Chat": "Trò chuyện",
|
||||
"Chat Background Image": "Hình nền trò chuyện",
|
||||
"Chat Bubble UI": "Bảng chat",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "Bấm vào đây để chọn",
|
||||
"Click here to select a csv file.": "Nhấn vào đây để chọn tệp csv",
|
||||
"Click here to select a py file.": "Nhấn vào đây để chọn tệp py",
|
||||
"Click here to select documents.": "Bấm vào đây để chọn tài liệu.",
|
||||
"Click here to upload a workflow.json file.": "Bấm vào đây để upload file worklow.json",
|
||||
"click here.": "bấm vào đây.",
|
||||
"Click on the user role button to change a user's role.": "Bấm vào nút trong cột VAI TRÒ để thay đổi quyền của người sử dụng.",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Quyền ghi vào clipboard bị từ chối. Vui lòng kiểm tra cài đặt trên trình duyệt của bạn để được cấp quyền truy cập cần thiết.",
|
||||
"Clone": "Nhân bản",
|
||||
"Close": "Đóng",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "Mã được định dạng thành công",
|
||||
"Collection": "Tổng hợp mọi tài liệu",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "Sao chép khối mã cuối cùng",
|
||||
"Copy last response": "Sao chép phản hồi cuối cùng",
|
||||
"Copy Link": "Sao chép link",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "Sao chép vào clipboard thành công!",
|
||||
"Create a model": "Tạo model",
|
||||
"Create Account": "Tạo Tài khoản",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "Mô hình mặc định đã được cập nhật",
|
||||
"Default Prompt Suggestions": "Đề xuất prompt mặc định",
|
||||
"Default User Role": "Vai trò mặc định",
|
||||
"delete": "xóa",
|
||||
"Delete": "Xóa",
|
||||
"Delete a model": "Xóa mô hình",
|
||||
"Delete All Chats": "Xóa mọi cuộc Chat",
|
||||
"Delete chat": "Xóa nội dung chat",
|
||||
"Delete Chat": "Xóa chat",
|
||||
"Delete chat?": "Xóa chat?",
|
||||
"Delete Doc": "Xóa tài liệu",
|
||||
"Delete function?": "Xóa function?",
|
||||
"Delete prompt?": "Xóa prompt?",
|
||||
"delete this link": "Xóa link này",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "Tài liệu",
|
||||
"Documents": "Tài liệu",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "không thực hiện bất kỳ kết nối ngoài nào, và dữ liệu của bạn vẫn được lưu trữ an toàn trên máy chủ lưu trữ cục bộ của bạn.",
|
||||
"Don't Allow": "Không Cho phép",
|
||||
"Don't have an account?": "Không có tài khoản?",
|
||||
"don't install random functions from sources you don't trust.": "không cài đặt các function từ các nguồn mà bạn không tin tưởng.",
|
||||
"don't install random tools from sources you don't trust.": "không cài đặt các tools từ các nguồn mà bạn không tin tưởng.",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "Tải về",
|
||||
"Download canceled": "Đã hủy download",
|
||||
"Download Database": "Tải xuống Cơ sở dữ liệu",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "Thả bất kỳ tệp nào ở đây để thêm vào nội dung chat",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.",
|
||||
"Edit": "Chỉnh sửa",
|
||||
"Edit Doc": "Thay đổi tài liệu",
|
||||
"Edit Memory": "Sửa Memory",
|
||||
"Edit User": "Thay đổi thông tin người sử dụng",
|
||||
"ElevenLabs": "",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"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",
|
||||
"ERROR": "",
|
||||
"Experimental": "Thử nghiệm",
|
||||
"Export": "Xuất khẩu",
|
||||
"Export All Chats (All Users)": "Tải về tất cả nội dung chat (tất cả mọi người)",
|
||||
"Export chat (.json)": "Tải chat (.json)",
|
||||
"Export Chats": "Tải nội dung chat về máy",
|
||||
"Export Config to JSON File": "",
|
||||
"Export Documents Mapping": "Tải cấu trúc tài liệu về máy",
|
||||
"Export Functions": "Tải Functions về máy",
|
||||
"Export LiteLLM config.yaml": "",
|
||||
"Export Models": "Tải Models về máy",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "Hình ảnh",
|
||||
"Import Chats": "Nạp lại nội dung chat",
|
||||
"Import Config from JSON File": "",
|
||||
"Import Documents Mapping": "Nạp cấu trúc tài liệu",
|
||||
"Import Functions": "Nạp Functions",
|
||||
"Import Models": "Nạp model",
|
||||
"Import Prompts": "Nạp các prompt lên hệ thống",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "Cài đặt từ Github URL",
|
||||
"Instant Auto-Send After Voice Transcription": "Tự động gửi ngay lập tức sau khi phiên dịch giọng nói",
|
||||
"Interface": "Giao diện",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "Tag không hợp lệ",
|
||||
"January": "Tháng 1",
|
||||
"join our Discord for help.": "tham gia Discord của chúng tôi để được trợ giúp.",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "Thêm",
|
||||
"Move to Top": "",
|
||||
"Name": "Tên",
|
||||
"Name Tag": "Tên Thẻ",
|
||||
"Name your model": "Tên model",
|
||||
"New Chat": "Tạo chat mới",
|
||||
"New Password": "Mật khẩu mới",
|
||||
"No content found": "",
|
||||
"No content to speak": "Không có nội dung để nói",
|
||||
"No file selected": "Chưa có tệp nào được chọn",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No results found": "Không tìm thấy kết quả",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "Yêu cầu URL/Key API OpenAI.",
|
||||
"or": "hoặc",
|
||||
"Other": "Khác",
|
||||
"OUTPUT": "",
|
||||
"Output format": "",
|
||||
"Overview": "",
|
||||
"page": "",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model được đặt thành \"{{reranking_model}}\"",
|
||||
"Reset": "Xóa toàn bộ",
|
||||
"Reset Upload Directory": "Xóa toàn bộ thư mục Upload",
|
||||
"Reset Vector Storage": "Cài đặt lại Vector Storage",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Không thể kích hoạt thông báo vì trang web không cấp quyền. Vui lòng truy cập cài đặt trình duyệt của bạn để cấp quyền cần thiết.",
|
||||
"Response splitting": "",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "Tìm model",
|
||||
"Search Chats": "Tìm kiếm các cuộc Chat",
|
||||
"Search Collection": "",
|
||||
"Search Documents": "Tìm tài liệu",
|
||||
"search for tags": "",
|
||||
"Search Functions": "Tìm kiếm Functions",
|
||||
"Search Knowledge": "",
|
||||
"Search Models": "Tìm model",
|
||||
|
|
@ -643,6 +641,7 @@
|
|||
"Speech Playback Speed": "",
|
||||
"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
|
||||
"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "Trình tự Dừng",
|
||||
"Stream Chat Response": "",
|
||||
"STT Model": "",
|
||||
|
|
@ -665,6 +664,7 @@
|
|||
"Template": "Mẫu",
|
||||
"Temporary Chat": "Chat nháp",
|
||||
"Text Completion": "Hoàn tất Văn bản",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "Công cụ Chuyển Văn bản thành Giọng nói",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Cám ơn bạn đã gửi phản hồi!",
|
||||
|
|
@ -683,6 +683,7 @@
|
|||
"Thorough explanation": "Giải thích kỹ lưỡng",
|
||||
"Tika": "",
|
||||
"Tika Server URL required.": "Bắt buộc phải nhập URL cho Tika Server ",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Mẹo: Cập nhật nhiều khe biến liên tiếp bằng cách nhấn phím tab trong đầu vào trò chuyện sau mỗi việc thay thế.",
|
||||
"Title": "Tiêu đề",
|
||||
"Title (e.g. Tell me a fun fact)": "Tiêu đề (ví dụ: Hãy kể cho tôi một sự thật thú vị về...)",
|
||||
|
|
@ -700,6 +701,7 @@
|
|||
"Today": "Hôm nay",
|
||||
"Toggle settings": "Bật/tắt cài đặt",
|
||||
"Toggle sidebar": "Bật/tắt thanh bên",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "",
|
||||
"Tool created successfully": "Tool đã được tạo thành công",
|
||||
"Tool deleted successfully": "Tool đã bị xóa",
|
||||
|
|
@ -738,7 +740,6 @@
|
|||
"Upload Progress": "Tiến trình tải tệp lên hệ thống",
|
||||
"URL Mode": "Chế độ URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and select your documents.": "Sử dụng '#' trong đầu vào của prompt để tải về và lựa chọn tài liệu của bạn cần truy vấn.",
|
||||
"Use Gravatar": "Sử dụng Gravatar",
|
||||
"Use Initials": "Sử dụng tên viết tắt",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "添加内容",
|
||||
"Add content here": "在此添加内容",
|
||||
"Add custom prompt": "添加自定义提示词",
|
||||
"Add Docs": "添加文档",
|
||||
"Add Files": "添加文件",
|
||||
"Add Memory": "添加记忆",
|
||||
"Add message": "添加消息",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "管理员拥有所有工具的访问权限;用户则需在工作空间中为每个模型单独分配工具。",
|
||||
"Advanced Parameters": "高级参数",
|
||||
"Advanced Params": "高级参数",
|
||||
"all": "所有",
|
||||
"All Documents": "所有文档",
|
||||
"All Users": "所有用户",
|
||||
"Allow": "允许",
|
||||
"Allow Chat Deletion": "允许删除对话记录",
|
||||
"Allow Chat Editing": "允许编辑对话记录",
|
||||
"Allow non-local voices": "允许调用非本地音色",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "取消",
|
||||
"Capabilities": "能力",
|
||||
"Change Password": "更改密码",
|
||||
"Character": "",
|
||||
"Chat": "对话",
|
||||
"Chat Background Image": "对话背景图片",
|
||||
"Chat Bubble UI": "气泡样式对话",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "点击这里选择",
|
||||
"Click here to select a csv file.": "单击此处选择 csv 文件。",
|
||||
"Click here to select a py file.": "单击此处选择 py 文件。",
|
||||
"Click here to select documents.": "单击选择文档",
|
||||
"Click here to upload a workflow.json file.": "单击此处上传 workflow.json 文件。",
|
||||
"click here.": "点击这里。",
|
||||
"Click on the user role button to change a user's role.": "点击角色前方的组别按钮以更改用户所属权限组。",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "写入剪贴板时被拒绝。请检查浏览器设置,授予必要权限。",
|
||||
"Clone": "复制",
|
||||
"Close": "关闭",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "代码格式化成功",
|
||||
"Collection": "文件集",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "复制最后一个代码块中的代码",
|
||||
"Copy last response": "复制最后一次回复内容",
|
||||
"Copy Link": "复制链接",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "成功复制到剪贴板!",
|
||||
"Create a model": "创建一个模型",
|
||||
"Create Account": "创建账号",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "默认模型已更新",
|
||||
"Default Prompt Suggestions": "默认提示词建议",
|
||||
"Default User Role": "默认用户角色",
|
||||
"delete": "删除",
|
||||
"Delete": "删除",
|
||||
"Delete a model": "删除一个模型",
|
||||
"Delete All Chats": "删除所有对话记录",
|
||||
"Delete chat": "删除对话记录",
|
||||
"Delete Chat": "删除对话记录",
|
||||
"Delete chat?": "删除对话记录?",
|
||||
"Delete Doc": "删除文档",
|
||||
"Delete function?": "删除函数?",
|
||||
"Delete prompt?": "删除提示词?",
|
||||
"delete this link": "此处删除这个链接",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "帮助文档",
|
||||
"Documents": "文档",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "不会与外部建立任何连接,您的数据会安全地存储在本地托管的服务器上。",
|
||||
"Don't Allow": "不允许",
|
||||
"Don't have an account?": "没有账号?",
|
||||
"don't install random functions from sources you don't trust.": "切勿随意从不完全可信的来源安装函数。",
|
||||
"don't install random tools from sources you don't trust.": "切勿随意从不完全可信的来源安装工具。",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "下载",
|
||||
"Download canceled": "下载已取消",
|
||||
"Download Database": "下载数据库",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
|
||||
"Edit": "编辑",
|
||||
"Edit Doc": "编辑文档",
|
||||
"Edit Memory": "编辑记忆",
|
||||
"Edit User": "编辑用户",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "输入您的密码",
|
||||
"Enter Your Role": "输入您的权限组",
|
||||
"Error": "错误",
|
||||
"ERROR": "",
|
||||
"Experimental": "实验性",
|
||||
"Export": "导出",
|
||||
"Export All Chats (All Users)": "导出所有用户对话",
|
||||
"Export chat (.json)": "JSON 文件 (.json)",
|
||||
"Export Chats": "导出对话",
|
||||
"Export Config to JSON File": "导出配置信息至 JSON 文件中",
|
||||
"Export Documents Mapping": "导出文档映射",
|
||||
"Export Functions": "导出函数",
|
||||
"Export LiteLLM config.yaml": "导出 LteLLM config.yaml 文件",
|
||||
"Export Models": "导出模型",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "图像",
|
||||
"Import Chats": "导入对话记录",
|
||||
"Import Config from JSON File": "导入 JSON 文件中的配置信息",
|
||||
"Import Documents Mapping": "导入文档映射",
|
||||
"Import Functions": "导入函数",
|
||||
"Import Models": "导入模型",
|
||||
"Import Prompts": "导入提示词",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "从 Github URL 安装",
|
||||
"Instant Auto-Send After Voice Transcription": "语音转录文字后即时自动发送",
|
||||
"Interface": "界面",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "无效标签",
|
||||
"January": "一月",
|
||||
"join our Discord for help.": "加入我们的 Discord 寻求帮助。",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "更多",
|
||||
"Move to Top": "移动到顶部",
|
||||
"Name": "名称",
|
||||
"Name Tag": "标签",
|
||||
"Name your model": "为您的模型命名",
|
||||
"New Chat": "新对话",
|
||||
"New Password": "新密码",
|
||||
"No content found": "未发现内容",
|
||||
"No content to speak": "没有内容可朗读",
|
||||
"No file selected": "未选中文件",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "未找到 HTML、CSS 或 JavaScript 内容。",
|
||||
"No knowledge found": "未找到知识",
|
||||
"No results found": "未找到结果",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "需要 OpenAI URL/Key",
|
||||
"or": "或",
|
||||
"Other": "其他",
|
||||
"OUTPUT": "",
|
||||
"Output format": "输出格式",
|
||||
"Overview": "概述",
|
||||
"page": "页",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "重排模型设置为 \"{{reranking_model}}\"",
|
||||
"Reset": "重置",
|
||||
"Reset Upload Directory": "重置上传目录",
|
||||
"Reset Vector Storage": "重置向量存储",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "自动复制回复到剪贴板",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "无法激活回复时发送通知。请检查浏览器设置,并授予必要的访问权限。",
|
||||
"Response splitting": "拆分回复",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "搜索模型",
|
||||
"Search Chats": "搜索对话",
|
||||
"Search Collection": "搜索文件集",
|
||||
"Search Documents": "搜索文档",
|
||||
"search for tags": "",
|
||||
"Search Functions": "搜索函数",
|
||||
"Search Knowledge": "搜索知识",
|
||||
"Search Models": "搜索模型",
|
||||
|
|
@ -643,6 +641,7 @@
|
|||
"Speech Playback Speed": "语音播放速度",
|
||||
"Speech recognition error: {{error}}": "语音识别错误:{{error}}",
|
||||
"Speech-to-Text Engine": "语音转文本引擎",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "停止序列 (Stop Sequence)",
|
||||
"Stream Chat Response": "以流式返回对话响应",
|
||||
"STT Model": "语音转文本模型",
|
||||
|
|
@ -665,6 +664,7 @@
|
|||
"Template": "模板",
|
||||
"Temporary Chat": "临时对话",
|
||||
"Text Completion": "文本完成",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "文本转语音引擎",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "感谢您的反馈!",
|
||||
|
|
@ -683,6 +683,7 @@
|
|||
"Thorough explanation": "解释较为详细",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "请输入 Tika 服务器地址。",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替换后,在对话输入中按 Tab 键可以连续更新多个变量。",
|
||||
"Title": "标题",
|
||||
"Title (e.g. Tell me a fun fact)": "标题(例如 给我讲一个有趣的事实)",
|
||||
|
|
@ -700,6 +701,7 @@
|
|||
"Today": "今天",
|
||||
"Toggle settings": "切换设置",
|
||||
"Toggle sidebar": "切换侧边栏",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "在语境刷新时需保留的 Tokens",
|
||||
"Tool created successfully": "工具创建成功",
|
||||
"Tool deleted successfully": "工具删除成功",
|
||||
|
|
@ -738,7 +740,6 @@
|
|||
"Upload Progress": "上传进度",
|
||||
"URL Mode": "URL 模式",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "在输入框中输入'#'号来加载你需要的知识库内容。",
|
||||
"Use '#' in the prompt input to load and select your documents.": "在输入框中输入'#'号来选择你需要发送的文档。",
|
||||
"Use Gravatar": "使用来自 Gravatar 的头像",
|
||||
"Use Initials": "使用首个字符作为头像",
|
||||
"use_mlock (Ollama)": "use_mlock(Ollama)",
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
"Add Content": "新增內容",
|
||||
"Add content here": "在此新增內容",
|
||||
"Add custom prompt": "新增自訂提示詞",
|
||||
"Add Docs": "新增文件",
|
||||
"Add Files": "新增檔案",
|
||||
"Add Memory": "新增記憶",
|
||||
"Add message": "新增訊息",
|
||||
|
|
@ -43,10 +42,8 @@
|
|||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "管理員可以隨時使用所有工具;使用者則需在工作區中為每個模型分配工具。",
|
||||
"Advanced Parameters": "進階參數",
|
||||
"Advanced Params": "進階參數",
|
||||
"all": "全部",
|
||||
"All Documents": "所有文件",
|
||||
"All Users": "所有使用者",
|
||||
"Allow": "允許",
|
||||
"Allow Chat Deletion": "允許刪除對話紀錄",
|
||||
"Allow Chat Editing": "允許編輯對話",
|
||||
"Allow non-local voices": "允許非本機語音",
|
||||
|
|
@ -98,6 +95,7 @@
|
|||
"Cancel": "取消",
|
||||
"Capabilities": "功能",
|
||||
"Change Password": "修改密碼",
|
||||
"Character": "",
|
||||
"Chat": "對話",
|
||||
"Chat Background Image": "對話背景圖片",
|
||||
"Chat Bubble UI": "對話氣泡介面",
|
||||
|
|
@ -120,13 +118,13 @@
|
|||
"Click here to select": "點選這裡選擇",
|
||||
"Click here to select a csv file.": "點選這裡選擇 CSV 檔案。",
|
||||
"Click here to select a py file.": "點選這裡選擇 Python 檔案。",
|
||||
"Click here to select documents.": "點選這裡選擇文件。",
|
||||
"Click here to upload a workflow.json file.": "點選這裡上傳 workflow.json 檔案。",
|
||||
"click here.": "點選這裡。",
|
||||
"Click on the user role button to change a user's role.": "點選使用者角色按鈕變更使用者的角色。",
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "剪貼簿寫入權限遭拒。請檢查您的瀏覽器設定,授予必要的存取權限。",
|
||||
"Clone": "複製",
|
||||
"Close": "關閉",
|
||||
"Code execution": "",
|
||||
"Code formatted successfully": "程式碼格式化成功",
|
||||
"Collection": "收藏",
|
||||
"ComfyUI": "ComfyUI",
|
||||
|
|
@ -155,6 +153,7 @@
|
|||
"Copy last code block": "複製最後一個程式碼區塊",
|
||||
"Copy last response": "複製最後一個回應",
|
||||
"Copy Link": "複製連結",
|
||||
"Copy to clipboard": "",
|
||||
"Copying to clipboard was successful!": "成功複製到剪貼簿!",
|
||||
"Create a model": "建立模型",
|
||||
"Create Account": "建立帳號",
|
||||
|
|
@ -180,14 +179,12 @@
|
|||
"Default model updated": "預設模型已更新",
|
||||
"Default Prompt Suggestions": "預設提示詞建議",
|
||||
"Default User Role": "預設使用者角色",
|
||||
"delete": "刪除",
|
||||
"Delete": "刪除",
|
||||
"Delete a model": "刪除模型",
|
||||
"Delete All Chats": "刪除所有對話紀錄",
|
||||
"Delete chat": "刪除對話紀錄",
|
||||
"Delete Chat": "刪除對話紀錄",
|
||||
"Delete chat?": "刪除對話紀錄?",
|
||||
"Delete Doc": "刪除文件",
|
||||
"Delete function?": "刪除函式?",
|
||||
"Delete prompt?": "刪除提示詞?",
|
||||
"delete this link": "刪除此連結",
|
||||
|
|
@ -215,7 +212,6 @@
|
|||
"Documentation": "文件",
|
||||
"Documents": "文件",
|
||||
"does not make any external connections, and your data stays securely on your locally hosted server.": "不會建立任何外部連線,而且您的資料會安全地儲存在您本機伺服器上。",
|
||||
"Don't Allow": "不允許",
|
||||
"Don't have an account?": "還沒註冊帳號嗎?",
|
||||
"don't install random functions from sources you don't trust.": "請勿從您無法信任的來源安裝隨機函式。",
|
||||
"don't install random tools from sources you don't trust.": "請勿從您無法信任的來源安裝隨機工具。",
|
||||
|
|
@ -224,10 +220,11 @@
|
|||
"Download": "下載",
|
||||
"Download canceled": "已取消下載",
|
||||
"Download Database": "下載資料庫",
|
||||
"Drop a chat export file here to import it.": "",
|
||||
"Drop any files here to add to the conversation": "拖拽任意檔案到此處以新增至對話",
|
||||
"Drop Chat Export": "",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如:'30s'、'10m'。有效的時間單位為 's'、'm'、'h'。",
|
||||
"Edit": "編輯",
|
||||
"Edit Doc": "編輯文件",
|
||||
"Edit Memory": "編輯記憶",
|
||||
"Edit User": "編輯使用者",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
|
|
@ -281,13 +278,13 @@
|
|||
"Enter Your Password": "輸入您的密碼",
|
||||
"Enter Your Role": "輸入您的角色",
|
||||
"Error": "錯誤",
|
||||
"ERROR": "",
|
||||
"Experimental": "實驗性功能",
|
||||
"Export": "匯出",
|
||||
"Export All Chats (All Users)": "匯出所有對話紀錄(所有使用者)",
|
||||
"Export chat (.json)": "匯出對話紀錄(.json)",
|
||||
"Export Chats": "匯出對話紀錄",
|
||||
"Export Config to JSON File": "將設定匯出為 JSON 檔案",
|
||||
"Export Documents Mapping": "匯出文件對應",
|
||||
"Export Functions": "匯出函式",
|
||||
"Export LiteLLM config.yaml": "匯出 LiteLLM config.yaml",
|
||||
"Export Models": "匯出模型",
|
||||
|
|
@ -357,7 +354,6 @@
|
|||
"Images": "圖片",
|
||||
"Import Chats": "匯入對話紀錄",
|
||||
"Import Config from JSON File": "從 JSON 檔案匯入設定",
|
||||
"Import Documents Mapping": "匯入文件對應",
|
||||
"Import Functions": "匯入函式",
|
||||
"Import Models": "匯入模型",
|
||||
"Import Prompts": "匯入提示詞",
|
||||
|
|
@ -369,6 +365,7 @@
|
|||
"Install from Github URL": "從 GitHub URL 安裝",
|
||||
"Instant Auto-Send After Voice Transcription": "語音轉錄後立即自動傳送",
|
||||
"Interface": "介面",
|
||||
"Invalid file format.": "",
|
||||
"Invalid Tag": "無效標籤",
|
||||
"January": "1 月",
|
||||
"join our Discord for help.": "加入我們的 Discord 以尋求協助。",
|
||||
|
|
@ -446,13 +443,13 @@
|
|||
"More": "更多",
|
||||
"Move to Top": "移至頂端",
|
||||
"Name": "名稱",
|
||||
"Name Tag": "名稱標籤",
|
||||
"Name your model": "為您的模型命名",
|
||||
"New Chat": "新增對話",
|
||||
"New Password": "新密碼",
|
||||
"No content found": "找不到內容",
|
||||
"No content to speak": "沒有要朗讀的內容",
|
||||
"No file selected": "未選取檔案",
|
||||
"No files found.": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "找不到 HTML、CSS 或 JavaScript 內容。",
|
||||
"No knowledge found": "找不到知識",
|
||||
"No results found": "找不到任何結果",
|
||||
|
|
@ -495,6 +492,7 @@
|
|||
"OpenAI URL/Key required.": "需要 OpenAI URL/金鑰。",
|
||||
"or": "或",
|
||||
"Other": "其他",
|
||||
"OUTPUT": "",
|
||||
"Output format": "輸出格式",
|
||||
"Overview": "概覽",
|
||||
"page": "頁面",
|
||||
|
|
@ -547,7 +545,7 @@
|
|||
"Reranking model set to \"{{reranking_model}}\"": "重新排序模型已設定為 \"{{reranking_model}}\"",
|
||||
"Reset": "重設",
|
||||
"Reset Upload Directory": "重設上傳目錄",
|
||||
"Reset Vector Storage": "重設向量儲存空間",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response AutoCopy to Clipboard": "自動將回應複製到剪貼簿",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "無法啟用回應通知,因為網站權限已遭拒。請前往瀏覽器設定以授予必要存取權限。",
|
||||
"Response splitting": "回應分割",
|
||||
|
|
@ -570,7 +568,7 @@
|
|||
"Search a model": "搜尋模型",
|
||||
"Search Chats": "搜尋對話",
|
||||
"Search Collection": "搜尋集合",
|
||||
"Search Documents": "搜尋文件",
|
||||
"search for tags": "",
|
||||
"Search Functions": "搜尋函式",
|
||||
"Search Knowledge": "搜尋知識庫",
|
||||
"Search Models": "搜尋模型",
|
||||
|
|
@ -644,6 +642,7 @@
|
|||
"Speech Playback Speed": "語音播放速度",
|
||||
"Speech recognition error: {{error}}": "語音辨識錯誤:{{error}}",
|
||||
"Speech-to-Text Engine": "語音轉文字 (STT) 引擎",
|
||||
"Stop": "",
|
||||
"Stop Sequence": "停止序列",
|
||||
"Stream Chat Response": "串流對話回應",
|
||||
"STT Model": "語音轉文字 (STT) 模型",
|
||||
|
|
@ -666,6 +665,7 @@
|
|||
"Template": "範本",
|
||||
"Temporary Chat": "臨時對話",
|
||||
"Text Completion": "文字補全",
|
||||
"Text Splitter": "",
|
||||
"Text-to-Speech Engine": "文字轉語音引擎",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "感謝您的回饋!",
|
||||
|
|
@ -684,6 +684,7 @@
|
|||
"Thorough explanation": "詳細解釋",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "需要 Tika 伺服器 URL。",
|
||||
"Tiktoken": "",
|
||||
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替換後按下對話輸入框中的 Tab 鍵,即可連續更新多個變數欄位。",
|
||||
"Title": "標題",
|
||||
"Title (e.g. Tell me a fun fact)": "標題(例如:告訴我一個有趣的事實)",
|
||||
|
|
@ -701,6 +702,7 @@
|
|||
"Today": "今天",
|
||||
"Toggle settings": "切換設定",
|
||||
"Toggle sidebar": "切換側邊欄",
|
||||
"Token": "",
|
||||
"Tokens To Keep On Context Refresh (num_keep)": "上下文重新整理時要保留的 token 數 (num_keep)",
|
||||
"Tool created successfully": "成功建立工具",
|
||||
"Tool deleted successfully": "成功刪除工具",
|
||||
|
|
@ -739,7 +741,6 @@
|
|||
"Upload Progress": "上傳進度",
|
||||
"URL Mode": "URL 模式",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "在提示詞輸入中使用 '#' 來載入並包含您的知識。",
|
||||
"Use '#' in the prompt input to load and select your documents.": "在提示詞輸入中使用 '#' 來載入和選擇您的文件。",
|
||||
"Use Gravatar": "使用 Gravatar",
|
||||
"Use Initials": "使用姓名縮寫",
|
||||
"use_mlock (Ollama)": "使用 mlock (Ollama)",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
import { getKnowledgeItems } from '$lib/apis/knowledge';
|
||||
import { getFunctions } from '$lib/apis/functions';
|
||||
import { getModels as _getModels, getVersionUpdates } from '$lib/apis';
|
||||
import { getAllChatTags } from '$lib/apis/chats';
|
||||
import { getAllTags } from '$lib/apis/chats';
|
||||
import { getPrompts } from '$lib/apis/prompts';
|
||||
import { getTools } from '$lib/apis/tools';
|
||||
import { getBanners } from '$lib/apis/configs';
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
banners.set(await getBanners(localStorage.token));
|
||||
})(),
|
||||
(async () => {
|
||||
tags.set(await getAllChatTags(localStorage.token));
|
||||
tags.set(await getAllTags(localStorage.token));
|
||||
})()
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@
|
|||
? 'md:max-w-[calc(100%-260px)]'
|
||||
: ''}"
|
||||
>
|
||||
<div class=" px-4 pt-3 mt-0.5 mb-1">
|
||||
<div class=" px-3.5 py-2">
|
||||
<div class=" flex items-center gap-1">
|
||||
<div class="{$showSidebar ? 'md:hidden' : ''} mr-1 self-start flex flex-none items-center">
|
||||
<div class="{$showSidebar ? 'md:hidden' : ''} mr-1 flex flex-none items-center">
|
||||
<button
|
||||
id="sidebar-toggle-button"
|
||||
class="cursor-pointer p-1 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition"
|
||||
class="cursor-pointer p-1.5 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition"
|
||||
on:click={() => {
|
||||
showSidebar.set(!$showSidebar);
|
||||
}}
|
||||
|
|
@ -46,33 +46,35 @@
|
|||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex items-center text-xl font-semibold">{$i18n.t('Admin Panel')}</div>
|
||||
<!-- <div class="flex items-center text-xl font-semibold">{$i18n.t('Admin Panel')}</div> -->
|
||||
|
||||
<div class=" flex w-full">
|
||||
<div
|
||||
class="flex scrollbar-none overflow-x-auto w-fit text-center text-sm font-medium rounded-full shadow-2xl bg-transparent/10 p-1"
|
||||
>
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {['/admin', '/admin/'].includes(
|
||||
$page.url.pathname
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/admin">{$i18n.t('Dashboard')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/admin/settings'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/admin/settings">{$i18n.t('Settings')}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-4 my-1">
|
||||
<div
|
||||
class="flex scrollbar-none overflow-x-auto w-fit text-center text-sm font-medium rounded-xl bg-transparent/10 p-1"
|
||||
>
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {['/admin', '/admin/'].includes($page.url.pathname)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/admin">{$i18n.t('Dashboard')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes('/admin/settings')
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/admin/settings">{$i18n.t('Settings')}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" my-2 dark:border-gray-850" />
|
||||
|
||||
<div class=" py-1 px-5 flex-1 max-h-full overflow-y-auto">
|
||||
<div class=" pb-1 px-5 flex-1 max-h-full overflow-y-auto">
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<script lang="ts">
|
||||
import { onMount, getContext } from 'svelte';
|
||||
import { WEBUI_NAME, showSidebar, functions, user } from '$lib/stores';
|
||||
import { WEBUI_NAME, showSidebar, functions, user, mobile } from '$lib/stores';
|
||||
import { page } from '$app/stores';
|
||||
import { goto } from '$app/navigation';
|
||||
|
||||
|
|
@ -26,16 +26,16 @@
|
|||
|
||||
{#if loaded}
|
||||
<div
|
||||
class=" flex flex-col w-full min-h-screen max-h-screen {$showSidebar
|
||||
class=" relative flex flex-col w-full min-h-screen max-h-screen {$showSidebar
|
||||
? 'md:max-w-[calc(100%-260px)]'
|
||||
: ''}"
|
||||
>
|
||||
<div class=" px-4 pt-3 mt-0.5 mb-1">
|
||||
<div class=" px-3.5 my-2 bg-transparent backdrop-blur-xl">
|
||||
<div class=" flex items-center gap-1">
|
||||
<div class="{$showSidebar ? 'md:hidden' : ''} mr-1 self-start flex flex-none items-center">
|
||||
<div class="{$showSidebar ? 'md:hidden' : ''} mr-1 self-center flex flex-none items-center">
|
||||
<button
|
||||
id="sidebar-toggle-button"
|
||||
class="cursor-pointer p-1 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition"
|
||||
class="cursor-pointer p-1.5 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition"
|
||||
on:click={() => {
|
||||
showSidebar.set(!$showSidebar);
|
||||
}}
|
||||
|
|
@ -46,64 +46,71 @@
|
|||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex items-center text-xl font-semibold">{$i18n.t('Workspace')}</div>
|
||||
|
||||
<!-- <div class="flex items-center text-xl font-semibold mr-3">{$i18n.t('Workspace')}</div> -->
|
||||
|
||||
<div class="">
|
||||
<div
|
||||
class="flex scrollbar-none overflow-x-auto w-fit text-center text-sm font-medium rounded-full bg-transparent/10 backdrop-blur-2xl p-1 shadow-2xl touch-auto pointer-events-auto"
|
||||
>
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/models'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/models">{$i18n.t('Models')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/knowledge'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/knowledge"
|
||||
>
|
||||
{$i18n.t('Knowledge')}
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/prompts'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/prompts">{$i18n.t('Prompts')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/tools'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/tools"
|
||||
>
|
||||
{$i18n.t('Tools')}
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-full p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/functions'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/functions"
|
||||
>
|
||||
{$i18n.t('Functions')}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="flex items-center text-xl font-semibold">{$i18n.t('Workspace')}</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-4 my-1">
|
||||
<div
|
||||
class="flex scrollbar-none overflow-x-auto w-fit text-center text-sm font-medium rounded-xl bg-transparent/10 p-1"
|
||||
>
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes('/workspace/models')
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/models">{$i18n.t('Models')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/knowledge'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/knowledge"
|
||||
>
|
||||
{$i18n.t('Knowledge')}
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes('/workspace/prompts')
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/prompts">{$i18n.t('Prompts')}</a
|
||||
>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes('/workspace/tools')
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/tools"
|
||||
>
|
||||
{$i18n.t('Tools')}
|
||||
</a>
|
||||
|
||||
<a
|
||||
class="min-w-fit rounded-lg p-1.5 px-3 {$page.url.pathname.includes(
|
||||
'/workspace/functions'
|
||||
)
|
||||
? 'bg-gray-50 dark:bg-gray-850'
|
||||
: ''} transition"
|
||||
href="/workspace/functions"
|
||||
>
|
||||
{$i18n.t('Functions')}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" my-2 border-gray-100 dark:border-gray-850" />
|
||||
|
||||
<div class=" py-1 px-5 flex-1 max-h-full overflow-y-auto">
|
||||
<div class=" pb-1 px-5 flex-1 max-h-full overflow-y-auto">
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue