mirror of
https://github.com/open-webui/open-webui.git
synced 2026-06-14 03:30:25 +00:00
chore: format
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- 🪪 **More user placeholders in custom headers.** Custom-header templates for direct connections and tool servers now support "{{USER_EMAIL}}" and "{{USER_ROLE}}" alongside the existing user and session placeholders. [Commit](https://github.com/open-webui/open-webui/commit/ed73ef3d8df988b0e9646b82df5b1a453202ef8d)
|
- 🪪 **More user placeholders in custom headers.** Custom-header templates for direct connections and tool servers now support "{{USER_EMAIL}}" and "{{USER_ROLE}}" alongside the existing user and session placeholders. [Commit](https://github.com/open-webui/open-webui/commit/ed73ef3d8df988b0e9646b82df5b1a453202ef8d)
|
||||||
- ⏱️ **Configurable MCP connection timeout.** The timeout for the initial handshake with an MCP tool server is now configurable via the new "MCP_INITIALIZE_TIMEOUT" setting, so servers that are slow to start or expose many tools can finish connecting instead of timing out. [#25011](https://github.com/open-webui/open-webui/pull/25011), [Commit](https://github.com/open-webui/open-webui/commit/4297c02b121180e239a61c483ac8477cc557d4ef)
|
- ⏱️ **Configurable MCP connection timeout.** The timeout for the initial handshake with an MCP tool server is now configurable via the new "MCP_INITIALIZE_TIMEOUT" setting, so servers that are slow to start or expose many tools can finish connecting instead of timing out. [#25011](https://github.com/open-webui/open-webui/pull/25011), [Commit](https://github.com/open-webui/open-webui/commit/4297c02b121180e239a61c483ac8477cc557d4ef)
|
||||||
- 📐 **Profile image size limit.** Administrators can now cap the size of inline profile images via the new "PROFILE_IMAGE_MAX_DATA_URI_SIZE" setting, bounding how much database and cache space inline avatars and model icons can consume. [#25468](https://github.com/open-webui/open-webui/issues/25468), [#25476](https://github.com/open-webui/open-webui/pull/25476)
|
- 📐 **Profile image size limit.** Administrators can now cap the size of inline profile images via the new "PROFILE_IMAGE_MAX_DATA_URI_SIZE" setting, bounding how much database and cache space inline avatars and model icons can consume. [#25468](https://github.com/open-webui/open-webui/issues/25468), [#25476](https://github.com/open-webui/open-webui/pull/25476)
|
||||||
- 🎫 **Wildcard OAuth role mapping.** Administrators can now set "*" in the allowed OAuth roles to grant the user role to any authenticated OAuth user, instead of having to enumerate every accepted role. [#25062](https://github.com/open-webui/open-webui/pull/25062), [Commit](https://github.com/open-webui/open-webui/commit/07cbc91a8eba3a9a3b39588b2ae5de916930af70)
|
- 🎫 **Wildcard OAuth role mapping.** Administrators can now set "\*" in the allowed OAuth roles to grant the user role to any authenticated OAuth user, instead of having to enumerate every accepted role. [#25062](https://github.com/open-webui/open-webui/pull/25062), [Commit](https://github.com/open-webui/open-webui/commit/07cbc91a8eba3a9a3b39588b2ae5de916930af70)
|
||||||
- 📊 **Paginated feedback history.** The feedback and evaluation history list is now paginated, keeping it responsive for instances that have accumulated large numbers of feedback entries. [Commit](https://github.com/open-webui/open-webui/commit/160a6694e4bd66fc42e6361947516e8e15414ef3)
|
- 📊 **Paginated feedback history.** The feedback and evaluation history list is now paginated, keeping it responsive for instances that have accumulated large numbers of feedback entries. [Commit](https://github.com/open-webui/open-webui/commit/160a6694e4bd66fc42e6361947516e8e15414ef3)
|
||||||
- ➡️ **Optional auto-redirect to single sign-on.** Administrators can now enable "OAUTH_AUTO_REDIRECT" so that, on deployments with a single sign-on provider and no other login methods, users are sent straight to the provider instead of seeing a login page first. [#25067](https://github.com/open-webui/open-webui/pull/25067), [Commit](https://github.com/open-webui/open-webui/commit/d64ef1803d2f5cedb7b3a308151d08ff2cd2b8e1)
|
- ➡️ **Optional auto-redirect to single sign-on.** Administrators can now enable "OAUTH_AUTO_REDIRECT" so that, on deployments with a single sign-on provider and no other login methods, users are sent straight to the provider instead of seeing a login page first. [#25067](https://github.com/open-webui/open-webui/pull/25067), [Commit](https://github.com/open-webui/open-webui/commit/d64ef1803d2f5cedb7b3a308151d08ff2cd2b8e1)
|
||||||
- ☁️ **Azure AI Foundry v1 with Entra ID.** Open WebUI now supports Azure AI Foundry's OpenAI v1 endpoint together with Microsoft Entra ID authentication, so these connections work without manual workarounds. [#24761](https://github.com/open-webui/open-webui/issues/24761), [#24985](https://github.com/open-webui/open-webui/pull/24985), [Commit](https://github.com/open-webui/open-webui/commit/eb4eebc3ce1042cb0d393bf890c1895db6e08b19)
|
- ☁️ **Azure AI Foundry v1 with Entra ID.** Open WebUI now supports Azure AI Foundry's OpenAI v1 endpoint together with Microsoft Entra ID authentication, so these connections work without manual workarounds. [#24761](https://github.com/open-webui/open-webui/issues/24761), [#24985](https://github.com/open-webui/open-webui/pull/24985), [Commit](https://github.com/open-webui/open-webui/commit/eb4eebc3ce1042cb0d393bf890c1895db6e08b19)
|
||||||
|
|||||||
@@ -685,9 +685,7 @@ BYPASS_RETRIEVAL_ACCESS_CONTROL = os.getenv('BYPASS_RETRIEVAL_ACCESS_CONTROL', '
|
|||||||
# web-search-*, or knowledge-base collection are allowed through access control
|
# web-search-*, or knowledge-base collection are allowed through access control
|
||||||
# for non-admin users. When False (default), unknown collection names are
|
# for non-admin users. When False (default), unknown collection names are
|
||||||
# denied — closing the legacy unscoped namespace.
|
# denied — closing the legacy unscoped namespace.
|
||||||
ENABLE_RETRIEVAL_UNSCOPED_COLLECTIONS = (
|
ENABLE_RETRIEVAL_UNSCOPED_COLLECTIONS = os.getenv('ENABLE_RETRIEVAL_UNSCOPED_COLLECTIONS', 'False').lower() == 'true'
|
||||||
os.getenv('ENABLE_RETRIEVAL_UNSCOPED_COLLECTIONS', 'False').lower() == 'true'
|
|
||||||
)
|
|
||||||
|
|
||||||
# When enabled, skips pydub-based preprocessing (format conversion, compression,
|
# When enabled, skips pydub-based preprocessing (format conversion, compression,
|
||||||
# and chunked splitting) before sending files to processing engines. Useful when
|
# and chunked splitting) before sending files to processing engines. Useful when
|
||||||
@@ -800,9 +798,7 @@ PROFILE_IMAGE_ALLOWED_MIME_TYPES = frozenset(
|
|||||||
# Max stored length (bytes) of a data:image profile URI; bounds Postgres/Redis
|
# Max stored length (bytes) of a data:image profile URI; bounds Postgres/Redis
|
||||||
# bloat from inline avatars and model icons. Unset (default) disables the cap.
|
# bloat from inline avatars and model icons. Unset (default) disables the cap.
|
||||||
_profile_image_max_data_uri_size = os.getenv('PROFILE_IMAGE_MAX_DATA_URI_SIZE', '').strip()
|
_profile_image_max_data_uri_size = os.getenv('PROFILE_IMAGE_MAX_DATA_URI_SIZE', '').strip()
|
||||||
PROFILE_IMAGE_MAX_DATA_URI_SIZE = (
|
PROFILE_IMAGE_MAX_DATA_URI_SIZE = int(_profile_image_max_data_uri_size) if _profile_image_max_data_uri_size else None
|
||||||
int(_profile_image_max_data_uri_size) if _profile_image_max_data_uri_size else None
|
|
||||||
)
|
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# Forward Headers
|
# Forward Headers
|
||||||
|
|||||||
@@ -127,10 +127,13 @@ class JSONField(types.TypeDecorator): # TEXT-backed JSON storage
|
|||||||
|
|
||||||
impl = types.UnicodeText
|
impl = types.UnicodeText
|
||||||
cache_ok = True
|
cache_ok = True
|
||||||
|
|
||||||
def process_bind_param(self, value: _T | None, dialect: Dialect) -> Any:
|
def process_bind_param(self, value: _T | None, dialect: Dialect) -> Any:
|
||||||
return json.dumps(value) if value is not None else None
|
return json.dumps(value) if value is not None else None
|
||||||
|
|
||||||
def process_result_value(self, value: _T | None, dialect: Dialect) -> Any:
|
def process_result_value(self, value: _T | None, dialect: Dialect) -> Any:
|
||||||
return json.loads(value) if value is not None else None
|
return json.loads(value) if value is not None else None
|
||||||
|
|
||||||
def copy(self, **kwargs: Any) -> Self:
|
def copy(self, **kwargs: Any) -> Self:
|
||||||
return JSONField(length=self.impl.length)
|
return JSONField(length=self.impl.length)
|
||||||
|
|
||||||
|
|||||||
@@ -2061,7 +2061,9 @@ async def chat_completion(
|
|||||||
if metadata.get('chat_id') and metadata.get('message_id'):
|
if metadata.get('chat_id') and metadata.get('message_id'):
|
||||||
# Update the chat message with the error
|
# Update the chat message with the error
|
||||||
try:
|
try:
|
||||||
if not metadata.get('chat_id', '').startswith('local:') and not metadata.get('chat_id', '').startswith('channel:'):
|
if not metadata.get('chat_id', '').startswith('local:') and not metadata.get(
|
||||||
|
'chat_id', ''
|
||||||
|
).startswith('channel:'):
|
||||||
await Chats.upsert_message_to_chat_by_id_and_message_id(
|
await Chats.upsert_message_to_chat_by_id_and_message_id(
|
||||||
metadata['chat_id'],
|
metadata['chat_id'],
|
||||||
metadata['message_id'],
|
metadata['message_id'],
|
||||||
@@ -2969,6 +2971,8 @@ async def check_db_health():
|
|||||||
"""Verify database connectivity by issuing a lightweight ping."""
|
"""Verify database connectivity by issuing a lightweight ping."""
|
||||||
await async_db_ping()
|
await async_db_ping()
|
||||||
return {'status': True}
|
return {'status': True}
|
||||||
|
|
||||||
|
|
||||||
# --- static assets & files ---
|
# --- static assets & files ---
|
||||||
# Serve build-time static assets (CSS, JS, images, favicon, etc.)
|
# Serve build-time static assets (CSS, JS, images, favicon, etc.)
|
||||||
app.mount('/static', StaticFiles(directory=STATIC_DIR), name='static')
|
app.mount('/static', StaticFiles(directory=STATIC_DIR), name='static')
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
# Alembic environment configuration runner.
|
# Alembic environment configuration runner.
|
||||||
# Coordinates database migrations in both offline and online execution modes.
|
# Coordinates database migrations in both offline and online execution modes.
|
||||||
import logging.config
|
import logging.config
|
||||||
@@ -9,11 +10,13 @@ from open_webui.internal.db import extract_ssl_params_from_url, reattach_ssl_par
|
|||||||
from open_webui.models.auths import Auth
|
from open_webui.models.auths import Auth
|
||||||
from open_webui.models.calendar import Calendar, CalendarEvent, CalendarEventAttendee # noqa: F401
|
from open_webui.models.calendar import Calendar, CalendarEvent, CalendarEventAttendee # noqa: F401
|
||||||
from sqlalchemy import create_engine, engine_from_config, pool
|
from sqlalchemy import create_engine, engine_from_config, pool
|
||||||
|
|
||||||
alembic_config = alembic.context.config
|
alembic_config = alembic.context.config
|
||||||
if alembic_config.config_file_name:
|
if alembic_config.config_file_name:
|
||||||
logging.config.fileConfig(alembic_config.config_file_name, disable_existing_loggers=False)
|
logging.config.fileConfig(alembic_config.config_file_name, disable_existing_loggers=False)
|
||||||
if LOG_FORMAT == 'json':
|
if LOG_FORMAT == 'json':
|
||||||
from open_webui.env import JSONFormatter
|
from open_webui.env import JSONFormatter
|
||||||
|
|
||||||
for log_handler in logging.root.handlers:
|
for log_handler in logging.root.handlers:
|
||||||
log_handler.setFormatter(JSONFormatter())
|
log_handler.setFormatter(JSONFormatter())
|
||||||
migration_metadata = Auth.metadata
|
migration_metadata = Auth.metadata
|
||||||
@@ -23,12 +26,21 @@ if ssl_query_params:
|
|||||||
target_db_url = reattach_ssl_params_to_url(base_url, ssl_query_params)
|
target_db_url = reattach_ssl_params_to_url(base_url, ssl_query_params)
|
||||||
if target_db_url:
|
if target_db_url:
|
||||||
alembic_config.set_main_option('sqlalchemy.url', target_db_url.replace('%', '%%'))
|
alembic_config.set_main_option('sqlalchemy.url', target_db_url.replace('%', '%%'))
|
||||||
|
|
||||||
|
|
||||||
def run_migrations_offline() -> None:
|
def run_migrations_offline() -> None:
|
||||||
"""Execute Alembic migrations in offline mode (outputs raw SQL DDL)."""
|
"""Execute Alembic migrations in offline mode (outputs raw SQL DDL)."""
|
||||||
db_connection_url = alembic_config.get_main_option('sqlalchemy.url')
|
db_connection_url = alembic_config.get_main_option('sqlalchemy.url')
|
||||||
alembic.context.configure(url=db_connection_url, target_metadata=migration_metadata, literal_binds=True, dialect_opts={"paramstyle": "named"})
|
alembic.context.configure(
|
||||||
|
url=db_connection_url,
|
||||||
|
target_metadata=migration_metadata,
|
||||||
|
literal_binds=True,
|
||||||
|
dialect_opts={'paramstyle': 'named'},
|
||||||
|
)
|
||||||
with alembic.context.begin_transaction():
|
with alembic.context.begin_transaction():
|
||||||
alembic.context.run_migrations()
|
alembic.context.run_migrations()
|
||||||
|
|
||||||
|
|
||||||
def _get_engine_connectable():
|
def _get_engine_connectable():
|
||||||
"""Build the database engine based on target URL and authentication credentials."""
|
"""Build the database engine based on target URL and authentication credentials."""
|
||||||
if target_db_url and target_db_url.startswith('sqlite+sqlcipher://'):
|
if target_db_url and target_db_url.startswith('sqlite+sqlcipher://'):
|
||||||
@@ -37,17 +49,22 @@ def _get_engine_connectable():
|
|||||||
raw_db_path = target_db_url.replace('sqlite+sqlcipher://', '')
|
raw_db_path = target_db_url.replace('sqlite+sqlcipher://', '')
|
||||||
if raw_db_path.startswith('/'):
|
if raw_db_path.startswith('/'):
|
||||||
raw_db_path = raw_db_path[1:]
|
raw_db_path = raw_db_path[1:]
|
||||||
|
|
||||||
def _sqlite_cipher_creator():
|
def _sqlite_cipher_creator():
|
||||||
import sqlcipher3
|
import sqlcipher3
|
||||||
|
|
||||||
cipher_conn = sqlcipher3.connect(raw_db_path, check_same_thread=False)
|
cipher_conn = sqlcipher3.connect(raw_db_path, check_same_thread=False)
|
||||||
cipher_conn.execute(f"PRAGMA key = '{DATABASE_PASSWORD}'")
|
cipher_conn.execute(f"PRAGMA key = '{DATABASE_PASSWORD}'")
|
||||||
return cipher_conn
|
return cipher_conn
|
||||||
|
|
||||||
return create_engine('sqlite://', creator=_sqlite_cipher_creator, echo=False)
|
return create_engine('sqlite://', creator=_sqlite_cipher_creator, echo=False)
|
||||||
return engine_from_config(
|
return engine_from_config(
|
||||||
alembic_config.get_section(alembic_config.config_ini_section, {}),
|
alembic_config.get_section(alembic_config.config_ini_section, {}),
|
||||||
prefix='sqlalchemy.',
|
prefix='sqlalchemy.',
|
||||||
poolclass=pool.NullPool,
|
poolclass=pool.NullPool,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def run_migrations_online() -> None:
|
def run_migrations_online() -> None:
|
||||||
"""Execute migrations against a live database connection."""
|
"""Execute migrations against a live database connection."""
|
||||||
live_connectable = _get_engine_connectable()
|
live_connectable = _get_engine_connectable()
|
||||||
@@ -58,6 +75,8 @@ def run_migrations_online() -> None:
|
|||||||
)
|
)
|
||||||
with alembic.context.begin_transaction():
|
with alembic.context.begin_transaction():
|
||||||
alembic.context.run_migrations()
|
alembic.context.run_migrations()
|
||||||
|
|
||||||
|
|
||||||
# Alembic execution entrypoint branch
|
# Alembic execution entrypoint branch
|
||||||
if alembic.context.is_offline_mode():
|
if alembic.context.is_offline_mode():
|
||||||
run_migrations_offline() # run in offline mode
|
run_migrations_offline() # run in offline mode
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from alembic import op # noqa: E402 — alembic runtime context
|
from alembic import op # noqa: E402 — alembic runtime context
|
||||||
from sqlalchemy import inspect # metadata inspection
|
from sqlalchemy import inspect # metadata inspection
|
||||||
|
|
||||||
|
|
||||||
# --- database helper functions ---
|
# --- database helper functions ---
|
||||||
def get_existing_tables() -> set[str]:
|
def get_existing_tables() -> set[str]:
|
||||||
"""Return table names already present in the database."""
|
"""Return table names already present in the database."""
|
||||||
|
|||||||
@@ -53,7 +53,9 @@ def upgrade():
|
|||||||
if 'channel_member' not in existing_tables:
|
if 'channel_member' not in existing_tables:
|
||||||
op.create_table(
|
op.create_table(
|
||||||
'channel_member',
|
'channel_member',
|
||||||
sa.Column('id', sa.Text(), nullable=False, primary_key=True, unique=True), # Record ID for the membership row
|
sa.Column(
|
||||||
|
'id', sa.Text(), nullable=False, primary_key=True, unique=True
|
||||||
|
), # Record ID for the membership row
|
||||||
sa.Column('channel_id', sa.Text(), nullable=False), # Associated channel
|
sa.Column('channel_id', sa.Text(), nullable=False), # Associated channel
|
||||||
sa.Column('user_id', sa.Text(), nullable=False), # Associated user
|
sa.Column('user_id', sa.Text(), nullable=False), # Associated user
|
||||||
sa.Column('created_at', sa.BigInteger(), nullable=True), # Timestamp of when the user joined the channel
|
sa.Column('created_at', sa.BigInteger(), nullable=True), # Timestamp of when the user joined the channel
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ def upgrade() -> None:
|
|||||||
|
|
||||||
# Create indexes (idempotent — no-ops when table was just created
|
# Create indexes (idempotent — no-ops when table was just created
|
||||||
# with the columns above, and safe to call if indexes already exist).
|
# with the columns above, and safe to call if indexes already exist).
|
||||||
existing_indexes = {
|
existing_indexes = (
|
||||||
idx['name'] for idx in inspector.get_indexes('oauth_session')
|
{idx['name'] for idx in inspector.get_indexes('oauth_session')} if 'oauth_session' in existing_tables else set()
|
||||||
} if 'oauth_session' in existing_tables else set()
|
)
|
||||||
|
|
||||||
if 'idx_oauth_session_user_id' not in existing_indexes:
|
if 'idx_oauth_session_user_id' not in existing_indexes:
|
||||||
op.create_index('idx_oauth_session_user_id', 'oauth_session', ['user_id'])
|
op.create_index('idx_oauth_session_user_id', 'oauth_session', ['user_id'])
|
||||||
|
|||||||
+4
-1
@@ -5,6 +5,7 @@ Revises: a0b1c2d3e4f5
|
|||||||
Create Date: 2026-05-13 21:58:40.832482
|
Create Date: 2026-05-13 21:58:40.832482
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
@@ -36,7 +37,9 @@ def upgrade() -> None:
|
|||||||
sa.ForeignKeyConstraint(['knowledge_id'], ['knowledge.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['knowledge_id'], ['knowledge.id'], ondelete='CASCADE'),
|
||||||
sa.ForeignKeyConstraint(['parent_id'], ['knowledge_directory.id'], ondelete='CASCADE'),
|
sa.ForeignKeyConstraint(['parent_id'], ['knowledge_directory.id'], ondelete='CASCADE'),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('knowledge_id', 'parent_id', 'name', name='uq_knowledge_directory_knowledge_parent_name'),
|
sa.UniqueConstraint(
|
||||||
|
'knowledge_id', 'parent_id', 'name', name='uq_knowledge_directory_knowledge_parent_name'
|
||||||
|
),
|
||||||
)
|
)
|
||||||
op.create_index('ix_knowledge_directory_knowledge_id', 'knowledge_directory', ['knowledge_id'])
|
op.create_index('ix_knowledge_directory_knowledge_id', 'knowledge_directory', ['knowledge_id'])
|
||||||
op.create_index('ix_knowledge_directory_parent_id', 'knowledge_directory', ['parent_id'])
|
op.create_index('ix_knowledge_directory_parent_id', 'knowledge_directory', ['parent_id'])
|
||||||
|
|||||||
+13
-3
@@ -5,6 +5,7 @@ Revises: 3c9b0ca343fd
|
|||||||
Create Date: 2026-05-14 04:38:14.000000
|
Create Date: 2026-05-14 04:38:14.000000
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
@@ -21,9 +22,18 @@ depends_on: Union[str, Sequence[str], None] = None
|
|||||||
# already have correct PKs from 7e5b5dc7342b_init.py.
|
# already have correct PKs from 7e5b5dc7342b_init.py.
|
||||||
# 'tag' uses a composite PK since the same tag name can exist for multiple users.
|
# 'tag' uses a composite PK since the same tag name can exist for multiple users.
|
||||||
LEGACY_TABLES = {
|
LEGACY_TABLES = {
|
||||||
'auth': ['id'], 'chat': ['id'], 'chatidtag': ['id'], 'document': ['id'],
|
'auth': ['id'],
|
||||||
'file': ['id'], 'function': ['id'], 'memory': ['id'], 'model': ['id'],
|
'chat': ['id'],
|
||||||
'prompt': ['id'], 'tag': ['id', 'user_id'], 'tool': ['id'], 'user': ['id'],
|
'chatidtag': ['id'],
|
||||||
|
'document': ['id'],
|
||||||
|
'file': ['id'],
|
||||||
|
'function': ['id'],
|
||||||
|
'memory': ['id'],
|
||||||
|
'model': ['id'],
|
||||||
|
'prompt': ['id'],
|
||||||
|
'tag': ['id', 'user_id'],
|
||||||
|
'tool': ['id'],
|
||||||
|
'user': ['id'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -52,13 +52,18 @@ def upgrade() -> None:
|
|||||||
column('created_at', sa.BigInteger),
|
column('created_at', sa.BigInteger),
|
||||||
)
|
)
|
||||||
|
|
||||||
notes = conn.execute(select(note_table.c.id, note_table.c.user_id).where(note_table.c.is_pinned == True)).fetchall()
|
notes = conn.execute(
|
||||||
|
select(note_table.c.id, note_table.c.user_id).where(note_table.c.is_pinned == True)
|
||||||
|
).fetchall()
|
||||||
|
|
||||||
if notes:
|
if notes:
|
||||||
now = int(time.time_ns())
|
now = int(time.time_ns())
|
||||||
conn.execute(
|
conn.execute(
|
||||||
insert(pinned_note_table),
|
insert(pinned_note_table),
|
||||||
[{'id': str(uuid.uuid4()), 'user_id': note[1], 'note_id': note[0], 'created_at': now} for note in notes],
|
[
|
||||||
|
{'id': str(uuid.uuid4()), 'user_id': note[1], 'note_id': note[0], 'created_at': now}
|
||||||
|
for note in notes
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
with op.batch_alter_table('note', schema=None) as batch_op:
|
with op.batch_alter_table('note', schema=None) as batch_op:
|
||||||
|
|||||||
@@ -95,7 +95,9 @@ def upgrade() -> None:
|
|||||||
inspector.clear_cache()
|
inspector.clear_cache()
|
||||||
if 'calendar_event_attendee' in inspector.get_table_names():
|
if 'calendar_event_attendee' in inspector.get_table_names():
|
||||||
if not _index_exists(inspector, 'ix_calendar_event_attendee_user', 'calendar_event_attendee'):
|
if not _index_exists(inspector, 'ix_calendar_event_attendee_user', 'calendar_event_attendee'):
|
||||||
op.create_index('ix_calendar_event_attendee_user', 'calendar_event_attendee', ['user_id', 'status'], unique=False)
|
op.create_index(
|
||||||
|
'ix_calendar_event_attendee_user', 'calendar_event_attendee', ['user_id', 'status'], unique=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def downgrade() -> None:
|
def downgrade() -> None:
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ def upgrade() -> None:
|
|||||||
sa.Index('ix_channel_file_file_id', 'file_id'),
|
sa.Index('ix_channel_file_file_id', 'file_id'),
|
||||||
sa.Index('ix_channel_file_user_id', 'user_id'),
|
sa.Index('ix_channel_file_user_id', 'user_id'),
|
||||||
# unique constraints
|
# unique constraints
|
||||||
sa.UniqueConstraint('channel_id', 'file_id', name='uq_channel_file_channel_file'), # prevent duplicate entries
|
sa.UniqueConstraint(
|
||||||
|
'channel_id', 'file_id', name='uq_channel_file_channel_file'
|
||||||
|
), # prevent duplicate entries
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ import sqlalchemy as sa
|
|||||||
from alembic import op
|
from alembic import op
|
||||||
from open_webui.internal.db import JSONField
|
from open_webui.internal.db import JSONField
|
||||||
from open_webui.migrations.util import get_existing_tables
|
from open_webui.migrations.util import get_existing_tables
|
||||||
revision: str = "7e5b5dc7342b"
|
|
||||||
|
revision: str = '7e5b5dc7342b'
|
||||||
down_revision: str | None = None
|
down_revision: str | None = None
|
||||||
branch_labels: str | Sequence[str] | None = None
|
branch_labels: str | Sequence[str] | None = None
|
||||||
depends_on: str | Sequence[str] | None = None
|
depends_on: str | Sequence[str] | None = None
|
||||||
@@ -175,12 +176,16 @@ _INITIAL_TABLES: list[tuple[str, list[sa.Column], list]] = [
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# --- migration execution ---
|
# --- migration execution ---
|
||||||
def upgrade() -> None: # deploy initial schema tables
|
def upgrade() -> None: # deploy initial schema tables
|
||||||
existing_tables = set(get_existing_tables())
|
existing_tables = set(get_existing_tables())
|
||||||
for name, columns, constraints in _INITIAL_TABLES:
|
for name, columns, constraints in _INITIAL_TABLES:
|
||||||
if name not in existing_tables:
|
if name not in existing_tables:
|
||||||
op.create_table(name, *columns, *constraints)
|
op.create_table(name, *columns, *constraints)
|
||||||
|
|
||||||
|
|
||||||
# --- rollback function ---
|
# --- rollback function ---
|
||||||
def downgrade() -> None: # rollback initial schema tables
|
def downgrade() -> None: # rollback initial schema tables
|
||||||
for table_name, _, _ in reversed(_INITIAL_TABLES):
|
for table_name, _, _ in reversed(_INITIAL_TABLES):
|
||||||
|
|||||||
@@ -182,27 +182,18 @@ def upgrade() -> None:
|
|||||||
|
|
||||||
# ── Migrate oauth_sub → oauth JSON (only if old column still exists)
|
# ── Migrate oauth_sub → oauth JSON (only if old column still exists)
|
||||||
if 'oauth_sub' in user_columns:
|
if 'oauth_sub' in user_columns:
|
||||||
rows = conn.execute(
|
rows = conn.execute(sa.select(_user.c.id, _user.c.oauth_sub).where(_user.c.oauth_sub.is_not(None))).fetchall()
|
||||||
sa.select(_user.c.id, _user.c.oauth_sub)
|
|
||||||
.where(_user.c.oauth_sub.is_not(None))
|
|
||||||
).fetchall()
|
|
||||||
|
|
||||||
for uid, oauth_sub in rows:
|
for uid, oauth_sub in rows:
|
||||||
if oauth_sub:
|
if oauth_sub:
|
||||||
provider, sub = (oauth_sub.split('@', 1) if '@' in oauth_sub
|
provider, sub = oauth_sub.split('@', 1) if '@' in oauth_sub else ('oidc', oauth_sub)
|
||||||
else ('oidc', oauth_sub))
|
|
||||||
conn.execute(
|
conn.execute(
|
||||||
sa.update(_user)
|
sa.update(_user).where(_user.c.id == uid).values(oauth=json.dumps({provider: {'sub': sub}}))
|
||||||
.where(_user.c.id == uid)
|
|
||||||
.values(oauth=json.dumps({provider: {'sub': sub}}))
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# ── Migrate api_key column → api_key table (only if old column still exists)
|
# ── Migrate api_key column → api_key table (only if old column still exists)
|
||||||
if 'api_key' in user_columns:
|
if 'api_key' in user_columns:
|
||||||
rows = conn.execute(
|
rows = conn.execute(sa.select(_user.c.id, _user.c.api_key).where(_user.c.api_key.is_not(None))).fetchall()
|
||||||
sa.select(_user.c.id, _user.c.api_key)
|
|
||||||
.where(_user.c.api_key.is_not(None))
|
|
||||||
).fetchall()
|
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
|
|
||||||
for uid, key_val in rows:
|
for uid, key_val in rows:
|
||||||
@@ -233,10 +224,7 @@ def downgrade() -> None:
|
|||||||
op.add_column('user', sa.Column('oauth_sub', sa.Text(), nullable=True))
|
op.add_column('user', sa.Column('oauth_sub', sa.Text(), nullable=True))
|
||||||
|
|
||||||
conn = op.get_bind()
|
conn = op.get_bind()
|
||||||
rows = conn.execute(
|
rows = conn.execute(sa.select(_user.c.id, _user.c.oauth).where(_user.c.oauth.is_not(None))).fetchall()
|
||||||
sa.select(_user.c.id, _user.c.oauth)
|
|
||||||
.where(_user.c.oauth.is_not(None))
|
|
||||||
).fetchall()
|
|
||||||
|
|
||||||
for uid, oauth in rows:
|
for uid, oauth in rows:
|
||||||
try:
|
try:
|
||||||
@@ -247,11 +235,7 @@ def downgrade() -> None:
|
|||||||
except Exception:
|
except Exception:
|
||||||
oauth_sub = None
|
oauth_sub = None
|
||||||
|
|
||||||
conn.execute(
|
conn.execute(sa.update(_user).where(_user.c.id == uid).values(oauth_sub=oauth_sub))
|
||||||
sa.update(_user)
|
|
||||||
.where(_user.c.id == uid)
|
|
||||||
.values(oauth_sub=oauth_sub)
|
|
||||||
)
|
|
||||||
|
|
||||||
op.drop_column('user', 'oauth')
|
op.drop_column('user', 'oauth')
|
||||||
|
|
||||||
@@ -260,11 +244,7 @@ def downgrade() -> None:
|
|||||||
|
|
||||||
keys = conn.execute(sa.select(_api_key.c.user_id, _api_key.c.key)).fetchall()
|
keys = conn.execute(sa.select(_api_key.c.user_id, _api_key.c.key)).fetchall()
|
||||||
for uid, key in keys:
|
for uid, key in keys:
|
||||||
conn.execute(
|
conn.execute(sa.update(_user).where(_user.c.id == uid).values(api_key=key))
|
||||||
sa.update(_user)
|
|
||||||
.where(_user.c.id == uid)
|
|
||||||
.values(api_key=key)
|
|
||||||
)
|
|
||||||
|
|
||||||
op.drop_table('api_key')
|
op.drop_table('api_key')
|
||||||
|
|
||||||
|
|||||||
@@ -101,9 +101,7 @@ def upgrade():
|
|||||||
|
|
||||||
# Check if shared_chat record already exists (idempotent)
|
# Check if shared_chat record already exists (idempotent)
|
||||||
existing_shared = conn.execute(
|
existing_shared = conn.execute(
|
||||||
sa.select(shared_chat_t.c.id).where(
|
sa.select(shared_chat_t.c.id).where(shared_chat_t.c.id == share_token)
|
||||||
shared_chat_t.c.id == share_token
|
|
||||||
)
|
|
||||||
).fetchone()
|
).fetchone()
|
||||||
|
|
||||||
if not existing_shared:
|
if not existing_shared:
|
||||||
|
|||||||
@@ -119,7 +119,13 @@ class AuthsTable:
|
|||||||
session.add(credential)
|
session.add(credential)
|
||||||
|
|
||||||
created_user = await Users.insert_new_user(
|
created_user = await Users.insert_new_user(
|
||||||
new_id, name, email, profile_image_url, role, oauth=oauth, db=session,
|
new_id,
|
||||||
|
name,
|
||||||
|
email,
|
||||||
|
profile_image_url,
|
||||||
|
role,
|
||||||
|
oauth=oauth,
|
||||||
|
db=session,
|
||||||
)
|
)
|
||||||
# persist both records and reload generated defaults
|
# persist both records and reload generated defaults
|
||||||
await session.commit()
|
await session.commit()
|
||||||
@@ -127,7 +133,10 @@ class AuthsTable:
|
|||||||
return created_user if credential and created_user else None
|
return created_user if credential and created_user else None
|
||||||
|
|
||||||
async def authenticate_user(
|
async def authenticate_user(
|
||||||
self, email: str, verify_password: callable, db: AsyncSession | None = None,
|
self,
|
||||||
|
email: str,
|
||||||
|
verify_password: callable,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Verify email + password credentials and return the matching user."""
|
"""Verify email + password credentials and return the matching user."""
|
||||||
log.info('authenticate_user: %s', email)
|
log.info('authenticate_user: %s', email)
|
||||||
@@ -144,7 +153,9 @@ class AuthsTable:
|
|||||||
return resolved
|
return resolved
|
||||||
|
|
||||||
async def authenticate_user_by_api_key(
|
async def authenticate_user_by_api_key(
|
||||||
self, api_key: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
api_key: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Look up the user that owns the given API key."""
|
"""Look up the user that owns the given API key."""
|
||||||
log.info('authenticate_user_by_api_key')
|
log.info('authenticate_user_by_api_key')
|
||||||
@@ -163,17 +174,19 @@ class AuthsTable:
|
|||||||
# single JOIN avoids N+1 — returns (Auth, User) tuple or None
|
# single JOIN avoids N+1 — returns (Auth, User) tuple or None
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
joined_query = (
|
joined_query = (
|
||||||
select(Auth, User)
|
select(Auth, User).join(User, Auth.id == User.id).where(Auth.email == email, Auth.active.is_(True))
|
||||||
.join(User, Auth.id == User.id)
|
|
||||||
.where(Auth.email == email, Auth.active.is_(True))
|
|
||||||
)
|
)
|
||||||
match = (await session.execute(joined_query)).first()
|
match = (await session.execute(joined_query)).first()
|
||||||
if not match:
|
if not match:
|
||||||
return
|
return
|
||||||
_, found_user = match
|
_, found_user = match
|
||||||
return UserModel.model_validate(found_user)
|
return UserModel.model_validate(found_user)
|
||||||
|
|
||||||
async def update_email_by_id(
|
async def update_email_by_id(
|
||||||
self, user_id: str, email: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
user_id: str,
|
||||||
|
email: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Set a new email on the auth record and propagate to the user row."""
|
"""Set a new email on the auth record and propagate to the user row."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -185,8 +198,12 @@ class AuthsTable:
|
|||||||
await Users.update_user_by_id(user_id, {'email': email}, db=session)
|
await Users.update_user_by_id(user_id, {'email': email}, db=session)
|
||||||
return True
|
return True
|
||||||
# --- password modification ---
|
# --- password modification ---
|
||||||
|
|
||||||
async def update_user_password_by_id(
|
async def update_user_password_by_id(
|
||||||
self, user_id: str, new_password: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
user_id: str,
|
||||||
|
new_password: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Set a new password hash for an existing user."""
|
"""Set a new password hash for an existing user."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -198,7 +215,9 @@ class AuthsTable:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
async def delete_auth_by_id(
|
async def delete_auth_by_id(
|
||||||
self, id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Remove a user and their auth credential in one transaction."""
|
"""Remove a user and their auth credential in one transaction."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
||||||
from open_webui.models.automations import AutomationRun
|
from open_webui.models.automations import AutomationRun
|
||||||
@@ -358,9 +359,7 @@ class ChatTable:
|
|||||||
) -> list[ChatModel]:
|
) -> list[ChatModel]:
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
# Validate folder_id references — clear any that don't exist
|
# Validate folder_id references — clear any that don't exist
|
||||||
folder_ids = {
|
folder_ids = {f.folder_id for f in chat_import_forms if f.folder_id}
|
||||||
f.folder_id for f in chat_import_forms if f.folder_id
|
|
||||||
}
|
|
||||||
existing = set()
|
existing = set()
|
||||||
for fid in folder_ids:
|
for fid in folder_ids:
|
||||||
if await Folders.get_folder_by_id_and_user_id(fid, user_id, db=session):
|
if await Folders.get_folder_by_id_and_user_id(fid, user_id, db=session):
|
||||||
@@ -402,7 +401,10 @@ class ChatTable:
|
|||||||
return [ChatModel.model_validate(chat) for chat in chats]
|
return [ChatModel.model_validate(chat) for chat in chats]
|
||||||
|
|
||||||
async def update_chat_by_id(
|
async def update_chat_by_id(
|
||||||
self, id: str, chat: dict, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
chat: dict,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> ChatModel | None:
|
) -> ChatModel | None:
|
||||||
"""Persist updated chat content, sanitizing null bytes."""
|
"""Persist updated chat content, sanitizing null bytes."""
|
||||||
try: # load the chat record for in-place mutation
|
try: # load the chat record for in-place mutation
|
||||||
@@ -512,9 +514,7 @@ class ChatTable:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.warning('Backfill failed for message %s in chat %s: %s', message_id, chat_id, e)
|
log.warning('Backfill failed for message %s in chat %s: %s', message_id, chat_id, e)
|
||||||
|
|
||||||
async def reconcile_messages_by_chat_id(
|
async def reconcile_messages_by_chat_id(self, chat_id: str, user_id: str, messages: dict[str, dict]) -> None:
|
||||||
self, chat_id: str, user_id: str, messages: dict[str, dict]
|
|
||||||
) -> None:
|
|
||||||
"""Sync ``chat_message`` rows with the committed JSON blob.
|
"""Sync ``chat_message`` rows with the committed JSON blob.
|
||||||
|
|
||||||
Upserts current messages via ``backfill_messages_by_chat_id``
|
Upserts current messages via ``backfill_messages_by_chat_id``
|
||||||
@@ -692,9 +692,12 @@ class ChatTable:
|
|||||||
await session.commit()
|
await session.commit()
|
||||||
await session.refresh(chat)
|
await session.refresh(chat)
|
||||||
return ChatModel.model_validate(chat) # return the updated original
|
return ChatModel.model_validate(chat) # return the updated original
|
||||||
|
|
||||||
# refresh helper
|
# refresh helper
|
||||||
async def update_shared_chat_by_chat_id(
|
async def update_shared_chat_by_chat_id(
|
||||||
self, chat_id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
chat_id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> ChatModel | None:
|
) -> ChatModel | None:
|
||||||
"""Refresh the shared snapshot with current chat content."""
|
"""Refresh the shared snapshot with current chat content."""
|
||||||
from open_webui.models.shared_chats import SharedChats
|
from open_webui.models.shared_chats import SharedChats
|
||||||
@@ -953,9 +956,12 @@ class ChatTable:
|
|||||||
)
|
)
|
||||||
all_chats = result.scalars().all()
|
all_chats = result.scalars().all()
|
||||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||||
|
|
||||||
# retrieve conversation
|
# retrieve conversation
|
||||||
async def get_chat_by_id(
|
async def get_chat_by_id(
|
||||||
self, id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> ChatModel | None:
|
) -> ChatModel | None:
|
||||||
"""Fetch a chat by PK, auto-sanitizing null bytes on read."""
|
"""Fetch a chat by PK, auto-sanitizing null bytes on read."""
|
||||||
try:
|
try:
|
||||||
@@ -1034,6 +1040,7 @@ class ChatTable:
|
|||||||
result = await session.execute(select(Chat).order_by(Chat.updated_at.desc()))
|
result = await session.execute(select(Chat).order_by(Chat.updated_at.desc()))
|
||||||
all_chats = result.scalars().all()
|
all_chats = result.scalars().all()
|
||||||
return [ChatModel.model_validate(chat) for chat in all_chats]
|
return [ChatModel.model_validate(chat) for chat in all_chats]
|
||||||
|
|
||||||
# list user conversations
|
# list user conversations
|
||||||
async def get_chats_by_user_id(
|
async def get_chats_by_user_id(
|
||||||
self,
|
self,
|
||||||
@@ -1082,6 +1089,7 @@ class ChatTable:
|
|||||||
'total': total,
|
'total': total,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# list pinned chats
|
# list pinned chats
|
||||||
async def get_pinned_chats_by_user_id(
|
async def get_pinned_chats_by_user_id(
|
||||||
self, user_id: str, db: AsyncSession | None = None
|
self, user_id: str, db: AsyncSession | None = None
|
||||||
@@ -1112,6 +1120,7 @@ class ChatTable:
|
|||||||
select(Chat).filter_by(user_id=user_id, archived=True).order_by(Chat.updated_at.desc())
|
select(Chat).filter_by(user_id=user_id, archived=True).order_by(Chat.updated_at.desc())
|
||||||
)
|
)
|
||||||
return [ChatModel.model_validate(chat) for chat in result.scalars().all()]
|
return [ChatModel.model_validate(chat) for chat in result.scalars().all()]
|
||||||
|
|
||||||
# search user conversations
|
# search user conversations
|
||||||
async def get_chats_by_user_id_and_search_text(
|
async def get_chats_by_user_id_and_search_text(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
||||||
from open_webui.utils.misc import sanitize_metadata
|
from open_webui.utils.misc import sanitize_metadata
|
||||||
@@ -46,6 +47,7 @@ class FileModel(BaseModel):
|
|||||||
created_at: int | None # timestamp in epoch
|
created_at: int | None # timestamp in epoch
|
||||||
updated_at: int | None # timestamp in epoch
|
updated_at: int | None # timestamp in epoch
|
||||||
|
|
||||||
|
|
||||||
# --- metadata structures ---
|
# --- metadata structures ---
|
||||||
class FileMeta(BaseModel):
|
class FileMeta(BaseModel):
|
||||||
name: str | None = None
|
name: str | None = None
|
||||||
@@ -150,7 +152,9 @@ class FilesTable:
|
|||||||
return None # insertion failed
|
return None # insertion failed
|
||||||
|
|
||||||
async def get_file_by_id(
|
async def get_file_by_id(
|
||||||
self, id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> FileModel | None:
|
) -> FileModel | None:
|
||||||
"""Look up a file by its primary key."""
|
"""Look up a file by its primary key."""
|
||||||
try:
|
try:
|
||||||
@@ -409,9 +413,7 @@ class FilesTable:
|
|||||||
|
|
||||||
# Subquery: file IDs already linked to this knowledge base
|
# Subquery: file IDs already linked to this knowledge base
|
||||||
linked_ids = (
|
linked_ids = (
|
||||||
select(KnowledgeFile.file_id)
|
select(KnowledgeFile.file_id).filter(KnowledgeFile.knowledge_id == knowledge_id).correlate(None)
|
||||||
.filter(KnowledgeFile.knowledge_id == knowledge_id)
|
|
||||||
.correlate(None)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
stmt = (
|
stmt = (
|
||||||
@@ -424,10 +426,7 @@ class FilesTable:
|
|||||||
.order_by(File.created_at.desc())
|
.order_by(File.created_at.desc())
|
||||||
)
|
)
|
||||||
result = await db.execute(stmt)
|
result = await db.execute(stmt)
|
||||||
return [
|
return [FileModelResponse.model_validate(f, from_attributes=True) for f in result.scalars().all()]
|
||||||
FileModelResponse.model_validate(f, from_attributes=True)
|
|
||||||
for f in result.scalars().all()
|
|
||||||
]
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.warning(f'Error fetching pending files for knowledge {knowledge_id}: {e}')
|
log.warning(f'Error fetching pending files for knowledge {knowledge_id}: {e}')
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
||||||
from open_webui.models.users import UserModel, UserResponse, Users
|
from open_webui.models.users import UserModel, UserResponse, Users
|
||||||
@@ -52,6 +53,7 @@ class FunctionModel(BaseModel):
|
|||||||
|
|
||||||
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
||||||
|
|
||||||
|
|
||||||
# --- form / schema definitions ---
|
# --- form / schema definitions ---
|
||||||
class FunctionWithValvesModel(BaseModel):
|
class FunctionWithValvesModel(BaseModel):
|
||||||
id: str
|
id: str
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class MemoryModel(BaseModel):
|
|||||||
created_at: int # timestamp in epoch
|
created_at: int # timestamp in epoch
|
||||||
model_config = ConfigDict(from_attributes=True) # allows ORM mapping
|
model_config = ConfigDict(from_attributes=True) # allows ORM mapping
|
||||||
|
|
||||||
|
|
||||||
class MemoriesTable:
|
class MemoriesTable:
|
||||||
async def insert_new_memory(
|
async def insert_new_memory(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -51,8 +51,7 @@ class ModelMeta(BaseModel):
|
|||||||
if v not in _warned_profile_urls:
|
if v not in _warned_profile_urls:
|
||||||
_warned_profile_urls.add(v)
|
_warned_profile_urls.add(v)
|
||||||
log.warning(
|
log.warning(
|
||||||
'Clearing invalid profile_image_url stored in DB '
|
'Clearing invalid profile_image_url stored in DB (likely a legacy SVG data-URI): %.80s…',
|
||||||
'(likely a legacy SVG data-URI): %.80s…',
|
|
||||||
v,
|
v,
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
@@ -74,7 +73,6 @@ class ModelMeta(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class Model(Base):
|
class Model(Base):
|
||||||
|
|
||||||
"""Workspace model entry — wraps an upstream LLM with custom params and metadata."""
|
"""Workspace model entry — wraps an upstream LLM with custom params and metadata."""
|
||||||
|
|
||||||
__tablename__ = 'model'
|
__tablename__ = 'model'
|
||||||
@@ -195,9 +193,7 @@ class ModelsTable:
|
|||||||
models: list[ModelModel] = []
|
models: list[ModelModel] = []
|
||||||
for model in all_models:
|
for model in all_models:
|
||||||
try:
|
try:
|
||||||
models.append(
|
models.append(await self._to_model_model(model, access_grants=grants_map.get(model.id, []), db=db))
|
||||||
await self._to_model_model(model, access_grants=grants_map.get(model.id, []), db=db)
|
|
||||||
)
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
log.error('Skipping model %r during get_all_models due to error: %s', model.id, exc)
|
log.error('Skipping model %r during get_all_models due to error: %s', model.id, exc)
|
||||||
return models
|
return models
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ class PromptModel(BaseModel):
|
|||||||
access_grants: list[AccessGrantModel] = Field(default_factory=list)
|
access_grants: list[AccessGrantModel] = Field(default_factory=list)
|
||||||
|
|
||||||
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
||||||
|
|
||||||
|
|
||||||
# --- form / schema definitions ---
|
# --- form / schema definitions ---
|
||||||
# Forms
|
# Forms
|
||||||
####################
|
####################
|
||||||
@@ -107,26 +109,36 @@ class PromptsTable:
|
|||||||
)
|
)
|
||||||
return PromptModel.model_validate(prompt_data)
|
return PromptModel.model_validate(prompt_data)
|
||||||
|
|
||||||
async def insert_new_prompt(self, user_id: str, form_data: PromptForm, db: AsyncSession | None = None) -> PromptModel | None:
|
async def insert_new_prompt(
|
||||||
|
self, user_id: str, form_data: PromptForm, db: AsyncSession | None = None
|
||||||
|
) -> PromptModel | None:
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
prompt_id = str(uuid.uuid4())
|
prompt_id = str(uuid.uuid4())
|
||||||
|
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
try:
|
try:
|
||||||
record = Prompt(
|
record = Prompt(
|
||||||
id=prompt_id, user_id=user_id,
|
id=prompt_id,
|
||||||
command=form_data.command, name=form_data.name,
|
user_id=user_id,
|
||||||
|
command=form_data.command,
|
||||||
|
name=form_data.name,
|
||||||
content=form_data.content,
|
content=form_data.content,
|
||||||
data=form_data.data or {}, meta=form_data.meta or {},
|
data=form_data.data or {},
|
||||||
tags=form_data.tags or [], is_active=True,
|
meta=form_data.meta or {},
|
||||||
created_at=now, updated_at=now,
|
tags=form_data.tags or [],
|
||||||
|
is_active=True,
|
||||||
|
created_at=now,
|
||||||
|
updated_at=now,
|
||||||
)
|
)
|
||||||
session.add(record)
|
session.add(record)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
await session.refresh(record) # populate generated defaults
|
await session.refresh(record) # populate generated defaults
|
||||||
|
|
||||||
await AccessGrants.set_access_grants(
|
await AccessGrants.set_access_grants(
|
||||||
'prompt', prompt_id, form_data.access_grants, db=session,
|
'prompt',
|
||||||
|
prompt_id,
|
||||||
|
form_data.access_grants,
|
||||||
|
db=session,
|
||||||
) # persist sharing rules
|
) # persist sharing rules
|
||||||
|
|
||||||
if not record: # shouldn't happen, but guard anyway
|
if not record: # shouldn't happen, but guard anyway
|
||||||
@@ -145,8 +157,10 @@ class PromptsTable:
|
|||||||
}
|
}
|
||||||
|
|
||||||
history_entry = await PromptHistories.create_history_entry(
|
history_entry = await PromptHistories.create_history_entry(
|
||||||
prompt_id=prompt_id, snapshot=snapshot,
|
prompt_id=prompt_id,
|
||||||
user_id=user_id, parent_id=None,
|
snapshot=snapshot,
|
||||||
|
user_id=user_id,
|
||||||
|
parent_id=None,
|
||||||
commit_message=form_data.commit_message or 'Initial version',
|
commit_message=form_data.commit_message or 'Initial version',
|
||||||
db=session,
|
db=session,
|
||||||
) # creates the first version entry
|
) # creates the first version entry
|
||||||
@@ -178,9 +192,7 @@ class PromptsTable:
|
|||||||
async def get_prompt_by_command(self, command: str, db: AsyncSession | None = None) -> PromptModel | None:
|
async def get_prompt_by_command(self, command: str, db: AsyncSession | None = None) -> PromptModel | None:
|
||||||
"""Look up a prompt by its unique slash-command string."""
|
"""Look up a prompt by its unique slash-command string."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
match = (await session.execute(
|
match = (await session.execute(select(Prompt).where(Prompt.command == command))).scalars().first()
|
||||||
select(Prompt).where(Prompt.command == command)
|
|
||||||
)).scalars().first()
|
|
||||||
if match is None:
|
if match is None:
|
||||||
return
|
return
|
||||||
return await self._to_prompt_model(match, db=session)
|
return await self._to_prompt_model(match, db=session)
|
||||||
@@ -190,9 +202,15 @@ class PromptsTable:
|
|||||||
async def get_prompts(self, db: AsyncSession | None = None) -> list[PromptUserResponse]:
|
async def get_prompts(self, db: AsyncSession | None = None) -> list[PromptUserResponse]:
|
||||||
"""Return all active prompts ordered by most recently updated."""
|
"""Return all active prompts ordered by most recently updated."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
active = (await session.execute(
|
active = (
|
||||||
select(Prompt).where(Prompt.is_active.is_(True)).order_by(Prompt.updated_at.desc())
|
(
|
||||||
)).scalars().all()
|
await session.execute(
|
||||||
|
select(Prompt).where(Prompt.is_active.is_(True)).order_by(Prompt.updated_at.desc())
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.scalars()
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
|
||||||
user_ids = list(set(p.user_id for p in active))
|
user_ids = list(set(p.user_id for p in active))
|
||||||
prompt_ids = [p.id for p in active]
|
prompt_ids = [p.id for p in active]
|
||||||
@@ -600,10 +618,13 @@ class PromptsTable:
|
|||||||
|
|
||||||
return await self._to_prompt_model(prompt, db=session)
|
return await self._to_prompt_model(prompt, db=session)
|
||||||
except Exception as e: # connection error
|
except Exception as e: # connection error
|
||||||
log.error(f"Failed to restore prompt version: {e}")
|
log.error(f'Failed to restore prompt version: {e}')
|
||||||
return None # restoration failed
|
return None # restoration failed
|
||||||
|
|
||||||
async def toggle_prompt_active(
|
async def toggle_prompt_active(
|
||||||
self, prompt_id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
prompt_id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> PromptModel | None:
|
) -> PromptModel | None:
|
||||||
"""Flip the is_active flag on a prompt."""
|
"""Flip the is_active flag on a prompt."""
|
||||||
if not prompt_id:
|
if not prompt_id:
|
||||||
@@ -654,7 +675,7 @@ class PromptsTable:
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
log.error(f"Failed to delete prompt: {err}")
|
log.error(f'Failed to delete prompt: {err}')
|
||||||
return False # deletion failed
|
return False # deletion failed
|
||||||
|
|
||||||
async def get_tags(self, db: AsyncSession | None = None) -> list[str]:
|
async def get_tags(self, db: AsyncSession | None = None) -> list[str]:
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
||||||
from pydantic import BaseModel, ConfigDict
|
from pydantic import BaseModel, ConfigDict
|
||||||
@@ -37,6 +38,7 @@ class TagModel(BaseModel):
|
|||||||
meta: dict | None = None
|
meta: dict | None = None
|
||||||
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
model_config = ConfigDict(from_attributes=True) # allows ORM model binding
|
||||||
|
|
||||||
|
|
||||||
# --- tag schema forms ---
|
# --- tag schema forms ---
|
||||||
# Forms
|
# Forms
|
||||||
####################
|
####################
|
||||||
@@ -49,7 +51,10 @@ class TagChatIdForm(BaseModel):
|
|||||||
|
|
||||||
class TagTable:
|
class TagTable:
|
||||||
async def insert_new_tag(
|
async def insert_new_tag(
|
||||||
self, name: str, user_id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
name: str,
|
||||||
|
user_id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> TagModel | None:
|
) -> TagModel | None:
|
||||||
"""Create a new tag, deriving the id from the name."""
|
"""Create a new tag, deriving the id from the name."""
|
||||||
async with get_async_db_context(db) as db:
|
async with get_async_db_context(db) as db:
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
from open_webui.internal.db import Base, JSONField, get_async_db_context
|
||||||
from open_webui.models.access_grants import AccessGrantModel, AccessGrants
|
from open_webui.models.access_grants import AccessGrantModel, AccessGrants
|
||||||
@@ -50,6 +51,7 @@ class ToolModel(BaseModel):
|
|||||||
|
|
||||||
model_config = ConfigDict(from_attributes=True) # enables ORM mapping
|
model_config = ConfigDict(from_attributes=True) # enables ORM mapping
|
||||||
|
|
||||||
|
|
||||||
# --- tool request forms ---
|
# --- tool request forms ---
|
||||||
# Forms
|
# Forms
|
||||||
####################
|
####################
|
||||||
@@ -138,7 +140,9 @@ class ToolsTable:
|
|||||||
return None # creation failed
|
return None # creation failed
|
||||||
|
|
||||||
async def get_tool_by_id(
|
async def get_tool_by_id(
|
||||||
self, id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> ToolModel | None:
|
) -> ToolModel | None:
|
||||||
"""Fetch a single tool by primary key, including access grants."""
|
"""Fetch a single tool by primary key, including access grants."""
|
||||||
try: # single PK lookup + access grants
|
try: # single PK lookup + access grants
|
||||||
@@ -150,18 +154,14 @@ class ToolsTable:
|
|||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_tools_by_ids(
|
async def get_tools_by_ids(self, tool_ids: list[str], db: AsyncSession | None = None) -> dict[str, ToolModel]:
|
||||||
self, tool_ids: list[str], db: AsyncSession | None = None
|
|
||||||
) -> dict[str, ToolModel]:
|
|
||||||
"""Batch-fetch multiple tools by ID, returning a dict keyed by tool ID."""
|
"""Batch-fetch multiple tools by ID, returning a dict keyed by tool ID."""
|
||||||
if not tool_ids:
|
if not tool_ids:
|
||||||
return {}
|
return {}
|
||||||
async with get_async_db_context(db) as db:
|
async with get_async_db_context(db) as db:
|
||||||
result = await db.execute(select(Tool).where(Tool.id.in_(tool_ids)))
|
result = await db.execute(select(Tool).where(Tool.id.in_(tool_ids)))
|
||||||
tools = result.scalars().all()
|
tools = result.scalars().all()
|
||||||
grants_map = await AccessGrants.get_grants_by_resources(
|
grants_map = await AccessGrants.get_grants_by_resources('tool', [tool.id for tool in tools], db=db)
|
||||||
'tool', [tool.id for tool in tools], db=db
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
tool.id: await self._to_tool_model(tool, access_grants=grants_map.get(tool.id, []), db=db)
|
tool.id: await self._to_tool_model(tool, access_grants=grants_map.get(tool.id, []), db=db)
|
||||||
for tool in tools
|
for tool in tools
|
||||||
|
|||||||
@@ -46,11 +46,11 @@ class UserSettings(BaseModel):
|
|||||||
class User(Base): # identity & profile
|
class User(Base): # identity & profile
|
||||||
"""One row per registered account — profile, role, and settings."""
|
"""One row per registered account — profile, role, and settings."""
|
||||||
|
|
||||||
__tablename__: str = 'user' # Identity & Credentials
|
__tablename__: str = 'user' # Identity & Credentials
|
||||||
id = Column(String, primary_key=True, unique=True) # unique user id
|
id = Column(String, primary_key=True, unique=True) # unique user id
|
||||||
email = Column(String, unique=True) # user email address
|
email = Column(String, unique=True) # user email address
|
||||||
username = Column(String(50), nullable=True) # custom handle
|
username = Column(String(50), nullable=True) # custom handle
|
||||||
role = Column(String, default="pending") # permissions role
|
role = Column(String, default='pending') # permissions role
|
||||||
name = Column(String, nullable=False) # display name
|
name = Column(String, nullable=False) # display name
|
||||||
|
|
||||||
# Profile
|
# Profile
|
||||||
@@ -117,20 +117,16 @@ class UserModel(BaseModel):
|
|||||||
model_config = ConfigDict(
|
model_config = ConfigDict(
|
||||||
from_attributes=True,
|
from_attributes=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# validation schema logic
|
# validation schema logic
|
||||||
# --- model validators ---
|
# --- model validators ---
|
||||||
@model_validator(mode='after')
|
@model_validator(mode='after')
|
||||||
def _ensure_profile_image(self) -> 'UserModel':
|
def _ensure_profile_image(self) -> 'UserModel':
|
||||||
"""Assign a generated avatar when no profile image is provided."""
|
"""Assign a generated avatar when no profile image is provided."""
|
||||||
self.profile_image_url = (
|
self.profile_image_url = self.profile_image_url or _DEFAULT_PROFILE_IMAGE_URL.format(user_id=self.id)
|
||||||
self.profile_image_url
|
|
||||||
or _DEFAULT_PROFILE_IMAGE_URL.format(user_id=self.id)
|
|
||||||
)
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class UserStatusModel(UserModel):
|
class UserStatusModel(UserModel):
|
||||||
is_active: bool = False
|
is_active: bool = False
|
||||||
|
|
||||||
@@ -303,31 +299,37 @@ class UsersTable:
|
|||||||
await session.commit()
|
await session.commit()
|
||||||
await session.refresh(result)
|
await session.refresh(result)
|
||||||
return user if result else None
|
return user if result else None
|
||||||
|
|
||||||
# database read methods
|
# database read methods
|
||||||
# --- read / lookup operations ---
|
# --- read / lookup operations ---
|
||||||
async def get_user_by_id(
|
async def get_user_by_id(
|
||||||
self, id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Fetch a single user by primary key."""
|
"""Fetch a single user by primary key."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
user = await session.get(User, id)
|
user = await session.get(User, id)
|
||||||
return UserModel.model_validate(user) if user else None
|
return UserModel.model_validate(user) if user else None
|
||||||
|
|
||||||
# api key auth helper
|
# api key auth helper
|
||||||
async def get_user_by_api_key(
|
async def get_user_by_api_key(
|
||||||
self, api_key: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
api_key: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Resolve a user from their API key via a JOIN on the api_key table."""
|
"""Resolve a user from their API key via a JOIN on the api_key table."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
result = await session.execute(
|
result = await session.execute(
|
||||||
select(User)
|
select(User).join(ApiKey, User.id == ApiKey.user_id).where(ApiKey.key == api_key),
|
||||||
.join(ApiKey, User.id == ApiKey.user_id)
|
|
||||||
.where(ApiKey.key == api_key),
|
|
||||||
)
|
)
|
||||||
user = result.scalars().first()
|
user = result.scalars().first()
|
||||||
return UserModel.model_validate(user) if user else None
|
return UserModel.model_validate(user) if user else None
|
||||||
|
|
||||||
async def get_user_by_email(
|
async def get_user_by_email(
|
||||||
self, email: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
email: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Case-insensitive email lookup using SQL lower()."""
|
"""Case-insensitive email lookup using SQL lower()."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -342,7 +344,10 @@ class UsersTable:
|
|||||||
|
|
||||||
# --- oauth & integrations ---
|
# --- oauth & integrations ---
|
||||||
async def get_user_by_oauth_sub(
|
async def get_user_by_oauth_sub(
|
||||||
self, provider: str, sub: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
provider: str,
|
||||||
|
sub: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Look up a user by OAuth provider + subject claim (dialect-aware JSON filter)."""
|
"""Look up a user by OAuth provider + subject claim (dialect-aware JSON filter)."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -358,7 +363,10 @@ class UsersTable:
|
|||||||
return UserModel.model_validate(row) if row else None
|
return UserModel.model_validate(row) if row else None
|
||||||
|
|
||||||
async def get_user_by_scim_external_id(
|
async def get_user_by_scim_external_id(
|
||||||
self, provider: str, external_id: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
provider: str,
|
||||||
|
external_id: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
"""Look up a user by SCIM provider + external ID (dialect-aware JSON filter)."""
|
"""Look up a user by SCIM provider + external ID (dialect-aware JSON filter)."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -373,10 +381,12 @@ class UsersTable:
|
|||||||
row = (await session.execute(query)).scalars().first()
|
row = (await session.execute(query)).scalars().first()
|
||||||
return UserModel.model_validate(row) if row else None
|
return UserModel.model_validate(row) if row else None
|
||||||
|
|
||||||
|
|
||||||
async def get_users(
|
async def get_users(
|
||||||
self, filter: dict | None = None, skip: int | None = None,
|
self,
|
||||||
limit: int | None = None, db: AsyncSession | None = None,
|
filter: dict | None = None,
|
||||||
|
skip: int | None = None,
|
||||||
|
limit: int | None = None,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> dict:
|
) -> dict:
|
||||||
"""Paginated user listing with optional filters for role, group, and channel."""
|
"""Paginated user listing with optional filters for role, group, and channel."""
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -531,11 +541,13 @@ class UsersTable:
|
|||||||
result = await session.execute(select(User).filter(User.id.in_(user_ids)))
|
result = await session.execute(select(User).filter(User.id.in_(user_ids)))
|
||||||
users = result.scalars().all()
|
users = result.scalars().all()
|
||||||
return [UserModel.model_validate(user) for user in users]
|
return [UserModel.model_validate(user) for user in users]
|
||||||
|
|
||||||
# count registered accounts
|
# count registered accounts
|
||||||
async def get_num_users(self, db: AsyncSession | None = None) -> int | None:
|
async def get_num_users(self, db: AsyncSession | None = None) -> int | None:
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
result = await session.execute(select(func.count()).select_from(User))
|
result = await session.execute(select(func.count()).select_from(User))
|
||||||
return result.scalar()
|
return result.scalar()
|
||||||
|
|
||||||
# check user existence
|
# check user existence
|
||||||
async def has_users(self, db: AsyncSession | None = None) -> bool:
|
async def has_users(self, db: AsyncSession | None = None) -> bool:
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
@@ -589,7 +601,10 @@ class UsersTable:
|
|||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
|
|
||||||
async def update_user_profile_image_url_by_id(
|
async def update_user_profile_image_url_by_id(
|
||||||
self, id: str, profile_image_url: str, db: AsyncSession | None = None,
|
self,
|
||||||
|
id: str,
|
||||||
|
profile_image_url: str,
|
||||||
|
db: AsyncSession | None = None,
|
||||||
) -> UserModel | None:
|
) -> UserModel | None:
|
||||||
async with get_async_db_context(db) as session:
|
async with get_async_db_context(db) as session:
|
||||||
user = await session.get(User, id)
|
user = await session.get(User, id)
|
||||||
@@ -650,6 +665,7 @@ class UsersTable:
|
|||||||
await session.commit()
|
await session.commit()
|
||||||
await session.refresh(user)
|
await session.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
|
|
||||||
# settings update helper
|
# settings update helper
|
||||||
async def update_user_settings_by_id(
|
async def update_user_settings_by_id(
|
||||||
self, id: str, updated: dict, db: AsyncSession | None = None
|
self, id: str, updated: dict, db: AsyncSession | None = None
|
||||||
@@ -745,4 +761,3 @@ class UsersTable:
|
|||||||
|
|
||||||
|
|
||||||
Users = UsersTable() # singleton user repository
|
Users = UsersTable() # singleton user repository
|
||||||
|
|
||||||
|
|||||||
@@ -273,18 +273,18 @@ class Loader:
|
|||||||
4. Falling back to latin-1 (always valid, ftfy fixes mojibake later).
|
4. Falling back to latin-1 (always valid, ftfy fixes mojibake later).
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
with open(file_path, "rb") as f:
|
with open(file_path, 'rb') as f:
|
||||||
raw = f.read()
|
raw = f.read()
|
||||||
except OSError:
|
except OSError:
|
||||||
return "utf-8"
|
return 'utf-8'
|
||||||
|
|
||||||
if not raw:
|
if not raw:
|
||||||
return "utf-8"
|
return 'utf-8'
|
||||||
|
|
||||||
# Fast path: most files are UTF-8
|
# Fast path: most files are UTF-8
|
||||||
try:
|
try:
|
||||||
raw.decode("utf-8")
|
raw.decode('utf-8')
|
||||||
return "utf-8"
|
return 'utf-8'
|
||||||
except UnicodeDecodeError:
|
except UnicodeDecodeError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -292,24 +292,24 @@ class Loader:
|
|||||||
import chardet
|
import chardet
|
||||||
|
|
||||||
detected = chardet.detect(raw)
|
detected = chardet.detect(raw)
|
||||||
detected_enc = (detected.get("encoding") or "").lower().replace("-", "").replace("_", "")
|
detected_enc = (detected.get('encoding') or '').lower().replace('-', '').replace('_', '')
|
||||||
|
|
||||||
# Map chardet's detected encoding to the correct superset codec.
|
# Map chardet's detected encoding to the correct superset codec.
|
||||||
# chardet often reports GB2312 for content that is actually GB18030;
|
# chardet often reports GB2312 for content that is actually GB18030;
|
||||||
# GB18030 is a strict superset of both GB2312 and GBK.
|
# GB18030 is a strict superset of both GB2312 and GBK.
|
||||||
_ENC_FAMILY = {
|
_ENC_FAMILY = {
|
||||||
"gb2312": "gb18030",
|
'gb2312': 'gb18030',
|
||||||
"gb18030": "gb18030",
|
'gb18030': 'gb18030',
|
||||||
"gbk": "gb18030",
|
'gbk': 'gb18030',
|
||||||
"big5": "big5",
|
'big5': 'big5',
|
||||||
"euckr": "euc-kr",
|
'euckr': 'euc-kr',
|
||||||
"eucjp": "euc-jp",
|
'eucjp': 'euc-jp',
|
||||||
"iso2022jp": "euc-jp",
|
'iso2022jp': 'euc-jp',
|
||||||
"shiftjis": "shift_jis",
|
'shiftjis': 'shift_jis',
|
||||||
}
|
}
|
||||||
|
|
||||||
# Build priority list: chardet-hinted codec first, then remaining CJK
|
# Build priority list: chardet-hinted codec first, then remaining CJK
|
||||||
base_order = ["gb18030", "big5", "euc-kr", "euc-jp"]
|
base_order = ['gb18030', 'big5', 'euc-kr', 'euc-jp']
|
||||||
hinted = _ENC_FAMILY.get(detected_enc)
|
hinted = _ENC_FAMILY.get(detected_enc)
|
||||||
if hinted and hinted in base_order:
|
if hinted and hinted in base_order:
|
||||||
ordered = [hinted] + [e for e in base_order if e != hinted]
|
ordered = [hinted] + [e for e in base_order if e != hinted]
|
||||||
@@ -321,10 +321,10 @@ class Loader:
|
|||||||
text = raw.decode(enc)
|
text = raw.decode(enc)
|
||||||
if text.strip() and self._has_cjk_characters(text):
|
if text.strip() and self._has_cjk_characters(text):
|
||||||
log.info(
|
log.info(
|
||||||
"Detected encoding %s for %s (chardet guessed %s)",
|
'Detected encoding %s for %s (chardet guessed %s)',
|
||||||
enc,
|
enc,
|
||||||
file_path,
|
file_path,
|
||||||
detected.get("encoding"),
|
detected.get('encoding'),
|
||||||
)
|
)
|
||||||
return enc
|
return enc
|
||||||
except (UnicodeDecodeError, LookupError):
|
except (UnicodeDecodeError, LookupError):
|
||||||
@@ -332,12 +332,12 @@ class Loader:
|
|||||||
|
|
||||||
# If chardet gave a non-CJK answer that isn't in our family map,
|
# If chardet gave a non-CJK answer that isn't in our family map,
|
||||||
# try it directly — it might be a valid Western encoding.
|
# try it directly — it might be a valid Western encoding.
|
||||||
chardet_encoding = detected.get("encoding")
|
chardet_encoding = detected.get('encoding')
|
||||||
if chardet_encoding:
|
if chardet_encoding:
|
||||||
try:
|
try:
|
||||||
raw.decode(chardet_encoding)
|
raw.decode(chardet_encoding)
|
||||||
log.info(
|
log.info(
|
||||||
"Using chardet-detected encoding %s for %s",
|
'Using chardet-detected encoding %s for %s',
|
||||||
chardet_encoding,
|
chardet_encoding,
|
||||||
file_path,
|
file_path,
|
||||||
)
|
)
|
||||||
@@ -348,8 +348,8 @@ class Loader:
|
|||||||
# latin-1 is the ultimate fallback: every byte 0x00–0xFF is valid.
|
# latin-1 is the ultimate fallback: every byte 0x00–0xFF is valid.
|
||||||
# ftfy.fix_text() (applied downstream) repairs most mojibake that
|
# ftfy.fix_text() (applied downstream) repairs most mojibake that
|
||||||
# results from treating Windows-1252 content as Latin-1.
|
# results from treating Windows-1252 content as Latin-1.
|
||||||
log.info("Falling back to latin-1 encoding for %s", file_path)
|
log.info('Falling back to latin-1 encoding for %s', file_path)
|
||||||
return "latin-1"
|
return 'latin-1'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _has_cjk_characters(text: str, threshold: float = 0.05) -> bool:
|
def _has_cjk_characters(text: str, threshold: float = 0.05) -> bool:
|
||||||
@@ -371,17 +371,17 @@ class Loader:
|
|||||||
total += 1
|
total += 1
|
||||||
cp = ord(ch)
|
cp = ord(ch)
|
||||||
if (
|
if (
|
||||||
0x4E00 <= cp <= 0x9FFF # CJK Unified Ideographs
|
0x4E00 <= cp <= 0x9FFF # CJK Unified Ideographs
|
||||||
or 0x3400 <= cp <= 0x4DBF # CJK Extension A
|
or 0x3400 <= cp <= 0x4DBF # CJK Extension A
|
||||||
or 0x20000 <= cp <= 0x2A6DF # CJK Extension B
|
or 0x20000 <= cp <= 0x2A6DF # CJK Extension B
|
||||||
or 0x2A700 <= cp <= 0x2B73F # CJK Extension C
|
or 0x2A700 <= cp <= 0x2B73F # CJK Extension C
|
||||||
or 0x2B740 <= cp <= 0x2B81F # CJK Extension D
|
or 0x2B740 <= cp <= 0x2B81F # CJK Extension D
|
||||||
or 0xF900 <= cp <= 0xFAFF # CJK Compatibility Ideographs
|
or 0xF900 <= cp <= 0xFAFF # CJK Compatibility Ideographs
|
||||||
or 0x3000 <= cp <= 0x303F # CJK Symbols and Punctuation
|
or 0x3000 <= cp <= 0x303F # CJK Symbols and Punctuation
|
||||||
or 0x3040 <= cp <= 0x309F # Hiragana
|
or 0x3040 <= cp <= 0x309F # Hiragana
|
||||||
or 0x30A0 <= cp <= 0x30FF # Katakana
|
or 0x30A0 <= cp <= 0x30FF # Katakana
|
||||||
or 0xAC00 <= cp <= 0xD7AF # Hangul Syllables
|
or 0xAC00 <= cp <= 0xD7AF # Hangul Syllables
|
||||||
or 0xFF00 <= cp <= 0xFFEF # Halfwidth and Fullwidth Forms
|
or 0xFF00 <= cp <= 0xFFEF # Halfwidth and Fullwidth Forms
|
||||||
):
|
):
|
||||||
cjk_count += 1
|
cjk_count += 1
|
||||||
|
|
||||||
@@ -646,4 +646,3 @@ class Loader:
|
|||||||
loader = TextLoader(file_path, encoding=self._detect_text_encoding(file_path))
|
loader = TextLoader(file_path, encoding=self._detect_text_encoding(file_path))
|
||||||
|
|
||||||
return loader
|
return loader
|
||||||
|
|
||||||
|
|||||||
@@ -933,6 +933,7 @@ def get_embedding_function(
|
|||||||
'SentenceTransformer model name, or configure an external '
|
'SentenceTransformer model name, or configure an external '
|
||||||
'RAG_EMBEDDING_ENGINE (ollama, openai, azure_openai).'
|
'RAG_EMBEDDING_ENGINE (ollama, openai, azure_openai).'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Sentence transformers: CPU-bound sync operation
|
# Sentence transformers: CPU-bound sync operation
|
||||||
async def async_embedding_function(query, prefix=None, user=None):
|
async def async_embedding_function(query, prefix=None, user=None):
|
||||||
return await asyncio.to_thread(
|
return await asyncio.to_thread(
|
||||||
@@ -1108,8 +1109,7 @@ async def filter_accessible_collections(
|
|||||||
rejected = collection_names - safe_names
|
rejected = collection_names - safe_names
|
||||||
if rejected:
|
if rejected:
|
||||||
log.warning(
|
log.warning(
|
||||||
'filter_accessible_collections: rejected %d collection name(s) '
|
'filter_accessible_collections: rejected %d collection name(s) with unsafe characters (user_id=%s)',
|
||||||
'with unsafe characters (user_id=%s)',
|
|
||||||
len(rejected),
|
len(rejected),
|
||||||
getattr(user, 'id', '<unknown>'),
|
getattr(user, 'id', '<unknown>'),
|
||||||
)
|
)
|
||||||
@@ -1363,10 +1363,7 @@ async def get_sources_from_items(
|
|||||||
files = await Knowledges.get_files_by_id(knowledge_base.id)
|
files = await Knowledges.get_files_by_id(knowledge_base.id)
|
||||||
owned_names = {f'file-{f.id}' for f in files}
|
owned_names = {f'file-{f.id}' for f in files}
|
||||||
owned_names.add(knowledge_base.id)
|
owned_names.add(knowledge_base.id)
|
||||||
valid_names = [
|
valid_names = [n for n in (item.get('collection_names') or []) if n in owned_names]
|
||||||
n for n in (item.get('collection_names') or [])
|
|
||||||
if n in owned_names
|
|
||||||
]
|
|
||||||
collection_names = valid_names if valid_names else [knowledge_base.id]
|
collection_names = valid_names if valid_names else [knowledge_base.id]
|
||||||
else:
|
else:
|
||||||
collection_names.append(item['id'])
|
collection_names.append(item['id'])
|
||||||
@@ -1382,8 +1379,7 @@ async def get_sources_from_items(
|
|||||||
collection_names.append(item['collection_name'])
|
collection_names.append(item['collection_name'])
|
||||||
else:
|
else:
|
||||||
log.debug(
|
log.debug(
|
||||||
"get_sources_from_items: ignoring untrusted direct "
|
"get_sources_from_items: ignoring untrusted direct collection_name '%s' on item without type",
|
||||||
"collection_name '%s' on item without type",
|
|
||||||
item.get('collection_name'),
|
item.get('collection_name'),
|
||||||
)
|
)
|
||||||
elif item.get('collection_names'):
|
elif item.get('collection_names'):
|
||||||
@@ -1391,8 +1387,7 @@ async def get_sources_from_items(
|
|||||||
collection_names.extend(item['collection_names'])
|
collection_names.extend(item['collection_names'])
|
||||||
else:
|
else:
|
||||||
log.debug(
|
log.debug(
|
||||||
"get_sources_from_items: ignoring untrusted direct "
|
'get_sources_from_items: ignoring untrusted direct collection_names on item without type',
|
||||||
"collection_names on item without type",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# If query_result is None
|
# If query_result is None
|
||||||
|
|||||||
@@ -284,9 +284,7 @@ class MilvusClient(VectorDBBase):
|
|||||||
elif isinstance(value, (int, float)):
|
elif isinstance(value, (int, float)):
|
||||||
expr.append(f"metadata['{key}'] == {value}")
|
expr.append(f"metadata['{key}'] == {value}")
|
||||||
else:
|
else:
|
||||||
raise TypeError(
|
raise TypeError(f'Unsupported Milvus filter value type for key {key!r}: {type(value).__name__}')
|
||||||
f'Unsupported Milvus filter value type for key {key!r}: {type(value).__name__}'
|
|
||||||
)
|
|
||||||
|
|
||||||
iterator = collection.query_iterator(
|
iterator = collection.query_iterator(
|
||||||
expr=' and '.join(expr),
|
expr=' and '.join(expr),
|
||||||
|
|||||||
@@ -56,8 +56,7 @@ def _import_glide():
|
|||||||
)
|
)
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
raise ImportError(
|
raise ImportError(
|
||||||
'valkey-glide-sync is required when VECTOR_DB=valkey. '
|
'valkey-glide-sync is required when VECTOR_DB=valkey. Install it with: pip install valkey-glide-sync==2.3.1'
|
||||||
'Install it with: pip install valkey-glide-sync==2.3.1'
|
|
||||||
) from e
|
) from e
|
||||||
return {
|
return {
|
||||||
'Batch': Batch,
|
'Batch': Batch,
|
||||||
@@ -193,7 +192,7 @@ class ValkeyClient(VectorDBBase):
|
|||||||
addresses=[NodeAddress(host=host, port=port)],
|
addresses=[NodeAddress(host=host, port=port)],
|
||||||
database_id=db if db else None,
|
database_id=db if db else None,
|
||||||
request_timeout=5000,
|
request_timeout=5000,
|
||||||
client_name="open_webui_vector_store_client",
|
client_name='open_webui_vector_store_client',
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
self.client = GlideClient.create(config)
|
self.client = GlideClient.create(config)
|
||||||
@@ -206,7 +205,7 @@ class ValkeyClient(VectorDBBase):
|
|||||||
addresses=[NodeAddress(host=host, port=port)],
|
addresses=[NodeAddress(host=host, port=port)],
|
||||||
database_id=db if db else None,
|
database_id=db if db else None,
|
||||||
request_timeout=10000, # 10s — HNSW indexing can take 1-4s per vector
|
request_timeout=10000, # 10s — HNSW indexing can take 1-4s per vector
|
||||||
client_name="open_webui_vector_store_batch_client",
|
client_name='open_webui_vector_store_batch_client',
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
self.batch_client = GlideClient.create(batch_config)
|
self.batch_client = GlideClient.create(batch_config)
|
||||||
|
|||||||
@@ -66,9 +66,7 @@ def main():
|
|||||||
|
|
||||||
results = search_bing(
|
results = search_bing(
|
||||||
os.environ.get('BING_SEARCH_V7_SUBSCRIPTION_KEY', ''),
|
os.environ.get('BING_SEARCH_V7_SUBSCRIPTION_KEY', ''),
|
||||||
os.environ.get(
|
os.environ.get('BING_SEARCH_V7_ENDPOINT', 'https://api.bing.microsoft.com/v7.0/search'),
|
||||||
'BING_SEARCH_V7_ENDPOINT', 'https://api.bing.microsoft.com/v7.0/search'
|
|
||||||
),
|
|
||||||
args.locale,
|
args.locale,
|
||||||
args.query,
|
args.query,
|
||||||
args.count,
|
args.count,
|
||||||
|
|||||||
@@ -51,9 +51,7 @@ def search_linkup(
|
|||||||
|
|
||||||
output_type = merged.get('outputType', 'sourcedAnswer')
|
output_type = merged.get('outputType', 'sourcedAnswer')
|
||||||
search_results = (
|
search_results = (
|
||||||
json_response.get('sources', [])
|
json_response.get('sources', []) if output_type == 'sourcedAnswer' else json_response.get('results', [])
|
||||||
if output_type == 'sourcedAnswer'
|
|
||||||
else json_response.get('results', [])
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if filter_list:
|
if filter_list:
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ SPEECH_CACHE_DIR = CACHE_DIR / 'audio' / 'speech'
|
|||||||
SPEECH_CACHE_DIR.mkdir(parents=True, exist_ok=True)
|
SPEECH_CACHE_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def is_audio_conversion_required(file_path):
|
def is_audio_conversion_required(file_path):
|
||||||
"""
|
"""
|
||||||
Check if the given audio file needs conversion to mp3.
|
Check if the given audio file needs conversion to mp3.
|
||||||
@@ -307,8 +306,6 @@ async def update_audio_config(request: Request, form_data: AudioConfigUpdateForm
|
|||||||
else:
|
else:
|
||||||
request.app.state.faster_whisper_model = None
|
request.app.state.faster_whisper_model = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'tts': {
|
'tts': {
|
||||||
'ENGINE': request.app.state.config.TTS_ENGINE,
|
'ENGINE': request.app.state.config.TTS_ENGINE,
|
||||||
@@ -377,7 +374,10 @@ async def _raise_tts_error(exc: Exception, r=None) -> None:
|
|||||||
|
|
||||||
|
|
||||||
async def _write_tts_cache(
|
async def _write_tts_cache(
|
||||||
file_path: Path, audio: bytes, body_path: Path, payload: dict,
|
file_path: Path,
|
||||||
|
audio: bytes,
|
||||||
|
body_path: Path,
|
||||||
|
payload: dict,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Persist audio + request metadata to the speech cache."""
|
"""Persist audio + request metadata to the speech cache."""
|
||||||
async with aiofiles.open(file_path, 'wb') as f:
|
async with aiofiles.open(file_path, 'wb') as f:
|
||||||
@@ -405,16 +405,16 @@ async def _tts_openai(request, payload, file_path, file_body_path, user):
|
|||||||
session = await get_session()
|
session = await get_session()
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=f'{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/speech',
|
url=f'{request.app.state.config.TTS_OPENAI_API_BASE_URL}/audio/speech',
|
||||||
json=payload, headers=headers, ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
json=payload,
|
||||||
|
headers=headers,
|
||||||
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
)
|
)
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
|
|
||||||
audio_data = await r.read()
|
audio_data = await r.read()
|
||||||
content_type = r.headers.get('Content-Type', 'audio/mpeg')
|
content_type = r.headers.get('Content-Type', 'audio/mpeg')
|
||||||
|
|
||||||
if not await asyncio.to_thread(
|
if not await asyncio.to_thread(transcode_audio_to_mp3, audio_data, content_type, file_path):
|
||||||
transcode_audio_to_mp3, audio_data, content_type, file_path
|
|
||||||
):
|
|
||||||
async with aiofiles.open(file_path, 'wb') as f:
|
async with aiofiles.open(file_path, 'wb') as f:
|
||||||
await f.write(audio_data)
|
await f.write(audio_data)
|
||||||
|
|
||||||
@@ -595,9 +595,7 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
|||||||
|
|
||||||
body = await request.body()
|
body = await request.body()
|
||||||
name = hashlib.sha256(
|
name = hashlib.sha256(
|
||||||
body
|
body + str(engine).encode('utf-8') + str(request.app.state.config.TTS_MODEL).encode('utf-8')
|
||||||
+ str(engine).encode('utf-8')
|
|
||||||
+ str(request.app.state.config.TTS_MODEL).encode('utf-8')
|
|
||||||
).hexdigest()
|
).hexdigest()
|
||||||
|
|
||||||
file_path = SPEECH_CACHE_DIR.joinpath(f'{name}.mp3')
|
file_path = SPEECH_CACHE_DIR.joinpath(f'{name}.mp3')
|
||||||
@@ -628,8 +626,11 @@ async def _transcribe_whisper(request, file_path, languages, file_dir, id):
|
|||||||
|
|
||||||
def _run():
|
def _run():
|
||||||
segments, info = model.transcribe(
|
segments, info = model.transcribe(
|
||||||
file_path, beam_size=5, vad_filter=WHISPER_VAD_FILTER,
|
file_path,
|
||||||
language=languages[0], multilingual=WHISPER_MULTILINGUAL,
|
beam_size=5,
|
||||||
|
vad_filter=WHISPER_VAD_FILTER,
|
||||||
|
language=languages[0],
|
||||||
|
multilingual=WHISPER_MULTILINGUAL,
|
||||||
)
|
)
|
||||||
log.info("Detected language '%s' with probability %f" % (info.language, info.language_probability))
|
log.info("Detected language '%s' with probability %f" % (info.language, info.language_probability))
|
||||||
return ''.join([segment.text for segment in list(segments)])
|
return ''.join([segment.text for segment in list(segments)])
|
||||||
@@ -665,7 +666,9 @@ async def _transcribe_openai(request, file_path, filename, languages, file_dir,
|
|||||||
|
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=f'{request.app.state.config.STT_OPENAI_API_BASE_URL}/audio/transcriptions',
|
url=f'{request.app.state.config.STT_OPENAI_API_BASE_URL}/audio/transcriptions',
|
||||||
headers=headers, data=form_data, ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
headers=headers,
|
||||||
|
data=form_data,
|
||||||
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
)
|
)
|
||||||
if r.status == 200:
|
if r.status == 200:
|
||||||
break
|
break
|
||||||
@@ -724,11 +727,7 @@ async def _transcribe_deepgram(request, file_path, languages, file_dir, id):
|
|||||||
|
|
||||||
# Parse the Deepgram response structure
|
# Parse the Deepgram response structure
|
||||||
try:
|
try:
|
||||||
transcript = (
|
transcript = body['results']['channels'][0]['alternatives'][0].get('transcript', '').strip()
|
||||||
body['results']['channels'][0]['alternatives'][0]
|
|
||||||
.get('transcript', '')
|
|
||||||
.strip()
|
|
||||||
)
|
|
||||||
except (KeyError, IndexError) as exc:
|
except (KeyError, IndexError) as exc:
|
||||||
log.error(f'Malformed Deepgram response: {exc}')
|
log.error(f'Malformed Deepgram response: {exc}')
|
||||||
raise Exception('Failed to parse Deepgram response') from exc
|
raise Exception('Failed to parse Deepgram response') from exc
|
||||||
@@ -744,7 +743,11 @@ async def _transcribe_deepgram(request, file_path, languages, file_dir, id):
|
|||||||
if r is not None:
|
if r is not None:
|
||||||
try:
|
try:
|
||||||
res = await r.json()
|
res = await r.json()
|
||||||
msg = res.get('error', {}).get('message', '') if isinstance(res.get('error'), dict) else str(res.get('error', ''))
|
msg = (
|
||||||
|
res.get('error', {}).get('message', '')
|
||||||
|
if isinstance(res.get('error'), dict)
|
||||||
|
else str(res.get('error', ''))
|
||||||
|
)
|
||||||
if msg:
|
if msg:
|
||||||
detail = f'External: {msg}'
|
detail = f'External: {msg}'
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -752,7 +755,6 @@ async def _transcribe_deepgram(request, file_path, languages, file_dir, id):
|
|||||||
raise Exception(detail)
|
raise Exception(detail)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
||||||
"""Transcribe audio via Azure Cognitive Services batch transcription."""
|
"""Transcribe audio via Azure Cognitive Services batch transcription."""
|
||||||
if not os.path.isfile(file_path):
|
if not os.path.isfile(file_path):
|
||||||
@@ -762,7 +764,7 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
if audio_size > AZURE_MAX_FILE_SIZE:
|
if audio_size > AZURE_MAX_FILE_SIZE:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_400_BAD_REQUEST,
|
status_code=status.HTTP_400_BAD_REQUEST,
|
||||||
detail=f'File size ({audio_size // (1024*1024)}MB) exceeds Azure limit of {AZURE_MAX_FILE_SIZE_MB}MB',
|
detail=f'File size ({audio_size // (1024 * 1024)}MB) exceeds Azure limit of {AZURE_MAX_FILE_SIZE_MB}MB',
|
||||||
)
|
)
|
||||||
|
|
||||||
api_key = request.app.state.config.AUDIO_STT_AZURE_API_KEY
|
api_key = request.app.state.config.AUDIO_STT_AZURE_API_KEY
|
||||||
@@ -773,11 +775,23 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
|
|
||||||
# Default to a broad set of locales when none are configured
|
# Default to a broad set of locales when none are configured
|
||||||
if len(locale_str) < 2:
|
if len(locale_str) < 2:
|
||||||
locale_str = ','.join([
|
locale_str = ','.join(
|
||||||
'en-US', 'es-ES', 'es-MX', 'fr-FR', 'hi-IN',
|
[
|
||||||
'it-IT', 'de-DE', 'en-GB', 'en-IN', 'ja-JP',
|
'en-US',
|
||||||
'ko-KR', 'pt-BR', 'zh-CN',
|
'es-ES',
|
||||||
])
|
'es-MX',
|
||||||
|
'fr-FR',
|
||||||
|
'hi-IN',
|
||||||
|
'it-IT',
|
||||||
|
'de-DE',
|
||||||
|
'en-GB',
|
||||||
|
'en-IN',
|
||||||
|
'ja-JP',
|
||||||
|
'ko-KR',
|
||||||
|
'pt-BR',
|
||||||
|
'zh-CN',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
if not api_key or not region:
|
if not api_key or not region:
|
||||||
raise HTTPException(status_code=400, detail='Azure API key and region are required for Azure STT')
|
raise HTTPException(status_code=400, detail='Azure API key and region are required for Azure STT')
|
||||||
@@ -785,7 +799,8 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
# Build the transcription definition payload
|
# Build the transcription definition payload
|
||||||
definition = json.dumps(
|
definition = json.dumps(
|
||||||
{'locales': locale_str.split(','), 'diarization': {'maxSpeakers': max_speakers, 'enabled': True}}
|
{'locales': locale_str.split(','), 'diarization': {'maxSpeakers': max_speakers, 'enabled': True}}
|
||||||
if locale_str else {}
|
if locale_str
|
||||||
|
else {}
|
||||||
)
|
)
|
||||||
endpoint = (
|
endpoint = (
|
||||||
base_url or f'https://{region}.api.cognitive.microsoft.com'
|
base_url or f'https://{region}.api.cognitive.microsoft.com'
|
||||||
@@ -799,7 +814,8 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
try:
|
try:
|
||||||
session = await get_session()
|
session = await get_session()
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=endpoint, data=form_data,
|
url=endpoint,
|
||||||
|
data=form_data,
|
||||||
headers={'Ocp-Apim-Subscription-Key': api_key},
|
headers={'Ocp-Apim-Subscription-Key': api_key},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
)
|
)
|
||||||
@@ -833,8 +849,10 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
if 'code' in res and 'message' in res:
|
if 'code' in res and 'message' in res:
|
||||||
azure_code = res.get('innerError', {}).get('code', res['code'])
|
azure_code = res.get('innerError', {}).get('code', res['code'])
|
||||||
user_facing_codes = {
|
user_facing_codes = {
|
||||||
'EmptyAudioFile', 'AudioLengthLimitExceeded',
|
'EmptyAudioFile',
|
||||||
'NoLanguageIdentified', 'MultipleLanguagesIdentified',
|
'AudioLengthLimitExceeded',
|
||||||
|
'NoLanguageIdentified',
|
||||||
|
'MultipleLanguagesIdentified',
|
||||||
}
|
}
|
||||||
if azure_code in user_facing_codes:
|
if azure_code in user_facing_codes:
|
||||||
detail = res['message']
|
detail = res['message']
|
||||||
@@ -851,7 +869,6 @@ async def _transcribe_azure(request, file_path, filename, file_dir, id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def transcription_handler(request, file_path, metadata, user=None):
|
async def transcription_handler(request, file_path, metadata, user=None):
|
||||||
filename = os.path.basename(file_path)
|
filename = os.path.basename(file_path)
|
||||||
file_dir = os.path.dirname(file_path)
|
file_dir = os.path.dirname(file_path)
|
||||||
@@ -897,8 +914,7 @@ async def _transcribe_mistral(request, file_path, filename, metadata, file_dir,
|
|||||||
try:
|
try:
|
||||||
model = request.app.state.config.STT_MODEL or 'voxtral-mini-latest'
|
model = request.app.state.config.STT_MODEL or 'voxtral-mini-latest'
|
||||||
log.info(
|
log.info(
|
||||||
f'Mistral STT - model: {model}, '
|
f'Mistral STT - model: {model}, method: {"chat_completions" if use_chat_completions else "transcriptions"}'
|
||||||
f'method: {"chat_completions" if use_chat_completions else "transcriptions"}'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
session = await get_session()
|
session = await get_session()
|
||||||
@@ -932,17 +948,20 @@ async def _transcribe_mistral(request, file_path, filename, metadata, file_dir,
|
|||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
'model': model,
|
'model': model,
|
||||||
'messages': [{
|
'messages': [
|
||||||
'role': 'user',
|
{
|
||||||
'content': [
|
'role': 'user',
|
||||||
{'type': 'input_audio', 'input_audio': audio_base64},
|
'content': [
|
||||||
{'type': 'text', 'text': text_instruction},
|
{'type': 'input_audio', 'input_audio': audio_base64},
|
||||||
],
|
{'type': 'text', 'text': text_instruction},
|
||||||
}],
|
],
|
||||||
|
}
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=f'{api_base_url}/chat/completions', json=payload,
|
url=f'{api_base_url}/chat/completions',
|
||||||
|
json=payload,
|
||||||
headers={'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'},
|
headers={'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
)
|
)
|
||||||
@@ -969,7 +988,8 @@ async def _transcribe_mistral(request, file_path, filename, metadata, file_dir,
|
|||||||
form_data.add_field('file', open(file_path, 'rb'), filename=filename, content_type=mime_type)
|
form_data.add_field('file', open(file_path, 'rb'), filename=filename, content_type=mime_type)
|
||||||
|
|
||||||
r = await session.post(
|
r = await session.post(
|
||||||
url=f'{api_base_url}/audio/transcriptions', data=form_data,
|
url=f'{api_base_url}/audio/transcriptions',
|
||||||
|
data=form_data,
|
||||||
headers={'Authorization': f'Bearer {api_key}'},
|
headers={'Authorization': f'Bearer {api_key}'},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
)
|
)
|
||||||
@@ -1041,10 +1061,7 @@ async def transcribe(request: Request, file_path: str, metadata: Optional[dict]
|
|||||||
|
|
||||||
results = []
|
results = []
|
||||||
try:
|
try:
|
||||||
tasks = [
|
tasks = [transcription_handler(request, chunk_path, metadata, user) for chunk_path in chunk_paths]
|
||||||
transcription_handler(request, chunk_path, metadata, user)
|
|
||||||
for chunk_path in chunk_paths
|
|
||||||
]
|
|
||||||
for coro in asyncio.as_completed(tasks):
|
for coro in asyncio.as_completed(tasks):
|
||||||
try:
|
try:
|
||||||
results.append(await coro)
|
results.append(await coro)
|
||||||
@@ -1226,7 +1243,8 @@ async def get_available_models(request: Request) -> list[dict]:
|
|||||||
try:
|
try:
|
||||||
async with session.get(
|
async with session.get(
|
||||||
f'{base_url}/audio/models',
|
f'{base_url}/audio/models',
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
data = await resp.json()
|
data = await resp.json()
|
||||||
@@ -1236,7 +1254,8 @@ async def get_available_models(request: Request) -> list[dict]:
|
|||||||
try:
|
try:
|
||||||
async with session.get(
|
async with session.get(
|
||||||
f'{base_url}/models',
|
f'{base_url}/models',
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
data = await resp.json()
|
data = await resp.json()
|
||||||
@@ -1256,7 +1275,8 @@ async def get_available_models(request: Request) -> list[dict]:
|
|||||||
'xi-api-key': request.app.state.config.TTS_API_KEY,
|
'xi-api-key': request.app.state.config.TTS_API_KEY,
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
models = await resp.json()
|
models = await resp.json()
|
||||||
@@ -1274,9 +1294,14 @@ async def get_available_models(request: Request) -> list[dict]:
|
|||||||
async def get_models(request: Request, user=Depends(get_verified_user)):
|
async def get_models(request: Request, user=Depends(get_verified_user)):
|
||||||
return {'models': await get_available_models(request)}
|
return {'models': await get_available_models(request)}
|
||||||
|
|
||||||
|
|
||||||
_OPENAI_DEFAULT_VOICES = {
|
_OPENAI_DEFAULT_VOICES = {
|
||||||
'alloy': 'alloy', 'echo': 'echo', 'fable': 'fable',
|
'alloy': 'alloy',
|
||||||
'onyx': 'onyx', 'nova': 'nova', 'shimmer': 'shimmer',
|
'echo': 'echo',
|
||||||
|
'fable': 'fable',
|
||||||
|
'onyx': 'onyx',
|
||||||
|
'nova': 'nova',
|
||||||
|
'shimmer': 'shimmer',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1292,7 +1317,8 @@ async def get_available_voices(request) -> dict:
|
|||||||
session = await get_session()
|
session = await get_session()
|
||||||
async with session.get(
|
async with session.get(
|
||||||
f'{base_url}/audio/voices',
|
f'{base_url}/audio/voices',
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
data = await resp.json()
|
data = await resp.json()
|
||||||
@@ -1311,7 +1337,8 @@ async def get_available_voices(request) -> dict:
|
|||||||
'xi-api-key': request.app.state.config.TTS_API_KEY,
|
'xi-api-key': request.app.state.config.TTS_API_KEY,
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
voices_data = await resp.json()
|
voices_data = await resp.json()
|
||||||
@@ -1330,7 +1357,8 @@ async def get_available_voices(request) -> dict:
|
|||||||
async with session.get(
|
async with session.get(
|
||||||
url,
|
url,
|
||||||
headers={'Ocp-Apim-Subscription-Key': request.app.state.config.TTS_API_KEY},
|
headers={'Ocp-Apim-Subscription-Key': request.app.state.config.TTS_API_KEY},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
voices = await resp.json()
|
voices = await resp.json()
|
||||||
@@ -1348,7 +1376,8 @@ async def get_available_voices(request) -> dict:
|
|||||||
async with session.get(
|
async with session.get(
|
||||||
f'{api_base_url}/audio/voices',
|
f'{api_base_url}/audio/voices',
|
||||||
headers={'Authorization': f'Bearer {api_key}'},
|
headers={'Authorization': f'Bearer {api_key}'},
|
||||||
ssl=AIOHTTP_CLIENT_SESSION_SSL, timeout=_timeout,
|
ssl=AIOHTTP_CLIENT_SESSION_SSL,
|
||||||
|
timeout=_timeout,
|
||||||
) as resp:
|
) as resp:
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
voices_data = await resp.json()
|
voices_data = await resp.json()
|
||||||
|
|||||||
@@ -514,9 +514,13 @@ async def delete_all_user_chats(
|
|||||||
|
|
||||||
@router.get('/list/user/{user_id}', response_model=list[ChatTitleIdResponse])
|
@router.get('/list/user/{user_id}', response_model=list[ChatTitleIdResponse])
|
||||||
async def get_user_chat_list_by_user_id(
|
async def get_user_chat_list_by_user_id(
|
||||||
user_id: str, page: int | None = None, query: str | None = None,
|
user_id: str,
|
||||||
order_by: str | None = None, direction: str | None = None,
|
page: int | None = None,
|
||||||
user=Depends(get_admin_user), db: AsyncSession = Depends(get_async_session),
|
query: str | None = None,
|
||||||
|
order_by: str | None = None,
|
||||||
|
direction: str | None = None,
|
||||||
|
user=Depends(get_admin_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""List chat summaries for a given user (admin-only endpoint)."""
|
"""List chat summaries for a given user (admin-only endpoint)."""
|
||||||
if not ENABLE_ADMIN_CHAT_ACCESS:
|
if not ENABLE_ADMIN_CHAT_ACCESS:
|
||||||
|
|||||||
@@ -123,9 +123,7 @@ async def process_uploaded_file(
|
|||||||
if _is_text_file(file_path):
|
if _is_text_file(file_path):
|
||||||
content_type = 'text/plain'
|
content_type = 'text/plain'
|
||||||
|
|
||||||
stt_supported = getattr(
|
stt_supported = getattr(request.app.state.config, 'STT_SUPPORTED_CONTENT_TYPES', [])
|
||||||
request.app.state.config, 'STT_SUPPORTED_CONTENT_TYPES', []
|
|
||||||
)
|
|
||||||
|
|
||||||
if content_type and strict_match_mime_type(stt_supported, content_type):
|
if content_type and strict_match_mime_type(stt_supported, content_type):
|
||||||
# Audio / STT-supported files → transcribe then index
|
# Audio / STT-supported files → transcribe then index
|
||||||
@@ -161,17 +159,12 @@ async def process_uploaded_file(
|
|||||||
db=db_session,
|
db=db_session,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise Exception(
|
raise Exception(f'File type {content_type} is not supported for processing')
|
||||||
f'File type {content_type} is not supported for processing'
|
|
||||||
)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Documents, or any file when an external engine is configured
|
# Documents, or any file when an external engine is configured
|
||||||
if not content_type:
|
if not content_type:
|
||||||
log.info(
|
log.info(f'File type {file.content_type} is not provided, but trying to process anyway')
|
||||||
f'File type {file.content_type} is not provided, '
|
|
||||||
'but trying to process anyway'
|
|
||||||
)
|
|
||||||
await process_file(
|
await process_file(
|
||||||
request,
|
request,
|
||||||
ProcessFileForm(file_id=file_item.id),
|
ProcessFileForm(file_id=file_item.id),
|
||||||
|
|||||||
@@ -336,29 +336,16 @@ async def preview_group_access(
|
|||||||
return {
|
return {
|
||||||
'group': {'id': group.id, 'name': group.name},
|
'group': {'id': group.id, 'name': group.name},
|
||||||
'models': {
|
'models': {
|
||||||
'items': [
|
'items': [{'id': m.id, 'name': m.name} for m in active_models if m.id in accessible_model_ids],
|
||||||
{'id': m.id, 'name': m.name}
|
|
||||||
for m in active_models
|
|
||||||
if m.id in accessible_model_ids
|
|
||||||
],
|
|
||||||
'total': len(active_models),
|
'total': len(active_models),
|
||||||
},
|
},
|
||||||
'knowledge': {
|
'knowledge': {
|
||||||
'items': [
|
'items': [{'id': k.id, 'name': k.name} for k in all_knowledge if k.id in accessible_knowledge_ids],
|
||||||
{'id': k.id, 'name': k.name}
|
|
||||||
for k in all_knowledge
|
|
||||||
if k.id in accessible_knowledge_ids
|
|
||||||
],
|
|
||||||
'total': len(all_knowledge),
|
'total': len(all_knowledge),
|
||||||
},
|
},
|
||||||
'tools': {
|
'tools': {
|
||||||
'items': [
|
'items': [{'id': t.id, 'name': t.name} for t in all_tools if t.id in accessible_tool_ids],
|
||||||
{'id': t.id, 'name': t.name}
|
|
||||||
for t in all_tools
|
|
||||||
if t.id in accessible_tool_ids
|
|
||||||
],
|
|
||||||
'total': len(all_tools),
|
'total': len(all_tools),
|
||||||
},
|
},
|
||||||
'permissions': group.permissions or {},
|
'permissions': group.permissions or {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -447,6 +447,7 @@ def _is_same_origin(url: str, base_url: str) -> bool:
|
|||||||
and comparing the three origin components eliminates those
|
and comparing the three origin components eliminates those
|
||||||
attack vectors.
|
attack vectors.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _default_port(scheme: str) -> int:
|
def _default_port(scheme: str) -> int:
|
||||||
return 443 if scheme == 'https' else 80
|
return 443 if scheme == 'https' else 80
|
||||||
|
|
||||||
@@ -455,8 +456,7 @@ def _is_same_origin(url: str, base_url: str) -> bool:
|
|||||||
return (
|
return (
|
||||||
parsed.scheme == trusted.scheme
|
parsed.scheme == trusted.scheme
|
||||||
and parsed.hostname == trusted.hostname
|
and parsed.hostname == trusted.hostname
|
||||||
and (parsed.port or _default_port(parsed.scheme))
|
and (parsed.port or _default_port(parsed.scheme)) == (trusted.port or _default_port(trusted.scheme))
|
||||||
== (trusted.port or _default_port(trusted.scheme))
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -743,7 +743,8 @@ async def image_generations(
|
|||||||
headers = {'Authorization': f'Bearer {request.app.state.config.COMFYUI_API_KEY}'}
|
headers = {'Authorization': f'Bearer {request.app.state.config.COMFYUI_API_KEY}'}
|
||||||
|
|
||||||
image_data, content_type = await get_image_data(
|
image_data, content_type = await get_image_data(
|
||||||
image['url'], headers,
|
image['url'],
|
||||||
|
headers,
|
||||||
trusted_base_url=request.app.state.config.COMFYUI_BASE_URL,
|
trusted_base_url=request.app.state.config.COMFYUI_BASE_URL,
|
||||||
)
|
)
|
||||||
_, url = await upload_image(
|
_, url = await upload_image(
|
||||||
@@ -1102,7 +1103,8 @@ async def image_edits(
|
|||||||
headers = {'Authorization': f'Bearer {request.app.state.config.IMAGES_EDIT_COMFYUI_API_KEY}'}
|
headers = {'Authorization': f'Bearer {request.app.state.config.IMAGES_EDIT_COMFYUI_API_KEY}'}
|
||||||
|
|
||||||
image_data, content_type = await get_image_data(
|
image_data, content_type = await get_image_data(
|
||||||
image_url, headers,
|
image_url,
|
||||||
|
headers,
|
||||||
trusted_base_url=request.app.state.config.IMAGES_EDIT_COMFYUI_BASE_URL,
|
trusted_base_url=request.app.state.config.IMAGES_EDIT_COMFYUI_BASE_URL,
|
||||||
)
|
)
|
||||||
_, url = await upload_image(
|
_, url = await upload_image(
|
||||||
|
|||||||
@@ -1336,8 +1336,11 @@ async def add_files_to_knowledge_batch(
|
|||||||
dir_map = {form.file_id: form.directory_id for form in new_entries}
|
dir_map = {form.file_id: form.directory_id for form in new_entries}
|
||||||
for file_id in successful_file_ids:
|
for file_id in successful_file_ids:
|
||||||
await Knowledges.add_file_to_knowledge_by_id(
|
await Knowledges.add_file_to_knowledge_by_id(
|
||||||
knowledge_id=id, file_id=file_id, user_id=user.id,
|
knowledge_id=id,
|
||||||
directory_id=dir_map.get(file_id), db=db,
|
file_id=file_id,
|
||||||
|
user_id=user.id,
|
||||||
|
directory_id=dir_map.get(file_id),
|
||||||
|
db=db,
|
||||||
)
|
)
|
||||||
|
|
||||||
# If there were any errors, include them in the response
|
# If there were any errors, include them in the response
|
||||||
|
|||||||
@@ -63,7 +63,9 @@ class MemoryUpdateModel(BaseModel):
|
|||||||
|
|
||||||
@router.post('/add', response_model=MemoryModel | None)
|
@router.post('/add', response_model=MemoryModel | None)
|
||||||
async def add_memory(
|
async def add_memory(
|
||||||
request: Request, form_data: AddMemoryForm, user=Depends(get_verified_user),
|
request: Request,
|
||||||
|
form_data: AddMemoryForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
):
|
):
|
||||||
"""Persist a new memory and embed it into the user's vector collection.
|
"""Persist a new memory and embed it into the user's vector collection.
|
||||||
|
|
||||||
|
|||||||
@@ -220,8 +220,10 @@ async def get_model_tags(user=Depends(get_verified_user), db: AsyncSession = Dep
|
|||||||
|
|
||||||
@router.post('/create', response_model=ModelModel | None)
|
@router.post('/create', response_model=ModelModel | None)
|
||||||
async def create_new_model(
|
async def create_new_model(
|
||||||
request: Request, form_data: ModelForm,
|
request: Request,
|
||||||
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
form_data: ModelForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Create a new workspace model entry."""
|
"""Create a new workspace model entry."""
|
||||||
if user.role != 'admin' and not await has_permission(
|
if user.role != 'admin' and not await has_permission(
|
||||||
@@ -248,7 +250,8 @@ async def create_new_model(
|
|||||||
else:
|
else:
|
||||||
await _verify_knowledge_file_access(
|
await _verify_knowledge_file_access(
|
||||||
getattr(form_data.meta, 'knowledge', None) if form_data.meta else None,
|
getattr(form_data.meta, 'knowledge', None) if form_data.meta else None,
|
||||||
user, db,
|
user,
|
||||||
|
db,
|
||||||
)
|
)
|
||||||
|
|
||||||
form_data.access_grants = await filter_allowed_access_grants(
|
form_data.access_grants = await filter_allowed_access_grants(
|
||||||
@@ -361,13 +364,14 @@ async def import_models(
|
|||||||
try:
|
try:
|
||||||
await _verify_knowledge_file_access(
|
await _verify_knowledge_file_access(
|
||||||
(model_data.get('meta') or {}).get('knowledge'),
|
(model_data.get('meta') or {}).get('knowledge'),
|
||||||
user, db,
|
user,
|
||||||
|
db,
|
||||||
)
|
)
|
||||||
except HTTPException:
|
except HTTPException:
|
||||||
log.warning(
|
log.warning(
|
||||||
'import_models: user %s skipped model %s '
|
'import_models: user %s skipped model %s (knowledge file access denied)',
|
||||||
'(knowledge file access denied)',
|
user.id,
|
||||||
user.id, model_id,
|
model_id,
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -634,14 +638,17 @@ async def toggle_model_by_id(id: str, user=Depends(get_verified_user), db: Async
|
|||||||
|
|
||||||
@router.post('/model/update', response_model=ModelModel | None)
|
@router.post('/model/update', response_model=ModelModel | None)
|
||||||
async def update_model_by_id(
|
async def update_model_by_id(
|
||||||
request: Request, form_data: ModelForm,
|
request: Request,
|
||||||
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
form_data: ModelForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Update a workspace model's configuration."""
|
"""Update a workspace model's configuration."""
|
||||||
model = await Models.get_model_by_id(form_data.id, db=db)
|
model = await Models.get_model_by_id(form_data.id, db=db)
|
||||||
if not model:
|
if not model:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.NOT_FOUND,
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||||
)
|
)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@@ -662,7 +669,8 @@ async def update_model_by_id(
|
|||||||
|
|
||||||
await _verify_knowledge_file_access(
|
await _verify_knowledge_file_access(
|
||||||
getattr(form_data.meta, 'knowledge', None) if form_data.meta else None,
|
getattr(form_data.meta, 'knowledge', None) if form_data.meta else None,
|
||||||
user, db,
|
user,
|
||||||
|
db,
|
||||||
)
|
)
|
||||||
|
|
||||||
form_data.access_grants = await filter_allowed_access_grants(
|
form_data.access_grants = await filter_allowed_access_grants(
|
||||||
|
|||||||
@@ -338,9 +338,7 @@ async def get_all_models(request: Request, user: UserModel | None = None):
|
|||||||
allowed_model_ids = api_config.get('model_ids', [])
|
allowed_model_ids = api_config.get('model_ids', [])
|
||||||
|
|
||||||
if allowed_model_ids and 'models' in response:
|
if allowed_model_ids and 'models' in response:
|
||||||
response['models'] = [
|
response['models'] = [m for m in response['models'] if m['model'] in allowed_model_ids]
|
||||||
m for m in response['models'] if m['model'] in allowed_model_ids
|
|
||||||
]
|
|
||||||
|
|
||||||
for m in response.get('models', []):
|
for m in response.get('models', []):
|
||||||
if prefix_id:
|
if prefix_id:
|
||||||
@@ -350,11 +348,7 @@ async def get_all_models(request: Request, user: UserModel | None = None):
|
|||||||
if connection_type:
|
if connection_type:
|
||||||
m['connection_type'] = connection_type
|
m['connection_type'] = connection_type
|
||||||
|
|
||||||
models_dict = {
|
models_dict = {'models': merge_models_lists(r.get('models', []) if r else None for r in responses)}
|
||||||
'models': merge_models_lists(
|
|
||||||
r.get('models', []) if r else None for r in responses
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Annotate with expiry info from loaded-model state
|
# Annotate with expiry info from loaded-model state
|
||||||
try:
|
try:
|
||||||
@@ -386,7 +380,8 @@ async def get_filtered_models(models, user, db=None):
|
|||||||
db=db,
|
db=db,
|
||||||
)
|
)
|
||||||
return [
|
return [
|
||||||
m for m in models.get('models', [])
|
m
|
||||||
|
for m in models.get('models', [])
|
||||||
if (mi := model_infos.get(m['model'])) and (user.id == mi.user_id or mi.id in accessible_ids)
|
if (mi := model_infos.get(m['model'])) and (user.id == mi.user_id or mi.id in accessible_ids)
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -439,19 +434,13 @@ async def get_ollama_loaded_models(
|
|||||||
for idx, response in enumerate(responses):
|
for idx, response in enumerate(responses):
|
||||||
if not response:
|
if not response:
|
||||||
continue
|
continue
|
||||||
api_config = _resolve_api_config(
|
api_config = _resolve_api_config(request.app.state.config, idx, request.app.state.config.OLLAMA_BASE_URLS[idx])
|
||||||
request.app.state.config, idx, request.app.state.config.OLLAMA_BASE_URLS[idx]
|
|
||||||
)
|
|
||||||
prefix_id = api_config.get('prefix_id')
|
prefix_id = api_config.get('prefix_id')
|
||||||
if prefix_id:
|
if prefix_id:
|
||||||
for m in response.get('models', []):
|
for m in response.get('models', []):
|
||||||
m['model'] = f'{prefix_id}.{m["model"]}'
|
m['model'] = f'{prefix_id}.{m["model"]}'
|
||||||
|
|
||||||
return {
|
return {'models': merge_models_lists(r.get('models', []) if r else None for r in responses)}
|
||||||
'models': merge_models_lists(
|
|
||||||
r.get('models', []) if r else None for r in responses
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@router.get('/api/version')
|
@router.get('/api/version')
|
||||||
@@ -472,7 +461,8 @@ async def get_ollama_versions(
|
|||||||
tasks = []
|
tasks = []
|
||||||
for idx, url in enumerate(request.app.state.config.OLLAMA_BASE_URLS):
|
for idx, url in enumerate(request.app.state.config.OLLAMA_BASE_URLS):
|
||||||
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
||||||
str(idx), request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
str(idx),
|
||||||
|
request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
||||||
)
|
)
|
||||||
if api_config.get('enable', True):
|
if api_config.get('enable', True):
|
||||||
tasks.append(send_get_request(f'{url}/api/version', api_config.get('key')))
|
tasks.append(send_get_request(f'{url}/api/version', api_config.get('key')))
|
||||||
@@ -799,7 +789,8 @@ async def embed(
|
|||||||
|
|
||||||
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||||
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
||||||
str(url_idx), request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
str(url_idx),
|
||||||
|
request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
||||||
)
|
)
|
||||||
key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS)
|
key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS)
|
||||||
|
|
||||||
@@ -852,7 +843,8 @@ async def embeddings(
|
|||||||
|
|
||||||
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||||
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
||||||
str(url_idx), request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
str(url_idx),
|
||||||
|
request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
||||||
)
|
)
|
||||||
key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS)
|
key = get_api_key(url_idx, url, request.app.state.config.OLLAMA_API_CONFIGS)
|
||||||
|
|
||||||
@@ -910,7 +902,8 @@ async def generate_completion(
|
|||||||
|
|
||||||
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||||
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
api_config = request.app.state.config.OLLAMA_API_CONFIGS.get(
|
||||||
str(url_idx), request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
str(url_idx),
|
||||||
|
request.app.state.config.OLLAMA_API_CONFIGS.get(url, {}),
|
||||||
)
|
)
|
||||||
|
|
||||||
prefix_id = api_config.get('prefix_id')
|
prefix_id = api_config.get('prefix_id')
|
||||||
@@ -1027,9 +1020,7 @@ async def generate_chat_completion(
|
|||||||
|
|
||||||
if model_info is not None:
|
if model_info is not None:
|
||||||
if model_info.base_model_id:
|
if model_info.base_model_id:
|
||||||
base_model_id = (
|
base_model_id = request.base_model_id if hasattr(request, 'base_model_id') else model_info.base_model_id
|
||||||
request.base_model_id if hasattr(request, 'base_model_id') else model_info.base_model_id
|
|
||||||
)
|
|
||||||
payload['model'] = base_model_id
|
payload['model'] = base_model_id
|
||||||
|
|
||||||
params = model_info.params.model_dump()
|
params = model_info.params.model_dump()
|
||||||
@@ -1331,19 +1322,12 @@ async def get_openai_models(
|
|||||||
raw_models = model_list.get('models', [])
|
raw_models = model_list.get('models', [])
|
||||||
|
|
||||||
now_ts = int(time.time())
|
now_ts = int(time.time())
|
||||||
models = [
|
models = [{'id': m['model'], 'object': 'model', 'created': now_ts, 'owned_by': 'openai'} for m in raw_models]
|
||||||
{'id': m['model'], 'object': 'model', 'created': now_ts, 'owned_by': 'openai'}
|
|
||||||
for m in raw_models
|
|
||||||
]
|
|
||||||
|
|
||||||
if user.role == 'user' and not BYPASS_MODEL_ACCESS_CONTROL:
|
if user.role == 'user' and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||||
model_ids = [m['id'] for m in models]
|
model_ids = [m['id'] for m in models]
|
||||||
model_infos = {
|
model_infos = {mi.id: mi for mi in await Models.get_models_by_ids(model_ids, db=db)}
|
||||||
mi.id: mi for mi in await Models.get_models_by_ids(model_ids, db=db)
|
user_group_ids = {g.id for g in await Groups.get_groups_by_member_id(user.id, db=db)}
|
||||||
}
|
|
||||||
user_group_ids = {
|
|
||||||
g.id for g in await Groups.get_groups_by_member_id(user.id, db=db)
|
|
||||||
}
|
|
||||||
accessible_ids = await AccessGrants.get_accessible_resource_ids(
|
accessible_ids = await AccessGrants.get_accessible_resource_ids(
|
||||||
user_id=user.id,
|
user_id=user.id,
|
||||||
resource_type='model',
|
resource_type='model',
|
||||||
@@ -1353,8 +1337,7 @@ async def get_openai_models(
|
|||||||
db=db,
|
db=db,
|
||||||
)
|
)
|
||||||
models = [
|
models = [
|
||||||
m for m in models
|
m for m in models if (mi := model_infos.get(m['id'])) and (user.id == mi.user_id or mi.id in accessible_ids)
|
||||||
if (mi := model_infos.get(m['id'])) and (user.id == mi.user_id or mi.id in accessible_ids)
|
|
||||||
]
|
]
|
||||||
|
|
||||||
return {'data': models, 'object': 'list'}
|
return {'data': models, 'object': 'list'}
|
||||||
|
|||||||
@@ -239,8 +239,11 @@ async def get_prompt_by_id(
|
|||||||
|
|
||||||
@router.post('/id/{prompt_id}/update', response_model=PromptModel | None)
|
@router.post('/id/{prompt_id}/update', response_model=PromptModel | None)
|
||||||
async def update_prompt_by_id(
|
async def update_prompt_by_id(
|
||||||
request: Request, prompt_id: str, form_data: PromptForm,
|
request: Request,
|
||||||
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
prompt_id: str,
|
||||||
|
form_data: PromptForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Update a prompt's content, creating a new history entry if changed."""
|
"""Update a prompt's content, creating a new history entry if changed."""
|
||||||
prompt = await Prompts.get_prompt_by_id(prompt_id, db=db)
|
prompt = await Prompts.get_prompt_by_id(prompt_id, db=db)
|
||||||
|
|||||||
@@ -1314,7 +1314,7 @@ def merge_docs_to_target_size(
|
|||||||
prev = result[-1]
|
prev = result[-1]
|
||||||
if not can_merge_chunks(prev, chunk):
|
if not can_merge_chunks(prev, chunk):
|
||||||
return False
|
return False
|
||||||
merged = f"{prev.page_content}\n\n{content}"
|
merged = f'{prev.page_content}\n\n{content}'
|
||||||
if measure(merged) > max_size:
|
if measure(merged) > max_size:
|
||||||
return False
|
return False
|
||||||
result[-1] = Document(page_content=merged, metadata={**prev.metadata})
|
result[-1] = Document(page_content=merged, metadata={**prev.metadata})
|
||||||
@@ -2211,7 +2211,6 @@ async def search_web(request: Request, engine: str, query: str, user=None) -> li
|
|||||||
raise Exception('No search engine API key found in environment variables')
|
raise Exception('No search engine API key found in environment variables')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@router.post('/process/web/search')
|
@router.post('/process/web/search')
|
||||||
async def process_web_search(request: Request, form_data: SearchForm, user=Depends(get_verified_user)):
|
async def process_web_search(request: Request, form_data: SearchForm, user=Depends(get_verified_user)):
|
||||||
if not request.app.state.config.ENABLE_WEB_SEARCH:
|
if not request.app.state.config.ENABLE_WEB_SEARCH:
|
||||||
|
|||||||
@@ -324,8 +324,10 @@ async def export_tools(
|
|||||||
|
|
||||||
@router.post('/create', response_model=ToolResponse | None)
|
@router.post('/create', response_model=ToolResponse | None)
|
||||||
async def create_new_tools(
|
async def create_new_tools(
|
||||||
request: Request, form_data: ToolForm,
|
request: Request,
|
||||||
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
form_data: ToolForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Create a new tool from user-supplied Python source code."""
|
"""Create a new tool from user-supplied Python source code."""
|
||||||
if user.role != 'admin' and not (
|
if user.role != 'admin' and not (
|
||||||
@@ -448,14 +450,18 @@ async def get_tools_by_id(id: str, user=Depends(get_verified_user), db: AsyncSes
|
|||||||
|
|
||||||
@router.post('/id/{id}/update', response_model=ToolModel | None)
|
@router.post('/id/{id}/update', response_model=ToolModel | None)
|
||||||
async def update_tools_by_id(
|
async def update_tools_by_id(
|
||||||
request: Request, id: str, form_data: ToolForm,
|
request: Request,
|
||||||
user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
id: str,
|
||||||
|
form_data: ToolForm,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Update an existing tool's source code and metadata."""
|
"""Update an existing tool's source code and metadata."""
|
||||||
tools = await Tools.get_tool_by_id(id, db=db)
|
tools = await Tools.get_tool_by_id(id, db=db)
|
||||||
if not tools:
|
if not tools:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_401_UNAUTHORIZED, detail=ERROR_MESSAGES.NOT_FOUND,
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail=ERROR_MESSAGES.NOT_FOUND,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Is the user the original creator, in a group with write access, or an admin
|
# Is the user the original creator, in a group with write access, or an admin
|
||||||
|
|||||||
@@ -384,7 +384,9 @@ async def get_user_info_by_session_user(user=Depends(get_verified_user), db: Asy
|
|||||||
|
|
||||||
@router.post('/user/info/update', response_model=dict | None)
|
@router.post('/user/info/update', response_model=dict | None)
|
||||||
async def update_user_info_by_session_user( # PATCH-style merge
|
async def update_user_info_by_session_user( # PATCH-style merge
|
||||||
form_data: dict, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session),
|
form_data: dict,
|
||||||
|
user=Depends(get_verified_user),
|
||||||
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
"""Merge caller-supplied fields into the current user's info dict.
|
"""Merge caller-supplied fields into the current user's info dict.
|
||||||
|
|
||||||
@@ -401,6 +403,7 @@ async def update_user_info_by_session_user( # PATCH-style merge
|
|||||||
)
|
)
|
||||||
return updated.info
|
return updated.info
|
||||||
|
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# GetUserById
|
# GetUserById
|
||||||
############################
|
############################
|
||||||
@@ -538,7 +541,8 @@ async def get_user_active_status_by_id(
|
|||||||
|
|
||||||
@router.post('/{user_id}/update', response_model=UserModel | None)
|
@router.post('/{user_id}/update', response_model=UserModel | None)
|
||||||
async def update_user_by_id(
|
async def update_user_by_id(
|
||||||
user_id: str, form_data: UserUpdateForm,
|
user_id: str,
|
||||||
|
form_data: UserUpdateForm,
|
||||||
session_user: UserModel = Depends(get_admin_user),
|
session_user: UserModel = Depends(get_admin_user),
|
||||||
db: AsyncSession = Depends(get_async_session),
|
db: AsyncSession = Depends(get_async_session),
|
||||||
):
|
):
|
||||||
@@ -743,27 +747,15 @@ async def get_user_preview(
|
|||||||
'user': {'id': target_user.id, 'name': target_user.name},
|
'user': {'id': target_user.id, 'name': target_user.name},
|
||||||
'groups': [{'id': g.id, 'name': g.name} for g in user_groups],
|
'groups': [{'id': g.id, 'name': g.name} for g in user_groups],
|
||||||
'models': {
|
'models': {
|
||||||
'items': [
|
'items': [{'id': m.id, 'name': m.name} for m in active_models if m.id in accessible_model_ids],
|
||||||
{'id': m.id, 'name': m.name}
|
|
||||||
for m in active_models
|
|
||||||
if m.id in accessible_model_ids
|
|
||||||
],
|
|
||||||
'total': len(active_models),
|
'total': len(active_models),
|
||||||
},
|
},
|
||||||
'knowledge': {
|
'knowledge': {
|
||||||
'items': [
|
'items': [{'id': k.id, 'name': k.name} for k in all_knowledge if k.id in accessible_knowledge_ids],
|
||||||
{'id': k.id, 'name': k.name}
|
|
||||||
for k in all_knowledge
|
|
||||||
if k.id in accessible_knowledge_ids
|
|
||||||
],
|
|
||||||
'total': len(all_knowledge),
|
'total': len(all_knowledge),
|
||||||
},
|
},
|
||||||
'tools': {
|
'tools': {
|
||||||
'items': [
|
'items': [{'id': t.id, 'name': t.name} for t in all_tools if t.id in accessible_tool_ids],
|
||||||
{'id': t.id, 'name': t.name}
|
|
||||||
for t in all_tools
|
|
||||||
if t.id in accessible_tool_ids
|
|
||||||
],
|
|
||||||
'total': len(all_tools),
|
'total': len(all_tools),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import uuid
|
|||||||
import pycrdt as Y
|
import pycrdt as Y
|
||||||
from open_webui.utils.redis import get_redis_connection
|
from open_webui.utils.redis import get_redis_connection
|
||||||
from open_webui.env import REDIS_KEY_PREFIX
|
from open_webui.env import REDIS_KEY_PREFIX
|
||||||
YDOC_KEY_PREFIX = f"{REDIS_KEY_PREFIX}:ydoc:documents"
|
|
||||||
|
YDOC_KEY_PREFIX = f'{REDIS_KEY_PREFIX}:ydoc:documents'
|
||||||
|
|
||||||
|
|
||||||
class RedisLock:
|
class RedisLock:
|
||||||
"""Distributed lock backed by a Redis SET with NX/EX semantics."""
|
"""Distributed lock backed by a Redis SET with NX/EX semantics."""
|
||||||
@@ -105,9 +107,7 @@ class RedisDict:
|
|||||||
# this process wrote. The check is per-instance (not distributed), but
|
# this process wrote. The check is per-instance (not distributed), but
|
||||||
# still eliminates the majority of redundant writes because each pod
|
# still eliminates the majority of redundant writes because each pod
|
||||||
# typically produces the same model list on consecutive refreshes.
|
# typically produces the same model list on consecutive refreshes.
|
||||||
signature = hashlib.sha256(
|
signature = hashlib.sha256(json.dumps(serialized, sort_keys=True).encode()).hexdigest()
|
||||||
json.dumps(serialized, sort_keys=True).encode()
|
|
||||||
).hexdigest()
|
|
||||||
if signature == self._last_signature:
|
if signature == self._last_signature:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -50,23 +50,25 @@ MAX_KNOWLEDGE_BASE_SEARCH_ITEMS = 10_000
|
|||||||
|
|
||||||
|
|
||||||
async def _has_read_access_to_file(
|
async def _has_read_access_to_file(
|
||||||
file, user_id: str, user_role: str,
|
file,
|
||||||
|
user_id: str,
|
||||||
|
user_role: str,
|
||||||
model_knowledge: Optional[list[dict]] = None,
|
model_knowledge: Optional[list[dict]] = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Check if a user can read a file via ownership, admin role, model attachment, or access grants."""
|
"""Check if a user can read a file via ownership, admin role, model attachment, or access grants."""
|
||||||
if file.user_id == user_id or user_role == 'admin':
|
if file.user_id == user_id or user_role == 'admin':
|
||||||
return True
|
return True
|
||||||
if model_knowledge and any(
|
if model_knowledge and any(item.get('type') == 'file' and item.get('id') == file.id for item in model_knowledge):
|
||||||
item.get('type') == 'file' and item.get('id') == file.id
|
|
||||||
for item in model_knowledge
|
|
||||||
):
|
|
||||||
return True
|
return True
|
||||||
from open_webui.utils.access_control.files import has_access_to_file
|
from open_webui.utils.access_control.files import has_access_to_file
|
||||||
|
|
||||||
return await has_access_to_file(
|
return await has_access_to_file(
|
||||||
file_id=file.id, access_type='read',
|
file_id=file.id,
|
||||||
|
access_type='read',
|
||||||
user=UserModel(**{'id': user_id, 'role': user_role}),
|
user=UserModel(**{'id': user_id, 'role': user_role}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# TIME UTILITIES
|
# TIME UTILITIES
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|||||||
@@ -34,9 +34,16 @@ MAX_GREP_MATCHES = 50
|
|||||||
|
|
||||||
def is_regex_pattern(pattern: str) -> bool:
|
def is_regex_pattern(pattern: str) -> bool:
|
||||||
"""Detect if a pattern looks like regex (\|, .*, .+, \d, \w, \s, [...])."""
|
"""Detect if a pattern looks like regex (\|, .*, .+, \d, \w, \s, [...])."""
|
||||||
return ('\|' in pattern or '.*' in pattern or '.+' in pattern
|
return (
|
||||||
or '.?' in pattern or '\d' in pattern or '\w' in pattern
|
'\|' in pattern
|
||||||
or '\s' in pattern or bool(re.search(r'\[.+\]', pattern)))
|
or '.*' in pattern
|
||||||
|
or '.+' in pattern
|
||||||
|
or '.?' in pattern
|
||||||
|
or '\d' in pattern
|
||||||
|
or '\w' in pattern
|
||||||
|
or '\s' in pattern
|
||||||
|
or bool(re.search(r'\[.+\]', pattern))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def normalize_regex(pattern: str) -> str:
|
def normalize_regex(pattern: str) -> str:
|
||||||
@@ -44,8 +51,7 @@ def normalize_regex(pattern: str) -> str:
|
|||||||
return pattern.replace('\\|', '|').replace('\|', '|')
|
return pattern.replace('\\|', '|').replace('\|', '|')
|
||||||
|
|
||||||
|
|
||||||
def build_matcher(pattern: str, case_insensitive: bool = False,
|
def build_matcher(pattern: str, case_insensitive: bool = False, use_regex: bool = False) -> tuple:
|
||||||
use_regex: bool = False) -> tuple:
|
|
||||||
"""Build a matcher function. Returns (match_fn, error_str_or_None)."""
|
"""Build a matcher function. Returns (match_fn, error_str_or_None)."""
|
||||||
if not use_regex and is_regex_pattern(pattern):
|
if not use_regex and is_regex_pattern(pattern):
|
||||||
use_regex = True
|
use_regex = True
|
||||||
@@ -157,6 +163,7 @@ async def _build_directory_tree(knowledge_id: str) -> dict:
|
|||||||
|
|
||||||
# Compute full path for each directory
|
# Compute full path for each directory
|
||||||
dir_id_to_path = {}
|
dir_id_to_path = {}
|
||||||
|
|
||||||
def _get_dir_path(dir_id):
|
def _get_dir_path(dir_id):
|
||||||
if dir_id in dir_id_to_path:
|
if dir_id in dir_id_to_path:
|
||||||
return dir_id_to_path[dir_id]
|
return dir_id_to_path[dir_id]
|
||||||
@@ -165,7 +172,7 @@ async def _build_directory_tree(knowledge_id: str) -> dict:
|
|||||||
return ''
|
return ''
|
||||||
if d['parent_id'] and d['parent_id'] in dir_map:
|
if d['parent_id'] and d['parent_id'] in dir_map:
|
||||||
parent_path = _get_dir_path(d['parent_id'])
|
parent_path = _get_dir_path(d['parent_id'])
|
||||||
path = f"{parent_path}/{d['name']}" if parent_path else d['name']
|
path = f'{parent_path}/{d["name"]}' if parent_path else d['name']
|
||||||
else:
|
else:
|
||||||
path = d['name']
|
path = d['name']
|
||||||
dir_id_to_path[dir_id] = path
|
dir_id_to_path[dir_id] = path
|
||||||
@@ -180,16 +187,20 @@ async def _build_directory_tree(knowledge_id: str) -> dict:
|
|||||||
files = []
|
files = []
|
||||||
for file_model, directory_id in files_with_dirs:
|
for file_model, directory_id in files_with_dirs:
|
||||||
if directory_id and directory_id in dir_id_to_path:
|
if directory_id and directory_id in dir_id_to_path:
|
||||||
file_path = f"{dir_id_to_path[directory_id]}/{file_model.filename}"
|
file_path = f'{dir_id_to_path[directory_id]}/{file_model.filename}'
|
||||||
else:
|
else:
|
||||||
file_path = file_model.filename
|
file_path = file_model.filename
|
||||||
files.append({
|
files.append(
|
||||||
'id': file_model.id, 'filename': file_model.filename,
|
{
|
||||||
'path': file_path, 'directory_id': directory_id,
|
'id': file_model.id,
|
||||||
'size': file_model.meta.get('size') if file_model.meta else None,
|
'filename': file_model.filename,
|
||||||
'type': file_model.meta.get('content_type') if file_model.meta else None,
|
'path': file_path,
|
||||||
'updated_at': file_model.updated_at,
|
'directory_id': directory_id,
|
||||||
})
|
'size': file_model.meta.get('size') if file_model.meta else None,
|
||||||
|
'type': file_model.meta.get('content_type') if file_model.meta else None,
|
||||||
|
'updated_at': file_model.updated_at,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'dirs': dir_map,
|
'dirs': dir_map,
|
||||||
@@ -212,10 +223,7 @@ def _get_files_in_dir(tree: dict, dir_id: str | None) -> list[dict]:
|
|||||||
|
|
||||||
def _get_subdirs(tree: dict, parent_id: str | None) -> list[dict]:
|
def _get_subdirs(tree: dict, parent_id: str | None) -> list[dict]:
|
||||||
"""Get immediate child directories."""
|
"""Get immediate child directories."""
|
||||||
return sorted(
|
return sorted([d for d in tree['dirs'].values() if d['parent_id'] == parent_id], key=lambda d: d['name'])
|
||||||
[d for d in tree['dirs'].values() if d['parent_id'] == parent_id],
|
|
||||||
key=lambda d: d['name']
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _get_files_under_dir(tree: dict, dir_id: str) -> list[dict]:
|
def _get_files_under_dir(tree: dict, dir_id: str) -> list[dict]:
|
||||||
@@ -237,8 +245,9 @@ def _get_files_under_dir(tree: dict, dir_id: str) -> list[dict]:
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
|
|
||||||
async def _get_accessible_kb_ids(user: dict, model_knowledge: list[dict] | None,
|
async def _get_accessible_kb_ids(
|
||||||
knowledge_id: str | None = None) -> list[tuple[str, str, str]]:
|
user: dict, model_knowledge: list[dict] | None, knowledge_id: str | None = None
|
||||||
|
) -> list[tuple[str, str, str]]:
|
||||||
"""Get list of (kb_id, kb_name, kb_description) the user can access."""
|
"""Get list of (kb_id, kb_name, kb_description) the user can access."""
|
||||||
from open_webui.models.access_grants import AccessGrants
|
from open_webui.models.access_grants import AccessGrants
|
||||||
from open_webui.models.groups import Groups
|
from open_webui.models.groups import Groups
|
||||||
@@ -249,11 +258,17 @@ async def _get_accessible_kb_ids(user: dict, model_knowledge: list[dict] | None,
|
|||||||
user_group_ids = [g.id for g in await Groups.get_groups_by_member_id(user_id)]
|
user_group_ids = [g.id for g in await Groups.get_groups_by_member_id(user_id)]
|
||||||
|
|
||||||
async def _has_access(kb):
|
async def _has_access(kb):
|
||||||
return (user_role == 'admin' or kb.user_id == user_id
|
return (
|
||||||
or await AccessGrants.has_access(
|
user_role == 'admin'
|
||||||
user_id=user_id, resource_type='knowledge',
|
or kb.user_id == user_id
|
||||||
resource_id=kb.id, permission='read',
|
or await AccessGrants.has_access(
|
||||||
user_group_ids=set(user_group_ids)))
|
user_id=user_id,
|
||||||
|
resource_type='knowledge',
|
||||||
|
resource_id=kb.id,
|
||||||
|
permission='read',
|
||||||
|
user_group_ids=set(user_group_ids),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
@@ -276,8 +291,10 @@ async def _get_accessible_kb_ids(user: dict, model_knowledge: list[dict] | None,
|
|||||||
result.append((kb.id, kb.name, kb.description or ''))
|
result.append((kb.id, kb.name, kb.description or ''))
|
||||||
else:
|
else:
|
||||||
search = await Knowledges.search_knowledge_bases(
|
search = await Knowledges.search_knowledge_bases(
|
||||||
user_id, filter={'query': '', 'user_id': user_id, 'group_ids': user_group_ids},
|
user_id,
|
||||||
skip=0, limit=50,
|
filter={'query': '', 'user_id': user_id, 'group_ids': user_group_ids},
|
||||||
|
skip=0,
|
||||||
|
limit=50,
|
||||||
)
|
)
|
||||||
for kb in search.items:
|
for kb in search.items:
|
||||||
result.append((kb.id, kb.name, kb.description or ''))
|
result.append((kb.id, kb.name, kb.description or ''))
|
||||||
@@ -285,8 +302,9 @@ async def _get_accessible_kb_ids(user: dict, model_knowledge: list[dict] | None,
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
async def _get_accessible_files(user: dict, model_knowledge: list[dict] | None,
|
async def _get_accessible_files(
|
||||||
knowledge_id: str | None = None) -> list[dict]:
|
user: dict, model_knowledge: list[dict] | None, knowledge_id: str | None = None
|
||||||
|
) -> list[dict]:
|
||||||
"""Get all files the user can access, with KB metadata and directory_id (no path computation)."""
|
"""Get all files the user can access, with KB metadata and directory_id (no path computation)."""
|
||||||
from open_webui.models.files import Files
|
from open_webui.models.files import Files
|
||||||
from open_webui.models.knowledge import Knowledges
|
from open_webui.models.knowledge import Knowledges
|
||||||
@@ -297,15 +315,18 @@ async def _get_accessible_files(user: dict, model_knowledge: list[dict] | None,
|
|||||||
for kb_id, kb_name, _ in kb_ids:
|
for kb_id, kb_name, _ in kb_ids:
|
||||||
kb_files = await Knowledges.get_files_with_directory_ids(kb_id)
|
kb_files = await Knowledges.get_files_with_directory_ids(kb_id)
|
||||||
for file_model, dir_id in kb_files:
|
for file_model, dir_id in kb_files:
|
||||||
files.append({
|
files.append(
|
||||||
'id': file_model.id, 'filename': file_model.filename,
|
{
|
||||||
'directory_id': dir_id,
|
'id': file_model.id,
|
||||||
'size': file_model.meta.get('size') if file_model.meta else None,
|
'filename': file_model.filename,
|
||||||
'type': file_model.meta.get('content_type') if file_model.meta else None,
|
'directory_id': dir_id,
|
||||||
'updated_at': file_model.updated_at,
|
'size': file_model.meta.get('size') if file_model.meta else None,
|
||||||
'knowledge_id': kb_id,
|
'type': file_model.meta.get('content_type') if file_model.meta else None,
|
||||||
'knowledge_name': kb_name,
|
'updated_at': file_model.updated_at,
|
||||||
})
|
'knowledge_id': kb_id,
|
||||||
|
'knowledge_name': kb_name,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
# Also handle directly attached files (not in any KB)
|
# Also handle directly attached files (not in any KB)
|
||||||
if model_knowledge:
|
if model_knowledge:
|
||||||
@@ -316,14 +337,18 @@ async def _get_accessible_files(user: dict, model_knowledge: list[dict] | None,
|
|||||||
for fid in attached_file_ids:
|
for fid in attached_file_ids:
|
||||||
f = await Files.get_file_by_id(fid)
|
f = await Files.get_file_by_id(fid)
|
||||||
if f:
|
if f:
|
||||||
files.append({
|
files.append(
|
||||||
'id': f.id, 'filename': f.filename,
|
{
|
||||||
'directory_id': None,
|
'id': f.id,
|
||||||
'size': f.meta.get('size') if f.meta else None,
|
'filename': f.filename,
|
||||||
'type': f.meta.get('content_type') if f.meta else None,
|
'directory_id': None,
|
||||||
'updated_at': f.updated_at,
|
'size': f.meta.get('size') if f.meta else None,
|
||||||
'knowledge_id': None, 'knowledge_name': None,
|
'type': f.meta.get('content_type') if f.meta else None,
|
||||||
})
|
'updated_at': f.updated_at,
|
||||||
|
'knowledge_id': None,
|
||||||
|
'knowledge_name': None,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
return files
|
return files
|
||||||
|
|
||||||
@@ -374,8 +399,14 @@ async def _resolve_file(ref: str, user: dict, model_knowledge: list[dict] | None
|
|||||||
if f and f.data:
|
if f and f.data:
|
||||||
if f.id not in accessible_ids:
|
if f.id not in accessible_ids:
|
||||||
return None
|
return None
|
||||||
return {'id': f.id, 'filename': f.filename, 'content': f.data.get('content', ''),
|
return {
|
||||||
'meta': f.meta, 'updated_at': f.updated_at, 'created_at': f.created_at}
|
'id': f.id,
|
||||||
|
'filename': f.filename,
|
||||||
|
'content': f.data.get('content', ''),
|
||||||
|
'meta': f.meta,
|
||||||
|
'updated_at': f.updated_at,
|
||||||
|
'created_at': f.created_at,
|
||||||
|
}
|
||||||
|
|
||||||
# Try path match (e.g. "docs/api/auth.md") — lazy dir walk
|
# Try path match (e.g. "docs/api/auth.md") — lazy dir walk
|
||||||
ref_clean = ref.strip('/')
|
ref_clean = ref.strip('/')
|
||||||
@@ -388,15 +419,20 @@ async def _resolve_file(ref: str, user: dict, model_knowledge: list[dict] | None
|
|||||||
if dir_id is None:
|
if dir_id is None:
|
||||||
continue
|
continue
|
||||||
# Find file with that name in that directory
|
# Find file with that name in that directory
|
||||||
matches = [fi for fi in accessible
|
matches = [fi for fi in accessible if fi['filename'] == filename and fi['directory_id'] == dir_id]
|
||||||
if fi['filename'] == filename and fi['directory_id'] == dir_id]
|
|
||||||
if len(matches) == 1:
|
if len(matches) == 1:
|
||||||
f = await Files.get_file_by_id(matches[0]['id'])
|
f = await Files.get_file_by_id(matches[0]['id'])
|
||||||
if f and f.data:
|
if f and f.data:
|
||||||
return {'id': f.id, 'filename': f.filename, 'content': f.data.get('content', ''),
|
return {
|
||||||
'meta': f.meta, 'updated_at': f.updated_at, 'created_at': f.created_at,
|
'id': f.id,
|
||||||
'knowledge_id': matches[0].get('knowledge_id'),
|
'filename': f.filename,
|
||||||
'knowledge_name': matches[0].get('knowledge_name')}
|
'content': f.data.get('content', ''),
|
||||||
|
'meta': f.meta,
|
||||||
|
'updated_at': f.updated_at,
|
||||||
|
'created_at': f.created_at,
|
||||||
|
'knowledge_id': matches[0].get('knowledge_id'),
|
||||||
|
'knowledge_name': matches[0].get('knowledge_name'),
|
||||||
|
}
|
||||||
|
|
||||||
# Try filename match within accessible files
|
# Try filename match within accessible files
|
||||||
matches = [fi for fi in accessible if fi['filename'] == ref]
|
matches = [fi for fi in accessible if fi['filename'] == ref]
|
||||||
@@ -404,13 +440,21 @@ async def _resolve_file(ref: str, user: dict, model_knowledge: list[dict] | None
|
|||||||
if len(matches) == 1:
|
if len(matches) == 1:
|
||||||
f = await Files.get_file_by_id(matches[0]['id'])
|
f = await Files.get_file_by_id(matches[0]['id'])
|
||||||
if f and f.data:
|
if f and f.data:
|
||||||
return {'id': f.id, 'filename': f.filename, 'content': f.data.get('content', ''),
|
return {
|
||||||
'meta': f.meta, 'updated_at': f.updated_at, 'created_at': f.created_at,
|
'id': f.id,
|
||||||
'knowledge_id': matches[0].get('knowledge_id'),
|
'filename': f.filename,
|
||||||
'knowledge_name': matches[0].get('knowledge_name')}
|
'content': f.data.get('content', ''),
|
||||||
|
'meta': f.meta,
|
||||||
|
'updated_at': f.updated_at,
|
||||||
|
'created_at': f.created_at,
|
||||||
|
'knowledge_id': matches[0].get('knowledge_id'),
|
||||||
|
'knowledge_name': matches[0].get('knowledge_name'),
|
||||||
|
}
|
||||||
elif len(matches) > 1:
|
elif len(matches) > 1:
|
||||||
return {'error': f'Ambiguous filename "{ref}". Use full path to disambiguate:\n' +
|
return {
|
||||||
'\n'.join(f" {m['id']} {m['filename']} ({m.get('knowledge_name', 'direct')})" for m in matches)}
|
'error': f'Ambiguous filename "{ref}". Use full path to disambiguate:\n'
|
||||||
|
+ '\n'.join(f' {m["id"]} {m["filename"]} ({m.get("knowledge_name", "direct")})' for m in matches)
|
||||||
|
}
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -418,6 +462,7 @@ async def _resolve_file(ref: str, user: dict, model_knowledge: list[dict] | None
|
|||||||
async def _get_file_content(file_id: str) -> str | None:
|
async def _get_file_content(file_id: str) -> str | None:
|
||||||
"""Get file content by ID."""
|
"""Get file content by ID."""
|
||||||
from open_webui.models.files import Files
|
from open_webui.models.files import Files
|
||||||
|
|
||||||
f = await Files.get_file_by_id(file_id)
|
f = await Files.get_file_by_id(file_id)
|
||||||
if f and f.data:
|
if f and f.data:
|
||||||
return f.data.get('content', '')
|
return f.data.get('content', '')
|
||||||
@@ -429,8 +474,7 @@ async def _get_file_content(file_id: str) -> str | None:
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
|
|
||||||
async def _kb_ls(args: list[str], flags: set[str], user: dict,
|
async def _kb_ls(args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None) -> str:
|
||||||
model_knowledge: list[dict] | None) -> str:
|
|
||||||
"""List files and directories. Supports: ls, ls <path>, ls -a (flat)."""
|
"""List files and directories. Supports: ls, ls <path>, ls -a (flat)."""
|
||||||
from open_webui.models.knowledge import Knowledges
|
from open_webui.models.knowledge import Knowledges
|
||||||
|
|
||||||
@@ -506,13 +550,13 @@ def _fmt_size(f: dict) -> str:
|
|||||||
def _fmt_date(f: dict) -> str:
|
def _fmt_date(f: dict) -> str:
|
||||||
if f.get('updated_at'):
|
if f.get('updated_at'):
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
dt = datetime.fromtimestamp(f['updated_at'], tz=timezone.utc)
|
dt = datetime.fromtimestamp(f['updated_at'], tz=timezone.utc)
|
||||||
return dt.strftime('%Y-%m-%d')
|
return dt.strftime('%Y-%m-%d')
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
async def _kb_cat(args: list[str], flags: set[str], user: dict,
|
async def _kb_cat(args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None) -> str:
|
||||||
model_knowledge: list[dict] | None) -> str:
|
|
||||||
"""Read file content. Use -n for line numbers."""
|
"""Read file content. Use -n for line numbers."""
|
||||||
if not args:
|
if not args:
|
||||||
return 'Usage: cat [-n] <file_id or filename>'
|
return 'Usage: cat [-n] <file_id or filename>'
|
||||||
@@ -542,9 +586,9 @@ async def _kb_cat(args: list[str], flags: set[str], user: dict,
|
|||||||
return content
|
return content
|
||||||
|
|
||||||
|
|
||||||
async def _kb_head(args: list[str], flags: set[str], user: dict,
|
async def _kb_head(
|
||||||
model_knowledge: list[dict] | None,
|
args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None, piped_input: str | None = None
|
||||||
piped_input: str | None = None) -> str:
|
) -> str:
|
||||||
"""First N lines of a file or piped input."""
|
"""First N lines of a file or piped input."""
|
||||||
n, args = _extract_numeric_flag(args)
|
n, args = _extract_numeric_flag(args)
|
||||||
if n is None:
|
if n is None:
|
||||||
@@ -571,9 +615,9 @@ async def _kb_head(args: list[str], flags: set[str], user: dict,
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
async def _kb_tail(args: list[str], flags: set[str], user: dict,
|
async def _kb_tail(
|
||||||
model_knowledge: list[dict] | None,
|
args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None, piped_input: str | None = None
|
||||||
piped_input: str | None = None) -> str:
|
) -> str:
|
||||||
"""Last N lines of a file or piped input."""
|
"""Last N lines of a file or piped input."""
|
||||||
n, args = _extract_numeric_flag(args)
|
n, args = _extract_numeric_flag(args)
|
||||||
if n is None:
|
if n is None:
|
||||||
@@ -600,9 +644,9 @@ async def _kb_tail(args: list[str], flags: set[str], user: dict,
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
async def _kb_grep(args: list[str], flags: set[str], user: dict,
|
async def _kb_grep(
|
||||||
model_knowledge: list[dict] | None,
|
args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None, piped_input: str | None = None
|
||||||
piped_input: str | None = None) -> str:
|
) -> str:
|
||||||
"""Text search across files or piped input. Supports -E for regex."""
|
"""Text search across files or piped input. Supports -E for regex."""
|
||||||
if not args:
|
if not args:
|
||||||
return 'Usage: grep [-E] [-i] [-l] [-c] "pattern" [file] [*.ext]'
|
return 'Usage: grep [-E] [-i] [-l] [-c] "pattern" [file] [*.ext]'
|
||||||
@@ -684,8 +728,7 @@ async def _kb_grep(args: list[str], flags: set[str], user: dict,
|
|||||||
accessible = [f for f in accessible if f['filename'].endswith(f'.{ext_filter}')]
|
accessible = [f for f in accessible if f['filename'].endswith(f'.{ext_filter}')]
|
||||||
|
|
||||||
if len(accessible) > MAX_GREP_FILES:
|
if len(accessible) > MAX_GREP_FILES:
|
||||||
return (f'Too many files ({len(accessible)}). '
|
return f'Too many files ({len(accessible)}). Scope your search: grep "{pattern}" docs/ or grep "{pattern}" *.py'
|
||||||
f'Scope your search: grep "{pattern}" docs/ or grep "{pattern}" *.py')
|
|
||||||
|
|
||||||
from open_webui.models.files import Files
|
from open_webui.models.files import Files
|
||||||
|
|
||||||
@@ -717,9 +760,7 @@ async def _kb_grep(args: list[str], flags: set[str], user: dict,
|
|||||||
if not count_only and not filenames_only:
|
if not count_only and not filenames_only:
|
||||||
for line_num, line_text in file_matches:
|
for line_num, line_text in file_matches:
|
||||||
if len(results) < MAX_GREP_MATCHES:
|
if len(results) < MAX_GREP_MATCHES:
|
||||||
results.append(
|
results.append(f'{file_info["id"]} {file_info["filename"]}:{line_num}: {line_text.rstrip()}')
|
||||||
f'{file_info["id"]} {file_info["filename"]}:{line_num}: {line_text.rstrip()}'
|
|
||||||
)
|
|
||||||
|
|
||||||
if count_only:
|
if count_only:
|
||||||
if not file_match_counts:
|
if not file_match_counts:
|
||||||
@@ -742,8 +783,7 @@ async def _kb_grep(args: list[str], flags: set[str], user: dict,
|
|||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
async def _kb_find(args: list[str], flags: set[str], user: dict,
|
async def _kb_find(args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None) -> str:
|
||||||
model_knowledge: list[dict] | None) -> str:
|
|
||||||
"""Find files by name/glob pattern, optionally scoped to a directory."""
|
"""Find files by name/glob pattern, optionally scoped to a directory."""
|
||||||
if not args:
|
if not args:
|
||||||
return 'Usage: find "*.md" or find docs/ "*.md"'
|
return 'Usage: find "*.md" or find docs/ "*.md"'
|
||||||
@@ -783,9 +823,9 @@ async def _kb_find(args: list[str], flags: set[str], user: dict,
|
|||||||
return '\n'.join(lines)
|
return '\n'.join(lines)
|
||||||
|
|
||||||
|
|
||||||
async def _kb_wc(args: list[str], flags: set[str], user: dict,
|
async def _kb_wc(
|
||||||
model_knowledge: list[dict] | None,
|
args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None, piped_input: str | None = None
|
||||||
piped_input: str | None = None) -> str:
|
) -> str:
|
||||||
"""Word, line, character counts."""
|
"""Word, line, character counts."""
|
||||||
if piped_input is not None:
|
if piped_input is not None:
|
||||||
lines = piped_input.count('\n') + (1 if piped_input and not piped_input.endswith('\n') else 0)
|
lines = piped_input.count('\n') + (1 if piped_input and not piped_input.endswith('\n') else 0)
|
||||||
@@ -814,8 +854,7 @@ async def _kb_wc(args: list[str], flags: set[str], user: dict,
|
|||||||
return f' {lines} {words} {chars} {resolved["filename"]}'
|
return f' {lines} {words} {chars} {resolved["filename"]}'
|
||||||
|
|
||||||
|
|
||||||
async def _kb_stat(args: list[str], flags: set[str], user: dict,
|
async def _kb_stat(args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None) -> str:
|
||||||
model_knowledge: list[dict] | None) -> str:
|
|
||||||
"""File metadata."""
|
"""File metadata."""
|
||||||
if not args:
|
if not args:
|
||||||
return 'Usage: stat <file>'
|
return 'Usage: stat <file>'
|
||||||
@@ -847,10 +886,12 @@ async def _kb_stat(args: list[str], flags: set[str], user: dict,
|
|||||||
|
|
||||||
if resolved.get('created_at'):
|
if resolved.get('created_at'):
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
dt = datetime.fromtimestamp(resolved['created_at'], tz=timezone.utc)
|
dt = datetime.fromtimestamp(resolved['created_at'], tz=timezone.utc)
|
||||||
out.append(f' Created: {dt.strftime("%Y-%m-%d %H:%M:%S UTC")}')
|
out.append(f' Created: {dt.strftime("%Y-%m-%d %H:%M:%S UTC")}')
|
||||||
if resolved.get('updated_at'):
|
if resolved.get('updated_at'):
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
dt = datetime.fromtimestamp(resolved['updated_at'], tz=timezone.utc)
|
dt = datetime.fromtimestamp(resolved['updated_at'], tz=timezone.utc)
|
||||||
out.append(f' Updated: {dt.strftime("%Y-%m-%d %H:%M:%S UTC")}')
|
out.append(f' Updated: {dt.strftime("%Y-%m-%d %H:%M:%S UTC")}')
|
||||||
if resolved.get('knowledge_name'):
|
if resolved.get('knowledge_name'):
|
||||||
@@ -859,20 +900,20 @@ async def _kb_stat(args: list[str], flags: set[str], user: dict,
|
|||||||
return '\n'.join(out)
|
return '\n'.join(out)
|
||||||
|
|
||||||
|
|
||||||
async def _kb_sed(args: list[str], flags: set[str], user: dict,
|
async def _kb_sed(
|
||||||
model_knowledge: list[dict] | None,
|
args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None, piped_input: str | None = None
|
||||||
piped_input: str | None = None) -> str:
|
) -> str:
|
||||||
"""Extract line range from a file. Usage: sed -n 'M,Np' <file>"""
|
"""Extract line range from a file. Usage: sed -n 'M,Np' <file>"""
|
||||||
if piped_input is not None:
|
if piped_input is not None:
|
||||||
# sed on piped input: parse range from args
|
# sed on piped input: parse range from args
|
||||||
start, end = 1, None
|
start, end = 1, None
|
||||||
if 'n' in flags and args:
|
if 'n' in flags and args:
|
||||||
m = re.match(r"^(\d+),(\d+)p?$", args[0])
|
m = re.match(r'^(\d+),(\d+)p?$', args[0])
|
||||||
if m:
|
if m:
|
||||||
start, end = int(m.group(1)), int(m.group(2))
|
start, end = int(m.group(1)), int(m.group(2))
|
||||||
args = args[1:]
|
args = args[1:]
|
||||||
lines = piped_input.split('\n')
|
lines = piped_input.split('\n')
|
||||||
selected = lines[max(0, start - 1):(end or len(lines))]
|
selected = lines[max(0, start - 1) : (end or len(lines))]
|
||||||
return '\n'.join(selected)
|
return '\n'.join(selected)
|
||||||
|
|
||||||
# Parse: sed -n '40,60p' <file>
|
# Parse: sed -n '40,60p' <file>
|
||||||
@@ -903,7 +944,7 @@ async def _kb_sed(args: list[str], flags: set[str], user: dict,
|
|||||||
|
|
||||||
lines = resolved['content'].split('\n')
|
lines = resolved['content'].split('\n')
|
||||||
total = len(lines)
|
total = len(lines)
|
||||||
selected = lines[max(0, start - 1):end]
|
selected = lines[max(0, start - 1) : end]
|
||||||
result = '\n'.join(selected)
|
result = '\n'.join(selected)
|
||||||
result += f'\n[lines {start}-{min(end, total)} of {total}]'
|
result += f'\n[lines {start}-{min(end, total)} of {total}]'
|
||||||
return result
|
return result
|
||||||
@@ -914,8 +955,7 @@ async def _kb_sed(args: list[str], flags: set[str], user: dict,
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
|
|
||||||
async def _kb_tree(args: list[str], flags: set[str], user: dict,
|
async def _kb_tree(args: list[str], flags: set[str], user: dict, model_knowledge: list[dict] | None) -> str:
|
||||||
model_knowledge: list[dict] | None) -> str:
|
|
||||||
"""Show directory tree structure."""
|
"""Show directory tree structure."""
|
||||||
kb_ids = await _get_accessible_kb_ids(user, model_knowledge)
|
kb_ids = await _get_accessible_kb_ids(user, model_knowledge)
|
||||||
if not kb_ids:
|
if not kb_ids:
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ async def get_current_user_by_api_key(request, api_key: str):
|
|||||||
allowed_paths = [
|
allowed_paths = [
|
||||||
path.strip() for path in str(request.app.state.config.API_KEYS_ALLOWED_ENDPOINTS).split(',') if path.strip()
|
path.strip() for path in str(request.app.state.config.API_KEYS_ALLOWED_ENDPOINTS).split(',') if path.strip()
|
||||||
]
|
]
|
||||||
request_path = request.scope["path"] # Use raw ASGI path — not spoofable via Host header (CVE-2026-48710)
|
request_path = request.scope['path'] # Use raw ASGI path — not spoofable via Host header (CVE-2026-48710)
|
||||||
is_allowed = any(request_path == allowed or request_path.startswith(allowed + '/') for allowed in allowed_paths)
|
is_allowed = any(request_path == allowed or request_path.startswith(allowed + '/') for allowed in allowed_paths)
|
||||||
if not is_allowed:
|
if not is_allowed:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|||||||
@@ -191,11 +191,7 @@ async def get_image_base64_from_file_id(id: str, user=None) -> Optional[str]:
|
|||||||
# Owner, admin, and explicit read-grant holders are allowed.
|
# Owner, admin, and explicit read-grant holders are allowed.
|
||||||
if user is None:
|
if user is None:
|
||||||
return None
|
return None
|
||||||
if (
|
if file.user_id != user.id and user.role != 'admin' and not await has_access_to_file(file.id, 'read', user):
|
||||||
file.user_id != user.id
|
|
||||||
and user.role != 'admin'
|
|
||||||
and not await has_access_to_file(file.id, 'read', user)
|
|
||||||
):
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -41,4 +41,3 @@ def get_custom_headers(custom_headers: dict, user=None, metadata: dict = None) -
|
|||||||
parsed_headers[key] = value
|
parsed_headers[key] = value
|
||||||
|
|
||||||
return parsed_headers
|
return parsed_headers
|
||||||
|
|
||||||
|
|||||||
@@ -67,9 +67,7 @@ def _json_sink(message: 'Message') -> None:
|
|||||||
log_entry['error'] = {
|
log_entry['error'] = {
|
||||||
'type': exc.type.__name__ if exc.type else None,
|
'type': exc.type.__name__ if exc.type else None,
|
||||||
'message': str(exc.value) if exc.value else None,
|
'message': str(exc.value) if exc.value else None,
|
||||||
'stacktrace': ''.join(
|
'stacktrace': ''.join(traceback.format_exception(exc.type, exc.value, exc.traceback)).rstrip(),
|
||||||
traceback.format_exception(exc.type, exc.value, exc.traceback)
|
|
||||||
).rstrip(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sys.stdout.write(json.dumps(log_entry, ensure_ascii=False, default=str) + '\n')
|
sys.stdout.write(json.dumps(log_entry, ensure_ascii=False, default=str) + '\n')
|
||||||
|
|||||||
@@ -11,7 +11,11 @@ from mcp import ClientSession
|
|||||||
from mcp.client.auth import OAuthClientProvider, TokenStorage
|
from mcp.client.auth import OAuthClientProvider, TokenStorage
|
||||||
from mcp.client.streamable_http import streamablehttp_client
|
from mcp.client.streamable_http import streamablehttp_client
|
||||||
from mcp.shared.auth import OAuthClientInformationFull, OAuthClientMetadata, OAuthToken
|
from mcp.shared.auth import OAuthClientInformationFull, OAuthClientMetadata, OAuthToken
|
||||||
from open_webui.env import AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL, AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER, MCP_INITIALIZE_TIMEOUT
|
from open_webui.env import (
|
||||||
|
AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL,
|
||||||
|
AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER,
|
||||||
|
MCP_INITIALIZE_TIMEOUT,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _build_httpx_client(headers=None, timeout=None, auth=None, verify=True):
|
def _build_httpx_client(headers=None, timeout=None, auth=None, verify=True):
|
||||||
|
|||||||
@@ -2257,7 +2257,6 @@ def strip_skill_mentions(messages: list[dict]) -> None:
|
|||||||
part['text'] = strip_re.sub(r'\1', text).strip()
|
part['text'] = strip_re.sub(r'\1', text).strip()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def connect_mcp_server(
|
async def connect_mcp_server(
|
||||||
request,
|
request,
|
||||||
server_id: str,
|
server_id: str,
|
||||||
@@ -2271,10 +2270,7 @@ async def connect_mcp_server(
|
|||||||
"""
|
"""
|
||||||
mcp_server_connection = None
|
mcp_server_connection = None
|
||||||
for server_connection in request.app.state.config.TOOL_SERVER_CONNECTIONS:
|
for server_connection in request.app.state.config.TOOL_SERVER_CONNECTIONS:
|
||||||
if (
|
if server_connection.get('type', '') == 'mcp' and server_connection.get('info', {}).get('id') == server_id:
|
||||||
server_connection.get('type', '') == 'mcp'
|
|
||||||
and server_connection.get('info', {}).get('id') == server_id
|
|
||||||
):
|
|
||||||
mcp_server_connection = server_connection
|
mcp_server_connection = server_connection
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -2287,8 +2283,12 @@ async def connect_mcp_server(
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
headers, _ = await build_tool_server_headers(
|
headers, _ = await build_tool_server_headers(
|
||||||
mcp_server_connection, request, user,
|
mcp_server_connection,
|
||||||
server_id=server_id, metadata=metadata, extra_params=extra_params,
|
request,
|
||||||
|
user,
|
||||||
|
server_id=server_id,
|
||||||
|
metadata=metadata,
|
||||||
|
extra_params=extra_params,
|
||||||
)
|
)
|
||||||
|
|
||||||
client = MCPClient()
|
client = MCPClient()
|
||||||
@@ -2297,18 +2297,13 @@ async def connect_mcp_server(
|
|||||||
headers=headers if headers else None,
|
headers=headers if headers else None,
|
||||||
)
|
)
|
||||||
|
|
||||||
function_name_filter_list = mcp_server_connection.get('config', {}).get(
|
function_name_filter_list = mcp_server_connection.get('config', {}).get('function_name_filter_list', '')
|
||||||
'function_name_filter_list', ''
|
|
||||||
)
|
|
||||||
if isinstance(function_name_filter_list, str):
|
if isinstance(function_name_filter_list, str):
|
||||||
function_name_filter_list = function_name_filter_list.split(',')
|
function_name_filter_list = function_name_filter_list.split(',')
|
||||||
|
|
||||||
tool_specs = await client.list_tool_specs()
|
tool_specs = await client.list_tool_specs()
|
||||||
if function_name_filter_list:
|
if function_name_filter_list:
|
||||||
tool_specs = [
|
tool_specs = [spec for spec in tool_specs if is_string_allowed(spec['name'], function_name_filter_list)]
|
||||||
spec for spec in tool_specs
|
|
||||||
if is_string_allowed(spec['name'], function_name_filter_list)
|
|
||||||
]
|
|
||||||
|
|
||||||
return client, tool_specs
|
return client, tool_specs
|
||||||
|
|
||||||
@@ -2730,10 +2725,14 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||||||
for tool_id in tool_ids:
|
for tool_id in tool_ids:
|
||||||
if tool_id.startswith('server:mcp:'):
|
if tool_id.startswith('server:mcp:'):
|
||||||
try:
|
try:
|
||||||
server_id = tool_id[len('server:mcp:'):]
|
server_id = tool_id[len('server:mcp:') :]
|
||||||
|
|
||||||
result = await connect_mcp_server(
|
result = await connect_mcp_server(
|
||||||
request, server_id, user, metadata, extra_params,
|
request,
|
||||||
|
server_id,
|
||||||
|
user,
|
||||||
|
metadata,
|
||||||
|
extra_params,
|
||||||
)
|
)
|
||||||
if result is None:
|
if result is None:
|
||||||
continue
|
continue
|
||||||
@@ -2742,6 +2741,7 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
|||||||
mcp_clients[server_id] = client
|
mcp_clients[server_id] = client
|
||||||
|
|
||||||
for tool_spec in tool_specs:
|
for tool_spec in tool_specs:
|
||||||
|
|
||||||
async def make_tool_function(client, function_name):
|
async def make_tool_function(client, function_name):
|
||||||
async def tool_function(**kwargs):
|
async def tool_function(**kwargs):
|
||||||
return await client.call_tool(
|
return await client.call_tool(
|
||||||
@@ -3392,7 +3392,9 @@ async def outlet_filter_handler(ctx):
|
|||||||
if outlet_message_id and outlet_message_id in messages_map:
|
if outlet_message_id and outlet_message_id in messages_map:
|
||||||
original_message = messages_map[outlet_message_id]
|
original_message = messages_map[outlet_message_id]
|
||||||
content_changed = original_message.get('content') != message.get('content')
|
content_changed = original_message.get('content') != message.get('content')
|
||||||
output_changed = message.get('output') and message.get('output') != original_message.get('output')
|
output_changed = message.get('output') and message.get('output') != original_message.get(
|
||||||
|
'output'
|
||||||
|
)
|
||||||
if content_changed or output_changed:
|
if content_changed or output_changed:
|
||||||
# If output was modified, re-derive content from it
|
# If output was modified, re-derive content from it
|
||||||
new_content = message.get('content', original_message.get('content', ''))
|
new_content = message.get('content', original_message.get('content', ''))
|
||||||
@@ -3874,7 +3876,7 @@ async def streaming_chat_response_handler(response, ctx):
|
|||||||
# Mirror the five gates from utils/tools.py get_builtin_tools so the
|
# Mirror the five gates from utils/tools.py get_builtin_tools so the
|
||||||
# legacy XML-tag path enforces the same authz as native FC.
|
# legacy XML-tag path enforces the same authz as native FC.
|
||||||
features = metadata.get('features', {}) or {}
|
features = metadata.get('features', {}) or {}
|
||||||
model_capabilities = (model.get('info', {}).get('meta', {}).get('capabilities') or {})
|
model_capabilities = model.get('info', {}).get('meta', {}).get('capabilities') or {}
|
||||||
builtin_tools_meta = model.get('info', {}).get('meta', {}).get('builtinTools', {})
|
builtin_tools_meta = model.get('info', {}).get('meta', {}).get('builtinTools', {})
|
||||||
DETECT_CODE_INTERPRETER = (
|
DETECT_CODE_INTERPRETER = (
|
||||||
bool(features.get('code_interpreter'))
|
bool(features.get('code_interpreter'))
|
||||||
@@ -4401,7 +4403,9 @@ async def streaming_chat_response_handler(response, ctx):
|
|||||||
if end:
|
if end:
|
||||||
break
|
break
|
||||||
|
|
||||||
if ENABLE_REALTIME_CHAT_SAVE and not metadata.get('chat_id', '').startswith('channel:'):
|
if ENABLE_REALTIME_CHAT_SAVE and not metadata.get('chat_id', '').startswith(
|
||||||
|
'channel:'
|
||||||
|
):
|
||||||
# Save message in the database
|
# Save message in the database
|
||||||
await Chats.upsert_message_to_chat_by_id_and_message_id(
|
await Chats.upsert_message_to_chat_by_id_and_message_id(
|
||||||
metadata['chat_id'],
|
metadata['chat_id'],
|
||||||
|
|||||||
@@ -141,9 +141,7 @@ def reconcile_tool_pairs(messages: list[dict]) -> list[dict]:
|
|||||||
Well-formed output is unaffected: every id pairs, so nothing is stripped.
|
Well-formed output is unaffected: every id pairs, so nothing is stripped.
|
||||||
"""
|
"""
|
||||||
completed_tool_call_ids = {
|
completed_tool_call_ids = {
|
||||||
message['tool_call_id']
|
message['tool_call_id'] for message in messages if message.get('role') == 'tool' and message.get('tool_call_id')
|
||||||
for message in messages
|
|
||||||
if message.get('role') == 'tool' and message.get('tool_call_id')
|
|
||||||
}
|
}
|
||||||
requested_tool_call_ids = {
|
requested_tool_call_ids = {
|
||||||
tool_call['id']
|
tool_call['id']
|
||||||
@@ -167,9 +165,7 @@ def reconcile_tool_pairs(messages: list[dict]) -> list[dict]:
|
|||||||
|
|
||||||
# Keep only tool_calls whose id received a tool-role response.
|
# Keep only tool_calls whose id received a tool-role response.
|
||||||
valid_tool_calls = [
|
valid_tool_calls = [
|
||||||
tool_call
|
tool_call for tool_call in message['tool_calls'] if tool_call.get('id') in completed_tool_call_ids
|
||||||
for tool_call in message['tool_calls']
|
|
||||||
if tool_call.get('id') in completed_tool_call_ids
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if valid_tool_calls:
|
if valid_tool_calls:
|
||||||
@@ -181,9 +177,7 @@ def reconcile_tool_pairs(messages: list[dict]) -> list[dict]:
|
|||||||
content = message.get('content', '')
|
content = message.get('content', '')
|
||||||
has_meaningful_content = content.strip() if isinstance(content, str) else content
|
has_meaningful_content = content.strip() if isinstance(content, str) else content
|
||||||
if has_meaningful_content or message.get('reasoning_content'):
|
if has_meaningful_content or message.get('reasoning_content'):
|
||||||
reconciled_messages.append(
|
reconciled_messages.append({key: value for key, value in message.items() if key != 'tool_calls'})
|
||||||
{key: value for key, value in message.items() if key != 'tool_calls'}
|
|
||||||
)
|
|
||||||
|
|
||||||
return reconciled_messages
|
return reconciled_messages
|
||||||
|
|
||||||
|
|||||||
@@ -375,7 +375,9 @@ async def get_protected_resource_metadata(server_url: str) -> ProtectedResourceM
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug(f'MCP Protected Resource discovery failed: {e}')
|
log.debug(f'MCP Protected Resource discovery failed: {e}')
|
||||||
|
|
||||||
return ProtectedResourceMetadata(resource=resource, authorization_servers=authorization_servers, scopes_supported=scopes)
|
return ProtectedResourceMetadata(
|
||||||
|
resource=resource, authorization_servers=authorization_servers, scopes_supported=scopes
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _build_well_known_urls(server_url: str) -> list[str]:
|
def _build_well_known_urls(server_url: str) -> list[str]:
|
||||||
|
|||||||
@@ -29,12 +29,12 @@ from open_webui.env import (
|
|||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
_ACCEPTED_SCHEMES = frozenset({"redis", "rediss"})
|
_ACCEPTED_SCHEMES = frozenset({'redis', 'rediss'})
|
||||||
_SENTINEL_RETRYABLE = (
|
_SENTINEL_RETRYABLE = (
|
||||||
_redis_sync.exceptions.ConnectionError,
|
_redis_sync.exceptions.ConnectionError,
|
||||||
_redis_sync.exceptions.ReadOnlyError,
|
_redis_sync.exceptions.ReadOnlyError,
|
||||||
)
|
)
|
||||||
_FACTORY_METHODS = frozenset({"pipeline", "pubsub", "monitor", "client", "transaction"})
|
_FACTORY_METHODS = frozenset({'pipeline', 'pubsub', 'monitor', 'client', 'transaction'})
|
||||||
_CONNECTION_POOL: dict[tuple, Any] = {}
|
_CONNECTION_POOL: dict[tuple, Any] = {}
|
||||||
|
|
||||||
|
|
||||||
@@ -42,17 +42,16 @@ def parse_redis_url(url: str) -> dict[str, Any]:
|
|||||||
"""Break a ``redis://`` URL into its parts: service, port, db, username, password."""
|
"""Break a ``redis://`` URL into its parts: service, port, db, username, password."""
|
||||||
parts: ParseResult = urlparse(url)
|
parts: ParseResult = urlparse(url)
|
||||||
if parts.scheme not in _ACCEPTED_SCHEMES:
|
if parts.scheme not in _ACCEPTED_SCHEMES:
|
||||||
raise ValueError(
|
raise ValueError(f"Invalid Redis URL scheme '{parts.scheme}'; expected 'redis' or 'rediss'.")
|
||||||
f"Invalid Redis URL scheme '{parts.scheme}'; expected 'redis' or 'rediss'."
|
|
||||||
)
|
|
||||||
return {
|
return {
|
||||||
"service": parts.hostname or "mymaster",
|
'service': parts.hostname or 'mymaster',
|
||||||
"port": parts.port or 6379,
|
'port': parts.port or 6379,
|
||||||
"db": int(parts.path.lstrip("/") or "0"),
|
'db': int(parts.path.lstrip('/') or '0'),
|
||||||
"username": parts.username or None,
|
'username': parts.username or None,
|
||||||
"password": parts.password or None,
|
'password': parts.password or None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
parse_redis_service_url = parse_redis_url
|
parse_redis_service_url = parse_redis_url
|
||||||
|
|
||||||
|
|
||||||
@@ -64,11 +63,7 @@ def get_sentinels_from_env(
|
|||||||
if not hosts_csv:
|
if not hosts_csv:
|
||||||
return []
|
return []
|
||||||
resolved_port = int(port) if port else 26379
|
resolved_port = int(port) if port else 26379
|
||||||
return [
|
return [(host.strip(), resolved_port) for host in hosts_csv.split(',') if host.strip()]
|
||||||
(host.strip(), resolved_port)
|
|
||||||
for host in hosts_csv.split(",")
|
|
||||||
if host.strip()
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def build_sentinel_url(
|
def build_sentinel_url(
|
||||||
@@ -82,13 +77,11 @@ def build_sentinel_url(
|
|||||||
``hosts_csv`` is a comma-separated list of sentinel hostnames.
|
``hosts_csv`` is a comma-separated list of sentinel hostnames.
|
||||||
"""
|
"""
|
||||||
cfg = parse_redis_url(base_url)
|
cfg = parse_redis_url(base_url)
|
||||||
auth = ""
|
auth = ''
|
||||||
if cfg["username"] or cfg["password"]:
|
if cfg['username'] or cfg['password']:
|
||||||
auth = f"{cfg['username'] or ''}:{cfg['password'] or ''}@"
|
auth = f'{cfg["username"] or ""}:{cfg["password"] or ""}@'
|
||||||
nodes = ",".join(
|
nodes = ','.join(f'{host.strip()}:{port}' for host in hosts_csv.split(',') if host.strip())
|
||||||
f"{host.strip()}:{port}" for host in hosts_csv.split(",") if host.strip()
|
return f'redis+sentinel://{auth}{nodes}/{cfg["db"]}/{cfg["service"]}'
|
||||||
)
|
|
||||||
return f"redis+sentinel://{auth}{nodes}/{cfg['db']}/{cfg['service']}"
|
|
||||||
|
|
||||||
|
|
||||||
def get_redis_client(async_mode: bool = False) -> Any | None:
|
def get_redis_client(async_mode: bool = False) -> Any | None:
|
||||||
@@ -107,7 +100,7 @@ def get_redis_client(async_mode: bool = False) -> Any | None:
|
|||||||
async_mode=async_mode,
|
async_mode=async_mode,
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
log.debug("Could not establish Redis connection", exc_info=True)
|
log.debug('Could not establish Redis connection', exc_info=True)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@@ -157,7 +150,7 @@ class SentinelRedisProxy:
|
|||||||
|
|
||||||
def _log_retry(self, exc: Exception, attempt: int) -> None:
|
def _log_retry(self, exc: Exception, attempt: int) -> None:
|
||||||
log.debug(
|
log.debug(
|
||||||
"Sentinel failover (%s) — retry %d/%d",
|
'Sentinel failover (%s) — retry %d/%d',
|
||||||
type(exc).__name__,
|
type(exc).__name__,
|
||||||
attempt + 1,
|
attempt + 1,
|
||||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||||
@@ -165,7 +158,7 @@ class SentinelRedisProxy:
|
|||||||
|
|
||||||
def _log_exhausted(self, exc: Exception) -> None:
|
def _log_exhausted(self, exc: Exception) -> None:
|
||||||
log.error(
|
log.error(
|
||||||
"Redis operation failed after %d retries: %s",
|
'Redis operation failed after %d retries: %s',
|
||||||
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
REDIS_SENTINEL_MAX_RETRY_COUNT,
|
||||||
exc,
|
exc,
|
||||||
)
|
)
|
||||||
@@ -254,11 +247,11 @@ def _socket_options() -> dict[str, Any]:
|
|||||||
"""Collect optional socket-level kwargs once instead of repeating them."""
|
"""Collect optional socket-level kwargs once instead of repeating them."""
|
||||||
opts: dict[str, Any] = {}
|
opts: dict[str, Any] = {}
|
||||||
if REDIS_SOCKET_CONNECT_TIMEOUT is not None:
|
if REDIS_SOCKET_CONNECT_TIMEOUT is not None:
|
||||||
opts["socket_connect_timeout"] = REDIS_SOCKET_CONNECT_TIMEOUT
|
opts['socket_connect_timeout'] = REDIS_SOCKET_CONNECT_TIMEOUT
|
||||||
if REDIS_SOCKET_KEEPALIVE:
|
if REDIS_SOCKET_KEEPALIVE:
|
||||||
opts["socket_keepalive"] = True
|
opts['socket_keepalive'] = True
|
||||||
if REDIS_HEALTH_CHECK_INTERVAL:
|
if REDIS_HEALTH_CHECK_INTERVAL:
|
||||||
opts["health_check_interval"] = REDIS_HEALTH_CHECK_INTERVAL
|
opts['health_check_interval'] = REDIS_HEALTH_CHECK_INTERVAL
|
||||||
return opts
|
return opts
|
||||||
|
|
||||||
|
|
||||||
@@ -273,15 +266,15 @@ def _build_sentinel(
|
|||||||
cfg = parse_redis_url(url)
|
cfg = parse_redis_url(url)
|
||||||
sentinel = redis_module.sentinel.Sentinel(
|
sentinel = redis_module.sentinel.Sentinel(
|
||||||
sentinels,
|
sentinels,
|
||||||
port=cfg["port"],
|
port=cfg['port'],
|
||||||
db=cfg["db"],
|
db=cfg['db'],
|
||||||
username=cfg["username"],
|
username=cfg['username'],
|
||||||
password=cfg["password"],
|
password=cfg['password'],
|
||||||
decode_responses=decode_responses,
|
decode_responses=decode_responses,
|
||||||
socket_connect_timeout=REDIS_SOCKET_CONNECT_TIMEOUT,
|
socket_connect_timeout=REDIS_SOCKET_CONNECT_TIMEOUT,
|
||||||
**{k: v for k, v in _socket_options().items() if k != "socket_connect_timeout"},
|
**{k: v for k, v in _socket_options().items() if k != 'socket_connect_timeout'},
|
||||||
)
|
)
|
||||||
return SentinelRedisProxy(sentinel, cfg["service"], async_mode=async_mode)
|
return SentinelRedisProxy(sentinel, cfg['service'], async_mode=async_mode)
|
||||||
|
|
||||||
|
|
||||||
def get_redis_connection(
|
def get_redis_connection(
|
||||||
@@ -320,12 +313,14 @@ def get_redis_connection(
|
|||||||
connection = _build_sentinel(redis_mod, redis_url, redis_sentinels, decode_responses, async_mode)
|
connection = _build_sentinel(redis_mod, redis_url, redis_sentinels, decode_responses, async_mode)
|
||||||
elif redis_cluster:
|
elif redis_cluster:
|
||||||
if not redis_url:
|
if not redis_url:
|
||||||
raise ValueError("Redis URL is required for cluster mode.")
|
raise ValueError('Redis URL is required for cluster mode.')
|
||||||
connection = redis_mod.cluster.RedisCluster.from_url(
|
connection = redis_mod.cluster.RedisCluster.from_url(
|
||||||
redis_url, decode_responses=decode_responses, **extra,
|
redis_url,
|
||||||
|
decode_responses=decode_responses,
|
||||||
|
**extra,
|
||||||
)
|
)
|
||||||
elif redis_url:
|
elif redis_url:
|
||||||
factory = getattr(redis_mod, "from_url", None) or redis_mod.Redis.from_url
|
factory = getattr(redis_mod, 'from_url', None) or redis_mod.Redis.from_url
|
||||||
connection = factory(redis_url, decode_responses=decode_responses, **extra)
|
connection = factory(redis_url, decode_responses=decode_responses, **extra)
|
||||||
|
|
||||||
_CONNECTION_POOL[cache_key] = connection
|
_CONNECTION_POOL[cache_key] = connection
|
||||||
|
|||||||
@@ -376,8 +376,12 @@ async def get_tools(request: Request, tool_ids: list[str], user: UserModel, extr
|
|||||||
|
|
||||||
metadata = extra_params.get('__metadata__', {})
|
metadata = extra_params.get('__metadata__', {})
|
||||||
headers, cookies = await build_tool_server_headers(
|
headers, cookies = await build_tool_server_headers(
|
||||||
tool_server_connection, request, user,
|
tool_server_connection,
|
||||||
server_id=server_id, metadata=metadata, extra_params=extra_params,
|
request,
|
||||||
|
user,
|
||||||
|
server_id=server_id,
|
||||||
|
metadata=metadata,
|
||||||
|
extra_params=extra_params,
|
||||||
)
|
)
|
||||||
headers.setdefault('Content-Type', 'application/json')
|
headers.setdefault('Content-Type', 'application/json')
|
||||||
|
|
||||||
@@ -484,7 +488,9 @@ async def get_builtin_tools(
|
|||||||
builtin_functions.append(query_knowledge_bases)
|
builtin_functions.append(query_knowledge_bases)
|
||||||
builtin_functions.append(search_knowledge_bases)
|
builtin_functions.append(search_knowledge_bases)
|
||||||
elif model_knowledge:
|
elif model_knowledge:
|
||||||
builtin_functions.extend([list_knowledge, search_knowledge_files, grep_knowledge_files, query_knowledge_files])
|
builtin_functions.extend(
|
||||||
|
[list_knowledge, search_knowledge_files, grep_knowledge_files, query_knowledge_files]
|
||||||
|
)
|
||||||
|
|
||||||
knowledge_types = {item.get('type') for item in model_knowledge}
|
knowledge_types = {item.get('type') for item in model_knowledge}
|
||||||
if 'file' in knowledge_types or 'collection' in knowledge_types:
|
if 'file' in knowledge_types or 'collection' in knowledge_types:
|
||||||
@@ -492,11 +498,17 @@ async def get_builtin_tools(
|
|||||||
if 'note' in knowledge_types:
|
if 'note' in knowledge_types:
|
||||||
builtin_functions.append(view_note)
|
builtin_functions.append(view_note)
|
||||||
else:
|
else:
|
||||||
builtin_functions.extend([
|
builtin_functions.extend(
|
||||||
list_knowledge_bases, search_knowledge_bases, query_knowledge_bases,
|
[
|
||||||
grep_knowledge_files, search_knowledge_files, query_knowledge_files,
|
list_knowledge_bases,
|
||||||
view_knowledge_file,
|
search_knowledge_bases,
|
||||||
])
|
query_knowledge_bases,
|
||||||
|
grep_knowledge_files,
|
||||||
|
search_knowledge_files,
|
||||||
|
query_knowledge_files,
|
||||||
|
view_knowledge_file,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
# Chats tools - search and fetch user's chat history
|
# Chats tools - search and fetch user's chat history
|
||||||
if is_builtin_tool_enabled('chats'):
|
if is_builtin_tool_enabled('chats'):
|
||||||
|
|||||||
@@ -76,8 +76,7 @@ def validate_profile_image_url(url: str) -> str:
|
|||||||
if _SAFE_DATA_URI_RE.match(url):
|
if _SAFE_DATA_URI_RE.match(url):
|
||||||
if PROFILE_IMAGE_MAX_DATA_URI_SIZE and len(url) > PROFILE_IMAGE_MAX_DATA_URI_SIZE:
|
if PROFILE_IMAGE_MAX_DATA_URI_SIZE and len(url) > PROFILE_IMAGE_MAX_DATA_URI_SIZE:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f'Invalid profile image URL: data URI exceeds the '
|
f'Invalid profile image URL: data URI exceeds the {PROFILE_IMAGE_MAX_DATA_URI_SIZE}-byte limit.'
|
||||||
f'{PROFILE_IMAGE_MAX_DATA_URI_SIZE}-byte limit.'
|
|
||||||
)
|
)
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
|||||||
@@ -81,9 +81,10 @@
|
|||||||
|
|
||||||
// Convert Linkup params JSON string to object before sending
|
// Convert Linkup params JSON string to object before sending
|
||||||
const linkupParams =
|
const linkupParams =
|
||||||
typeof webConfig.LINKUP_SEARCH_PARAMS === 'string' && webConfig.LINKUP_SEARCH_PARAMS.trim() !== ''
|
typeof webConfig.LINKUP_SEARCH_PARAMS === 'string' &&
|
||||||
|
webConfig.LINKUP_SEARCH_PARAMS.trim() !== ''
|
||||||
? JSON.parse(webConfig.LINKUP_SEARCH_PARAMS)
|
? JSON.parse(webConfig.LINKUP_SEARCH_PARAMS)
|
||||||
: webConfig.LINKUP_SEARCH_PARAMS ?? {};
|
: (webConfig.LINKUP_SEARCH_PARAMS ?? {});
|
||||||
|
|
||||||
const res = await updateRAGConfig(localStorage.token, {
|
const res = await updateRAGConfig(localStorage.token, {
|
||||||
web: { ...webConfig, LINKUP_SEARCH_PARAMS: linkupParams }
|
web: { ...webConfig, LINKUP_SEARCH_PARAMS: linkupParams }
|
||||||
@@ -135,7 +136,7 @@
|
|||||||
webConfig.LINKUP_SEARCH_PARAMS =
|
webConfig.LINKUP_SEARCH_PARAMS =
|
||||||
typeof webConfig.LINKUP_SEARCH_PARAMS === 'object'
|
typeof webConfig.LINKUP_SEARCH_PARAMS === 'object'
|
||||||
? JSON.stringify(webConfig.LINKUP_SEARCH_PARAMS ?? {}, null, 2)
|
? JSON.stringify(webConfig.LINKUP_SEARCH_PARAMS ?? {}, null, 2)
|
||||||
: webConfig.LINKUP_SEARCH_PARAMS ?? '';
|
: (webConfig.LINKUP_SEARCH_PARAMS ?? '');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -261,7 +261,6 @@
|
|||||||
<td class=" px-3 py-1">
|
<td class=" px-3 py-1">
|
||||||
{dayjs(user.last_active_at * 1000).fromNow()}
|
{dayjs(user.last_active_at * 1000).fromNow()}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -438,24 +438,24 @@
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
fill="none"
|
fill="none"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
stroke-width="1.5"
|
stroke-width="1.5"
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
class="w-4 h-4"
|
class="w-4 h-4"
|
||||||
>
|
>
|
||||||
<path
|
<path
|
||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"
|
d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"
|
||||||
/>
|
/>
|
||||||
<path
|
<path
|
||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"
|
||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -555,5 +555,9 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if selectedUser}
|
{#if selectedUser}
|
||||||
<UserPreviewModal bind:show={showUserPreviewModal} userId={selectedUser.id} userName={selectedUser.name} />
|
<UserPreviewModal
|
||||||
|
bind:show={showUserPreviewModal}
|
||||||
|
userId={selectedUser.id}
|
||||||
|
userName={selectedUser.name}
|
||||||
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -24,13 +24,14 @@
|
|||||||
? $models.find((m) => m.id === model_id)?.name || model_id
|
? $models.find((m) => m.id === model_id)?.name || model_id
|
||||||
: $i18n.t('Select model');
|
: $i18n.t('Select model');
|
||||||
|
|
||||||
$: filteredModels = (modelSearch
|
$: filteredModels = (
|
||||||
? $models.filter(
|
modelSearch
|
||||||
(m) =>
|
? $models.filter(
|
||||||
m.name.toLowerCase().includes(modelSearch.toLowerCase()) ||
|
(m) =>
|
||||||
m.id.toLowerCase().includes(modelSearch.toLowerCase())
|
m.name.toLowerCase().includes(modelSearch.toLowerCase()) ||
|
||||||
)
|
m.id.toLowerCase().includes(modelSearch.toLowerCase())
|
||||||
: $models
|
)
|
||||||
|
: $models
|
||||||
).filter((m) => !(m?.info?.meta?.hidden ?? false));
|
).filter((m) => !(m?.info?.meta?.hidden ?? false));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -184,7 +184,6 @@
|
|||||||
let files = [];
|
let files = [];
|
||||||
let params = {};
|
let params = {};
|
||||||
|
|
||||||
|
|
||||||
$: if (chatIdProp) {
|
$: if (chatIdProp) {
|
||||||
navigateHandler();
|
navigateHandler();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -230,7 +230,8 @@
|
|||||||
{id}
|
{id}
|
||||||
content={model?.info?.meta?.capabilities?.citations == false
|
content={model?.info?.meta?.capabilities?.citations == false
|
||||||
? replaceOutsideCode(content, (segment) =>
|
? replaceOutsideCode(content, (segment) =>
|
||||||
segment.replace(/\s*(\[(?:\d+(?:#[^,\]\s]+)?(?:,\s*\d+(?:#[^,\]\s]+)?)*)\])+/g, ''))
|
segment.replace(/\s*(\[(?:\d+(?:#[^,\]\s]+)?(?:,\s*\d+(?:#[^,\]\s]+)?)*)\])+/g, '')
|
||||||
|
)
|
||||||
: content}
|
: content}
|
||||||
{model}
|
{model}
|
||||||
{save}
|
{save}
|
||||||
|
|||||||
@@ -169,7 +169,13 @@
|
|||||||
on:resize={positionContent}
|
on:resize={positionContent}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<span use:trigger style="display: contents; cursor: pointer;" role="button" aria-haspopup="true" aria-expanded={show}>
|
<span
|
||||||
|
use:trigger
|
||||||
|
style="display: contents; cursor: pointer;"
|
||||||
|
role="button"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded={show}
|
||||||
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|||||||
@@ -368,7 +368,9 @@
|
|||||||
|
|
||||||
// For the active chat, prefer the live dropdown selection.
|
// For the active chat, prefer the live dropdown selection.
|
||||||
if (id === $chatId) {
|
if (id === $chatId) {
|
||||||
try { model = JSON.parse(sessionStorage.selectedModels || '[]').find((m) => m) ?? ''; } catch {}
|
try {
|
||||||
|
model = JSON.parse(sessionStorage.selectedModels || '[]').find((m) => m) ?? '';
|
||||||
|
} catch {}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!model && history?.messages && history?.currentId) {
|
if (!model && history?.messages && history?.currentId) {
|
||||||
|
|||||||
@@ -1117,7 +1117,10 @@
|
|||||||
|
|
||||||
onDestroy(() => {
|
onDestroy(() => {
|
||||||
clearTimeout(searchDebounceTimer);
|
clearTimeout(searchDebounceTimer);
|
||||||
if (pendingPollTimer) { clearInterval(pendingPollTimer); pendingPollTimer = null; }
|
if (pendingPollTimer) {
|
||||||
|
clearInterval(pendingPollTimer);
|
||||||
|
pendingPollTimer = null;
|
||||||
|
}
|
||||||
mediaQuery?.removeEventListener('change', handleMediaQuery);
|
mediaQuery?.removeEventListener('change', handleMediaQuery);
|
||||||
const dropZone = document.querySelector('body');
|
const dropZone = document.querySelector('body');
|
||||||
dropZone?.removeEventListener('dragover', onDragOver);
|
dropZone?.removeEventListener('dragover', onDragOver);
|
||||||
@@ -1125,7 +1128,6 @@
|
|||||||
dropZone?.removeEventListener('dragleave', onDragLeave);
|
dropZone?.removeEventListener('dragleave', onDragLeave);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const decodeString = (str: string) => {
|
const decodeString = (str: string) => {
|
||||||
try {
|
try {
|
||||||
return decodeURIComponent(str);
|
return decodeURIComponent(str);
|
||||||
|
|||||||
@@ -64,10 +64,7 @@
|
|||||||
: 'hover:bg-gray-100 dark:hover:bg-gray-850'}"
|
: 'hover:bg-gray-100 dark:hover:bg-gray-850'}"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
on:dragstart={(e) => {
|
on:dragstart={(e) => {
|
||||||
e.dataTransfer?.setData(
|
e.dataTransfer?.setData('application/x-kb-dir-move', JSON.stringify({ dirId: directory.id }));
|
||||||
'application/x-kb-dir-move',
|
|
||||||
JSON.stringify({ dirId: directory.id })
|
|
||||||
);
|
|
||||||
}}
|
}}
|
||||||
on:dblclick={() => {
|
on:dblclick={() => {
|
||||||
if (writeAccess) startRename();
|
if (writeAccess) startRename();
|
||||||
|
|||||||
@@ -83,10 +83,7 @@
|
|||||||
on:dragstart={(e) => {
|
on:dragstart={(e) => {
|
||||||
const fileId = file?.id ?? file?.tempId;
|
const fileId = file?.id ?? file?.tempId;
|
||||||
if (fileId) {
|
if (fileId) {
|
||||||
e.dataTransfer?.setData(
|
e.dataTransfer?.setData('application/x-kb-file-move', JSON.stringify({ fileId }));
|
||||||
'application/x-kb-file-move',
|
|
||||||
JSON.stringify({ fileId })
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -61,9 +61,7 @@
|
|||||||
{breadcrumbs.length === 0
|
{breadcrumbs.length === 0
|
||||||
? 'text-gray-700 dark:text-gray-300'
|
? 'text-gray-700 dark:text-gray-300'
|
||||||
: 'text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-400'}
|
: 'text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-400'}
|
||||||
{dragOverCrumb === -1
|
{dragOverCrumb === -1 ? 'bg-gray-100 dark:bg-gray-800 rounded-lg' : ''}"
|
||||||
? 'bg-gray-100 dark:bg-gray-800 rounded-lg'
|
|
||||||
: ''}"
|
|
||||||
on:click={() => onNavigate(null)}
|
on:click={() => onNavigate(null)}
|
||||||
on:dragover={(e) => handleDragOver(e, -1)}
|
on:dragover={(e) => handleDragOver(e, -1)}
|
||||||
on:dragleave={() => handleDragLeave(-1)}
|
on:dragleave={() => handleDragLeave(-1)}
|
||||||
@@ -79,9 +77,7 @@
|
|||||||
{i === breadcrumbs.length - 1
|
{i === breadcrumbs.length - 1
|
||||||
? 'text-gray-700 dark:text-gray-300'
|
? 'text-gray-700 dark:text-gray-300'
|
||||||
: 'text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-400'}
|
: 'text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-400'}
|
||||||
{dragOverCrumb === i
|
{dragOverCrumb === i ? 'bg-gray-100 dark:bg-gray-800 rounded-lg' : ''}"
|
||||||
? 'bg-gray-100 dark:bg-gray-800 rounded-lg'
|
|
||||||
: ''}"
|
|
||||||
on:click={() => onNavigate(crumb.id)}
|
on:click={() => onNavigate(crumb.id)}
|
||||||
on:dragover={(e) => handleDragOver(e, i)}
|
on:dragover={(e) => handleDragOver(e, i)}
|
||||||
on:dragleave={() => handleDragLeave(i)}
|
on:dragleave={() => handleDragLeave(i)}
|
||||||
|
|||||||
@@ -15,9 +15,7 @@
|
|||||||
$: filteredSkillKeys = Object.keys(_skills).filter((id) => {
|
$: filteredSkillKeys = Object.keys(_skills).filter((id) => {
|
||||||
if (!searchQuery.trim()) return true;
|
if (!searchQuery.trim()) return true;
|
||||||
const q = searchQuery.toLowerCase();
|
const q = searchQuery.toLowerCase();
|
||||||
return (
|
return _skills[id].name?.toLowerCase().includes(q) || _skills[id].id?.toLowerCase().includes(q);
|
||||||
_skills[id].name?.toLowerCase().includes(q) || _skills[id].id?.toLowerCase().includes(q)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
|
|||||||
@@ -9,12 +9,25 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ نماذج }}",
|
"{{ models }}": "{{ نماذج }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_zero": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_two": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_few": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_zero": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_two": "",
|
||||||
|
"{{count}} of {{total}} accessible_few": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_zero": "",
|
"{{count}} selected_zero": "",
|
||||||
@@ -197,6 +210,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -243,6 +257,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "المستخدمون المتاحون",
|
"available users": "المستخدمون المتاحون",
|
||||||
"available!": "متاح",
|
"available!": "متاح",
|
||||||
@@ -402,13 +417,21 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "الأوامر",
|
"Command": "الأوامر",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_zero": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_two": "",
|
||||||
|
"Computing checksums ({{count}} files)_few": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "الطلبات المتزامنة",
|
"Concurrent Requests": "الطلبات المتزامنة",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -541,12 +564,14 @@
|
|||||||
"Delete a model": "حذف الموديل",
|
"Delete a model": "حذف الموديل",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "حذف جميع الدردشات",
|
"Delete All Chats": "حذف جميع الدردشات",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "حذف المحادثه.",
|
"Delete Chat": "حذف المحادثه.",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -583,6 +608,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -691,6 +721,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "نموذج التضمين",
|
"Embedding Model": "نموذج التضمين",
|
||||||
"Embedding Model Engine": "تضمين محرك النموذج",
|
"Embedding Model Engine": "تضمين محرك النموذج",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -769,6 +800,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "أدخل كود اللغة",
|
"Enter language codes": "أدخل كود اللغة",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -905,6 +937,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -958,14 +991,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "وضع الملف",
|
"File Mode": "وضع الملف",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "لم يتم العثور على الملف.",
|
"File not found.": "لم يتم العثور على الملف.",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1181,13 +1216,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1231,6 +1266,7 @@
|
|||||||
"Light": "فاتح",
|
"Light": "فاتح",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1381,6 +1417,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "دردشة جديدة",
|
"New Chat": "دردشة جديدة",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1426,11 +1464,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1451,6 +1491,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1490,6 +1531,7 @@
|
|||||||
"On": "تشغيل",
|
"On": "تشغيل",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1561,6 +1603,7 @@
|
|||||||
"PDF document (.pdf)": "PDF ملف (.pdf)",
|
"PDF document (.pdf)": "PDF ملف (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
|
"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "قيد الانتظار",
|
"pending": "قيد الانتظار",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1622,6 +1665,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "أخر 30 يوم",
|
"Previous 30 days": "أخر 30 يوم",
|
||||||
"Previous 7 days": "أخر 7 أيام",
|
"Previous 7 days": "أخر 7 أيام",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1699,6 +1743,12 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "حذف الموديل",
|
"Remove Model": "حذف الموديل",
|
||||||
|
"Removing {{count}} stale files..._zero": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._two": "",
|
||||||
|
"Removing {{count}} stale files..._few": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "إعادة تسمية",
|
"Rename": "إعادة تسمية",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1717,6 +1767,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "إعادة تعيين الصورة",
|
"Reset Image": "إعادة تعيين الصورة",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1788,6 +1839,7 @@
|
|||||||
"Search Prompts": "أبحث حث",
|
"Search Prompts": "أبحث حث",
|
||||||
"Search Result Count": "عدد نتائج البحث",
|
"Search Result Count": "عدد نتائج البحث",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1989,6 +2041,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2061,7 +2115,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2069,7 +2122,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "شرح شامل",
|
"Thorough explanation": "شرح شامل",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2105,6 +2158,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2183,7 +2237,7 @@
|
|||||||
"Upload Progress": "جاري التحميل",
|
"Upload Progress": "جاري التحميل",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2203,6 +2257,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,25 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "النماذج: {{ models }}",
|
"{{ models }}": "النماذج: {{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_zero": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_two": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_few": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} سطر/أسطر مخفية",
|
"{{COUNT}} hidden lines": "{{COUNT}} سطر/أسطر مخفية",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_zero": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_two": "",
|
||||||
|
"{{count}} of {{total}} accessible_few": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} رد/ردود",
|
"{{COUNT}} Replies": "{{COUNT}} رد/ردود",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_zero": "",
|
"{{count}} selected_zero": "",
|
||||||
@@ -197,6 +210,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "هل أنت متأكد من رغبتك في حذف هذه القناة؟",
|
"Are you sure you want to delete this channel?": "هل أنت متأكد من رغبتك في حذف هذه القناة؟",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "هل أنت متأكد من رغبتك في حذف هذه الرسالة؟",
|
"Are you sure you want to delete this message?": "هل أنت متأكد من رغبتك في حذف هذه الرسالة؟",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -243,6 +257,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "القائمة المتاحة",
|
"Available list": "القائمة المتاحة",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "المستخدمون المتاحون",
|
"available users": "المستخدمون المتاحون",
|
||||||
"available!": "متاح!",
|
"available!": "متاح!",
|
||||||
@@ -402,13 +417,21 @@
|
|||||||
"ComfyUI Workflow": "سير عمل ComfyUI",
|
"ComfyUI Workflow": "سير عمل ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "عقد سير عمل ComfyUI",
|
"ComfyUI Workflow Nodes": "عقد سير عمل ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "الأمر",
|
"Command": "الأمر",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "الإكمالات",
|
"Completions": "الإكمالات",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_zero": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_two": "",
|
||||||
|
"Computing checksums ({{count}} files)_few": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "الطلبات المتزامنة",
|
"Concurrent Requests": "الطلبات المتزامنة",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -541,12 +564,14 @@
|
|||||||
"Delete a model": "حذف الموديل",
|
"Delete a model": "حذف الموديل",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "حذف جميع الدردشات",
|
"Delete All Chats": "حذف جميع الدردشات",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "حذف المحادثه.",
|
"Delete Chat": "حذف المحادثه.",
|
||||||
"Delete chat?": "هل تريد حذف المحادثة؟",
|
"Delete chat?": "هل تريد حذف المحادثة؟",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "هل تريد حذف المجلد؟",
|
"Delete folder?": "هل تريد حذف المجلد؟",
|
||||||
@@ -583,6 +608,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "تتيح الاتصالات المباشرة للمستخدمين الاتصال بنقاط نهاية API متوافقة مع OpenAI الخاصة بهم.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "تتيح الاتصالات المباشرة للمستخدمين الاتصال بنقاط نهاية API متوافقة مع OpenAI الخاصة بهم.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -691,6 +721,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "نموذج التضمين",
|
"Embedding Model": "نموذج التضمين",
|
||||||
"Embedding Model Engine": "تضمين محرك النموذج",
|
"Embedding Model Engine": "تضمين محرك النموذج",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -769,6 +800,7 @@
|
|||||||
"Enter Kagi Search API Key": "أدخل مفتاح API لـ Kagi Search",
|
"Enter Kagi Search API Key": "أدخل مفتاح API لـ Kagi Search",
|
||||||
"Enter Key Behavior": "أدخل سلوك المفتاح",
|
"Enter Key Behavior": "أدخل سلوك المفتاح",
|
||||||
"Enter language codes": "أدخل كود اللغة",
|
"Enter language codes": "أدخل كود اللغة",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -905,6 +937,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -958,14 +991,16 @@
|
|||||||
"File content updated successfully.": "تم تحديث محتوى الملف بنجاح.",
|
"File content updated successfully.": "تم تحديث محتوى الملف بنجاح.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "وضع الملف",
|
"File Mode": "وضع الملف",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "لم يتم العثور على الملف.",
|
"File not found.": "لم يتم العثور على الملف.",
|
||||||
"File removed successfully.": "تم حذف الملف بنجاح.",
|
"File removed successfully.": "تم حذف الملف بنجاح.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "يجب ألا يتجاوز حجم الملف {{maxSize}} ميغابايت.",
|
"File size should not exceed {{maxSize}} MB.": "يجب ألا يتجاوز حجم الملف {{maxSize}} ميغابايت.",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "تم رفع الملف بنجاح",
|
"File uploaded successfully": "تم رفع الملف بنجاح",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "الملفات",
|
"Files": "الملفات",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1181,13 +1216,13 @@
|
|||||||
"Knowledge": "المعرفة",
|
"Knowledge": "المعرفة",
|
||||||
"Knowledge Access": "الوصول إلى المعرفة",
|
"Knowledge Access": "الوصول إلى المعرفة",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "تم إنشاء المعرفة بنجاح.",
|
"Knowledge created successfully.": "تم إنشاء المعرفة بنجاح.",
|
||||||
"Knowledge deleted successfully.": "تم حذف المعرفة بنجاح.",
|
"Knowledge deleted successfully.": "تم حذف المعرفة بنجاح.",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "تم إعادة تعيين المعرفة بنجاح.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "تم تحديث المعرفة بنجاح",
|
"Knowledge updated successfully": "تم تحديث المعرفة بنجاح",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (المتصفح)",
|
"Kokoro.js (Browser)": "Kokoro.js (المتصفح)",
|
||||||
@@ -1231,6 +1266,7 @@
|
|||||||
"Light": "فاتح",
|
"Light": "فاتح",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "جارٍ الاستماع...",
|
"Listening...": "جارٍ الاستماع...",
|
||||||
@@ -1381,6 +1417,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "دردشة جديدة",
|
"New Chat": "دردشة جديدة",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "مجلد جديد",
|
"New Folder": "مجلد جديد",
|
||||||
@@ -1426,11 +1464,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "لم يتم العثور على محتوى HTML أو CSS أو JavaScript.",
|
"No HTML, CSS, or JavaScript content found.": "لم يتم العثور على محتوى HTML أو CSS أو JavaScript.",
|
||||||
"No inference engine with management support found": "لم يتم العثور على محرك استدلال يدعم الإدارة",
|
"No inference engine with management support found": "لم يتم العثور على محرك استدلال يدعم الإدارة",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "لم يتم العثور على معرفة",
|
"No knowledge found": "لم يتم العثور على معرفة",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "لا توجد ذاكرة لمسحها",
|
"No memories to clear": "لا توجد ذاكرة لمسحها",
|
||||||
"No model IDs": "لا توجد معرّفات نماذج",
|
"No model IDs": "لا توجد معرّفات نماذج",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "لم يتم العثور على نماذج",
|
"No models found": "لم يتم العثور على نماذج",
|
||||||
"No models selected": "لم يتم اختيار نماذج",
|
"No models selected": "لم يتم اختيار نماذج",
|
||||||
@@ -1451,6 +1491,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "لم يتم العثور على مستخدمين.",
|
"No users were found.": "لم يتم العثور على مستخدمين.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1490,6 +1531,7 @@
|
|||||||
"On": "تشغيل",
|
"On": "تشغيل",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1561,6 +1603,7 @@
|
|||||||
"PDF document (.pdf)": "PDF ملف (.pdf)",
|
"PDF document (.pdf)": "PDF ملف (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
|
"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "قيد الانتظار",
|
"pending": "قيد الانتظار",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1622,6 +1665,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "يُستخدم معرف البادئة لتفادي التعارض مع الاتصالات الأخرى من خلال إضافة بادئة إلى معرفات النماذج – اتركه فارغًا لتعطيله",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "يُستخدم معرف البادئة لتفادي التعارض مع الاتصالات الأخرى من خلال إضافة بادئة إلى معرفات النماذج – اتركه فارغًا لتعطيله",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "أخر 30 يوم",
|
"Previous 30 days": "أخر 30 يوم",
|
||||||
"Previous 7 days": "أخر 7 أيام",
|
"Previous 7 days": "أخر 7 أيام",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1699,6 +1743,12 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "حذف الموديل",
|
"Remove Model": "حذف الموديل",
|
||||||
|
"Removing {{count}} stale files..._zero": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._two": "",
|
||||||
|
"Removing {{count}} stale files..._few": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "إعادة تسمية",
|
"Rename": "إعادة تسمية",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1717,6 +1767,7 @@
|
|||||||
"Reset": "إعادة تعيين",
|
"Reset": "إعادة تعيين",
|
||||||
"Reset All Models": "إعادة تعيين جميع النماذج",
|
"Reset All Models": "إعادة تعيين جميع النماذج",
|
||||||
"Reset Image": "إعادة تعيين الصورة",
|
"Reset Image": "إعادة تعيين الصورة",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "إعادة تعيين مجلد التحميل",
|
"Reset Upload Directory": "إعادة تعيين مجلد التحميل",
|
||||||
"Reset Vector Storage/Knowledge": "إعادة تعيين تخزين المتجهات/المعرفة",
|
"Reset Vector Storage/Knowledge": "إعادة تعيين تخزين المتجهات/المعرفة",
|
||||||
"Reset view": "إعادة تعيين العرض",
|
"Reset view": "إعادة تعيين العرض",
|
||||||
@@ -1788,6 +1839,7 @@
|
|||||||
"Search Prompts": "أبحث حث",
|
"Search Prompts": "أبحث حث",
|
||||||
"Search Result Count": "عدد نتائج البحث",
|
"Search Result Count": "عدد نتائج البحث",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "البحث في الإنترنت",
|
"Search the internet": "البحث في الإنترنت",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "أدوات البحث",
|
"Search Tools": "أدوات البحث",
|
||||||
@@ -1989,6 +2041,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "مزامنة المجلد",
|
"Sync directory": "مزامنة المجلد",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2061,7 +2115,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "هذا الخيار يحدد عدد الرموز التي يتم الاحتفاظ بها عند تحديث السياق. مثلاً، إذا تم ضبطه على 2، سيتم الاحتفاظ بآخر رمزين من السياق. الحفاظ على السياق يساعد في استمرارية المحادثة، لكنه قد يحد من التفاعل مع مواضيع جديدة.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "هذا الخيار يحدد عدد الرموز التي يتم الاحتفاظ بها عند تحديث السياق. مثلاً، إذا تم ضبطه على 2، سيتم الاحتفاظ بآخر رمزين من السياق. الحفاظ على السياق يساعد في استمرارية المحادثة، لكنه قد يحد من التفاعل مع مواضيع جديدة.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "يحدد هذا الخيار الحد الأقصى لعدد الرموز التي يمكن للنموذج توليدها في الرد. زيادته تتيح للنموذج تقديم إجابات أطول، لكنها قد تزيد من احتمالية توليد محتوى غير مفيد أو غير ذي صلة.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "يحدد هذا الخيار الحد الأقصى لعدد الرموز التي يمكن للنموذج توليدها في الرد. زيادته تتيح للنموذج تقديم إجابات أطول، لكنها قد تزيد من احتمالية توليد محتوى غير مفيد أو غير ذي صلة.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "سيؤدي هذا الخيار إلى حذف جميع الملفات الحالية في المجموعة واستبدالها بالملفات التي تم تحميلها حديثًا.",
|
|
||||||
"This response was generated by \"{{model}}\"": "تم توليد هذا الرد بواسطة \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "تم توليد هذا الرد بواسطة \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "هذا سيقوم بالحذف",
|
"This will delete": "هذا سيقوم بالحذف",
|
||||||
@@ -2069,7 +2122,7 @@
|
|||||||
"This will delete all models including custom models": "هذا سيحذف جميع النماذج بما في ذلك النماذج المخصصة",
|
"This will delete all models including custom models": "هذا سيحذف جميع النماذج بما في ذلك النماذج المخصصة",
|
||||||
"This will delete all models including custom models and cannot be undone.": "هذا سيحذف جميع النماذج بما في ذلك المخصصة ولا يمكن التراجع عن هذا الإجراء.",
|
"This will delete all models including custom models and cannot be undone.": "هذا سيحذف جميع النماذج بما في ذلك المخصصة ولا يمكن التراجع عن هذا الإجراء.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "هذا سيؤدي إلى إعادة تعيين قاعدة المعرفة ومزامنة جميع الملفات. هل ترغب في المتابعة؟",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "شرح شامل",
|
"Thorough explanation": "شرح شامل",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "فكّر لمدة {{DURATION}}",
|
"Thought for {{DURATION}}": "فكّر لمدة {{DURATION}}",
|
||||||
@@ -2105,6 +2158,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2183,7 +2237,7 @@
|
|||||||
"Upload Progress": "جاري التحميل",
|
"Upload Progress": "جاري التحميل",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "الرابط",
|
"URL": "الرابط",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2203,6 +2257,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "تم استرجاع موقع المستخدم بنجاح.",
|
"User location successfully retrieved.": "تم استرجاع موقع المستخدم بنجاح.",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[Bu gün saat] h:mm A",
|
"[Today at] h:mm A": "[Bu gün saat] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Dünən saat] h:mm A",
|
"[Yesterday at] h:mm A": "[Dünən saat] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} Mövcud Alət",
|
"{{COUNT}} Available Tools": "{{COUNT}} Mövcud Alət",
|
||||||
"{{COUNT}} characters": "{{COUNT}} simvol",
|
"{{COUNT}} characters": "{{COUNT}} simvol",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} çıxarılmış sətir",
|
"{{COUNT}} extracted lines": "{{COUNT}} çıxarılmış sətir",
|
||||||
"{{COUNT}} files": "{{COUNT}} fayl",
|
"{{COUNT}} files": "{{COUNT}} fayl",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} gizli sətir",
|
"{{COUNT}} hidden lines": "{{COUNT}} gizli sətir",
|
||||||
"{{COUNT}} members": "{{COUNT}} üzv",
|
"{{COUNT}} members": "{{COUNT}} üzv",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} Cavab",
|
"{{COUNT}} Replies": "{{COUNT}} Cavab",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} Sətir",
|
"{{COUNT}} Rows": "{{COUNT}} Sətir",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Bütün çatları silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Bütün çatları silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
|
||||||
"Are you sure you want to delete this channel?": "Bu kanalı silmək istədiyinizə əminsiniz?",
|
"Are you sure you want to delete this channel?": "Bu kanalı silmək istədiyinizə əminsiniz?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Bu mesajı silmək istədiyinizə əminsiniz?",
|
"Are you sure you want to delete this message?": "Bu mesajı silmək istədiyinizə əminsiniz?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Bu versiyanı silmək istədiyinizə əminsiniz? Alt versiyalar bu versiyanın valideyninə yenidən bağlanacaq.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Bu versiyanı silmək istədiyinizə əminsiniz? Alt versiyalar bu versiyanın valideyninə yenidən bağlanacaq.",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Mövcud siyahı",
|
"Available list": "Mövcud siyahı",
|
||||||
"Available models": "Mövcud modellər",
|
"Available models": "Mövcud modellər",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Mövcud alətlər",
|
"Available Tools": "Mövcud alətlər",
|
||||||
"available users": "mövcud istifadəçilər",
|
"available users": "mövcud istifadəçilər",
|
||||||
"available!": "mövcuddur!",
|
"available!": "mövcuddur!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI iş axını (Workflow)",
|
"ComfyUI Workflow": "ComfyUI iş axını (Workflow)",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI iş axını düyünləri (Nodes)",
|
"ComfyUI Workflow Nodes": "ComfyUI iş axını düyünləri (Nodes)",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Vergüllə ayrılmış düyün ID-ləri (məsələn: 1 və ya 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Vergüllə ayrılmış düyün ID-ləri (məsələn: 1 və ya 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "əmr",
|
"command": "əmr",
|
||||||
"Command": "Əmr",
|
"Command": "Əmr",
|
||||||
"Comment": "Şərh",
|
"Comment": "Şərh",
|
||||||
"Commit Message": "Təsdiqləmə mesajı (Commit Message)",
|
"Commit Message": "Təsdiqləmə mesajı (Commit Message)",
|
||||||
"Community Reviews": "İcma rəyləri",
|
"Community Reviews": "İcma rəyləri",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Tamamlamalar",
|
"Completions": "Tamamlamalar",
|
||||||
"Compress Images in Channels": "Kanallarda şəkilləri sıx",
|
"Compress Images in Channels": "Kanallarda şəkilləri sıx",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Eyni vaxtda olan sorğular",
|
"Concurrent Requests": "Eyni vaxtda olan sorğular",
|
||||||
"Config": "Konfiqurasiya",
|
"Config": "Konfiqurasiya",
|
||||||
"Config imported successfully": "Konfiqurasiya uğurla idxal edildi",
|
"Config imported successfully": "Konfiqurasiya uğurla idxal edildi",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Modeli sil",
|
"Delete a model": "Modeli sil",
|
||||||
"Delete All": "Hamısını sil",
|
"Delete All": "Hamısını sil",
|
||||||
"Delete All Chats": "Bütün çatları sil",
|
"Delete All Chats": "Bütün çatları sil",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Bu qovluğun daxilindəki bütün məzmunu sil",
|
"Delete all contents inside this folder": "Bu qovluğun daxilindəki bütün məzmunu sil",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Çatı sil",
|
"Delete Chat": "Çatı sil",
|
||||||
"Delete chat?": "Çat silinsin?",
|
"Delete chat?": "Çat silinsin?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "Faylı sil",
|
"Delete File": "Faylı sil",
|
||||||
"Delete folder?": "Qovluq silinsin?",
|
"Delete folder?": "Qovluq silinsin?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Birbaşa bağlantılar istifadəçilərə öz OpenAI uyğun API son nöqtələrinə qoşulmağa imkan verir.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Birbaşa bağlantılar istifadəçilərə öz OpenAI uyğun API son nöqtələrinə qoşulmağa imkan verir.",
|
||||||
"Direct Message": "Birbaşa mesaj",
|
"Direct Message": "Birbaşa mesaj",
|
||||||
"Direct Tool Servers": "Birbaşa alət serverləri",
|
"Direct Tool Servers": "Birbaşa alət serverləri",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Kataloq seçimi ləğv edildi",
|
"Directory selection was cancelled": "Kataloq seçimi ləğv edildi",
|
||||||
"Disable All": "Hamısını söndür",
|
"Disable All": "Hamısını söndür",
|
||||||
"Disable Code Interpreter": "Kod tərcüməçisini (Interpreter) söndür",
|
"Disable Code Interpreter": "Kod tərcüməçisini (Interpreter) söndür",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "Eyni vaxtda olan yerləşdirmə sorğuları",
|
"Embedding Concurrent Requests": "Eyni vaxtda olan yerləşdirmə sorğuları",
|
||||||
"Embedding Model": "Yerləşdirmə modeli",
|
"Embedding Model": "Yerləşdirmə modeli",
|
||||||
"Embedding Model Engine": "Yerləşdirmə modeli mühərriki",
|
"Embedding Model Engine": "Yerləşdirmə modeli mühərriki",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "Boş mesaj",
|
"Empty message": "Boş mesaj",
|
||||||
"Enable All": "Hamısını aktiv et",
|
"Enable All": "Hamısını aktiv et",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Kagi Search API açarını daxil edin",
|
"Enter Kagi Search API Key": "Kagi Search API açarını daxil edin",
|
||||||
"Enter Key Behavior": "Açar davranışını (Key Behavior) daxil edin",
|
"Enter Key Behavior": "Açar davranışını (Key Behavior) daxil edin",
|
||||||
"Enter language codes": "Dil kodlarını daxil edin",
|
"Enter language codes": "Dil kodlarını daxil edin",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "MinerU API açarını daxil edin",
|
"Enter MinerU API Key": "MinerU API açarını daxil edin",
|
||||||
"Enter Mistral API Base URL": "Mistral API baza URL-ini daxil edin",
|
"Enter Mistral API Base URL": "Mistral API baza URL-ini daxil edin",
|
||||||
"Enter Mistral API Key": "Mistral API açarını daxil edin",
|
"Enter Mistral API Key": "Mistral API açarını daxil edin",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "Çat arxivləşdirilmədi.",
|
"Failed to archive chat.": "Çat arxivləşdirilmədi.",
|
||||||
"Failed to attach file": "Fayl əlavə edilmədi",
|
"Failed to attach file": "Fayl əlavə edilmədi",
|
||||||
"Failed to clear status": "Status təmizlənmədi",
|
"Failed to clear status": "Status təmizlənmədi",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI alət serverinə qoşulmaq mümkün olmadı",
|
"Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI alət serverinə qoşulmaq mümkün olmadı",
|
||||||
"Failed to connect to {{URL}} terminal server": "{{URL}} terminal serverinə qoşulmaq mümkün olmadı",
|
"Failed to connect to {{URL}} terminal server": "{{URL}} terminal serverinə qoşulmaq mümkün olmadı",
|
||||||
"Failed to copy link": "Link kopyalanmadı",
|
"Failed to copy link": "Link kopyalanmadı",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Fayl məzmunu uğurla yeniləndi.",
|
"File content updated successfully.": "Fayl məzmunu uğurla yeniləndi.",
|
||||||
"File Context": "Fayl konteksti",
|
"File Context": "Fayl konteksti",
|
||||||
"File deleted successfully.": "Fayl uğurla silindi.",
|
"File deleted successfully.": "Fayl uğurla silindi.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Fayl rejimi",
|
"File Mode": "Fayl rejimi",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Fayl adı",
|
"File name": "Fayl adı",
|
||||||
"File not found.": "Fayl tapılmadı.",
|
"File not found.": "Fayl tapılmadı.",
|
||||||
"File removed successfully.": "Fayl uğurla çıxarıldı.",
|
"File removed successfully.": "Fayl uğurla çıxarıldı.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Fayl ölçüsü {{maxSize}} MB-ı keçməməlidir.",
|
"File size should not exceed {{maxSize}} MB.": "Fayl ölçüsü {{maxSize}} MB-ı keçməməlidir.",
|
||||||
"File Upload": "Fayl yükləmə",
|
"File Upload": "Fayl yükləmə",
|
||||||
"File uploaded successfully": "Fayl uğurla yükləndi",
|
"File uploaded successfully": "Fayl uğurla yükləndi",
|
||||||
"File uploaded!": "Fayl yükləndi!",
|
|
||||||
"Filename": "Fayl adı",
|
"Filename": "Fayl adı",
|
||||||
"Files": "Fayllar",
|
"Files": "Fayllar",
|
||||||
"Filter": "Süzgəc (Filter)",
|
"Filter": "Süzgəc (Filter)",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Bilik",
|
"Knowledge": "Bilik",
|
||||||
"Knowledge Access": "Bilik bazasına giriş",
|
"Knowledge Access": "Bilik bazasına giriş",
|
||||||
"Knowledge Base": "Bilik bazası",
|
"Knowledge Base": "Bilik bazası",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Bilik uğurla yaradıldı.",
|
"Knowledge created successfully.": "Bilik uğurla yaradıldı.",
|
||||||
"Knowledge deleted successfully.": "Bilik uğurla silindi.",
|
"Knowledge deleted successfully.": "Bilik uğurla silindi.",
|
||||||
"Knowledge Description": "Bilik təsviri",
|
"Knowledge Description": "Bilik təsviri",
|
||||||
"Knowledge exported successfully": "Bilik uğurla ixrac edildi",
|
"Knowledge exported successfully": "Bilik uğurla ixrac edildi",
|
||||||
"Knowledge Name": "Bilik adı",
|
"Knowledge Name": "Bilik adı",
|
||||||
"Knowledge Public Sharing": "Biliyin ictimai paylaşımı",
|
"Knowledge Public Sharing": "Biliyin ictimai paylaşımı",
|
||||||
"Knowledge reset successfully.": "Bilik uğurla sıfırlandı.",
|
|
||||||
"Knowledge Sharing": "Biliyin paylaşılması",
|
"Knowledge Sharing": "Biliyin paylaşılması",
|
||||||
"Knowledge updated successfully": "Bilik uğurla yeniləndi",
|
"Knowledge updated successfully": "Bilik uğurla yeniləndi",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Brauzer)",
|
"Kokoro.js (Browser)": "Kokoro.js (Brauzer)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Açıq (Light)",
|
"Light": "Açıq (Light)",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Eyni vaxtda aparılan axtarış sorğularını məhdudlaşdırın. 0 = limitsiz (standart). Ardıcıl icra üçün 1 təyin edin.",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Eyni vaxtda aparılan axtarış sorğularını məhdudlaşdırın. 0 = limitsiz (standart). Ardıcıl icra üçün 1 təyin edin.",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Eyni vaxtda olan yerləşdirmə (embedding) sorğularının sayını məhdudlaşdırır. Limitsiz üçün 0 təyin edin.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Eyni vaxtda olan yerləşdirmə (embedding) sorğularının sayını məhdudlaşdırır. Limitsiz üçün 0 təyin edin.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Siyahı",
|
"List": "Siyahı",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Dinlənilir...",
|
"Listening...": "Dinlənilir...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Yeni Çat",
|
"New Chat": "Yeni Çat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "Yeni Fayl",
|
"New File": "Yeni Fayl",
|
||||||
"New Folder": "Yeni Qovluq",
|
"New Folder": "Yeni Qovluq",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "HTML, CSS və ya JavaScript məzmunu tapılmadı.",
|
"No HTML, CSS, or JavaScript content found.": "HTML, CSS və ya JavaScript məzmunu tapılmadı.",
|
||||||
"No inference engine with management support found": "İdarəetmə dəstəyi olan çıxarış mühərriki (inference engine) tapılmadı",
|
"No inference engine with management support found": "İdarəetmə dəstəyi olan çıxarış mühərriki (inference engine) tapılmadı",
|
||||||
"No kernel": "Nüvə (kernel) yoxdur",
|
"No kernel": "Nüvə (kernel) yoxdur",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "Bilik bazası tapılmadı.",
|
"No knowledge bases found.": "Bilik bazası tapılmadı.",
|
||||||
"No knowledge found": "Bilik tapılmadı",
|
"No knowledge found": "Bilik tapılmadı",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Təmizlənməli yaddaş yoxdur",
|
"No memories to clear": "Təmizlənməli yaddaş yoxdur",
|
||||||
"No model IDs": "Model ID-si yoxdur",
|
"No model IDs": "Model ID-si yoxdur",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "Mövcud model yoxdur",
|
"No models available": "Mövcud model yoxdur",
|
||||||
"No models found": "Model tapılmadı",
|
"No models found": "Model tapılmadı",
|
||||||
"No models selected": "Model seçilməyib",
|
"No models selected": "Model seçilməyib",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "Konfiqurasiya edilmiş Terminal bağlantısı yoxdur.",
|
"No Terminal connection configured.": "Konfiqurasiya edilmiş Terminal bağlantısı yoxdur.",
|
||||||
"No terminal connections configured.": "Konfiqurasiya edilmiş terminal bağlantıları yoxdur.",
|
"No terminal connections configured.": "Konfiqurasiya edilmiş terminal bağlantıları yoxdur.",
|
||||||
"No tool server connections configured.": "Konfiqurasiya edilmiş alət serveri bağlantıları yoxdur.",
|
"No tool server connections configured.": "Konfiqurasiya edilmiş alət serveri bağlantıları yoxdur.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Alət tapılmadı",
|
"No tools found": "Alət tapılmadı",
|
||||||
"No users were found.": "İstifadəçi tapılmadı.",
|
"No users were found.": "İstifadəçi tapılmadı.",
|
||||||
"No valves": "Klapan (valve) yoxdur",
|
"No valves": "Klapan (valve) yoxdur",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Açıq",
|
"On": "Açıq",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Yalnız \"Böyük mətni fayl kimi yapışdır\" ayarı aktiv olduqda işləyir.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Yalnız \"Böyük mətni fayl kimi yapışdır\" ayarı aktiv olduqda işləyir.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Yalnız çat girişi fokusda olduqda və LLM cavab yaratdıqda aktiv olur.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Yalnız çat girişi fokusda olduqda və LLM cavab yaratdıqda aktiv olur.",
|
||||||
"Only active when the chat input is in focus.": "Yalnız çat girişi fokusda olduqda aktiv olur.",
|
"Only active when the chat input is in focus.": "Yalnız çat girişi fokusda olduqda aktiv olur.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF sənədi (.pdf)",
|
"PDF document (.pdf)": "PDF sənədi (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF-dən şəkillərin çıxarılması (OCR)",
|
"PDF Extract Images (OCR)": "PDF-dən şəkillərin çıxarılması (OCR)",
|
||||||
"PDF Loader Mode": "PDF yükləyici rejimi",
|
"PDF Loader Mode": "PDF yükləyici rejimi",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "gözləmədə",
|
"pending": "gözləmədə",
|
||||||
"Pending": "Gözləmədə",
|
"Pending": "Gözləmədə",
|
||||||
"Pending User Overlay Content": "Gözləyən istifadəçi örtük məzmunu",
|
"Pending User Overlay Content": "Gözləyən istifadəçi örtük məzmunu",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefiks ID model ID-lərinə prefiks əlavə edərək digər bağlantılarla ziddiyyətlərin qarşısını almaq üçün istifadə olunur - söndürmək üçün boş saxlayın",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefiks ID model ID-lərinə prefiks əlavə edərək digər bağlantılarla ziddiyyətlərin qarşısını almaq üçün istifadə olunur - söndürmək üçün boş saxlayın",
|
||||||
"Prevent File Creation": "Fayl yaradılmasının qarşısını al",
|
"Prevent File Creation": "Fayl yaradılmasının qarşısını al",
|
||||||
"Preview": "Önizləmə",
|
"Preview": "Önizləmə",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Son 30 gün",
|
"Previous 30 days": "Son 30 gün",
|
||||||
"Previous 7 days": "Son 7 gün",
|
"Previous 7 days": "Son 7 gün",
|
||||||
"Previous message": "Əvvəlki mesaj",
|
"Previous message": "Əvvəlki mesaj",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "Sevimlilərdən çıxar",
|
"Remove from favorites": "Sevimlilərdən çıxar",
|
||||||
"Remove image": "Şəkli sil",
|
"Remove image": "Şəkli sil",
|
||||||
"Remove Model": "Modeli Sil",
|
"Remove Model": "Modeli Sil",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Adını dəyiş",
|
"Rename": "Adını dəyiş",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Sıfırla",
|
"Reset": "Sıfırla",
|
||||||
"Reset All Models": "Bütün modelləri sıfırla",
|
"Reset All Models": "Bütün modelləri sıfırla",
|
||||||
"Reset Image": "Şəkli sıfırla",
|
"Reset Image": "Şəkli sıfırla",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Yükləmə kataloqunu sıfırla",
|
"Reset Upload Directory": "Yükləmə kataloqunu sıfırla",
|
||||||
"Reset Vector Storage/Knowledge": "Vektor yaddaşını/Biliyi sıfırla",
|
"Reset Vector Storage/Knowledge": "Vektor yaddaşını/Biliyi sıfırla",
|
||||||
"Reset view": "Görünüşü sıfırla",
|
"Reset view": "Görünüşü sıfırla",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Axtarış göstərişləri",
|
"Search Prompts": "Axtarış göstərişləri",
|
||||||
"Search Result Count": "Axtarış nəticələrinin sayı",
|
"Search Result Count": "Axtarış nəticələrinin sayı",
|
||||||
"Search Skills": "Axtarış bacarıqları",
|
"Search Skills": "Axtarış bacarıqları",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "İnternetdə axtar",
|
"Search the internet": "İnternetdə axtar",
|
||||||
"Search the web and fetch URLs": "Vebdə axtar və URL-ləri gətir",
|
"Search the web and fetch URLs": "Vebdə axtar və URL-ləri gətir",
|
||||||
"Search Tools": "Axtarış alətləri",
|
"Search Tools": "Axtarış alətləri",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "Sinxronizasiya",
|
"Sync": "Sinxronizasiya",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Sinxronizasiya tamamlandı!",
|
"Sync Complete!": "Sinxronizasiya tamamlandı!",
|
||||||
"Sync directory": "Sinxronizasiya kataloqu",
|
"Sync directory": "Sinxronizasiya kataloqu",
|
||||||
"Sync Failed": "Sinxronizasiya alınmadı",
|
"Sync Failed": "Sinxronizasiya alınmadı",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Bu seçim kontekst yenilənərkən neçə tokenin qorunacağına nəzarət edir. Məsələn, 2 təyin edilərsə, söhbət kontekstinin son 2 tokeni saxlanılacaq. Konteksti qorumaq söhbətin davamlılığını saxlamağa kömək edir, lakin yeni mövzulara cavab vermə qabiliyyətini azalda bilər.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Bu seçim kontekst yenilənərkən neçə tokenin qorunacağına nəzarət edir. Məsələn, 2 təyin edilərsə, söhbət kontekstinin son 2 tokeni saxlanılacaq. Konteksti qorumaq söhbətin davamlılığını saxlamağa kömək edir, lakin yeni mövzulara cavab vermə qabiliyyətini azalda bilər.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Bu seçim Ollama-da mühakimə (reasoning) funksiyasının istifadəsini aktivləşdirir və ya söndürür; bu, modelin cavab yaratmazdan əvvəl 'düşünməsinə' imkan verir. Aktiv edildikdə, model söhbət kontekstini emal etmək və daha dolğun cavab vermək üçün bir anlıq fasilə verə bilər.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Bu seçim Ollama-da mühakimə (reasoning) funksiyasının istifadəsini aktivləşdirir və ya söndürür; bu, modelin cavab yaratmazdan əvvəl 'düşünməsinə' imkan verir. Aktiv edildikdə, model söhbət kontekstini emal etmək və daha dolğun cavab vermək üçün bir anlıq fasilə verə bilər.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Bu seçim modelin cavabında yarada biləcəyi maksimum token sayını təyin edir. Bu limiti artırmaq modelə daha uzun cavablar verməyə imkan verir, lakin faydasız və ya mövzuya aid olmayan məzmunun yaranma ehtimalını da artıra bilər.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Bu seçim modelin cavabında yarada biləcəyi maksimum token sayını təyin edir. Bu limiti artırmaq modelə daha uzun cavablar verməyə imkan verir, lakin faydasız və ya mövzuya aid olmayan məzmunun yaranma ehtimalını da artıra bilər.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Bu seçim kolleksiyadakı bütün mövcud faylları siləcək və onları yeni yüklənmiş fayllarla əvəz edəcək.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Bu cavab \"{{model}}\" tərəfindən yaradılmışdır",
|
"This response was generated by \"{{model}}\"": "Bu cavab \"{{model}}\" tərəfindən yaradılmışdır",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Bu, siləcək:",
|
"This will delete": "Bu, siləcək:",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Bu, fərdi modellər də daxil olmaqla bütün modelləri siləcək",
|
"This will delete all models including custom models": "Bu, fərdi modellər də daxil olmaqla bütün modelləri siləcək",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Bu, fərdi modellər də daxil olmaqla bütün modelləri siləcək və geri qaytarıla bilməz.",
|
"This will delete all models including custom models and cannot be undone.": "Bu, fərdi modellər də daxil olmaqla bütün modelləri siləcək və geri qaytarıla bilməz.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Bu, bilik bazasını sıfırlayacaq və bütün faylları sinxronizasiya edəcək. Davam etmək istəyirsiniz?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Ətraflı izahat",
|
"Thorough explanation": "Ətraflı izahat",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "{{DURATION}} müddətində düşündü",
|
"Thought for {{DURATION}}": "{{DURATION}} müddətində düşündü",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "1 mənbəni göstər/gizlə",
|
"Toggle 1 source": "1 mənbəni göstər/gizlə",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "Diktəni aç/bağla",
|
"Toggle Dictation": "Diktəni aç/bağla",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Yan paneli aç/bağla",
|
"Toggle Sidebar": "Yan paneli aç/bağla",
|
||||||
"Toggle status history": "Status tarixçəsini aç/bağla",
|
"Toggle status history": "Status tarixçəsini aç/bağla",
|
||||||
"Toggle whether current connection is active.": "Hazırkı bağlantının aktiv olub-olmadığını dəyişdirin.",
|
"Toggle whether current connection is active.": "Hazırkı bağlantının aktiv olub-olmadığını dəyişdirin.",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Yükləmə vəziyyəti",
|
"Upload Progress": "Yükləmə vəziyyəti",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Yükləmə vəziyyəti: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Yükləmə vəziyyəti: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Yüklənmiş fayllar və ya şəkillər",
|
"Uploaded files or images": "Yüklənmiş fayllar və ya şəkillər",
|
||||||
"Uploading file...": "Fayl yüklənir...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Yüklənir...",
|
"Uploading...": "Yüklənir...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL tələb olunur",
|
"URL is required": "URL tələb olunur",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "İstifadəçi qrupları",
|
"User Groups": "İstifadəçi qrupları",
|
||||||
"User location successfully retrieved.": "İstifadəçi yeri uğurla müəyyən edildi.",
|
"User location successfully retrieved.": "İstifadəçi yeri uğurla müəyyən edildi.",
|
||||||
"User menu": "İstifadəçi menyusu",
|
"User menu": "İstifadəçi menyusu",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "İstifadəçi reytinqləri (bəyənmə/bəyənməmə)",
|
"User ratings (thumbs up/down)": "İstifadəçi reytinqləri (bəyənmə/bəyənməmə)",
|
||||||
"User Status": "İstifadəçi statusu",
|
"User Status": "İstifadəçi statusu",
|
||||||
"User Webhooks": "İstifadəçi Webhook-ları",
|
"User Webhooks": "İstifadəçi Webhook-ları",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} Отговори",
|
"{{COUNT}} Replies": "{{COUNT}} Отговори",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "Сигурни ли сте, че искате да изтриете този канал?",
|
"Are you sure you want to delete this channel?": "Сигурни ли сте, че искате да изтриете този канал?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Сигурни ли сте, че искате да изтриете това съобщение?",
|
"Are you sure you want to delete this message?": "Сигурни ли сте, че искате да изтриете това съобщение?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Наличен списък",
|
"Available list": "Наличен списък",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Налични инструменти",
|
"Available Tools": "Налични инструменти",
|
||||||
"available users": "Налични потребители",
|
"available users": "Налични потребители",
|
||||||
"available!": "наличен!",
|
"available!": "наличен!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI Работен поток",
|
"ComfyUI Workflow": "ComfyUI Работен поток",
|
||||||
"ComfyUI Workflow Nodes": "Възли на ComfyUI работен поток",
|
"ComfyUI Workflow Nodes": "Възли на ComfyUI работен поток",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Команда",
|
"Command": "Команда",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Довършвания",
|
"Completions": "Довършвания",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Едновременни заявки",
|
"Concurrent Requests": "Едновременни заявки",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Изтриване на модела",
|
"Delete a model": "Изтриване на модела",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Изтриване на всички чатове",
|
"Delete All Chats": "Изтриване на всички чатове",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Изтриване на Чат",
|
"Delete Chat": "Изтриване на Чат",
|
||||||
"Delete chat?": "Изтриване на чата?",
|
"Delete chat?": "Изтриване на чата?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Изтриване на папката?",
|
"Delete folder?": "Изтриване на папката?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Директните връзки позволяват на потребителите да се свързват със собствени OpenAI съвместими API крайни точки.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Директните връзки позволяват на потребителите да се свързват със собствени OpenAI съвместими API крайни точки.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Модел за вграждане",
|
"Embedding Model": "Модел за вграждане",
|
||||||
"Embedding Model Engine": "Двигател на модела за вграждане",
|
"Embedding Model Engine": "Двигател на модела за вграждане",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Въведете API ключ за Kagi Search",
|
"Enter Kagi Search API Key": "Въведете API ключ за Kagi Search",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "Въведете кодове на езика",
|
"Enter language codes": "Въведете кодове на езика",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Съдържанието на файла е актуализирано успешно.",
|
"File content updated successfully.": "Съдържанието на файла е актуализирано успешно.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Файлов режим",
|
"File Mode": "Файлов режим",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Файл не е намерен.",
|
"File not found.": "Файл не е намерен.",
|
||||||
"File removed successfully.": "Файлът е премахнат успешно.",
|
"File removed successfully.": "Файлът е премахнат успешно.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Размерът на файла не трябва да надвишава {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Размерът на файла не трябва да надвишава {{maxSize}} MB.",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "Файлът е качен успешно",
|
"File uploaded successfully": "Файлът е качен успешно",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Файлове",
|
"Files": "Файлове",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Знания",
|
"Knowledge": "Знания",
|
||||||
"Knowledge Access": "Достъп до знания",
|
"Knowledge Access": "Достъп до знания",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Знанието е създадено успешно.",
|
"Knowledge created successfully.": "Знанието е създадено успешно.",
|
||||||
"Knowledge deleted successfully.": "Знанието е изтрито успешно.",
|
"Knowledge deleted successfully.": "Знанието е изтрито успешно.",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "Знанието е нулирано успешно.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "Знанието е актуализирано успешно",
|
"Knowledge updated successfully": "Знанието е актуализирано успешно",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Браузър)",
|
"Kokoro.js (Browser)": "Kokoro.js (Браузър)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Светъл",
|
"Light": "Светъл",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Слушане...",
|
"Listening...": "Слушане...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Нов чат",
|
"New Chat": "Нов чат",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Нова папка",
|
"New Folder": "Нова папка",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Не е намерено HTML, CSS или JavaScript съдържание.",
|
"No HTML, CSS, or JavaScript content found.": "Не е намерено HTML, CSS или JavaScript съдържание.",
|
||||||
"No inference engine with management support found": "Не е намерен механизъм за извод с поддръжка на управлението",
|
"No inference engine with management support found": "Не е намерен механизъм за извод с поддръжка на управлението",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Не са намерени знания",
|
"No knowledge found": "Не са намерени знания",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "Няма ИД-та на моделите",
|
"No model IDs": "Няма ИД-та на моделите",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Не са намерени модели",
|
"No models found": "Не са намерени модели",
|
||||||
"No models selected": "Няма избрани модели",
|
"No models selected": "Няма избрани модели",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "Не са намерени потребители.",
|
"No users were found.": "Не са намерени потребители.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Вкл.",
|
"On": "Вкл.",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF документ (.pdf)",
|
"PDF document (.pdf)": "PDF документ (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Извличане на изображения от PDF (OCR)",
|
"PDF Extract Images (OCR)": "Извличане на изображения от PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "в очакване",
|
"pending": "в очакване",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Префикс ID се използва за избягване на конфликти с други връзки чрез добавяне на префикс към ID-тата на моделите - оставете празно, за да деактивирате",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Префикс ID се използва за избягване на конфликти с други връзки чрез добавяне на префикс към ID-тата на моделите - оставете празно, за да деактивирате",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Предишните 30 дни",
|
"Previous 30 days": "Предишните 30 дни",
|
||||||
"Previous 7 days": "Предишните 7 дни",
|
"Previous 7 days": "Предишните 7 дни",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "Изтриване на модела",
|
"Remove Model": "Изтриване на модела",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Преименуване",
|
"Rename": "Преименуване",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Нулиране",
|
"Reset": "Нулиране",
|
||||||
"Reset All Models": "Нулиране на всички модели",
|
"Reset All Models": "Нулиране на всички модели",
|
||||||
"Reset Image": "Нулиране на изображението",
|
"Reset Image": "Нулиране на изображението",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Нулиране на директорията за качване",
|
"Reset Upload Directory": "Нулиране на директорията за качване",
|
||||||
"Reset Vector Storage/Knowledge": "Нулиране на векторното хранилище/знания",
|
"Reset Vector Storage/Knowledge": "Нулиране на векторното хранилище/знания",
|
||||||
"Reset view": "Нулиране на изгледа",
|
"Reset view": "Нулиране на изгледа",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Търси Промптове",
|
"Search Prompts": "Търси Промптове",
|
||||||
"Search Result Count": "Брой резултати от търсенето",
|
"Search Result Count": "Брой резултати от търсенето",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Търсене в интернет",
|
"Search the internet": "Търсене в интернет",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Инструменти за търсене",
|
"Search Tools": "Инструменти за търсене",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Синхронизирай директория",
|
"Sync directory": "Синхронизирай директория",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Тази опция ще изтрие всички съществуващи файлове в колекцията и ще ги замени с новокачени файлове.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Този отговор беше генериран от \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Този отговор беше генериран от \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Това ще изтрие",
|
"This will delete": "Това ще изтрие",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Това ще изтрие всички модели, включително персонализираните модели",
|
"This will delete all models including custom models": "Това ще изтрие всички модели, включително персонализираните модели",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Това ще изтрие всички модели, включително персонализираните модели, и не може да бъде отменено.",
|
"This will delete all models including custom models and cannot be undone.": "Това ще изтрие всички модели, включително персонализираните модели, и не може да бъде отменено.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Това ще нулира базата знания и ще синхронизира всички файлове. Желаете ли да продължите?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Подробно обяснение",
|
"Thorough explanation": "Подробно обяснение",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Мислил за {{DURATION}}",
|
"Thought for {{DURATION}}": "Мислил за {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Прогрес на качването",
|
"Upload Progress": "Прогрес на качването",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "Местоположението на потребителя е успешно извлечено.",
|
"User location successfully retrieved.": "Местоположението на потребителя е успешно извлечено.",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ মডেল}}",
|
"{{ models }}": "{{ মডেল}}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "উপলব্ধ ব্যবহারকারী",
|
"available users": "উপলব্ধ ব্যবহারকারী",
|
||||||
"available!": "উপলব্ধ!",
|
"available!": "উপলব্ধ!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "কমান্ড",
|
"Command": "কমান্ড",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "সমকালীন অনুরোধ",
|
"Concurrent Requests": "সমকালীন অনুরোধ",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "একটি মডেল মুছে ফেলুন",
|
"Delete a model": "একটি মডেল মুছে ফেলুন",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "সব চ্যাট মুছে ফেলুন",
|
"Delete All Chats": "সব চ্যাট মুছে ফেলুন",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "চ্যাট মুছে ফেলুন",
|
"Delete Chat": "চ্যাট মুছে ফেলুন",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "ইমেজ ইমেবডিং মডেল",
|
"Embedding Model": "ইমেজ ইমেবডিং মডেল",
|
||||||
"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
|
"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "ল্যাঙ্গুয়েজ কোড লিখুন",
|
"Enter language codes": "ল্যাঙ্গুয়েজ কোড লিখুন",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "ফাইল মোড",
|
"File Mode": "ফাইল মোড",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "ফাইল পাওয়া যায়নি",
|
"File not found.": "ফাইল পাওয়া যায়নি",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "লাইট",
|
"Light": "লাইট",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "নতুন চ্যাট",
|
"New Chat": "নতুন চ্যাট",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "চালু",
|
"On": "চালু",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF ডকুমেন্ট (.pdf)",
|
"PDF document (.pdf)": "PDF ডকুমেন্ট (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "পিডিএফ এর ছবি থেকে লেখা বের করুন (OCR)",
|
"PDF Extract Images (OCR)": "পিডিএফ এর ছবি থেকে লেখা বের করুন (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "অপেক্ষমান",
|
"pending": "অপেক্ষমান",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "পূর্ব ৩০ দিন",
|
"Previous 30 days": "পূর্ব ৩০ দিন",
|
||||||
"Previous 7 days": "পূর্ব ৭ দিন",
|
"Previous 7 days": "পূর্ব ৭ দিন",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "মডেল রিমুভ করুন",
|
"Remove Model": "মডেল রিমুভ করুন",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "রেনেম",
|
"Rename": "রেনেম",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "ছবি রিসেট করুন",
|
"Reset Image": "ছবি রিসেট করুন",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
|
"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
|
||||||
"Search Result Count": "অনুসন্ধানের ফলাফল গণনা",
|
"Search Result Count": "অনুসন্ধানের ফলাফল গণনা",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "পুঙ্খানুপুঙ্খ ব্যাখ্যা",
|
"Thorough explanation": "পুঙ্খানুপুঙ্খ ব্যাখ্যা",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "আপলোড হচ্ছে",
|
"Upload Progress": "আপলোড হচ্ছে",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,15 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "ཡིག་ཕྲེང་ {{COUNT}} སྦས་ཡོད།",
|
"{{COUNT}} hidden lines": "ཡིག་ཕྲེང་ {{COUNT}} སྦས་ཡོད།",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "ལན་ {{COUNT}}",
|
"{{COUNT}} Replies": "ལན་ {{COUNT}}",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_other": "",
|
"{{count}} selected_other": "",
|
||||||
@@ -192,6 +195,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "ཁྱེད་ཀྱིས་བགྲོ་གླེང་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།",
|
"Are you sure you want to delete this channel?": "ཁྱེད་ཀྱིས་བགྲོ་གླེང་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "འཕྲིན་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།",
|
"Are you sure you want to delete this message?": "འཕྲིན་འདི་བསུབ་འདོད་ངེས་ཡིན་ནམ།",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -238,6 +242,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "ཡོད་པའི་ཐོ་གཞུང་།",
|
"Available list": "ཡོད་པའི་ཐོ་གཞུང་།",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "ཡོད་པའི་སྤྱོད་མཁན",
|
"available users": "ཡོད་པའི་སྤྱོད་མཁན",
|
||||||
"available!": "ཡོད།",
|
"available!": "ཡོད།",
|
||||||
@@ -397,13 +402,16 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI ལས་ཀའི་རྒྱུན་རིམ།",
|
"ComfyUI Workflow": "ComfyUI ལས་ཀའི་རྒྱུན་རིམ།",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI ལས་ཀའི་རྒྱུན་རིམ་མདུད་ཚེག",
|
"ComfyUI Workflow Nodes": "ComfyUI ལས་ཀའི་རྒྱུན་རིམ་མདུད་ཚེག",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "བཀའ་བརྡ།",
|
"Command": "བཀའ་བརྡ།",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "འགྲུབ་པ།",
|
"Completions": "འགྲུབ་པ།",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "མཉམ་ལས་རེ་ཞུ།",
|
"Concurrent Requests": "མཉམ་ལས་རེ་ཞུ།",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -536,12 +544,14 @@
|
|||||||
"Delete a model": "དཔེ་དབྱིབས་ཤིག་བསུབ་པ།",
|
"Delete a model": "དཔེ་དབྱིབས་ཤིག་བསུབ་པ།",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "ཁ་བརྡ་ཡོངས་རྫོགས་བསུབ་པ།",
|
"Delete All Chats": "ཁ་བརྡ་ཡོངས་རྫོགས་བསུབ་པ།",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "ཁ་བརྡ་བསུབ་པ།",
|
"Delete Chat": "ཁ་བརྡ་བསུབ་པ།",
|
||||||
"Delete chat?": "ཁ་བརྡ་བསུབ་པ།?",
|
"Delete chat?": "ཁ་བརྡ་བསུབ་པ།?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "ཡིག་སྣོད་བསུབ་པ།?",
|
"Delete folder?": "ཡིག་སྣོད་བསུབ་པ།?",
|
||||||
@@ -578,6 +588,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "ཐད་ཀར་སྦྲེལ་མཐུད་ཀྱིས་བེད་སྤྱོད་མཁན་ཚོར་ཁོ་ཚོའི་རང་གི་ OpenAI དང་མཐུན་པའི་ API མཇུག་མཐུད་ལ་སྦྲེལ་བར་གནང་བ་སྤྲོད།",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "ཐད་ཀར་སྦྲེལ་མཐུད་ཀྱིས་བེད་སྤྱོད་མཁན་ཚོར་ཁོ་ཚོའི་རང་གི་ OpenAI དང་མཐུན་པའི་ API མཇུག་མཐུད་ལ་སྦྲེལ་བར་གནང་བ་སྤྲོད།",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -686,6 +701,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "ཚུད་འཇུག་དཔེ་དབྱིབས།",
|
"Embedding Model": "ཚུད་འཇུག་དཔེ་དབྱིབས།",
|
||||||
"Embedding Model Engine": "ཚུད་འཇུག་དཔེ་དབྱིབས་འཕྲུལ་འཁོར།",
|
"Embedding Model Engine": "ཚུད་འཇུག་དཔེ་དབྱིབས་འཕྲུལ་འཁོར།",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -764,6 +780,7 @@
|
|||||||
"Enter Kagi Search API Key": "Kagi Search API ལྡེ་མིག་འཇུག་པ།",
|
"Enter Kagi Search API Key": "Kagi Search API ལྡེ་མིག་འཇུག་པ།",
|
||||||
"Enter Key Behavior": "ལྡེ་མིག་གི་བྱེད་སྟངས་འཇུག་པ།",
|
"Enter Key Behavior": "ལྡེ་མིག་གི་བྱེད་སྟངས་འཇུག་པ།",
|
||||||
"Enter language codes": "སྐད་ཡིག་གི་ཨང་རྟགས་འཇུག་པ།",
|
"Enter language codes": "སྐད་ཡིག་གི་ཨང་རྟགས་འཇུག་པ།",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -900,6 +917,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI ལག་ཆའི་སར་བར་ལ་སྦྲེལ་མཐུད་བྱེད་མ་ཐུབ།",
|
"Failed to connect to {{URL}} OpenAPI tool server": "{{URL}} OpenAPI ལག་ཆའི་སར་བར་ལ་སྦྲེལ་མཐུད་བྱེད་མ་ཐུབ།",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -953,14 +971,16 @@
|
|||||||
"File content updated successfully.": "ཡིག་ཆའི་ནང་དོན་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།",
|
"File content updated successfully.": "ཡིག་ཆའི་ནང་དོན་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "ཡིག་ཆའི་མ་དཔེ།",
|
"File Mode": "ཡིག་ཆའི་མ་དཔེ།",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "ཡིག་ཆ་མ་རྙེད།",
|
"File not found.": "ཡིག་ཆ་མ་རྙེད།",
|
||||||
"File removed successfully.": "ཡིག་ཆ་ལེགས་པར་བསུབས་ཟིན།",
|
"File removed successfully.": "ཡིག་ཆ་ལེགས་པར་བསུབས་ཟིན།",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "ཡིག་ཆའི་ཆེ་ཆུང་ {{maxSize}} MB ལས་མི་བརྒལ་དགོས།",
|
"File size should not exceed {{maxSize}} MB.": "ཡིག་ཆའི་ཆེ་ཆུང་ {{maxSize}} MB ལས་མི་བརྒལ་དགོས།",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "ཡིག་ཆ་ལེགས་པར་སྤར་ཟིན།",
|
"File uploaded successfully": "ཡིག་ཆ་ལེགས་པར་སྤར་ཟིན།",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "ཡིག་ཆ།",
|
"Files": "ཡིག་ཆ།",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1176,13 +1196,13 @@
|
|||||||
"Knowledge": "ཤེས་བྱ།",
|
"Knowledge": "ཤེས་བྱ།",
|
||||||
"Knowledge Access": "ཤེས་བྱར་འཛུལ་སྤྱོད།",
|
"Knowledge Access": "ཤེས་བྱར་འཛུལ་སྤྱོད།",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "ཤེས་བྱ་ལེགས་པར་བཟོས་ཟིན།",
|
"Knowledge created successfully.": "ཤེས་བྱ་ལེགས་པར་བཟོས་ཟིན།",
|
||||||
"Knowledge deleted successfully.": "ཤེས་བྱ་ལེགས་པར་བསུབས་ཟིན།",
|
"Knowledge deleted successfully.": "ཤེས་བྱ་ལེགས་པར་བསུབས་ཟིན།",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "ཤེས་བྱ་སྤྱི་སྤྱོད་མཉམ་སྤྱོད།",
|
"Knowledge Public Sharing": "ཤེས་བྱ་སྤྱི་སྤྱོད་མཉམ་སྤྱོད།",
|
||||||
"Knowledge reset successfully.": "ཤེས་བྱ་ལེགས་པར་སླར་སྒྲིག་བྱས་ཟིན།",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "ཤེས་བྱ་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།",
|
"Knowledge updated successfully": "ཤེས་བྱ་ལེགས་པར་གསར་སྒྱུར་བྱས་ཟིན།",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (བརྡ་འཚོལ་ཆས།)",
|
"Kokoro.js (Browser)": "Kokoro.js (བརྡ་འཚོལ་ཆས།)",
|
||||||
@@ -1226,6 +1246,7 @@
|
|||||||
"Light": "དཀར་པོ།",
|
"Light": "དཀར་པོ།",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "ཉན་བཞིན་པ།...",
|
"Listening...": "ཉན་བཞིན་པ།...",
|
||||||
@@ -1376,6 +1397,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "ཁ་བརྡ་གསར་པ།",
|
"New Chat": "ཁ་བརྡ་གསར་པ།",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "ཡིག་སྣོད་གསར་པ།",
|
"New Folder": "ཡིག་སྣོད་གསར་པ།",
|
||||||
@@ -1421,11 +1444,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "HTML, CSS, ཡང་ན་ JavaScript གི་ནང་དོན་མ་རྙེད།",
|
"No HTML, CSS, or JavaScript content found.": "HTML, CSS, ཡང་ན་ JavaScript གི་ནང་དོན་མ་རྙེད།",
|
||||||
"No inference engine with management support found": "དོ་དམ་རྒྱབ་སྐྱོར་ཡོད་པའི་དཔོག་རྩིས་འཕྲུལ་འཁོར་མ་རྙེད།",
|
"No inference engine with management support found": "དོ་དམ་རྒྱབ་སྐྱོར་ཡོད་པའི་དཔོག་རྩིས་འཕྲུལ་འཁོར་མ་རྙེད།",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "ཤེས་བྱ་མ་རྙེད།",
|
"No knowledge found": "ཤེས་བྱ་མ་རྙེད།",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "གཙང་སེལ་བྱེད་རྒྱུའི་དྲན་ཤེས་མེད།",
|
"No memories to clear": "གཙང་སེལ་བྱེད་རྒྱུའི་དྲན་ཤེས་མེད།",
|
||||||
"No model IDs": "དཔེ་དབྱིབས་ཀྱི་ ID མེད།",
|
"No model IDs": "དཔེ་དབྱིབས་ཀྱི་ ID མེད།",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "དཔེ་དབྱིབས་མ་རྙེད།",
|
"No models found": "དཔེ་དབྱིབས་མ་རྙེད།",
|
||||||
"No models selected": "དཔེ་དབྱིབས་གདམ་ག་མ་བྱས།",
|
"No models selected": "དཔེ་དབྱིབས་གདམ་ག་མ་བྱས།",
|
||||||
@@ -1446,6 +1471,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "བེད་སྤྱོད་མཁན་མ་རྙེད།",
|
"No users were found.": "བེད་སྤྱོད་མཁན་མ་རྙེད།",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1485,6 +1511,7 @@
|
|||||||
"On": "ཁ་ཕྱེ་བ།",
|
"On": "ཁ་ཕྱེ་བ།",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1556,6 +1583,7 @@
|
|||||||
"PDF document (.pdf)": "PDF ཡིག་ཆ། (.pdf)",
|
"PDF document (.pdf)": "PDF ཡིག་ཆ། (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF པར་འདོན་སྤེལ། (OCR)",
|
"PDF Extract Images (OCR)": "PDF པར་འདོན་སྤེལ། (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "སྒུག་བཞིན་པ།",
|
"pending": "སྒུག་བཞིན་པ།",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1617,6 +1645,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "སྔོན་སྦྱོར་ ID ནི་དཔེ་དབྱིབས་ཀྱི་ IDs ལ་སྔོན་སྦྱོར་ཞིག་སྣོན་ནས་སྦྲེལ་མཐུད་གཞན་དང་གདོང་ཐུག་ལས་གཡོལ་བར་བེད་སྤྱོད་བྱེད། - ནུས་མེད་བཏང་བར་སྟོང་པ་བཞག་པ།",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "སྔོན་སྦྱོར་ ID ནི་དཔེ་དབྱིབས་ཀྱི་ IDs ལ་སྔོན་སྦྱོར་ཞིག་སྣོན་ནས་སྦྲེལ་མཐུད་གཞན་དང་གདོང་ཐུག་ལས་གཡོལ་བར་བེད་སྤྱོད་བྱེད། - ནུས་མེད་བཏང་བར་སྟོང་པ་བཞག་པ།",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "ཉིན་ ༣༠ སྔོན་མ།",
|
"Previous 30 days": "ཉིན་ ༣༠ སྔོན་མ།",
|
||||||
"Previous 7 days": "ཉིན་ ༧ སྔོན་མ།",
|
"Previous 7 days": "ཉིན་ ༧ སྔོན་མ།",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1694,6 +1723,7 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "དཔེ་དབྱིབས་འདོར་བ།",
|
"Remove Model": "དཔེ་དབྱིབས་འདོར་བ།",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "མིང་བསྐྱར་འདོགས།",
|
"Rename": "མིང་བསྐྱར་འདོགས།",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1712,6 +1742,7 @@
|
|||||||
"Reset": "སླར་སྒྲིག",
|
"Reset": "སླར་སྒྲིག",
|
||||||
"Reset All Models": "དཔེ་དབྱིབས་ཡོངས་རྫོགས་སླར་སྒྲིག",
|
"Reset All Models": "དཔེ་དབྱིབས་ཡོངས་རྫོགས་སླར་སྒྲིག",
|
||||||
"Reset Image": "བརྙན་རིས་བསྐྱར་སྒྲིག",
|
"Reset Image": "བརྙན་རིས་བསྐྱར་སྒྲིག",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "སྤར་བའི་ཐོ་འཚོལ་སླར་སྒྲིག",
|
"Reset Upload Directory": "སྤར་བའི་ཐོ་འཚོལ་སླར་སྒྲིག",
|
||||||
"Reset Vector Storage/Knowledge": "ཚད་བརྡའི་གསོག་ཆས།/ཤེས་བྱ་སླར་སྒྲིག",
|
"Reset Vector Storage/Knowledge": "ཚད་བརྡའི་གསོག་ཆས།/ཤེས་བྱ་སླར་སྒྲིག",
|
||||||
"Reset view": "མཐོང་སྣང་སླར་སྒྲིག",
|
"Reset view": "མཐོང་སྣང་སླར་སྒྲིག",
|
||||||
@@ -1778,6 +1809,7 @@
|
|||||||
"Search Prompts": "འགུལ་སློང་འཚོལ་བཤེར།",
|
"Search Prompts": "འགུལ་སློང་འཚོལ་བཤེར།",
|
||||||
"Search Result Count": "འཚོལ་བཤེར་འབྲས་བུའི་གྲངས།",
|
"Search Result Count": "འཚོལ་བཤེར་འབྲས་བུའི་གྲངས།",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "དྲ་རྒྱ་འཚོལ་བཤེར།",
|
"Search the internet": "དྲ་རྒྱ་འཚོལ་བཤེར།",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "ལག་ཆ་འཚོལ་བཤེར།",
|
"Search Tools": "ལག་ཆ་འཚོལ་བཤེར།",
|
||||||
@@ -1974,6 +2006,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "ཐོ་འཚོལ་མཉམ་སྡེབ།",
|
"Sync directory": "ཐོ་འཚོལ་མཉམ་སྡེབ།",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2046,7 +2080,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "འདེམས་ཀ་འདིས་ནང་དོན་གསར་སྒྱུར་བྱེད་སྐབས་ཊོཀ་ཀེན་ག་ཚོད་ཉར་ཚགས་བྱེད་དགོས་ཚོད་འཛིན་བྱེད། དཔེར་ན། གལ་ཏེ་ ༢ ལ་བཀོད་སྒྲིག་བྱས་ན། ཁ་བརྡའི་ནང་དོན་གྱི་ཊོཀ་ཀེན་མཐའ་མ་ ༢ ཉར་ཚགས་བྱེད་ངེས། ནང་དོན་ཉར་ཚགས་བྱས་ན་ཁ་བརྡའི་རྒྱུན་མཐུད་རང་བཞིན་རྒྱུན་སྲུང་བྱེད་པར་རོགས་པ་བྱེད་ཐུབ། འོན་ཀྱང་དེས་བརྗོད་གཞི་གསར་པར་ལན་འདེབས་བྱེད་པའི་ནུས་པ་ཉུང་དུ་གཏོང་སྲིད།",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "འདེམས་ཀ་འདིས་ནང་དོན་གསར་སྒྱུར་བྱེད་སྐབས་ཊོཀ་ཀེན་ག་ཚོད་ཉར་ཚགས་བྱེད་དགོས་ཚོད་འཛིན་བྱེད། དཔེར་ན། གལ་ཏེ་ ༢ ལ་བཀོད་སྒྲིག་བྱས་ན། ཁ་བརྡའི་ནང་དོན་གྱི་ཊོཀ་ཀེན་མཐའ་མ་ ༢ ཉར་ཚགས་བྱེད་ངེས། ནང་དོན་ཉར་ཚགས་བྱས་ན་ཁ་བརྡའི་རྒྱུན་མཐུད་རང་བཞིན་རྒྱུན་སྲུང་བྱེད་པར་རོགས་པ་བྱེད་ཐུབ། འོན་ཀྱང་དེས་བརྗོད་གཞི་གསར་པར་ལན་འདེབས་བྱེད་པའི་ནུས་པ་ཉུང་དུ་གཏོང་སྲིད།",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "འདེམས་ཀ་འདིས་དཔེ་དབྱིབས་ཀྱིས་དེའི་ལན་ནང་བཟོ་ཐུབ་པའི་ཊོཀ་ཀེན་གྱི་གྲངས་མང་ཤོས་འཇོག་པ། ཚད་བཀག་འདི་མང་དུ་བཏང་ན་དཔེ་དབྱིབས་ཀྱིས་ལན་རིང་བ་སྤྲོད་པར་གནང་བ་སྤྲོད། འོན་ཀྱང་དེས་ཕན་ཐོགས་མེད་པའམ་འབྲེལ་མེད་ཀྱི་ནང་དོན་བཟོ་བའི་ཆགས་ཚུལ་མང་དུ་གཏོང་སྲིད།",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "འདེམས་ཀ་འདིས་དཔེ་དབྱིབས་ཀྱིས་དེའི་ལན་ནང་བཟོ་ཐུབ་པའི་ཊོཀ་ཀེན་གྱི་གྲངས་མང་ཤོས་འཇོག་པ། ཚད་བཀག་འདི་མང་དུ་བཏང་ན་དཔེ་དབྱིབས་ཀྱིས་ལན་རིང་བ་སྤྲོད་པར་གནང་བ་སྤྲོད། འོན་ཀྱང་དེས་ཕན་ཐོགས་མེད་པའམ་འབྲེལ་མེད་ཀྱི་ནང་དོན་བཟོ་བའི་ཆགས་ཚུལ་མང་དུ་གཏོང་སྲིད།",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "འདེམས་ཀ་འདིས་བསྡུ་གསོག་ནང་གི་ཡོད་པའི་ཡིག་ཆ་ཡོངས་རྫོགས་བསུབ་ནས་དེ་དག་གསར་དུ་སྤར་བའི་ཡིག་ཆས་ཚབ་བྱེད་ངེས།",
|
|
||||||
"This response was generated by \"{{model}}\"": "ལན་འདི་ \"{{model}}\" ཡིས་བཟོས་པ།",
|
"This response was generated by \"{{model}}\"": "ལན་འདི་ \"{{model}}\" ཡིས་བཟོས་པ།",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "འདིས་བསུབ་ངེས།",
|
"This will delete": "འདིས་བསུབ་ངེས།",
|
||||||
@@ -2054,7 +2087,7 @@
|
|||||||
"This will delete all models including custom models": "འདིས་སྲོལ་བཟོས་དཔེ་དབྱིབས་ཚུད་པའི་དཔེ་དབྱིབས་ཡོངས་རྫོགས་བསུབ་ངེས།",
|
"This will delete all models including custom models": "འདིས་སྲོལ་བཟོས་དཔེ་དབྱིབས་ཚུད་པའི་དཔེ་དབྱིབས་ཡོངས་རྫོགས་བསུབ་ངེས།",
|
||||||
"This will delete all models including custom models and cannot be undone.": "འདིས་སྲོལ་བཟོས་དཔེ་དབྱིབས་ཚུད་པའི་དཔེ་དབྱིབས་ཡོངས་རྫོགས་བསུབ་ངེས་པ་དང་ཕྱིར་ལྡོག་བྱེད་མི་ཐུབ།",
|
"This will delete all models including custom models and cannot be undone.": "འདིས་སྲོལ་བཟོས་དཔེ་དབྱིབས་ཚུད་པའི་དཔེ་དབྱིབས་ཡོངས་རྫོགས་བསུབ་ངེས་པ་དང་ཕྱིར་ལྡོག་བྱེད་མི་ཐུབ།",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "འདིས་ཤེས་བྱའི་རྟེན་གཞི་སླར་སྒྲིག་བྱས་ནས་ཡིག་ཆ་ཡོངས་རྫོགས་མཉམ་སྡེབ་བྱེད་ངེས། ཁྱེད་མུ་མཐུད་འདོད་ཡོད་དམ།",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "འགྲེལ་བཤད་ཞིབ་ཚགས།",
|
"Thorough explanation": "འགྲེལ་བཤད་ཞིབ་ཚགས།",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "{{DURATION}} རིང་བསམས།",
|
"Thought for {{DURATION}}": "{{DURATION}} རིང་བསམས།",
|
||||||
@@ -2090,6 +2123,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2168,7 +2202,7 @@
|
|||||||
"Upload Progress": "སྤར་བའི་འཕེལ་རིམ།",
|
"Upload Progress": "སྤར་བའི་འཕེལ་རིམ།",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2188,6 +2222,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "བེད་སྤྱོད་མཁན་གནས་ཡུལ་ལེགས་པར་ལེན་ཚུར་སྒྲུབ་བྱས།",
|
"User location successfully retrieved.": "བེད་སྤྱོད་མཁན་གནས་ཡུལ་ལེགས་པར་ལེན་ཚུར་སྒྲུབ་བྱས།",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "བེད་སྤྱོད་མཁན་གྱི་ Webhooks",
|
"User Webhooks": "བེད་སྤྱོད་མཁན་གྱི་ Webhooks",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ modeli }}",
|
"{{ models }}": "{{ modeli }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_few": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_few": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "dostupni korisnici",
|
"available users": "dostupni korisnici",
|
||||||
"available!": "dostupno!",
|
"available!": "dostupno!",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Naredba",
|
"Command": "Naredba",
|
||||||
"Comment": "Komentar",
|
"Comment": "Komentar",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_few": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Istodobni zahtjevi",
|
"Concurrent Requests": "Istodobni zahtjevi",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "Izbriši model",
|
"Delete a model": "Izbriši model",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Izbriši sve razgovore",
|
"Delete All Chats": "Izbriši sve razgovore",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Izbriši razgovor",
|
"Delete Chat": "Izbriši razgovor",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Embedding model",
|
"Embedding Model": "Embedding model",
|
||||||
"Embedding Model Engine": "Embedding model pogon",
|
"Embedding Model Engine": "Embedding model pogon",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "Unesite kodove jezika",
|
"Enter language codes": "Unesite kodove jezika",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Način datoteke",
|
"File Mode": "Način datoteke",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Datoteka nije pronađena.",
|
"File not found.": "Datoteka nije pronađena.",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "Znanje",
|
"Knowledge": "Znanje",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "Svijetlo",
|
"Light": "Svijetlo",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Slušam...",
|
"Listening...": "Slušam...",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Novi razgovor",
|
"New Chat": "Novi razgovor",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "Uključeno",
|
"On": "Uključeno",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "PDF dokument (.pdf)",
|
"PDF document (.pdf)": "PDF dokument (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF izdvajanje slika (OCR)",
|
"PDF Extract Images (OCR)": "PDF izdvajanje slika (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "u tijeku",
|
"pending": "u tijeku",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Prethodnih 30 dana",
|
"Previous 30 days": "Prethodnih 30 dana",
|
||||||
"Previous 7 days": "Prethodnih 7 dana",
|
"Previous 7 days": "Prethodnih 7 dana",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "Ukloni model",
|
"Remove Model": "Ukloni model",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._few": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Preimenuj",
|
"Rename": "Preimenuj",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "Resetiraj sliku",
|
"Reset Image": "Resetiraj sliku",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Poništi upload direktorij",
|
"Reset Upload Directory": "Poništi upload direktorij",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "Pretraga prompta",
|
"Search Prompts": "Pretraga prompta",
|
||||||
"Search Result Count": "Broj rezultata pretraživanja",
|
"Search Result Count": "Broj rezultata pretraživanja",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Alati za pretraživanje",
|
"Search Tools": "Alati za pretraživanje",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Detaljno objašnjenje",
|
"Thorough explanation": "Detaljno objašnjenje",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "Napredak učitavanja",
|
"Upload Progress": "Napredak učitavanja",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "[Avui a les] h:mm A",
|
"[Today at] h:mm A": "[Avui a les] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Ahir a les] h:mm A",
|
"[Yesterday at] h:mm A": "[Ahir a les] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} eines disponibles",
|
"{{COUNT}} Available Tools": "{{COUNT}} eines disponibles",
|
||||||
"{{COUNT}} characters": "{{COUNT}} caràcters",
|
"{{COUNT}} characters": "{{COUNT}} caràcters",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} línies extretes",
|
"{{COUNT}} extracted lines": "{{COUNT}} línies extretes",
|
||||||
"{{COUNT}} files": "{{COUNT}} arxius",
|
"{{COUNT}} files": "{{COUNT}} arxius",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} línies ocultes",
|
"{{COUNT}} hidden lines": "{{COUNT}} línies ocultes",
|
||||||
"{{COUNT}} members": "{{COUNT}} membres",
|
"{{COUNT}} members": "{{COUNT}} membres",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} respostes",
|
"{{COUNT}} Replies": "{{COUNT}} respostes",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} files",
|
"{{COUNT}} Rows": "{{COUNT}} files",
|
||||||
"{{count}} selected_one": "{{count}} seleccionat",
|
"{{count}} selected_one": "{{count}} seleccionat",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Estàs segur que vols suprimir tots els xats? Aquesta acció no es pot desfer.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Estàs segur que vols suprimir tots els xats? Aquesta acció no es pot desfer.",
|
||||||
"Are you sure you want to delete this channel?": "Estàs segur que vols eliminar aquest canal?",
|
"Are you sure you want to delete this channel?": "Estàs segur que vols eliminar aquest canal?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "Estàs segur que vols suprimir aquesta connexió? Aquesta acció no es pot desfer.",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "Estàs segur que vols suprimir aquesta connexió? Aquesta acció no es pot desfer.",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "Estàs segur que vols suprimir aquest record? Aquesta acció no es pot desfer.",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "Estàs segur que vols suprimir aquest record? Aquesta acció no es pot desfer.",
|
||||||
"Are you sure you want to delete this message?": "Estàs segur que vols eliminar aquest missatge?",
|
"Are you sure you want to delete this message?": "Estàs segur que vols eliminar aquest missatge?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Estàs segur que vols suprimir aquesta versió? Les versions filles es tornaran a enllaçar amb la versió principal d'aquesta versió.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Estàs segur que vols suprimir aquesta versió? Les versions filles es tornaran a enllaçar amb la versió principal d'aquesta versió.",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "Automatització",
|
"Automations": "Automatització",
|
||||||
"Available list": "Llista de disponibles",
|
"Available list": "Llista de disponibles",
|
||||||
"Available models": "Models disponibles",
|
"Available models": "Models disponibles",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Eines disponibles",
|
"Available Tools": "Eines disponibles",
|
||||||
"available users": "usuaris disponibles",
|
"available users": "usuaris disponibles",
|
||||||
"available!": "disponible!",
|
"available!": "disponible!",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "Flux de treball de ComfyUI",
|
"ComfyUI Workflow": "Flux de treball de ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Nodes del flux de treball de ComfyUI",
|
"ComfyUI Workflow Nodes": "Nodes del flux de treball de ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Identificadors de node separats per comes (p. ex. 1 o 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Identificadors de node separats per comes (p. ex. 1 o 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "comanda",
|
"command": "comanda",
|
||||||
"Command": "Comanda",
|
"Command": "Comanda",
|
||||||
"Comment": "Comentari",
|
"Comment": "Comentari",
|
||||||
"Commit Message": "Enviar el missatge",
|
"Commit Message": "Enviar el missatge",
|
||||||
"Community Reviews": "Comentaris de la comunitat",
|
"Community Reviews": "Comentaris de la comunitat",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Completaments",
|
"Completions": "Completaments",
|
||||||
"Compress Images in Channels": "Comprimir imatges en els canals",
|
"Compress Images in Channels": "Comprimir imatges en els canals",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Peticions simultànies",
|
"Concurrent Requests": "Peticions simultànies",
|
||||||
"Config": "Configuració",
|
"Config": "Configuració",
|
||||||
"Config imported successfully": "Configuració importada correctament",
|
"Config imported successfully": "Configuració importada correctament",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "Eliminar un model",
|
"Delete a model": "Eliminar un model",
|
||||||
"Delete All": "Eliminar tot",
|
"Delete All": "Eliminar tot",
|
||||||
"Delete All Chats": "Eliminar tots els xats",
|
"Delete All Chats": "Eliminar tots els xats",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Eliminar tot el contingut d'aquesta carpeta",
|
"Delete all contents inside this folder": "Eliminar tot el contingut d'aquesta carpeta",
|
||||||
"Delete automation?": "Eliminar l'automatització",
|
"Delete automation?": "Eliminar l'automatització",
|
||||||
"Delete calendar": "Eliminar el calendari",
|
"Delete calendar": "Eliminar el calendari",
|
||||||
"Delete Calendar": "Eliminar el calendari",
|
"Delete Calendar": "Eliminar el calendari",
|
||||||
"Delete Chat": "Eliminar xat",
|
"Delete Chat": "Eliminar xat",
|
||||||
"Delete chat?": "Eliminar el xat?",
|
"Delete chat?": "Eliminar el xat?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "Eliminar l'esdeveniment",
|
"Delete Event": "Eliminar l'esdeveniment",
|
||||||
"Delete File": "Eliminar el fitxer",
|
"Delete File": "Eliminar el fitxer",
|
||||||
"Delete folder?": "Eliminar la carpeta?",
|
"Delete folder?": "Eliminar la carpeta?",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permeten als usuaris connectar-se als seus propis endpoints d'API compatibles amb OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permeten als usuaris connectar-se als seus propis endpoints d'API compatibles amb OpenAI.",
|
||||||
"Direct Message": "Missatge directe",
|
"Direct Message": "Missatge directe",
|
||||||
"Direct Tool Servers": "Servidors d'eines directes",
|
"Direct Tool Servers": "Servidors d'eines directes",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "La selecció de directori s'ha cancel·lat",
|
"Directory selection was cancelled": "La selecció de directori s'ha cancel·lat",
|
||||||
"Disable All": "Deshabilitar tot",
|
"Disable All": "Deshabilitar tot",
|
||||||
"Disable Code Interpreter": "Deshabilitar l'interpret de codi",
|
"Disable Code Interpreter": "Deshabilitar l'interpret de codi",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "Peticions concurrents d'incrustació",
|
"Embedding Concurrent Requests": "Peticions concurrents d'incrustació",
|
||||||
"Embedding Model": "Model d'incrustació",
|
"Embedding Model": "Model d'incrustació",
|
||||||
"Embedding Model Engine": "Motor de model d'incrustació",
|
"Embedding Model Engine": "Motor de model d'incrustació",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "Emojis",
|
"Emojis": "Emojis",
|
||||||
"Empty message": "Missatge buit",
|
"Empty message": "Missatge buit",
|
||||||
"Enable All": "Habilitar tot",
|
"Enable All": "Habilitar tot",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "Introdueix la clau API de Kagi Search",
|
"Enter Kagi Search API Key": "Introdueix la clau API de Kagi Search",
|
||||||
"Enter Key Behavior": "Introdueix el comportament de clau",
|
"Enter Key Behavior": "Introdueix el comportament de clau",
|
||||||
"Enter language codes": "Introdueix els codis de llenguatge",
|
"Enter language codes": "Introdueix els codis de llenguatge",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "Introdueix la clau API de MinerU",
|
"Enter MinerU API Key": "Introdueix la clau API de MinerU",
|
||||||
"Enter Mistral API Base URL": "Entra la URL Base de l'API de Mistral",
|
"Enter Mistral API Base URL": "Entra la URL Base de l'API de Mistral",
|
||||||
"Enter Mistral API Key": "Entra la clau API de Mistral",
|
"Enter Mistral API Key": "Entra la clau API de Mistral",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "No s'ha pogut arxivar el xat",
|
"Failed to archive chat.": "No s'ha pogut arxivar el xat",
|
||||||
"Failed to attach file": "No s'ha pogut adjuntar l'arxiu",
|
"Failed to attach file": "No s'ha pogut adjuntar l'arxiu",
|
||||||
"Failed to clear status": "No s'ha pogut esborar l'estat",
|
"Failed to clear status": "No s'ha pogut esborar l'estat",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "No s'ha pogut connecta al servidor d'eines OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "No s'ha pogut connecta al servidor d'eines OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "No s'ha pogut connecta al servidor de terminal {{URL}}",
|
"Failed to connect to {{URL}} terminal server": "No s'ha pogut connecta al servidor de terminal {{URL}}",
|
||||||
"Failed to copy link": "No s'ha pogut copiar l'enllaç",
|
"Failed to copy link": "No s'ha pogut copiar l'enllaç",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "El contingut de l'arxiu s'ha actualitzat correctament.",
|
"File content updated successfully.": "El contingut de l'arxiu s'ha actualitzat correctament.",
|
||||||
"File Context": "Contingut de l'arxiu",
|
"File Context": "Contingut de l'arxiu",
|
||||||
"File deleted successfully.": "L'arxiu s'ha eliminat correctament",
|
"File deleted successfully.": "L'arxiu s'ha eliminat correctament",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Mode d'arxiu",
|
"File Mode": "Mode d'arxiu",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Nom d'arxiu",
|
"File name": "Nom d'arxiu",
|
||||||
"File not found.": "No s'ha trobat l'arxiu.",
|
"File not found.": "No s'ha trobat l'arxiu.",
|
||||||
"File removed successfully.": "Arxiu eliminat correctament.",
|
"File removed successfully.": "Arxiu eliminat correctament.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "La mida del fitxer no ha de superar els {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "La mida del fitxer no ha de superar els {{maxSize}} MB.",
|
||||||
"File Upload": "Pujar arxiu",
|
"File Upload": "Pujar arxiu",
|
||||||
"File uploaded successfully": "Arxiu pujat satisfactòriament",
|
"File uploaded successfully": "Arxiu pujat satisfactòriament",
|
||||||
"File uploaded!": "Arxiu pujat!",
|
|
||||||
"Filename": "Nom de l'arxiu",
|
"Filename": "Nom de l'arxiu",
|
||||||
"Files": "Arxius",
|
"Files": "Arxius",
|
||||||
"Filter": "Filtre",
|
"Filter": "Filtre",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "Coneixement",
|
"Knowledge": "Coneixement",
|
||||||
"Knowledge Access": "Accés al coneixement",
|
"Knowledge Access": "Accés al coneixement",
|
||||||
"Knowledge Base": "Base de coneixement",
|
"Knowledge Base": "Base de coneixement",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Coneixement creat correctament.",
|
"Knowledge created successfully.": "Coneixement creat correctament.",
|
||||||
"Knowledge deleted successfully.": "Coneixement eliminat correctament.",
|
"Knowledge deleted successfully.": "Coneixement eliminat correctament.",
|
||||||
"Knowledge Description": "Descripció del coneixement",
|
"Knowledge Description": "Descripció del coneixement",
|
||||||
"Knowledge exported successfully": "El coneixement s'ha exportat correctament",
|
"Knowledge exported successfully": "El coneixement s'ha exportat correctament",
|
||||||
"Knowledge Name": "Nom del coneixement",
|
"Knowledge Name": "Nom del coneixement",
|
||||||
"Knowledge Public Sharing": "Compartir públicament el Coneixement",
|
"Knowledge Public Sharing": "Compartir públicament el Coneixement",
|
||||||
"Knowledge reset successfully.": "Coneixement restablert correctament.",
|
|
||||||
"Knowledge Sharing": "Compartir el coneixement",
|
"Knowledge Sharing": "Compartir el coneixement",
|
||||||
"Knowledge updated successfully": "Coneixement actualitzat correctament.",
|
"Knowledge updated successfully": "Coneixement actualitzat correctament.",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Navegador)",
|
"Kokoro.js (Browser)": "Kokoro.js (Navegador)",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "Clar",
|
"Light": "Clar",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limita les consultes de cerca simultànies. 0 = il·limitada (per defecte). Estableix-ho a 1 per a l'execució seqüencial (recomanat per a API amb límits de velocitat estrictes com el nivell gratuït de Brave).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limita les consultes de cerca simultànies. 0 = il·limitada (per defecte). Estableix-ho a 1 per a l'execució seqüencial (recomanat per a API amb límits de velocitat estrictes com el nivell gratuït de Brave).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limita el nombre de sol·licituds d'incrustació simultànies. Estableix-ho a 0 per a un nombre il·limitat.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limita el nombre de sol·licituds d'incrustació simultànies. Estableix-ho a 0 per a un nombre il·limitat.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Llista",
|
"List": "Llista",
|
||||||
"List calendars, search, create, update, and delete calendar events": "Llistar calendaris, cercar, crear, actualitzar i suprimir esdeveniments de calendari",
|
"List calendars, search, create, update, and delete calendar events": "Llistar calendaris, cercar, crear, actualitzar i suprimir esdeveniments de calendari",
|
||||||
"Listening...": "Escoltant...",
|
"Listening...": "Escoltant...",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "Nou calendari",
|
"New calendar": "Nou calendari",
|
||||||
"New Calendar": "Nou calendari",
|
"New Calendar": "Nou calendari",
|
||||||
"New Chat": "Nou xat",
|
"New Chat": "Nou xat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "Nou esdeveniment",
|
"New Event": "Nou esdeveniment",
|
||||||
"New File": "Nou arxiu",
|
"New File": "Nou arxiu",
|
||||||
"New Folder": "Nova carpeta",
|
"New Folder": "Nova carpeta",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "No s'ha trobat contingut HTML, CSS o JavaScript.",
|
"No HTML, CSS, or JavaScript content found.": "No s'ha trobat contingut HTML, CSS o JavaScript.",
|
||||||
"No inference engine with management support found": "No s'ha trobat un motor d'inferència amb suport de gestió",
|
"No inference engine with management support found": "No s'ha trobat un motor d'inferència amb suport de gestió",
|
||||||
"No kernel": "No hi ha cap kernel",
|
"No kernel": "No hi ha cap kernel",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "No s'han trobat bases de coneixement.",
|
"No knowledge bases found.": "No s'han trobat bases de coneixement.",
|
||||||
"No knowledge found": "No s'ha trobat Coneixement",
|
"No knowledge found": "No s'ha trobat Coneixement",
|
||||||
"No limit": "Sense límit",
|
"No limit": "Sense límit",
|
||||||
"No memories to clear": "No hi ha memòries per netejar",
|
"No memories to clear": "No hi ha memòries per netejar",
|
||||||
"No model IDs": "No hi ha IDs de model",
|
"No model IDs": "No hi ha IDs de model",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "No hi ha models disponibles",
|
"No models available": "No hi ha models disponibles",
|
||||||
"No models found": "No s'han trobat models",
|
"No models found": "No s'han trobat models",
|
||||||
"No models selected": "No s'ha seleccionat cap model",
|
"No models selected": "No s'ha seleccionat cap model",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "No hi ha cap configuració de terminal configurada.",
|
"No Terminal connection configured.": "No hi ha cap configuració de terminal configurada.",
|
||||||
"No terminal connections configured.": "No hi ha connexions de terminal configurades.",
|
"No terminal connections configured.": "No hi ha connexions de terminal configurades.",
|
||||||
"No tool server connections configured.": "No hi ha connexions a servidors d'eines configurades.",
|
"No tool server connections configured.": "No hi ha connexions a servidors d'eines configurades.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "No s'han trobat eines",
|
"No tools found": "No s'han trobat eines",
|
||||||
"No users were found.": "No s'han trobat usuaris",
|
"No users were found.": "No s'han trobat usuaris",
|
||||||
"No valves": "No hi ha valves",
|
"No valves": "No hi ha valves",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "Activat",
|
"On": "Activat",
|
||||||
"Once": "Una vegada",
|
"Once": "Una vegada",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Només està actiu quan l'opció \"Enganxa text gran com a fitxer\" està activada.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Només està actiu quan l'opció \"Enganxa text gran com a fitxer\" està activada.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Només s'activa quan l'entrada del xat està en focus i un LLM està generant una resposta.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Només s'activa quan l'entrada del xat està en focus i un LLM està generant una resposta.",
|
||||||
"Only active when the chat input is in focus.": "Només actiu quan l'entrada del xat està en focus.",
|
"Only active when the chat input is in focus.": "Només actiu quan l'entrada del xat està en focus.",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "Document PDF (.pdf)",
|
"PDF document (.pdf)": "Document PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extreu imatges del PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extreu imatges del PDF (OCR)",
|
||||||
"PDF Loader Mode": "Mode de càrrega de PDF",
|
"PDF Loader Mode": "Mode de càrrega de PDF",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "pendent",
|
"pending": "pendent",
|
||||||
"Pending": "Pendent",
|
"Pending": "Pendent",
|
||||||
"Pending User Overlay Content": "Contingut de la finestra d'usuari pendent",
|
"Pending User Overlay Content": "Contingut de la finestra d'usuari pendent",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "L'identificador de prefix s'utilitza per evitar conflictes amb altres connexions afegint un prefix als ID de model; deixa'l en blanc per desactivar-lo.",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "L'identificador de prefix s'utilitza per evitar conflictes amb altres connexions afegint un prefix als ID de model; deixa'l en blanc per desactivar-lo.",
|
||||||
"Prevent File Creation": "Prevenir la creació d'arxius",
|
"Prevent File Creation": "Prevenir la creació d'arxius",
|
||||||
"Preview": "Previsualització",
|
"Preview": "Previsualització",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 dies anteriors",
|
"Previous 30 days": "30 dies anteriors",
|
||||||
"Previous 7 days": "7 dies anteriors",
|
"Previous 7 days": "7 dies anteriors",
|
||||||
"Previous message": "Missatge anterior",
|
"Previous message": "Missatge anterior",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "Eliminar dels favorits",
|
"Remove from favorites": "Eliminar dels favorits",
|
||||||
"Remove image": "Eliminar imatge",
|
"Remove image": "Eliminar imatge",
|
||||||
"Remove Model": "Eliminar el model",
|
"Remove Model": "Eliminar el model",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Canviar el nom",
|
"Rename": "Canviar el nom",
|
||||||
"Renamed to {{name}}": "S'ha renombrat a {{name}}",
|
"Renamed to {{name}}": "S'ha renombrat a {{name}}",
|
||||||
"Render Markdown in Assistant Messages": "Renderitzar el Markdown dels missatges de l'assistent",
|
"Render Markdown in Assistant Messages": "Renderitzar el Markdown dels missatges de l'assistent",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "Restableix",
|
"Reset": "Restableix",
|
||||||
"Reset All Models": "Restablir tots els models",
|
"Reset All Models": "Restablir tots els models",
|
||||||
"Reset Image": "Restableix la imatge",
|
"Reset Image": "Restableix la imatge",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Restableix el directori de pujades",
|
"Reset Upload Directory": "Restableix el directori de pujades",
|
||||||
"Reset Vector Storage/Knowledge": "Restableix el Repositori de vectors/Coneixement",
|
"Reset Vector Storage/Knowledge": "Restableix el Repositori de vectors/Coneixement",
|
||||||
"Reset view": "Netejar la vista",
|
"Reset view": "Netejar la vista",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "Cercar indicacions",
|
"Search Prompts": "Cercar indicacions",
|
||||||
"Search Result Count": "Recompte de resultats de cerca",
|
"Search Result Count": "Recompte de resultats de cerca",
|
||||||
"Search Skills": "Cerca habilitats",
|
"Search Skills": "Cerca habilitats",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Cercar a internet",
|
"Search the internet": "Cercar a internet",
|
||||||
"Search the web and fetch URLs": "Cerca la web i obté les URL",
|
"Search the web and fetch URLs": "Cerca la web i obté les URL",
|
||||||
"Search Tools": "Cercar eines",
|
"Search Tools": "Cercar eines",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "Canviar a l'editor JSON",
|
"Switch to JSON editor": "Canviar a l'editor JSON",
|
||||||
"Switch to visual editor": "Canviar a l'editor visual",
|
"Switch to visual editor": "Canviar a l'editor visual",
|
||||||
"Sync": "Sincronitzar",
|
"Sync": "Sincronitzar",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Sincronia completada",
|
"Sync Complete!": "Sincronia completada",
|
||||||
"Sync directory": "Sincronitzar directori",
|
"Sync directory": "Sincronitzar directori",
|
||||||
"Sync Failed": "La sincronia ha fallat",
|
"Sync Failed": "La sincronia ha fallat",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Aquesta opció controla quants tokens es conserven en actualitzar el context. Per exemple, si s'estableix en 2, es conservaran els darrers 2 tokens del context de conversa. Preservar el context pot ajudar a mantenir la continuïtat d'una conversa, però pot reduir la capacitat de respondre a nous temes.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Aquesta opció controla quants tokens es conserven en actualitzar el context. Per exemple, si s'estableix en 2, es conservaran els darrers 2 tokens del context de conversa. Preservar el context pot ajudar a mantenir la continuïtat d'una conversa, però pot reduir la capacitat de respondre a nous temes.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Aquesta opció activa o desactiva l'ús de la funció de raonament a Ollama, que permet que el model pensi abans de generar una resposta. Quan està activada, el model pot trigar una estona en processar el context de la conversa i generar una resposta més reflexiva.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Aquesta opció activa o desactiva l'ús de la funció de raonament a Ollama, que permet que el model pensi abans de generar una resposta. Quan està activada, el model pot trigar una estona en processar el context de la conversa i generar una resposta més reflexiva.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Aquesta opció estableix el nombre màxim de tokens que el model pot generar en la seva resposta. Augmentar aquest límit permet que el model proporcioni respostes més llargues, però també pot augmentar la probabilitat que es generi contingut poc útil o irrellevant.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Aquesta opció estableix el nombre màxim de tokens que el model pot generar en la seva resposta. Augmentar aquest límit permet que el model proporcioni respostes més llargues, però també pot augmentar la probabilitat que es generi contingut poc útil o irrellevant.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Aquesta opció eliminarà tots els fitxers existents de la col·lecció i els substituirà per fitxers recentment penjats.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Aquesta resposta l'ha generat el model \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Aquesta resposta l'ha generat el model \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Aquesta plantilla conté diversos marcadors de posició de context ([context] o {{CONTEXT}}). El context s'injectarà a cada aparició.",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Aquesta plantilla conté diversos marcadors de posició de context ([context] o {{CONTEXT}}). El context s'injectarà a cada aparició.",
|
||||||
"This will delete": "Això eliminarà",
|
"This will delete": "Això eliminarà",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "Això eliminarà tots els models incloent els personalitzats",
|
"This will delete all models including custom models": "Això eliminarà tots els models incloent els personalitzats",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Això eliminarà tots els models incloent els personalitzats i no es pot desfer",
|
"This will delete all models including custom models and cannot be undone.": "Això eliminarà tots els models incloent els personalitzats i no es pot desfer",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Això eliminarà permanentment el calendari \"{{name}}\" i tots els seus esdeveniments. Aquesta acció no es pot desfer.",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Això eliminarà permanentment el calendari \"{{name}}\" i tots els seus esdeveniments. Aquesta acció no es pot desfer.",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Això restablirà la base de coneixement i sincronitzarà tots els fitxers. Vols continuar?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Explicació en detall",
|
"Thorough explanation": "Explicació en detall",
|
||||||
"Thought": "Pensament",
|
"Thought": "Pensament",
|
||||||
"Thought for {{DURATION}}": "He pensat durant {{DURATION}}",
|
"Thought for {{DURATION}}": "He pensat durant {{DURATION}}",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "Activa/Desactiva 1 font",
|
"Toggle 1 source": "Activa/Desactiva 1 font",
|
||||||
"Toggle details": "Activar/Desactivar els detalls",
|
"Toggle details": "Activar/Desactivar els detalls",
|
||||||
"Toggle Dictation": "Activa/Desactiva el dictat",
|
"Toggle Dictation": "Activa/Desactiva el dictat",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Activa/Desactiva la barra lateral",
|
"Toggle Sidebar": "Activa/Desactiva la barra lateral",
|
||||||
"Toggle status history": "Activa/Desactiva l'estat de l'històric",
|
"Toggle status history": "Activa/Desactiva l'estat de l'històric",
|
||||||
"Toggle whether current connection is active.": "Alterna si la connexió actual està activa.",
|
"Toggle whether current connection is active.": "Alterna si la connexió actual està activa.",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "Progrés de càrrega",
|
"Upload Progress": "Progrés de càrrega",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progrés de la pujada: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progrés de la pujada: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Arxius o imatges pujats",
|
"Uploaded files or images": "Arxius o imatges pujats",
|
||||||
"Uploading file...": "Pujant l'arxiu...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Pujant...",
|
"Uploading...": "Pujant...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "La URL és necessaria",
|
"URL is required": "La URL és necessaria",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "Grups d'usuari",
|
"User Groups": "Grups d'usuari",
|
||||||
"User location successfully retrieved.": "Ubicació de l'usuari obtinguda correctament",
|
"User location successfully retrieved.": "Ubicació de l'usuari obtinguda correctament",
|
||||||
"User menu": "Menú d'usuari",
|
"User menu": "Menú d'usuari",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Valoracions dels usuaris (polze amunt/avall)",
|
"User ratings (thumbs up/down)": "Valoracions dels usuaris (polze amunt/avall)",
|
||||||
"User Status": "Estats d'usuari",
|
"User Status": "Estats d'usuari",
|
||||||
"User Webhooks": "Webhooks d'usuari",
|
"User Webhooks": "Webhooks d'usuari",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "",
|
"{{ models }}": "",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "magamit nga mga tiggamit",
|
"available users": "magamit nga mga tiggamit",
|
||||||
"available!": "magamit!",
|
"available!": "magamit!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Pag-order",
|
"Command": "Pag-order",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "",
|
"Concurrent Requests": "",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Pagtangtang sa usa ka template",
|
"Delete a model": "Pagtangtang sa usa ka template",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "",
|
"Delete All Chats": "",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "",
|
"Delete Chat": "",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "",
|
"Embedding Model": "",
|
||||||
"Embedding Model Engine": "",
|
"Embedding Model Engine": "",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "",
|
"Enter language codes": "",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "File mode",
|
"File Mode": "File mode",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Wala makit-an ang file.",
|
"File not found.": "Wala makit-an ang file.",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Kahayag",
|
"Light": "Kahayag",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Bag-ong diskusyon",
|
"New Chat": "Bag-ong diskusyon",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Gipaandar",
|
"On": "Gipaandar",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "",
|
"PDF document (.pdf)": "",
|
||||||
"PDF Extract Images (OCR)": "PDF Image Extraction (OCR)",
|
"PDF Extract Images (OCR)": "PDF Image Extraction (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "gipugngan",
|
"pending": "gipugngan",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "",
|
"Previous 30 days": "",
|
||||||
"Previous 7 days": "",
|
"Previous 7 days": "",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "",
|
"Remove Model": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "",
|
"Rename": "",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "I-reset ang hulagway",
|
"Reset Image": "I-reset ang hulagway",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Pangitaa ang mga prompt",
|
"Search Prompts": "Pangitaa ang mga prompt",
|
||||||
"Search Result Count": "",
|
"Search Result Count": "",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "",
|
"Thorough explanation": "",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Pag-uswag sa Pag-upload",
|
"Upload Progress": "Pag-uswag sa Pag-upload",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,21 @@
|
|||||||
"[Today at] h:mm A": "[Dnes v] h:mm A",
|
"[Today at] h:mm A": "[Dnes v] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Včera v] h:mm A",
|
"[Yesterday at] h:mm A": "[Včera v] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} dostupných nástrojů",
|
"{{COUNT}} Available Tools": "{{COUNT}} dostupných nástrojů",
|
||||||
"{{COUNT}} characters": "{{COUNT}} znaků",
|
"{{COUNT}} characters": "{{COUNT}} znaků",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_few": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} skrytých řádků",
|
"{{COUNT}} hidden lines": "{{COUNT}} skrytých řádků",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_few": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} odpovědí",
|
"{{COUNT}} Replies": "{{COUNT}} odpovědí",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -195,6 +204,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "Opravdu chcete smazat tento kanál?",
|
"Are you sure you want to delete this channel?": "Opravdu chcete smazat tento kanál?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Opravdu chcete smazat tuto zprávu?",
|
"Are you sure you want to delete this message?": "Opravdu chcete smazat tuto zprávu?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -241,6 +251,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Seznam dostupných",
|
"Available list": "Seznam dostupných",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Dostupné nástroje",
|
"Available Tools": "Dostupné nástroje",
|
||||||
"available users": "dostupní uživatelé",
|
"available users": "dostupní uživatelé",
|
||||||
"available!": "k dispozici!",
|
"available!": "k dispozici!",
|
||||||
@@ -400,13 +411,19 @@
|
|||||||
"ComfyUI Workflow": "Pracovní postup ComfyUI",
|
"ComfyUI Workflow": "Pracovní postup ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Uzly pracovního postupu ComfyUI",
|
"ComfyUI Workflow Nodes": "Uzly pracovního postupu ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID uzlů oddělená čárkou (např. 1 nebo 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID uzlů oddělená čárkou (např. 1 nebo 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Příkaz",
|
"Command": "Příkaz",
|
||||||
"Comment": "Komentář",
|
"Comment": "Komentář",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Dokončení",
|
"Completions": "Dokončení",
|
||||||
"Compress Images in Channels": "Komprimovat obrázky v kanálech",
|
"Compress Images in Channels": "Komprimovat obrázky v kanálech",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_few": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Souběžné požadavky",
|
"Concurrent Requests": "Souběžné požadavky",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "Konfigurace byla úspěšně importována",
|
"Config imported successfully": "Konfigurace byla úspěšně importována",
|
||||||
@@ -539,12 +556,14 @@
|
|||||||
"Delete a model": "Smazat model",
|
"Delete a model": "Smazat model",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Smazat všechny konverzace",
|
"Delete All Chats": "Smazat všechny konverzace",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Smazat konverzaci",
|
"Delete Chat": "Smazat konverzaci",
|
||||||
"Delete chat?": "Smazat konverzaci?",
|
"Delete chat?": "Smazat konverzaci?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Smazat složku?",
|
"Delete folder?": "Smazat složku?",
|
||||||
@@ -581,6 +600,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Přímá připojení umožňují uživatelům připojit se k vlastním koncovým bodům API kompatibilním s OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Přímá připojení umožňují uživatelům připojit se k vlastním koncovým bodům API kompatibilním s OpenAI.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "Přímé servery nástrojů",
|
"Direct Tool Servers": "Přímé servery nástrojů",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Výběr adresáře byl zrušen",
|
"Directory selection was cancelled": "Výběr adresáře byl zrušen",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "Zakázat interpret kódu",
|
"Disable Code Interpreter": "Zakázat interpret kódu",
|
||||||
@@ -689,6 +713,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Model pro vektorizaci",
|
"Embedding Model": "Model pro vektorizaci",
|
||||||
"Embedding Model Engine": "Jádro modelu pro vektorizaci",
|
"Embedding Model Engine": "Jádro modelu pro vektorizaci",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -767,6 +792,7 @@
|
|||||||
"Enter Kagi Search API Key": "Zadejte API klíč pro Kagi Search",
|
"Enter Kagi Search API Key": "Zadejte API klíč pro Kagi Search",
|
||||||
"Enter Key Behavior": "Zadejte chování klávesy",
|
"Enter Key Behavior": "Zadejte chování klávesy",
|
||||||
"Enter language codes": "Zadejte kódy jazyků",
|
"Enter language codes": "Zadejte kódy jazyků",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "Zadejte API klíč pro Mistral",
|
"Enter Mistral API Key": "Zadejte API klíč pro Mistral",
|
||||||
@@ -903,6 +929,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Nepodařilo se připojit k serveru nástrojů OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Nepodařilo se připojit k serveru nástrojů OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "Nepodařilo se zkopírovat odkaz",
|
"Failed to copy link": "Nepodařilo se zkopírovat odkaz",
|
||||||
@@ -956,14 +983,16 @@
|
|||||||
"File content updated successfully.": "Obsah souboru byl úspěšně aktualizován.",
|
"File content updated successfully.": "Obsah souboru byl úspěšně aktualizován.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Režim souboru",
|
"File Mode": "Režim souboru",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Soubor nenalezen.",
|
"File not found.": "Soubor nenalezen.",
|
||||||
"File removed successfully.": "Soubor byl úspěšně odstraněn.",
|
"File removed successfully.": "Soubor byl úspěšně odstraněn.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Velikost souboru by neměla překročit {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Velikost souboru by neměla překročit {{maxSize}} MB.",
|
||||||
"File Upload": "Nahrání souboru",
|
"File Upload": "Nahrání souboru",
|
||||||
"File uploaded successfully": "Soubor byl úspěšně nahrán",
|
"File uploaded successfully": "Soubor byl úspěšně nahrán",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Soubory",
|
"Files": "Soubory",
|
||||||
"Filter": "Filtr",
|
"Filter": "Filtr",
|
||||||
@@ -1179,13 +1208,13 @@
|
|||||||
"Knowledge": "Znalosti",
|
"Knowledge": "Znalosti",
|
||||||
"Knowledge Access": "Přístup ke znalostem",
|
"Knowledge Access": "Přístup ke znalostem",
|
||||||
"Knowledge Base": "Znalostní báze",
|
"Knowledge Base": "Znalostní báze",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Znalost byla úspěšně vytvořena.",
|
"Knowledge created successfully.": "Znalost byla úspěšně vytvořena.",
|
||||||
"Knowledge deleted successfully.": "Znalost byla úspěšně smazána.",
|
"Knowledge deleted successfully.": "Znalost byla úspěšně smazána.",
|
||||||
"Knowledge Description": "Popis znalosti",
|
"Knowledge Description": "Popis znalosti",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "Název znalosti",
|
"Knowledge Name": "Název znalosti",
|
||||||
"Knowledge Public Sharing": "Veřejné sdílení znalostí",
|
"Knowledge Public Sharing": "Veřejné sdílení znalostí",
|
||||||
"Knowledge reset successfully.": "Znalosti byly úspěšně resetovány.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "Znalost byla úspěšně aktualizována",
|
"Knowledge updated successfully": "Znalost byla úspěšně aktualizována",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (prohlížeč)",
|
"Kokoro.js (Browser)": "Kokoro.js (prohlížeč)",
|
||||||
@@ -1229,6 +1258,7 @@
|
|||||||
"Light": "Světlý",
|
"Light": "Světlý",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Poslouchám...",
|
"Listening...": "Poslouchám...",
|
||||||
@@ -1379,6 +1409,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Nová konverzace",
|
"New Chat": "Nová konverzace",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Nová složka",
|
"New Folder": "Nová složka",
|
||||||
@@ -1424,11 +1456,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Nebyl nalezen žádný obsah HTML, CSS ani JavaScriptu.",
|
"No HTML, CSS, or JavaScript content found.": "Nebyl nalezen žádný obsah HTML, CSS ani JavaScriptu.",
|
||||||
"No inference engine with management support found": "Nebyl nalezeno žádné inferenční jádro s podporou správy",
|
"No inference engine with management support found": "Nebyl nalezeno žádné inferenční jádro s podporou správy",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Nebyly nalezeny žádné znalosti",
|
"No knowledge found": "Nebyly nalezeny žádné znalosti",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Žádné vzpomínky k vymazání",
|
"No memories to clear": "Žádné vzpomínky k vymazání",
|
||||||
"No model IDs": "Žádná ID modelů",
|
"No model IDs": "Žádná ID modelů",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Nebyly nalezeny žádné modely",
|
"No models found": "Nebyly nalezeny žádné modely",
|
||||||
"No models selected": "Nebyly vybrány žádné modely",
|
"No models selected": "Nebyly vybrány žádné modely",
|
||||||
@@ -1449,6 +1483,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Nebyly nalezeny žádné nástroje",
|
"No tools found": "Nebyly nalezeny žádné nástroje",
|
||||||
"No users were found.": "Nebyli nalezeni žádní uživatelé.",
|
"No users were found.": "Nebyli nalezeni žádní uživatelé.",
|
||||||
"No valves": "Žádné valves",
|
"No valves": "Žádné valves",
|
||||||
@@ -1488,6 +1523,7 @@
|
|||||||
"On": "Zapnuto",
|
"On": "Zapnuto",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1559,6 +1595,7 @@
|
|||||||
"PDF document (.pdf)": "Dokument PDF (.pdf)",
|
"PDF document (.pdf)": "Dokument PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extrahovat obrázky z PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extrahovat obrázky z PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "čeká na vyřízení",
|
"pending": "čeká na vyřízení",
|
||||||
"Pending": "Čeká na vyřízení",
|
"Pending": "Čeká na vyřízení",
|
||||||
"Pending User Overlay Content": "Obsah překryvné vrstvy pro čekajícího uživatele",
|
"Pending User Overlay Content": "Obsah překryvné vrstvy pro čekajícího uživatele",
|
||||||
@@ -1620,6 +1657,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefix ID se používá k zamezení konfliktů s jinými připojeními přidáním prefixu k ID modelů - pro vypnutí ponechte prázdné",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefix ID se používá k zamezení konfliktů s jinými připojeními přidáním prefixu k ID modelů - pro vypnutí ponechte prázdné",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "Náhled",
|
"Preview": "Náhled",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Posledních 30 dní",
|
"Previous 30 days": "Posledních 30 dní",
|
||||||
"Previous 7 days": "Posledních 7 dní",
|
"Previous 7 days": "Posledních 7 dní",
|
||||||
"Previous message": "Předchozí zpráva",
|
"Previous message": "Předchozí zpráva",
|
||||||
@@ -1697,6 +1735,10 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "Odebrat obrázek",
|
"Remove image": "Odebrat obrázek",
|
||||||
"Remove Model": "Odebrat model",
|
"Remove Model": "Odebrat model",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._few": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Přejmenovat",
|
"Rename": "Přejmenovat",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1715,6 +1757,7 @@
|
|||||||
"Reset": "Resetovat",
|
"Reset": "Resetovat",
|
||||||
"Reset All Models": "Resetovat všechny modely",
|
"Reset All Models": "Resetovat všechny modely",
|
||||||
"Reset Image": "Resetovat obrázek",
|
"Reset Image": "Resetovat obrázek",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Resetovat adresář pro nahrávání",
|
"Reset Upload Directory": "Resetovat adresář pro nahrávání",
|
||||||
"Reset Vector Storage/Knowledge": "Resetovat vektorové úložiště/znalosti",
|
"Reset Vector Storage/Knowledge": "Resetovat vektorové úložiště/znalosti",
|
||||||
"Reset view": "Resetovat zobrazení",
|
"Reset view": "Resetovat zobrazení",
|
||||||
@@ -1784,6 +1827,7 @@
|
|||||||
"Search Prompts": "Hledat instrukce",
|
"Search Prompts": "Hledat instrukce",
|
||||||
"Search Result Count": "Počet výsledků hledání",
|
"Search Result Count": "Počet výsledků hledání",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Hledat na internetu",
|
"Search the internet": "Hledat na internetu",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Hledat nástroje",
|
"Search Tools": "Hledat nástroje",
|
||||||
@@ -1983,6 +2027,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Synchronizovat adresář",
|
"Sync directory": "Synchronizovat adresář",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2055,7 +2101,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Tato možnost řídí, kolik tokenů se zachová při obnovování kontextu. Například, pokud je nastavena na 2, poslední 2 tokeny kontextu konverzace budou zachovány. Zachování kontextu může pomoci udržet kontinuitu konverzace, ale může snížit schopnost reagovat na nová témata.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Tato možnost řídí, kolik tokenů se zachová při obnovování kontextu. Například, pokud je nastavena na 2, poslední 2 tokeny kontextu konverzace budou zachovány. Zachování kontextu může pomoci udržet kontinuitu konverzace, ale může snížit schopnost reagovat na nová témata.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Tato možnost povoluje nebo zakazuje použití funkce uvažování v Ollama, která umožňuje modelu přemýšlet před generováním odpovědi. Když je povolena, model si může vzít chvíli na zpracování kontextu konverzace a vygenerovat promyšlenější odpověď.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Tato možnost povoluje nebo zakazuje použití funkce uvažování v Ollama, která umožňuje modelu přemýšlet před generováním odpovědi. Když je povolena, model si může vzít chvíli na zpracování kontextu konverzace a vygenerovat promyšlenější odpověď.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Tato možnost nastavuje maximální počet tokenů, které může model vygenerovat ve své odpovědi. Zvýšení tohoto limitu umožňuje modelu poskytovat delší odpovědi, ale může také zvýšit pravděpodobnost generování neužitečného nebo irelevantního obsahu.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Tato možnost nastavuje maximální počet tokenů, které může model vygenerovat ve své odpovědi. Zvýšení tohoto limitu umožňuje modelu poskytovat delší odpovědi, ale může také zvýšit pravděpodobnost generování neužitečného nebo irelevantního obsahu.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Tato volba smaže všechny existující soubory v kolekci a nahradí je nově nahranými soubory.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Tato odpověď byla vygenerována modelem \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Tato odpověď byla vygenerována modelem \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Tím se smaže",
|
"This will delete": "Tím se smaže",
|
||||||
@@ -2063,7 +2108,7 @@
|
|||||||
"This will delete all models including custom models": "Tím se smažou všechny modely včetně vlastních modelů",
|
"This will delete all models including custom models": "Tím se smažou všechny modely včetně vlastních modelů",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Tím se smažou všechny modely včetně vlastních a tuto akci nelze vrátit zpět.",
|
"This will delete all models including custom models and cannot be undone.": "Tím se smažou všechny modely včetně vlastních a tuto akci nelze vrátit zpět.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Tím se resetuje znalostní báze a synchronizují se všechny soubory. Přejete si pokračovat?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Důkladné vysvětlení",
|
"Thorough explanation": "Důkladné vysvětlení",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Přemýšlel po dobu {{DURATION}}",
|
"Thought for {{DURATION}}": "Přemýšlel po dobu {{DURATION}}",
|
||||||
@@ -2099,6 +2144,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "Přepnout, zda je aktuální připojení aktivní.",
|
"Toggle whether current connection is active.": "Přepnout, zda je aktuální připojení aktivní.",
|
||||||
@@ -2177,7 +2223,7 @@
|
|||||||
"Upload Progress": "Průběh nahrávání",
|
"Upload Progress": "Průběh nahrávání",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Průběh nahrávání: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Průběh nahrávání: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL je vyžadována",
|
"URL is required": "URL je vyžadována",
|
||||||
@@ -2197,6 +2243,7 @@
|
|||||||
"User Groups": "Skupiny uživatelů",
|
"User Groups": "Skupiny uživatelů",
|
||||||
"User location successfully retrieved.": "Poloha uživatele byla úspěšně získána.",
|
"User location successfully retrieved.": "Poloha uživatele byla úspěšně získána.",
|
||||||
"User menu": "Uživatelská nabídka",
|
"User menu": "Uživatelská nabídka",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "Uživatelské webhooky",
|
"User Webhooks": "Uživatelské webhooky",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[I dag kl.] h:mm A",
|
"[Today at] h:mm A": "[I dag kl.] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[I går kl.] h:mm A",
|
"[Yesterday at] h:mm A": "[I går kl.] h:mm A",
|
||||||
"{{ models }}": "{{ modeller }}",
|
"{{ models }}": "{{ modeller }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} Tilgængelige værktøjer",
|
"{{COUNT}} Available Tools": "{{COUNT}} Tilgængelige værktøjer",
|
||||||
"{{COUNT}} characters": "{{COUNT}} tegn",
|
"{{COUNT}} characters": "{{COUNT}} tegn",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} linjer udtrukket",
|
"{{COUNT}} extracted lines": "{{COUNT}} linjer udtrukket",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} skjulte linjer",
|
"{{COUNT}} hidden lines": "{{COUNT}} skjulte linjer",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} svar",
|
"{{COUNT}} Replies": "{{COUNT}} svar",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "Er du sikker på du vil slette denne kanal?",
|
"Are you sure you want to delete this channel?": "Er du sikker på du vil slette denne kanal?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Er du sikker på du vil slette denne besked?",
|
"Are you sure you want to delete this message?": "Er du sikker på du vil slette denne besked?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Tilgængelige lister",
|
"Available list": "Tilgængelige lister",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Tilgængelige værktøj",
|
"Available Tools": "Tilgængelige værktøj",
|
||||||
"available users": "tilgængelige brugere",
|
"available users": "tilgængelige brugere",
|
||||||
"available!": "tilgængelig!",
|
"available!": "tilgængelig!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI Workflow",
|
"ComfyUI Workflow": "ComfyUI Workflow",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI Workflow Nodes",
|
"ComfyUI Workflow Nodes": "ComfyUI Workflow Nodes",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Kommaseparerede node ID'er (f.eks. 1 eller 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Kommaseparerede node ID'er (f.eks. 1 eller 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Kommando",
|
"Command": "Kommando",
|
||||||
"Comment": "Kommentar",
|
"Comment": "Kommentar",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Completions",
|
"Completions": "Completions",
|
||||||
"Compress Images in Channels": "Komprimér billeder i kanaler",
|
"Compress Images in Channels": "Komprimér billeder i kanaler",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Concurrent requests",
|
"Concurrent Requests": "Concurrent requests",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "Konfiguration importeret",
|
"Config imported successfully": "Konfiguration importeret",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Slet en model",
|
"Delete a model": "Slet en model",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Slet alle chats",
|
"Delete All Chats": "Slet alle chats",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Slet alt indhold i denne mappe",
|
"Delete all contents inside this folder": "Slet alt indhold i denne mappe",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Slet chat",
|
"Delete Chat": "Slet chat",
|
||||||
"Delete chat?": "Slet chat?",
|
"Delete chat?": "Slet chat?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Slet mappe?",
|
"Delete folder?": "Slet mappe?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Direkte forbindelser tillader brugere at oprette forbindelse til deres egen OpenAI kompatible API endpoints.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Direkte forbindelser tillader brugere at oprette forbindelse til deres egen OpenAI kompatible API endpoints.",
|
||||||
"Direct Message": "Direkte besked",
|
"Direct Message": "Direkte besked",
|
||||||
"Direct Tool Servers": "Direkte værktøjsservere",
|
"Direct Tool Servers": "Direkte værktøjsservere",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Valg af mappe annulleret",
|
"Directory selection was cancelled": "Valg af mappe annulleret",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "Deaktiver kode interpreter",
|
"Disable Code Interpreter": "Deaktiver kode interpreter",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Embedding Model",
|
"Embedding Model": "Embedding Model",
|
||||||
"Embedding Model Engine": "Embedding Model engine",
|
"Embedding Model Engine": "Embedding Model engine",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Indtast Kagi Search API nøgle",
|
"Enter Kagi Search API Key": "Indtast Kagi Search API nøgle",
|
||||||
"Enter Key Behavior": "Indtast taste opførsel",
|
"Enter Key Behavior": "Indtast taste opførsel",
|
||||||
"Enter language codes": "Indtast sprogkoder",
|
"Enter language codes": "Indtast sprogkoder",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "Indtast Mistral API base URL",
|
"Enter Mistral API Base URL": "Indtast Mistral API base URL",
|
||||||
"Enter Mistral API Key": "Indtast Mistral API nøgle",
|
"Enter Mistral API Key": "Indtast Mistral API nøgle",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "Kunne ikke fjerne status",
|
"Failed to clear status": "Kunne ikke fjerne status",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Kunne ikke forbinde til {{URL}} OpenAPI tool server",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Kunne ikke forbinde til {{URL}} OpenAPI tool server",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "Kunne ikke kopiere link",
|
"Failed to copy link": "Kunne ikke kopiere link",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Filens indhold er opdateret.",
|
"File content updated successfully.": "Filens indhold er opdateret.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Filtilstand",
|
"File Mode": "Filtilstand",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Filen blev ikke fundet.",
|
"File not found.": "Filen blev ikke fundet.",
|
||||||
"File removed successfully.": "Fil fjernet.",
|
"File removed successfully.": "Fil fjernet.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Filstørrelsen må ikke overstige {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Filstørrelsen må ikke overstige {{maxSize}} MB.",
|
||||||
"File Upload": "Fil upload",
|
"File Upload": "Fil upload",
|
||||||
"File uploaded successfully": "Fil uploadet.",
|
"File uploaded successfully": "Fil uploadet.",
|
||||||
"File uploaded!": "Fil uploadet!",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Filer",
|
"Files": "Filer",
|
||||||
"Filter": "Filter",
|
"Filter": "Filter",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Viden",
|
"Knowledge": "Viden",
|
||||||
"Knowledge Access": "Videnadgang",
|
"Knowledge Access": "Videnadgang",
|
||||||
"Knowledge Base": "Vidensbase",
|
"Knowledge Base": "Vidensbase",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Viden oprettet.",
|
"Knowledge created successfully.": "Viden oprettet.",
|
||||||
"Knowledge deleted successfully.": "Viden slettet.",
|
"Knowledge deleted successfully.": "Viden slettet.",
|
||||||
"Knowledge Description": "Vidensbeskrivelse",
|
"Knowledge Description": "Vidensbeskrivelse",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "Vidensnavn",
|
"Knowledge Name": "Vidensnavn",
|
||||||
"Knowledge Public Sharing": "Viden offentlig deling",
|
"Knowledge Public Sharing": "Viden offentlig deling",
|
||||||
"Knowledge reset successfully.": "Viden nulstillet.",
|
|
||||||
"Knowledge Sharing": "Vidensdeling",
|
"Knowledge Sharing": "Vidensdeling",
|
||||||
"Knowledge updated successfully": "Viden opdateret.",
|
"Knowledge updated successfully": "Viden opdateret.",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Browser)",
|
"Kokoro.js (Browser)": "Kokoro.js (Browser)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Lys",
|
"Light": "Lys",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Lytter...",
|
"Listening...": "Lytter...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Ny chat",
|
"New Chat": "Ny chat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Ny mappe",
|
"New Folder": "Ny mappe",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Intet HTML-, CSS- eller JavaScript-indhold fundet.",
|
"No HTML, CSS, or JavaScript content found.": "Intet HTML-, CSS- eller JavaScript-indhold fundet.",
|
||||||
"No inference engine with management support found": "Ingen inference-engine med støtte til administration fundet",
|
"No inference engine with management support found": "Ingen inference-engine med støtte til administration fundet",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Ingen viden fundet",
|
"No knowledge found": "Ingen viden fundet",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Ingen hukommelser at ryde",
|
"No memories to clear": "Ingen hukommelser at ryde",
|
||||||
"No model IDs": "Ingen model-ID'er",
|
"No model IDs": "Ingen model-ID'er",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Ingen modeller fundet",
|
"No models found": "Ingen modeller fundet",
|
||||||
"No models selected": "Ingen modeller valgt",
|
"No models selected": "Ingen modeller valgt",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Ingen værktøjer fundet",
|
"No tools found": "Ingen værktøjer fundet",
|
||||||
"No users were found.": "Ingen brugere blev fundet.",
|
"No users were found.": "Ingen brugere blev fundet.",
|
||||||
"No valves": "Ingen ventiler",
|
"No valves": "Ingen ventiler",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Til",
|
"On": "Til",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Kun aktiv når \"Indsæt store tekster som fil\" indstillingen er slået til.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Kun aktiv når \"Indsæt store tekster som fil\" indstillingen er slået til.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Kun aktiv når chat-input er fokuseret og en LLM er ved at generere et svar.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Kun aktiv når chat-input er fokuseret og en LLM er ved at generere et svar.",
|
||||||
"Only active when the chat input is in focus.": "Kun aktiv når chat-input er fokuseret.",
|
"Only active when the chat input is in focus.": "Kun aktiv når chat-input er fokuseret.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF-dokument (.pdf)",
|
"PDF document (.pdf)": "PDF-dokument (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Udtræk billeder fra PDF (OCR)",
|
"PDF Extract Images (OCR)": "Udtræk billeder fra PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "afventer",
|
"pending": "afventer",
|
||||||
"Pending": "Afventer",
|
"Pending": "Afventer",
|
||||||
"Pending User Overlay Content": "Afventende bruger overlay indhold",
|
"Pending User Overlay Content": "Afventende bruger overlay indhold",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefix ID bruges til at undgå konflikter med andre forbindelser ved at tilføje et prefix til model-ID'erne - lad være tom for at deaktivere",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefix ID bruges til at undgå konflikter med andre forbindelser ved at tilføje et prefix til model-ID'erne - lad være tom for at deaktivere",
|
||||||
"Prevent File Creation": "Forhindr filoprettelse",
|
"Prevent File Creation": "Forhindr filoprettelse",
|
||||||
"Preview": "Forhåndsvisning",
|
"Preview": "Forhåndsvisning",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Seneste 30 dage",
|
"Previous 30 days": "Seneste 30 dage",
|
||||||
"Previous 7 days": "Seneste 7 dage",
|
"Previous 7 days": "Seneste 7 dage",
|
||||||
"Previous message": "Forrige besked",
|
"Previous message": "Forrige besked",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "Fjern billede",
|
"Remove image": "Fjern billede",
|
||||||
"Remove Model": "Fjern model",
|
"Remove Model": "Fjern model",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Omdøb",
|
"Rename": "Omdøb",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Nulstil",
|
"Reset": "Nulstil",
|
||||||
"Reset All Models": "Nulstil alle modeller",
|
"Reset All Models": "Nulstil alle modeller",
|
||||||
"Reset Image": "Nulstil billede",
|
"Reset Image": "Nulstil billede",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Nulstil uploadmappe",
|
"Reset Upload Directory": "Nulstil uploadmappe",
|
||||||
"Reset Vector Storage/Knowledge": "Nulstil vektor lager/viden",
|
"Reset Vector Storage/Knowledge": "Nulstil vektor lager/viden",
|
||||||
"Reset view": "Nulstil visning",
|
"Reset view": "Nulstil visning",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Søg i prompts",
|
"Search Prompts": "Søg i prompts",
|
||||||
"Search Result Count": "Antal søgeresultater",
|
"Search Result Count": "Antal søgeresultater",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Søg internettet",
|
"Search the internet": "Søg internettet",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Søg i værktøjer",
|
"Search Tools": "Søg i værktøjer",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Synkroniser mappe",
|
"Sync directory": "Synkroniser mappe",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Denne indstilling styrer hvor mange tokens der bevares ved opdatering af konteksten. For eksempel, hvis sat til 2, vil de sidste 2 tokens af samtale-konteksten blive bevaret. At bevare kontekst kan hjælpe med at opretholde kontinuiteten i en samtale, men det kan reducere evnen til at reagere på nye emner.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Denne indstilling styrer hvor mange tokens der bevares ved opdatering af konteksten. For eksempel, hvis sat til 2, vil de sidste 2 tokens af samtale-konteksten blive bevaret. At bevare kontekst kan hjælpe med at opretholde kontinuiteten i en samtale, men det kan reducere evnen til at reagere på nye emner.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Denne indstilling aktiverer eller deaktiverer brugen af ræsonnementsfunktionen i Ollama, som tillader modellen at tænke før den genererer et svar. Når aktiveret, kan modellen tage et øjeblik til at behandle samtale-konteksten og generere et mere gennemtænkt svar.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Denne indstilling aktiverer eller deaktiverer brugen af ræsonnementsfunktionen i Ollama, som tillader modellen at tænke før den genererer et svar. Når aktiveret, kan modellen tage et øjeblik til at behandle samtale-konteksten og generere et mere gennemtænkt svar.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Denne indstilling sætter det maksimale antal tokens modellen kan generere i sit svar. At øge denne grænse tillader modellen at give længere svar, men det kan også øge sandsynligheden for at unyttigt eller irrelevant indhold genereres.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Denne indstilling sætter det maksimale antal tokens modellen kan generere i sit svar. At øge denne grænse tillader modellen at give længere svar, men det kan også øge sandsynligheden for at unyttigt eller irrelevant indhold genereres.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Denne indstilling sletter alle eksisterende filer i samlingen og erstatter dem med nyligt uploadede filer.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Dette svar blev genereret af \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Dette svar blev genereret af \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Dette vil slette",
|
"This will delete": "Dette vil slette",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Dette vil slette alle modeller, inklusive brugerdefinerede modeller",
|
"This will delete all models including custom models": "Dette vil slette alle modeller, inklusive brugerdefinerede modeller",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Dette vil slette alle modeller, inklusive brugerdefinerede modeller og kan ikke fortrydes.",
|
"This will delete all models including custom models and cannot be undone.": "Dette vil slette alle modeller, inklusive brugerdefinerede modeller og kan ikke fortrydes.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Dette vil nulstille vidensbasen og synkronisere alle filer. Vil du fortsætte?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Grundig forklaring",
|
"Thorough explanation": "Grundig forklaring",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Tænkte i {{DURATION}}",
|
"Thought for {{DURATION}}": "Tænkte i {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Vis/skjul sidebar",
|
"Toggle Sidebar": "Vis/skjul sidebar",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "Skift om nuværende forbindelse er aktiv.",
|
"Toggle whether current connection is active.": "Skift om nuværende forbindelse er aktiv.",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Uploadfremdrift",
|
"Upload Progress": "Uploadfremdrift",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Uploadfremdrift: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Uploadfremdrift: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "Uploader fil...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL er påkrævet",
|
"URL is required": "URL er påkrævet",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "Brugergrupper",
|
"User Groups": "Brugergrupper",
|
||||||
"User location successfully retrieved.": "Brugerplacering hentet.",
|
"User location successfully retrieved.": "Brugerplacering hentet.",
|
||||||
"User menu": "Brugermenu",
|
"User menu": "Brugermenu",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "Bruger Webhooks",
|
"User Webhooks": "Bruger Webhooks",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[Heute um] h:mm A",
|
"[Today at] h:mm A": "[Heute um] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Gestern um] h:mm A",
|
"[Yesterday at] h:mm A": "[Gestern um] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} verfügbare Werkzeuge",
|
"{{COUNT}} Available Tools": "{{COUNT}} verfügbare Werkzeuge",
|
||||||
"{{COUNT}} characters": "{{COUNT}} Zeichen",
|
"{{COUNT}} characters": "{{COUNT}} Zeichen",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} extrahierte Zeilen",
|
"{{COUNT}} extracted lines": "{{COUNT}} extrahierte Zeilen",
|
||||||
"{{COUNT}} files": "{{COUNT}} Dateien",
|
"{{COUNT}} files": "{{COUNT}} Dateien",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} ausgeblendete Zeilen",
|
"{{COUNT}} hidden lines": "{{COUNT}} ausgeblendete Zeilen",
|
||||||
"{{COUNT}} members": "{{COUNT}} Mitglieder",
|
"{{COUNT}} members": "{{COUNT}} Mitglieder",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} Antworten",
|
"{{COUNT}} Replies": "{{COUNT}} Antworten",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} Reihen",
|
"{{COUNT}} Rows": "{{COUNT}} Reihen",
|
||||||
"{{count}} selected_one": "{{count}} ausgewählt",
|
"{{count}} selected_one": "{{count}} ausgewählt",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Sind Sie sicher, dass Sie alle Chats löschen wollen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Sind Sie sicher, dass Sie alle Chats löschen wollen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
||||||
"Are you sure you want to delete this channel?": "Sind Sie sicher, dass Sie diesen Kanal löschen möchten?",
|
"Are you sure you want to delete this channel?": "Sind Sie sicher, dass Sie diesen Kanal löschen möchten?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "Möchten Sie diese Verbindung wirklich löschen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "Möchten Sie diese Verbindung wirklich löschen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "Möchten Sie diese Erinnerung wirklich löschen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "Möchten Sie diese Erinnerung wirklich löschen? Dieser Vorgang kann nicht rückgängig gemacht werden.",
|
||||||
"Are you sure you want to delete this message?": "Sind Sie sicher, dass Sie diese Nachricht löschen möchten?",
|
"Are you sure you want to delete this message?": "Sind Sie sicher, dass Sie diese Nachricht löschen möchten?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Sind Sie sicher, dass Sie diese Version löschen wollen? Child-Versionen werden zu dem Parent dieser Version verlinkt.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Sind Sie sicher, dass Sie diese Version löschen wollen? Child-Versionen werden zu dem Parent dieser Version verlinkt.",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "Automatisierungen",
|
"Automations": "Automatisierungen",
|
||||||
"Available list": "Verfügbare Liste",
|
"Available list": "Verfügbare Liste",
|
||||||
"Available models": "Verfügbare Modelle",
|
"Available models": "Verfügbare Modelle",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Verfügbare Werkzeuge",
|
"Available Tools": "Verfügbare Werkzeuge",
|
||||||
"available users": "verfügbare Benutzer",
|
"available users": "verfügbare Benutzer",
|
||||||
"available!": "Verfügbar!",
|
"available!": "Verfügbar!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI-Workflow",
|
"ComfyUI Workflow": "ComfyUI-Workflow",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI-Workflow-Nodes",
|
"ComfyUI Workflow Nodes": "ComfyUI-Workflow-Nodes",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Kommagetrennte Node-IDs (z. B. 1 oder 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Kommagetrennte Node-IDs (z. B. 1 oder 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "Befehl",
|
"command": "Befehl",
|
||||||
"Command": "Befehl",
|
"Command": "Befehl",
|
||||||
"Comment": "Kommentar",
|
"Comment": "Kommentar",
|
||||||
"Commit Message": "Commit Nachricht",
|
"Commit Message": "Commit Nachricht",
|
||||||
"Community Reviews": "Community Bewertungen",
|
"Community Reviews": "Community Bewertungen",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Vervollständigungen",
|
"Completions": "Vervollständigungen",
|
||||||
"Compress Images in Channels": "Bilder in Kanälen komprimieren",
|
"Compress Images in Channels": "Bilder in Kanälen komprimieren",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Gleichzeitige Anfragen",
|
"Concurrent Requests": "Gleichzeitige Anfragen",
|
||||||
"Config": "Konfiguration",
|
"Config": "Konfiguration",
|
||||||
"Config imported successfully": "Konfiguration erfolgreich importiert",
|
"Config imported successfully": "Konfiguration erfolgreich importiert",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Ein Modell löschen",
|
"Delete a model": "Ein Modell löschen",
|
||||||
"Delete All": "Alle löschen",
|
"Delete All": "Alle löschen",
|
||||||
"Delete All Chats": "Alle Chats löschen",
|
"Delete All Chats": "Alle Chats löschen",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Alle Inhalte in diesem Ordner löschen",
|
"Delete all contents inside this folder": "Alle Inhalte in diesem Ordner löschen",
|
||||||
"Delete automation?": "Automatisierung löschen?",
|
"Delete automation?": "Automatisierung löschen?",
|
||||||
"Delete calendar": "Kalender löschen",
|
"Delete calendar": "Kalender löschen",
|
||||||
"Delete Calendar": "Kalender löschen",
|
"Delete Calendar": "Kalender löschen",
|
||||||
"Delete Chat": "Chat löschen",
|
"Delete Chat": "Chat löschen",
|
||||||
"Delete chat?": "Chat löschen?",
|
"Delete chat?": "Chat löschen?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "Ereignis löschen",
|
"Delete Event": "Ereignis löschen",
|
||||||
"Delete File": "Datei löschen",
|
"Delete File": "Datei löschen",
|
||||||
"Delete folder?": "Ordner löschen?",
|
"Delete folder?": "Ordner löschen?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Direktverbindungen erlauben Benutzern die Verbindung zu eigenen OpenAI-kompatiblen API-Endpunkten.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Direktverbindungen erlauben Benutzern die Verbindung zu eigenen OpenAI-kompatiblen API-Endpunkten.",
|
||||||
"Direct Message": "Direktnachricht",
|
"Direct Message": "Direktnachricht",
|
||||||
"Direct Tool Servers": "Direkte Tool-Server",
|
"Direct Tool Servers": "Direkte Tool-Server",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Verzeichnisauswahl wurde abgebrochen",
|
"Directory selection was cancelled": "Verzeichnisauswahl wurde abgebrochen",
|
||||||
"Disable All": "Alle deaktivieren",
|
"Disable All": "Alle deaktivieren",
|
||||||
"Disable Code Interpreter": "Code-Interpreter deaktivieren",
|
"Disable Code Interpreter": "Code-Interpreter deaktivieren",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "Gleichzeitige Embedding Anfragen",
|
"Embedding Concurrent Requests": "Gleichzeitige Embedding Anfragen",
|
||||||
"Embedding Model": "Embedding-Modell",
|
"Embedding Model": "Embedding-Modell",
|
||||||
"Embedding Model Engine": "Embedding-Modell-Engine",
|
"Embedding Model Engine": "Embedding-Modell-Engine",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "Emoji",
|
"Emojis": "Emoji",
|
||||||
"Empty message": "Leere Nachricht",
|
"Empty message": "Leere Nachricht",
|
||||||
"Enable All": "Alle aktivieren",
|
"Enable All": "Alle aktivieren",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Kagi Search API-Schlüssel eingeben",
|
"Enter Kagi Search API Key": "Kagi Search API-Schlüssel eingeben",
|
||||||
"Enter Key Behavior": "Eingabetasten-Verhalten",
|
"Enter Key Behavior": "Eingabetasten-Verhalten",
|
||||||
"Enter language codes": "Sprachcodes eingeben",
|
"Enter language codes": "Sprachcodes eingeben",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "MinerU-API-Schlüssel eingeben",
|
"Enter MinerU API Key": "MinerU-API-Schlüssel eingeben",
|
||||||
"Enter Mistral API Base URL": "Mistral API Basis-URL eingeben",
|
"Enter Mistral API Base URL": "Mistral API Basis-URL eingeben",
|
||||||
"Enter Mistral API Key": "Mistral API-Schlüssel eingeben",
|
"Enter Mistral API Key": "Mistral API-Schlüssel eingeben",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "Chat konnte nicht archiviert werden.",
|
"Failed to archive chat.": "Chat konnte nicht archiviert werden.",
|
||||||
"Failed to attach file": "Datei konnte nicht hinzugefügt werden",
|
"Failed to attach file": "Datei konnte nicht hinzugefügt werden",
|
||||||
"Failed to clear status": "Status konnte nicht geleert werden",
|
"Failed to clear status": "Status konnte nicht geleert werden",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Verbindung zum OpenAPI-Toolserver {{URL}} fehlgeschlagen",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Verbindung zum OpenAPI-Toolserver {{URL}} fehlgeschlagen",
|
||||||
"Failed to connect to {{URL}} terminal server": "Fehler beim Verbinden zum Terminal Server {{URL}}",
|
"Failed to connect to {{URL}} terminal server": "Fehler beim Verbinden zum Terminal Server {{URL}}",
|
||||||
"Failed to copy link": "Link konnte nicht kopiert werden",
|
"Failed to copy link": "Link konnte nicht kopiert werden",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Dateiinhalt erfolgreich aktualisiert.",
|
"File content updated successfully.": "Dateiinhalt erfolgreich aktualisiert.",
|
||||||
"File Context": "Datei-Kontext",
|
"File Context": "Datei-Kontext",
|
||||||
"File deleted successfully.": "Datei erfolgreich gelöscht.",
|
"File deleted successfully.": "Datei erfolgreich gelöscht.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Datei-Modus",
|
"File Mode": "Datei-Modus",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Dateiname",
|
"File name": "Dateiname",
|
||||||
"File not found.": "Datei nicht gefunden.",
|
"File not found.": "Datei nicht gefunden.",
|
||||||
"File removed successfully.": "Datei erfolgreich entfernt.",
|
"File removed successfully.": "Datei erfolgreich entfernt.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Dateigröße darf {{maxSize}} MB nicht überschreiten.",
|
"File size should not exceed {{maxSize}} MB.": "Dateigröße darf {{maxSize}} MB nicht überschreiten.",
|
||||||
"File Upload": "Dateiupload",
|
"File Upload": "Dateiupload",
|
||||||
"File uploaded successfully": "Datei erfolgreich hochgeladen",
|
"File uploaded successfully": "Datei erfolgreich hochgeladen",
|
||||||
"File uploaded!": "Datei hochgeladen!",
|
|
||||||
"Filename": "Dateiname",
|
"Filename": "Dateiname",
|
||||||
"Files": "Dateien",
|
"Files": "Dateien",
|
||||||
"Filter": "Filter",
|
"Filter": "Filter",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Wissen",
|
"Knowledge": "Wissen",
|
||||||
"Knowledge Access": "Wissenszugriff",
|
"Knowledge Access": "Wissenszugriff",
|
||||||
"Knowledge Base": "Wissensspeicher",
|
"Knowledge Base": "Wissensspeicher",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Wissen erfolgreich erstellt.",
|
"Knowledge created successfully.": "Wissen erfolgreich erstellt.",
|
||||||
"Knowledge deleted successfully.": "Wissen erfolgreich gelöscht.",
|
"Knowledge deleted successfully.": "Wissen erfolgreich gelöscht.",
|
||||||
"Knowledge Description": "Wissensbeschreibung",
|
"Knowledge Description": "Wissensbeschreibung",
|
||||||
"Knowledge exported successfully": "Wissensspeicher erfolgreich exportiert",
|
"Knowledge exported successfully": "Wissensspeicher erfolgreich exportiert",
|
||||||
"Knowledge Name": "Wissensname",
|
"Knowledge Name": "Wissensname",
|
||||||
"Knowledge Public Sharing": "Öffentliche Freigabe von Wissen",
|
"Knowledge Public Sharing": "Öffentliche Freigabe von Wissen",
|
||||||
"Knowledge reset successfully.": "Wissen erfolgreich zurückgesetzt.",
|
|
||||||
"Knowledge Sharing": "Wissen teilen",
|
"Knowledge Sharing": "Wissen teilen",
|
||||||
"Knowledge updated successfully": "Wissen erfolgreich aktualisiert",
|
"Knowledge updated successfully": "Wissen erfolgreich aktualisiert",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Browser)",
|
"Kokoro.js (Browser)": "Kokoro.js (Browser)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Hell",
|
"Light": "Hell",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Gleichzeitige Suchanfragen begrenzen. 0 = unbegrenzt (Standard). Auf 1 setzen für sequentielle Ausführung (empfohlen für APIs mit strengen Ratenbegrenzungen wie dem kostenlosen Brave-Tarif).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Gleichzeitige Suchanfragen begrenzen. 0 = unbegrenzt (Standard). Auf 1 setzen für sequentielle Ausführung (empfohlen für APIs mit strengen Ratenbegrenzungen wie dem kostenlosen Brave-Tarif).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limitiert die Anzahl gleichzeitiger embedding Anfragen. Auf 0 setzen für unlimitiert.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limitiert die Anzahl gleichzeitiger embedding Anfragen. Auf 0 setzen für unlimitiert.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Liste",
|
"List": "Liste",
|
||||||
"List calendars, search, create, update, and delete calendar events": "Kalender auflisten, suchen, erstellen, aktualisieren und löschen",
|
"List calendars, search, create, update, and delete calendar events": "Kalender auflisten, suchen, erstellen, aktualisieren und löschen",
|
||||||
"Listening...": "Höre zu...",
|
"Listening...": "Höre zu...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "Neuer Kalender",
|
"New calendar": "Neuer Kalender",
|
||||||
"New Calendar": "Neuer Kalender",
|
"New Calendar": "Neuer Kalender",
|
||||||
"New Chat": "Neuer Chat",
|
"New Chat": "Neuer Chat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "Neues Ereignis",
|
"New Event": "Neues Ereignis",
|
||||||
"New File": "Neue Datei",
|
"New File": "Neue Datei",
|
||||||
"New Folder": "Neuer Ordner",
|
"New Folder": "Neuer Ordner",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Keine HTML-, CSS- oder JavaScript-Inhalte gefunden.",
|
"No HTML, CSS, or JavaScript content found.": "Keine HTML-, CSS- oder JavaScript-Inhalte gefunden.",
|
||||||
"No inference engine with management support found": "Keine Inferenz-Engine mit Verwaltungsunterstützung gefunden",
|
"No inference engine with management support found": "Keine Inferenz-Engine mit Verwaltungsunterstützung gefunden",
|
||||||
"No kernel": "Kein Kernel",
|
"No kernel": "Kein Kernel",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "Keine Wissensspeicher gefunden.",
|
"No knowledge bases found.": "Keine Wissensspeicher gefunden.",
|
||||||
"No knowledge found": "Kein Wissen gefunden",
|
"No knowledge found": "Kein Wissen gefunden",
|
||||||
"No limit": "Kein Limit",
|
"No limit": "Kein Limit",
|
||||||
"No memories to clear": "Keine Erinnerungen zum Löschen",
|
"No memories to clear": "Keine Erinnerungen zum Löschen",
|
||||||
"No model IDs": "Keine Modell-IDs",
|
"No model IDs": "Keine Modell-IDs",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "Keine Modelle verfügbar",
|
"No models available": "Keine Modelle verfügbar",
|
||||||
"No models found": "Keine Modelle gefunden",
|
"No models found": "Keine Modelle gefunden",
|
||||||
"No models selected": "Keine Modelle ausgewählt",
|
"No models selected": "Keine Modelle ausgewählt",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "Keine Terminal Verbindung konfiguriert.",
|
"No Terminal connection configured.": "Keine Terminal Verbindung konfiguriert.",
|
||||||
"No terminal connections configured.": "Keine Terminal Verbindungen konfiguriert.",
|
"No terminal connections configured.": "Keine Terminal Verbindungen konfiguriert.",
|
||||||
"No tool server connections configured.": "Keine Werkzeug-Server Verbindungen konfiguriert.",
|
"No tool server connections configured.": "Keine Werkzeug-Server Verbindungen konfiguriert.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Keine Werkzeuge gefunden",
|
"No tools found": "Keine Werkzeuge gefunden",
|
||||||
"No users were found.": "Keine Benutzer gefunden.",
|
"No users were found.": "Keine Benutzer gefunden.",
|
||||||
"No valves": "Keine Valves",
|
"No valves": "Keine Valves",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Ein",
|
"On": "Ein",
|
||||||
"Once": "Einmalig",
|
"Once": "Einmalig",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Nur aktiv, wenn die Einstellung „Großen Text als Datei einfügen“ aktiviert ist.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Nur aktiv, wenn die Einstellung „Großen Text als Datei einfügen“ aktiviert ist.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Nur aktiv, wenn das Chat-Eingabefeld fokussiert ist und ein LLM eine Antwort generiert.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Nur aktiv, wenn das Chat-Eingabefeld fokussiert ist und ein LLM eine Antwort generiert.",
|
||||||
"Only active when the chat input is in focus.": "Nur aktiv, wenn das Chat-Eingabefeld fokussiert ist.",
|
"Only active when the chat input is in focus.": "Nur aktiv, wenn das Chat-Eingabefeld fokussiert ist.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF-Dokument (.pdf)",
|
"PDF document (.pdf)": "PDF-Dokument (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Bilder aus PDFs extrahieren (OCR)",
|
"PDF Extract Images (OCR)": "Bilder aus PDFs extrahieren (OCR)",
|
||||||
"PDF Loader Mode": "PDF Loader Modus",
|
"PDF Loader Mode": "PDF Loader Modus",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "ausstehend",
|
"pending": "ausstehend",
|
||||||
"Pending": "Ausstehend",
|
"Pending": "Ausstehend",
|
||||||
"Pending User Overlay Content": "Inhalt des Overlays 'Ausstehende Kontoaktivierung'",
|
"Pending User Overlay Content": "Inhalt des Overlays 'Ausstehende Kontoaktivierung'",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Die Präfix-ID wird verwendet, um Konflikte mit anderen Verbindungen zu vermeiden, indem ein Präfix zu den Modell-IDs hinzugefügt wird - zum Deaktivieren leer lassen.",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Die Präfix-ID wird verwendet, um Konflikte mit anderen Verbindungen zu vermeiden, indem ein Präfix zu den Modell-IDs hinzugefügt wird - zum Deaktivieren leer lassen.",
|
||||||
"Prevent File Creation": "Dateierstellung verhindern",
|
"Prevent File Creation": "Dateierstellung verhindern",
|
||||||
"Preview": "Vorschau",
|
"Preview": "Vorschau",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Letzte 30 Tage",
|
"Previous 30 days": "Letzte 30 Tage",
|
||||||
"Previous 7 days": "Letzte 7 Tage",
|
"Previous 7 days": "Letzte 7 Tage",
|
||||||
"Previous message": "Vorherige Nachricht",
|
"Previous message": "Vorherige Nachricht",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "Von Favoriten entfernen",
|
"Remove from favorites": "Von Favoriten entfernen",
|
||||||
"Remove image": "Bild entfernen",
|
"Remove image": "Bild entfernen",
|
||||||
"Remove Model": "Modell entfernen",
|
"Remove Model": "Modell entfernen",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Umbenennen",
|
"Rename": "Umbenennen",
|
||||||
"Renamed to {{name}}": "In {{name}} umbenannt",
|
"Renamed to {{name}}": "In {{name}} umbenannt",
|
||||||
"Render Markdown in Assistant Messages": "Markdown in Assistentennachrichten rendern",
|
"Render Markdown in Assistant Messages": "Markdown in Assistentennachrichten rendern",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Zurücksetzen",
|
"Reset": "Zurücksetzen",
|
||||||
"Reset All Models": "Alle Modelle zurücksetzen",
|
"Reset All Models": "Alle Modelle zurücksetzen",
|
||||||
"Reset Image": "Bild zurücksetzen",
|
"Reset Image": "Bild zurücksetzen",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Upload-Verzeichnis zurücksetzen",
|
"Reset Upload Directory": "Upload-Verzeichnis zurücksetzen",
|
||||||
"Reset Vector Storage/Knowledge": "Vektorspeicher/Wissen zurücksetzen",
|
"Reset Vector Storage/Knowledge": "Vektorspeicher/Wissen zurücksetzen",
|
||||||
"Reset view": "Ansicht zurücksetzen",
|
"Reset view": "Ansicht zurücksetzen",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Prompts durchsuchen...",
|
"Search Prompts": "Prompts durchsuchen...",
|
||||||
"Search Result Count": "Anzahl der Suchergebnisse",
|
"Search Result Count": "Anzahl der Suchergebnisse",
|
||||||
"Search Skills": "Durchsuche Skills",
|
"Search Skills": "Durchsuche Skills",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Das Internet durchsuchen",
|
"Search the internet": "Das Internet durchsuchen",
|
||||||
"Search the web and fetch URLs": "Durchsuche das Internet und rufe URLs auf",
|
"Search the web and fetch URLs": "Durchsuche das Internet und rufe URLs auf",
|
||||||
"Search Tools": "Werkzeuge durchsuchen...",
|
"Search Tools": "Werkzeuge durchsuchen...",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "Zum JSON-Editor wechseln",
|
"Switch to JSON editor": "Zum JSON-Editor wechseln",
|
||||||
"Switch to visual editor": "Zum visuellen Editor wechseln",
|
"Switch to visual editor": "Zum visuellen Editor wechseln",
|
||||||
"Sync": "Synchronisieren",
|
"Sync": "Synchronisieren",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Synchronisierung abgeschlossen!",
|
"Sync Complete!": "Synchronisierung abgeschlossen!",
|
||||||
"Sync directory": "Ordner synchronisieren",
|
"Sync directory": "Ordner synchronisieren",
|
||||||
"Sync Failed": "Synchronisierung fehlgeschlagen",
|
"Sync Failed": "Synchronisierung fehlgeschlagen",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Diese Option steuert, wie viele Token beim Aktualisieren des Kontexts behalten werden. Bei 2 werden z. B. die letzten 2 Token des Gesprächskontexts beibehalten. Dies hilft, die Kontinuität zu wahren, kann aber die Reaktion auf neue Themen einschränken.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Diese Option steuert, wie viele Token beim Aktualisieren des Kontexts behalten werden. Bei 2 werden z. B. die letzten 2 Token des Gesprächskontexts beibehalten. Dies hilft, die Kontinuität zu wahren, kann aber die Reaktion auf neue Themen einschränken.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Diese Option aktiviert die Reasoning-Funktion in Ollama, wodurch das Modell vor der Antwort nachdenken kann. Wenn aktiviert, nimmt sich das Modell einen Moment Zeit, um den Kontext zu verarbeiten und eine durchdachtere Antwort zu generieren.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Diese Option aktiviert die Reasoning-Funktion in Ollama, wodurch das Modell vor der Antwort nachdenken kann. Wenn aktiviert, nimmt sich das Modell einen Moment Zeit, um den Kontext zu verarbeiten und eine durchdachtere Antwort zu generieren.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Diese Option legt die maximale Anzahl von Token fest, die das Modell generieren darf. Ein höheres Limit ermöglicht längere Antworten, kann aber auch die Wahrscheinlichkeit für irrelevante Inhalte erhöhen.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Diese Option legt die maximale Anzahl von Token fest, die das Modell generieren darf. Ein höheres Limit ermöglicht längere Antworten, kann aber auch die Wahrscheinlichkeit für irrelevante Inhalte erhöhen.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Diese Option löscht alle vorhandenen Dateien in der Sammlung und ersetzt sie durch die neu hochgeladenen Dateien.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Diese Antwort wurde von \"{{model}}\" generiert",
|
"This response was generated by \"{{model}}\"": "Diese Antwort wurde von \"{{model}}\" generiert",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Diese Vorlage enthält mehrere Kontext-Platzhalter ([context] oder {{CONTEXT}}). Der Kontext wird an jeder Stelle eingefügt.",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Diese Vorlage enthält mehrere Kontext-Platzhalter ([context] oder {{CONTEXT}}). Der Kontext wird an jeder Stelle eingefügt.",
|
||||||
"This will delete": "Dies löscht",
|
"This will delete": "Dies löscht",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Dies löscht alle Modelle, einschließlich benutzerdefinierter Modelle",
|
"This will delete all models including custom models": "Dies löscht alle Modelle, einschließlich benutzerdefinierter Modelle",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Dies löscht alle Modelle, einschließlich benutzerdefinierter Modelle, und kann nicht rückgängig gemacht werden.",
|
"This will delete all models including custom models and cannot be undone.": "Dies löscht alle Modelle, einschließlich benutzerdefinierter Modelle, und kann nicht rückgängig gemacht werden.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Dies wird den Kalender \"{{name}}\" und alle seine Ereignisse dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden.",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Dies wird den Kalender \"{{name}}\" und alle seine Ereignisse dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Dadurch wird der Wissensspeicher zurückgesetzt und alle Dateien werden synchronisiert. Möchten Sie fortfahren?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Ausführliche Erklärung",
|
"Thorough explanation": "Ausführliche Erklärung",
|
||||||
"Thought": "Gedanke",
|
"Thought": "Gedanke",
|
||||||
"Thought for {{DURATION}}": "Nachgedacht für {{DURATION}}",
|
"Thought for {{DURATION}}": "Nachgedacht für {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "Eine Quelle umschalten",
|
"Toggle 1 source": "Eine Quelle umschalten",
|
||||||
"Toggle details": "Details umschalten",
|
"Toggle details": "Details umschalten",
|
||||||
"Toggle Dictation": "Diktieren umschalten",
|
"Toggle Dictation": "Diktieren umschalten",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Seitenleiste umschalten",
|
"Toggle Sidebar": "Seitenleiste umschalten",
|
||||||
"Toggle status history": "Status Updates umschalten",
|
"Toggle status history": "Status Updates umschalten",
|
||||||
"Toggle whether current connection is active.": "Umschalten, ob die aktuelle Verbindung aktiv ist.",
|
"Toggle whether current connection is active.": "Umschalten, ob die aktuelle Verbindung aktiv ist.",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Upload-Fortschritt",
|
"Upload Progress": "Upload-Fortschritt",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Fortschritt: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Fortschritt: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Hochgeladene Dateien oder Bilder",
|
"Uploaded files or images": "Hochgeladene Dateien oder Bilder",
|
||||||
"Uploading file...": "Datei wird hochgeladen...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Lade hoch...",
|
"Uploading...": "Lade hoch...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL ist erforderlich",
|
"URL is required": "URL ist erforderlich",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "Benutzergruppen",
|
"User Groups": "Benutzergruppen",
|
||||||
"User location successfully retrieved.": "Benutzerstandort erfolgreich abgerufen.",
|
"User location successfully retrieved.": "Benutzerstandort erfolgreich abgerufen.",
|
||||||
"User menu": "Benutzermenü",
|
"User menu": "Benutzermenü",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Benutzerbewertungen (Daumen hoch/runter)",
|
"User ratings (thumbs up/down)": "Benutzerbewertungen (Daumen hoch/runter)",
|
||||||
"User Status": "Nutzerstatus",
|
"User Status": "Nutzerstatus",
|
||||||
"User Webhooks": "Benutzer-Webhooks",
|
"User Webhooks": "Benutzer-Webhooks",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "",
|
"{{ models }}": "",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "such available users",
|
"available users": "such available users",
|
||||||
"available!": "available! So excite!",
|
"available!": "available! So excite!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Command",
|
"Command": "Command",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "",
|
"Concurrent Requests": "",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Delete a model",
|
"Delete a model": "Delete a model",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "",
|
"Delete All Chats": "",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "",
|
"Delete Chat": "",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "",
|
"Embedding Model": "",
|
||||||
"Embedding Model Engine": "",
|
"Embedding Model Engine": "",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "",
|
"Enter language codes": "",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Bark Mode",
|
"File Mode": "Bark Mode",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Bark not found.",
|
"File not found.": "Bark not found.",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Light",
|
"Light": "Light",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "New Bark",
|
"New Chat": "New Bark",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "On",
|
"On": "On",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "",
|
"PDF document (.pdf)": "",
|
||||||
"PDF Extract Images (OCR)": "PDF Extract Wowmages (OCR)",
|
"PDF Extract Images (OCR)": "PDF Extract Wowmages (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "pending",
|
"pending": "pending",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "",
|
"Previous 30 days": "",
|
||||||
"Previous 7 days": "",
|
"Previous 7 days": "",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "",
|
"Remove Model": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "",
|
"Rename": "",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "Reset image. Very wow.",
|
"Reset Image": "Reset image. Very wow.",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Search Prompts much wow",
|
"Search Prompts": "Search Prompts much wow",
|
||||||
"Search Result Count": "",
|
"Search Result Count": "",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "",
|
"Thorough explanation": "",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Upload Progress much progress",
|
"Upload Progress": "Upload Progress much progress",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το κανάλι;",
|
"Are you sure you want to delete this channel?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το κανάλι;",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μήνυμα;",
|
"Are you sure you want to delete this message?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μήνυμα;",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Διαθέσιμη λίστα",
|
"Available list": "Διαθέσιμη λίστα",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Διαθέσιμα Εργαλεία",
|
"Available Tools": "Διαθέσιμα Εργαλεία",
|
||||||
"available users": "διαθέσιμοι χρήστες",
|
"available users": "διαθέσιμοι χρήστες",
|
||||||
"available!": "διαθέσιμο!",
|
"available!": "διαθέσιμο!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "Ροές Εργασίας ComfyUI",
|
"ComfyUI Workflow": "Ροές Εργασίας ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Κόμβοι Ροής Εργασίας ComfyUI",
|
"ComfyUI Workflow Nodes": "Κόμβοι Ροής Εργασίας ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID κόμβων διαχωρισμένα με κόμμα (π.χ. 1 ή 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID κόμβων διαχωρισμένα με κόμμα (π.χ. 1 ή 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Εντολή",
|
"Command": "Εντολή",
|
||||||
"Comment": "Σχόλιο",
|
"Comment": "Σχόλιο",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Ολοκληρώσεις",
|
"Completions": "Ολοκληρώσεις",
|
||||||
"Compress Images in Channels": "Συμπίεση εικόνων σε κανάλια",
|
"Compress Images in Channels": "Συμπίεση εικόνων σε κανάλια",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Ταυτόχρονες Αιτήσεις",
|
"Concurrent Requests": "Ταυτόχρονες Αιτήσεις",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Διαγραφή ενός μοντέλου",
|
"Delete a model": "Διαγραφή ενός μοντέλου",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Διαγραφή Όλων των Συνομιλιών",
|
"Delete All Chats": "Διαγραφή Όλων των Συνομιλιών",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Διαγραφή Συνομιλίας",
|
"Delete Chat": "Διαγραφή Συνομιλίας",
|
||||||
"Delete chat?": "Διαγραφή συνομιλίας;",
|
"Delete chat?": "Διαγραφή συνομιλίας;",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Διαγραφή φακέλου;",
|
"Delete folder?": "Διαγραφή φακέλου;",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Οι Άμεσες Συνδέσεις επιτρέπουν στους χρήστες να συνδέσουν τα δικά τους API endpoints συμβατά με OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Οι Άμεσες Συνδέσεις επιτρέπουν στους χρήστες να συνδέσουν τα δικά τους API endpoints συμβατά με OpenAI.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Μοντέλο Ενσωμάτωσης",
|
"Embedding Model": "Μοντέλο Ενσωμάτωσης",
|
||||||
"Embedding Model Engine": "Μηχανή Μοντέλου Ενσωμάτωσης",
|
"Embedding Model Engine": "Μηχανή Μοντέλου Ενσωμάτωσης",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "Εισάγετε κωδικούς γλώσσας",
|
"Enter language codes": "Εισάγετε κωδικούς γλώσσας",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Αποτυχία σύνδεσης στο διακομιστή εργαλείων OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Αποτυχία σύνδεσης στο διακομιστή εργαλείων OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "Αποτυχία αντιγραφής συνδέσμου",
|
"Failed to copy link": "Αποτυχία αντιγραφής συνδέσμου",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Το περιεχόμενο του αρχείου ενημερώθηκε με επιτυχία.",
|
"File content updated successfully.": "Το περιεχόμενο του αρχείου ενημερώθηκε με επιτυχία.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Λειτουργία Αρχείου",
|
"File Mode": "Λειτουργία Αρχείου",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Αρχείο δεν βρέθηκε.",
|
"File not found.": "Αρχείο δεν βρέθηκε.",
|
||||||
"File removed successfully.": "Το αρχείο αφαιρέθηκε με επιτυχία.",
|
"File removed successfully.": "Το αρχείο αφαιρέθηκε με επιτυχία.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Το μέγεθος του αρχείου δεν πρέπει να υπερβαίνει τα {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Το μέγεθος του αρχείου δεν πρέπει να υπερβαίνει τα {{maxSize}} MB.",
|
||||||
"File Upload": "Ανέβασμα Αρχείων",
|
"File Upload": "Ανέβασμα Αρχείων",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Αρχεία",
|
"Files": "Αρχεία",
|
||||||
"Filter": "Φίλτρο",
|
"Filter": "Φίλτρο",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "Πρόσβαση στο Knowledge",
|
"Knowledge Access": "Πρόσβαση στο Knowledge",
|
||||||
"Knowledge Base": "Βάση Knowledge",
|
"Knowledge Base": "Βάση Knowledge",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Το Knowledge δημιουργήθηκε με επιτυχία.",
|
"Knowledge created successfully.": "Το Knowledge δημιουργήθηκε με επιτυχία.",
|
||||||
"Knowledge deleted successfully.": "Το Knowledge διαγράφηκε με επιτυχία.",
|
"Knowledge deleted successfully.": "Το Knowledge διαγράφηκε με επιτυχία.",
|
||||||
"Knowledge Description": "Περιγραφή Knowledge",
|
"Knowledge Description": "Περιγραφή Knowledge",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "Όνομα Knowledge",
|
"Knowledge Name": "Όνομα Knowledge",
|
||||||
"Knowledge Public Sharing": "Κοινή χρήση Knowledge",
|
"Knowledge Public Sharing": "Κοινή χρήση Knowledge",
|
||||||
"Knowledge reset successfully.": "Το Knowledge επαναφέρθηκε με επιτυχία.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "Το Knowledge ενημερώθηκε με επιτυχία",
|
"Knowledge updated successfully": "Το Knowledge ενημερώθηκε με επιτυχία",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Φως",
|
"Light": "Φως",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Ακούγεται...",
|
"Listening...": "Ακούγεται...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Νέα Συνομιλία",
|
"New Chat": "Νέα Συνομιλία",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Νέος Φάκελος",
|
"New Folder": "Νέος Φάκελος",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Δεν βρέθηκε περιεχόμενο HTML, CSS ή JavaScript.",
|
"No HTML, CSS, or JavaScript content found.": "Δεν βρέθηκε περιεχόμενο HTML, CSS ή JavaScript.",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Δεν βρέθηκε Knowledge",
|
"No knowledge found": "Δεν βρέθηκε Knowledge",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "Δεν υπάρχουν IDs μοντέλων",
|
"No model IDs": "Δεν υπάρχουν IDs μοντέλων",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Δεν βρέθηκαν μοντέλα",
|
"No models found": "Δεν βρέθηκαν μοντέλα",
|
||||||
"No models selected": "Δεν έχουν επιλεγεί μοντέλα",
|
"No models selected": "Δεν έχουν επιλεγεί μοντέλα",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Δεν βρέθηκαν εργαλεία",
|
"No tools found": "Δεν βρέθηκαν εργαλεία",
|
||||||
"No users were found.": "Δεν βρέθηκαν χρήστες.",
|
"No users were found.": "Δεν βρέθηκαν χρήστες.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Ενεργό",
|
"On": "Ενεργό",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "Έγγραφο PDF (.pdf)",
|
"PDF document (.pdf)": "Έγγραφο PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Εξαγωγή Εικόνων PDF (OCR)",
|
"PDF Extract Images (OCR)": "Εξαγωγή Εικόνων PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "εκκρεμεί",
|
"pending": "εκκρεμεί",
|
||||||
"Pending": "Εκκρεμεί",
|
"Pending": "Εκκρεμεί",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Το ID Προθέματος χρησιμοποιείται για να αποφεύγονται συγκρούσεις με άλλες συνδέσεις προσθέτοντας ένα πρόθεμα στα IDs των μοντέλων - αφήστε κενό για απενεργοποίηση",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Το ID Προθέματος χρησιμοποιείται για να αποφεύγονται συγκρούσεις με άλλες συνδέσεις προσθέτοντας ένα πρόθεμα στα IDs των μοντέλων - αφήστε κενό για απενεργοποίηση",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "Προεπισκόπηση",
|
"Preview": "Προεπισκόπηση",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Προηγούμενες 30 ημέρες",
|
"Previous 30 days": "Προηγούμενες 30 ημέρες",
|
||||||
"Previous 7 days": "Προηγούμενες 7 ημέρες",
|
"Previous 7 days": "Προηγούμενες 7 ημέρες",
|
||||||
"Previous message": "Προηγούμενο μήνυμα",
|
"Previous message": "Προηγούμενο μήνυμα",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "Αφαίρεση εικόνας",
|
"Remove image": "Αφαίρεση εικόνας",
|
||||||
"Remove Model": "Αφαίρεση Μοντέλου",
|
"Remove Model": "Αφαίρεση Μοντέλου",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Μετονομασία",
|
"Rename": "Μετονομασία",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Επαναφορά",
|
"Reset": "Επαναφορά",
|
||||||
"Reset All Models": "Επαναφορά Όλων των Μοντέλων",
|
"Reset All Models": "Επαναφορά Όλων των Μοντέλων",
|
||||||
"Reset Image": "Επαναφορά εικόνας",
|
"Reset Image": "Επαναφορά εικόνας",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Επαναφορά Καταλόγου Ανεβάσματος",
|
"Reset Upload Directory": "Επαναφορά Καταλόγου Ανεβάσματος",
|
||||||
"Reset Vector Storage/Knowledge": "Επαναφορά Αποθήκευσης Διανυσμάτων/Knowledge",
|
"Reset Vector Storage/Knowledge": "Επαναφορά Αποθήκευσης Διανυσμάτων/Knowledge",
|
||||||
"Reset view": "Επαναφορά προβολής",
|
"Reset view": "Επαναφορά προβολής",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Αναζήτηση Προτροπών",
|
"Search Prompts": "Αναζήτηση Προτροπών",
|
||||||
"Search Result Count": "Αριθμός Αποτελεσμάτων Αναζήτησης",
|
"Search Result Count": "Αριθμός Αποτελεσμάτων Αναζήτησης",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Αναζήτησε το διαδίκτυο",
|
"Search the internet": "Αναζήτησε το διαδίκτυο",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Αναζήτηση Εργαλείων",
|
"Search Tools": "Αναζήτηση Εργαλείων",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Συγχρονισμός καταλόγου",
|
"Sync directory": "Συγχρονισμός καταλόγου",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Αυτή η επιλογή θα διαγράψει όλα τα υπάρχοντα αρχεία στη συλλογή και θα τα αντικαταστήσει με νέα ανεβασμένα αρχεία.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Αυτή η απάντηση δημιουργήθηκε από \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Αυτή η απάντηση δημιουργήθηκε από \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Αυτό θα διαγράψει",
|
"This will delete": "Αυτό θα διαγράψει",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Αυτό θα διαγράψει όλα τα μοντέλα, συμπεριλαμβανομένων των προσαρμοσμένων μοντέλων",
|
"This will delete all models including custom models": "Αυτό θα διαγράψει όλα τα μοντέλα, συμπεριλαμβανομένων των προσαρμοσμένων μοντέλων",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Αυτό θα διαγράψει όλα τα μοντέλα, συμπεριλαμβανομένων των προσαρμοσμένων μοντέλων και δεν μπορεί να αναιρεθεί.",
|
"This will delete all models including custom models and cannot be undone.": "Αυτό θα διαγράψει όλα τα μοντέλα, συμπεριλαμβανομένων των προσαρμοσμένων μοντέλων και δεν μπορεί να αναιρεθεί.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Αυτό θα επαναφέρει τη βάση γνώσης και θα συγχρονίσει όλα τα αρχεία. Θέλετε να συνεχίσετε;",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Λεπτομερής εξήγηση",
|
"Thorough explanation": "Λεπτομερής εξήγηση",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Σκέφτηκε για {{DURATION}}",
|
"Thought for {{DURATION}}": "Σκέφτηκε για {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Πρόοδος Ανεβάσματος",
|
"Upload Progress": "Πρόοδος Ανεβάσματος",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "Το URL είναι απαραίτητο",
|
"URL is required": "Το URL είναι απαραίτητο",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "Ομάδες Χρηστών",
|
"User Groups": "Ομάδες Χρηστών",
|
||||||
"User location successfully retrieved.": "Η τοποθεσία του χρήστη ανακτήθηκε με επιτυχία.",
|
"User location successfully retrieved.": "Η τοποθεσία του χρήστη ανακτήθηκε με επιτυχία.",
|
||||||
"User menu": "Μενού Χρήστη",
|
"User menu": "Μενού Χρήστη",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "Webhooks Χρήστη",
|
"User Webhooks": "Webhooks Χρήστη",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "",
|
"{{ models }}": "",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "",
|
"available users": "",
|
||||||
"available!": "",
|
"available!": "",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "",
|
"Command": "",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "",
|
"Concurrent Requests": "",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "",
|
"Delete a model": "",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "",
|
"Delete All Chats": "",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "",
|
"Delete Chat": "",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "",
|
"Embedding Model": "",
|
||||||
"Embedding Model Engine": "",
|
"Embedding Model Engine": "",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "Enter Key Behaviour",
|
"Enter Key Behavior": "Enter Key Behaviour",
|
||||||
"Enter language codes": "",
|
"Enter language codes": "",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "",
|
"File Mode": "",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "",
|
"File not found.": "",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "",
|
"Light": "",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "",
|
"New Chat": "",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "",
|
"On": "",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "",
|
"PDF document (.pdf)": "",
|
||||||
"PDF Extract Images (OCR)": "",
|
"PDF Extract Images (OCR)": "",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "",
|
"pending": "",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "",
|
"Previous 30 days": "",
|
||||||
"Previous 7 days": "",
|
"Previous 7 days": "",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "",
|
"Remove Model": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "",
|
"Rename": "",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "",
|
"Reset Image": "",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "",
|
"Search Prompts": "",
|
||||||
"Search Result Count": "",
|
"Search Result Count": "",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "",
|
"Thorough explanation": "",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "",
|
"Upload Progress": "",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,13 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "",
|
"{{ models }}": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
|
||||||
"{{COUNT}} Available Skills": "",
|
"{{COUNT}} Available Skills": "",
|
||||||
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -240,8 +245,8 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
"Available Tools": "",
|
|
||||||
"Available Skills": "",
|
"Available Skills": "",
|
||||||
|
"Available Tools": "",
|
||||||
"available users": "",
|
"available users": "",
|
||||||
"available!": "",
|
"available!": "",
|
||||||
"Away": "",
|
"Away": "",
|
||||||
@@ -400,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "",
|
"Command": "",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "",
|
"Concurrent Requests": "",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -539,12 +548,14 @@
|
|||||||
"Delete a model": "",
|
"Delete a model": "",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "",
|
"Delete All Chats": "",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "",
|
"Delete Chat": "",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -581,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -689,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "",
|
"Embedding Model": "",
|
||||||
"Embedding Model Engine": "",
|
"Embedding Model Engine": "",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -767,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "",
|
"Enter language codes": "",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -903,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -956,14 +975,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "",
|
"File Mode": "",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "",
|
"File not found.": "",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1179,13 +1200,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1229,6 +1250,7 @@
|
|||||||
"Light": "",
|
"Light": "",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1379,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "",
|
"New Chat": "",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1424,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1449,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1488,6 +1515,7 @@
|
|||||||
"On": "",
|
"On": "",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1559,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "",
|
"PDF document (.pdf)": "",
|
||||||
"PDF Extract Images (OCR)": "",
|
"PDF Extract Images (OCR)": "",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "",
|
"pending": "",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1620,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "",
|
"Previous 30 days": "",
|
||||||
"Previous 7 days": "",
|
"Previous 7 days": "",
|
||||||
"Previous message": "Previous message",
|
"Previous message": "Previous message",
|
||||||
@@ -1697,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "",
|
"Remove Model": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "",
|
"Rename": "",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1715,6 +1747,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "",
|
"Reset Image": "",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1782,6 +1815,7 @@
|
|||||||
"Search Prompts": "",
|
"Search Prompts": "",
|
||||||
"Search Result Count": "",
|
"Search Result Count": "",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1979,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2051,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2059,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "",
|
"Thorough explanation": "",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2095,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2173,7 +2209,7 @@
|
|||||||
"Upload Progress": "",
|
"Upload Progress": "",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2193,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "[Hoy a las] h:mm A",
|
"[Today at] h:mm A": "[Hoy a las] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Ayer a las] h:mm A",
|
"[Yesterday at] h:mm A": "[Ayer a las] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} herramientas disponibles",
|
"{{COUNT}} Available Tools": "{{COUNT}} herramientas disponibles",
|
||||||
"{{COUNT}} characters": "{{COUNT}} caracteres",
|
"{{COUNT}} characters": "{{COUNT}} caracteres",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} líneas extraidas",
|
"{{COUNT}} extracted lines": "{{COUNT}} líneas extraidas",
|
||||||
"{{COUNT}} files": "{{COUNT}} archivos",
|
"{{COUNT}} files": "{{COUNT}} archivos",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} líneas ocultas",
|
"{{COUNT}} hidden lines": "{{COUNT}} líneas ocultas",
|
||||||
"{{COUNT}} members": "{{COUNT}} miembros",
|
"{{COUNT}} members": "{{COUNT}} miembros",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} Respuestas",
|
"{{COUNT}} Replies": "{{COUNT}} Respuestas",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} filas",
|
"{{COUNT}} Rows": "{{COUNT}} filas",
|
||||||
"{{count}} selected_one": "{{count}} únicos seleccionados",
|
"{{count}} selected_one": "{{count}} únicos seleccionados",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "¿Estás seguro que quieres borrar todos los chats? (¡esta acción NO se puede deshacer!)",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "¿Estás seguro que quieres borrar todos los chats? (¡esta acción NO se puede deshacer!)",
|
||||||
"Are you sure you want to delete this channel?": "¿Estás seguro de que quieres eliminar este canal?",
|
"Are you sure you want to delete this channel?": "¿Estás seguro de que quieres eliminar este canal?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "¿Estás seguro que desea eliminar esta conexión? (¡esta acción NO se puede deshacer!)",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "¿Estás seguro que desea eliminar esta conexión? (¡esta acción NO se puede deshacer!)",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "¿Estás seguro que desea eliminar esta memoria? (¡esta acción NO se puede deshacer!)",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "¿Estás seguro que desea eliminar esta memoria? (¡esta acción NO se puede deshacer!)",
|
||||||
"Are you sure you want to delete this message?": "¿Estás seguro de que quieres eliminar este mensaje? ",
|
"Are you sure you want to delete this message?": "¿Estás seguro de que quieres eliminar este mensaje? ",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "¿Estás seguro que desea eliminar esta versión? (las versiones derivadas se vincularán a la versión principal de esta)",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "¿Estás seguro que desea eliminar esta versión? (las versiones derivadas se vincularán a la versión principal de esta)",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "Automatizaciones",
|
"Automations": "Automatizaciones",
|
||||||
"Available list": "Lista disponible",
|
"Available list": "Lista disponible",
|
||||||
"Available models": "Modelos disponibles",
|
"Available models": "Modelos disponibles",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Herramientas Disponibles",
|
"Available Tools": "Herramientas Disponibles",
|
||||||
"available users": "usuarios disponibles",
|
"available users": "usuarios disponibles",
|
||||||
"available!": "¡disponible!",
|
"available!": "¡disponible!",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "Flujo de Trabajo de ComfyUI",
|
"ComfyUI Workflow": "Flujo de Trabajo de ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Nodos del Flujo de Trabajo de ComfyUI",
|
"ComfyUI Workflow Nodes": "Nodos del Flujo de Trabajo de ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "IDs de Nodo separados por comas (ej. 1 o 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "IDs de Nodo separados por comas (ej. 1 o 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "comando",
|
"command": "comando",
|
||||||
"Command": "Comando",
|
"Command": "Comando",
|
||||||
"Comment": "Comentario",
|
"Comment": "Comentario",
|
||||||
"Commit Message": "Corregir Mensaje",
|
"Commit Message": "Corregir Mensaje",
|
||||||
"Community Reviews": "Revisiones de la Comunidad",
|
"Community Reviews": "Revisiones de la Comunidad",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Cumplimientos",
|
"Completions": "Cumplimientos",
|
||||||
"Compress Images in Channels": "Comprimir Imágenes en Canales",
|
"Compress Images in Channels": "Comprimir Imágenes en Canales",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Número de Solicitudes Concurrentes",
|
"Concurrent Requests": "Número de Solicitudes Concurrentes",
|
||||||
"Config": "Config",
|
"Config": "Config",
|
||||||
"Config imported successfully": "Configuración importada correctamente",
|
"Config imported successfully": "Configuración importada correctamente",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "Borrar un modelo",
|
"Delete a model": "Borrar un modelo",
|
||||||
"Delete All": "Borrar Todo",
|
"Delete All": "Borrar Todo",
|
||||||
"Delete All Chats": "Borrar todos los chats",
|
"Delete All Chats": "Borrar todos los chats",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Borrar todo el contenido de esta carpeta",
|
"Delete all contents inside this folder": "Borrar todo el contenido de esta carpeta",
|
||||||
"Delete automation?": "¿Borrar automatización?",
|
"Delete automation?": "¿Borrar automatización?",
|
||||||
"Delete calendar": "Borrar calendario",
|
"Delete calendar": "Borrar calendario",
|
||||||
"Delete Calendar": "Borrar Calendario",
|
"Delete Calendar": "Borrar Calendario",
|
||||||
"Delete Chat": "Borrar Chat",
|
"Delete Chat": "Borrar Chat",
|
||||||
"Delete chat?": "¿Borrar el chat?",
|
"Delete chat?": "¿Borrar el chat?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "Borrar Evento",
|
"Delete Event": "Borrar Evento",
|
||||||
"Delete File": "Borrar Fichero",
|
"Delete File": "Borrar Fichero",
|
||||||
"Delete folder?": "¿Borrar carpeta?",
|
"Delete folder?": "¿Borrar carpeta?",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Las Conexiones Directas permiten a los usuarios conectar a sus propios endpoints compatibles API OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Las Conexiones Directas permiten a los usuarios conectar a sus propios endpoints compatibles API OpenAI.",
|
||||||
"Direct Message": "Mensaje Directo",
|
"Direct Message": "Mensaje Directo",
|
||||||
"Direct Tool Servers": "Servidores de Herramientas Directos",
|
"Direct Tool Servers": "Servidores de Herramientas Directos",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "La selección de directorio ha sido cancelada",
|
"Directory selection was cancelled": "La selección de directorio ha sido cancelada",
|
||||||
"Disable All": "Deshabilitar Todo",
|
"Disable All": "Deshabilitar Todo",
|
||||||
"Disable Code Interpreter": "Deshabilitar Interprete de Código",
|
"Disable Code Interpreter": "Deshabilitar Interprete de Código",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "Número de Peticiones Concurrentes en Incrustración",
|
"Embedding Concurrent Requests": "Número de Peticiones Concurrentes en Incrustración",
|
||||||
"Embedding Model": "Modelo de Incrustación",
|
"Embedding Model": "Modelo de Incrustación",
|
||||||
"Embedding Model Engine": "Motor del Modelo de Incrustación",
|
"Embedding Model Engine": "Motor del Modelo de Incrustación",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "Emoticonos",
|
"Emojis": "Emoticonos",
|
||||||
"Empty message": "Mensaje vacío",
|
"Empty message": "Mensaje vacío",
|
||||||
"Enable All": "Habilitar Todo",
|
"Enable All": "Habilitar Todo",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "Ingresar Clave API de Kagi Search",
|
"Enter Kagi Search API Key": "Ingresar Clave API de Kagi Search",
|
||||||
"Enter Key Behavior": "Comportamiento de la Tecla de Envío",
|
"Enter Key Behavior": "Comportamiento de la Tecla de Envío",
|
||||||
"Enter language codes": "Ingresar Códigos de Idioma",
|
"Enter language codes": "Ingresar Códigos de Idioma",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "Ingresar Clave API de MinerU",
|
"Enter MinerU API Key": "Ingresar Clave API de MinerU",
|
||||||
"Enter Mistral API Base URL": "Ingresar la URL Base de la API de Mistral",
|
"Enter Mistral API Base URL": "Ingresar la URL Base de la API de Mistral",
|
||||||
"Enter Mistral API Key": "Ingresar Clave API de Mistral",
|
"Enter Mistral API Key": "Ingresar Clave API de Mistral",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "Fallo al archivar el chat",
|
"Failed to archive chat.": "Fallo al archivar el chat",
|
||||||
"Failed to attach file": "Fallo al adjuntar el archivo",
|
"Failed to attach file": "Fallo al adjuntar el archivo",
|
||||||
"Failed to clear status": "Fallo al limpiar el estado",
|
"Failed to clear status": "Fallo al limpiar el estado",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Fallo al conectar al servidor de herramientas: {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Fallo al conectar al servidor de herramientas: {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "Fallo al conectar al servidor de terminal: {{URL}}",
|
"Failed to connect to {{URL}} terminal server": "Fallo al conectar al servidor de terminal: {{URL}}",
|
||||||
"Failed to copy link": "Fallo al copiar enlace",
|
"Failed to copy link": "Fallo al copiar enlace",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "Contenido del archivo actualizado correctamente.",
|
"File content updated successfully.": "Contenido del archivo actualizado correctamente.",
|
||||||
"File Context": "Contexto del Archivo",
|
"File Context": "Contexto del Archivo",
|
||||||
"File deleted successfully.": "Archivo borrado correctamente.",
|
"File deleted successfully.": "Archivo borrado correctamente.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Modo de Archivo",
|
"File Mode": "Modo de Archivo",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Nombre del archivo",
|
"File name": "Nombre del archivo",
|
||||||
"File not found.": "Archivo no encontrado.",
|
"File not found.": "Archivo no encontrado.",
|
||||||
"File removed successfully.": "Archivo eliminado correctamente.",
|
"File removed successfully.": "Archivo eliminado correctamente.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Tamaño del archivo no debe exceder {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Tamaño del archivo no debe exceder {{maxSize}} MB.",
|
||||||
"File Upload": "Subir Archivo",
|
"File Upload": "Subir Archivo",
|
||||||
"File uploaded successfully": "Archivo subido correctamente",
|
"File uploaded successfully": "Archivo subido correctamente",
|
||||||
"File uploaded!": "¡Archivo subido!",
|
|
||||||
"Filename": "Nombre del Archivo",
|
"Filename": "Nombre del Archivo",
|
||||||
"Files": "Archivos",
|
"Files": "Archivos",
|
||||||
"Filter": "Filtro",
|
"Filter": "Filtro",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "Conocimiento",
|
"Knowledge": "Conocimiento",
|
||||||
"Knowledge Access": "Permiso a Conocimiento",
|
"Knowledge Access": "Permiso a Conocimiento",
|
||||||
"Knowledge Base": "Base de Conocimiento",
|
"Knowledge Base": "Base de Conocimiento",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Conocimiento creado correctamente.",
|
"Knowledge created successfully.": "Conocimiento creado correctamente.",
|
||||||
"Knowledge deleted successfully.": "Conocimiento eliminado correctamente.",
|
"Knowledge deleted successfully.": "Conocimiento eliminado correctamente.",
|
||||||
"Knowledge Description": "Descripción del Conocimiento",
|
"Knowledge Description": "Descripción del Conocimiento",
|
||||||
"Knowledge exported successfully": "Conocimiento exportado correctamente",
|
"Knowledge exported successfully": "Conocimiento exportado correctamente",
|
||||||
"Knowledge Name": "Nombre del Conocimiento",
|
"Knowledge Name": "Nombre del Conocimiento",
|
||||||
"Knowledge Public Sharing": "Compartir Conocimiento Públicamente",
|
"Knowledge Public Sharing": "Compartir Conocimiento Públicamente",
|
||||||
"Knowledge reset successfully.": "Conocimiento restablecido correctamente.",
|
|
||||||
"Knowledge Sharing": "Compartir Conocimiento",
|
"Knowledge Sharing": "Compartir Conocimiento",
|
||||||
"Knowledge updated successfully": "Conocimiento actualizado correctamente.",
|
"Knowledge updated successfully": "Conocimiento actualizado correctamente.",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Navegador)",
|
"Kokoro.js (Browser)": "Kokoro.js (Navegador)",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "Claro",
|
"Light": "Claro",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limitar consultas de búsqueda simultáneas. 0 = ilimitado (predeterminado). Establécerlo en 1 para ejecución secuencial (recomendado para API con límites de velocidad estrictos, como la versión gratuita de Brave).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limitar consultas de búsqueda simultáneas. 0 = ilimitado (predeterminado). Establécerlo en 1 para ejecución secuencial (recomendado para API con límites de velocidad estrictos, como la versión gratuita de Brave).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limita el número de peticiones concurrentes al incrustrar. Ajusta a 0 para ilimitadas",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limita el número de peticiones concurrentes al incrustrar. Ajusta a 0 para ilimitadas",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Lista",
|
"List": "Lista",
|
||||||
"List calendars, search, create, update, and delete calendar events": "Listar, buscar, crear, actualizar y borrar eventos en calendarios",
|
"List calendars, search, create, update, and delete calendar events": "Listar, buscar, crear, actualizar y borrar eventos en calendarios",
|
||||||
"Listening...": "Escuchando...",
|
"Listening...": "Escuchando...",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "Nuevo calendario",
|
"New calendar": "Nuevo calendario",
|
||||||
"New Calendar": "Nuevo Calendario",
|
"New Calendar": "Nuevo Calendario",
|
||||||
"New Chat": "Nuevo Chat",
|
"New Chat": "Nuevo Chat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "Nuevo Evento",
|
"New Event": "Nuevo Evento",
|
||||||
"New File": "Nuevo Archivo",
|
"New File": "Nuevo Archivo",
|
||||||
"New Folder": "Nueva Carpeta",
|
"New Folder": "Nueva Carpeta",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "No se encontró contenido HTML, CSS, o JavaScript.",
|
"No HTML, CSS, or JavaScript content found.": "No se encontró contenido HTML, CSS, o JavaScript.",
|
||||||
"No inference engine with management support found": "No se encontró un motor de inferencia que soporte gestión",
|
"No inference engine with management support found": "No se encontró un motor de inferencia que soporte gestión",
|
||||||
"No kernel": "Sin núcleo Jupyter",
|
"No kernel": "Sin núcleo Jupyter",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "No se encontraron bases de conocimiento",
|
"No knowledge bases found.": "No se encontraron bases de conocimiento",
|
||||||
"No knowledge found": "No se encontró ningún conocimiento",
|
"No knowledge found": "No se encontró ningún conocimiento",
|
||||||
"No limit": "Sin límite",
|
"No limit": "Sin límite",
|
||||||
"No memories to clear": "No hay memorias para borrar",
|
"No memories to clear": "No hay memorias para borrar",
|
||||||
"No model IDs": "No hay IDs de modelo",
|
"No model IDs": "No hay IDs de modelo",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "No hay modelos disponibles",
|
"No models available": "No hay modelos disponibles",
|
||||||
"No models found": "No se encontraron modelos",
|
"No models found": "No se encontraron modelos",
|
||||||
"No models selected": "No se seleccionaron modelos",
|
"No models selected": "No se seleccionaron modelos",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "Ninguna conexión configurada a Terminal",
|
"No Terminal connection configured.": "Ninguna conexión configurada a Terminal",
|
||||||
"No terminal connections configured.": "No hay conexiones a terminal configuradas.",
|
"No terminal connections configured.": "No hay conexiones a terminal configuradas.",
|
||||||
"No tool server connections configured.": "No hay conexiones a servidores de herramientas configuradas",
|
"No tool server connections configured.": "No hay conexiones a servidores de herramientas configuradas",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "No se encontraron herramientas",
|
"No tools found": "No se encontraron herramientas",
|
||||||
"No users were found.": "No se encontraron usuarios.",
|
"No users were found.": "No se encontraron usuarios.",
|
||||||
"No valves": "No hay válvulas",
|
"No valves": "No hay válvulas",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "Activado",
|
"On": "Activado",
|
||||||
"Once": "Una vez",
|
"Once": "Una vez",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Solo activo cuando \"Pegar el Texto Largo como Archivo\" está activado",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Solo activo cuando \"Pegar el Texto Largo como Archivo\" está activado",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Solo activo con el foco en la entrada del chat y se está generando una respuesta",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Solo activo con el foco en la entrada del chat y se está generando una respuesta",
|
||||||
"Only active when the chat input is in focus.": "Solo activo con el foco en la entrada del chat",
|
"Only active when the chat input is in focus.": "Solo activo con el foco en la entrada del chat",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "Documento PDF (.pdf)",
|
"PDF document (.pdf)": "Documento PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extraer imágenes del PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extraer imágenes del PDF (OCR)",
|
||||||
"PDF Loader Mode": "Modo de Carga del PDF",
|
"PDF Loader Mode": "Modo de Carga del PDF",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "pendiente",
|
"pending": "pendiente",
|
||||||
"Pending": "Pendiente",
|
"Pending": "Pendiente",
|
||||||
"Pending User Overlay Content": "Contenido de la SobreCapa Usuario Pendiente",
|
"Pending User Overlay Content": "Contenido de la SobreCapa Usuario Pendiente",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "El prefijo ID se utiliza para evitar conflictos con otras conexiones al añadir un prefijo a los IDs de modelo, dejar vacío para deshabilitarlo",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "El prefijo ID se utiliza para evitar conflictos con otras conexiones al añadir un prefijo a los IDs de modelo, dejar vacío para deshabilitarlo",
|
||||||
"Prevent File Creation": "Prevenir la Creación de Archivos",
|
"Prevent File Creation": "Prevenir la Creación de Archivos",
|
||||||
"Preview": "Previsualización",
|
"Preview": "Previsualización",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 días previos",
|
"Previous 30 days": "30 días previos",
|
||||||
"Previous 7 days": "7 días previos",
|
"Previous 7 days": "7 días previos",
|
||||||
"Previous message": "Mensaje anterior",
|
"Previous message": "Mensaje anterior",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "Eliminar de favoritos",
|
"Remove from favorites": "Eliminar de favoritos",
|
||||||
"Remove image": "Eliminar imagen",
|
"Remove image": "Eliminar imagen",
|
||||||
"Remove Model": "Eliminar Modelo",
|
"Remove Model": "Eliminar Modelo",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Renombrar",
|
"Rename": "Renombrar",
|
||||||
"Renamed to {{name}}": "Renombrado como {{name}}",
|
"Renamed to {{name}}": "Renombrado como {{name}}",
|
||||||
"Render Markdown in Assistant Messages": "Renderizar Marldown en los Mensajes del Asistente",
|
"Render Markdown in Assistant Messages": "Renderizar Marldown en los Mensajes del Asistente",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "Reiniciar",
|
"Reset": "Reiniciar",
|
||||||
"Reset All Models": "Reiniciar Todos los Modelos",
|
"Reset All Models": "Reiniciar Todos los Modelos",
|
||||||
"Reset Image": "Restablecer imagen",
|
"Reset Image": "Restablecer imagen",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Reiniciar Directorio de Subidas",
|
"Reset Upload Directory": "Reiniciar Directorio de Subidas",
|
||||||
"Reset Vector Storage/Knowledge": "Reiniciar Almacenamiento de Vectores/Conocimiento",
|
"Reset Vector Storage/Knowledge": "Reiniciar Almacenamiento de Vectores/Conocimiento",
|
||||||
"Reset view": "Reiniciar Vista",
|
"Reset view": "Reiniciar Vista",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "Buscar Indicadores",
|
"Search Prompts": "Buscar Indicadores",
|
||||||
"Search Result Count": "Número de resultados de la búsqueda",
|
"Search Result Count": "Número de resultados de la búsqueda",
|
||||||
"Search Skills": "Buscar Habilidades",
|
"Search Skills": "Buscar Habilidades",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Buscar en internet",
|
"Search the internet": "Buscar en internet",
|
||||||
"Search the web and fetch URLs": "Buscar en la web y obtener URLs",
|
"Search the web and fetch URLs": "Buscar en la web y obtener URLs",
|
||||||
"Search Tools": "Buscar Herramientas",
|
"Search Tools": "Buscar Herramientas",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "Cambiar a editor JSON",
|
"Switch to JSON editor": "Cambiar a editor JSON",
|
||||||
"Switch to visual editor": "Cambiar a editor visual",
|
"Switch to visual editor": "Cambiar a editor visual",
|
||||||
"Sync": "Sincronizar",
|
"Sync": "Sincronizar",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Sincronización Completa",
|
"Sync Complete!": "Sincronización Completa",
|
||||||
"Sync directory": "Sincroniza Directorio",
|
"Sync directory": "Sincroniza Directorio",
|
||||||
"Sync Failed": "Fallo al Sincronizar",
|
"Sync Failed": "Fallo al Sincronizar",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Esta opción controla cuántos tokens se conservan cuando se actualiza el contexto. Por ejemplo, si se establece en 2, se conservarán los primeros 2 tokens del contexto de la conversación. Conservar el contexto puede ayudar a mantener la continuidad de una conversación, pero puede reducir la habilidad para responder a nuevos temas.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Esta opción controla cuántos tokens se conservan cuando se actualiza el contexto. Por ejemplo, si se establece en 2, se conservarán los primeros 2 tokens del contexto de la conversación. Conservar el contexto puede ayudar a mantener la continuidad de una conversación, pero puede reducir la habilidad para responder a nuevos temas.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Esta opción activa o desactiva el uso de la característica de razonamiento en Ollama, la cuál permite al modelo pensar antes de generar una respuesta. Cuando está activa el modelo se toma un tiempo para procesar el contexto de la conversación y generar una respuesta más razonada.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Esta opción activa o desactiva el uso de la característica de razonamiento en Ollama, la cuál permite al modelo pensar antes de generar una respuesta. Cuando está activa el modelo se toma un tiempo para procesar el contexto de la conversación y generar una respuesta más razonada.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Esta opción establece el número máximo de tokens que el modelo puede generar en sus respuestas. Aumentar este límite permite al modelo proporcionar respuestas más largas, pero también puede aumentar la probabilidad de que se genere contenido inútil o irrelevante.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Esta opción establece el número máximo de tokens que el modelo puede generar en sus respuestas. Aumentar este límite permite al modelo proporcionar respuestas más largas, pero también puede aumentar la probabilidad de que se genere contenido inútil o irrelevante.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Esta opción eliminará todos los archivos existentes en la colección y los reemplazará con los nuevos archivos subidos.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Esta respuesta fue generada por \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Esta respuesta fue generada por \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "¡AVISO! Esta plantilla contiene multiples variables de remplazo ([context] o {{context}}. El contexto será inyectado en cada una de ellas.",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "¡AVISO! Esta plantilla contiene multiples variables de remplazo ([context] o {{context}}. El contexto será inyectado en cada una de ellas.",
|
||||||
"This will delete": "Esto eliminará",
|
"This will delete": "Esto eliminará",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "Esto eliminará todos los modelos, incluidos los modelos personalizados",
|
"This will delete all models including custom models": "Esto eliminará todos los modelos, incluidos los modelos personalizados",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Esto eliminará todos los modelos, incluidos los modelos personalizados y no se puede deshacer.",
|
"This will delete all models including custom models and cannot be undone.": "Esto eliminará todos los modelos, incluidos los modelos personalizados y no se puede deshacer.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Esta acción borará permanentemente el calendario \"{{name}}\" y todos sus eventos. Esta acción no se puede deshacer.",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Esta acción borará permanentemente el calendario \"{{name}}\" y todos sus eventos. Esta acción no se puede deshacer.",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Esto reinicializará la base de conocimientos y sincronizará todos los archivos. ¿Desea continuar?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Explicación exhaustiva",
|
"Thorough explanation": "Explicación exhaustiva",
|
||||||
"Thought": "Pensando",
|
"Thought": "Pensando",
|
||||||
"Thought for {{DURATION}}": "Pensando durante {{DURATION}}",
|
"Thought for {{DURATION}}": "Pensando durante {{DURATION}}",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "Des/Plegar 1 fuente",
|
"Toggle 1 source": "Des/Plegar 1 fuente",
|
||||||
"Toggle details": "Des/Plegar detalles",
|
"Toggle details": "Des/Plegar detalles",
|
||||||
"Toggle Dictation": "Des/Plegar Dictado",
|
"Toggle Dictation": "Des/Plegar Dictado",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Des/Plegar la Barra Lateral",
|
"Toggle Sidebar": "Des/Plegar la Barra Lateral",
|
||||||
"Toggle status history": "Des/Plegar historial de estado",
|
"Toggle status history": "Des/Plegar historial de estado",
|
||||||
"Toggle whether current connection is active.": "Alternar si la conexión actual está activa",
|
"Toggle whether current connection is active.": "Alternar si la conexión actual está activa",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "Progreso de la Subida",
|
"Upload Progress": "Progreso de la Subida",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progreso de la Subida: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progreso de la Subida: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Archivos o imágenes cargados",
|
"Uploaded files or images": "Archivos o imágenes cargados",
|
||||||
"Uploading file...": "Subiendo archivo...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Subiendo...",
|
"Uploading...": "Subiendo...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "La URL es requerida",
|
"URL is required": "La URL es requerida",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "Grupos de Usuarios",
|
"User Groups": "Grupos de Usuarios",
|
||||||
"User location successfully retrieved.": "Ubicación de usuario obtenida correctamente.",
|
"User location successfully retrieved.": "Ubicación de usuario obtenida correctamente.",
|
||||||
"User menu": "Menu de Usuario",
|
"User menu": "Menu de Usuario",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Calificaciones de los usuarios (pulgares arriba/abajo)",
|
"User ratings (thumbs up/down)": "Calificaciones de los usuarios (pulgares arriba/abajo)",
|
||||||
"User Status": "Estado del Usuario",
|
"User Status": "Estado del Usuario",
|
||||||
"User Webhooks": "Usuario Webhooks",
|
"User Webhooks": "Usuario Webhooks",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[Täna kell] h:mm A",
|
"[Today at] h:mm A": "[Täna kell] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Eile kell] h:mm A",
|
"[Yesterday at] h:mm A": "[Eile kell] h:mm A",
|
||||||
"{{ models }}": "{{ mudelid }}",
|
"{{ models }}": "{{ mudelid }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} tööriista saadaval",
|
"{{COUNT}} Available Tools": "{{COUNT}} tööriista saadaval",
|
||||||
"{{COUNT}} characters": "{{COUNT}} märki",
|
"{{COUNT}} characters": "{{COUNT}} märki",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} eraldatud rida",
|
"{{COUNT}} extracted lines": "{{COUNT}} eraldatud rida",
|
||||||
"{{COUNT}} files": "{{COUNT}} faili",
|
"{{COUNT}} files": "{{COUNT}} faili",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} peidetud rida",
|
"{{COUNT}} hidden lines": "{{COUNT}} peidetud rida",
|
||||||
"{{COUNT}} members": "{{COUNT}} liiget",
|
"{{COUNT}} members": "{{COUNT}} liiget",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} vastust",
|
"{{COUNT}} Replies": "{{COUNT}} vastust",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} rida",
|
"{{COUNT}} Rows": "{{COUNT}} rida",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Kas olete kindel, et soovite kustutada kõik vestlused? Seda toimingut ei saa tagasi võtta.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Kas olete kindel, et soovite kustutada kõik vestlused? Seda toimingut ei saa tagasi võtta.",
|
||||||
"Are you sure you want to delete this channel?": "Kas olete kindel, et soovite selle kanali kustutada?",
|
"Are you sure you want to delete this channel?": "Kas olete kindel, et soovite selle kanali kustutada?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Kas olete kindel, et soovite selle sõnumi kustutada?",
|
"Are you sure you want to delete this message?": "Kas olete kindel, et soovite selle sõnumi kustutada?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Kas olete kindel, et soovite selle versiooni kustutada? Alamversioonid seotakse uuesti selle versiooni vanemaga.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Kas olete kindel, et soovite selle versiooni kustutada? Alamversioonid seotakse uuesti selle versiooni vanemaga.",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Saadaolevate nimekiri",
|
"Available list": "Saadaolevate nimekiri",
|
||||||
"Available models": "Saadaolevad mudelid",
|
"Available models": "Saadaolevad mudelid",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Saadaolevad tööriistad",
|
"Available Tools": "Saadaolevad tööriistad",
|
||||||
"available users": "saadaolevad kasutajad",
|
"available users": "saadaolevad kasutajad",
|
||||||
"available!": "saadaval!",
|
"available!": "saadaval!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI töövoog",
|
"ComfyUI Workflow": "ComfyUI töövoog",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI töövoo sõlmed",
|
"ComfyUI Workflow Nodes": "ComfyUI töövoo sõlmed",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Komadega eraldatud sõlme ID-d (nt 1 või 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Komadega eraldatud sõlme ID-d (nt 1 või 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "käsk",
|
"command": "käsk",
|
||||||
"Command": "Käsk",
|
"Command": "Käsk",
|
||||||
"Comment": "Kommentaar",
|
"Comment": "Kommentaar",
|
||||||
"Commit Message": "Commiti teade",
|
"Commit Message": "Commiti teade",
|
||||||
"Community Reviews": "Kogukonna ülevaated",
|
"Community Reviews": "Kogukonna ülevaated",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Lõpetamised",
|
"Completions": "Lõpetamised",
|
||||||
"Compress Images in Channels": "Tihenda pildid kanalites",
|
"Compress Images in Channels": "Tihenda pildid kanalites",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Samaaegsed päringud",
|
"Concurrent Requests": "Samaaegsed päringud",
|
||||||
"Config": "Seadistus",
|
"Config": "Seadistus",
|
||||||
"Config imported successfully": "Seadistus edukalt imporditud",
|
"Config imported successfully": "Seadistus edukalt imporditud",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Kustuta mudel",
|
"Delete a model": "Kustuta mudel",
|
||||||
"Delete All": "Kustuta kõik",
|
"Delete All": "Kustuta kõik",
|
||||||
"Delete All Chats": "Kustuta kõik vestlused",
|
"Delete All Chats": "Kustuta kõik vestlused",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Kustuta kogu selle kausta sisu",
|
"Delete all contents inside this folder": "Kustuta kogu selle kausta sisu",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Kustuta vestlus",
|
"Delete Chat": "Kustuta vestlus",
|
||||||
"Delete chat?": "Kustutada vestlus?",
|
"Delete chat?": "Kustutada vestlus?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "Kustuta fail",
|
"Delete File": "Kustuta fail",
|
||||||
"Delete folder?": "Kustutada kaust?",
|
"Delete folder?": "Kustutada kaust?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Otsesed ühendused võimaldavad kasutajatel ühenduda oma OpenAI-ga ühilduvate API lõpp-punktidega.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Otsesed ühendused võimaldavad kasutajatel ühenduda oma OpenAI-ga ühilduvate API lõpp-punktidega.",
|
||||||
"Direct Message": "Otsesõnum",
|
"Direct Message": "Otsesõnum",
|
||||||
"Direct Tool Servers": "Otsesed tööriistaserverid",
|
"Direct Tool Servers": "Otsesed tööriistaserverid",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Kataloogi valik tühistati",
|
"Directory selection was cancelled": "Kataloogi valik tühistati",
|
||||||
"Disable All": "Keela kõik",
|
"Disable All": "Keela kõik",
|
||||||
"Disable Code Interpreter": "Keela koodi interpretaator",
|
"Disable Code Interpreter": "Keela koodi interpretaator",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "Manustamise samaaegsed päringud",
|
"Embedding Concurrent Requests": "Manustamise samaaegsed päringud",
|
||||||
"Embedding Model": "Manustamise mudel",
|
"Embedding Model": "Manustamise mudel",
|
||||||
"Embedding Model Engine": "Manustamise mudeli mootor",
|
"Embedding Model Engine": "Manustamise mudeli mootor",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "Tühi sõnum",
|
"Empty message": "Tühi sõnum",
|
||||||
"Enable All": "Luba kõik",
|
"Enable All": "Luba kõik",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Sisestage Kagi Search API võti",
|
"Enter Kagi Search API Key": "Sisestage Kagi Search API võti",
|
||||||
"Enter Key Behavior": "Sisestage võtme käitumine",
|
"Enter Key Behavior": "Sisestage võtme käitumine",
|
||||||
"Enter language codes": "Sisestage keelekoodid",
|
"Enter language codes": "Sisestage keelekoodid",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "Sisestage MinerU API võti",
|
"Enter MinerU API Key": "Sisestage MinerU API võti",
|
||||||
"Enter Mistral API Base URL": "Sisestage Mistral API baas-URL",
|
"Enter Mistral API Base URL": "Sisestage Mistral API baas-URL",
|
||||||
"Enter Mistral API Key": "Sisestage Mistral API võti",
|
"Enter Mistral API Key": "Sisestage Mistral API võti",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "Vestluse arhiveerimine ebaõnnestus.",
|
"Failed to archive chat.": "Vestluse arhiveerimine ebaõnnestus.",
|
||||||
"Failed to attach file": "Faili lisamine ebaõnnestus",
|
"Failed to attach file": "Faili lisamine ebaõnnestus",
|
||||||
"Failed to clear status": "Oleku tühjendamine ebaõnnestus",
|
"Failed to clear status": "Oleku tühjendamine ebaõnnestus",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Ühendamine {{URL}} OpenAPI tööriistaserveriga ebaõnnestus",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Ühendamine {{URL}} OpenAPI tööriistaserveriga ebaõnnestus",
|
||||||
"Failed to connect to {{URL}} terminal server": "Ühendamine {{URL}} terminali serveriga ebaõnnestus",
|
"Failed to connect to {{URL}} terminal server": "Ühendamine {{URL}} terminali serveriga ebaõnnestus",
|
||||||
"Failed to copy link": "Lingi kopeerimine ebaõnnestus",
|
"Failed to copy link": "Lingi kopeerimine ebaõnnestus",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Faili sisu edukalt uuendatud.",
|
"File content updated successfully.": "Faili sisu edukalt uuendatud.",
|
||||||
"File Context": "Faili kontekst",
|
"File Context": "Faili kontekst",
|
||||||
"File deleted successfully.": "Fail edukalt kustutatud.",
|
"File deleted successfully.": "Fail edukalt kustutatud.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Faili režiim",
|
"File Mode": "Faili režiim",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Faili nimi",
|
"File name": "Faili nimi",
|
||||||
"File not found.": "Faili ei leitud.",
|
"File not found.": "Faili ei leitud.",
|
||||||
"File removed successfully.": "Fail edukalt eemaldatud.",
|
"File removed successfully.": "Fail edukalt eemaldatud.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Faili suurus ei tohiks ületada {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Faili suurus ei tohiks ületada {{maxSize}} MB.",
|
||||||
"File Upload": "Faili üleslaadimine",
|
"File Upload": "Faili üleslaadimine",
|
||||||
"File uploaded successfully": "Fail edukalt üles laaditud",
|
"File uploaded successfully": "Fail edukalt üles laaditud",
|
||||||
"File uploaded!": "Fail üles laaditud!",
|
|
||||||
"Filename": "Failinimi",
|
"Filename": "Failinimi",
|
||||||
"Files": "Failid",
|
"Files": "Failid",
|
||||||
"Filter": "Filter",
|
"Filter": "Filter",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Teadmised",
|
"Knowledge": "Teadmised",
|
||||||
"Knowledge Access": "Teadmiste juurdepääs",
|
"Knowledge Access": "Teadmiste juurdepääs",
|
||||||
"Knowledge Base": "Teadmiste baas",
|
"Knowledge Base": "Teadmiste baas",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Teadmised edukalt loodud.",
|
"Knowledge created successfully.": "Teadmised edukalt loodud.",
|
||||||
"Knowledge deleted successfully.": "Teadmised edukalt kustutatud.",
|
"Knowledge deleted successfully.": "Teadmised edukalt kustutatud.",
|
||||||
"Knowledge Description": "Teadmiste kirjeldus",
|
"Knowledge Description": "Teadmiste kirjeldus",
|
||||||
"Knowledge exported successfully": "Teadmised edukalt eksporditud",
|
"Knowledge exported successfully": "Teadmised edukalt eksporditud",
|
||||||
"Knowledge Name": "Teadmiste nimi",
|
"Knowledge Name": "Teadmiste nimi",
|
||||||
"Knowledge Public Sharing": "Teadmiste avalik jagamine",
|
"Knowledge Public Sharing": "Teadmiste avalik jagamine",
|
||||||
"Knowledge reset successfully.": "Teadmised edukalt lähtestatud.",
|
|
||||||
"Knowledge Sharing": "Teadmiste jagamine",
|
"Knowledge Sharing": "Teadmiste jagamine",
|
||||||
"Knowledge updated successfully": "Teadmised edukalt uuendatud",
|
"Knowledge updated successfully": "Teadmised edukalt uuendatud",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (brauser)",
|
"Kokoro.js (Browser)": "Kokoro.js (brauser)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Hele",
|
"Light": "Hele",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Piira samaaegseid otsingupäringuid. 0 = piiramatu (vaikimisi). Määrake 1 järjestikuse täitmise jaoks (soovitatav API-de puhul, millel on ranged piirangud, nagu Brave tasuta tase).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Piira samaaegseid otsingupäringuid. 0 = piiramatu (vaikimisi). Määrake 1 järjestikuse täitmise jaoks (soovitatav API-de puhul, millel on ranged piirangud, nagu Brave tasuta tase).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Piirab samaaegsete manustamispäringute arvu. Määrake 0 piirangu puudumiseks.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Piirab samaaegsete manustamispäringute arvu. Määrake 0 piirangu puudumiseks.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Nimekiri",
|
"List": "Nimekiri",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Kuulamine...",
|
"Listening...": "Kuulamine...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Uus vestlus",
|
"New Chat": "Uus vestlus",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "Uus fail",
|
"New File": "Uus fail",
|
||||||
"New Folder": "Uus kaust",
|
"New Folder": "Uus kaust",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "HTML, CSS ega JavaScript sisu ei leitud.",
|
"No HTML, CSS, or JavaScript content found.": "HTML, CSS ega JavaScript sisu ei leitud.",
|
||||||
"No inference engine with management support found": "Järeldusmootorit haldamise toega ei leitud",
|
"No inference engine with management support found": "Järeldusmootorit haldamise toega ei leitud",
|
||||||
"No kernel": "Kernel puudub",
|
"No kernel": "Kernel puudub",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "Teadmiste baase ei leitud.",
|
"No knowledge bases found.": "Teadmiste baase ei leitud.",
|
||||||
"No knowledge found": "Teadmisi ei leitud",
|
"No knowledge found": "Teadmisi ei leitud",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Pole mälestusi, mida kustutada",
|
"No memories to clear": "Pole mälestusi, mida kustutada",
|
||||||
"No model IDs": "Mudeli ID-d puuduvad",
|
"No model IDs": "Mudeli ID-d puuduvad",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "Mudeleid pole saadaval",
|
"No models available": "Mudeleid pole saadaval",
|
||||||
"No models found": "Mudeleid ei leitud",
|
"No models found": "Mudeleid ei leitud",
|
||||||
"No models selected": "Mudeleid pole valitud",
|
"No models selected": "Mudeleid pole valitud",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "Terminaliühendust pole seadistatud.",
|
"No Terminal connection configured.": "Terminaliühendust pole seadistatud.",
|
||||||
"No terminal connections configured.": "Terminaliühendusi pole seadistatud.",
|
"No terminal connections configured.": "Terminaliühendusi pole seadistatud.",
|
||||||
"No tool server connections configured.": "Tööriistaserveri ühendusi pole seadistatud.",
|
"No tool server connections configured.": "Tööriistaserveri ühendusi pole seadistatud.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Tööriistu ei leitud",
|
"No tools found": "Tööriistu ei leitud",
|
||||||
"No users were found.": "Kasutajaid ei leitud.",
|
"No users were found.": "Kasutajaid ei leitud.",
|
||||||
"No valves": "Klappe pole",
|
"No valves": "Klappe pole",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Sees",
|
"On": "Sees",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Aktiivne ainult siis, kui seade \"Kleebi suur tekst failina\" on sisse lülitatud.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Aktiivne ainult siis, kui seade \"Kleebi suur tekst failina\" on sisse lülitatud.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Aktiivne ainult siis, kui vestluse sisend on fookuses ja LLM genereerib vastust.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Aktiivne ainult siis, kui vestluse sisend on fookuses ja LLM genereerib vastust.",
|
||||||
"Only active when the chat input is in focus.": "Aktiivne ainult siis, kui vestluse sisend on fookuses.",
|
"Only active when the chat input is in focus.": "Aktiivne ainult siis, kui vestluse sisend on fookuses.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF dokument (.pdf)",
|
"PDF document (.pdf)": "PDF dokument (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF-ist piltide väljavõtmine (OCR)",
|
"PDF Extract Images (OCR)": "PDF-ist piltide väljavõtmine (OCR)",
|
||||||
"PDF Loader Mode": "PDF laadija režiim",
|
"PDF Loader Mode": "PDF laadija režiim",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "ootel",
|
"pending": "ootel",
|
||||||
"Pending": "Ootel",
|
"Pending": "Ootel",
|
||||||
"Pending User Overlay Content": "Ootava kasutaja kattekihi sisu",
|
"Pending User Overlay Content": "Ootava kasutaja kattekihi sisu",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefiksi ID-d kasutatakse teiste ühendustega konfliktide vältimiseks, lisades mudeli ID-dele prefiksi - jätke tühjaks keelamiseks",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefiksi ID-d kasutatakse teiste ühendustega konfliktide vältimiseks, lisades mudeli ID-dele prefiksi - jätke tühjaks keelamiseks",
|
||||||
"Prevent File Creation": "Keela failide loomine",
|
"Prevent File Creation": "Keela failide loomine",
|
||||||
"Preview": "Eelvaade",
|
"Preview": "Eelvaade",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Eelmised 30 päeva",
|
"Previous 30 days": "Eelmised 30 päeva",
|
||||||
"Previous 7 days": "Eelmised 7 päeva",
|
"Previous 7 days": "Eelmised 7 päeva",
|
||||||
"Previous message": "Eelmine sõnum",
|
"Previous message": "Eelmine sõnum",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "Eemalda lemmikutest",
|
"Remove from favorites": "Eemalda lemmikutest",
|
||||||
"Remove image": "Eemalda pilt",
|
"Remove image": "Eemalda pilt",
|
||||||
"Remove Model": "Eemalda mudel",
|
"Remove Model": "Eemalda mudel",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Nimeta ümber",
|
"Rename": "Nimeta ümber",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Lähtesta",
|
"Reset": "Lähtesta",
|
||||||
"Reset All Models": "Lähtesta kõik mudelid",
|
"Reset All Models": "Lähtesta kõik mudelid",
|
||||||
"Reset Image": "Lähtesta pilt",
|
"Reset Image": "Lähtesta pilt",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Lähtesta üleslaadimiste kataloog",
|
"Reset Upload Directory": "Lähtesta üleslaadimiste kataloog",
|
||||||
"Reset Vector Storage/Knowledge": "Lähtesta vektormälu/teadmised",
|
"Reset Vector Storage/Knowledge": "Lähtesta vektormälu/teadmised",
|
||||||
"Reset view": "Lähtesta vaade",
|
"Reset view": "Lähtesta vaade",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Otsi sisendeid",
|
"Search Prompts": "Otsi sisendeid",
|
||||||
"Search Result Count": "Otsingutulemuste arv",
|
"Search Result Count": "Otsingutulemuste arv",
|
||||||
"Search Skills": "Otsi oskusi",
|
"Search Skills": "Otsi oskusi",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Otsi internetist",
|
"Search the internet": "Otsi internetist",
|
||||||
"Search the web and fetch URLs": "Otsi veebist ja hangi URL-e",
|
"Search the web and fetch URLs": "Otsi veebist ja hangi URL-e",
|
||||||
"Search Tools": "Otsi tööriistu",
|
"Search Tools": "Otsi tööriistu",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "Sünkrooni",
|
"Sync": "Sünkrooni",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Sünkroonimine lõpetatud!",
|
"Sync Complete!": "Sünkroonimine lõpetatud!",
|
||||||
"Sync directory": "Sünkroniseeri kataloog",
|
"Sync directory": "Sünkroniseeri kataloog",
|
||||||
"Sync Failed": "Sünkroonimine ebaõnnestus",
|
"Sync Failed": "Sünkroonimine ebaõnnestus",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "See valik kontrollib, mitu tokenit säilitatakse konteksti värskendamisel. Näiteks kui see on määratud 2-le, säilitatakse vestluse konteksti viimased 2 tokenit. Konteksti säilitamine võib aidata säilitada vestluse järjepidevust, kuid võib vähendada võimet reageerida uutele teemadele.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "See valik kontrollib, mitu tokenit säilitatakse konteksti värskendamisel. Näiteks kui see on määratud 2-le, säilitatakse vestluse konteksti viimased 2 tokenit. Konteksti säilitamine võib aidata säilitada vestluse järjepidevust, kuid võib vähendada võimet reageerida uutele teemadele.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "See valik lubab või keelab Ollama arutlusfunktsiooni kasutamise, mis võimaldab mudelil enne vastuse genereerimist mõelda. Kui see on lubatud, võib mudel võtta hetke vestluse konteksti töötlemiseks ja läbimõeldum vastuse genereerimiseks.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "See valik lubab või keelab Ollama arutlusfunktsiooni kasutamise, mis võimaldab mudelil enne vastuse genereerimist mõelda. Kui see on lubatud, võib mudel võtta hetke vestluse konteksti töötlemiseks ja läbimõeldum vastuse genereerimiseks.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "See valik määrab maksimaalse tokenite arvu, mida mudel saab oma vastuses genereerida. Selle piirmäära suurendamine võimaldab mudelil anda pikemaid vastuseid, kuid võib suurendada ka ebavajaliku või ebaolulise sisu genereerimise tõenäosust.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "See valik määrab maksimaalse tokenite arvu, mida mudel saab oma vastuses genereerida. Selle piirmäära suurendamine võimaldab mudelil anda pikemaid vastuseid, kuid võib suurendada ka ebavajaliku või ebaolulise sisu genereerimise tõenäosust.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "See valik kustutab kõik olemasolevad failid kogust ja asendab need äsja üleslaaditud failidega.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Selle vastuse genereeris \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Selle vastuse genereeris \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "See kustutab",
|
"This will delete": "See kustutab",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "See kustutab kõik mudelid, sealhulgas kohandatud mudelid",
|
"This will delete all models including custom models": "See kustutab kõik mudelid, sealhulgas kohandatud mudelid",
|
||||||
"This will delete all models including custom models and cannot be undone.": "See kustutab kõik mudelid, sealhulgas kohandatud mudelid, ja seda ei saa tagasi võtta.",
|
"This will delete all models including custom models and cannot be undone.": "See kustutab kõik mudelid, sealhulgas kohandatud mudelid, ja seda ei saa tagasi võtta.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "See lähtestab teadmiste baasi ja sünkroniseerib kõik failid. Kas soovite jätkata?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Põhjalik selgitus",
|
"Thorough explanation": "Põhjalik selgitus",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Mõtles {{DURATION}}",
|
"Thought for {{DURATION}}": "Mõtles {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "Lülita 1 allikas",
|
"Toggle 1 source": "Lülita 1 allikas",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "Lülita dikteerimine",
|
"Toggle Dictation": "Lülita dikteerimine",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Lülita külgriba",
|
"Toggle Sidebar": "Lülita külgriba",
|
||||||
"Toggle status history": "Lülita olekuajalugu",
|
"Toggle status history": "Lülita olekuajalugu",
|
||||||
"Toggle whether current connection is active.": "Lülita, kas praegune ühendus on aktiivne.",
|
"Toggle whether current connection is active.": "Lülita, kas praegune ühendus on aktiivne.",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Üleslaadimise progress",
|
"Upload Progress": "Üleslaadimise progress",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Üleslaadimise edenemine: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Üleslaadimise edenemine: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Üleslaaditud failid või pildid",
|
"Uploaded files or images": "Üleslaaditud failid või pildid",
|
||||||
"Uploading file...": "Faili üleslaadimine...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Üleslaadimine...",
|
"Uploading...": "Üleslaadimine...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL on nõutav",
|
"URL is required": "URL on nõutav",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "Kasutajagrupid",
|
"User Groups": "Kasutajagrupid",
|
||||||
"User location successfully retrieved.": "Kasutaja asukoht edukalt hangitud.",
|
"User location successfully retrieved.": "Kasutaja asukoht edukalt hangitud.",
|
||||||
"User menu": "Kasutaja menüü",
|
"User menu": "Kasutaja menüü",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Kasutajate hinnangud (pöidlad üles/alla)",
|
"User ratings (thumbs up/down)": "Kasutajate hinnangud (pöidlad üles/alla)",
|
||||||
"User Status": "Kasutaja olek",
|
"User Status": "Kasutaja olek",
|
||||||
"User Webhooks": "Kasutaja webhook'id",
|
"User Webhooks": "Kasutaja webhook'id",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Zerrenda erabilgarria",
|
"Available list": "Zerrenda erabilgarria",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "erabilgarri dauden erabiltzaileak",
|
"available users": "erabilgarri dauden erabiltzaileak",
|
||||||
"available!": "eskuragarri!",
|
"available!": "eskuragarri!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI Lan-fluxua",
|
"ComfyUI Workflow": "ComfyUI Lan-fluxua",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI Lan-fluxu Nodoak",
|
"ComfyUI Workflow Nodes": "ComfyUI Lan-fluxu Nodoak",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Komandoa",
|
"Command": "Komandoa",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Osatzeak",
|
"Completions": "Osatzeak",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Eskari Konkurrenteak",
|
"Concurrent Requests": "Eskari Konkurrenteak",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Ezabatu eredu bat",
|
"Delete a model": "Ezabatu eredu bat",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Ezabatu Txat Guztiak",
|
"Delete All Chats": "Ezabatu Txat Guztiak",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Ezabatu Txata",
|
"Delete Chat": "Ezabatu Txata",
|
||||||
"Delete chat?": "Ezabatu txata?",
|
"Delete chat?": "Ezabatu txata?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Ezabatu karpeta?",
|
"Delete folder?": "Ezabatu karpeta?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Embedding Eredua",
|
"Embedding Model": "Embedding Eredua",
|
||||||
"Embedding Model Engine": "Embedding Eredu Motorea",
|
"Embedding Model Engine": "Embedding Eredu Motorea",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "Sartu hizkuntza kodeak",
|
"Enter language codes": "Sartu hizkuntza kodeak",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Fitxategiaren edukia ongi eguneratu da.",
|
"File content updated successfully.": "Fitxategiaren edukia ongi eguneratu da.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Fitxategi Modua",
|
"File Mode": "Fitxategi Modua",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Ez da fitxategia aurkitu.",
|
"File not found.": "Ez da fitxategia aurkitu.",
|
||||||
"File removed successfully.": "Fitxategia ongi ezabatu da.",
|
"File removed successfully.": "Fitxategia ongi ezabatu da.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Fitxategiaren tamainak ez luke {{maxSize}} MB gainditu behar.",
|
"File size should not exceed {{maxSize}} MB.": "Fitxategiaren tamainak ez luke {{maxSize}} MB gainditu behar.",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Fitxategiak",
|
"Files": "Fitxategiak",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Ezagutza",
|
"Knowledge": "Ezagutza",
|
||||||
"Knowledge Access": "Ezagutzarako Sarbidea",
|
"Knowledge Access": "Ezagutzarako Sarbidea",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Ezagutza ongi sortu da.",
|
"Knowledge created successfully.": "Ezagutza ongi sortu da.",
|
||||||
"Knowledge deleted successfully.": "Ezagutza ongi ezabatu da.",
|
"Knowledge deleted successfully.": "Ezagutza ongi ezabatu da.",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "Ezagutza ongi berrezarri da.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "Ezagutza ongi eguneratu da.",
|
"Knowledge updated successfully": "Ezagutza ongi eguneratu da.",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Argia",
|
"Light": "Argia",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Entzuten...",
|
"Listening...": "Entzuten...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Txat berria",
|
"New Chat": "Txat berria",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "",
|
"New Folder": "",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Ez da HTML, CSS, edo JavaScript edukirik aurkitu.",
|
"No HTML, CSS, or JavaScript content found.": "Ez da HTML, CSS, edo JavaScript edukirik aurkitu.",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Ez da ezagutzarik aurkitu",
|
"No knowledge found": "Ez da ezagutzarik aurkitu",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "Ez dago modelo IDrik",
|
"No model IDs": "Ez dago modelo IDrik",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Ez da modelorik aurkitu",
|
"No models found": "Ez da modelorik aurkitu",
|
||||||
"No models selected": "Ez da modelorik hautatu",
|
"No models selected": "Ez da modelorik hautatu",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "Ez da erabiltzailerik aurkitu.",
|
"No users were found.": "Ez da erabiltzailerik aurkitu.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Piztuta",
|
"On": "Piztuta",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF dokumentua (.pdf)",
|
"PDF document (.pdf)": "PDF dokumentua (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "PDF irudiak erauzi (OCR)",
|
"PDF Extract Images (OCR)": "PDF irudiak erauzi (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "zain",
|
"pending": "zain",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Aurrizki IDa erabiltzen da beste konexioekin gatazkak saihesteko modelo IDei aurrizki bat gehituz - utzi hutsik desgaitzeko",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Aurrizki IDa erabiltzen da beste konexioekin gatazkak saihesteko modelo IDei aurrizki bat gehituz - utzi hutsik desgaitzeko",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Aurreko 30 egunak",
|
"Previous 30 days": "Aurreko 30 egunak",
|
||||||
"Previous 7 days": "Aurreko 7 egunak",
|
"Previous 7 days": "Aurreko 7 egunak",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "Kendu modeloa",
|
"Remove Model": "Kendu modeloa",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Berrizendatu",
|
"Rename": "Berrizendatu",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Berrezarri",
|
"Reset": "Berrezarri",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "Berrezarri irudia",
|
"Reset Image": "Berrezarri irudia",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Berrezarri karga direktorioa",
|
"Reset Upload Directory": "Berrezarri karga direktorioa",
|
||||||
"Reset Vector Storage/Knowledge": "Berrezarri bektore biltegia/ezagutza",
|
"Reset Vector Storage/Knowledge": "Berrezarri bektore biltegia/ezagutza",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Bilatu prompt-ak",
|
"Search Prompts": "Bilatu prompt-ak",
|
||||||
"Search Result Count": "Bilaketa emaitzen kopurua",
|
"Search Result Count": "Bilaketa emaitzen kopurua",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Bilaketa tresnak",
|
"Search Tools": "Bilaketa tresnak",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Sinkronizatu direktorioa",
|
"Sync directory": "Sinkronizatu direktorioa",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Aukera honek bilduman dauden fitxategi guztiak ezabatuko ditu eta berriki kargatutako fitxategiekin ordezkatuko ditu.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Erantzun hau \"{{model}}\" modeloak sortu du",
|
"This response was generated by \"{{model}}\"": "Erantzun hau \"{{model}}\" modeloak sortu du",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Honek ezabatuko du",
|
"This will delete": "Honek ezabatuko du",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Honek modelo guztiak ezabatuko ditu, modelo pertsonalizatuak barne",
|
"This will delete all models including custom models": "Honek modelo guztiak ezabatuko ditu, modelo pertsonalizatuak barne",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Honek modelo guztiak ezabatuko ditu, modelo pertsonalizatuak barne, eta ezin da desegin.",
|
"This will delete all models including custom models and cannot be undone.": "Honek modelo guztiak ezabatuko ditu, modelo pertsonalizatuak barne, eta ezin da desegin.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Honek ezagutza-basea berrezarri eta fitxategi guztiak sinkronizatuko ditu. Jarraitu nahi duzu?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Azalpen sakona",
|
"Thorough explanation": "Azalpen sakona",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Kargaren aurrerapena",
|
"Upload Progress": "Kargaren aurrerapena",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URLa",
|
"URL": "URLa",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "Erabiltzailearen kokapena ongi berreskuratu da.",
|
"User location successfully retrieved.": "Erabiltzailearen kokapena ongi berreskuratu da.",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[امروز در] h:mm A",
|
"[Today at] h:mm A": "[امروز در] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[دیروز در] h:mm A",
|
"[Yesterday at] h:mm A": "[دیروز در] h:mm A",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} ابزار موجود",
|
"{{COUNT}} Available Tools": "{{COUNT}} ابزار موجود",
|
||||||
"{{COUNT}} characters": "{{COUNT}} نویسه",
|
"{{COUNT}} characters": "{{COUNT}} نویسه",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} خط استخراج شده",
|
"{{COUNT}} extracted lines": "{{COUNT}} خط استخراج شده",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} خط پنهان",
|
"{{COUNT}} hidden lines": "{{COUNT}} خط پنهان",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} پاسخ",
|
"{{COUNT}} Replies": "{{COUNT}} پاسخ",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "آیا مطمئن هستید که می\u200cخواهید این کانال را حذف کنید؟",
|
"Are you sure you want to delete this channel?": "آیا مطمئن هستید که می\u200cخواهید این کانال را حذف کنید؟",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "آیا مطمئن هستید که می\u200cخواهید این پیام را حذف کنید؟",
|
"Are you sure you want to delete this message?": "آیا مطمئن هستید که می\u200cخواهید این پیام را حذف کنید؟",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "فهرست دردسترس",
|
"Available list": "فهرست دردسترس",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "ابزارهای موجود",
|
"Available Tools": "ابزارهای موجود",
|
||||||
"available users": "کاربران در دسترس",
|
"available users": "کاربران در دسترس",
|
||||||
"available!": "در دسترس!",
|
"available!": "در دسترس!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "گردش کار کومیوآی",
|
"ComfyUI Workflow": "گردش کار کومیوآی",
|
||||||
"ComfyUI Workflow Nodes": "گره\u200cهای گردش کار کومیوآی",
|
"ComfyUI Workflow Nodes": "گره\u200cهای گردش کار کومیوآی",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "شناسه\u200cهای گره که با کاما جدا شده\u200cاند (مثلاً ۱ یا ۱,۲)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "شناسه\u200cهای گره که با کاما جدا شده\u200cاند (مثلاً ۱ یا ۱,۲)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "دستور",
|
"Command": "دستور",
|
||||||
"Comment": "نظر",
|
"Comment": "نظر",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "تکمیل\u200cها",
|
"Completions": "تکمیل\u200cها",
|
||||||
"Compress Images in Channels": "فشرده\u200cسازی تصاویر در کانال\u200cها",
|
"Compress Images in Channels": "فشرده\u200cسازی تصاویر در کانال\u200cها",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "درخواست های همزمان",
|
"Concurrent Requests": "درخواست های همزمان",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "پیکربندی با موفقیت وارد شد",
|
"Config imported successfully": "پیکربندی با موفقیت وارد شد",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "حذف یک مدل",
|
"Delete a model": "حذف یک مدل",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "حذف همه گفتگوها",
|
"Delete All Chats": "حذف همه گفتگوها",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "حذف گپ",
|
"Delete Chat": "حذف گپ",
|
||||||
"Delete chat?": "گفتگو حذف شود؟",
|
"Delete chat?": "گفتگو حذف شود؟",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "پوشه حذف شود؟",
|
"Delete folder?": "پوشه حذف شود؟",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "اتصالات مستقیم به کاربران اجازه می\u200cدهد به نقاط پایانی API سازگار با OpenAI خود متصل شوند.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "اتصالات مستقیم به کاربران اجازه می\u200cدهد به نقاط پایانی API سازگار با OpenAI خود متصل شوند.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "سرورهای ابزار مستقیم",
|
"Direct Tool Servers": "سرورهای ابزار مستقیم",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "انتخاب دایرکتوری لغو شد",
|
"Directory selection was cancelled": "انتخاب دایرکتوری لغو شد",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "غیرفعال کردن مفسر کد",
|
"Disable Code Interpreter": "غیرفعال کردن مفسر کد",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "مدل پیدائش",
|
"Embedding Model": "مدل پیدائش",
|
||||||
"Embedding Model Engine": "محرک مدل پیدائش",
|
"Embedding Model Engine": "محرک مدل پیدائش",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "کلید API جستجوی کاگی را وارد کنید",
|
"Enter Kagi Search API Key": "کلید API جستجوی کاگی را وارد کنید",
|
||||||
"Enter Key Behavior": "رفتار کلید را وارد کنید",
|
"Enter Key Behavior": "رفتار کلید را وارد کنید",
|
||||||
"Enter language codes": "کد زبان را وارد کنید",
|
"Enter language codes": "کد زبان را وارد کنید",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "آدرس پایه API میسترال را وارد کنید",
|
"Enter Mistral API Base URL": "آدرس پایه API میسترال را وارد کنید",
|
||||||
"Enter Mistral API Key": "کلید API میسترال را وارد کنید",
|
"Enter Mistral API Key": "کلید API میسترال را وارد کنید",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "خطا در اتصال به سرور ابزار OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "خطا در اتصال به سرور ابزار OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "کپی لینک ناموفق بود",
|
"Failed to copy link": "کپی لینک ناموفق بود",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "محتوای پرونده با موفقیت به\u200cروز شد.",
|
"File content updated successfully.": "محتوای پرونده با موفقیت به\u200cروز شد.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "حالت پرونده",
|
"File Mode": "حالت پرونده",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "پرونده یافت نشد.",
|
"File not found.": "پرونده یافت نشد.",
|
||||||
"File removed successfully.": "پرونده با موفقیت حذف شد.",
|
"File removed successfully.": "پرونده با موفقیت حذف شد.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "حجم پرونده نبایستی از {{maxSize}} MB بیشتر باشد.",
|
"File size should not exceed {{maxSize}} MB.": "حجم پرونده نبایستی از {{maxSize}} MB بیشتر باشد.",
|
||||||
"File Upload": "آپلود فایل",
|
"File Upload": "آپلود فایل",
|
||||||
"File uploaded successfully": "پرونده با موفقیت بارگذاری شد",
|
"File uploaded successfully": "پرونده با موفقیت بارگذاری شد",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "پرونده\u200cها",
|
"Files": "پرونده\u200cها",
|
||||||
"Filter": "فیلتر",
|
"Filter": "فیلتر",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "دانش",
|
"Knowledge": "دانش",
|
||||||
"Knowledge Access": "دسترسی به دانش",
|
"Knowledge Access": "دسترسی به دانش",
|
||||||
"Knowledge Base": "پایگاه دانش",
|
"Knowledge Base": "پایگاه دانش",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "دانش با موفقیت ایجاد شد.",
|
"Knowledge created successfully.": "دانش با موفقیت ایجاد شد.",
|
||||||
"Knowledge deleted successfully.": "دانش با موفقیت حذف شد.",
|
"Knowledge deleted successfully.": "دانش با موفقیت حذف شد.",
|
||||||
"Knowledge Description": "توضیحات دانش",
|
"Knowledge Description": "توضیحات دانش",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "نام دانش",
|
"Knowledge Name": "نام دانش",
|
||||||
"Knowledge Public Sharing": "اشتراک\u200cگذاری عمومی دانش",
|
"Knowledge Public Sharing": "اشتراک\u200cگذاری عمومی دانش",
|
||||||
"Knowledge reset successfully.": "دانش با موفقیت بازنشانی شد.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "دانش با موفقیت به\u200cروز شد",
|
"Knowledge updated successfully": "دانش با موفقیت به\u200cروز شد",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (مرورگر)",
|
"Kokoro.js (Browser)": "Kokoro.js (مرورگر)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "روشن",
|
"Light": "روشن",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "در حال گوش دادن...",
|
"Listening...": "در حال گوش دادن...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "گپ جدید",
|
"New Chat": "گپ جدید",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "پوشه جدید",
|
"New Folder": "پوشه جدید",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "محتوای HTML، CSS یا JavaScript یافت نشد.",
|
"No HTML, CSS, or JavaScript content found.": "محتوای HTML، CSS یا JavaScript یافت نشد.",
|
||||||
"No inference engine with management support found": "موتور استنتاج با پشتیبانی مدیریت یافت نشد",
|
"No inference engine with management support found": "موتور استنتاج با پشتیبانی مدیریت یافت نشد",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "دانشی یافت نشد",
|
"No knowledge found": "دانشی یافت نشد",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "حافظه\u200cای برای پاک کردن وجود ندارد",
|
"No memories to clear": "حافظه\u200cای برای پاک کردن وجود ندارد",
|
||||||
"No model IDs": "شناسه مدلی وجود ندارد",
|
"No model IDs": "شناسه مدلی وجود ندارد",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "مدلی یافت نشد",
|
"No models found": "مدلی یافت نشد",
|
||||||
"No models selected": "مدلی انتخاب نشده است",
|
"No models selected": "مدلی انتخاب نشده است",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "هیچ ابزاری یافت نشد",
|
"No tools found": "هیچ ابزاری یافت نشد",
|
||||||
"No users were found.": "کاربری یافت نشد.",
|
"No users were found.": "کاربری یافت نشد.",
|
||||||
"No valves": "بدون دریچه",
|
"No valves": "بدون دریچه",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "روشن",
|
"On": "روشن",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "وان\u200cدرایو",
|
"OneDrive": "وان\u200cدرایو",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "فقط زمانی فعال است که تنظیم «چسباندن متن بزرگ به عنوان فایل» روشن باشد.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "فقط زمانی فعال است که تنظیم «چسباندن متن بزرگ به عنوان فایل» روشن باشد.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد و یک LLM در حال تولید پاسخ باشد.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد و یک LLM در حال تولید پاسخ باشد.",
|
||||||
"Only active when the chat input is in focus.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد.",
|
"Only active when the chat input is in focus.": "فقط زمانی فعال است که ورودی چت در فوکوس باشد.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF سند (.pdf)",
|
"PDF document (.pdf)": "PDF سند (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)",
|
"PDF Extract Images (OCR)": "استخراج تصاویر از PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "در انتظار",
|
"pending": "در انتظار",
|
||||||
"Pending": "در انتظار",
|
"Pending": "در انتظار",
|
||||||
"Pending User Overlay Content": "محتوای پوشش کاربر در انتظار",
|
"Pending User Overlay Content": "محتوای پوشش کاربر در انتظار",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "شناسه پیشوند برای جلوگیری از تداخل با سایر اتصالات با افزودن پیشوند به شناسه\u200cهای مدل استفاده می\u200cشود - برای غیرفعال کردن خالی بگذارید",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "شناسه پیشوند برای جلوگیری از تداخل با سایر اتصالات با افزودن پیشوند به شناسه\u200cهای مدل استفاده می\u200cشود - برای غیرفعال کردن خالی بگذارید",
|
||||||
"Prevent File Creation": "جلوگیری از ایجاد فایل",
|
"Prevent File Creation": "جلوگیری از ایجاد فایل",
|
||||||
"Preview": "پیش\u200cنمایش",
|
"Preview": "پیش\u200cنمایش",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 روز قبل",
|
"Previous 30 days": "30 روز قبل",
|
||||||
"Previous 7 days": "7 روز قبل",
|
"Previous 7 days": "7 روز قبل",
|
||||||
"Previous message": "پیام قبلی",
|
"Previous message": "پیام قبلی",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "حذف تصویر",
|
"Remove image": "حذف تصویر",
|
||||||
"Remove Model": "حذف مدل",
|
"Remove Model": "حذف مدل",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "تغییر نام",
|
"Rename": "تغییر نام",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "بازنشانی",
|
"Reset": "بازنشانی",
|
||||||
"Reset All Models": "بازنشانی همه مدل\u200cها",
|
"Reset All Models": "بازنشانی همه مدل\u200cها",
|
||||||
"Reset Image": "بازنشانی تصویر",
|
"Reset Image": "بازنشانی تصویر",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "بازنشانی پوشه آپلود",
|
"Reset Upload Directory": "بازنشانی پوشه آپلود",
|
||||||
"Reset Vector Storage/Knowledge": "بازنشانی ذخیره\u200cسازی برداری/دانش",
|
"Reset Vector Storage/Knowledge": "بازنشانی ذخیره\u200cسازی برداری/دانش",
|
||||||
"Reset view": "بازنشانی نما",
|
"Reset view": "بازنشانی نما",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "جستجوی پرامپت\u200cها",
|
"Search Prompts": "جستجوی پرامپت\u200cها",
|
||||||
"Search Result Count": "تعداد نتایج جستجو",
|
"Search Result Count": "تعداد نتایج جستجو",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "جستجوی اینترنت",
|
"Search the internet": "جستجوی اینترنت",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "ابزارهای جستجو",
|
"Search Tools": "ابزارهای جستجو",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "هم\u200cگام\u200cسازی پوشه",
|
"Sync directory": "هم\u200cگام\u200cسازی پوشه",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "این گزینه کنترل می\u200cکند که هنگام تازه\u200cسازی متن، چند توکن حفظ شوند. برای مثال، اگر روی 2 تنظیم شود، 2 توکن آخر متن مکالمه حفظ خواهند شد. حفظ متن می\u200cتواند به حفظ پیوستگی مکالمه کمک کند، اما ممکن است توانایی پاسخ به موضوعات جدید را کاهش دهد.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "این گزینه کنترل می\u200cکند که هنگام تازه\u200cسازی متن، چند توکن حفظ شوند. برای مثال، اگر روی 2 تنظیم شود، 2 توکن آخر متن مکالمه حفظ خواهند شد. حفظ متن می\u200cتواند به حفظ پیوستگی مکالمه کمک کند، اما ممکن است توانایی پاسخ به موضوعات جدید را کاهش دهد.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "این گزینه استفاده از ویژگی استدلال در اُلاما را فعال یا غیرفعال می\u200cکند، که به مدل اجازه می\u200cدهد قبل از تولید پاسخ فکر کند. هنگامی که فعال باشد، مدل می\u200cتواند لحظه\u200cای را برای پردازش زمینه مکالمه صرف کند و یک پاسخ متفکرانه\u200cتر تولید کند.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "این گزینه استفاده از ویژگی استدلال در اُلاما را فعال یا غیرفعال می\u200cکند، که به مدل اجازه می\u200cدهد قبل از تولید پاسخ فکر کند. هنگامی که فعال باشد، مدل می\u200cتواند لحظه\u200cای را برای پردازش زمینه مکالمه صرف کند و یک پاسخ متفکرانه\u200cتر تولید کند.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "این گزینه حداکثر تعداد توکن\u200cهایی را که مدل می\u200cتواند در پاسخ خود تولید کند تنظیم می\u200cکند. افزایش این محدودیت به مدل اجازه می\u200cدهد پاسخ\u200cهای طولانی\u200cتری ارائه دهد، اما ممکن است احتمال تولید محتوای بی\u200cفایده یا نامربوط را نیز افزایش دهد.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "این گزینه حداکثر تعداد توکن\u200cهایی را که مدل می\u200cتواند در پاسخ خود تولید کند تنظیم می\u200cکند. افزایش این محدودیت به مدل اجازه می\u200cدهد پاسخ\u200cهای طولانی\u200cتری ارائه دهد، اما ممکن است احتمال تولید محتوای بی\u200cفایده یا نامربوط را نیز افزایش دهد.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "این گزینه تمام فایل\u200cهای موجود در مجموعه را حذف کرده و با فایل\u200cهای جدید آپلود شده جایگزین می\u200cکند.",
|
|
||||||
"This response was generated by \"{{model}}\"": "این پاسخ توسط \"{{model}}\" تولید شده است",
|
"This response was generated by \"{{model}}\"": "این پاسخ توسط \"{{model}}\" تولید شده است",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "این حذف خواهد شد",
|
"This will delete": "این حذف خواهد شد",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد",
|
"This will delete all models including custom models": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد",
|
||||||
"This will delete all models including custom models and cannot be undone.": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد و قابل بازگشت نیست.",
|
"This will delete all models including custom models and cannot be undone.": "این همه مدل\u200cها از جمله مدل\u200cهای سفارشی را حذف خواهد کرد و قابل بازگشت نیست.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "این پایگاه دانش را بازنشانی کرده و همه فایل\u200cها را همگام\u200cسازی خواهد کرد. آیا می\u200cخواهید ادامه دهید؟",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "توضیح کامل",
|
"Thorough explanation": "توضیح کامل",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "فکر کردن برای {{DURATION}}",
|
"Thought for {{DURATION}}": "فکر کردن برای {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "تغییر وضعیت نوار کناری",
|
"Toggle Sidebar": "تغییر وضعیت نوار کناری",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "تغییر وضعیت فعال بودن اتصال فعلی.",
|
"Toggle whether current connection is active.": "تغییر وضعیت فعال بودن اتصال فعلی.",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "پیشرفت آپلود",
|
"Upload Progress": "پیشرفت آپلود",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "پیشرفت آپلود: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}٪)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "پیشرفت آپلود: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}٪)",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "آدرس اینترنتی",
|
"URL": "آدرس اینترنتی",
|
||||||
"URL is required": "آدرس URL مورد نیاز است",
|
"URL is required": "آدرس URL مورد نیاز است",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "گروه\u200cهای کاربری",
|
"User Groups": "گروه\u200cهای کاربری",
|
||||||
"User location successfully retrieved.": "موقعیت مکانی کاربر با موفقیت دریافت شد.",
|
"User location successfully retrieved.": "موقعیت مکانی کاربر با موفقیت دریافت شد.",
|
||||||
"User menu": "منوی کاربر",
|
"User menu": "منوی کاربر",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "وب\u200cهوک\u200cهای کاربر",
|
"User Webhooks": "وب\u200cهوک\u200cهای کاربر",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "[Tänään] h:mm A",
|
"[Today at] h:mm A": "[Tänään] h:mm A",
|
||||||
"[Yesterday at] h:mm A": "[Eilen] h:mm A",
|
"[Yesterday at] h:mm A": "[Eilen] h:mm A",
|
||||||
"{{ models }}": "{{ mallit }}",
|
"{{ models }}": "{{ mallit }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} työkalua saatavilla",
|
"{{COUNT}} Available Tools": "{{COUNT}} työkalua saatavilla",
|
||||||
"{{COUNT}} characters": "{{COUNT}} kirjainta",
|
"{{COUNT}} characters": "{{COUNT}} kirjainta",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} poimittua riviä",
|
"{{COUNT}} extracted lines": "{{COUNT}} poimittua riviä",
|
||||||
"{{COUNT}} files": "{{COUNT}} tiedostoa",
|
"{{COUNT}} files": "{{COUNT}} tiedostoa",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "{{COUNT}} piilotettua riviä",
|
"{{COUNT}} hidden lines": "{{COUNT}} piilotettua riviä",
|
||||||
"{{COUNT}} members": "{{COUNT}} jäsentä",
|
"{{COUNT}} members": "{{COUNT}} jäsentä",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} vastausta",
|
"{{COUNT}} Replies": "{{COUNT}} vastausta",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} riviä",
|
"{{COUNT}} Rows": "{{COUNT}} riviä",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Haluatko varmasti poistaa kaikki keskustelut? Tätä toimintoa ei voi peruuttaa.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Haluatko varmasti poistaa kaikki keskustelut? Tätä toimintoa ei voi peruuttaa.",
|
||||||
"Are you sure you want to delete this channel?": "Haluatko varmasti poistaa tämän kanavan?",
|
"Are you sure you want to delete this channel?": "Haluatko varmasti poistaa tämän kanavan?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "Haluatko varmasti poistaa yhteyden? Tätä toimintoa ei voi peruuttaa.",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "Haluatko varmasti poistaa yhteyden? Tätä toimintoa ei voi peruuttaa.",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "Haluatko varmasti poistaa muiston? Tätä toimintoa ei voi peruuttaa.",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "Haluatko varmasti poistaa muiston? Tätä toimintoa ei voi peruuttaa.",
|
||||||
"Are you sure you want to delete this message?": "Haluatko varmasti poistaa tämän viestin?",
|
"Are you sure you want to delete this message?": "Haluatko varmasti poistaa tämän viestin?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Haluatko varmasti poistaa tämän version? Alaversiot linkitetään uudelleen tämän version ylätason versioon.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Haluatko varmasti poistaa tämän version? Alaversiot linkitetään uudelleen tämän version ylätason versioon.",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "Automaatiot",
|
"Automations": "Automaatiot",
|
||||||
"Available list": "Käytettävissä oleva luettelo",
|
"Available list": "Käytettävissä oleva luettelo",
|
||||||
"Available models": "Käytettävissä olevat mallit",
|
"Available models": "Käytettävissä olevat mallit",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Käytettävissä olevat työkalut",
|
"Available Tools": "Käytettävissä olevat työkalut",
|
||||||
"available users": "käytettävissä olevat käyttäjät",
|
"available users": "käytettävissä olevat käyttäjät",
|
||||||
"available!": "saatavilla!",
|
"available!": "saatavilla!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "ComfyUI-työnkulku",
|
"ComfyUI Workflow": "ComfyUI-työnkulku",
|
||||||
"ComfyUI Workflow Nodes": "ComfyUI-työnkulun solmut",
|
"ComfyUI Workflow Nodes": "ComfyUI-työnkulun solmut",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "Pilkulla erotellut Node Id:t (esim. 1 tai 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "Pilkulla erotellut Node Id:t (esim. 1 tai 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "komento",
|
"command": "komento",
|
||||||
"Command": "Komento",
|
"Command": "Komento",
|
||||||
"Comment": "Kommentti",
|
"Comment": "Kommentti",
|
||||||
"Commit Message": "Vahvistusviesti",
|
"Commit Message": "Vahvistusviesti",
|
||||||
"Community Reviews": "Yhteisön arvostelut",
|
"Community Reviews": "Yhteisön arvostelut",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Täydennykset",
|
"Completions": "Täydennykset",
|
||||||
"Compress Images in Channels": "Pakkaa kuvat kanavissa",
|
"Compress Images in Channels": "Pakkaa kuvat kanavissa",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Samanaikaiset pyynnöt",
|
"Concurrent Requests": "Samanaikaiset pyynnöt",
|
||||||
"Config": "Määritykset",
|
"Config": "Määritykset",
|
||||||
"Config imported successfully": "Määritysten tuonti onnistui",
|
"Config imported successfully": "Määritysten tuonti onnistui",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Poista malli",
|
"Delete a model": "Poista malli",
|
||||||
"Delete All": "Poista kaikki",
|
"Delete All": "Poista kaikki",
|
||||||
"Delete All Chats": "Poista kaikki keskustelut",
|
"Delete All Chats": "Poista kaikki keskustelut",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Poista kaikki sisällöt tästä kansiosta",
|
"Delete all contents inside this folder": "Poista kaikki sisällöt tästä kansiosta",
|
||||||
"Delete automation?": "Poista automaatio?",
|
"Delete automation?": "Poista automaatio?",
|
||||||
"Delete calendar": "Poista kalenteri",
|
"Delete calendar": "Poista kalenteri",
|
||||||
"Delete Calendar": "Poista kalenteri",
|
"Delete Calendar": "Poista kalenteri",
|
||||||
"Delete Chat": "Poista keskustelu",
|
"Delete Chat": "Poista keskustelu",
|
||||||
"Delete chat?": "Haluatko varmasti poistaa tämän keskustelun?",
|
"Delete chat?": "Haluatko varmasti poistaa tämän keskustelun?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "Poista tapahtuma?",
|
"Delete Event": "Poista tapahtuma?",
|
||||||
"Delete File": "Poista tiedosto",
|
"Delete File": "Poista tiedosto",
|
||||||
"Delete folder?": "Haluatko varmasti poistaa tämän kansion?",
|
"Delete folder?": "Haluatko varmasti poistaa tämän kansion?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Suorat yhteydet mahdollistavat käyttäjien yhdistää omia OpenAI-yhteensopivia API-päätepisteitä.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Suorat yhteydet mahdollistavat käyttäjien yhdistää omia OpenAI-yhteensopivia API-päätepisteitä.",
|
||||||
"Direct Message": "Suora viesti",
|
"Direct Message": "Suora viesti",
|
||||||
"Direct Tool Servers": "Suorat työkalu palvelimet",
|
"Direct Tool Servers": "Suorat työkalu palvelimet",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "Hakemiston valinta keskeytettiin",
|
"Directory selection was cancelled": "Hakemiston valinta keskeytettiin",
|
||||||
"Disable All": "Poista kaikki käytöstä",
|
"Disable All": "Poista kaikki käytöstä",
|
||||||
"Disable Code Interpreter": "Poista Koodin suoritus käytöstä",
|
"Disable Code Interpreter": "Poista Koodin suoritus käytöstä",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "Samanaikaiset upotuspyynnöt",
|
"Embedding Concurrent Requests": "Samanaikaiset upotuspyynnöt",
|
||||||
"Embedding Model": "Upotusmalli",
|
"Embedding Model": "Upotusmalli",
|
||||||
"Embedding Model Engine": "Upotusmallin moottori",
|
"Embedding Model Engine": "Upotusmallin moottori",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "Emojit",
|
"Emojis": "Emojit",
|
||||||
"Empty message": "Tyhjä viesti",
|
"Empty message": "Tyhjä viesti",
|
||||||
"Enable All": "Ota kaikki käyttöön",
|
"Enable All": "Ota kaikki käyttöön",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Kirjoita Kagi Search API -avain",
|
"Enter Kagi Search API Key": "Kirjoita Kagi Search API -avain",
|
||||||
"Enter Key Behavior": "Enter näppäimen käyttäytyminen",
|
"Enter Key Behavior": "Enter näppäimen käyttäytyminen",
|
||||||
"Enter language codes": "Kirjoita kielikoodit",
|
"Enter language codes": "Kirjoita kielikoodit",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "Kirjoita MinerU API-avain",
|
"Enter MinerU API Key": "Kirjoita MinerU API-avain",
|
||||||
"Enter Mistral API Base URL": "Kirjoita Mistral API verkko-osoite",
|
"Enter Mistral API Base URL": "Kirjoita Mistral API verkko-osoite",
|
||||||
"Enter Mistral API Key": "Kirjoita Mistral API-avain",
|
"Enter Mistral API Key": "Kirjoita Mistral API-avain",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "Keskustelun arkistointi epäonnistui.",
|
"Failed to archive chat.": "Keskustelun arkistointi epäonnistui.",
|
||||||
"Failed to attach file": "Tiedoston liittäminen epäonnistui",
|
"Failed to attach file": "Tiedoston liittäminen epäonnistui",
|
||||||
"Failed to clear status": "Tilan tyhjentäminen epäonnistui",
|
"Failed to clear status": "Tilan tyhjentäminen epäonnistui",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Yhdistäminen {{URL}} OpenAPI työkalu palvelimeen epäonnistui",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Yhdistäminen {{URL}} OpenAPI työkalu palvelimeen epäonnistui",
|
||||||
"Failed to connect to {{URL}} terminal server": "Yhdistäminen {{URL}} päätepalvelimeen epäonnistui",
|
"Failed to connect to {{URL}} terminal server": "Yhdistäminen {{URL}} päätepalvelimeen epäonnistui",
|
||||||
"Failed to copy link": "Linkin kopiointi epäonnistui",
|
"Failed to copy link": "Linkin kopiointi epäonnistui",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Tiedoston sisältö päivitetty onnistuneesti.",
|
"File content updated successfully.": "Tiedoston sisältö päivitetty onnistuneesti.",
|
||||||
"File Context": "Tiedoston konteksti",
|
"File Context": "Tiedoston konteksti",
|
||||||
"File deleted successfully.": "Tiedosto poistettiin onnistuneesti.",
|
"File deleted successfully.": "Tiedosto poistettiin onnistuneesti.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Tiedostotila",
|
"File Mode": "Tiedostotila",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Tiedostonimi",
|
"File name": "Tiedostonimi",
|
||||||
"File not found.": "Tiedostoa ei löytynyt.",
|
"File not found.": "Tiedostoa ei löytynyt.",
|
||||||
"File removed successfully.": "Tiedosto poistettu onnistuneesti.",
|
"File removed successfully.": "Tiedosto poistettu onnistuneesti.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Tiedoston koko ei saa ylittää {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Tiedoston koko ei saa ylittää {{maxSize}} MB.",
|
||||||
"File Upload": "Tiedoston lataus",
|
"File Upload": "Tiedoston lataus",
|
||||||
"File uploaded successfully": "Tiedosto ladattiin onnistuneesti",
|
"File uploaded successfully": "Tiedosto ladattiin onnistuneesti",
|
||||||
"File uploaded!": "Tiedosto ladattu!",
|
|
||||||
"Filename": "Tiedostonimi",
|
"Filename": "Tiedostonimi",
|
||||||
"Files": "Tiedostot",
|
"Files": "Tiedostot",
|
||||||
"Filter": "Suodata",
|
"Filter": "Suodata",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "Tietämys",
|
"Knowledge": "Tietämys",
|
||||||
"Knowledge Access": "Tiedon käyttöoikeus",
|
"Knowledge Access": "Tiedon käyttöoikeus",
|
||||||
"Knowledge Base": "Tietokanta",
|
"Knowledge Base": "Tietokanta",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Tietokanta luotu onnistuneesti.",
|
"Knowledge created successfully.": "Tietokanta luotu onnistuneesti.",
|
||||||
"Knowledge deleted successfully.": "Tietokanta poistettu onnistuneesti.",
|
"Knowledge deleted successfully.": "Tietokanta poistettu onnistuneesti.",
|
||||||
"Knowledge Description": "Tietokannan kuvaus",
|
"Knowledge Description": "Tietokannan kuvaus",
|
||||||
"Knowledge exported successfully": "Tietokanta viety onnistuneesti",
|
"Knowledge exported successfully": "Tietokanta viety onnistuneesti",
|
||||||
"Knowledge Name": "Tietokannan nimi",
|
"Knowledge Name": "Tietokannan nimi",
|
||||||
"Knowledge Public Sharing": "Tietokannan julkinen jakaminen",
|
"Knowledge Public Sharing": "Tietokannan julkinen jakaminen",
|
||||||
"Knowledge reset successfully.": "Tietokanta nollattu onnistuneesti.",
|
|
||||||
"Knowledge Sharing": "Tietokannan jakaminen",
|
"Knowledge Sharing": "Tietokannan jakaminen",
|
||||||
"Knowledge updated successfully": "Tietokanta päivitetty onnistuneesti",
|
"Knowledge updated successfully": "Tietokanta päivitetty onnistuneesti",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (selain)",
|
"Kokoro.js (Browser)": "Kokoro.js (selain)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Vaalea",
|
"Light": "Vaalea",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Rajoita samanaikaisia hakukyselyitä. 0 = rajoittamaton (oletus). Aseta arvoon 1 peräkkäistä suoritusta varten (suositellaan API-rajapinnoille, joilla on tiukat nopeusrajoitukset, kuten Brave-ilmaistaso).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Rajoita samanaikaisia hakukyselyitä. 0 = rajoittamaton (oletus). Aseta arvoon 1 peräkkäistä suoritusta varten (suositellaan API-rajapinnoille, joilla on tiukat nopeusrajoitukset, kuten Brave-ilmaistaso).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Rajoittaa samanaikaisten upotuspyyntöjen määrää. Arvolla 0 ei rajoituksia.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Rajoittaa samanaikaisten upotuspyyntöjen määrää. Arvolla 0 ei rajoituksia.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Lista",
|
"List": "Lista",
|
||||||
"List calendars, search, create, update, and delete calendar events": "Listaa kalenterit, hae, luo, päivitä ja poista kalenteritapahtumia",
|
"List calendars, search, create, update, and delete calendar events": "Listaa kalenterit, hae, luo, päivitä ja poista kalenteritapahtumia",
|
||||||
"Listening...": "Kuuntelee...",
|
"Listening...": "Kuuntelee...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "Uusi kalenteri",
|
"New calendar": "Uusi kalenteri",
|
||||||
"New Calendar": "Uusi kalenteri",
|
"New Calendar": "Uusi kalenteri",
|
||||||
"New Chat": "Uusi keskustelu",
|
"New Chat": "Uusi keskustelu",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "Uusi tapahtuma",
|
"New Event": "Uusi tapahtuma",
|
||||||
"New File": "Uusi tiedosto",
|
"New File": "Uusi tiedosto",
|
||||||
"New Folder": "Uusi kansio",
|
"New Folder": "Uusi kansio",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "HTML-, CSS- tai JavaScript-sisältöä ei löytynyt.",
|
"No HTML, CSS, or JavaScript content found.": "HTML-, CSS- tai JavaScript-sisältöä ei löytynyt.",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "Ei kerneliä",
|
"No kernel": "Ei kerneliä",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "Tietokantoja ei löytynyt.",
|
"No knowledge bases found.": "Tietokantoja ei löytynyt.",
|
||||||
"No knowledge found": "Tietoa ei löytynyt",
|
"No knowledge found": "Tietoa ei löytynyt",
|
||||||
"No limit": "Ei rajoituksia",
|
"No limit": "Ei rajoituksia",
|
||||||
"No memories to clear": "Ei muistia tyhjennettäväksi",
|
"No memories to clear": "Ei muistia tyhjennettäväksi",
|
||||||
"No model IDs": "Ei mallitunnuksia",
|
"No model IDs": "Ei mallitunnuksia",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "Malleja ei saatavilla",
|
"No models available": "Malleja ei saatavilla",
|
||||||
"No models found": "Malleja ei löytynyt",
|
"No models found": "Malleja ei löytynyt",
|
||||||
"No models selected": "Malleja ei ole valittu",
|
"No models selected": "Malleja ei ole valittu",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "Ei pääteyhteyttä määritettynä.",
|
"No Terminal connection configured.": "Ei pääteyhteyttä määritettynä.",
|
||||||
"No terminal connections configured.": "Ei pääteyhteyksiä määritettynä.",
|
"No terminal connections configured.": "Ei pääteyhteyksiä määritettynä.",
|
||||||
"No tool server connections configured.": "Työkalupalvelinyhteyksiä ei ole määritetty.",
|
"No tool server connections configured.": "Työkalupalvelinyhteyksiä ei ole määritetty.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Työkaluja ei löytynyt",
|
"No tools found": "Työkaluja ei löytynyt",
|
||||||
"No users were found.": "Käyttäjiä ei löytynyt.",
|
"No users were found.": "Käyttäjiä ei löytynyt.",
|
||||||
"No valves": "Ei venttiileitä",
|
"No valves": "Ei venttiileitä",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Käytössä",
|
"On": "Käytössä",
|
||||||
"Once": "Kerran",
|
"Once": "Kerran",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Aktiivinen vain, kun \"Liitä suuri teksti tiedostona\" -asetus on käytössä.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Aktiivinen vain, kun \"Liitä suuri teksti tiedostona\" -asetus on käytössä.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Aktiivinen vain, kun tekstikenttä on kohdistettuna ja LLM luo vastausta.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Aktiivinen vain, kun tekstikenttä on kohdistettuna ja LLM luo vastausta.",
|
||||||
"Only active when the chat input is in focus.": "Aktiivinen vain, kun tekstikenttä on valittuna.",
|
"Only active when the chat input is in focus.": "Aktiivinen vain, kun tekstikenttä on valittuna.",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "PDF-asiakirja (.pdf)",
|
"PDF document (.pdf)": "PDF-asiakirja (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Poimi kuvat PDF:stä (OCR)",
|
"PDF Extract Images (OCR)": "Poimi kuvat PDF:stä (OCR)",
|
||||||
"PDF Loader Mode": "PDF latausmoodi",
|
"PDF Loader Mode": "PDF latausmoodi",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "odottaa",
|
"pending": "odottaa",
|
||||||
"Pending": "Odottaa",
|
"Pending": "Odottaa",
|
||||||
"Pending User Overlay Content": "Odottavien käyttäjien sisältö",
|
"Pending User Overlay Content": "Odottavien käyttäjien sisältö",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Etuliite-ID:tä käytetään välttämään ristiriidat muiden yhteyksien kanssa lisäämällä etuliite mallitunnuksiin - jätä tyhjäksi, jos haluat ottaa sen pois käytöstä",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Etuliite-ID:tä käytetään välttämään ristiriidat muiden yhteyksien kanssa lisäämällä etuliite mallitunnuksiin - jätä tyhjäksi, jos haluat ottaa sen pois käytöstä",
|
||||||
"Prevent File Creation": "Estä tiedostojen luonti",
|
"Prevent File Creation": "Estä tiedostojen luonti",
|
||||||
"Preview": "Esikatselu",
|
"Preview": "Esikatselu",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Edelliset 30 päivää",
|
"Previous 30 days": "Edelliset 30 päivää",
|
||||||
"Previous 7 days": "Edelliset 7 päivää",
|
"Previous 7 days": "Edelliset 7 päivää",
|
||||||
"Previous message": "Edellinen viesti",
|
"Previous message": "Edellinen viesti",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "Poista suosikeista",
|
"Remove from favorites": "Poista suosikeista",
|
||||||
"Remove image": "Poista kuva",
|
"Remove image": "Poista kuva",
|
||||||
"Remove Model": "Poista malli",
|
"Remove Model": "Poista malli",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Nimeä uudelleen",
|
"Rename": "Nimeä uudelleen",
|
||||||
"Renamed to {{name}}": "Nimetty uudelleen {{name}}",
|
"Renamed to {{name}}": "Nimetty uudelleen {{name}}",
|
||||||
"Render Markdown in Assistant Messages": "Renderöi Markdown avustajan viesteissä",
|
"Render Markdown in Assistant Messages": "Renderöi Markdown avustajan viesteissä",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Palauta",
|
"Reset": "Palauta",
|
||||||
"Reset All Models": "Palauta kaikki mallit",
|
"Reset All Models": "Palauta kaikki mallit",
|
||||||
"Reset Image": "Palauta kuva",
|
"Reset Image": "Palauta kuva",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Palauta latauspolku",
|
"Reset Upload Directory": "Palauta latauspolku",
|
||||||
"Reset Vector Storage/Knowledge": "Tyhjennä vektoritallennukset/tietämys",
|
"Reset Vector Storage/Knowledge": "Tyhjennä vektoritallennukset/tietämys",
|
||||||
"Reset view": "Palauta näkymä",
|
"Reset view": "Palauta näkymä",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Hae kehotteita",
|
"Search Prompts": "Hae kehotteita",
|
||||||
"Search Result Count": "Hakutulosten määrä",
|
"Search Result Count": "Hakutulosten määrä",
|
||||||
"Search Skills": "Etsi taitoja",
|
"Search Skills": "Etsi taitoja",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Hae verkosta",
|
"Search the internet": "Hae verkosta",
|
||||||
"Search the web and fetch URLs": "Hae verkosta ja hae URL-osoitteita",
|
"Search the web and fetch URLs": "Hae verkosta ja hae URL-osoitteita",
|
||||||
"Search Tools": "Hae työkaluja",
|
"Search Tools": "Hae työkaluja",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "Vaihda JSON-editoriin",
|
"Switch to JSON editor": "Vaihda JSON-editoriin",
|
||||||
"Switch to visual editor": "Vaihda visuaaliseen editoriin",
|
"Switch to visual editor": "Vaihda visuaaliseen editoriin",
|
||||||
"Sync": "Synkronoi",
|
"Sync": "Synkronoi",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Synkronointi valmis!",
|
"Sync Complete!": "Synkronointi valmis!",
|
||||||
"Sync directory": "Synkronoitu hakemisto",
|
"Sync directory": "Synkronoitu hakemisto",
|
||||||
"Sync Failed": "Synkronointi epäonnistui",
|
"Sync Failed": "Synkronointi epäonnistui",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Tämä asetus määrittää, kuinka monta tokenia säilytetään kontekstia päivitettäessä. Jos arvoksi on asetettu esimerkiksi 2, keskustelukontekstin kaksi viimeistä tokenia säilytetään. Kontekstin säilyttäminen voi auttaa ylläpitämään keskustelun jatkuvuutta, mutta se voi heikentää kykyä vastata uusiin aiheisiin.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Tämä asetus määrittää, kuinka monta tokenia säilytetään kontekstia päivitettäessä. Jos arvoksi on asetettu esimerkiksi 2, keskustelukontekstin kaksi viimeistä tokenia säilytetään. Kontekstin säilyttäminen voi auttaa ylläpitämään keskustelun jatkuvuutta, mutta se voi heikentää kykyä vastata uusiin aiheisiin.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Tämä vaihtoehto mahdollistaa tai estää päättelyominaisuuden käytön Ollama:ssa, mikä antaa mallille mahdollisuuden miettiä ennen vastauksen tuottamista. Kun se on käytössä, malli voi ottaa hetken aikaa käsitellä keskustelun kontekstia ja tuottaa ajatellumman vastauksen.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Tämä vaihtoehto mahdollistaa tai estää päättelyominaisuuden käytön Ollama:ssa, mikä antaa mallille mahdollisuuden miettiä ennen vastauksen tuottamista. Kun se on käytössä, malli voi ottaa hetken aikaa käsitellä keskustelun kontekstia ja tuottaa ajatellumman vastauksen.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Tämä vaihtoehto asettaa mallin vastauksessaan luomien tokenien enimmäismäärän. Tämän rajan nostaminen antaa mallille mahdollisuuden tarjota pidempiä vastauksia, mutta se voi myös lisätä hyödyttömän tai epäolennaisen sisällön luomisen todennäköisyyttä.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Tämä vaihtoehto asettaa mallin vastauksessaan luomien tokenien enimmäismäärän. Tämän rajan nostaminen antaa mallille mahdollisuuden tarjota pidempiä vastauksia, mutta se voi myös lisätä hyödyttömän tai epäolennaisen sisällön luomisen todennäköisyyttä.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Tämä vaihtoehto poistaa kaikki kokoelman nykyiset tiedostot ja korvaa ne uusilla ladatuilla tiedostoilla.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Tämän vastauksen tuotti \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Tämän vastauksen tuotti \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Tämä mallipohja sisältää useita kontekstipaikkamerkkejä ([context] tai {{CONTEXT}}). Konteksti lisätään jokaiseen esiintymään.",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "Tämä mallipohja sisältää useita kontekstipaikkamerkkejä ([context] tai {{CONTEXT}}). Konteksti lisätään jokaiseen esiintymään.",
|
||||||
"This will delete": "Tämä poistaa",
|
"This will delete": "Tämä poistaa",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Tämä poistaa kaikki mallit mukaan lukien mukautetut mallit",
|
"This will delete all models including custom models": "Tämä poistaa kaikki mallit mukaan lukien mukautetut mallit",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Tämä poistaa kaikki mallit, mukaan lukien mukautetut mallit, eikä sitä voi peruuttaa.",
|
"This will delete all models including custom models and cannot be undone.": "Tämä poistaa kaikki mallit, mukaan lukien mukautetut mallit, eikä sitä voi peruuttaa.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Tämä poistaa pysyvästi kalenterin \"{{name}}\" ja kaikki sen tapahtumat. Tätä toimintoa ei voi peruuttaa.",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "Tämä poistaa pysyvästi kalenterin \"{{name}}\" ja kaikki sen tapahtumat. Tätä toimintoa ei voi peruuttaa.",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Tämä nollaa tietokannan ja synkronoi kaikki tiedostot. Haluatko jatkaa?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Perusteellinen selitys",
|
"Thorough explanation": "Perusteellinen selitys",
|
||||||
"Thought": "Ajatus",
|
"Thought": "Ajatus",
|
||||||
"Thought for {{DURATION}}": "Ajatteli {{DURATION}}",
|
"Thought for {{DURATION}}": "Ajatteli {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "Näytä/piilota 1 lähde",
|
"Toggle 1 source": "Näytä/piilota 1 lähde",
|
||||||
"Toggle details": "Näytä/piilota yksityiskohdat",
|
"Toggle details": "Näytä/piilota yksityiskohdat",
|
||||||
"Toggle Dictation": "Sanelu päälle/pois",
|
"Toggle Dictation": "Sanelu päälle/pois",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Näytä/piilota sivupalkki",
|
"Toggle Sidebar": "Näytä/piilota sivupalkki",
|
||||||
"Toggle status history": "Näytä/piilota tilahistoria",
|
"Toggle status history": "Näytä/piilota tilahistoria",
|
||||||
"Toggle whether current connection is active.": "Vaihda, onko nykyinen yhteys aktiivinen",
|
"Toggle whether current connection is active.": "Vaihda, onko nykyinen yhteys aktiivinen",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Latauksen edistyminen",
|
"Upload Progress": "Latauksen edistyminen",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Latauksen edistyminen: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Latauksen edistyminen: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Ladatut tiedostot tai kuvat",
|
"Uploaded files or images": "Ladatut tiedostot tai kuvat",
|
||||||
"Uploading file...": "Ladataan tiedostoa...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Ladataan...",
|
"Uploading...": "Ladataan...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "URL vaaditaan",
|
"URL is required": "URL vaaditaan",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "Käyttäjäryhmät",
|
"User Groups": "Käyttäjäryhmät",
|
||||||
"User location successfully retrieved.": "Käyttäjän sijainti haettu onnistuneesti.",
|
"User location successfully retrieved.": "Käyttäjän sijainti haettu onnistuneesti.",
|
||||||
"User menu": "Käyttäjävalikko",
|
"User menu": "Käyttäjävalikko",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Käyttäjien arviot (peukku ylös/alas)",
|
"User ratings (thumbs up/down)": "Käyttäjien arviot (peukku ylös/alas)",
|
||||||
"User Status": "Käyttäjän tila",
|
"User Status": "Käyttäjän tila",
|
||||||
"User Webhooks": "Käyttäjän Webhook:it",
|
"User Webhooks": "Käyttäjän Webhook:it",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "",
|
"{{ models }}": "",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +199,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -240,6 +246,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "",
|
"available users": "",
|
||||||
"available!": "",
|
"available!": "",
|
||||||
@@ -399,13 +406,17 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "",
|
"Command": "",
|
||||||
"Comment": "Komento",
|
"Comment": "Komento",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "",
|
"Concurrent Requests": "",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -538,12 +549,14 @@
|
|||||||
"Delete a model": "",
|
"Delete a model": "",
|
||||||
"Delete All": "Burahin ang Lahat",
|
"Delete All": "Burahin ang Lahat",
|
||||||
"Delete All Chats": "",
|
"Delete All Chats": "",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Burahin ang Chat",
|
"Delete Chat": "Burahin ang Chat",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -580,6 +593,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "Direktang Mensahe",
|
"Direct Message": "Direktang Mensahe",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -688,6 +706,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "",
|
"Embedding Model": "",
|
||||||
"Embedding Model Engine": "",
|
"Embedding Model Engine": "",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "Mga Emoji",
|
"Emojis": "Mga Emoji",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -766,6 +785,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "",
|
"Enter language codes": "",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -902,6 +922,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -955,14 +976,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "",
|
"File Mode": "",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "",
|
"File not found.": "",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "Salain",
|
"Filter": "Salain",
|
||||||
@@ -1178,13 +1201,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1228,6 +1251,7 @@
|
|||||||
"Light": "Maliwanag",
|
"Light": "Maliwanag",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Listahan",
|
"List": "Listahan",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1378,6 +1402,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Bagong Chat",
|
"New Chat": "Bagong Chat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "Bagong Kaganapan",
|
"New Event": "Bagong Kaganapan",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Bagong Folder",
|
"New Folder": "Bagong Folder",
|
||||||
@@ -1423,11 +1449,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1448,6 +1476,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "",
|
"No users were found.": "",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1487,6 +1516,7 @@
|
|||||||
"On": "Naka-on",
|
"On": "Naka-on",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1558,6 +1588,7 @@
|
|||||||
"PDF document (.pdf)": "",
|
"PDF document (.pdf)": "",
|
||||||
"PDF Extract Images (OCR)": "",
|
"PDF Extract Images (OCR)": "",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "",
|
"pending": "",
|
||||||
"Pending": "Nakabinbin",
|
"Pending": "Nakabinbin",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1619,6 +1650,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Nakaraang 30 araw",
|
"Previous 30 days": "Nakaraang 30 araw",
|
||||||
"Previous 7 days": "Nakaraang 7 araw",
|
"Previous 7 days": "Nakaraang 7 araw",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1696,6 +1728,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "",
|
"Remove Model": "",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Palitan ng Pangalan",
|
"Rename": "Palitan ng Pangalan",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1714,6 +1748,7 @@
|
|||||||
"Reset": "I-reset",
|
"Reset": "I-reset",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "",
|
"Reset Image": "",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1782,6 +1817,7 @@
|
|||||||
"Search Prompts": "",
|
"Search Prompts": "",
|
||||||
"Search Result Count": "",
|
"Search Result Count": "",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1980,6 +2016,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "I-sync",
|
"Sync": "I-sync",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2052,7 +2090,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2060,7 +2097,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "",
|
"Thorough explanation": "",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2096,6 +2133,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2174,7 +2212,7 @@
|
|||||||
"Upload Progress": "",
|
"Upload Progress": "",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2194,6 +2232,7 @@
|
|||||||
"User Groups": "Mga Grupo ng Gumagamit",
|
"User Groups": "Mga Grupo ng Gumagamit",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "Katayuan ng Gumagamit",
|
"User Status": "Katayuan ng Gumagamit",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "Nombre d'outils disponibles {{COUNT}}",
|
"{{COUNT}} Available Tools": "Nombre d'outils disponibles {{COUNT}}",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "Nombres de lignes cachées {{COUNT}}",
|
"{{COUNT}} hidden lines": "Nombres de lignes cachées {{COUNT}}",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} réponses",
|
"{{COUNT}} Replies": "{{COUNT}} réponses",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "Êtes-vous sûr de vouloir supprimer ce canal ?",
|
"Are you sure you want to delete this channel?": "Êtes-vous sûr de vouloir supprimer ce canal ?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Êtes-vous sûr de vouloir supprimer ce message ?",
|
"Are you sure you want to delete this message?": "Êtes-vous sûr de vouloir supprimer ce message ?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Liste disponible",
|
"Available list": "Liste disponible",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Outils disponibles",
|
"Available Tools": "Outils disponibles",
|
||||||
"available users": "utilisateurs disponibles",
|
"available users": "utilisateurs disponibles",
|
||||||
"available!": "disponible !",
|
"available!": "disponible !",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "Flux de travaux de ComfyUI",
|
"ComfyUI Workflow": "Flux de travaux de ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Noeud du flux de travaux de ComfyUI",
|
"ComfyUI Workflow Nodes": "Noeud du flux de travaux de ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Commande",
|
"Command": "Commande",
|
||||||
"Comment": "Commentaire",
|
"Comment": "Commentaire",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Complétions",
|
"Completions": "Complétions",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Demandes concurrentes",
|
"Concurrent Requests": "Demandes concurrentes",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "Supprimer un modèle",
|
"Delete a model": "Supprimer un modèle",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Supprimer toutes les conversations",
|
"Delete All Chats": "Supprimer toutes les conversations",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Supprimer la Conversation",
|
"Delete Chat": "Supprimer la Conversation",
|
||||||
"Delete chat?": "Supprimer la conversation ?",
|
"Delete chat?": "Supprimer la conversation ?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "Supprimer le dossier ?",
|
"Delete folder?": "Supprimer le dossier ?",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permettent aux utilisateurs de se connecter à leurs propres points d'extension API compatibles OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permettent aux utilisateurs de se connecter à leurs propres points d'extension API compatibles OpenAI.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "Serveur d'outils directs",
|
"Direct Tool Servers": "Serveur d'outils directs",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "Désactiver l'interpréteur de code",
|
"Disable Code Interpreter": "Désactiver l'interpréteur de code",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Modèle d'embedding",
|
"Embedding Model": "Modèle d'embedding",
|
||||||
"Embedding Model Engine": "Moteur de modèle d'embedding",
|
"Embedding Model Engine": "Moteur de modèle d'embedding",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "Entrez la clé API Kagi Search",
|
"Enter Kagi Search API Key": "Entrez la clé API Kagi Search",
|
||||||
"Enter Key Behavior": "Entrez la clé Behavior",
|
"Enter Key Behavior": "Entrez la clé Behavior",
|
||||||
"Enter language codes": "Entrez les codes de langue",
|
"Enter language codes": "Entrez les codes de langue",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "Entrez la clé APU de Mistral",
|
"Enter Mistral API Key": "Entrez la clé APU de Mistral",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Échec de la connexion au serveur d'outils OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Échec de la connexion au serveur d'outils OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "Échec de la copie du lien",
|
"Failed to copy link": "Échec de la copie du lien",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "Contenu du fichier mis à jour avec succès.",
|
"File content updated successfully.": "Contenu du fichier mis à jour avec succès.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Mode fichier",
|
"File Mode": "Mode fichier",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Fichier introuvable.",
|
"File not found.": "Fichier introuvable.",
|
||||||
"File removed successfully.": "Fichier supprimé avec succès.",
|
"File removed successfully.": "Fichier supprimé avec succès.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "La taille du fichier ne doit pas dépasser {{maxSize}} Mo.",
|
"File size should not exceed {{maxSize}} MB.": "La taille du fichier ne doit pas dépasser {{maxSize}} Mo.",
|
||||||
"File Upload": "Téléversement du fichier",
|
"File Upload": "Téléversement du fichier",
|
||||||
"File uploaded successfully": "Fichier téléversé avec succès",
|
"File uploaded successfully": "Fichier téléversé avec succès",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Fichiers",
|
"Files": "Fichiers",
|
||||||
"Filter": "Filtre",
|
"Filter": "Filtre",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "Connaissances",
|
"Knowledge": "Connaissances",
|
||||||
"Knowledge Access": "Accès aux connaissances",
|
"Knowledge Access": "Accès aux connaissances",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Connaissance créée avec succès.",
|
"Knowledge created successfully.": "Connaissance créée avec succès.",
|
||||||
"Knowledge deleted successfully.": "Connaissance supprimée avec succès.",
|
"Knowledge deleted successfully.": "Connaissance supprimée avec succès.",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "Partage public des Connaissances",
|
"Knowledge Public Sharing": "Partage public des Connaissances",
|
||||||
"Knowledge reset successfully.": "Connaissance réinitialisée avec succès.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "Connaissance mise à jour avec succès",
|
"Knowledge updated successfully": "Connaissance mise à jour avec succès",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Navigateur)",
|
"Kokoro.js (Browser)": "Kokoro.js (Navigateur)",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "Clair",
|
"Light": "Clair",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Écoute en cours...",
|
"Listening...": "Écoute en cours...",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Nouvelle conversation",
|
"New Chat": "Nouvelle conversation",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Nouveau dossier",
|
"New Folder": "Nouveau dossier",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
||||||
"No inference engine with management support found": "Aucun moteur d'inférence avec support trouvé",
|
"No inference engine with management support found": "Aucun moteur d'inférence avec support trouvé",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "Aucune connaissance trouvée",
|
"No knowledge found": "Aucune connaissance trouvée",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Aucun souvenir à effacer",
|
"No memories to clear": "Aucun souvenir à effacer",
|
||||||
"No model IDs": "Aucun ID de modèle",
|
"No model IDs": "Aucun ID de modèle",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "Aucun modèle trouvé",
|
"No models found": "Aucun modèle trouvé",
|
||||||
"No models selected": "Aucun modèle sélectionné",
|
"No models selected": "Aucun modèle sélectionné",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "Aucun utilisateur trouvé.",
|
"No users were found.": "Aucun utilisateur trouvé.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "Activé",
|
"On": "Activé",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "Document au format PDF (.pdf)",
|
"PDF document (.pdf)": "Document au format PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "en attente",
|
"pending": "en attente",
|
||||||
"Pending": "en attente",
|
"Pending": "en attente",
|
||||||
"Pending User Overlay Content": "Contenu de l'overlay utilisateur en attente",
|
"Pending User Overlay Content": "Contenu de l'overlay utilisateur en attente",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Le préfixe ID est utilisé pour éviter les conflits avec d'autres connexions en ajoutant un préfixe aux ID de modèle - laissez vide pour désactiver",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Le préfixe ID est utilisé pour éviter les conflits avec d'autres connexions en ajoutant un préfixe aux ID de modèle - laissez vide pour désactiver",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "Aperçu",
|
"Preview": "Aperçu",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 derniers jours",
|
"Previous 30 days": "30 derniers jours",
|
||||||
"Previous 7 days": "7 derniers jours",
|
"Previous 7 days": "7 derniers jours",
|
||||||
"Previous message": "Message précédent",
|
"Previous message": "Message précédent",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "Retirer l'image",
|
"Remove image": "Retirer l'image",
|
||||||
"Remove Model": "Retirer le modèle",
|
"Remove Model": "Retirer le modèle",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Renommer",
|
"Rename": "Renommer",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "Réinitialiser",
|
"Reset": "Réinitialiser",
|
||||||
"Reset All Models": "Réinitialiser tous les modèles",
|
"Reset All Models": "Réinitialiser tous les modèles",
|
||||||
"Reset Image": "Réinitialiser l’image",
|
"Reset Image": "Réinitialiser l’image",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
||||||
"Reset Vector Storage/Knowledge": "Réinitialiser le stockage vectoriel/connaissances",
|
"Reset Vector Storage/Knowledge": "Réinitialiser le stockage vectoriel/connaissances",
|
||||||
"Reset view": "Réinitialiser la vue",
|
"Reset view": "Réinitialiser la vue",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "Rechercher des prompts",
|
"Search Prompts": "Rechercher des prompts",
|
||||||
"Search Result Count": "Nombre de résultats de recherche",
|
"Search Result Count": "Nombre de résultats de recherche",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Cherche sur Internet",
|
"Search the internet": "Cherche sur Internet",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Rechercher des outils",
|
"Search Tools": "Rechercher des outils",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Synchroniser le répertoire",
|
"Sync directory": "Synchroniser le répertoire",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Cette option détermine combien de Token sont conservés lors du rafraîchissement du contexte. Par exemple, avec une valeur de 2, les 2 derniers Token seront conservés. Cela aide à maintenir la continuité de la conversation, mais peut limiter la capacité à traiter de nouveaux sujets.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Cette option détermine combien de Token sont conservés lors du rafraîchissement du contexte. Par exemple, avec une valeur de 2, les 2 derniers Token seront conservés. Cela aide à maintenir la continuité de la conversation, mais peut limiter la capacité à traiter de nouveaux sujets.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Cette option active ou désactive l'utilisation de la fonctionnalité de raisonnement dans Ollama, qui permet au modèle de réfléchir avant de générer une réponse. Lorsqu'elle est activée, le modèle peut prendre un moment pour traiter le contexte de la conversation et générer une réponse plus réfléchie.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Cette option active ou désactive l'utilisation de la fonctionnalité de raisonnement dans Ollama, qui permet au modèle de réfléchir avant de générer une réponse. Lorsqu'elle est activée, le modèle peut prendre un moment pour traiter le contexte de la conversation et générer une réponse plus réfléchie.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Cette option définit le nombre maximal de Token que le modèle peut générer dans sa réponse. Une valeur plus élevée permet des réponses plus longues, mais peut aussi générer du contenu moins pertinent.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Cette option définit le nombre maximal de Token que le modèle peut générer dans sa réponse. Une valeur plus élevée permet des réponses plus longues, mais peut aussi générer du contenu moins pertinent.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Cette option supprimera tous les fichiers existants dans la collection et les remplacera par les fichiers nouvellement téléchargés.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Cela supprimera",
|
"This will delete": "Cela supprimera",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "Cela supprimera tous les modèles, y compris les modèles personnalisés",
|
"This will delete all models including custom models": "Cela supprimera tous les modèles, y compris les modèles personnalisés",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Cela supprimera tous les modèles, y compris les modèles personnalisés, et ne peut pas être annulé.",
|
"This will delete all models including custom models and cannot be undone.": "Cela supprimera tous les modèles, y compris les modèles personnalisés, et ne peut pas être annulé.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Cela réinitialisera la base de connaissances et synchronisera tous les fichiers. Souhaitez-vous continuer ?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Explication approfondie",
|
"Thorough explanation": "Explication approfondie",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Réflexion de {{DURATION}}",
|
"Thought for {{DURATION}}": "Réflexion de {{DURATION}}",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "Afficher/masquer si la connection courante est active",
|
"Toggle whether current connection is active.": "Afficher/masquer si la connection courante est active",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "Progression de l'envoi",
|
"Upload Progress": "Progression de l'envoi",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "L'emplacement de l'utilisateur a été récupéré avec succès.",
|
"User location successfully retrieved.": "L'emplacement de l'utilisateur a été récupéré avec succès.",
|
||||||
"User menu": "Menu utilisateur",
|
"User menu": "Menu utilisateur",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "Webhooks utilisateur",
|
"User Webhooks": "Webhooks utilisateur",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "[Aujourd'hui à] H[h]mm",
|
"[Today at] h:mm A": "[Aujourd'hui à] H[h]mm",
|
||||||
"[Yesterday at] h:mm A": "[Hier à] H[h]mm",
|
"[Yesterday at] h:mm A": "[Hier à] H[h]mm",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "{{COUNT}} outils disponibles ",
|
"{{COUNT}} Available Tools": "{{COUNT}} outils disponibles ",
|
||||||
"{{COUNT}} characters": "{{COUNT}} caractères",
|
"{{COUNT}} characters": "{{COUNT}} caractères",
|
||||||
"{{COUNT}} extracted lines": "{{COUNT}} lignes extraites",
|
"{{COUNT}} extracted lines": "{{COUNT}} lignes extraites",
|
||||||
"{{COUNT}} files": "{{COUNT}} fichiers",
|
"{{COUNT}} files": "{{COUNT}} fichiers",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_many": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "Nombres de lignes cachées {{COUNT}}",
|
"{{COUNT}} hidden lines": "Nombres de lignes cachées {{COUNT}}",
|
||||||
"{{COUNT}} members": "{{COUNT}} membres",
|
"{{COUNT}} members": "{{COUNT}} membres",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_many": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} réponses",
|
"{{COUNT}} Replies": "{{COUNT}} réponses",
|
||||||
"{{COUNT}} Rows": "{{COUNT}} lignes",
|
"{{COUNT}} Rows": "{{COUNT}} lignes",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "Êtes-vous sûr de vouloir supprimer toutes les conversations ? Cette action est irréversible.",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "Êtes-vous sûr de vouloir supprimer toutes les conversations ? Cette action est irréversible.",
|
||||||
"Are you sure you want to delete this channel?": "Êtes-vous sûr de vouloir supprimer ce canal ?",
|
"Are you sure you want to delete this channel?": "Êtes-vous sûr de vouloir supprimer ce canal ?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "Êtes-vous sûr de vouloir supprimer ce message ?",
|
"Are you sure you want to delete this message?": "Êtes-vous sûr de vouloir supprimer ce message ?",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Êtes-vous sûr de vouloir supprimer cette version ? Les versions enfants seront rattachées à la version parente.",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "Êtes-vous sûr de vouloir supprimer cette version ? Les versions enfants seront rattachées à la version parente.",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Liste disponible",
|
"Available list": "Liste disponible",
|
||||||
"Available models": "Modèles disponibles",
|
"Available models": "Modèles disponibles",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "Outils disponibles",
|
"Available Tools": "Outils disponibles",
|
||||||
"available users": "utilisateurs disponibles",
|
"available users": "utilisateurs disponibles",
|
||||||
"available!": "disponible !",
|
"available!": "disponible !",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "Workflow ComfyUI",
|
"ComfyUI Workflow": "Workflow ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Noeuds du workflow ComfyUI",
|
"ComfyUI Workflow Nodes": "Noeuds du workflow ComfyUI",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID de nœud séparés par des virgules (Ex : 1 ou 1,2)",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "ID de nœud séparés par des virgules (Ex : 1 ou 1,2)",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "commande",
|
"command": "commande",
|
||||||
"Command": "Commande",
|
"Command": "Commande",
|
||||||
"Comment": "Commentaire",
|
"Comment": "Commentaire",
|
||||||
"Commit Message": "Description de la modification",
|
"Commit Message": "Description de la modification",
|
||||||
"Community Reviews": "Avis de la communauté",
|
"Community Reviews": "Avis de la communauté",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Complétions",
|
"Completions": "Complétions",
|
||||||
"Compress Images in Channels": "Compresser les images dans les canaux",
|
"Compress Images in Channels": "Compresser les images dans les canaux",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_many": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Demandes concurrentes",
|
"Concurrent Requests": "Demandes concurrentes",
|
||||||
"Config": "Configuration",
|
"Config": "Configuration",
|
||||||
"Config imported successfully": "Configuration importée avec succès",
|
"Config imported successfully": "Configuration importée avec succès",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "Supprimer un modèle",
|
"Delete a model": "Supprimer un modèle",
|
||||||
"Delete All": "Tout supprimer",
|
"Delete All": "Tout supprimer",
|
||||||
"Delete All Chats": "Supprimer toutes les conversations",
|
"Delete All Chats": "Supprimer toutes les conversations",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "Supprimer tout le contenu de ce dossier",
|
"Delete all contents inside this folder": "Supprimer tout le contenu de ce dossier",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Supprimer la Conversation",
|
"Delete Chat": "Supprimer la Conversation",
|
||||||
"Delete chat?": "Supprimer la conversation ?",
|
"Delete chat?": "Supprimer la conversation ?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "Supprimer le fichier",
|
"Delete File": "Supprimer le fichier",
|
||||||
"Delete folder?": "Supprimer le dossier ?",
|
"Delete folder?": "Supprimer le dossier ?",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permettent aux utilisateurs de se connecter à leurs propres points d'extension API compatibles OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Les connexions directes permettent aux utilisateurs de se connecter à leurs propres points d'extension API compatibles OpenAI.",
|
||||||
"Direct Message": "Message direct",
|
"Direct Message": "Message direct",
|
||||||
"Direct Tool Servers": "Serveur d'outils directs",
|
"Direct Tool Servers": "Serveur d'outils directs",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "La sélection du répertoire a été annulée",
|
"Directory selection was cancelled": "La sélection du répertoire a été annulée",
|
||||||
"Disable All": "Désactiver tout",
|
"Disable All": "Désactiver tout",
|
||||||
"Disable Code Interpreter": "Désactiver l'interpréteur de code",
|
"Disable Code Interpreter": "Désactiver l'interpréteur de code",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "Requêtes d'embedding simultanées",
|
"Embedding Concurrent Requests": "Requêtes d'embedding simultanées",
|
||||||
"Embedding Model": "Modèle d'embedding",
|
"Embedding Model": "Modèle d'embedding",
|
||||||
"Embedding Model Engine": "Moteur de modèle d'embedding",
|
"Embedding Model Engine": "Moteur de modèle d'embedding",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "Message vide",
|
"Empty message": "Message vide",
|
||||||
"Enable All": "Activer tout",
|
"Enable All": "Activer tout",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "Entrez la clé API Kagi",
|
"Enter Kagi Search API Key": "Entrez la clé API Kagi",
|
||||||
"Enter Key Behavior": "Comportement de la touche Entrée",
|
"Enter Key Behavior": "Comportement de la touche Entrée",
|
||||||
"Enter language codes": "Entrez les codes de langue",
|
"Enter language codes": "Entrez les codes de langue",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "Entrez la clé API MinerU",
|
"Enter MinerU API Key": "Entrez la clé API MinerU",
|
||||||
"Enter Mistral API Base URL": "Entrez l'URL de base de l'API Mistral",
|
"Enter Mistral API Base URL": "Entrez l'URL de base de l'API Mistral",
|
||||||
"Enter Mistral API Key": "Entrez la clé API Mistral",
|
"Enter Mistral API Key": "Entrez la clé API Mistral",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "Échec de l'archivage de la conversation.",
|
"Failed to archive chat.": "Échec de l'archivage de la conversation.",
|
||||||
"Failed to attach file": "Échec de l'ajout du fichier",
|
"Failed to attach file": "Échec de l'ajout du fichier",
|
||||||
"Failed to clear status": "Échec de l'effacement du statut",
|
"Failed to clear status": "Échec de l'effacement du statut",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "Échec de la connexion au serveur d'outils OpenAPI {{URL}}",
|
"Failed to connect to {{URL}} OpenAPI tool server": "Échec de la connexion au serveur d'outils OpenAPI {{URL}}",
|
||||||
"Failed to connect to {{URL}} terminal server": "Échec de la connexion au serveur de terminal {{URL}}",
|
"Failed to connect to {{URL}} terminal server": "Échec de la connexion au serveur de terminal {{URL}}",
|
||||||
"Failed to copy link": "Échec de la copie du lien",
|
"Failed to copy link": "Échec de la copie du lien",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "Contenu du fichier mis à jour avec succès.",
|
"File content updated successfully.": "Contenu du fichier mis à jour avec succès.",
|
||||||
"File Context": "Fichier dans le contexte",
|
"File Context": "Fichier dans le contexte",
|
||||||
"File deleted successfully.": "Fichier supprimé avec succès.",
|
"File deleted successfully.": "Fichier supprimé avec succès.",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Mode fichier",
|
"File Mode": "Mode fichier",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "Nom du fichier",
|
"File name": "Nom du fichier",
|
||||||
"File not found.": "Fichier introuvable.",
|
"File not found.": "Fichier introuvable.",
|
||||||
"File removed successfully.": "Fichier supprimé avec succès.",
|
"File removed successfully.": "Fichier supprimé avec succès.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "La taille du fichier ne doit pas dépasser {{maxSize}} Mo.",
|
"File size should not exceed {{maxSize}} MB.": "La taille du fichier ne doit pas dépasser {{maxSize}} Mo.",
|
||||||
"File Upload": "Téléversement du fichier",
|
"File Upload": "Téléversement du fichier",
|
||||||
"File uploaded successfully": "Fichier téléversé avec succès",
|
"File uploaded successfully": "Fichier téléversé avec succès",
|
||||||
"File uploaded!": "Fichier téléversé !",
|
|
||||||
"Filename": "Nom du fichier",
|
"Filename": "Nom du fichier",
|
||||||
"Files": "Fichiers",
|
"Files": "Fichiers",
|
||||||
"Filter": "Filtre",
|
"Filter": "Filtre",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "Connaissances",
|
"Knowledge": "Connaissances",
|
||||||
"Knowledge Access": "Accès aux connaissances",
|
"Knowledge Access": "Accès aux connaissances",
|
||||||
"Knowledge Base": "Base de connaissances",
|
"Knowledge Base": "Base de connaissances",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "Connaissance créée avec succès.",
|
"Knowledge created successfully.": "Connaissance créée avec succès.",
|
||||||
"Knowledge deleted successfully.": "Connaissance supprimée avec succès.",
|
"Knowledge deleted successfully.": "Connaissance supprimée avec succès.",
|
||||||
"Knowledge Description": "Description des connaissances",
|
"Knowledge Description": "Description des connaissances",
|
||||||
"Knowledge exported successfully": "Connaissance exportée avec succès",
|
"Knowledge exported successfully": "Connaissance exportée avec succès",
|
||||||
"Knowledge Name": "Nom de la connaissance",
|
"Knowledge Name": "Nom de la connaissance",
|
||||||
"Knowledge Public Sharing": "Partage public des Connaissances",
|
"Knowledge Public Sharing": "Partage public des Connaissances",
|
||||||
"Knowledge reset successfully.": "Connaissance réinitialisée avec succès.",
|
|
||||||
"Knowledge Sharing": "Partage des connaissances",
|
"Knowledge Sharing": "Partage des connaissances",
|
||||||
"Knowledge updated successfully": "Connaissance mise à jour avec succès",
|
"Knowledge updated successfully": "Connaissance mise à jour avec succès",
|
||||||
"Kokoro.js (Browser)": "Kokoro.js (Navigateur)",
|
"Kokoro.js (Browser)": "Kokoro.js (Navigateur)",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "Clair",
|
"Light": "Clair",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limite les requêtes de recherche simultanées. 0 = illimité (par défaut). Définir à 1 pour une exécution séquentielle (recommandé pour les API avec des limites de débit strictes comme Brave gratuit).",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "Limite les requêtes de recherche simultanées. 0 = illimité (par défaut). Définir à 1 pour une exécution séquentielle (recommandé pour les API avec des limites de débit strictes comme Brave gratuit).",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limite le nombre de requêtes d'embedding simultanées. Définir à 0 pour illimité.",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "Limite le nombre de requêtes d'embedding simultanées. Définir à 0 pour illimité.",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "Liste",
|
"List": "Liste",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Écoute en cours...",
|
"Listening...": "Écoute en cours...",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Nouvelle conversation",
|
"New Chat": "Nouvelle conversation",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "Nouveau fichier",
|
"New File": "Nouveau fichier",
|
||||||
"New Folder": "Nouveau dossier",
|
"New Folder": "Nouveau dossier",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
||||||
"No inference engine with management support found": "Aucun moteur d'inférence avec support trouvé",
|
"No inference engine with management support found": "Aucun moteur d'inférence avec support trouvé",
|
||||||
"No kernel": "Aucun noyau",
|
"No kernel": "Aucun noyau",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "Aucune base de connaissances trouvée.",
|
"No knowledge bases found.": "Aucune base de connaissances trouvée.",
|
||||||
"No knowledge found": "Aucune connaissance trouvée",
|
"No knowledge found": "Aucune connaissance trouvée",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Aucun souvenir à effacer",
|
"No memories to clear": "Aucun souvenir à effacer",
|
||||||
"No model IDs": "Aucun ID de modèle",
|
"No model IDs": "Aucun ID de modèle",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "Aucun modèle disponible",
|
"No models available": "Aucun modèle disponible",
|
||||||
"No models found": "Aucun modèle trouvé",
|
"No models found": "Aucun modèle trouvé",
|
||||||
"No models selected": "Aucun modèle sélectionné",
|
"No models selected": "Aucun modèle sélectionné",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "Aucune connexion à un terminal configurée.",
|
"No Terminal connection configured.": "Aucune connexion à un terminal configurée.",
|
||||||
"No terminal connections configured.": "Aucune connexion à un terminal configurée.",
|
"No terminal connections configured.": "Aucune connexion à un terminal configurée.",
|
||||||
"No tool server connections configured.": "Aucune connexion à un serveur d'outils configurée.",
|
"No tool server connections configured.": "Aucune connexion à un serveur d'outils configurée.",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "Aucun outil trouvé",
|
"No tools found": "Aucun outil trouvé",
|
||||||
"No users were found.": "Aucun utilisateur trouvé.",
|
"No users were found.": "Aucun utilisateur trouvé.",
|
||||||
"No valves": "Aucune vanne trouvée",
|
"No valves": "Aucune vanne trouvée",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "Activé",
|
"On": "Activé",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Uniquement lorsque le paramètre \"Coller un texte volumineux comme fichier\" est activé.",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "Uniquement lorsque le paramètre \"Coller un texte volumineux comme fichier\" est activé.",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "Uniquement lorsque la zone de saisie de la conversation est active et qu'un LLM génère une réponse.",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "Uniquement lorsque la zone de saisie de la conversation est active et qu'un LLM génère une réponse.",
|
||||||
"Only active when the chat input is in focus.": "Uniquement lorsque la zone de saisie de la conversation est active.",
|
"Only active when the chat input is in focus.": "Uniquement lorsque la zone de saisie de la conversation est active.",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "Document au format PDF (.pdf)",
|
"PDF document (.pdf)": "Document au format PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
|
||||||
"PDF Loader Mode": "Mode de chargement des PDF",
|
"PDF Loader Mode": "Mode de chargement des PDF",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "en attente",
|
"pending": "en attente",
|
||||||
"Pending": "en attente",
|
"Pending": "en attente",
|
||||||
"Pending User Overlay Content": "Contenu de l'overlay utilisateur en attente",
|
"Pending User Overlay Content": "Contenu de l'overlay utilisateur en attente",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Le préfixe ID est utilisé pour éviter les conflits avec d'autres connexions en ajoutant un préfixe aux ID de modèle - laissez vide pour désactiver",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Le préfixe ID est utilisé pour éviter les conflits avec d'autres connexions en ajoutant un préfixe aux ID de modèle - laissez vide pour désactiver",
|
||||||
"Prevent File Creation": "Empêcher la création de fichier",
|
"Prevent File Creation": "Empêcher la création de fichier",
|
||||||
"Preview": "Aperçu",
|
"Preview": "Aperçu",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 derniers jours",
|
"Previous 30 days": "30 derniers jours",
|
||||||
"Previous 7 days": "7 derniers jours",
|
"Previous 7 days": "7 derniers jours",
|
||||||
"Previous message": "Message précédent",
|
"Previous message": "Message précédent",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "Retirer des favoris",
|
"Remove from favorites": "Retirer des favoris",
|
||||||
"Remove image": "Retirer l'image",
|
"Remove image": "Retirer l'image",
|
||||||
"Remove Model": "Retirer le modèle",
|
"Remove Model": "Retirer le modèle",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._many": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Renommer",
|
"Rename": "Renommer",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "Réinitialiser",
|
"Reset": "Réinitialiser",
|
||||||
"Reset All Models": "Réinitialiser tous les modèles",
|
"Reset All Models": "Réinitialiser tous les modèles",
|
||||||
"Reset Image": "Réinitialiser l’image",
|
"Reset Image": "Réinitialiser l’image",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
||||||
"Reset Vector Storage/Knowledge": "Réinitialiser le stockage vectoriel/connaissances",
|
"Reset Vector Storage/Knowledge": "Réinitialiser le stockage vectoriel/connaissances",
|
||||||
"Reset view": "Réinitialiser la vue",
|
"Reset view": "Réinitialiser la vue",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "Rechercher des prompts",
|
"Search Prompts": "Rechercher des prompts",
|
||||||
"Search Result Count": "Nombre de résultats de recherche",
|
"Search Result Count": "Nombre de résultats de recherche",
|
||||||
"Search Skills": "Rechercher des skills",
|
"Search Skills": "Rechercher des skills",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Cherche sur Internet",
|
"Search the internet": "Cherche sur Internet",
|
||||||
"Search the web and fetch URLs": "Rechercher sur le web et récupérer le contenu de sites web à partir d'une URL",
|
"Search the web and fetch URLs": "Rechercher sur le web et récupérer le contenu de sites web à partir d'une URL",
|
||||||
"Search Tools": "Rechercher des outils",
|
"Search Tools": "Rechercher des outils",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "Synchroniser",
|
"Sync": "Synchroniser",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "Synchronisation terminée !",
|
"Sync Complete!": "Synchronisation terminée !",
|
||||||
"Sync directory": "Synchroniser le répertoire",
|
"Sync directory": "Synchroniser le répertoire",
|
||||||
"Sync Failed": "Échec de la synchronisation",
|
"Sync Failed": "Échec de la synchronisation",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Cette option détermine combien de Token sont conservés lors du rafraîchissement du contexte. Par exemple, avec une valeur de 2, les 2 derniers Token seront conservés. Cela aide à maintenir la continuité de la conversation, mais peut limiter la capacité à traiter de nouveaux sujets.",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "Cette option détermine combien de Token sont conservés lors du rafraîchissement du contexte. Par exemple, avec une valeur de 2, les 2 derniers Token seront conservés. Cela aide à maintenir la continuité de la conversation, mais peut limiter la capacité à traiter de nouveaux sujets.",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Cette option active ou désactive l'utilisation de la fonctionnalité de raisonnement dans Ollama, qui permet au modèle de réfléchir avant de générer une réponse. Lorsqu'elle est activée, le modèle peut prendre un moment pour traiter le contexte de la conversation et générer une réponse plus réfléchie.",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "Cette option active ou désactive l'utilisation de la fonctionnalité de raisonnement dans Ollama, qui permet au modèle de réfléchir avant de générer une réponse. Lorsqu'elle est activée, le modèle peut prendre un moment pour traiter le contexte de la conversation et générer une réponse plus réfléchie.",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Cette option définit le nombre maximal de tokens que le modèle peut générer dans sa réponse. Une valeur plus élevée permet des réponses plus longues, mais peut aussi générer du contenu moins pertinent.",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "Cette option définit le nombre maximal de tokens que le modèle peut générer dans sa réponse. Une valeur plus élevée permet des réponses plus longues, mais peut aussi générer du contenu moins pertinent.",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Cette option supprimera tous les fichiers existants dans la collection et les remplacera par les fichiers nouvellement téléchargés.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Cela supprimera",
|
"This will delete": "Cela supprimera",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "Cela supprimera tous les modèles, y compris les modèles personnalisés",
|
"This will delete all models including custom models": "Cela supprimera tous les modèles, y compris les modèles personnalisés",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Cela supprimera tous les modèles, y compris les modèles personnalisés, et ne peut pas être annulé.",
|
"This will delete all models including custom models and cannot be undone.": "Cela supprimera tous les modèles, y compris les modèles personnalisés, et ne peut pas être annulé.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Cela réinitialisera la base de connaissances et synchronisera tous les fichiers. Souhaitez-vous continuer ?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Explication approfondie",
|
"Thorough explanation": "Explication approfondie",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Réflexion de {{DURATION}}",
|
"Thought for {{DURATION}}": "Réflexion de {{DURATION}}",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "Afficher/masquer 1 source",
|
"Toggle 1 source": "Afficher/masquer 1 source",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "Activer/Désactiver la dictée",
|
"Toggle Dictation": "Activer/Désactiver la dictée",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "Afficher/Masquer la barre latérale",
|
"Toggle Sidebar": "Afficher/Masquer la barre latérale",
|
||||||
"Toggle status history": "Afficher/masquer l'historique des statuts",
|
"Toggle status history": "Afficher/masquer l'historique des statuts",
|
||||||
"Toggle whether current connection is active.": "Afficher/masquer si la connection courante est active",
|
"Toggle whether current connection is active.": "Afficher/masquer si la connection courante est active",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "Progression de l'envoi",
|
"Upload Progress": "Progression de l'envoi",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progression du téléchargement\u00a0: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "Progression du téléchargement\u00a0: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)",
|
||||||
"Uploaded files or images": "Les fichiers ou images téléversés",
|
"Uploaded files or images": "Les fichiers ou images téléversés",
|
||||||
"Uploading file...": "Téléversement du fichier en cours...",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "Téléversement en cours...",
|
"Uploading...": "Téléversement en cours...",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "L'URL est requise",
|
"URL is required": "L'URL est requise",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "Groupes d'utilisateurs",
|
"User Groups": "Groupes d'utilisateurs",
|
||||||
"User location successfully retrieved.": "Emplacement de l'utilisateur récupéré avec succès.",
|
"User location successfully retrieved.": "Emplacement de l'utilisateur récupéré avec succès.",
|
||||||
"User menu": "Menu utilisateur",
|
"User menu": "Menu utilisateur",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "Évaluations des utilisateurs (pouces vers le haut/bas)",
|
"User ratings (thumbs up/down)": "Évaluations des utilisateurs (pouces vers le haut/bas)",
|
||||||
"User Status": "Statut utilisateur",
|
"User Status": "Statut utilisateur",
|
||||||
"User Webhooks": "Webhooks utilisateur",
|
"User Webhooks": "Webhooks utilisateur",
|
||||||
|
|||||||
@@ -9,12 +9,17 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ models }}",
|
"{{ models }}": "{{ models }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "{{COUNT}} Respostas",
|
"{{COUNT}} Replies": "{{COUNT}} Respostas",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "¿Seguro que queres eliminar este canal?",
|
"Are you sure you want to delete this channel?": "¿Seguro que queres eliminar este canal?",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "¿Seguro que queres eliminar este mensaxe? ",
|
"Are you sure you want to delete this message?": "¿Seguro que queres eliminar este mensaxe? ",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -239,6 +245,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "Lista dispoñible",
|
"Available list": "Lista dispoñible",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "",
|
"Available Tools": "",
|
||||||
"available users": "usuarios dispoñibles",
|
"available users": "usuarios dispoñibles",
|
||||||
"available!": "¡dispoñible!",
|
"available!": "¡dispoñible!",
|
||||||
@@ -398,13 +405,17 @@
|
|||||||
"ComfyUI Workflow": "Fluxo de traballo de ComfyUI",
|
"ComfyUI Workflow": "Fluxo de traballo de ComfyUI",
|
||||||
"ComfyUI Workflow Nodes": "Nodos para ComfyUI Workflow",
|
"ComfyUI Workflow Nodes": "Nodos para ComfyUI Workflow",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "Comando",
|
"Command": "Comando",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "Respostas autoxeradas",
|
"Completions": "Respostas autoxeradas",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "Solicitudes simultáneas",
|
"Concurrent Requests": "Solicitudes simultáneas",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -537,12 +548,14 @@
|
|||||||
"Delete a model": "Borra un modelo",
|
"Delete a model": "Borra un modelo",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "Eliminar todos os chats",
|
"Delete All Chats": "Eliminar todos os chats",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "Borrar Chat",
|
"Delete Chat": "Borrar Chat",
|
||||||
"Delete chat?": "Borrar o chat?",
|
"Delete chat?": "Borrar o chat?",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "¿Eliminar carpeta?",
|
"Delete folder?": "¿Eliminar carpeta?",
|
||||||
@@ -579,6 +592,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Conexións directas permiten aos usuarios conectar cos seus propios puntos finais de API compatibles con OpenAI.",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Conexións directas permiten aos usuarios conectar cos seus propios puntos finais de API compatibles con OpenAI.",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -687,6 +705,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "Modelo de Embedding",
|
"Embedding Model": "Modelo de Embedding",
|
||||||
"Embedding Model Engine": "Motor de Modelo de Embedding",
|
"Embedding Model Engine": "Motor de Modelo de Embedding",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -765,6 +784,7 @@
|
|||||||
"Enter Kagi Search API Key": "Ingrese a chave API de Kagi Search",
|
"Enter Kagi Search API Key": "Ingrese a chave API de Kagi Search",
|
||||||
"Enter Key Behavior": "Ingrese o comportamento da chave",
|
"Enter Key Behavior": "Ingrese o comportamento da chave",
|
||||||
"Enter language codes": "Ingrese códigos de idioma",
|
"Enter language codes": "Ingrese códigos de idioma",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -901,6 +921,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -954,14 +975,16 @@
|
|||||||
"File content updated successfully.": "Contido do Arquivo actualizado correctamente.",
|
"File content updated successfully.": "Contido do Arquivo actualizado correctamente.",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "Modo de Arquivo",
|
"File Mode": "Modo de Arquivo",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "Arquivo non encontrado.",
|
"File not found.": "Arquivo non encontrado.",
|
||||||
"File removed successfully.": "Arquivo eliminado correctamente.",
|
"File removed successfully.": "Arquivo eliminado correctamente.",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "Tamaño do Arquivo non debe exceder {{maxSize}} MB.",
|
"File size should not exceed {{maxSize}} MB.": "Tamaño do Arquivo non debe exceder {{maxSize}} MB.",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "Arquivo subido correctamente",
|
"File uploaded successfully": "Arquivo subido correctamente",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "Arquivos",
|
"Files": "Arquivos",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1177,13 +1200,13 @@
|
|||||||
"Knowledge": "coñecemento",
|
"Knowledge": "coñecemento",
|
||||||
"Knowledge Access": "Acceso al coñecemento",
|
"Knowledge Access": "Acceso al coñecemento",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "coñecemento creado exitosamente.",
|
"Knowledge created successfully.": "coñecemento creado exitosamente.",
|
||||||
"Knowledge deleted successfully.": "coñecemento eliminado exitosamente.",
|
"Knowledge deleted successfully.": "coñecemento eliminado exitosamente.",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "coñecemento restablecido exitosamente.",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "coñecemento actualizado exitosamente.",
|
"Knowledge updated successfully": "coñecemento actualizado exitosamente.",
|
||||||
"Kokoro.js (Browser)": "Kokoro .js (Navegador)",
|
"Kokoro.js (Browser)": "Kokoro .js (Navegador)",
|
||||||
@@ -1227,6 +1250,7 @@
|
|||||||
"Light": "Claro",
|
"Light": "Claro",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "Escoitando...",
|
"Listening...": "Escoitando...",
|
||||||
@@ -1377,6 +1401,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "Novo Chat",
|
"New Chat": "Novo Chat",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "Nova carpeta",
|
"New Folder": "Nova carpeta",
|
||||||
@@ -1422,11 +1448,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "No se encontró contido HTML, CSS, o JavaScript.",
|
"No HTML, CSS, or JavaScript content found.": "No se encontró contido HTML, CSS, o JavaScript.",
|
||||||
"No inference engine with management support found": "No se encontró un motor de inferencia con soporte de gestión",
|
"No inference engine with management support found": "No se encontró un motor de inferencia con soporte de gestión",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "No se encontrou ningún coñecemento",
|
"No knowledge found": "No se encontrou ningún coñecemento",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "Non hay memorias que limpar",
|
"No memories to clear": "Non hay memorias que limpar",
|
||||||
"No model IDs": "Non ten IDs de modelos",
|
"No model IDs": "Non ten IDs de modelos",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "No se encontraron modelos",
|
"No models found": "No se encontraron modelos",
|
||||||
"No models selected": "No se seleccionaron modelos",
|
"No models selected": "No se seleccionaron modelos",
|
||||||
@@ -1447,6 +1475,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "No se encontraron usuarios.",
|
"No users were found.": "No se encontraron usuarios.",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1486,6 +1515,7 @@
|
|||||||
"On": "Activado",
|
"On": "Activado",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "OneDrive",
|
"OneDrive": "OneDrive",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1557,6 +1587,7 @@
|
|||||||
"PDF document (.pdf)": "Documento PDF (.pdf)",
|
"PDF document (.pdf)": "Documento PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "Extraer imaxes de PDF (OCR)",
|
"PDF Extract Images (OCR)": "Extraer imaxes de PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "pendente",
|
"pending": "pendente",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1618,6 +1649,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "O ID de prefixo se utiliza para evitar conflictos con outras conexiones añadiendo un prefijo a os IDs de os modelos - deje vacío para deshabilitar",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "O ID de prefixo se utiliza para evitar conflictos con outras conexiones añadiendo un prefijo a os IDs de os modelos - deje vacío para deshabilitar",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "Últimos 30 días",
|
"Previous 30 days": "Últimos 30 días",
|
||||||
"Previous 7 days": "Últimos 7 días",
|
"Previous 7 days": "Últimos 7 días",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1695,6 +1727,8 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "Eliminar modelo",
|
"Remove Model": "Eliminar modelo",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "Renombrar",
|
"Rename": "Renombrar",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1713,6 +1747,7 @@
|
|||||||
"Reset": "Reiniciar",
|
"Reset": "Reiniciar",
|
||||||
"Reset All Models": "Reiniciar todos os modelos",
|
"Reset All Models": "Reiniciar todos os modelos",
|
||||||
"Reset Image": "Restablecer imaxe",
|
"Reset Image": "Restablecer imaxe",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "Reiniciar Directorio de carga",
|
"Reset Upload Directory": "Reiniciar Directorio de carga",
|
||||||
"Reset Vector Storage/Knowledge": "Reiniciar almacenamiento de vectores/coñecemento",
|
"Reset Vector Storage/Knowledge": "Reiniciar almacenamiento de vectores/coñecemento",
|
||||||
"Reset view": "Reiniciar vista",
|
"Reset view": "Reiniciar vista",
|
||||||
@@ -1780,6 +1815,7 @@
|
|||||||
"Search Prompts": "Buscar Prompts",
|
"Search Prompts": "Buscar Prompts",
|
||||||
"Search Result Count": "Recuento de resultados de búsqueda",
|
"Search Result Count": "Recuento de resultados de búsqueda",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "Buscar en internet",
|
"Search the internet": "Buscar en internet",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "Búsqueda de ferramentas",
|
"Search Tools": "Búsqueda de ferramentas",
|
||||||
@@ -1977,6 +2013,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "Sincroniza directorio",
|
"Sync directory": "Sincroniza directorio",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2049,7 +2087,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Esta opción eliminará todos os arquivos existentes na colección y os reemplazará con novos arquivos subidos.",
|
|
||||||
"This response was generated by \"{{model}}\"": "Esta resposta fue generada por \"{{model}}\"",
|
"This response was generated by \"{{model}}\"": "Esta resposta fue generada por \"{{model}}\"",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "Esto eliminará",
|
"This will delete": "Esto eliminará",
|
||||||
@@ -2057,7 +2094,7 @@
|
|||||||
"This will delete all models including custom models": "Esto eliminará todos os modelos, incluidos os modelos personalizados",
|
"This will delete all models including custom models": "Esto eliminará todos os modelos, incluidos os modelos personalizados",
|
||||||
"This will delete all models including custom models and cannot be undone.": "Esto eliminará todos os modelos, incluidos os modelos personalizados y no se puede deshacer.",
|
"This will delete all models including custom models and cannot be undone.": "Esto eliminará todos os modelos, incluidos os modelos personalizados y no se puede deshacer.",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Esto reseteará la base de coñecementos y sincronizará todos os arquivos. ¿Desea continuar?",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "Explicación exhaustiva",
|
"Thorough explanation": "Explicación exhaustiva",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "Pensamiento para {{DURATION}}",
|
"Thought for {{DURATION}}": "Pensamiento para {{DURATION}}",
|
||||||
@@ -2093,6 +2130,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2171,7 +2209,7 @@
|
|||||||
"Upload Progress": "Progreso de carga",
|
"Upload Progress": "Progreso de carga",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2191,6 +2229,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "Localización do usuario recuperada con éxito.",
|
"User location successfully retrieved.": "Localización do usuario recuperada con éxito.",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
"[Today at] h:mm A": "",
|
"[Today at] h:mm A": "",
|
||||||
"[Yesterday at] h:mm A": "",
|
"[Yesterday at] h:mm A": "",
|
||||||
"{{ models }}": "{{ מודלים }}",
|
"{{ models }}": "{{ מודלים }}",
|
||||||
|
"{{COUNT}} Available Skills": "",
|
||||||
"{{COUNT}} Available Tools": "",
|
"{{COUNT}} Available Tools": "",
|
||||||
"{{COUNT}} characters": "",
|
"{{COUNT}} characters": "",
|
||||||
"{{COUNT}} extracted lines": "",
|
"{{COUNT}} extracted lines": "",
|
||||||
"{{COUNT}} files": "",
|
"{{COUNT}} files": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_one": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_two": "",
|
||||||
|
"{{count}} files selected. Only new and modified files will be uploaded. Deleted files will be removed. The folder structure will be mirrored. Continue?_other": "",
|
||||||
"{{COUNT}} hidden lines": "",
|
"{{COUNT}} hidden lines": "",
|
||||||
"{{COUNT}} members": "",
|
"{{COUNT}} members": "",
|
||||||
|
"{{count}} of {{total}} accessible_one": "",
|
||||||
|
"{{count}} of {{total}} accessible_two": "",
|
||||||
|
"{{count}} of {{total}} accessible_other": "",
|
||||||
"{{COUNT}} Replies": "",
|
"{{COUNT}} Replies": "",
|
||||||
"{{COUNT}} Rows": "",
|
"{{COUNT}} Rows": "",
|
||||||
"{{count}} selected_one": "",
|
"{{count}} selected_one": "",
|
||||||
@@ -194,6 +201,7 @@
|
|||||||
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
"Are you sure you want to delete all chats? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this channel?": "",
|
"Are you sure you want to delete this channel?": "",
|
||||||
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
"Are you sure you want to delete this connection? This action cannot be undone.": "",
|
||||||
|
"Are you sure you want to delete this directory?": "",
|
||||||
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
"Are you sure you want to delete this memory? This action cannot be undone.": "",
|
||||||
"Are you sure you want to delete this message?": "",
|
"Are you sure you want to delete this message?": "",
|
||||||
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
"Are you sure you want to delete this version? Child versions will be relinked to this version's parent.": "",
|
||||||
@@ -240,6 +248,7 @@
|
|||||||
"Automations": "",
|
"Automations": "",
|
||||||
"Available list": "",
|
"Available list": "",
|
||||||
"Available models": "",
|
"Available models": "",
|
||||||
|
"Available Skills": "",
|
||||||
"Available Tools": "כלים זמינים",
|
"Available Tools": "כלים זמינים",
|
||||||
"available users": "משתמשים זמינים",
|
"available users": "משתמשים זמינים",
|
||||||
"available!": "זמין!",
|
"available!": "זמין!",
|
||||||
@@ -399,13 +408,18 @@
|
|||||||
"ComfyUI Workflow": "",
|
"ComfyUI Workflow": "",
|
||||||
"ComfyUI Workflow Nodes": "",
|
"ComfyUI Workflow Nodes": "",
|
||||||
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
"Comma separated Node Ids (e.g. 1 or 1,2)": "",
|
||||||
|
"Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"Command": "פקודה",
|
"Command": "פקודה",
|
||||||
"Comment": "",
|
"Comment": "",
|
||||||
"Commit Message": "",
|
"Commit Message": "",
|
||||||
"Community Reviews": "",
|
"Community Reviews": "",
|
||||||
|
"Comparing with knowledge base...": "",
|
||||||
"Completions": "",
|
"Completions": "",
|
||||||
"Compress Images in Channels": "",
|
"Compress Images in Channels": "",
|
||||||
|
"Computing checksums ({{count}} files)_one": "",
|
||||||
|
"Computing checksums ({{count}} files)_two": "",
|
||||||
|
"Computing checksums ({{count}} files)_other": "",
|
||||||
"Concurrent Requests": "בקשות בו-זמניות",
|
"Concurrent Requests": "בקשות בו-זמניות",
|
||||||
"Config": "",
|
"Config": "",
|
||||||
"Config imported successfully": "",
|
"Config imported successfully": "",
|
||||||
@@ -538,12 +552,14 @@
|
|||||||
"Delete a model": "מחק מודל",
|
"Delete a model": "מחק מודל",
|
||||||
"Delete All": "",
|
"Delete All": "",
|
||||||
"Delete All Chats": "מחק את כל הצ'אטים",
|
"Delete All Chats": "מחק את כל הצ'אטים",
|
||||||
|
"Delete all contents inside this directory": "",
|
||||||
"Delete all contents inside this folder": "",
|
"Delete all contents inside this folder": "",
|
||||||
"Delete automation?": "",
|
"Delete automation?": "",
|
||||||
"Delete calendar": "",
|
"Delete calendar": "",
|
||||||
"Delete Calendar": "",
|
"Delete Calendar": "",
|
||||||
"Delete Chat": "מחק צ'אט",
|
"Delete Chat": "מחק צ'אט",
|
||||||
"Delete chat?": "",
|
"Delete chat?": "",
|
||||||
|
"Delete directory?": "",
|
||||||
"Delete Event": "",
|
"Delete Event": "",
|
||||||
"Delete File": "",
|
"Delete File": "",
|
||||||
"Delete folder?": "",
|
"Delete folder?": "",
|
||||||
@@ -580,6 +596,11 @@
|
|||||||
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
"Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "",
|
||||||
"Direct Message": "",
|
"Direct Message": "",
|
||||||
"Direct Tool Servers": "",
|
"Direct Tool Servers": "",
|
||||||
|
"Directory created.": "",
|
||||||
|
"Directory deleted.": "",
|
||||||
|
"Directory moved.": "",
|
||||||
|
"Directory name": "",
|
||||||
|
"Directory renamed.": "",
|
||||||
"Directory selection was cancelled": "",
|
"Directory selection was cancelled": "",
|
||||||
"Disable All": "",
|
"Disable All": "",
|
||||||
"Disable Code Interpreter": "",
|
"Disable Code Interpreter": "",
|
||||||
@@ -688,6 +709,7 @@
|
|||||||
"Embedding Concurrent Requests": "",
|
"Embedding Concurrent Requests": "",
|
||||||
"Embedding Model": "מודל הטמעה",
|
"Embedding Model": "מודל הטמעה",
|
||||||
"Embedding Model Engine": "מנוע מודל הטמעה",
|
"Embedding Model Engine": "מנוע מודל הטמעה",
|
||||||
|
"Emoji": "",
|
||||||
"Emojis": "",
|
"Emojis": "",
|
||||||
"Empty message": "",
|
"Empty message": "",
|
||||||
"Enable All": "",
|
"Enable All": "",
|
||||||
@@ -766,6 +788,7 @@
|
|||||||
"Enter Kagi Search API Key": "",
|
"Enter Kagi Search API Key": "",
|
||||||
"Enter Key Behavior": "",
|
"Enter Key Behavior": "",
|
||||||
"Enter language codes": "הזן קודי שפה",
|
"Enter language codes": "הזן קודי שפה",
|
||||||
|
"Enter Linkup API Key": "",
|
||||||
"Enter MinerU API Key": "",
|
"Enter MinerU API Key": "",
|
||||||
"Enter Mistral API Base URL": "",
|
"Enter Mistral API Base URL": "",
|
||||||
"Enter Mistral API Key": "",
|
"Enter Mistral API Key": "",
|
||||||
@@ -902,6 +925,7 @@
|
|||||||
"Failed to archive chat.": "",
|
"Failed to archive chat.": "",
|
||||||
"Failed to attach file": "",
|
"Failed to attach file": "",
|
||||||
"Failed to clear status": "",
|
"Failed to clear status": "",
|
||||||
|
"Failed to compare files.": "",
|
||||||
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
"Failed to connect to {{URL}} OpenAPI tool server": "",
|
||||||
"Failed to connect to {{URL}} terminal server": "",
|
"Failed to connect to {{URL}} terminal server": "",
|
||||||
"Failed to copy link": "",
|
"Failed to copy link": "",
|
||||||
@@ -955,14 +979,16 @@
|
|||||||
"File content updated successfully.": "",
|
"File content updated successfully.": "",
|
||||||
"File Context": "",
|
"File Context": "",
|
||||||
"File deleted successfully.": "",
|
"File deleted successfully.": "",
|
||||||
|
"File Extensions": "",
|
||||||
"File Mode": "מצב קובץ",
|
"File Mode": "מצב קובץ",
|
||||||
|
"File moved.": "",
|
||||||
"File name": "",
|
"File name": "",
|
||||||
"File not found.": "הקובץ לא נמצא.",
|
"File not found.": "הקובץ לא נמצא.",
|
||||||
"File removed successfully.": "",
|
"File removed successfully.": "",
|
||||||
|
"File renamed.": "",
|
||||||
"File size should not exceed {{maxSize}} MB.": "",
|
"File size should not exceed {{maxSize}} MB.": "",
|
||||||
"File Upload": "",
|
"File Upload": "",
|
||||||
"File uploaded successfully": "",
|
"File uploaded successfully": "",
|
||||||
"File uploaded!": "",
|
|
||||||
"Filename": "",
|
"Filename": "",
|
||||||
"Files": "",
|
"Files": "",
|
||||||
"Filter": "",
|
"Filter": "",
|
||||||
@@ -1178,13 +1204,13 @@
|
|||||||
"Knowledge": "",
|
"Knowledge": "",
|
||||||
"Knowledge Access": "",
|
"Knowledge Access": "",
|
||||||
"Knowledge Base": "",
|
"Knowledge Base": "",
|
||||||
|
"Knowledge base has been reset": "",
|
||||||
"Knowledge created successfully.": "",
|
"Knowledge created successfully.": "",
|
||||||
"Knowledge deleted successfully.": "",
|
"Knowledge deleted successfully.": "",
|
||||||
"Knowledge Description": "",
|
"Knowledge Description": "",
|
||||||
"Knowledge exported successfully": "",
|
"Knowledge exported successfully": "",
|
||||||
"Knowledge Name": "",
|
"Knowledge Name": "",
|
||||||
"Knowledge Public Sharing": "",
|
"Knowledge Public Sharing": "",
|
||||||
"Knowledge reset successfully.": "",
|
|
||||||
"Knowledge Sharing": "",
|
"Knowledge Sharing": "",
|
||||||
"Knowledge updated successfully": "",
|
"Knowledge updated successfully": "",
|
||||||
"Kokoro.js (Browser)": "",
|
"Kokoro.js (Browser)": "",
|
||||||
@@ -1228,6 +1254,7 @@
|
|||||||
"Light": "בהיר",
|
"Light": "בהיר",
|
||||||
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
"Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).": "",
|
||||||
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
"Limits the number of concurrent embedding requests. Set to 0 for unlimited.": "",
|
||||||
|
"Linkup API Key": "",
|
||||||
"List": "",
|
"List": "",
|
||||||
"List calendars, search, create, update, and delete calendar events": "",
|
"List calendars, search, create, update, and delete calendar events": "",
|
||||||
"Listening...": "",
|
"Listening...": "",
|
||||||
@@ -1378,6 +1405,8 @@
|
|||||||
"New calendar": "",
|
"New calendar": "",
|
||||||
"New Calendar": "",
|
"New Calendar": "",
|
||||||
"New Chat": "צ'אט חדש",
|
"New Chat": "צ'אט חדש",
|
||||||
|
"New directory": "",
|
||||||
|
"New Directory": "",
|
||||||
"New Event": "",
|
"New Event": "",
|
||||||
"New File": "",
|
"New File": "",
|
||||||
"New Folder": "תיקייה חדשה",
|
"New Folder": "תיקייה חדשה",
|
||||||
@@ -1423,11 +1452,13 @@
|
|||||||
"No HTML, CSS, or JavaScript content found.": "",
|
"No HTML, CSS, or JavaScript content found.": "",
|
||||||
"No inference engine with management support found": "",
|
"No inference engine with management support found": "",
|
||||||
"No kernel": "",
|
"No kernel": "",
|
||||||
|
"No knowledge bases accessible": "",
|
||||||
"No knowledge bases found.": "",
|
"No knowledge bases found.": "",
|
||||||
"No knowledge found": "",
|
"No knowledge found": "",
|
||||||
"No limit": "",
|
"No limit": "",
|
||||||
"No memories to clear": "",
|
"No memories to clear": "",
|
||||||
"No model IDs": "",
|
"No model IDs": "",
|
||||||
|
"No models accessible": "",
|
||||||
"No models available": "",
|
"No models available": "",
|
||||||
"No models found": "",
|
"No models found": "",
|
||||||
"No models selected": "",
|
"No models selected": "",
|
||||||
@@ -1448,6 +1479,7 @@
|
|||||||
"No Terminal connection configured.": "",
|
"No Terminal connection configured.": "",
|
||||||
"No terminal connections configured.": "",
|
"No terminal connections configured.": "",
|
||||||
"No tool server connections configured.": "",
|
"No tool server connections configured.": "",
|
||||||
|
"No tools accessible": "",
|
||||||
"No tools found": "",
|
"No tools found": "",
|
||||||
"No users were found.": "לא נמצאו יוזרים",
|
"No users were found.": "לא נמצאו יוזרים",
|
||||||
"No valves": "",
|
"No valves": "",
|
||||||
@@ -1487,6 +1519,7 @@
|
|||||||
"On": "פועל",
|
"On": "פועל",
|
||||||
"Once": "",
|
"Once": "",
|
||||||
"OneDrive": "",
|
"OneDrive": "",
|
||||||
|
"Only active during Voice Mode.": "",
|
||||||
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
"Only active when \"Paste Large Text as File\" setting is toggled on.": "",
|
||||||
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
"Only active when the chat input is in focus and an LLM is generating a response.": "",
|
||||||
"Only active when the chat input is in focus.": "",
|
"Only active when the chat input is in focus.": "",
|
||||||
@@ -1558,6 +1591,7 @@
|
|||||||
"PDF document (.pdf)": "מסמך PDF (.pdf)",
|
"PDF document (.pdf)": "מסמך PDF (.pdf)",
|
||||||
"PDF Extract Images (OCR)": "חילוץ תמונות מ-PDF (OCR)",
|
"PDF Extract Images (OCR)": "חילוץ תמונות מ-PDF (OCR)",
|
||||||
"PDF Loader Mode": "",
|
"PDF Loader Mode": "",
|
||||||
|
"pdf, docx, pptx, xlsx": "",
|
||||||
"pending": "ממתין",
|
"pending": "ממתין",
|
||||||
"Pending": "",
|
"Pending": "",
|
||||||
"Pending User Overlay Content": "",
|
"Pending User Overlay Content": "",
|
||||||
@@ -1619,6 +1653,7 @@
|
|||||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||||
"Prevent File Creation": "",
|
"Prevent File Creation": "",
|
||||||
"Preview": "",
|
"Preview": "",
|
||||||
|
"Preview Access": "",
|
||||||
"Previous 30 days": "30 הימים הקודמים",
|
"Previous 30 days": "30 הימים הקודמים",
|
||||||
"Previous 7 days": "7 הימים הקודמים",
|
"Previous 7 days": "7 הימים הקודמים",
|
||||||
"Previous message": "",
|
"Previous message": "",
|
||||||
@@ -1696,6 +1731,9 @@
|
|||||||
"Remove from favorites": "",
|
"Remove from favorites": "",
|
||||||
"Remove image": "",
|
"Remove image": "",
|
||||||
"Remove Model": "הסר מודל",
|
"Remove Model": "הסר מודל",
|
||||||
|
"Removing {{count}} stale files..._one": "",
|
||||||
|
"Removing {{count}} stale files..._two": "",
|
||||||
|
"Removing {{count}} stale files..._other": "",
|
||||||
"Rename": "שנה שם",
|
"Rename": "שנה שם",
|
||||||
"Renamed to {{name}}": "",
|
"Renamed to {{name}}": "",
|
||||||
"Render Markdown in Assistant Messages": "",
|
"Render Markdown in Assistant Messages": "",
|
||||||
@@ -1714,6 +1752,7 @@
|
|||||||
"Reset": "",
|
"Reset": "",
|
||||||
"Reset All Models": "",
|
"Reset All Models": "",
|
||||||
"Reset Image": "איפוס תמונה",
|
"Reset Image": "איפוס תמונה",
|
||||||
|
"Reset knowledge base?": "",
|
||||||
"Reset Upload Directory": "",
|
"Reset Upload Directory": "",
|
||||||
"Reset Vector Storage/Knowledge": "",
|
"Reset Vector Storage/Knowledge": "",
|
||||||
"Reset view": "",
|
"Reset view": "",
|
||||||
@@ -1782,6 +1821,7 @@
|
|||||||
"Search Prompts": "חפש פקודות",
|
"Search Prompts": "חפש פקודות",
|
||||||
"Search Result Count": "ספירת תוצאות חיפוש",
|
"Search Result Count": "ספירת תוצאות חיפוש",
|
||||||
"Search Skills": "",
|
"Search Skills": "",
|
||||||
|
"Search skills...": "",
|
||||||
"Search the internet": "",
|
"Search the internet": "",
|
||||||
"Search the web and fetch URLs": "",
|
"Search the web and fetch URLs": "",
|
||||||
"Search Tools": "",
|
"Search Tools": "",
|
||||||
@@ -1980,6 +2020,8 @@
|
|||||||
"Switch to JSON editor": "",
|
"Switch to JSON editor": "",
|
||||||
"Switch to visual editor": "",
|
"Switch to visual editor": "",
|
||||||
"Sync": "",
|
"Sync": "",
|
||||||
|
"Sync a local directory with this knowledge base. Only new and modified files will be uploaded. The directory structure will be mirrored.": "",
|
||||||
|
"Sync complete: {{added}} added, {{modified}} modified, {{deleted}} deleted, {{unmodified}} unmodified": "",
|
||||||
"Sync Complete!": "",
|
"Sync Complete!": "",
|
||||||
"Sync directory": "",
|
"Sync directory": "",
|
||||||
"Sync Failed": "",
|
"Sync Failed": "",
|
||||||
@@ -2052,7 +2094,6 @@
|
|||||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "",
|
||||||
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
"This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "",
|
||||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated.": "",
|
||||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
|
||||||
"This response was generated by \"{{model}}\"": "",
|
"This response was generated by \"{{model}}\"": "",
|
||||||
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
"This template contains multiple context placeholders ([context] or {{CONTEXT}}). Context will be injected at each occurrence.": "",
|
||||||
"This will delete": "",
|
"This will delete": "",
|
||||||
@@ -2060,7 +2101,7 @@
|
|||||||
"This will delete all models including custom models": "",
|
"This will delete all models including custom models": "",
|
||||||
"This will delete all models including custom models and cannot be undone.": "",
|
"This will delete all models including custom models and cannot be undone.": "",
|
||||||
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
"This will permanently delete the calendar \"{{name}}\" and all its events. This action cannot be undone.": "",
|
||||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
"This will remove all files and directories from this knowledge base. This action cannot be undone.": "",
|
||||||
"Thorough explanation": "תיאור מפורט",
|
"Thorough explanation": "תיאור מפורט",
|
||||||
"Thought": "",
|
"Thought": "",
|
||||||
"Thought for {{DURATION}}": "",
|
"Thought for {{DURATION}}": "",
|
||||||
@@ -2096,6 +2137,7 @@
|
|||||||
"Toggle 1 source": "",
|
"Toggle 1 source": "",
|
||||||
"Toggle details": "",
|
"Toggle details": "",
|
||||||
"Toggle Dictation": "",
|
"Toggle Dictation": "",
|
||||||
|
"Toggle Mute": "",
|
||||||
"Toggle Sidebar": "",
|
"Toggle Sidebar": "",
|
||||||
"Toggle status history": "",
|
"Toggle status history": "",
|
||||||
"Toggle whether current connection is active.": "",
|
"Toggle whether current connection is active.": "",
|
||||||
@@ -2174,7 +2216,7 @@
|
|||||||
"Upload Progress": "תקדמות העלאה",
|
"Upload Progress": "תקדמות העלאה",
|
||||||
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
"Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "",
|
||||||
"Uploaded files or images": "",
|
"Uploaded files or images": "",
|
||||||
"Uploading file...": "",
|
"Uploading {{current}}/{{total}}: {{file}}": "",
|
||||||
"Uploading...": "",
|
"Uploading...": "",
|
||||||
"URL": "",
|
"URL": "",
|
||||||
"URL is required": "",
|
"URL is required": "",
|
||||||
@@ -2194,6 +2236,7 @@
|
|||||||
"User Groups": "",
|
"User Groups": "",
|
||||||
"User location successfully retrieved.": "",
|
"User location successfully retrieved.": "",
|
||||||
"User menu": "",
|
"User menu": "",
|
||||||
|
"User Preview": "",
|
||||||
"User ratings (thumbs up/down)": "",
|
"User ratings (thumbs up/down)": "",
|
||||||
"User Status": "",
|
"User Status": "",
|
||||||
"User Webhooks": "",
|
"User Webhooks": "",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user