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

Merge branch 'dev' into feat/openai-embeddings-batch

parents 0cb81633 36a66fcf
......@@ -3,6 +3,7 @@
import { user, settings } from '$lib/stores';
import { createEventDispatcher, onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner';
import Switch from '$lib/components/common/Switch.svelte';
const dispatch = createEventDispatcher();
const i18n = getContext('i18n');
......@@ -13,6 +14,7 @@
let OpenAIUrl = '';
let OpenAIKey = '';
let OpenAISpeaker = '';
let STTEngines = ['', 'openai'];
let STTEngine = '';
......@@ -20,6 +22,7 @@
let conversationMode = false;
let speechAutoSend = false;
let responseAutoPlayback = false;
let nonLocalVoices = false;
let TTSEngines = ['', 'openai'];
let TTSEngine = '';
......@@ -86,14 +89,14 @@
url: OpenAIUrl,
key: OpenAIKey,
model: model,
speaker: speaker
speaker: OpenAISpeaker
});
if (res) {
OpenAIUrl = res.OPENAI_API_BASE_URL;
OpenAIKey = res.OPENAI_API_KEY;
model = res.OPENAI_API_MODEL;
speaker = res.OPENAI_API_VOICE;
OpenAISpeaker = res.OPENAI_API_VOICE;
}
}
};
......@@ -105,6 +108,7 @@
STTEngine = $settings?.audio?.STTEngine ?? '';
TTSEngine = $settings?.audio?.TTSEngine ?? '';
nonLocalVoices = $settings.audio?.nonLocalVoices ?? false;
speaker = $settings?.audio?.speaker ?? '';
model = $settings?.audio?.model ?? '';
......@@ -122,7 +126,10 @@
OpenAIUrl = res.OPENAI_API_BASE_URL;
OpenAIKey = res.OPENAI_API_KEY;
model = res.OPENAI_API_MODEL;
speaker = res.OPENAI_API_VOICE;
OpenAISpeaker = res.OPENAI_API_VOICE;
if (TTSEngine === 'openai') {
speaker = OpenAISpeaker;
}
}
}
});
......@@ -138,8 +145,14 @@
audio: {
STTEngine: STTEngine !== '' ? STTEngine : undefined,
TTSEngine: TTSEngine !== '' ? TTSEngine : undefined,
speaker: speaker !== '' ? speaker : undefined,
model: model !== '' ? model : undefined
speaker:
(TTSEngine === 'openai' ? OpenAISpeaker : speaker) !== ''
? TTSEngine === 'openai'
? OpenAISpeaker
: speaker
: undefined,
model: model !== '' ? model : undefined,
nonLocalVoices: nonLocalVoices
}
});
dispatch('save');
......@@ -227,7 +240,7 @@
on:change={(e) => {
if (e.target.value === 'openai') {
getOpenAIVoices();
speaker = 'alloy';
OpenAISpeaker = 'alloy';
model = 'tts-1';
} else {
getWebAPIVoices();
......@@ -290,16 +303,27 @@
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={speaker}
placeholder="Select a voice"
>
<option value="" selected>{$i18n.t('Default')}</option>
{#each voices.filter((v) => v.localService === true) as voice}
<option value={voice.name} class="bg-gray-100 dark:bg-gray-700">{voice.name}</option
<option value="" selected={speaker !== ''}>{$i18n.t('Default')}</option>
{#each voices.filter((v) => nonLocalVoices || v.localService === true) as voice}
<option
value={voice.name}
class="bg-gray-100 dark:bg-gray-700"
selected={speaker === voice.name}>{voice.name}</option
>
{/each}
</select>
</div>
</div>
<div class="flex items-center justify-between mb-1">
<div class="text-sm">
{$i18n.t('Allow non-local voices')}
</div>
<div class="mt-1">
<Switch bind:state={nonLocalVoices} />
</div>
</div>
</div>
{:else if TTSEngine === 'openai'}
<div>
......@@ -309,7 +333,7 @@
<input
list="voice-list"
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={speaker}
bind:value={OpenAISpeaker}
placeholder="Select a voice"
/>
......
<script lang="ts">
import { models, user } from '$lib/stores';
import { createEventDispatcher, onMount, getContext } from 'svelte';
import { createEventDispatcher, onMount, getContext, tick } from 'svelte';
const dispatch = createEventDispatcher();
import {
......@@ -74,23 +74,48 @@
};
const updateOpenAIHandler = async () => {
// Check if API KEYS length is same than API URLS length
if (OPENAI_API_KEYS.length !== OPENAI_API_BASE_URLS.length) {
// if there are more keys than urls, remove the extra keys
if (OPENAI_API_KEYS.length > OPENAI_API_BASE_URLS.length) {
OPENAI_API_KEYS = OPENAI_API_KEYS.slice(0, OPENAI_API_BASE_URLS.length);
}
// if there are more urls than keys, add empty keys
if (OPENAI_API_KEYS.length < OPENAI_API_BASE_URLS.length) {
const diff = OPENAI_API_BASE_URLS.length - OPENAI_API_KEYS.length;
for (let i = 0; i < diff; i++) {
OPENAI_API_KEYS.push('');
}
}
}
OPENAI_API_BASE_URLS = await updateOpenAIUrls(localStorage.token, OPENAI_API_BASE_URLS);
OPENAI_API_KEYS = await updateOpenAIKeys(localStorage.token, OPENAI_API_KEYS);
await models.set(await getModels());
};
const updateOllamaUrlsHandler = async () => {
OLLAMA_BASE_URLS = await updateOllamaUrls(localStorage.token, OLLAMA_BASE_URLS);
OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url) => url !== '');
console.log(OLLAMA_BASE_URLS);
const ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => {
toast.error(error);
return null;
});
if (OLLAMA_BASE_URLS.length === 0) {
ENABLE_OLLAMA_API = false;
await updateOllamaConfig(localStorage.token, ENABLE_OLLAMA_API);
if (ollamaVersion) {
toast.success($i18n.t('Server connection verified'));
await models.set(await getModels());
toast.info($i18n.t('Ollama API disabled'));
} else {
OLLAMA_BASE_URLS = await updateOllamaUrls(localStorage.token, OLLAMA_BASE_URLS);
const ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => {
toast.error(error);
return null;
});
if (ollamaVersion) {
toast.success($i18n.t('Server connection verified'));
await models.set(await getModels());
}
}
};
......@@ -286,6 +311,10 @@
bind:state={ENABLE_OLLAMA_API}
on:change={async () => {
updateOllamaConfig(localStorage.token, ENABLE_OLLAMA_API);
if (OLLAMA_BASE_URLS.length === 0) {
OLLAMA_BASE_URLS = [''];
}
}}
/>
</div>
......
......@@ -8,8 +8,8 @@
getOllamaUrls,
getOllamaVersion,
pullModel,
cancelOllamaRequest,
uploadModel
uploadModel,
getOllamaConfig
} from '$lib/apis/ollama';
import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants';
......@@ -28,6 +28,8 @@
// Models
let ollamaEnabled = null;
let OLLAMA_URLS = [];
let selectedOllamaUrlIdx: string | null = null;
......@@ -67,12 +69,14 @@
console.log(model);
updateModelId = model.id;
const res = await pullModel(localStorage.token, model.id, selectedOllamaUrlIdx).catch(
(error) => {
toast.error(error);
return null;
}
);
const [res, controller] = await pullModel(
localStorage.token,
model.id,
selectedOllamaUrlIdx
).catch((error) => {
toast.error(error);
return null;
});
if (res) {
const reader = res.body
......@@ -141,10 +145,12 @@
return;
}
const res = await pullModel(localStorage.token, sanitizedModelTag, '0').catch((error) => {
toast.error(error);
return null;
});
const [res, controller] = await pullModel(localStorage.token, sanitizedModelTag, '0').catch(
(error) => {
toast.error(error);
return null;
}
);
if (res) {
const reader = res.body
......@@ -152,6 +158,16 @@
.pipeThrough(splitStream('\n'))
.getReader();
MODEL_DOWNLOAD_POOL.set({
...$MODEL_DOWNLOAD_POOL,
[sanitizedModelTag]: {
...$MODEL_DOWNLOAD_POOL[sanitizedModelTag],
abortController: controller,
reader,
done: false
}
});
while (true) {
try {
const { value, done } = await reader.read();
......@@ -170,19 +186,6 @@
throw data.detail;
}
if (data.id) {
MODEL_DOWNLOAD_POOL.set({
...$MODEL_DOWNLOAD_POOL,
[sanitizedModelTag]: {
...$MODEL_DOWNLOAD_POOL[sanitizedModelTag],
requestId: data.id,
reader,
done: false
}
});
console.log(data);
}
if (data.status) {
if (data.digest) {
let downloadProgress = 0;
......@@ -416,11 +419,12 @@
};
const cancelModelPullHandler = async (model: string) => {
const { reader, requestId } = $MODEL_DOWNLOAD_POOL[model];
const { reader, abortController } = $MODEL_DOWNLOAD_POOL[model];
if (abortController) {
abortController.abort();
}
if (reader) {
await reader.cancel();
await cancelOllamaRequest(localStorage.token, requestId);
delete $MODEL_DOWNLOAD_POOL[model];
MODEL_DOWNLOAD_POOL.set({
...$MODEL_DOWNLOAD_POOL
......@@ -431,53 +435,138 @@
};
onMount(async () => {
await Promise.all([
(async () => {
OLLAMA_URLS = await getOllamaUrls(localStorage.token).catch((error) => {
toast.error(error);
return [];
});
const ollamaConfig = await getOllamaConfig(localStorage.token);
if (OLLAMA_URLS.length > 0) {
selectedOllamaUrlIdx = 0;
}
})(),
(async () => {
ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => false);
})()
]);
if (ollamaConfig.ENABLE_OLLAMA_API) {
ollamaEnabled = true;
await Promise.all([
(async () => {
OLLAMA_URLS = await getOllamaUrls(localStorage.token).catch((error) => {
toast.error(error);
return [];
});
if (OLLAMA_URLS.length > 0) {
selectedOllamaUrlIdx = 0;
}
})(),
(async () => {
ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => false);
})()
]);
} else {
ollamaEnabled = false;
toast.error('Ollama API is disabled');
}
});
</script>
<div class="flex flex-col h-full justify-between text-sm">
<div class=" space-y-3 pr-1.5 overflow-y-scroll h-[24rem]">
{#if ollamaVersion !== null}
<div class="space-y-2 pr-1.5">
<div class="text-sm font-medium">{$i18n.t('Manage Ollama Models')}</div>
{#if OLLAMA_URLS.length > 0}
<div class="flex gap-2">
<div class="flex-1 pb-1">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={selectedOllamaUrlIdx}
placeholder={$i18n.t('Select an Ollama instance')}
>
{#each OLLAMA_URLS as url, idx}
<option value={idx} class="bg-gray-100 dark:bg-gray-700">{url}</option>
{/each}
</select>
{#if ollamaEnabled}
{#if ollamaVersion !== null}
<div class="space-y-2 pr-1.5">
<div class="text-sm font-medium">{$i18n.t('Manage Ollama Models')}</div>
{#if OLLAMA_URLS.length > 0}
<div class="flex gap-2">
<div class="flex-1 pb-1">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={selectedOllamaUrlIdx}
placeholder={$i18n.t('Select an Ollama instance')}
>
{#each OLLAMA_URLS as url, idx}
<option value={idx} class="bg-gray-100 dark:bg-gray-700">{url}</option>
{/each}
</select>
</div>
<div>
<div class="flex w-full justify-end">
<Tooltip content="Update All Models" placement="top">
<button
class="p-2.5 flex gap-2 items-center bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
updateModelsHandler();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M7 1a.75.75 0 0 1 .75.75V6h-1.5V1.75A.75.75 0 0 1 7 1ZM6.25 6v2.94L5.03 7.72a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l2.5-2.5a.75.75 0 1 0-1.06-1.06L7.75 8.94V6H10a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.25Z"
/>
<path
d="M4.268 14A2 2 0 0 0 6 15h6a2 2 0 0 0 2-2v-3a2 2 0 0 0-1-1.732V11a3 3 0 0 1-3 3H4.268Z"
/>
</svg>
</button>
</Tooltip>
</div>
</div>
</div>
{#if updateModelId}
Updating "{updateModelId}" {updateProgress ? `(${updateProgress}%)` : ''}
{/if}
{/if}
<div class="space-y-2">
<div>
<div class="flex w-full justify-end">
<Tooltip content="Update All Models" placement="top">
<button
class="p-2.5 flex gap-2 items-center bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
updateModelsHandler();
}}
>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Pull a model from Ollama.com')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Enter model tag (e.g. {{modelTag}})', {
modelTag: 'mistral:7b'
})}
bind:value={modelTag}
/>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
pullModelHandler();
}}
disabled={modelTransferring}
>
{#if modelTransferring}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style>
<path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/>
<path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/>
</svg>
</div>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
......@@ -485,74 +574,111 @@
class="w-4 h-4"
>
<path
d="M7 1a.75.75 0 0 1 .75.75V6h-1.5V1.75A.75.75 0 0 1 7 1ZM6.25 6v2.94L5.03 7.72a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l2.5-2.5a.75.75 0 1 0-1.06-1.06L7.75 8.94V6H10a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.25Z"
d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
/>
<path
d="M4.268 14A2 2 0 0 0 6 15h6a2 2 0 0 0 2-2v-3a2 2 0 0 0-1-1.732V11a3 3 0 0 1-3 3H4.268Z"
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
/>
</svg>
</button>
</Tooltip>
{/if}
</button>
</div>
</div>
</div>
{#if updateModelId}
Updating "{updateModelId}" {updateProgress ? `(${updateProgress}%)` : ''}
{/if}
{/if}
<div class="space-y-2">
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Pull a model from Ollama.com')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Enter model tag (e.g. {{modelTag}})', {
modelTag: 'mistral:7b'
})}
bind:value={modelTag}
/>
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the available model names for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
href="https://ollama.com/library"
target="_blank">{$i18n.t('click here.')}</a
>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
pullModelHandler();
}}
disabled={modelTransferring}
>
{#if modelTransferring}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style>
<path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/>
<path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/>
</svg>
</div>
{:else}
{#if Object.keys($MODEL_DOWNLOAD_POOL).length > 0}
{#each Object.keys($MODEL_DOWNLOAD_POOL) as model}
{#if 'pullProgress' in $MODEL_DOWNLOAD_POOL[model]}
<div class="flex flex-col">
<div class="font-medium mb-1">{model}</div>
<div class="">
<div class="flex flex-row justify-between space-x-4 pr-2">
<div class=" flex-1">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(
15,
$MODEL_DOWNLOAD_POOL[model].pullProgress ?? 0
)}%"
>
{$MODEL_DOWNLOAD_POOL[model].pullProgress ?? 0}%
</div>
</div>
<Tooltip content={$i18n.t('Cancel')}>
<button
class="text-gray-800 dark:text-gray-100"
on:click={() => {
cancelModelPullHandler(model);
}}
>
<svg
class="w-4 h-4 text-gray-800 dark:text-white"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
fill="currentColor"
viewBox="0 0 24 24"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M6 18 17.94 6M18 18 6.06 6"
/>
</svg>
</button>
</Tooltip>
</div>
{#if 'digest' in $MODEL_DOWNLOAD_POOL[model]}
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{$MODEL_DOWNLOAD_POOL[model].digest}
</div>
{/if}
</div>
</div>
{/if}
{/each}
{/if}
</div>
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Delete a model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={deleteModelTag}
placeholder={$i18n.t('Select a model')}
>
{#if !deleteModelTag}
<option value="" disabled selected>{$i18n.t('Select a model')}</option>
{/if}
{#each $models.filter((m) => !(m?.preset ?? false) && m.owned_by === 'ollama' && (selectedOllamaUrlIdx === null ? true : (m?.ollama?.urls ?? []).includes(selectedOllamaUrlIdx))) as model}
<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
>{model.name +
' (' +
(model.ollama.size / 1024 ** 3).toFixed(1) +
' GB)'}</option
>
{/each}
</select>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
deleteModelHandler();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
......@@ -560,330 +686,229 @@
class="w-4 h-4"
>
<path
d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
/>
<path
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
fill-rule="evenodd"
d="M5 3.25V4H2.75a.75.75 0 0 0 0 1.5h.3l.815 8.15A1.5 1.5 0 0 0 5.357 15h5.285a1.5 1.5 0 0 0 1.493-1.35l.815-8.15h.3a.75.75 0 0 0 0-1.5H11v-.75A2.25 2.25 0 0 0 8.75 1h-1.5A2.25 2.25 0 0 0 5 3.25Zm2.25-.75a.75.75 0 0 0-.75.75V4h3v-.75a.75.75 0 0 0-.75-.75h-1.5ZM6.05 6a.75.75 0 0 1 .787.713l.275 5.5a.75.75 0 0 1-1.498.075l-.275-5.5A.75.75 0 0 1 6.05 6Zm3.9 0a.75.75 0 0 1 .712.787l-.275 5.5a.75.75 0 0 1-1.498-.075l.275-5.5a.75.75 0 0 1 .786-.711Z"
clip-rule="evenodd"
/>
</svg>
{/if}
</button>
</div>
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the available model names for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
href="https://ollama.com/library"
target="_blank">{$i18n.t('click here.')}</a
>
</button>
</div>
</div>
{#if Object.keys($MODEL_DOWNLOAD_POOL).length > 0}
{#each Object.keys($MODEL_DOWNLOAD_POOL) as model}
{#if 'pullProgress' in $MODEL_DOWNLOAD_POOL[model]}
<div class="flex flex-col">
<div class="font-medium mb-1">{model}</div>
<div class="">
<div class="flex flex-row justify-between space-x-4 pr-2">
<div class=" flex-1">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(
15,
$MODEL_DOWNLOAD_POOL[model].pullProgress ?? 0
)}%"
>
{$MODEL_DOWNLOAD_POOL[model].pullProgress ?? 0}%
</div>
</div>
<Tooltip content={$i18n.t('Cancel')}>
<button
class="text-gray-800 dark:text-gray-100"
on:click={() => {
cancelModelPullHandler(model);
}}
>
<svg
class="w-4 h-4 text-gray-800 dark:text-white"
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
fill="currentColor"
viewBox="0 0 24 24"
>
<path
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M6 18 17.94 6M18 18 6.06 6"
/>
</svg>
</button>
</Tooltip>
</div>
{#if 'digest' in $MODEL_DOWNLOAD_POOL[model]}
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{$MODEL_DOWNLOAD_POOL[model].digest}
</div>
{/if}
</div>
</div>
{/if}
{/each}
{/if}
</div>
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Delete a model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={deleteModelTag}
placeholder={$i18n.t('Select a model')}
<div class="pt-1">
<div class="flex justify-between items-center text-xs">
<div class=" text-sm font-medium">{$i18n.t('Experimental')}</div>
<button
class=" text-xs font-medium text-gray-500"
type="button"
on:click={() => {
showExperimentalOllama = !showExperimentalOllama;
}}>{showExperimentalOllama ? $i18n.t('Hide') : $i18n.t('Show')}</button
>
{#if !deleteModelTag}
<option value="" disabled selected>{$i18n.t('Select a model')}</option>
{/if}
{#each $models.filter((m) => !(m?.preset ?? false) && m.owned_by === 'ollama' && (selectedOllamaUrlIdx === null ? true : (m?.ollama?.urls ?? []).includes(selectedOllamaUrlIdx))) as model}
<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
>{model.name +
' (' +
(model.ollama.size / 1024 ** 3).toFixed(1) +
' GB)'}</option
>
{/each}
</select>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
deleteModelHandler();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M5 3.25V4H2.75a.75.75 0 0 0 0 1.5h.3l.815 8.15A1.5 1.5 0 0 0 5.357 15h5.285a1.5 1.5 0 0 0 1.493-1.35l.815-8.15h.3a.75.75 0 0 0 0-1.5H11v-.75A2.25 2.25 0 0 0 8.75 1h-1.5A2.25 2.25 0 0 0 5 3.25Zm2.25-.75a.75.75 0 0 0-.75.75V4h3v-.75a.75.75 0 0 0-.75-.75h-1.5ZM6.05 6a.75.75 0 0 1 .787.713l.275 5.5a.75.75 0 0 1-1.498.075l-.275-5.5A.75.75 0 0 1 6.05 6Zm3.9 0a.75.75 0 0 1 .712.787l-.275 5.5a.75.75 0 0 1-1.498-.075l.275-5.5a.75.75 0 0 1 .786-.711Z"
clip-rule="evenodd"
/>
</svg>
</button>
</div>
</div>
<div class="pt-1">
<div class="flex justify-between items-center text-xs">
<div class=" text-sm font-medium">{$i18n.t('Experimental')}</div>
<button
class=" text-xs font-medium text-gray-500"
type="button"
on:click={() => {
showExperimentalOllama = !showExperimentalOllama;
}}>{showExperimentalOllama ? $i18n.t('Hide') : $i18n.t('Show')}</button
{#if showExperimentalOllama}
<form
on:submit|preventDefault={() => {
uploadModelHandler();
}}
>
</div>
</div>
<div class=" mb-2 flex w-full justify-between">
<div class=" text-sm font-medium">{$i18n.t('Upload a GGUF model')}</div>
{#if showExperimentalOllama}
<form
on:submit|preventDefault={() => {
uploadModelHandler();
}}
>
<div class=" mb-2 flex w-full justify-between">
<div class=" text-sm font-medium">{$i18n.t('Upload a GGUF model')}</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
on:click={() => {
if (modelUploadMode === 'file') {
modelUploadMode = 'url';
} else {
modelUploadMode = 'file';
}
}}
type="button"
>
{#if modelUploadMode === 'file'}
<span class="ml-2 self-center">{$i18n.t('File Mode')}</span>
{:else}
<span class="ml-2 self-center">{$i18n.t('URL Mode')}</span>
{/if}
</button>
</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
on:click={() => {
if (modelUploadMode === 'file') {
modelUploadMode = 'url';
} else {
modelUploadMode = 'file';
}
}}
type="button"
>
{#if modelUploadMode === 'file'}
<span class="ml-2 self-center">{$i18n.t('File Mode')}</span>
{:else}
<span class="ml-2 self-center">{$i18n.t('URL Mode')}</span>
{/if}
</button>
</div>
<div class="flex w-full mb-1.5">
<div class="flex flex-col w-full">
{#if modelUploadMode === 'file'}
<div
class="flex-1 {modelInputFile && modelInputFile.length > 0 ? 'mr-2' : ''}"
>
<input
id="model-upload-input"
bind:this={modelUploadInputElement}
type="file"
bind:files={modelInputFile}
on:change={() => {
console.log(modelInputFile);
}}
accept=".gguf,.safetensors"
required
hidden
/>
<div class="flex w-full mb-1.5">
<div class="flex flex-col w-full">
{#if modelUploadMode === 'file'}
<div class="flex-1 {modelInputFile && modelInputFile.length > 0 ? 'mr-2' : ''}">
<input
id="model-upload-input"
bind:this={modelUploadInputElement}
type="file"
bind:files={modelInputFile}
on:change={() => {
console.log(modelInputFile);
}}
accept=".gguf,.safetensors"
required
hidden
/>
<button
type="button"
class="w-full rounded-lg text-left py-2 px-4 bg-white dark:text-gray-300 dark:bg-gray-850"
on:click={() => {
modelUploadInputElement.click();
}}
>
{#if modelInputFile && modelInputFile.length > 0}
{modelInputFile[0].name}
{:else}
{$i18n.t('Click here to select')}
{/if}
</button>
</div>
{:else}
<div class="flex-1 {modelFileUrl !== '' ? 'mr-2' : ''}">
<input
class="w-full rounded-lg text-left py-2 px-4 bg-white dark:text-gray-300 dark:bg-gray-850 outline-none {modelFileUrl !==
''
? 'mr-2'
: ''}"
type="url"
required
bind:value={modelFileUrl}
placeholder={$i18n.t('Type Hugging Face Resolve (Download) URL')}
/>
</div>
{/if}
</div>
<button
type="button"
class="w-full rounded-lg text-left py-2 px-4 bg-white dark:text-gray-300 dark:bg-gray-850"
on:click={() => {
modelUploadInputElement.click();
}}
>
{#if modelInputFile && modelInputFile.length > 0}
{modelInputFile[0].name}
{:else}
{$i18n.t('Click here to select')}
{/if}
</button>
</div>
{:else}
<div class="flex-1 {modelFileUrl !== '' ? 'mr-2' : ''}">
<input
class="w-full rounded-lg text-left py-2 px-4 bg-white dark:text-gray-300 dark:bg-gray-850 outline-none {modelFileUrl !==
''
? 'mr-2'
: ''}"
type="url"
required
bind:value={modelFileUrl}
placeholder={$i18n.t('Type Hugging Face Resolve (Download) URL')}
/>
</div>
{/if}
</div>
{#if (modelUploadMode === 'file' && modelInputFile && modelInputFile.length > 0) || (modelUploadMode === 'url' && modelFileUrl !== '')}
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg disabled:cursor-not-allowed transition"
type="submit"
disabled={modelTransferring}
>
{#if modelTransferring}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
{#if (modelUploadMode === 'file' && modelInputFile && modelInputFile.length > 0) || (modelUploadMode === 'url' && modelFileUrl !== '')}
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg disabled:cursor-not-allowed transition"
type="submit"
disabled={modelTransferring}
>
{#if modelTransferring}
<div class="self-center">
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style>
<path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/>
<path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/>
</svg>
</div>
{:else}
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style>
<path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
d="M7.25 10.25a.75.75 0 0 0 1.5 0V4.56l2.22 2.22a.75.75 0 1 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 0l-3.5 3.5a.75.75 0 0 0 1.06 1.06l2.22-2.22v5.69Z"
/>
<path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
/>
</svg>
</div>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M7.25 10.25a.75.75 0 0 0 1.5 0V4.56l2.22 2.22a.75.75 0 1 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 0l-3.5 3.5a.75.75 0 0 0 1.06 1.06l2.22-2.22v5.69Z"
/>
<path
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
/>
</svg>
{/if}
</button>
{/if}
</div>
{/if}
</button>
{/if}
</div>
{#if (modelUploadMode === 'file' && modelInputFile && modelInputFile.length > 0) || (modelUploadMode === 'url' && modelFileUrl !== '')}
<div>
{#if (modelUploadMode === 'file' && modelInputFile && modelInputFile.length > 0) || (modelUploadMode === 'url' && modelFileUrl !== '')}
<div>
<div class=" my-2.5 text-sm font-medium">{$i18n.t('Modelfile Content')}</div>
<textarea
bind:value={modelFileContent}
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-100 dark:text-gray-100 dark:bg-gray-850 outline-none resize-none"
rows="6"
/>
<div>
<div class=" my-2.5 text-sm font-medium">{$i18n.t('Modelfile Content')}</div>
<textarea
bind:value={modelFileContent}
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-100 dark:text-gray-100 dark:bg-gray-850 outline-none resize-none"
rows="6"
/>
</div>
</div>
{/if}
<div class=" mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the GGUF models available for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
href="https://huggingface.co/models?search=gguf"
target="_blank">{$i18n.t('click here.')}</a
>
</div>
{/if}
<div class=" mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the GGUF models available for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
href="https://huggingface.co/models?search=gguf"
target="_blank">{$i18n.t('click here.')}</a
>
</div>
{#if uploadMessage}
<div class="mt-2">
<div class=" mb-2 text-xs">{$i18n.t('Upload Progress')}</div>
{#if uploadMessage}
<div class="mt-2">
<div class=" mb-2 text-xs">{$i18n.t('Upload Progress')}</div>
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: 100%"
>
{uploadMessage}
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: 100%"
>
{uploadMessage}
</div>
</div>
</div>
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{modelFileDigest}
</div>
</div>
{:else if uploadProgress !== null}
<div class="mt-2">
<div class=" mb-2 text-xs">{$i18n.t('Upload Progress')}</div>
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(15, uploadProgress ?? 0)}%"
>
{uploadProgress ?? 0}%
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{modelFileDigest}
</div>
</div>
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{modelFileDigest}
{:else if uploadProgress !== null}
<div class="mt-2">
<div class=" mb-2 text-xs">{$i18n.t('Upload Progress')}</div>
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(15, uploadProgress ?? 0)}%"
>
{uploadProgress ?? 0}%
</div>
</div>
<div class="mt-1 text-xs dark:text-gray-500" style="font-size: 0.5rem;">
{modelFileDigest}
</div>
</div>
</div>
{/if}
</form>
{/if}
{/if}
</form>
{/if}
</div>
</div>
</div>
{:else if ollamaVersion === false}
<div>Ollama Not Detected</div>
{:else if ollamaVersion === false}
<div>Ollama Not Detected</div>
{:else}
<div class="flex h-full justify-center">
<div class="my-auto">
<Spinner className="size-6" />
</div>
</div>
{/if}
{:else if ollamaEnabled === false}
<div>Ollama API is disabled</div>
{:else}
<div class="flex h-full justify-center">
<div class="my-auto">
......
<script lang="ts">
export let className = 'size-4';
export let strokeWidth = '1.5';
</script>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width={strokeWidth}
stroke="currentColor"
class={className}
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"
/>
</svg>
......@@ -63,6 +63,13 @@
// Revoke the URL to release memory
window.URL.revokeObjectURL(url);
};
const downloadJSONExport = async () => {
let blob = new Blob([JSON.stringify([chat])], {
type: 'application/json'
});
saveAs(blob, `chat-export-${Date.now()}.json`);
};
</script>
<Dropdown
......@@ -164,6 +171,14 @@
transition={flyAndScale}
sideOffset={8}
>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
on:click={() => {
downloadJSONExport();
}}
>
<div class="flex items-center line-clamp-1">{$i18n.t('Export chat (.json)')}</div>
</DropdownMenu.Item>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
on:click={() => {
......
......@@ -205,6 +205,10 @@
await archiveChatById(localStorage.token, id);
await chats.set(await getChatList(localStorage.token));
};
const focusEdit = async (node: HTMLInputElement) => {
node.focus();
};
</script>
<ShareChatModal bind:show={showShareChatModal} chatId={shareChatId} />
......@@ -489,7 +493,11 @@
? 'bg-gray-100 dark:bg-gray-950'
: 'group-hover:bg-gray-100 dark:group-hover:bg-gray-950'} whitespace-nowrap text-ellipsis"
>
<input bind:value={chatTitle} class=" bg-transparent w-full outline-none mr-10" />
<input
use:focusEdit
bind:value={chatTitle}
class=" bg-transparent w-full outline-none mr-10"
/>
</div>
{:else}
<a
......@@ -507,6 +515,10 @@
showSidebar.set(false);
}
}}
on:dblclick={() => {
chatTitle = chat.title;
chatTitleEditId = chat.id;
}}
draggable="false"
>
<div class=" flex self-center flex-1 w-full">
......
......@@ -8,7 +8,12 @@
const dispatch = createEventDispatcher();
import Modal from '$lib/components/common/Modal.svelte';
import { archiveChatById, deleteChatById, getArchivedChatList } from '$lib/apis/chats';
import {
archiveChatById,
deleteChatById,
getAllArchivedChats,
getArchivedChatList
} from '$lib/apis/chats';
import Tooltip from '$lib/components/common/Tooltip.svelte';
const i18n = getContext('i18n');
......@@ -38,6 +43,7 @@
};
const exportChatsHandler = async () => {
const chats = await getAllArchivedChats(localStorage.token);
let blob = new Blob([JSON.stringify(chats)], {
type: 'application/json'
});
......
......@@ -126,6 +126,13 @@
saveAs(blob, `models-export-${Date.now()}.json`);
};
const exportModelHandler = async (model) => {
let blob = new Blob([JSON.stringify([model])], {
type: 'application/json'
});
saveAs(blob, `${model.id}-${Date.now()}.json`);
};
const positionChangeHanlder = async () => {
// Get the new order of the models
const modelIds = Array.from(document.getElementById('model-list').children).map((child) =>
......@@ -322,6 +329,9 @@
cloneHandler={() => {
cloneModelHandler(model);
}}
exportHandler={() => {
exportModelHandler(model);
}}
hideHandler={() => {
hideModelHandler(model);
}}
......
......@@ -11,6 +11,7 @@
import Share from '$lib/components/icons/Share.svelte';
import ArchiveBox from '$lib/components/icons/ArchiveBox.svelte';
import DocumentDuplicate from '$lib/components/icons/DocumentDuplicate.svelte';
import ArrowDownTray from '$lib/components/icons/ArrowDownTray.svelte';
const i18n = getContext('i18n');
......@@ -18,6 +19,8 @@
export let shareHandler: Function;
export let cloneHandler: Function;
export let exportHandler: Function;
export let hideHandler: Function;
export let deleteHandler: Function;
export let onClose: Function;
......@@ -66,6 +69,17 @@
<div class="flex items-center">{$i18n.t('Clone')}</div>
</DropdownMenu.Item>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
on:click={() => {
exportHandler();
}}
>
<ArrowDownTray />
<div class="flex items-center">{$i18n.t('Export')}</div>
</DropdownMenu.Item>
<DropdownMenu.Item
class="flex gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 rounded-md"
on:click={() => {
......
......@@ -8,7 +8,7 @@
import { OLLAMA_API_BASE_URL, OPENAI_API_BASE_URL, WEBUI_API_BASE_URL } from '$lib/constants';
import { WEBUI_NAME, config, user, models, settings } from '$lib/stores';
import { cancelOllamaRequest, generateChatCompletion } from '$lib/apis/ollama';
import { generateChatCompletion } from '$lib/apis/ollama';
import { generateOpenAIChatCompletion } from '$lib/apis/openai';
import { splitStream } from '$lib/utils';
......@@ -24,7 +24,6 @@
let selectedModelId = '';
let loading = false;
let currentRequestId = null;
let stopResponseFlag = false;
let messagesContainerElement: HTMLDivElement;
......@@ -46,14 +45,6 @@
}
};
// const cancelHandler = async () => {
// if (currentRequestId) {
// const res = await cancelOllamaRequest(localStorage.token, currentRequestId);
// currentRequestId = null;
// loading = false;
// }
// };
const stopResponse = () => {
stopResponseFlag = true;
console.log('stopResponse');
......@@ -171,8 +162,6 @@
if (stopResponseFlag) {
controller.abort('User: Stop Response');
}
currentRequestId = null;
break;
}
......@@ -229,7 +218,6 @@
loading = false;
stopResponseFlag = false;
currentRequestId = null;
}
};
......
......@@ -3,19 +3,19 @@
"(Beta)": "(تجريبي)",
"(e.g. `sh webui.sh --api`)": "( `sh webui.sh --api`مثال)",
"(latest)": "(الأخير)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ نماذج }}",
"{{ owner }}: You cannot delete a base model": "{{ المالك }}: لا يمكنك حذف نموذج أساسي",
"{{modelName}} is thinking...": "{{modelName}} ...يفكر",
"{{user}}'s Chats": "دردشات {{user}}",
"{{webUIName}} Backend Required": "{{webUIName}} مطلوب",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "يتم استخدام نموذج المهمة عند تنفيذ مهام مثل إنشاء عناوين للدردشات واستعلامات بحث الويب",
"a user": "مستخدم",
"About": "عن",
"Account": "الحساب",
"Accurate information": "معلومات دقيقة",
"Add": "أضف",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "إضافة معرف نموذج",
"Add a short description about what this model does": "أضف وصفا موجزا حول ما يفعله هذا النموذج",
"Add a short title for this prompt": "أضف عنوانًا قصيرًا لبداء المحادثة",
"Add a tag": "أضافة تاق",
"Add custom prompt": "أضافة مطالبة مخصصه",
......@@ -31,12 +31,13 @@
"Admin Panel": "لوحة التحكم",
"Admin Settings": "اعدادات المشرف",
"Advanced Parameters": "التعليمات المتقدمة",
"Advanced Params": "",
"Advanced Params": "المعلمات المتقدمة",
"all": "الكل",
"All Documents": "جميع الملفات",
"All Users": "جميع المستخدمين",
"Allow": "يسمح",
"Allow Chat Deletion": "يستطيع حذف المحادثات",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "الأحرف الأبجدية الرقمية والواصلات",
"Already have an account?": "هل تملك حساب ؟",
"an assistant": "مساعد",
......@@ -48,7 +49,7 @@
"API keys": "مفاتيح واجهة برمجة التطبيقات",
"April": "أبريل",
"Archive": "الأرشيف",
"Archive All Chats": "",
"Archive All Chats": "أرشفة جميع الدردشات",
"Archived Chats": "الأرشيف المحادثات",
"are allowed - Activate this command by typing": "مسموح - قم بتنشيط هذا الأمر عن طريق الكتابة",
"Are you sure?": "هل أنت متأكد ؟",
......@@ -63,14 +64,14 @@
"available!": "متاح",
"Back": "خلف",
"Bad Response": "استجابة خطاء",
"Banners": "",
"Base Model (From)": "",
"Banners": "لافتات",
"Base Model (From)": "النموذج الأساسي (من)",
"before": "قبل",
"Being lazy": "كون كسول",
"Brave Search API Key": "",
"Brave Search API Key": "مفتاح واجهة برمجة تطبيقات البحث الشجاع",
"Bypass SSL verification for Websites": "تجاوز التحقق من SSL للموقع",
"Cancel": "اللغاء",
"Capabilities": "",
"Capabilities": "قدرات",
"Change Password": "تغير الباسورد",
"Chat": "المحادثة",
"Chat Bubble UI": "UI الدردشة",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "انقر هنا لاختيار المستندات",
"click here.": "أضغط هنا",
"Click on the user role button to change a user's role.": "أضغط على أسم الصلاحيات لتغيرها للمستخدم",
"Clone": "",
"Clone": "استنساخ",
"Close": "أغلق",
"Collection": "مجموعة",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI الرابط الافتراضي",
"ComfyUI Base URL is required.": "ComfyUI الرابط مطلوب",
"Command": "الأوامر",
"Concurrent Requests": "",
"Concurrent Requests": "الطلبات المتزامنة",
"Confirm Password": "تأكيد كلمة المرور",
"Connections": "اتصالات",
"Content": "الاتصال",
......@@ -114,7 +115,7 @@
"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 model": "",
"Create a model": "إنشاء نموذج",
"Create Account": "إنشاء حساب",
"Create new key": "عمل مفتاح جديد",
"Create new secret key": "عمل سر جديد",
......@@ -123,7 +124,7 @@
"Current Model": "الموديل المختار",
"Current Password": "كلمة السر الحالية",
"Custom": "مخصص",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "تخصيص النماذج لغرض معين",
"Dark": "مظلم",
"Database": "قاعدة البيانات",
"December": "ديسمبر",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "(Automatic1111) الإفتراضي",
"Default (SentenceTransformers)": "(SentenceTransformers) الإفتراضي",
"Default (Web API)": "(Web API) الإفتراضي",
"Default Model": "",
"Default Model": "النموذج الافتراضي",
"Default model updated": "الإفتراضي تحديث الموديل",
"Default Prompt Suggestions": "الإفتراضي Prompt الاقتراحات",
"Default User Role": "الإفتراضي صلاحيات المستخدم",
"delete": "حذف",
"Delete": "حذف",
"Delete a model": "حذف الموديل",
"Delete All Chats": "",
"Delete All Chats": "حذف جميع الدردشات",
"Delete chat": "حذف المحادثه",
"Delete Chat": "حذف المحادثه.",
"delete this link": "أحذف هذا الرابط",
"Delete User": "حذف المستخدم",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} حذف",
"Deleted {{name}}": "",
"Deleted {{name}}": "حذف {{name}}",
"Description": "وصف",
"Didn't fully follow instructions": "لم أتبع التعليمات بشكل كامل",
"Disabled": "تعطيل",
"Discover a model": "",
"Discover a model": "اكتشف نموذجا",
"Discover a prompt": "اكتشاف موجه",
"Discover, download, and explore custom prompts": "اكتشاف وتنزيل واستكشاف المطالبات المخصصة",
"Discover, download, and explore model presets": "اكتشاف وتنزيل واستكشاف الإعدادات المسبقة للنموذج",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "تضمين محرك النموذج",
"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
"Enable Chat History": "تمكين سجل الدردشة",
"Enable Community Sharing": "",
"Enable Community Sharing": "تمكين مشاركة المجتمع",
"Enable New Sign Ups": "تفعيل عمليات التسجيل الجديدة",
"Enable Web Search": "",
"Enable Web Search": "تمكين بحث الويب",
"Enabled": "تفعيل",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.",
"Enter {{role}} message here": "أدخل رسالة {{role}} هنا",
"Enter a detail about yourself for your LLMs to recall": "ادخل معلومات عنك تريد أن يتذكرها الموديل",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "أدخل مفتاح واجهة برمجة تطبيقات البحث الشجاع",
"Enter Chunk Overlap": "أدخل الChunk Overlap",
"Enter Chunk Size": "أدخل Chunk الحجم",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "أدخل عنوان URL ل Github Raw",
"Enter Google PSE API Key": "أدخل مفتاح واجهة برمجة تطبيقات PSE من Google",
"Enter Google PSE Engine Id": "أدخل معرف محرك PSE من Google",
"Enter Image Size (e.g. 512x512)": "(e.g. 512x512) أدخل حجم الصورة ",
"Enter language codes": "أدخل كود اللغة",
"Enter model tag (e.g. {{modelTag}})": "(e.g. {{modelTag}}) أدخل الموديل تاق",
"Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات",
"Enter Score": "أدخل النتيجة",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "أدخل عنوان URL لاستعلام Searxng",
"Enter Serper API Key": "أدخل مفتاح واجهة برمجة تطبيقات Serper",
"Enter Serpstack API Key": "أدخل مفتاح واجهة برمجة تطبيقات Serpstack",
"Enter stop sequence": "أدخل تسلسل التوقف",
"Enter Top K": "أدخل Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "أدخل الاسم كامل",
"Enter Your Password": "ادخل كلمة المرور",
"Enter Your Role": "أدخل الصلاحيات",
"Error": "",
"Error": "خطأ",
"Experimental": "تجريبي",
"Export": "تصدير",
"Export All Chats (All Users)": "تصدير جميع الدردشات (جميع المستخدمين)",
"Export chat (.json)": "",
"Export Chats": "تصدير جميع الدردشات",
"Export Documents Mapping": "تصدير وثائق الخرائط",
"Export Models": "",
"Export Models": "نماذج التصدير",
"Export Prompts": "مطالبات التصدير",
"Failed to create API Key.": "فشل في إنشاء مفتاح API.",
"Failed to read clipboard contents": "فشل في قراءة محتويات الحافظة",
......@@ -221,15 +224,15 @@
"Focus chat input": "التركيز على إدخال الدردشة",
"Followed instructions perfectly": "اتبعت التعليمات على أكمل وجه",
"Format your variables using square brackets like this:": "قم بتنسيق المتغيرات الخاصة بك باستخدام الأقواس المربعة مثل هذا:",
"Frequency Penalty": "",
"Frequency Penalty": "عقوبة التردد",
"Full Screen Mode": "وضع ملء الشاشة",
"General": "عام",
"General Settings": "الاعدادات العامة",
"Generating search query": "",
"Generating search query": "إنشاء استعلام بحث",
"Generation Info": "معلومات الجيل",
"Good Response": "استجابة جيدة",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "مفتاح واجهة برمجة تطبيقات PSE من Google",
"Google PSE Engine Id": "معرف محرك PSE من Google",
"h:mm a": "الساعة:الدقائق صباحا/مساء",
"has no conversations.": "ليس لديه محادثات.",
"Hello, {{name}}": " {{name}} مرحبا",
......@@ -243,18 +246,18 @@
"Images": "الصور",
"Import Chats": "استيراد الدردشات",
"Import Documents Mapping": "استيراد خرائط المستندات",
"Import Models": "",
"Import Models": "استيراد النماذج",
"Import Prompts": "مطالبات الاستيراد",
"Include `--api` flag when running stable-diffusion-webui": "قم بتضمين علامة `-api` عند تشغيل Stable-diffusion-webui",
"Info": "",
"Info": "معلومات",
"Input commands": "إدخال الأوامر",
"Install from Github URL": "",
"Install from Github URL": "التثبيت من عنوان URL لجيثب",
"Interface": "واجهه المستخدم",
"Invalid Tag": "تاق غير صالحة",
"January": "يناير",
"join our Discord for help.": "انضم إلى Discord للحصول على المساعدة.",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "معاينة JSON",
"July": "يوليو",
"June": "يونيو",
"JWT Expiration": "JWT تجريبي",
......@@ -271,12 +274,12 @@
"Make sure to enclose them with": "تأكد من إرفاقها",
"Manage Models": "إدارة النماذج",
"Manage Ollama Models": "Ollama إدارة موديلات ",
"Manage Pipelines": "",
"Manage Pipelines": "إدارة خطوط الأنابيب",
"March": "مارس",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "ماكس توكنز (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
"May": "مايو",
"Memories accessible by LLMs will be shown here.": "",
"Memories accessible by LLMs will be shown here.": "سيتم عرض الذكريات التي يمكن الوصول إليها بواسطة LLMs هنا.",
"Memory": "الذاكرة",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "لن تتم مشاركة الرسائل التي ترسلها بعد إنشاء الرابط الخاص بك. سيتمكن المستخدمون الذين لديهم عنوان URL من عرض الدردشة المشتركة",
"Minimum Score": "الحد الأدنى من النقاط",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "تم تحميل النموذج '{{modelName}}' بنجاح",
"Model '{{modelTag}}' is already in queue for downloading.": "النموذج '{{modelTag}}' موجود بالفعل في قائمة الانتظار للتحميل",
"Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "نموذج {{modelName}} غير قادر على الرؤية",
"Model {{name}} is now {{status}}": "نموذج {{name}} هو الآن {{status}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "تم اكتشاف مسار نظام الملفات النموذجي. الاسم المختصر للنموذج مطلوب للتحديث، ولا يمكن الاستمرار.",
"Model ID": "",
"Model ID": "رقم الموديل",
"Model not selected": "لم تختار موديل",
"Model Params": "",
"Model Params": "معلمات النموذج",
"Model Whitelisting": "القائمة البيضاء للموديل",
"Model(s) Whitelisted": "القائمة البيضاء الموديل",
"Modelfile Content": "محتوى الملف النموذجي",
......@@ -301,23 +304,25 @@
"More": "المزيد",
"Name": "الأسم",
"Name Tag": "أسم التاق",
"Name your model": "",
"Name your model": "قم بتسمية النموذج الخاص بك",
"New Chat": "دردشة جديدة",
"New Password": "كلمة المرور الجديدة",
"No results found": "لا توجد نتايج",
"No search query generated": "",
"No search query generated": "لم يتم إنشاء استعلام بحث",
"No source available": "لا يوجد مصدر متاح",
"None": "",
"None": "اي",
"Not factually correct": "ليس صحيحا من حيث الواقع",
"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": "نوفمبر",
"num_thread (Ollama)": "num_thread (أولاما)",
"October": "اكتوبر",
"Off": "أغلاق",
"Okay, Let's Go!": "حسنا دعنا نذهب!",
"OLED Dark": "OLED داكن",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "أولاما API",
"Ollama API disabled": "أولاما API معطلة",
"Ollama Version": "Ollama الاصدار",
"On": "تشغيل",
"Only": "فقط",
......@@ -342,8 +347,8 @@
"pending": "قيد الانتظار",
"Permission denied when accessing microphone: {{error}}": "{{error}} تم رفض الإذن عند الوصول إلى الميكروفون ",
"Personalization": "التخصيص",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "خطوط الانابيب",
"Pipelines Valves": "صمامات خطوط الأنابيب",
"Plain text (.txt)": "نص عادي (.txt)",
"Playground": "مكان التجربة",
"Positive attitude": "موقف ايجابي",
......@@ -388,36 +393,36 @@
"Scan for documents from {{path}}": "{{path}} مسح على الملفات من",
"Search": "البحث",
"Search a model": "البحث عن موديل",
"Search Chats": "",
"Search Chats": "البحث في الدردشات",
"Search Documents": "البحث المستندات",
"Search Models": "",
"Search Models": "نماذج البحث",
"Search Prompts": "أبحث حث",
"Search Result Count": "",
"Searched {{count}} sites_zero": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_two": "",
"Searched {{count}} sites_few": "",
"Searched {{count}} sites_many": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "عدد نتائج البحث",
"Searched {{count}} sites_zero": "تم البحث في {{count}} sites_zero",
"Searched {{count}} sites_one": "تم البحث في {{count}} sites_one",
"Searched {{count}} sites_two": "تم البحث في {{count}} sites_two",
"Searched {{count}} sites_few": "تم البحث في {{count}} sites_few",
"Searched {{count}} sites_many": "تم البحث في {{count}} sites_many",
"Searched {{count}} sites_other": "تم البحث في {{count}} sites_other",
"Searching the web for '{{searchQuery}}'": "البحث في الويب عن \"{{searchQuery}}\"",
"Searxng Query URL": "عنوان URL لاستعلام Searxng",
"See readme.md for instructions": "readme.md للحصول على التعليمات",
"See what's new": "ما الجديد",
"Seed": "Seed",
"Select a base model": "",
"Select a base model": "حدد نموذجا أساسيا",
"Select a mode": "أختار موديل",
"Select a model": "أختار الموديل",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "حدد مسارا",
"Select a pipeline url": "حدد عنوان URL لخط الأنابيب",
"Select an Ollama instance": "أختار سيرفر ",
"Select model": " أختار موديل",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "النموذج (النماذج) المحددة لا تدعم مدخلات الصور",
"Send": "تم",
"Send a Message": "يُرجى إدخال طلبك هنا",
"Send message": "يُرجى إدخال طلبك هنا.",
"September": "سبتمبر",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "مفتاح واجهة برمجة تطبيقات سيربر",
"Serpstack API Key": "مفتاح واجهة برمجة تطبيقات Serpstack",
"Server connection verified": "تم التحقق من اتصال الخادم",
"Set as default": "الافتراضي",
"Set Default Model": "تفعيد الموديل الافتراضي",
......@@ -426,7 +431,7 @@
"Set Model": "ضبط النموذج",
"Set reranking model (e.g. {{model}})": "ضبط نموذج إعادة الترتيب (على سبيل المثال: {{model}})",
"Set Steps": "ضبط الخطوات",
"Set Task Model": "",
"Set Task Model": "تعيين نموذج المهمة",
"Set Voice": "ضبط الصوت",
"Settings": "الاعدادات",
"Settings saved successfully!": "تم حفظ الاعدادات بنجاح",
......@@ -485,19 +490,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "هل تواجه مشكلة في الوصول",
"TTS Settings": "TTS اعدادات",
"Type": "",
"Type": "نوع",
"Type Hugging Face Resolve (Download) URL": "اكتب عنوان URL لحل مشكلة الوجه (تنزيل).",
"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}خطاء أوه! حدثت مشكلة في الاتصال بـ ",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ",
"Update and Copy Link": "تحديث ونسخ الرابط",
"Update password": "تحديث كلمة المرور",
"Upload a GGUF model": "GGUF رفع موديل نوع",
"Upload Files": "",
"Upload Files": "تحميل الملفات",
"Upload Progress": "جاري التحميل",
"URL Mode": "رابط الموديل",
"Use '#' in the prompt input to load and select your documents.": "أستخدم '#' في المحادثة لربطهامن المستندات",
"Use Gravatar": "Gravatar أستخدم",
"Use Initials": "Initials أستخدم",
"use_mlock (Ollama)": "use_mlock (أولاما)",
"use_mmap (Ollama)": "use_mmap (أولاما)",
"user": "مستخدم",
"User Permissions": "صلاحيات المستخدم",
"Users": "المستخدمين",
......@@ -506,13 +513,13 @@
"variable": "المتغير",
"variable to have them replaced with clipboard content.": "متغير لاستبدالها بمحتوى الحافظة.",
"Version": "إصدار",
"Warning": "",
"Warning": "تحذير",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
"Web": "Web",
"Web Loader Settings": "Web تحميل اعدادات",
"Web Params": "Web تحميل اعدادات",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "بحث الويب",
"Web Search Engine": "محرك بحث الويب",
"Webhook URL": "Webhook الرابط",
"WebUI Add-ons": "WebUI الأضافات",
"WebUI Settings": "WebUI اعدادات",
......@@ -525,7 +532,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية]",
"Yesterday": "أمس",
"You": "انت",
"You cannot clone a base model": "",
"You cannot clone a base model": "لا يمكنك استنساخ نموذج أساسي",
"You have no archived conversations.": "لا تملك محادثات محفوظه",
"You have shared this chat": "تم مشاركة هذه المحادثة",
"You're a helpful assistant.": "مساعدك المفيد هنا",
......
......@@ -3,19 +3,19 @@
"(Beta)": "(Бета)",
"(e.g. `sh webui.sh --api`)": "(например `sh webui.sh --api`)",
"(latest)": "(последна)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ модели }}",
"{{ owner }}: You cannot delete a base model": "{{ owner }}: Не можете да изтриете базов модел",
"{{modelName}} is thinking...": "{{modelName}} мисли ...",
"{{user}}'s Chats": "{{user}}'s чатове",
"{{webUIName}} Backend Required": "{{webUIName}} Изисква се Бекенд",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Моделът на задачите се използва при изпълнение на задачи като генериране на заглавия за чатове и заявки за търсене в мрежата",
"a user": "потребител",
"About": "Относно",
"Account": "Акаунт",
"Accurate information": "Точни информация",
"Add": "Добавяне",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "Добавяне на ИД на модел",
"Add a short description about what this model does": "Добавете кратко описание за това какво прави този модел",
"Add a short title for this prompt": "Добавяне на кратко заглавие за този промпт",
"Add a tag": "Добавяне на таг",
"Add custom prompt": "Добавяне на собствен промпт",
......@@ -31,12 +31,13 @@
"Admin Panel": "Панел на Администратор",
"Admin Settings": "Настройки на Администратор",
"Advanced Parameters": "Разширени Параметри",
"Advanced Params": "",
"Advanced Params": "Разширени параметри",
"all": "всички",
"All Documents": "Всички Документи",
"All Users": "Всички Потребители",
"Allow": "Позволи",
"Allow Chat Deletion": "Позволи Изтриване на Чат",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "алфанумерични знаци и тире",
"Already have an account?": "Вече имате акаунт? ",
"an assistant": "асистент",
......@@ -48,7 +49,7 @@
"API keys": "API Ключове",
"April": "Април",
"Archive": "Архивирани Чатове",
"Archive All Chats": "",
"Archive All Chats": "Архив Всички чатове",
"Archived Chats": "Архивирани Чатове",
"are allowed - Activate this command by typing": "са разрешени - Активирайте тази команда чрез въвеждане",
"Are you sure?": "Сигурни ли сте?",
......@@ -63,14 +64,14 @@
"available!": "наличен!",
"Back": "Назад",
"Bad Response": "Невалиден отговор от API",
"Banners": "",
"Base Model (From)": "",
"Banners": "Банери",
"Base Model (From)": "Базов модел (от)",
"before": "преди",
"Being lazy": "Да бъдеш мързелив",
"Brave Search API Key": "",
"Brave Search API Key": "Смел ключ за API за търсене",
"Bypass SSL verification for Websites": "Изключване на SSL проверката за сайтове",
"Cancel": "Отказ",
"Capabilities": "",
"Capabilities": "Възможности",
"Change Password": "Промяна на Парола",
"Chat": "Чат",
"Chat Bubble UI": "UI за чат бублон",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "Натиснете тук, за да изберете документи.",
"click here.": "натиснете тук.",
"Click on the user role button to change a user's role.": "Натиснете върху бутона за промяна на ролята на потребителя.",
"Clone": "",
"Clone": "Клонинг",
"Close": "Затвори",
"Collection": "Колекция",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL е задължително.",
"Command": "Команда",
"Concurrent Requests": "",
"Concurrent Requests": "Едновременни искания",
"Confirm Password": "Потвърди Парола",
"Connections": "Връзки",
"Content": "Съдържание",
......@@ -114,7 +115,7 @@
"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 model": "",
"Create a model": "Създаване на модел",
"Create Account": "Създаване на Акаунт",
"Create new key": "Създаване на нов ключ",
"Create new secret key": "Създаване на нов секретен ключ",
......@@ -123,7 +124,7 @@
"Current Model": "Текущ модел",
"Current Password": "Текуща Парола",
"Custom": "Персонализиран",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "Персонализиране на модели за конкретна цел",
"Dark": "Тъмен",
"Database": "База данни",
"December": "Декември",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "По подразбиране (Automatic1111)",
"Default (SentenceTransformers)": "По подразбиране (SentenceTransformers)",
"Default (Web API)": "По подразбиране (Web API)",
"Default Model": "",
"Default Model": "Модел по подразбиране",
"Default model updated": "Моделът по подразбиране е обновен",
"Default Prompt Suggestions": "Промпт Предложения по подразбиране",
"Default User Role": "Роля на потребителя по подразбиране",
"delete": "изтриване",
"Delete": "Изтриване",
"Delete a model": "Изтриване на модел",
"Delete All Chats": "",
"Delete All Chats": "Изтриване на всички чатове",
"Delete chat": "Изтриване на чат",
"Delete Chat": "Изтриване на Чат",
"delete this link": "Изтриване на този линк",
"Delete User": "Изтриване на потребител",
"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
"Deleted {{name}}": "",
"Deleted {{name}}": "Изтрито {{име}}",
"Description": "Описание",
"Didn't fully follow instructions": "Не следва инструкциите",
"Disabled": "Деактивиран",
"Discover a model": "",
"Discover a model": "Открийте модел",
"Discover a prompt": "Откриване на промпт",
"Discover, download, and explore custom prompts": "Откриване, сваляне и преглед на персонализирани промптове",
"Discover, download, and explore model presets": "Откриване, сваляне и преглед на пресетове на модели",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "Модел за вграждане",
"Embedding model set to \"{{embedding_model}}\"": "Модел за вграждане е настроен на \"{{embedding_model}}\"",
"Enable Chat History": "Вклюване на Чат История",
"Enable Community Sharing": "",
"Enable Community Sharing": "Разрешаване на споделяне в общност",
"Enable New Sign Ups": "Вклюване на Нови Потребители",
"Enable Web Search": "",
"Enable Web Search": "Разрешаване на търсене в уеб",
"Enabled": "Включено",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверете се, че вашият CSV файл включва 4 колони в следния ред: Име, Имейл, Парола, Роля.",
"Enter {{role}} message here": "Въведете съобщение за {{role}} тук",
"Enter a detail about yourself for your LLMs to recall": "Въведете подробности за себе си, за да се herinnerат вашите LLMs",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "Въведете Brave Search API ключ",
"Enter Chunk Overlap": "Въведете Chunk Overlap",
"Enter Chunk Size": "Въведете Chunk Size",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "Въведете URL адреса на Github Raw",
"Enter Google PSE API Key": "Въведете Google PSE API ключ",
"Enter Google PSE Engine Id": "Въведете идентификатор на двигателя на Google PSE",
"Enter Image Size (e.g. 512x512)": "Въведете размер на изображението (напр. 512x512)",
"Enter language codes": "Въведете кодове на езика",
"Enter model tag (e.g. {{modelTag}})": "Въведете таг на модел (напр. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Въведете брой стъпки (напр. 50)",
"Enter Score": "Въведете оценка",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "Въведете URL адреса на заявката на Searxng",
"Enter Serper API Key": "Въведете Serper API ключ",
"Enter Serpstack API Key": "Въведете Serpstack API ключ",
"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/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "Въведете вашето пълно име",
"Enter Your Password": "Въведете вашата парола",
"Enter Your Role": "Въведете вашата роля",
"Error": "",
"Error": "Грешка",
"Experimental": "Експериментално",
"Export": "Износ",
"Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)",
"Export chat (.json)": "",
"Export Chats": "Експортване на чатове",
"Export Documents Mapping": "Експортване на документен мапинг",
"Export Models": "",
"Export Models": "Експортиране на модели",
"Export Prompts": "Експортване на промптове",
"Failed to create API Key.": "Неуспешно създаване на API ключ.",
"Failed to read clipboard contents": "Грешка при четене на съдържанието от клипборда",
......@@ -221,15 +224,15 @@
"Focus chat input": "Фокусиране на чат вход",
"Followed instructions perfectly": "Следвайте инструкциите перфектно",
"Format your variables using square brackets like this:": "Форматирайте вашите променливи, като използвате квадратни скоби, както следва:",
"Frequency Penalty": "",
"Frequency Penalty": "Наказание за честота",
"Full Screen Mode": "На Цял екран",
"General": "Основни",
"General Settings": "Основни Настройки",
"Generating search query": "",
"Generating search query": "Генериране на заявка за търсене",
"Generation Info": "Информация за Генерация",
"Good Response": "Добра отговор",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "Google PSE API ключ",
"Google PSE Engine Id": "Идентификатор на двигателя на Google PSE",
"h:mm a": "h:mm a",
"has no conversations.": "няма разговори.",
"Hello, {{name}}": "Здравей, {{name}}",
......@@ -243,18 +246,18 @@
"Images": "Изображения",
"Import Chats": "Импортване на чатове",
"Import Documents Mapping": "Импортване на документен мапинг",
"Import Models": "",
"Import Models": "Импортиране на модели",
"Import Prompts": "Импортване на промптове",
"Include `--api` flag when running stable-diffusion-webui": "Включете флага `--api`, когато стартирате stable-diffusion-webui",
"Info": "",
"Info": "Информация",
"Input commands": "Въведете команди",
"Install from Github URL": "",
"Install from Github URL": "Инсталиране от URL адреса на Github",
"Interface": "Интерфейс",
"Invalid Tag": "Невалиден тег",
"January": "Януари",
"join our Discord for help.": "свържете се с нашия Discord за помощ.",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "JSON Преглед",
"July": "Июл",
"June": "Июн",
"JWT Expiration": "JWT Expiration",
......@@ -271,9 +274,9 @@
"Make sure to enclose them with": "Уверете се, че са заключени с",
"Manage Models": "Управление на Моделите",
"Manage Ollama Models": "Управление на Ollama Моделите",
"Manage Pipelines": "",
"Manage Pipelines": "Управление на тръбопроводи",
"March": "Март",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "Макс токени (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
"May": "Май",
"Memories accessible by LLMs will be shown here.": "Мемории достъпни от LLMs ще бъдат показани тук.",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "Моделът '{{modelName}}' беше успешно свален.",
"Model '{{modelTag}}' is already in queue for downloading.": "Моделът '{{modelTag}}' е вече в очакване за сваляне.",
"Model {{modelId}} not found": "Моделът {{modelId}} не е намерен",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "Моделът {{modelName}} не може да се вижда",
"Model {{name}} is now {{status}}": "Моделът {{name}} сега е {{status}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Открит е път до файловата система на модела. За актуализацията се изисква съкратено име на модела, не може да продължи.",
"Model ID": "",
"Model ID": "ИД на модел",
"Model not selected": "Не е избран модел",
"Model Params": "",
"Model Params": "Модел Params",
"Model Whitelisting": "Модел Whitelisting",
"Model(s) Whitelisted": "Модели Whitelisted",
"Modelfile Content": "Съдържание на модфайл",
......@@ -301,23 +304,25 @@
"More": "Повече",
"Name": "Име",
"Name Tag": "Име Таг",
"Name your model": "",
"Name your model": "Дайте име на вашия модел",
"New Chat": "Нов чат",
"New Password": "Нова парола",
"No results found": "Няма намерени резултати",
"No search query generated": "",
"No search query generated": "Не е генерирана заявка за търсене",
"No source available": "Няма наличен източник",
"None": "",
"None": "Никой",
"Not factually correct": "Не е фактологически правилно",
"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": "Ноември",
"num_thread (Ollama)": "num_thread (Ollama)",
"October": "Октомври",
"Off": "Изкл.",
"Okay, Let's Go!": "ОК, Нека започваме!",
"OLED Dark": "OLED тъмно",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "Ollama API",
"Ollama API disabled": "Ollama API деактивиран",
"Ollama Version": "Ollama Версия",
"On": "Вкл.",
"Only": "Само",
......@@ -342,8 +347,8 @@
"pending": "в очакване",
"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}",
"Personalization": "Персонализация",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "Тръбопроводи",
"Pipelines Valves": "Тръбопроводи Вентили",
"Plain text (.txt)": "Plain text (.txt)",
"Playground": "Плейграунд",
"Positive attitude": "Позитивна ативност",
......@@ -388,32 +393,32 @@
"Scan for documents from {{path}}": "Сканиране за документи в {{path}}",
"Search": "Търси",
"Search a model": "Търси модел",
"Search Chats": "",
"Search Chats": "Търсене на чатове",
"Search Documents": "Търси Документи",
"Search Models": "",
"Search Models": "Търсене на модели",
"Search Prompts": "Търси Промптове",
"Search Result Count": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "Брой резултати от търсенето",
"Searched {{count}} sites_one": "Търси се в {{count}} sites_one",
"Searched {{count}} sites_other": "Търси се в {{count}} sites_other",
"Searching the web for '{{searchQuery}}'": "Търсене в уеб за '{{searchQuery}}'",
"Searxng Query URL": "URL адрес на заявка на Searxng",
"See readme.md for instructions": "Виж readme.md за инструкции",
"See what's new": "Виж какво е новото",
"Seed": "Seed",
"Select a base model": "",
"Select a base model": "Изберете базов модел",
"Select a mode": "Изберете режим",
"Select a model": "Изберете модел",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "Изберете тръбопровод",
"Select a pipeline url": "Избор на URL адрес на канал",
"Select an Ollama instance": "Изберете Ollama инстанция",
"Select model": "Изберете модел",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "Избраният(те) модел(и) не поддържа въвеждане на изображения",
"Send": "Изпрати",
"Send a Message": "Изпращане на Съобщение",
"Send message": "Изпращане на съобщение",
"September": "Септември",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "Serper API ключ",
"Serpstack API Key": "Serpstack API ключ",
"Server connection verified": "Server connection verified",
"Set as default": "Задай по подразбиране",
"Set Default Model": "Задай Модел По Подразбиране",
......@@ -422,7 +427,7 @@
"Set Model": "Задай Модел",
"Set reranking model (e.g. {{model}})": "Задай reranking model (e.g. {{model}})",
"Set Steps": "Задай Стъпки",
"Set Task Model": "",
"Set Task Model": "Задаване на модел на задача",
"Set Voice": "Задай Глас",
"Settings": "Настройки",
"Settings saved successfully!": "Настройките са запазени успешно!",
......@@ -481,19 +486,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "Проблеми с достъпът до Ollama?",
"TTS Settings": "TTS Настройки",
"Type": "",
"Type": "Вид",
"Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
"Update and Copy Link": "Обнови и копирай връзка",
"Update password": "Обновяване на парола",
"Upload a GGUF model": "Качване на GGUF модел",
"Upload Files": "",
"Upload Files": "Качване на файлове",
"Upload Progress": "Прогрес на качването",
"URL Mode": "URL Mode",
"Use '#' in the prompt input to load and select your documents.": "Използвайте '#' във промпта за да заредите и изберете вашите документи.",
"Use Gravatar": "Използвайте Gravatar",
"Use Initials": "Използвайте Инициали",
"use_mlock (Ollama)": "use_mlock (Ollama)",
"use_mmap (Ollama)": "use_mmap (Ollama)",
"user": "потребител",
"User Permissions": "Права на потребителя",
"Users": "Потребители",
......@@ -502,13 +509,13 @@
"variable": "променлива",
"variable to have them replaced with clipboard content.": "променливи да се заменят съдържанието от клипборд.",
"Version": "Версия",
"Warning": "",
"Warning": "Предупреждение",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Ако актуализирате или промените вашия модел за вграждане, трябва да повторите импортирането на всички документи.",
"Web": "Уеб",
"Web Loader Settings": "Настройки за зареждане на уеб",
"Web Params": "Параметри за уеб",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "Търсене в уеб",
"Web Search Engine": "Уеб търсачка",
"Webhook URL": "Уебхук URL",
"WebUI Add-ons": "WebUI Добавки",
"WebUI Settings": "WebUI Настройки",
......@@ -521,7 +528,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
"Yesterday": "вчера",
"You": "вие",
"You cannot clone a base model": "",
"You cannot clone a base model": "Не можете да клонирате базов модел",
"You have no archived conversations.": "Нямате архивирани разговори.",
"You have shared this chat": "Вие сте споделели този чат",
"You're a helpful assistant.": "Вие сте полезен асистент.",
......
......@@ -3,19 +3,19 @@
"(Beta)": "(পরিক্ষামূলক)",
"(e.g. `sh webui.sh --api`)": "(যেমন `sh webui.sh --api`)",
"(latest)": "(সর্বশেষ)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ মডেল}}",
"{{ owner }}: You cannot delete a base model": "{{ owner}}: আপনি একটি বেস মডেল মুছতে পারবেন না",
"{{modelName}} is thinking...": "{{modelName}} চিন্তা করছে...",
"{{user}}'s Chats": "{{user}}র চ্যাটস",
"{{webUIName}} Backend Required": "{{webUIName}} ব্যাকএন্ড আবশ্যক",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "চ্যাট এবং ওয়েব অনুসন্ধান প্রশ্নের জন্য শিরোনাম তৈরি করার মতো কাজগুলি সম্পাদন করার সময় একটি টাস্ক মডেল ব্যবহার করা হয়",
"a user": "একজন ব্যাবহারকারী",
"About": "সম্পর্কে",
"Account": "একাউন্ট",
"Accurate information": "সঠিক তথ্য",
"Add": "যোগ করুন",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "একটি মডেল ID যোগ করুন",
"Add a short description about what this model does": "এই মডেলটি কী করে সে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ যুক্ত করুন",
"Add a short title for this prompt": "এই প্রম্পটের জন্য একটি সংক্ষিপ্ত টাইটেল যোগ করুন",
"Add a tag": "একটি ট্যাগ যোগ করুন",
"Add custom prompt": "একটি কাস্টম প্রম্পট যোগ করুন",
......@@ -31,12 +31,13 @@
"Admin Panel": "এডমিন প্যানেল",
"Admin Settings": "এডমিন সেটিংস",
"Advanced Parameters": "এডভান্সড প্যারামিটার্স",
"Advanced Params": "",
"Advanced Params": "অ্যাডভান্সড প্যারাম",
"all": "সব",
"All Documents": "সব ডকুমেন্ট",
"All Users": "সব ইউজার",
"Allow": "অনুমোদন",
"Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন",
"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
"an assistant": "একটা এসিস্ট্যান্ট",
......@@ -48,7 +49,7 @@
"API keys": "এপিআই কোডস",
"April": "আপ্রিল",
"Archive": "আর্কাইভ",
"Archive All Chats": "",
"Archive All Chats": "আর্কাইভ করুন সকল চ্যাট",
"Archived Chats": "চ্যাট ইতিহাস সংরক্ষণাগার",
"are allowed - Activate this command by typing": "অনুমোদিত - কমান্ডটি চালু করার জন্য লিখুন",
"Are you sure?": "আপনি নিশ্চিত?",
......@@ -63,14 +64,14 @@
"available!": "উপলব্ধ!",
"Back": "পেছনে",
"Bad Response": "খারাপ প্রতিক্রিয়া",
"Banners": "",
"Base Model (From)": "",
"Banners": "ব্যানার",
"Base Model (From)": "বেস মডেল (থেকে)",
"before": "পূর্ববর্তী",
"Being lazy": "অলস হওয়া",
"Brave Search API Key": "",
"Brave Search API Key": "সাহসী অনুসন্ধান API কী",
"Bypass SSL verification for Websites": "ওয়েবসাইটের জন্য SSL যাচাই বাতিল করুন",
"Cancel": "বাতিল",
"Capabilities": "",
"Capabilities": "সক্ষমতা",
"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
"Chat": "চ্যাট",
"Chat Bubble UI": "চ্যাট বাবল UI",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "ডকুমেন্টগুলো নির্বাচন করার জন্য এখানে ক্লিক করুন",
"click here.": "এখানে ক্লিক করুন",
"Click on the user role button to change a user's role.": "ইউজারের পদবি পরিবর্তন করার জন্য ইউজারের পদবি বাটনে ক্লিক করুন",
"Clone": "",
"Clone": "ক্লোন",
"Close": "বন্ধ",
"Collection": "সংগ্রহ",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL আবশ্যক।",
"Command": "কমান্ড",
"Concurrent Requests": "",
"Concurrent Requests": "সমকালীন অনুরোধ",
"Confirm Password": "পাসওয়ার্ড নিশ্চিত করুন",
"Connections": "কানেকশনগুলো",
"Content": "বিষয়বস্তু",
......@@ -114,7 +115,7 @@
"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':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
"Create a model": "",
"Create a model": "একটি মডেল তৈরি করুন",
"Create Account": "একাউন্ট তৈরি করুন",
"Create new key": "একটি নতুন কী তৈরি করুন",
"Create new secret key": "একটি নতুন সিক্রেট কী তৈরি করুন",
......@@ -123,7 +124,7 @@
"Current Model": "বর্তমান মডেল",
"Current Password": "বর্তমান পাসওয়ার্ড",
"Custom": "কাস্টম",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "একটি নির্দিষ্ট উদ্দেশ্যে মডেল কাস্টমাইজ করুন",
"Dark": "ডার্ক",
"Database": "ডেটাবেজ",
"December": "ডেসেম্বর",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "ডিফল্ট (Automatic1111)",
"Default (SentenceTransformers)": "ডিফল্ট (SentenceTransformers)",
"Default (Web API)": "ডিফল্ট (Web API)",
"Default Model": "",
"Default Model": "ডিফল্ট মডেল",
"Default model updated": "ডিফল্ট মডেল আপডেট হয়েছে",
"Default Prompt Suggestions": "ডিফল্ট প্রম্পট সাজেশন",
"Default User Role": "ইউজারের ডিফল্ট পদবি",
"delete": "মুছে ফেলুন",
"Delete": "মুছে ফেলুন",
"Delete a model": "একটি মডেল মুছে ফেলুন",
"Delete All Chats": "",
"Delete All Chats": "সব চ্যাট মুছে ফেলুন",
"Delete chat": "চ্যাট মুছে ফেলুন",
"Delete Chat": "চ্যাট মুছে ফেলুন",
"delete this link": "এই লিংক মুছে ফেলুন",
"Delete User": "ইউজার মুছে ফেলুন",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
"Deleted {{name}}": "",
"Deleted {{name}}": "{{name}} মোছা হয়েছে",
"Description": "বিবরণ",
"Didn't fully follow instructions": "ইনস্ট্রাকশন সম্পূর্ণ অনুসরণ করা হয়নি",
"Disabled": "অক্ষম",
"Discover a model": "",
"Discover a model": "একটি মডেল আবিষ্কার করুন",
"Discover a prompt": "একটি প্রম্পট খুঁজে বের করুন",
"Discover, download, and explore custom prompts": "কাস্টম প্রম্পটগুলো আবিস্কার, ডাউনলোড এবং এক্সপ্লোর করুন",
"Discover, download, and explore model presets": "মডেল প্রিসেটগুলো আবিস্কার, ডাউনলোড এবং এক্সপ্লোর করুন",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
"Embedding model set to \"{{embedding_model}}\"": "ইমেজ ইমেবডিং মডেল সেট করা হয়েছে - \"{{embedding_model}}\"",
"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
"Enable Community Sharing": "",
"Enable Community Sharing": "সম্প্রদায় শেয়ারকরণ সক্ষম করুন",
"Enable New Sign Ups": "নতুন সাইনআপ চালু করুন",
"Enable Web Search": "",
"Enable Web Search": "ওয়েব অনুসন্ধান সক্ষম করুন",
"Enabled": "চালু করা হয়েছে",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "আপনার সিএসভি ফাইলটিতে এই ক্রমে 4 টি কলাম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন: নাম, ইমেল, পাসওয়ার্ড, ভূমিকা।.",
"Enter {{role}} message here": "{{role}} মেসেজ এখানে লিখুন",
"Enter a detail about yourself for your LLMs to recall": "আপনার এলএলএমগুলি স্মরণ করার জন্য নিজের সম্পর্কে একটি বিশদ লিখুন",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "সাহসী অনুসন্ধান API কী লিখুন",
"Enter Chunk Overlap": "চাঙ্ক ওভারল্যাপ লিখুন",
"Enter Chunk Size": "চাংক সাইজ লিখুন",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "গিটহাব কাঁচা URL লিখুন",
"Enter Google PSE API Key": "গুগল পিএসই এপিআই কী লিখুন",
"Enter Google PSE Engine Id": "গুগল পিএসই ইঞ্জিন আইডি লিখুন",
"Enter Image Size (e.g. 512x512)": "ছবির মাপ লিখুন (যেমন 512x512)",
"Enter language codes": "ল্যাঙ্গুয়েজ কোড লিখুন",
"Enter model tag (e.g. {{modelTag}})": "মডেল ট্যাগ লিখুন (e.g. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "ধাপের সংখ্যা দিন (যেমন: 50)",
"Enter Score": "স্কোর দিন",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "Searxng ক্যোয়ারী URL লিখুন",
"Enter Serper API Key": "Serper API কী লিখুন",
"Enter Serpstack API Key": "Serpstack API কী লিখুন",
"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
"Enter Top K": "Top K লিখুন",
"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
"Enter Your Role": "আপনার রোল লিখুন",
"Error": "",
"Error": "ত্রুটি",
"Experimental": "পরিক্ষামূলক",
"Export": "রপ্তানি",
"Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)",
"Export chat (.json)": "",
"Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন",
"Export Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং এক্সপোর্ট করুন",
"Export Models": "",
"Export Models": "রপ্তানি মডেল",
"Export Prompts": "প্রম্পটগুলো একপোর্ট করুন",
"Failed to create API Key.": "API Key তৈরি করা যায়নি।",
"Failed to read clipboard contents": "ক্লিপবোর্ডের বিষয়বস্তু পড়া সম্ভব হয়নি",
......@@ -221,15 +224,15 @@
"Focus chat input": "চ্যাট ইনপুট ফোকাস করুন",
"Followed instructions perfectly": "নির্দেশাবলী নিখুঁতভাবে অনুসরণ করা হয়েছে",
"Format your variables using square brackets like this:": "আপনার ভেরিয়বলগুলো এভাবে স্কয়ার ব্রাকেটের মাধ্যমে সাজান",
"Frequency Penalty": "",
"Frequency Penalty": "ফ্রিকোয়েন্সি পেনাল্টি",
"Full Screen Mode": "ফুলস্ক্রিন মোড",
"General": "সাধারণ",
"General Settings": "সাধারণ সেটিংসমূহ",
"Generating search query": "",
"Generating search query": "অনুসন্ধান ক্যোয়ারী তৈরি করা হচ্ছে",
"Generation Info": "জেনারেশন ইনফো",
"Good Response": "ভালো সাড়া",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "গুগল পিএসই এপিআই কী",
"Google PSE Engine Id": "গুগল পিএসই ইঞ্জিন আইডি",
"h:mm a": "h:mm a",
"has no conversations.": "কোন কনভার্সেশন আছে না।",
"Hello, {{name}}": "হ্যালো, {{name}}",
......@@ -243,18 +246,18 @@
"Images": "ছবিসমূহ",
"Import Chats": "চ্যাটগুলি ইমপোর্ট করুন",
"Import Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং ইমপোর্ট করুন",
"Import Models": "",
"Import Models": "মডেল আমদানি করুন",
"Import Prompts": "প্রম্পটগুলো ইমপোর্ট করুন",
"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui চালু করার সময় `--api` ফ্ল্যাগ সংযুক্ত করুন",
"Info": "",
"Info": "তথ্য",
"Input commands": "ইনপুট কমান্ডস",
"Install from Github URL": "",
"Install from Github URL": "Github URL থেকে ইনস্টল করুন",
"Interface": "ইন্টারফেস",
"Invalid Tag": "অবৈধ ট্যাগ",
"January": "জানুয়ারী",
"join our Discord for help.": "সাহায্যের জন্য আমাদের Discord-এ যুক্ত হোন",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "JSON প্রিভিউ",
"July": "জুলাই",
"June": "জুন",
"JWT Expiration": "JWT-র মেয়াদ",
......@@ -271,9 +274,9 @@
"Make sure to enclose them with": "এটা দিয়ে বন্ধনী দিতে ভুলবেন না",
"Manage Models": "মডেলসমূহ ব্যবস্থাপনা করুন",
"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
"Manage Pipelines": "",
"Manage Pipelines": "পাইপলাইন পরিচালনা করুন",
"March": "মার্চ",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "সর্বোচ্চ টোকেন (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
"May": "মে",
"Memories accessible by LLMs will be shown here.": "LLMs দ্বারা অ্যাক্সেসযোগ্য মেমোরিগুলি এখানে দেখানো হবে।",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' মডেল সফলভাবে ডাউনলোড হয়েছে।",
"Model '{{modelTag}}' is already in queue for downloading.": "{{modelTag}} ডাউনলোডের জন্য আগে থেকেই অপেক্ষমান আছে।",
"Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "মডেল {{modelName}} দৃষ্টি সক্ষম নয়",
"Model {{name}} is now {{status}}": "মডেল {{name}} এখন {{status}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "মডেল ফাইলসিস্টেম পাথ পাওয়া গেছে। আপডেটের জন্য মডেলের শর্টনেম আবশ্যক, এগিয়ে যাওয়া যাচ্ছে না।",
"Model ID": "",
"Model ID": "মডেল ID",
"Model not selected": "মডেল নির্বাচন করা হয়নি",
"Model Params": "",
"Model Params": "মডেল প্যারাম",
"Model Whitelisting": "মডেল হোয়াইটলিস্টিং",
"Model(s) Whitelisted": "হোয়াইটলিস্টেড মডেল(সমূহ)",
"Modelfile Content": "মডেলফাইল কনটেন্ট",
......@@ -301,23 +304,25 @@
"More": "আরো",
"Name": "নাম",
"Name Tag": "নামের ট্যাগ",
"Name your model": "",
"Name your model": "আপনার মডেলের নাম দিন",
"New Chat": "নতুন চ্যাট",
"New Password": "নতুন পাসওয়ার্ড",
"No results found": "কোন ফলাফল পাওয়া যায়নি",
"No search query generated": "",
"No search query generated": "কোনও অনুসন্ধান ক্যোয়ারী উত্পন্ন হয়নি",
"No source available": "কোন উৎস পাওয়া যায়নি",
"None": "",
"None": "কোনোটিই নয়",
"Not factually correct": "তথ্যগত দিক থেকে সঠিক নয়",
"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": "নভেম্বর",
"num_thread (Ollama)": "num_thread (ওলামা)",
"October": "অক্টোবর",
"Off": "বন্ধ",
"Okay, Let's Go!": "ঠিক আছে, চলুন যাই!",
"OLED Dark": "OLED ডার্ক",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "Ollama API",
"Ollama API disabled": "Ollama API নিষ্ক্রিয় করা হয়েছে",
"Ollama Version": "Ollama ভার্সন",
"On": "চালু",
"Only": "শুধুমাত্র",
......@@ -342,8 +347,8 @@
"pending": "অপেক্ষমান",
"Permission denied when accessing microphone: {{error}}": "মাইক্রোফোন ব্যবহারের অনুমতি পাওয়া যায়নি: {{error}}",
"Personalization": "ডিজিটাল বাংলা",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "পাইপলাইন",
"Pipelines Valves": "পাইপলাইন ভালভ",
"Plain text (.txt)": "প্লায়েন টেক্সট (.txt)",
"Playground": "খেলাঘর",
"Positive attitude": "পজিটিভ আক্রমণ",
......@@ -388,32 +393,32 @@
"Scan for documents from {{path}}": "ডকুমেন্টসমূহের জন্য {{path}} স্ক্যান করুন",
"Search": "অনুসন্ধান",
"Search a model": "মডেল অনুসন্ধান করুন",
"Search Chats": "",
"Search Chats": "চ্যাট অনুসন্ধান করুন",
"Search Documents": "ডকুমেন্টসমূহ অনুসন্ধান করুন",
"Search Models": "",
"Search Models": "অনুসন্ধান মডেল",
"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
"Search Result Count": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "অনুসন্ধানের ফলাফল গণনা",
"Searched {{count}} sites_one": "{{কাউন্ট}} অনুসন্ধান করা হয়েছে sites_one",
"Searched {{count}} sites_other": "{{কাউন্ট}} অনুসন্ধান করা হয়েছে sites_other",
"Searching the web for '{{searchQuery}}'": "'{{searchQuery}}' এর জন্য ওয়েবে অনুসন্ধান করা হচ্ছে",
"Searxng Query URL": "Searxng ক্যোয়ারী URL",
"See readme.md for instructions": "নির্দেশিকার জন্য readme.md দেখুন",
"See what's new": "নতুন কী আছে দেখুন",
"Seed": "সীড",
"Select a base model": "",
"Select a base model": "একটি বেস মডেল নির্বাচন করুন",
"Select a mode": "একটি মডেল নির্বাচন করুন",
"Select a model": "একটি মডেল নির্বাচন করুন",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "একটি পাইপলাইন নির্বাচন করুন",
"Select a pipeline url": "একটি পাইপলাইন URL নির্বাচন করুন",
"Select an Ollama instance": "একটি Ollama ইন্সট্যান্স নির্বাচন করুন",
"Select model": "মডেল নির্বাচন করুন",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "নির্বাচিত মডেল(গুলি) চিত্র ইনপুট সমর্থন করে না",
"Send": "পাঠান",
"Send a Message": "একটি মেসেজ পাঠান",
"Send message": "মেসেজ পাঠান",
"September": "সেপ্টেম্বর",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "Serper API Key",
"Serpstack API Key": "Serpstack API Key",
"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
......@@ -422,7 +427,7 @@
"Set Model": "মডেল নির্ধারণ করুন",
"Set reranking model (e.g. {{model}})": "রি-র্যাংকিং মডেল নির্ধারণ করুন (উদাহরণ {{model}})",
"Set Steps": "পরবর্তী ধাপসমূহ",
"Set Task Model": "",
"Set Task Model": "টাস্ক মডেল সেট করুন",
"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
"Settings": "সেটিংসমূহ",
"Settings saved successfully!": "সেটিংগুলো সফলভাবে সংরক্ষিত হয়েছে",
......@@ -481,19 +486,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "Ollama এক্সেস করতে সমস্যা হচ্ছে?",
"TTS Settings": "TTS সেটিংসমূহ",
"Type": "",
"Type": "টাইপ",
"Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন",
"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
"Update and Copy Link": "আপডেট এবং লিংক কপি করুন",
"Update password": "পাসওয়ার্ড আপডেট করুন",
"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
"Upload Files": "",
"Upload Files": "ফাইল আপলোড করুন",
"Upload Progress": "আপলোড হচ্ছে",
"URL Mode": "ইউআরএল মোড",
"Use '#' in the prompt input to load and select your documents.": "আপনার ডকুমেন্টসমূহ নির্বাচন করার জন্য আপনার প্রম্পট ইনপুটে '# ব্যবহার করুন।",
"Use Gravatar": "Gravatar ব্যবহার করুন",
"Use Initials": "নামের আদ্যক্ষর ব্যবহার করুন",
"use_mlock (Ollama)": "use_mlock (ওলামা)",
"use_mmap (Ollama)": "use_mmap (ওলামা)",
"user": "ব্যবহারকারী",
"User Permissions": "ইউজার পারমিশনসমূহ",
"Users": "ব্যাবহারকারীগণ",
......@@ -502,13 +509,13 @@
"variable": "ভেরিয়েবল",
"variable to have them replaced with clipboard content.": "ক্লিপবোর্ডের কন্টেন্ট দিয়ে যেই ভেরিয়েবল রিপ্লেস করা যাবে।",
"Version": "ভার্সন",
"Warning": "",
"Warning": "সতর্কীকরণ",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "সতর্কীকরণ: আপনি যদি আপনার এম্বেডিং মডেল আপডেট বা পরিবর্তন করেন, তাহলে আপনাকে সমস্ত নথি পুনরায় আমদানি করতে হবে।.",
"Web": "ওয়েব",
"Web Loader Settings": "ওয়েব লোডার সেটিংস",
"Web Params": "ওয়েব প্যারামিটারসমূহ",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "ওয়েব অনুসন্ধান",
"Web Search Engine": "ওয়েব সার্চ ইঞ্জিন",
"Webhook URL": "ওয়েবহুক URL",
"WebUI Add-ons": "WebUI এড-অনসমূহ",
"WebUI Settings": "WebUI সেটিংসমূহ",
......@@ -521,7 +528,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
"Yesterday": "আগামী",
"You": "আপনি",
"You cannot clone a base model": "",
"You cannot clone a base model": "আপনি একটি বেস মডেল ক্লোন করতে পারবেন না",
"You have no archived conversations.": "আপনার কোনও আর্কাইভ করা কথোপকথন নেই।",
"You have shared this chat": "আপনি এই চ্যাটটি শেয়ার করেছেন",
"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
......
......@@ -3,19 +3,19 @@
"(Beta)": "(Beta)",
"(e.g. `sh webui.sh --api`)": "(p. ex. `sh webui.sh --api`)",
"(latest)": "(últim)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ models }}",
"{{ owner }}: You cannot delete a base model": "{{ propietari }}: No es pot suprimir un model base",
"{{modelName}} is thinking...": "{{modelName}} està pensant...",
"{{user}}'s Chats": "{{user}}'s Chats",
"{{webUIName}} Backend Required": "Es requereix Backend de {{webUIName}}",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de tasca s'utilitza quan es realitzen tasques com ara generar títols per a xats i consultes de cerca web",
"a user": "un usuari",
"About": "Sobre",
"Account": "Compte",
"Accurate information": "Informació precisa",
"Add": "Afegir",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "Afegir un identificador de model",
"Add a short description about what this model does": "Afegiu una breu descripció sobre què fa aquest model",
"Add a short title for this prompt": "Afegeix un títol curt per aquest prompt",
"Add a tag": "Afegeix una etiqueta",
"Add custom prompt": "Afegir un prompt personalitzat",
......@@ -31,12 +31,13 @@
"Admin Panel": "Panell d'Administració",
"Admin Settings": "Configuració d'Administració",
"Advanced Parameters": "Paràmetres Avançats",
"Advanced Params": "",
"Advanced Params": "Paràmetres avançats",
"all": "tots",
"All Documents": "Tots els Documents",
"All Users": "Tots els Usuaris",
"Allow": "Permet",
"Allow Chat Deletion": "Permet la Supressió del Xat",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "caràcters alfanumèrics i guions",
"Already have an account?": "Ja tens un compte?",
"an assistant": "un assistent",
......@@ -48,7 +49,7 @@
"API keys": "Claus de l'API",
"April": "Abril",
"Archive": "Arxiu",
"Archive All Chats": "",
"Archive All Chats": "Arxiva tots els xats",
"Archived Chats": "Arxiu d'historial de xat",
"are allowed - Activate this command by typing": "estan permesos - Activa aquesta comanda escrivint",
"Are you sure?": "Estàs segur?",
......@@ -63,14 +64,14 @@
"available!": "disponible!",
"Back": "Enrere",
"Bad Response": "Resposta Erroni",
"Banners": "",
"Base Model (From)": "",
"Banners": "Banners",
"Base Model (From)": "Model base (des de)",
"before": "abans",
"Being lazy": "Ser l'estupidez",
"Brave Search API Key": "",
"Brave Search API Key": "Clau API Brave Search",
"Bypass SSL verification for Websites": "Desactivar la verificació SSL per a l'accés a l'Internet",
"Cancel": "Cancel·la",
"Capabilities": "",
"Capabilities": "Capacitats",
"Change Password": "Canvia la Contrasenya",
"Chat": "Xat",
"Chat Bubble UI": "Chat Bubble UI",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "Fes clic aquí per seleccionar documents.",
"click here.": "fes clic aquí.",
"Click on the user role button to change a user's role.": "Fes clic al botó de rol d'usuari per canviar el rol d'un usuari.",
"Clone": "",
"Clone": "Clon",
"Close": "Tanca",
"Collection": "Col·lecció",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "URL base de ComfyUI",
"ComfyUI Base URL is required.": "URL base de ComfyUI és obligatòria.",
"Command": "Comanda",
"Concurrent Requests": "",
"Concurrent Requests": "Sol·licituds simultànies",
"Confirm Password": "Confirma la Contrasenya",
"Connections": "Connexions",
"Content": "Contingut",
......@@ -114,7 +115,7 @@
"Copy Link": "Copiar l'enllaç",
"Copying to clipboard was successful!": "La còpia al porta-retalls ha estat exitosa!",
"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':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
"Create a model": "",
"Create a model": "Crear un model",
"Create Account": "Crea un Compte",
"Create new key": "Crea una nova clau",
"Create new secret key": "Crea una nova clau secreta",
......@@ -123,7 +124,7 @@
"Current Model": "Model Actual",
"Current Password": "Contrasenya Actual",
"Custom": "Personalitzat",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "Personalitzar models per a un propòsit específic",
"Dark": "Fosc",
"Database": "Base de Dades",
"December": "Desembre",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "Per defecte (Automatic1111)",
"Default (SentenceTransformers)": "Per defecte (SentenceTransformers)",
"Default (Web API)": "Per defecte (Web API)",
"Default Model": "",
"Default Model": "Model per defecte",
"Default model updated": "Model per defecte actualitzat",
"Default Prompt Suggestions": "Suggeriments de Prompt Per Defecte",
"Default User Role": "Rol d'Usuari Per Defecte",
"delete": "esborra",
"Delete": "Esborra",
"Delete a model": "Esborra un model",
"Delete All Chats": "",
"Delete All Chats": "Suprimir tots els xats",
"Delete chat": "Esborra xat",
"Delete Chat": "Esborra Xat",
"delete this link": "Esborra aquest enllaç",
"Delete User": "Esborra Usuari",
"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
"Deleted {{name}}": "",
"Deleted {{name}}": "Suprimit {{nom}}",
"Description": "Descripció",
"Didn't fully follow instructions": "No s'ha completat els instruccions",
"Disabled": "Desactivat",
"Discover a model": "",
"Discover a model": "Descobreix un model",
"Discover a prompt": "Descobreix un prompt",
"Discover, download, and explore custom prompts": "Descobreix, descarrega i explora prompts personalitzats",
"Discover, download, and explore model presets": "Descobreix, descarrega i explora presets de models",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "Motor de model d'embutiment",
"Embedding model set to \"{{embedding_model}}\"": "Model d'embutiment configurat a \"{{embedding_model}}\"",
"Enable Chat History": "Activa Historial de Xat",
"Enable Community Sharing": "",
"Enable Community Sharing": "Activar l'ús compartit de la comunitat",
"Enable New Sign Ups": "Permet Noves Inscripcions",
"Enable Web Search": "",
"Enable Web Search": "Activa la cerca web",
"Enabled": "Activat",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assegura't que el fitxer CSV inclou 4 columnes en aquest ordre: Nom, Correu Electrònic, Contrasenya, Rol.",
"Enter {{role}} message here": "Introdueix aquí el missatge de {{role}}",
"Enter a detail about yourself for your LLMs to recall": "Introdueix un detall sobre tu per que els LLMs puguin recordar-te",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "Introduïu la clau de l'API Brave Search",
"Enter Chunk Overlap": "Introdueix el Solapament de Blocs",
"Enter Chunk Size": "Introdueix la Mida del Bloc",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "Introduïu l'URL en brut de Github",
"Enter Google PSE API Key": "Introduïu la clau de l'API de Google PSE",
"Enter Google PSE Engine Id": "Introduïu l'identificador del motor PSE de Google",
"Enter Image Size (e.g. 512x512)": "Introdueix la Mida de la Imatge (p. ex. 512x512)",
"Enter language codes": "Introdueix els codis de llenguatge",
"Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Introdueix el Nombre de Passos (p. ex. 50)",
"Enter Score": "Introdueix el Puntuació",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "Introduïu l'URL de consulta de Searxng",
"Enter Serper API Key": "Introduïu la clau de l'API Serper",
"Enter Serpstack API Key": "Introduïu la clau de l'API Serpstack",
"Enter stop sequence": "Introdueix la seqüència de parada",
"Enter Top K": "Introdueix Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "Introdueix el Teu Nom Complet",
"Enter Your Password": "Introdueix la Teva Contrasenya",
"Enter Your Role": "Introdueix el Teu Ròl",
"Error": "",
"Error": "Error",
"Experimental": "Experimental",
"Export": "Exportar",
"Export All Chats (All Users)": "Exporta Tots els Xats (Tots els Usuaris)",
"Export chat (.json)": "",
"Export Chats": "Exporta Xats",
"Export Documents Mapping": "Exporta el Mapatge de Documents",
"Export Models": "",
"Export Models": "Models d'exportació",
"Export Prompts": "Exporta Prompts",
"Failed to create API Key.": "No s'ha pogut crear la clau d'API.",
"Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls",
......@@ -221,15 +224,15 @@
"Focus chat input": "Enfoca l'entrada del xat",
"Followed instructions perfectly": "Siguiu les instruccions perfeicte",
"Format your variables using square brackets like this:": "Formata les teves variables utilitzant claudàtors així:",
"Frequency Penalty": "",
"Frequency Penalty": "Pena de freqüència",
"Full Screen Mode": "Mode de Pantalla Completa",
"General": "General",
"General Settings": "Configuració General",
"Generating search query": "",
"Generating search query": "Generació de consultes de cerca",
"Generation Info": "Informació de Generació",
"Good Response": "Resposta bona",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "Clau de l'API PSE de Google",
"Google PSE Engine Id": "Identificador del motor PSE de Google",
"h:mm a": "h:mm a",
"has no conversations.": "no té converses.",
"Hello, {{name}}": "Hola, {{name}}",
......@@ -243,18 +246,18 @@
"Images": "Imatges",
"Import Chats": "Importa Xats",
"Import Documents Mapping": "Importa el Mapa de Documents",
"Import Models": "",
"Import Models": "Models d'importació",
"Import Prompts": "Importa Prompts",
"Include `--api` flag when running stable-diffusion-webui": "Inclou la bandera `--api` quan executis stable-diffusion-webui",
"Info": "",
"Info": "Informació",
"Input commands": "Entra ordres",
"Install from Github URL": "",
"Install from Github URL": "Instal·leu des de l'URL de Github",
"Interface": "Interfície",
"Invalid Tag": "Etiqueta Inválida",
"January": "Gener",
"join our Discord for help.": "uneix-te al nostre Discord per ajuda.",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "Vista prèvia de JSON",
"July": "Juliol",
"June": "Juny",
"JWT Expiration": "Expiració de JWT",
......@@ -271,9 +274,9 @@
"Make sure to enclose them with": "Assegura't d'envoltar-los amb",
"Manage Models": "Gestiona Models",
"Manage Ollama Models": "Gestiona Models Ollama",
"Manage Pipelines": "",
"Manage Pipelines": "Gestionar canonades",
"March": "Març",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "Max Fitxes (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
"May": "Maig",
"Memories accessible by LLMs will be shown here.": "Els memòries accessible per a LLMs es mostraran aquí.",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "El model '{{modelName}}' s'ha descarregat amb èxit.",
"Model '{{modelTag}}' is already in queue for downloading.": "El model '{{modelTag}}' ja està en cua per ser descarregat.",
"Model {{modelId}} not found": "Model {{modelId}} no trobat",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "El model {{modelName}} no és capaç de visió",
"Model {{name}} is now {{status}}": "El model {{nom}} ara és {{estat}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "S'ha detectat el camí del sistema de fitxers del model. És necessari un nom curt del model per a actualitzar, no es pot continuar.",
"Model ID": "",
"Model ID": "Identificador del model",
"Model not selected": "Model no seleccionat",
"Model Params": "",
"Model Params": "Paràmetres del model",
"Model Whitelisting": "Llista Blanca de Models",
"Model(s) Whitelisted": "Model(s) a la Llista Blanca",
"Modelfile Content": "Contingut del Fitxer de Model",
......@@ -301,23 +304,25 @@
"More": "Més",
"Name": "Nom",
"Name Tag": "Etiqueta de Nom",
"Name your model": "",
"Name your model": "Posa un nom al model",
"New Chat": "Xat Nou",
"New Password": "Nova Contrasenya",
"No results found": "No s'han trobat resultats",
"No search query generated": "",
"No search query generated": "No es genera cap consulta de cerca",
"No source available": "Sense font disponible",
"None": "",
"None": "Cap",
"Not factually correct": "No està clarament correcte",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si establiscs una puntuació mínima, la cerca només retornarà documents amb una puntuació major o igual a la puntuació mínima.",
"Notifications": "Notificacions d'Escriptori",
"November": "Novembre",
"num_thread (Ollama)": "num_thread (Ollama)",
"October": "Octubre",
"Off": "Desactivat",
"Okay, Let's Go!": "D'acord, Anem!",
"OLED Dark": "OLED Fosc",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "API d'Ollama",
"Ollama API disabled": "L'API d'Ollama desactivada",
"Ollama Version": "Versió d'Ollama",
"On": "Activat",
"Only": "Només",
......@@ -342,8 +347,8 @@
"pending": "pendent",
"Permission denied when accessing microphone: {{error}}": "Permís denegat en accedir al micròfon: {{error}}",
"Personalization": "Personalització",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "Canonades",
"Pipelines Valves": "Vàlvules de canonades",
"Plain text (.txt)": "Text pla (.txt)",
"Playground": "Zona de Jocs",
"Positive attitude": "Attitudin positiva",
......@@ -388,33 +393,33 @@
"Scan for documents from {{path}}": "Escaneja documents des de {{path}}",
"Search": "Cerca",
"Search a model": "Cerca un model",
"Search Chats": "",
"Search Chats": "Cercar xats",
"Search Documents": "Cerca Documents",
"Search Models": "",
"Search Models": "Models de cerca",
"Search Prompts": "Cerca Prompts",
"Search Result Count": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_many": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "Recompte de resultats de cerca",
"Searched {{count}} sites_one": "Cercat {{count}} sites_one",
"Searched {{count}} sites_many": "Cercat {{recompte}} sites_many",
"Searched {{count}} sites_other": "Cercat {{recompte}} sites_other",
"Searching the web for '{{searchQuery}}'": "Cerca a la web de '{{searchQuery}}'",
"Searxng Query URL": "Searxng URL de consulta",
"See readme.md for instructions": "Consulta el readme.md per a instruccions",
"See what's new": "Veure novetats",
"Seed": "Llavor",
"Select a base model": "",
"Select a base model": "Seleccionar un model base",
"Select a mode": "Selecciona un mode",
"Select a model": "Selecciona un model",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "Seleccioneu una canonada",
"Select a pipeline url": "Seleccionar un URL de canonada",
"Select an Ollama instance": "Selecciona una instància d'Ollama",
"Select model": "Selecciona un model",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "Els models seleccionats no admeten l'entrada d'imatges",
"Send": "Envia",
"Send a Message": "Envia un Missatge",
"Send message": "Envia missatge",
"September": "Setembre",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "Clau API Serper",
"Serpstack API Key": "Serpstack API Key",
"Server connection verified": "Connexió al servidor verificada",
"Set as default": "Estableix com a predeterminat",
"Set Default Model": "Estableix Model Predeterminat",
......@@ -423,7 +428,7 @@
"Set Model": "Estableix Model",
"Set reranking model (e.g. {{model}})": "Estableix el model de reranking (p.ex. {{model}})",
"Set Steps": "Estableix Passos",
"Set Task Model": "",
"Set Task Model": "Defineix el model de tasca",
"Set Voice": "Estableix Veu",
"Settings": "Configuracions",
"Settings saved successfully!": "Configuracions guardades amb èxit!",
......@@ -482,19 +487,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "Problemes accedint a Ollama?",
"TTS Settings": "Configuracions TTS",
"Type": "",
"Type": "Tipus",
"Type Hugging Face Resolve (Download) URL": "Escriu URL de Resolució (Descàrrega) de Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
"Update and Copy Link": "Actualitza i Copia enllaç",
"Update password": "Actualitza contrasenya",
"Upload a GGUF model": "Puja un model GGUF",
"Upload Files": "",
"Upload Files": "Pujar fitxers",
"Upload Progress": "Progrés de Càrrega",
"URL Mode": "Mode URL",
"Use '#' in the prompt input to load and select your documents.": "Utilitza '#' a l'entrada del prompt per carregar i seleccionar els teus documents.",
"Use Gravatar": "Utilitza Gravatar",
"Use Initials": "Utilitza Inicials",
"use_mlock (Ollama)": "use_mlock (Ollama)",
"use_mmap (Ollama)": "use_mmap (Ollama)",
"user": "usuari",
"User Permissions": "Permisos d'Usuari",
"Users": "Usuaris",
......@@ -503,13 +510,13 @@
"variable": "variable",
"variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.",
"Version": "Versió",
"Warning": "",
"Warning": "Advertiment",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si actualitzeu o canvieu el model d'incrustació, haureu de tornar a importar tots els documents.",
"Web": "Web",
"Web Loader Settings": "Configuració del carregador web",
"Web Params": "Paràmetres web",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "Cercador web",
"Web Search Engine": "Cercador web",
"Webhook URL": "URL del webhook",
"WebUI Add-ons": "Complements de WebUI",
"WebUI Settings": "Configuració de WebUI",
......@@ -522,7 +529,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
"Yesterday": "Ayer",
"You": "Tu",
"You cannot clone a base model": "",
"You cannot clone a base model": "No es pot clonar un model base",
"You have no archived conversations.": "No tens converses arxivades.",
"You have shared this chat": "Has compartit aquest xat",
"You're a helpful assistant.": "Ets un assistent útil.",
......
......@@ -37,6 +37,7 @@
"All Users": "Ang tanan nga mga tiggamit",
"Allow": "Sa pagtugot",
"Allow Chat Deletion": "Tugoti nga mapapas ang mga chat",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "alphanumeric nga mga karakter ug hyphen",
"Already have an account?": "Naa na kay account ?",
"an assistant": "usa ka katabang",
......@@ -205,7 +206,9 @@
"Enter Your Role": "",
"Error": "",
"Experimental": "Eksperimento",
"Export": "",
"Export All Chats (All Users)": "I-export ang tanan nga mga chat (Tanan nga tiggamit)",
"Export chat (.json)": "",
"Export Chats": "I-export ang mga chat",
"Export Documents Mapping": "I-export ang pagmapa sa dokumento",
"Export Models": "",
......@@ -312,12 +315,14 @@
"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": "Mga pahibalo sa desktop",
"November": "",
"num_thread (Ollama)": "",
"October": "",
"Off": "Napuo",
"Okay, Let's Go!": "Okay, lakaw na!",
"OLED Dark": "",
"Ollama": "",
"Ollama API": "",
"Ollama API disabled": "",
"Ollama Version": "Ollama nga bersyon",
"On": "Gipaandar",
"Only": "Lamang",
......@@ -494,6 +499,8 @@
"Use '#' in the prompt input to load and select your documents.": "Gamita ang '#' sa dali nga pagsulod aron makarga ug mapili ang imong mga dokumento.",
"Use Gravatar": "Paggamit sa Gravatar",
"Use Initials": "",
"use_mlock (Ollama)": "",
"use_mmap (Ollama)": "",
"user": "tiggamit",
"User Permissions": "Mga permiso sa tiggamit",
"Users": "Mga tiggamit",
......
......@@ -3,19 +3,19 @@
"(Beta)": "(Beta)",
"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)",
"(latest)": "(neueste)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ Modelle }}",
"{{ owner }}: You cannot delete a base model": "{{ owner }}: Sie können ein Basismodell nicht löschen",
"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
"{{user}}'s Chats": "{{user}}s Chats",
"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Ein Aufgabenmodell wird verwendet, wenn Aufgaben wie das Generieren von Titeln für Chats und Websuchanfragen ausgeführt werden",
"a user": "ein Benutzer",
"About": "Über",
"Account": "Account",
"Accurate information": "Genaue Information",
"Add": "Hinzufügen",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "Hinzufügen einer Modell-ID",
"Add a short description about what this model does": "Fügen Sie eine kurze Beschreibung hinzu, was dieses Modell tut",
"Add a short title for this prompt": "Füge einen kurzen Titel für diesen Prompt hinzu",
"Add a tag": "benenne",
"Add custom prompt": "Eigenen Prompt hinzufügen",
......@@ -31,12 +31,13 @@
"Admin Panel": "Admin Panel",
"Admin Settings": "Admin Einstellungen",
"Advanced Parameters": "Erweiterte Parameter",
"Advanced Params": "",
"Advanced Params": "Erweiterte Parameter",
"all": "Alle",
"All Documents": "Alle Dokumente",
"All Users": "Alle Benutzer",
"Allow": "Erlauben",
"Allow Chat Deletion": "Chat Löschung erlauben",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "alphanumerische Zeichen und Bindestriche",
"Already have an account?": "Hast du vielleicht schon ein Account?",
"an assistant": "ein Assistent",
......@@ -48,7 +49,7 @@
"API keys": "API Schlüssel",
"April": "April",
"Archive": "Archivieren",
"Archive All Chats": "",
"Archive All Chats": "Alle Chats archivieren",
"Archived Chats": "Archivierte Chats",
"are allowed - Activate this command by typing": "sind erlaubt - Aktiviere diesen Befehl, indem du",
"Are you sure?": "Bist du sicher?",
......@@ -63,14 +64,14 @@
"available!": "verfügbar!",
"Back": "Zurück",
"Bad Response": "Schlechte Antwort",
"Banners": "",
"Base Model (From)": "",
"Banners": "Banner",
"Base Model (From)": "Basismodell (von)",
"before": "bereits geteilt",
"Being lazy": "Faul sein",
"Brave Search API Key": "",
"Brave Search API Key": "API-Schlüssel für die Brave-Suche",
"Bypass SSL verification for Websites": "Bypass SSL-Verifizierung für Websites",
"Cancel": "Abbrechen",
"Capabilities": "",
"Capabilities": "Fähigkeiten",
"Change Password": "Passwort ändern",
"Chat": "Chat",
"Chat Bubble UI": "Chat Bubble UI",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "Klicke hier um Dokumente auszuwählen",
"click here.": "hier klicken.",
"Click on the user role button to change a user's role.": "Klicke auf die Benutzerrollenschaltfläche, um die Rolle eines Benutzers zu ändern.",
"Clone": "",
"Clone": "Klonen",
"Close": "Schließe",
"Collection": "Kollektion",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL wird benötigt.",
"Command": "Befehl",
"Concurrent Requests": "",
"Concurrent Requests": "Gleichzeitige Anforderungen",
"Confirm Password": "Passwort bestätigen",
"Connections": "Verbindungen",
"Content": "Inhalt",
......@@ -114,7 +115,7 @@
"Copy Link": "Link kopieren",
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
"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':": "Erstelle einen prägnanten Satz mit 3-5 Wörtern als Überschrift für die folgende Abfrage. Halte dich dabei strikt an die 3-5-Wort-Grenze und vermeide die Verwendung des Wortes Titel:",
"Create a model": "",
"Create a model": "Erstellen eines Modells",
"Create Account": "Konto erstellen",
"Create new key": "Neuen Schlüssel erstellen",
"Create new secret key": "Neuen API Schlüssel erstellen",
......@@ -123,7 +124,7 @@
"Current Model": "Aktuelles Modell",
"Current Password": "Aktuelles Passwort",
"Custom": "Benutzerdefiniert",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "Modelle für einen bestimmten Zweck anpassen",
"Dark": "Dunkel",
"Database": "Datenbank",
"December": "Dezember",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "Standard (Automatic1111)",
"Default (SentenceTransformers)": "Standard (SentenceTransformers)",
"Default (Web API)": "Standard (Web-API)",
"Default Model": "",
"Default Model": "Standardmodell",
"Default model updated": "Standardmodell aktualisiert",
"Default Prompt Suggestions": "Standard-Prompt-Vorschläge",
"Default User Role": "Standardbenutzerrolle",
"delete": "löschen",
"Delete": "Löschen",
"Delete a model": "Ein Modell löschen",
"Delete All Chats": "",
"Delete All Chats": "Alle Chats löschen",
"Delete chat": "Chat löschen",
"Delete Chat": "Chat löschen",
"delete this link": "diesen Link zu löschen",
"Delete User": "Benutzer löschen",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
"Deleted {{name}}": "",
"Deleted {{name}}": "Gelöscht {{name}}",
"Description": "Beschreibung",
"Didn't fully follow instructions": "Nicht genau den Answeisungen gefolgt",
"Disabled": "Deaktiviert",
"Discover a model": "",
"Discover a model": "Entdecken Sie ein Modell",
"Discover a prompt": "Einen Prompt entdecken",
"Discover, download, and explore custom prompts": "Benutzerdefinierte Prompts entdecken, herunterladen und erkunden",
"Discover, download, and explore model presets": "Modellvorgaben entdecken, herunterladen und erkunden",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "Embedding-Modell-Engine",
"Embedding model set to \"{{embedding_model}}\"": "Embedding-Modell auf \"{{embedding_model}}\" gesetzt",
"Enable Chat History": "Chat-Verlauf aktivieren",
"Enable Community Sharing": "",
"Enable Community Sharing": "Community-Freigabe aktivieren",
"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
"Enable Web Search": "",
"Enable Web Search": "Websuche aktivieren",
"Enabled": "Aktiviert",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Stellen Sie sicher, dass Ihre CSV-Datei 4 Spalten in dieser Reihenfolge enthält: Name, E-Mail, Passwort, Rolle.",
"Enter {{role}} message here": "Gib die {{role}} Nachricht hier ein",
"Enter a detail about yourself for your LLMs to recall": "Geben Sie einen Detail über sich selbst ein, um für Ihre LLMs zu erinnern",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "Geben Sie den API-Schlüssel für die Brave-Suche ein",
"Enter Chunk Overlap": "Gib den Chunk Overlap ein",
"Enter Chunk Size": "Gib die Chunk Size ein",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "Geben Sie die Github Raw-URL ein",
"Enter Google PSE API Key": "Geben Sie den Google PSE-API-Schlüssel ein",
"Enter Google PSE Engine Id": "Geben Sie die Google PSE-Engine-ID ein",
"Enter Image Size (e.g. 512x512)": "Gib die Bildgröße ein (z.B. 512x512)",
"Enter language codes": "Geben Sie die Sprachcodes ein",
"Enter model tag (e.g. {{modelTag}})": "Gib den Model-Tag ein",
"Enter Number of Steps (e.g. 50)": "Gib die Anzahl an Schritten ein (z.B. 50)",
"Enter Score": "Score eingeben",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "Geben Sie die Searxng-Abfrage-URL ein",
"Enter Serper API Key": "Serper-API-Schlüssel eingeben",
"Enter Serpstack API Key": "Geben Sie den Serpstack-API-Schlüssel ein",
"Enter stop sequence": "Stop-Sequenz eingeben",
"Enter Top K": "Gib Top K ein",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Gib die URL ein (z.B. http://127.0.0.1:7860/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
"Enter Your Password": "Gib dein Passwort ein",
"Enter Your Role": "Gebe deine Rolle ein",
"Error": "",
"Error": "Fehler",
"Experimental": "Experimentell",
"Export": "Exportieren",
"Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)",
"Export chat (.json)": "",
"Export Chats": "Chats exportieren",
"Export Documents Mapping": "Dokumentenmapping exportieren",
"Export Models": "",
"Export Models": "Modelle exportieren",
"Export Prompts": "Prompts exportieren",
"Failed to create API Key.": "API Key erstellen fehlgeschlagen",
"Failed to read clipboard contents": "Fehler beim Lesen des Zwischenablageninhalts",
......@@ -221,15 +224,15 @@
"Focus chat input": "Chat-Eingabe fokussieren",
"Followed instructions perfectly": "Anweisungen perfekt befolgt",
"Format your variables using square brackets like this:": "Formatiere deine Variablen mit eckigen Klammern wie folgt:",
"Frequency Penalty": "",
"Frequency Penalty": "Frequenz-Strafe",
"Full Screen Mode": "Vollbildmodus",
"General": "Allgemein",
"General Settings": "Allgemeine Einstellungen",
"Generating search query": "",
"Generating search query": "Suchanfrage generieren",
"Generation Info": "Generierungsinformationen",
"Good Response": "Gute Antwort",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "Google PSE-API-Schlüssel",
"Google PSE Engine Id": "Google PSE-Engine-ID",
"h:mm a": "h:mm a",
"has no conversations.": "hat keine Unterhaltungen.",
"Hello, {{name}}": "Hallo, {{name}}",
......@@ -243,18 +246,18 @@
"Images": "Bilder",
"Import Chats": "Chats importieren",
"Import Documents Mapping": "Dokumentenmapping importieren",
"Import Models": "",
"Import Models": "Modelle importieren",
"Import Prompts": "Prompts importieren",
"Include `--api` flag when running stable-diffusion-webui": "Füge das `--api`-Flag hinzu, wenn du stable-diffusion-webui nutzt",
"Info": "",
"Info": "Info",
"Input commands": "Eingabebefehle",
"Install from Github URL": "",
"Install from Github URL": "Installieren Sie von der Github-URL",
"Interface": "Benutzeroberfläche",
"Invalid Tag": "Ungültiger Tag",
"January": "Januar",
"join our Discord for help.": "Trete unserem Discord bei, um Hilfe zu erhalten.",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "JSON-Vorschau",
"July": "Juli",
"June": "Juni",
"JWT Expiration": "JWT-Ablauf",
......@@ -271,9 +274,9 @@
"Make sure to enclose them with": "Formatiere deine Variablen mit:",
"Manage Models": "Modelle verwalten",
"Manage Ollama Models": "Ollama-Modelle verwalten",
"Manage Pipelines": "",
"Manage Pipelines": "Verwalten von Pipelines",
"March": "März",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "Max. Token (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
"May": "Mai",
"Memories accessible by LLMs will be shown here.": "Memories, die von LLMs zugänglich sind, werden hier angezeigt.",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.",
"Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.",
"Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "Das Modell {{modelName}} ist nicht sehfähig",
"Model {{name}} is now {{status}}": "Modell {{name}} ist jetzt {{status}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modell-Dateisystempfad erkannt. Modellkurzname ist für das Update erforderlich, Fortsetzung nicht möglich.",
"Model ID": "",
"Model ID": "Modell-ID",
"Model not selected": "Modell nicht ausgewählt",
"Model Params": "",
"Model Params": "Modell-Params",
"Model Whitelisting": "Modell-Whitelisting",
"Model(s) Whitelisted": "Modell(e) auf der Whitelist",
"Modelfile Content": "Modelfile Content",
......@@ -301,23 +304,25 @@
"More": "Mehr",
"Name": "Name",
"Name Tag": "Namens-Tag",
"Name your model": "",
"Name your model": "Benennen Sie Ihr Modell",
"New Chat": "Neuer Chat",
"New Password": "Neues Passwort",
"No results found": "Keine Ergebnisse gefunden",
"No search query generated": "",
"No search query generated": "Keine Suchanfrage generiert",
"No source available": "Keine Quelle verfügbar.",
"None": "",
"None": "Nichts",
"Not factually correct": "Nicht sachlich korrekt.",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Hinweis: Wenn du einen Mindestscore festlegst, wird die Suche nur Dokumente zurückgeben, deren Score größer oder gleich dem Mindestscore ist.",
"Notifications": "Desktop-Benachrichtigungen",
"November": "November",
"num_thread (Ollama)": "num_thread (Ollama)",
"October": "Oktober",
"Off": "Aus",
"Okay, Let's Go!": "Okay, los geht's!",
"OLED Dark": "OLED Dunkel",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "Ollama-API",
"Ollama API disabled": "Ollama-API deaktiviert",
"Ollama Version": "Ollama-Version",
"On": "Ein",
"Only": "Nur",
......@@ -342,8 +347,8 @@
"pending": "ausstehend",
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
"Personalization": "Personalisierung",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "Pipelines",
"Pipelines Valves": "Rohrleitungen Ventile",
"Plain text (.txt)": "Nur Text (.txt)",
"Playground": "Testumgebung",
"Positive attitude": "Positive Einstellung",
......@@ -388,32 +393,32 @@
"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
"Search": "Suchen",
"Search a model": "Nach einem Modell suchen",
"Search Chats": "",
"Search Chats": "Chats durchsuchen",
"Search Documents": "Dokumente suchen",
"Search Models": "",
"Search Models": "Modelle suchen",
"Search Prompts": "Prompts suchen",
"Search Result Count": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "Anzahl der Suchergebnisse",
"Searched {{count}} sites_one": "Gesucht {{count}} sites_one",
"Searched {{count}} sites_other": "Gesucht {{count}} sites_other",
"Searching the web for '{{searchQuery}}'": "Suche im Web nach '{{searchQuery}}'",
"Searxng Query URL": "Searxng-Abfrage-URL",
"See readme.md for instructions": "Anleitung in readme.md anzeigen",
"See what's new": "Was gibt's Neues",
"Seed": "Seed",
"Select a base model": "",
"Select a base model": "Wählen Sie ein Basismodell",
"Select a mode": "Einen Modus auswählen",
"Select a model": "Ein Modell auswählen",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "Wählen Sie eine Pipeline aus",
"Select a pipeline url": "Auswählen einer Pipeline-URL",
"Select an Ollama instance": "Eine Ollama Instanz auswählen",
"Select model": "Modell auswählen",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "Ausgewählte Modelle unterstützen keine Bildeingaben",
"Send": "Senden",
"Send a Message": "Eine Nachricht senden",
"Send message": "Nachricht senden",
"September": "September",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "Serper-API-Schlüssel",
"Serpstack API Key": "Serpstack-API-Schlüssel",
"Server connection verified": "Serververbindung überprüft",
"Set as default": "Als Standard festlegen",
"Set Default Model": "Standardmodell festlegen",
......@@ -422,7 +427,7 @@
"Set Model": "Modell festlegen",
"Set reranking model (e.g. {{model}})": "Rerankingmodell festlegen (z.B. {{model}})",
"Set Steps": "Schritte festlegen",
"Set Task Model": "",
"Set Task Model": "Aufgabenmodell festlegen",
"Set Voice": "Stimme festlegen",
"Settings": "Einstellungen",
"Settings saved successfully!": "Einstellungen erfolgreich gespeichert!",
......@@ -481,19 +486,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "Probleme beim Zugriff auf Ollama?",
"TTS Settings": "TTS-Einstellungen",
"Type": "",
"Type": "Art",
"Type Hugging Face Resolve (Download) URL": "Gib die Hugging Face Resolve (Download) URL ein",
"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
"Update and Copy Link": "Erneuern und kopieren",
"Update password": "Passwort aktualisieren",
"Upload a GGUF model": "GGUF Model hochladen",
"Upload Files": "",
"Upload Files": "Dateien hochladen",
"Upload Progress": "Upload Progress",
"URL Mode": "URL Modus",
"Use '#' in the prompt input to load and select your documents.": "Verwende '#' in der Prompt-Eingabe, um deine Dokumente zu laden und auszuwählen.",
"Use Gravatar": "Gravatar verwenden",
"Use Initials": "Initialen verwenden",
"use_mlock (Ollama)": "use_mlock (Ollama)",
"use_mmap (Ollama)": "use_mmap (Ollama)",
"user": "Benutzer",
"User Permissions": "Benutzerberechtigungen",
"Users": "Benutzer",
......@@ -502,13 +509,13 @@
"variable": "Variable",
"variable to have them replaced with clipboard content.": "Variable, um den Inhalt der Zwischenablage beim Nutzen des Prompts zu ersetzen.",
"Version": "Version",
"Warning": "",
"Warning": "Warnung",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
"Web": "Web",
"Web Loader Settings": "Web Loader Einstellungen",
"Web Params": "Web Parameter",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "Websuche",
"Web Search Engine": "Web-Suchmaschine",
"Webhook URL": "Webhook URL",
"WebUI Add-ons": "WebUI-Add-Ons",
"WebUI Settings": "WebUI-Einstellungen",
......@@ -521,7 +528,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
"Yesterday": "Gestern",
"You": "Du",
"You cannot clone a base model": "",
"You cannot clone a base model": "Sie können ein Basismodell nicht klonen",
"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
"You have shared this chat": "Du hast diesen Chat",
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
......
......@@ -37,6 +37,7 @@
"All Users": "All Users",
"Allow": "Allow",
"Allow Chat Deletion": "Allow Delete Chats",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "so alpha, many hyphen",
"Already have an account?": "Such account exists?",
"an assistant": "such assistant",
......@@ -205,7 +206,9 @@
"Enter Your Role": "",
"Error": "",
"Experimental": "Much Experiment",
"Export": "",
"Export All Chats (All Users)": "Export All Chats (All Doggos)",
"Export chat (.json)": "",
"Export Chats": "Export Barks",
"Export Documents Mapping": "Export Mappings of Dogos",
"Export Models": "",
......@@ -312,12 +315,14 @@
"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": "Notifications",
"November": "",
"num_thread (Ollama)": "",
"October": "",
"Off": "Off",
"Okay, Let's Go!": "Okay, Let's Go!",
"OLED Dark": "OLED Dark",
"Ollama": "",
"Ollama API": "",
"Ollama API disabled": "",
"Ollama Version": "Ollama Version",
"On": "On",
"Only": "Only",
......@@ -494,6 +499,8 @@
"Use '#' in the prompt input to load and select your documents.": "Use '#' in the prompt input to load and select your documents. Much use.",
"Use Gravatar": "Use Gravatar much avatar",
"Use Initials": "Use Initials much initial",
"use_mlock (Ollama)": "",
"use_mmap (Ollama)": "",
"user": "user much user",
"User Permissions": "User Permissions much permissions",
"Users": "Users much users",
......
......@@ -37,6 +37,7 @@
"All Users": "",
"Allow": "",
"Allow Chat Deletion": "",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "",
"Already have an account?": "",
"an assistant": "",
......@@ -205,7 +206,9 @@
"Enter Your Role": "",
"Error": "",
"Experimental": "",
"Export": "",
"Export All Chats (All Users)": "",
"Export chat (.json)": "",
"Export Chats": "",
"Export Documents Mapping": "",
"Export Models": "",
......@@ -312,12 +315,14 @@
"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": "",
"num_thread (Ollama)": "",
"October": "",
"Off": "",
"Okay, Let's Go!": "",
"OLED Dark": "",
"Ollama": "",
"Ollama API": "",
"Ollama API disabled": "",
"Ollama Version": "",
"On": "",
"Only": "",
......@@ -494,6 +499,8 @@
"Use '#' in the prompt input to load and select your documents.": "",
"Use Gravatar": "",
"Use Initials": "",
"use_mlock (Ollama)": "",
"use_mmap (Ollama)": "",
"user": "",
"User Permissions": "",
"Users": "",
......
......@@ -37,6 +37,7 @@
"All Users": "",
"Allow": "",
"Allow Chat Deletion": "",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "",
"Already have an account?": "",
"an assistant": "",
......@@ -205,7 +206,9 @@
"Enter Your Role": "",
"Error": "",
"Experimental": "",
"Export": "",
"Export All Chats (All Users)": "",
"Export chat (.json)": "",
"Export Chats": "",
"Export Documents Mapping": "",
"Export Models": "",
......@@ -312,12 +315,14 @@
"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": "",
"num_thread (Ollama)": "",
"October": "",
"Off": "",
"Okay, Let's Go!": "",
"OLED Dark": "",
"Ollama": "",
"Ollama API": "",
"Ollama API disabled": "",
"Ollama Version": "",
"On": "",
"Only": "",
......@@ -494,6 +499,8 @@
"Use '#' in the prompt input to load and select your documents.": "",
"Use Gravatar": "",
"Use Initials": "",
"use_mlock (Ollama)": "",
"use_mmap (Ollama)": "",
"user": "",
"User Permissions": "",
"Users": "",
......
......@@ -3,19 +3,19 @@
"(Beta)": "(Beta)",
"(e.g. `sh webui.sh --api`)": "(p.ej. `sh webui.sh --api`)",
"(latest)": "(latest)",
"{{ models }}": "",
"{{ owner }}: You cannot delete a base model": "",
"{{ models }}": "{{ modelos }}",
"{{ owner }}: You cannot delete a base model": "{{ owner }}: No se puede eliminar un modelo base",
"{{modelName}} is thinking...": "{{modelName}} está pensando...",
"{{user}}'s Chats": "{{user}}'s Chats",
"{{webUIName}} Backend Required": "{{webUIName}} Servidor Requerido",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modelo de tareas se utiliza cuando se realizan tareas como la generación de títulos para chats y consultas de búsqueda web",
"a user": "un usuario",
"About": "Sobre nosotros",
"Account": "Cuenta",
"Accurate information": "Información precisa",
"Add": "Agregar",
"Add a model id": "",
"Add a short description about what this model does": "",
"Add a model id": "Adición de un identificador de modelo",
"Add a short description about what this model does": "Agregue una breve descripción sobre lo que hace este modelo",
"Add a short title for this prompt": "Agregue un título corto para este Prompt",
"Add a tag": "Agregar una etiqueta",
"Add custom prompt": "Agregar un prompt personalizado",
......@@ -31,12 +31,13 @@
"Admin Panel": "Panel de Administración",
"Admin Settings": "Configuración de Administrador",
"Advanced Parameters": "Parámetros Avanzados",
"Advanced Params": "",
"Advanced Params": "Parámetros avanzados",
"all": "todo",
"All Documents": "Todos los Documentos",
"All Users": "Todos los Usuarios",
"Allow": "Permitir",
"Allow Chat Deletion": "Permitir Borrar Chats",
"Allow non-local voices": "",
"alphanumeric characters and hyphens": "caracteres alfanuméricos y guiones",
"Already have an account?": "¿Ya tienes una cuenta?",
"an assistant": "un asistente",
......@@ -48,7 +49,7 @@
"API keys": "Claves de la API",
"April": "Abril",
"Archive": "Archivar",
"Archive All Chats": "",
"Archive All Chats": "Archivar todos los chats",
"Archived Chats": "Chats archivados",
"are allowed - Activate this command by typing": "están permitidos - Active este comando escribiendo",
"Are you sure?": "¿Está seguro?",
......@@ -63,14 +64,14 @@
"available!": "¡disponible!",
"Back": "Volver",
"Bad Response": "Respuesta incorrecta",
"Banners": "",
"Base Model (From)": "",
"Banners": "Banners",
"Base Model (From)": "Modelo base (desde)",
"before": "antes",
"Being lazy": "Ser perezoso",
"Brave Search API Key": "",
"Brave Search API Key": "Clave de API de Brave Search",
"Bypass SSL verification for Websites": "Desactivar la verificación SSL para sitios web",
"Cancel": "Cancelar",
"Capabilities": "",
"Capabilities": "Capacidades",
"Change Password": "Cambia la Contraseña",
"Chat": "Chat",
"Chat Bubble UI": "Burbuja de chat UI",
......@@ -93,14 +94,14 @@
"Click here to select documents.": "Presiona aquí para seleccionar documentos",
"click here.": "Presiona aquí.",
"Click on the user role button to change a user's role.": "Presiona en el botón de roles del usuario para cambiar su rol.",
"Clone": "",
"Clone": "Clon",
"Close": "Cerrar",
"Collection": "Colección",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL es requerido.",
"Command": "Comando",
"Concurrent Requests": "",
"Concurrent Requests": "Solicitudes simultáneas",
"Confirm Password": "Confirmar Contraseña",
"Connections": "Conexiones",
"Content": "Contenido",
......@@ -114,7 +115,7 @@
"Copy Link": "Copiar enlace",
"Copying to clipboard was successful!": "¡La copia al portapapeles se ha realizado correctamente!",
"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':": "Cree una frase concisa de 3 a 5 palabras como encabezado para la siguiente consulta, respetando estrictamente el límite de 3 a 5 palabras y evitando el uso de la palabra 'título':",
"Create a model": "",
"Create a model": "Crear un modelo",
"Create Account": "Crear una cuenta",
"Create new key": "Crear una nueva clave",
"Create new secret key": "Crear una nueva clave secreta",
......@@ -123,7 +124,7 @@
"Current Model": "Modelo Actual",
"Current Password": "Contraseña Actual",
"Custom": "Personalizado",
"Customize models for a specific purpose": "",
"Customize models for a specific purpose": "Personalizar modelos para un propósito específico",
"Dark": "Oscuro",
"Database": "Base de datos",
"December": "Diciembre",
......@@ -131,24 +132,24 @@
"Default (Automatic1111)": "Por defecto (Automatic1111)",
"Default (SentenceTransformers)": "Por defecto (SentenceTransformers)",
"Default (Web API)": "Por defecto (Web API)",
"Default Model": "",
"Default Model": "Modelo predeterminado",
"Default model updated": "El modelo por defecto ha sido actualizado",
"Default Prompt Suggestions": "Sugerencias de mensajes por defecto",
"Default User Role": "Rol por defecto para usuarios",
"delete": "borrar",
"Delete": "Borrar",
"Delete a model": "Borra un modelo",
"Delete All Chats": "",
"Delete All Chats": "Eliminar todos los chats",
"Delete chat": "Borrar chat",
"Delete Chat": "Borrar Chat",
"delete this link": "Borrar este enlace",
"Delete User": "Borrar Usuario",
"Deleted {{deleteModelTag}}": "Se borró {{deleteModelTag}}",
"Deleted {{name}}": "",
"Deleted {{name}}": "Eliminado {{nombre}}",
"Description": "Descripción",
"Didn't fully follow instructions": "No siguió las instrucciones",
"Disabled": "Desactivado",
"Discover a model": "",
"Discover a model": "Descubrir un modelo",
"Discover a prompt": "Descubre un Prompt",
"Discover, download, and explore custom prompts": "Descubre, descarga, y explora Prompts personalizados",
"Discover, download, and explore model presets": "Descubre, descarga y explora ajustes preestablecidos de modelos",
......@@ -174,27 +175,27 @@
"Embedding Model Engine": "Motor de Modelo de Embedding",
"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding configurado a \"{{embedding_model}}\"",
"Enable Chat History": "Activa el Historial de Chat",
"Enable Community Sharing": "",
"Enable Community Sharing": "Habilitar el uso compartido de la comunidad",
"Enable New Sign Ups": "Habilitar Nuevos Registros",
"Enable Web Search": "",
"Enable Web Search": "Habilitar la búsqueda web",
"Enabled": "Activado",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asegúrese de que su archivo CSV incluya 4 columnas en este orden: Nombre, Correo Electrónico, Contraseña, Rol.",
"Enter {{role}} message here": "Ingrese el mensaje {{role}} aquí",
"Enter a detail about yourself for your LLMs to recall": "Ingrese un detalle sobre usted para que sus LLMs recuerden",
"Enter Brave Search API Key": "",
"Enter Brave Search API Key": "Ingresa la clave de API de Brave Search",
"Enter Chunk Overlap": "Ingresar superposición de fragmentos",
"Enter Chunk Size": "Ingrese el tamaño del fragmento",
"Enter Github Raw URL": "",
"Enter Google PSE API Key": "",
"Enter Google PSE Engine Id": "",
"Enter Github Raw URL": "Ingresa la URL sin procesar de Github",
"Enter Google PSE API Key": "Ingrese la clave API de Google PSE",
"Enter Google PSE Engine Id": "Introduzca el ID del motor PSE de Google",
"Enter Image Size (e.g. 512x512)": "Ingrese el tamaño de la imagen (p.ej. 512x512)",
"Enter language codes": "Ingrese códigos de idioma",
"Enter model tag (e.g. {{modelTag}})": "Ingrese la etiqueta del modelo (p.ej. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Ingrese el número de pasos (p.ej., 50)",
"Enter Score": "Ingrese la puntuación",
"Enter Searxng Query URL": "",
"Enter Serper API Key": "",
"Enter Serpstack API Key": "",
"Enter Searxng Query URL": "Introduzca la URL de consulta de Searxng",
"Enter Serper API Key": "Ingrese la clave API de Serper",
"Enter Serpstack API Key": "Ingrese la clave API de Serpstack",
"Enter stop sequence": "Ingrese la secuencia de parada",
"Enter Top K": "Ingrese el Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Ingrese la URL (p.ej., http://127.0.0.1:7860/)",
......@@ -203,12 +204,14 @@
"Enter Your Full Name": "Ingrese su nombre completo",
"Enter Your Password": "Ingrese su contraseña",
"Enter Your Role": "Ingrese su rol",
"Error": "",
"Error": "Error",
"Experimental": "Experimental",
"Export": "Exportar",
"Export All Chats (All Users)": "Exportar todos los chats (Todos los usuarios)",
"Export chat (.json)": "",
"Export Chats": "Exportar Chats",
"Export Documents Mapping": "Exportar el mapeo de documentos",
"Export Models": "",
"Export Models": "Modelos de exportación",
"Export Prompts": "Exportar Prompts",
"Failed to create API Key.": "No se pudo crear la clave API.",
"Failed to read clipboard contents": "No se pudo leer el contenido del portapapeles",
......@@ -221,15 +224,15 @@
"Focus chat input": "Enfoca la entrada del chat",
"Followed instructions perfectly": "Siguió las instrucciones perfectamente",
"Format your variables using square brackets like this:": "Formatea tus variables usando corchetes de la siguiente manera:",
"Frequency Penalty": "",
"Frequency Penalty": "Penalización de frecuencia",
"Full Screen Mode": "Modo de Pantalla Completa",
"General": "General",
"General Settings": "Opciones Generales",
"Generating search query": "",
"Generating search query": "Generación de consultas de búsqueda",
"Generation Info": "Información de Generación",
"Good Response": "Buena Respuesta",
"Google PSE API Key": "",
"Google PSE Engine Id": "",
"Google PSE API Key": "Clave API de Google PSE",
"Google PSE Engine Id": "ID del motor PSE de Google",
"h:mm a": "h:mm a",
"has no conversations.": "no tiene conversaciones.",
"Hello, {{name}}": "Hola, {{name}}",
......@@ -243,18 +246,18 @@
"Images": "Imágenes",
"Import Chats": "Importar chats",
"Import Documents Mapping": "Importar Mapeo de Documentos",
"Import Models": "",
"Import Models": "Importar modelos",
"Import Prompts": "Importar Prompts",
"Include `--api` flag when running stable-diffusion-webui": "Incluir el indicador `--api` al ejecutar stable-diffusion-webui",
"Info": "",
"Info": "Información",
"Input commands": "Ingresar comandos",
"Install from Github URL": "",
"Install from Github URL": "Instalar desde la URL de Github",
"Interface": "Interfaz",
"Invalid Tag": "Etiqueta Inválida",
"January": "Enero",
"join our Discord for help.": "Únase a nuestro Discord para obtener ayuda.",
"JSON": "JSON",
"JSON Preview": "",
"JSON Preview": "Vista previa de JSON",
"July": "Julio",
"June": "Junio",
"JWT Expiration": "Expiración del JWT",
......@@ -271,9 +274,9 @@
"Make sure to enclose them with": "Asegúrese de adjuntarlos con",
"Manage Models": "Administrar Modelos",
"Manage Ollama Models": "Administrar Modelos Ollama",
"Manage Pipelines": "",
"Manage Pipelines": "Administrar canalizaciones",
"March": "Marzo",
"Max Tokens (num_predict)": "",
"Max Tokens (num_predict)": "Máximo de fichas (num_predict)",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Se pueden descargar un máximo de 3 modelos simultáneamente. Por favor, inténtelo de nuevo más tarde.",
"May": "Mayo",
"Memories accessible by LLMs will be shown here.": "Las memorias accesibles por los LLMs se mostrarán aquí.",
......@@ -288,12 +291,12 @@
"Model '{{modelName}}' has been successfully downloaded.": "El modelo '{{modelName}}' se ha descargado correctamente.",
"Model '{{modelTag}}' is already in queue for downloading.": "El modelo '{{modelTag}}' ya está en cola para descargar.",
"Model {{modelId}} not found": "El modelo {{modelId}} no fue encontrado",
"Model {{modelName}} is not vision capable": "",
"Model {{name}} is now {{status}}": "",
"Model {{modelName}} is not vision capable": "El modelo {{modelName}} no es capaz de ver",
"Model {{name}} is now {{status}}": "El modelo {{name}} ahora es {{status}}",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Se detectó la ruta del sistema de archivos del modelo. Se requiere el nombre corto del modelo para la actualización, no se puede continuar.",
"Model ID": "",
"Model ID": "ID del modelo",
"Model not selected": "Modelo no seleccionado",
"Model Params": "",
"Model Params": "Parámetros del modelo",
"Model Whitelisting": "Listado de Modelos habilitados",
"Model(s) Whitelisted": "Modelo(s) habilitados",
"Modelfile Content": "Contenido del Modelfile",
......@@ -301,23 +304,25 @@
"More": "Más",
"Name": "Nombre",
"Name Tag": "Nombre de etiqueta",
"Name your model": "",
"Name your model": "Asigne un nombre a su modelo",
"New Chat": "Nuevo Chat",
"New Password": "Nueva Contraseña",
"No results found": "No se han encontrado resultados",
"No search query generated": "",
"No search query generated": "No se ha generado ninguna consulta de búsqueda",
"No source available": "No hay fuente disponible",
"None": "",
"None": "Ninguno",
"Not factually correct": "No es correcto en todos los aspectos",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si estableces una puntuación mínima, la búsqueda sólo devolverá documentos con una puntuación mayor o igual a la puntuación mínima.",
"Notifications": "Notificaciones",
"November": "Noviembre",
"num_thread (Ollama)": "num_thread (Ollama)",
"October": "Octubre",
"Off": "Desactivado",
"Okay, Let's Go!": "Bien, ¡Vamos!",
"OLED Dark": "OLED oscuro",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama API": "Ollama API",
"Ollama API disabled": "API de Ollama deshabilitada",
"Ollama Version": "Versión de Ollama",
"On": "Activado",
"Only": "Solamente",
......@@ -342,8 +347,8 @@
"pending": "pendiente",
"Permission denied when accessing microphone: {{error}}": "Permiso denegado al acceder al micrófono: {{error}}",
"Personalization": "Personalización",
"Pipelines": "",
"Pipelines Valves": "",
"Pipelines": "Tuberías",
"Pipelines Valves": "Tuberías Válvulas",
"Plain text (.txt)": "Texto plano (.txt)",
"Playground": "Patio de juegos",
"Positive attitude": "Actitud positiva",
......@@ -388,33 +393,33 @@
"Scan for documents from {{path}}": "Escanear en busca de documentos desde {{path}}",
"Search": "Buscar",
"Search a model": "Buscar un modelo",
"Search Chats": "",
"Search Chats": "Chats de búsqueda",
"Search Documents": "Buscar Documentos",
"Search Models": "",
"Search Models": "Modelos de búsqueda",
"Search Prompts": "Buscar Prompts",
"Search Result Count": "",
"Searched {{count}} sites_one": "",
"Searched {{count}} sites_many": "",
"Searched {{count}} sites_other": "",
"Searching the web for '{{searchQuery}}'": "",
"Searxng Query URL": "",
"Search Result Count": "Recuento de resultados de búsqueda",
"Searched {{count}} sites_one": "Buscado {{count}} sites_one",
"Searched {{count}} sites_many": "Buscado {{count}} sites_many",
"Searched {{count}} sites_other": "Buscó {{count}} sites_other",
"Searching the web for '{{searchQuery}}'": "Buscando en la web '{{searchQuery}}'",
"Searxng Query URL": "Searxng URL de consulta",
"See readme.md for instructions": "Vea el readme.md para instrucciones",
"See what's new": "Ver las novedades",
"Seed": "Seed",
"Select a base model": "",
"Select a base model": "Seleccionar un modelo base",
"Select a mode": "Selecciona un modo",
"Select a model": "Selecciona un modelo",
"Select a pipeline": "",
"Select a pipeline url": "",
"Select a pipeline": "Selección de una canalización",
"Select a pipeline url": "Selección de una dirección URL de canalización",
"Select an Ollama instance": "Seleccione una instancia de Ollama",
"Select model": "Selecciona un modelo",
"Selected model(s) do not support image inputs": "",
"Selected model(s) do not support image inputs": "Los modelos seleccionados no admiten entradas de imagen",
"Send": "Enviar",
"Send a Message": "Enviar un Mensaje",
"Send message": "Enviar Mensaje",
"September": "Septiembre",
"Serper API Key": "",
"Serpstack API Key": "",
"Serper API Key": "Clave API de Serper",
"Serpstack API Key": "Clave API de Serpstack",
"Server connection verified": "Conexión del servidor verificada",
"Set as default": "Establecer por defecto",
"Set Default Model": "Establecer modelo predeterminado",
......@@ -423,7 +428,7 @@
"Set Model": "Establecer el modelo",
"Set reranking model (e.g. {{model}})": "Establecer modelo de reranking (ej. {{model}})",
"Set Steps": "Establecer Pasos",
"Set Task Model": "",
"Set Task Model": "Establecer modelo de tarea",
"Set Voice": "Establecer la voz",
"Settings": "Configuración",
"Settings saved successfully!": "¡Configuración guardada exitosamente!",
......@@ -482,19 +487,21 @@
"Top P": "Top P",
"Trouble accessing Ollama?": "¿Problemas para acceder a Ollama?",
"TTS Settings": "Configuración de TTS",
"Type": "",
"Type": "Tipo",
"Type Hugging Face Resolve (Download) URL": "Escriba la URL (Descarga) de Hugging Face Resolve",
"Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato",
"Update and Copy Link": "Actualizar y copiar enlace",
"Update password": "Actualizar contraseña",
"Upload a GGUF model": "Subir un modelo GGUF",
"Upload Files": "",
"Upload Files": "Subir archivos",
"Upload Progress": "Progreso de carga",
"URL Mode": "Modo de URL",
"Use '#' in the prompt input to load and select your documents.": "Utilice '#' en el prompt para cargar y seleccionar sus documentos.",
"Use Gravatar": "Usar Gravatar",
"Use Initials": "Usar Iniciales",
"use_mlock (Ollama)": "use_mlock (Ollama)",
"use_mmap (Ollama)": "use_mmap (Ollama)",
"user": "usuario",
"User Permissions": "Permisos de usuario",
"Users": "Usuarios",
......@@ -503,13 +510,13 @@
"variable": "variable",
"variable to have them replaced with clipboard content.": "variable para reemplazarlos con el contenido del portapapeles.",
"Version": "Versión",
"Warning": "",
"Warning": "Advertencia",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Advertencia: Si actualiza o cambia su modelo de inserción, necesitará volver a importar todos los documentos.",
"Web": "Web",
"Web Loader Settings": "Web Loader Settings",
"Web Params": "Web Params",
"Web Search": "",
"Web Search Engine": "",
"Web Search": "Búsqueda en la Web",
"Web Search Engine": "Motor de búsqueda web",
"Webhook URL": "Webhook URL",
"WebUI Add-ons": "WebUI Add-ons",
"WebUI Settings": "Configuración del WebUI",
......@@ -522,7 +529,7 @@
"Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].",
"Yesterday": "Ayer",
"You": "Usted",
"You cannot clone a base model": "",
"You cannot clone a base model": "No se puede clonar un modelo base",
"You have no archived conversations.": "No tiene conversaciones archivadas.",
"You have shared this chat": "Usted ha compartido esta conversación",
"You're a helpful assistant.": "Usted es un asistente útil.",
......
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