mirror of
https://github.com/open-webui/open-webui.git
synced 2025-04-12 22:09:06 +02:00
Merge remote-tracking branch 'upstream/dev' into playwright
# Conflicts: # backend/open_webui/retrieval/web/utils.py
This commit is contained in:
commit
7bac1a170d
@ -1,3 +1,5 @@
|
||||
import validators
|
||||
|
||||
from typing import Optional
|
||||
from urllib.parse import urlparse
|
||||
|
||||
@ -10,6 +12,8 @@ def get_filtered_results(results, filter_list):
|
||||
filtered_results = []
|
||||
for result in results:
|
||||
url = result.get("url") or result.get("link", "")
|
||||
if not validators.url(url):
|
||||
continue
|
||||
domain = urlparse(url).netloc
|
||||
if any(domain.endswith(filtered_domain) for filtered_domain in filter_list):
|
||||
filtered_results.append(result)
|
||||
|
@ -48,6 +48,15 @@ def validate_url(url: Union[str, Sequence[str]]):
|
||||
else:
|
||||
return False
|
||||
|
||||
def safe_validate_urls(url: Sequence[str]) -> Sequence[str]:
|
||||
valid_urls = []
|
||||
for u in url:
|
||||
try:
|
||||
if validate_url(u):
|
||||
valid_urls.append(u)
|
||||
except ValueError:
|
||||
continue
|
||||
return valid_urls
|
||||
def resolve_hostname(hostname):
|
||||
# Get address information
|
||||
addr_info = socket.getaddrinfo(hostname, None)
|
||||
@ -243,12 +252,12 @@ def get_web_loader(
|
||||
verify_ssl: bool = True,
|
||||
requests_per_second: int = 2,
|
||||
):
|
||||
# Check if the URL is valid
|
||||
if not validate_url(urls):
|
||||
raise ValueError(ERROR_MESSAGES.INVALID_URL)
|
||||
# Check if the URLs are valid
|
||||
safe_urls = safe_validate_urls([urls] if isinstance(urls, str) else urls)
|
||||
|
||||
|
||||
web_loader_args = {
|
||||
"urls": urls,
|
||||
"urls": safe_urls,
|
||||
"verify_ssl": verify_ssl,
|
||||
"requests_per_second": requests_per_second,
|
||||
"continue_on_failure": True
|
||||
|
@ -398,7 +398,7 @@
|
||||
dir={$settings?.chatDirection ?? 'LTR'}
|
||||
>
|
||||
{#if files.length > 0}
|
||||
<div class="mx-1 mt-2.5 mb-1 flex flex-wrap gap-2">
|
||||
<div class="mx-2 mt-2.5 flex flex-wrap gap-2">
|
||||
{#each files as file, fileIdx}
|
||||
{#if file.type === 'image'}
|
||||
<div class=" relative group">
|
||||
@ -411,7 +411,7 @@
|
||||
</div>
|
||||
<div class=" absolute -top-1 -right-1">
|
||||
<button
|
||||
class=" bg-gray-400 text-white border border-white rounded-full group-hover:visible invisible transition"
|
||||
class=" bg-white text-black border border-white rounded-full group-hover:visible invisible transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
files.splice(fileIdx, 1);
|
||||
@ -453,35 +453,9 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class=" flex">
|
||||
<div class="ml-1 self-end mb-1.5 flex space-x-1">
|
||||
<InputMenu
|
||||
{screenCaptureHandler}
|
||||
uploadFilesHandler={() => {
|
||||
filesInputElement.click();
|
||||
}}
|
||||
>
|
||||
<button
|
||||
class="bg-transparent hover:bg-white/80 text-gray-800 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-2 outline-none focus:outline-none"
|
||||
type="button"
|
||||
aria-label="More"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</InputMenu>
|
||||
</div>
|
||||
|
||||
<div class="px-2.5">
|
||||
<div
|
||||
class="scrollbar-hidden text-left bg-transparent dark:text-gray-100 outline-none w-full py-2.5 px-1 rounded-xl resize-none h-fit max-h-80 overflow-auto"
|
||||
class="scrollbar-hidden font-primary text-left bg-transparent dark:text-gray-100 outline-none w-full pt-2.5 pb-1 px-1 rounded-xl resize-none h-fit max-h-80 overflow-auto"
|
||||
>
|
||||
<RichTextInput
|
||||
bind:value={content}
|
||||
@ -528,8 +502,36 @@
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="self-end mb-1.5 flex space-x-1 mr-1">
|
||||
<div class=" flex justify-between mb-2">
|
||||
<div class="ml-1 self-end flex space-x-1">
|
||||
<InputMenu
|
||||
{screenCaptureHandler}
|
||||
uploadFilesHandler={() => {
|
||||
filesInputElement.click();
|
||||
}}
|
||||
>
|
||||
<button
|
||||
class="bg-transparent hover:bg-white/80 text-gray-800 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-1.5 outline-none focus:outline-none"
|
||||
type="button"
|
||||
aria-label="More"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</InputMenu>
|
||||
</div>
|
||||
|
||||
<div class="self-end flex space-x-1 mr-1">
|
||||
{#if content === ''}
|
||||
<Tooltip content={$i18n.t('Record voice')}>
|
||||
<button
|
||||
@ -591,7 +593,7 @@
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
|
@ -41,6 +41,7 @@
|
||||
convertMessagesToHistory,
|
||||
copyToClipboard,
|
||||
getMessageContentParts,
|
||||
createMessagesList,
|
||||
extractSentencesForAudio,
|
||||
promptTemplate,
|
||||
splitStream,
|
||||
@ -226,7 +227,7 @@
|
||||
}
|
||||
|
||||
await tick();
|
||||
saveChatHandler(_chatId);
|
||||
saveChatHandler(_chatId, history);
|
||||
};
|
||||
|
||||
const chatEventHandler = async (event, cb) => {
|
||||
@ -826,20 +827,6 @@
|
||||
messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
|
||||
}
|
||||
};
|
||||
|
||||
const createMessagesList = (responseMessageId) => {
|
||||
if (responseMessageId === null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const message = history.messages[responseMessageId];
|
||||
if (message?.parentId) {
|
||||
return [...createMessagesList(message.parentId), message];
|
||||
} else {
|
||||
return [message];
|
||||
}
|
||||
};
|
||||
|
||||
const chatCompletedHandler = async (chatId, modelId, responseMessageId, messages) => {
|
||||
const res = await chatCompleted(localStorage.token, {
|
||||
model: modelId,
|
||||
@ -896,7 +883,7 @@
|
||||
};
|
||||
|
||||
const chatActionHandler = async (chatId, actionId, modelId, responseMessageId, event = null) => {
|
||||
const messages = createMessagesList(responseMessageId);
|
||||
const messages = createMessagesList(history, responseMessageId);
|
||||
|
||||
const res = await chatAction(localStorage.token, actionId, {
|
||||
model: modelId,
|
||||
@ -965,7 +952,7 @@
|
||||
const modelId = selectedModels[0];
|
||||
const model = $models.filter((m) => m.id === modelId).at(0);
|
||||
|
||||
const messages = createMessagesList(history.currentId);
|
||||
const messages = createMessagesList(history, history.currentId);
|
||||
const parentMessage = messages.length !== 0 ? messages.at(-1) : null;
|
||||
|
||||
const userMessageId = uuidv4();
|
||||
@ -1010,9 +997,9 @@
|
||||
}
|
||||
|
||||
if (messages.length === 0) {
|
||||
await initChatHandler();
|
||||
await initChatHandler(history);
|
||||
} else {
|
||||
await saveChatHandler($chatId);
|
||||
await saveChatHandler($chatId, history);
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1074,9 +1061,9 @@
|
||||
}
|
||||
|
||||
if (messages.length === 0) {
|
||||
await initChatHandler();
|
||||
await initChatHandler(history);
|
||||
} else {
|
||||
await saveChatHandler($chatId);
|
||||
await saveChatHandler($chatId, history);
|
||||
}
|
||||
};
|
||||
|
||||
@ -1210,7 +1197,12 @@
|
||||
);
|
||||
|
||||
history.messages[message.id] = message;
|
||||
await chatCompletedHandler(chatId, message.model, message.id, createMessagesList(message.id));
|
||||
await chatCompletedHandler(
|
||||
chatId,
|
||||
message.model,
|
||||
message.id,
|
||||
createMessagesList(history, message.id)
|
||||
);
|
||||
}
|
||||
|
||||
console.log(data);
|
||||
@ -1226,7 +1218,7 @@
|
||||
const submitPrompt = async (userPrompt, { _raw = false } = {}) => {
|
||||
console.log('submitPrompt', userPrompt, $chatId);
|
||||
|
||||
const messages = createMessagesList(history.currentId);
|
||||
const messages = createMessagesList(history, history.currentId);
|
||||
const _selectedModels = selectedModels.map((modelId) =>
|
||||
$models.map((m) => m.id).includes(modelId) ? modelId : ''
|
||||
);
|
||||
@ -1325,25 +1317,30 @@
|
||||
|
||||
saveSessionSelectedModels();
|
||||
|
||||
await sendPrompt(userPrompt, userMessageId, { newChat: true });
|
||||
await sendPrompt(history, userPrompt, userMessageId, { newChat: true });
|
||||
};
|
||||
|
||||
const sendPrompt = async (
|
||||
history,
|
||||
prompt: string,
|
||||
parentId: string,
|
||||
{ modelId = null, modelIdx = null, newChat = false } = {}
|
||||
) => {
|
||||
let _chatId = JSON.parse(JSON.stringify($chatId));
|
||||
|
||||
// Create new chat if newChat is true and first user message
|
||||
if (
|
||||
newChat &&
|
||||
history.messages[history.currentId].parentId === null &&
|
||||
history.messages[history.currentId].role === 'user'
|
||||
) {
|
||||
await initChatHandler();
|
||||
_chatId = await initChatHandler(history);
|
||||
} else {
|
||||
await saveChatHandler($chatId);
|
||||
await saveChatHandler(_chatId, history);
|
||||
}
|
||||
|
||||
await tick();
|
||||
|
||||
// If modelId is provided, use it, else use selected model
|
||||
let selectedModelIds = modelId
|
||||
? [modelId]
|
||||
@ -1390,16 +1387,15 @@
|
||||
await tick();
|
||||
|
||||
// Save chat after all messages have been created
|
||||
await saveChatHandler($chatId);
|
||||
await saveChatHandler(_chatId, history);
|
||||
|
||||
const _chatId = JSON.parse(JSON.stringify($chatId));
|
||||
await Promise.all(
|
||||
selectedModelIds.map(async (modelId, _modelIdx) => {
|
||||
console.log('modelId', modelId);
|
||||
const model = $models.filter((m) => m.id === modelId).at(0);
|
||||
|
||||
if (model) {
|
||||
const messages = createMessagesList(parentId);
|
||||
const messages = createMessagesList(history, parentId);
|
||||
// If there are image files, check if model is vision capable
|
||||
const hasImages = messages.some((message) =>
|
||||
message.files?.some((file) => file.type === 'image')
|
||||
@ -1444,7 +1440,7 @@
|
||||
const chatEventEmitter = await getChatEventEmitter(model.id, _chatId);
|
||||
|
||||
scrollToBottom();
|
||||
await sendPromptSocket(model, responseMessageId, _chatId);
|
||||
await sendPromptSocket(history, model, responseMessageId, _chatId);
|
||||
|
||||
if (chatEventEmitter) clearInterval(chatEventEmitter);
|
||||
} else {
|
||||
@ -1457,7 +1453,7 @@
|
||||
chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
};
|
||||
|
||||
const sendPromptSocket = async (model, responseMessageId, _chatId) => {
|
||||
const sendPromptSocket = async (history, model, responseMessageId, _chatId) => {
|
||||
const responseMessage = history.messages[responseMessageId];
|
||||
const userMessage = history.messages[responseMessage.parentId];
|
||||
|
||||
@ -1507,7 +1503,7 @@
|
||||
}`
|
||||
}
|
||||
: undefined,
|
||||
...createMessagesList(responseMessageId).map((message) => ({
|
||||
...createMessagesList(history, responseMessageId).map((message) => ({
|
||||
...message,
|
||||
content: removeDetails(message.content, ['reasoning', 'code_interpreter'])
|
||||
}))
|
||||
@ -1704,7 +1700,7 @@
|
||||
history.currentId = userMessageId;
|
||||
|
||||
await tick();
|
||||
await sendPrompt(userPrompt, userMessageId);
|
||||
await sendPrompt(history, userPrompt, userMessageId);
|
||||
};
|
||||
|
||||
const regenerateResponse = async (message) => {
|
||||
@ -1716,11 +1712,11 @@
|
||||
|
||||
if ((userMessage?.models ?? [...selectedModels]).length == 1) {
|
||||
// If user message has only one model selected, sendPrompt automatically selects it for regeneration
|
||||
await sendPrompt(userPrompt, userMessage.id);
|
||||
await sendPrompt(history, userPrompt, userMessage.id);
|
||||
} else {
|
||||
// If there are multiple models selected, use the model of the response message for regeneration
|
||||
// e.g. many model chat
|
||||
await sendPrompt(userPrompt, userMessage.id, {
|
||||
await sendPrompt(history, userPrompt, userMessage.id, {
|
||||
modelId: message.model,
|
||||
modelIdx: message.modelIdx
|
||||
});
|
||||
@ -1742,7 +1738,7 @@
|
||||
.at(0);
|
||||
|
||||
if (model) {
|
||||
await sendPromptSocket(model, responseMessage.id, _chatId);
|
||||
await sendPromptSocket(history, model, responseMessage.id, _chatId);
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1785,7 +1781,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
await saveChatHandler(_chatId);
|
||||
await saveChatHandler(_chatId, history);
|
||||
} else {
|
||||
console.error(res);
|
||||
}
|
||||
@ -1794,42 +1790,48 @@
|
||||
}
|
||||
};
|
||||
|
||||
const initChatHandler = async () => {
|
||||
const initChatHandler = async (history) => {
|
||||
let _chatId = $chatId;
|
||||
|
||||
if (!$temporaryChatEnabled) {
|
||||
chat = await createNewChat(localStorage.token, {
|
||||
id: $chatId,
|
||||
id: _chatId,
|
||||
title: $i18n.t('New Chat'),
|
||||
models: selectedModels,
|
||||
system: $settings.system ?? undefined,
|
||||
params: params,
|
||||
history: history,
|
||||
messages: createMessagesList(history.currentId),
|
||||
messages: createMessagesList(history, history.currentId),
|
||||
tags: [],
|
||||
timestamp: Date.now()
|
||||
});
|
||||
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
await chatId.set(chat.id);
|
||||
_chatId = chat.id;
|
||||
await chatId.set(_chatId);
|
||||
|
||||
window.history.replaceState(history.state, '', `/c/${chat.id}`);
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
currentChatPage.set(1);
|
||||
|
||||
window.history.replaceState(history.state, '', `/c/${_chatId}`);
|
||||
} else {
|
||||
_chatId = 'local';
|
||||
await chatId.set('local');
|
||||
}
|
||||
await tick();
|
||||
|
||||
return _chatId;
|
||||
};
|
||||
|
||||
const saveChatHandler = async (_chatId) => {
|
||||
const saveChatHandler = async (_chatId, history) => {
|
||||
if ($chatId == _chatId) {
|
||||
if (!$temporaryChatEnabled) {
|
||||
chat = await updateChatById(localStorage.token, _chatId, {
|
||||
models: selectedModels,
|
||||
history: history,
|
||||
messages: createMessagesList(history.currentId),
|
||||
messages: createMessagesList(history, history.currentId),
|
||||
params: params,
|
||||
files: chatFiles
|
||||
});
|
||||
|
||||
currentChatPage.set(1);
|
||||
await chats.set(await getChatList(localStorage.token, $currentChatPage));
|
||||
}
|
||||
@ -1933,7 +1935,7 @@
|
||||
{/if}
|
||||
|
||||
<div class="flex flex-col flex-auto z-10 w-full">
|
||||
{#if $settings?.landingPageMode === 'chat' || createMessagesList(history.currentId).length > 0}
|
||||
{#if $settings?.landingPageMode === 'chat' || createMessagesList(history, history.currentId).length > 0}
|
||||
<div
|
||||
class=" pb-2.5 flex flex-col justify-between w-full flex-auto overflow-auto h-0 max-w-full z-10 scrollbar-hidden"
|
||||
id="messages-container"
|
||||
|
@ -22,23 +22,27 @@
|
||||
import { blobToFile, compressImage, createMessagesList, findWordIndices } from '$lib/utils';
|
||||
import { transcribeAudio } from '$lib/apis/audio';
|
||||
import { uploadFile } from '$lib/apis/files';
|
||||
import { getTools } from '$lib/apis/tools';
|
||||
import { generateAutoCompletion } from '$lib/apis';
|
||||
import { deleteFileById } from '$lib/apis/files';
|
||||
|
||||
import { WEBUI_BASE_URL, WEBUI_API_BASE_URL, PASTED_TEXT_CHARACTER_LIMIT } from '$lib/constants';
|
||||
|
||||
import Tooltip from '../common/Tooltip.svelte';
|
||||
import InputMenu from './MessageInput/InputMenu.svelte';
|
||||
import Headphone from '../icons/Headphone.svelte';
|
||||
import VoiceRecording from './MessageInput/VoiceRecording.svelte';
|
||||
import FileItem from '../common/FileItem.svelte';
|
||||
import FilesOverlay from './MessageInput/FilesOverlay.svelte';
|
||||
import Commands from './MessageInput/Commands.svelte';
|
||||
import XMark from '../icons/XMark.svelte';
|
||||
|
||||
import RichTextInput from '../common/RichTextInput.svelte';
|
||||
import { generateAutoCompletion } from '$lib/apis';
|
||||
import { error, text } from '@sveltejs/kit';
|
||||
import Tooltip from '../common/Tooltip.svelte';
|
||||
import FileItem from '../common/FileItem.svelte';
|
||||
import Image from '../common/Image.svelte';
|
||||
import { deleteFileById } from '$lib/apis/files';
|
||||
|
||||
import XMark from '../icons/XMark.svelte';
|
||||
import Headphone from '../icons/Headphone.svelte';
|
||||
import GlobeAlt from '../icons/GlobeAlt.svelte';
|
||||
import PhotoSolid from '../icons/PhotoSolid.svelte';
|
||||
import Photo from '../icons/Photo.svelte';
|
||||
import CommandLine from '../icons/CommandLine.svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
@ -386,7 +390,7 @@
|
||||
</div>
|
||||
|
||||
<div class="w-full relative">
|
||||
{#if atSelectedModel !== undefined || selectedToolIds.length > 0 || webSearchEnabled || imageGenerationEnabled || codeInterpreterEnabled}
|
||||
{#if atSelectedModel !== undefined || selectedToolIds.length > 0 || imageGenerationEnabled || codeInterpreterEnabled}
|
||||
<div
|
||||
class="px-3 pb-0.5 pt-1.5 text-left w-full flex flex-col absolute bottom-0 left-0 right-0 bg-gradient-to-t from-white dark:from-gray-900 z-10"
|
||||
>
|
||||
@ -454,22 +458,6 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if webSearchEnabled}
|
||||
<div class="flex items-center justify-between w-full">
|
||||
<div class="flex items-center gap-2.5 text-sm dark:text-gray-500">
|
||||
<div class="pl-1">
|
||||
<span class="relative flex size-2">
|
||||
<span
|
||||
class="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"
|
||||
/>
|
||||
<span class="relative inline-flex rounded-full size-2 bg-green-500" />
|
||||
</span>
|
||||
</div>
|
||||
<div class=" translate-y-[0.5px]">{$i18n.t('Search the web')}</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if atSelectedModel !== undefined}
|
||||
<div class="flex items-center justify-between w-full">
|
||||
<div class="pl-[1px] flex items-center gap-2 text-sm dark:text-gray-500">
|
||||
@ -585,7 +573,7 @@
|
||||
dir={$settings?.chatDirection ?? 'LTR'}
|
||||
>
|
||||
{#if files.length > 0}
|
||||
<div class="mx-1 mt-2.5 mb-1 flex items-center flex-wrap gap-2">
|
||||
<div class="mx-2 mt-2.5 flex items-center flex-wrap gap-2">
|
||||
{#each files as file, fileIdx}
|
||||
{#if file.type === 'image'}
|
||||
<div class=" relative group">
|
||||
@ -623,7 +611,7 @@
|
||||
</div>
|
||||
<div class=" absolute -top-1 -right-1">
|
||||
<button
|
||||
class=" bg-gray-400 text-white border border-white rounded-full group-hover:visible invisible transition"
|
||||
class=" bg-white text-black border border-white rounded-full group-hover:visible invisible transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
files.splice(fileIdx, 1);
|
||||
@ -673,66 +661,10 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class=" flex">
|
||||
<div class="ml-1 self-end mb-1.5 flex space-x-1">
|
||||
<InputMenu
|
||||
bind:imageGenerationEnabled
|
||||
bind:codeInterpreterEnabled
|
||||
bind:webSearchEnabled
|
||||
bind:selectedToolIds
|
||||
{screenCaptureHandler}
|
||||
uploadFilesHandler={() => {
|
||||
filesInputElement.click();
|
||||
}}
|
||||
uploadGoogleDriveHandler={async () => {
|
||||
try {
|
||||
const fileData = await createPicker();
|
||||
if (fileData) {
|
||||
const file = new File([fileData.blob], fileData.name, {
|
||||
type: fileData.blob.type
|
||||
});
|
||||
await uploadFileHandler(file);
|
||||
} else {
|
||||
console.log('No file was selected from Google Drive');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Google Drive Error:', error);
|
||||
toast.error(
|
||||
$i18n.t('Error accessing Google Drive: {{error}}', {
|
||||
error: error.message
|
||||
})
|
||||
);
|
||||
}
|
||||
}}
|
||||
onClose={async () => {
|
||||
await tick();
|
||||
|
||||
const chatInput = document.getElementById('chat-input');
|
||||
chatInput?.focus();
|
||||
}}
|
||||
>
|
||||
<button
|
||||
class="bg-transparent hover:bg-white/80 text-gray-800 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-2 outline-none focus:outline-none"
|
||||
type="button"
|
||||
aria-label="More"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</InputMenu>
|
||||
</div>
|
||||
|
||||
<div class="px-2.5">
|
||||
{#if $settings?.richTextInput ?? true}
|
||||
<div
|
||||
class="scrollbar-hidden text-left bg-transparent dark:text-gray-100 outline-none w-full py-2.5 px-1 rounded-xl resize-none h-fit max-h-80 overflow-auto"
|
||||
class="scrollbar-hidden text-left bg-transparent dark:text-gray-100 outline-none w-full pt-2.5 pb-1 px-1 rounded-xl resize-none h-fit max-h-80 overflow-auto"
|
||||
>
|
||||
<RichTextInput
|
||||
bind:this={chatInputElement}
|
||||
@ -936,7 +868,7 @@
|
||||
<textarea
|
||||
id="chat-input"
|
||||
bind:this={chatInputElement}
|
||||
class="scrollbar-hidden bg-transparent dark:text-gray-100 outline-none w-full py-3 px-1 rounded-xl resize-none h-[48px]"
|
||||
class="scrollbar-hidden bg-transparent dark:text-gray-100 outline-none w-full pt-3 pb-1 px-1 rounded-xl resize-none"
|
||||
placeholder={placeholder ? placeholder : $i18n.t('Send a Message')}
|
||||
bind:value={prompt}
|
||||
on:keypress={(e) => {
|
||||
@ -1125,8 +1057,120 @@
|
||||
}}
|
||||
/>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="self-end mb-1.5 flex space-x-1 mr-1">
|
||||
<div class=" flex justify-between mb-2">
|
||||
<div class="ml-1 self-end gap-0.5 flex items-center">
|
||||
<InputMenu
|
||||
bind:selectedToolIds
|
||||
{screenCaptureHandler}
|
||||
{inputFilesHandler}
|
||||
uploadFilesHandler={() => {
|
||||
filesInputElement.click();
|
||||
}}
|
||||
uploadGoogleDriveHandler={async () => {
|
||||
try {
|
||||
const fileData = await createPicker();
|
||||
if (fileData) {
|
||||
const file = new File([fileData.blob], fileData.name, {
|
||||
type: fileData.blob.type
|
||||
});
|
||||
await uploadFileHandler(file);
|
||||
} else {
|
||||
console.log('No file was selected from Google Drive');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Google Drive Error:', error);
|
||||
toast.error(
|
||||
$i18n.t('Error accessing Google Drive: {{error}}', {
|
||||
error: error.message
|
||||
})
|
||||
);
|
||||
}
|
||||
}}
|
||||
onClose={async () => {
|
||||
await tick();
|
||||
|
||||
const chatInput = document.getElementById('chat-input');
|
||||
chatInput?.focus();
|
||||
}}
|
||||
>
|
||||
<button
|
||||
class="bg-transparent hover:bg-gray-100 text-gray-800 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-1.5 outline-none focus:outline-none"
|
||||
type="button"
|
||||
aria-label="More"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</InputMenu>
|
||||
|
||||
{#if $_user}
|
||||
{#if $config?.features?.enable_web_search && ($_user.role === 'admin' || $_user?.permissions?.features?.web_search)}
|
||||
<Tooltip content={$i18n.t('Search the internet')} placement="top">
|
||||
<button
|
||||
on:click|preventDefault={() => (webSearchEnabled = !webSearchEnabled)}
|
||||
type="button"
|
||||
class="px-1.5 sm:px-2.5 py-1.5 flex gap-1.5 items-center text-sm rounded-full font-medium transition-colors duration-300 focus:outline-none max-w-full overflow-hidden {webSearchEnabled
|
||||
? 'bg-blue-100 dark:bg-blue-500/20 text-blue-500 dark:text-blue-400'
|
||||
: 'bg-transparent text-gray-600 dark:text-gray-400 border-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800'}"
|
||||
>
|
||||
<GlobeAlt className="size-5" strokeWidth="1.75" />
|
||||
<span
|
||||
class="hidden sm:block whitespace-nowrap overflow-hidden text-ellipsis translate-y-[0.5px] mr-0.5"
|
||||
>{$i18n.t('Web Search')}</span
|
||||
>
|
||||
</button>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
|
||||
{#if $config?.features?.enable_image_generation && ($_user.role === 'admin' || $_user?.permissions?.features?.image_generation)}
|
||||
<Tooltip content={$i18n.t('Generate an image')} placement="top">
|
||||
<button
|
||||
on:click|preventDefault={() =>
|
||||
(imageGenerationEnabled = !imageGenerationEnabled)}
|
||||
type="button"
|
||||
class="px-1.5 sm:px-2.5 py-1.5 flex gap-1.5 items-center text-sm rounded-full font-medium transition-colors duration-300 focus:outline-none max-w-full overflow-hidden {imageGenerationEnabled
|
||||
? 'bg-gray-100 dark:bg-gray-500/20 text-gray-600 dark:text-gray-400'
|
||||
: 'bg-transparent text-gray-600 dark:text-gray-300 border-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800 '}"
|
||||
>
|
||||
<Photo className="size-5" strokeWidth="1.75" />
|
||||
<span
|
||||
class="hidden sm:block whitespace-nowrap overflow-hidden text-ellipsis translate-y-[0.5px] mr-0.5"
|
||||
>{$i18n.t('Image')}</span
|
||||
>
|
||||
</button>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
|
||||
<Tooltip content={$i18n.t('Executes code for analysis')} placement="top">
|
||||
<button
|
||||
on:click|preventDefault={() =>
|
||||
(codeInterpreterEnabled = !codeInterpreterEnabled)}
|
||||
type="button"
|
||||
class="px-1.5 sm:px-2.5 py-1.5 flex gap-1.5 items-center text-sm rounded-full font-medium transition-colors duration-300 focus:outline-none max-w-full overflow-hidden {codeInterpreterEnabled
|
||||
? 'bg-gray-100 dark:bg-gray-500/20 text-gray-600 dark:text-gray-400'
|
||||
: 'bg-transparent text-gray-600 dark:text-gray-300 border-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800 '}"
|
||||
>
|
||||
<CommandLine className="size-5" strokeWidth="1.75" />
|
||||
<span
|
||||
class="hidden sm:block whitespace-nowrap overflow-hidden text-ellipsis translate-y-[0.5px] mr-0.5"
|
||||
>{$i18n.t('Code Intepreter')}</span
|
||||
>
|
||||
</button>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="self-end flex space-x-1 mr-1">
|
||||
{#if !history?.currentId || history.messages[history.currentId]?.done == true}
|
||||
<Tooltip content={$i18n.t('Record voice')}>
|
||||
<button
|
||||
@ -1181,7 +1225,9 @@
|
||||
<div class=" flex items-center">
|
||||
<Tooltip content={$i18n.t('Call')}>
|
||||
<button
|
||||
class=" bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full p-2 self-center"
|
||||
class=" {webSearchEnabled
|
||||
? 'bg-blue-500 text-white hover:bg-blue-400 '
|
||||
: 'bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100'} transition rounded-full p-1.5 self-center"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
if (selectedModels.length > 1) {
|
||||
@ -1234,7 +1280,9 @@
|
||||
<button
|
||||
id="send-message-button"
|
||||
class="{prompt !== ''
|
||||
? 'bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 '
|
||||
? webSearchEnabled
|
||||
? 'bg-blue-500 text-white hover:bg-blue-400 '
|
||||
: 'bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 '
|
||||
: 'text-white bg-gray-200 dark:text-gray-900 dark:bg-gray-700 disabled'} transition rounded-full p-1.5 self-center"
|
||||
type="submit"
|
||||
disabled={prompt === ''}
|
||||
@ -1243,7 +1291,7 @@
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
|
@ -21,31 +21,17 @@
|
||||
|
||||
export let screenCaptureHandler: Function;
|
||||
export let uploadFilesHandler: Function;
|
||||
export let inputFilesHandler: Function;
|
||||
|
||||
export let uploadGoogleDriveHandler: Function;
|
||||
|
||||
export let selectedToolIds: string[] = [];
|
||||
|
||||
export let webSearchEnabled: boolean;
|
||||
export let imageGenerationEnabled: boolean;
|
||||
export let codeInterpreterEnabled: boolean;
|
||||
|
||||
export let onClose: Function;
|
||||
|
||||
let tools = {};
|
||||
let show = false;
|
||||
|
||||
let showImageGeneration = false;
|
||||
|
||||
$: showImageGeneration =
|
||||
$config?.features?.enable_image_generation &&
|
||||
($user.role === 'admin' || $user?.permissions?.features?.image_generation);
|
||||
|
||||
let showWebSearch = false;
|
||||
|
||||
$: showWebSearch =
|
||||
$config?.features?.enable_web_search &&
|
||||
($user.role === 'admin' || $user?.permissions?.features?.web_search);
|
||||
|
||||
$: if (show) {
|
||||
init();
|
||||
}
|
||||
@ -67,8 +53,31 @@
|
||||
return a;
|
||||
}, {});
|
||||
};
|
||||
|
||||
const detectMobile = () => {
|
||||
const userAgent = navigator.userAgent || navigator.vendor || window.opera;
|
||||
return /android|iphone|ipad|ipod|windows phone/i.test(userAgent);
|
||||
};
|
||||
|
||||
function handleFileChange(event) {
|
||||
const inputFiles = Array.from(event.target?.files);
|
||||
if (inputFiles && inputFiles.length > 0) {
|
||||
console.log(inputFiles);
|
||||
inputFilesHandler(inputFiles);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Hidden file input used to open the camera on mobile -->
|
||||
<input
|
||||
id="camera-input"
|
||||
type="file"
|
||||
accept="image/*"
|
||||
capture="environment"
|
||||
on:change={handleFileChange}
|
||||
style="display: none;"
|
||||
/>
|
||||
|
||||
<Dropdown
|
||||
bind:show
|
||||
on:change={(e) => {
|
||||
@ -134,76 +143,32 @@
|
||||
<hr class="border-black/5 dark:border-white/5 my-1" />
|
||||
{/if}
|
||||
|
||||
{#if showImageGeneration}
|
||||
<button
|
||||
class="flex w-full justify-between gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer rounded-xl"
|
||||
on:click={() => {
|
||||
imageGenerationEnabled = !imageGenerationEnabled;
|
||||
}}
|
||||
>
|
||||
<div class="flex-1 flex items-center gap-2">
|
||||
<PhotoSolid />
|
||||
<div class=" line-clamp-1">{$i18n.t('Image')}</div>
|
||||
</div>
|
||||
|
||||
<Switch state={imageGenerationEnabled} />
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
class="flex w-full justify-between gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer rounded-xl"
|
||||
on:click={() => {
|
||||
codeInterpreterEnabled = !codeInterpreterEnabled;
|
||||
}}
|
||||
<Tooltip
|
||||
content={!fileUploadEnabled ? $i18n.t('You do not have permission to upload files') : ''}
|
||||
className="w-full"
|
||||
>
|
||||
<div class="flex-1 flex items-center gap-2">
|
||||
<CommandLineSolid />
|
||||
<div class=" line-clamp-1">{$i18n.t('Code Intepreter')}</div>
|
||||
</div>
|
||||
|
||||
<Switch state={codeInterpreterEnabled} />
|
||||
</button>
|
||||
|
||||
{#if showWebSearch}
|
||||
<button
|
||||
class="flex w-full justify-between gap-2 items-center px-3 py-2 text-sm font-medium cursor-pointer rounded-xl"
|
||||
<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-xl {!fileUploadEnabled
|
||||
? 'opacity-50'
|
||||
: ''}"
|
||||
on:click={() => {
|
||||
webSearchEnabled = !webSearchEnabled;
|
||||
if (fileUploadEnabled) {
|
||||
if (!detectMobile()) {
|
||||
screenCaptureHandler();
|
||||
} else {
|
||||
const cameraInputElement = document.getElementById('camera-input');
|
||||
|
||||
if (cameraInputElement) {
|
||||
cameraInputElement.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div class="flex-1 flex items-center gap-2">
|
||||
<GlobeAltSolid />
|
||||
<div class=" line-clamp-1">{$i18n.t('Web Search')}</div>
|
||||
</div>
|
||||
|
||||
<Switch state={webSearchEnabled} />
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
{#if showImageGeneration || showWebSearch}
|
||||
<hr class="border-black/5 dark:border-white/5 my-1" />
|
||||
{/if}
|
||||
|
||||
{#if !$mobile}
|
||||
<Tooltip
|
||||
content={!fileUploadEnabled ? $i18n.t('You do not have permission to upload files') : ''}
|
||||
className="w-full"
|
||||
>
|
||||
<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-xl {!fileUploadEnabled
|
||||
? 'opacity-50'
|
||||
: ''}"
|
||||
on:click={() => {
|
||||
if (fileUploadEnabled) {
|
||||
screenCaptureHandler();
|
||||
}
|
||||
}}
|
||||
>
|
||||
<CameraSolid />
|
||||
<div class=" line-clamp-1">{$i18n.t('Capture')}</div>
|
||||
</DropdownMenu.Item>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
<CameraSolid />
|
||||
<div class=" line-clamp-1">{$i18n.t('Capture')}</div>
|
||||
</DropdownMenu.Item>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip
|
||||
content={!fileUploadEnabled ? $i18n.t('You do not have permission to upload files') : ''}
|
||||
|
@ -233,7 +233,7 @@
|
||||
history.currentId = userMessageId;
|
||||
|
||||
await tick();
|
||||
await sendPrompt(userPrompt, userMessageId);
|
||||
await sendPrompt(history, userPrompt, userMessageId);
|
||||
} else {
|
||||
// Edit user message
|
||||
history.messages[messageId].content = content;
|
||||
|
@ -119,7 +119,7 @@
|
||||
{#if dismissible}
|
||||
<div class=" absolute -top-1 -right-1">
|
||||
<button
|
||||
class=" bg-gray-400 text-white border border-white rounded-full group-hover:visible invisible transition"
|
||||
class=" bg-white text-black border border-white rounded-full group-hover:visible invisible transition"
|
||||
type="button"
|
||||
on:click|stopPropagation={() => {
|
||||
dispatch('dismiss');
|
||||
|
19
src/lib/components/icons/CommandLine.svelte
Normal file
19
src/lib/components/icons/CommandLine.svelte
Normal file
@ -0,0 +1,19 @@
|
||||
<script lang="ts">
|
||||
export let className = 'w-4 h-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="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"
|
||||
/>
|
||||
</svg>
|
21
src/lib/components/icons/Photo.svelte
Normal file
21
src/lib/components/icons/Photo.svelte
Normal file
@ -0,0 +1,21 @@
|
||||
<script lang="ts">
|
||||
export let className = 'size-4';
|
||||
export let strokeWidth = '1.5';
|
||||
</script>
|
||||
|
||||
<svg
|
||||
class={className}
|
||||
stroke-width={strokeWidth}
|
||||
aria-hidden="true"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="m3 16 5-7 6 6.5m6.5 2.5L16 13l-4.286 6M14 10h.01M4 19h16a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1Z"
|
||||
/>
|
||||
</svg>
|
@ -10,7 +10,7 @@
|
||||
let showShortcuts = false;
|
||||
</script>
|
||||
|
||||
<div class=" hidden lg:flex fixed bottom-0 right-0 px-2 py-2 z-20">
|
||||
<div class=" hidden lg:flex fixed bottom-0 right-0 px-1 py-1 z-20">
|
||||
<button
|
||||
id="show-shortcuts-button"
|
||||
class="hidden"
|
||||
@ -29,7 +29,7 @@
|
||||
>
|
||||
<Tooltip content={$i18n.t('Help')} placement="left">
|
||||
<button
|
||||
class="text-gray-600 dark:text-gray-300 bg-gray-300/20 size-5 flex items-center justify-center text-[0.7rem] rounded-full"
|
||||
class="text-gray-600 dark:text-gray-300 bg-gray-300/20 size-4 flex items-center justify-center text-[0.7rem] rounded-full"
|
||||
>
|
||||
?
|
||||
</button>
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "تجريبي",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "تصدير",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "عام",
|
||||
"General Settings": "الاعدادات العامة",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "إنشاء استعلام بحث",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "أبحث حث",
|
||||
"Search Result Count": "عدد نتائج البحث",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Експериментално",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Износ",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Основни",
|
||||
"General Settings": "Основни Настройки",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "Генериране на заявка за търсене",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Търси Промптове",
|
||||
"Search Result Count": "Брой резултати от търсенето",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "পরিক্ষামূলক",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "রপ্তানি",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "সাধারণ",
|
||||
"General Settings": "সাধারণ সেটিংসমূহ",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "অনুসন্ধান ক্যোয়ারী তৈরি করা হচ্ছে",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
|
||||
"Search Result Count": "অনুসন্ধানের ফলাফল গণনা",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Exemple: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Exemple: sAMAccountName o uid o userPrincipalName",
|
||||
"Exclude": "Excloure",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "Explorar el cosmos",
|
||||
"Export": "Exportar",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Les funcions s'han importat correctament",
|
||||
"General": "General",
|
||||
"General Settings": "Preferències generals",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generar imatge",
|
||||
"Generating search query": "Generant consulta",
|
||||
"Get started": "Començar",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Opcions de cerca",
|
||||
"Search Prompts": "Cercar indicacions",
|
||||
"Search Result Count": "Recompte de resultats de cerca",
|
||||
"Search the web": "Cercar la web",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Cercar eines",
|
||||
"SearchApi API Key": "Clau API de SearchApi",
|
||||
"SearchApi Engine": "Motor de SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperimento",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Heneral",
|
||||
"General Settings": "kinatibuk-ang mga setting",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Pangitaa ang mga prompt",
|
||||
"Search Result Count": "",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "Vyloučit",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimentální",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportovat",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funkce byly úspěšně importovány",
|
||||
"General": "Obecný",
|
||||
"General Settings": "Obecná nastavení",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Vygenerovat obrázek",
|
||||
"Generating search query": "Generování vyhledávacího dotazu",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Vyhledávací dotazy",
|
||||
"Search Result Count": "Počet výsledků hledání",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Nástroje pro vyhledávání",
|
||||
"SearchApi API Key": "Klíč API pro SearchApi",
|
||||
"SearchApi Engine": "Vyhledávací engine API",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperimentel",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Eksportér",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funktioner importeret.",
|
||||
"General": "Generelt",
|
||||
"General Settings": "Generelle indstillinger",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generer billede",
|
||||
"Generating search query": "Genererer søgeforespørgsel",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Søg i prompts",
|
||||
"Search Result Count": "Antal søgeresultater",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Søg i værktøjer",
|
||||
"SearchApi API Key": "SearchApi API-nøgle",
|
||||
"SearchApi Engine": "SearchApi-engine",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Beispiel: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Beispiel: sAMAccountName or uid or userPrincipalName",
|
||||
"Exclude": "Ausschließen",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimentell",
|
||||
"Explore the cosmos": "Erforschen Sie das Universum",
|
||||
"Export": "Exportieren",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funktionen erfolgreich importiert",
|
||||
"General": "Allgemein",
|
||||
"General Settings": "Allgemeine Einstellungen",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Bild erzeugen",
|
||||
"Generating search query": "Suchanfrage wird erstellt",
|
||||
"Get started": "Loslegen",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Suchoptionen",
|
||||
"Search Prompts": "Prompts durchsuchen...",
|
||||
"Search Result Count": "Anzahl der Suchergebnisse",
|
||||
"Search the web": "Im Web suchen",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Werkzeuge durchsuchen...",
|
||||
"SearchApi API Key": "SearchApi-API-Schlüssel",
|
||||
"SearchApi Engine": "SearchApi-Engine",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Much Experiment",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Woweral",
|
||||
"General Settings": "General Doge Settings",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Search Prompts much wow",
|
||||
"Search Result Count": "",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Παράδειγμα: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Παράδειγμα: sAMAccountName ή uid ή userPrincipalName",
|
||||
"Exclude": "Εξαίρεση",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Πειραματικό",
|
||||
"Explore the cosmos": "Εξερευνήστε το σύμπαν",
|
||||
"Export": "Εξαγωγή",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Οι λειτουργίες εισήχθησαν με επιτυχία",
|
||||
"General": "Γενικά",
|
||||
"General Settings": "Γενικές Ρυθμίσεις",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Δημιουργία Εικόνας",
|
||||
"Generating search query": "Γενιά αναζήτησης ερώτησης",
|
||||
"Get started": "Ξεκινήστε",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Επιλογές Αναζήτησης",
|
||||
"Search Prompts": "Αναζήτηση Προτροπών",
|
||||
"Search Result Count": "Αριθμός Αποτελεσμάτων Αναζήτησης",
|
||||
"Search the web": "Αναζήτηση στο διαδίκτυο",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Αναζήτηση Εργαλείων",
|
||||
"SearchApi API Key": "Κλειδί API SearchApi",
|
||||
"SearchApi Engine": "Μηχανή SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "",
|
||||
"General Settings": "",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "",
|
||||
"Search Result Count": "",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "",
|
||||
"General Settings": "",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "",
|
||||
"Search Result Count": "",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportar",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funciones importadas exitosamente",
|
||||
"General": "General",
|
||||
"General Settings": "Opciones Generales",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generar imagen",
|
||||
"Generating search query": "Generación de consultas de búsqueda",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Buscar Prompts",
|
||||
"Search Result Count": "Recuento de resultados de búsqueda",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Búsqueda de herramientas",
|
||||
"SearchApi API Key": "Clave API de SearchApi",
|
||||
"SearchApi Engine": "Motor de SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Adibidea: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Adibidea: sAMAccountName edo uid edo userPrincipalName",
|
||||
"Exclude": "Baztertu",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Esperimentala",
|
||||
"Explore the cosmos": "Esploratu kosmosa",
|
||||
"Export": "Esportatu",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funtzioak ongi inportatu dira",
|
||||
"General": "Orokorra",
|
||||
"General Settings": "Ezarpen Orokorrak",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Sortu Irudia",
|
||||
"Generating search query": "Bilaketa kontsulta sortzen",
|
||||
"Get started": "Hasi",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Bilaketa aukerak",
|
||||
"Search Prompts": "Bilatu prompt-ak",
|
||||
"Search Result Count": "Bilaketa emaitzen kopurua",
|
||||
"Search the web": "Bilatu sarean",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Bilaketa tresnak",
|
||||
"SearchApi API Key": "SearchApi API gakoa",
|
||||
"SearchApi Engine": "SearchApi motorra",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "آزمایشی",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "برون\u200cریزی",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "درون\u200cریزی توابع با موفقیت انجام شد",
|
||||
"General": "عمومی",
|
||||
"General Settings": "تنظیمات عمومی",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "در حال تولید پرسوجوی جستجو",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "جستجوی پرامپت\u200cها",
|
||||
"Search Result Count": "تعداد نتایج جستجو",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "ابزارهای جستجو",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Esimerkki: ou=käyttäjät,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Esimerkki: sAMAccountName tai uid tai userPrincipalName",
|
||||
"Exclude": "Jätä pois",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Kokeellinen",
|
||||
"Explore the cosmos": "Tutki avaruutta",
|
||||
"Export": "Vie",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Toiminnot tuotu onnistuneesti",
|
||||
"General": "Yleinen",
|
||||
"General Settings": "Yleiset asetukset",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Luo kuva",
|
||||
"Generating search query": "Luodaan hakukyselyä",
|
||||
"Get started": "Aloita",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Hakuvaihtoehdot",
|
||||
"Search Prompts": "Hae kehotteia",
|
||||
"Search Result Count": "Hakutulosten määrä",
|
||||
"Search the web": "Etsi verkosta",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Hae työkaluja",
|
||||
"SearchApi API Key": "SearchApi API -avain",
|
||||
"SearchApi Engine": "SearchApi-moottori",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Expérimental",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportation",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Fonctions importées avec succès",
|
||||
"General": "Général",
|
||||
"General Settings": "Paramètres Généraux",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Générer une image",
|
||||
"Generating search query": "Génération d'une requête de recherche",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Recherche de prompts",
|
||||
"Search Result Count": "Nombre de résultats de recherche",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Outils de recherche",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Exemple: ou=utilisateurs,dc=foo,dc=exemple",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Exemple: sAMAccountName ou uid ou userPrincipalName",
|
||||
"Exclude": "Exclure",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Expérimental",
|
||||
"Explore the cosmos": "Explorer le cosmos",
|
||||
"Export": "Exportation",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Fonctions importées avec succès",
|
||||
"General": "Général",
|
||||
"General Settings": "Paramètres généraux",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Générer une image",
|
||||
"Generating search query": "Génération d'une requête de recherche",
|
||||
"Get started": "Commencer",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Options de recherche",
|
||||
"Search Prompts": "Rechercher des prompts",
|
||||
"Search Result Count": "Nombre de résultats de recherche",
|
||||
"Search the web": "Rechercher sur le web",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Rechercher des outils",
|
||||
"SearchApi API Key": "Clé API SearchApi",
|
||||
"SearchApi Engine": "Moteur de recherche SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "ניסיוני",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "ייצא",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "כללי",
|
||||
"General Settings": "הגדרות כלליות",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "יצירת שאילתת חיפוש",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "חפש פקודות",
|
||||
"Search Result Count": "ספירת תוצאות חיפוש",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "प्रयोगात्मक",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "निर्यातित माल",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "सामान्य",
|
||||
"General Settings": "सामान्य सेटिंग्स",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "खोज क्वेरी जनरेट करना",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "प्रॉम्प्ट खोजें",
|
||||
"Search Result Count": "खोज परिणामों की संख्या",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperimentalno",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Izvoz",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Općenito",
|
||||
"General Settings": "Opće postavke",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Gneriraj sliku",
|
||||
"Generating search query": "Generiranje upita za pretraživanje",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Pretraga prompta",
|
||||
"Search Result Count": "Broj rezultata pretraživanja",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Alati za pretraživanje",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "Kizárás",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Kísérleti",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportálás",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funkciók sikeresen importálva",
|
||||
"General": "Általános",
|
||||
"General Settings": "Általános beállítások",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Kép generálása",
|
||||
"Generating search query": "Keresési lekérdezés generálása",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Promptok keresése",
|
||||
"Search Result Count": "Keresési találatok száma",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Eszközök keresése",
|
||||
"SearchApi API Key": "SearchApi API kulcs",
|
||||
"SearchApi Engine": "SearchApi motor",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Percobaan",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Ekspor",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Fungsi berhasil diimpor",
|
||||
"General": "Umum",
|
||||
"General Settings": "Pengaturan Umum",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Menghasilkan Gambar",
|
||||
"Generating search query": "Membuat kueri penelusuran",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Perintah Pencarian",
|
||||
"Search Result Count": "Jumlah Hasil Pencarian",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Alat Pencarian",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Sampla: ou=úsáideoirí,dc=foo,dc=sampla",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Sampla: sAMAaccountName nó uid nó userPrincipalName",
|
||||
"Exclude": "Eisigh",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Turgnamhach",
|
||||
"Explore the cosmos": "Déan iniúchadh ar an cosmos",
|
||||
"Export": "Easpórtáil",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Feidhmeanna allmhairi",
|
||||
"General": "Ginearálta",
|
||||
"General Settings": "Socruithe Ginearálta",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Ginigh Íomhá",
|
||||
"Generating search query": "Giniúint ceist cuardaigh",
|
||||
"Get started": "Cuir tús leis",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Roghanna cuardaigh",
|
||||
"Search Prompts": "Leideanna Cuardaigh",
|
||||
"Search Result Count": "Líon Torthaí Cuardaigh",
|
||||
"Search the web": "Cuardaigh an gréasán",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Uirlisí Cuardaigh",
|
||||
"SearchApi API Key": "Eochair API SearchAPI",
|
||||
"SearchApi Engine": "Inneall SearchAPI",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Sperimentale",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Esportazione",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Generale",
|
||||
"General Settings": "Impostazioni generali",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "Generazione di query di ricerca",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Cerca prompt",
|
||||
"Search Result Count": "Conteggio dei risultati della ricerca",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "実験的",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "エクスポート",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Functionsのインポートが成功しました",
|
||||
"General": "一般",
|
||||
"General Settings": "一般設定",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "検索クエリの生成",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "プロンプトを検索",
|
||||
"Search Result Count": "検索結果数",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "ツールの検索",
|
||||
"SearchApi API Key": "SearchApiのAPIKey",
|
||||
"SearchApi Engine": "SearchApiエンジン",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "ექსპერიმენტალური",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "ექსპორტი",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "ზოგადი",
|
||||
"General Settings": "ზოგადი პარამეტრები",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "საძიებო მოთხოვნის გენერირება",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "მოთხოვნების ძიება",
|
||||
"Search Result Count": "ძიების შედეგების რაოდენობა",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "미포함",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "실험적",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "내보내기",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "성공적으로 함수가 가져왔습니다",
|
||||
"General": "일반",
|
||||
"General Settings": "일반 설정",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "이미지 생성",
|
||||
"Generating search query": "검색 쿼리 생성",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "옵션 검색",
|
||||
"Search Prompts": "프롬프트 검색",
|
||||
"Search Result Count": "검색 결과 수",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "검색 도구",
|
||||
"SearchApi API Key": "SearchApi API 키",
|
||||
"SearchApi Engine": "SearchApi 엔진",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperimentinis",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Eksportuoti",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funkcijos importuotos sėkmingai",
|
||||
"General": "Bendri",
|
||||
"General Settings": "Bendri nustatymai",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generuoti paveikslėlį",
|
||||
"Generating search query": "Generuoti paieškos užklausą",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Ieškoti užklausų",
|
||||
"Search Result Count": "Paieškos rezultatų skaičius",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Paieškos įrankiai",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Percubaan",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Eksport",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Fungsi berjaya diimport",
|
||||
"General": "Umum",
|
||||
"General Settings": "Tetapan Umum",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Jana Imej",
|
||||
"Generating search query": "Jana pertanyaan carian",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Carian Gesaan",
|
||||
"Search Result Count": "Kiraan Hasil Carian",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Alat Carian",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Eksempel: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Eksempel: sAMAccountName eller uid eller userPrincipalName",
|
||||
"Exclude": "Utelukk",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperimentell",
|
||||
"Explore the cosmos": "Utforsk verdensrommet",
|
||||
"Export": "Eksporter",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funksjoner er importert",
|
||||
"General": "Generelt",
|
||||
"General Settings": "Generelle innstillinger",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generer bilde",
|
||||
"Generating search query": "Genererer søkespørring",
|
||||
"Get started": "Kom i gang",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Søk etter alternativer",
|
||||
"Search Prompts": "Søk etter ledetekster",
|
||||
"Search Result Count": "Antall søkeresultater",
|
||||
"Search the web": "Søk på nettet",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Søkeverktøy",
|
||||
"SearchApi API Key": "API-nøkkel for SearchApi",
|
||||
"SearchApi Engine": "Motor for SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Voorbeeld: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Voorbeeld: sAMAccountName or uid or userPrincipalName",
|
||||
"Exclude": "Sluit uit",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimenteel",
|
||||
"Explore the cosmos": "Ontdek de kosmos",
|
||||
"Export": "Exporteren",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Functies succesvol geïmporteerd",
|
||||
"General": "Algemeen",
|
||||
"General Settings": "Algemene instellingen",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Genereer afbeelding",
|
||||
"Generating search query": "Zoekopdracht genereren",
|
||||
"Get started": "Begin",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Opties zoeken",
|
||||
"Search Prompts": "Prompts zoeken",
|
||||
"Search Result Count": "Aantal zoekresultaten",
|
||||
"Search the web": "Zoek op het internet",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Zoek gereedschappen",
|
||||
"SearchApi API Key": "SearchApi API-sleutel",
|
||||
"SearchApi Engine": "SearchApi Engine",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "ਪਰਮਾਣੂਕ੍ਰਿਤ",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "ਨਿਰਯਾਤ",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "ਆਮ",
|
||||
"General Settings": "ਆਮ ਸੈਟਿੰਗਾਂ",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "ਖੋਜ ਪੁੱਛਗਿੱਛ ਤਿਆਰ ਕਰਨਾ",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "ਪ੍ਰੰਪਟ ਖੋਜੋ",
|
||||
"Search Result Count": "ਖੋਜ ਨਤੀਜੇ ਦੀ ਗਿਣਤੀ",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Eksperymentalne",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Eksport",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Ogólne",
|
||||
"General Settings": "Ogólne ustawienia",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "Generowanie zapytania",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Szukaj promptów",
|
||||
"Search Result Count": "Liczba wyników wyszukiwania",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Exemplo: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Exemplo: sAMAccountName ou uid ou userPrincipalName",
|
||||
"Exclude": "Excluir",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "Explorar o cosmos",
|
||||
"Export": "Exportar",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funções importadas com sucesso",
|
||||
"General": "Geral",
|
||||
"General Settings": "Configurações Gerais",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Gerar Imagem",
|
||||
"Generating search query": "Gerando consulta de pesquisa",
|
||||
"Get started": "Iniciar",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Opções de pesquisa",
|
||||
"Search Prompts": "Prompts de Pesquisa",
|
||||
"Search Result Count": "Contagem de Resultados da Pesquisa",
|
||||
"Search the web": "Pesquisar web",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Pesquisar Ferramentas",
|
||||
"SearchApi API Key": "Chave API SearchApi",
|
||||
"SearchApi Engine": "Motor SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportar",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Geral",
|
||||
"General Settings": "Configurações Gerais",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Gerar imagem",
|
||||
"Generating search query": "A gerar a consulta da pesquisa",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Pesquisar Prompts",
|
||||
"Search Result Count": "Contagem de resultados da pesquisa",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "Exclude",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportă",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funcțiile au fost importate cu succes",
|
||||
"General": "General",
|
||||
"General Settings": "Setări Generale",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generează Imagine",
|
||||
"Generating search query": "Se generează interogarea de căutare",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Caută Prompturi",
|
||||
"Search Result Count": "Număr Rezultate Căutare",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Caută Instrumente",
|
||||
"SearchApi API Key": "Cheie API pentru SearchApi",
|
||||
"SearchApi Engine": "Motorul SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "Исключать",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Экспериментальное",
|
||||
"Explore the cosmos": "Исследуйте космос",
|
||||
"Export": "Экспорт",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Функции успешно импортированы",
|
||||
"General": "Общее",
|
||||
"General Settings": "Общие настройки",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Сгенерировать изображение",
|
||||
"Generating search query": "Генерация поискового запроса",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Поиск промптов",
|
||||
"Search Result Count": "Количество результатов поиска",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Поиск инструментов",
|
||||
"SearchApi API Key": "Ключ SearchApi API",
|
||||
"SearchApi Engine": "Движок SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "Vylúčiť",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimentálne",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Exportovať",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Funkcie boli úspešne importované",
|
||||
"General": "Všeobecné",
|
||||
"General Settings": "Všeobecné nastavenia",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Vygenerovať obrázok",
|
||||
"Generating search query": "Generovanie vyhľadávacieho dotazu",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Vyhľadávacie dotazy",
|
||||
"Search Result Count": "Počet výsledkov hľadania",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Nástroje na vyhľadávanie",
|
||||
"SearchApi API Key": "Kľúč API pre SearchApi",
|
||||
"SearchApi Engine": "Vyhľadávací engine API",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Експериментално",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Извоз",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Опште",
|
||||
"General Settings": "Општа подешавања",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "Генерисање упита претраге",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Опције претраге",
|
||||
"Search Prompts": "Претражи упите",
|
||||
"Search Result Count": "Број резултата претраге",
|
||||
"Search the web": "Претражи веб",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Алати претраге",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Experimentell",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Export",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "Allmän",
|
||||
"General Settings": "Allmänna inställningar",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Generera bild",
|
||||
"Generating search query": "Genererar sökfråga",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Sök instruktioner",
|
||||
"Search Result Count": "Antal sökresultat",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Sökverktyg",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "การทดลอง",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "ส่งออก",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "นำเข้าฟังก์ชันสำเร็จ",
|
||||
"General": "ทั่วไป",
|
||||
"General Settings": "การตั้งค่าทั่วไป",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "สร้างภาพ",
|
||||
"Generating search query": "สร้างคำค้นหา",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "ค้นหาพรอมต์",
|
||||
"Search Result Count": "จำนวนผลลัพธ์การค้นหา",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "เครื่องมือค้นหา",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "",
|
||||
"General": "",
|
||||
"General Settings": "",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "",
|
||||
"Generating search query": "",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "",
|
||||
"Search Result Count": "",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Örnek: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Örnek: sAMAccountName or uid or userPrincipalName",
|
||||
"Exclude": "Hariç tut",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Deneysel",
|
||||
"Explore the cosmos": "Evreni keşfet",
|
||||
"Export": "Dışa Aktar",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Fonksiyonlar başarıyla içe aktarıldı",
|
||||
"General": "Genel",
|
||||
"General Settings": "Genel Ayarlar",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Görsel Üret",
|
||||
"Generating search query": "Arama sorgusu oluşturma",
|
||||
"Get started": "Başlayın",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Arama seçenekleri",
|
||||
"Search Prompts": "Prompt Ara",
|
||||
"Search Result Count": "Arama Sonucu Sayısı",
|
||||
"Search the web": "Web'de ara",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Arama Araçları",
|
||||
"SearchApi API Key": "Arama-API API Anahtarı",
|
||||
"SearchApi Engine": "Arama-API Motoru",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "Приклад: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Приклад: sAMAccountName або uid або userPrincipalName",
|
||||
"Exclude": "Виключити",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Експериментальне",
|
||||
"Explore the cosmos": "Досліджуйте космос",
|
||||
"Export": "Експорт",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Функції успішно імпортовано",
|
||||
"General": "Загальні",
|
||||
"General Settings": "Загальні налаштування",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Створити зображення",
|
||||
"Generating search query": "Сформувати пошуковий запит",
|
||||
"Get started": "Почати",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "Опції пошуку",
|
||||
"Search Prompts": "Пошук промтів",
|
||||
"Search Result Count": "Кількість результатів пошуку",
|
||||
"Search the web": "Шукати в Інтернеті",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Пошуку інструментів",
|
||||
"SearchApi API Key": "Ключ API для SearchApi",
|
||||
"SearchApi Engine": "Рушій SearchApi",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "خارج کریں",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "تجرباتی",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "برآمد کریں",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "فنکشنز کامیابی سے درآمد ہو گئے ہیں",
|
||||
"General": "عمومی",
|
||||
"General Settings": "عمومی ترتیبات",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "تصویر بنائیں",
|
||||
"Generating search query": "تلاش کے لیے سوالیہ عبارت تیار کی جا رہی ہے",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "تلاش کے اشارے",
|
||||
"Search Result Count": "تلاش کا نتیجہ شمار ",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "تلاش کے اوزار",
|
||||
"SearchApi API Key": "سرچ اے پی آئی کی API کلید",
|
||||
"SearchApi Engine": "تلاش انجن API",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "Thử nghiệm",
|
||||
"Explore the cosmos": "",
|
||||
"Export": "Xuất khẩu",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "Các function đã được nạp thành công",
|
||||
"General": "Cài đặt chung",
|
||||
"General Settings": "Cấu hình chung",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "Sinh ảnh",
|
||||
"Generating search query": "Tạo truy vấn tìm kiếm",
|
||||
"Get started": "",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "",
|
||||
"Search Prompts": "Tìm prompt",
|
||||
"Search Result Count": "Số kết quả tìm kiếm",
|
||||
"Search the web": "",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "Tìm kiếm Tools",
|
||||
"SearchApi API Key": "",
|
||||
"SearchApi Engine": "",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "例如:ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "例如:sAMAccountName 或 uid 或 userPrincipalName",
|
||||
"Exclude": "排除",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "实验性",
|
||||
"Explore the cosmos": "探索宇宙",
|
||||
"Export": "导出",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "函数导入成功",
|
||||
"General": "通用",
|
||||
"General Settings": "通用设置",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "生成图像",
|
||||
"Generating search query": "生成搜索查询",
|
||||
"Get started": "开始使用",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "搜索选项",
|
||||
"Search Prompts": "搜索提示词",
|
||||
"Search Result Count": "搜索结果数量",
|
||||
"Search the web": "从网络搜索",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "搜索工具",
|
||||
"SearchApi API Key": "SearchApi API 密钥",
|
||||
"SearchApi Engine": "SearchApi 引擎",
|
||||
|
@ -402,6 +402,7 @@
|
||||
"Example: ou=users,dc=foo,dc=example": "範例:ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "範例:sAMAccountName 或 uid 或 userPrincipalName",
|
||||
"Exclude": "排除",
|
||||
"Executes code for analysis": "",
|
||||
"Experimental": "實驗性功能",
|
||||
"Explore the cosmos": "探索宇宙",
|
||||
"Export": "匯出",
|
||||
@ -468,6 +469,7 @@
|
||||
"Functions imported successfully": "成功匯入函式",
|
||||
"General": "一般",
|
||||
"General Settings": "一般設定",
|
||||
"Generate an image": "",
|
||||
"Generate Image": "產生圖片",
|
||||
"Generating search query": "正在產生搜尋查詢",
|
||||
"Get started": "開始使用",
|
||||
@ -803,7 +805,7 @@
|
||||
"Search options": "搜尋選項",
|
||||
"Search Prompts": "搜尋提示詞",
|
||||
"Search Result Count": "搜尋結果數量",
|
||||
"Search the web": "搜尋網頁",
|
||||
"Search the internet": "",
|
||||
"Search Tools": "搜尋工具",
|
||||
"SearchApi API Key": "SearchApi API 金鑰",
|
||||
"SearchApi Engine": "SearchApi 引擎",
|
||||
|
Loading…
x
Reference in New Issue
Block a user