mirror of
https://github.com/open-webui/open-webui.git
synced 2026-08-28 00:14:53 -06:00
chore: format
This commit is contained in:
@@ -92,9 +92,7 @@ class ERROR_MESSAGES(str, Enum):
|
||||
INVALID_PASSWORD = lambda err='': err if err else 'The password does not meet the required validation criteria.'
|
||||
|
||||
AUTOMATION_LIMIT_EXCEEDED = lambda size='': f'Automation limit reached ({size})'
|
||||
AUTOMATION_TOO_FREQUENT = (
|
||||
lambda interval='': f'Schedule too frequent. Minimum interval is {interval} seconds.'
|
||||
)
|
||||
AUTOMATION_TOO_FREQUENT = lambda interval='': f'Schedule too frequent. Minimum interval is {interval} seconds.'
|
||||
AUTOMATION_INVALID_RRULE = lambda err='': f'Invalid RRULE: {err}'
|
||||
AUTOMATION_NO_FUTURE_RUNS = 'RRULE has no future occurrences'
|
||||
|
||||
|
||||
+20
-12
@@ -1707,7 +1707,9 @@ async def chat_completion(
|
||||
},
|
||||
'messages': [
|
||||
{'role': 'user', 'content': user_message.get('content', '')},
|
||||
] if user_message_id else [],
|
||||
]
|
||||
if user_message_id
|
||||
else [],
|
||||
'tags': [],
|
||||
'timestamp': int(time.time() * 1000),
|
||||
},
|
||||
@@ -1734,9 +1736,7 @@ async def chat_completion(
|
||||
pass
|
||||
else:
|
||||
# Existing chat — verify ownership
|
||||
if (
|
||||
not await Chats.is_chat_owner(chat_id, user.id) and user.role != 'admin'
|
||||
):
|
||||
if not await Chats.is_chat_owner(chat_id, user.id) and user.role != 'admin':
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail=ERROR_MESSAGES.DEFAULT(),
|
||||
@@ -1787,16 +1787,16 @@ async def chat_completion(
|
||||
|
||||
# Link user message → all assistant messages (childrenIds)
|
||||
if user_message_id and all_assistant_ids:
|
||||
existing_user_message = await Chats.get_message_by_id_and_message_id(
|
||||
chat_id, user_message_id
|
||||
)
|
||||
existing_user_message = await Chats.get_message_by_id_and_message_id(chat_id, user_message_id)
|
||||
if existing_user_message:
|
||||
child_ids = existing_user_message.get('childrenIds', [])
|
||||
for assistant_id in all_assistant_ids:
|
||||
if assistant_id not in child_ids:
|
||||
child_ids.append(assistant_id)
|
||||
await Chats.upsert_message_to_chat_by_id_and_message_id(
|
||||
chat_id, user_message_id, {'childrenIds': child_ids},
|
||||
chat_id,
|
||||
user_message_id,
|
||||
{'childrenIds': child_ids},
|
||||
)
|
||||
|
||||
# Save each assistant placeholder
|
||||
@@ -1956,11 +1956,19 @@ async def chat_completion(
|
||||
task_id, _ = await create_task(
|
||||
request.app.state.redis,
|
||||
process_chat(
|
||||
request, model_form_data, user, per_model_metadata, resolved_model,
|
||||
tasks if idx == 0 else {
|
||||
k: v for k, v in (tasks or {}).items()
|
||||
request,
|
||||
model_form_data,
|
||||
user,
|
||||
per_model_metadata,
|
||||
resolved_model,
|
||||
tasks
|
||||
if idx == 0
|
||||
else {
|
||||
k: v
|
||||
for k, v in (tasks or {}).items()
|
||||
if k not in (TASKS.TITLE_GENERATION, TASKS.TAGS_GENERATION)
|
||||
} or None,
|
||||
}
|
||||
or None,
|
||||
),
|
||||
id=chat_id,
|
||||
)
|
||||
|
||||
@@ -506,9 +506,7 @@ async def query_collection_with_hybrid_search(
|
||||
log.exception(f'Failed to fetch collection {name}: {e}')
|
||||
return name, None
|
||||
|
||||
collection_results = dict(
|
||||
await asyncio.gather(*(_fetch_collection(name) for name in collection_names))
|
||||
)
|
||||
collection_results = dict(await asyncio.gather(*(_fetch_collection(name) for name in collection_names)))
|
||||
|
||||
log.info(f'Starting hybrid search for {len(queries)} queries in {len(collection_names)} collections...')
|
||||
|
||||
@@ -1153,9 +1151,7 @@ async def get_sources_from_items(
|
||||
if full_context:
|
||||
# Sync helper makes blocking VECTOR_DB_CLIENT calls;
|
||||
# offload so the async caller's event loop stays free.
|
||||
query_result = await asyncio.to_thread(
|
||||
get_all_items_from_collections, collection_names
|
||||
)
|
||||
query_result = await asyncio.to_thread(get_all_items_from_collections, collection_names)
|
||||
else:
|
||||
query_result = await query_collection(
|
||||
request,
|
||||
|
||||
@@ -101,9 +101,7 @@ class AsyncVectorDBClient:
|
||||
filter: Optional[Dict] = None,
|
||||
limit: int = 10,
|
||||
) -> Optional[SearchResult]:
|
||||
return await asyncio.to_thread(
|
||||
self._sync.search, collection_name, vectors, filter, limit
|
||||
)
|
||||
return await asyncio.to_thread(self._sync.search, collection_name, vectors, filter, limit)
|
||||
|
||||
async def query(
|
||||
self,
|
||||
@@ -111,9 +109,7 @@ class AsyncVectorDBClient:
|
||||
filter: Dict,
|
||||
limit: Optional[int] = None,
|
||||
) -> Optional[GetResult]:
|
||||
return await asyncio.to_thread(
|
||||
self._sync.query, collection_name, filter, limit
|
||||
)
|
||||
return await asyncio.to_thread(self._sync.query, collection_name, filter, limit)
|
||||
|
||||
async def get(self, collection_name: str) -> Optional[GetResult]:
|
||||
return await asyncio.to_thread(self._sync.get, collection_name)
|
||||
@@ -124,9 +120,7 @@ class AsyncVectorDBClient:
|
||||
ids: Optional[List[str]] = None,
|
||||
filter: Optional[Dict] = None,
|
||||
) -> None:
|
||||
return await asyncio.to_thread(
|
||||
self._sync.delete, collection_name, ids, filter
|
||||
)
|
||||
return await asyncio.to_thread(self._sync.delete, collection_name, ids, filter)
|
||||
|
||||
async def reset(self) -> None:
|
||||
return await asyncio.to_thread(self._sync.reset)
|
||||
|
||||
@@ -27,4 +27,3 @@ def process_metadata(
|
||||
else:
|
||||
result[key] = sanitize_text_for_db(value)
|
||||
return result
|
||||
|
||||
|
||||
@@ -543,7 +543,6 @@ async def image_generations(
|
||||
|
||||
model = get_image_model(request)
|
||||
|
||||
|
||||
try:
|
||||
if request.app.state.config.IMAGE_GENERATION_ENGINE == 'openai':
|
||||
headers = {
|
||||
@@ -856,7 +855,6 @@ async def image_edits(
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
try:
|
||||
if request.app.state.config.IMAGE_EDIT_ENGINE == 'openai':
|
||||
headers = {
|
||||
|
||||
@@ -2532,9 +2532,7 @@ async def delete_entries_from_collection(
|
||||
if hash is None:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=ERROR_MESSAGES.DEFAULT(
|
||||
'File has no hash; cannot delete vector entries by hash.'
|
||||
),
|
||||
detail=ERROR_MESSAGES.DEFAULT('File has no hash; cannot delete vector entries by hash.'),
|
||||
)
|
||||
|
||||
# Pre-existing bug: this used `metadata=` which is not a
|
||||
|
||||
@@ -205,9 +205,7 @@ def convert_anthropic_to_openai_payload(anthropic_payload: dict) -> dict:
|
||||
elif content_type == 'image':
|
||||
source = content_block.get('source', {})
|
||||
if source.get('type') == 'base64':
|
||||
media_type = source.get(
|
||||
'media_type', 'image/png'
|
||||
)
|
||||
media_type = source.get('media_type', 'image/png')
|
||||
data = source.get('data', '')
|
||||
converted_parts.append(
|
||||
{
|
||||
@@ -229,68 +227,36 @@ def convert_anthropic_to_openai_payload(anthropic_payload: dict) -> dict:
|
||||
elif content_type == 'document':
|
||||
# Documents have no direct OpenAI equivalent;
|
||||
# convert to a text representation.
|
||||
document_source = content_block.get(
|
||||
'source', {}
|
||||
)
|
||||
document_title = content_block.get(
|
||||
'title', 'Document'
|
||||
)
|
||||
document_context = content_block.get(
|
||||
'context', ''
|
||||
)
|
||||
document_text = (
|
||||
f'[Document: {document_title}]'
|
||||
)
|
||||
document_source = content_block.get('source', {})
|
||||
document_title = content_block.get('title', 'Document')
|
||||
document_context = content_block.get('context', '')
|
||||
document_text = f'[Document: {document_title}]'
|
||||
if document_context:
|
||||
document_text += f'\n{document_context}'
|
||||
if (
|
||||
document_source.get('type') == 'text'
|
||||
and document_source.get('data')
|
||||
):
|
||||
document_text += (
|
||||
f'\n{document_source["data"]}'
|
||||
)
|
||||
converted_parts.append(
|
||||
{'type': 'text', 'text': document_text}
|
||||
)
|
||||
if document_source.get('type') == 'text' and document_source.get('data'):
|
||||
document_text += f'\n{document_source["data"]}'
|
||||
converted_parts.append({'type': 'text', 'text': document_text})
|
||||
elif content_type == 'search_result':
|
||||
# Convert search results to a text
|
||||
# representation with source attribution.
|
||||
search_title = content_block.get('title', '')
|
||||
search_url = content_block.get('source', '')
|
||||
search_content_blocks = content_block.get(
|
||||
'content', []
|
||||
)
|
||||
search_content_blocks = content_block.get('content', [])
|
||||
search_texts = []
|
||||
for search_block in search_content_blocks:
|
||||
if (
|
||||
isinstance(search_block, dict)
|
||||
and search_block.get('type') == 'text'
|
||||
):
|
||||
search_texts.append(
|
||||
search_block.get('text', '')
|
||||
)
|
||||
if isinstance(search_block, dict) and search_block.get('type') == 'text':
|
||||
search_texts.append(search_block.get('text', ''))
|
||||
search_body = '\n'.join(search_texts)
|
||||
search_text = (
|
||||
f'[Search Result: {search_title}]'
|
||||
)
|
||||
search_text = f'[Search Result: {search_title}]'
|
||||
if search_url:
|
||||
search_text += f'\nSource: {search_url}'
|
||||
if search_body:
|
||||
search_text += f'\n{search_body}'
|
||||
converted_parts.append(
|
||||
{'type': 'text', 'text': search_text}
|
||||
)
|
||||
converted_parts.append({'type': 'text', 'text': search_text})
|
||||
|
||||
# Flatten to string when only text parts are present
|
||||
if all(
|
||||
part.get('type') == 'text'
|
||||
for part in converted_parts
|
||||
):
|
||||
tool_content = '\n'.join(
|
||||
part.get('text', '')
|
||||
for part in converted_parts
|
||||
)
|
||||
if all(part.get('type') == 'text' for part in converted_parts):
|
||||
tool_content = '\n'.join(part.get('text', '') for part in converted_parts)
|
||||
elif converted_parts:
|
||||
tool_content = converted_parts
|
||||
else:
|
||||
|
||||
@@ -105,10 +105,7 @@ class CommitSessionMiddleware:
|
||||
try:
|
||||
ScopedSession.commit()
|
||||
except Exception:
|
||||
log.exception(
|
||||
'CommitSessionMiddleware: post-request commit failed; '
|
||||
'response was already sent to client'
|
||||
)
|
||||
log.exception('CommitSessionMiddleware: post-request commit failed; response was already sent to client')
|
||||
try:
|
||||
ScopedSession.rollback()
|
||||
except Exception:
|
||||
@@ -190,9 +187,7 @@ class WebsocketUpgradeGuardMiddleware:
|
||||
if query_params.get('transport', [''])[0] == 'websocket':
|
||||
headers = _scope_headers(scope)
|
||||
upgrade = headers.get('upgrade', '').lower()
|
||||
connection_tokens = [
|
||||
token.strip() for token in headers.get('connection', '').lower().split(',')
|
||||
]
|
||||
connection_tokens = [token.strip() for token in headers.get('connection', '').lower().split(',')]
|
||||
if upgrade != 'websocket' or 'upgrade' not in connection_tokens:
|
||||
response = JSONResponse(
|
||||
status_code=400,
|
||||
|
||||
@@ -3101,8 +3101,8 @@ async def outlet_filter_handler(ctx):
|
||||
'content': m.get('content', ''),
|
||||
'info': m.get('info'),
|
||||
'timestamp': m.get('timestamp'),
|
||||
**(({'usage': m['usage']} if m.get('usage') else {})),
|
||||
**(({'sources': m['sources']} if m.get('sources') else {})),
|
||||
**({'usage': m['usage']} if m.get('usage') else {}),
|
||||
**({'sources': m['sources']} if m.get('sources') else {}),
|
||||
}
|
||||
for m in message_list
|
||||
],
|
||||
@@ -3157,10 +3157,12 @@ async def outlet_filter_handler(ctx):
|
||||
)
|
||||
|
||||
if event_emitter:
|
||||
await event_emitter({
|
||||
'type': 'chat:outlet',
|
||||
'data': {'messages': outlet_result['messages']},
|
||||
})
|
||||
await event_emitter(
|
||||
{
|
||||
'type': 'chat:outlet',
|
||||
'data': {'messages': outlet_result['messages']},
|
||||
}
|
||||
)
|
||||
except Exception as e:
|
||||
log.debug(f'Error running outlet filters: {e}')
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ def _normalize_token_expiry(token: dict) -> dict:
|
||||
# Neither field present — conservative fallback
|
||||
log.warning(
|
||||
"OAuth token response missing both 'expires_in' and 'expires_at'; "
|
||||
f"defaulting to {DEFAULT_TOKEN_EXPIRY_SECONDS}s from now"
|
||||
f'defaulting to {DEFAULT_TOKEN_EXPIRY_SECONDS}s from now'
|
||||
)
|
||||
token['expires_at'] = int(datetime.now().timestamp() + DEFAULT_TOKEN_EXPIRY_SECONDS)
|
||||
return token
|
||||
@@ -548,7 +548,6 @@ async def get_oauth_client_info_with_static_credentials(
|
||||
raise e
|
||||
|
||||
|
||||
|
||||
def resolve_oauth_client_info(connection: dict) -> dict:
|
||||
"""
|
||||
Decrypt OAuth client info from a tool server connection config.
|
||||
@@ -766,7 +765,11 @@ class OAuthClientManager:
|
||||
log.warning(f'No OAuth session found for user {user_id}, client_id {client_id}')
|
||||
return None
|
||||
|
||||
if force_refresh or session.expires_at is None or datetime.now() + timedelta(minutes=5) >= datetime.fromtimestamp(session.expires_at):
|
||||
if (
|
||||
force_refresh
|
||||
or session.expires_at is None
|
||||
or datetime.now() + timedelta(minutes=5) >= datetime.fromtimestamp(session.expires_at)
|
||||
):
|
||||
log.debug(f'Token refresh needed for user {user_id}, client_id {session.provider}')
|
||||
refreshed_token = await self._refresh_token(session)
|
||||
if refreshed_token:
|
||||
@@ -1017,7 +1020,11 @@ class OAuthManager:
|
||||
log.warning(f'No OAuth session found for user {user_id}, session {session_id}')
|
||||
return None
|
||||
|
||||
if force_refresh or session.expires_at is None or datetime.now() + timedelta(minutes=5) >= datetime.fromtimestamp(session.expires_at):
|
||||
if (
|
||||
force_refresh
|
||||
or session.expires_at is None
|
||||
or datetime.now() + timedelta(minutes=5) >= datetime.fromtimestamp(session.expires_at)
|
||||
):
|
||||
log.debug(f'Token refresh needed for user {user_id}, provider {session.provider}')
|
||||
refreshed_token = await self._refresh_token(session)
|
||||
if refreshed_token:
|
||||
|
||||
@@ -375,4 +375,3 @@ export const toggleNotePinnedStatusById = async (token: string, id: string) => {
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
|
||||
@@ -2144,7 +2144,14 @@
|
||||
.map((token) => decodeURIComponent(JSON.parse(`"${token.replace(/"/g, '\\"')}"`)));
|
||||
};
|
||||
|
||||
const sendMessageSocket = async (model, _messages, _history, responseMessageId, _chatId, messageIdsMap?: Record<string, string>) => {
|
||||
const sendMessageSocket = async (
|
||||
model,
|
||||
_messages,
|
||||
_history,
|
||||
responseMessageId,
|
||||
_chatId,
|
||||
messageIdsMap?: Record<string, string>
|
||||
) => {
|
||||
const responseMessage = _history.messages[responseMessageId];
|
||||
const userMessage = _history.messages[responseMessage.parentId];
|
||||
|
||||
@@ -2344,9 +2351,7 @@
|
||||
user_message: userMessage,
|
||||
|
||||
background_tasks: {
|
||||
...(!$temporaryChatEnabled &&
|
||||
!_chatId &&
|
||||
(userMessage?.parentId ?? null) === null
|
||||
...(!$temporaryChatEnabled && !_chatId && (userMessage?.parentId ?? null) === null
|
||||
? {
|
||||
title_generation: $settings?.title?.auto ?? true,
|
||||
tags_generation: $settings?.autoTags ?? true
|
||||
|
||||
@@ -76,7 +76,9 @@
|
||||
|
||||
/** Measure all currently rendered message elements and cache their heights */
|
||||
const measureMessageHeights = () => {
|
||||
const elements = document.getElementById('messages-container')?.querySelectorAll('[role="listitem"]');
|
||||
const elements = document
|
||||
.getElementById('messages-container')
|
||||
?.querySelectorAll('[role="listitem"]');
|
||||
if (!elements) return;
|
||||
|
||||
messageHeights = new Map([
|
||||
@@ -110,7 +112,10 @@
|
||||
const cullLimit = firstUnmeasured === -1 ? messages.length : firstUnmeasured;
|
||||
|
||||
visibleStart = Math.max(0, Math.min(firstVisible - OVERSCAN, cullLimit));
|
||||
visibleEnd = Math.min(messages.length, (lastVisible === -1 ? messages.length : lastVisible) + OVERSCAN);
|
||||
visibleEnd = Math.min(
|
||||
messages.length,
|
||||
(lastVisible === -1 ? messages.length : lastVisible) + OVERSCAN
|
||||
);
|
||||
topSpacerHeight = prefixSums[visibleStart] ?? 0;
|
||||
bottomSpacerHeight = (prefixSums[messages.length] ?? 0) - (prefixSums[visibleEnd] ?? 0);
|
||||
};
|
||||
@@ -530,8 +535,6 @@
|
||||
showMessage({ id: parentMessageId }, false);
|
||||
};
|
||||
|
||||
|
||||
|
||||
const triggerScroll = () => {
|
||||
if (autoScroll) {
|
||||
const element = document.getElementById('messages-container');
|
||||
|
||||
@@ -450,6 +450,7 @@
|
||||
});
|
||||
|
||||
if (res) {
|
||||
// $i18n.t('Model {{modelId}} not found')
|
||||
toast.success(
|
||||
$i18n.t('Model {{modelName}} deleted successfully', { modelName: model.name ?? model.id })
|
||||
);
|
||||
|
||||
@@ -232,7 +232,10 @@
|
||||
pinnedChats.set(_pinnedChats);
|
||||
})(),
|
||||
await (async () => {
|
||||
if ($config?.features?.enable_notes && ($user?.role === 'admin' || ($user?.permissions?.features?.notes ?? true))) {
|
||||
if (
|
||||
$config?.features?.enable_notes &&
|
||||
($user?.role === 'admin' || ($user?.permissions?.features?.notes ?? true))
|
||||
) {
|
||||
console.log('Init pinned notes');
|
||||
const _pinnedNotes = await getPinnedNoteList(localStorage.token).catch(() => []);
|
||||
pinnedNotes.set(_pinnedNotes);
|
||||
@@ -1119,13 +1122,26 @@
|
||||
class="invisible group-hover:visible self-center p-0.5 hover:bg-gray-200 dark:hover:bg-gray-800 rounded-lg transition"
|
||||
on:click|preventDefault|stopPropagation={async () => {
|
||||
await toggleNotePinnedStatusById(localStorage.token, note.id);
|
||||
const _pinnedNotes = await getPinnedNoteList(localStorage.token).catch(() => []);
|
||||
const _pinnedNotes = await getPinnedNoteList(localStorage.token).catch(
|
||||
() => []
|
||||
);
|
||||
pinnedNotes.set(_pinnedNotes);
|
||||
}}
|
||||
aria-label={$i18n.t('Unpin')}
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="size-3.5">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="2"
|
||||
stroke="currentColor"
|
||||
class="size-3.5"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M6 18 18 6M6 6l12 12"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</a>
|
||||
|
||||
@@ -172,9 +172,7 @@ Based on the user's instruction, update and enhance the existing notes or select
|
||||
// Filter out empty assistant placeholder messages to avoid sending
|
||||
// an empty trailing assistant message as "response prefill", which is
|
||||
// incompatible with enable_thinking in llama.cpp and similar backends.
|
||||
const filteredMessages = messages.filter(
|
||||
(m) => !(m.role === 'assistant' && m.content === '')
|
||||
);
|
||||
const filteredMessages = messages.filter((m) => !(m.role === 'assistant' && m.content === ''));
|
||||
|
||||
const chatMessages = JSON.parse(
|
||||
JSON.stringify([
|
||||
|
||||
@@ -545,7 +545,9 @@
|
||||
isPinned={note.is_pinned ?? false}
|
||||
onPin={async () => {
|
||||
await toggleNotePinnedStatusById(localStorage.token, note.id);
|
||||
pinnedNotes.set(await getPinnedNoteList(localStorage.token).catch(() => []));
|
||||
pinnedNotes.set(
|
||||
await getPinnedNoteList(localStorage.token).catch(() => [])
|
||||
);
|
||||
init();
|
||||
}}
|
||||
>
|
||||
@@ -613,7 +615,9 @@
|
||||
isPinned={note.is_pinned ?? false}
|
||||
onPin={async () => {
|
||||
await toggleNotePinnedStatusById(localStorage.token, note.id);
|
||||
pinnedNotes.set(await getPinnedNoteList(localStorage.token).catch(() => []));
|
||||
pinnedNotes.set(
|
||||
await getPinnedNoteList(localStorage.token).catch(() => [])
|
||||
);
|
||||
init();
|
||||
}}
|
||||
>
|
||||
|
||||
@@ -115,24 +115,24 @@
|
||||
{/if}
|
||||
|
||||
{#if onPin}
|
||||
<button
|
||||
class="select-none flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl w-full"
|
||||
on:click={() => {
|
||||
onPin();
|
||||
show = false;
|
||||
}}
|
||||
>
|
||||
{#if isPinned}
|
||||
<PinSlash />
|
||||
<div class="flex items-center">{$i18n.t('Unpin')}</div>
|
||||
{:else}
|
||||
<Pin />
|
||||
<div class="flex items-center">{$i18n.t('Pin to Sidebar')}</div>
|
||||
{/if}
|
||||
</button>
|
||||
{/if}
|
||||
<button
|
||||
class="select-none flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl w-full"
|
||||
on:click={() => {
|
||||
onPin();
|
||||
show = false;
|
||||
}}
|
||||
>
|
||||
{#if isPinned}
|
||||
<PinSlash />
|
||||
<div class="flex items-center">{$i18n.t('Unpin')}</div>
|
||||
{:else}
|
||||
<Pin />
|
||||
<div class="flex items-center">{$i18n.t('Pin to Sidebar')}</div>
|
||||
{/if}
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
<button
|
||||
class="select-none flex gap-2 items-center px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-xl w-full"
|
||||
on:click={() => {
|
||||
onDelete();
|
||||
|
||||
@@ -75,9 +75,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="flex flex-row items-center justify-end text-sm shrink-0 mt-1 p-4 gap-1.5"
|
||||
>
|
||||
<div class="flex flex-row items-center justify-end text-sm shrink-0 mt-1 p-4 gap-1.5">
|
||||
<div class="">
|
||||
{#if voiceInput}
|
||||
<div class=" max-w-full w-full">
|
||||
|
||||
@@ -458,6 +458,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "إنشاء حساب",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1517,6 +1518,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "التخصيص",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -458,6 +458,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "إنشاء حساب",
|
||||
"Create Admin Account": "إنشاء حساب مسؤول",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "إنشاء قناة",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1517,6 +1518,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "التخصيص",
|
||||
"Pin": "تثبيت",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "مثبت",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Yeni qeyd yarat",
|
||||
"Create Account": "Hesab yarat",
|
||||
"Create Admin Account": "Admin hesabı yarat",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Kanal yarat",
|
||||
"Create Folder": "Qovluq yarat",
|
||||
"Create Image": "Şəkil yarat",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Fərdiləşdirmə",
|
||||
"Pin": "Bərkit",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Bərkidilib",
|
||||
"Pinned Messages": "Bərkidilmiş mesajlar",
|
||||
"Pinned Models": "Bərkidilmiş modellər",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Създаване на Акаунт",
|
||||
"Create Admin Account": "Създаване на администраторски акаунт",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Създаване на канал",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Персонализация",
|
||||
"Pin": "Закачи",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Закачено",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "একাউন্ট তৈরি করুন",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "ডিজিটাল বাংলা",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "རྩིས་ཁྲ་གསར་བཟོ།",
|
||||
"Create Admin Account": "དོ་དམ་པའི་རྩིས་ཁྲ་གསར་བཟོ།",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "བགྲོ་གླེང་གསར་བཟོ།",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "སྒེར་སྤྱོད་ཅན།",
|
||||
"Pin": "གདབ་པ།",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "གདབ་ཟིན།",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Stvori račun",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Prilagodba",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Crear una nova nota",
|
||||
"Create Account": "Crear un compte",
|
||||
"Create Admin Account": "Crear un compte d'Administrador",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Crear un canal",
|
||||
"Create Folder": "Crear carpeta",
|
||||
"Create Image": "Crear imatge",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "Persistent",
|
||||
"Personalization": "Personalització",
|
||||
"Pin": "Fixar",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fixat",
|
||||
"Pinned Messages": "Missatges fixats",
|
||||
"Pinned Models": "Models fixats",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Paghimo og account",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Vytvořit účet",
|
||||
"Create Admin Account": "Vytvořit účet administrátora",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Vytvořit kanál",
|
||||
"Create Folder": "Vytvořit složku",
|
||||
"Create Image": "",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizace",
|
||||
"Pin": "Připnout",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Připnuto",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Opret ny note",
|
||||
"Create Account": "Opret profil",
|
||||
"Create Admin Account": "Opret administrator profil",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Opret kanal",
|
||||
"Create Folder": "Opret mappe",
|
||||
"Create Image": "Opret billede",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisering",
|
||||
"Pin": "Fastgør",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fastgjort",
|
||||
"Pinned Messages": "Fastgjorte beskeder",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Neue Notiz erstellen",
|
||||
"Create Account": "Konto erstellen",
|
||||
"Create Admin Account": "Admin-Konto erstellen",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Kanal erstellen",
|
||||
"Create Folder": "Ordner erstellen",
|
||||
"Create Image": "Bild erstellen",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "Persistent",
|
||||
"Personalization": "Personalisierung",
|
||||
"Pin": "Anheften",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Angeheftet",
|
||||
"Pinned Messages": "Angeheftete Nachrichten",
|
||||
"Pinned Models": "Angepinnte Modelle",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Create Account",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalization",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Δημιουργία Λογαριασμού",
|
||||
"Create Admin Account": "Δημιουργία Λογαριασμού Διαχειριστή",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Δημιουργία Καναλιού",
|
||||
"Create Folder": "Δημιουργία Φακέλου",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Προσωποποίηση",
|
||||
"Pin": "Καρφίτσωμα",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Καρφιτσωμένο",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisation",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Crea una nueva nota",
|
||||
"Create Account": "Crear Cuenta",
|
||||
"Create Admin Account": "Crear Cuenta Administrativa",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Crear Canal",
|
||||
"Create Folder": "Crear Carpeta",
|
||||
"Create Image": "Crear Imagen",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "Persistente",
|
||||
"Personalization": "Personalización",
|
||||
"Pin": "Fijar",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fijado",
|
||||
"Pinned Messages": "Mensajes Fijados",
|
||||
"Pinned Models": "Modelos Fijados",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Loo uus märge",
|
||||
"Create Account": "Loo konto",
|
||||
"Create Admin Account": "Loo administraatori konto",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Loo kanal",
|
||||
"Create Folder": "Loo kaust",
|
||||
"Create Image": "Loo pilt",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Isikupärastamine",
|
||||
"Pin": "Kinnita",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Kinnitatud",
|
||||
"Pinned Messages": "Kinnitatud sõnumid",
|
||||
"Pinned Models": "Kinnitatud mudelid",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Sortu Kontua",
|
||||
"Create Admin Account": "Sortu Administratzaile Kontua",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Pertsonalizazioa",
|
||||
"Pin": "Ainguratu",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Ainguratuta",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "ایجاد یک یادداشت جدید",
|
||||
"Create Account": "ساخت حساب کاربری",
|
||||
"Create Admin Account": "ایجاد حساب مدیر",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "ایجاد کانال",
|
||||
"Create Folder": "ایجاد پوشه",
|
||||
"Create Image": "ایجاد تصویر",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "شخصی سازی",
|
||||
"Pin": "پین کردن",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "پین شده",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Luo uusi muistiinpano",
|
||||
"Create Account": "Luo tili",
|
||||
"Create Admin Account": "Luo ylläpitäjätili",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Luo kanava",
|
||||
"Create Folder": "Luo kansio",
|
||||
"Create Image": "Luo kuva",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "Pysyvä",
|
||||
"Personalization": "Personointi",
|
||||
"Pin": "Kiinnitä",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Kiinnitetty",
|
||||
"Pinned Messages": "Kiinnitetyt viestit",
|
||||
"Pinned Models": "Kiinnitetyt mallit",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Créer un compte",
|
||||
"Create Admin Account": "Créer un compte administrateur",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Créer un canal",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personnalisation",
|
||||
"Pin": "Épingler",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Épinglé",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Créer une nouvelle note",
|
||||
"Create Account": "Créer un compte",
|
||||
"Create Admin Account": "Créer un compte administrateur",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Créer un canal",
|
||||
"Create Folder": "Créer un dossier",
|
||||
"Create Image": "Création d'image",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personnalisation",
|
||||
"Pin": "Épingler",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Épinglé",
|
||||
"Pinned Messages": "Messages épinglés",
|
||||
"Pinned Models": "Modèles épinglés",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Xerar unha conta",
|
||||
"Create Admin Account": "Xerar conta administrativa",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Xerar Canal",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalización",
|
||||
"Pin": "Fijar",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fijado",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "צור חשבון",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "תאור",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "खाता बनाएं",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "पेरसनलाइज़मेंट",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Stvori račun",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Prilagodba",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Fiók létrehozása",
|
||||
"Create Admin Account": "Admin fiók létrehozása",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Csatorna létrehozása",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Személyre szabás",
|
||||
"Pin": "Rögzítés",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Rögzítve",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Buat Akun",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisasi",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Cruthaigh nóta nua",
|
||||
"Create Account": "Cruthaigh Cuntas",
|
||||
"Create Admin Account": "Cruthaigh Cuntas Riaracháin",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Cruthaigh Cainéal",
|
||||
"Create Folder": "Cruthaigh Fillteán",
|
||||
"Create Image": "Cruthaigh Íomhá",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Pearsantú",
|
||||
"Pin": "Bioráin",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Pinneáilte",
|
||||
"Pinned Messages": "Teachtaireachtaí Pionáilte",
|
||||
"Pinned Models": "Samhlacha bioráilte",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Crea account",
|
||||
"Create Admin Account": "Crea account amministratore",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Crea canale",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizzazione",
|
||||
"Pin": "Appunta",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Appuntato",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "新しいノートを作成する",
|
||||
"Create Account": "アカウントを作成",
|
||||
"Create Admin Account": "管理者アカウントを作成",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "チャンネルを作成",
|
||||
"Create Folder": "フォルダを作成",
|
||||
"Create Image": "",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "パーソナライズ",
|
||||
"Pin": "ピン留め",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "ピン留めされています",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "ახალი შენიშვნის შექმნა",
|
||||
"Create Account": "ანგარიშის შექმნა",
|
||||
"Create Admin Account": "ადმინისტრატორის ანგარიშის შექმნა",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "არხის შექმნა",
|
||||
"Create Folder": "საქაღალდის შექმნა",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "პერსონალიზაცია",
|
||||
"Pin": "მიმაგრება",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "მიმაგრებულია",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Snulfu-d amiḍan",
|
||||
"Create Admin Account": "Snulfu-d amiḍan n unedbal",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Snulfu-d abadu",
|
||||
"Create Folder": "Snulfu-d akaram",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Asagen",
|
||||
"Pin": "Senteḍ",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Yettwasenteḍ",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "새 노트 생성",
|
||||
"Create Account": "계정 생성",
|
||||
"Create Admin Account": "관리자 계정 생성",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "채널 생성",
|
||||
"Create Folder": "폴더 생성",
|
||||
"Create Image": "이미지 생성",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "개인화",
|
||||
"Pin": "고정",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "고정됨",
|
||||
"Pinned Messages": "고정된 메시지",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Créer un compte",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizacija",
|
||||
"Pin": "Smeigtukas",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Įsmeigta",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Izveidot jaunu piezīmi",
|
||||
"Create Account": "Izveidot kontu",
|
||||
"Create Admin Account": "Izveidot administratora kontu",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Izveidot kanālu",
|
||||
"Create Folder": "Izveidot mapi",
|
||||
"Create Image": "Izveidot attēlu",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizācija",
|
||||
"Pin": "Piespraust",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Piesprausts",
|
||||
"Pinned Messages": "Piespraustie ziņojumi",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "Buat nota baru",
|
||||
"Create Account": "Cipta Akaun",
|
||||
"Create Admin Account": "Buat Akaun Admin",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Buat Saluran",
|
||||
"Create Folder": "Buat Folder",
|
||||
"Create Image": "Buat Imej",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisasi",
|
||||
"Pin": "Pin",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Disemat",
|
||||
"Pinned Messages": "Mesej Disematkan",
|
||||
"Pinned Models": "Model Tersapu",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Opprett konto",
|
||||
"Create Admin Account": "Opprett administratorkonto",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Opprett kanal",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Tilpassing",
|
||||
"Pin": "Fest",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Festet",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Maak account",
|
||||
"Create Admin Account": "Maak admin-account",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Maak kanaal",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisatie",
|
||||
"Pin": "Zet vast",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Vastgezet",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "ਖਾਤਾ ਬਣਾਓ",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "ਪਰਸੋਨਲਿਸ਼ਮ",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "Utwórz nową notatkę",
|
||||
"Create Account": "Utwórz konto",
|
||||
"Create Admin Account": "Utwórz konto administratora",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Utwórz kanał",
|
||||
"Create Folder": "Utwórz folder",
|
||||
"Create Image": "Utwórz obraz",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizacja",
|
||||
"Pin": "Przypnij",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Przypięte",
|
||||
"Pinned Messages": "Przypięte wiadomości",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Criar uma nova nota",
|
||||
"Create Account": "Criar Conta",
|
||||
"Create Admin Account": "Criar Conta de Administrador",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Criar Canal",
|
||||
"Create Folder": "Criar Pasta",
|
||||
"Create Image": "Criar imagem",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "Persistente",
|
||||
"Personalization": "Personalização",
|
||||
"Pin": "Fixar",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fixado",
|
||||
"Pinned Messages": "Mensagens fixadas",
|
||||
"Pinned Models": "Modelos Fixados",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "Criar uma nova nota",
|
||||
"Create Account": "Criar Conta",
|
||||
"Create Admin Account": "Criar Conta de Administrador",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Criar Canal",
|
||||
"Create Folder": "Criar Pasta",
|
||||
"Create Image": "Criar Imagem",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalização",
|
||||
"Pin": "Fixar",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fixado",
|
||||
"Pinned Messages": "Mensagens Fixadas",
|
||||
"Pinned Models": "Modelos Fixados",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Creează Cont",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Creează canal",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizare",
|
||||
"Pin": "Fixează",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fixat",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "Создать новую заметку",
|
||||
"Create Account": "Создать аккаунт",
|
||||
"Create Admin Account": "Создать аккаунт Администратора",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Создать канал",
|
||||
"Create Folder": "Создать папку",
|
||||
"Create Image": "Создать изображение",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "Постоянный",
|
||||
"Personalization": "Персонализация",
|
||||
"Pin": "Закрепить",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Закреплено",
|
||||
"Pinned Messages": "Закреплённые сообщения",
|
||||
"Pinned Models": "Закреплённые модели",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "Vytvoriť novú poznámku",
|
||||
"Create Account": "Vytvoriť účet",
|
||||
"Create Admin Account": "Vytvoriť admin účet",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Vytvoriť kanál",
|
||||
"Create Folder": "Vytvoriť priečinok",
|
||||
"Create Image": "Vytvoriť obrázok",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalizácia",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -455,6 +455,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Направи налог",
|
||||
"Create Admin Account": "Направи админ налог",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Направи канал",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1514,6 +1515,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Прилагођавање",
|
||||
"Pin": "Закачи",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Закачено",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Skapa en ny anteckning",
|
||||
"Create Account": "Skapa konto",
|
||||
"Create Admin Account": "Skapa administratörskonto",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Skapa kanal",
|
||||
"Create Folder": "Skapa mapp",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Personalisering",
|
||||
"Pin": "Fäst",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Fäst",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "புதிய குறிப்பை உருவாக்கவும்",
|
||||
"Create Account": "கணக்கை உருவாக்கவும்",
|
||||
"Create Admin Account": "நிர்வாகி கணக்கை உருவாக்கவும்",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "சேனலை உருவாக்கவும்",
|
||||
"Create Folder": "கோப்புறையை உருவாக்கவும்",
|
||||
"Create Image": "படத்தை உருவாக்கவும்",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "பிடிவாதமான",
|
||||
"Personalization": "தனிப்பயனாக்கம்",
|
||||
"Pin": "பின்",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "நிலைநிறுத்தப்பட்டவை",
|
||||
"Pinned Messages": "பின் செய்யப்பட்ட செய்திகள்",
|
||||
"Pinned Models": "பின் செய்யப்பட்ட மாதிரிகள்",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "สร้างบันทึกใหม่",
|
||||
"Create Account": "สร้างบัญชี",
|
||||
"Create Admin Account": "สร้างบัญชีผู้ดูแลระบบ",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "สร้างช่องทาง",
|
||||
"Create Folder": "สร้างโฟลเดอร์",
|
||||
"Create Image": "สร้างรูปภาพ",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "การปรับแต่ง",
|
||||
"Pin": "ปักหมุด",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "ปักหมุดแล้ว",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Hasap döret",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "",
|
||||
"Pin": "",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "Yeni bir not oluştur",
|
||||
"Create Account": "Hesap Oluştur",
|
||||
"Create Admin Account": "Yönetici Hesabı Oluştur",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Kanal Oluştur",
|
||||
"Create Folder": "Klasör Oluştur",
|
||||
"Create Image": "Görsel Oluştur",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Kişiselleştirme",
|
||||
"Pin": "Sabitle",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Sabitlenmiş",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "ھېساب قۇرۇش",
|
||||
"Create Admin Account": "باشقۇرغۇچى ھېساباتى قۇرۇش",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "قانال قۇرۇش",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "شەخسىيلاشتۇرۇش",
|
||||
"Pin": "مۇقىملا",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "مۇقىملاندى",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -456,6 +456,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Створити обліковий запис",
|
||||
"Create Admin Account": "Створити обліковий запис адміністратора",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Створити канал",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1515,6 +1516,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Персоналізація",
|
||||
"Pin": "Зачепити",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Зачеплено",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "اکاؤنٹ بنائیں",
|
||||
"Create Admin Account": "",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "شخصی ترتیبات",
|
||||
"Pin": "پن",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "پن کیا گیا",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Ҳисоб яратиш",
|
||||
"Create Admin Account": "Администратор ҳисобини яратинг",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Канал яратиш",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Шахсийлаштириш",
|
||||
"Pin": "Пин",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Қадалган",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -454,6 +454,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Hisob yaratish",
|
||||
"Create Admin Account": "Administrator hisobini yarating",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Kanal yaratish",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1513,6 +1514,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Shaxsiylashtirish",
|
||||
"Pin": "Pin",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Qadalgan",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "",
|
||||
"Create Account": "Tạo Tài khoản",
|
||||
"Create Admin Account": "Tạo Tài khoản Quản trị",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "Tạo Kênh",
|
||||
"Create Folder": "",
|
||||
"Create Image": "",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "",
|
||||
"Personalization": "Cá nhân hóa",
|
||||
"Pin": "Ghim",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "Đã ghim",
|
||||
"Pinned Messages": "",
|
||||
"Pinned Models": "",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "新建笔记",
|
||||
"Create Account": "创建账号",
|
||||
"Create Admin Account": "创建管理员账号",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "创建频道",
|
||||
"Create Folder": "创建分组",
|
||||
"Create Image": "图片生成",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "持久化",
|
||||
"Personalization": "个性化",
|
||||
"Pin": "置顶",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "已置顶",
|
||||
"Pinned Messages": "置顶消息",
|
||||
"Pinned Models": "固定在侧边栏的模型",
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
"Create a new note": "新建筆記",
|
||||
"Create Account": "建立帳號",
|
||||
"Create Admin Account": "建立管理員帳號",
|
||||
"Create and manage scheduled automations": "",
|
||||
"Create Channel": "建立頻道",
|
||||
"Create Folder": "建立分組",
|
||||
"Create Image": "產生圖片",
|
||||
@@ -1512,6 +1513,7 @@
|
||||
"Persistent": "持久性",
|
||||
"Personalization": "個人化",
|
||||
"Pin": "釘選",
|
||||
"Pin to Sidebar": "",
|
||||
"Pinned": "已釘選",
|
||||
"Pinned Messages": "置頂訊息",
|
||||
"Pinned Models": "固定於側邊欄的模型",
|
||||
|
||||
Reference in New Issue
Block a user