Unverified Commit edbe5673 authored by Timothy Jaeryang Baek's avatar Timothy Jaeryang Baek Committed by GitHub
Browse files

Merge branch 'dev' into main

parents 1114f962 8b0144cd
......@@ -12,9 +12,9 @@
"lint:frontend": "eslint . --fix",
"lint:types": "npm run check",
"lint:backend": "pylint backend/",
"format": "prettier --plugin-search-dir --write '**/*.{js,ts,svelte,css,md,html,json}'",
"format": "prettier --plugin-search-dir --write \"**/*.{js,ts,svelte,css,md,html,json}\"",
"format:backend": "black . --exclude \"/venv/\"",
"i18n:parse": "i18next --config i18next-parser.config.ts && prettier --write 'src/lib/i18n/**/*.{js,json}'",
"i18n:parse": "i18next --config i18next-parser.config.ts && prettier --write \"src/lib/i18n/**/*.{js,json}\"",
"cy:open": "cypress open"
},
"devDependencies": {
......
......@@ -6,6 +6,8 @@ type TextStreamUpdate = {
value: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
citations?: any;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
error?: any;
};
// createOpenAITextStream takes a responseBody with a SSE response,
......@@ -47,6 +49,11 @@ async function* openAIStreamToIterator(
const parsedData = JSON.parse(data);
console.log(parsedData);
if (parsedData.error) {
yield { done: true, value: '', error: parsedData.error };
break;
}
if (parsedData.citations) {
yield { done: false, value: '', citations: parsedData.citations };
continue;
......
......@@ -309,31 +309,33 @@
copyToClipboard={copyToClipboardWithToast}
/>
{:else}
<ResponseMessage
{message}
modelfiles={selectedModelfiles}
siblings={history.messages[message.parentId]?.childrenIds ?? []}
isLastMessage={messageIdx + 1 === messages.length}
{readOnly}
{updateChatMessages}
{confirmEditResponseMessage}
{showPreviousMessage}
{showNextMessage}
{rateMessage}
copyToClipboard={copyToClipboardWithToast}
{continueGeneration}
{regenerateResponse}
on:save={async (e) => {
console.log('save', e);
const message = e.detail;
history.messages[message.id] = message;
await updateChatById(localStorage.token, chatId, {
messages: messages,
history: history
});
}}
/>
{#key message.id}
<ResponseMessage
{message}
modelfiles={selectedModelfiles}
siblings={history.messages[message.parentId]?.childrenIds ?? []}
isLastMessage={messageIdx + 1 === messages.length}
{readOnly}
{updateChatMessages}
{confirmEditResponseMessage}
{showPreviousMessage}
{showNextMessage}
{rateMessage}
copyToClipboard={copyToClipboardWithToast}
{continueGeneration}
{regenerateResponse}
on:save={async (e) => {
console.log('save', e);
const message = e.detail;
history.messages[message.id] = message;
await updateChatById(localStorage.token, chatId, {
messages: messages,
history: history
});
}}
/>
{/key}
{/if}
</div>
</div>
......
......@@ -39,9 +39,9 @@
let selectedReason = null;
let comment = '';
$: if (message.annotation.rating === 1) {
$: if (message?.annotation?.rating === 1) {
reasons = LIKE_REASONS;
} else if (message.annotation.rating === -1) {
} else if (message?.annotation?.rating === -1) {
reasons = DISLIKE_REASONS;
}
......
......@@ -65,8 +65,8 @@
let generatingImage = false;
let showRateComment = false;
let showCitationModal = false;
let selectedCitation = null;
$: tokens = marked.lexer(sanitizeResponseContent(message.content));
......@@ -476,7 +476,7 @@
<div class="bg-white dark:bg-gray-700 rounded-full size-4">
{idx + 1}
</div>
<div class=" mx-2">
<div class="flex-1 mx-2 line-clamp-1">
{citation.source.name}
</div>
</button>
......@@ -902,7 +902,7 @@
</div>
{/if}
{#if showRateComment}
{#if message.done && showRateComment}
<RateComment
messageId={message.id}
bind:show={showRateComment}
......
......@@ -22,6 +22,7 @@
import ShareChatModal from '../chat/ShareChatModal.svelte';
import ArchiveBox from '../icons/ArchiveBox.svelte';
import ArchivedChatsModal from './Sidebar/ArchivedChatsModal.svelte';
import UserMenu from './Sidebar/UserMenu.svelte';
const BREAKPOINT = 1024;
......@@ -685,163 +686,30 @@
<div class="flex flex-col">
{#if $user !== undefined}
<button
class=" flex rounded-xl py-3 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
on:click={() => {
showDropdown = !showDropdown;
<UserMenu
role={$user.role}
on:show={(e) => {
if (e.detail === 'archived-chat') {
showArchivedChatsModal = true;
}
}}
>
<div class=" self-center mr-3">
<img
src={$user.profile_image_url}
class=" max-w-[30px] object-cover rounded-full"
alt="User profile"
/>
</div>
<div class=" self-center font-semibold">{$user.name}</div>
</button>
{#if showDropdown}
<div
id="dropdownDots"
class="absolute z-40 bottom-[70px] rounded-lg shadow w-[240px] bg-white dark:bg-gray-900"
transition:fade|slide={{ duration: 100 }}
<button
class=" flex rounded-xl py-3 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
on:click={() => {
showDropdown = !showDropdown;
}}
>
<div class="p-1 py-2 w-full">
{#if $user.role === 'admin'}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/admin');
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Admin Panel')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/playground');
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Playground')}</div>
</button>
{/if}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
showArchivedChatsModal = true;
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<ArchiveBox className="size-5" strokeWidth="1.5" />
</div>
<div class=" self-center font-medium">{$i18n.t('Archived Chats')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={async () => {
await showSettings.set(true);
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Settings')}</div>
</button>
</div>
<hr class=" dark:border-gray-800 m-0 p-0" />
<div class="p-1 py-2 w-full">
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
localStorage.removeItem('token');
location.href = '/auth';
showDropdown = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-5 h-5"
>
<path
fill-rule="evenodd"
d="M3 4.25A2.25 2.25 0 015.25 2h5.5A2.25 2.25 0 0113 4.25v2a.75.75 0 01-1.5 0v-2a.75.75 0 00-.75-.75h-5.5a.75.75 0 00-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 00.75-.75v-2a.75.75 0 011.5 0v2A2.25 2.25 0 0110.75 18h-5.5A2.25 2.25 0 013 15.75V4.25z"
clip-rule="evenodd"
/>
<path
fill-rule="evenodd"
d="M6 10a.75.75 0 01.75-.75h9.546l-1.048-.943a.75.75 0 111.004-1.114l2.5 2.25a.75.75 0 010 1.114l-2.5 2.25a.75.75 0 11-1.004-1.114l1.048-.943H6.75A.75.75 0 016 10z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Sign Out')}</div>
</button>
<div class=" self-center mr-3">
<img
src={$user.profile_image_url}
class=" max-w-[30px] object-cover rounded-full"
alt="User profile"
/>
</div>
</div>
{/if}
<div class=" self-center font-semibold">{$user.name}</div>
</button>
</UserMenu>
{/if}
</div>
</div>
......
<script lang="ts">
import { DropdownMenu } from 'bits-ui';
import { createEventDispatcher, getContext } from 'svelte';
import { flyAndScale } from '$lib/utils/transitions';
import { goto } from '$app/navigation';
import ArchiveBox from '$lib/components/icons/ArchiveBox.svelte';
import { showSettings } from '$lib/stores';
import { fade, slide } from 'svelte/transition';
const i18n = getContext('i18n');
export let show = false;
export let role = '';
const dispatch = createEventDispatcher();
</script>
<DropdownMenu.Root
bind:open={show}
onOpenChange={(state) => {
dispatch('change', state);
}}
>
<DropdownMenu.Trigger>
<slot />
</DropdownMenu.Trigger>
<slot name="content">
<DropdownMenu.Content
class="w-full max-w-[240px] rounded-lg p-1 py-1 border border-gray-850 z-50 bg-gray-900 text-white text-sm"
sideOffset={8}
side="bottom"
align="start"
transition={(e) => fade(e, { duration: 100 })}
>
{#if role === 'admin'}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/admin');
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.982 18.725A7.488 7.488 0 0012 15.75a7.488 7.488 0 00-5.982 2.975m11.963 0a9 9 0 10-11.963 0m11.963 0A8.966 8.966 0 0112 21a8.966 8.966 0 01-5.982-2.275M15 9.75a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Admin Panel')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
goto('/playground');
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Playground')}</div>
</button>
{/if}
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
dispatch('show', 'archived-chat');
show = false;
}}
>
<div class=" self-center mr-3">
<ArchiveBox className="size-5" strokeWidth="1.5" />
</div>
<div class=" self-center font-medium">{$i18n.t('Archived Chats')}</div>
</button>
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={async () => {
await showSettings.set(true);
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
class="w-5 h-5"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.203-.107-.397.165-.71.505-.781.929l-.149.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.505-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.107-1.204l-.527-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Settings')}</div>
</button>
<hr class=" dark:border-gray-800 my-2 p-0" />
<button
class="flex rounded-md py-2.5 px-3.5 w-full hover:bg-gray-100 dark:hover:bg-gray-800 transition"
on:click={() => {
localStorage.removeItem('token');
location.href = '/auth';
show = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-5 h-5"
>
<path
fill-rule="evenodd"
d="M3 4.25A2.25 2.25 0 015.25 2h5.5A2.25 2.25 0 0113 4.25v2a.75.75 0 01-1.5 0v-2a.75.75 0 00-.75-.75h-5.5a.75.75 0 00-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 00.75-.75v-2a.75.75 0 011.5 0v2A2.25 2.25 0 0110.75 18h-5.5A2.25 2.25 0 013 15.75V4.25z"
clip-rule="evenodd"
/>
<path
fill-rule="evenodd"
d="M6 10a.75.75 0 01.75-.75h9.546l-1.048-.943a.75.75 0 111.004-1.114l2.5 2.25a.75.75 0 010 1.114l-2.5 2.25a.75.75 0 11-1.004-1.114l1.048-.943H6.75A.75.75 0 016 10z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center font-medium">{$i18n.t('Sign Out')}</div>
</button>
<!-- <DropdownMenu.Item class="flex items-center px-3 py-2 text-sm font-medium">
<div class="flex items-center">Profile</div>
</DropdownMenu.Item> -->
</DropdownMenu.Content>
</slot>
</DropdownMenu.Root>
......@@ -37,7 +37,7 @@ const createIsLoadingStore = (i18n: i18nType) => {
return isLoading;
};
export const initI18n = (defaultLocale: string) => {
export const initI18n = (defaultLocale: string | undefined) => {
let detectionOrder = defaultLocale
? ['querystring', 'localStorage']
: ['querystring', 'localStorage', 'navigator'];
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Chunk تداخل",
"Chunk Params": "Chunk المتغيرات",
"Chunk Size": "Chunk حجم",
"Citation": "",
"Citation": "اقتباس",
"Click here for help.": "أضغط هنا للمساعدة",
"Click here to": "أضغط هنا الانتقال",
"Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى",
......@@ -285,7 +285,7 @@
"New Chat": "دردشة جديدة",
"New Password": "كلمة المرور الجديدة",
"No results found": "لا توجد نتايج",
"No source available": "",
"No source available": "لا يوجد مصدر متاح",
"Not factually correct": "ليس صحيحا من حيث الواقع",
"Not sure what to add?": "لست متأكدا ما يجب إضافته؟",
"Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى",
......@@ -407,7 +407,7 @@
"Sign Out": "تسجيل الخروج",
"Sign up": "تسجيل",
"Signing in": "جاري الدخول",
"Source": "",
"Source": "المصدر",
"Speech recognition error: {{error}}": "{{error}} خطأ في التعرف على الكلام",
"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
"SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Size",
"Citation": "",
"Citation": "Цитат",
"Click here for help.": "Натиснете тук за помощ.",
"Click here to": "",
"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
......@@ -285,7 +285,7 @@
"New Chat": "Нов чат",
"New Password": "Нова парола",
"No results found": "",
"No source available": "",
"No source available": "Няма наличен източник",
"Not factually correct": "",
"Not sure what to add?": "Не сте сигурни, какво да добавите?",
"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
......@@ -407,7 +407,7 @@
"Sign Out": "Изход",
"Sign up": "Регистрация",
"Signing in": "",
"Source": "",
"Source": "Източник",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
"Speech-to-Text Engine": "Speech-to-Text Engine",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "চাঙ্ক ওভারল্যাপ",
"Chunk Params": "চাঙ্ক প্যারামিটার্স",
"Chunk Size": "চাঙ্ক সাইজ",
"Citation": "",
"Citation": "উদ্ধৃতি",
"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
"Click here to": "",
"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
......@@ -285,7 +285,7 @@
"New Chat": "নতুন চ্যাট",
"New Password": "নতুন পাসওয়ার্ড",
"No results found": "",
"No source available": "",
"No source available": "কোন উৎস পাওয়া যায়নি",
"Not factually correct": "",
"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
......@@ -407,7 +407,7 @@
"Sign Out": "সাইন আউট",
"Sign up": "সাইন আপ",
"Signing in": "",
"Source": "",
"Source": "উৎস",
"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
"SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Solapament de Blocs",
"Chunk Params": "Paràmetres de Blocs",
"Chunk Size": "Mida del Bloc",
"Citation": "",
"Citation": "Citació",
"Click here for help.": "Fes clic aquí per ajuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
......@@ -285,7 +285,7 @@
"New Chat": "Xat Nou",
"New Password": "Nova Contrasenya",
"No results found": "",
"No source available": "",
"No source available": "Sense font disponible",
"Not factually correct": "",
"Not sure what to add?": "No estàs segur del que afegir?",
"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
......@@ -407,7 +407,7 @@
"Sign Out": "Tanca sessió",
"Sign up": "Registra't",
"Signing in": "",
"Source": "",
"Source": "Font",
"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
"Speech-to-Text Engine": "Motor de Veu a Text",
"SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.",
......
......@@ -285,7 +285,7 @@
"New Chat": "New Bark",
"New Password": "New Barkword",
"No results found": "",
"No source available": "",
"No source available": "No source available",
"Not factually correct": "",
"Not sure what to add?": "Not sure what to add?",
"Not sure what to write? Switch to": "Not sure what to write? Switch to",
......@@ -407,7 +407,7 @@
"Sign Out": "Sign Out much logout",
"Sign up": "Sign up much join",
"Signing in": "",
"Source": "",
"Source": "Source",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
"Speech-to-Text Engine": "Speech-to-Text Engine much speak",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Superposición de fragmentos",
"Chunk Params": "Parámetros de fragmentos",
"Chunk Size": "Tamaño de fragmentos",
"Citation": "",
"Citation": "Cita",
"Click here for help.": "Presiona aquí para obtener ayuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
......@@ -285,7 +285,7 @@
"New Chat": "Nuevo Chat",
"New Password": "Nueva Contraseña",
"No results found": "",
"No source available": "",
"No source available": "No hay fuente disponible",
"Not factually correct": "",
"Not sure what to add?": "¿No sabes qué añadir?",
"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
......@@ -407,7 +407,7 @@
"Sign Out": "Cerrar sesión",
"Sign up": "Crear una cuenta",
"Signing in": "",
"Source": "",
"Source": "Fuente",
"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
"Speech-to-Text Engine": "Motor de voz a texto",
"SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "همپوشانی تکه",
"Chunk Params": "پارامترهای تکه",
"Chunk Size": "اندازه تکه",
"Citation": "",
"Citation": "استناد",
"Click here for help.": "برای کمک اینجا را کلیک کنید.",
"Click here to": "",
"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
......@@ -285,7 +285,7 @@
"New Chat": "گپ جدید",
"New Password": "رمز عبور جدید",
"No results found": "",
"No source available": "",
"No source available": "منبعی در دسترس نیست",
"Not factually correct": "",
"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
......@@ -407,7 +407,7 @@
"Sign Out": "خروج",
"Sign up": "ثبت نام",
"Signing in": "",
"Source": "",
"Source": "منبع",
"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
"Speech-to-Text Engine": "موتور گفتار به متن",
"SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc",
"Citation": "",
"Citation": "Citations",
"Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
......@@ -285,7 +285,7 @@
"New Chat": "Nouvelle discussion",
"New Password": "Nouveau mot de passe",
"No results found": "",
"No source available": "",
"No source available": "Aucune source disponible",
"Not factually correct": "",
"Not sure what to add?": "Pas sûr de quoi ajouter ?",
"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
......@@ -407,7 +407,7 @@
"Sign Out": "Se déconnecter",
"Sign up": "S'inscrire",
"Signing in": "",
"Source": "",
"Source": "Source",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc",
"Citation": "",
"Citation": "Citations",
"Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
......@@ -285,7 +285,7 @@
"New Chat": "Nouveau chat",
"New Password": "Nouveau mot de passe",
"No results found": "",
"No source available": "",
"No source available": "Aucune source disponible",
"Not factually correct": "",
"Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
......@@ -407,7 +407,7 @@
"Sign Out": "Se déconnecter",
"Sign up": "S'inscrire",
"Signing in": "",
"Source": "",
"Source": "Source",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
......
{
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' או '-1' ללא תפוגה.",
"(Beta)": "(בטא)",
"(e.g. `sh webui.sh --api`)": "(למשל `sh webui.sh --api`)",
"(latest)": "(האחרון)",
"{{modelName}} is thinking...": "{{modelName}} חושב...",
"{{user}}'s Chats": "צ'אטים של {{user}}",
"{{webUIName}} Backend Required": "נדרש Backend של {{webUIName}}",
"a user": "משתמש",
"About": "אודות",
"Account": "חשבון",
"Accurate information": "מידע מדויק",
"Add a model": "הוסף מודל",
"Add a model tag name": "הוסף שם תג למודל",
"Add a short description about what this modelfile does": "הוסף תיאור קצר על מה שהקובץ מודל עושה",
"Add a short title for this prompt": "הוסף כותרת קצרה לפקודה זו",
"Add a tag": "הוסף תג",
"Add custom prompt": "הוסף פקודה מותאמת אישית",
"Add Docs": "הוסף מסמכים",
"Add Files": "הוסף קבצים",
"Add message": "הוסף הודעה",
"Add Model": "הוסף מודל",
"Add Tags": "הוסף תגים",
"Add User": "הוסף משתמש",
"Adjusting these settings will apply changes universally to all users.": "התאמת הגדרות אלו תחול על כל המשתמשים.",
"admin": "מנהל",
"Admin Panel": "לוח בקרה למנהל",
"Admin Settings": "הגדרות מנהל",
"Advanced Parameters": "פרמטרים מתקדמים",
"all": "הכל",
"All Documents": "כל המסמכים",
"All Users": "כל המשתמשים",
"Allow": "אפשר",
"Allow Chat Deletion": "אפשר מחיקת צ'אט",
"alphanumeric characters and hyphens": "תווים אלפאנומריים ומקפים",
"Already have an account?": "כבר יש לך חשבון?",
"an assistant": "עוזר",
"and": "וגם",
"and create a new shared link.": "וצור קישור משותף חדש.",
"API Base URL": "כתובת URL בסיסית ל-API",
"API Key": "מפתח API",
"API Key created.": "מפתח API נוצר.",
"API keys": "מפתחות API",
"API RPM": "RPM של API",
"April": "אפריל",
"Archive": "ארכיון",
"Archived Chats": "צ'אטים מאורכבים",
"are allowed - Activate this command by typing": "מותרים - הפעל פקודה זו על ידי הקלדה",
"Are you sure?": "האם אתה בטוח?",
"Attach file": "צרף קובץ",
"Attention to detail": "תשומת לב לפרטים",
"Audio": "אודיו",
"August": "אוגוסט",
"Auto-playback response": "תגובת השמעה אוטומטית",
"Auto-send input after 3 sec.": "שליחת קלט אוטומטית אחרי 3 שניות",
"AUTOMATIC1111 Base URL": "כתובת URL בסיסית של AUTOMATIC1111",
"AUTOMATIC1111 Base URL is required.": "נדרשת כתובת URL בסיסית של AUTOMATIC1111",
"available!": "זמין!",
"Back": "חזור",
"Bad Response": "תגובה שגויה",
"before": "לפני",
"Being lazy": "להיות עצלן",
"Builder Mode": "מצב בונה",
"Bypass SSL verification for Websites": "עקוף אימות SSL עבור אתרים",
"Cancel": "בטל",
"Categories": "קטגוריות",
"Change Password": "שנה סיסמה",
"Chat": "צ'אט",
"Chat History": "היסטוריית צ'אט",
"Chat History is off for this browser.": "היסטוריית הצ'אט כבויה לדפדפן זה.",
"Chats": "צ'אטים",
"Check Again": "בדוק שוב",
"Check for updates": "בדוק עדכונים",
"Checking for updates...": "בודק עדכונים...",
"Choose a model before saving...": "בחר מודל לפני השמירה...",
"Chunk Overlap": "חפיפת נתונים",
"Chunk Params": "פרמטרי נתונים",
"Chunk Size": "גודל נתונים",
"Citation": "ציטוט",
"Click here for help.": "לחץ כאן לעזרה.",
"Click here to": "לחץ כאן כדי",
"Click here to check other modelfiles.": "לחץ כאן לבדיקת קבצי מודלים אחרים.",
"Click here to select": "לחץ כאן לבחירה",
"Click here to select a csv file.": "לחץ כאן לבחירת קובץ csv.",
"Click here to select documents.": "לחץ כאן לבחירת מסמכים.",
"click here.": "לחץ כאן.",
"Click on the user role button to change a user's role.": "לחץ על כפתור תפקיד המשתמש כדי לשנות את תפקיד המשתמש.",
"Close": "סגור",
"Collection": "אוסף",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "כתובת URL בסיסית של ComfyUI",
"ComfyUI Base URL is required.": "נדרשת כתובת URL בסיסית של ComfyUI",
"Command": "פקודה",
"Confirm Password": "אשר סיסמה",
"Connections": "חיבורים",
"Content": "תוכן",
"Context Length": "אורך הקשר",
"Continue Response": "המשך תגובה",
"Conversation Mode": "מצב שיחה",
"Copied shared chat URL to clipboard!": "העתקת כתובת URL של צ'אט משותף ללוח!",
"Copy": "העתק",
"Copy last code block": "העתק את בלוק הקוד האחרון",
"Copy last response": "העתק את התגובה האחרונה",
"Copy Link": "העתק קישור",
"Copying to clipboard was successful!": "ההעתקה ללוח הייתה מוצלחת!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "צור ביטוי תמציתי של 3-5 מילים ככותרת לשאילתה הבאה, תוך שמירה מדויקת על מגבלת 3-5 המילים והימנעות משימוש במילה 'כותרת':",
"Create a modelfile": "צור קובץ מודל",
"Create Account": "צור חשבון",
"Create new key": "צור מפתח חדש",
"Create new secret key": "צור מפתח סודי חדש",
"Created at": "נוצר ב",
"Created At": "נוצר ב",
"Current Model": "המודל הנוכחי",
"Current Password": "הסיסמה הנוכחית",
"Custom": "מותאם אישית",
"Customize Ollama models for a specific purpose": "התאמה אישית של מודלים של Ollama למטרה מסוימת",
"Dark": "כהה",
"Dashboard": "לוח בקרה",
"Database": "מסד נתונים",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"December": "דצמבר",
"Default": "ברירת מחדל",
"Default (Automatic1111)": "ברירת מחדל (Automatic1111)",
"Default (SentenceTransformers)": "ברירת מחדל (SentenceTransformers)",
"Default (Web API)": "ברירת מחדל (Web API)",
"Default model updated": "המודל המוגדר כברירת מחדל עודכן",
"Default Prompt Suggestions": "הצעות ברירת מחדל לפקודות",
"Default User Role": "תפקיד משתמש ברירת מחדל",
"delete": "מחק",
"Delete": "מחק",
"Delete a model": "מחק מודל",
"Delete chat": "מחק צ'אט",
"Delete Chat": "מחק צ'אט",
"Delete Chats": "מחק צ'אטים",
"delete this link": "מחק את הקישור הזה",
"Delete User": "מחק משתמש",
"Deleted {{deleteModelTag}}": "נמחק {{deleteModelTag}}",
"Deleted {{tagName}}": "נמחק {{tagName}}",
"Description": "תיאור",
"Didn't fully follow instructions": "לא עקב אחרי ההוראות באופן מלא",
"Disabled": "מושבת",
"Discover a modelfile": "גלה קובץ מודל",
"Discover a prompt": "גלה פקודה",
"Discover, download, and explore custom prompts": "גלה, הורד, וחקור פקודות מותאמות אישית",
"Discover, download, and explore model presets": "גלה, הורד, וחקור הגדרות מודל מוגדרות מראש",
"Display the username instead of You in the Chat": "הצג את שם המשתמש במקום 'אתה' בצ'אט",
"Document": "מסמך",
"Document Settings": "הגדרות מסמך",
"Documents": "מסמכים",
"does not make any external connections, and your data stays securely on your locally hosted server.": "לא מבצע חיבורים חיצוניים, והנתונים שלך נשמרים באופן מאובטח בשרת המקומי שלך.",
"Don't Allow": "אל תאפשר",
"Don't have an account?": "אין לך חשבון?",
"Don't like the style": "לא אוהב את הסגנון",
"Download": "הורד",
"Download canceled": "ההורדה בוטלה",
"Download Database": "הורד מסד נתונים",
"Drop any files here to add to the conversation": "גרור כל קובץ לכאן כדי להוסיף לשיחה",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "למשל '30s', '10m'. יחידות זמן חוקיות הן 's', 'm', 'h'.",
"Edit": "ערוך",
"Edit Doc": "ערוך מסמך",
"Edit User": "ערוך משתמש",
"Email": "דוא\"ל",
"Embedding Model": "מודל הטמעה",
"Embedding Model Engine": "מנוע מודל הטמעה",
"Embedding model set to \"{{embedding_model}}\"": "מודל ההטמעה הוגדר ל-\"{{embedding_model}}\"",
"Enable Chat History": "הפעל היסטוריית צ'אט",
"Enable New Sign Ups": "אפשר הרשמות חדשות",
"Enabled": "מופעל",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ודא שקובץ ה-CSV שלך כולל 4 עמודות בסדר הבא: שם, דוא\"ל, סיסמה, תפקיד.",
"Enter {{role}} message here": "הזן הודעת {{role}} כאן",
"Enter Chunk Overlap": "הזן חפיפת נתונים",
"Enter Chunk Size": "הזן גודל נתונים",
"Enter Image Size (e.g. 512x512)": "הזן גודל תמונה (למשל 512x512)",
"Enter language codes": "הזן קודי שפה",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "הזן כתובת URL בסיסית ל-API של LiteLLM (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "הזן מפתח API של LiteLLM (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "הזן RPM של API של LiteLLM (litellm_params.rpm)",
"Enter LiteLLM Model (litellm_params.model)": "הזן מודל LiteLLM (litellm_params.model)",
"Enter Max Tokens (litellm_params.max_tokens)": "הזן מספר מקסימלי של טוקנים (litellm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "הזן תג מודל (למשל {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "הזן מספר שלבים (למשל 50)",
"Enter Score": "הזן ציון",
"Enter stop sequence": "הזן רצף עצירה",
"Enter Top K": "הזן Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "הזן כתובת URL (למשל http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "הזן כתובת URL (למשל http://localhost:11434)",
"Enter Your Email": "הזן את דוא\"ל שלך",
"Enter Your Full Name": "הזן את שמך המלא",
"Enter Your Password": "הזן את הסיסמה שלך",
"Enter Your Role": "הזן את התפקיד שלך",
"Experimental": "ניסיוני",
"Export All Chats (All Users)": "ייצוא כל הצ'אטים (כל המשתמשים)",
"Export Chats": "ייצוא צ'אטים",
"Export Documents Mapping": "ייצוא מיפוי מסמכים",
"Export Modelfiles": "ייצוא קבצי מודלים",
"Export Prompts": "ייצוא פקודות",
"Failed to create API Key.": "יצירת מפתח API נכשלה.",
"Failed to read clipboard contents": "קריאת תוכן הלוח נכשלה",
"February": "פברואר",
"Feel free to add specific details": "נא להוסיף פרטים ספציפיים לפי רצון",
"File Mode": "מצב קובץ",
"File not found.": "הקובץ לא נמצא.",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "התגלתה הזיית טביעת אצבע: לא ניתן להשתמש בראשי תיבות כאווטאר. משתמש בתמונת פרופיל ברירת מחדל.",
"Fluidly stream large external response chunks": "שידור נתונים חיצוניים בקצב רציף",
"Focus chat input": "מיקוד הקלט לצ'אט",
"Followed instructions perfectly": "עקב אחר ההוראות במושלמות",
"Format your variables using square brackets like this:": "עצב את המשתנים שלך באמצעות סוגריים מרובעים כך:",
"From (Base Model)": "מ (מודל בסיס)",
"Full Screen Mode": "מצב מסך מלא",
"General": "כללי",
"General Settings": "הגדרות כלליות",
"Generation Info": "מידע על היצירה",
"Good Response": "תגובה טובה",
"has no conversations.": "אין שיחות.",
"Hello, {{name}}": "שלום, {{name}}",
"Help": "עזרה",
"Hide": "הסתר",
"Hide Additional Params": "הסתר פרמטרים נוספים",
"How can I help you today?": "כיצד אוכל לעזור לך היום?",
"Hybrid Search": "חיפוש היברידי",
"Image Generation (Experimental)": "יצירת תמונות (ניסיוני)",
"Image Generation Engine": "מנוע יצירת תמונות",
"Image Settings": "הגדרות תמונה",
"Images": "תמונות",
"Import Chats": "יבוא צ'אטים",
"Import Documents Mapping": "יבוא מיפוי מסמכים",
"Import Modelfiles": "יבוא קבצי מודלים",
"Import Prompts": "יבוא פקודות",
"Include `--api` flag when running stable-diffusion-webui": "כלול את הדגל `--api` בעת הרצת stable-diffusion-webui",
"Input commands": "פקודות קלט",
"Interface": "ממשק",
"Invalid Tag": "תג לא חוקי",
"January": "ינואר",
"join our Discord for help.": "הצטרף ל-Discord שלנו לעזרה.",
"JSON": "JSON",
"July": "יולי",
"June": "יוני",
"JWT Expiration": "תפוגת JWT",
"JWT Token": "אסימון JWT",
"Keep Alive": "השאר פעיל",
"Keyboard shortcuts": "קיצורי מקלדת",
"Language": "שפה",
"Last Active": "פעיל לאחרונה",
"Light": "בהיר",
"Listening...": "מאזין...",
"LLMs can make mistakes. Verify important information.": "מודלים בשפה טבעית יכולים לטעות. אמת מידע חשוב.",
"Made by OpenWebUI Community": "נוצר על ידי קהילת OpenWebUI",
"Make sure to enclose them with": "ודא להקיף אותם עם",
"Manage LiteLLM Models": "נהל מודלים של LiteLLM",
"Manage Models": "נהל מודלים",
"Manage Ollama Models": "נהל מודלים של Ollama",
"March": "מרץ",
"Max Tokens": "מקסימום טוקנים",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "ניתן להוריד מקסימום 3 מודלים בו זמנית. אנא נסה שוב מאוחר יותר.",
"May": "מאי",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "הודעות שתשלח לאחר יצירת הקישור שלך לא ישותפו. משתמשים עם הכתובת URL יוכלו לצפות בצ'אט המשותף.",
"Minimum Score": "ציון מינימלי",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD בMMMM, YYYY",
"MMMM DD, YYYY HH:mm": "DD בMMMM, YYYY HH:mm",
"Model '{{modelName}}' has been successfully downloaded.": "המודל '{{modelName}}' הורד בהצלחה.",
"Model '{{modelTag}}' is already in queue for downloading.": "המודל '{{modelTag}}' כבר בתור להורדה.",
"Model {{modelId}} not found": "המודל {{modelId}} לא נמצא",
"Model {{modelName}} already exists.": "המודל {{modelName}} כבר קיים.",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "נתיב מערכת הקבצים של המודל זוהה. נדרש שם קצר של המודל לעדכון, לא ניתן להמשיך.",
"Model Name": "שם המודל",
"Model not selected": "לא נבחר מודל",
"Model Tag Name": "שם תג המודל",
"Model Whitelisting": "רישום לבן של מודלים",
"Model(s) Whitelisted": "מודלים שנכללו ברשימה הלבנה",
"Modelfile": "קובץ מודל",
"Modelfile Advanced Settings": "הגדרות מתקדמות לקובץ מודל",
"Modelfile Content": "תוכן קובץ מודל",
"Modelfiles": "קבצי מודל",
"Models": "מודלים",
"More": "עוד",
"My Documents": "המסמכים שלי",
"My Modelfiles": "קבצי המודל שלי",
"My Prompts": "הפקודות שלי",
"Name": "שם",
"Name Tag": "תג שם",
"Name your modelfile": "תן שם לקובץ המודל שלך",
"New Chat": "צ'אט חדש",
"New Password": "סיסמה חדשה",
"No results found": "לא נמצאו תוצאות",
"No source available": "אין מקור זמין",
"Not factually correct": "לא נכון מבחינה עובדתית",
"Not sure what to add?": "לא בטוח מה להוסיף?",
"Not sure what to write? Switch to": "לא בטוח מה לכתוב? החלף ל",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "הערה: אם תקבע ציון מינימלי, החיפוש יחזיר רק מסמכים עם ציון שגבוה או שווה לציון המינימלי.",
"Notifications": "התראות",
"November": "נובמבר",
"October": "אוקטובר",
"Off": "כבוי",
"Okay, Let's Go!": "בסדר, בואו נתחיל!",
"OLED Dark": "OLED כהה",
"Ollama": "Ollama",
"Ollama Base URL": "כתובת URL בסיסית של Ollama",
"Ollama Version": "גרסת Ollama",
"On": "פועל",
"Only": "רק",
"Only alphanumeric characters and hyphens are allowed in the command string.": "רק תווים אלפאנומריים ומקפים מותרים במחרוזת הפקודה.",
"Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "אופס! תחזיק מעמד! הקבצים שלך עדיין בתהליך העיבוד. אנו מבשלים אותם לשלמות. נא להתאזר בסבלנות ונודיע לך ברגע שיהיו מוכנים.",
"Oops! Looks like the URL is invalid. Please double-check and try again.": "אופס! נראה שהכתובת URL אינה תקינה. אנא בדוק שוב ונסה שנית.",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "אופס! אתה משתמש בשיטה לא נתמכת (רק חזית). אנא שרת את ממשק המשתמש האינטרנטי מהשרת האחורי.",
"Open": "פתח",
"Open AI": "Open AI",
"Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "פתח צ'אט חדש",
"OpenAI": "OpenAI",
"OpenAI API": "API של OpenAI",
"OpenAI API Config": "תצורת API של OpenAI",
"OpenAI API Key is required.": "נדרש מפתח API של OpenAI.",
"OpenAI URL/Key required.": "נדרשת כתובת URL/מפתח של OpenAI.",
"or": "או",
"Other": "אחר",
"Overview": "סקירה כללית",
"Parameters": "פרמטרים",
"Password": "סיסמה",
"PDF document (.pdf)": "מסמך PDF (.pdf)",
"PDF Extract Images (OCR)": "חילוץ תמונות מ-PDF (OCR)",
"pending": "ממתין",
"Permission denied when accessing microphone: {{error}}": "ההרשאה נדחתה בעת גישה למיקרופון: {{error}}",
"Plain text (.txt)": "טקסט פשוט (.txt)",
"Playground": "אזור משחקים",
"Positive attitude": "גישה חיובית",
"Previous 30 days": "30 הימים הקודמים",
"Previous 7 days": "7 הימים הקודמים",
"Profile Image": "תמונת פרופיל",
"Prompt": "פקודה",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "פקודה (למשל, ספר לי עובדה מעניינת על האימפריה הרומית)",
"Prompt Content": "תוכן הפקודה",
"Prompt suggestions": "הצעות לפקודות",
"Prompts": "פקודות",
"Pull \"{{searchValue}}\" from Ollama.com": "משוך \"{{searchValue}}\" מ-Ollama.com",
"Pull a model from Ollama.com": "משוך מודל מ-Ollama.com",
"Pull Progress": "משוך התקדמות",
"Query Params": "פרמטרי שאילתה",
"RAG Template": "תבנית RAG",
"Raw Format": "פורמט גולמי",
"Read Aloud": "קרא בקול",
"Record voice": "הקלט קול",
"Redirecting you to OpenWebUI Community": "מפנה אותך לקהילת OpenWebUI",
"Refused when it shouldn't have": "נדחה כאשר לא היה צריך",
"Regenerate": "הפק מחדש",
"Release Notes": "הערות שחרור",
"Remove": "הסר",
"Remove Model": "הסר מודל",
"Rename": "שנה שם",
"Repeat Last N": "חזור על ה-N האחרונים",
"Repeat Penalty": "עונש חזרה",
"Request Mode": "מצב בקשה",
"Reranking Model": "מודל דירוג מחדש",
"Reranking model disabled": "מודל דירוג מחדש מושבת",
"Reranking model set to \"{{reranking_model}}\"": "מודל דירוג מחדש הוגדר ל-\"{{reranking_model}}\"",
"Reset Vector Storage": "איפוס אחסון וקטורים",
"Response AutoCopy to Clipboard": "העתקה אוטומטית של תגובה ללוח",
"Role": "תפקיד",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
"Save": "שמור",
"Save & Create": "שמור וצור",
"Save & Submit": "שמור ושלח",
"Save & Update": "שמור ועדכן",
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "שמירת יומני צ'אט ישירות באחסון הדפדפן שלך אינה נתמכת יותר. אנא הקדש רגע להוריד ולמחוק את יומני הצ'אט שלך על ידי לחיצה על הכפתור למטה. אל דאגה, באפשרותך לייבא מחדש בקלות את יומני הצ'אט שלך לשרת האחורי דרך",
"Scan": "סרוק",
"Scan complete!": "הסריקה הושלמה!",
"Scan for documents from {{path}}": "סרוק מסמכים מ-{{path}}",
"Search": "חפש",
"Search a model": "חפש מודל",
"Search Documents": "חפש מסמכים",
"Search Prompts": "חפש פקודות",
"See readme.md for instructions": "ראה את readme.md להוראות",
"See what's new": "ראה מה חדש",
"Seed": "זרע",
"Select a mode": "בחר מצב",
"Select a model": "בחר מודל",
"Select an Ollama instance": "בחר מופע של Ollama",
"Select model": "בחר מודל",
"Send a Message": "שלח הודעה",
"Send message": "שלח הודעה",
"September": "ספטמבר",
"Server connection verified": "החיבור לשרת אומת",
"Set as default": "הגדר כברירת מחדל",
"Set Default Model": "הגדר מודל ברירת מחדל",
"Set embedding model (e.g. {{model}})": "הגדר מודל הטמעה (למשל {{model}})",
"Set Image Size": "הגדר גודל תמונה",
"Set Model": "הגדר מודל",
"Set reranking model (e.g. {{model}})": "הגדר מודל דירוג מחדש (למשל {{model}})",
"Set Steps": "הגדר שלבים",
"Set Title Auto-Generation Model": "הגדר מודל יצירת כותרת אוטומטית",
"Set Voice": "הגדר קול",
"Settings": "הגדרות",
"Settings saved successfully!": "ההגדרות נשמרו בהצלחה!",
"Share": "שתף",
"Share Chat": "שתף צ'אט",
"Share to OpenWebUI Community": "שתף לקהילת OpenWebUI",
"short-summary": "סיכום קצר",
"Show": "הצג",
"Show Additional Params": "הצג פרמטרים נוספים",
"Show shortcuts": "הצג קיצורי דרך",
"Showcased creativity": "הצגת יצירתיות",
"sidebar": "סרגל צד",
"Sign in": "",
"Sign Out": "",
"Sign up": "",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "",
"Speech-to-Text Engine": "",
"SpeechRecognition API is not supported in this browser.": "",
"Stop Sequence": "",
"STT Settings": "",
"Submit": "שלח",
"Subtitle (e.g. about the Roman Empire)": "",
"Success": "הצלחה",
"Successfully updated.": "",
"Suggested": "",
"Sync All": "",
"System": "מערכת",
"System Prompt": "",
"Tags": "",
"Tell us more:": "",
"Temperature": "",
"Template": "תבנית",
"Text Completion": "",
"Text-to-Speech Engine": "מנוע טקסט לדיבור",
"Tfs Z": "",
"Thanks for your feedback!": "תודה על המשוב שלך!",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"Theme": "נושא",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "",
"This setting does not sync across browsers or devices.": "",
"Thorough explanation": "",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "",
"Title": "",
"Title (e.g. Tell me a fun fact)": "",
"Title Auto-Generation": "",
"Title cannot be an empty string.": "",
"Title Generation Prompt": "",
"to": "",
"To access the available model names for downloading,": "",
"To access the GGUF models available for downloading,": "",
"to chat input.": "",
"Today": "",
"Toggle settings": "",
"Toggle sidebar": "",
"Top K": "",
"Top P": "",
"Trouble accessing Ollama?": "",
"TTS Settings": "",
"Type Hugging Face Resolve (Download) URL": "",
"Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update and Copy Link": "",
"Update password": "",
"Upload a GGUF model": "",
"Upload files": "",
"Upload Progress": "",
"URL Mode": "",
"Use '#' in the prompt input to load and select your documents.": "",
"Use Gravatar": "",
"Use Initials": "",
"user": "",
"User Permissions": "",
"Users": "משתמשים",
"Utilize": "",
"Valid time units:": "",
"variable": "",
"variable to have them replaced with clipboard content.": "",
"Version": "גרסה",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "רשת",
"Web Loader Settings": "",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "",
"WebUI Settings": "",
"WebUI will make requests to": "",
"What’s New in": "",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "",
"Whisper (Local)": "",
"Write a prompt suggestion (e.g. Who are you?)": "",
"Write a summary in 50 words that summarizes [topic or keyword].": "",
"Yesterday": "אתמול",
"You": "אתה",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "",
"You're now logged in.": "",
"Youtube": "",
"Youtube Loader Settings": ""
}
......@@ -76,7 +76,7 @@
"Chunk Overlap": "चंक ओवरलैप",
"Chunk Params": "चंक पैरामीटर्स",
"Chunk Size": "चंक आकार",
"Citation": "",
"Citation": "उद्धरण",
"Click here for help.": "सहायता के लिए यहां क्लिक करें।",
"Click here to": "",
"Click here to check other modelfiles.": "अन्य मॉडल फ़ाइलों की जांच के लिए यहां क्लिक करें।",
......@@ -285,7 +285,7 @@
"New Chat": "नई चैट",
"New Password": "नया पासवर्ड",
"No results found": "",
"No source available": "",
"No source available": "कोई स्रोत उपलब्ध नहीं है",
"Not factually correct": "तथ्यात्मक रूप से सही नहीं है",
"Not sure what to add?": "निश्चित नहीं कि क्या जोड़ें?",
"Not sure what to write? Switch to": "मैं आश्वस्त नहीं हूं कि क्या लिखना है? स्विच करें",
......@@ -407,7 +407,7 @@
"Sign Out": "साइन आउट",
"Sign up": "साइन अप",
"Signing in": "साइन इन हो रहा है",
"Source": "",
"Source": "स्रोत",
"Speech recognition error: {{error}}": "वाक् पहचान त्रुटि: {{error}}",
"Speech-to-Text Engine": "वाक्-से-पाठ इंजन",
"SpeechRecognition API is not supported in this browser.": "इस ब्राउज़र में SpeechRecognition API समर्थित नहीं है",
......
......@@ -76,7 +76,7 @@
"Chunk Overlap": "Sovrapposizione chunk",
"Chunk Params": "Parametri chunk",
"Chunk Size": "Dimensione chunk",
"Citation": "",
"Citation": "Citazione",
"Click here for help.": "Clicca qui per aiuto.",
"Click here to": "",
"Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.",
......@@ -285,7 +285,7 @@
"New Chat": "Nuova chat",
"New Password": "Nuova password",
"No results found": "",
"No source available": "",
"No source available": "Nessuna fonte disponibile",
"Not factually correct": "",
"Not sure what to add?": "Non sei sicuro di cosa aggiungere?",
"Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a",
......@@ -407,7 +407,7 @@
"Sign Out": "Esci",
"Sign up": "Registrati",
"Signing in": "",
"Source": "",
"Source": "Fonte",
"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
"Speech-to-Text Engine": "Motore da voce a testo",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.",
......
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