"vscode:/vscode.git/clone" did not exist on "e4a939cbbc42a349aa1ba8e9ae27d537bfec1c5b"
Commit f9e3c47d authored by Michael Poluektov's avatar Michael Poluektov
Browse files

rebase

parents 49b4211c 24ef5af2
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
export let title = $i18n.t('Confirm your action'); export let title = '';
export let message = $i18n.t('This action cannot be undone. Do you wish to continue?'); export let message = '';
export let cancelLabel = $i18n.t('Cancel'); export let cancelLabel = $i18n.t('Cancel');
export let confirmLabel = $i18n.t('Confirm'); export let confirmLabel = $i18n.t('Confirm');
...@@ -58,11 +58,21 @@ ...@@ -58,11 +58,21 @@
}} }}
> >
<div class="px-[1.75rem] py-6"> <div class="px-[1.75rem] py-6">
<div class=" text-lg font-semibold dark:text-gray-200 mb-2.5">{title}</div> <div class=" text-lg font-semibold dark:text-gray-200 mb-2.5">
{#if title !== ''}
{title}
{:else}
{$i18n.t('Confirm your action')}
{/if}
</div>
<slot> <slot>
<div class=" text-sm text-gray-500"> <div class=" text-sm text-gray-500">
{message} {#if message !== ''}
{message}
{:else}
{$i18n.t('This action cannot be undone. Do you wish to continue?')}
{/if}
</div> </div>
</slot> </slot>
...@@ -71,6 +81,7 @@ ...@@ -71,6 +81,7 @@
class="bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-white font-medium w-full py-2.5 rounded-lg transition" class="bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-white font-medium w-full py-2.5 rounded-lg transition"
on:click={() => { on:click={() => {
show = false; show = false;
dispatch('cancel');
}} }}
type="button" type="button"
> >
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<div <div
class=" m-auto rounded-2xl max-w-full {sizeToWidth( class=" m-auto rounded-2xl max-w-full {sizeToWidth(
size size
)} mx-2 bg-gray-50 dark:bg-gray-900 shadow-3xl" )} mx-2 bg-gray-50 dark:bg-gray-900 shadow-3xl max-h-[100dvh] overflow-y-auto scrollbar-hidden"
in:flyAndScale in:flyAndScale
on:mousedown={(e) => { on:mousedown={(e) => {
e.stopPropagation(); e.stopPropagation();
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<ChevronDown className="absolute end-2 top-1/2 -translate-y-[45%] size-3.5" strokeWidth="2.5" /> <ChevronDown className="absolute end-2 top-1/2 -translate-y-[45%] size-3.5" strokeWidth="2.5" />
</Select.Trigger> </Select.Trigger>
<Select.Content <Select.Content
class="w-full rounded-lg bg-white dark:bg-gray-900 dark:text-white shadow-lg border border-gray-300/30 dark:border-gray-850/50 outline-none" class="w-full rounded-lg bg-white dark:bg-gray-900 dark:text-white shadow-lg border border-gray-300/30 dark:border-gray-700/40 outline-none"
transition={flyAndScale} transition={flyAndScale}
sideOffset={4} sideOffset={4}
> >
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
export let readOnly = false; export let readOnly = false;
export let outerClassName = 'flex flex-1'; export let outerClassName = 'flex flex-1';
export let inputClassName = export let inputClassName =
'w-full rounded-l-lg py-2 pl-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none'; 'w-full rounded-l-lg py-2 pl-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none';
export let showButtonClassName = 'px-2 transition rounded-r-lg bg-white dark:bg-gray-850'; export let showButtonClassName = 'px-2 transition rounded-r-lg bg-gray-50 dark:bg-gray-850';
let show = false; let show = false;
</script> </script>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
}; };
</script> </script>
<div class="flex {showTagInput ? 'flex-row-reverse' : ''}"> <div class="px-0.5 flex {showTagInput ? 'flex-row-reverse' : ''}">
{#if showTagInput} {#if showTagInput}
<div class="flex items-center"> <div class="flex items-center">
<input <input
......
...@@ -3,11 +3,13 @@ ...@@ -3,11 +3,13 @@
import { marked } from 'marked'; import { marked } from 'marked';
import tippy from 'tippy.js'; import tippy from 'tippy.js';
import { roundArrow } from 'tippy.js';
export let placement = 'top'; export let placement = 'top';
export let content = `I'm a tooltip!`; export let content = `I'm a tooltip!`;
export let touch = true; export let touch = true;
export let className = 'flex'; export let className = 'flex';
export let theme = '';
let tooltipElement; let tooltipElement;
let tooltipInstance; let tooltipInstance;
...@@ -20,7 +22,10 @@ ...@@ -20,7 +22,10 @@
content: content, content: content,
placement: placement, placement: placement,
allowHTML: true, allowHTML: true,
touch: touch touch: touch,
...(theme !== '' ? { theme } : { theme: 'dark' }),
arrow: false,
offset: [0, 4]
}); });
} }
} else if (tooltipInstance && content === '') { } else if (tooltipInstance && content === '') {
......
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<div class="flex flex-1"> <div class="flex flex-1">
<div <div
class="bg-gray-200 dark:bg-gray-800 font-bold px-3 py-0.5 border border-r-0 dark:border-gray-800 rounded-l-xl flex items-center" class="bg-gray-200 dark:bg-gray-800 font-semibold px-3 py-0.5 border border-r-0 dark:border-gray-800 rounded-l-xl flex items-center"
> >
# #
</div> </div>
......
<script lang="ts">
export let className = 'w-4 h-4';
export let strokeWidth = '1.5';
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
stroke="currentColor"
fill="currentColor"
class={className}
stroke-width={strokeWidth}
>
<path
d="M18.75 12.75h1.5a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5ZM12 6a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 12 6ZM12 18a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 12 18ZM3.75 6.75h1.5a.75.75 0 1 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5ZM5.25 18.75h-1.5a.75.75 0 0 1 0-1.5h1.5a.75.75 0 0 1 0 1.5ZM3 12a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 3 12ZM9 3.75a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5ZM12.75 12a2.25 2.25 0 1 1 4.5 0 2.25 2.25 0 0 1-4.5 0ZM9 15.75a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5Z"
/>
</svg>
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
import { page } from '$app/stores'; import { page } from '$app/stores';
import UserMenu from './Sidebar/UserMenu.svelte'; import UserMenu from './Sidebar/UserMenu.svelte';
import MenuLines from '../icons/MenuLines.svelte'; import MenuLines from '../icons/MenuLines.svelte';
import AdjustmentsHorizontal from '../icons/AdjustmentsHorizontal.svelte';
const i18n = getContext('i18n'); const i18n = getContext('i18n');
...@@ -32,6 +33,7 @@ ...@@ -32,6 +33,7 @@
export let selectedModels; export let selectedModels;
export let showModelSelector = true; export let showModelSelector = true;
export let showControls = false;
let showShareChatModal = false; let showShareChatModal = false;
let showDownloadChatModal = false; let showDownloadChatModal = false;
...@@ -48,7 +50,7 @@ ...@@ -48,7 +50,7 @@
> >
<button <button
id="sidebar-toggle-button" id="sidebar-toggle-button"
class="cursor-pointer px-2 py-2 flex rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition" class="cursor-pointer px-2 py-2 flex rounded-xl hover:bg-gray-50 dark:hover:bg-gray-850 transition"
on:click={() => { on:click={() => {
showSidebar.set(!$showSidebar); showSidebar.set(!$showSidebar);
}} }}
...@@ -58,6 +60,7 @@ ...@@ -58,6 +60,7 @@
</div> </div>
</button> </button>
</div> </div>
<div class="flex-1 overflow-hidden max-w-full"> <div class="flex-1 overflow-hidden max-w-full">
{#if showModelSelector} {#if showModelSelector}
<ModelSelector bind:selectedModels showSetDefault={!shareEnabled} /> <ModelSelector bind:selectedModels showSetDefault={!shareEnabled} />
...@@ -79,7 +82,7 @@ ...@@ -79,7 +82,7 @@
}} }}
> >
<button <button
class="hidden md:flex cursor-pointer px-2 py-2 rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition" class="hidden md:flex cursor-pointer px-2 py-2 rounded-xl hover:bg-gray-50 dark:hover:bg-gray-850 transition"
id="chat-context-menu-button" id="chat-context-menu-button"
> >
<div class=" m-auto self-center"> <div class=" m-auto self-center">
...@@ -101,12 +104,26 @@ ...@@ -101,12 +104,26 @@
</button> </button>
</Menu> </Menu>
{/if} {/if}
<Tooltip content={$i18n.t('Controls')}>
<button
class=" flex cursor-pointer px-2 py-2 rounded-xl hover:bg-gray-50 dark:hover:bg-gray-850 transition"
on:click={() => {
showControls = !showControls;
}}
>
<div class=" m-auto self-center">
<AdjustmentsHorizontal className=" size-5" strokeWidth="0.5" />
</div>
</button>
</Tooltip>
<Tooltip content={$i18n.t('New Chat')}> <Tooltip content={$i18n.t('New Chat')}>
<button <button
id="new-chat-button" id="new-chat-button"
class=" flex {$showSidebar class=" flex {$showSidebar
? 'md:hidden' ? 'md:hidden'
: ''} cursor-pointer px-2 py-2 rounded-xl hover:bg-gray-100 dark:hover:bg-gray-850 transition" : ''} cursor-pointer px-2 py-2 rounded-xl text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-850 transition"
on:click={() => { on:click={() => {
initNewChat(); initNewChat();
}} }}
...@@ -140,7 +157,7 @@ ...@@ -140,7 +157,7 @@
}} }}
> >
<button <button
class="select-none flex rounded-xl p-1.5 w-full hover:bg-gray-100 dark:hover:bg-gray-850 transition" class="select-none flex rounded-xl p-1.5 w-full hover:bg-gray-50 dark:hover:bg-gray-850 transition"
aria-label="User Menu" aria-label="User Menu"
> >
<div class=" self-center"> <div class=" self-center">
......
...@@ -186,6 +186,7 @@ ...@@ -186,6 +186,7 @@
goto('/'); goto('/');
} }
await chats.set(await getChatList(localStorage.token)); await chats.set(await getChatList(localStorage.token));
await pinnedChats.set(await getChatListByTagName(localStorage.token, 'pinned'));
} }
}; };
</script> </script>
...@@ -260,7 +261,7 @@ ...@@ -260,7 +261,7 @@
alt="logo" alt="logo"
/> />
</div> </div>
<div class=" self-center font-medium text-sm text-gray-850 dark:text-white"> <div class=" self-center font-medium text-sm text-gray-850 dark:text-white font-primary">
{$i18n.t('New Chat')} {$i18n.t('New Chat')}
</div> </div>
<div class="self-center ml-auto"> <div class="self-center ml-auto">
...@@ -338,7 +339,7 @@ ...@@ -338,7 +339,7 @@
</div> </div>
<div class="flex self-center"> <div class="flex self-center">
<div class=" self-center font-medium text-sm">{$i18n.t('Workspace')}</div> <div class=" self-center font-medium text-sm font-primary">{$i18n.t('Workspace')}</div>
</div> </div>
</a> </a>
</div> </div>
...@@ -532,7 +533,7 @@ ...@@ -532,7 +533,7 @@
<div class="px-2.5"> <div class="px-2.5">
<!-- <hr class=" border-gray-900 mb-1 w-full" /> --> <!-- <hr class=" border-gray-900 mb-1 w-full" /> -->
<div class="flex flex-col"> <div class="flex flex-col font-primary">
{#if $user !== undefined} {#if $user !== undefined}
<UserMenu <UserMenu
role={$user.role} role={$user.role}
...@@ -555,50 +556,13 @@ ...@@ -555,50 +556,13 @@
alt="User profile" alt="User profile"
/> />
</div> </div>
<div class=" self-center font-semibold">{$user.name}</div> <div class=" self-center font-medium">{$user.name}</div>
</button> </button>
</UserMenu> </UserMenu>
{/if} {/if}
</div> </div>
</div> </div>
</div> </div>
<!-- <div
id="sidebar-handle"
class=" hidden md:fixed left-0 top-[50dvh] -translate-y-1/2 transition-transform translate-x-[255px] md:translate-x-[260px] rotate-0"
>
<Tooltip
placement="right"
content={`${$showSidebar ? $i18n.t('Close') : $i18n.t('Open')} ${$i18n.t('sidebar')}`}
touch={false}
>
<button
id="sidebar-toggle-button"
class=" group"
on:click={() => {
showSidebar.set(!$showSidebar);
}}
><span class="" data-state="closed"
><div
class="flex h-[72px] w-8 items-center justify-center opacity-50 group-hover:opacity-100 transition"
>
<div class="flex h-6 w-6 flex-col items-center">
<div
class="h-3 w-1 rounded-full bg-[#0f0f0f] dark:bg-white rotate-0 translate-y-[0.15rem] {$showSidebar
? 'group-hover:rotate-[15deg]'
: 'group-hover:rotate-[-15deg]'}"
/>
<div
class="h-3 w-1 rounded-full bg-[#0f0f0f] dark:bg-white rotate-0 translate-y-[-0.15rem] {$showSidebar
? 'group-hover:rotate-[-15deg]'
: 'group-hover:rotate-[15deg]'}"
/>
</div>
</div>
</span>
</button>
</Tooltip>
</div> -->
</div> </div>
<style> <style>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<slot name="content"> <slot name="content">
<DropdownMenu.Content <DropdownMenu.Content
class="w-full {className} text-sm rounded-xl px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-850 dark:text-white shadow" class="w-full {className} text-sm rounded-xl px-1 py-1.5 border border-gray-300/30 dark:border-gray-700/50 z-50 bg-white dark:bg-gray-850 dark:text-white shadow font-primary"
sideOffset={8} sideOffset={8}
side="bottom" side="bottom"
align="start" align="start"
......
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
{/if} {/if}
</div> </div>
<div class=" self-center flex-1"> <div class=" self-center flex-1">
<div class=" font-bold line-clamp-1">#{doc.name} ({doc.filename})</div> <div class=" font-semibold line-clamp-1">#{doc.name} ({doc.filename})</div>
<div class=" text-xs overflow-hidden text-ellipsis line-clamp-1"> <div class=" text-xs overflow-hidden text-ellipsis line-clamp-1">
{doc.title} {doc.title}
</div> </div>
......
...@@ -200,14 +200,14 @@ ...@@ -200,14 +200,14 @@
<div class=" flex-1 self-center pl-1"> <div class=" flex-1 self-center pl-1">
<div class=" font-semibold flex items-center gap-1.5"> <div class=" font-semibold flex items-center gap-1.5">
<div <div
class=" text-xs font-black px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200" class=" text-xs font-bold px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200"
> >
{func.type} {func.type}
</div> </div>
{#if func?.meta?.manifest?.version} {#if func?.meta?.manifest?.version}
<div <div
class="text-xs font-black px-1 rounded line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200" class="text-xs font-bold px-1 rounded line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200"
> >
v{func?.meta?.manifest?.version ?? ''} v{func?.meta?.manifest?.version ?? ''}
</div> </div>
...@@ -430,7 +430,7 @@ ...@@ -430,7 +430,7 @@
</div> </div>
<div class=" self-center"> <div class=" self-center">
<div class=" font-bold line-clamp-1">{$i18n.t('Discover a function')}</div> <div class=" font-semibold line-clamp-1">{$i18n.t('Discover a function')}</div>
<div class=" text-sm line-clamp-1"> <div class=" text-sm line-clamp-1">
{$i18n.t('Discover, download, and explore custom functions')} {$i18n.t('Discover, download, and explore custom functions')}
</div> </div>
......
...@@ -271,7 +271,7 @@ ...@@ -271,7 +271,7 @@
</div> </div>
<div class=" self-center"> <div class=" self-center">
<div class=" font-bold line-clamp-1">{$i18n.t('Create a model')}</div> <div class=" font-semibold line-clamp-1">{$i18n.t('Create a model')}</div>
<div class=" text-sm line-clamp-1">{$i18n.t('Customize models for a specific purpose')}</div> <div class=" text-sm line-clamp-1">{$i18n.t('Customize models for a specific purpose')}</div>
</div> </div>
</a> </a>
...@@ -297,7 +297,7 @@ ...@@ -297,7 +297,7 @@
: ''} " : ''} "
> >
<img <img
src={model?.info?.meta?.profile_image_url ?? '/favicon.png'} src={model?.info?.meta?.profile_image_url ?? '/static/favicon.png'}
alt="modelfile profile" alt="modelfile profile"
class=" rounded-full w-full h-auto object-cover" class=" rounded-full w-full h-auto object-cover"
/> />
...@@ -307,7 +307,7 @@ ...@@ -307,7 +307,7 @@
<div <div
class=" flex-1 self-center {model?.info?.meta?.hidden ?? false ? 'text-gray-500' : ''}" class=" flex-1 self-center {model?.info?.meta?.hidden ?? false ? 'text-gray-500' : ''}"
> >
<div class=" font-bold line-clamp-1">{model.name}</div> <div class=" font-semibold line-clamp-1">{model.name}</div>
<div class=" text-xs overflow-hidden text-ellipsis line-clamp-1"> <div class=" text-xs overflow-hidden text-ellipsis line-clamp-1">
{!!model?.info?.meta?.description ? model?.info?.meta?.description : model.id} {!!model?.info?.meta?.description ? model?.info?.meta?.description : model.id}
</div> </div>
...@@ -518,7 +518,7 @@ ...@@ -518,7 +518,7 @@
</div> </div>
<div class=" self-center"> <div class=" self-center">
<div class=" font-bold line-clamp-1">{$i18n.t('Discover a model')}</div> <div class=" font-semibold line-clamp-1">{$i18n.t('Discover a model')}</div>
<div class=" text-sm line-clamp-1"> <div class=" text-sm line-clamp-1">
{$i18n.t('Discover, download, and explore model presets')} {$i18n.t('Discover, download, and explore model presets')}
</div> </div>
......
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class="flex items-center"> <div class="flex items-center">
<div class="flex flex-col"> <div class="flex flex-col">
<div <div
class=" w-fit text-xs font-black px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200" class=" w-fit text-xs font-bold px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200"
> >
{item?.type ?? 'Document'} {item?.type ?? 'Document'}
</div> </div>
......
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
<div class=" flex flex-1 space-x-4 cursor-pointer w-full"> <div class=" flex flex-1 space-x-4 cursor-pointer w-full">
<a href={`/workspace/prompts/edit?command=${encodeURIComponent(prompt.command)}`}> <a href={`/workspace/prompts/edit?command=${encodeURIComponent(prompt.command)}`}>
<div class=" flex-1 self-center pl-5"> <div class=" flex-1 self-center pl-5">
<div class=" font-bold line-clamp-1">{prompt.command}</div> <div class=" font-semibold line-clamp-1">{prompt.command}</div>
<div class=" text-xs overflow-hidden text-ellipsis line-clamp-1"> <div class=" text-xs overflow-hidden text-ellipsis line-clamp-1">
{prompt.title} {prompt.title}
</div> </div>
...@@ -299,7 +299,7 @@ ...@@ -299,7 +299,7 @@
</div> </div>
<div class=" self-center"> <div class=" self-center">
<div class=" font-bold line-clamp-1">{$i18n.t('Discover a prompt')}</div> <div class=" font-semibold line-clamp-1">{$i18n.t('Discover a prompt')}</div>
<div class=" text-sm line-clamp-1"> <div class=" text-sm line-clamp-1">
{$i18n.t('Discover, download, and explore custom prompts')} {$i18n.t('Discover, download, and explore custom prompts')}
</div> </div>
......
...@@ -177,14 +177,14 @@ ...@@ -177,14 +177,14 @@
<div class=" flex-1 self-center pl-1"> <div class=" flex-1 self-center pl-1">
<div class=" font-semibold flex items-center gap-1.5"> <div class=" font-semibold flex items-center gap-1.5">
<div <div
class=" text-xs font-black px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200" class=" text-xs font-bold px-1 rounded uppercase line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200"
> >
TOOL TOOL
</div> </div>
{#if tool?.meta?.manifest?.version} {#if tool?.meta?.manifest?.version}
<div <div
class="text-xs font-black px-1 rounded line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200" class="text-xs font-bold px-1 rounded line-clamp-1 bg-gray-500/20 text-gray-700 dark:text-gray-200"
> >
v{tool?.meta?.manifest?.version ?? ''} v{tool?.meta?.manifest?.version ?? ''}
</div> </div>
...@@ -389,7 +389,7 @@ ...@@ -389,7 +389,7 @@
</div> </div>
<div class=" self-center"> <div class=" self-center">
<div class=" font-bold line-clamp-1">{$i18n.t('Discover a tool')}</div> <div class=" font-semibold line-clamp-1">{$i18n.t('Discover a tool')}</div>
<div class=" text-sm line-clamp-1"> <div class=" text-sm line-clamp-1">
{$i18n.t('Discover, download, and explore custom tools')} {$i18n.t('Discover, download, and explore custom tools')}
</div> </div>
......
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
"Chat": "المحادثة", "Chat": "المحادثة",
"Chat Background Image": "", "Chat Background Image": "",
"Chat Bubble UI": "UI الدردشة", "Chat Bubble UI": "UI الدردشة",
"Chat Controls": "",
"Chat direction": "اتجاه المحادثة", "Chat direction": "اتجاه المحادثة",
"Chat History": "تاريخ المحادثة", "Chat History": "تاريخ المحادثة",
"Chat History is off for this browser.": "سجل الدردشة معطل لهذا المتصفح", "Chat History is off for this browser.": "سجل الدردشة معطل لهذا المتصفح",
...@@ -130,6 +131,7 @@ ...@@ -130,6 +131,7 @@
"Context Length": "طول السياق", "Context Length": "طول السياق",
"Continue Response": "متابعة الرد", "Continue Response": "متابعة الرد",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "",
"Copied shared chat URL to clipboard!": "تم نسخ عنوان URL للدردشة المشتركة إلى الحافظة", "Copied shared chat URL to clipboard!": "تم نسخ عنوان URL للدردشة المشتركة إلى الحافظة",
"Copy": "نسخ", "Copy": "نسخ",
"Copy last code block": "انسخ كتلة التعليمات البرمجية الأخيرة", "Copy last code block": "انسخ كتلة التعليمات البرمجية الأخيرة",
...@@ -409,7 +411,6 @@ ...@@ -409,7 +411,6 @@
"Oops! Looks like the URL is invalid. Please double-check and try again.": "خطاء! يبدو أن عنوان URL غير صالح. يرجى التحقق مرة أخرى والمحاولة مرة أخرى.", "Oops! Looks like the URL is invalid. Please double-check and try again.": "خطاء! يبدو أن عنوان URL غير صالح. يرجى التحقق مرة أخرى والمحاولة مرة أخرى.",
"Oops! There was an error in the previous response. Please try again or contact admin.": "", "Oops! There was an error in the previous response. Please try again or contact admin.": "",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "خطاء! أنت تستخدم طريقة غير مدعومة (الواجهة الأمامية فقط). يرجى تقديم واجهة WebUI من الواجهة الخلفية.", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "خطاء! أنت تستخدم طريقة غير مدعومة (الواجهة الأمامية فقط). يرجى تقديم واجهة WebUI من الواجهة الخلفية.",
"Open": "فتح",
"Open AI (Dall-E)": "AI (Dall-E) فتح", "Open AI (Dall-E)": "AI (Dall-E) فتح",
"Open new chat": "فتح محادثة جديده", "Open new chat": "فتح محادثة جديده",
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "",
...@@ -546,7 +547,6 @@ ...@@ -546,7 +547,6 @@
"Show shortcuts": "إظهار الاختصارات", "Show shortcuts": "إظهار الاختصارات",
"Show your support!": "", "Show your support!": "",
"Showcased creativity": "أظهر الإبداع", "Showcased creativity": "أظهر الإبداع",
"sidebar": "الشريط الجانبي",
"Sign in": "تسجيل الدخول", "Sign in": "تسجيل الدخول",
"Sign Out": "تسجيل الخروج", "Sign Out": "تسجيل الخروج",
"Sign up": "تسجيل", "Sign up": "تسجيل",
......
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
"Chat": "Чат", "Chat": "Чат",
"Chat Background Image": "", "Chat Background Image": "",
"Chat Bubble UI": "UI за чат бублон", "Chat Bubble UI": "UI за чат бублон",
"Chat Controls": "",
"Chat direction": "Направление на чата", "Chat direction": "Направление на чата",
"Chat History": "Чат История", "Chat History": "Чат История",
"Chat History is off for this browser.": "Чат История е изключен за този браузър.", "Chat History is off for this browser.": "Чат История е изключен за този браузър.",
...@@ -130,6 +131,7 @@ ...@@ -130,6 +131,7 @@
"Context Length": "Дължина на Контекста", "Context Length": "Дължина на Контекста",
"Continue Response": "Продължи отговора", "Continue Response": "Продължи отговора",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "",
"Copied shared chat URL to clipboard!": "Копирана е връзката за чат!", "Copied shared chat URL to clipboard!": "Копирана е връзката за чат!",
"Copy": "Копирай", "Copy": "Копирай",
"Copy last code block": "Копиране на последен код блок", "Copy last code block": "Копиране на последен код блок",
...@@ -409,7 +411,6 @@ ...@@ -409,7 +411,6 @@
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Изглежда URL адресът е невалиден. Моля, проверете отново и опитайте пак.", "Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Изглежда URL адресът е невалиден. Моля, проверете отново и опитайте пак.",
"Oops! There was an error in the previous response. Please try again or contact admin.": "", "Oops! There was an error in the previous response. Please try again or contact admin.": "",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Упс! Използвате неподдържан метод (само фронтенд). Моля, сервирайте WebUI от бекенда.", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Упс! Използвате неподдържан метод (само фронтенд). Моля, сервирайте WebUI от бекенда.",
"Open": "Отвори",
"Open AI (Dall-E)": "Open AI (Dall-E)", "Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "Отвори нов чат", "Open new chat": "Отвори нов чат",
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "",
...@@ -542,7 +543,6 @@ ...@@ -542,7 +543,6 @@
"Show shortcuts": "Покажи", "Show shortcuts": "Покажи",
"Show your support!": "", "Show your support!": "",
"Showcased creativity": "Показана креативност", "Showcased creativity": "Показана креативност",
"sidebar": "sidebar",
"Sign in": "Вписване", "Sign in": "Вписване",
"Sign Out": "Изход", "Sign Out": "Изход",
"Sign up": "Регистрация", "Sign up": "Регистрация",
......
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
"Chat": "চ্যাট", "Chat": "চ্যাট",
"Chat Background Image": "", "Chat Background Image": "",
"Chat Bubble UI": "চ্যাট বাবল UI", "Chat Bubble UI": "চ্যাট বাবল UI",
"Chat Controls": "",
"Chat direction": "চ্যাট দিকনির্দেশ", "Chat direction": "চ্যাট দিকনির্দেশ",
"Chat History": "চ্যাট হিস্টোরি", "Chat History": "চ্যাট হিস্টোরি",
"Chat History is off for this browser.": "এই ব্রাউজারের জন্য চ্যাট হিস্টোরি বন্ধ আছে", "Chat History is off for this browser.": "এই ব্রাউজারের জন্য চ্যাট হিস্টোরি বন্ধ আছে",
...@@ -130,6 +131,7 @@ ...@@ -130,6 +131,7 @@
"Context Length": "কনটেক্সটের দৈর্ঘ্য", "Context Length": "কনটেক্সটের দৈর্ঘ্য",
"Continue Response": "যাচাই করুন", "Continue Response": "যাচাই করুন",
"Continue with {{provider}}": "", "Continue with {{provider}}": "",
"Controls": "",
"Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!", "Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!",
"Copy": "অনুলিপি", "Copy": "অনুলিপি",
"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন", "Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",
...@@ -409,7 +411,6 @@ ...@@ -409,7 +411,6 @@
"Oops! Looks like the URL is invalid. Please double-check and try again.": "ওহ, মনে হচ্ছে ইউআরএলটা ইনভ্যালিড। দয়া করে আর চেক করে চেষ্টা করুন।", "Oops! Looks like the URL is invalid. Please double-check and try again.": "ওহ, মনে হচ্ছে ইউআরএলটা ইনভ্যালিড। দয়া করে আর চেক করে চেষ্টা করুন।",
"Oops! There was an error in the previous response. Please try again or contact admin.": "", "Oops! There was an error in the previous response. Please try again or contact admin.": "",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "আপনি একটা আনসাপোর্টেড পদ্ধতি (শুধু ফ্রন্টএন্ড) ব্যবহার করছেন। দয়া করে WebUI ব্যাকএন্ড থেকে চালনা করুন।", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "আপনি একটা আনসাপোর্টেড পদ্ধতি (শুধু ফ্রন্টএন্ড) ব্যবহার করছেন। দয়া করে WebUI ব্যাকএন্ড থেকে চালনা করুন।",
"Open": "খোলা",
"Open AI (Dall-E)": "Open AI (Dall-E)", "Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "নতুন চ্যাট খুলুন", "Open new chat": "নতুন চ্যাট খুলুন",
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "",
...@@ -542,7 +543,6 @@ ...@@ -542,7 +543,6 @@
"Show shortcuts": "শর্টকাটগুলো দেখান", "Show shortcuts": "শর্টকাটগুলো দেখান",
"Show your support!": "", "Show your support!": "",
"Showcased creativity": "সৃজনশীলতা প্রদর্শন", "Showcased creativity": "সৃজনশীলতা প্রদর্শন",
"sidebar": "সাইডবার",
"Sign in": "সাইন ইন", "Sign in": "সাইন ইন",
"Sign Out": "সাইন আউট", "Sign Out": "সাইন আউট",
"Sign up": "সাইন আপ", "Sign up": "সাইন আপ",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment