From e7b6738fe859bffc64019f18bdad702ab622fd82 Mon Sep 17 00:00:00 2001 From: based Date: Sun, 31 Dec 2023 05:04:37 +1000 Subject: [PATCH 001/144] merge --- src/endpoints/prompt-converters.js | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/endpoints/prompt-converters.js b/src/endpoints/prompt-converters.js index 12efd1cdc..8b2d3a0fb 100644 --- a/src/endpoints/prompt-converters.js +++ b/src/endpoints/prompt-converters.js @@ -65,6 +65,53 @@ function convertClaudePrompt(messages, addAssistantPostfix, addAssistantPrefill, return requestPrompt; } +/** + * Convert ChatML objects into working with Anthropic's new Messaging API. + * @param {object[]} messages Array of messages + * @param {boolean} addAssistantPostfix Add Assistant postfix. + * @param {string} addAssistantPrefill Add Assistant prefill after the assistant postfix. + * @param {boolean} withSysPromptSupport Indicates if the Claude model supports the system prompt format. + * @param {string} addSysHumanMsg Add Human message between system prompt and assistant. + */ +function convertClaudeMessages(messages, addAssistantPostfix, addAssistantPrefill, addSysHumanMsg) { + // Collect all the system messages up until the first instance of a non-system message, and then remove them from the messages array. + let systemPrompt = ''; + let i; + for (i = 0; i < messages.length; i++) { + if (messages[i].role !== 'system') { + break; + } + systemPrompt += `${messages[i].content}\n\n`; + } + + messages.splice(0, i); + + // Check if the first message in the array is of type user, if not, interject with addSysHumanMsg or a blank message. + if (messages.length > 0 && messages[0].role !== 'user') { + messages.unshift({ + role: 'user', + content: addSysHumanMsg || '', + }); + } + + // Now replace all further messages that have the role 'system' with the role 'user'. + messages.forEach((message) => { + if (message.role === 'system') { + message.role = 'user'; + } + }); + + // Postfix and prefill + if (addAssistantPostfix) { + messages.push({ + role: 'assistant', + content: addAssistantPrefill || '', + }); + } + + return { messages: messages, systemPrompt: systemPrompt.trim() }; +} + /** * Convert a prompt from the ChatML objects to the format used by Google MakerSuite models. * @param {object[]} messages Array of messages @@ -154,6 +201,7 @@ function convertTextCompletionPrompt(messages) { module.exports = { convertClaudePrompt, + convertClaudeMessages, convertGooglePrompt, convertTextCompletionPrompt, }; From 670f08fad2fe1bc2b5ff9a13e6682c960458ffaf Mon Sep 17 00:00:00 2001 From: berbant <33601955+berbant@users.noreply.github.com> Date: Sun, 25 Feb 2024 21:11:56 +0400 Subject: [PATCH 002/144] Update group-chats.js After deleting a group chat, the oldest chat became active. I've fixed it so that the most recent chat becomes active instead. --- public/scripts/group-chats.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index 81a368087..775c3fcb1 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -1622,7 +1622,7 @@ export async function deleteGroupChat(groupId, chatId) { if (response.ok) { if (group.chats.length) { - await openGroupChat(groupId, group.chats[0]); + await openGroupChat(groupId, group.chats[group.chats.length-1]); } else { await createNewGroupChat(groupId); } From 3c620effaf48c9a7fbe6879f8d09b6f7f6f90c12 Mon Sep 17 00:00:00 2001 From: berbant <33601955+berbant@users.noreply.github.com> Date: Sun, 25 Feb 2024 21:19:28 +0400 Subject: [PATCH 003/144] Update script.js --- public/script.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/public/script.js b/public/script.js index ad678597d..d040f9192 100644 --- a/public/script.js +++ b/public/script.js @@ -8362,9 +8362,14 @@ jQuery(async function () { //Fix it; New chat doesn't create while open create character menu await clearChat(); chat.length = 0; + + chat_file_for_del = getCurrentChatDetails().sessionName + const isDelChatCheckbox = document.getElementById('del_chat_checkbox').checked if (selected_group) { + //Fix it; When you're creating a new group chat (but not when initially converting from the existing regular chat), the first greeting message doesn't automatically get translated. await createNewGroupChat(selected_group); + if (isDelChatCheckbox) await deleteGroupChat(selected_group, chat_file_for_del); } else { //RossAscends: added character name to new chat filenames and replaced Date.now() with humanizedDateTime; @@ -8373,6 +8378,7 @@ jQuery(async function () { $('#selected_chat_pole').val(characters[this_chid].chat); await getChat(); await createOrEditCharacter(); + if (isDelChatCheckbox) await delChat(chat_file_for_del + '.jsonl'); } } @@ -8746,7 +8752,14 @@ jQuery(async function () { else if (id == 'option_start_new_chat') { if ((selected_group || this_chid !== undefined) && !is_send_press) { popup_type = 'new_chat'; - callPopup('

Start new chat?

'); + callPopup(` +

Start new chat?


+
+ `); } } From d024d7c700404e7bb04aa8352ec98277bbd23683 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 27 Feb 2024 23:34:07 +0200 Subject: [PATCH 004/144] Allow max value for per-entry depth --- public/scripts/world-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js index 9c8295027..5352fce5a 100644 --- a/public/scripts/world-info.js +++ b/public/scripts/world-info.js @@ -1542,7 +1542,7 @@ function getWorldEntry(name, data, entry) { return; } - data.entries[uid].scanDepth = !isEmpty && !isNaN(value) && value >= 0 && value < MAX_SCAN_DEPTH ? Math.floor(value) : null; + data.entries[uid].scanDepth = !isEmpty && !isNaN(value) && value >= 0 && value <= MAX_SCAN_DEPTH ? Math.floor(value) : null; setOriginalDataValue(data, uid, 'extensions.scan_depth', data.entries[uid].scanDepth); saveWorldInfo(name, data); }); From 76669ff8bbf009d911f6af2eeaf62895c948def0 Mon Sep 17 00:00:00 2001 From: gabriel dhimoila Date: Thu, 29 Feb 2024 00:55:25 +0100 Subject: [PATCH 005/144] add max_tokens_second --- public/index.html | 5 +++++ public/scripts/power-user.js | 3 ++- public/scripts/textgen-settings.js | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index 74862b5b3..88194226a 100644 --- a/public/index.html +++ b/public/index.html @@ -1279,6 +1279,11 @@ +
+ Maximum tokens/second + + +
+
+
+
+ Description + + + + +
+ +
+ Tokens: counting... +
+
+
+
+
+ First message + + + + +
+ +
+ +
+ Tokens: counting... +
+
@@ -4417,7 +4421,7 @@ Chat History
- - +
diff --git a/public/script.js b/public/script.js index dcab37d2a..29b848769 100644 --- a/public/script.js +++ b/public/script.js @@ -6442,7 +6442,7 @@ export function select_selected_character(chid) { $('#description_textarea').val(characters[chid].description); $('#character_world').val(characters[chid].data?.extensions?.world || ''); $('#creator_notes_textarea').val(characters[chid].data?.creator_notes || characters[chid].creatorcomment); - $('#creator_notes_spoiler').text(characters[chid].data?.creator_notes || characters[chid].creatorcomment); + $('#creator_notes_spoiler').html(converter.makeHtml(characters[chid].data?.creator_notes || characters[chid].creatorcomment)); $('#character_version_textarea').val(characters[chid].data?.character_version || ''); $('#system_prompt_textarea').val(characters[chid].data?.system_prompt || ''); $('#post_history_instructions_textarea').val(characters[chid].data?.post_history_instructions || ''); @@ -6512,7 +6512,7 @@ function select_rm_create() { $('#description_textarea').val(create_save.description); $('#character_world').val(create_save.world); $('#creator_notes_textarea').val(create_save.creator_notes); - $('#creator_notes_spoiler').text(create_save.creator_notes); + $('#creator_notes_spoiler').html(converter.makeHtml(create_save.creator_notes)); $('#post_history_instructions_textarea').val(create_save.post_history_instructions); $('#system_prompt_textarea').val(create_save.system_prompt); $('#tags_textarea').val(create_save.tags); From be38359d661462078c8b76b339bac3ffd5267eb2 Mon Sep 17 00:00:00 2001 From: RossAscends <124905043+RossAscends@users.noreply.github.com> Date: Sun, 3 Mar 2024 22:25:20 +0900 Subject: [PATCH 031/144] add maximize button to creator note --- public/index.html | 2 +- public/style.css | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index d255d3fca..2d2fff432 100644 --- a/public/index.html +++ b/public/index.html @@ -4298,7 +4298,7 @@
-

Creator's Notes

+

Creator's Notes

diff --git a/public/style.css b/public/style.css index 969efc27e..ff27b1250 100644 --- a/public/style.css +++ b/public/style.css @@ -1018,6 +1018,19 @@ select { order: 3; } +#character_popup .editor_maximize { + cursor: pointer; + margin: 5px; + opacity: 0.75; + filter: grayscale(1); + -webkit-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#character_popup .editor_maximize:hover { + opacity: 1; +} + .text_pole::placeholder { color: rgb(139, 139, 139); } From 39c588f30e4d642738ce0d0aeffd116cd859e09a Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 15:26:25 +0200 Subject: [PATCH 032/144] Showdown: parse single underscores as italics --- public/script.js | 2 ++ public/scripts/showdown-underscore.js | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 public/scripts/showdown-underscore.js diff --git a/public/script.js b/public/script.js index 29b848769..a664c12d2 100644 --- a/public/script.js +++ b/public/script.js @@ -172,6 +172,7 @@ import { } from './scripts/secrets.js'; import { EventEmitter } from './lib/eventemitter.js'; import { markdownExclusionExt } from './scripts/showdown-exclusion.js'; +import { markdownUnderscoreExt } from './scripts/showdown-underscore.js'; import { NOTE_MODULE_NAME, initAuthorsNote, metadata_keys, setFloatingPrompt, shouldWIAddPrompt } from './scripts/authors-note.js'; import { registerPromptManagerMigration } from './scripts/PromptManager.js'; import { getRegexedString, regex_placement } from './scripts/extensions/regex/engine.js'; @@ -690,6 +691,7 @@ function reloadMarkdownProcessor(render_formulas = false) { parseImgDimensions: true, tables: true, underline: true, + extensions: [markdownUnderscoreExt()], }); } diff --git a/public/scripts/showdown-underscore.js b/public/scripts/showdown-underscore.js new file mode 100644 index 000000000..1ff3bdabd --- /dev/null +++ b/public/scripts/showdown-underscore.js @@ -0,0 +1,22 @@ +// Showdown extension that replaces words surrounded by singular underscores with tags +export const markdownUnderscoreExt = () => { + if (!canUseNegativeLookbehind()) { + console.log('Showdown-underscore extension: Negative lookbehind not supported. Skipping.'); + return []; + } + + return [{ + type: 'lang', + regex: /\b(?$1', + }]; +}; + +function canUseNegativeLookbehind() { + try { + new RegExp('(? Date: Sun, 3 Mar 2024 16:04:48 +0200 Subject: [PATCH 033/144] Clean-up /fuzzy command doc comments --- public/scripts/slash-commands.js | 50 ++++++++++++++------------------ 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 5376d14b1..b1f84b208 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -173,7 +173,7 @@ parser.addCommand('gen', generateCallback, [], '(lock=on parser.addCommand('genraw', generateRawCallback, [], '(lock=on/off [prompt]) – generates text using the provided prompt and passes it to the next command through the pipe, optionally locking user input while generating. Does not include chat history or character card. Use instruct=off to skip instruct formatting, e.g. /genraw instruct=off Why is the sky blue?. Use stop=... with a JSON-serialized array to add one-time custom stop strings, e.g. /genraw stop=["\\n"] Say hi', true, true); parser.addCommand('addswipe', addSwipeCallback, ['swipeadd'], '(text) – adds a swipe to the last chat message.', true, true); parser.addCommand('abort', abortCallback, [], ' – aborts the slash command batch execution', true, true); -parser.addCommand('fuzzy', fuzzyCallback, [], 'list=["a","b","c"] threshold=0.4 (text to search) – performs a fuzzy match of each items of list within the text to search. If any item matches then its name is returned. If no item list matches the text to search then undefined is returned. The optional threshold (default is 0.4) allows some control over the matching. A low value (min 0.0) means the match is very strict. At 1.0 (max) the match is very loose and probably matches anything. The returned value passes to the next command through the pipe.', true, true);parser.addCommand('pass', (_, arg) => arg, ['return'], '(text) – passes the text to the next command through the pipe.', true, true); +parser.addCommand('fuzzy', fuzzyCallback, [], 'list=["a","b","c"] threshold=0.4 (text to search) – performs a fuzzy match of each items of list within the text to search. If any item matches then its name is returned. If no item list matches the text to search then no value is returned. The optional threshold (default is 0.4) allows some control over the matching. A low value (min 0.0) means the match is very strict. At 1.0 (max) the match is very loose and probably matches anything. The returned value passes to the next command through the pipe.', true, true); parser.addCommand('pass', (_, arg) => arg, ['return'], '(text) – passes the text to the next command through the pipe.', true, true); parser.addCommand('delay', delayCallback, ['wait', 'sleep'], '(milliseconds) – delays the next command in the pipe by the specified number of milliseconds.', true, true); parser.addCommand('input', inputCallback, ['prompt'], '(default="string" large=on/off wide=on/off okButton="string" rows=number [text]) – Shows a popup with the provided text and an input field. The default argument is the default value of the input field, and the text argument is the text to display.', true, true); parser.addCommand('run', runCallback, ['call', 'exec'], '[key1=value key2=value ...] ([qrSet.]qrLabel) – runs a Quick Reply with the specified name from a currently active preset or from another preset, named arguments can be referenced in a QR with {{arg::key}}.', true, true); @@ -503,23 +503,15 @@ async function inputCallback(args, prompt) { /** * Each item in "args.list" is searched within "search_item" using fuzzy search. If any matches it returns the matched "item". - * @param {any} args - arguments containing "list" (JSON array) and optionaly "threshold" (float between 0.0 and 1.0) - * @param {list} args.list - list of words you search into search_in_value - * @param {number} args.threshold - sensitivity of search, the lower the strictier, default value is 0.4 - * @param {string} search_in_value - the string where items of list are searched - * @returns {string} + * @param {FuzzyCommandArgs} args - arguments containing "list" (JSON array) and optionaly "threshold" (float between 0.0 and 1.0) + * @param {string} searchInValue - the string where items of list are searched + * @returns {string} - the matched item from the list + * @typedef {{list: string, threshold: string}} FuzzyCommandArgs - arguments for /fuzzy command + * @example /fuzzy list=["down","left","up","right"] "he looks up" | /echo // should return "up" + * @link https://www.fusejs.io/ */ -function fuzzyCallback(args, search_in_value) { - // - // args.list : list of words (no space) you search into search_in_value - // args.threshold : sensitivity of search, lower the more strict (added to give more flexibility) - // search_in_value: the text where you want to search - // - // /fuzzy list=["down","left","up","right"] "he looks up" | /echo - // should return "up" - // https://www.fusejs.io/ - - if (!value) { +function fuzzyCallback(args, searchInValue) { + if (!searchInValue) { console.warn('WARN: No argument provided for /fuzzy command'); return ''; } @@ -543,27 +535,27 @@ function fuzzyCallback(args, search_in_value) { threshold: 0.4, }; // threshold determines how strict is the match, low threshold value is very strict, at 1 (nearly?) everything matches - if ( 'threshold' in args ) { + if ('threshold' in args) { params.threshold = parseFloat(resolveVariable(args.threshold)); - if ( isNaN(params.threshold) ) { + if (isNaN(params.threshold)) { console.warn('WARN: \'threshold\' argument must be a float between 0.0 and 1.0 for /fuzzy command'); return ''; } - if ( params.threshold < 0 ) { + if (params.threshold < 0) { params.threshold = 0; } - if ( params.threshold > 1 ) { + if (params.threshold > 1) { params.threshold = 1; } } - const fuse = new Fuse([search_in_value], params); + const fuse = new Fuse([searchInValue], params); // each item in the "list" is searched within "search_item", if any matches it returns the matched "item" - for (let search_item of list) { - let result = fuse.search(search_item); - if ( result.length > 0 ) { - console.info('fuzzyCallback Matched: ' + search_item); - return search_item; + for (const searchItem of list) { + const result = fuse.search(searchItem); + if (result.length > 0) { + console.info('fuzzyCallback Matched: ' + searchItem); + return searchItem; } } return ''; @@ -1623,7 +1615,7 @@ async function executeSlashCommands(text, unescape = false) { ?.replace(/\\\|/g, '|') ?.replace(/\\\{/g, '{') ?.replace(/\\\}/g, '}') - ; + ; } for (const [key, value] of Object.entries(result.args)) { @@ -1632,7 +1624,7 @@ async function executeSlashCommands(text, unescape = false) { .replace(/\\\|/g, '|') .replace(/\\\{/g, '{') .replace(/\\\}/g, '}') - ; + ; } } From 112e8f224cfa6c70a41e9ecf57872342ea366b38 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 16:45:26 +0200 Subject: [PATCH 034/144] Use alternate method of determining URLs, consolidate logs format --- public/script.js | 3 ++- src/endpoints/content-manager.js | 13 ++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/script.js b/public/script.js index 8999f3f98..cee684a60 100644 --- a/public/script.js +++ b/public/script.js @@ -148,6 +148,7 @@ import { getBase64Async, humanFileSize, Stopwatch, + isValidUrl, } from './scripts/utils.js'; import { ModuleWorkerWrapper, doDailyExtensionUpdatesCheck, extension_settings, getContext, loadExtensionSettings, renderExtensionTemplate, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; @@ -9988,7 +9989,7 @@ jQuery(async function () { const url = input.trim(); var request; - if (url.includes("https")) { + if (isValidUrl(url)) { console.debug('Custom content import started for URL: ', url); request = await fetch('/api/content/importURL', { method: 'POST', diff --git a/src/endpoints/content-manager.js b/src/endpoints/content-manager.js index ef18395ac..e40c8ff85 100644 --- a/src/endpoints/content-manager.js +++ b/src/endpoints/content-manager.js @@ -422,18 +422,17 @@ router.post('/importUUID', jsonParser, async (request, response) => { const uuid = request.body.url; let result; - const isJannny = uuid.includes("_character") - const isPygmalion = (!isJannny && uuid.length == 36) - const uuidType = uuid.includes("lorebook") ? "lorebook" : "character"; + const isJannny = uuid.includes('_character'); + const isPygmalion = (!isJannny && uuid.length == 36); + const uuidType = uuid.includes('lorebook') ? 'lorebook' : 'character'; if (isPygmalion) { - console.debug("We have a Pyg character") + console.log('Downloading Pygmalion character:', uuid); result = await downloadPygmalionCharacter(uuid); } else if (isJannny) { - console.debug("We have a Janny character") - result = await downloadJannyCharacter(uuid.split("_")[0]); + console.log('Downloading Janitor character:', uuid.split('_')[0]); + result = await downloadJannyCharacter(uuid.split('_')[0]); } else { - console.debug("We have something from Chub?") if (uuidType === 'character') { console.log('Downloading chub character:', uuid); result = await downloadChubCharacter(uuid); From 8cf1671d56b67e1ea9da169c3b4c4383033990e8 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 16:49:44 +0200 Subject: [PATCH 035/144] Sanitize creator's notes --- public/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index 2e69fc678..bafb96628 100644 --- a/public/script.js +++ b/public/script.js @@ -6445,7 +6445,7 @@ export function select_selected_character(chid) { $('#description_textarea').val(characters[chid].description); $('#character_world').val(characters[chid].data?.extensions?.world || ''); $('#creator_notes_textarea').val(characters[chid].data?.creator_notes || characters[chid].creatorcomment); - $('#creator_notes_spoiler').html(converter.makeHtml(characters[chid].data?.creator_notes || characters[chid].creatorcomment)); + $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(characters[chid].data?.creator_notes || characters[chid].creatorcomment))); $('#character_version_textarea').val(characters[chid].data?.character_version || ''); $('#system_prompt_textarea').val(characters[chid].data?.system_prompt || ''); $('#post_history_instructions_textarea').val(characters[chid].data?.post_history_instructions || ''); @@ -6515,7 +6515,7 @@ function select_rm_create() { $('#description_textarea').val(create_save.description); $('#character_world').val(create_save.world); $('#creator_notes_textarea').val(create_save.creator_notes); - $('#creator_notes_spoiler').html(converter.makeHtml(create_save.creator_notes)); + $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(create_save.creator_notes))); $('#post_history_instructions_textarea').val(create_save.post_history_instructions); $('#system_prompt_textarea').val(create_save.system_prompt); $('#tags_textarea').val(create_save.tags); From 8767c2a90b311270c62f709b3b90bf32351c3f80 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 16:57:38 +0200 Subject: [PATCH 036/144] Respect external media preferences in creator notes --- public/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index bafb96628..cfb453486 100644 --- a/public/script.js +++ b/public/script.js @@ -6445,7 +6445,7 @@ export function select_selected_character(chid) { $('#description_textarea').val(characters[chid].description); $('#character_world').val(characters[chid].data?.extensions?.world || ''); $('#creator_notes_textarea').val(characters[chid].data?.creator_notes || characters[chid].creatorcomment); - $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(characters[chid].data?.creator_notes || characters[chid].creatorcomment))); + $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(characters[chid].data?.creator_notes || characters[chid].creatorcomment), { MESSAGE_SANITIZE: true })); $('#character_version_textarea').val(characters[chid].data?.character_version || ''); $('#system_prompt_textarea').val(characters[chid].data?.system_prompt || ''); $('#post_history_instructions_textarea').val(characters[chid].data?.post_history_instructions || ''); @@ -6515,7 +6515,7 @@ function select_rm_create() { $('#description_textarea').val(create_save.description); $('#character_world').val(create_save.world); $('#creator_notes_textarea').val(create_save.creator_notes); - $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(create_save.creator_notes))); + $('#creator_notes_spoiler').html(DOMPurify.sanitize(converter.makeHtml(create_save.creator_notes), { MESSAGE_SANITIZE: true })); $('#post_history_instructions_textarea').val(create_save.post_history_instructions); $('#system_prompt_textarea').val(create_save.system_prompt); $('#tags_textarea').val(create_save.tags); From 23c2a0d8f5512d7081254365ec22763d865c25e2 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 18:56:05 +0200 Subject: [PATCH 037/144] Fix card fields replace if missing --- public/script.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/public/script.js b/public/script.js index cfb453486..961ce65c1 100644 --- a/public/script.js +++ b/public/script.js @@ -2491,12 +2491,12 @@ export function getCharacterCardFields() { return result; } - const scenarioText = chat_metadata['scenario'] || characters[this_chid].scenario; - result.description = baseChatReplace(characters[this_chid].description.trim(), name1, name2); - result.personality = baseChatReplace(characters[this_chid].personality.trim(), name1, name2); + const scenarioText = chat_metadata['scenario'] || characters[this_chid]?.scenario; + result.description = baseChatReplace(characters[this_chid].description?.trim(), name1, name2); + result.personality = baseChatReplace(characters[this_chid].personality?.trim(), name1, name2); result.scenario = baseChatReplace(scenarioText.trim(), name1, name2); - result.mesExamples = baseChatReplace(characters[this_chid].mes_example.trim(), name1, name2); - result.persona = baseChatReplace(power_user.persona_description.trim(), name1, name2); + result.mesExamples = baseChatReplace(characters[this_chid].mes_example?.trim(), name1, name2); + result.persona = baseChatReplace(power_user.persona_description?.trim(), name1, name2); result.system = power_user.prefer_character_prompt ? baseChatReplace(characters[this_chid].data?.system_prompt?.trim(), name1, name2) : ''; result.jailbreak = power_user.prefer_character_jailbreak ? baseChatReplace(characters[this_chid].data?.post_history_instructions?.trim(), name1, name2) : ''; From 6ea2cf2abedfd1070618934e7ca99c277f69e527 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 19:06:37 +0200 Subject: [PATCH 038/144] Indicate OR instruct override as legacy --- public/index.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index 2d2fff432..d587c3064 100644 --- a/public/index.html +++ b/public/index.html @@ -2440,6 +2440,10 @@
@@ -5559,4 +5563,4 @@ - \ No newline at end of file + From b9392893dc9cafa32d03448ee667859a837cbd88 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 3 Mar 2024 19:12:20 +0200 Subject: [PATCH 039/144] [FEATURE_REQUEST] Option to toggle disable instruct formatting for example dialogue insertion #1881 --- public/index.html | 4 ++++ public/scripts/instruct-mode.js | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/public/index.html b/public/index.html index d587c3064..d04f46373 100644 --- a/public/index.html +++ b/public/index.html @@ -2756,6 +2756,10 @@ Replace Macro in Sequences +
@@ -4040,7 +4039,7 @@
- +
Tokens: counting...
@@ -4060,7 +4059,7 @@
- +
Tokens: counting...
diff --git a/public/style.css b/public/style.css index 9a367f466..af03785a6 100644 --- a/public/style.css +++ b/public/style.css @@ -1060,8 +1060,8 @@ select { @media screen and (min-width: 1001px) { #description_textarea { - height: 33vh; - height: 33svh; + height: 30vh; + height: 30svh; } #firstmessage_textarea { From c9374bce130f288d1bcf2a17338896f8b748ca09 Mon Sep 17 00:00:00 2001 From: AlexVeeBee Date: Sat, 9 Mar 2024 23:04:22 +0000 Subject: [PATCH 093/144] remove useless console.log --- public/scripts/i18n.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/scripts/i18n.js b/public/scripts/i18n.js index 40614b366..4b9823132 100644 --- a/public/scripts/i18n.js +++ b/public/scripts/i18n.js @@ -92,7 +92,6 @@ export function applyLocale(root = document) { async function addLanguagesToDropdown() { const langs = await fetch('/locales/lang.json').then(response => response.json()); - console.log(langs); for (const lang of langs) { const option = document.createElement('option'); From 169c71a7c70acbabacfc65b34b9ef98563a62b38 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 10 Mar 2024 01:06:55 +0200 Subject: [PATCH 094/144] Add padding to creator's note content --- public/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/public/style.css b/public/style.css index af03785a6..a969936f9 100644 --- a/public/style.css +++ b/public/style.css @@ -1049,6 +1049,7 @@ select { #creator_notes_spoiler { border: 0; font-size: calc(var(--mainFontSize)*.8); + padding-top: 5px; } @media screen and (max-width: 1000px) { From 5f246aa7562772c7931745f577a93ca5766233a7 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 10 Mar 2024 20:49:11 +0200 Subject: [PATCH 095/144] Deduplicate locale loading logic --- public/scripts/i18n.js | 43 +++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/public/scripts/i18n.js b/public/scripts/i18n.js index 4b9823132..6157da04c 100644 --- a/public/scripts/i18n.js +++ b/public/scripts/i18n.js @@ -1,22 +1,38 @@ import { registerDebugFunction } from './power-user.js'; -import { waitUntilCondition } from './utils.js'; const storageKey = 'language'; -const overrideLanguage = localStorage.getItem('language'); +const overrideLanguage = localStorage.getItem(storageKey); +const localeFile = String(overrideLanguage || navigator.language || navigator.userLanguage || 'en').toLowerCase(); +const langs = await fetch('/locales/lang.json').then(response => response.json()); +const localeData = await getLocaleData(localeFile); -const localeFile = overrideLanguage || navigator.userLanguage || 'lang'; -export const localeData = await fetch(`./locales/${localeFile}.json`).then(response => { - console.log(`Loading locale data from ./locales/${localeFile}.json`); - if (!response.ok) { - throw new Error(`Failed to load locale data: ${response.status} ${response.statusText}`); +/** + * Fetches the locale data for the given language. + * @param {string} language Language code + * @returns {Promise>} Locale data + */ +async function getLocaleData(language) { + if (!langs.includes(language)) { + console.warn(`Unsupported language: ${language}`); + return {}; } - return response.json(); -}); -function getMissingTranslations() { + const data = await fetch(`./locales/${language}.json`).then(response => { + console.log(`Loading locale data from ./locales/${language}.json`); + if (!response.ok) { + return {}; + } + return response.json(); + }); + + return data; +} + +async function getMissingTranslations() { const missingData = []; - for (const language of localeData) { + for (const language of langs) { + const localeData = await getLocaleData(language); $(document).find('[data-i18n]').each(function () { const keys = $(this).data('i18n').split(';'); // Multi-key entries are ; delimited for (const key of keys) { @@ -90,9 +106,7 @@ export function applyLocale(root = document) { } } -async function addLanguagesToDropdown() { - const langs = await fetch('/locales/lang.json').then(response => response.json()); - +function addLanguagesToDropdown() { for (const lang of langs) { const option = document.createElement('option'); option.value = lang; @@ -107,7 +121,6 @@ async function addLanguagesToDropdown() { } export function initLocales() { - waitUntilCondition(() => !!localeData); applyLocale(); addLanguagesToDropdown(); From e061f006a28bf53be76bebd6ab8e73ffe63fe8ef Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 10 Mar 2024 22:58:25 +0200 Subject: [PATCH 096/144] Align WI editor dropdowns --- public/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/index.html b/public/index.html index 3f62c34b6..7aeee8045 100644 --- a/public/index.html +++ b/public/index.html @@ -4575,7 +4575,7 @@
- @@ -4584,7 +4584,7 @@
- From d0fec687684ca06dc40d353041cedbb745bde007 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 10 Mar 2024 23:53:55 +0200 Subject: [PATCH 097/144] Extend markdown guide --- public/scripts/templates/formatting.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/public/scripts/templates/formatting.html b/public/scripts/templates/formatting.html index 4b562fdab..df6d405ab 100644 --- a/public/scripts/templates/formatting.html +++ b/public/scripts/templates/formatting.html @@ -3,6 +3,14 @@ Text formatting commands:
  • *text* - displays as italics
  • **text** - displays as bold
  • ***text*** - displays as bold italics
  • +
  • __text__ - displays as an underline
  • +
  • ~~text~~ - displays as strikethrough
  • +
  • [text](url) - displays as a hyperlink
  • +
  • ![text](url) - displays as an image
  • +
  • ^text^ - displays as a superscript
  • +
  • ,,text,, - displays as a subscript
  • +
  • ^^text^^ - displays as a highlight
  • +
  • ==text== - displays as monospace
  • ```text``` - displays as a code block (new lines allowed between the backticks)
  •  like this
    From c8c08fd5d9d827951080aac641e5ea477dc51509 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Mon, 11 Mar 2024 00:54:37 +0200 Subject: [PATCH 098/144] Set doc-height when window load fires --- public/index.html | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/public/index.html b/public/index.html index 7aeee8045..184759b94 100644 --- a/public/index.html +++ b/public/index.html @@ -5558,12 +5558,14 @@ toastr.options.positionClass = "toast-top-center"; // Where to position the toast container From 21dc49ecc611d196331079b7a23e51fbccb991e2 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Mon, 11 Mar 2024 00:54:58 +0200 Subject: [PATCH 099/144] Fix indentation --- public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index 184759b94..07c69b04f 100644 --- a/public/index.html +++ b/public/index.html @@ -5565,7 +5565,7 @@ } window.addEventListener('resize', documentHeight); documentHeight(); - }); + }); From a1256d9753cd49c111917604c1f614e60ff1118c Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Mon, 11 Mar 2024 02:55:15 +0200 Subject: [PATCH 100/144] This doesn't actually work. --- public/scripts/templates/formatting.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/public/scripts/templates/formatting.html b/public/scripts/templates/formatting.html index df6d405ab..45d483a20 100644 --- a/public/scripts/templates/formatting.html +++ b/public/scripts/templates/formatting.html @@ -7,10 +7,6 @@ Text formatting commands:
  • ~~text~~ - displays as strikethrough
  • [text](url) - displays as a hyperlink
  • ![text](url) - displays as an image
  • -
  • ^text^ - displays as a superscript
  • -
  • ,,text,, - displays as a subscript
  • -
  • ^^text^^ - displays as a highlight
  • -
  • ==text== - displays as monospace
  • ```text``` - displays as a code block (new lines allowed between the backticks)
  •  like this
    From 9f0c2e0ddb27d48fdc139c52a00eb393b73349f5 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Mon, 11 Mar 2024 02:56:43 +0200 Subject: [PATCH 101/144] Neither is this. --- public/scripts/templates/formatting.html | 1 - 1 file changed, 1 deletion(-) diff --git a/public/scripts/templates/formatting.html b/public/scripts/templates/formatting.html index 45d483a20..110ef4cbd 100644 --- a/public/scripts/templates/formatting.html +++ b/public/scripts/templates/formatting.html @@ -4,7 +4,6 @@ Text formatting commands:
  • **text** - displays as bold
  • ***text*** - displays as bold italics
  • __text__ - displays as an underline
  • -
  • ~~text~~ - displays as strikethrough
  • [text](url) - displays as a hyperlink
  • ![text](url) - displays as an image
  • ```text``` - displays as a code block (new lines allowed between the backticks)
  • From 5d561b64e2e1556b56ffe41d8e020d7325c949e0 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:10:53 +0200 Subject: [PATCH 102/144] Fix names in completions not getting added when squashing assistant messages --- src/endpoints/prompt-converters.js | 35 ++++++++++++++---------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/endpoints/prompt-converters.js b/src/endpoints/prompt-converters.js index d5b65ce01..3e89c5a75 100644 --- a/src/endpoints/prompt-converters.js +++ b/src/endpoints/prompt-converters.js @@ -125,20 +125,30 @@ function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFi // Also handle multi-modality, holy slop. let mergedMessages = []; messages.forEach((message) => { - const imageEntry = message.content[1]?.image_url; + const imageEntry = message.content?.[1]?.image_url; const imageData = imageEntry?.url; - const mimeType = imageData?.split(';')[0].split(':')[1]; - const base64Data = imageData?.split(',')[1]; + const mimeType = imageData?.split(';')?.[0].split(':')?.[1]; + const base64Data = imageData?.split(',')?.[1]; + + // Take care of name properties since claude messages don't support them + if (message.name) { + if (Array.isArray(message.content)) { + message.content[0].text = `${message.name}: ${message.content[0].text}`; + } else { + message.content = `${message.name}: ${message.content}`; + } + delete message.name; + } if (mergedMessages.length > 0 && mergedMessages[mergedMessages.length - 1].role === message.role) { - if(Array.isArray(message.content)) { - if(Array.isArray(mergedMessages[mergedMessages.length - 1].content)) { + if (Array.isArray(message.content)) { + if (Array.isArray(mergedMessages[mergedMessages.length - 1].content)) { mergedMessages[mergedMessages.length - 1].content[0].text += '\n\n' + message.content[0].text; } else { mergedMessages[mergedMessages.length - 1].content += '\n\n' + message.content[0].text; } } else { - if(Array.isArray(mergedMessages[mergedMessages.length - 1].content)) { + if (Array.isArray(mergedMessages[mergedMessages.length - 1].content)) { mergedMessages[mergedMessages.length - 1].content[0].text += '\n\n' + message.content; } else { mergedMessages[mergedMessages.length - 1].content += '\n\n' + message.content; @@ -161,19 +171,6 @@ function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFi } }); - - // Take care of name properties since claude messages don't support them - mergedMessages.forEach((message) => { - if (message.name) { - if (Array.isArray(message.content)) { - message.content[0].text = `${message.name}: ${message.content[0].text}`; - } else { - message.content = `${message.name}: ${message.content}`; - } - delete message.name; - } - }); - // Shouldn't be conditional anymore, messages api expects the last role to be user unless we're explicitly prefilling if (prefillString) { mergedMessages.push({ From c9c6d798d9b14d16fc924137e58382d27b2e7b4b Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:17:35 +0200 Subject: [PATCH 103/144] Fix Claude error in empty chats with no history --- src/endpoints/prompt-converters.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/endpoints/prompt-converters.js b/src/endpoints/prompt-converters.js index 3e89c5a75..71b1bfe21 100644 --- a/src/endpoints/prompt-converters.js +++ b/src/endpoints/prompt-converters.js @@ -101,7 +101,8 @@ function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFi messages.splice(0, i); // Check if the first message in the array is of type user, if not, interject with humanMsgFix or a blank message. - if (messages.length > 0 && messages[0].role !== 'user') { + // Also prevents erroring out if the messages array is empty. + if (messages.length === 0 || (messages.length > 0 && messages[0].role !== 'user')) { messages.unshift({ role: 'user', content: humanMsgFix || '[Start a new chat]', From 6b2374c405aa478426d951015604f5fafb174b8e Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:49:05 +0200 Subject: [PATCH 104/144] Add function to write extension fields to character cards. --- public/script.js | 3 ++- public/scripts/extensions.js | 51 +++++++++++++++++++++++++++++++++++- public/scripts/utils.js | 24 +++++++++++++++++ public/scripts/world-info.js | 17 ++---------- src/endpoints/characters.js | 6 ++--- 5 files changed, 81 insertions(+), 20 deletions(-) diff --git a/public/script.js b/public/script.js index 1fdbd3f59..d8a242c73 100644 --- a/public/script.js +++ b/public/script.js @@ -151,7 +151,7 @@ import { isValidUrl, } from './scripts/utils.js'; -import { ModuleWorkerWrapper, doDailyExtensionUpdatesCheck, extension_settings, getContext, loadExtensionSettings, renderExtensionTemplate, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; +import { ModuleWorkerWrapper, doDailyExtensionUpdatesCheck, extension_settings, getContext, loadExtensionSettings, renderExtensionTemplate, runGenerationInterceptors, saveMetadataDebounced, writeExtensionField } from './scripts/extensions.js'; import { COMMENT_NAME_DEFAULT, executeSlashCommands, getSlashCommandsHelp, processChatSlashCommands, registerSlashCommand } from './scripts/slash-commands.js'; import { tag_map, @@ -7349,6 +7349,7 @@ window['SillyTavern'].getContext = function () { ModuleWorkerWrapper: ModuleWorkerWrapper, getTokenizerModel: getTokenizerModel, generateQuietPrompt: generateQuietPrompt, + writeExtensionField: writeExtensionField, tags: tags, tagMap: tag_map, }; diff --git a/public/scripts/extensions.js b/public/scripts/extensions.js index 67fd1f1f0..daf115838 100644 --- a/public/scripts/extensions.js +++ b/public/scripts/extensions.js @@ -1,6 +1,6 @@ import { callPopup, eventSource, event_types, saveSettings, saveSettingsDebounced, getRequestHeaders, substituteParams, renderTemplate, animation_duration } from '../script.js'; import { hideLoader, showLoader } from './loader.js'; -import { isSubsetOf } from './utils.js'; +import { isSubsetOf, setValueByPath } from './utils.js'; export { getContext, getApiUrl, @@ -883,6 +883,55 @@ async function runGenerationInterceptors(chat, contextSize) { return aborted; } +/** + * Writes a field to the character's data extensions object. + * @param {number} characterId Index in the character array + * @param {string} key Field name + * @param {any} value Field value + * @returns {Promise} When the field is written + */ +export async function writeExtensionField(characterId, key, value) { + const context = getContext(); + const character = context.characters[characterId]; + if (!character) { + console.warn('Character not found', characterId); + return; + } + const path = `data.extensions.${key}`; + setValueByPath(character, path, value); + + // Process JSON data + if (character.json_data) { + const jsonData = JSON.parse(character.json_data); + setValueByPath(jsonData, path, value); + character.json_data = JSON.stringify(jsonData); + + // Make sure the data doesn't get lost when saving the current character + if (Number(characterId) === Number(context.characterId)) { + $('#character_json_data').val(character.json_data); + } + } + + // Save data to the server + const saveDataRequest = { + avatar: character.avatar, + data: { + extensions: { + [key]: value, + }, + }, + }; + const mergeResponse = await fetch('/api/characters/merge-attributes', { + method: 'POST', + headers: getRequestHeaders(), + body: JSON.stringify(saveDataRequest), + }); + + if (!mergeResponse.ok) { + console.error('Failed to save extension field', mergeResponse.statusText); + } +} + jQuery(function () { addExtensionsButtonAndMenu(); $('#extensionsMenuButton').css('display', 'flex'); diff --git a/public/scripts/utils.js b/public/scripts/utils.js index cbe8d514e..7e3301de9 100644 --- a/public/scripts/utils.js +++ b/public/scripts/utils.js @@ -1226,3 +1226,27 @@ export async function extractTextFromMarkdown(blob) { const text = postProcessText(document.body.textContent, false); return text; } + +/** + * Sets a value in an object by a path. + * @param {object} obj Object to set value in + * @param {string} path Key path + * @param {any} value Value to set + * @returns {void} + */ +export function setValueByPath(obj, path, value) { + const keyParts = path.split('.'); + let currentObject = obj; + + for (let i = 0; i < keyParts.length - 1; i++) { + const part = keyParts[i]; + + if (!Object.hasOwn(currentObject, part)) { + currentObject[part] = {}; + } + + currentObject = currentObject[part]; + } + + currentObject[keyParts[keyParts.length - 1]] = value; +} diff --git a/public/scripts/world-info.js b/public/scripts/world-info.js index 72a669d8e..216a759cd 100644 --- a/public/scripts/world-info.js +++ b/public/scripts/world-info.js @@ -1,5 +1,5 @@ import { saveSettings, callPopup, substituteParams, getRequestHeaders, chat_metadata, this_chid, characters, saveCharacterDebounced, menu_type, eventSource, event_types, getExtensionPromptByName, saveMetadata, getCurrentChatId } from '../script.js'; -import { download, debounce, initScrollHeight, resetScrollHeight, parseJsonFile, extractDataFromPng, getFileBuffer, getCharaFilename, getSortableDelay, escapeRegex, PAGINATION_TEMPLATE, navigation_option, waitUntilCondition, isTrueBoolean } from './utils.js'; +import { download, debounce, initScrollHeight, resetScrollHeight, parseJsonFile, extractDataFromPng, getFileBuffer, getCharaFilename, getSortableDelay, escapeRegex, PAGINATION_TEMPLATE, navigation_option, waitUntilCondition, isTrueBoolean, setValueByPath } from './utils.js'; import { extension_settings, getContext } from './extensions.js'; import { NOTE_MODULE_NAME, metadata_keys, shouldWIAddPrompt } from './authors-note.js'; import { registerSlashCommand } from './slash-commands.js'; @@ -950,20 +950,7 @@ function setOriginalDataValue(data, uid, key, value) { return; } - const keyParts = key.split('.'); - let currentObject = originalEntry; - - for (let i = 0; i < keyParts.length - 1; i++) { - const part = keyParts[i]; - - if (!Object.hasOwn(currentObject, part)) { - currentObject[part] = {}; - } - - currentObject = currentObject[part]; - } - - currentObject[keyParts[keyParts.length - 1]] = value; + setValueByPath(originalEntry, key, value); } } diff --git a/src/endpoints/characters.js b/src/endpoints/characters.js index ccef9936d..54a25c51f 100644 --- a/src/endpoints/characters.js +++ b/src/endpoints/characters.js @@ -600,10 +600,10 @@ router.post('/edit-attribute', jsonParser, async function (request, response) { * @returns {void} * */ router.post('/merge-attributes', jsonParser, async function (request, response) { - const update = request.body; - const avatarPath = path.join(DIRECTORIES.characters, update.avatar); - try { + const update = request.body; + const avatarPath = path.join(DIRECTORIES.characters, update.avatar); + const pngStringData = await charaRead(avatarPath); if (!pngStringData) { From b6c29f71298aecc7ed04bf62abc7b4d29cabc7ff Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:03:12 +0100 Subject: [PATCH 105/144] added new langs +added new lang: Arabic, Portugese, Vietnamese +added display names for all langs +added data-i18n= tags for translation --- public/index.html | 14 +- public/locales/ar_SA.json | 863 +++++++++++++++++++++ public/locales/{es-spa.json => es_ES.json} | 0 public/locales/{it-it.json => it_IT.json} | 0 public/locales/{ja-jp.json => ja_JP.json} | 0 public/locales/{ko-kr.json => ko_KR.json} | 0 public/locales/lang.json | 18 +- public/locales/{nl-nl.json => nl_NL.json} | 0 public/locales/pt_PT.json | 756 ++++++++++++++++++ public/locales/{ru-ru.json => ru_RU.json} | 0 public/locales/vi_VN.json | 863 +++++++++++++++++++++ public/locales/{zh-cn.json => zh_CN.json} | 0 public/scripts/RossAscends-mods.js | 4 +- public/scripts/i18n.js | 11 +- 14 files changed, 2509 insertions(+), 20 deletions(-) create mode 100644 public/locales/ar_SA.json rename public/locales/{es-spa.json => es_ES.json} (100%) rename public/locales/{it-it.json => it_IT.json} (100%) rename public/locales/{ja-jp.json => ja_JP.json} (100%) rename public/locales/{ko-kr.json => ko_KR.json} (100%) rename public/locales/{nl-nl.json => nl_NL.json} (100%) create mode 100644 public/locales/pt_PT.json rename public/locales/{ru-ru.json => ru_RU.json} (100%) create mode 100644 public/locales/vi_VN.json rename public/locales/{zh-cn.json => zh_CN.json} (100%) diff --git a/public/index.html b/public/index.html index 07c69b04f..a06b539f3 100644 --- a/public/index.html +++ b/public/index.html @@ -3765,11 +3765,11 @@ -
    @@ -3868,7 +3868,7 @@

    Persona Description

    - Tokens: 0 + Tokens: 0
    @@ -4227,9 +4227,9 @@
    - - - + + +
    diff --git a/public/locales/ar_SA.json b/public/locales/ar_SA.json new file mode 100644 index 000000000..9daa3fb14 --- /dev/null +++ b/public/locales/ar_SA.json @@ -0,0 +1,863 @@ +{ + "clickslidertips": "انقر على رقم المنزلق لإدخال القيم يدويًا.", + "kobldpresets": "الإعدادات المسبقة لـ Kobold", + "guikoboldaisettings": "إعدادات واجهة KoboldAI", + "novelaipreserts": "الإعدادات المسبقة لـ NovelAI", + "default": "افتراضي", + "openaipresets": "الإعدادات المسبقة لـ OpenAI", + "text gen webio(ooba) presets": "الإعدادات المسبقة لـ WebUI(ooba)", + "response legth(tokens)": "طول الاستجابة (في الحروف)", + "select": "اختيار", + "context size(tokens)": "حجم السياق (في الحروف)", + "unlocked": "مفتوح", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "تدعم النماذج المحددة فقط أحجام السياق الأكبر من 4096 رمزًا. زد الحجم فقط إذا كنت تعرف ما تفعله.", + "rep.pen": "عقوبة الاعادة", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "حالة إدخال WI:\n 🔵 ثابت\n 🟢 عادي\n ❌ معطل", + "rep.pen range": "نطاق عقوبة الاعادة.", + "Temperature controls the randomness in token selection": "درجة الحرارة تتحكم في العشوائية في اختيار الرموز:\n- درجة حرارة منخفضة (<1.0) تؤدي إلى نص أكثر تنبؤًا، مع إعطاء الأولوية للرموز ذات الاحتمالية العالية.\n- درجة حرارة مرتفعة (>1.0) تزيد من الإبداع وتنوع الإخراج، مع منح الرموز ذات الاحتمالية المنخفضة فرصًا أكبر.\nقم بتعيين القيمة 1.0 للاحتماليات الأصلية.", + "temperature": "درجة الحرارة", + "Top K sets a maximum amount of top tokens that can be chosen from": "القيمة العليا K تحدد الحد الأقصى لعدد الرموز العلوية التي يمكن اختيارها.", + "Top P (a.k.a. nucleus sampling)": "القيمة العلوية P (المعروفة أيضًا باسم عينة النواة) تجمع بين جميع الرموز العلوية اللازمة لتحقيق نسبة مئوية معينة.\nبمعنى آخر، إذا كانت الرموز العلوية 2 تمثل 25٪، وكانت Top-P تساوي 0.50، يُعتبر فقط هذان الرمزان العلويان.\nقم بتعيين القيمة 1.0 للتعطيل.", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "عينة القيمة النموذجية P تُعطي أولوية للرموز استنادًا إلى انحرافها عن الانحدار المتوسط للمجموعة.\nيتم الاحتفاظ بالرموز التي تكون احتماليتها التراكمية قريبة من العتبة المحددة (على سبيل المثال، 0.5)، مما يميز تلك التي تحتوي على متوسط معلوماتي.\nقم بتعيين القيمة 1.0 للتعطيل.", + "Min P sets a base minimum probability": "القيمة الدنيا P تحدد الحد الأدنى الأساسي للإحتمال. يتم تحسينها استنادًا إلى إحتمالية الرمز العلوي.\nإذا كانت إحتمالية الرمز العلوي 80٪، وكانت القيمة الدنيا P - 0.1، فسيتم النظر في الرموز فقط بإحتمالية أعلى من 8٪.\nقم بتعيين القيمة 0 للتعطيل.", + "Top A sets a threshold for token selection based on the square of the highest token probability": "القيمة العلوية A تحدد عتبة لاختيار الرموز استنادًا إلى مربع إحتمالية الرمز الأعلى.\nإذا كانت القيمة العلوية A تساوي 0.2، وكانت إحتمالية الرمز العلوي تساوي 50٪، فسيتم استبعاد الرموز بإحتمالية أقل من 5٪ (0.2 * 0.5^2).\nقم بتعيين القيمة 0 للتعطيل.", + "Tail-Free Sampling (TFS)": "عينة خالية من الذيل (TFS) تبحث عن ذيل الرموز ذات الاحتمالية الصغيرة في التوزيع،\n من خلال تحليل معدل تغير إحتماليات الرموز باستخدام الإشتقاقات. يتم الاحتفاظ بالرموز حتى الحد (على سبيل المثال، 0.3)، استنادًا إلى المشتق الثاني الموحد.\nكلما اقترب من 0، زاد عدد الرموز المرفوضة. قم بتعيين القيمة 1.0 للتعطيل.", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "القيمة العلوية الإبسيلون تعيين الحد الأدنى للإحتمالية حيث تستبعد الرموز أدناه من العينة.\nبالوحدات 1e-4؛ القيمة المناسبة هي 3.\nقم بتعيين 0 للتعطيل.", + "Scale Temperature dynamically per token, based on the variation of probabilities": "قيمة درجة الحرارة يتم تحديدها ديناميكيًا لكل رمز، استنادًا إلى التغيير في الإحتمالات.", + "Minimum Temp": "أقل درجة حرارة", + "Maximum Temp": "أعلى درجة حرارة", + "Exponent": "الأس", + "Mirostat Mode": "وضعية Mirostat", + "Mirostat Tau": "تاو Mirostat", + "Mirostat Eta": "إيتا Mirostat", + "Variability parameter for Mirostat outputs": "معلمة التباين لإخراج Mirostat.", + "Learning rate of Mirostat": "معدل التعلم لـ Mirostat.", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "قوة شرط التنظيم للبحث التناقضي. قم بتعيين القيمة إلى 0 لتعطيل CS.", + "Temperature Last": "درجة الحرارة الأخيرة", + "Use the temperature sampler last": "استخدم مُخرج درجة الحرارة في النهاية. هذا عادة ما يكون منطقياً.\nعند التشغيل: يتم أولاً اختيار مجموعة من الرموز المحتملة، ثم يتم تطبيق درجة الحرارة لتصحيح احتمالياتها النسبية (تقنيًا، اللوجيتات).\nعند التعطيل: يتم تطبيق درجة الحرارة أولاً لتصحيح الاحتماليات النسبية لكل الرموز، ثم يتم اختيار مجموعة من الرموز المحتملة من بينها.\nتعطيل درجة الحرارة في النهاية.", + "LLaMA / Mistral / Yi models only": "فقط لنماذج LLaMA / Mistral / Yi. تأكد من تحديد المحلل المناسب أولاً.\nسلاسل تود أن لا تظهر في النتائج.\nسلسلة واحدة في كل سطر. نص أو [معرفات الرموز].\nالعديد من الرموز يبدأ بفراغ. استخدم عداد الرموز إذا كنت غير متأكد.", + "Example: some text [42, 69, 1337]": "مثال:\nبعض النص\n[42، 69، 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "إرشادات خالية من المصنف. نصائح أكثر فائدة قريباً.", + "Scale": "مقياس", + "GBNF Grammar": "مُصحح GBNF", + "Usage Stats": "إحصائيات الاستخدام", + "Click for stats!": "انقر للحصول على الإحصائيات!", + "Backup": "نسخة احتياطية", + "Backup your personas to a file": "انسخ نسخة احتياطية من شخصياتك إلى ملف", + "Restore": "استعادة", + "Restore your personas from a file": "استعادة شخصياتك من ملف", + "Type in the desired custom grammar": "اكتب القواعد اللغوية المخصصة المطلوبة", + "Encoder Rep. Pen.": "عقوبة تكرار المشفر", + "Smoothing Factor": "عامل التنعيم", + "No Repeat Ngram Size": " Ngram بدون تكرار", + "Min Length": "الحد الأدنى للطول", + "OpenAI Reverse Proxy": "بروكسي OpenAI", + "Alternative server URL (leave empty to use the default value).": "عنوان URL البديل للخادم (اتركه فارغًا لاستخدام القيمة الافتراضية).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "قم بإزالة مفتاح API الخاص بـ OAI الحقيقي من لوحة الواجهة البرمجية قبل كتابة أي شيء في هذا المربع", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "لا يمكننا تقديم الدعم للمشاكل التي تواجهك أثناء استخدام بروكسي OpenAI غير الرسمي", + "Legacy Streaming Processing": "معالجة البث القديمة", + "Enable this if the streaming doesn't work with your proxy": "قم بتمكين هذا إذا لم يعمل البث بشكل صحيح مع البروكسي الخاص بك", + "Context Size (tokens)": "حجم السياق (الرموز)", + "Max Response Length (tokens)": "الحد الأقصى لطول الاستجابة (الرموز)", + "Temperature": "درجة الحرارة", + "Frequency Penalty": "عقوبة التكرار", + "Presence Penalty": "عقوبة الوجود", + "Top-p": "أعلى p", + "Display bot response text chunks as they are generated": "عرض شرائح نص إجابة الذكاء الاصطناعي كما يتم إنشاؤها", + "Top A": "أعلى A", + "Typical Sampling": "عينة نموذجية", + "Tail Free Sampling": "عينة خالية من الذيل", + "Rep. Pen. Slope": "ميل العقوبة التكرار", + "Single-line mode": "وضع الخط الواحد", + "Top K": "أعلى K", + "Top P": "أعلى P", + "Do Sample": "عينة", + "Add BOS Token": "إضافة رمز BOS", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "اضف عنوان BOS في البداية, تعطيل هذا قد يجعل الاجابات اكثر ابداع", + "Ban EOS Token": " حظر رمز EOS", + "Ban the eos_token. This forces the model to never end the generation prematurely": "تعطيل رمز EOS, هذا يجبر النموذج على عدم انهاء تكوين الرسالة مبكرا.", + "Skip Special Tokens": "تخطي الرموز الخاصة", + "Beam search": "بحث الشعاع", + "Number of Beams": "عدد الشعاع", + "Length Penalty": "عقوبة الطول", + "Early Stopping": "التوقف المبكر", + "Contrastive search": "البحث المتقابل", + "Penalty Alpha": "ألفا العقوبة", + "Seed": "عنوان (Seed)", + "Epsilon Cutoff": "قطع Epsilon", + "Eta Cutoff": "قطع Eta", + "Negative Prompt": "الاستجابات السيئة", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (الوضع=1 لllama.cpp فقط.)", + "Mirostat is a thermostat for output perplexity": "Mirostat هو جهاز قياس حرارة للمخرجات..", + "Add text here that would make the AI generate things you don't want in your outputs.": "أضف النص هنا الذي سيجعل الذكاء الصناعي يولد أشياء لا ترغب فيها في النتائج.", + "Phrase Repetition Penalty": "عقوبة تكرار العبارات", + "Preamble": "مقدمة", + "Use style tags to modify the writing style of the output.": "استخدم علامات النمط لتعديل نمط الكتابة للنتيجة.", + "Banned Tokens": "الرموز المحظورة", + "Sequences you don't want to appear in the output. One per line.": "تسلسلات لا تريد ظهورها في النتيجة. واحدة لكل سطر.", + "AI Module": "وحدات الذكاء الصناعي", + "Changes the style of the generated text.": "تغيير نمط النص المولد.", + "Used if CFG Scale is unset globally, per chat or character": "يُستخدم اذا كان النطاق غير موضوع بشكل عام, بكل دردشة او شخصية.", + "Inserts jailbreak as a last system message.": "يدرج كسر الحظر كرسالة نظام أخيرة.", + "This tells the AI to ignore its usual content restrictions.": "هذا يقول للذكاء الاصطناعي بتجاهل القيود المعتادة على المحتوى.", + "NSFW Encouraged": "محفز المحتوى الغير صالح للعرض (NSFW)", + "Tell the AI that NSFW is allowed.": "قل للذكاء الاصطناعي أنه يُسمح المحتوى الغير صالح للعرض (NSFW)", + "NSFW Prioritized": "الأولوية للمحتوى غير مناسب للعمل", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "النص الغير مناسب للعمل يأتي أولاً في التعليمات لتأكيد تأثيره.", + "Streaming": "البث المباشر للنص", + "Dynamic Temperature": "درجة الحرارة الديناميكية", + "Restore current preset": "استعادة الضبط الحالي", + "Neutralize Samplers": "تعطيل المحاكيات", + "Text Completion presets": "الإعدادات المسبقة لإكمال النص", + "Documentation on sampling parameters": "وثائق حول معلمات العينات", + "Set all samplers to their neutral/disabled state.": "ضبط جميع المحاكيات على حالتها الطبيعية/معطلة.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "قم بتفعيل هذا فقط إذا كانت نموذجك يدعم رسائل بأحجام أكبر من 4096 رمزًا.", + "Display the response bit by bit as it is generated": "عرض الاستجابة ببطئ كما يتم إنشاؤها.", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "توليد سطر واحد فقط لكل طلب (KoboldAI فقط، يتم تجاهله بواسطة KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "حظر رمز نهاية التسلسل (EOS) (مع KoboldCpp، وربما أيضًا الرموز الأخرى مع KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "جيد لكتابة القصص، ولكن يجب ألا يُستخدم للدردشة ووضع التعليمات.", + "Enhance Definitions": "تعزيز التعريفات", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "استخدم قاعدة المعرفة لـ OAI لتحسين التعاريف للشخصيات العامة والشخصيات الخيالية المعروفة", + "Wrap in Quotes": "وضع النص بين علامات اقتباس", + "Wrap entire user message in quotes before sending.": "ضع الرسالة بأكملها بين علامات اقتباس قبل الإرسال.", + "Leave off if you use quotes manually for speech.": "اتركها إيقافاً إذا كنت تستخدم الاقتباسات يدويًا للكلام.", + "Main prompt": "التعليمات الرئيسية", + "The main prompt used to set the model behavior": "التعليمات الرئيسية المستخدمة لضبط سلوك النموذج", + "NSFW prompt": "تعليمات المحتوى غير صالح للعرض (NSFW)", + "Prompt that is used when the NSFW toggle is on": "التعليمات التي يتم استخدامها عند تشغيل التبديل NSFW.", + "Jailbreak prompt": "تعليمات كسر القواعد", + "Prompt that is used when the Jailbreak toggle is on": "التعليمات التي يتم استخدامها عند تشغيل التبديل Jailbreak.", + "Impersonation prompt": "تعليمات التنكر (اقتباس دورك)", + "Prompt that is used for Impersonation function": " (اقباس دورك) التعليمات التي يتم استخدامها لرسالة التنكر", + "Logit Bias": "الانحياز في اللوجيت", + "Helps to ban or reenforce the usage of certain words": "يساعد في حظر أو تعزيز استخدام بعض الكلمات", + "View / Edit bias preset": "عرض/تحرير الضبط المسبق للانحياز", + "Add bias entry": "إضافة إدخال للانحياز", + "Jailbreak activation message": "رسالة تنشيط Jailbreak", + "Message to send when auto-jailbreak is on.": "الرسالة المراد إرسالها عند تشغيل كسر القواعد التلقائي.", + "Jailbreak confirmation reply": "رد تأكيد كسر القواعد", + "Bot must send this back to confirm jailbreak": "يجب أن يرسل الروبوت هذا للتأكيد على كسر القواعد.", + "Character Note": "ملاحظات الشخصية", + "Influences bot behavior in its responses": "يؤثر على سلوك الروبوت في ردوده.", + "Connect": "الاتصال", + "Test Message": "رسالة اختبار", + "API": "واجهة برمجة التطبيقات (API)", + "KoboldAI": "KoboldAI", + "Use Horde": "استخدام Horde", + "API url": "رابط API", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (وضع التغليف لواجهة برمجة التطبيقات OpenAI)", + "Register a Horde account for faster queue times": "سجّل حساب Horde لزمن انتظار أسرع في الطابور", + "Learn how to contribute your idle GPU cycles to the Hord": "تعرّف على كيفية المساهمة بدورات GPU الخاملة الخاصة بك في الـ Hord", + "Adjust context size to worker capabilities": "ضبط حجم السياق وفقًا لقدرات العاملين", + "Adjust response length to worker capabilities": "ضبط طول الاستجابة وفقًا لقدرات العاملين", + "API key": "مفتاح API", + "Tabby API key": "مفتاح API لـ Tabby", + "Get it here:": "احصل عليه هنا:", + "Register": "سجّل", + "TogetherAI Model": "نموذج TogetherAI", + "Example: 127.0.0.1:5001": "مثال: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp", + "Example: 127.0.0.1:8080": "مثال: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "مثال: 127.0.0.1:11434", + "Ollama Model": "نموذج Ollama", + "Download": "تحميل", + "TogetherAI API Key": "مفتاح API لـ TogetherAI", + "-- Connect to the API --": "-- الاتصال بواجهة برمجة التطبيقات --", + "View my Kudos": "عرض إعجاباتي (Kudos)", + "Enter": "أدخل", + "to use anonymous mode.": "لاستخدام الوضع المجهول.", + "For privacy reasons": "لأسباب خصوصية، سيتم إخفاء مفتاح الـ API بعد إعادة تحميل الصفحة", + "Models": "النماذج", + "Hold Control / Command key to select multiple models.": "استمر في الضغط على مفتاح التحكم / الأمر لتحديد العديد من النماذج.", + "Horde models not loaded": "النماذج Horde غير محمّلة", + "Not connected...": "غير متصل...", + "Novel API key": "مفتاح API لـ NovelAI", + "Follow": "اتبع", + "these directions": "هذه التوجيهات", + "to get your NovelAI API key.": "للحصول على مفتاح API لـ NovelAI.", + "Enter it in the box below": "أدخله في المربع أدناه", + "Novel AI Model": "نموذج NovelAI", + "If you are using:": "إذا كنت تستخدم:", + "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", + "Make sure you run it with": "تأكد من تشغيله مع", + "flag": "علم", + "API key (optional)": "مفتاح API (اختياري)", + "Server url": "رابط الخادم", + "Custom model (optional)": "نموذج مخصص (اختياري)", + "Bypass API status check": "تجاوز فحص حالة واجهة برمجة التطبيقات (API)", + "Mancer AI": "Mancer AI", + "Use API key (Only required for Mancer)": "استخدام مفتاح API (مطلوب فقط لـ Mancer)", + "Blocking API url": "حظر رابط API", + "Example: 127.0.0.1:5000": "مثال: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "واجهة برمجة التطبيقات القديمة (API) (نسخة سابقة OAI، بدون بث)", + "Bypass status check": "تجاوز فحص الحالة", + "Streaming API url": "رابط واجهة برمجة التطبيقات القادر على البث", + "Example: ws://127.0.0.1:5005/api/v1/stream": "مثال: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "مفتاح API لـ Mancer", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "مثال: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "للحصول على مفتاح API لـ OpenAI.", + "Window AI Model": "نموذج Window AI", + "OpenAI Model": "نموذج OpenAI", + "Claude API Key": "مفتاح API لـ Claude", + "Get your key from": "احصل على مفتاحك من", + "Anthropic's developer console": "وحدة تحكم المطور في Anthropic", + "Slack and Poe cookies will not work here, do not bother trying.": "لا تعمل ملفات تعريف الارتباط Slack و Poe هنا، لا داعي للمحاولة.", + "Claude Model": "نموذج Claude", + "Scale API Key": "مفتاح API لـ Scale", + "Alt Method": "طريقة بديلة", + "AI21 API Key": "مفتاح API لـ AI21", + "AI21 Model": "نموذج AI21", + "View API Usage Metrics": "عرض مقاييس استخدام واجهة برمجة التطبيقات (API)", + "Show External models (provided by API)": "عرض النماذج الخارجية (المقدمة من قبل واجهة برمجة التطبيقات)", + "Bot": "روبوت:", + "Allow fallback routes": "السماح بمسارات الاحتياط", + "Allow fallback routes Description": "يختار النموذج البديل تلقائيًا إذا كان النموذج المحدد غير قادر على تلبية طلبك.", + "OpenRouter API Key": "مفتاح API لـ OpenRouter", + "Connect to the API": "الاتصال بواجهة برمجة التطبيقات", + "OpenRouter Model": "نموذج OpenRouter", + "View Remaining Credits": "عرض الرصيد المتبقي", + "Click Authorize below or get the key from": "انقر على التأكد أدناه أو احصل على المفتاح من", + "Auto-connect to Last Server": "الاتصال التلقائي بآخر خادم", + "View hidden API keys": "عرض مفاتيح واجهة برمجة التطبيقات المخفية (API)", + "Advanced Formatting": "تنسيق متقدم", + "Context Template": "قالب النص", + "AutoFormat Overrides": "تجاوزات التنسيق التلقائي", + "Disable description formatting": "تعطيل تنسيق الوصف", + "Disable personality formatting": "تعطيل تنسيق الشخصية", + "Disable scenario formatting": "تعطيل تنسيق السيناريو", + "Disable example chats formatting": "تعطيل تنسيق الدردشات العينية", + "Disable chat start formatting": "تعطيل تنسيق بداية الدردشة", + "Custom Chat Separator": "فاصل دردشة مخصص", + "Replace Macro in Custom Stopping Strings": "استبدال الماكرو في سلاسل التوقف المخصصة", + "Strip Example Messages from Prompt": "إزالة رسائل المثال من الدعم", + "Story String": "سلسلة القصة", + "Example Separator": "فاصل المثال", + "Chat Start": "بداية الدردشة", + "Activation Regex": "تنشيط Regex", + "Instruct Mode": "وضع التعليم", + "Wrap Sequences with Newline": "لف السلاسل بسطر جديد", + "Include Names": "تضمين الأسماء", + "Force for Groups and Personas": "فرض للمجموعات والشخصيات", + "System Prompt": "نص النظام", + "Instruct Mode Sequences": "سلاسل وضع التعليم", + "Input Sequence": "سلسلة الإدخال", + "Output Sequence": "سلسلة الإخراج", + "First Output Sequence": "أول سلسلة إخراج", + "Last Output Sequence": "آخر سلسلة إخراج", + "System Sequence Prefix": "بادئة سلسلة النظام", + "System Sequence Suffix": "لاحقة سلسلة النظام", + "Stop Sequence": "توقف السلسلة", + "Context Formatting": "تنسيق السياق", + "(Saved to Context Template)": "(يتم حفظه في قالب النص)", + "Tokenizer": "فاصل النصوص", + "None / Estimated": "لا شيء / تقديري", + "Sentencepiece (LLaMA)": "جزء الجملة (LLaMA)", + "Token Padding": "امتداد الرموز", + "Save preset as": "حفظ الضبط المسبق باسم", + "Always add character's name to prompt": "إضافة دائمًا اسم الشخصية إلى الدعم", + "Use as Stop Strings": "استخدم كسلاسل التوقف", + "Bind to Context": "ربط بالسياق", + "Generate only one line per request": "توليد سطر واحد فقط لكل طلب", + "Misc. Settings": "إعدادات متنوعة", + "Auto-Continue": "المتابعة التلقائية", + "Collapse Consecutive Newlines": "تقليص الأسطر الجديدة المتتالية", + "Allow for Chat Completion APIs": "السماح بواجهات برمجة التطبيقات لإكمال الدردشة", + "Target length (tokens)": "الطول المستهدف (رموز)", + "Keep Example Messages in Prompt": "الاحتفاظ برسائل المثال في الدعم", + "Remove Empty New Lines from Output": "إزالة الأسطر الجديدة الفارغة من الإخراج", + "Disabled for all models": "تعطيل لجميع النماذج", + "Automatic (based on model name)": "تلقائي (بناءً على اسم النموذج)", + "Enabled for all models": "مفعل لجميع النماذج", + "Anchors Order": "ترتيب الرباطات", + "Character then Style": "الشخصية ثم النمط", + "Style then Character": "النمط ثم الشخصية", + "Character Anchor": "مرساة الشخصية", + "Style Anchor": "مرساة النمط", + "World Info": "معلومات العالم", + "Scan Depth": "عمق المسح", + "Case-Sensitive": "حساس لحالة الأحرف", + "Match Whole Words": "مطابقة الكلمات الكاملة", + "Use global setting": "استخدام الإعداد العام", + "Yes": "نعم", + "No": "لا", + "Context %": "نسبة السياق", + "Budget Cap": "حد الميزانية", + "(0 = disabled)": "(0 = معطل)", + "depth": "عمق", + "Token Budget": "ميزانية الرمز", + "budget": "ميزانية", + "Recursive scanning": "المسح التكراري", + "None": "لا شيء", + "User Settings": "إعدادات المستخدم", + "UI Mode": "وضع واجهة المستخدم", + "UI Language": "لغة واجهة المستخدم", + "MovingUI Preset": "الإعداد المسبق لـ MovingUI", + "UI Customization": "تخصيص واجهة المستخدم", + "Avatar Style": "نمط الصورة الرمزية", + "Circle": "دائرة", + "Rectangle": "مستطيل", + "Square": "مربع", + "Chat Style": "نمط المحادثة", + "Default": "افتراضي", + "Bubbles": "فقاعات", + "No Blur Effect": "عدم وجود تأثير ضبابية", + "No Text Shadows": "عدم وجود ظلال للنص", + "Waifu Mode": "وضع الوايفو", + "Message Timer": "مؤقت الرسالة", + "Model Icon": "أيقونة النموذج", + "# of messages (0 = disabled)": "# من الرسائل (0 = معطل)", + "Advanced Character Search": "بحث متقدم عن الشخصيات", + "Allow {{char}}: in bot messages": "السماح بـ {{char}}: في رسائل البوت", + "Allow {{user}}: in bot messages": "السماح بـ {{user}}: في رسائل البوت", + "Show tags in responses": "عرض الشارات في الردود", + "Aux List Field": "حقل قائمة المساعدة", + "Lorebook Import Dialog": "مربع حوار رفع كتاب المعرفة", + "MUI Preset": "الإعداد المسبق لـ MUI:", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "إذا تم تعيينه في تعريفات الشخصيات المتقدمة، سيتم عرض هذا الحقل في قائمة الشخصيات.", + "Relaxed API URLS": "عناوين URL لواجهة برمجة التطبيقات المرنة", + "Custom CSS": "CSS مخصص", + "Default (oobabooga)": "الافتراضي (oobabooga)", + "Mancer Model": "نموذج Mancer", + "API Type": "نوع واجهة برمجة التطبيقات (API)", + "Aphrodite API key": "مفتاح واجهة برمجة التطبيقات Aphrodite", + "Relax message trim in Groups": "تخفيف تقليم الرسائل في المجموعات", + "Characters Hotswap": "تبديل سريع للشخصيات", + "Request token probabilities": "احتماليات طلب الرمز", + "Movable UI Panels": "لوحات واجهة المستخدم القابلة للتحريك", + "Reset Panels": "إعادة تعيين الألواح", + "UI Colors": "ألوان واجهة المستخدم", + "Main Text": "النص الرئيسي", + "Italics Text": "نص مائل", + "Quote Text": "نص الاقتباس", + "Shadow Color": "لون الظل", + "FastUI BG": "خلفية FastUI", + "Blur Tint": "تظليل غامق", + "Font Scale": "مقياس الخط", + "Blur Strength": "قوة التمويه", + "Text Shadow Width": "عرض ظل النص", + "UI Theme Preset": "إعداد مسبق لواجهة المستخدم", + "Power User Options": "خيارات المستخدم المتقدمة", + "Swipes": "انزلاقات", + "Miscellaneous": "متنوع", + "Theme Toggles": "تبديلات الموضوع", + "Background Sound Only": "صوت الخلفية فقط", + "Auto-load Last Chat": "تحميل الدردشة الأخيرة تلقائيًا", + "Auto-save Message Edits": "حفظ التعديلات التلقائي للرسائل", + "Auto-fix Markdown": "إصلاح Markdown تلقائيًا", + "Allow : in bot messages": "السماح بـ : في رسائل البوت", + "Auto-scroll Chat": "التمرير التلقائي للدردشة", + "Render Formulas": "تقديم الصيغ", + "Send on Enter": "إرسال عند الضغط على Enter", + "Always disabled": "معطل دائمًا", + "Automatic (desktop)": "تلقائي (سطح المكتب)", + "Always enabled": "مُفعل دائمًا", + "Debug Menu": "قائمة التصحيح", + "Restore User Input": "استعادة إدخال المستخدم", + "Character Handling": "معالجة الشخصية", + "Example Messages Behavior": "سلوك الرسائل المثالية", + "Gradual push-out": "طرد تدريجي", + "Chat/Message Handling": "معالجة الدردشة/الرسائل", + "Always include examples": "تضمين الأمثلة دائمًا", + "Never include examples": "عدم تضمين الأمثلة أبدًا", + "Forbid External Media": "منع وسائط خارجية", + "System Backgrounds": "خلفيات النظام", + "Name": "الاسم", + "Your Avatar": "الصورة الرمزية الخاصة بك", + "Extensions API:": "واجهة برمجة التطبيقات للامتدادات:", + "SillyTavern-extras": "SillyTavern-extras", + "Auto-connect": "الاتصال التلقائي", + "Active extensions": "الامتدادات النشطة", + "Extension settings": "إعدادات الامتداد", + "Description": "الوصف", + "First message": "الرسالة الأولى", + "Group Controls": "ضوابط المجموعة", + "Group reply strategy": "استراتيجية الرد في المجموعة", + "Natural order": "الترتيب الطبيعي", + "List order": "ترتيب القائمة", + "Allow self responses": "السماح بالرد على الذات", + "Auto Mode": "الوضع التلقائي", + "Add Members": "إضافة أعضاء", + "Current Members": "الأعضاء الحاليين", + "text": "نص", + "Delete": "حذف", + "Cancel": "إلغاء", + "Advanced Defininitions": "تعريفات متقدمة", + "Personality summary": "ملخص الشخصية", + "A brief description of the personality": "وصف موجز للشخصية", + "Scenario": "السيناريو", + "Circumstances and context of the dialogue": "ظروف وسياق الحوار", + "Talkativeness": "الكلام", + "How often the chracter speaks in": "كيفية تحدث الشخصية في", + "group chats!": "الدردشات الجماعية!", + "Shy": "خجول", + "Normal": "عادي", + "Chatty": "كثير الكلام", + "Examples of dialogue": "أمثلة على الحوار", + "Forms a personality more clearly": "يشكل شخصية بوضوح أكبر", + "Save": "حفظ", + "World Info Editor": "محرر معلومات العالم", + "New summary": "ملخص جديد", + "Export": "تصدير", + "Delete World": "حذف العالم", + "Chat History": "تاريخ الدردشة", + "Group Chat Scenario Override": "تجاوز سيناريو المحادثة الجماعية", + "All group members will use the following scenario text instead of what is specified in their character cards.": "سيستخدم جميع أعضاء المجموعة نص السيناريو التالي بدلاً من ما هو محدد في بطاقات شخصيتهم.", + "Keywords": "الكلمات الرئيسية", + "Separate with commas": "فصل بينها بفواصل", + "Secondary Required Keywords": "الكلمات الرئيسية الثانوية المطلوبة", + "Content": "المحتوى", + "What this keyword should mean to the AI": "ما يجب أن يعني هذا الكلمة للذكاء الاصطناعي", + "Memo/Note": "مذكرة/ملاحظة", + "Not sent to AI": "غير مرسل للذكاء الاصطناعي", + "Constant": "ثابت", + "Selective": "انتقائي", + "Before Char": "قبل الشخصية", + "After Char": "بعد الشخصية", + "Insertion Order": "ترتيب الإدخال", + "Tokens:": "الرموز:", + "Disable": "تعطيل", + "${characterName}": "${اسمالشخصية}", + "CHAR": "شخصية", + "is typing": "يكتب...", + "Back to parent chat": "العودة إلى الدردشة الأصلية", + "Save bookmark": "حفظ الإشارة المرجعية", + "Convert to group": "تحويل إلى مجموعة", + "Start new chat": "بدء دردشة جديدة", + "View past chats": "عرض الدردشات السابقة", + "Delete messages": "حذف الرسائل", + "Impersonate": "تقمص الشخصية", + "Regenerate": "إعادة توليد", + "PNG": "PNG", + "JSON": "JSON", + "presets": "الإعدادات المسبقة", + "Message Sound": "صوت الرسالة", + "Author's Note": "مذكرة المؤلف", + "Send Jailbreak": "إرسال كسر القواعد", + "Replace empty message": "استبدال الرسالة الفارغة", + "Send this text instead of nothing when the text box is empty.": "إرسال هذا النص بدلاً من عدم وجود شيء عندما يكون مربع النص فارغًا.", + "NSFW avoidance prompt": "تجنب تعليمات NSFW (رسائل غير صالحة للعرض)", + "Prompt that is used when the NSFW toggle is off": "تعليمات تستخدم عندما يتم إيقاف تبديل NSFW", + "Advanced prompt bits": "معلومات التعليمات المتقدمة", + "World Info format": "تنسيق معلومات العالم", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "تضم مدخلات معلومات العالم المُنشطة قبل إدراجها في التعليمات. استخدم {0} لوضع علامة في المكان الذي يتم إدراج المحتوى فيه.", + "Unrestricted maximum value for the context slider": "قيمة قصوى غير مقيدة لمنزلق السياق", + "Chat Completion Source": "مصدر استكمال الدردشة", + "Avoid sending sensitive information to the Horde.": "تجنب إرسال معلومات حساسة إلى Horde.", + "Review the Privacy statement": "مراجعة بيان الخصوصية", + "Learn how to contribute your idel GPU cycles to the Horde": "تعلم كيفية المساهمة بدورات GPU الخاملة الخاصة بك في Horde", + "Trusted workers only": "العاملون الموثوق بهم فقط", + "For privacy reasons, your API key will be hidden after you reload the page.": "لأسباب خصوصية، سيتم إخفاء مفتاح API الخاص بك بعد إعادة تحميل الصفحة.", + "-- Horde models not loaded --": "-- نماذج Horde غير محملة --", + "Example: http://127.0.0.1:5000/api ": "مثال: http://127.0.0.1:5000/api", + "No connection...": "لا يوجد اتصال...", + "Get your NovelAI API Key": "احصل على مفتاح API NovelAI الخاص بك", + "KoboldAI Horde": "جماعة KoboldAI", + "Text Gen WebUI (ooba)": "واجهة المستخدم لإنشاء النصوص (ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "إكمال الدردشة (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "مفتاح API لـ OpenAI", + "Trim spaces": "تقليم الفراغات", + "Trim Incomplete Sentences": "تقليم الجمل غير المكتملة", + "Include Newline": "تضمين سطر جديد", + "Non-markdown strings": "سلاسل غير Markdown", + "Replace Macro in Sequences": "استبدال الماكرو في التسلسلات", + "Presets": "الإعدادات المسبقة", + "Separator": "فاصل", + "Start Reply With": "بدء الرد مع", + "Show reply prefix in chat": "إظهار بادئة الرد في الدردشة", + "Worlds/Lorebooks": "العوالم", + "Active World(s)": "العالم(أو العوالم) النشط(ة)", + "Activation Settings": "إعدادات التنشيط", + "Character Lore Insertion Strategy": "استراتيجية إدراج تاريخ الشخصية", + "Sorted Evenly": "ترتيب متساوي", + "Active World(s) for all chats": "العالم(أو العوالم) النشط(ة) لجميع الدردشات", + "-- World Info not found --": "-- معلومات العالم غير موجودة --", + "--- Pick to Edit ---": "--- اختر للتحرير ---", + "or": "أو", + "New": "جديد", + "Priority": "أولوية", + "Custom": "مخصص", + "Title A-Z": "العنوان من أ-ي", + "Title Z-A": "العنوان من ي-أ", + "Tokens ↗": "الرموز ↗", + "Tokens ↘": "الرموز ↘", + "Depth ↗": "العمق ↗", + "Depth ↘": "العمق ↘", + "Order ↗": "الترتيب ↗", + "Order ↘": "الترتيب ↘", + "UID ↗": "معرف فريد ↗", + "UID ↘": "معرف فريد ↘", + "Trigger% ↗": "مشغل% ↗", + "Trigger% ↘": "مشغل% ↘", + "Order:": "الترتيب:", + "Depth:": "العمق:", + "Character Lore First": "سرد الشخصية أولاً", + "Global Lore First": "سرد العالم أولاً", + "Recursive Scan": "فحص متكرر", + "Case Sensitive": "حساس لحالة الأحرف", + "Match whole words": "تطابق الكلمات الكاملة", + "Alert On Overflow": "تنبيه عند التجاوز", + "World/Lore Editor": "محرر العالم/السرد", + "--- None ---": "--- لا شيء ---", + "Use Probability": "استخدم الاحتمالية", + "Exclude from recursion": "استبعاد من التكرار", + "Entry Title/Memo": "عنوان الإدخال/المذكرة", + "Position:": "الموضع:", + "T_Position": "↑Char: قبل تحديدات الشخصية\n↓Char: بعد تحديدات الشخصية\n↑AN: قبل الملاحظات الخاصة بالمؤلف\n↓AN: بعد الملاحظات الخاصة بالمؤلف\n@D: على عمق", + "Before Char Defs": "↑تحديد الشخصية", + "After Char Defs": "↓تحديد الشخصية", + "Before AN": "↑AN", + "After AN": "↓AN", + "at Depth": "@العمق", + "Order": "الترتيب:", + "Probability:": "الاحتمال:", + "Update a theme file": "تحديث ملف السمة", + "Save as a new theme": "حفظ كسمة جديدة", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "الحد الأدنى لعدد الكلمات في القائمة السوداء المكتشفة لتشغيل السحب التلقائي.", + "Delete Entry": "حذف الإدخال", + "User Message Blur Tint": "تظليل رسالة المستخدم", + "AI Message Blur Tint": "تظليل رسالة الذكاء الاصطناعي", + "Chat Backgrounds": "خلفيات الدردشة", + "Chat Background": "خلفية الدردشة", + "UI Background": "خلفية الواجهة الرسومية", + "Mad Lab Mode": "وضع المختبر المجنون", + "Show Message Token Count": "عرض عدد الرموز في الرسالة", + "Compact Input Area (Mobile)": "منطقة إدخال مضغوطة (الهاتف المحمول)", + "Zen Sliders": "منزلقات الزن", + "UI Border": "حدود الواجهة الرسومية", + "Chat Style:": "نمط الدردشة:", + "Chat Width (PC)": "عرض الدردشة (الكمبيوتر الشخصي)", + "Chat Timestamps": "طوابع الزمن في الدردشة", + "Tags as Folders": "الوسوم كمجلدات", + "Chat Truncation": "قص الدردشة", + "(0 = unlimited)": "(0 = غير محدود)", + "Streaming FPS": "معدل الإطارات في البث", + "Gestures": "الإيماءات", + "Message IDs": "معرفات الرسائل", + "Prefer Character Card Prompt": "تفضيل التعليمات من بطاقة الشخصية", + "Prefer Character Card Jailbreak": "تفضيل كسر الحصار من بطاقة الشخصية", + "Press Send to continue": "اضغط على 'إرسال' للمتابعة", + "Quick 'Continue' button": "زر 'متابعة' السريع", + "Log prompts to console": "تسجيل التعليمات إلى وحدة التحكم", + "Never resize avatars": "لا تغيير حجم الصور الرمزية أبدًا", + "Show avatar filenames": "عرض أسماء ملفات الصور الرمزية", + "Import Card Tags": "استيراد وسوم البطاقة", + "Confirm message deletion": "تأكيد حذف الرسالة", + "Spoiler Free Mode": "وضع خالٍ من الحرق", + "Auto-swipe": "السحب التلقائي", + "Minimum generated message length": "الحد الأدنى لطول الرسالة المولدة", + "Blacklisted words": "الكلمات الممنوعة", + "Blacklisted word count to swipe": "عدد الكلمات الممنوعة للسحب", + "Reload Chat": "إعادة تحميل الدردشة", + "Search Settings": "إعدادات البحث", + "Disabled": "معطل", + "Automatic (PC)": "تلقائي (الكمبيوتر الشخصي)", + "Enabled": "مفعل", + "Simple": "بسيط", + "Advanced": "متقدم", + "Disables animations and transitions": "تعطيل الرسوم المتحركة والانتقالات", + "removes blur from window backgrounds": "إزالة الضبابية من خلفيات النوافذ لتسريع التقديم", + "Remove text shadow effect": "إزالة تأثير الظل النصي", + "Reduce chat height, and put a static sprite behind the chat window": "تقليل ارتفاع الدردشة ووضع صورة ثابتة خلف نافذة الدردشة", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "إظهار دائمًا القائمة الكاملة لبنود سياق إجراءات الرسائل لرسائل الدردشة بدلاً من إخفائها خلف '...' ", + "Alternative UI for numeric sampling parameters with fewer steps": "واجهة مستخدم بديلة لمعلمات العينات الرقمية بعدد أقل من الخطوات", + "Entirely unrestrict all numeric sampling parameters": "رفع القيود عن جميع المعلمات الرقمية للعينات بالكامل", + "Time the AI's message generation, and show the duration in the chat log": "توقيت إنتاج رسائل الذكاء الاصطناعي، وعرض المدة في سجل الدردشة", + "Show a timestamp for each message in the chat log": "إظهار الطابع الزمني لكل رسالة في سجل الدردشة", + "Show an icon for the API that generated the message": "إظهار أيقونة للواجهة البرمجية التطبيقية التي أنشأت الرسالة", + "Show sequential message numbers in the chat log": "إظهار أرقام الرسائل التسلسلية في سجل الدردشة", + "Show the number of tokens in each message in the chat log": "عرض عدد الرموز في كل رسالة في سجل الدردشة", + "Single-row message input area. Mobile only, no effect on PC": "منطقة إدخال رسالة بصف واحد. فقط للهواتف المحمولة، لا تؤثر على الكمبيوتر الشخصي", + "In the Character Management panel, show quick selection buttons for favorited characters": "في لوحة إدارة الشخصيات، إظهار أزرار الاختيار السريع للشخصيات المفضلة", + "Show tagged character folders in the character list": "عرض مجلدات الشخصيات الموسومة في قائمة الشخصيات", + "Play a sound when a message generation finishes": "تشغيل صوت عند الانتهاء من إنشاء الرسالة", + "Only play a sound when ST's browser tab is unfocused": "تشغيل الصوت فقط عندما تكون علامة تبويب متصفح ST غير مركزة", + "Reduce the formatting requirements on API URLs": "تقليل متطلبات التنسيق على عناوين URL الخاصة بالواجهة البرمجية التطبيقية", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "اسأل لاستيراد معلومات العالم/دفتر السرد لكل شخصية جديدة مع دفتر سرد مضمن. إذا لم يتم التحقق، سيتم عرض رسالة موجزة بدلاً من ذلك", + "Restore unsaved user input on page refresh": "استعادة الإدخالات غير المحفوظة للمستخدم عند تحديث الصفحة", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "السماح بإعادة تحديد موقع بعض عناصر واجهة المستخدم بسحبها. فقط للكمبيوتر، لا تؤثر على الهواتف المحمولة", + "MovingUI preset. Predefined/saved draggable positions": "إعداد مسبق لواجهة المستخدم المتحركة. مواقع قابلة للسحب محددة/محفوظة مسبقًا", + "Save movingUI changes to a new file": "حفظ التغييرات في واجهة المستخدم المتحركة في ملف جديد", + "Apply a custom CSS style to all of the ST GUI": "تطبيق نمط CSS مخصص على كل واجهة ST", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "استخدام مطابقة غامضة، والبحث في الشخصيات في القائمة حسب جميع حقول البيانات، ليس فقط بواسطة جزء من الاسم", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "إذا تم التحقق وكانت بطاقة الشخصية تحتوي على تجاوز للمطالبة (المطالبة النظامية)، استخدم ذلك بدلاً من ذلك", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "إذا تم التحقق وكانت بطاقة الشخصية تحتوي على تجاوز للكسر (تعليمات تاريخ المشاركة)، استخدم ذلك بدلاً من ذلك", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "تجنب القص وتغيير حجم الصور الشخصية المستوردة. عند التعطيل، قم بالقص/تغيير الحجم إلى 400x600", + "Show actual file names on the disk, in the characters list display only": "عرض الأسماء الفعلية للملفات على القرص، في عرض قائمة الشخصيات فقط", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "طلب استيراد العلامات المضمنة في البطاقة عند استيراد الشخصية. في غير ذلك، تتم تجاهل العلامات المضمنة", + "Hide character definitions from the editor panel behind a spoiler button": "إخفاء تعريفات الشخصيات من لوحة التحرير وراء زر التلميح", + "Show a button in the input area to ask the AI to continue (extend) its last message": "عرض زر في منطقة الإدخال لطلب من الذكاء الاصطناعي المتابعة (تمديد) رسالته الأخيرة", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "عرض أزرار السهم على آخر رسالة في الدردشة لإنشاء ردود ذكاء اصطناعي بديلة. على الكمبيوتر الشخصي والهاتف المحمول", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "السماح باستخدام إيماءات السحب على آخر رسالة في الدردشة لتشغيل إنشاء السحب. فقط على الهاتف المحمول، لا تؤثر على الكمبيوتر الشخصي", + "Save edits to messages without confirmation as you type": "حفظ التحريرات في الرسائل دون تأكيد أثناء الكتابة", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "تقديم علامة LaTeX و AsciiMath للمعادلات في رسائل الدردشة. مدعوم بواسطة KaTeX", + "Disalow embedded media from other domains in chat messages": "منع وسائط مضمنة من النطاقات الأخرى في رسائل الدردشة", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "تخطي الترميز للأحرف < و > في نص الرسالة، مما يسمح بمجموعة فرعية من العلامات التنسيقية HTML وكذلك Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "السماح لرسائل الذكاء الاصطناعي في المجموعات بأن تحتوي على أسطر يتحدثها أعضاء المجموعة الآخرين", + "Requests logprobs from the API for the Token Probabilities feature": "يطلب logprobs من الواجهة البرمجية التطبيقية لميزة الرموز الاحتمالية", + "Automatically reject and re-generate AI message based on configurable criteria": "رفض الرسالة التي تم إنشاؤها تلقائيًا وإعادة إنشاءها بناءً على معايير قابلة للتكوين", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "تمكين وظيفة السحب التلقائي. الإعدادات في هذا القسم تؤثر فقط عند تمكين السحب التلقائي", + "If the generated message is shorter than this, trigger an auto-swipe": "إذا كانت الرسالة المولدة أقصر من هذا، فتحريض السحب التلقائي", + "Reload and redraw the currently open chat": "إعادة تحميل وإعادة رسم الدردشة المفتوحة حاليًا", + "Auto-Expand Message Actions": "توسيع إجراءات الرسالة تلقائيًا", + "Not Connected": "غير متصل", + "Persona Management": "إدارة الشخصية", + "Persona Description": "وصف الشخصية", + "Your Persona": "شخصيتك", + "Show notifications on switching personas": "إظهار الإشعارات عند التبديل بين الشخصيات", + "Blank": "فارغ", + "In Story String / Chat Completion: Before Character Card": "في سلسلة القصة / إكمال الدردشة: قبل بطاقة الشخصية", + "In Story String / Chat Completion: After Character Card": "في سلسلة القصة / إكمال الدردشة: بعد بطاقة الشخصية", + "In Story String / Prompt Manager": "في سلسلة القصة / إدارة التعليمات", + "Top of Author's Note": "أعلى ملاحظة المؤلف", + "Bottom of Author's Note": "أسفل ملاحظة المؤلف", + "How do I use this?": "كيف يمكنني استخدام هذا؟", + "More...": "المزيد...", + "Link to World Info": "رابط لمعلومات العالم", + "Import Card Lore": "استيراد البطاقة السردية", + "Scenario Override": "تجاوز السيناريو", + "Rename": "إعادة التسمية", + "Character Description": "وصف الشخصية", + "Creator's Notes": "ملاحظات الخالق", + "A-Z": "أ-ي", + "Z-A": "ي-أ", + "Newest": "الأحدث", + "Oldest": "الأقدم", + "Favorites": "المفضلة", + "Recent": "الأخيرة", + "Most chats": "معظم الدردشات", + "Least chats": "أقل الدردشات", + "Back": "عودة", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "تجاوزات التعليمات (لواجهات برمجة التطبيقات لشركات OpenAI/Claude/Scale، ونافذة/OpenRouter، ووضع التعليمات)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "أدخل {{original}} في أي مربع لتضمين التعليمات الافتراضية المعنية من إعدادات النظام.", + "Main Prompt": "التعليمات الرئيسية", + "Jailbreak": "كسر الحجز", + "Creator's Metadata (Not sent with the AI prompt)": "بيانات التعريف للمنشئ (لا يتم إرسالها مع التعليمات الذكية)", + "Everything here is optional": "كل ما هو هنا اختياري", + "Created by": "تم إنشاؤه بواسطة", + "Character Version": "إصدار الشخصية", + "Tags to Embed": "العلامات المضمنة", + "How often the character speaks in group chats!": "كيفية تحدث الشخصية في محادثات المجموعة!", + "Important to set the character's writing style.": "مهم لتحديد نمط كتابة الشخصية.", + "ATTENTION!": "انتباه!", + "Samplers Order": "ترتيب الأمثلة", + "Samplers will be applied in a top-down order. Use with caution.": "سيتم تطبيق الأمثلة بترتيب من الأعلى إلى الأسفل. استخدم بحذر.", + "Repetition Penalty": "عقوبة التكرار", + "Rep. Pen. Range.": "مدى عقوبة التكرار", + "Rep. Pen. Freq.": "تكرار عقوبة التكرار", + "Rep. Pen. Presence": "وجود عقوبة التكرار", + "Enter it in the box below:": "أدخله في المربع أدناه:", + "separate with commas w/o space between": "فصل بفواصل دون مسافة بينها", + "Document": "وثيقة", + "Suggest replies": "اقتراح الردود", + "Show suggested replies. Not all bots support this.": "إظهار الردود المقترحة. لا يدعم كل الروبوتات هذا.", + "Use 'Unlocked Context' to enable chunked generation.": "استخدم 'سياق غير مقفل' لتمكين إنشاء مجموعات.", + "It extends the context window in exchange for reply generation speed.": "إنه يوسع نافذة السياق مقابل سرعة إنشاء الرد.", + "Continue": "استمر", + "CFG Scale": "مقياس CFG", + "Editing:": "تحرير:", + "AI reply prefix": "بادئة رد الذكاء الاصطناعي", + "Custom Stopping Strings": "سلاسل توقف مخصصة", + "JSON serialized array of strings": "مصفوفة سلسلة JSON متسلسلة", + "words you dont want generated separated by comma ','": "الكلمات التي لا تريد توليدها مفصولة بفاصلة ','", + "Extensions URL": "عنوان URL للامتدادات", + "API Key": "مفتاح API", + "Enter your name": "أدخل اسمك", + "Name this character": "اسم هذا الشخصية", + "Search / Create Tags": "البحث / إنشاء العلامات", + "Describe your character's physical and mental traits here.": "صف صفات شخصيتك الجسدية والعقلية هنا.", + "This will be the first message from the character that starts every chat.": "سيكون هذا أول رسالة من الشخصية التي تبدأ كل دردشة.", + "Chat Name (Optional)": "اسم المحادثة (اختياري)", + "Filter...": "تصفية...", + "Search...": "بحث...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "سيحل أي محتوى هنا محل التعليمة الرئيسية الافتراضية المستخدمة لهذا الشخصية.", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "سيحل أي محتوى هنا محل التعليمة الافتراضية لكسر الحجز المستخدمة لهذا الشخصية.", + "(Botmaker's name / Contact Info)": "اسم المطور / معلومات الاتصال", + "(If you want to track character versions)": "(إذا كنت ترغب في تتبع إصدارات الشخصية)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(صف الروبوت، وأعطي استخدام النصائح، أو قائمة النماذج الدردشة التي تم اختبارها. سيتم عرض هذا في قائمة الشخصيات.)", + "(Write a comma-separated list of tags)": "(اكتب قائمة بفواصل مفصولة للعلامات)", + "(A brief description of the personality)": "(وصف موجز للشخصية)", + "(Circumstances and context of the interaction)": "(الظروف والسياق للتفاعل)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(أمثلة على حوار الدردشة. ابدأ كل مثال بـ START في سطر جديد.)", + "Injection text (supports parameters)": "نص الحقن (يدعم المعلمات)", + "Injection depth": "عمق الحقن", + "Type here...": "اكتب هنا...", + "Comma separated (required)": "فاصلة مفصولة (مطلوب)", + "Comma separated (ignored if empty)": "فاصلة مفصولة (تجاهل إذا كانت فارغة)", + "What this keyword should mean to the AI, sent verbatim": "ما يجب أن يعني هذا الكلمة الرئيسية للذكاء الاصطناعي، ترسل حرفيًا", + "Filter to Character(s)": "تصفية إلى الشخصيات", + "Character Exclusion": "استبعاد الشخصيات", + "Inclusion Group": "مجموعة الإدراج", + "Only one entry with the same label will be activated": "سيتم تنشيط مدخل واحد فقط بنفس العلامة", + "-- Characters not found --": "-- الشخصيات غير موجودة --", + "Not sent to the AI": "لم يتم إرسالها إلى الذكاء الاصطناعي", + "(This will be the first message from the character that starts every chat)": "(سيكون هذا أول رسالة من الشخصية التي تبدأ كل دردشة)", + "Not connected to API!": "غير متصل بواجهة برمجة التطبيقات!", + "AI Response Configuration": "تكوين الرد الذكاء الاصطناعي", + "AI Configuration panel will stay open": "لوحة تكوين الذكاء الاصطناعي ستبقى مفتوحة", + "Update current preset": "تحديث الإعداد الحالي", + "Create new preset": "إنشاء إعداد جديد", + "Import preset": "استيراد الإعداد", + "Export preset": "تصدير الإعداد", + "Delete the preset": "حذف الإعداد", + "Auto-select this preset for Instruct Mode": "تحديد هذا الإعداد تلقائياً لوضع التعليم", + "Auto-select this preset on API connection": "تحديد هذا الإعداد تلقائياً عند الاتصال بواجهة برمجة التطبيقات", + "NSFW block goes first in the resulting prompt": "يذهب كتلة NSFW أولاً في التعليمة الناتجة", + "Enables OpenAI completion streaming": "يمكن تمكين التدفق الكامل لإكمال OpenAI", + "Wrap user messages in quotes before sending": "لف رسائل المستخدمين في علامات اقتباس قبل الإرسال", + "Restore default prompt": "استعادة التعليمة الافتراضية", + "New preset": "إعداد جديد", + "Delete preset": "حذف الإعداد", + "Restore default jailbreak": "استعادة كسر الحجز الافتراضي", + "Restore default reply": "استعادة الرد الافتراضي", + "Restore defaul note": "استعادة الملاحظة الافتراضية", + "API Connections": "اتصالات واجهة برمجة التطبيقات", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "يمكن المساعدة في الردود السيئة عن طريق وضع العمال الموافق عليهم فقط في قائمة الانتظار. قد يؤدي إلى بطء وقت الاستجابة.", + "Clear your API key": "مسح مفتاح واجهة برمجة التطبيقات الخاص بك", + "Refresh models": "تحديث النماذج", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "احصل على رمز واجهة برمجة التطبيقات الخاص بك لموزع الاتصالات باستخدام تدفق OAuth. سيتم توجيهك إلى openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "تتحقق من اتصالك بواجهة برمجة التطبيقات من خلال إرسال رسالة اختبار قصيرة. كن على علم بأنك ستحصل على الفضل في ذلك!", + "Create New": "إنشاء جديد", + "Edit": "تعديل", + "Locked = World Editor will stay open": "مقفول = محرر العالم سيبقى مفتوحاً", + "Entries can activate other entries by mentioning their keywords": "يمكن للإدخالات تنشيط إدخالات أخرى عن طريق ذكر كلماتهم الرئيسية", + "Lookup for the entry keys in the context will respect the case": "سيحترم البحث عن مفاتيح الإدخال في السياق الحالة", + "If the entry key consists of only one word, it would not be matched as part of other words": "إذا كانت مفتاح الإدخال يتكون من كلمة واحدة فلن يتم مطابقتها كجزء من كلمات أخرى", + "Open all Entries": "فتح جميع الإدخالات", + "Close all Entries": "إغلاق جميع الإدخالات", + "Create": "إنشاء", + "Import World Info": "استيراد معلومات العالم", + "Export World Info": "تصدير معلومات العالم", + "Delete World Info": "حذف معلومات العالم", + "Duplicate World Info": "تكرار معلومات العالم", + "Rename World Info": "إعادة تسمية معلومات العالم", + "Refresh": "تحديث", + "Primary Keywords": "الكلمات الأساسية", + "Logic": "منطق", + "AND ANY": "وأي", + "AND ALL": "و الجميع", + "NOT ALL": "ليس كل", + "NOT ANY": "لا أي", + "Optional Filter": "تصفية اختيارية", + "New Entry": "إدخال جديد", + "Fill empty Memo/Titles with Keywords": "املأ الملاحظات / العناوين الفارغة بالكلمات الرئيسية", + "Save changes to a new theme file": "حفظ التغييرات في ملف السمة الجديد", + "removes blur and uses alternative background color for divs": "يزيل الضبابية ويستخدم لون خلفية بديل للأقسام", + "AI Response Formatting": "تنسيق رد الذكاء الاصطناعي", + "Change Background Image": "تغيير صورة الخلفية", + "Extensions": "امتدادات", + "Click to set a new User Name": "انقر لتعيين اسم مستخدم جديد", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "انقر لتأمين الشخصية المحددة إلى الدردشة الحالية. انقر مرة أخرى لإزالة القفل.", + "Click to set user name for all messages": "انقر لتعيين اسم المستخدم لجميع الرسائل", + "Create a dummy persona": "إنشاء شخصية وهمية", + "Character Management": "إدارة الشخصيات", + "Locked = Character Management panel will stay open": "مقفل = ستبقى لوحة إدارة الشخصيات مفتوحة", + "Select/Create Characters": "اختر / إنشاء الشخصيات", + "Token counts may be inaccurate and provided just for reference.": "قد تكون عدادات الرموز غير دقيقة وتُقدم فقط للإشارة.", + "Click to select a new avatar for this character": "انقر لتحديد صورة رمزية جديدة لهذه الشخصية", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "مثال: [{{user}} هي فتاة رومانية قطة عمرها 28 عامًا.]", + "Toggle grid view": "تبديل عرض الشبكة", + "Add to Favorites": "أضف إلى المفضلة", + "Advanced Definition": "تعريف متقدم", + "Character Lore": "قصة الشخصية", + "Export and Download": "تصدير وتنزيل", + "Duplicate Character": "تكرار الشخصية", + "Create Character": "إنشاء شخصية", + "Delete Character": "حذف الشخصية", + "View all tags": "عرض جميع العلامات", + "Click to set additional greeting messages": "انقر لتعيين رسائل تحية إضافية", + "Show / Hide Description and First Message": "إظهار / إخفاء الوصف والرسالة الأولى", + "Click to select a new avatar for this group": "انقر لتحديد صورة رمزية جديدة لهذه المجموعة", + "Set a group chat scenario": "تعيين سيناريو للمحادثة الجماعية", + "Restore collage avatar": "استعادة صورة رمزية للكولاج", + "Create New Character": "إنشاء شخصية جديدة", + "Import Character from File": "استيراد شخصية من ملف", + "Import content from external URL": "استيراد المحتوى من عنوان URL الخارجي", + "Create New Chat Group": "إنشاء مجموعة دردشة جديدة", + "Characters sorting order": "ترتيب فرز الشخصيات", + "Add chat injection": "إضافة حقنة للدردشة", + "Remove injection": "إزالة الحقنة", + "Remove": "إزالة", + "Select a World Info file for": "حدد ملف معلومات العالم لـ", + "Primary Lorebook": "سجل قصة أساسي", + "A selected World Info will be bound to this character as its own Lorebook.": "ستُرتبط معلومات العالم المحددة بهذه الشخصية كسجل قصة خاص بها.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "عند إنشاء رد من الذكاء الاصطناعي، سيتم دمجه مع الإدخالات من محدد معلومات العالم العالمي.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "سيقوم تصدير الشخصية أيضًا بتصدير ملف سجل القصة المحدد المضمن في البيانات JSON.", + "Additional Lorebooks": "سجلات قصص إضافية", + "Associate one or more auxillary Lorebooks with this character.": "ربط سجلات قصص إضافية واحدة أو أكثر مع هذه الشخصية.", + "NOTE: These choices are optional and won't be preserved on character export!": "ملاحظة: هذه الاختيارات اختيارية ولن تتم الاحتفاظ بها عند تصدير الشخصية!", + "Rename chat file": "إعادة تسمية ملف الدردشة", + "Export JSONL chat file": "تصدير ملف الدردشة بتنسيق JSONL", + "Download chat as plain text document": "تنزيل الدردشة كمستند نصي عادي", + "Delete chat file": "حذف ملف الدردشة", + "Delete tag": "حذف العلامة", + "Translate message": "ترجمة الرسالة", + "Generate Image": "إنشاء صورة", + "Narrate": "سرد", + "Prompt": "موضوع", + "Create Bookmark": "إنشاء إشارة مرجعية", + "Copy": "نسخ", + "Open bookmark chat": "فتح دردشة من الإشارة المرجعية", + "Confirm": "تأكيد", + "Copy this message": "نسخ هذه الرسالة", + "Delete this message": "حذف هذه الرسالة", + "Move message up": "نقل الرسالة لأعلى", + "Move message down": "نقل الرسالة لأسفل", + "Enlarge": "تكبير", + "Temporarily disable automatic replies from this character": "تعطيل الردود التلقائية مؤقتًا من هذه الشخصية", + "Enable automatic replies from this character": "تمكين الردود التلقائية من هذه الشخصية", + "Trigger a message from this character": "تفعيل رسالة من هذه الشخصية", + "Move up": "نقل لأعلى", + "Move down": "نقل لأسفل", + "View character card": "عرض بطاقة الشخصية", + "Remove from group": "إزالة من المجموعة", + "Add to group": "إضافة إلى المجموعة", + "Add": "إضافة", + "Abort request": "إلغاء الطلب", + "Send a message": "إرسال رسالة", + "Ask AI to write your message for you": "طلب من الذكاء الاصطناعي كتابة رسالتك لك", + "Continue the last message": "متابعة الرسالة الأخيرة", + "Bind user name to that avatar": "ربط اسم المستخدم بتلك الصورة الرمزية", + "Select this as default persona for the new chats.": "تحديد هذا كشخصية افتراضية للمحادثات الجديدة.", + "Change persona image": "تغيير صورة الشخصية", + "Delete persona": "حذف الشخصية", + "Reduced Motion": "تقليل الحركة", + "Auto-select": "التحديد التلقائي", + "Automatically select a background based on the chat context": "تحديد خلفية تلقائيًا استنادًا إلى سياق الدردشة", + "Filter": "تصفية", + "Exclude message from prompts": "استثناء الرسالة من التلميحات", + "Include message in prompts": "تضمين الرسالة في التلميحات", + "Create checkpoint": "إنشاء نقطة تفتيش", + "Create Branch": "إنشاء فرع", + "Embed file or image": "تضمين ملف أو صورة", + "UI Theme": "سمة واجهة المستخدم", + "This message is invisible for the AI": "هذه الرسالة غير مرئية للذكاء الاصطناعي", + "Sampler Priority": "أولوية العينات", + "Ooba only. Determines the order of samplers.": "Ooba فقط. يحدد ترتيب العينات.", + "Load default order": "تحميل الترتيب الافتراضي", + "Max Tokens Second": "أقصى عدد من الرموز / الثانية", + "CFG": "CFG", + "No items": "لا يوجد عناصر", + "Extras API key (optional)": "مفتاح API الإضافي (اختياري)", + "Notify on extension updates": "الإخطار بالتحديثات الإضافية", + "Toggle character grid view": "تبديل عرض الشبكة للشخصيات", + "Bulk edit characters": "تحرير الشخصيات بالجملة", + "Bulk delete characters": "حذف الشخصيات بالجملة", + "Favorite characters to add them to HotSwaps": "اختر الشخصيات المفضلة لإضافتها إلى HotSwaps", + "Underlined Text": "نص تحته خط", + "Token Probabilities": "احتمالات الرمز", + "Close chat": "إغلاق الدردشة", + "Manage chat files": "إدارة ملفات الدردشة", + "Import Extension From Git Repo": "استيراد الامتداد من مستودع Git", + "Install extension": "تثبيت الامتداد", + "Manage extensions": "إدارة الامتدادات", + "Tokens persona description": "الرموز", + "Most tokens": "معظم الرموز", + "Least tokens": "أقل الرموز", + "Random": "عشوائي", + "Skip Example Dialogues Formatting": "تخطي مثال تنسيق الحوار", + "Import a theme file": "استيراد ملف السمة", + "Export a theme file": "تصدير ملف موضوع" + + +} \ No newline at end of file diff --git a/public/locales/es-spa.json b/public/locales/es_ES.json similarity index 100% rename from public/locales/es-spa.json rename to public/locales/es_ES.json diff --git a/public/locales/it-it.json b/public/locales/it_IT.json similarity index 100% rename from public/locales/it-it.json rename to public/locales/it_IT.json diff --git a/public/locales/ja-jp.json b/public/locales/ja_JP.json similarity index 100% rename from public/locales/ja-jp.json rename to public/locales/ja_JP.json diff --git a/public/locales/ko-kr.json b/public/locales/ko_KR.json similarity index 100% rename from public/locales/ko-kr.json rename to public/locales/ko_KR.json diff --git a/public/locales/lang.json b/public/locales/lang.json index c03d5f49f..7b417fe06 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -1,9 +1,11 @@ [ - "zh-cn", - "ja-jp", - "ko-kr", - "ru-ru", - "it-it", - "nl-nl", - "es-spa" -] + { "lang": "zh_cn", "display": "Chinese (Simplified)" }, + { "lang": "ja_jp", "display": "Japanese" }, + { "lang": "ko_kr", "display": "Korean" }, + { "lang": "ru_ru", "display": "Russian" }, + { "lang": "it_it", "display": "Italian" }, + { "lang": "nl_nl", "display": "Dutch" }, + { "lang": "es_es", "display": "Spanish" }, + { "lang": "pt_pt", "display": "Portuguese (Portugal)" }, + { "lang": "ar_sa", "display": "Arabic" } +] \ No newline at end of file diff --git a/public/locales/nl-nl.json b/public/locales/nl_NL.json similarity index 100% rename from public/locales/nl-nl.json rename to public/locales/nl_NL.json diff --git a/public/locales/pt_PT.json b/public/locales/pt_PT.json new file mode 100644 index 000000000..7c114c861 --- /dev/null +++ b/public/locales/pt_PT.json @@ -0,0 +1,756 @@ +{ + "UI Language": "Linguagem", + "clickslidertips": "dicas deslizantes", + "kobldpresets": "Predefinições Kobold", + "guikoboldaisettings": "Configurações KoboldAI", + "novelaipreserts": "Predefinições NovelAI", + "default": "padrão", + "openaipresets": "Predefinições OpenAI", + "text gen webio(ooba) presets": "Gen de texto predefinido webio(ooba)", + "response legth(tokens)": "comprimento da resposta (em token)", + "select": "selecionar", + "context size(tokens)": "tamanho do contexto (em token)", + "unlocked": "Desbloquear", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Selecione o suporte de modls apenas se o tamanho do contexto for maior que 4.096 tokens. Prossiga apenas se você souber o que está fazendo.", + "rep.pen": "rep.caneta", + "rep.pen range": "intervalo rep.pen", + "temperature": "temperaturas", + "Encoder Rep. Pen.": "Caneta de representante do codificador.", + "No Repeat Ngram Size": "Tamanho de N gramas sem repetições", + "Min Length": "Comprimento mínimo", + "OpenAI Reverse Proxy": "Proxy reverso OpenAI", + "Alternative server URL (leave empty to use the default value).": "URL do servidor alternativo (deixe em branco para padrões).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Remova a chave da API OpenAI do painel API ANTES de digitar qualquer coisa nesta caixa", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Não podemos oferecer suporte para problemas encontrados ao usar um proxy OpenAI não oficial", + "Legacy Streaming Processing": "Processo de streaming legado", + "Enable this if the streaming doesn't work with your proxy": "Marque a caixa se o streaming não funcionar com o seu proxy.", + "Context Size (tokens)": "Tamanho do contexto (em token)", + "Max Response Length (tokens)": "Comprimento máximo da resposta (em token)", + "Temperature": "Temperaturas", + "Frequency Penalty": "Penalidade de Frequência", + "Presence Penalty": "Penalidade de Presença", + "Top-p": "Topo-p", + "Display bot response text chunks as they are generated": "Mostre a resposta do bot conforme ela é gerada.", + "Top A": "Topo A", + "Typical Sampling": "Amostragem Típica", + "Tail Free Sampling": "Amostragem Livre de Cauda", + "Rep. Pen. Slope": "Rep. Caneta. Inclinação", + "Single-line mode": "Modo de linha única", + "Top K": "Top K", + "Top P": "Top P", + "Typical P": "Típico P", + "Do Sample": "Fazer amostra", + "Add BOS Token": "Adicionar Token BOS", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "Adicione bos_token ao início de um prompt. Desligá-lo pode tornar as respostas mais criativas.", + "Ban EOS Token": "Bloquear token EOS", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Bloquear eos_token. Isso força o modelo a não encerrar a geração de texto prematuramente.", + "Skip Special Tokens": "Pular tokens especiais", + "Beam search": "Pesquisa de feixe", + "Number of Beams": "Número do feixe", + "Length Penalty": "Penalidade de comprimento", + "Early Stopping": "Parada Antecipada", + "Contrastive search": "Pesquisa contrastiva", + "Penalty Alpha": "Penalidade Alfa", + "Seed": "Semente", + "Inserts jailbreak as a last system message.": "Insira o Jailbreak como a última mensagem do sistema.", + "This tells the AI to ignore its usual content restrictions.": "Isso diz à IA para ignorar restrições contextualizadas no chat.", + "NSFW Encouraged": "Estimulando respostas NSFW", + "Tell the AI that NSFW is allowed": "Informa à IA que o material NSFW é permitido.", + "NSFW Prioritized": "Dê prioridade ao material NSFW", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "O prompt NSFW é enviado primeiro para enfatizar seu efeito.", + "Streaming": "Transmissão", + "Display the response bit by bit as it is generated.":"Mostre a resposta conforme ela é gerada.", + "When this is off, responses will be displayed all at once when they are complete.": "Quando esta caixa de seleção está desativada, as respostas só são mostradas quando o texto for concluído.", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Gerar apenas uma linha por solicitação (somente KoboldAI, ignorado pelo KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Banir o token de fim de sequência (EOS) (com KoboldCpp e possivelmente outros tokens com KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Bom para escrever histórias, mas não deve ser usado no modo de bate-papo e instruções.", + "Enhance Definitions": "Melhorar definições", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Use o conhecimento OpenAI para melhorar as definições de figuras públicas famosas e personagens fictícios.", + "Wrap in Quotes": "Enviar mensagens entre aspas", + "Wrap entire user message in quotes before sending.": "Todas as mensagens serão enviadas como um diálogo antes do envio.", + "Leave off if you use quotes manually for speech.": "Esqueça esta opção se você já escreve suas próprias citações para representar os diálogos.", + "Main prompt": "Prompt principal", + "The main prompt used to set the model behavior": "O prompt principal usado como base para o comportamento do modelo.", + "NSFW prompt": "Avisos NSFW", + "Prompt that is used when the NSFW toggle is on": "Prompt usado quando a opção NSFW está ativada.", + "Jailbreak prompt": "Prompt de jailbreak", + "Prompt that is used when the Jailbreak toggle is on": "Prompt usado quando a opção Jailbreak está ativa.", + "Impersonation prompt": "Prompt de representação do usuário", + "Prompt that is used for Impersonation function": "Prompt usado para recurso de representação de usuário", + "Logit Bias": "Viés Logit", + "Helps to ban or reinforce the usage of certain words": "Ajuda a desencorajar ou reforçar o uso de certos tipos de palavras.", + "View / Edit bias preset": "Mostrar/Editar predefinição de polarização", + "Add bias entry": "Adicionar polarização de voz", + "Jailbreak activation message": "Mensagem de ativação do jailbreak", + "Message to send when auto-jailbreak is on.": "Mensagem a ser enviada quando o jailbreak automático estiver ativado", + "Jailbreak confirmation reply": "Resposta de confirmação de jailbreak", + "Bot must send this back to confirm jailbreak": "O bot deve enviar esta resposta para confirmar o Jailbreak", + "Character Note": "Notas do personagem", + "Influences bot behavior in its responses": "Influencia o comportamento do bot em suas respostas", + "API": "API", + "KoboldAI": "KoboldAI", + "Use Horde": "Usar Horda", + "API url": "URL da API", + "Register a Horde account for faster queue times": "Crie uma conta Horde para tempos de espera mais curtos", + "Learn how to contribute your idle GPU cycles to the Horde": "Aprenda como usar seus ciclos ociosos de GPU para contribuir com a Horda", + "Adjust context size to worker capabilities": "Ajusta o tamanho do contexto às suas capacidades operacionais", + "Adjust response length to worker capabilities": "Ajusta a duração da resposta às suas capacidades operacionais", + "API key": "Chave API", + "Register": "Entrar", + "For privacy reasons": "Por razões de privacidade", + "Model": "Modelo", + "Hold Control / Command key to select multiple models.": "Mantenha Ctrl/Command pressionado para selecionar vários modelos.", + "Horde models not loaded":"Modelos da Horda não carregados", + "Not connected": "Desconectar", + "Novel API key": "Chave de API NovelAI", + "Follow": "Seguir", + "these directions": "estas sugestões", + "to get your NovelAI API key.": "para obter a chave da API NovelAI.", + "Enter it in the box below": "Digite a chave na caixa abaixo", + "Novel AI Model": "Modelo NovelAI", + "Euterpe": "Euterpe", + "Krake": "Krake", + "No connection": "Sem conexão", + "oobabooga/text-generation-webui": "oobabooga/geração de texto-webui", + "Make sure you run it with": "certifique-se de iniciá-lo com --extensions openai", + "Blocking API url": "Bloquear endereço API", + "Streaming API url": "streaming de endereço API", + "to get your OpenAI API key.": "para obter sua chave de API OpenAI.", + "OpenAI Model": "Modelo OpenAI", + "View API Usage Metrics": "Mostrar métricas de uso da API", + "Bot": "robôs", + "Connect to the API": "Conectar à API", + "Auto-connect to Last Server": "Conexão automática ao último servidor", + "View hidden API keys": "Mostrar chaves de API ocultas", + "Advanced Formatting": "Formatação Avançada", + "AutoFormat Overrides": "Substituição de formatação automática", + "Disable description formatting": "Desativar formatação de descrição", + "Disable personality formatting": "Desativar formatação de personalidade", + "Disable scenario formatting": "Desativar formatação de cenário", + "Disable example chats formatting": "Desativar formatação de amostra de bate-papo", + "Disable chat start formatting": "Desativar a formatação inicial do chat", + "Custom Chat Separator": "Separador de bate-papo personalizado", + "Instruct mode": "Modo de instrução", + "Enabled": "Ativar", + "Wrap Sequences with Newline": "Cada sequência é repetida", + "Include Names": "Incluir nomes", + "System Prompt": "Instruções do sistema", + "Instruct Mode Sequences": "Sequências em modo de instrução", + "Input Sequence": "Sequência de entrada", + "First Output Sequence": "Primeira sequência de saída", + "Last Output Sequence": "Última sequência de saída", + "System Sequence Prefix": "Prefixo de sequência do sistema", + "System Sequence Suffix": "Sufixo de sequência do sistema", + "Stop Sequence": "Sequência de prisão", + "Context Formatting": "Formatação de Contexto", + "Tokenizer": "Tokenizador", + "None / Estimated": "Nenhum/Estimado", + "Sentencepiece (LLaMA)": "Frase (LLaMA)", + "Token Padding": "Preenchimento de token", + "Always add character's name to prompt": "Sempre adicione o nome do personagem ao prompt", + "Keep Example Messages in Prompt": "Manter mensagens de exemplo do prompt", + "Remove Empty New Lines from Output": "Remover linhas de texto em branco da saída", + "Pygmalion Formatting": "Formatação Pigmalião", + "Disabled for all models": "Desativar para todos os modelos", + "Automatic (based on model name)": "Automático (com base no nome do modelo)", + "Enabled for all models": "Ativar para todos os modelos", + "Multigen": "Multigen", + "First chunk (tokens)": "Primeiro pacote (em Token)", + "Next chunks (tokens)": "Próximo pacote (em token)", + "Anchors Order": "Ordem de Âncoras", + "Character then Style": "Primeiro o personagem, depois o estilo", + "Style then Character": "Primeiro o estilo, depois o personagem", + "Character Anchor": "Âncora de personagem", + "Style Anchor": "Estilo Âncora", + "Scan Depth": "Profundidade de digitalização", + "depth": "Profundidade", + "Token Budget":"Orçamento de token", + "budget": "orçamento", + "Recursive scanning": "Análise Recursiva", + "None": "Não é", + "User Settings": "Configurações do Usuário", + "UI Customization": "Personalização da IU", + "Avatar Style": "Estilo Avatar", + "Circle": "Círculo", + "Rectangle": "Retângulo", + "Default": "Padrão", + "Bubbles": "Bolhas", + "No Blur Effect": "Sem efeito de desfoque", + "No Text Shadows": "Sem sombra de texto", + "Waifu Mode": "♡ Modo Waifu ♡", + "Message Timer": "Temporizador de mensagem", + "Characters Hotswap": "Personagens de troca a quente", + "Movable UI Panels": "Painéis UI móveis", + "Reset Panels": "Redefinir painéis", + "UI Colors": "Cores da interface do usuário", + "Main Text": "Texto principal", + "Italics Text": "Texto em itálico", + "Quote Text": "Texto citado", + "Shadow Color": "Cor da sombra", + "FastUI BG": "FastUI BG", + "Blur Tint": "Desfoque de tonalidade", + "Font Scale": "Tamanho da fonte", + "Blur Strength": "Intensidade do desfoque", + "Text Shadow Width": "Largura da sombra do texto", + "UI Theme Preset": "Tema da interface do usuário", + "Power User Options": "Opções avançadas do usuário", + "Swipes": "Deslizamentos", + "Background Sound Only": "Somente som de fundo", + "Auto-load Last Chat": "Carregar automaticamente o último chat", + "Auto-save Message Edits": "Salvar mensagens editadas automaticamente", + "Auto-fix Markdown": "Corrigir texto automaticamente para formatação em Markdown", + "Allow {{char}}: em mensagens de bot": "Permitir {{char}}: em mensagens de bot", + "Allow {{user}}: em mensagens de bot": "Permitir {{user}}: em mensagens de bot", + "Auto-scroll Chat": "Rolagem automática do bate-papo", + "Render Formulas": "Renderizar fórmulas", + "Send on Enter": "Enviar ao pressionar Enter", + "Always disabled": "Sempre desativado", + "Automatic (desktop)": "Automático (desktop)", + "Always enabled": "Sempre ativado", + "Name": "Primeiro nome", + "Your Avatar": "Seu avatar", + "Extensions API:: Extensões de API adicionais": "API de Extensões:: Extensões de API adicionais", + "SillyTavern-extras": "SillyTavern-extras", + "Auto-connect": "Conexão automática", + "Active extensions": "Extensões Ativas", + "Extension settings": "Configurações de Extensões", + "Description": "Descrição", + "First message": "Primeira mensagem", + "Group Controls": "Controles de Grupo", + "Group reply strategy": "Estratégia de resposta em grupo", + "Natural order": "Ordem natural", + "List order": "Ordem da lista", + "Allow self responses": "Permitir auto-respostas", + "Auto Mode": "Modo Automático", + "Add Members": "Adicionar Membros", + "Current Members": "Membros Atuais", + "text": "Texto", + "Delete": "Excluir", + "Cancel": "Cancelar", + "Advanced Definitions": "Definições Avançadas", + "Personality summary": "Resumo da Personalidade", + "A brief description of the personality": "Uma breve descrição da personalidade", + "Scenario": "Cenário", + "Circumstances and context of the dialogue": "Circunstâncias e contexto do diálogo", + "Talkativeness": "Loquacidade", + "How often the character speaks in": "Com que frequência o personagem fala em", + "group chats!": "bate-papos em grupo!", + "Shy": "Tímido", + "Normal": "Normal", + "Chatty": "Conversador", + "Examples of dialogue": "Exemplos de diálogo", + "Forms a personality more clearly": "Ajuda a formar uma personalidade de forma mais clara", + "Save": "Salvar", + "World Info Editor": "Editor de Informações do Mundo", + "New Entry": "Nova Entrada", + "Export": "Exportar", + "Delete World": "Excluir Mundo", + "Chat History": "Histórico de Chat", + "Group Chat Scenario Override": "Substituição do Cenário de Chat em Grupo", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Todos os membros do grupo usarão o seguinte texto de cenário em vez do especificado em seus cartões de personagem.", + "Keywords": "Palavras-chave", + "Separate with commas": "Separar com vírgulas", + "Secondary Required Keywords": "Palavras-chave secundárias necessárias", + "Content": "Conteúdo", + "What this keyword should mean to the AI": "O que esta palavra-chave deve significar para a IA", + "Memo/Note": "Memo/Nota", + "Not sent to AI": "Não enviado para a IA", + "Constant": "Constante", + "Selective": "Seletivo", + "Before Char": "Antes do Char", + "After Char": "Depois do Char", + "Insertion Order": "Ordem de Inserção", + "Tokens:": "Tokens:", + "Disable": "Desativar", + "${characterName}": "${CharacterName}", + "CHAR": "CARACTERES", + "is typing": "está escrevendo...", + "Back to parent chat": "Volte para o chat vinculado a este", + "Save bookmark": "Salvar nos favoritos", + "Convert to group": "Converter em lote", + "Start new chat": "Iniciar um novo bate-papo", + "View past chats": "Mostrar bate-papos anteriores", + "Delete messages": "Apagar mensagens", + "Impersonate": "representar", + "Regenerate": "Regenerado", + "PNG": "NPC", + "JSON": "JSON", + "WEBP": "WEBP", + "presets": "predefinições", + "Message Sound": "Som da mensagem", + "Author's Note": "Notas do Autor", + "Send Jailbreak": "Enviar o Jailbreak", + "Replace empty message": "Substituir mensagens vazias", + "Send this text instead of nothing when the text box is empty.": "Quando o campo de texto estiver vazio, envie esta mensagem.", + "NSFW avoidance prompt": "Alerta para evitar NSFW", + "Prompt that is used when the NSFW toggle is off": "Prompt usado quando a caixa de seleção NSFW está desabilitada.", + "Advanced prompt bits": "Bits de prompt avançados", + "World Info format template": "Formato de modelo 'Informações do Mundo'", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Selecione as informações do mundo atualmente ativas antes de inseri-las no prompt. Use {0} para indicar onde deseja que o conteúdo seja inserido no prompt.", + "Unrestricted maximum value for the context slider": "Valor máximo ilimitado para tamanho de contexto.", + "Chat Completion Source": "Fonte de IA para bate-papo", + "Avoid sending sensitive information to the Horde.": "Por favor, evite enviar informações confidenciais e pessoais para a Horda", + "Review the Privacy statement": "Leia a política de privacidade", + "Learn how to contribute your idel GPU cycles to the Horde": "Aprenda como usar seus ciclos ociosos de GPU para contribuir com a Horda", + "Trusted workers only": "Use apenas usuários confiáveis", + "For privacy reasons, your API key will be hidden after you reload the page.": "Por razões de segurança, sua chave API ficará oculta após recarregar a página.", + "-- Horde models not loaded --": "-- Modelos da Horda não carregados --", + "Example: http//127.0.0.15000/api": "Exemplo http//127.0.0.15000/api", + "No connection...": "Sem conexão", + "Get your NovelAI API Key": "Obter chave API para NovelAI", + "KoboldAI Horde": "Horda Kobold AI", + "Text Gen WebUI (ooba)": "Geração de texto WebUI (ooba)", + "NovelAI": "Nova IA", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Conclusão de bate-papo (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "Chave de API OpenAI", + "Trim spaces": "Excluir espaços", + "Trim Incomplete Sentences": "Cortar frases incompletas", + "Include Newline": "Incluir retorno de carro", + "Non-markdown strings": "Sequências de formatação sem marcação", + "Replace Macro in Sequences": "Substituir macros em sequências", + "Presets":"Predefinições", + "Separator": "Separador", + "Start Reply With": "Comece a resposta com", + "Show reply prefix in chat": "Mostrar prefixo de resposta no chat", + "Worlds/Lorebooks": "Mundos/Livro de História", + "Active World(s)": "Mundos Ativos", + "Character Lore Insertion Strategy": "Estratégia para incorporar conhecimento no contexto da IA", + "Sorted Evenly": "Igualmente distribuído", + "Character Lore First": "Primeiro a história do personagem", + "Global Lore First": "Conheça primeiro", + "-- World Info not found --": "-- 'Informações do mundo' não encontrada --", + "Recursive Scan": "Verificação Recursiva", + "Case Sensitive": "Sensibilidade de maiúsculas e minúsculas", + "Match whole words": "Combine mundos inteiros", + "World/Lore Editor": "Editor de mundo/história", + "--- None ---": "--- Não é ---", + "Comma seperated (ignored if empty)": "Separados por vírgulas (ignorar se estiver vazio)", + "Use Probability": "Probabilidade de uso", + "Exclude from recursion": "Excluir da recursão", + "Position:": "Posição:", + "Before Char Defs": "Antes da definição de Char", + "After Char Defs": "Depois da definição de Char", + "Before AN": "Antes das notas do autor", + "After AN": "Após as notas do autor", + "Order:": "Ordem:", + "Probability:": "Probabilidade:", + "Delete Entry": "Excluir entrada", + "User Message Blur Tint": "Desfoque de fundo do usuário", + "AI Message Blur Tint": "Desfoque de fundo AI", + "Chat Style": "Estilo de bate-papo", + "Chat Width (PC)": "Largura do quadro de bate-papo (PC)", + "Chat Timestamps": "Carimbo de data e hora do bate-papo", + "Message IDs": "ID da mensagem", + "Prefer Character Card Prompt": "Prioridade imediata do 'Cartão de Personagem'", + "Prefer Character Card Jailbreak": "Prioridade de jailbreak do 'cartão de personagem'", + "Press Send to continue": "Pressione Enter para continuar", + "Log prompts to console": "Log prompt para console", + "Never resize avatars": "Nunca redimensione seu avatar", + "Show avatar filenames": "Mostrar o nome do arquivo do avatar", + "Import Card Tags": "Importar etiquetas de cartão", + "Confirm message deletion": "Confirmar exclusão da mensagem", + "Spoiler Free Mode": "Modo sem spoiler", + "Auto-swipe": "Deslizar automaticamente", + "Minimum generated message length": "Tamanho mínimo para mensagens geradas", + "Blacklisted words": "Palavras na lista negra", + "Blacklisted word count to swipe": "Número de palavras na lista negra", + "Reload Chat": "Recarregar bate-papo", + "Not Connected": "Desconectar", + "Persona Management": "Gerenciando seu alter ego", + "Persona Description": "Descrição do alter ego", + "Before Character Card": "Antes do 'Cartão de Personagem'", + "After Character Card": "Depois do 'Cartão de Personagem'", + "Top of Author's Note": "No início das notas do autor", + "Bottom of Author's Note": "No final das notas do autor", + "How do I use this?": "O que é e o que posso fazer a respeito?", + "More...": "Mostre mais...", + "Link to World Info": "Link 'Informações do mundo'", + "Import Card Lore": "Importar o histórico do papel", + "Scenario Override": "Substituindo o cenário", + "Rename": "Renomear", + "Character Description": "Descrição do personagem", + "Creator's Notes": "Notas do Criador", + "A-Z": "A-Z", + "Z-A": "Z-A", + "Newest": "Mais recente", + "Oldest": "Menos recente", + "Favorites": "Favoritos", + "Recent": "Recente", + "Most chats": "Mais sessões de chat", + "Least chats": "Menos sessões de chat", + "Back": "Para trás", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Substituição de prompt (para APIs OpenAI/Claude/Scale, Window/OpenRouter e modo Instruct)", + "Insert {{original}} into either box to include the respective default prompt from system settings.":"Digite {{original}} dentro da caixa para incluir os respectivos prompts padrão das configurações do sistema.", + "Main Prompt": "Prompt principal", + "Jailbreak": "Fuga de presos", + "Creator's Metadata (Not sent with the AI prompt)": "Metadados do criador (não enviados para IA)", + "Everything here is optional": "Tudo aqui é opcional", + "Created by": "Criado por", + "Character Version": "Versão do personagem", + "Tags to Embed": "Tags para incorporar", + "How often the character speaks in group chats!": "A frequência com que o personagem fala em chats em grupo!", + "Important to set the character's writing style.": "Importante para definir o estilo de escrita do personagem.", + "ATTENTION!": "ATENÇÃO!", + "Samplers Order": "Ordem de Amostradores", + "Samplers will be applied in a top-down order. Use with caution.": "Os amostradores serão aplicados em uma ordem de cima para baixo. Use com cautela.", + "Repetition Penalty": "Penalidade de Repetição", + "Epsilon Cutoff": "Corte Épsilon", + "Eta Cutoff": "Eta Corte", + "Rep. Pen. Range.": "Alcance da Penalidade de Repetição", + "Rep. Pen. Freq.": "Frequência da Penalidade de Repetição", + "Rep. Pen. Presence": "Presença da Penalidade de Repetição", + "Enter it in the box below:": "Digite-o na caixa abaixo:", + "separate with commas w/o space between": "separe com vírgulas sem espaço entre eles", + "Document": "Documento", + "Continue": "Continuar", + "Editing": "Edição", + "AI reply prefix": "Prefixo de resposta AI", + "Custom Stopping Strings": "Sequências de parada personalizadas", + "JSON serialized array of strings": "Matriz de strings serializada JSON", + "words you dont want generated separated by comma ','": "Digite as palavras que não deseja que sejam geradas, elas devem ser separadas por vírgulas ','", + "Extensions URL": "Extensões de URL", + "API Key": "Chave API", + "Enter your name": "Insira seu nome", + "Name this character": "Nomeie este personagem", + "Search / Create Tags": "Pesquisar/Criar Tag", + "Describe your character's physical and mental traits here.": "Descreva as características físicas e psicológicas do seu personagem.", + "This will be the first message from the character that starts every chat.": "Esta será a primeira mensagem que o personagem usará no início de cada chat.", + "Chat Name (Optional)": "Nome do bate-papo (opcional)", + "Filter...": "Filtro...", + "Search...": "Aproximar...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Cada item aqui substituirá o prompt principal padrão usado por este personagem. (especificação v2 system_prompt)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Cada item aqui substituirá o Jailbreak padrão usado por este personagem. (especificação v2 post_history_instructions)", + "(Botmaker's name / Contact Info)": "(Nome do criador do bot/Informações de contato)", + "(If you want to track character versions)": "(Se você quiser relatar a versão atual do personagem)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Descreva o bot, escreva sugestões ou informe sobre os modelos de IA em que ele foi testado. Isso será mostrado na lista de personagens)", + "(Write a comma-separated list of tags)": "(Escreva uma lista de tags separadas por vírgula)", + "(A brief description of the personality)": "(Escreva uma breve descrição de sua personalidade)", + "(Circumstances and context of the interaction)": "(Escreva as circunstâncias e o contexto do cenário)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Exemplos de diálogo. Comece cada exemplo com START quando retornar.)", + "Injection text (supports parameters)": "Texto de injeção (suporta parâmetros)", + "Injection depth": "Profundidade de injeção", + "Type here...": "Escreva aqui...", + "Comma separated (required)": "Separar palavras com vírgulas (obrigatório)", + "Comma separated (ignored if empty)": "Separar palavras com vírgulas (ignorar se estiver em branco)", + "What this keyword should mean to the AI, sent verbatim": "O que esta palavra-chave deve significar para a IA? Relate tudo fielmente, palavra por palavra", + "Not sent to the AI": "Não será enviado para a IA", + "(This will be the first message from the character that starts every chat)": "(Esta será a primeira mensagem que o personagem enviará no início de cada chat)", + "Not connected to API!": "Não conectado a nenhuma API!", + "AI Response Configuration": "Configurando a resposta de IA", + "AI Configuration panel will stay open": "Se você clicar no cadeado, o painel de configuração da IA permanecerá aberto", + "Update current preset": "Atualizar predefinição atual", + "Create new preset": "Criar uma nova predefinição", + "Import preset": "Importar predefinições", + "Export preset": "Exportar predefinições", + "Delete the preset": "Limpar predefinições", + "Inserts jailbreak as a last system message": "Insira o Jailbreak como a última mensagem do sistema", + "NSFW block goes first in the resulting prompt": "O bloco de conteúdo NSFW virá primeiro no prompt atual", + "Enables OpenAI completion streaming": "Ativar 'conclusão de streaming' para OpenAI", + "Wrap user messages in quotes before sending": "Coloque a mensagem do usuário entre aspas antes de enviar a mensagem", + "Restore default prompt": "Restaurar prompt padrão", + "New preset": "Nova predefinição", + "Delete preset": "Excluir predefinições", + "Restore default jailbreak": "Restaurar Jailbreak padrão", + "Restore default reply": "Restaurar resposta padrão", + "Restore defaul note": "Restaurar notas padrão", + "API Connections": "Conexões API", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Você pode ajudar a resolver o problema das respostas negativas apenas pedindo para ser colocado em listas de usuários aprovados. Isso pode diminuir o tempo de resposta.", + "Clear your API key": "Exclua sua chave API", + "Refresh models": "Atualizar modelos", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Obtenha seus tokens da API OpenRouter por meio do fluxo OAuth. Você será redirecionado para a página openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Teste sua conexão com a API enviando uma mensagem curta. Você deve entender que a mensagem será cobrada como qualquer outra!", + "Create New": "Crie um novo", + "Edit": "Editar", + "World Info": "'Informações mundiais'", + "Locked = World Editor will stay open": "Se você clicar no cadeado, o editor mundial permanecerá aberto", + "Entries can activate other entries by mentioning their keywords": "As vozes podem desencadear outros rumores ao mencionar suas palavras-chave", + "Lookup for the entry keys in the context will respect the case": "Preste atenção nas palavras-chave utilizadas, elas respeitarão as letras maiúsculas", + "If the entry key consists of only one word, it would not be matched as part of other words": "Se a palavra-chave consistir em apenas uma palavra, ela não será combinada como parte de outras palavras", + "Open all Entries": "Abrir todas as entradas", + "Close all Entries": "Fechar todas as entradas", + "Create": "Criar", + "Import World Info": "Importar 'Informações Mundiais'", + "Export World Info": "Exportar 'Informações Mundiais'", + "Delete World Info": "Excluir 'Informações do Mundo'", + "Rename World Info": "Renomear 'Informações do Mundo'", + "Save changes to a new theme file": "Salvar alterações em um novo arquivo", + "removes blur and uses alternative background color for divs": "remova o desfoque e use um fundo colorido alternativo para 'divs'", + "If checked and the character card contains a prompt override (System Prompt), use that instead.": "Se a caixa estiver marcada e o 'Cartão de Personagem' contiver uma substituição de prompt (prompt do sistema), use-a.", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead.": "Se a caixa estiver marcada e o 'Cartão de Personagem' contiver uma substituição do Jailbreak (Instrução Pós-Histórico), use-a.", + "AI Response Formatting": "Formatando a resposta da IA", + "Change Background Image": "Alterar a imagem de fundo", + "Extensions": "Extensões", + "Click to set a new User Name": "Clique aqui para definir um novo nome de usuário", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Clique aqui para bloquear o alter ego selecionado do chat atual. Clique novamente para remover o bloqueio.", + "Click to set user name for all messages": "Clique aqui para definir seu nome de usuário para todas as mensagens", + "Create a dummy persona": "Crie seu próprio alter ego fictício", + "Character Management": "Gerenciamento de Personagens", + "Locked = Character Management panel will stay open": "Se você clicar no cadeado, o painel de gerenciamento de personagens permanecerá aberto", + "Select/Create Characters": "Selecionar/Criar Personagens", + "Token counts may be inaccurate and provided just for reference.": "As contagens de tokens podem ser imprecisas e, portanto, devem ser usadas apenas como uma aproximação.", + "Click to select a new avatar for this character": "Clique aqui para selecionar um novo avatar para este personagem", + "Add to Favorites": "Adicionar aos favoritos", + "Advanced Definition": "Definições avançadas", + "Character Lore": "História do personagem", + "Export and Download": "Exportar e baixar", + "Duplicate Character": "Caracter duplicado", + "Create Character": "Criar um personagem", + "Delete Character": "Excluir um personagem", + "View all tags": "Mostrar todas as tags", + "Click to set additional greeting messages": "Clique aqui para definir mensagens de boas-vindas adicionais", + "Show / Hide Description and First Message": "Mostrar/ocultar descrição e primeira mensagem", + "Click to select a new avatar for this group": "Clique aqui para selecionar um novo avatar para este grupo", + "Set a group chat scenario": "Definir cenário para bate-papo em grupo", + "Restore collage avatar": "Restaurar colagem de avatar", + "Create New Character": "Crie um novo personagem", + "Import Character from File": "Importar um personagem de um arquivo", + "Import content from external URL": "Importar conteúdo de uma URL externa", + "Create New Chat Group": "Criar um novo bate-papo em grupo", + "Characters sorting order": "Ordenação de caracteres", + "Add chat injection": "Adicionar 'injeção de chat'", + "Remove injection": "Remover injeção", + "Remove": "Excluir", + "Select a World Info file for": "Selecione um arquivo de informações mundiais para", + "Primary Lorebook": "Livro de História Principal", + "A selected World Info will be bound to this character as its own Lorebook.": "Um 'Mundo de Informações' selecionado será vinculado a este personagem como seu próprio Livro de História.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Ao gerar uma resposta de IA, ela será combinada com as entradas de um seletor global de 'Informações Mundiais'.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Exportar um personagem também exportará o arquivo do Livro de História selecionado incorporado nos dados JSON.", + "Additional Lorebooks": "Livros de História Adicionais", + "Associate one or more auxiliary Lorebooks with this character.": "Associe um ou mais Livros de História auxiliares a este personagem.", + "NOTE: These choices are optional and will not be preserved in the character export!": "OBSERVAÇÃO: Essas escolhas são opcionais e não serão preservadas na exportação do personagem!", + "Rename chat file": "Renomear arquivo de bate-papo", + "Export JSONL chat file": "Exportar arquivo de bate-papo para JSONL", + "Download chat as plain text document": "Baixar chat como documento de texto", + "Delete chat file": "Excluir arquivo de bate-papo", + "Delete tag": "Excluir etiqueta", + "Translate message": "Traduzir mensagem", + "Generate Image": "Gerar uma imagem", + "Narrate": "Narra", + "Prompt": "Comandos", + "Create Bookmark": "Criar um marcador", + "Copy": "Cópia de", + "Open bookmark chat": "Abrir bate-papo salvo como favorito", + "Confirm": "Ele confirma", + "Copy this message": "Copiar esta mensagem", + "Delete this message": "Excluir esta mensagem", + "Move message up": "Mover mensagem para cima", + "Move message down": "Mover mensagem para baixo", + "Enlarge": "Prolongar", + "Temporarily disable automatic replies from this character": "Desative temporariamente as respostas automáticas deste personagem", + "Enable automatic replies from this character": "Ativar respostas automáticas deste personagem", + "Trigger a message from this character": "Acione uma mensagem de resposta deste personagem", + "Move up": "Subir", + "Move down": "Mover para baixo", + "View character card": "Mostrar o 'Cartão de Personagem'", + "Remove from group": "Remover do grupo", + "Add to group": "Adicionar ao grupo", + "Add": "Adicionar", + "Abort request": "Parar solicitação", + "Send a message": "Enviar mensagem", + "Ask AI to write your message for you": "Peça à IA para escrever uma mensagem para você", + "Continue the last message": "Continuar última mensagem no chat", + "Bind user name to that avatar": "Vincular nome de usuário a este avatar", + "Select this as default persona for the new chats.": "Selecione este alter ego como padrão para todos os novos chats", + "Change persona image": "Mudar a imagem do seu alter ego", + "Delete persona": "Excluir seu alter ego", + "--- Pick to Edit ---": "--- Selecione para editar ---", + "Add text here that would make the AI generate things you don't want in your outputs.": "Escreva aqui o que você não deseja que a IA gere em suas saídas.", + "write short replies, write replies using past tense": "Escreva respostas curtas, escreva respostas usando o pretérito", + "Alert if your world info is greater than the allocated budget.": "Alerta se suas informações mundiais ultrapassarem o orçamento alocado.", + "Clear your cookie": "Limpar os seus cookies", + "Restore new group chat prompt":"Redefinir novo prompt de bate-papo em grupo", + "Save movingUI changes to a new file": "Salvar as alterações feitas na posição dos painéis da UI (MovingUI) em um novo arquivo", + "Export all": "Exportar tudo", + "Import": "Importa", + "Insert": "Inserir", + "New": "Novo", + "Prompts": "Comandos", + "Tokens": "Fichas", + "Reset current character": "Restaurar personagem atual", + "(0 = disabled)": "(0 = desativado)", + "1 = disabled": "1 = desativado", + "Activation Regex": "Ativação Regex", + "Active World(s) for all chats": "Ative o mundo para todos os bate-papos", + "Add character names": "Adicionar nomes de personagens", + "Add Memo": "Adicionar notas", + "Advanced Character Search": "Pesquisa avançada de caracteres", + "Aggressive": "Agressivo", + "AI21 Model": "Modelo FW21", + "Alert On Overflow": "Aviso em caso de estouro", + "Allow fallback routes": "Permitir rotas alternativas", + "Allow fallback routes Description": "Permitir descrição de rotas substitutas", + "Alt Method": "Método Alt", + "Alternate Greetings": "Saudações alternativas", + "Alternate Greetings Hint": "Pressione a cruz no canto superior direito para gerar uma nova caixa de texto", + "Alternate Greetings Subtitle": "Saudações alternativas estarão presentes aqui", + "Assistant Prefill": "Assistente de pré-preenchimento", + "Banned Tokens": "Tokens Banidos", + "Blank": "Novo", + "Browser default": "Padrão do navegador", + "Budget Cap": "Limite de orçamento", + "CFG": "CFG", + "CFG Scale": "Escala CFG", + "Changes the style of the generated text.": "Alterar o estilo do texto gerado.", + "Character Negatives": "Negativos de Personagem", + "Chat Negatives": "Bate-papo Negativos", + "Chat Scenario Override": "Substituição do cenário de bate-papo", + "Chat Start": "Iniciando bate-papo", + "Claude Model": "Modelo Cláudio", + "Close chat": "Fechar bate-papo", + "Context %": "Contexto%", + "Context Template": "Modelo de Contexto", + "Count Penalty": "Contagem de penalidade", + "Example Separator": "Exemplo de separador", + "Exclude Assistant suffix": "Excluir sufixo de assistente", + "Exclude the assistant suffix from being added to the end of prompt.": "Exclui o sufixo do assistente de ser adicionado ao final do prompt.", + "Force for Groups and Personas": "Forçar para Grupos e Personas", + "Global Negatives": "Negativos Globais", + "In Story String / Chat Completion: Depois do Cartão de Personagem": "Na sequência narrativa / Conclusão do Chat Após o 'Cartão de Personagem'", + "In Story String / Chat Completion: Antes do Cartão de Personagem": "Na sequência narrativa / Conclusão do bate-papo Antes do 'Cartão de Personagem'", + "Instruct": "Instruir", + "Instruct Mode": "Modo Instruir", + "Last Sequence": "Última Sequência", + "Lazy Chat Loading": "Carregamento Preguiçoso de Bate-papo", + "Least tokens": "Menor número de tokens", + "Light": "Leve", + "Load koboldcpp order": "Ordem de Carregamento do koboldcpp", + "Main": "Principal", + "Mancer API key": "Chave da API Mancer", + "Mancer API url": "URL da API Mancer", + "May help the model to understand context. Names must only contain letters or numbers.": "Pode ajudar o modelo a entender o contexto. Os nomes devem conter apenas letras ou números.", + "Medium": "Médio", + "Mirostat": "Mirostat", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (modo=1 é apenas para llama.cpp)", + "Mirostat Eta": "Mirostat Eta", + "Mirostat LR": "Mirostat LR", + "Mirostat Mode": "Modo Mirostat", + "Mirostat Tau": "Mirostat Tau", + "Model Icon": "Ícone do modelo", + "Most tokens": "Tokens máximos", + "MovingUI Preset": "Predefinições de MovingUI", + "Negative Prompt": "Prompt negativo", + "No Module": "Sem forma", + "NSFW": "NSFW", + "Nucleus Sampling":"Amostragem de Núcleo", + "Off": "Esgotado", + "OpenRouter API Key": "Chave de API OpenRouter", + "OpenRouter Model": "Modelo OpenRouter", + "or": "ou", + "Phrase Repetition Penalty": "Penalidade por Repetição de Frase", + "Positive Prompt": "Prompt positivo", + "Preamble": "Premissa", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct Mode)": "Substituições de prompt (para APIs OpenAI/Claude/Scale, Window/OpenRouter e modo de instrução)", + "Prompt that is used when the NSFW toggle is O": "Prompt usado quando o switch NSFW está desligado.", + "Prose Augmenter": "Aumentador de prosa", + "Proxy Password": "Senhas proxy", + "Quick Edit": "Edição rápida", + "Random": "Aleatório", + "Relaxed API URLS": "URL de API desleixado", + "Replace Macro in Custom Stopping Strings": "Substituir macros em strings de parada personalizadas", + "Scale": "Escadaria", + "Sequences you don't want to appear in the output. One per line.": "Sequências que você não deseja que apareçam na saída. Uma por linha.", + "Set at the beginning of Dialogue examples to indicate that a new example chat is about to start.": "Definido no início dos diálogos de exemplo para indicar que um novo exemplo de bate-papo está prestes a começar.", + "Set at the beginning of the chat history to indicate that a new chat is about to start.": "Definido no início do histórico de bate-papo para indicar que um novo bate-papo está prestes a começar.", + "Set at the beginning of the chat history to indicate that a new group chat is about to start.": "Definido no topo do histórico de bate-papo para indicar que um novo bate-papo em grupo está prestes a começar.", + "Show External models (provided by API)": "Mostrar modelos externos (fornecidos pela API)", + "Show Notifications Show notifications on switching personas": "Mostrar uma notificação quando o alter ego for alterado", + "Show tags in responses": "Mostrar tags nas respostas", + "Story String": "Corda Narrativa", + "Text Adventure": "Aventura de texto", + "Text Gen WebUI presets": "WebUI de geração de texto predefinido", + "Toggle Panels": "Interruptor de painel", + "Top A Sampling": "Amostragem Top A", + "Top K Sampling": "Amostragem Top K", + "Unlocked Context Size": "Desbloquear tamanho do contexto", + "Usage Stats": "Estatísticas de utilização", + "Use AI21 Tokenizer": "Use o tokenizador AI21", + "Use API key (Only required for Mancer)": "Usar chave API (necessário apenas para Mancer)", + "Use character author's note": "Use as notas do autor do personagem", + "Use character CFG scales": "Use as escalas CFG do personagem", + "Use Proxy password field instead. This input will be ignored.": "Por favor, use o campo de senha do proxy. Esta entrada será ignorada.", + "Use style tags to modify the writing style of the output": "Usar estilo de tag para alterar o estilo de escrita de saída", + "Use the appropriate tokenizer for Jurassic models, which is more efficient than GPT's.": "Use o tokenizer apropriado para modelos Jurássicos, pois é mais eficiente que o GPT.", + "Used if CFG Scale is unset globally, per chat or character": "Só é usado se a Escala CFG não estiver definida globalmente, para chats ou para personagens", + "Very aggressive": "Exageradamente agressivo", + "Very light": "Excessivamente leve", + "Welcome to SillyTavern!": "Bem-vindo ao SillyTavern!", + "Will be used as a password for the proxy instead of API key.": "Isso será usado como senha para o proxy em vez da chave API.", + "Window AI Model": "Modelo de IA de janela", + "Your Persona": "Seu alter ego", + "Start Claude's answer with...": "Comece a resposta de Claude com...", + "# of messages (0 = disabled)": "'# de mensagens (0 = desabilitadas)'", + "Advanced": "Avançado", + "AI Module":"Módulo IA", + "AI21 API Key": "Chave API AI21", + "Allow NSFW images from Horde": "Permitir imagens NSFW da Horda", + "Anthropic's developer console": "Console de desenvolvimento para Anthropic", + "Avoid spending Anlas": "Evite gastar Anlas", + "Click Authorize below or get the key from": "Clique em Autorizar abaixo ou obtenha a chave em", + "Connect": "Conectar", + "Context Order": "Ordem de Contexto", + "Continue nudge": "Continuar cutucando", + "Convert to Persona": "Converta-se em alter ego", + "Debug Menu": "Menu de depuração", + "Debug Warning": "Aviso de depuração", + "Enable simple UI mode": "Iniciar modo UI simples", + "Enter": "Digitar", + "Example Dialogues": "Exemplos de Diálogos", + "Example: https//neuro.mancer.tech/webui/MODEL/api": "Exemplo: https//neuro.mancer.tech/webui/MODEL/api", + "Example: ws//127.0.0.15005/api/v1/stream": "Exemplo: ws//127.0.0.15005/api/v1/stream", + "Execute": "Executar", + "Get it here:": "Obtenha-o aqui:", + "Get your key from": "Obtenha sua chave de", + "Hint": "Dica", + "If you are using:": "Se você estiver usando:", + "In Story String / Prompt Manager": "Gerenciador de Sequência de História / Prompt", + "In-Chat Position not affected": "Posição no bate-papo não afetada", + "Karras (not all samplers supported)": "Karras (nem todos os amostradores são suportados)", + "Models": "Modelos", + "New Chat": "Novo Bate-papo", + "New Example Chat": "Novo exemplo de bate-papo", + "New Group Chat": "Novo bate-papo em grupo", + "Not connected...": "Desconectar...", + "Opus tier": "Nível Opus", + "Output Sequence": "Sequência de saída", + "Permanent": "Permanente", + "Scale API Key": "Chave de API de escala", + "Send names in the ChatML objects.": "Compartilhar nomes de participantes no ChatML.", + "Show impersonated replies in groups": "Mostrar respostas personificadas em bate-papos em grupo", + "Show Message Token Count": "Mostrar custo em tokens por mensagem", + "Show notifications on switching personas": "Mostrar notificações quando o alter ego mudar", + "Simple": "Simples", + "Slack and Poe cookies will not work here, do not bother trying.": "Biscoitos Slack e Poe não funcionam aqui, não perca tempo tentando.", + "Strip Example Messages from Prompt": "Remover mensagens de exemplo do prompt", + "Summary": "Resumo", + "to use anonymous mode.": "para usar o modo anônimo.", + "UI Mode": "Modo UI", + "Use style tags to modify the writing style of the output.": "Use tags de estilo para alterar o formato de saída.", + "Utility Prompts": "Solicitações de utilitários", + "View my Kudos": "Mostre meus elogios", + "View Remaining Credits": "Mostrar créditos restantes", + "World Info Format Template": "Formato de modelo 'Informações do Mundo'", + "Wraps activated World Info entries before inserting into the prompt.": "Selecione as informações do mundo atualmente ativas antes de inseri-las no prompt.", + "Local server classification": "Classificação do Servidor Local", + "Create Branch": "Criar nova filial", + "removes blur from window backgrounds": "Remover desfoque dos fundos das janelas", + "Allow for Chat Completion APIs": "Permitir 'API de conclusão de bate-papo'", + "at Depth": "à profundidade", + "Auto-Continue": "Resposta Contínua", + "Auto-Expand Message Actions": "Expansão automática de mensagens de ação", + "Automatic (PC)": "Automático (PC)", + "Character Exclusion": "Expulsão de personagem", + "Chat Background": "Fundo de bate-papo", + "Custom CSS": "CSS customizado", + "Depth": "Profundidade", + "Disabled": "Desabilitado", + "Filter to Character(s)": "Filtrar por personagem", + "Grammar": "Gramática", + "Miscellaneous": "Vários", + "PaLM API Key": "Chave API PaLM", + "Relax message trim in Groups": "Leve truncamento de mensagens em bate-papos em grupo", + "Target length (tokens)": "Comprimento alvo (em tokens)", + "Theme Toggles": "Mudança de tema", + "Type in the desired custom grammar (GBNF).": "Escreva sua própria gramática (GBNF).", + "UI Background": "Fundo da IU", + "UI Border": "Borda da IU" +} \ No newline at end of file diff --git a/public/locales/ru-ru.json b/public/locales/ru_RU.json similarity index 100% rename from public/locales/ru-ru.json rename to public/locales/ru_RU.json diff --git a/public/locales/vi_VN.json b/public/locales/vi_VN.json new file mode 100644 index 000000000..256305cc7 --- /dev/null +++ b/public/locales/vi_VN.json @@ -0,0 +1,863 @@ +{ + "clickslidertips": "Nhấp vào thanh trượt để nhập giá trị bằng tay.", + "kobldpresets": "Cài đặt trước Kobold", + "guikoboldaisettings": "Cài đặt giao diện KoboldAI", + "novelaipreserts": "Cài đặt trước NovelAI", + "default": "Mặc định", + "openaipresets": "Cài đặt trước OpenAI", + "text gen webio(ooba) presets": "Cài đặt trước WebUI(ooba) của máy tạo văn bản", + "response legth(tokens)": "Độ dài phản hồi (trong các token)", + "select": "Chọn", + "context size(tokens)": "Kích thước ngữ cảnh (trong các token)", + "unlocked": "Đã mở", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Chỉ một số mô hình được chọn hỗ trợ kích thước ngữ cảnh lớn hơn 4096 token. Tăng kích thước chỉ khi bạn biết bạn đang làm gì.", + "rep.pen": "Trừ phạt tái phát", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "Trạng thái nhập WI:🔵 Cố định🟢 Bình thường❌ Đã vô hiệu hóa", + "rep.pen range": "Phạm vi trừ phạt tái phát", + "Temperature controls the randomness in token selection": "Nhiệt độ điều chỉnh sự ngẫu nhiên trong việc chọn token:\n- Nhiệt độ thấp (<1.0) dẫn đến văn bản dự đoán hơn, với ưu tiên cho các token có xác suất cao.\n- Nhiệt độ cao (>1.0) tăng tính sáng tạo và đa dạng của đầu ra, với nhiều cơ hội cho các token có xác suất thấp hơn.\nThiết lập giá trị 1.0 cho xác suất gốc.", + "temperature": "Nhiệt độ", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K đặt một giá trị tối đa cho số lượng token hàng đầu có thể được chọn từ đó.", + "Top P (a.k.a. nucleus sampling)": "Top P (còn được gọi là mẫu hạt nhân) kết hợp tất cả các token hàng đầu cần thiết để đạt được một phần trăm nhất định.\nNói cách khác, nếu các token hàng đầu 2 đại diện cho 25%, và Top-P bằng 0.50, chỉ có hai token hàng đầu này được xem xét.\nThiết lập giá trị 1.0 để vô hiệu hóa.", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Mẫu P điển hình ưu tiên các token dựa trên sự sai lệch của chúng so với năng lượng cân bằng trung bình của tập hợp.\nCác token có xác suất tích lũy gần với ngưỡng được chỉ định (ví dụ: 0.5) được giữ lại, phân biệt chúng khỏi những token có thông tin trung bình.\nThiết lập giá trị 1.0 để vô hiệu hóa.", + "Min P sets a base minimum probability": "Min P đặt một xác suất tối thiểu cơ bản. Nó được tinh chỉnh dựa trên xác suất token hàng đầu.\nNếu xác suất của token hàng đầu là 80%, và Min P là 0.1, chỉ có token với xác suất cao hơn 8% được xem xét.\nThiết lập giá trị 0 để vô hiệu hóa.", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A đặt một ngưỡng cho việc chọn token dựa trên bình phương của xác suất token cao nhất.\nNếu Top A là 0.2, và xác suất của token hàng đầu là 50%, các token có xác suất dưới 5% sẽ bị loại bỏ (0.2 * 0.5^2).\nThiết lập giá trị 0 để vô hiệu hóa.", + "Tail-Free Sampling (TFS)": "Mẫu không đuôi (TFS) tìm kiếm đuôi của token với xác suất nhỏ trong phân phối,\n thông qua phân tích tốc độ thay đổi xác suất token bằng cách sử dụng đạo hàm. Các token được giữ lại đến ngưỡng (ví dụ: 0.3), dựa trên đạo hàm hai lần thống nhất.\nMỗi khi tiến về 0, số lượng token bị loại bỏ tăng lên. Thiết lập giá trị 1.0 để vô hiệu hóa.", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Cắt ngắn Epsilon đặt một ngưỡng xác suất dưới đó các token sẽ không được lựa chọn để mẫu.\nTrong đơn vị 1e-4; giá trị thích hợp là 3.\nThiết lập 0 để vô hiệu hóa.", + "Scale Temperature dynamically per token, based on the variation of probabilities": "Nhiệt độ tỷ lệ động cho mỗi token, dựa trên sự biến đổi của xác suất.", + "Minimum Temp": "Nhiệt độ Tối thiểu", + "Maximum Temp": "Nhiệt độ Tối đa", + "Exponent": "Số mũ", + "Mirostat Mode": "Chế độ Mirostat", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "Variability parameter for Mirostat outputs": "Tham số biến đổi cho đầu ra của Mirostat.", + "Learning rate of Mirostat": "Tốc độ học của Mirostat.", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Độ mạnh của thuật ngữ điều chỉnh Tìm kiếm Trái ngược. Đặt thành 0 để vô hiệu hóa CS.", + "Temperature Last": "Nhiệt độ Cuối cùng", + "Use the temperature sampler last": "Sử dụng bộ lấy mẫu nhiệt độ cuối cùng. Thường là hợp lý.\nKhi bật: Một nhóm các token tiềm năng được chọn trước tiên, sau đó nhiệt độ được áp dụng để hiệu chỉnh xác suất tương đối của chúng (kỹ thuật, logits).\nKhi vô hiệu hóa: Nhiệt độ được áp dụng trước tiên để hiệu chỉnh xác suất tương đối của từng token, sau đó một nhóm các token tiềm năng được chọn từ đó.\nVô hiệu hóa nhiệt độ cuối cùng.", + "LLaMA / Mistral / Yi models only": "Chỉ áp dụng cho các mô hình LLaMA / Mistral / Yi. Hãy chắc chắn chọn bộ phân tích đúng trước.\nChuỗi phải không xuất hiện trong kết quả.\nMỗi dòng chỉ một chuỗi. Văn bản hoặc [nhận diện của token].\nNhiều token bắt đầu bằng dấu cách. Sử dụng bộ đếm token nếu bạn không chắc chắn.", + "Example: some text [42, 69, 1337]": "Ví dụ:\nmột số văn bản\n[42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Hướng dẫn không cần Bộ phân loại. Mẹo hữu ích hơn sẽ được cập nhật sớm.", + "Scale": "Tỷ lệ", + "GBNF Grammar": "Ngữ pháp GBNF", + "Usage Stats": "Thống kê sử dụng", + "Click for stats!": "Nhấp để xem thống kê!", + "Backup": "Sao lưu", + "Backup your personas to a file": "Sao lưu nhân cách của bạn vào một tập tin", + "Restore": "Khôi phục", + "Restore your personas from a file": "Khôi phục nhân cách của bạn từ một tập tin", + "Type in the desired custom grammar": "Nhập vào cú pháp tùy chỉnh mong muốn", + "Encoder Rep. Pen.": "Bút phạt mã hóa", + "Smoothing Factor": "Hệ số làm mịn", + "No Repeat Ngram Size": "Kích thước Ngram không lặp lại", + "Min Length": "Độ dài tối thiểu", + "OpenAI Reverse Proxy": "Proxy ngược OpenAI", + "Alternative server URL (leave empty to use the default value).": "URL máy chủ thay thế (để trống để sử dụng giá trị mặc định).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Xóa khóa API OAI thực của bạn khỏi bảng API TRƯỚC khi nhập bất kỳ điều gì vào hộp này", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Chúng tôi không thể cung cấp hỗ trợ cho các vấn đề gặp phải khi sử dụng proxy OpenAI không chính thức", + "Legacy Streaming Processing": "Xử lý Streaming Kế thừa", + "Enable this if the streaming doesn't work with your proxy": "Bật tính năng này nếu dữ liệu không được truyền với proxy của bạn", + "Context Size (tokens)": "Kích thước Ngữ cảnh (token)", + "Max Response Length (tokens)": "Độ dài Tối đa của Phản hồi (token)", + "Temperature": "Nhiệt độ", + "Frequency Penalty": "Phạt Tần số", + "Presence Penalty": "Phạt Sự hiện", + "Top-p": "Top-p", + "Display bot response text chunks as they are generated": "Hiển thị các phần văn bản phản hồi của bot khi chúng được tạo ra", + "Top A": "Top A", + "Typical Sampling": "Mẫu Đại diện", + "Tail Free Sampling": "Mẫu Không đuôi", + "Rep. Pen. Slope": "Góc Khuếch đại Bút phạt", + "Single-line mode": "Chế độ Dòng duy nhất", + "Top K": "Top K", + "Top P": "Top P", + "Do Sample": "Lấy mẫu", + "Add BOS Token": "Thêm BOS Token", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Thêm bos_token vào đầu câu hỏi. Vô hiệu hóa điều này có thể làm cho các câu trả lời sáng tạo hơn", + "Ban EOS Token": "Cấm EOS Token", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Cấm eos_token. Điều này buộc mô hình không bao giờ kết thúc quá trình sinh ra trước khi cần thiết", + "Skip Special Tokens": "Bỏ qua Các Token Đặc biệt", + "Beam search": "Tìm kiếm Beam", + "Number of Beams": "Số Lượng Beam", + "Length Penalty": "Phạt Độ dài", + "Early Stopping": "Dừng Sớm", + "Contrastive search": "Tìm kiếm Trái ngược", + "Penalty Alpha": "Alpha Phạt", + "Seed": "Hạt giống", + "Epsilon Cutoff": "Cắt Epsilon", + "Eta Cutoff": "Cắt Eta", + "Negative Prompt": "Câu hỏi tiêu cực", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (chế độ=1 chỉ dành cho llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat là một bộ điều chỉnh nhiệt cho sự phức tạp của đầu ra.", + "Add text here that would make the AI generate things you don't want in your outputs.": "Thêm văn bản ở đây sẽ khiến trí tuệ nhân tạo tạo ra những điều bạn không muốn trong đầu ra của mình.", + "Phrase Repetition Penalty": "Phạt Lặp Lại Cụm từ", + "Preamble": "Lời giới thiệu", + "Use style tags to modify the writing style of the output.": "Sử dụng thẻ kiểu để sửa đổi kiểu viết của đầu ra.", + "Banned Tokens": "Các Token Bị Cấm", + "Sequences you don't want to appear in the output. One per line.": "Các chuỗi bạn không muốn xuất hiện trong kết quả. Một dòng mỗi chuỗi.", + "AI Module": "Mô-đun Trí tuệ Nhân tạo", + "Changes the style of the generated text.": "Thay đổi kiểu của văn bản được tạo ra.", + "Used if CFG Scale is unset globally, per chat or character": "Sử dụng nếu CFG Scale không được thiết lập toàn cầu, mỗi cuộc trò chuyện hoặc mỗi ký tự.", + "Inserts jailbreak as a last system message.": "Chèn jailbreak như là một tin nhắn hệ thống cuối cùng.", + "This tells the AI to ignore its usual content restrictions.": "Điều này cho AI biết bỏ qua các hạn chế nội dung thông thường của nó.", + "NSFW Encouraged": "Khuyến khích NSFW", + "Tell the AI that NSFW is allowed.": "Báo cho AI biết rằng NSFW được phép.", + "NSFW Prioritized": "Ưu tiên NSFW", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "Văn bản khuyến nghị NSFW được hiển thị đầu tiên trong lời nhắc để nhấn mạnh tác động của nó.", + "Streaming": "Phát trực tuyến", + "Dynamic Temperature": "Nhiệt độ động", + "Restore current preset": "Khôi phục cài đặt hiện tại", + "Neutralize Samplers": "Làm trung lập các mẫu", + "Text Completion presets": "Cài đặt hoàn thiện văn bản", + "Documentation on sampling parameters": "Tài liệu về các tham số lấy mẫu", + "Set all samplers to their neutral/disabled state.": "Đặt tất cả các mẫu vào trạng thái trung lập/tắt.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Chỉ bật tính năng này nếu mô hình của bạn hỗ trợ kích thước ngữ cảnh lớn hơn 4096 token.", + "Display the response bit by bit as it is generated": "Hiển thị phản hồi từng chút một khi nó được tạo ra.", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Chỉ tạo ra một dòng duy nhất cho mỗi yêu cầu (chỉ dành cho KoboldAI, bị bỏ qua bởi KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Cấm token Kết thúc Chuỗi (EOS) (với KoboldCpp, và có thể cũng là các token khác với KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Tốt cho việc viết truyện, nhưng không nên sử dụng cho chế độ trò chuyện và chỉ dẫn.", + "Enhance Definitions": "Tăng cường Định nghĩa", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Sử dụng cơ sở kiến thức OAI để tăng cường định nghĩa cho các nhân vật công cộng và nhân vật hư cấu đã biết", + "Wrap in Quotes": "Bọc trong dấu ngoặc", + "Wrap entire user message in quotes before sending.": "Bọc toàn bộ tin nhắn của người dùng trong dấu ngoặc trước khi gửi.", + "Leave off if you use quotes manually for speech.": "Bỏ đi nếu bạn sử dụng dấu ngoặc bằng tay cho phần nói.", + "Main prompt": "Lời nhắc chính", + "The main prompt used to set the model behavior": "Lời nhắc chính được sử dụng để thiết lập hành vi của mô hình", + "NSFW prompt": "Lời nhắc NSFW", + "Prompt that is used when the NSFW toggle is on": "Lời nhắc được sử dụng khi chuyển đổi NSFW được bật.", + "Jailbreak prompt": "Lời nhắc Jailbreak", + "Prompt that is used when the Jailbreak toggle is on": "Lời nhắc được sử dụng khi chuyển đổi Jailbreak được bật.", + "Impersonation prompt": "Lời nhắc Giả mạo", + "Prompt that is used for Impersonation function": "Lời nhắc được sử dụng cho chức năng Giả mạo", + "Logit Bias": "Sự thiên vị Logit", + "Helps to ban or reenforce the usage of certain words": "Giúp cấm hoặc củng cố việc sử dụng một số từ", + "View / Edit bias preset": "Xem / Chỉnh sửa cài đặt thiên vị", + "Add bias entry": "Thêm mục thiên vị", + "Jailbreak activation message": "Thông báo kích hoạt Jailbreak", + "Message to send when auto-jailbreak is on.": "Thông điệp để gửi khi Jailbreak tự động được bật.", + "Jailbreak confirmation reply": "Trả lời xác nhận Jailbreak", + "Bot must send this back to confirm jailbreak": "Bot phải gửi lại điều này để xác nhận Jailbreak", + "Character Note": "Ghi chú về nhân vật", + "Influences bot behavior in its responses": "Ảnh hưởng đến hành vi của bot trong các phản hồi của nó", + "Connect": "Kết nối", + "Test Message": "Tin nhắn kiểm tra", + "API": "Giao diện lập trình ứng dụng (API)", + "KoboldAI": "KoboldAI", + "Use Horde": "Sử dụng Horde", + "API url": "URL API", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Chế độ đóng gói cho Giao diện lập trình ứng dụng OpenAI)", + "Register a Horde account for faster queue times": "Đăng ký một tài khoản Horde để có thời gian chờ nhanh hơn", + "Learn how to contribute your idle GPU cycles to the Hord": "Tìm hiểu cách đóng góp các chu kỳ GPU không hoạt động của bạn cho Hord", + "Adjust context size to worker capabilities": "Điều chỉnh kích thước ngữ cảnh cho phù hợp với khả năng của công nhân", + "Adjust response length to worker capabilities": "Điều chỉnh độ dài phản hồi cho phù hợp với khả năng của công nhân", + "API key": "Khóa API", + "Tabby API key": "Khóa API Tabby", + "Get it here:": "Nhận nó tại đây:", + "Register": "Đăng ký", + "TogetherAI Model": "Mô hình TogetherAI", + "Example: 127.0.0.1:5001": "Ví dụ: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp", + "Example: 127.0.0.1:8080": "Ví dụ: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Ví dụ: 127.0.0.1:11434", + "Ollama Model": "Mô hình Ollama", + "Download": "Tải xuống", + "TogetherAI API Key": "Khóa API TogetherAI", + "-- Connect to the API --": "-- Kết nối với API --", + "View my Kudos": "Xem các phần Kudos của tôi", + "Enter": "Nhập", + "to use anonymous mode.": "để sử dụng chế độ ẩn danh.", + "For privacy reasons": "Vì lý do bảo mật", + "Models": "Mô hình", + "Hold Control / Command key to select multiple models.": "Giữ phím Control / Command để chọn nhiều mô hình.", + "Horde models not loaded": "Các mô hình Horde chưa được tải", + "Not connected...": "Không kết nối...", + "Novel API key": "Khóa API NovelAI", + "Follow": "Theo dõi", + "these directions": "những hướng dẫn này", + "to get your NovelAI API key.": "để lấy khóa API của NovelAI.", + "Enter it in the box below": "Nhập nó vào ô dưới đây", + "Novel AI Model": "Mô hình Novel AI", + "If you are using:": "Nếu bạn đang sử dụng:", + "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", + "Make sure you run it with": "Đảm bảo bạn chạy nó với", + "flag": "cờ", + "API key (optional)": "Khóa API (tùy chọn)", + "Server url": "URL máy chủ", + "Custom model (optional)": "Mô hình tùy chỉnh (tùy chọn)", + "Bypass API status check": "Bỏ qua kiểm tra trạng thái API", + "Mancer AI": "Mancer AI", + "Use API key (Only required for Mancer)": "Sử dụng khóa API (Chỉ cần cho Mancer)", + "Blocking API url": "URL API chặn", + "Example: 127.0.0.1:5000": "Ví dụ: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "API cũ (trước OAI, không có streaming)", + "Bypass status check": "Bỏ qua kiểm tra trạng thái", + "Streaming API url": "URL API phát trực tiếp", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Ví dụ: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Khóa API của Mancer", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Ví dụ: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "để lấy khóa API của OpenAI.", + "Window AI Model": "Mô hình Window AI", + "OpenAI Model": "Mô hình OpenAI", + "Claude API Key": "Khóa API của Claude", + "Get your key from": "Lấy khóa của bạn từ", + "Anthropic's developer console": "bảng điều khiển nhà phát triển của Anthropic", + "Slack and Poe cookies will not work here, do not bother trying.": "Slack và Poe cookies sẽ không hoạt động ở đây, đừng cố gắng.", + "Claude Model": "Mô hình Claude", + "Scale API Key": "Khóa API của Scale", + "Alt Method": "Phương pháp thay thế", + "AI21 API Key": "Khóa API của AI21", + "AI21 Model": "Mô hình AI21", + "View API Usage Metrics": "Xem số liệu sử dụng API", + "Show External models (provided by API)": "Hiển thị các mô hình bên ngoài (do API cung cấp)", + "Bot": "Bot:", + "Allow fallback routes": "Cho phép các tuyến đường phụ", + "Allow fallback routes Description": "Bot thay thế tự động nếu mô hình được chọn không thể đáp ứng yêu cầu của bạn.", + "OpenRouter API Key": "Khóa API của OpenRouter", + "Connect to the API": "Kết nối với API", + "OpenRouter Model": "Mô hình OpenRouter", + "View Remaining Credits": "Xem số dư còn lại", + "Click Authorize below or get the key from": "Nhấp vào Tác động dưới đây hoặc lấy khóa từ", + "Auto-connect to Last Server": "Tự động kết nối với Máy chủ Cuối cùng", + "View hidden API keys": "Xem các khóa API ẩn", + "Advanced Formatting": "Định dạng Nâng cao", + "Context Template": "Mẫu Ngữ cảnh", + "AutoFormat Overrides": "Ghi đè tự động định dạng", + "Disable description formatting": "Tắt định dạng mô tả", + "Disable personality formatting": "Tắt định dạng tính cách", + "Disable scenario formatting": "Tắt định dạng tình huống", + "Disable example chats formatting": "Tắt định dạng trò chuyện mẫu", + "Disable chat start formatting": "Tắt định dạng bắt đầu trò chuyện", + "Custom Chat Separator": "Ngăn cách Trò chuyện Tùy chỉnh", + "Replace Macro in Custom Stopping Strings": "Thay thế Macro trong Chuỗi Dừng Tùy chỉnh", + "Strip Example Messages from Prompt": "Loại bỏ Tin nhắn Mẫu từ Điều khiển", + "Story String": "Chuỗi Truyện", + "Example Separator": "Ngăn cách Mẫu", + "Chat Start": "Bắt đầu Trò chuyện", + "Activation Regex": "Kích hoạt Regex", + "Instruct Mode": "Chế độ Hướng dẫn", + "Wrap Sequences with Newline": "Bao gói Các chuỗi với Dòng mới", + "Include Names": "Bao gồm Tên", + "Force for Groups and Personas": "Ép buộc cho Nhóm và Nhân vật", + "System Prompt": "Lời nhắc Hệ thống", + "Instruct Mode Sequences": "Các chuỗi chế độ hướng dẫn", + "Input Sequence": "Chuỗi Đầu vào", + "Output Sequence": "Chuỗi Đầu ra", + "First Output Sequence": "Chuỗi Đầu ra Đầu tiên", + "Last Output Sequence": "Chuỗi Đầu ra Cuối cùng", + "System Sequence Prefix": "Tiền tố Chuỗi Hệ thống", + "System Sequence Suffix": "Hậu tố Chuỗi Hệ thống", + "Stop Sequence": "Chuỗi Dừng", + "Context Formatting": "Định dạng Ngữ cảnh", + "(Saved to Context Template)": "(Đã lưu trong Mẫu Ngữ cảnh)", + "Tokenizer": "Công cụ tách từ", + "None / Estimated": "Không / Ước tính", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "Đệm Token", + "Save preset as": "Lưu cài đặt trước dưới dạng", + "Always add character's name to prompt": "Luôn thêm tên nhân vật vào điều khiển", + "Use as Stop Strings": "Sử dụng như chuỗi dừng", + "Bind to Context": "Buộc vào Ngữ cảnh", + "Generate only one line per request": "Chỉ tạo một dòng cho mỗi yêu cầu", + "Misc. Settings": "Các cài đặt khác", + "Auto-Continue": "Tự động Tiếp tục", + "Collapse Consecutive Newlines": "Thu gọn các dòng mới liên tiếp", + "Allow for Chat Completion APIs": "Cho phép các API hoàn thành Trò chuyện", + "Target length (tokens)": "Độ dài mục tiêu (token)", + "Keep Example Messages in Prompt": "Giữ các Tin nhắn Mẫu trong Điều khiển", + "Remove Empty New Lines from Output": "Xóa các Dòng Mới Trống khỏi Đầu ra", + "Disabled for all models": "Vô hiệu hóa cho tất cả các mô hình", + "Automatic (based on model name)": "Tự động (dựa trên tên mô hình)", + "Enabled for all models": "Đã bật cho tất cả các mô hình", + "Anchors Order": "Thứ tự các Mấu chốt", + "Character then Style": "Nhân vật sau đó Kiểu", + "Style then Character": "Kiểu sau đó Nhân vật", + "Character Anchor": "Mấu chốt của Nhân vật", + "Style Anchor": "Mấu chốt của Kiểu", + "World Info": "Thông tin Thế giới", + "Scan Depth": "Độ sâu quét", + "Case-Sensitive": "Phân biệt chữ hoa chữ thường", + "Match Whole Words": "Khớp toàn bộ từ", + "Use global setting": "Sử dụng cài đặt toàn cầu", + "Yes": "Có", + "No": "Không", + "Context %": "Bối cảnh %", + "Budget Cap": "Ngân sách tối đa", + "(0 = disabled)": "(0 = vô hiệu hóa)", + "depth": "độ sâu", + "Token Budget": "Ngân sách token", + "budget": "ngân sách", + "Recursive scanning": "Quét đệ quy", + "None": "Không", + "User Settings": "Cài đặt người dùng", + "UI Mode": "Chế độ Giao diện người dùng", + "UI Language": "Ngôn ngữ Giao diện người dùng", + "MovingUI Preset": "Cài đặt trước MovingUI", + "UI Customization": "Tùy chỉnh Giao diện người dùng", + "Avatar Style": "Kiểu hình đại diện", + "Circle": "Hình tròn", + "Rectangle": "Hình chữ nhật", + "Square": "Hình vuông", + "Chat Style": "Kiểu Trò chuyện", + "Default": "Mặc định", + "Bubbles": "Bong bóng", + "No Blur Effect": "Không có hiệu ứng mờ", + "No Text Shadows": "Không có bóng văn bản", + "Waifu Mode": "Chế độ Waifu", + "Message Timer": "Hẹn giờ Tin nhắn", + "Model Icon": "Biểu tượng Mô hình", + "# of messages (0 = disabled)": "# tin nhắn (0 = vô hiệu hóa)", + "Advanced Character Search": "Tìm kiếm Nhân vật Nâng cao", + "Allow {{char}}: in bot messages": "Cho phép {{char}}: trong các Tin nhắn Bot", + "Allow {{user}}: in bot messages": "Cho phép {{user}}: trong các Tin nhắn Bot", + "Show tags in responses": "Hiển thị thẻ trong các phản hồi", + "Aux List Field": "Trường Danh sách Phụ trợ", + "Lorebook Import Dialog": "Hộp thoại Nhập khẩu Sách về truyền thống", + "MUI Preset": "Cài đặt trước MUI:", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Nếu được thiết lập trong các định nghĩa nhân vật nâng cao, trường này sẽ được hiển thị trong danh sách nhân vật.", + "Relaxed API URLS": "URL API được thư giãn", + "Custom CSS": "CSS Tùy chỉnh", + "Default (oobabooga)": "Mặc định (oobabooga)", + "Mancer Model": "Mô hình Mancer", + "API Type": "Loại API", + "Aphrodite API key": "Khóa API Aphrodite", + "Relax message trim in Groups": "Thư giãn việc cắt tỉa tin nhắn trong Nhóm", + "Characters Hotswap": "Thay đổi nhanh Nhân vật", + "Request token probabilities": "Yêu cầu xác suất token", + "Movable UI Panels": "Bảng Giao diện người dùng Có thể di chuyển", + "Reset Panels": "Đặt lại Bảng", + "UI Colors": "Màu sắc Giao diện người dùng", + "Main Text": "Văn bản chính", + "Italics Text": "Văn bản nghiêng", + "Quote Text": "Văn bản Trích dẫn", + "Shadow Color": "Màu bóng", + "FastUI BG": "Nền FastUI", + "Blur Tint": "Màu nhuộm mờ", + "Font Scale": "Tỷ lệ Font", + "Blur Strength": "Sức mạnh mờ", + "Text Shadow Width": "Độ rộng bóng văn bản", + "UI Theme Preset": "Cài đặt trước Chủ đề Giao diện người dùng", + "Power User Options": "Tùy chọn Người dùng Nâng cao", + "Swipes": "Vuốt", + "Miscellaneous": "Đa dạng", + "Theme Toggles": "Chuyển đổi Chủ đề", + "Background Sound Only": "Chỉ Âm thanh Nền", + "Auto-load Last Chat": "Tự động tải Đoạn trò chuyện Cuối cùng", + "Auto-save Message Edits": "Tự động lưu Sửa Tin nhắn", + "Auto-fix Markdown": "Tự động sửa Markdown", + "Allow : in bot messages": "Cho phép : trong các Tin nhắn Bot", + "Auto-scroll Chat": "Tự động cuộn Trò chuyện", + "Render Formulas": "Hiển thị Công thức", + "Send on Enter": "Gửi khi nhấn Enter", + "Always disabled": "Luôn bị vô hiệu hóa", + "Automatic (desktop)": "Tự động (máy tính để bàn)", + "Always enabled": "Luôn được kích hoạt", + "Debug Menu": "Menu Debug", + "Restore User Input": "Khôi phục Đầu vào Người dùng", + "Character Handling": "Xử lý Nhân vật", + "Example Messages Behavior": "Hành vi Tin nhắn Mẫu", + "Gradual push-out": "Đẩy ra dần", + "Chat/Message Handling": "Xử lý Trò chuyện/Tin nhắn", + "Always include examples": "Luôn bao gồm các ví dụ", + "Never include examples": "Không bao giờ bao gồm các ví dụ", + "Forbid External Media": "Cấm Phương tiện Ngoại tuyến", + "System Backgrounds": "Nền Hệ thống", + "Name": "Tên", + "Your Avatar": "Hình đại diện của bạn", + "Extensions API:": "API mở rộng:", + "SillyTavern-extras": "SillyTavern-extras", + "Auto-connect": "Tự động kết nối", + "Active extensions": "Các tiện ích mở rộng hoạt động", + "Extension settings": "Cài đặt tiện ích mở rộng", + "Description": "Mô tả", + "First message": "Tin nhắn đầu tiên", + "Group Controls": "Điều khiển Nhóm", + "Group reply strategy": "Chiến lược phản hồi nhóm", + "Natural order": "Thứ tự tự nhiên", + "List order": "Thứ tự danh sách", + "Allow self responses": "Cho phép phản hồi tự", + "Auto Mode": "Chế độ Tự động", + "Add Members": "Thêm thành viên", + "Current Members": "Thành viên hiện tại", + "text": "văn bản", + "Delete": "Xóa", + "Cancel": "Hủy bỏ", + "Advanced Defininitions": "Các Định nghĩa Nâng cao", + "Personality summary": "Tóm tắt Tính cách", + "A brief description of the personality": "Mô tả ngắn gọn về tính cách", + "Scenario": "Tình huống", + "Circumstances and context of the dialogue": "Tình hình và bối cảnh của cuộc đối thoại", + "Talkativeness": "Tính chuyện", + "How often the chracter speaks in": "Tần suất nhân vật nói trong", + "group chats!": "các cuộc trò chuyện nhóm!", + "Shy": "Rụt rè", + "Normal": "Bình thường", + "Chatty": "Nói nhiều", + "Examples of dialogue": "Ví dụ về đối thoại", + "Forms a personality more clearly": "Tạo ra một tính cách rõ ràng hơn", + "Save": "Lưu", + "World Info Editor": "Trình soạn thảo Thông tin Thế giới", + "New summary": "Tóm tắt mới", + "Export": "Xuất", + "Delete World": "Xóa Thế giới", + "Chat History": "Lịch sử Trò chuyện", + "Group Chat Scenario Override": "Ghi đè Tình huống Trò chuyện Nhóm", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Tất cả các thành viên nhóm sẽ sử dụng văn bản tình huống sau thay vì cái được chỉ định trong thẻ nhân vật của họ.", + "Keywords": "Từ khóa", + "Separate with commas": "Phân cách bằng dấu phẩy", + "Secondary Required Keywords": "Từ khóa Phụ cần thiết", + "Content": "Nội dung", + "What this keyword should mean to the AI": "Điều này từ khóa nên có ý nghĩa gì đối với Trí tuệ Nhân tạo", + "Memo/Note": "Ghi chú", + "Not sent to AI": "Không gửi cho Trí tuệ Nhân tạo", + "Constant": "Hằng số", + "Selective": "Lựa chọn", + "Before Char": "Trước Nhân vật", + "After Char": "Sau Nhân vật", + "Insertion Order": "Thứ tự chèn", + "Tokens:": "Token:", + "Disable": "Vô hiệu hóa", + "${characterName}": "${TênNhânVật}", + "CHAR": "NHÂN VẬT", + "is typing": "đang nhập...", + "Back to parent chat": "Quay lại trò chuyện cha", + "Save bookmark": "Lưu dấu trang", + "Convert to group": "Chuyển đổi thành nhóm", + "Start new chat": "Bắt đầu trò chuyện mới", + "View past chats": "Xem các cuộc trò chuyện trước", + "Delete messages": "Xóa tin nhắn", + "Impersonate": "Mô phỏng", + "Regenerate": "Tạo lại", + "PNG": "PNG", + "JSON": "JSON", + "presets": "cài đặt trước", + "Message Sound": "Âm thanh Tin nhắn", + "Author's Note": "Ghi chú của tác giả", + "Send Jailbreak": "Gửi Jailbreak", + "Replace empty message": "Thay thế tin nhắn trống", + "Send this text instead of nothing when the text box is empty.": "Gửi văn bản này thay vì không có gì khi ô văn bản trống.", + "NSFW avoidance prompt": "Tránh các chỉ thị NSFW (nội dung không thích hợp)", + "Prompt that is used when the NSFW toggle is off": "Lời nhắc được sử dụng khi chuyển đổi NSFW tắt", + "Advanced prompt bits": "Các phần nhắc nâng cao", + "World Info format": "Định dạng Thông tin Thế giới", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Bọc các mục thông tin Thế giới được kích hoạt trước khi chèn vào lời nhắc. Sử dụng {0} để đánh dấu nơi nội dung được chèn.", + "Unrestricted maximum value for the context slider": "Giá trị tối đa không giới hạn cho thanh trượt ngữ cảnh", + "Chat Completion Source": "Nguồn Hoàn thành Trò chuyện", + "Avoid sending sensitive information to the Horde.": "Tránh gửi thông tin nhạy cảm cho Horde.", + "Review the Privacy statement": "Xem lại Tuyên bố Quyền riêng tư", + "Learn how to contribute your idel GPU cycles to the Horde": "Tìm hiểu cách đóng góp chu kỳ GPU rảnh của bạn cho Horde", + "Trusted workers only": "Chỉ các nhân viên được tin cậy", + "For privacy reasons, your API key will be hidden after you reload the page.": "Vì lý do bảo mật, khóa API của bạn sẽ bị ẩn sau khi bạn tải lại trang.", + "-- Horde models not loaded --": "-- Các mô hình Horde không được tải --", + "Example: http://127.0.0.1:5000/api ": "Ví dụ: http://127.0.0.1:5000/api", + "No connection...": "Không có kết nối...", + "Get your NovelAI API Key": "Nhận khóa API NovelAI của bạn", + "KoboldAI Horde": "Bầy KoboldAI", + "Text Gen WebUI (ooba)": "Giao diện người dùng Tạo văn bản (ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Hoàn thành Trò chuyện (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "Khóa API OpenAI", + "Trim spaces": "Cắt khoảng trắng", + "Trim Incomplete Sentences": "Cắt các câu không hoàn chỉnh", + "Include Newline": "Bao gồm dòng mới", + "Non-markdown strings": "Chuỗi không Markdown", + "Replace Macro in Sequences": "Thay thế Macro trong chuỗi", + "Presets": "Cài đặt trước", + "Separator": "Dấu phân cách", + "Start Reply With": "Bắt đầu Phản hồi Bằng", + "Show reply prefix in chat": "Hiển thị tiền tố phản hồi trong chat", + "Worlds/Lorebooks": "Thế giới", + "Active World(s)": "Thế giới Hoạt động", + "Activation Settings": "Cài đặt Kích hoạt", + "Character Lore Insertion Strategy": "Chiến lược chèn sử liệu nhân vật", + "Sorted Evenly": "Sắp xếp đều", + "Active World(s) for all chats": "Thế giới Hoạt động cho tất cả các cuộc trò chuyện", + "-- World Info not found --": "-- Không tìm thấy Thông tin Thế giới --", + "--- Pick to Edit ---": "--- Chọn để Chỉnh sửa ---", + "or": "hoặc", + "New": "Mới", + "Priority": "Ưu tiên", + "Custom": "Tùy chỉnh", + "Title A-Z": "Tiêu đề A-Z", + "Title Z-A": "Tiêu đề Z-A", + "Tokens ↗": "Token ↗", + "Tokens ↘": "Token ↘", + "Depth ↗": "Độ sâu ↗", + "Depth ↘": "Độ sâu ↘", + "Order ↗": "Thứ tự ↗", + "Order ↘": "Thứ tự ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "Kích hoạt% ↗", + "Trigger% ↘": "Kích hoạt% ↘", + "Order:": "Thứ tự:", + "Depth:": "Độ sâu:", + "Character Lore First": "Sử liệu nhân vật đầu tiên", + "Global Lore First": "Sử liệu toàn cầu đầu tiên", + "Recursive Scan": "Quét đệ quy", + "Case Sensitive": "Phân biệt chữ hoa chữ thường", + "Match whole words": "Khớp toàn bộ từ", + "Alert On Overflow": "Cảnh báo khi tràn", + "World/Lore Editor": "Trình soạn thảo Thế giới/Sử liệu", + "--- None ---": "--- Không ---", + "Use Probability": "Sử dụng Xác suất", + "Exclude from recursion": "Loại trừ khỏi đệ quy", + "Entry Title/Memo": "Tiêu đề Đăng nhập/Ghi chú", + "Position:": "Vị trí:", + "T_Position": "↑Char: Trước định nghĩa nhân vật\n↓Char: Sau định nghĩa nhân vật\n↑AN: Trước Ghi chú tác giả\n↓AN: Sau Ghi chú tác giả\n@D: Ở độ sâu", + "Before Char Defs": "Trước định nghĩa nhân vật", + "After Char Defs": "Sau định nghĩa nhân vật", + "Before AN": "Trước AN", + "After AN": "Sau AN", + "at Depth": "@Độ sâu", + "Order": "Thứ tự:", + "Probability:": "Xác suất:", + "Update a theme file": "Cập nhật một tập tin chủ đề", + "Save as a new theme": "Lưu dưới dạng chủ đề mới", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Số lượng tối thiểu từ trong danh sách đen phát hiện để kích hoạt chức năng tự động vuốt", + "Delete Entry": "Xóa Đăng nhập", + "User Message Blur Tint": "Màu sắc làm mờ Tin nhắn của Người dùng", + "AI Message Blur Tint": "Màu sắc làm mờ Tin nhắn của Trí tuệ Nhân tạo", + "Chat Backgrounds": "Hình nền Chat", + "Chat Background": "Hình nền Chat", + "UI Background": "Hình nền UI", + "Mad Lab Mode": "Chế độ Phòng thí nghiệm điên", + "Show Message Token Count": "Hiển thị Số lượng Token trong Tin nhắn", + "Compact Input Area (Mobile)": "Khu vực Nhập Dữ liệu Gọn nhẹ (Di động)", + "Zen Sliders": "Thanh trượt Zen", + "UI Border": "Viền UI", + "Chat Style:": "Kiểu Chat:", + "Chat Width (PC)": "Độ rộng Chat (PC)", + "Chat Timestamps": "Dấu thời gian Chat", + "Tags as Folders": "Tags như Thư mục", + "Chat Truncation": "Cắt Chat", + "(0 = unlimited)": "(0 = không giới hạn)", + "Streaming FPS": "FPS Phát trực tiếp", + "Gestures": "Cử chỉ", + "Message IDs": "ID Tin nhắn", + "Prefer Character Card Prompt": "Ưu tiên Gợi ý từ Thẻ Nhân vật", + "Prefer Character Card Jailbreak": "Ưu tiên Phá vỡ Hỏa", + "Press Send to continue": "Nhấn Gửi để tiếp tục", + "Quick 'Continue' button": "Nút 'Tiếp tục' nhanh", + "Log prompts to console": "Ghi nhận các lời nhắc vào bảng điều khiển", + "Never resize avatars": "Không bao giờ thay đổi kích thước hình đại diện", + "Show avatar filenames": "Hiển thị tên tệp hình đại diện", + "Import Card Tags": "Nhập Tags Thẻ", + "Confirm message deletion": "Xác nhận xóa tin nhắn", + "Spoiler Free Mode": "Chế độ Không bị lộ", + "Auto-swipe": "Tự động vuốt", + "Minimum generated message length": "Độ dài tối thiểu của tin nhắn được tạo", + "Blacklisted words": "Từ trong danh sách đen", + "Blacklisted word count to swipe": "Số từ trong danh sách đen để vuốt", + "Reload Chat": "Tải lại Chat", + "Search Settings": "Cài đặt Tìm kiếm", + "Disabled": "Vô hiệu", + "Automatic (PC)": "Tự động (PC)", + "Enabled": "Đã bật", + "Simple": "Đơn giản", + "Advanced": "Nâng cao", + "Disables animations and transitions": "Tắt các hiệu ứng và chuyển động", + "removes blur from window backgrounds": "Loại bỏ mờ từ hình nền cửa sổ", + "Remove text shadow effect": "Loại bỏ hiệu ứng bóng đèn văn bản", + "Reduce chat height, and put a static sprite behind the chat window": "Giảm chiều cao của cuộc trò chuyện và đặt một sprite tĩnh phía sau cửa sổ trò chuyện", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Luôn hiển thị danh sách đầy đủ các mục ngữ cảnh Hành động Tin nhắn cho các tin nhắn trò chuyện, thay vì ẩn chúng sau '...'", + "Alternative UI for numeric sampling parameters with fewer steps": "Giao diện người dùng thay thế cho các tham số mẫu số học với ít bước hơn", + "Entirely unrestrict all numeric sampling parameters": "Hoàn toàn không hạn chế tất cả các tham số mẫu số học", + "Time the AI's message generation, and show the duration in the chat log": "Đo thời gian tạo ra tin nhắn của trí tuệ nhân tạo và hiển thị thời lượng trong nhật ký trò chuyện", + "Show a timestamp for each message in the chat log": "Hiển thị dấu thời gian cho mỗi tin nhắn trong nhật ký trò chuyện", + "Show an icon for the API that generated the message": "Hiển thị biểu tượng cho API đã tạo ra tin nhắn", + "Show sequential message numbers in the chat log": "Hiển thị số tin nhắn tuần tự trong nhật ký trò chuyện", + "Show the number of tokens in each message in the chat log": "Hiển thị số lượng token trong mỗi tin nhắn trong nhật ký trò chuyện", + "Single-row message input area. Mobile only, no effect on PC": "Khu vực nhập tin nhắn một hàng. Chỉ dành cho điện thoại di động, không ảnh hưởng đến PC", + "In the Character Management panel, show quick selection buttons for favorited characters": "Trong bảng Quản lý Nhân vật, hiển thị các nút lựa chọn nhanh cho các nhân vật được yêu thích", + "Show tagged character folders in the character list": "Hiển thị các thư mục nhân vật được gắn thẻ trong danh sách nhân vật", + "Play a sound when a message generation finishes": "Phát ra âm thanh khi quá trình tạo tin nhắn kết thúc", + "Only play a sound when ST's browser tab is unfocused": "Chỉ phát âm thanh khi tab trình duyệt của ST không được tập trung", + "Reduce the formatting requirements on API URLs": "Giảm yêu cầu định dạng trên URL của API", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Hỏi để nhập Thông tin Thế giới/Sách lịch sử cho mỗi nhân vật mới có sẵn sách lịch sử nhúng. Nếu không được kiểm tra, thay vào đó sẽ hiển thị một tin nhắn tóm tắt", + "Restore unsaved user input on page refresh": "Khôi phục đầu vào của người dùng chưa được lưu khi làm mới trang", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Cho phép di chuyển lại một số phần tử giao diện người dùng bằng cách kéo chúng. Chỉ dành cho PC, không ảnh hưởng đến điện thoại di động", + "MovingUI preset. Predefined/saved draggable positions": "Cài đặt trước MovingUI. Vị trí có thể kéo trước/saved", + "Save movingUI changes to a new file": "Lưu các thay đổi của movingUI vào một tập tin mới", + "Apply a custom CSS style to all of the ST GUI": "Áp dụng một kiểu CSS tùy chỉnh cho tất cả GUI của ST", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Sử dụng kết hợp mờ, và tìm kiếm nhân vật trong danh sách bằng tất cả các trường dữ liệu, không chỉ bằng một phần của tên", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Nếu được kiểm tra và thẻ nhân vật chứa một lệnh ghi đè (Lệnh hệ thống), hãy sử dụng thay vào đó", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Nếu được kiểm tra và thẻ nhân vật chứa một lệnh phá vỡ giam giữ (Hướng dẫn Lịch sử Bài viết), hãy sử dụng thay vào đó", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Tránh cắt và thay đổi kích thước hình ảnh nhân vật được nhập khẩu. Khi tắt, cắt/thay đổi kích thước thành 400x600", + "Show actual file names on the disk, in the characters list display only": "Hiển thị tên tệp thực tế trên đĩa, chỉ trong danh sách nhân vật", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Nhắc nhập các thẻ thẻ nhúng trên thẻ nhân vật nhập khẩu. Nếu không, các thẻ nhúng sẽ bị bỏ qua", + "Hide character definitions from the editor panel behind a spoiler button": "Ẩn định nghĩa nhân vật từ bảng chỉnh sửa sau một nút spoil", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Hiển thị một nút trong khu vực nhập để yêu cầu trí tuệ nhân tạo tiếp tục (mở rộng) tin nhắn cuối cùng của nó", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Hiển thị nút mũi tên trên tin nhắn cuối cùng trong trò chuyện để tạo ra các phản hồi trí tuệ nhân tạo thay thế. Cả PC và điện thoại di động", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Cho phép sử dụng cử chỉ vuốt trên tin nhắn cuối cùng trong trò chuyện để kích hoạt việc tạo ra vuốt. Chỉ dành cho di động, không ảnh hưởng đến PC", + "Save edits to messages without confirmation as you type": "Lưu các chỉnh sửa vào các tin nhắn mà không cần xác nhận khi bạn gõ", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Kết xuất ký hiệu phương trình LaTeX và AsciiMath trong tin nhắn trò chuyện. Được cung cấp bởi KaTeX", + "Disalow embedded media from other domains in chat messages": "Không cho phép nhúng phương tiện từ các miền khác trong tin nhắn trò chuyện", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Bỏ qua mã hóa và ký tự trong văn bản tin nhắn, cho phép một tập con của đánh dấu HTML cũng như Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Cho phép các tin nhắn của trí tuệ nhân tạo trong các nhóm chứa các dòng được nói bởi các thành viên khác trong nhóm", + "Requests logprobs from the API for the Token Probabilities feature": "Yêu cầu logprobs từ API cho tính năng Xác suất Token", + "Automatically reject and re-generate AI message based on configurable criteria": "Tự động từ chối và tạo lại tin nhắn của trí tuệ nhân tạo dựa trên các tiêu chí có thể cấu hình", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Bật chức năng tự động vuốt. Các cài đặt trong phần này chỉ có tác dụng khi tự động vuốt được bật", + "If the generated message is shorter than this, trigger an auto-swipe": "Nếu tin nhắn được tạo ra ngắn hơn điều này, kích hoạt tự động vuốt", + "Reload and redraw the currently open chat": "Tải lại và vẽ lại cuộc trò chuyện đang mở hiện tại", + "Auto-Expand Message Actions": "Tự động mở rộng Hành động Tin nhắn", + "Not Connected": "Không kết nối", + "Persona Management": "Quản lý Nhân cách", + "Persona Description": "Mô tả Nhân cách", + "Your Persona": "Nhân cách của bạn", + "Show notifications on switching personas": "Hiển thị thông báo khi chuyển đổi nhân cách", + "Blank": "Trống", + "In Story String / Chat Completion: Before Character Card": "Trong Chuỗi Truyện / Hoàn thành Trò chuyện: Trước Thẻ Nhân vật", + "In Story String / Chat Completion: After Character Card": "Trong Chuỗi Truyện / Hoàn thành Trò chuyện: Sau Thẻ Nhân vật", + "In Story String / Prompt Manager": "Trong Chuỗi Truyện / Quản lý Lời nhắc", + "Top of Author's Note": "Trên Ghi chú của Tác giả", + "Bottom of Author's Note": "Dưới Ghi chú của Tác giả", + "How do I use this?": "Tôi sử dụng cái này như thế nào?", + "More...": "Thêm...", + "Link to World Info": "Liên kết đến Thông tin Thế giới", + "Import Card Lore": "Nhập lời nhắc Thẻ", + "Scenario Override": "Ghi đè Kịch bản", + "Rename": "Đổi tên", + "Character Description": "Mô tả Nhân vật", + "Creator's Notes": "Ghi chú của Người tạo", + "A-Z": "A-Z", + "Z-A": "Z-A", + "Newest": "Mới nhất", + "Oldest": "Cũ nhất", + "Favorites": "Yêu thích", + "Recent": "Gần đây", + "Most chats": "Nhiều cuộc trò chuyện nhất", + "Least chats": "Ít cuộc trò chuyện nhất", + "Back": "Trở lại", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Ghi đè Lời nhắc (Cho OpenAI/Claude/Scale APIs, Cửa sổ/OpenRouter, và Chế độ Hướng dẫn)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Chèn {{original}} vào bất kỳ hộp nào để bao gồm lời nhắc mặc định tương ứng từ cài đặt hệ thống.", + "Main Prompt": "Lời nhắc Chính", + "Jailbreak": "Phá vỡ giam giữ", + "Creator's Metadata (Not sent with the AI prompt)": "Dữ liệu siêu dữ liệu của Người tạo (Không được gửi kèm với lời nhắc AI)", + "Everything here is optional": "Tất cả mọi thứ ở đây đều là tùy chọn", + "Created by": "Được tạo bởi", + "Character Version": "Phiên bản Nhân vật", + "Tags to Embed": "Tags để nhúng", + "How often the character speaks in group chats!": "Nhân vật nói chuyện trong các cuộc trò chuyện nhóm như thế nào!", + "Important to set the character's writing style.": "Quan trọng để thiết lập phong cách viết của nhân vật.", + "ATTENTION!": "CHÚ Ý!", + "Samplers Order": "Thứ tự Bộ lấy mẫu", + "Samplers will be applied in a top-down order. Use with caution.": "Các bộ lấy mẫu sẽ được áp dụng theo thứ tự từ trên xuống. Sử dụng cẩn thận.", + "Repetition Penalty": "Phạt lặp lại", + "Rep. Pen. Range.": "Phạm vi Phạt lặp lại.", + "Rep. Pen. Freq.": "Tần suất Phạt lặp lại.", + "Rep. Pen. Presence": "Sự hiện diện Phạt lặp lại", + "Enter it in the box below:": "Nhập nó vào ô bên dưới:", + "separate with commas w/o space between": "phân tách bằng dấu phẩy không có khoảng trắng giữa", + "Document": "Tài liệu", + "Suggest replies": "Đề xuất phản hồi", + "Show suggested replies. Not all bots support this.": "Hiển thị các phản hồi được đề xuất. Không phải tất cả các bot đều hỗ trợ điều này.", + "Use 'Unlocked Context' to enable chunked generation.": "Sử dụng 'Ngữ cảnh Đã mở' để kích hoạt việc tạo thành phần.", + "It extends the context window in exchange for reply generation speed.": "Nó mở rộng cửa sổ ngữ cảnh để tăng tốc độ tạo ra câu trả lời.", + "Continue": "Tiếp tục", + "CFG Scale": "Tỷ lệ CFG", + "Editing:": "Đang chỉnh sửa:", + "AI reply prefix": "Tiền tố trả lời AI", + "Custom Stopping Strings": "Chuỗi dừng tùy chỉnh", + "JSON serialized array of strings": "Mảng chuỗi được tuần tự hóa JSON", + "words you dont want generated separated by comma ','": "các từ bạn không muốn được tạo ra được phân tách bằng dấu phẩy ','", + "Extensions URL": "URL Mở rộng", + "API Key": "Khóa API", + "Enter your name": "Nhập tên của bạn", + "Name this character": "Đặt tên cho nhân vật này", + "Search / Create Tags": "Tìm kiếm / Tạo Tags", + "Describe your character's physical and mental traits here.": "Mô tả các đặc điểm về thể chất và tinh thần của nhân vật ở đây.", + "This will be the first message from the character that starts every chat.": "Điều này sẽ là tin nhắn đầu tiên từ nhân vật mà bắt đầu mỗi cuộc trò chuyện.", + "Chat Name (Optional)": "Tên Trò chuyện (Tùy chọn)", + "Filter...": "Bộ lọc...", + "Search...": "Tìm kiếm...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Bất kỳ nội dung nào ở đây sẽ thay thế Lời nhắc Chính mặc định được sử dụng cho nhân vật này. (v2 spec: hệ thống_lời_nhắc)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Bất kỳ nội dung nào ở đây sẽ thay thế Lời nhắc Phá vỡ giam giữ mặc định được sử dụng cho nhân vật này. (v2 spec: hệ thống_lời_nhắc_sau_lịch_sử)", + "(Botmaker's name / Contact Info)": "(Tên của Người tạo Bot / Thông tin Liên hệ)", + "(If you want to track character versions)": "(Nếu bạn muốn theo dõi phiên bản của nhân vật)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Mô tả bot, cung cấp mẹo sử dụng hoặc liệt kê các mô hình trò chuyện mà nó đã được thử nghiệm. Điều này sẽ được hiển thị trong danh sách nhân vật.)", + "(Write a comma-separated list of tags)": "(Viết một danh sách các tags được phân tách bằng dấu phẩy)", + "(A brief description of the personality)": "(Một mô tả ngắn gọn về tính cách)", + "(Circumstances and context of the interaction)": "(Hoàn cảnh và ngữ cảnh của sự tương tác)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Các ví dụ về đoạn hội thoại trò chuyện. Bắt đầu mỗi ví dụ với START trên một dòng mới.)", + "Injection text (supports parameters)": "Văn bản tiêm (hỗ trợ tham số)", + "Injection depth": "Độ sâu tiêm", + "Type here...": "Nhập vào đây...", + "Comma separated (required)": "Phân tách bằng dấu phẩy (bắt buộc)", + "Comma separated (ignored if empty)": "Phân tách bằng dấu phẩy (bị bỏ qua nếu trống)", + "What this keyword should mean to the AI, sent verbatim": "Nghĩa của từ khóa này đối với AI, gửi một cách nguyên văn", + "Filter to Character(s)": "Lọc đến Nhân vật", + "Character Exclusion": "Loại trừ Nhân vật", + "Inclusion Group": "Nhóm Bao gồm", + "Only one entry with the same label will be activated": "Chỉ một mục có cùng nhãn sẽ được kích hoạt", + "-- Characters not found --": "-- Không tìm thấy Nhân vật --", + "Not sent to the AI": "Không gửi đến AI", + "(This will be the first message from the character that starts every chat)": "(Điều này sẽ là tin nhắn đầu tiên từ nhân vật mà bắt đầu mỗi cuộc trò chuyện)", + "Not connected to API!": "Không kết nối với API!", + "AI Response Configuration": "Cấu hình Phản hồi của AI", + "AI Configuration panel will stay open": "Bảng cấu hình AI sẽ được mở", + "Update current preset": "Cập nhật thiết lập hiện tại", + "Create new preset": "Tạo thiết lập mới", + "Import preset": "Nhập thiết lập", + "Export preset": "Xuất thiết lập", + "Delete the preset": "Xóa thiết lập", + "Auto-select this preset for Instruct Mode": "Tự động chọn thiết lập này cho Chế độ Hướng dẫn", + "Auto-select this preset on API connection": "Tự động chọn thiết lập này khi kết nối API", + "NSFW block goes first in the resulting prompt": "Khối NSFW được đặt đầu tiên trong lời nhắc kết quả", + "Enables OpenAI completion streaming": "Bật phát trực tiếp hoàn thành OpenAI", + "Wrap user messages in quotes before sending": "Bao gói tin nhắn của người dùng trong dấu ngoặc trước khi gửi", + "Restore default prompt": "Khôi phục lời nhắc mặc định", + "New preset": "Thiết lập mới", + "Delete preset": "Xóa thiết lập", + "Restore default jailbreak": "Khôi phục phá vỡ giam giữ mặc định", + "Restore default reply": "Khôi phục phản hồi mặc định", + "Restore defaul note": "Khôi phục ghi chú mặc định", + "API Connections": "Kết nối API", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Có thể giúp đỡ với các phản hồi không tốt bằng cách xếp hàng chỉ các nhân viên được phê duyệt. Có thể làm chậm lại thời gian phản hồi.", + "Clear your API key": "Xóa khóa API của bạn", + "Refresh models": "Làm mới các mô hình", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Nhận mã thông báo API OpenRouter của bạn bằng cách sử dụng luồng OAuth. Bạn sẽ được chuyển hướng đến openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Xác minh kết nối API của bạn bằng cách gửi một tin nhắn kiểm tra ngắn. Hãy nhớ rằng bạn sẽ được ghi nhận về điều đó!", + "Create New": "Tạo mới", + "Edit": "Chỉnh sửa", + "Locked = World Editor will stay open": "Được khóa = Trình chỉnh sửa Thế giới sẽ được mở", + "Entries can activate other entries by mentioning their keywords": "Các mục có thể kích hoạt các mục khác bằng cách đề cập đến từ khóa của họ", + "Lookup for the entry keys in the context will respect the case": "Tìm kiếm các khóa mục trong ngữ cảnh sẽ tôn trọng trường hợp", + "If the entry key consists of only one word, it would not be matched as part of other words": "Nếu khóa mục bao gồm chỉ một từ, nó sẽ không được kết hợp như một phần của các từ khác", + "Open all Entries": "Mở tất cả các Mục", + "Close all Entries": "Đóng tất cả các Mục", + "Create": "Tạo", + "Import World Info": "Nhập Thông tin Thế giới", + "Export World Info": "Xuất Thông tin Thế giới", + "Delete World Info": "Xóa Thông tin Thế giới", + "Duplicate World Info": "Nhân đôi Thông tin Thế giới", + "Rename World Info": "Đổi tên Thông tin Thế giới", + "Refresh": "Làm mới", + "Primary Keywords": "Từ khóa chính", + "Logic": "Logic", + "AND ANY": "VÀ BẤT KỲ", + "AND ALL": "VÀ TẤT CẢ", + "NOT ALL": "KHÔNG TẤT CẢ", + "NOT ANY": "KHÔNG BẤT KỲ", + "Optional Filter": "Bộ lọc Tùy chọn", + "New Entry": "Mục mới", + "Fill empty Memo/Titles with Keywords": "Điền vào Memo/Tiêu đề trống với từ khóa", + "Save changes to a new theme file": "Lưu các thay đổi vào một tệp chủ đề mới", + "removes blur and uses alternative background color for divs": "loại bỏ đục và sử dụng màu nền thay thế cho các div", + "AI Response Formatting": "Định dạng Phản hồi của AI", + "Change Background Image": "Thay đổi Hình nền", + "Extensions": "Tiện ích", + "Click to set a new User Name": "Nhấp để đặt một tên Người dùng mới", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Nhấp để khóa nhân cách được chọn của bạn vào cuộc trò chuyện hiện tại. Nhấp một lần nữa để loại bỏ khóa.", + "Click to set user name for all messages": "Nhấp để đặt tên người dùng cho tất cả các tin nhắn", + "Create a dummy persona": "Tạo một nhân cách giả mạo", + "Character Management": "Quản lý Nhân vật", + "Locked = Character Management panel will stay open": "Được khóa = Bảng Quản lý Nhân vật sẽ được mở", + "Select/Create Characters": "Chọn/Tạo Nhân vật", + "Token counts may be inaccurate and provided just for reference.": "Số lượng mã thông báo có thể không chính xác và chỉ được cung cấp để tham khảo.", + "Click to select a new avatar for this character": "Nhấp để chọn một hình đại diện mới cho nhân vật này", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Ví dụ: [{{user}} là một cô gái mèo Rumani 28 tuổi.]", + "Toggle grid view": "Chuyển đổi chế độ xem lưới", + "Add to Favorites": "Thêm vào Mục ưa thích", + "Advanced Definition": "Định nghĩa Nâng cao", + "Character Lore": "Lịch sử Nhân vật", + "Export and Download": "Xuất và Tải xuống", + "Duplicate Character": "Nhân bản Nhân vật", + "Create Character": "Tạo Nhân vật", + "Delete Character": "Xóa Nhân vật", + "View all tags": "Xem tất cả các tag", + "Click to set additional greeting messages": "Nhấp để đặt thêm tin nhắn chào mừng", + "Show / Hide Description and First Message": "Hiện / Ẩn Mô tả và Tin nhắn Đầu tiên", + "Click to select a new avatar for this group": "Nhấp để chọn một hình đại diện mới cho nhóm này", + "Set a group chat scenario": "Đặt một kịch bản trò chuyện nhóm", + "Restore collage avatar": "Khôi phục hình đại diện hợp thành", + "Create New Character": "Tạo Nhân vật Mới", + "Import Character from File": "Nhập Nhân vật từ Tệp", + "Import content from external URL": "Nhập nội dung từ URL bên ngoài", + "Create New Chat Group": "Tạo Nhóm Trò chuyện Mới", + "Characters sorting order": "Thứ tự sắp xếp Nhân vật", + "Add chat injection": "Thêm tiêm chất vào cuộc trò chuyện", + "Remove injection": "Xóa tiêm chất", + "Remove": "Xóa", + "Select a World Info file for": "Chọn một tệp Thông tin Thế giới cho", + "Primary Lorebook": "Sách Truyền thuyết Chính", + "A selected World Info will be bound to this character as its own Lorebook.": "Một Thông tin Thế giới được chọn sẽ được gắn với nhân vật này như một cuốn sách Truyền thuyết riêng của nó.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Khi tạo phản hồi của AI, nó sẽ được kết hợp với các mục từ một bộ chọn Thông tin Thế giới toàn cầu.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Việc xuất khẩu một nhân vật cũng sẽ xuất khẩu tệp Sách Truyền thuyết được chọn được nhúng trong dữ liệu JSON.", + "Additional Lorebooks": "Sách Truyền thuyết Bổ sung", + "Associate one or more auxillary Lorebooks with this character.": "Liên kết một hoặc nhiều Sách Truyền thuyết phụ trợ với nhân vật này.", + "NOTE: These choices are optional and won't be preserved on character export!": "LƯU Ý: Các lựa chọn này là tùy chọn và sẽ không được bảo tồn khi xuất khẩu nhân vật!", + "Rename chat file": "Đổi tên tệp trò chuyện", + "Export JSONL chat file": "Xuất tệp trò chuyện JSONL", + "Download chat as plain text document": "Tải xuống cuộc trò chuyện dưới dạng tài liệu văn bản đơn giản", + "Delete chat file": "Xóa tệp trò chuyện", + "Delete tag": "Xóa tag", + "Translate message": "Dịch tin nhắn", + "Generate Image": "Tạo Hình ảnh", + "Narrate": "Kể chuyện", + "Prompt": "Đề xuất", + "Create Bookmark": "Tạo Đánh dấu", + "Copy": "Sao chép", + "Open bookmark chat": "Mở trò chuyện đánh dấu", + "Confirm": "Xác nhận", + "Copy this message": "Sao chép tin nhắn này", + "Delete this message": "Xóa tin nhắn này", + "Move message up": "Di chuyển tin nhắn lên", + "Move message down": "Di chuyển tin nhắn xuống", + "Enlarge": "Phóng to", + "Temporarily disable automatic replies from this character": "Tạm thời vô hiệu hóa các phản hồi tự động từ nhân vật này", + "Enable automatic replies from this character": "Bật phản hồi tự động từ nhân vật này", + "Trigger a message from this character": "Kích hoạt một tin nhắn từ nhân vật này", + "Move up": "Di chuyển lên", + "Move down": "Di chuyển xuống", + "View character card": "Xem thẻ nhân vật", + "Remove from group": "Xóa khỏi nhóm", + "Add to group": "Thêm vào nhóm", + "Add": "Thêm", + "Abort request": "Hủy yêu cầu", + "Send a message": "Gửi một tin nhắn", + "Ask AI to write your message for you": "Yêu cầu AI viết tin nhắn của bạn cho bạn", + "Continue the last message": "Tiếp tục tin nhắn cuối cùng", + "Bind user name to that avatar": "Ràng buộc tên người dùng với hình đại diện đó", + "Select this as default persona for the new chats.": "Chọn đây làm nhân cách mặc định cho các cuộc trò chuyện mới.", + "Change persona image": "Thay đổi hình ảnh nhân cách", + "Delete persona": "Xóa nhân cách", + "Reduced Motion": "Giảm chuyển động", + "Auto-select": "Tự động chọn", + "Automatically select a background based on the chat context": "Tự động chọn một nền dựa trên ngữ cảnh trò chuyện", + "Filter": "Bộ lọc", + "Exclude message from prompts": "Loại trừ tin nhắn khỏi các lời nhắc", + "Include message in prompts": "Bao gồm tin nhắn trong các lời nhắc", + "Create checkpoint": "Tạo điểm kiểm tra", + "Create Branch": "Tạo Chi nhánh", + "Embed file or image": "Nhúng tệp hoặc hình ảnh", + "UI Theme": "Chủ đề Giao diện Người dùng", + "This message is invisible for the AI": "Tin nhắn này không thể nhìn thấy cho AI", + "Sampler Priority": "Ưu tiên Mẫu", + "Ooba only. Determines the order of samplers.": "Chỉ Ooba. Xác định thứ tự của các mẫu.", + "Load default order": "Tải thứ tự mặc định", + "Max Tokens Second": "Số lượng Mã thông báo Tối đa / Giây", + "CFG": "CFG", + "No items": "Không có mục nào", + "Extras API key (optional)": "Khóa API Phụ (tùy chọn)", + "Notify on extension updates": "Thông báo về các bản cập nhật của tiện ích mở rộng", + "Toggle character grid view": "Chuyển đổi chế độ xem lưới nhân vật", + "Bulk edit characters": "Chỉnh sửa nhân vật theo lô", + "Bulk delete characters": "Xóa nhân vật theo lô", + "Favorite characters to add them to HotSwaps": "Yêu thích các nhân vật để thêm chúng vào HotSwaps", + "Underlined Text": "Văn bản Gạch chân", + "Token Probabilities": "Xác suất Mã thông báo", + "Close chat": "Đóng trò chuyện", + "Manage chat files": "Quản lý tệp trò chuyện", + "Import Extension From Git Repo": "Nhập mở rộng từ Git Repo", + "Install extension": "Cài đặt tiện ích mở rộng", + "Manage extensions": "Quản lý tiện ích mở rộng", + "Tokens persona description": "Mô tả Nhân cách", + "Most tokens": "Nhiều nhất các mã thông báo", + "Least tokens": "Ít nhất các mã thông báo", + "Random": "Ngẫu nhiên", + "Skip Example Dialogues Formatting": "Bỏ qua Định dạng Đoạn hội thoại Mẫu", + "Import a theme file": "Nhập một tệp chủ đề", + "Export a theme file": "Xuất một tệp chủ đề" + + +} \ No newline at end of file diff --git a/public/locales/zh-cn.json b/public/locales/zh_CN.json similarity index 100% rename from public/locales/zh-cn.json rename to public/locales/zh_CN.json diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index 2db6c912d..077de3050 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -335,7 +335,9 @@ export async function favsToHotswap() { await Promise.allSettled(promises); //helpful instruction message if no characters are favorited - if (count === 0) { container.html(' Favorite characters to add them to HotSwaps'); } + if (count === 0) { + container.html(' Favorite characters to add them to HotSwaps'); + } //otherwise replace with fav'd characters if (count > 0) { container.replaceWith(newContainer); diff --git a/public/scripts/i18n.js b/public/scripts/i18n.js index 6157da04c..94bf85085 100644 --- a/public/scripts/i18n.js +++ b/public/scripts/i18n.js @@ -12,7 +12,9 @@ const localeData = await getLocaleData(localeFile); * @returns {Promise>} Locale data */ async function getLocaleData(language) { - if (!langs.includes(language)) { + let supportedLang = langs.find(x => x.lang === language); + + if (!supportedLang) { console.warn(`Unsupported language: ${language}`); return {}; } @@ -106,11 +108,12 @@ export function applyLocale(root = document) { } } + function addLanguagesToDropdown() { - for (const lang of langs) { + for (const langObj of langs) { // Set the value to the language code const option = document.createElement('option'); - option.value = lang; - option.innerText = lang; + option.value = langObj["lang"]; // Set the value to the language code + option.innerText = langObj["display"]; // Set the display text to the language name $('#ui_language_select').append(option); } From c27f8462fc5898d880822ed0c34c823df8d7395e Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:12:59 +0100 Subject: [PATCH 106/144] bring back dashes and lower case --- public/locales/{ar_SA.json => ar-sa.json} | 0 public/locales/{es_ES.json => es-es.json} | 0 public/locales/{it_IT.json => it-it.json} | 0 public/locales/{ja_JP.json => ja-jp.json} | 0 public/locales/{ko_KR.json => ko-kr.json} | 0 public/locales/lang.json | 18 +++++++++--------- public/locales/{nl_NL.json => nl-nl.json} | 0 public/locales/{pt_PT.json => pt-pt.json} | 0 public/locales/{ru_RU.json => ru-ru.json} | 0 public/locales/{vi_VN.json => vi-vn.json} | 0 public/locales/{zh_CN.json => zh-cn.json} | 0 11 files changed, 9 insertions(+), 9 deletions(-) rename public/locales/{ar_SA.json => ar-sa.json} (100%) rename public/locales/{es_ES.json => es-es.json} (100%) rename public/locales/{it_IT.json => it-it.json} (100%) rename public/locales/{ja_JP.json => ja-jp.json} (100%) rename public/locales/{ko_KR.json => ko-kr.json} (100%) rename public/locales/{nl_NL.json => nl-nl.json} (100%) rename public/locales/{pt_PT.json => pt-pt.json} (100%) rename public/locales/{ru_RU.json => ru-ru.json} (100%) rename public/locales/{vi_VN.json => vi-vn.json} (100%) rename public/locales/{zh_CN.json => zh-cn.json} (100%) diff --git a/public/locales/ar_SA.json b/public/locales/ar-sa.json similarity index 100% rename from public/locales/ar_SA.json rename to public/locales/ar-sa.json diff --git a/public/locales/es_ES.json b/public/locales/es-es.json similarity index 100% rename from public/locales/es_ES.json rename to public/locales/es-es.json diff --git a/public/locales/it_IT.json b/public/locales/it-it.json similarity index 100% rename from public/locales/it_IT.json rename to public/locales/it-it.json diff --git a/public/locales/ja_JP.json b/public/locales/ja-jp.json similarity index 100% rename from public/locales/ja_JP.json rename to public/locales/ja-jp.json diff --git a/public/locales/ko_KR.json b/public/locales/ko-kr.json similarity index 100% rename from public/locales/ko_KR.json rename to public/locales/ko-kr.json diff --git a/public/locales/lang.json b/public/locales/lang.json index 7b417fe06..6f8163e41 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -1,11 +1,11 @@ [ - { "lang": "zh_cn", "display": "Chinese (Simplified)" }, - { "lang": "ja_jp", "display": "Japanese" }, - { "lang": "ko_kr", "display": "Korean" }, - { "lang": "ru_ru", "display": "Russian" }, - { "lang": "it_it", "display": "Italian" }, - { "lang": "nl_nl", "display": "Dutch" }, - { "lang": "es_es", "display": "Spanish" }, - { "lang": "pt_pt", "display": "Portuguese (Portugal)" }, - { "lang": "ar_sa", "display": "Arabic" } + { "lang": "zh-cn", "display": "Chinese (Simplified)" }, + { "lang": "ja-jp", "display": "Japanese" }, + { "lang": "ko-kr", "display": "Korean" }, + { "lang": "ru-ru", "display": "Russian" }, + { "lang": "it-it", "display": "Italian" }, + { "lang": "nl-nl", "display": "Dutch" }, + { "lang": "es-es", "display": "Spanish" }, + { "lang": "pt-pt", "display": "Portuguese (Portugal)" }, + { "lang": "ar-sa", "display": "Arabic" } ] \ No newline at end of file diff --git a/public/locales/nl_NL.json b/public/locales/nl-nl.json similarity index 100% rename from public/locales/nl_NL.json rename to public/locales/nl-nl.json diff --git a/public/locales/pt_PT.json b/public/locales/pt-pt.json similarity index 100% rename from public/locales/pt_PT.json rename to public/locales/pt-pt.json diff --git a/public/locales/ru_RU.json b/public/locales/ru-ru.json similarity index 100% rename from public/locales/ru_RU.json rename to public/locales/ru-ru.json diff --git a/public/locales/vi_VN.json b/public/locales/vi-vn.json similarity index 100% rename from public/locales/vi_VN.json rename to public/locales/vi-vn.json diff --git a/public/locales/zh_CN.json b/public/locales/zh-cn.json similarity index 100% rename from public/locales/zh_CN.json rename to public/locales/zh-cn.json From 3912c67965f7a6d17c973508880d6f805aa072e4 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 20:24:45 +0200 Subject: [PATCH 107/144] Skip applying translations if no locale data is loaded --- public/scripts/i18n.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/public/scripts/i18n.js b/public/scripts/i18n.js index 94bf85085..cf5e0bd9a 100644 --- a/public/scripts/i18n.js +++ b/public/scripts/i18n.js @@ -81,6 +81,10 @@ async function getMissingTranslations() { } export function applyLocale(root = document) { + if (!localeData || Object.keys(localeData).length === 0) { + return root; + } + const $root = root instanceof Document ? $(root) : $(new DOMParser().parseFromString(root, 'text/html')); //find all the elements with `data-i18n` attribute @@ -112,8 +116,8 @@ export function applyLocale(root = document) { function addLanguagesToDropdown() { for (const langObj of langs) { // Set the value to the language code const option = document.createElement('option'); - option.value = langObj["lang"]; // Set the value to the language code - option.innerText = langObj["display"]; // Set the display text to the language name + option.value = langObj['lang']; // Set the value to the language code + option.innerText = langObj['display']; // Set the display text to the language name $('#ui_language_select').append(option); } From a9ec171c50565884b93c233cbd071db815ad4ca9 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 20:29:07 +0200 Subject: [PATCH 108/144] Cache parsed timestamps for quicker rendering --- public/scripts/utils.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/public/scripts/utils.js b/public/scripts/utils.js index 7e3301de9..796324feb 100644 --- a/public/scripts/utils.js +++ b/public/scripts/utils.js @@ -602,7 +602,24 @@ export function isOdd(number) { return number % 2 !== 0; } +const dateCache = new Map(); + +/** + * Cached version of moment() to avoid re-parsing the same date strings. + * @param {any} timestamp String or number representing a date. + * @returns {*} Moment object + */ export function timestampToMoment(timestamp) { + if (dateCache.has(timestamp)) { + return dateCache.get(timestamp); + } + + const moment = parseTimestamp(timestamp); + dateCache.set(timestamp, moment); + return moment; +} + +function parseTimestamp(timestamp) { if (!timestamp) { return moment.invalid(); } From 23eec8318a97a955a5f1593ce3b03ae96753726b Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:32:32 +0100 Subject: [PATCH 109/144] added Vietnamese entry +added Vietnamese to lang.json +organized the order --- public/locales/lang.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/public/locales/lang.json b/public/locales/lang.json index 6f8163e41..02852d0ad 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -1,11 +1,13 @@ [ - { "lang": "zh-cn", "display": "Chinese (Simplified)" }, + { "lang": "ar-sa", "display": "Arabic" }, + { "lang": "es-es", "display": "Spanish" }, + { "lang": "it-it", "display": "Italian" }, { "lang": "ja-jp", "display": "Japanese" }, { "lang": "ko-kr", "display": "Korean" }, - { "lang": "ru-ru", "display": "Russian" }, - { "lang": "it-it", "display": "Italian" }, { "lang": "nl-nl", "display": "Dutch" }, - { "lang": "es-es", "display": "Spanish" }, { "lang": "pt-pt", "display": "Portuguese (Portugal)" }, - { "lang": "ar-sa", "display": "Arabic" } + { "lang": "ru-ru", "display": "Russian" }, + { "lang": "vi-vn", "display": "Vietnamese" }, + { "lang": "zh-cn", "display": "Chinese (Simplified)" } + ] \ No newline at end of file From 458bd8747fc2d9404b35167fc95bad1e194a23ad Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:36:36 +0100 Subject: [PATCH 110/144] Update lang.json --- public/locales/lang.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/public/locales/lang.json b/public/locales/lang.json index 02852d0ad..c3a3a7eb3 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -1,13 +1,12 @@ [ { "lang": "ar-sa", "display": "Arabic" }, - { "lang": "es-es", "display": "Spanish" }, + { "lang": "zh-cn", "display": "Chinese (Simplified)" } + { "lang": "nl-nl", "display": "Dutch" }, { "lang": "it-it", "display": "Italian" }, + { "lang": "es-es", "display": "Spanish" }, { "lang": "ja-jp", "display": "Japanese" }, { "lang": "ko-kr", "display": "Korean" }, - { "lang": "nl-nl", "display": "Dutch" }, { "lang": "pt-pt", "display": "Portuguese (Portugal)" }, { "lang": "ru-ru", "display": "Russian" }, - { "lang": "vi-vn", "display": "Vietnamese" }, - { "lang": "zh-cn", "display": "Chinese (Simplified)" } - + { "lang": "vi-vn", "display": "Vietnamese" } ] \ No newline at end of file From 33ed1d4616c132953f09977fad561969ac81cbe1 Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 12 Mar 2024 19:40:01 +0100 Subject: [PATCH 111/144] Update lang.json --- public/locales/lang.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/lang.json b/public/locales/lang.json index c3a3a7eb3..1e17d000e 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -1,6 +1,6 @@ [ { "lang": "ar-sa", "display": "Arabic" }, - { "lang": "zh-cn", "display": "Chinese (Simplified)" } + { "lang": "zh-cn", "display": "Chinese (Simplified)" }, { "lang": "nl-nl", "display": "Dutch" }, { "lang": "it-it", "display": "Italian" }, { "lang": "es-es", "display": "Spanish" }, From 700c20d44115e5525ff4928491ad5cade7c3da77 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 12 Mar 2024 20:45:30 +0200 Subject: [PATCH 112/144] Add moment mutability notice for future generations --- public/scripts/utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/scripts/utils.js b/public/scripts/utils.js index 796324feb..3de04e55c 100644 --- a/public/scripts/utils.js +++ b/public/scripts/utils.js @@ -606,6 +606,7 @@ const dateCache = new Map(); /** * Cached version of moment() to avoid re-parsing the same date strings. + * Important: Moment objects are mutable, so use clone() before modifying them! * @param {any} timestamp String or number representing a date. * @returns {*} Moment object */ From 44a7dd3d74509e70983f316b5dadf059d9f4980f Mon Sep 17 00:00:00 2001 From: Kristian Schlikow Date: Tue, 12 Mar 2024 20:10:25 +0100 Subject: [PATCH 113/144] Add NomicAI for vectorization (#1922) * Crudely add NomicAi for vectorization * Move NomicAI to its own endpoint, properly handle API key * Adjust clear button html * Remove leftover nomicai http header code * Revert changes to openai-vectors.js * Fix UI issues * Revert change to settings, fix UI --------- Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com> --- public/scripts/extensions/vectors/index.js | 18 ++++- .../scripts/extensions/vectors/settings.html | 14 ++++ public/scripts/secrets.js | 4 +- src/endpoints/secrets.js | 1 + src/endpoints/vectors.js | 7 +- src/nomicai-vectors.js | 76 +++++++++++++++++++ 6 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 src/nomicai-vectors.js diff --git a/public/scripts/extensions/vectors/index.js b/public/scripts/extensions/vectors/index.js index 840e92687..d2eab636a 100644 --- a/public/scripts/extensions/vectors/index.js +++ b/public/scripts/extensions/vectors/index.js @@ -1,7 +1,7 @@ import { eventSource, event_types, extension_prompt_types, getCurrentChatId, getRequestHeaders, is_send_press, saveSettingsDebounced, setExtensionPrompt, substituteParams } from '../../../script.js'; import { ModuleWorkerWrapper, extension_settings, getContext, modules, renderExtensionTemplate } from '../../extensions.js'; import { collapseNewlines } from '../../power-user.js'; -import { SECRET_KEYS, secret_state } from '../../secrets.js'; +import { SECRET_KEYS, secret_state, writeSecret } from '../../secrets.js'; import { debounce, getStringHash as calculateHash, waitUntilCondition, onlyUnique, splitRecursive } from '../../utils.js'; const MODULE_NAME = 'vectors'; @@ -461,7 +461,8 @@ async function insertVectorItems(collectionId, items) { if (settings.source === 'openai' && !secret_state[SECRET_KEYS.OPENAI] || settings.source === 'palm' && !secret_state[SECRET_KEYS.MAKERSUITE] || settings.source === 'mistral' && !secret_state[SECRET_KEYS.MISTRALAI] || - settings.source === 'togetherai' && !secret_state[SECRET_KEYS.TOGETHERAI]) { + settings.source === 'togetherai' && !secret_state[SECRET_KEYS.TOGETHERAI] || + settings.source === 'nomicai' && !secret_state[SECRET_KEYS.NOMICAI]) { throw new Error('Vectors: API key missing', { cause: 'api_key_missing' }); } @@ -580,6 +581,7 @@ function toggleSettings() { $('#vectors_files_settings').toggle(!!settings.enabled_files); $('#vectors_chats_settings').toggle(!!settings.enabled_chats); $('#together_vectorsModel').toggle(settings.source === 'togetherai'); + $('#nomicai_apiKey').toggle(settings.source === 'nomicai'); } async function onPurgeClick() { @@ -655,7 +657,13 @@ jQuery(async () => { saveSettingsDebounced(); toggleSettings(); }); - + $('#api_key_nomicai').on('change', () => { + const nomicKey = String($('#api_key_nomicai').val()).trim(); + if (nomicKey.length) { + writeSecret(SECRET_KEYS.NOMICAI, nomicKey); + } + saveSettingsDebounced(); + }); $('#vectors_togetherai_model').val(settings.togetherai_model).on('change', () => { settings.togetherai_model = String($('#vectors_togetherai_model').val()); Object.assign(extension_settings.vectors, settings); @@ -726,6 +734,10 @@ jQuery(async () => { saveSettingsDebounced(); }); + const validSecret = !!secret_state[SECRET_KEYS.NOMICAI]; + const placeholder = validSecret ? '✔️ Key saved' : '❌ Missing key'; + $('#api_key_nomicai').attr('placeholder', placeholder); + toggleSettings(); eventSource.on(event_types.MESSAGE_DELETED, onChatEvent); eventSource.on(event_types.MESSAGE_EDITED, onChatEvent); diff --git a/public/scripts/extensions/vectors/settings.html b/public/scripts/extensions/vectors/settings.html index 5900d7145..6bdb774be 100644 --- a/public/scripts/extensions/vectors/settings.html +++ b/public/scripts/extensions/vectors/settings.html @@ -16,6 +16,7 @@ +
    @@ -33,6 +34,19 @@
    +
    + +
    + + +
    +
    + For privacy reasons, your API key will be hidden after you reload the page. +
    +
    +
    + + +
    + + + + + It is recommended to purge vectors when changing the model mid-chat. Otherwise, it will lead to sub-par results. + + +
    +
    From be74f0a6d1b08178f66cef18bb89b259c2153b47 Mon Sep 17 00:00:00 2001 From: Deciare <1689220+deciare@users.noreply.github.com> Date: Tue, 12 Mar 2024 20:06:43 -0400 Subject: [PATCH 118/144] Fix Continue operation when jailbreak enabled. When character jailbreak prompt is enabled for the text generation API, the jailbreak prompt was always inserted as the last message in history, so the Continue operation was completing the jailbreak prompt instead of the character's last output. --- public/script.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index da7f07910..3a686e9c1 100644 --- a/public/script.js +++ b/public/script.js @@ -3182,11 +3182,18 @@ async function Generate(type, { automatic_trigger, force_name2, quiet_prompt, qu ////////////////////////////////// - // Insert character jailbreak as a last user message (if exists, allowed, preferred, and not using Chat Completion) + // Insert character jailbreak as the last user message (if exists, allowed, preferred, and not using Chat Completion) if (power_user.context.allow_jailbreak && power_user.prefer_character_jailbreak && main_api !== 'openai' && jailbreak) { // Set "original" explicity to empty string since there's no original jailbreak = substituteParams(jailbreak, name1, name2, ''); - coreChat.push({ mes: jailbreak, is_user: true }); + + // When continuing generation of previous output, last user message precedes the message to continue + if (isContinue) { + coreChat.splice(coreChat.length - 1, 0, { mes: jailbreak, is_user: true }); + } + else { + coreChat.push({ mes: jailbreak, is_user: true }); + } } let chat2 = []; From e24fbfdc1d762d57360accb15c379e573afe4b1c Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Wed, 13 Mar 2024 02:25:20 +0200 Subject: [PATCH 119/144] Update default OAI sampler parameters --- default/content/presets/openai/Default.json | 6 +++--- default/settings.json | 6 +++--- public/scripts/openai.js | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/default/content/presets/openai/Default.json b/default/content/presets/openai/Default.json index 746afb42b..8c4f0f6f3 100644 --- a/default/content/presets/openai/Default.json +++ b/default/content/presets/openai/Default.json @@ -1,7 +1,7 @@ { - "temperature": 0.9, - "frequency_penalty": 0.7, - "presence_penalty": 0.7, + "temperature": 1.0, + "frequency_penalty": 0, + "presence_penalty": 0, "openai_max_context": 4095, "openai_max_tokens": 300, "nsfw_toggle": true, diff --git a/default/settings.json b/default/settings.json index eeed6b1e7..9156bdf44 100644 --- a/default/settings.json +++ b/default/settings.json @@ -446,9 +446,9 @@ }, "oai_settings": { "preset_settings_openai": "Default", - "temp_openai": 0.9, - "freq_pen_openai": 0.7, - "pres_pen_openai": 0.7, + "temp_openai": 1.0, + "freq_pen_openai": 0, + "pres_pen_openai": 0, "count_pen": 0, "top_p_openai": 1, "top_k_openai": 0, diff --git a/public/scripts/openai.js b/public/scripts/openai.js index a55a5969d..e5370b780 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -184,9 +184,9 @@ const prefixMap = selected_group ? { const default_settings = { preset_settings_openai: 'Default', - temp_openai: 0.9, - freq_pen_openai: 0.7, - pres_pen_openai: 0.7, + temp_openai: 1.0, + freq_pen_openai: 0, + pres_pen_openai: 0, count_pen: 0.0, top_p_openai: 1.0, top_k_openai: 0, From 7ec9996c1f55bf8fc92d05d0b0fa6e5b20b2d7f2 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Wed, 13 Mar 2024 02:55:09 +0200 Subject: [PATCH 120/144] Add prompt cost for OpenRouter under text completion --- public/index.html | 3 +++ public/scripts/textgen-models.js | 31 ++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index 68d97862b..ae73b3b8d 100644 --- a/public/index.html +++ b/public/index.html @@ -266,6 +266,9 @@
    +
    + Max prompt cost: Unknown +

    diff --git a/public/scripts/textgen-models.js b/public/scripts/textgen-models.js index 51e98dee8..230c415b7 100644 --- a/public/scripts/textgen-models.js +++ b/public/scripts/textgen-models.js @@ -1,5 +1,5 @@ import { isMobile } from './RossAscends-mods.js'; -import { callPopup, getRequestHeaders, setGenerationParamsFromPreset } from '../script.js'; +import { amount_gen, callPopup, eventSource, event_types, getRequestHeaders, max_context, setGenerationParamsFromPreset } from '../script.js'; import { textgenerationwebui_settings as textgen_settings, textgen_types } from './textgen-settings.js'; import { tokenizers } from './tokenizers.js'; @@ -151,6 +151,9 @@ export async function loadOpenRouterModels(data) { option.selected = model.id === textgen_settings.openrouter_model; $('#openrouter_model').append(option); } + + // Calculate the cost of the selected model + update on settings change + calculateOpenRouterCost(); } export async function loadAphroditeModels(data) { @@ -362,6 +365,32 @@ async function downloadOllamaModel() { } } +function calculateOpenRouterCost() { + if (textgen_settings.type !== textgen_types.OPENROUTER) { + return; + } + + let cost = 'Unknown'; + const model = openRouterModels.find(x => x.id === textgen_settings.openrouter_model); + + if (model?.pricing) { + const completionCost = Number(model.pricing.completion); + const promptCost = Number(model.pricing.prompt); + const completionTokens = amount_gen; + const promptTokens = (max_context - completionTokens); + const totalCost = (completionCost * completionTokens) + (promptCost * promptTokens); + if (!isNaN(totalCost)) { + cost = '$' + totalCost.toFixed(3); + } + } + + $('#openrouter_max_prompt_cost_tg').text(cost); + + // Schedule an update when settings change + eventSource.removeListener(event_types.SETTINGS_UPDATED, calculateOpenRouterCost); + eventSource.once(event_types.SETTINGS_UPDATED, calculateOpenRouterCost); +} + export function getCurrentOpenRouterModelTokenizer() { const modelId = textgen_settings.openrouter_model; const model = openRouterModels.find(x => x.id === modelId); From e6fe82760f41173239c3ddc50d85931ef5cec41b Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:19:30 +0200 Subject: [PATCH 121/144] Change ids on OR prompt cost --- public/index.html | 6 +++--- public/scripts/textgen-models.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/index.html b/public/index.html index ae73b3b8d..24593898e 100644 --- a/public/index.html +++ b/public/index.html @@ -266,9 +266,9 @@ -
    - Max prompt cost: Unknown -
    + + Max prompt cost: +
    diff --git a/public/scripts/textgen-models.js b/public/scripts/textgen-models.js index 230c415b7..0c580a3d4 100644 --- a/public/scripts/textgen-models.js +++ b/public/scripts/textgen-models.js @@ -384,7 +384,7 @@ function calculateOpenRouterCost() { } } - $('#openrouter_max_prompt_cost_tg').text(cost); + $('#or_prompt_cost').text(cost); // Schedule an update when settings change eventSource.removeListener(event_types.SETTINGS_UPDATED, calculateOpenRouterCost); From 127cbde0cc7d0b92df4843d97586a448e386bd9e Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Wed, 13 Mar 2024 13:38:51 +0100 Subject: [PATCH 122/144] added new langs +added Frence (checked by: @MaelHan) +added Icelandic +added Ukrainian +added more Japanese lang strings +corrected Arabic (checked by: cyberk3ler) +corrected Dutch --- public/locales/ar-sa.json | 198 +++--- public/locales/fr-fr.json | 862 +++++++++++++++++++++++++++ public/locales/is-is.json | 863 +++++++++++++++++++++++++++ public/locales/ja-jp.json | 1192 +++++++++++++++++++++++-------------- public/locales/lang.json | 7 +- public/locales/nl-nl.json | 964 ++++++++++++++++++++---------- public/locales/uk-ua.json | 863 +++++++++++++++++++++++++++ 7 files changed, 4082 insertions(+), 867 deletions(-) create mode 100644 public/locales/fr-fr.json create mode 100644 public/locales/is-is.json create mode 100644 public/locales/uk-ua.json diff --git a/public/locales/ar-sa.json b/public/locales/ar-sa.json index 9daa3fb14..0450a2c5c 100644 --- a/public/locales/ar-sa.json +++ b/public/locales/ar-sa.json @@ -1,20 +1,20 @@ { - "clickslidertips": "انقر على رقم المنزلق لإدخال القيم يدويًا.", + "clickslidertips": "انقر لإدخال القيم يدويًا.", "kobldpresets": "الإعدادات المسبقة لـ Kobold", "guikoboldaisettings": "إعدادات واجهة KoboldAI", "novelaipreserts": "الإعدادات المسبقة لـ NovelAI", "default": "افتراضي", "openaipresets": "الإعدادات المسبقة لـ OpenAI", "text gen webio(ooba) presets": "الإعدادات المسبقة لـ WebUI(ooba)", - "response legth(tokens)": "طول الاستجابة (في الحروف)", - "select": "اختيار", - "context size(tokens)": "حجم السياق (في الحروف)", + "response legth(tokens)": "طول الاستجابة (بعدد الاحرف او الرموز)", + "select": "اختار", + "context size(tokens)": "حجم الاحرف (بعدد الاحرف او الرموز)", "unlocked": "مفتوح", - "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "تدعم النماذج المحددة فقط أحجام السياق الأكبر من 4096 رمزًا. زد الحجم فقط إذا كنت تعرف ما تفعله.", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "فقط للنماذج الأكبر من 4096 (حرف)او رمزا. زد الحجم فقط إذا كنت تعرف ما تفعله.", "rep.pen": "عقوبة الاعادة", "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "حالة إدخال WI:\n 🔵 ثابت\n 🟢 عادي\n ❌ معطل", "rep.pen range": "نطاق عقوبة الاعادة.", - "Temperature controls the randomness in token selection": "درجة الحرارة تتحكم في العشوائية في اختيار الرموز:\n- درجة حرارة منخفضة (<1.0) تؤدي إلى نص أكثر تنبؤًا، مع إعطاء الأولوية للرموز ذات الاحتمالية العالية.\n- درجة حرارة مرتفعة (>1.0) تزيد من الإبداع وتنوع الإخراج، مع منح الرموز ذات الاحتمالية المنخفضة فرصًا أكبر.\nقم بتعيين القيمة 1.0 للاحتماليات الأصلية.", + "Temperature controls the randomness in token selection": "درجة الحرارة تتحكم في العشوائية في اختيار الحروف:\n- درجة حرارة منخفضة (<1.0) تؤدي إلى نص أكثر ذكاءا، مع إعطاء الأولوية(للعبارات والكلمات) للرموز ذات الاحتمالية العالية.\n- درجة حرارة مرتفعة (>1.0) تزيد من الإبداع وتنوع الإخراج، مع منح الرموز(العبارات والكلمات) ذات الاحتمالية المنخفضة فرصًا أكبر.\nقم بتعيين القيمة 1.0 للاحتماليات الأصلية.", "temperature": "درجة الحرارة", "Top K sets a maximum amount of top tokens that can be chosen from": "القيمة العليا K تحدد الحد الأقصى لعدد الرموز العلوية التي يمكن اختيارها.", "Top P (a.k.a. nucleus sampling)": "القيمة العلوية P (المعروفة أيضًا باسم عينة النواة) تجمع بين جميع الرموز العلوية اللازمة لتحقيق نسبة مئوية معينة.\nبمعنى آخر، إذا كانت الرموز العلوية 2 تمثل 25٪، وكانت Top-P تساوي 0.50، يُعتبر فقط هذان الرمزان العلويان.\nقم بتعيين القيمة 1.0 للتعطيل.", @@ -32,14 +32,14 @@ "Mirostat Eta": "إيتا Mirostat", "Variability parameter for Mirostat outputs": "معلمة التباين لإخراج Mirostat.", "Learning rate of Mirostat": "معدل التعلم لـ Mirostat.", - "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "قوة شرط التنظيم للبحث التناقضي. قم بتعيين القيمة إلى 0 لتعطيل CS.", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "قوة شرط التنظيم للبحث التناقضي( بعد تعيين العينات المعززة بقوة إلى المجموعات من خلال تسمياتها الزائفة، يقوم التنظيم المتباين الخاص بنا بتحديث النموذج بحيث تقوم الميزات ذات التسميات الزائفة الواثقة بتجميع الميزات في نفس المجموعة، مع دفع الميزات في مجموعات مختلفة بعيدًا). قم بتعيين القيمة إلى 0 لتعطيل CS.", "Temperature Last": "درجة الحرارة الأخيرة", - "Use the temperature sampler last": "استخدم مُخرج درجة الحرارة في النهاية. هذا عادة ما يكون منطقياً.\nعند التشغيل: يتم أولاً اختيار مجموعة من الرموز المحتملة، ثم يتم تطبيق درجة الحرارة لتصحيح احتمالياتها النسبية (تقنيًا، اللوجيتات).\nعند التعطيل: يتم تطبيق درجة الحرارة أولاً لتصحيح الاحتماليات النسبية لكل الرموز، ثم يتم اختيار مجموعة من الرموز المحتملة من بينها.\nتعطيل درجة الحرارة في النهاية.", - "LLaMA / Mistral / Yi models only": "فقط لنماذج LLaMA / Mistral / Yi. تأكد من تحديد المحلل المناسب أولاً.\nسلاسل تود أن لا تظهر في النتائج.\nسلسلة واحدة في كل سطر. نص أو [معرفات الرموز].\nالعديد من الرموز يبدأ بفراغ. استخدم عداد الرموز إذا كنت غير متأكد.", + "Use the temperature sampler last": "استخدم مُخرج درجة الحرارة في النهاية. هذا عادة ما يكون منطقياً.\nعند التشغيل: يتم أولاً اختيار مجموعة من الرموز المحتملة، ثم يتم تطبيق درجة الحرارة لتصحيح احتمالياتها النسبية (تقنيًا، اللوجيتات).\nعند التعطيل: يتم تطبيق درجة الحرارة أولاً لتصحيح الاحتماليات النسبية لكل الرموز، ثم يتم اختيار مجموعة من الرموز المحتملة من بينها.\nتعطيل درجة الحرارة في النهاية يزيد من احتماليات الرموز في ذيل التوزيع، مما يزيد من فرص الحصول على إجابات غير متناسقة.", + "LLaMA / Mistral / Yi models only": "فقط لنماذج LLaMA / Mistral / Yi. تأكد من تحديد المحلل المناسب أولاً.\nسلاسل تود أن لا تظهر في النتائج.\nسلسلة واحدة في كل سطر. نص أو [معرفات الحروف].\nالعديد من الرموز يبدأ بفراغ. استخدم عداد الرموز إذا كنت غير متأكد.", "Example: some text [42, 69, 1337]": "مثال:\nبعض النص\n[42، 69، 1337]", - "Classifier Free Guidance. More helpful tip coming soon": "إرشادات خالية من المصنف. نصائح أكثر فائدة قريباً.", + "Classifier Free Guidance. More helpful tip coming soon": "إرشادات خالية . نصائح أكثر فائدة قريباً.", "Scale": "مقياس", - "GBNF Grammar": "مُصحح GBNF", + "GBNF Grammar": "قواعد اللغة الباكوسية", "Usage Stats": "إحصائيات الاستخدام", "Click for stats!": "انقر للحصول على الإحصائيات!", "Backup": "نسخة احتياطية", @@ -49,33 +49,33 @@ "Type in the desired custom grammar": "اكتب القواعد اللغوية المخصصة المطلوبة", "Encoder Rep. Pen.": "عقوبة تكرار المشفر", "Smoothing Factor": "عامل التنعيم", - "No Repeat Ngram Size": " Ngram بدون تكرار", + "No Repeat Ngram Size": "حجم Ngram بدون تكرار", "Min Length": "الحد الأدنى للطول", - "OpenAI Reverse Proxy": "بروكسي OpenAI", - "Alternative server URL (leave empty to use the default value).": "عنوان URL البديل للخادم (اتركه فارغًا لاستخدام القيمة الافتراضية).", + "OpenAI Reverse Proxy": "بروكسي OpenAI المعكوس", + "Alternative server URL (leave empty to use the default value).": "عنوان URL الخادم البديل (اتركه فارغًا لاستخدام القيمة الافتراضية).", "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "قم بإزالة مفتاح API الخاص بـ OAI الحقيقي من لوحة الواجهة البرمجية قبل كتابة أي شيء في هذا المربع", "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "لا يمكننا تقديم الدعم للمشاكل التي تواجهك أثناء استخدام بروكسي OpenAI غير الرسمي", - "Legacy Streaming Processing": "معالجة البث القديمة", + "Legacy Streaming Processing": "معالجة البث الاصلية", "Enable this if the streaming doesn't work with your proxy": "قم بتمكين هذا إذا لم يعمل البث بشكل صحيح مع البروكسي الخاص بك", - "Context Size (tokens)": "حجم السياق (الرموز)", - "Max Response Length (tokens)": "الحد الأقصى لطول الاستجابة (الرموز)", + "Context Size (tokens)": "حجم السياق (الرموزاو الحروف)", + "Max Response Length (tokens)": "الحد الأقصى لطول الاستجابة (الرموز,الحرف)", "Temperature": "درجة الحرارة", "Frequency Penalty": "عقوبة التكرار", "Presence Penalty": "عقوبة الوجود", "Top-p": "أعلى p", - "Display bot response text chunks as they are generated": "عرض شرائح نص إجابة الذكاء الاصطناعي كما يتم إنشاؤها", + "Display bot response text chunks as they are generated": "عرض النصوص لجظة بلحظة", "Top A": "أعلى A", "Typical Sampling": "عينة نموذجية", "Tail Free Sampling": "عينة خالية من الذيل", "Rep. Pen. Slope": "ميل العقوبة التكرار", - "Single-line mode": "وضع الخط الواحد", + "Single-line mode": "وضع السطرالواحد", "Top K": "أعلى K", "Top P": "أعلى P", "Do Sample": "عينة", "Add BOS Token": "إضافة رمز BOS", - "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "اضف عنوان BOS في البداية, تعطيل هذا قد يجعل الاجابات اكثر ابداع", - "Ban EOS Token": " حظر رمز EOS", - "Ban the eos_token. This forces the model to never end the generation prematurely": "تعطيل رمز EOS, هذا يجبر النموذج على عدم انهاء تكوين الرسالة مبكرا.", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "إضافة bos_token إلى بداية الجمل. يمكن أن يجعل تعطيل هذا الردود أكثر إبداعًا.", + "Ban EOS Token": "حظر رمز EOS", + "Ban the eos_token. This forces the model to never end the generation prematurely": "حظر رمز EOS. هذا يجبر النموذج على عدم إنهاء الاستجابة مبكرًا أبدًا", "Skip Special Tokens": "تخطي الرموز الخاصة", "Beam search": "بحث الشعاع", "Number of Beams": "عدد الشعاع", @@ -83,36 +83,36 @@ "Early Stopping": "التوقف المبكر", "Contrastive search": "البحث المتقابل", "Penalty Alpha": "ألفا العقوبة", - "Seed": "عنوان (Seed)", - "Epsilon Cutoff": "قطع Epsilon", - "Eta Cutoff": "قطع Eta", - "Negative Prompt": "الاستجابات السيئة", - "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (الوضع=1 لllama.cpp فقط.)", - "Mirostat is a thermostat for output perplexity": "Mirostat هو جهاز قياس حرارة للمخرجات..", - "Add text here that would make the AI generate things you don't want in your outputs.": "أضف النص هنا الذي سيجعل الذكاء الصناعي يولد أشياء لا ترغب فيها في النتائج.", + "Seed": "بذرة", + "Epsilon Cutoff": "قطع إبسيلون", + "Eta Cutoff": "قطع إيتا", + "Negative Prompt": "استفسار سلبي", + "Mirostat (mode=1 is only for llama.cpp)": "(فقط عند استخدام llama.cpp)ميروستات", + "Mirostat is a thermostat for output perplexity": "ميروستات هو جهاز ترموستات لصعوبة الإخراج. يعد ميروستات آلية لضبط صعوبة الإخراج لتحقيق الانسجام بين الإدخال والإخراج.", + "Add text here that would make the AI generate things you don't want in your outputs.": "أضف النص هنا الذي سيجعل الذكاء الصناعي يولد أشياء لا ترغب فيها في اخراجها.", "Phrase Repetition Penalty": "عقوبة تكرار العبارات", "Preamble": "مقدمة", - "Use style tags to modify the writing style of the output.": "استخدم علامات النمط لتعديل نمط الكتابة للنتيجة.", + "Use style tags to modify the writing style of the output.": "استخدم علامات النمط لتعديل نمط الكتابة النهائية.", "Banned Tokens": "الرموز المحظورة", "Sequences you don't want to appear in the output. One per line.": "تسلسلات لا تريد ظهورها في النتيجة. واحدة لكل سطر.", - "AI Module": "وحدات الذكاء الصناعي", + "AI Module": "وحدة الذكاء الصناعي", "Changes the style of the generated text.": "تغيير نمط النص المولد.", - "Used if CFG Scale is unset globally, per chat or character": "يُستخدم اذا كان النطاق غير موضوع بشكل عام, بكل دردشة او شخصية.", + "Used if CFG Scale is unset globally, per chat or character": "يتم استخدامه إذا لم يتم تعيين مقياس CFG على نطاق عالمي، لكل محادثة أو شخصية.", "Inserts jailbreak as a last system message.": "يدرج كسر الحظر كرسالة نظام أخيرة.", - "This tells the AI to ignore its usual content restrictions.": "هذا يقول للذكاء الاصطناعي بتجاهل القيود المعتادة على المحتوى.", - "NSFW Encouraged": "محفز المحتوى الغير صالح للعرض (NSFW)", - "Tell the AI that NSFW is allowed.": "قل للذكاء الاصطناعي أنه يُسمح المحتوى الغير صالح للعرض (NSFW)", + "This tells the AI to ignore its usual content restrictions.": "هذا يخبر الذكاء الاصطناعي بتجاهل القيود المعتادة على المحتوى.", + "NSFW Encouraged": "NSFW مشجع", + "Tell the AI that NSFW is allowed.": "قل للذكاء الاصطناعي أنه يُسمح بـ NSFW", "NSFW Prioritized": "الأولوية للمحتوى غير مناسب للعمل", "NSFW prompt text goes first in the prompt to emphasize its effect.": "النص الغير مناسب للعمل يأتي أولاً في التعليمات لتأكيد تأثيره.", - "Streaming": "البث المباشر للنص", + "Streaming": "البث المباشر ل", "Dynamic Temperature": "درجة الحرارة الديناميكية", "Restore current preset": "استعادة الضبط الحالي", "Neutralize Samplers": "تعطيل المحاكيات", - "Text Completion presets": "الإعدادات المسبقة لإكمال النص", + "Text Completion presets": "الإعدادات لإكمال النص", "Documentation on sampling parameters": "وثائق حول معلمات العينات", "Set all samplers to their neutral/disabled state.": "ضبط جميع المحاكيات على حالتها الطبيعية/معطلة.", - "Only enable this if your model supports context sizes greater than 4096 tokens": "قم بتفعيل هذا فقط إذا كانت نموذجك يدعم رسائل بأحجام أكبر من 4096 رمزًا.", - "Display the response bit by bit as it is generated": "عرض الاستجابة ببطئ كما يتم إنشاؤها.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "قم بتمكين هذا فقط إذا كانت نموذجك يدعم مقاطع السياق بأحجام أكبر من 4096 رمزًا.", + "Display the response bit by bit as it is generated": "عرض الاستجابة لحظيا كما يتم إنشاؤها.", "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "توليد سطر واحد فقط لكل طلب (KoboldAI فقط، يتم تجاهله بواسطة KoboldCpp).", "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "حظر رمز نهاية التسلسل (EOS) (مع KoboldCpp، وربما أيضًا الرموز الأخرى مع KoboldAI).", "Good for story writing, but should not be used for chat and instruct mode.": "جيد لكتابة القصص، ولكن يجب ألا يُستخدم للدردشة ووضع التعليمات.", @@ -120,23 +120,23 @@ "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "استخدم قاعدة المعرفة لـ OAI لتحسين التعاريف للشخصيات العامة والشخصيات الخيالية المعروفة", "Wrap in Quotes": "وضع النص بين علامات اقتباس", "Wrap entire user message in quotes before sending.": "ضع الرسالة بأكملها بين علامات اقتباس قبل الإرسال.", - "Leave off if you use quotes manually for speech.": "اتركها إيقافاً إذا كنت تستخدم الاقتباسات يدويًا للكلام.", + "Leave off if you use quotes manually for speech.": "اتركها على وضع الايقاف إذا كنت تستخدم الاقتباسات يدويًا للكلام.", "Main prompt": "التعليمات الرئيسية", "The main prompt used to set the model behavior": "التعليمات الرئيسية المستخدمة لضبط سلوك النموذج", - "NSFW prompt": "تعليمات المحتوى غير صالح للعرض (NSFW)", + "NSFW prompt": "تعليمات NSFW", "Prompt that is used when the NSFW toggle is on": "التعليمات التي يتم استخدامها عند تشغيل التبديل NSFW.", - "Jailbreak prompt": "تعليمات كسر القواعد", + "Jailbreak prompt": "تعليمات الهروب من السجن", "Prompt that is used when the Jailbreak toggle is on": "التعليمات التي يتم استخدامها عند تشغيل التبديل Jailbreak.", - "Impersonation prompt": "تعليمات التنكر (اقتباس دورك)", - "Prompt that is used for Impersonation function": " (اقباس دورك) التعليمات التي يتم استخدامها لرسالة التنكر", + "Impersonation prompt": "تعليمات التنكر", + "Prompt that is used for Impersonation function": "التعليمات التي يتم استخدامها لوظيفة التنكر", "Logit Bias": "الانحياز في اللوجيت", "Helps to ban or reenforce the usage of certain words": "يساعد في حظر أو تعزيز استخدام بعض الكلمات", "View / Edit bias preset": "عرض/تحرير الضبط المسبق للانحياز", "Add bias entry": "إضافة إدخال للانحياز", "Jailbreak activation message": "رسالة تنشيط Jailbreak", - "Message to send when auto-jailbreak is on.": "الرسالة المراد إرسالها عند تشغيل كسر القواعد التلقائي.", - "Jailbreak confirmation reply": "رد تأكيد كسر القواعد", - "Bot must send this back to confirm jailbreak": "يجب أن يرسل الروبوت هذا للتأكيد على كسر القواعد.", + "Message to send when auto-jailbreak is on.": "الرسالة المراد إرسالها عند تشغيل الهروب التلقائي.", + "Jailbreak confirmation reply": "رد تأكيد الهروب من السجن", + "Bot must send this back to confirm jailbreak": "يجب أن يرسل الروبوت هذا للتأكيد على الهروب من السجن.", "Character Note": "ملاحظات الشخصية", "Influences bot behavior in its responses": "يؤثر على سلوك الروبوت في ردوده.", "Connect": "الاتصال", @@ -156,16 +156,16 @@ "Register": "سجّل", "TogetherAI Model": "نموذج TogetherAI", "Example: 127.0.0.1:5001": "مثال: 127.0.0.1:5001", - "ggerganov/llama.cpp": "ggerganov/llama.cpp", + "ggerganov/llama.cpp": "ggerganov/llama.cpp (خادم إخراج)", "Example: 127.0.0.1:8080": "مثال: 127.0.0.1:8080", "Example: 127.0.0.1:11434": "مثال: 127.0.0.1:11434", "Ollama Model": "نموذج Ollama", "Download": "تحميل", "TogetherAI API Key": "مفتاح API لـ TogetherAI", "-- Connect to the API --": "-- الاتصال بواجهة برمجة التطبيقات --", - "View my Kudos": "عرض إعجاباتي (Kudos)", + "View my Kudos": "عرض (Kudos)", "Enter": "أدخل", - "to use anonymous mode.": "لاستخدام الوضع المجهول.", + "to use anonymous mode.": "لاستخدام الوضع المتخفي.", "For privacy reasons": "لأسباب خصوصية، سيتم إخفاء مفتاح الـ API بعد إعادة تحميل الصفحة", "Models": "النماذج", "Hold Control / Command key to select multiple models.": "استمر في الضغط على مفتاح التحكم / الأمر لتحديد العديد من النماذج.", @@ -178,18 +178,18 @@ "Enter it in the box below": "أدخله في المربع أدناه", "Novel AI Model": "نموذج NovelAI", "If you are using:": "إذا كنت تستخدم:", - "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", + "oobabooga/text-generation-webui": "", "Make sure you run it with": "تأكد من تشغيله مع", - "flag": "علم", + "flag": "وضع علامة", "API key (optional)": "مفتاح API (اختياري)", "Server url": "رابط الخادم", "Custom model (optional)": "نموذج مخصص (اختياري)", - "Bypass API status check": "تجاوز فحص حالة واجهة برمجة التطبيقات (API)", - "Mancer AI": "Mancer AI", + "Bypass API status check": "تجاوز فحص حالة واجهة برمجة التطبيقات", + "Mancer AI": "", "Use API key (Only required for Mancer)": "استخدام مفتاح API (مطلوب فقط لـ Mancer)", - "Blocking API url": "حظر رابط API", + "Blocking API url": "رابط API القادر على الحظر", "Example: 127.0.0.1:5000": "مثال: 127.0.0.1:5000", - "Legacy API (pre-OAI, no streaming)": "واجهة برمجة التطبيقات القديمة (API) (نسخة سابقة OAI، بدون بث)", + "Legacy API (pre-OAI, no streaming)": "واجهة برمجة التطبيقات القديمة (قبل OAI، بدون بث)", "Bypass status check": "تجاوز فحص الحالة", "Streaming API url": "رابط واجهة برمجة التطبيقات القادر على البث", "Example: ws://127.0.0.1:5005/api/v1/stream": "مثال: ws://127.0.0.1:5005/api/v1/stream", @@ -207,7 +207,7 @@ "Alt Method": "طريقة بديلة", "AI21 API Key": "مفتاح API لـ AI21", "AI21 Model": "نموذج AI21", - "View API Usage Metrics": "عرض مقاييس استخدام واجهة برمجة التطبيقات (API)", + "View API Usage Metrics": "عرض مقاييس استخدام واجهة برمجة التطبيقات", "Show External models (provided by API)": "عرض النماذج الخارجية (المقدمة من قبل واجهة برمجة التطبيقات)", "Bot": "روبوت:", "Allow fallback routes": "السماح بمسارات الاحتياط", @@ -216,11 +216,11 @@ "Connect to the API": "الاتصال بواجهة برمجة التطبيقات", "OpenRouter Model": "نموذج OpenRouter", "View Remaining Credits": "عرض الرصيد المتبقي", - "Click Authorize below or get the key from": "انقر على التأكد أدناه أو احصل على المفتاح من", + "Click Authorize below or get the key from": "انقر فوق تفويض أدناه أو احصل على المفتاح من", "Auto-connect to Last Server": "الاتصال التلقائي بآخر خادم", - "View hidden API keys": "عرض مفاتيح واجهة برمجة التطبيقات المخفية (API)", + "View hidden API keys": "عرض مفاتيح واجهة برمجة التطبيقات المخفية", "Advanced Formatting": "تنسيق متقدم", - "Context Template": "قالب النص", + "Context Template": "قالب السياق", "AutoFormat Overrides": "تجاوزات التنسيق التلقائي", "Disable description formatting": "تعطيل تنسيق الوصف", "Disable personality formatting": "تعطيل تنسيق الشخصية", @@ -238,7 +238,7 @@ "Wrap Sequences with Newline": "لف السلاسل بسطر جديد", "Include Names": "تضمين الأسماء", "Force for Groups and Personas": "فرض للمجموعات والشخصيات", - "System Prompt": "نص النظام", + "System Prompt": "دعوة النظام", "Instruct Mode Sequences": "سلاسل وضع التعليم", "Input Sequence": "سلسلة الإدخال", "Output Sequence": "سلسلة الإخراج", @@ -248,24 +248,24 @@ "System Sequence Suffix": "لاحقة سلسلة النظام", "Stop Sequence": "توقف السلسلة", "Context Formatting": "تنسيق السياق", - "(Saved to Context Template)": "(يتم حفظه في قالب النص)", + "(Saved to Context Template)": "(يتم حفظه في قالب السياق)", "Tokenizer": "فاصل النصوص", "None / Estimated": "لا شيء / تقديري", "Sentencepiece (LLaMA)": "جزء الجملة (LLaMA)", "Token Padding": "امتداد الرموز", "Save preset as": "حفظ الضبط المسبق باسم", - "Always add character's name to prompt": "إضافة دائمًا اسم الشخصية إلى الدعم", + "Always add character's name to prompt": "إضافة دائمًا اسم الشخصية إلى الحديث", "Use as Stop Strings": "استخدم كسلاسل التوقف", "Bind to Context": "ربط بالسياق", "Generate only one line per request": "توليد سطر واحد فقط لكل طلب", "Misc. Settings": "إعدادات متنوعة", "Auto-Continue": "المتابعة التلقائية", - "Collapse Consecutive Newlines": "تقليص الأسطر الجديدة المتتالية", + "Collapse Consecutive Newlines": "طي الأسطر الجديدة المتتالية", "Allow for Chat Completion APIs": "السماح بواجهات برمجة التطبيقات لإكمال الدردشة", "Target length (tokens)": "الطول المستهدف (رموز)", "Keep Example Messages in Prompt": "الاحتفاظ برسائل المثال في الدعم", "Remove Empty New Lines from Output": "إزالة الأسطر الجديدة الفارغة من الإخراج", - "Disabled for all models": "تعطيل لجميع النماذج", + "Disabled for all models": "معطل لجميع النماذج", "Automatic (based on model name)": "تلقائي (بناءً على اسم النموذج)", "Enabled for all models": "مفعل لجميع النماذج", "Anchors Order": "ترتيب الرباطات", @@ -309,16 +309,16 @@ "Advanced Character Search": "بحث متقدم عن الشخصيات", "Allow {{char}}: in bot messages": "السماح بـ {{char}}: في رسائل البوت", "Allow {{user}}: in bot messages": "السماح بـ {{user}}: في رسائل البوت", - "Show tags in responses": "عرض الشارات في الردود", + "Show tags in responses": "عرض الوسوم في الردود", "Aux List Field": "حقل قائمة المساعدة", - "Lorebook Import Dialog": "مربع حوار رفع كتاب المعرفة", + "Lorebook Import Dialog": "مربع حوار استيراد كتاب المعرفة", "MUI Preset": "الإعداد المسبق لـ MUI:", "If set in the advanced character definitions, this field will be displayed in the characters list.": "إذا تم تعيينه في تعريفات الشخصيات المتقدمة، سيتم عرض هذا الحقل في قائمة الشخصيات.", "Relaxed API URLS": "عناوين URL لواجهة برمجة التطبيقات المرنة", "Custom CSS": "CSS مخصص", "Default (oobabooga)": "الافتراضي (oobabooga)", - "Mancer Model": "نموذج Mancer", - "API Type": "نوع واجهة برمجة التطبيقات (API)", + "Mancer Model": "نموذج مانسر", + "API Type": "نوع واجهة برمجة التطبيقات", "Aphrodite API key": "مفتاح واجهة برمجة التطبيقات Aphrodite", "Relax message trim in Groups": "تخفيف تقليم الرسائل في المجموعات", "Characters Hotswap": "تبديل سريع للشخصيات", @@ -335,11 +335,11 @@ "Font Scale": "مقياس الخط", "Blur Strength": "قوة التمويه", "Text Shadow Width": "عرض ظل النص", - "UI Theme Preset": "إعداد مسبق لواجهة المستخدم", + "UI Theme Preset": "إعداد مسبق لموضوع واجهة المستخدم", "Power User Options": "خيارات المستخدم المتقدمة", "Swipes": "انزلاقات", "Miscellaneous": "متنوع", - "Theme Toggles": "تبديلات الموضوع", + "Theme Toggles": "تبديلات الثيم", "Background Sound Only": "صوت الخلفية فقط", "Auto-load Last Chat": "تحميل الدردشة الأخيرة تلقائيًا", "Auto-save Message Edits": "حفظ التعديلات التلقائي للرسائل", @@ -350,7 +350,7 @@ "Send on Enter": "إرسال عند الضغط على Enter", "Always disabled": "معطل دائمًا", "Automatic (desktop)": "تلقائي (سطح المكتب)", - "Always enabled": "مُفعل دائمًا", + "Always enabled": "مُمكّن دائمًا", "Debug Menu": "قائمة التصحيح", "Restore User Input": "استعادة إدخال المستخدم", "Character Handling": "معالجة الشخصية", @@ -391,7 +391,7 @@ "group chats!": "الدردشات الجماعية!", "Shy": "خجول", "Normal": "عادي", - "Chatty": "كثير الكلام", + "Chatty": "محادث", "Examples of dialogue": "أمثلة على الحوار", "Forms a personality more clearly": "يشكل شخصية بوضوح أكبر", "Save": "حفظ", @@ -406,7 +406,7 @@ "Separate with commas": "فصل بينها بفواصل", "Secondary Required Keywords": "الكلمات الرئيسية الثانوية المطلوبة", "Content": "المحتوى", - "What this keyword should mean to the AI": "ما يجب أن يعني هذا الكلمة للذكاء الاصطناعي", + "What this keyword should mean to the AI": "ما يجب أن تعني هذا الكلمة للذكاء الاصطناعي", "Memo/Note": "مذكرة/ملاحظة", "Not sent to AI": "غير مرسل للذكاء الاصطناعي", "Constant": "ثابت", @@ -416,7 +416,7 @@ "Insertion Order": "ترتيب الإدخال", "Tokens:": "الرموز:", "Disable": "تعطيل", - "${characterName}": "${اسمالشخصية}", + "${characterName}": "${اسم الشخصية}", "CHAR": "شخصية", "is typing": "يكتب...", "Back to parent chat": "العودة إلى الدردشة الأصلية", @@ -432,22 +432,22 @@ "presets": "الإعدادات المسبقة", "Message Sound": "صوت الرسالة", "Author's Note": "مذكرة المؤلف", - "Send Jailbreak": "إرسال كسر القواعد", + "Send Jailbreak": "إرسال اختراق السجن", "Replace empty message": "استبدال الرسالة الفارغة", "Send this text instead of nothing when the text box is empty.": "إرسال هذا النص بدلاً من عدم وجود شيء عندما يكون مربع النص فارغًا.", - "NSFW avoidance prompt": "تجنب تعليمات NSFW (رسائل غير صالحة للعرض)", + "NSFW avoidance prompt": "تجنب تعليمات NSFW", "Prompt that is used when the NSFW toggle is off": "تعليمات تستخدم عندما يتم إيقاف تبديل NSFW", - "Advanced prompt bits": "معلومات التعليمات المتقدمة", + "Advanced prompt bits": "بتات التعليمات المتقدمة", "World Info format": "تنسيق معلومات العالم", "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "تضم مدخلات معلومات العالم المُنشطة قبل إدراجها في التعليمات. استخدم {0} لوضع علامة في المكان الذي يتم إدراج المحتوى فيه.", - "Unrestricted maximum value for the context slider": "قيمة قصوى غير مقيدة لمنزلق السياق", + "Unrestricted maximum value for the context slider": "قيمة قصوى غير مقيدة السياق", "Chat Completion Source": "مصدر استكمال الدردشة", - "Avoid sending sensitive information to the Horde.": "تجنب إرسال معلومات حساسة إلى Horde.", + "Avoid sending sensitive information to the Horde.": "تجنب إرسال معلومات حساسة إلى الجماعة.", "Review the Privacy statement": "مراجعة بيان الخصوصية", - "Learn how to contribute your idel GPU cycles to the Horde": "تعلم كيفية المساهمة بدورات GPU الخاملة الخاصة بك في Horde", + "Learn how to contribute your idel GPU cycles to the Horde": "تعلم كيفية المساهمة بدورات GPU الخاملة الخاصة بك في الجماعة", "Trusted workers only": "العاملون الموثوق بهم فقط", "For privacy reasons, your API key will be hidden after you reload the page.": "لأسباب خصوصية، سيتم إخفاء مفتاح API الخاص بك بعد إعادة تحميل الصفحة.", - "-- Horde models not loaded --": "-- نماذج Horde غير محملة --", + "-- Horde models not loaded --": "-- نماذج الجماعة غير محملة --", "Example: http://127.0.0.1:5000/api ": "مثال: http://127.0.0.1:5000/api", "No connection...": "لا يوجد اتصال...", "Get your NovelAI API Key": "احصل على مفتاح API NovelAI الخاص بك", @@ -465,7 +465,7 @@ "Separator": "فاصل", "Start Reply With": "بدء الرد مع", "Show reply prefix in chat": "إظهار بادئة الرد في الدردشة", - "Worlds/Lorebooks": "العوالم", + "Worlds/Lorebooks": "العوالم/Lorebook-ات", "Active World(s)": "العالم(أو العوالم) النشط(ة)", "Activation Settings": "إعدادات التنشيط", "Character Lore Insertion Strategy": "استراتيجية إدراج تاريخ الشخصية", @@ -499,6 +499,7 @@ "Alert On Overflow": "تنبيه عند التجاوز", "World/Lore Editor": "محرر العالم/السرد", "--- None ---": "--- لا شيء ---", + "Comma separated (ignored if empty)": "مفصولة بفاصلة (تجاهل إذا كانت فارغة)", "Use Probability": "استخدم الاحتمالية", "Exclude from recursion": "استبعاد من التكرار", "Entry Title/Memo": "عنوان الإدخال/المذكرة", @@ -543,7 +544,7 @@ "Show avatar filenames": "عرض أسماء ملفات الصور الرمزية", "Import Card Tags": "استيراد وسوم البطاقة", "Confirm message deletion": "تأكيد حذف الرسالة", - "Spoiler Free Mode": "وضع خالٍ من الحرق", + "Spoiler Free Mode": "وضع خالٍ من حرق الاحداث", "Auto-swipe": "السحب التلقائي", "Minimum generated message length": "الحد الأدنى لطول الرسالة المولدة", "Blacklisted words": "الكلمات الممنوعة", @@ -618,7 +619,7 @@ "Scenario Override": "تجاوز السيناريو", "Rename": "إعادة التسمية", "Character Description": "وصف الشخصية", - "Creator's Notes": "ملاحظات الخالق", + "Creator's Notes": "ملاحظات الصانع", "A-Z": "أ-ي", "Z-A": "ي-أ", "Newest": "الأحدث", @@ -683,7 +684,6 @@ "Injection depth": "عمق الحقن", "Type here...": "اكتب هنا...", "Comma separated (required)": "فاصلة مفصولة (مطلوب)", - "Comma separated (ignored if empty)": "فاصلة مفصولة (تجاهل إذا كانت فارغة)", "What this keyword should mean to the AI, sent verbatim": "ما يجب أن يعني هذا الكلمة الرئيسية للذكاء الاصطناعي، ترسل حرفيًا", "Filter to Character(s)": "تصفية إلى الشخصيات", "Character Exclusion": "استبعاد الشخصيات", @@ -734,14 +734,14 @@ "Refresh": "تحديث", "Primary Keywords": "الكلمات الأساسية", "Logic": "منطق", - "AND ANY": "وأي", - "AND ALL": "و الجميع", + "AND ANY": "و ,أي شيء", + "AND ALL": "و,الجميع", "NOT ALL": "ليس كل", - "NOT ANY": "لا أي", + "NOT ANY": " لا , لأي شيء", "Optional Filter": "تصفية اختيارية", "New Entry": "إدخال جديد", "Fill empty Memo/Titles with Keywords": "املأ الملاحظات / العناوين الفارغة بالكلمات الرئيسية", - "Save changes to a new theme file": "حفظ التغييرات في ملف السمة الجديد", + "Save changes to a new theme file": "حفظ التغييرات في ملف الثيم الجديد", "removes blur and uses alternative background color for divs": "يزيل الضبابية ويستخدم لون خلفية بديل للأقسام", "AI Response Formatting": "تنسيق رد الذكاء الاصطناعي", "Change Background Image": "تغيير صورة الخلفية", @@ -755,7 +755,7 @@ "Select/Create Characters": "اختر / إنشاء الشخصيات", "Token counts may be inaccurate and provided just for reference.": "قد تكون عدادات الرموز غير دقيقة وتُقدم فقط للإشارة.", "Click to select a new avatar for this character": "انقر لتحديد صورة رمزية جديدة لهذه الشخصية", - "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "مثال: [{{user}} هي فتاة رومانية قطة عمرها 28 عامًا.]", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "مثال: [{{user}} هي فتاة على شكل قطة رومانية عمرها 28 عامًا.]", "Toggle grid view": "تبديل عرض الشبكة", "Add to Favorites": "أضف إلى المفضلة", "Advanced Definition": "تعريف متقدم", @@ -769,14 +769,14 @@ "Show / Hide Description and First Message": "إظهار / إخفاء الوصف والرسالة الأولى", "Click to select a new avatar for this group": "انقر لتحديد صورة رمزية جديدة لهذه المجموعة", "Set a group chat scenario": "تعيين سيناريو للمحادثة الجماعية", - "Restore collage avatar": "استعادة صورة رمزية للكولاج", + "Restore collage avatar": "استعادة الصورة الرمزية للشخصية", "Create New Character": "إنشاء شخصية جديدة", "Import Character from File": "استيراد شخصية من ملف", "Import content from external URL": "استيراد المحتوى من عنوان URL الخارجي", "Create New Chat Group": "إنشاء مجموعة دردشة جديدة", "Characters sorting order": "ترتيب فرز الشخصيات", "Add chat injection": "إضافة حقنة للدردشة", - "Remove injection": "إزالة الحقنة", + "Remove injection": "إزالة الحقن", "Remove": "إزالة", "Select a World Info file for": "حدد ملف معلومات العالم لـ", "Primary Lorebook": "سجل قصة أساسي", @@ -830,19 +830,19 @@ "Create checkpoint": "إنشاء نقطة تفتيش", "Create Branch": "إنشاء فرع", "Embed file or image": "تضمين ملف أو صورة", - "UI Theme": "سمة واجهة المستخدم", + "UI Theme": "مظهر واجهة المستخدم", "This message is invisible for the AI": "هذه الرسالة غير مرئية للذكاء الاصطناعي", "Sampler Priority": "أولوية العينات", - "Ooba only. Determines the order of samplers.": "Ooba فقط. يحدد ترتيب العينات.", + "Ooba only. Determines the order of samplers.": "Ooba فقط في حالة استخدام ل. يحدد ترتيب العينات.", "Load default order": "تحميل الترتيب الافتراضي", - "Max Tokens Second": "أقصى عدد من الرموز / الثانية", + "Max Tokens Second": "أقصى عدد من الرموز(الحروف) / الثانية", "CFG": "CFG", "No items": "لا يوجد عناصر", "Extras API key (optional)": "مفتاح API الإضافي (اختياري)", "Notify on extension updates": "الإخطار بالتحديثات الإضافية", - "Toggle character grid view": "تبديل عرض الشبكة للشخصيات", - "Bulk edit characters": "تحرير الشخصيات بالجملة", - "Bulk delete characters": "حذف الشخصيات بالجملة", + "Toggle character grid view": "تبديل طريقة عرض الى شبكة للشخصيات", + "Bulk edit characters": "تحرير الشخصيات جميعها", + "Bulk delete characters": "حذف الشخصيات جميعها", "Favorite characters to add them to HotSwaps": "اختر الشخصيات المفضلة لإضافتها إلى HotSwaps", "Underlined Text": "نص تحته خط", "Token Probabilities": "احتمالات الرمز", diff --git a/public/locales/fr-fr.json b/public/locales/fr-fr.json new file mode 100644 index 000000000..bce020ed8 --- /dev/null +++ b/public/locales/fr-fr.json @@ -0,0 +1,862 @@ +{ + "clickslidertips": "Cliquez sur le curseur pour saisir les valeurs manuellement.", + "kobldpresets": "Préréglages de Kobold", + "guikoboldaisettings": "Paramètres de l'interface utilisateur de KoboldAI", + "novelaipreserts": "Préréglages de NovelAI", + "default": "Par défaut", + "openaipresets": "Préréglages d'OpenAI", + "text gen webio(ooba) presets": "Préréglages de WebUI(ooba)", + "response legth(tokens)": "Longueur de la réponse (en tokens)", + "select": "Sélectionner", + "context size(tokens)": "Taille du contexte (en tokens)", + "unlocked": "Déverrouillé", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Seuls les modèles sélectionnés prennent en charge des tailles de contexte supérieures à 4096 tokens. Augmentez uniquement si vous savez ce que vous faites.", + "rep.pen": "Pénalité de répétition", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "État de l'entrée WI :\n 🔵 Constante\n 🟢 Normale\n ❌ Désactivée", + "rep.pen range": "Plage de pénalité de répétition", + "Temperature controls the randomness in token selection": "La température contrôle l'aléatoire dans la sélection des tokens:\n- Une température basse (<1.0) entraîne un texte plus prévisible, en donnant la priorité aux tokens à forte probabilité.\n- Une température élevée (>1.0) favorise la créativité et la diversité de sortie, en donnant plus de chances aux tokens à faible probabilité.\nRéglez la valeur à 1.0 pour les probabilités d'origine.", + "temperature": "Température", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K définit une quantité maximale de tokens les plus fréquents qui peuvent être sélectionnés.", + "Top P (a.k.a. nucleus sampling)": "Top P (alias échantillonnage du noyau) regroupe tous les tokens supérieurs nécessaires pour atteindre un pourcentage spécifique.\nAutrement dit, si les deux premiers tokens représentent 25 % et que Top-P est de 0,50, seuls ces deux tokens sont considérés.\nRéglez la valeur à 1.0 pour la désactiver.", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "L'échantillonnage P typique privilégie les tokens en fonction de leur écart par rapport à l'entropie moyenne de l'ensemble.\nLes tokens dont la probabilité cumulée est proche du seuil spécifié (par exemple, 0.5) sont conservés, ce qui distingue ceux contenant une information moyenne.\nRéglez la valeur à 1.0 pour la désactiver.", + "Min P sets a base minimum probability": "Min P définit une probabilité minimale de base. Elle est optimisée en fonction de la probabilité du token supérieur.\nSi la probabilité du token supérieur est de 80 % et que Min P est de 0.1, seuls les tokens avec une probabilité supérieure à 8 % sont considérés.\nRéglez la valeur à 0 pour la désactiver.", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A définit un seuil pour la sélection des tokens en fonction du carré de la probabilité du token le plus élevé.\nSi Top A est de 0.2 et que la probabilité du token le plus élevé est de 50 %, les tokens avec une probabilité inférieure à 5 % sont exclus (0.2 * 0.5^2).\nRéglez la valeur à 0 pour la désactiver.", + "Tail-Free Sampling (TFS)": "Échantillonnage sans queue (TFS) recherche les tokens de queue ayant une faible probabilité dans la distribution,\n en analysant le taux de changement des probabilités des tokens à l'aide de dérivées. Les tokens sont conservés jusqu'au seuil (par exemple, 0.3), en fonction de la dérivée seconde uniforme.\nPlus la valeur se rapproche de 0, plus le nombre de tokens rejetés augmente. Réglez la valeur à 1.0 pour la désactiver.", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "La coupure epsilon définit un seuil de probabilité en dessous duquel les tokens sont exclus de l'échantillonnage.\nEn unités 1e-4; la valeur appropriée est 3. Réglez-la à 0 pour la désactiver.", + "Scale Temperature dynamically per token, based on the variation of probabilities": "Échelonnez dynamiquement la température par token, en fonction de la variation des probabilités.", + "Minimum Temp": "Température minimale", + "Maximum Temp": "Température maximale", + "Exponent": "Exposant", + "Mirostat Mode": "Mode Mirostat", + "Mirostat Tau": "Tau Mirostat", + "Mirostat Eta": "Eta Mirostat", + "Variability parameter for Mirostat outputs": "Paramètre de variabilité pour les sorties Mirostat.", + "Learning rate of Mirostat": "Taux d'apprentissage de Mirostat.", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Force du terme de régularisation de la recherche contrastive. Réglez la valeur à 0 pour désactiver CS.", + "Temperature Last": "Température en dernier", + "Use the temperature sampler last": "Utilisez le réglage de température en dernier. Cela est généralement logique.\nLorsqu'il est activé : une sélection de tokens potentiels est d'abord effectuée, puis la température est appliquée pour corriger leurs probabilités relatives (techniquement, les log-likelihoods).\nLorsqu'il est désactivé : la température est d'abord appliquée pour corriger les probabilités relatives de tous les tokens, puis une sélection de tokens potentiels est effectuée parmi eux.\nDésactivez la température en dernier.", + "LLaMA / Mistral / Yi models only": "Modèles LLaMA / Mistral / Yi uniquement. Assurez-vous de sélectionner d'abord l'analyste approprié.\nLes chaînes de caractères ne doivent pas apparaître dans les résultats.\nUne chaîne par ligne. Texte ou [identifiants de tokens].\nDe nombreux tokens commencent par un espace. Utilisez un compteur de tokens si vous n'êtes pas sûr.", + "Example: some text [42, 69, 1337]": "Exemple:\nun certain texte\n[42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Guidance gratuite du classificateur. Des conseils plus utiles arrivent bientôt.", + "Scale": "Échelle", + "GBNF Grammar": "Grammaire GBNF", + "Usage Stats": "Statistiques d'utilisation", + "Click for stats!": "Cliquez pour les statistiques!", + "Backup": "Sauvegarde", + "Backup your personas to a file": "Sauvegardez vos personas dans un fichier", + "Restore": "Restaurer", + "Restore your personas from a file": "Restaurez vos personas à partir d'un fichier", + "Type in the desired custom grammar": "Saisissez la grammaire personnalisée souhaitée", + "Encoder Rep. Pen.": "Pénalité de répétition de l'encodeur", + "Smoothing Factor": "Facteur de lissage", + "No Repeat Ngram Size": "Taille de n-gramme sans répétition", + "Min Length": "Longueur minimale", + "OpenAI Reverse Proxy": "Proxy inversé OpenAI", + "Alternative server URL (leave empty to use the default value).": "URL du serveur alternatif (laissez vide pour utiliser la valeur par défaut).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Supprimez votre véritable clé API OAI du panneau API AVANT de taper quoi que ce soit dans cette boîte", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Nous ne pouvons pas fournir de support pour les problèmes rencontrés lors de l'utilisation d'un proxy OpenAI non officiel", + "Legacy Streaming Processing": "Traitement en continu hérité", + "Enable this if the streaming doesn't work with your proxy": "Activez ceci si le streaming ne fonctionne pas avec votre proxy", + "Context Size (tokens)": "Taille du contexte (tokens)", + "Max Response Length (tokens)": "Longueur maximale de la réponse (tokens)", + "Frequency Penalty": "Pénalité de fréquence", + "Presence Penalty": "Pénalité de présence", + "Top-p": "Top-p", + "Display bot response text chunks as they are generated": "Afficher les fragments de texte de la réponse du bot au fur et à mesure de leur génération", + "Top A": "Top A", + "Typical Sampling": "Échantillonnage typique", + "Tail Free Sampling": "Échantillonnage sans queue", + "Rep. Pen. Slope": "Pente de la pénalité de répétition", + "Single-line mode": "Mode d'une seule ligne", + "Top K": "Top K", + "Top P": "Top P", + "Do Sample": "Faire une échantillon", + "Add BOS Token": "Ajouter le token BOS", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Ajoutez le token BOS au début des prompts. Désactiver cela peut rendre les réponses plus créatives", + "Ban EOS Token": "Interdire le token EOS", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Interdire le token EOS. Cela force le modèle à ne jamais terminer la génération prématurément", + "Skip Special Tokens": "Ignorer les tokens spéciaux", + "Beam search": "Recherche par faisceau", + "Number of Beams": "Nombre de faisceaux", + "Length Penalty": "Pénalité de longueur", + "Early Stopping": "Arrêt précoce", + "Contrastive search": "Recherche contrastive", + "Penalty Alpha": "Alpha de pénalité", + "Seed": "Graine", + "Epsilon Cutoff": "Coupure epsilon", + "Eta Cutoff": "Coupure eta", + "Negative Prompt": "Indication négative", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (le mode=1 est uniquement pour llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat est un thermostat pour la perplexité de sortie", + "Add text here that would make the AI generate things you don't want in your outputs.": "Ajoutez ici du texte qui ferait générer à l'IA des choses que vous ne voulez pas dans vos sorties.", + "Phrase Repetition Penalty": "Pénalité de répétition de phrase", + "Preamble": "Préambule", + "Use style tags to modify the writing style of the output.": "Utilisez des balises de style pour modifier le style d'écriture de la sortie.", + "Banned Tokens": "Tokens interdits", + "Sequences you don't want to appear in the output. One per line.": "Séquences que vous ne voulez pas voir apparaître dans la sortie. Une par ligne.", + "AI Module": "Module IA", + "Changes the style of the generated text.": "Modifie le style du texte généré.", + "Used if CFG Scale is unset globally, per chat or character": "Utilisé si l'échelle CFG n'est pas définie globalement, par chat ou par caractère.", + "Inserts jailbreak as a last system message.": "Insère le jailbreak en tant que dernière message système.", + "This tells the AI to ignore its usual content restrictions.": "Cela indique à l'IA d'ignorer ses restrictions de contenu habituelles.", + "NSFW Encouraged": "Contenu pour adultes encouragé (NSFW)", + "Tell the AI that NSFW is allowed.": "Indiquez à l'IA que le contenu pour adultes est autorisé.", + "NSFW Prioritized": "Contenu pour adultes priorisé", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "Le texte de la prompt NSFW passe en premier dans la prompt pour souligner son effet.", + "Streaming": "Diffusion en continu", + "Dynamic Temperature": "Température dynamique", + "Restore current preset": "Restaurer le préréglage actuel", + "Neutralize Samplers": "Neutraliser les échantillonneurs", + "Text Completion presets": "Préréglages de complétion de texte", + "Documentation on sampling parameters": "Documentation sur les paramètres d'échantillonnage", + "Set all samplers to their neutral/disabled state.": "Définir tous les échantillonneurs sur leur état neutre/désactivé.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Activez cela uniquement si votre modèle prend en charge des tailles de contexte supérieures à 4096 tokens", + "Display the response bit by bit as it is generated": "Afficher la réponse bit par bit au fur et à mesure de sa génération", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Générer seulement une ligne par demande (KoboldAI uniquement, ignoré par KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Interdire le jeton de fin de séquence (EOS) (avec KoboldCpp, et éventuellement aussi d'autres jetons avec KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Bon pour l'écriture d'histoires, mais ne devrait pas être utilisé pour la discussion et le mode d'instruction.", + "Enhance Definitions": "Améliorer les définitions", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Utilisez la base de connaissances OAI pour améliorer les définitions des figures publiques et des personnages fictifs connus", + "Wrap in Quotes": "Envelopper entre guillemets", + "Wrap entire user message in quotes before sending.": "Envelopper l'ensemble du message utilisateur entre guillemets avant de l'envoyer.", + "Leave off if you use quotes manually for speech.": "Laissez-le en dehors si vous utilisez manuellement des guillemets pour la parole.", + "Main prompt": "Prompt principal", + "The main prompt used to set the model behavior": "La principale prompt utilisée pour définir le comportement du modèle", + "NSFW prompt": "Prompt NSFW", + "Prompt that is used when the NSFW toggle is on": "Prompt utilisée lorsque le bascule NSFW est activé", + "Jailbreak prompt": "Prompt de jailbreak", + "Prompt that is used when the Jailbreak toggle is on": "Prompt utilisée lorsque le bascule Jailbreak est activé", + "Impersonation prompt": "Prompt d'usurpation", + "Prompt that is used for Impersonation function": "Prompt utilisée pour la fonction d'usurpation", + "Logit Bias": "Biais de logit", + "Helps to ban or reenforce the usage of certain words": "Aide à interdire ou à renforcer l'utilisation de certains mots", + "View / Edit bias preset": "Afficher/Modifier le préréglage de biais", + "Add bias entry": "Ajouter une entrée de biais", + "Jailbreak activation message": "Message d'activation du jailbreak", + "Message to send when auto-jailbreak is on.": "Message à envoyer lorsque le jailbreak automatique est activé.", + "Jailbreak confirmation reply": "Réponse de confirmation de jailbreak", + "Bot must send this back to confirm jailbreak": "Le bot doit renvoyer ceci pour confirmer le jailbreak", + "Character Note": "Note sur le personnage", + "Influences bot behavior in its responses": "Influence le comportement du bot dans ses réponses", + "Connect": "Se connecter", + "Test Message": "Message de test", + "API": "API", + "KoboldAI": "KoboldAI", + "Use Horde": "Utiliser Horde", + "API url": "URL de l'API", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (mode wrapper pour l'API OpenAI)", + "Register a Horde account for faster queue times": "Inscrivez-vous à un compte Horde pour des temps d'attente plus courts", + "Learn how to contribute your idle GPU cycles to the Hord": "Apprenez comment contribuer vos cycles GPU inactifs au Hord", + "Adjust context size to worker capabilities": "Ajuster la taille du contexte aux capacités des travailleurs", + "Adjust response length to worker capabilities": "Ajuster la longueur de la réponse aux capacités des travailleurs", + "API key": "Clé API", + "Tabby API key": "Clé API de Tabby", + "Get it here:": "Obtenez-le ici :", + "Register": "S'inscrire", + "TogetherAI Model": "Modèle TogetherAI", + "Example: 127.0.0.1:5001": "Exemple : 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp", + "Example: 127.0.0.1:8080": "Exemple : 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Exemple : 127.0.0.1:11434", + "Ollama Model": "Modèle Ollama", + "Download": "Télécharger", + "TogetherAI API Key": "Clé API de TogetherAI", + "-- Connect to the API --": "-- Se connecter à l'API --", + "View my Kudos": "Voir mes Kudos", + "Enter": "Entrer", + "to use anonymous mode.": "pour utiliser le mode anonyme.", + "For privacy reasons": "Pour des raisons de confidentialité", + "Models": "Modèles", + "Hold Control / Command key to select multiple models.": "Maintenez la touche Contrôle / Commande enfoncée pour sélectionner plusieurs modèles.", + "Horde models not loaded": "Modèles Horde non chargés", + "Not connected...": "Non connecté...", + "Novel API key": "Clé API de NovelAI", + "Follow": "Suivre", + "these directions": "ces instructions", + "to get your NovelAI API key.": "pour obtenir votre clé API de NovelAI.", + "Enter it in the box below": "Entrez-le dans la boîte ci-dessous", + "Novel AI Model": "Modèle NovelAI", + "If you are using:": "Si vous utilisez :", + "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", + "Make sure you run it with": "Assurez-vous de l'exécuter avec", + "flag": "fanion", + "API key (optional)": "Clé API (optionnelle)", + "Server url": "URL du serveur", + "Custom model (optional)": "Modèle personnalisé (optionnel)", + "Bypass API status check": "Contourner la vérification de l'état de l'API", + "Mancer AI": "Mancer AI", + "Use API key (Only required for Mancer)": "Utiliser la clé API (obligatoire uniquement pour Mancer)", + "Blocking API url": "URL de blocage de l'API", + "Example: 127.0.0.1:5000": "Exemple : 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "API héritée (pré-OAI, pas de streaming)", + "Bypass status check": "Contourner la vérification de l'état", + "Streaming API url": "URL de l'API de streaming", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Exemple : ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Clé API de Mancer", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Exemple : https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "pour obtenir votre clé API OpenAI.", + "Window AI Model": "Modèle Window AI", + "OpenAI Model": "Modèle OpenAI", + "Claude API Key": "Clé API de Claude", + "Get your key from": "Obtenez votre clé à partir de", + "Anthropic's developer console": "Console de développement d'Anthropic", + "Slack and Poe cookies will not work here, do not bother trying.": "Les cookies Slack et Poe ne fonctionneront pas ici, ne vous embêtez pas à essayer.", + "Claude Model": "Modèle Claude", + "Scale API Key": "Clé API Scale", + "Alt Method": "Méthode alternative", + "AI21 API Key": "Clé API AI21", + "AI21 Model": "Modèle AI21", + "View API Usage Metrics": "Afficher les mesures d'utilisation de l'API", + "Show External models (provided by API)": "Afficher les modèles externes (fournis par l'API)", + "Bot": "Bot", + "Allow fallback routes": "Autoriser les itinéraires de secours", + "Allow fallback routes Description": "Le modèle alternatif est automatiquement sélectionné si le modèle choisi ne peut pas répondre à votre demande.", + "OpenRouter API Key": "Clé API OpenRouter", + "Connect to the API": "Se connecter à l'API", + "OpenRouter Model": "Modèle OpenRouter", + "View Remaining Credits": "Afficher les crédits restants", + "Click Authorize below or get the key from": "Cliquez sur Autoriser ci-dessous ou obtenez la clé à partir de", + "Auto-connect to Last Server": "Connexion automatique au dernier serveur", + "View hidden API keys": "Afficher les clés API cachées", + "Advanced Formatting": "Formatage avancé", + "Context Template": "Modèle de contexte", + "AutoFormat Overrides": "Remplacements AutoFormat", + "Disable description formatting": "Désactiver le formatage de la description", + "Disable personality formatting": "Désactiver le formatage de la personnalité", + "Disable scenario formatting": "Désactiver le formatage du scénario", + "Disable example chats formatting": "Désactiver le formatage des exemples de discussions", + "Disable chat start formatting": "Désactiver le formatage du début de la discussion", + "Custom Chat Separator": "Séparateur de discussion personnalisé", + "Replace Macro in Custom Stopping Strings": "Remplacer les macro dans les chaînes d'arrêt personnalisées", + "Strip Example Messages from Prompt": "Supprimer les messages d'exemple du support", + "Story String": "Chaîne d'histoire", + "Example Separator": "Séparateur d'exemple", + "Chat Start": "Début de la discussion", + "Activation Regex": "Regex d'activation", + "Instruct Mode": "Mode d'instruction", + "Wrap Sequences with Newline": "Envelopper les séquences avec un saut de ligne", + "Include Names": "Inclure les noms", + "Force for Groups and Personas": "Forcer pour les groupes et les personnages", + "System Prompt": "Promp système", + "Instruct Mode Sequences": "Séquences du mode d'instruction", + "Input Sequence": "Séquence d'entrée", + "Output Sequence": "Séquence de sortie", + "First Output Sequence": "Première séquence de sortie", + "Last Output Sequence": "Dernière séquence de sortie", + "System Sequence Prefix": "Préfixe de séquence système", + "System Sequence Suffix": "Suffixe de séquence système", + "Stop Sequence": "Séquence d'arrêt", + "Context Formatting": "Formatage du contexte", + "(Saved to Context Template)": "(Enregistré dans le modèle de contexte)", + "Tokenizer": "Tokeniseur", + "None / Estimated": "Aucun / Estimé", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "Remplissage de jeton", + "Save preset as": "Enregistrer le préréglage sous", + "Always add character's name to prompt": "Ajouter toujours le nom du personnage au support", + "Use as Stop Strings": "Utiliser comme chaînes d'arrêt", + "Bind to Context": "Lier au contexte", + "Generate only one line per request": "Générer seulement une ligne par demande", + "Misc. Settings": "Paramètres divers", + "Auto-Continue": "Auto-Continuer", + "Collapse Consecutive Newlines": "Réduire les sauts de ligne consécutifs", + "Allow for Chat Completion APIs": "Autoriser les APIs de complétion de la discussion", + "Target length (tokens)": "Longueur cible (jetons)", + "Keep Example Messages in Prompt": "Conserver les messages d'exemple dans le support", + "Remove Empty New Lines from Output": "Supprimer les lignes vides de la sortie", + "Disabled for all models": "Désactivé pour tous les modèles", + "Automatic (based on model name)": "Automatique (basé sur le nom du modèle)", + "Enabled for all models": "Activé pour tous les modèles", + "Anchors Order": "Ordre des ancrages", + "Character then Style": "Personnage puis style", + "Style then Character": "Style puis personnage", + "Character Anchor": "Ancre du personnage", + "Style Anchor": "Ancre du style", + "World Info": "Informations sur le monde", + "Scan Depth": "Profondeur de scan", + "Case-Sensitive": "Sensible à la casse", + "Match Whole Words": "Correspondre aux mots entiers", + "Use global setting": "Utiliser le paramètre global", + "Yes": "Oui", + "No": "Non", + "Context %": "Pourcentage de contexte", + "Budget Cap": "Limite de budget", + "(0 = disabled)": "(0 = désactivé)", + "depth": "profondeur", + "Token Budget": "Budget de jeton", + "budget": "budget", + "Recursive scanning": "Scan récursif", + "None": "Aucun", + "User Settings": "Paramètres utilisateur", + "UI Mode": "Mode UI", + "UI Language": "Langue de l'interface utilisateur", + "MovingUI Preset": "Préréglage MovingUI", + "UI Customization": "Personnalisation de l'interface utilisateur", + "Avatar Style": "Style d'avatar", + "Circle": "Cercle", + "Rectangle": "Rectangle", + "Square": "Carré", + "Chat Style": "Style de discussion", + "Default": "Par défaut", + "Bubbles": "Bulles", + "No Blur Effect": "Pas d'effet de flou", + "No Text Shadows": "Pas d'ombres de texte", + "Waifu Mode": "Mode Waifu", + "Message Timer": "Minuteur de message", + "Model Icon": "Icône du modèle", + "# of messages (0 = disabled)": "# de messages (0 = désactivé)", + "Advanced Character Search": "Recherche de personnage avancée", + "Allow {{char}}: in bot messages": "Autoriser {{char}} : dans les messages du bot", + "Allow {{user}}: in bot messages": "Autoriser {{user}} : dans les messages du bot", + "Show tags in responses": "Afficher les tags dans les réponses", + "Aux List Field": "Champ de liste auxiliaire", + "Lorebook Import Dialog": "Boîte de dialogue d'importation de Lorebook", + "MUI Preset": "Préréglage MUI", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Si défini dans les définitions de personnage avancées, ce champ sera affiché dans la liste des personnages.", + "Relaxed API URLS": "URLs d'API détendues", + "Custom CSS": "CSS personnalisé", + "Default (oobabooga)": "Défaut (oobabooga)", + "Mancer Model": "Modèle Mancer", + "API Type": "Type d'API", + "Aphrodite API key": "Clé API Aphrodite", + "Relax message trim in Groups": "Relaxer la taille des messages dans les groupes", + "Characters Hotswap": "Échange rapide de personnages", + "Request token probabilities": "Probabilités de jeton de demande", + "Movable UI Panels": "Panels d'UI déplaçables", + "Reset Panels": "Réinitialiser les panneaux", + "UI Colors": "Couleurs de l'interface utilisateur", + "Main Text": "Texte principal", + "Italics Text": "Texte en italique", + "Quote Text": "Texte de citation", + "Shadow Color": "Couleur de l'ombre", + "FastUI BG": "Fond FastUI", + "Blur Tint": "Teinte de flou", + "Font Scale": "Échelle de police", + "Blur Strength": "Force de flou", + "Text Shadow Width": "Largeur de l'ombre du texte", + "UI Theme Preset": "Préréglage du thème de l'interface utilisateur", + "Power User Options": "Options de l'utilisateur avancé", + "Swipes": "Balayages", + "Miscellaneous": "Divers", + "Theme Toggles": "Bascules de thème", + "Background Sound Only": "Son de fond uniquement", + "Auto-load Last Chat": "Chargement automatique de la dernière discussion", + "Auto-save Message Edits": "Sauvegarde automatique des modifications de message", + "Auto-fix Markdown": "Correction automatique du Markdown", + "Allow : in bot messages": "Autoriser : dans les messages du bot", + "Auto-scroll Chat": "Défilement automatique de la discussion", + "Render Formulas": "Rendre les formules", + "Send on Enter": "Envoyer sur Entrée", + "Always disabled": "Toujours désactivé", + "Automatic (desktop)": "Automatique (ordinateur de bureau)", + "Always enabled": "Toujours activé", + "Debug Menu": "Menu de débogage", + "Restore User Input": "Restaurer l'entrée utilisateur", + "Character Handling": "Gestion des caractères", + "Example Messages Behavior": "Comportement des messages d'exemple", + "Gradual push-out": "Poussée progressive", + "Chat/Message Handling": "Gestion de la discussion/des messages", + "Always include examples": "Inclure toujours des exemples", + "Never include examples": "Ne jamais inclure d'exemples", + "Forbid External Media": "Interdire les médias externes", + "System Backgrounds": "Arrière-plans du système", + "Name": "Nom", + "Your Avatar": "Votre avatar", + "Extensions API:": "API d'extensions :", + "SillyTavern-extras": "Extras de SillyTavern", + "Auto-connect": "Connexion automatique", + "Active extensions": "Extensions actives", + "Extension settings": "Paramètres d'extension", + "Description": "Description", + "First message": "Premier message", + "Group Controls": "Contrôles de groupe", + "Group reply strategy": "Stratégie de réponse de groupe", + "Natural order": "Ordre naturel", + "List order": "Ordre de la liste", + "Allow self responses": "Autoriser les réponses à soi-même", + "Auto Mode": "Mode automatique", + "Add Members": "Ajouter des membres", + "Current Members": "Membres actuels", + "text": "texte", + "Delete": "Supprimer", + "Cancel": "Annuler", + "Advanced Defininitions": "Définitions avancées", + "Personality summary": "Résumé de la personnalité", + "A brief description of the personality": "Une brève description de la personnalité", + "Scenario": "Scénario", + "Circumstances and context of the dialogue": "Circonstances et contexte du dialogue", + "Talkativeness": "Bavardage", + "How often the chracter speaks in": "À quelle fréquence le personnage parle dans", + "group chats!": "les discussions de groupe !", + "Shy": "Timide", + "Normal": "Normal", + "Chatty": "Bavard", + "Examples of dialogue": "Exemples de dialogue", + "Forms a personality more clearly": "Forme une personnalité plus clairement", + "Save": "Enregistrer", + "World Info Editor": "Éditeur d'informations sur le monde", + "New summary": "Nouveau résumé", + "Export": "Exporter", + "Delete World": "Supprimer le monde", + "Chat History": "Historique de la conversation", + "Group Chat Scenario Override": "Remplacement du scénario de discussion de groupe", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Tous les membres du groupe utiliseront le texte de scénario suivant au lieu de ce qui est spécifié dans leurs cartes de personnage.", + "Keywords": "Mots-clés", + "Separate with commas": "Séparer par des virgules", + "Secondary Required Keywords": "Mots-clés secondaires requis", + "Content": "Contenu", + "What this keyword should mean to the AI": "Ce que ce mot-clé devrait signifier pour l'IA", + "Memo/Note": "Mémo/Note", + "Not sent to AI": "Non envoyé à l'IA", + "Constant": "Constant", + "Selective": "Sélectif", + "Before Char": "Avant le personnage", + "After Char": "Après le personnage", + "Insertion Order": "Ordre d'insertion", + "Tokens:": "Jetons :", + "Disable": "Désactiver", + "${characterName}": "${nomDuPersonnage}", + "CHAR": "CHAR", + "is typing": "est en train d'écrire...", + "Back to parent chat": "Retour à la conversation parente", + "Save bookmark": "Enregistrer le signet", + "Convert to group": "Convertir en groupe", + "Start new chat": "Démarrer une nouvelle conversation", + "View past chats": "Voir les conversations passées", + "Delete messages": "Supprimer les messages", + "Impersonate": "Usurper l'identité", + "Regenerate": "Regénérer", + "PNG": "PNG", + "JSON": "JSON", + "presets": "préréglages", + "Message Sound": "Son de message", + "Author's Note": "Note de l'auteur", + "Send Jailbreak": "Envoyer le jailbreak", + "Replace empty message": "Remplacer le message vide", + "Send this text instead of nothing when the text box is empty.": "Envoyer ce texte à la place de rien lorsque la zone de texte est vide.", + "NSFW avoidance prompt": "Message d'évitement NSFW (contenu non approprié)", + "Prompt that is used when the NSFW toggle is off": "Message utilisé lorsque le basculement NSFW est désactivé", + "Advanced prompt bits": "Bits de message avancés", + "World Info format": "Format des informations sur le monde", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Enveloppe les entrées d'informations sur le monde activées avant de les insérer dans le message. Utilisez {0} pour marquer l'endroit où le contenu est inséré.", + "Unrestricted maximum value for the context slider": "Valeur maximale non limitée pour le curseur de contexte", + "Chat Completion Source": "Source de complétion de la conversation", + "Avoid sending sensitive information to the Horde.": "Évitez d'envoyer des informations sensibles à la Horde.", + "Review the Privacy statement": "Examiner la déclaration de confidentialité", + "Learn how to contribute your idel GPU cycles to the Horde": "Apprenez comment contribuer vos cycles GPU inactifs à la Horde", + "Trusted workers only": "Travailleurs de confiance uniquement", + "For privacy reasons, your API key will be hidden after you reload the page.": "Pour des raisons de confidentialité, votre clé API sera masquée après le rechargement de la page.", + "-- Horde models not loaded --": "-- Modèles Horde non chargés --", + "Example: http://127.0.0.1:5000/api ": "Exemple : http://127.0.0.1:5000/api", + "No connection...": "Pas de connexion...", + "Get your NovelAI API Key": "Obtenez votre clé API NovelAI", + "KoboldAI Horde": "Horde KoboldAI", + "Text Gen WebUI (ooba)": "Interface utilisateur Web de génération de texte (ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Complétion de la conversation (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "Clé API OpenAI", + "Trim spaces": "Supprimer les espaces", + "Trim Incomplete Sentences": "Supprimer les phrases incomplètes", + "Include Newline": "Inclure un retour à la ligne", + "Non-markdown strings": "Chaînes non Markdown", + "Replace Macro in Sequences": "Remplacer le macro dans les séquences", + "Presets": "Préréglages", + "Separator": "Séparateur", + "Start Reply With": "Commencer la réponse avec", + "Show reply prefix in chat": "Afficher le préfixe de réponse dans la conversation", + "Worlds/Lorebooks": "Mondes/Livres de lore", + "Active World(s)": "Monde(s) actif(s)", + "Activation Settings": "Paramètres d'activation", + "Character Lore Insertion Strategy": "Stratégie d'insertion de lore de personnage", + "Sorted Evenly": "Trié de manière égale", + "Active World(s) for all chats": "Monde(s) actif(s) pour toutes les conversations", + "-- World Info not found --": "-- Informations sur le monde non trouvées --", + "--- Pick to Edit ---": "--- Sélectionnez pour éditer ---", + "or": "ou", + "New": "Nouveau", + "Priority": "Priorité", + "Custom": "Personnalisé", + "Title A-Z": "Titre A-Z", + "Title Z-A": "Titre Z-A", + "Tokens ↗": "Jetons ↗", + "Tokens ↘": "Jetons ↘", + "Depth ↗": "Profondeur ↗", + "Depth ↘": "Profondeur ↘", + "Order ↗": "Commande ↗", + "Order ↘": "Commande ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "Déclencheur% ↗", + "Trigger% ↘": "Déclencheur% ↘", + "Order:": "Commande :", + "Depth:": "Profondeur :", + "Character Lore First": "Lore du personnage d'abord", + "Global Lore First": "Lore global d'abord", + "Recursive Scan": "Analyse récursive", + "Case Sensitive": "Sensible à la casse", + "Match whole words": "Correspondre aux mots entiers", + "Alert On Overflow": "Alerte en cas de dépassement", + "World/Lore Editor": "Éditeur de monde/lore", + "--- None ---": "--- Aucun ---", + "Use Probability": "Utiliser la probabilité", + "Exclude from recursion": "Exclure de la récursion", + "Entry Title/Memo": "Titre de l'entrée/Mémo", + "Position:": "Position :", + "T_Position": "↑Caractère : avant les définitions de caractères\n↓Caractère : après les définitions de caractères\n↑AN : avant les notes d'auteur\n↓AN : après les notes d'auteur\n@D : à la profondeur", + "Before Char Defs": "Avant les définitions de caractères", + "After Char Defs": "Après les définitions de caractères", + "Before AN": "Avant AN", + "After AN": "Après AN", + "at Depth": "à la profondeur", + "Order": "Ordre :", + "Probability:": "Probabilité :", + "Update a theme file": "Mettre à jour un fichier de thème", + "Save as a new theme": "Enregistrer en tant que nouveau thème", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Nombre minimum de mots en liste noire détectés pour déclencher un glissement automatique", + "Delete Entry": "Supprimer l'entrée", + "User Message Blur Tint": "Teinte de flou du message utilisateur", + "AI Message Blur Tint": "Teinte de flou du message AI", + "Chat Backgrounds": "Arrière-plans de la discussion", + "Chat Background": "Arrière-plan de la discussion", + "UI Background": "Arrière-plan de l'interface utilisateur", + "Mad Lab Mode": "Mode laboratoire fou", + "Show Message Token Count": "Afficher le nombre de jetons de message", + "Compact Input Area (Mobile)": "Zone de saisie compacte (Mobile)", + "Zen Sliders": "Curseurs Zen", + "UI Border": "Bordure de l'interface utilisateur", + "Chat Style:": "Style de la discussion :", + "Chat Width (PC)": "Largeur de la discussion (PC)", + "Chat Timestamps": "Horodatages de la discussion", + "Tags as Folders": "Balises comme dossiers", + "Chat Truncation": "Troncature de la discussion", + "(0 = unlimited)": "(0 = illimité)", + "Streaming FPS": "Images par seconde en streaming", + "Gestures": "Gestes", + "Message IDs": "Identifiants de message", + "Prefer Character Card Prompt": "Préférer l'invite de carte de personnage", + "Prefer Character Card Jailbreak": "Préférer le jailbreak de carte de personnage", + "Press Send to continue": "Appuyez sur Envoyer pour continuer", + "Quick 'Continue' button": "Bouton 'Continuer' rapide", + "Log prompts to console": "Journaliser les invites dans la console", + "Never resize avatars": "Ne jamais redimensionner les avatars", + "Show avatar filenames": "Afficher les noms de fichier des avatars", + "Import Card Tags": "Importer les balises de carte", + "Confirm message deletion": "Confirmer la suppression du message", + "Spoiler Free Mode": "Mode sans spoiler", + "Auto-swipe": "Glissement automatique", + "Minimum generated message length": "Longueur minimale du message généré", + "Blacklisted words": "Mots en liste noire", + "Blacklisted word count to swipe": "Nombre de mots en liste noire à glisser", + "Reload Chat": "Recharger la discussion", + "Search Settings": "Paramètres de recherche", + "Disabled": "Désactivé", + "Automatic (PC)": "Automatique (PC)", + "Enabled": "Activé", + "Simple": "Simple", + "Advanced": "Avancé", + "Disables animations and transitions": "Désactive les animations et transitions", + "removes blur from window backgrounds": "Supprime le flou des arrière-plans de fenêtre", + "Remove text shadow effect": "Supprimer l'effet d'ombre du texte", + "Reduce chat height, and put a static sprite behind the chat window": "Réduire la hauteur de la discussion et placer un sprite statique derrière la fenêtre de discussion", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Afficher toujours la liste complète des éléments de contexte Actions de message pour les messages de discussion, au lieu de les cacher derrière '...' ", + "Alternative UI for numeric sampling parameters with fewer steps": "Interface utilisateur alternative pour les paramètres d'échantillonnage numérique avec moins d'étapes", + "Entirely unrestrict all numeric sampling parameters": "Déverrouiller entièrement tous les paramètres d'échantillonnage numérique", + "Time the AI's message generation, and show the duration in the chat log": "Chronométrer la génération de messages de l'IA et afficher la durée dans le journal de discussion", + "Show a timestamp for each message in the chat log": "Afficher un horodatage pour chaque message dans le journal de discussion", + "Show an icon for the API that generated the message": "Afficher une icône pour l'API qui a généré le message", + "Show sequential message numbers in the chat log": "Afficher les numéros de message séquentiels dans le journal de discussion", + "Show the number of tokens in each message in the chat log": "Afficher le nombre de jetons dans chaque message dans le journal de discussion", + "Single-row message input area. Mobile only, no effect on PC": "Zone de saisie de message sur une seule ligne. Mobile uniquement, aucun effet sur PC", + "In the Character Management panel, show quick selection buttons for favorited characters": "Dans le panneau de gestion des personnages, afficher des boutons de sélection rapide pour les personnages favoris", + "Show tagged character folders in the character list": "Afficher les dossiers de personnages tagués dans la liste de personnages", + "Play a sound when a message generation finishes": "Jouer un son lorsque la génération de message est terminée", + "Only play a sound when ST's browser tab is unfocused": "Jouer un son uniquement lorsque l'onglet du navigateur ST n'est pas centré", + "Reduce the formatting requirements on API URLs": "Réduire les exigences de formatage sur les URL d'API", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Demander d'importer les informations du monde/Lorebook pour chaque nouveau personnage avec Lorebook intégré. Si non cochée, un message bref sera affiché à la place", + "Restore unsaved user input on page refresh": "Restaurer les saisies utilisateur non enregistrées lors du rafraîchissement de la page", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Permettre le repositionnement de certains éléments de l'interface utilisateur en les faisant glisser. PC uniquement, aucun effet sur mobile", + "MovingUI preset. Predefined/saved draggable positions": "Préréglage MovingUI. Positions prédéfinies/enregistrées pouvant être déplacées", + "Save movingUI changes to a new file": "Enregistrer les modifications de MovingUI dans un nouveau fichier", + "Apply a custom CSS style to all of the ST GUI": "Appliquer un style CSS personnalisé à toute l'interface utilisateur de ST", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Utiliser la correspondance floue et rechercher des personnages dans la liste par tous les champs de données, pas seulement par une sous-chaîne de nom", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Si cochée et si la carte de personnage contient un remplacement d'invite (invite système), l'utiliser à la place", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Si cochée et si la carte de personnage contient un contournement de jailbreak (Instruction d'historique des messages), l'utiliser à la place", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Éviter le recadrage et le redimensionnement des images de personnage importées. Lorsque désactivé, recadrez/redimensionnez à 400x600", + "Show actual file names on the disk, in the characters list display only": "Afficher les noms de fichier réels sur le disque, dans l'affichage de la liste de personnages uniquement", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Proposer d'importer les balises de carte intégrées lors de l'importation de personnages. Sinon, les balises intégrées sont ignorées", + "Hide character definitions from the editor panel behind a spoiler button": "Masquer les définitions de personnages du panneau d'édition derrière un bouton spoiler", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Afficher un bouton dans la zone de saisie pour demander à l'IA de continuer (étendre) son dernier message", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Afficher des boutons fléchés sur le dernier message de discussion pour générer des réponses alternatives de l'IA. Sur PC et mobile", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Autoriser l'utilisation de gestes de balayage sur le dernier message de discussion pour déclencher la génération de glissement. Mobile uniquement, aucun effet sur PC", + "Save edits to messages without confirmation as you type": "Enregistrer les modifications apportées aux messages sans confirmation pendant la saisie", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Rendre la notation d'équations LaTeX et AsciiMath dans les messages de discussion. Propulsé par KaTeX", + "Disalow embedded media from other domains in chat messages": "Interdire les médias intégrés provenant d'autres domaines dans les messages de discussion", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Ignorer l'encodage et les caractères < et > dans le texte du message, permettant un sous-ensemble du balisage HTML ainsi que Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Autoriser les messages AI dans les groupes à contenir des lignes prononcées par d'autres membres du groupe", + "Requests logprobs from the API for the Token Probabilities feature": "Demande des logprobs de l'API pour la fonctionnalité des probabilités de jetons", + "Automatically reject and re-generate AI message based on configurable criteria": "Rejeter automatiquement et régénérer un message AI en fonction de critères configurables", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Activer la fonction de glissement automatique. Les paramètres de cette section n'ont d'effet que lorsque le glissement automatique est activé", + "If the generated message is shorter than this, trigger an auto-swipe": "Si le message généré est plus court que cela, déclenchez un glissement automatique", + "Reload and redraw the currently open chat": "Recharger et redessiner la discussion actuellement ouverte", + "Auto-Expand Message Actions": "Extension automatique des actions de message", + "Not Connected": "Non connecté", + "Persona Management": "Gestion de la personnalité", + "Persona Description": "Description de la personnalité", + "Your Persona": "Votre personnalité", + "Show notifications on switching personas": "Afficher les notifications lors du changement de personnalités", + "Blank": "Vide", + "In Story String / Chat Completion: Before Character Card": "Dans la chaîne d'histoire / Achèvement de la discussion : Avant la carte de personnage", + "In Story String / Chat Completion: After Character Card": "Dans la chaîne d'histoire / Achèvement de la discussion : Après la carte de personnage", + "In Story String / Prompt Manager": "Dans la chaîne d'histoire / Gestionnaire d'instructions", + "Top of Author's Note": "En haut de la note de l'auteur", + "Bottom of Author's Note": "En bas de la note de l'auteur", + "How do I use this?": "Comment puis-je utiliser ceci?", + "More...": "Plus...", + "Link to World Info": "Lien vers les informations sur le monde", + "Import Card Lore": "Importer la lore de la carte", + "Scenario Override": "Remplacement du scénario", + "Rename": "Renommer", + "Character Description": "Description du personnage", + "Creator's Notes": "Notes du créateur", + "A-Z": "A-Z", + "Z-A": "Z-A", + "Newest": "Plus récent", + "Oldest": "Plus ancien", + "Favorites": "Favoris", + "Recent": "Récent", + "Most chats": "Plus de discussions", + "Least chats": "Moins de discussions", + "Back": "Retour", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Remplacements d'instructions (Pour les API OpenAI/Claude/Scale, Fenêtre/OpenRouter, et le mode Instruct)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Insérez {{original}} dans l'un ou l'autre des champs pour inclure l'instruction par défaut respective des paramètres système.", + "Main Prompt": "Instruction principale", + "Jailbreak": "Jailbreak", + "Creator's Metadata (Not sent with the AI prompt)": "Métadonnées du créateur (Non envoyées avec l'instruction de l'IA)", + "Everything here is optional": "Tout ce qui se trouve ici est facultatif", + "Created by": "Créé par", + "Character Version": "Version du personnage", + "Tags to Embed": "Balises à intégrer", + "How often the character speaks in group chats!": "À quelle fréquence le personnage parle dans les discussions de groupe !", + "Important to set the character's writing style.": "Important de définir le style d'écriture du personnage.", + "ATTENTION!": "ATTENTION !", + "Samplers Order": "Ordre des échantillons", + "Samplers will be applied in a top-down order. Use with caution.": "Les échantillons seront appliqués dans un ordre de haut en bas. Utilisez avec prudence.", + "Repetition Penalty": "Pénalité de répétition", + "Rep. Pen. Range.": "Plage de pénalité de répétition", + "Rep. Pen. Freq.": "Fréquence de pénalité de répétition", + "Rep. Pen. Presence": "Présence de pénalité de répétition", + "Enter it in the box below:": "Entrez-le dans le champ ci-dessous :", + "separate with commas w/o space between": "séparez avec des virgules sans espace entre", + "Document": "Document", + "Suggest replies": "Suggérer des réponses", + "Show suggested replies. Not all bots support this.": "Afficher les réponses suggérées. Tous les bots ne prennent pas en charge cette fonctionnalité.", + "Use 'Unlocked Context' to enable chunked generation.": "Utilisez 'Contexte déverrouillé' pour activer la génération par tronçons.", + "It extends the context window in exchange for reply generation speed.": "Il étend la fenêtre de contexte en échange de la vitesse de génération des réponses.", + "Continue": "Continuer", + "CFG Scale": "Échelle CFG", + "Editing:": "Édition :", + "AI reply prefix": "Préfixe de réponse de l'IA", + "Custom Stopping Strings": "Chaînes d'arrêt personnalisées", + "JSON serialized array of strings": "Tableau de chaînes sérialisé JSON", + "words you dont want generated separated by comma ','": "mots que vous ne voulez pas générer séparés par des virgules ','", + "Extensions URL": "URL des extensions", + "API Key": "Clé API", + "Enter your name": "Entrez votre nom", + "Name this character": "Nommer ce personnage", + "Search / Create Tags": "Rechercher / Créer des balises", + "Describe your character's physical and mental traits here.": "Décrivez les traits physiques et mentaux de votre personnage ici.", + "This will be the first message from the character that starts every chat.": "Ce sera le premier message du personnage qui démarre chaque discussion.", + "Chat Name (Optional)": "Nom de la discussion (Facultatif)", + "Filter...": "Filtrer...", + "Search...": "Rechercher...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Tout contenu ici remplacera l'instruction principale par défaut utilisée pour ce personnage. (spécification v2 : système_prompt)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Tout contenu ici remplacera l'instruction de jailbreak par défaut utilisée pour ce personnage. (spécification v2 : post_history_instructions)", + "(Botmaker's name / Contact Info)": "(Nom du créateur du bot / Informations de contact)", + "(If you want to track character versions)": "(Si vous voulez suivre les versions du personnage)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Décrivez le bot, donnez des conseils d'utilisation ou répertoriez les modèles de discussion sur lesquels il a été testé. Cela s'affichera dans la liste des personnages.)", + "(Write a comma-separated list of tags)": "(Écrivez une liste de balises séparées par des virgules)", + "(A brief description of the personality)": "(Une brève description de la personnalité)", + "(Circumstances and context of the interaction)": "(Circonstances et contexte de l'interaction)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Exemples de dialogue de chat. Commencez chaque exemple par DÉBUT sur une nouvelle ligne.)", + "Injection text (supports parameters)": "Texte d'injection (prend en charge les paramètres)", + "Injection depth": "Profondeur de l'injection", + "Type here...": "Tapez ici...", + "Comma separated (required)": "Séparé par des virgules (requis)", + "Comma separated (ignored if empty)": "Séparé par des virgules (ignoré si vide)", + "What this keyword should mean to the AI, sent verbatim": "Ce que ce mot-clé devrait signifier pour l'IA, envoyé textuellement", + "Filter to Character(s)": "Filtrer par personnage(s)", + "Character Exclusion": "Exclusion de personnage", + "Inclusion Group": "Groupe d'inclusion", + "Only one entry with the same label will be activated": "Seule une entrée avec la même étiquette sera activée", + "-- Characters not found --": "-- Personnages non trouvés --", + "Not sent to the AI": "Non envoyé à l'IA", + "(This will be the first message from the character that starts every chat)": "(Ce sera le premier message du personnage qui démarre chaque discussion)", + "Not connected to API!": "Non connecté à l'API !", + "AI Response Configuration": "Configuration de la réponse de l'IA", + "AI Configuration panel will stay open": "Le panneau de configuration de l'IA restera ouvert", + "Update current preset": "Mettre à jour le préréglage actuel", + "Create new preset": "Créer un nouveau préréglage", + "Import preset": "Importer le préréglage", + "Export preset": "Exporter le préréglage", + "Delete the preset": "Supprimer le préréglage", + "Auto-select this preset for Instruct Mode": "Sélectionner automatiquement ce préréglage pour le mode Instruct", + "Auto-select this preset on API connection": "Sélectionner automatiquement ce préréglage lors de la connexion à l'API", + "NSFW block goes first in the resulting prompt": "Le bloc NSFW va en premier dans l'instruction résultante", + "Enables OpenAI completion streaming": "Active le streaming de complétion OpenAI", + "Wrap user messages in quotes before sending": "Envelopper les messages de l'utilisateur entre guillemets avant de les envoyer", + "Restore default prompt": "Restaurer l'instruction par défaut", + "New preset": "Nouveau préréglage", + "Delete preset": "Supprimer le préréglage", + "Restore default jailbreak": "Restaurer le jailbreak par défaut", + "Restore default reply": "Restaurer la réponse par défaut", + "Restore defaul note": "Restaurer la note par défaut", + "API Connections": "Connexions API", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Peut aider avec les mauvaises réponses en mettant en file d'attente uniquement les travailleurs approuvés. Peut ralentir le temps de réponse.", + "Clear your API key": "Effacer votre clé API", + "Refresh models": "Actualiser les modèles", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Obtenez votre jeton API OpenRouter en utilisant le flux OAuth. Vous serez redirigé vers openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Vérifie votre connexion API en envoyant un court message de test. Soyez conscient que vous serez crédité pour cela !", + "Create New": "Créer un nouveau", + "Edit": "Modifier", + "Locked = World Editor will stay open": "Verrouillé = l'éditeur de monde restera ouvert", + "Entries can activate other entries by mentioning their keywords": "Les entrées peuvent activer d'autres entrées en mentionnant leurs mots-clés", + "Lookup for the entry keys in the context will respect the case": "La recherche des clés d'entrée dans le contexte respectera la casse", + "If the entry key consists of only one word, it would not be matched as part of other words": "Si la clé de l'entrée se compose d'un seul mot, elle ne sera pas considérée comme faisant partie d'autres mots", + "Open all Entries": "Ouvrir toutes les entrées", + "Close all Entries": "Fermer toutes les entrées", + "Create": "Créer", + "Import World Info": "Importer les informations sur le monde", + "Export World Info": "Exporter les informations sur le monde", + "Delete World Info": "Supprimer les informations sur le monde", + "Duplicate World Info": "Dupliquer les informations sur le monde", + "Rename World Info": "Renommer les informations sur le monde", + "Refresh": "Actualiser", + "Primary Keywords": "Mots-clés principaux", + "Logic": "Logique", + "AND ANY": "ET TOUT", + "AND ALL": "ET TOUS", + "NOT ALL": "PAS TOUS", + "NOT ANY": "PAS DE TOUS", + "Optional Filter": "Filtre optionnel", + "New Entry": "Nouvelle entrée", + "Fill empty Memo/Titles with Keywords": "Remplir les mémos/titres vides avec des mots-clés", + "Save changes to a new theme file": "Enregistrer les modifications dans un nouveau fichier de thème", + "removes blur and uses alternative background color for divs": "supprime le flou et utilise une couleur de fond alternative pour les divs", + "AI Response Formatting": "Formatage de la réponse de l'IA", + "Change Background Image": "Changer l'image de fond", + "Extensions": "Extensions", + "Click to set a new User Name": "Cliquez pour définir un nouveau nom d'utilisateur", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Cliquez pour verrouiller votre personnalité sélectionnée sur la discussion actuelle. Cliquez à nouveau pour supprimer le verrou.", + "Click to set user name for all messages": "Cliquez pour définir le nom d'utilisateur pour tous les messages", + "Create a dummy persona": "Créer une personnalité factice", + "Character Management": "Gestion des personnages", + "Locked = Character Management panel will stay open": "Verrouillé = le panneau de gestion des personnages restera ouvert", + "Select/Create Characters": "Sélectionner/Créer des personnages", + "Token counts may be inaccurate and provided just for reference.": "Les comptages de jetons peuvent être inexacts et fournis uniquement à titre de référence.", + "Click to select a new avatar for this character": "Cliquez pour sélectionner une nouvelle avatar pour ce personnage", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Exemple : [{{user}} est une fille chat roumaine de 28 ans.]", + "Toggle grid view": "Basculer en mode grille", + "Add to Favorites": "Ajouter aux favoris", + "Advanced Definition": "Définition avancée", + "Character Lore": "Lore du personnage", + "Export and Download": "Exporter et Télécharger", + "Duplicate Character": "Dupliquer le personnage", + "Create Character": "Créer un personnage", + "Delete Character": "Supprimer le personnage", + "View all tags": "Voir toutes les balises", + "Click to set additional greeting messages": "Cliquez pour définir des messages de salutation supplémentaires", + "Show / Hide Description and First Message": "Afficher / Masquer la description et le premier message", + "Click to select a new avatar for this group": "Cliquez pour sélectionner une nouvelle avatar pour ce groupe", + "Set a group chat scenario": "Définir un scénario de discussion de groupe", + "Restore collage avatar": "Restaurer l'avatar du collage", + "Create New Character": "Créer un nouveau personnage", + "Import Character from File": "Importer un personnage à partir d'un fichier", + "Import content from external URL": "Importer du contenu depuis une URL externe", + "Create New Chat Group": "Créer un nouveau groupe de discussion", + "Characters sorting order": "Ordre de tri des personnages", + "Add chat injection": "Ajouter une injection de discussion", + "Remove injection": "Supprimer l'injection", + "Remove": "Supprimer", + "Select a World Info file for": "Sélectionnez un fichier d'informations sur le monde pour", + "Primary Lorebook": "Livre de lore principal", + "A selected World Info will be bound to this character as its own Lorebook.": "Une information mondiale sélectionnée sera liée à ce personnage comme son propre livre de lore.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Lors de la génération d'une réponse de l'IA, elle sera combinée avec les entrées d'un sélecteur d'informations mondiales global.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "L'exportation d'un personnage exporterait également le fichier de livre de lore sélectionné incorporé dans les données JSON.", + "Additional Lorebooks": "Livres de lore supplémentaires", + "Associate one or more auxillary Lorebooks with this character.": "Associer un ou plusieurs livres de lore auxiliaires à ce personnage.", + "NOTE: These choices are optional and won't be preserved on character export!": "REMARQUE : Ces choix sont facultatifs et ne seront pas conservés lors de l'exportation du personnage !", + "Rename chat file": "Renommer le fichier de discussion", + "Export JSONL chat file": "Exporter le fichier de discussion au format JSONL", + "Download chat as plain text document": "Télécharger la discussion sous forme de document texte brut", + "Delete chat file": "Supprimer le fichier de discussion", + "Delete tag": "Supprimer la balise", + "Translate message": "Traduire le message", + "Generate Image": "Générer une image", + "Narrate": "Narrer", + "Prompt": "Inciter", + "Create Bookmark": "Créer un signet", + "Copy": "Copier", + "Open bookmark chat": "Ouvrir la discussion du signet", + "Confirm": "Confirmer", + "Copy this message": "Copier ce message", + "Delete this message": "Supprimer ce message", + "Move message up": "Déplacer le message vers le haut", + "Move message down": "Déplacer le message vers le bas", + "Enlarge": "Agrandir", + "Temporarily disable automatic replies from this character": "Désactiver temporairement les réponses automatiques de ce personnage", + "Enable automatic replies from this character": "Activer les réponses automatiques de ce personnage", + "Trigger a message from this character": "Déclencher un message de ce personnage", + "Move up": "Monter", + "Move down": "Descendre", + "View character card": "Voir la carte du personnage", + "Remove from group": "Retirer du groupe", + "Add to group": "Ajouter au groupe", + "Add": "Ajouter", + "Abort request": "Annuler la demande", + "Send a message": "Envoyer un message", + "Ask AI to write your message for you": "Demander à l'IA d'écrire votre message pour vous", + "Continue the last message": "Continuer le dernier message", + "Bind user name to that avatar": "Lier le nom d'utilisateur à cet avatar", + "Select this as default persona for the new chats.": "Sélectionner ceci comme persona par défaut pour les nouvelles discussions.", + "Change persona image": "Changer l'image de la persona", + "Delete persona": "Supprimer la persona", + "Reduced Motion": "Mouvement réduit", + "Auto-select": "Sélection automatique", + "Automatically select a background based on the chat context": "Sélectionner automatiquement un arrière-plan en fonction du contexte de la discussion", + "Filter": "Filtre", + "Exclude message from prompts": "Exclure le message des invitations", + "Include message in prompts": "Inclure le message dans les invitations", + "Create checkpoint": "Créer un point de contrôle", + "Create Branch": "Créer une branche", + "Embed file or image": "Intégrer un fichier ou une image", + "UI Theme": "Thème de l'interface utilisateur", + "This message is invisible for the AI": "Ce message est invisible pour l'IA", + "Sampler Priority": "Priorité de l'échantillonneur", + "Ooba only. Determines the order of samplers.": "Ooba uniquement. Détermine l'ordre des échantillonneurs.", + "Load default order": "Charger l'ordre par défaut", + "Max Tokens Second": "Nombre maximum de jetons par seconde", + "CFG": "CFG", + "No items": "Aucun élément", + "Extras API key (optional)": "Clé API supplémentaire (facultatif)", + "Notify on extension updates": "Notifier les mises à jour de l'extension", + "Toggle character grid view": "Basculer vers la vue en grille des personnages", + "Bulk edit characters": "Édition en masse des personnages", + "Bulk delete characters": "Suppression en masse des personnages", + "Favorite characters to add them to HotSwaps": "Favoriser les personnages pour les ajouter aux HotSwaps", + "Underlined Text": "Texte souligné", + "Token Probabilities": "Probabilités de jetons", + "Close chat": "Fermer la discussion", + "Manage chat files": "Gérer les fichiers de discussion", + "Import Extension From Git Repo": "Importer une extension depuis un dépôt Git", + "Install extension": "Installer l'extension", + "Manage extensions": "Gérer les extensions", + "Tokens persona description": "Description des jetons", + "Most tokens": "La plupart des jetons", + "Least tokens": "Moins de jetons", + "Random": "Aléatoire", + "Skip Example Dialogues Formatting": "Ignorer le formatage des dialogues d'exemple", + "Import a theme file": "Importer un fichier de thème", + "Export a theme file": "Exporter un fichier de thème" + + +} \ No newline at end of file diff --git a/public/locales/is-is.json b/public/locales/is-is.json new file mode 100644 index 000000000..c25c3246c --- /dev/null +++ b/public/locales/is-is.json @@ -0,0 +1,863 @@ +{ + "clickslidertips": "Smelltu til að slá inn gildi handvirkt.", + "kobldpresets": "Fyrir stillingar Kobold", + "guikoboldaisettings": "Stillingar fyrir KoboldAI viðmót", + "novelaipreserts": "Fyrir stillingar NovelAI", + "default": "Sjálfgefið", + "openaipresets": "Fyrir stillingar OpenAI", + "text gen webio(ooba) presets": "Fyrir stillingar WebUI(ooba) textagerðar", + "response legth(tokens)": "Lengd svars (í táknum eða stöfum)", + "select": "Veldu", + "context size(tokens)": "Stærð samhengis (í táknum eða stöfum)", + "unlocked": "Opinn", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Aðeins úrvalsmódel styðja samhengisstærðir stærri en 4096 táknum. Auk þess aðeins ef þú veist hvað þú ert að gera.", + "rep.pen": "Endurtaka refsing", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "Staða á WI-skírteininu:\n🔵 Stöðugt\n🟢 Venjulegt\n❌ Slökkt", + "rep.pen range": "Svið endurtakarefsingar.", + "Temperature controls the randomness in token selection": "Hitastig stjórnar handahófi í vali táknanna:\n- Lágt hitastig (<1,0) leiðir til snjallara texta, með að gefa forgang (fyrir setningar og orð) táknum með hátt líkur.\n- Hátt hitastig (>1,0) aukar nýsköpun og fjölbreytni í úttakinu, með að veita táknum (setningum og orðum) með lága líkur meiri tækifæri.\nSettu gildið 1,0 fyrir upprunalegar líkur.", + "temperature": "Hitastig", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K stillir hámarksfjölda efsta táknanna sem hægt er að velja úr.", + "Top P (a.k.a. nucleus sampling)": "Top P (kallað kjarnaúrtaka) safnar saman öllum þeim efstu táknunum sem þarf til að ná ákveðnu prósentu hlutfalli.\nMeð öðrum orðum, ef efstu 2 táknin táknleggja 25%, og Top-P er 0,50, þá eru einungis þessi tvö tákn valin.\nSettu gildið 1,0 til að slökkva.", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Venjuleg P-úrtaka veitir forgang táknum út frá afvíkni þeirra frá meðalfarbandi innihaldsgjafa.\nTákn sem hafa hæfnisgildi þeirra nærri fastmörkuninni (til dæmis, 0,5), eru varðveitt, sem greinir þá sem hafa meðalupplýsingar.\nSettu gildið 1,0 til að slökkva.", + "Min P sets a base minimum probability": "Min P stillir grunnlægsta mögulegt líkur. Það er aðlagað út frá hæfnisgildi efstu táknanna.\nEf líkur fyrir efstu táknin eru 80%, og Min P er 0,1, aðeins tákn með líkur hærri en 8% eru tekin til greina.\nSettu gildið 0 til að slökkva.", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A stillir mörk fyrir táknaval samkvæmt ferningshæð hæstu tákns. \nEf Top A gildið er 0,2, og líkur fyrir hæstu táknið eru 50%, þá eru tákn með líkur lægri en 5% hafnað (0,2 * 0,5^2).\nSettu gildið 0 til að slökkva.", + "Tail-Free Sampling (TFS)": "Tail-Free Sampling (TFS) leitar að litlum líkurum í dreifingu,\nmeð því að greina breytingar á tækifærismöguleikum táknanna með öðrum orðum. Hægt er að halda áfram með tákn allt að mörk (t.d. 0,3) miðað við önnur afleiðingar.\nSem betur fer að gildi sem liggur nálægt 0, því fleiri tákn eru hafnað. Settu gildið 1,0 til að slökkva.", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Epsilon afskurður stillir lágmarks líkur þar sem tæknar eru útilokaðir frá sýnum.\nÍ einingum 1e-4; viðeigandi gildi er 3.\nSettu 0 til að slökkva.", + "Scale Temperature dynamically per token, based on the variation of probabilities": "Hiti er stilltur afkvörðunartíma á hvern tákni, byggt á mismunandi líkur.", + "Minimum Temp": "Lágmarks hitastig", + "Maximum Temp": "Hámarks hitastig", + "Exponent": "Útþensla", + "Mirostat Mode": "Mirostat Ham", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "Variability parameter for Mirostat outputs": "Breytileikabreyt fyrir Mirostat úttaki.", + "Learning rate of Mirostat": "Námshraði Mirostat.", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Styrkur samhæfðrar leitarmiðilsins. Settu gildið í 0 til að slökkva á CS.", + "Temperature Last": "Hitastig síðast", + "Use the temperature sampler last": "Notaðu hitastigsprófanirnar síðast. Þetta er almennt skynsamlegt.\nÞegar virkjun: Fyrst er valið sýn, þá er hitastigið beitt til að laga hlutfallslega líkur þeirra (tæknilega, logits).\nEf óvirkjað: Hitastigið er fyrst beitt til að laga hlutfallslegar líkur hvers tákns, þá er sýnt val sýnanna. \nAð slökkva á hitastigi síðast eykur líkur á tákn í endi dreifingarinnar, sem aukar möguleikana á ósamræmi.", + "LLaMA / Mistral / Yi models only": "Aðeins fyrir LLaMA / Mistral / Yi mótela. Vinsamlegast ákveðið viðeigandi skoðunaraðgerð fyrst.\nRöðir sem þú vilt ekki sjá í niðurstöðunum.\nEin röð á hverjum línu. Texti eða [tákna auðkenni].\nFleiri tákn byrja á bilum. Notaðu táknafjölda ef þú ert ekki viss.", + "Example: some text [42, 69, 1337]": "Dæmi:\nEitthvað texti\n[42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Leiðsögn óháð flokkara. Meiri hjálp kemur bráðar.", + "Scale": "Skala", + "GBNF Grammar": "GBNF málfræði", + "Usage Stats": "Nota tölfræði", + "Click for stats!": "Smelltu til að sjá tölfræði!", + "Backup": "Öryggisafrit", + "Backup your personas to a file": "Skráðu persónurnar þínar í skrá", + "Restore": "Endurheimta", + "Restore your personas from a file": "Endurheimta persónurnar þínar úr skrá", + "Type in the desired custom grammar": "Sláðu inn þær sérstakar málfræðireglur sem þú vilt", + "Encoder Rep. Pen.": "Endurtaka kóðara.", + "Smoothing Factor": "Jafnvægissfaktor", + "No Repeat Ngram Size": "Stærð Ngram án endurtekninga", + "Min Length": "Minnsti lengd", + "OpenAI Reverse Proxy": "Opinberri OAI endurvarp", + "Alternative server URL (leave empty to use the default value).": "Annar valkostur fyrir URL netþjónsinn (skilja autt til að nota sjálfgefna gildið).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Fjarlægðu raunverulega OAI API lykilinn þinn frá API töflunni FYRIR en þú skrifar eitthvað í þennan reit", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Við getum ekki veitt stuðning fyrir vandamál sem komast upp við notkun óopinbers OpenAI fyrirvara", + "Legacy Streaming Processing": "Heirleifð útsendingavinnsla", + "Enable this if the streaming doesn't work with your proxy": "Virkjaðu þetta ef útsendingin virkar ekki með fyrirvaranum þínum", + "Context Size (tokens)": "Stærð samhengis (í táknum)", + "Max Response Length (tokens)": "Hámarks lengd svörunar (í táknum)", + "Temperature": "Hitastig", + "Frequency Penalty": "Tíðnarefning", + "Presence Penalty": "Tilkoma refning", + "Top-p": "Topp-p", + "Display bot response text chunks as they are generated": "Birta bætir svarborðstextabrot þegar þau eru búnar til", + "Top A": "Topp A", + "Typical Sampling": "Venjuleg úrtaka", + "Tail Free Sampling": "Úrtaka án halda", + "Rep. Pen. Slope": "Skopplengi endurtekningarrefsingar", + "Single-line mode": "Eina línu hamur", + "Top K": "Topp K", + "Top P": "Topp P", + "Do Sample": "Gera úrtak", + "Add BOS Token": "Bæta við BOS tákninu", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Bættu við bos_token í upphafi fyrirspurnarinnar. Að slökkva á þessu getur gert svarin meira skapandi.", + "Ban EOS Token": "Banna EOS tákn", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Banna eos_token. Þetta skilur því að úrmyndin endi aldrei framleiðsluna of snemma", + "Skip Special Tokens": "Sleppa sérstökum táknum", + "Beam search": "Beimleit", + "Number of Beams": "Fjöldi beam", + "Length Penalty": "Lengdarrefning", + "Early Stopping": "Tímafrádráttur", + "Contrastive search": "Mótaákvörðun", + "Penalty Alpha": "Bóta alfa", + "Seed": "Sæti", + "Epsilon Cutoff": "Epsilon klippa", + "Eta Cutoff": "Eta klippa", + "Negative Prompt": "Neikvæð fyrirspurn", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (mode=1 er einungis fyrir llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat er hitamælir fyrir úttak hröðleika", + "Add text here that would make the AI generate things you don't want in your outputs.": "Bættu við texta sem myndi koma fram ef AI býr til hluti sem þú vilt ekki í úttökum þínum.", + "Phrase Repetition Penalty": "Endurtekningartíma refning", + "Preamble": "Forspil", + "Use style tags to modify the writing style of the output.": "Notaðu stílmerki til að breyta stílinum á úttakinu.", + "Banned Tokens": "Bannaðar tákna", + "Sequences you don't want to appear in the output. One per line.": "Röðir sem þú vilt ekki sjá í úttakinu. Ein á línu.", + "AI Module": "AI módel", + "Changes the style of the generated text.": "Breytir stíl úttaksins.", + "Used if CFG Scale is unset globally, per chat or character": "Notað ef CFG Scale er óbreytt heimsspekilega, í hverri spjalli eða staf.", + "Inserts jailbreak as a last system message.": "Setur fangelsi inn sem síðustu kerfisboð.", + "This tells the AI to ignore its usual content restrictions.": "Þetta segir AI til að hunsa venjulegar innihaldsbannanir sína.", + "NSFW Encouraged": "NSFW Hvetur", + "Tell the AI that NSFW is allowed.": "Segðu AI að NSFW sé leyfilegt.", + "NSFW Prioritized": "NSFW forgangs", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "Texti um NSFW prompt kemur fyrst í promptinu til að leggja áherslu á áhrif þess.", + "Streaming": "Straumur", + "Dynamic Temperature": "Dynamísk hitastig", + "Restore current preset": "Endurheimta núverandi forskrift", + "Neutralize Samplers": "Jafna samplara", + "Text Completion presets": "Forskriftir um textaútfyllingu", + "Documentation on sampling parameters": "Skráning um sýnishornseiginleika", + "Set all samplers to their neutral/disabled state.": "Setjið alla samplara í hlutlausan/óvirkan ástand.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Virkjið þetta aðeins ef stærð samhengis styður model meira en 4096 tákn.", + "Display the response bit by bit as it is generated": "Birta svarið bita fyrir bita þegar það er myndað.", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Myndið aðeins eina línu á hverju beiðni (aðeins KoboldAI, hunsað af KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Bannið lokatakn fyrir röð (EOS) (með KoboldCpp, og mögulega einnig önnur tákn með KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Gott fyrir saga að skrifa, en á ekki að nota fyrir spjall og leiðbeiningaform.", + "Enhance Definitions": "Styrkja skilgreiningar", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Notaðu þekkingarbas OAI til að styrkja skilgreiningar á almennum einstaklingum og þekktum skáldsögum.", + "Wrap in Quotes": "Pakkka í tilvitnunum", + "Wrap entire user message in quotes before sending.": "Pakkaðu allt notendaskilaboð í tilvitnunum áður en þau eru send.", + "Leave off if you use quotes manually for speech.": "Látu vera að nota þetta ef þú notar tilvitnunum handvirkt í tal.", + "Main prompt": "Höfuð tilvísun", + "The main prompt used to set the model behavior": "Aðal tilvísun sem notað er til að stilla hegðun módelið", + "NSFW prompt": "NSFW tilvísun", + "Prompt that is used when the NSFW toggle is on": "Tilvísun sem notað er þegar NSFW-togglinn er á", + "Jailbreak prompt": "Fangelsi tilvísun", + "Prompt that is used when the Jailbreak toggle is on": "Tilvísun sem notað er þegar Jailbreak-togglinn er á", + "Impersonation prompt": "Tilvísun að gersemi", + "Prompt that is used for Impersonation function": "Tilvísun sem notað er fyrir gersemi virkni", + "Logit Bias": "Logit bjóður", + "Helps to ban or reenforce the usage of certain words": "Hjálpar til að banna eða styrkja notkun ákveðinna orða", + "View / Edit bias preset": "Skoða/Breyta forhöfn", + "Add bias entry": "Bæta við forhöfn", + "Jailbreak activation message": "Skilaboð um virkjun fangelsis", + "Message to send when auto-jailbreak is on.": "Skilaboð til að senda þegar sjálfvirkri fangelsisvirkjun er á.", + "Jailbreak confirmation reply": "Svara viðvörðun um fangelsi", + "Bot must send this back to confirm jailbreak": "Bottinn þarf að senda þetta til baka til að staðfesta fangelsi", + "Character Note": "Sérstakt athugasemd", + "Influences bot behavior in its responses": "Hefur áhrif á hegðun bóta í svari sínu", + "Connect": "Tengjast", + "Test Message": "Prufu skilaboð", + "API": "Forritunargrensl", + "KoboldAI": "KoboldAI", + "Use Horde": "Nota Horde", + "API url": "URL API", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (OpenAI forritunargrensl)", + "Register a Horde account for faster queue times": "Skráðu þig á Horde reikning til að fá hraðari biðartíma", + "Learn how to contribute your idle GPU cycles to the Hord": "Lærðu hvernig þú getur gagnsett tómum GPU hringum þínum til Hord", + "Adjust context size to worker capabilities": "Aðlagaðu stærð samhengis til færni verkmanns", + "Adjust response length to worker capabilities": "Aðlagaðu lengd svars til færni verkmanns", + "API key": "API lykill", + "Tabby API key": "Tabby API lykill", + "Get it here:": "Fáðu það hér:", + "Register": "Skrá", + "TogetherAI Model": "SamanAI módel", + "Example: 127.0.0.1:5001": "Dæmi: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp (úttak þjónn)", + "Example: 127.0.0.1:8080": "Dæmi: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Dæmi: 127.0.0.1:11434", + "Ollama Model": "Ollama módel", + "Download": "Niðurhal", + "TogetherAI API Key": "SamanAI API lykill", + "-- Connect to the API --": "-- Tengjast forritunargrensl --", + "View my Kudos": "Skoða mín Kudos", + "Enter": "Slá inn", + "to use anonymous mode.": "til að nota dulin hátt.", + "For privacy reasons": "Út frá persónuverndarástæðum mun API lykillinn þinn verða falinn eftir endurhlaðningu síðunnar", + "Models": "Módel", + "Hold Control / Command key to select multiple models.": "Halda niðri Control / Command lykill til að velja margt módel.", + "Horde models not loaded": "Horde módel eru ekki hlaðin", + "Not connected...": "Ekki tengdur...", + "Novel API key": "Nýskrifa API lykill", + "Follow": "Fylgja", + "these directions": "þessum leiðbeiningum", + "to get your NovelAI API key.": "til að fá NovelAI API lykilinn þinn.", + "Enter it in the box below": "Sláðu hann inn í kassanum hér fyrir neðan", + "Novel AI Model": "Nýskrifandi AI módel", + "If you are using:": "Ef þú ert að nota:", + "oobabooga/text-generation-webui": "", + "Make sure you run it with": "Gakktu viss um að þú keyrir það með", + "flag": "merki", + "API key (optional)": "API lykill (valkvæmt)", + "Server url": "URL þjóns", + "Custom model (optional)": "Sérsniðið módel (valkvæmt)", + "Bypass API status check": "Hlaupa framhjá API stöðutík", + "Mancer AI": "", + "Use API key (Only required for Mancer)": "Notaðu API lykilinn (Aðeins krafist fyrir Mancer)", + "Blocking API url": "Loka API URL", + "Example: 127.0.0.1:5000": "Dæmi: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "Eldri API (fyrir OAI, engin flæði)", + "Bypass status check": "Hlaupa framhjá stöðutík", + "Streaming API url": "URL flæði API", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Dæmi: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Mancer API lykill", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Dæmi: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "til að fá OpenAI API lykilinn þinn.", + "Window AI Model": "Vindauga AI módel", + "OpenAI Model": "OpenAI módel", + "Claude API Key": "Claude API lykill", + "Get your key from": "Fáðu lykla þína frá", + "Anthropic's developer console": "Uppbyggingaraðilar Forritara stjórnborð", + "Slack and Poe cookies will not work here, do not bother trying.": "Slack og Poe kökur virka ekki hér, ekki reyna það.", + "Claude Model": "Claude módel", + "Scale API Key": "Lykill API fyrir Scale", + "Alt Method": "Aðferð Bakmenn", + "AI21 API Key": "Lykill API fyrir AI21", + "AI21 Model": "AI21 Módel", + "View API Usage Metrics": "Skoða notkun gagnafræði API", + "Show External models (provided by API)": "Sýna ytri módel (veitt af API)", + "Bot": "Bottur:", + "Allow fallback routes": "Leyfa bakfallssvæði", + "Allow fallback routes Description": "Veldur hlutleysa vélbúnaðarinn við val þinn ef valið módel getur ekki uppfyllt beiðni þína.", + "OpenRouter API Key": "Lykill API fyrir OpenRouter", + "Connect to the API": "Tengjast við API", + "OpenRouter Model": "OpenRouter Módel", + "View Remaining Credits": "Skoða eftirvinnandi trúnaðarorð", + "Click Authorize below or get the key from": "Smellið á heimilda neðan eða fáið lykilinn frá", + "Auto-connect to Last Server": "Tengjast sjálfkrafa við síðustu framendurnar", + "View hidden API keys": "Skoða faldir API lyklar", + "Advanced Formatting": "Tæknifærni Snúningur", + "Context Template": "Umsjónarformaður Grunnur", + "AutoFormat Overrides": "Yfirskriftir sjálfvirkra snúninga", + "Disable description formatting": "Slökkva á lýsingu snúninga", + "Disable personality formatting": "Slökkva á persónuleika snúninga", + "Disable scenario formatting": "Slökkva á aðstæður snúninga", + "Disable example chats formatting": "Slökkva á mynd af snúningum", + "Disable chat start formatting": "Slökkva á chat start snúningum", + "Custom Chat Separator": "Sérsniðin skilji á milli spjalls", + "Replace Macro in Custom Stopping Strings": "Skiptu út í macro í sérsniðnum stoppa strengjum", + "Strip Example Messages from Prompt": "Skafa Dæmi Skilaboð frá Fyrirmælum", + "Story String": "Saga Snúningur", + "Example Separator": "Dæmi Skilji", + "Chat Start": "Chat Start", + "Activation Regex": "Virking Regex", + "Instruct Mode": "Leiðbeina Aðferð", + "Wrap Sequences with Newline": "Pakka Þrepi með Nýr lína", + "Include Names": "Innifalið Nöfn", + "Force for Groups and Personas": "Tvöng fyrir Hópa og Personas", + "System Prompt": "Kerfis Boð", + "Instruct Mode Sequences": "Leiðbeina Aðferð Þrepi", + "Input Sequence": "Innsetning Þrepi", + "Output Sequence": "Úttak Þrepi", + "First Output Sequence": "Fyrsta Úttak Þrepi", + "Last Output Sequence": "Síðasta Úttak Þrepi", + "System Sequence Prefix": "Kerfis Þrepi Forstafur", + "System Sequence Suffix": "Kerfis Þrepi Atviksorð", + "Stop Sequence": "Stoppa Þrepi", + "Context Formatting": "Umsjónarformaður Snúningur", + "(Saved to Context Template)": "(Vistað á umsjónarformaðan Grunn)", + "Tokenizer": "Texta Dreifandi", + "None / Estimated": "Enginn / Áætlunar", + "Sentencepiece (LLaMA)": "Setningur (LLaMA)", + "Token Padding": "Texta Stoppa", + "Save preset as": "Vista forsnið sem", + "Always add character's name to prompt": "Alltaf bæta við nafni persónu til fyrirmæla", + "Use as Stop Strings": "Nota sem Stoppa Strengir", + "Bind to Context": "Binda við Umhverfi", + "Generate only one line per request": "Mynda aðeins ein lína fyrir hvern beiðni", + "Misc. Settings": "Ólíkar stillingar", + "Auto-Continue": "Sjálfvirk Forná", + "Collapse Consecutive Newlines": "Hrun Samtengd Nýjar Línur", + "Allow for Chat Completion APIs": "Leyfa fyrir spjall Loka APIs", + "Target length (tokens)": "Markaðarlengd (texti)", + "Keep Example Messages in Prompt": "Varðveita Dæmi Skilaboð í Fyrirmælum", + "Remove Empty New Lines from Output": "Fjarlægja Tómar Nýjar Línur úr Úttak", + "Disabled for all models": "Óvirk fyrir alla módel", + "Automatic (based on model name)": "Sjálfvirkt (byggt á nafni módel)", + "Enabled for all models": "Virk fyrir alla módel", + "Anchors Order": "Ankrar Raða", + "Character then Style": "Tegund síðan Stíll", + "Style then Character": "Stíll síðan Tegund", + "Character Anchor": "Tegund Ankrar", + "Style Anchor": "Stíll Ankrar", + "World Info": "Heimur Upplýsingar", + "Scan Depth": "Skan djúpt", + "Case-Sensitive": "Máli-í-litlum", + "Match Whole Words": "Samræma Öll Orð", + "Use global setting": "Nota heimsstillingu", + "Yes": "Já", + "No": "Nei", + "Context %": "Umhverfi %", + "Budget Cap": "Búgetti Kap", + "(0 = disabled)": "(0 = óvirk)", + "depth": "djúpt", + "Token Budget": "Texta Búgetti", + "budget": "búgetti", + "Recursive scanning": "Endurkvæm skannun", + "None": "Enginn", + "User Settings": "Notendastillingar", + "UI Mode": "UI Hamur", + "UI Language": "Tungumál", + "MovingUI Preset": "Fyrirbæri fyrir MovingUI", + "UI Customization": "UI Sérsniðning", + "Avatar Style": "Avatar Stíll", + "Circle": "Hring", + "Rectangle": "Ferhyrningur", + "Square": "Reitur", + "Chat Style": "Spjall Stíll", + "Default": "Sjálfgefið", + "Bubbles": "Bubblur", + "No Blur Effect": "Engin Slør Áhrif", + "No Text Shadows": "Engin Texta Skuggar", + "Waifu Mode": "Waifu Hamur", + "Message Timer": "Skilaboð Veggklukka", + "Model Icon": "Módel Tákn", + "# of messages (0 = disabled)": "# af skilaboðum (0 = óvirk)", + "Advanced Character Search": "Framfarin persónuleg leit", + "Allow {{char}}: in bot messages": "Leyfa {{char}}: í boðum botts", + "Allow {{user}}: in bot messages": "Leyfa {{user}}: í boðum botts", + "Show tags in responses": "Sýna merki í svörum", + "Aux List Field": "Auk Felti Listi", + "Lorebook Import Dialog": "Saga Bók Import Dæmi", + "MUI Preset": "Forsnið MUI:", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Ef stillt í nákvæmum skilgreiningum á persónum, verður þessi reitur sýndur í lista yfir persónur.", + "Relaxed API URLS": "Afslappaðar API URLS", + "Custom CSS": "Sérsniðin CSS", + "Default (oobabooga)": "Sjálfgefið (oobabooga)", + "Mancer Model": "Mancer Módel", + "API Type": "Tegund API", + "Aphrodite API key": "Aphrodite API lykill", + "Relax message trim in Groups": "Slaka á skurðboðum í hópum", + "Characters Hotswap": "Breyta persónum á hraða", + "Request token probabilities": "Beiðni um tóka líkur", + "Movable UI Panels": "Hreyfanlegar UI-pallar", + "Reset Panels": "Endurstilla pallar", + "UI Colors": "UI Litrar", + "Main Text": "Aðaltexti", + "Italics Text": "Skáletraður texti", + "Quote Text": "Tilvitnunartexti", + "Shadow Color": "Skuggalitur", + "FastUI BG": "Hraðská FASTUI", + "Blur Tint": "Skugga þint", + "Font Scale": "Leturstærð", + "Blur Strength": "Mýkur styrkur", + "Text Shadow Width": "Breidd textaskugga", + "UI Theme Preset": "Forstillingu um þema", + "Power User Options": "Möguleikar kraftnotanda", + "Swipes": "Strjúkun", + "Miscellaneous": "Ýmislegt", + "Theme Toggles": "Þema takkar", + "Background Sound Only": "Bakgrunnsljóð einungis", + "Auto-load Last Chat": "Sjálfvirkur hleðsla síðustu spjalls", + "Auto-save Message Edits": "Sjálfvirkur vistun skilaboðabreytinga", + "Auto-fix Markdown": "Sjálfvirk lagfæring Markdown", + "Allow : in bot messages": "Leyfa: í boðum botts", + "Auto-scroll Chat": "Sjálfvirkur rúlla spjall", + "Render Formulas": "Render Formúlur", + "Send on Enter": "Senda á Enter", + "Always disabled": "Alltaf óvirkur", + "Automatic (desktop)": "Sjálfvirkur (skjáborð)", + "Always enabled": "Alltaf virkur", + "Debug Menu": "Aðgerða valmynd", + "Restore User Input": "Endurheimta notenda inntak", + "Character Handling": "Meðhöndlun persónu", + "Example Messages Behavior": "Atriði hegðunar skilaboða", + "Gradual push-out": "Klifur aðeins út", + "Chat/Message Handling": "Meðhöndlun spjalls/skilaboða", + "Always include examples": "Alltaf innifæra dæmi", + "Never include examples": "Aldrei innifæra dæmi", + "Forbid External Media": "Banna ytri miðla", + "System Backgrounds": "Kerfis bakgrunnsmyndir", + "Name": "Nafn", + "Your Avatar": "Tíndur avatar", + "Extensions API:": "Viðbætur API:", + "SillyTavern-extras": "SillyTavern-aux", + "Auto-connect": "Sjálfvirk tenging", + "Active extensions": "Virkir viðbætur", + "Extension settings": "Viðbótarstillingar", + "Description": "Lýsing", + "First message": "Fyrsta skilaboð", + "Group Controls": "Hópastjórn", + "Group reply strategy": "Stefna svara í hóp", + "Natural order": "Náttúruleg röð", + "List order": "Listar röð", + "Allow self responses": "Leyfa sjálfsvör", + "Auto Mode": "Sjálfvirkur hamur", + "Add Members": "Bæta við meðlimum", + "Current Members": "Núverandi meðlimir", + "text": "texti", + "Delete": "Eyða", + "Cancel": "Hætta við", + "Advanced Defininitions": "Ítarleg skilgreiningar", + "Personality summary": "Samantekt persónuleika", + "A brief description of the personality": "Stutt lýsing á persónuleika", + "Scenario": "Atburðir", + "Circumstances and context of the dialogue": "Aðstæður og samhengi ræðunnar", + "Talkativeness": "Prátgjarnleiki", + "How often the chracter speaks in": "Hversu oft persónan talar í", + "group chats!": "hópa spjallar!", + "Shy": "Feiminn", + "Normal": "Venjulegur", + "Chatty": "Ógleðilegur", + "Examples of dialogue": "Dæmi um ræðu", + "Forms a personality more clearly": "Myndar persónuleika skýrara", + "Save": "Vista", + "World Info Editor": "Heimur Upplýsinga Ritari", + "New summary": "Ný samantekt", + "Export": "Flytja út", + "Delete World": "Eyða heimi", + "Chat History": "Spjall saga", + "Group Chat Scenario Override": "Hóp Spjall Ræningar Ræningar", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Allir meðlimir hópsins munu nota eftirfarandi atburðarás í stað þess sem er tilgreint í persónukortum sínum.", + "Keywords": "Lykilorð", + "Separate with commas": "Aðskilja með kommu", + "Secondary Required Keywords": "Aukakennd lykilorð krafist", + "Content": "Efnisatriði", + "What this keyword should mean to the AI": "Hvað þetta lykilorð ætti að þýða fyrir AI", + "Memo/Note": "Minnisblað/athugið", + "Not sent to AI": "Ekki sent til AI", + "Constant": "Fastur", + "Selective": "Valinn", + "Before Char": "Fyrir framan Char", + "After Char": "Eftir Char", + "Insertion Order": "Setja í röð", + "Tokens:": "Tákna:", + "Disable": "Slökkva", + "${characterName}": "${characterName}", + "CHAR": "CHAR", + "is typing": "skrifar...", + "Back to parent chat": "Aftur á yfirspjall", + "Save bookmark": "Vista bókamerki", + "Convert to group": "Breyta í hóp", + "Start new chat": "Hefja nýtt spjall", + "View past chats": "Skoða gamla spjöll", + "Delete messages": "Eyða skilaboðum", + "Impersonate": "Áhrifa af", + "Regenerate": "Endurnýja", + "PNG": "PNG", + "JSON": "JSON", + "presets": "Forstillingar", + "Message Sound": "Hljóð skilaboða", + "Author's Note": "Athugasemd höfundar", + "Send Jailbreak": "Senda fangabrot", + "Replace empty message": "Skipta út tómu skilaboði", + "Send this text instead of nothing when the text box is empty.": "Senda þennan texta í stað þess að ekki sé sent neitt þegar textareitinn er tómur.", + "NSFW avoidance prompt": "Leiðbeiningar um að forðast NSFW", + "Prompt that is used when the NSFW toggle is off": "Leiðbeiningar sem eru notaðar þegar NSFW snertingin er af", + "Advanced prompt bits": "Takkar fyrir útþráningar", + "World Info format": "Snið á heimur upplýsinga", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Færir virka færslur um heimsupplýsingar á undan en þær eru settar inn í leiðbeiningarnar. Notið {0} til að merkja stað þar sem efnið er sett inn.", + "Unrestricted maximum value for the context slider": "Ótakmarkað hámarksgildi fyrir samhengisslíðurinn", + "Chat Completion Source": "Heimild að fullvirkni spjalls", + "Avoid sending sensitive information to the Horde.": "Forðastu að senda viðkvæm gögn til Hórdans.", + "Review the Privacy statement": "Farið yfir Persónuverndarskýrsluna", + "Learn how to contribute your idel GPU cycles to the Horde": "Lærið hvernig þú getur aðstoðað með þínar ónýtar GPU lotur til Hórdans", + "Trusted workers only": "Aðeins treystir starfsmenn", + "For privacy reasons, your API key will be hidden after you reload the page.": "Útaf persónuverndarástæðum verður API lykillinn þinn falinn eftir að þú endurhlaðar síðunni.", + "-- Horde models not loaded --": "-- Hórdi myndir eru ekki hlaðnar --", + "Example: http://127.0.0.1:5000/api ": "Dæmi: http://127.0.0.1:5000/api", + "No connection...": "Engin tenging...", + "Get your NovelAI API Key": "Fáðu NovelAI API lykilinn þinn", + "KoboldAI Horde": "KoboldAI Hópur", + "Text Gen WebUI (ooba)": "Text Gen Vefnotendaviðmót (ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Fullvirkni spjalls (OpenAI, Claude, Gluggi/OpenRouter, Mælikvarði)", + "OpenAI API key": "OpenAI API lykill", + "Trim spaces": "Skera burt bilum", + "Trim Incomplete Sentences": "Skera burt ófullkomnar setningar", + "Include Newline": "Setja inn ný línu", + "Non-markdown strings": "Strengi sem ekki eru merktir með Markdown", + "Replace Macro in Sequences": "Skipta út í Macro í runum", + "Presets": "Forstillingar", + "Separator": "Aðskilnaður", + "Start Reply With": "Byrja svar með", + "Show reply prefix in chat": "Sýna forseta svars í spjalli", + "Worlds/Lorebooks": "Heimar/Lorebooks", + "Active World(s)": "Virk(ir) heimur(ar)", + "Activation Settings": "Virkjunarstillingar", + "Character Lore Insertion Strategy": "Innsetningarstefna persónufræði", + "Sorted Evenly": "Raðað jafnt", + "Active World(s) for all chats": "Virk(ir) heim(ur) fyrir öll spjöll", + "-- World Info not found --": "-- Heimsupplýsingar finnast ekki --", + "--- Pick to Edit ---": "--- Veldu til að breyta ---", + "or": "eða", + "New": "Nýtt", + "Priority": "Forgangsraða", + "Custom": "Sérsniðið", + "Title A-Z": "Titill A-Ö", + "Title Z-A": "Titill Ö-A", + "Tokens ↗": "Tákn ↗", + "Tokens ↘": "Tákn ↘", + "Depth ↗": "Dýpt ↗", + "Depth ↘": "Dýpt ↘", + "Order ↗": "Raða ↗", + "Order ↘": "Raða ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "Kveikja% ↗", + "Trigger% ↘": "Kveikja% ↘", + "Order:": "Raða:", + "Depth:": "Dýpt:", + "Character Lore First": "Fyrst persónufræði", + "Global Lore First": "Fyrst heimsfræði", + "Recursive Scan": "Endurkvæm skoðun", + "Case Sensitive": "Skilgreiningarfræðilegt", + "Match whole words": "Nákvæm samræmi", + "Alert On Overflow": "Viðvörun um flæði", + "World/Lore Editor": "Heims-/fræðiritari", + "--- None ---": "--- Engin ---", + "Comma separated (ignored if empty)": "Kommu aðskilin (hunsað ef tómt)", + "Use Probability": "Nota líkur", + "Exclude from recursion": "Útiloka frá endurtekningu", + "Entry Title/Memo": "Titill færslu/Minnisblað", + "Position:": "Staða:", + "T_Position": "↑Char: Fyrir persónutákningar\n↓Char: Eftir persónutákningar\n↑AN: Fyrir athugasemdir höfundar\n↓AN: Eftir athugasemdir höfundar\n@D: Á dýpt", + "Before Char Defs": "Fyrir persónutákningar", + "After Char Defs": "Eftir persónutákningar", + "Before AN": "Fyrir AN", + "After AN": "Eftir AN", + "at Depth": "á Dýpt", + "Order": "Raða:", + "Probability:": "Líkur:", + "Update a theme file": "Uppfæra þemu skrá", + "Save as a new theme": "Vista sem nýja þemu", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Lágmarksfjöldi svörtu orða sem greindir eru til að valda sjálfvirku sveipi", + "Delete Entry": "Eyða færslu", + "User Message Blur Tint": "Dökkun á skilaboðum notenda", + "AI Message Blur Tint": "Dökkun á skilaboðum AI", + "Chat Backgrounds": "Bakgrunnsmyndir spjalls", + "Chat Background": "Bakgrunnur spjalls", + "UI Background": "Bakgrunnur viðmóts", + "Mad Lab Mode": "Heimur labba", + "Show Message Token Count": "Sýna fjölda tákn í skilaboðum", + "Compact Input Area (Mobile)": "Þjappað svæði fyrir inntak (farsími)", + "Zen Sliders": "Sláðar fyrir ró", + "UI Border": "Rammi viðmóts", + "Chat Style:": "Stíll spjalls:", + "Chat Width (PC)": "Breidd spjalls (PC)", + "Chat Timestamps": "Tímastimplar í spjalli", + "Tags as Folders": "Tákn sem möppur", + "Chat Truncation": "Spjallumstytting", + "(0 = unlimited)": "(0 = ótakmarkað)", + "Streaming FPS": "FPS í flæði", + "Gestures": "Tákn", + "Message IDs": "Skilaboðaauðkenni", + "Prefer Character Card Prompt": "Kosstu kvenkortu fyrirspurn", + "Prefer Character Card Jailbreak": "Kosstu kvenkortu fangabrot", + "Press Send to continue": "Ýttu á Senda til að halda áfram", + "Quick 'Continue' button": "Fljótar 'Halda áfram' hnappur", + "Log prompts to console": "Skráðu boð í tölvuna", + "Never resize avatars": "Aldrei breyta stærðinni á merkjum", + "Show avatar filenames": "Sýna nöfn merkja", + "Import Card Tags": "Flytja inn kortaáhöfn", + "Confirm message deletion": "Staðfesta eyðingu skilaboða", + "Spoiler Free Mode": "Leynir ókeypis ham", + "Auto-swipe": "Sjálfvirkur sveip", + "Minimum generated message length": "Lágmarks lengd á mynduðum skilaboðum", + "Blacklisted words": "Svört orð", + "Blacklisted word count to swipe": "Fjöldi svörtra orða til að sveipa", + "Reload Chat": "Endurhlaða spjalli", + "Search Settings": "Leitaðu í stillingum", + "Disabled": "Öruggað", + "Automatic (PC)": "Sjálfvirkt (PC)", + "Enabled": "Virkjað", + "Simple": "Einfalt", + "Advanced": "Ítarlegt", + "Disables animations and transitions": "Óvirkjaður aðgerðir og yfirgangur", + "removes blur from window backgrounds": "Fjarlægðu fyrirbærið frá bakgrunnsmyndum glugga", + "Remove text shadow effect": "Fjarlægðu textaskugga", + "Reduce chat height, and put a static sprite behind the chat window": "Minnkaðu hæð spjallsins og settu fastan myndsprite á eftir spjallglugganum", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Sýna alltaf fulla listann yfir hluti efnis í boðum um skilaboð, frekar en að fela þá fyrir aftan '...'", + "Alternative UI for numeric sampling parameters with fewer steps": "Valkostur UI fyrir talna sýnaeiginleika með færri skrefum", + "Entirely unrestrict all numeric sampling parameters": "Helt ótakmarka allar tölulegar sýnaeiginleika", + "Time the AI's message generation, and show the duration in the chat log": "Tímaðu framleiðslu skilaboða AI og sýndu varaktina í spjall skránni", + "Show a timestamp for each message in the chat log": "Sýna tímasetningu fyrir hvert skilaboð í spjall skránni", + "Show an icon for the API that generated the message": "Sýna tákn fyrir API sem búað til skilaboðin", + "Show sequential message numbers in the chat log": "Sýna röðuð skilaboðanúmer í spjall skránni", + "Show the number of tokens in each message in the chat log": "Sýna fjölda tákn í hverju skilaboði í spjall skránni", + "Single-row message input area. Mobile only, no effect on PC": "Einn röð skilaboða innskots svæði. Aðeins fyrir farsíma, engin áhrif á PC", + "In the Character Management panel, show quick selection buttons for favorited characters": "Í stjórnborði persónu stjórnunar, sýna fljótsval hnappa fyrir uppáhalds persónur", + "Show tagged character folders in the character list": "Sýna tegundaðar persónumöppur í persónulista", + "Play a sound when a message generation finishes": "Spila hljóð þegar skilaboðaframleiðsla er lokið", + "Only play a sound when ST's browser tab is unfocused": "Spilaðu aðeins hljóð þegar vafrahnappurinn á ST er ekki miðaður", + "Reduce the formatting requirements on API URLs": "Minnkaðu kröfur um snið á API URL", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Biðja um að flytja inn heimurinn Info/Lorebook fyrir hverja nýja persónu með innbyggðan lorebook. Ef óskað er ekki verður sýnd stutta skilaboð í staðinn", + "Restore unsaved user input on page refresh": "Endurheimta óvistaða notendainnslegu viðbótina við endurnýjun síðu", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Leyfa endursetningu ákveðinna UI atriða með því að draga þau. Aðeins PC, engin áhrif á farsíma", + "MovingUI preset. Predefined/saved draggable positions": "MovingUI forskrift. Forstillingar/geymdir dragbærir staðsetningar", + "Save movingUI changes to a new file": "Vistaðu breytingar á MovingUI í nýrri skrá", + "Apply a custom CSS style to all of the ST GUI": "Beita sérstakri CSS stillingu fyrir allt ST GUI", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Notaðu óljós samræmi og leitaðu að persónum í listanum eftir öllum gagnasviðum, ekki bara með nafn hlutstreng", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Ef merkt er og kortið inniheldur framkallanatilbirtingu (kerfisframkallanir), notaðu það í staðinn", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Ef merkt er og kortið inniheldur fangabrotsskil, notaðu það í staðinn", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Forðastðu skörun og endurstærðar mótaðar persónumyndir. Þegar slökkt er á þeim skera/endurstæða til 400x600", + "Show actual file names on the disk, in the characters list display only": "Sýna raunveruleg nöfn skráa á diskinum, í lista yfir persónur sýna aðeins", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Biðja um að flytja inn innbyggðar kortaáhöfn við flytjanlegar persónur. Annars verða innbyggðar áhöfnir fyrirgefnar", + "Hide character definitions from the editor panel behind a spoiler button": "Fela skilgreiningar persónu frá ritstjórnarljós bak við spennulitann", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Sýna hnapp í innskráningar svæði til að biðja AI um að halda áfram (framlengja) síðustu skilaboðin", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Sýna örhnappa á síðustu skilaboðum í spjallinu til að búa til annan AI svarmöguleika. Bæði PC og farsími", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Leyfa notkun á sveipum á síðustu skilaboðum í spjallinu til að kalla fram sveiflugerð. Aðeins fyrir farsíma, engin áhrif á PC", + "Save edits to messages without confirmation as you type": "Vistaðu breytingar á skilaboðum án staðfestingar meðan þú skrifar", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Gera LaTeX og AsciiMath jöfnutímanótur í spjall skilaboðum. Aflað af KaTeX", + "Disalow embedded media from other domains in chat messages": "Banna innbyggða miðlun frá öðrum lénunum í spjall skilaboðum", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Sleppa kodunar og tengingar í texta skilaboða, leyfa hluta af HTML merkingu og Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Leyfa AI skilaboð í hópum að innihalda línur talaðar af öðrum hópmeðlimum", + "Requests logprobs from the API for the Token Probabilities feature": "Óskar logprobs frá API fyrir sýnileika áhlutum", + "Automatically reject and re-generate AI message based on configurable criteria": "Hafnaðu sjálfkrafa og endurheimtu AI skilaboð miðað við stillanlega skilyrði", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Virkjaðu sjálfvirka sveiflugerð. Stillingar í þessum hluta hafa aðeins áhrif þegar sjálfvirkur sveiflugerð er virk", + "If the generated message is shorter than this, trigger an auto-swipe": "Ef mynduðu skilaboðin eru styttri en þessi, kallaðu fram sjálfvirkar sveiflugerðar", + "Reload and redraw the currently open chat": "Endurhlaða og endurnýta núverandi opna spjall", + "Auto-Expand Message Actions": "Sjálfvirk auka boða aðgerðir", + "Not Connected": "Ekki tengt", + "Persona Management": "Stjórnun á persónu", + "Persona Description": "Lýsing persónu", + "Your Persona": "Þín persóna", + "Show notifications on switching personas": "Sýna tilkynningar við skipti á persónum", + "Blank": "Tómt", + "In Story String / Chat Completion: Before Character Card": "Í saga streng / Spjall lokun: Á undan persónukorti", + "In Story String / Chat Completion: After Character Card": "Í saga streng / Spjall lokun: Eftir persónukort", + "In Story String / Prompt Manager": "Í saga streng / Leiðbeinendur", + "Top of Author's Note": "Toppur höfundarathugasemda", + "Bottom of Author's Note": "Botn höfundarathugasemda", + "How do I use this?": "Hvernig notar ég þetta?", + "More...": "Meira...", + "Link to World Info": "Tengill á heimur upplýsingar", + "Import Card Lore": "Flytja inn kortaleður", + "Scenario Override": "Afbrotasögu Íhald", + "Rename": "Endurnefna", + "Character Description": "Lýsing á persónu", + "Creator's Notes": "Athugasemdir höfundar", + "A-Z": "A-Ö", + "Z-A": "Ö-A", + "Newest": "Nýjast", + "Oldest": "Eldst", + "Favorites": "Uppáhald", + "Recent": "Nýleg", + "Most chats": "Flest spjall", + "Least chats": "Minnst spjall", + "Back": "Aftur", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Kerfisframkallanir (Fyrir OpenAI/Claude/Scale API, Gluggi/OpenRouter, og Leiðbeina hættir)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Settu inn {{original}} í hvora kassa til að innifela viðkomandi sjálfgefna framkallan frá kerfisstillingum.", + "Main Prompt": "Höfuðkerfisframkallan", + "Jailbreak": "Fangabrot", + "Creator's Metadata (Not sent with the AI prompt)": "Upplýsingar höfundar (Ekki send með AI framkallan)", + "Everything here is optional": "Allt hér er valfrjálst", + "Created by": "Búið til af", + "Character Version": "Útgáfa á persónu", + "Tags to Embed": "Merkingar til að festa", + "How often the character speaks in group chats!": "Hversu oft persónan talar í hópspjallum!", + "Important to set the character's writing style.": "Mikilvægt að stilla skrifstíl persónunnar.", + "ATTENTION!": "ATHUGIÐ!", + "Samplers Order": "Röð Samplers", + "Samplers will be applied in a top-down order. Use with caution.": "Samplers verða beitt í röð frá toppi niður. Notaðu með varúð.", + "Repetition Penalty": "Endurtekningarbrot", + "Rep. Pen. Range.": "Staðla breytu. Endurtekningarbrot", + "Rep. Pen. Freq.": "Staðla tíðni. Endurtekningarbrot", + "Rep. Pen. Presence": "Til staðar. Endurtekningarbrot", + "Enter it in the box below:": "Sláðu það inn í kassann hér fyrir neðan:", + "separate with commas w/o space between": "aðskilið með kommum án bila milli", + "Document": "Skjal", + "Suggest replies": "Mæla með svörum", + "Show suggested replies. Not all bots support this.": "Sýna mæld svör. Allir botar styðja ekki þetta.", + "Use 'Unlocked Context' to enable chunked generation.": "Notaðu 'Læstur Samhengi' til að virkja kexlaframleiðslu.", + "It extends the context window in exchange for reply generation speed.": "Það útvíkur samhengisgluggann í stað hraða svarframleiðslu.", + "Continue": "Halda áfram", + "CFG Scale": "CFG Skala", + "Editing:": "Breytingar:", + "AI reply prefix": "AI svar forseti", + "Custom Stopping Strings": "Eigin stopp-strengir", + "JSON serialized array of strings": "JSON raðað fylki af strengjum", + "words you dont want generated separated by comma ','": "orð sem þú vilt ekki að framleiða aðskilin með kommu ','", + "Extensions URL": "Viðbót URL", + "API Key": "API Lykill", + "Enter your name": "Sláðu inn nafn þitt", + "Name this character": "Nefndu þessa persónu", + "Search / Create Tags": "Leitaðu / Búðu til merkingar", + "Describe your character's physical and mental traits here.": "Lýstu líkamlegum og andlegum einkennum persónunnar þinnar hér.", + "This will be the first message from the character that starts every chat.": "Þetta verður fyrsta skilaboðið frá persónunni sem byrjar á hverju spjalli.", + "Chat Name (Optional)": "Spjall Nafn (valkvæmt)", + "Filter...": "Sía...", + "Search...": "Leita...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Allt innihald hér verður að setja sjálfgefna aðalskrefið sem notast er við þessa persónu.", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Allt innihald hér verður að setja sjálfgefna fangabrotsávarpið sem notast er við þessa persónu.", + "(Botmaker's name / Contact Info)": "(Nafn og tengiliðir geranda)", + "(If you want to track character versions)": "(Ef þú vilt fylgjast með útgáfum persónu)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Lýstu bót, gefðu notkunartips eða listar spjallmynstrin sem það hefur verið prófað á. Þetta verður sýnt í persónulistanum.)", + "(Write a comma-separated list of tags)": "(Skrifaðu kommu aðskilnaðið lista af merkjum)", + "(A brief description of the personality)": "(Stutt lýsing á persónuleika)", + "(Circumstances and context of the interaction)": "(Aðstæður og samhengi samskipti)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Dæmi um spjallræðu. Byrjaðu hverja dæmi með BYRJA á nýrri línu.)", + "Injection text (supports parameters)": "Innsprauta texti (stuðlar viðföng)", + "Injection depth": "Dýpt innsprautu", + "Type here...": "Skrifaðu hér...", + "Comma separated (required)": "Koma aðskilið (krafist)", + "What this keyword should mean to the AI, sent verbatim": "Hvað þetta lykilorð ætti að þýða fyrir AI, sent bókstaflega", + "Filter to Character(s)": "Sía til Persónu(r)", + "Character Exclusion": "Persónuúteslutningur", + "Inclusion Group": "Innifólgur Hópur", + "Only one entry with the same label will be activated": "Aðeins ein skrá með sömu merki verður virk", + "-- Characters not found --": "-- Persónur finnast ekki --", + "Not sent to the AI": "Ekki sent til AI", + "(This will be the first message from the character that starts every chat)": "(Þetta verður fyrsta skilaboðið frá persónunni sem byrjar á hverju spjalli)", + "Not connected to API!": "Ekki tengt við API!", + "AI Response Configuration": "Stillingar á AI svar", + "AI Configuration panel will stay open": "AI stillingar ramma verða opnar", + "Update current preset": "Uppfæra núverandi forskrift", + "Create new preset": "Búa til nýjan forskrift", + "Import preset": "Flytja inn forskrift", + "Export preset": "Flytja út forskrift", + "Delete the preset": "Eyða forskriftinni", + "Auto-select this preset for Instruct Mode": "Sjálfvalið þessi forskrift fyrir Leiðbeina háttur", + "Auto-select this preset on API connection": "Sjálfvalið þessi forskrift við API tengingu", + "NSFW block goes first in the resulting prompt": "NSFW kubbur fer fyrst í útkomufraekjuna", + "Enables OpenAI completion streaming": "Virkjar OpenAI útkomuflæði", + "Wrap user messages in quotes before sending": "Loka notendaskilaboðum í fyrir sendingu", + "Restore default prompt": "Endurheimta sjálfgefna leiðbeiningar", + "New preset": "Ný stilling", + "Delete preset": "Eyða stillingu", + "Restore default jailbreak": "Endurheimta sjálfgefna fangabrjót", + "Restore default reply": "Endurheimta sjálfgefna svar", + "Restore defaul note": "Endurheimta sjálfgefna athugasemd", + "API Connections": "Tengingar við API", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Getur hjálpað við slæm svör með því að biðra bara um samþykktum verkamönnum. Getur hægjað á svari tíma.", + "Clear your API key": "Hreinsa API lykilinn þinn", + "Refresh models": "Endurnýja líkön", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Fáðu API lykilinn þinn fyrir OpenRouter með því að nota OAuth strauminn. Þú verður endurvísað(ð/ur) á openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Sannreynir API tengingu þína með því að senda stutt skilaboð til að prófa. Vertu meðvituð(ur/ur) um að þú færð fyrir það!", + "Create New": "Búa til nýtt", + "Edit": "Breyta", + "Locked = World Editor will stay open": "Læst = Heimur ritstjóra verður opinn", + "Entries can activate other entries by mentioning their keywords": "Færslur geta virkjað aðrar færslur með því að nefna lykilorð þeirra", + "Lookup for the entry keys in the context will respect the case": "Leit að lyklum færslunnar í samhengi mun virða málið", + "If the entry key consists of only one word, it would not be matched as part of other words": "Ef lykill færslunnar samanstendur af aðeins einni orði, verður hann ekki samið sem hluti af öðrum orðum", + "Open all Entries": "Opna allar færslur", + "Close all Entries": "Loka öllum færslum", + "Create": "Búa til", + "Import World Info": "Flytja inn heiminn", + "Export World Info": "Flytja út heiminn", + "Delete World Info": "Eyða heiminum", + "Duplicate World Info": "Tvöföld heimurinn", + "Rename World Info": "Endurnefna heiminn", + "Refresh": "Endurnýja", + "Primary Keywords": "Aðal orðlyklar", + "Logic": "Rökhugsun", + "AND ANY": "OG, HVERGI", + "AND ALL": "OG, ALLT", + "NOT ALL": "EKKI ALLT", + "NOT ANY": "EKKI HVERGI", + "Optional Filter": "Frjálst síur", + "New Entry": "Ný færsla", + "Fill empty Memo/Titles with Keywords": "Fylla tóma minnispunkta/Heiti með lykilorðum", + "Save changes to a new theme file": "Vista breytingar í nýtt þema skjal", + "removes blur and uses alternative background color for divs": "fjarlægir þjöppu og notar annað bakgrunnslit fyrir divs", + "AI Response Formatting": "Útlit svars frá AI", + "Change Background Image": "Breyta bakgrunnsmynd", + "Extensions": "Viðbætur", + "Click to set a new User Name": "Smelltu til að stilla nýjan notandanafn", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Smelltu til að lássetja valda persónu þína í núverandi spjalli. Smelltu aftur til að fjarlægja læsuna.", + "Click to set user name for all messages": "Smelltu til að stilla notendanafn fyrir öll skilaboð", + "Create a dummy persona": "Búa til falsa persónu", + "Character Management": "Stjórnun persónu", + "Locked = Character Management panel will stay open": "Læst = Paneel stjórnunar persónu verður opinn", + "Select/Create Characters": "Velja/Búa til persónur", + "Token counts may be inaccurate and provided just for reference.": "Táknatala getur verið ónákvæm og veitt bara til viðmiðunar.", + "Click to select a new avatar for this character": "Smelltu til að velja nýja avatar fyrir þessa persónu", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Dæmi: [{{user}} er 28 ára gömul Rúmensk köttatík.]", + "Toggle grid view": "Skipti um líkamlega sýn", + "Add to Favorites": "Bæta í uppáhald", + "Advanced Definition": "Ítarleg skilgreining", + "Character Lore": "Persónu Saga", + "Export and Download": "Flytja út og niðurhal", + "Duplicate Character": "Tvöfalda persónu", + "Create Character": "Búa til persónu", + "Delete Character": "Eyða persónu", + "View all tags": "Skoða allar merki", + "Click to set additional greeting messages": "Smelltu til að stilla viðbótarheilsuskilaboð", + "Show / Hide Description and First Message": "Sýna / Fela Lýsingu og Fyrsta Skilaboð", + "Click to select a new avatar for this group": "Smelltu til að velja nýja avatar fyrir þessa hóp", + "Set a group chat scenario": "Setja hópspjallsskipulag", + "Restore collage avatar": "Endurheimta samsettu avatar", + "Create New Character": "Búa til nýja persónu", + "Import Character from File": "Flytja inn persónu úr skrá", + "Import content from external URL": "Flytja inn efni frá ytri vefslóð", + "Create New Chat Group": "Búa til nýjan spjallhóp", + "Characters sorting order": "Raða röð persóna", + "Add chat injection": "Bæta við spjallarlykkju", + "Remove injection": "Fjarlægja lykkju", + "Remove": "Fjarlægja", + "Select a World Info file for": "Veldu heimsupplýsingaskrá fyrir", + "Primary Lorebook": "Aðal Saga Bók", + "A selected World Info will be bound to this character as its own Lorebook.": "Valin heimsupplýsingar verða tengdar þessari persónu sem eigin Saga Bók.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Þegar verið er að búa til svar frá AI, verður það sameinað við færslur frá almennum heimsupplýsingaval.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Til að flytja út persónu mun einnig verða valin Saga Bókaskrá eingöngu í JSON gögnunum.", + "Additional Lorebooks": "Viðbótar Saga Bækur", + "Associate one or more auxillary Lorebooks with this character.": "Tengja við einn eða fleiri aukahald Saga Bækur við þessa persónu.", + "NOTE: These choices are optional and won't be preserved on character export!": "ATHUGIÐ: Þessir valkostir eru valfrjálsir og verða ekki varðveittir við útflutning persónu!", + "Rename chat file": "Endurnefna spjallaskrá", + "Export JSONL chat file": "Flytja út JSONL spjallaskrá", + "Download chat as plain text document": "Niðurhala spjalli sem einfaldan textaskjal", + "Delete chat file": "Eyða spjallaskrá", + "Delete tag": "Eyða merki", + "Translate message": "Þýða skilaboð", + "Generate Image": "Búa til mynd", + "Narrate": "Segja frá", + "Prompt": "Ábending", + "Create Bookmark": "Búa til bókamerki", + "Copy": "Afrita", + "Open bookmark chat": "Opna spjall bókamerkis", + "Confirm": "Staðfesta", + "Copy this message": "Afrita þetta skilaboð", + "Delete this message": "Eyða þessum skilaboðum", + "Move message up": "Færa skilaboðin upp", + "Move message down": "Færa skilaboðin niður", + "Enlarge": "Stækka", + "Temporarily disable automatic replies from this character": "Tímabundið aftengja sjálfvirka svör frá þessari persónu", + "Enable automatic replies from this character": "Virkja sjálfvirka svör frá þessari persónu", + "Trigger a message from this character": "Kveikja á skilaboðum frá þessari persónu", + "Move up": "Færa upp", + "Move down": "Færa niður", + "View character card": "Skoða persónukort", + "Remove from group": "Fjarlægja úr hóp", + "Add to group": "Bæta við hóp", + "Add": "Bæta við", + "Abort request": "Hætta við beiðni", + "Send a message": "Senda skilaboð", + "Ask AI to write your message for you": "Biðja AI um að skrifa skilaboðin fyrir þig", + "Continue the last message": "Halda áfram síðustu skilaboðin", + "Bind user name to that avatar": "Tengja notendanafn við þann avatar", + "Select this as default persona for the new chats.": "Veldu þetta sem sjálfgefna persónu fyrir nýjar spjall.", + "Change persona image": "Breyta mynd persónu", + "Delete persona": "Eyða persónu", + "Reduced Motion": "Minnkaður hreyfing", + "Auto-select": "Sjálfval", + "Automatically select a background based on the chat context": "Velja sjálfkrafa bakgrunn út frá samhengi spjallsins", + "Filter": "Sía", + "Exclude message from prompts": "Útiloka skilaboð frá hvatningum", + "Include message in prompts": "Innifera skilaboð í hvatningum", + "Create checkpoint": "Búa til leiðarljós", + "Create Branch": "Búa til grein", + "Embed file or image": "Innlima skrá eða mynd", + "UI Theme": "Þema notendaviðmóts", + "This message is invisible for the AI": "Þessi skilaboð eru ósýnileg fyrir AI", + "Sampler Priority": "Forgangsraða rannsóknarbyssu", + "Ooba only. Determines the order of samplers.": "Aðeins Ooba. Ákvarðar röð rannsóknarbyssa.", + "Load default order": "Hlaða sjálfgefna röð", + "Max Tokens Second": "Hámarks tákna / sekúnda", + "CFG": "CFG", + "No items": "Engar atriði", + "Extras API key (optional)": "Aukastafi API lykill (valkvæmur)", + "Notify on extension updates": "Tilkynna um uppfærslur á viðbótum", + "Toggle character grid view": "Skipta um útlit á karakterkortum", + "Bulk edit characters": "Breyta mörgum persónum í einu", + "Bulk delete characters": "Eyða mörgum persónum í einu", + "Favorite characters to add them to HotSwaps": "Setja uppáhalds persónur í HotSwaps", + "Underlined Text": "Undirstrikaður texti", + "Token Probabilities": "Líkur á táknum", + "Close chat": "Loka spjalli", + "Manage chat files": "Stjórna spjallaskrám", + "Import Extension From Git Repo": "Flytja inn viðbót frá Git geymslu", + "Install extension": "Setja upp viðbót", + "Manage extensions": "Stjórna viðbótum", + "Tokens persona description": "Tákn lýsingar á persónu", + "Most tokens": "Flest tákn", + "Least tokens": "Minnst tákn", + "Random": "Handahófskennt", + "Skip Example Dialogues Formatting": "Sleppa sniði dæmishugmynda", + "Import a theme file": "Flytja inn þema skrá", + "Export a theme file": "Flytja út þema skrá" + + +} \ No newline at end of file diff --git a/public/locales/ja-jp.json b/public/locales/ja-jp.json index 623d8dd29..5bbe184fd 100644 --- a/public/locales/ja-jp.json +++ b/public/locales/ja-jp.json @@ -1,552 +1,862 @@ { - "UI Language": "言語", - "clickslidertips": "スライダーの右側の数字をクリックすると手動で入力できます。", - "kobldpresets": "Kobold 設定", - "guikoboldaisettings": "GUI KoboldAI 設定", - "novelaipreserts": "NovelAI 設定", + "clickslidertips": "手動で値を入力するにはクリックしてください。", + "kobldpresets": "Koboldのプリセット", + "guikoboldaisettings": "KoboldAIのGUI設定", + "novelaipreserts": "NovelAIのプリセット", "default": "デフォルト", - "openaipresets": "OpenAI 設定", - "text gen webio(ooba) presets": "テキスト生成WebUI(ooba) 設定", - "response legth(tokens)": "応答長(トークン数)", - "select": "選択 ", - "context size(tokens)": "コンテキストサイズ(トークン数)", - "unlocked": "解除", - "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "4096トークンより大きいコンテキストサイズをサポートするのは、一部のモデルのみです。このオプションを変更する前に、自分が何をしているかを理解してください。", - "rep.pen": "Rep. Pen.", - "rep.pen range": "Rep. Pen. 範囲", + "openaipresets": "OpenAIのプリセット", + "text gen webio(ooba) presets": "WebUI(ooba)のプリセット", + "response legth(tokens)": "応答の長さ(トークン数)", + "select": "選択", + "context size(tokens)": "コンテキストのサイズ(トークン数)", + "unlocked": "ロック解除", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "コンテキストサイズが4096トークンを超えるモデルのみがサポートされています。何をしているかわかっている場合にのみ増やしてください。", + "rep.pen": "繰り返しペナルティ", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "WIエントリステータス:🔵定数🟢通常❌無効", + "rep.pen range": "繰り返しペナルティの範囲", + "Temperature controls the randomness in token selection": "温度はトークン選択のランダム性を制御します", "temperature": "温度", - "Encoder Rep. Pen.": "エンコーダー Rep. Pen.", - "No Repeat Ngram Size": "Ngram の非重複サイズ", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top Kは選択できるトップトークンの最大量を設定します", + "Top P (a.k.a. nucleus sampling)": "Top P(別名核サンプリング)", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "典型的なPサンプリングは、セットの平均エントロピーからの偏差に基づいてトークンを優先します", + "Min P sets a base minimum probability": "Min Pは基本的な最小確率を設定します", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top Aは最高のトークン確率の二乗に基づいてトークン選択の閾値を設定します", + "Tail-Free Sampling (TFS)": "Tail-Freeサンプリング(TFS)", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "イプシロンカットオフは、サンプリング対象から除外されるトークンの下限確率を設定します", + "Scale Temperature dynamically per token, based on the variation of probabilities": "確率の変動に基づいて、トークンごとに温度を動的にスケーリングします", + "Minimum Temp": "最低温度", + "Maximum Temp": "最大温度", + "Exponent": "指数", + "Mirostat Mode": "Mirostatモード", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "Variability parameter for Mirostat outputs": "Mirostat出力の変動パラメータ", + "Learning rate of Mirostat": "Mirostatの学習率", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "コントラスティブサーチの正則化項の強度。CSを無効にするには0に設定します", + "Temperature Last": "最後の温度", + "Use the temperature sampler last": "最後に温度サンプラを使用します", + "LLaMA / Mistral / Yi models only": "LLaMA / Mistral / Yiモデルのみ", + "Example: some text [42, 69, 1337]": "例:いくつかのテキスト[42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "分類器フリーガイダンス。より役立つヒントが近日公開されます", + "Scale": "スケール", + "GBNF Grammar": "GBNF文法", + "Usage Stats": "使用状況統計", + "Click for stats!": "統計をクリック!", + "Backup": "バックアップ", + "Backup your personas to a file": "キャラクタをファイルにバックアップします", + "Restore": "復元", + "Restore your personas from a file": "ファイルからキャラクタを復元します", + "Type in the desired custom grammar": "必要なカスタム文法を入力してください", + "Encoder Rep. Pen.": "エンコーダー繰り返しペナルティ", + "Smoothing Factor": "平滑化係数", + "No Repeat Ngram Size": "繰り返しのないNgramサイズ", "Min Length": "最小長", - "OpenAI Reverse Proxy": "OpenAI 逆プロキシ", - "Alternative server URL (leave empty to use the default value).": "代替サーバーの URL (空白のままでデフォルト値を使用)。", - "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "このボックスに何かを入力する前に、APIパネルから本物のOAI APIキーを削除してください", - "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "非公式のOpenAIプロキシを使用して問題が発生した場合にはサポートを提供できません", - "Legacy Streaming Processing": "旧式のストリーミング処理", - "Enable this if the streaming doesn't work with your proxy": "ストリーミングがプロキシと互換性がない場合には、これを有効にしてください", - "Context Size (tokens)": "コンテキストサイズ(トークン数)", - "Max Response Length (tokens)": "最大応答長(トークン数)", - "Temperature": "温度", + "OpenAI Reverse Proxy": "OpenAIリバースプロキシ", + "Alternative server URL (leave empty to use the default value).": "代替サーバーのURL(デフォルト値を使用するには空白のままにしてください)。", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "このボックスに何か入力する前に、APIパネルから実際のOAI APIキーを削除してください", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "非公式のOpenAIプロキシを使用して問題が発生した場合、サポートを提供することができません", + "Legacy Streaming Processing": "レガシーストリーミング処理", + "Enable this if the streaming doesn't work with your proxy": "ストリーミングがプロキシで機能しない場合は、これを有効にします", + "Context Size (tokens)": "コンテキストサイズ(トークン数)", + "Max Response Length (tokens)": "最大応答長(トークン数)", "Frequency Penalty": "頻度ペナルティ", "Presence Penalty": "存在ペナルティ", - "Top-p": "Top-p", - "Display bot response text chunks as they are generated": "生成されたボットの応答テキストチャンクを表示します", - "Top A": "Top-a", + "Top-p": "トップp", + "Display bot response text chunks as they are generated": "生成されたときにボット応答テキストチャンクを表示します", + "Top A": "トップA", "Typical Sampling": "典型的なサンプリング", - "Tail Free Sampling": "テイルフリーサンプリング", - "Rep. Pen. Slope": "Rep. Pen. スロープ", - "Single-line mode": "シングルラインモード", - "Top K": "Top-k", - "Top P": "Top-p", - "Do Sample": "サンプリングする", + "Tail Free Sampling": "テールフリーサンプリング", + "Rep. Pen. Slope": "繰り返しペナルティスロープ", + "Single-line mode": "単一行モード", + "Top K": "トップK", + "Top P": "トップP", + "Do Sample": "サンプルを行う", "Add BOS Token": "BOSトークンを追加", - "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "プロンプトの先頭にbos_tokenを追加します。これを無効にすると、回答がよりクリエイティブになることがあります。", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "プロンプトの先頭にbos_tokenを追加します。これを無効にすると、返信がよりクリエイティブになります", "Ban EOS Token": "EOSトークンを禁止", - "Ban the eos_token. This forces the model to never end the generation prematurely": "eos_tokenを禁止します。これにより、モデルは生成を早期に終了することはなくなります。", - "Skip Special Tokens": "特殊トークンをスキップ", + "Ban the eos_token. This forces the model to never end the generation prematurely": "eos_tokenを禁止します。これにより、モデルが生成を早期に終了することがなくなります", + "Skip Special Tokens": "特別なトークンをスキップ", "Beam search": "ビームサーチ", - "Number of Beams": "ビーム数", + "Number of Beams": "ビームの数", "Length Penalty": "長さペナルティ", "Early Stopping": "早期停止", - "Contrastive search": "対照的探索", + "Contrastive search": "対照的な検索", "Penalty Alpha": "ペナルティアルファ", "Seed": "シード", - "Inserts jailbreak as a last system message.": "最後のシステムメッセージに越狱を挿入します。", - "This tells the AI to ignore its usual content restrictions.": "これにより、AIは通常のコンテンツ制限を無視するように指示されます。", - "NSFW Encouraged": "NSFW推奨", + "Epsilon Cutoff": "イプシロンカットオフ", + "Eta Cutoff": "エタカットオフ", + "Negative Prompt": "ネガティブプロンプト", + "Mirostat (mode=1 is only for llama.cpp)": "ミロスタット(mode=1はllama.cpp用)", + "Mirostat is a thermostat for output perplexity": "ミロスタットは出力の混乱度のためのサーモスタットです", + "Add text here that would make the AI generate things you don't want in your outputs.": "出力に望ましくないものを生成させるAIを作成するテキストをここに追加します。", + "Phrase Repetition Penalty": "フレーズの繰り返しペナルティ", + "Preamble": "前文", + "Use style tags to modify the writing style of the output.": "スタイルタグを使用して、出力の書き方を変更します。", + "Banned Tokens": "禁止されたトークン", + "Sequences you don't want to appear in the output. One per line.": "出力に表示したくないシーケンス。1行に1つ。", + "AI Module": "AIモジュール", + "Changes the style of the generated text.": "生成されたテキストのスタイルを変更します。", + "Used if CFG Scale is unset globally, per chat or character": "CFGスケールがグローバル、チャットごと、または文字ごとに設定されていない場合に使用されます", + "Inserts jailbreak as a last system message.": "最後のシステムメッセージとしてジェイルブレイクを挿入します。", + "This tells the AI to ignore its usual content restrictions.": "これにより、AIに通常のコンテンツ制限を無視するように指示されます。", + "NSFW Encouraged": "NSFWを推奨", "Tell the AI that NSFW is allowed.": "AIにNSFWが許可されていることを伝えます。", - "NSFW Prioritized": "NSFW優先", - "NSFW prompt text goes first in the prompt to emphasize its effect.": "NSFWプロンプトテキストは、効果を強調するために最初に表示されます。", + "NSFW Prioritized": "NSFWが優先されました", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "NSFWプロンプトテキストが効果を強調するために最初に表示されます。", "Streaming": "ストリーミング", - "Display the response bit by bit as it is generated.": "生成されると、レスポンスをビットごとに表示します。", - "When this is off, responses will be displayed all at once when they are complete.": "これをオフにすると、レスポンスは完了時に一度にすべて表示されます。", - "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "リクエストごとに 1 行のみ生成します (KoboldAI のみ、KoboldCpp では無視されます)。", - "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "End-of-Sequence (EOS) トークンを禁止します (KoboldCpp を使用し、場合によっては KoboldAI を使用する他のトークンも禁止します)。", - "Good for story writing, but should not be used for chat and instruct mode.": "ストーリーを書くのには適していますが、チャットや指示モードには使用しないでください。", - "Enhance Definitions": "定義を強化", - "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "公共人物および既知の架空のキャラクターの定義を強化するためにOAIの知識ベースを使用する", + "Dynamic Temperature": "動的温度", + "Restore current preset": "現在のプリセットを復元", + "Neutralize Samplers": "サンプラーを中立化する", + "Text Completion presets": "テキスト補完のプリセット", + "Documentation on sampling parameters": "サンプリングパラメータのドキュメント", + "Set all samplers to their neutral/disabled state.": "すべてのサンプラーを中立/無効の状態に設定します。", + "Only enable this if your model supports context sizes greater than 4096 tokens": "モデルが4096トークンを超えるコンテキストサイズをサポートしている場合にのみ有効にします", + "Display the response bit by bit as it is generated": "生成された応答をビット単位で表示します。", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "リクエストごとに1行のみ生成します(KoboldAIのみ、KoboldCppでは無視されます)。", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "シーケンスの末尾(EOS)トークンを禁止します(KoboldCppでは、KoboldAIの他のトークンも可能性があります)。", + "Good for story writing, but should not be used for chat and instruct mode.": "物語の執筆に適していますが、チャットや指示モードには使用しないでください。", + "Enhance Definitions": "定義の強化", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "OAIナレッジベースを使用して公共の人物や既知の架空のキャラクターの定義を強化します。", "Wrap in Quotes": "引用符で囲む", "Wrap entire user message in quotes before sending.": "送信前にユーザーメッセージ全体を引用符で囲みます。", - "Leave off if you use quotes manually for speech.": "手動で引用符を使用する場合は省略してください。", + "Leave off if you use quotes manually for speech.": "発言のために引用符を手動で使用する場合はオフにします。", "Main prompt": "メインプロンプト", - "The main prompt used to set the model behavior": "モデルの振る舞いを設定するために使用されるメインプロンプト", + "The main prompt used to set the model behavior": "モデルの動作を設定するために使用されるメインプロンプト", "NSFW prompt": "NSFWプロンプト", - "Prompt that is used when the NSFW toggle is on": "NSFWトグルがオンの場合に使用されるプロンプト", - "Jailbreak prompt": "越狱プロンプト", - "Prompt that is used when the Jailbreak toggle is on": "越狱トグルがオンの場合に使用されるプロンプト", + "Prompt that is used when the NSFW toggle is on": "NSFWトグルがオンになっているときに使用されるプロンプト", + "Jailbreak prompt": "ジェイルブレイクプロンプト", + "Prompt that is used when the Jailbreak toggle is on": "ジェイルブレイクトグルがオンになっているときに使用されるプロンプト", "Impersonation prompt": "なりすましプロンプト", "Prompt that is used for Impersonation function": "なりすまし機能に使用されるプロンプト", - "Logit Bias": "Logitバイアス", + "Logit Bias": "ログのバイアス", "Helps to ban or reenforce the usage of certain words": "特定の単語の使用を禁止または強化するのに役立ちます", - "View / Edit bias preset": "バイアスプリセットの表示/編集", + "View / Edit bias preset": "バイアスプリセットを表示/編集", "Add bias entry": "バイアスエントリを追加", - "Jailbreak activation message": "越狱アクティベーションメッセージ", - "Message to send when auto-jailbreak is on.": "自動越狱がオンの場合に送信するメッセージ。", - "Jailbreak confirmation reply": "越狱確認返信", - "Bot must send this back to confirm jailbreak": "ボットは越狱を確認するためにこれを送信する必要があります。", + "Jailbreak activation message": "ジェイルブレイク有効化メッセージ", + "Message to send when auto-jailbreak is on.": "自動ジェイルブレイクがオンの場合に送信するメッセージ。", + "Jailbreak confirmation reply": "ジェイルブレイク確認返信", + "Bot must send this back to confirm jailbreak": "ロボットはこれを送信してジェイルブレイクを確認する必要があります", "Character Note": "キャラクターノート", - "Influences bot behavior in its responses": "返信中のボットの振る舞いに影響を与えます", - "API": "API", + "Influences bot behavior in its responses": "返信でボットの動作に影響を与えます", + "Connect": "接続", + "Test Message": "テストメッセージ", + "API": "API", "KoboldAI": "KoboldAI", - "Use Horde": "ホルドを使用", + "Use Horde": "ホードを使用", "API url": "API URL", - "Register a Horde account for faster queue times": "より高速なキュータイムのために Horde アカウントを登録する", - "Learn how to contribute your idle GPU cycles to the Hord": "空いている GPU サイクルを Hord に貢献する方法を学ぶ", - "Adjust context size to worker capabilities": "ワーカー機能に合わせてコンテキストサイズを調整する", - "Adjust response length to worker capabilities": "ワーカー機能に合わせて応答長を調整する", - "API key": "API キー", - "Register": "登録する", - "For privacy reasons": "プライバシーのため、API キーはページをリロードするまで非表示になります", - "Model": "モデル", - "Hold Control / Command key to select multiple models.": "複数のモデルを選択するには、Control / Command キーを押してください。", - "Horde models not loaded": "Horde モデルがロードされていない", - "Not connected": "接続されていません", - "Novel API key": "NovelAI API キー", - "Follow": "以下の", - "these directions": "指示", - "to get your NovelAI API key.": "あなたの NovelAI API キーを取得するために。", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine(OpenAI APIエンドポイントのパッケージングモード)", + "Register a Horde account for faster queue times": "キュー待ち時間を短縮するためにHordeアカウントを登録する", + "Learn how to contribute your idle GPU cycles to the Hord": "アイドル状態のGPUサイクルをHordに寄付する方法を学ぶ", + "Adjust context size to worker capabilities": "ワーカーの能力に応じてコンテキストサイズを調整する", + "Adjust response length to worker capabilities": "ワーカーの能力に応じて応答の長さを調整する", + "API key": "APIキー", + "Tabby API key": "TabbyのAPIキー", + "Get it here:": "こちらから入手:", + "Register": "登録", + "TogetherAI Model": "TogetherAIモデル", + "Example: 127.0.0.1:5001": "例: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp(出力サーバー)", + "Example: 127.0.0.1:8080": "例: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "例: 127.0.0.1:11434", + "Ollama Model": "Ollamaモデル", + "Download": "ダウンロード", + "TogetherAI API Key": "TogetherAIのAPIキー", + "-- Connect to the API --": "-- APIに接続 --", + "View my Kudos": "私の称賛を表示", + "Enter": "入力", + "to use anonymous mode.": "匿名モードを使用するには。", + "For privacy reasons": "プライバシー保護のため、ページをリロードするとAPIキーが非表示になります。", + "Models": "モデル", + "Hold Control / Command key to select multiple models.": "複数のモデルを選択するには、コントロール/コマンドキーを押し続けてください。", + "Horde models not loaded": "Hordeモデルがロードされていません", + "Not connected...": "接続されていません...", + "Novel API key": "NovelAIのAPIキー", + "Follow": "フォロー", + "these directions": "これらの指示", + "to get your NovelAI API key.": "NovelAIのAPIキーを取得するために。", "Enter it in the box below": "以下のボックスに入力してください", - "Novel AI Model": "NovelAI モデル", - "No connection": "接続なし", + "Novel AI Model": "NovelAIモデル", + "If you are using:": "次のいずれかを使用している場合:", "oobabooga/text-generation-webui": "", - "Make sure you run it with": "必ず --extensions openai の引数を含めて起動してください", - "Blocking API url": "ブロッキング API URL", - "Streaming API url": "ストリーミング API URL", - "to get your OpenAI API key.": "あなたの OpenAI API キーを取得するために。", - "OpenAI Model": "OpenAI モデル", - "View API Usage Metrics": "API 使用メトリックスの表示", - "Bot": "ボット", - "Connect to the API": "API に接続", + "Make sure you run it with": "次のように実行していることを確認してください", + "flag": "フラグ", + "API key (optional)": "APIキー(オプション)", + "Server url": "サーバーURL", + "Custom model (optional)": "カスタムモデル(オプション)", + "Bypass API status check": "APIステータスのチェックをバイパスする", + "Mancer AI": "", + "Use API key (Only required for Mancer)": "APIキーを使用します(Mancerの場合のみ必須)", + "Blocking API url": "ブロッキングAPI URL", + "Example: 127.0.0.1:5000": "例: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "レガシーAPI(OAI以前のもの、ストリーミングなし)", + "Bypass status check": "ステータスのチェックをバイパスする", + "Streaming API url": "ストリーミングAPI URL", + "Example: ws://127.0.0.1:5005/api/v1/stream": "例: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "MancerのAPIキー", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "例: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "OpenAIのAPIキーを取得するために。", + "Window AI Model": "Window AIモデル", + "OpenAI Model": "OpenAIモデル", + "Claude API Key": "ClaudeのAPIキー", + "Get your key from": "キーを取得する", + "Anthropic's developer console": "Anthropicの開発者コンソール", + "Slack and Poe cookies will not work here, do not bother trying.": "SlackとPoeのクッキーはここでは機能しませんので、試すのはやめてください。", + "Claude Model": "Claudeモデル", + "Scale API Key": "ScaleのAPIキー", + "Alt Method": "代替手法", + "AI21 API Key": "AI21のAPIキー", + "AI21 Model": "AI21モデル", + "View API Usage Metrics": "API使用メトリクスを表示", + "Show External models (provided by API)": "外部モデルを表示(APIで提供される)", + "Bot": "ボット:", + "Allow fallback routes": "フォールバックルートを許可", + "Allow fallback routes Description": "選択したモデルが要求を満たせない場合、代替モデルが自動的に選択されます。", + "OpenRouter API Key": "OpenRouterのAPIキー", + "Connect to the API": "APIに接続", + "OpenRouter Model": "OpenRouterモデル", + "View Remaining Credits": "残高を表示", + "Click Authorize below or get the key from": "以下の[承認]をクリックするか、キーを取得する", "Auto-connect to Last Server": "前回のサーバーに自動接続", - "View hidden API keys": "非表示 API キーを表示", + "View hidden API keys": "隠しAPIキーを表示", "Advanced Formatting": "高度なフォーマット", - "AutoFormat Overrides": "自動フォーマットのオーバーライド", - "Disable description formatting": "説明フォーマットを無効にする", - "Disable personality formatting": "パーソナリティフォーマットを無効にする", - "Disable scenario formatting": "シナリオフォーマットを無効にする", - "Disable example chats formatting": "チャットの例のフォーマットを無効にする", - "Disable chat start formatting": "チャット開始フォーマットを無効にする", - "Custom Chat Separator": "カスタムチャットセパレーター", - "Instruct Mode": "インストラクトモード", - "Enabled": "有効", + "Context Template": "コンテキストテンプレート", + "AutoFormat Overrides": "自動フォーマットの上書き", + "Disable description formatting": "説明のフォーマットを無効にする", + "Disable personality formatting": "人格のフォーマットを無効にする", + "Disable scenario formatting": "シナリオのフォーマットを無効にする", + "Disable example chats formatting": "例のチャットのフォーマットを無効にする", + "Disable chat start formatting": "チャット開始のフォーマットを無効にする", + "Custom Chat Separator": "カスタムチャットセパレータ", + "Replace Macro in Custom Stopping Strings": "カスタム停止文字列内のマクロを置換する", + "Strip Example Messages from Prompt": "プロンプトから例のメッセージを削除する", + "Story String": "ストーリー文字列", + "Example Separator": "例のセパレータ", + "Chat Start": "チャット開始", + "Activation Regex": "アクティベーション正規表現", + "Instruct Mode": "指示モード", "Wrap Sequences with Newline": "シーケンスを改行でラップする", "Include Names": "名前を含める", + "Force for Groups and Personas": "グループと人物用の強制", "System Prompt": "システムプロンプト", - "Instruct Mode Sequences": "命令モードシーケンス", + "Instruct Mode Sequences": "指示モードシーケンス", "Input Sequence": "入力シーケンス", + "Output Sequence": "出力シーケンス", "First Output Sequence": "最初の出力シーケンス", "Last Output Sequence": "最後の出力シーケンス", - "System Sequence Prefix": "システムシーケンスプレフィックス", - "System Sequence Suffix": "システムシーケンスサフィックス", + "System Sequence Prefix": "システムシーケンスのプレフィックス", + "System Sequence Suffix": "システムシーケンスのサフィックス", "Stop Sequence": "停止シーケンス", - "Context Formatting": "コンテキストフォーマッティング", + "Context Formatting": "コンテキストのフォーマット", + "(Saved to Context Template)": "(コンテキストテンプレートに保存)", "Tokenizer": "トークナイザー", - "None / Estimated": "なし/推定", - "Sentencepiece (LLaMA)": "Sentencepiece(LLaMA)", - "Token Padding": "トークンパディング", - "Always add character's name to prompt": "常にキャラクター名をプロンプトに追加", - "Keep Example Messages in Prompt": "プロンプトに例示メッセージを保持", + "None / Estimated": "なし / 推定値", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "トークンのパディング", + "Save preset as": "プリセットを保存", + "Always add character's name to prompt": "プロンプトにキャラクターの名前を常に追加する", + "Use as Stop Strings": "ストップ文字列として使用", + "Bind to Context": "コンテキストにバインド", + "Generate only one line per request": "リクエストごとに1行のみ生成", + "Misc. Settings": "その他の設定", + "Auto-Continue": "自動継続", + "Collapse Consecutive Newlines": "連続する改行を折りたたむ", + "Allow for Chat Completion APIs": "チャット補完APIを許可", + "Target length (tokens)": "ターゲット長さ(トークン)", + "Keep Example Messages in Prompt": "プロンプトに例のメッセージを保持", "Remove Empty New Lines from Output": "出力から空の改行を削除", "Disabled for all models": "すべてのモデルで無効", "Automatic (based on model name)": "自動(モデル名に基づく)", "Enabled for all models": "すべてのモデルで有効", - "Anchors Order": "アンカーオーダー", - "Character then Style": "キャラクター、次にスタイル", - "Style then Character": "スタイル、次にキャラクター", + "Anchors Order": "アンカーの順序", + "Character then Style": "キャラクター後にスタイル", + "Style then Character": "スタイル後にキャラクター", "Character Anchor": "キャラクターアンカー", "Style Anchor": "スタイルアンカー", - "World Info": "NEEDS TRANSLATION", - "Scan Depth": "スキャン深度", + "World Info": "世界情報", + "Scan Depth": "スキャンの深さ", + "Case-Sensitive": "大文字と小文字を区別する", + "Match Whole Words": "完全一致", + "Use global setting": "グローバル設定を使用", + "Yes": "はい", + "No": "いいえ", + "Context %": "コンテキスト%", + "Budget Cap": "予算キャップ", + "(0 = disabled)": "(0 = 無効)", "depth": "深さ", "Token Budget": "トークン予算", "budget": "予算", "Recursive scanning": "再帰的スキャン", "None": "なし", "User Settings": "ユーザー設定", - "UI Customization": "UIカスタマイズ", + "UI Mode": "UIモード", + "UI Language": "UI言語", + "MovingUI Preset": "MovingUIプリセット", + "UI Customization": "UIのカスタマイズ", "Avatar Style": "アバタースタイル", - "Circle": "丸", - "Rectangle": "四角形", - "Chat Style": "チャットスタイル:", + "Circle": "円", + "Rectangle": "長方形", + "Square": "正方形", + "Chat Style": "チャットスタイル", "Default": "デフォルト", - "Bubbles": "吹き出し", - "Chat Width (PC)": "チャット幅(PC):", - "No Blur Effect": "ボケ効果なし", + "Bubbles": "バブル", + "No Blur Effect": "ぼかし効果なし", "No Text Shadows": "テキストシャドウなし", - "Waifu Mode": "♡ Waifuモード♡", + "Waifu Mode": "ワイフモード", "Message Timer": "メッセージタイマー", - "Characters Hotswap": "キャラクターのホットスワップ", + "Model Icon": "モデルアイコン", + "# of messages (0 = disabled)": "メッセージ数(0 = 無効)", + "Advanced Character Search": "高度なキャラクター検索", + "Allow {{char}}: in bot messages": "ボットメッセージ内の{{char}}:を許可", + "Allow {{user}}: in bot messages": "ボットメッセージ内の{{user}}:を許可", + "Show tags in responses": "応答でタグを表示", + "Aux List Field": "オプションリストフィールド", + "Lorebook Import Dialog": "Lorebookインポートダイアログ", + "MUI Preset": "MUIプリセット", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "高度なキャラクター定義で設定されている場合、このフィールドがキャラクターリストに表示されます。", + "Relaxed API URLS": "リラックスしたAPI URLS", + "Custom CSS": "カスタムCSS", + "Default (oobabooga)": "デフォルト(oobabooga)", + "Mancer Model": "マンサーモデル", + "API Type": "APIタイプ", + "Aphrodite API key": "アフロディーテAPIキー", + "Relax message trim in Groups": "グループ内のメッセージトリムを緩和する", + "Characters Hotswap": "キャラクターホットスワップ", + "Request token probabilities": "トークンの確率を要求", "Movable UI Panels": "移動可能なUIパネル", - "Reset Panels": "パネルをリセットする", + "Reset Panels": "パネルのリセット", "UI Colors": "UIの色", - "Main Text": "本文", - "Italics Text": "斜体テキスト", + "Main Text": "メインテキスト", + "Italics Text": "イタリックテキスト", "Quote Text": "引用テキスト", "Shadow Color": "シャドウカラー", "FastUI BG": "FastUI BG", - "Blur Tint": "ぼかし色合い", + "Blur Tint": "ぼかしティント", "Font Scale": "フォントスケール", - "Blur Strength": "ぼかしの強度", + "Blur Strength": "ぼかしの強さ", "Text Shadow Width": "テキストシャドウの幅", "UI Theme Preset": "UIテーマプリセット", "Power User Options": "パワーユーザーオプション", "Swipes": "スワイプ", + "Miscellaneous": "その他", + "Theme Toggles": "テーマトグル", "Background Sound Only": "背景音のみ", "Auto-load Last Chat": "最後のチャットを自動読み込み", - "Auto-save Message Edits": "メッセージの編集を自動保存", - "Auto-fix Markdown": "Markdownを自動修正", - "Allow : in bot messages": "ボットメッセージで「:」を許可する", - "Auto-scroll Chat": "チャット自動スクロール", + "Auto-save Message Edits": "メッセージ編集の自動保存", + "Auto-fix Markdown": "Markdownの自動修正", + "Allow : in bot messages": "ボットメッセージ内の:を許可", + "Auto-scroll Chat": "チャットの自動スクロール", "Render Formulas": "数式のレンダリング", - "Send on Enter": "エンター入力で送信", + "Send on Enter": "Enterキーで送信", "Always disabled": "常に無効", "Automatic (desktop)": "自動(デスクトップ)", "Always enabled": "常に有効", + "Debug Menu": "デバッグメニュー", + "Restore User Input": "ユーザー入力の復元", + "Character Handling": "キャラクター処理", + "Example Messages Behavior": "例のメッセージの振る舞い", + "Gradual push-out": "徐々にプッシュアウト", + "Chat/Message Handling": "チャット/メッセージの処理", + "Always include examples": "常に例を含める", + "Never include examples": "決して例を含めない", + "Forbid External Media": "外部メディアを禁止", + "System Backgrounds": "システムの背景", "Name": "名前", "Your Avatar": "あなたのアバター", - "Extensions API:": "拡張機能API:", + "Extensions API:": "拡張API:", "SillyTavern-extras": "SillyTavern-extras", "Auto-connect": "自動接続", "Active extensions": "アクティブな拡張機能", "Extension settings": "拡張機能の設定", "Description": "説明", "First message": "最初のメッセージ", - "Group Controls": "グループのコントロール", - "Group reply strategy": "グループの返信戦略", + "Group Controls": "グループコントロール", + "Group reply strategy": "グループ返信戦略", "Natural order": "自然な順序", "List order": "リストの順序", "Allow self responses": "自己応答を許可する", "Auto Mode": "自動モード", - "Add Members": "メンバーを追加", + "Add Members": "メンバーを追加する", "Current Members": "現在のメンバー", "text": "テキスト", "Delete": "削除", "Cancel": "キャンセル", "Advanced Defininitions": "高度な定義", - "Personality summary": "性格の概要", - "A brief description of the personality": "性格の簡単な説明", + "Personality summary": "人格の要約", + "A brief description of the personality": "人格の簡単な説明", "Scenario": "シナリオ", - "Circumstances and context of the dialogue": "対話の状況と文脈", - "Talkativeness": "おしゃべり度", - "How often the chracter speaks in": "グループチャットでの話し方", - "group chats!": "", - "Shy": "内気", + "Circumstances and context of the dialogue": "対話の状況とコンテキスト", + "Talkativeness": "話し好き", + "How often the chracter speaks in": "キャラクターが話す頻度", + "group chats!": "グループチャット!", + "Shy": "シャイ", "Normal": "普通", - "Chatty": "おしゃべりさん", + "Chatty": "おしゃべり", "Examples of dialogue": "対話の例", - "Forms a personality more clearly": "個性をより明確に形成する", + "Forms a personality more clearly": "人格をより明確に形成する", "Save": "保存", - "World Info Editor": "情報エディタ", - "New Entry": "新規エントリ", + "World Info Editor": "世界情報エディター", + "New summary": "新しい要約", "Export": "エクスポート", - "Delete World": "ワールドの削除", + "Delete World": "世界を削除", "Chat History": "チャット履歴", "Group Chat Scenario Override": "グループチャットシナリオのオーバーライド", - "All group members will use the following scenario text instead of what is specified in their character cards.": "すべてのグループメンバーは、キャラクターカードで指定されたものではなく、以下のシナリオテキストを使用します。", + "All group members will use the following scenario text instead of what is specified in their character cards.": "すべてのグループメンバーは、キャラクターカードで指定されているものの代わりに、次のシナリオテキストを使用します。", "Keywords": "キーワード", - "Separate with commas": "コンマで区切る", - "Secondary Required Keywords": "必須の秒要キーワード", + "Separate with commas": "カンマで区切る", + "Secondary Required Keywords": "2次必須キーワード", "Content": "内容", - "What this keyword should mean to the AI": "このキーワードがAIにとってどういう意味を持つべきか", + "What this keyword should mean to the AI": "このキーワードがAIにとってどのような意味を持つか", "Memo/Note": "メモ/ノート", - "Not sent to AI": "AIに送信されない", - "Constant": "定数", - "Selective": "選択", - "Before Char": "文字の前に", - "After Char": "文字の後に", + "Not sent to AI": "AIに送信されません", + "Constant": "一定", + "Selective": "選択的", + "Before Char": "文字の前", + "After Char": "文字の後", "Insertion Order": "挿入順", - "Tokens:": "トークン", - "Disable": "無効にする", + "Tokens:": "トークン:", + "Disable": "無効", "${characterName}": "${キャラクター名}", - "CHAR": "文字", + "CHAR": "キャラ", "is typing": "入力中...", "Back to parent chat": "親チャットに戻る", - "Save bookmark": "ブックマークに保存", + "Save bookmark": "ブックマークを保存", "Convert to group": "グループに変換", "Start new chat": "新しいチャットを開始", "View past chats": "過去のチャットを表示", "Delete messages": "メッセージを削除", - "Impersonate": "なりすます", + "Impersonate": "擬態する", "Regenerate": "再生成", "PNG": "PNG", "JSON": "JSON", "presets": "プリセット", "Message Sound": "メッセージ音", - "Author's Note": "作者の注記", - "Send Jailbreak": "NEEDS TRANSLATION", - "Replace empty message": "NEEDS TRANSLATION", - "Send this text instead of nothing when the text box is empty.": "NEEDS TRANSLATION", - "NSFW avoidance prompt": "NEEDS TRANSLATION", - "Prompt that is used when the NSFW toggle is off": "NEEDS TRANSLATION", - "Advanced prompt bits": "NEEDS TRANSLATION", - "World Info format template": "NEEDS TRANSLATION", - "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "NEEDS TRANSLATION", - "Unrestricted maximum value for the context slider": "NEEDS TRANSLATION", - "Chat Completion Source": "NEEDS TRANSLATION", - "Avoid sending sensitive information to the Horde.": "NEEDS TRANSLATION", - "Review the Privacy statement": "NEEDS TRANSLATION", - "Learn how to contribute your idel GPU cycles to the Horde": "NEEDS TRANSLATION", - "Trusted workers only": "NEEDS TRANSLATION", - "For privacy reasons, your API key will be hidden after you reload the page.": "NEEDS TRANSLATION", - "-- Horde models not loaded --": "NEEDS TRANSLATION", - "Example: http://127.0.0.1:5000/api ": "NEEDS TRANSLATION", - "No connection...": "NEEDS TRANSLATION", - "Get your NovelAI API Key": "NEEDS TRANSLATION", - "KoboldAI Horde": "NEEDS TRANSLATION", - "Text Gen WebUI (ooba)": "NEEDS TRANSLATION", - "NovelAI": "NEEDS TRANSLATION", - "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "NEEDS TRANSLATION", - "OpenAI API key": "NEEDS TRANSLATION", - "Trim spaces": "NEEDS TRANSLATION", - "Trim Incomplete Sentences": "NEEDS TRANSLATION", - "Include Newline": "NEEDS TRANSLATION", - "Non-markdown strings": "NEEDS TRANSLATION", - "Replace Macro in Sequences": "NEEDS TRANSLATION", - "Presets": "NEEDS TRANSLATION", - "Separator": "NEEDS TRANSLATION", - "Start Reply With": "NEEDS TRANSLATION", - "Show reply prefix in chat": "NEEDS TRANSLATION", - "Worlds/Lorebooks": "NEEDS TRANSLATION", - "Active World(s)": "NEEDS TRANSLATION", - "Character Lore Insertion Strategy": "NEEDS TRANSLATION", - "Sorted Evenly": "NEEDS TRANSLATION", - "Character Lore First": "NEEDS TRANSLATION", - "Global Lore First": "NEEDS TRANSLATION", - "-- World Info not found --": "NEEDS TRANSLATION", - "Recursive Scan": "NEEDS TRANSLATION", - "Case Sensitive": "NEEDS TRANSLATION", - "Match whole words": "NEEDS TRANSLATION", - "World/Lore Editor": "NEEDS TRANSLATION", - "--- None ---": "NEEDS TRANSLATION", - "Comma seperated (ignored if empty)": "NEEDS TRANSLATION", - "Use Probability": "NEEDS TRANSLATION", - "Exclude from recursion": "NEEDS TRANSLATION", - "Position:": "NEEDS TRANSLATION", - "Before Char Defs": "NEEDS TRANSLATION", - "After Char Defs": "NEEDS TRANSLATION", - "Before AN": "NEEDS TRANSLATION", - "After AN": "NEEDS TRANSLATION", - "Order:": "NEEDS TRANSLATION", - "Probability:": "NEEDS TRANSLATION", - "Delete Entry": "NEEDS TRANSLATION", - "User Message Blur Tint": "NEEDS TRANSLATION", - "AI Message Blur Tint": "NEEDS TRANSLATION", - "Chat Style:": "NEEDS TRANSLATION", - "Chat Width (PC):": "NEEDS TRANSLATION", - "Chat Timestamps": "NEEDS TRANSLATION", - "Message IDs": "NEEDS TRANSLATION", - "Prefer Character Card Prompt": "NEEDS TRANSLATION", - "Prefer Character Card Jailbreak": "NEEDS TRANSLATION", - "Press Send to continue": "NEEDS TRANSLATION", - "Log prompts to console": "NEEDS TRANSLATION", - "Never resize avatars": "NEEDS TRANSLATION", - "Show avatar filenames": "NEEDS TRANSLATION", - "Import Card Tags": "NEEDS TRANSLATION", - "Confirm message deletion": "NEEDS TRANSLATION", - "Spoiler Free Mode": "NEEDS TRANSLATION", - "Auto-swipe": "NEEDS TRANSLATION", - "Minimum generated message length": "NEEDS TRANSLATION", - "Blacklisted words": "NEEDS TRANSLATION", - "Blacklisted word count to swipe": "NEEDS TRANSLATION", - "Reload Chat": "NEEDS TRANSLATION", - "Not Connected": "NEEDS TRANSLATION", - "Persona Management": "NEEDS TRANSLATION", - "Persona Description": "NEEDS TRANSLATION", - "In Story String / Chat Completion: Before Character Card": "NEEDS TRANSLATION", - "In Story String / Chat Completion: After Character Card": "NEEDS TRANSLATION", - "Top of Author's Note": "NEEDS TRANSLATION", - "Bottom of Author's Note": "NEEDS TRANSLATION", - "How do I use this?": "NEEDS TRANSLATION", - "More...": "NEEDS TRANSLATION", - "Link to World Info": "NEEDS TRANSLATION", - "Import Card Lore": "NEEDS TRANSLATION", - "Scenario Override": "NEEDS TRANSLATION", - "Rename": "NEEDS TRANSLATION", - "Character Description": "NEEDS TRANSLATION", - "Creator's Notes": "NEEDS TRANSLATION", - "A-Z": "NEEDS TRANSLATION", - "Z-A": "NEEDS TRANSLATION", - "Newest": "NEEDS TRANSLATION", - "Oldest": "NEEDS TRANSLATION", - "Favorites": "NEEDS TRANSLATION", - "Recent": "NEEDS TRANSLATION", - "Most chats": "NEEDS TRANSLATION", - "Least chats": "NEEDS TRANSLATION", - "Back": "NEEDS TRANSLATION", - "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "NEEDS TRANSLATION", - "Insert {{original}} into either box to include the respective default prompt from system settings.": "NEEDS TRANSLATION", - "Main Prompt": "NEEDS TRANSLATION", - "Jailbreak": "NEEDS TRANSLATION", - "Creator's Metadata (Not sent with the AI prompt)": "NEEDS TRANSLATION", - "Everything here is optional": "NEEDS TRANSLATION", - "Created by": "NEEDS TRANSLATION", - "Character Version": "NEEDS TRANSLATION", - "Tags to Embed": "NEEDS TRANSLATION", - "How often the character speaks in group chats!": "NEEDS TRANSLATION", - "Important to set the character's writing style.": "NEEDS TRANSLATION", - "ATTENTION!": "NEEDS TRANSLATION", - "Samplers Order": "NEEDS TRANSLATION", - "Samplers will be applied in a top-down order. Use with caution.": "NEEDS TRANSLATION", - "Repetition Penalty": "NEEDS TRANSLATION", - "Epsilon Cutoff": "NEEDS TRANSLATION", - "Eta Cutoff": "NEEDS TRANSLATION", - "Rep. Pen. Range.": "NEEDS TRANSLATION", - "Rep. Pen. Freq.": "NEEDS TRANSLATION", - "Rep. Pen. Presence": "NEEDS TRANSLATION", - "Enter it in the box below:": "NEEDS TRANSLATION", - "separate with commas w/o space between": "NEEDS TRANSLATION", - "Document": "NEEDS TRANSLATION", - "Suggest replies": "NEEDS TRANSLATION", - "Show suggested replies. Not all bots support this.": "NEEDS TRANSLATION", - "Use 'Unlocked Context' to enable chunked generation.": "NEEDS TRANSLATION", - "It extends the context window in exchange for reply generation speed.": "NEEDS TRANSLATION", - "Continue": "NEEDS TRANSLATION", - "Editing:": "NEEDS TRANSLATION", - "AI reply prefix": "NEEDS TRANSLATION", - "Custom Stopping Strings": "NEEDS TRANSLATION", - "JSON serialized array of strings": "NEEDS TRANSLATION", - "words you dont want generated separated by comma ','": "NEEDS TRANSLATION", - "Extensions URL": "NEEDS TRANSLATION", - "API Key": "NEEDS TRANSLATION", - "Enter your name": "NEEDS TRANSLATION", - "Name this character": "NEEDS TRANSLATION", - "Search / Create Tags": "NEEDS TRANSLATION", - "Describe your character's physical and mental traits here.": "NEEDS TRANSLATION", - "This will be the first message from the character that starts every chat.": "NEEDS TRANSLATION", - "Chat Name (Optional)": "NEEDS TRANSLATION", - "Filter...": "NEEDS TRANSLATION", - "Search...": "NEEDS TRANSLATION", - "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "NEEDS TRANSLATION", - "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "NEEDS TRANSLATION", - "(Botmaker's name / Contact Info)": "NEEDS TRANSLATION", - "(If you want to track character versions)": "NEEDS TRANSLATION", - "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "NEEDS TRANSLATION", - "(Write a comma-separated list of tags)": "NEEDS TRANSLATION", - "(A brief description of the personality)": "NEEDS TRANSLATION", - "(Circumstances and context of the interaction)": "NEEDS TRANSLATION", - "(Examples of chat dialog. Begin each example with START on a new line.)": "NEEDS TRANSLATION", - "Injection text (supports parameters)": "NEEDS TRANSLATION", - "Injection depth": "NEEDS TRANSLATION", - "Type here...": "NEEDS TRANSLATION", - "Comma separated (required)": "NEEDS TRANSLATION", - "Comma separated (ignored if empty)": "NEEDS TRANSLATION", - "What this keyword should mean to the AI, sent verbatim": "NEEDS TRANSLATION", - "Not sent to the AI": "NEEDS TRANSLATION", - "(This will be the first message from the character that starts every chat)": "NEEDS TRANSLATION", - "Not connected to API!": "NEEDS TRANSLATION", - "AI Response Configuration": "NEEDS TRANSLATION", - "AI Configuration panel will stay open": "NEEDS TRANSLATION", - "Update current preset": "NEEDS TRANSLATION", - "Create new preset": "NEEDS TRANSLATION", - "Import preset": "NEEDS TRANSLATION", - "Export preset": "NEEDS TRANSLATION", - "Delete the preset": "NEEDS TRANSLATION", - "NSFW block goes first in the resulting prompt": "NEEDS TRANSLATION", - "Enables OpenAI completion streaming": "NEEDS TRANSLATION", - "Wrap user messages in quotes before sending": "NEEDS TRANSLATION", - "Restore default prompt": "NEEDS TRANSLATION", - "New preset": "NEEDS TRANSLATION", - "Delete preset": "NEEDS TRANSLATION", - "Restore default jailbreak": "NEEDS TRANSLATION", - "Restore default reply": "NEEDS TRANSLATION", - "Restore defaul note": "NEEDS TRANSLATION", - "API Connections": "NEEDS TRANSLATION", - "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "NEEDS TRANSLATION", - "Clear your API key": "NEEDS TRANSLATION", - "Refresh models": "NEEDS TRANSLATION", - "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "NEEDS TRANSLATION", - "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "NEEDS TRANSLATION", - "Create New": "NEEDS TRANSLATION", - "Edit": "NEEDS TRANSLATION", - "Locked = World Editor will stay open": "NEEDS TRANSLATION", - "Entries can activate other entries by mentioning their keywords": "NEEDS TRANSLATION", - "Lookup for the entry keys in the context will respect the case": "NEEDS TRANSLATION", - "If the entry key consists of only one word, it would not be matched as part of other words": "NEEDS TRANSLATION", - "Open all Entries": "NEEDS TRANSLATION", - "Close all Entries": "NEEDS TRANSLATION", - "Create": "NEEDS TRANSLATION", - "Import World Info": "NEEDS TRANSLATION", - "Export World Info": "NEEDS TRANSLATION", - "Delete World Info": "NEEDS TRANSLATION", - "Rename World Info": "NEEDS TRANSLATION", - "Save changes to a new theme file": "NEEDS TRANSLATION", - "removes blur and uses alternative background color for divs": "NEEDS TRANSLATION", - "If checked and the character card contains a prompt override (System Prompt), use that instead.": "NEEDS TRANSLATION", - "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead.": "NEEDS TRANSLATION", - "AI Response Formatting": "NEEDS TRANSLATION", - "Change Background Image": "NEEDS TRANSLATION", - "Extensions": "NEEDS TRANSLATION", - "Click to set a new User Name": "NEEDS TRANSLATION", - "Click to lock your selected persona to the current chat. Click again to remove the lock.": "NEEDS TRANSLATION", - "Click to set user name for all messages": "NEEDS TRANSLATION", - "Create a dummy persona": "NEEDS TRANSLATION", - "Character Management": "NEEDS TRANSLATION", - "Locked = Character Management panel will stay open": "NEEDS TRANSLATION", - "Select/Create Characters": "NEEDS TRANSLATION", - "Token counts may be inaccurate and provided just for reference.": "NEEDS TRANSLATION", - "Click to select a new avatar for this character": "NEEDS TRANSLATION", - "Add to Favorites": "NEEDS TRANSLATION", - "Advanced Definition": "NEEDS TRANSLATION", - "Character Lore": "NEEDS TRANSLATION", - "Export and Download": "NEEDS TRANSLATION", - "Duplicate Character": "NEEDS TRANSLATION", - "Create Character": "NEEDS TRANSLATION", - "Delete Character": "NEEDS TRANSLATION", - "View all tags": "NEEDS TRANSLATION", - "Click to set additional greeting messages": "NEEDS TRANSLATION", - "Show / Hide Description and First Message": "NEEDS TRANSLATION", - "Click to select a new avatar for this group": "NEEDS TRANSLATION", - "Set a group chat scenario": "NEEDS TRANSLATION", - "Restore collage avatar": "NEEDS TRANSLATION", - "Create New Character": "NEEDS TRANSLATION", - "Import Character from File": "NEEDS TRANSLATION", - "Import content from external URL": "NEEDS TRANSLATION", - "Create New Chat Group": "NEEDS TRANSLATION", - "Characters sorting order": "NEEDS TRANSLATION", - "Add chat injection": "NEEDS TRANSLATION", - "Remove injection": "NEEDS TRANSLATION", - "Remove": "NEEDS TRANSLATION", - "Select a World Info file for": "NEEDS TRANSLATION", - "Primary Lorebook": "NEEDS TRANSLATION", - "A selected World Info will be bound to this character as its own Lorebook.": "NEEDS TRANSLATION", - "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "NEEDS TRANSLATION", - "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "NEEDS TRANSLATION", - "Additional Lorebooks": "NEEDS TRANSLATION", - "Associate one or more auxillary Lorebooks with this character.": "NEEDS TRANSLATION", - "NOTE: These choices are optional and won't be preserved on character export!": "NEEDS TRANSLATION", - "Rename chat file": "NEEDS TRANSLATION", - "Export JSONL chat file": "NEEDS TRANSLATION", - "Download chat as plain text document": "NEEDS TRANSLATION", - "Delete chat file": "NEEDS TRANSLATION", - "Delete tag": "NEEDS TRANSLATION", - "Translate message": "NEEDS TRANSLATION", - "Generate Image": "NEEDS TRANSLATION", - "Narrate": "NEEDS TRANSLATION", - "Prompt": "NEEDS TRANSLATION", - "Create Bookmark": "NEEDS TRANSLATION", - "Copy": "NEEDS TRANSLATION", - "Open bookmark chat": "NEEDS TRANSLATION", - "Confirm": "NEEDS TRANSLATION", - "Copy this message": "NEEDS TRANSLATION", - "Delete this message": "NEEDS TRANSLATION", - "Move message up": "NEEDS TRANSLATION", - "Move message down": "NEEDS TRANSLATION", - "Enlarge": "NEEDS TRANSLATION", - "Temporarily disable automatic replies from this character": "NEEDS TRANSLATION", - "Enable automatic replies from this character": "NEEDS TRANSLATION", - "Trigger a message from this character": "NEEDS TRANSLATION", - "Move up": "NEEDS TRANSLATION", - "Move down": "NEEDS TRANSLATION", - "View character card": "NEEDS TRANSLATION", - "Remove from group": "NEEDS TRANSLATION", - "Add to group": "NEEDS TRANSLATION", - "Add": "NEEDS TRANSLATION", - "Abort request": "NEEDS TRANSLATION", - "Send a message": "NEEDS TRANSLATION", - "Ask AI to write your message for you": "NEEDS TRANSLATION", - "Continue the last message": "NEEDS TRANSLATION", - "Bind user name to that avatar": "NEEDS TRANSLATION", - "Select this as default persona for the new chats.": "NEEDS TRANSLATION", - "Change persona image": "NEEDS TRANSLATION", - "Delete persona": "NEEDS TRANSLATION" -} + "Author's Note": "著者の注意", + "Send Jailbreak": "Jailbreakを送信", + "Replace empty message": "空のメッセージを置換", + "Send this text instead of nothing when the text box is empty.": "テキストボックスが空の場合、何もない代わりにこのテキストを送信します。", + "NSFW avoidance prompt": "NSFW回避プロンプト", + "Prompt that is used when the NSFW toggle is off": "NSFWトグルがオフの場合に使用されるプロンプト", + "Advanced prompt bits": "高度なプロンプトビット", + "World Info format": "ワールド情報の形式", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "プロンプトに挿入する前に、アクティブ化されたワールド情報エントリをラップします。 コンテンツが挿入される場所を示すには、{0}を使用します。", + "Unrestricted maximum value for the context slider": "コンテキストスライダーの制限なしの最大値", + "Chat Completion Source": "チャット補完ソース", + "Avoid sending sensitive information to the Horde.": "ホルドに機密情報を送信しないでください。", + "Review the Privacy statement": "プライバシー声明を確認する", + "Learn how to contribute your idel GPU cycles to the Horde": "アイデルGPUサイクルをホルドに貢献する方法を学ぶ", + "Trusted workers only": "信頼されたワーカーのみ", + "For privacy reasons, your API key will be hidden after you reload the page.": "プライバシーの理由から、ページを再読み込みするとAPIキーが非表示になります。", + "-- Horde models not loaded --": "-- ホルドモデルがロードされていません --", + "Example: http://127.0.0.1:5000/api ": "例:http://127.0.0.1:5000/api", + "No connection...": "接続なし...", + "Get your NovelAI API Key": "NovelAI APIキーを取得する", + "KoboldAI Horde": "KoboldAIホルド", + "Text Gen WebUI (ooba)": "テキストGen WebUI(ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "チャット補完(OpenAI、Claude、Window/OpenRouter、Scale)", + "OpenAI API key": "OpenAI APIキー", + "Trim spaces": "スペースをトリミング", + "Trim Incomplete Sentences": "不完全な文をトリミング", + "Include Newline": "改行を含む", + "Non-markdown strings": "マークダウン以外の文字列", + "Replace Macro in Sequences": "シーケンス内のマクロを置換", + "Presets": "プリセット", + "Separator": "セパレーター", + "Start Reply With": "返信の開始", + "Show reply prefix in chat": "チャットで返信の接頭辞を表示", + "Worlds/Lorebooks": "ワールド/Lorebook", + "Active World(s)": "アクティブなワールド", + "Activation Settings": "アクティベーション設定", + "Character Lore Insertion Strategy": "キャラクターロア挿入戦略", + "Sorted Evenly": "均等に並べ替え", + "Active World(s) for all chats": "すべてのチャットのアクティブなワールド", + "-- World Info not found --": "-- ワールド情報が見つかりません --", + "--- Pick to Edit ---": "--- 編集するものを選択 ---", + "or": "または", + "New": "新規", + "Priority": "優先度", + "Custom": "カスタム", + "Title A-Z": "タイトルA-Z", + "Title Z-A": "タイトルZ-A", + "Tokens ↗": "トークン ↗", + "Tokens ↘": "トークン ↘", + "Depth ↗": "深さ ↗", + "Depth ↘": "深さ ↘", + "Order ↗": "順序 ↗", + "Order ↘": "順序 ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "トリガー% ↗", + "Trigger% ↘": "トリガー% ↘", + "Order:": "順序:", + "Depth:": "深さ:", + "Character Lore First": "キャラクターロアを最初に表示", + "Global Lore First": "グローバルロアを最初に表示", + "Recursive Scan": "再帰的スキャン", + "Case Sensitive": "大文字と小文字を区別する", + "Match whole words": "完全な単語の一致", + "Alert On Overflow": "オーバーフロー時に警告", + "World/Lore Editor": "ワールド/ロアの編集", + "--- None ---": "--- なし ---", + "Comma separated (ignored if empty)": "カンマ区切り(空の場合は無視)", + "Use Probability": "確率を使用", + "Exclude from recursion": "再帰から除外", + "Entry Title/Memo": "エントリータイトル/メモ", + "Position:": "位置:", + "T_Position": "↑キャラ:キャラクター定義の前\n↓キャラ:キャラクター定義の後\n↑AN:著者のメモの前\n↓AN:著者のメモの後\n@D:深さ", + "Before Char Defs": "キャラクター定義の前", + "After Char Defs": "キャラクター定義の後", + "Before AN": "著者のメモの前", + "After AN": "著者のメモの後", + "at Depth": "深さで", + "Order": "順序:", + "Probability:": "確率:", + "Update a theme file": "テーマファイルを更新", + "Save as a new theme": "新しいテーマとして保存", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "オートスワイプをトリガーするために検出されたブラックリストされた単語の最小数", + "Delete Entry": "エントリーを削除", + "User Message Blur Tint": "ユーザーメッセージのぼかし色", + "AI Message Blur Tint": "AIメッセージのぼかし色", + "Chat Backgrounds": "チャットの背景", + "Chat Background": "チャットの背景", + "UI Background": "UIの背景", + "Mad Lab Mode": "Mad Labモード", + "Show Message Token Count": "メッセージトークンの数を表示", + "Compact Input Area (Mobile)": "コンパクトな入力エリア(モバイル)", + "Zen Sliders": "禅のスライダー", + "UI Border": "UIの境界", + "Chat Style:": "チャットスタイル:", + "Chat Width (PC)": "チャット幅(PC)", + "Chat Timestamps": "チャットのタイムスタンプ", + "Tags as Folders": "タグをフォルダーとして", + "Chat Truncation": "チャットの切り捨て", + "(0 = unlimited)": "(0 = 無制限)", + "Streaming FPS": "ストリーミングFPS", + "Gestures": "ジェスチャー", + "Message IDs": "メッセージID", + "Prefer Character Card Prompt": "キャラクターカードのプロンプトを優先", + "Prefer Character Card Jailbreak": "キャラクターカードのJailbreakを優先", + "Press Send to continue": "'送信'を押して続行", + "Quick 'Continue' button": "迅速な「続行」ボタン", + "Log prompts to console": "プロンプトをコンソールに記録", + "Never resize avatars": "アバターを常にリサイズしない", + "Show avatar filenames": "アバターのファイル名を表示", + "Import Card Tags": "カードのタグをインポート", + "Confirm message deletion": "メッセージの削除を確認", + "Spoiler Free Mode": "スポイラーフリーモード", + "Auto-swipe": "オートスワイプ", + "Minimum generated message length": "生成されたメッセージの最小長", + "Blacklisted words": "ブラックリストされた単語", + "Blacklisted word count to swipe": "スワイプするブラックリストされた単語の数", + "Reload Chat": "チャットをリロード", + "Search Settings": "検索設定", + "Disabled": "無効", + "Automatic (PC)": "自動(PC)", + "Enabled": "有効", + "Simple": "シンプル", + "Advanced": "高度", + "Disables animations and transitions": "アニメーションとトランジションを無効にする", + "removes blur from window backgrounds": "ウィンドウの背景のぼかしを除去する", + "Remove text shadow effect": "テキストの影の効果を削除する", + "Reduce chat height, and put a static sprite behind the chat window": "チャットの高さを縮小し、チャットウィンドウの背後に静的なスプライトを配置する", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "チャットメッセージのメッセージアクションコンテキスト項目の完全なリストを常に表示し、それらを '...' の後ろに隠す代わりに", + "Alternative UI for numeric sampling parameters with fewer steps": "より少ないステップで数値サンプリングパラメーターの代替UI", + "Entirely unrestrict all numeric sampling parameters": "すべての数値サンプリングパラメーターの制限を完全に解除する", + "Time the AI's message generation, and show the duration in the chat log": "AIのメッセージ生成の時間を計測し、チャットログにその期間を表示する", + "Show a timestamp for each message in the chat log": "チャットログ内の各メッセージにタイムスタンプを表示する", + "Show an icon for the API that generated the message": "メッセージを生成したAPIのアイコンを表示する", + "Show sequential message numbers in the chat log": "チャットログに連続したメッセージ番号を表示する", + "Show the number of tokens in each message in the chat log": "チャットログ内の各メッセージのトークン数を表示する", + "Single-row message input area. Mobile only, no effect on PC": "一行のメッセージ入力エリア。モバイル専用で、PCには影響がありません", + "In the Character Management panel, show quick selection buttons for favorited characters": "キャラクター管理パネルで、お気に入りのキャラクター用の迅速な選択ボタンを表示する", + "Show tagged character folders in the character list": "キャラクターリストでタグ付きキャラクターフォルダーを表示する", + "Play a sound when a message generation finishes": "メッセージ生成が終了したときに音を再生する", + "Only play a sound when ST's browser tab is unfocused": "STのブラウザタブがフォーカスされていない場合にのみ音を再生する", + "Reduce the formatting requirements on API URLs": "APIのURLの書式要件を緩和する", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "埋め込み式の伝説の書を持つすべての新しいキャラクターのためにWorld Info/Lorebookをインポートするように問い合わせます。チェックされていない場合、代わりに簡潔なメッセージが表示されます", + "Restore unsaved user input on page refresh": "ページをリフレッシュすると、保存されていないユーザー入力を復元する", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "ドラッグして特定のUI要素の位置を変更できるようにする。PC専用で、モバイルには影響がありません", + "MovingUI preset. Predefined/saved draggable positions": "MovingUIプリセット。事前定義/保存されたドラッグ可能な位置", + "Save movingUI changes to a new file": "移動中のUI変更を新しいファイルに保存する", + "Apply a custom CSS style to all of the ST GUI": "ST GUI全体にカスタムCSSスタイルを適用する", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "曖昧な一致を使用し、名前の部分文字列ではなく、すべてのデータフィールドでリスト内のキャラクターを検索する", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "チェックされていてキャラクターカードにプロンプトオーバーライド(システムプロンプト)が含まれている場合、それを代わりに使用します", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "チェックされていてキャラクターカードにジェイルブレイクオーバーライド(投稿履歴指示)が含まれている場合、それを代わりに使用します", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "インポートされたキャラクター画像のトリミングとリサイズを避けます。オフにすると、400x600にトリミング/リサイズします", + "Show actual file names on the disk, in the characters list display only": "ディスク上の実際のファイル名を表示します。キャラクターリストの表示にのみ", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "キャラクターのインポート時に埋め込みカードタグのインポートを促します。それ以外の場合、埋め込みタグは無視されます", + "Hide character definitions from the editor panel behind a spoiler button": "スポイラーボタンの後ろのエディターパネルからキャラクターの定義を非表示にします", + "Show a button in the input area to ask the AI to continue (extend) its last message": "入力エリアにボタンを表示して、AIに最後のメッセージを続行(延長)するように依頼します", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "最後のチャットメッセージに矢印ボタンを表示して、代替のAI応答を生成します。PCとモバイルの両方", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "最後のチャットメッセージでスワイプジェスチャーを使用してスワイプ生成をトリガーできるようにします。モバイル専用で、PCには影響がありません", + "Save edits to messages without confirmation as you type": "入力時に確認なしでメッセージの編集を保存する", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "チャットメッセージでLaTeXおよびAsciiMathの数式表記をレンダリングします。KaTeXで動作します", + "Disallow embedded media from other domains in chat messages": "チャットメッセージの他のドメインからの埋め込みメディアを禁止する", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "メッセージテキスト内のエンコーディングおよび文字のスキップ。一部のHTMLマークアップおよびMarkdownを許可します", + "Allow AI messages in groups to contain lines spoken by other group members": "グループ内のAIメッセージに、他のグループメンバーによって話された行を含めることを許可する", + "Requests logprobs from the API for the Token Probabilities feature": "トークン確率機能のAPIからのlogprobsをリクエストします", + "Automatically reject and re-generate AI message based on configurable criteria": "設定可能な基準に基づいてAIメッセージを自動的に拒否して再生成します", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "自動スワイプ機能を有効にします。このセクションの設定は、自動スワイプが有効になっている場合にのみ効果があります", + "If the generated message is shorter than this, trigger an auto-swipe": "生成されたメッセージがこれよりも短い場合、自動スワイプをトリガーします", + "Reload and redraw the currently open chat": "現在開いているチャットを再読み込みして再描画する", + "Auto-Expand Message Actions": "メッセージアクションを自動展開する", + "Not Connected": "接続されていません", + "Persona Management": "ペルソナ管理", + "Persona Description": "ペルソナの説明", + "Your Persona": "あなたのペルソナ", + "Show notifications on switching personas": "ペルソナの切り替え時に通知を表示する", + "Blank": "空白", + "In Story String / Chat Completion: Before Character Card": "ストーリー文字列/チャット完了:キャラクターカードの前", + "In Story String / Chat Completion: After Character Card": "ストーリー文字列/チャット完了:キャラクターカードの後", + "In Story String / Prompt Manager": "ストーリー文字列/プロンプトマネージャー", + "Top of Author's Note": "作者の注意の上部", + "Bottom of Author's Note": "作者の注意の下部", + "How do I use this?": "これをどのように使用しますか?", + "More...": "詳細...", + "Link to World Info": "ワールド情報へのリンク", + "Import Card Lore": "カードの伝説をインポート", + "Scenario Override": "シナリオオーバーライド", + "Rename": "名前を変更", + "Character Description": "キャラクターの説明", + "Creator's Notes": "作者のメモ", + "A-Z": "ア-ン", + "Z-A": "ン-ア", + "Newest": "最新", + "Oldest": "最古", + "Favorites": "お気に入り", + "Recent": "最近", + "Most chats": "最も多いチャット", + "Least chats": "最も少ないチャット", + "Back": "戻る", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "プロンプトのオーバーライド(OpenAI/Claude/Scale APIs、Window/OpenRouter、およびInstructモード用)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "システム設定からの対応するデフォルトのプロンプトを含めるには、どちらかのボックスに{{original}}を挿入します。", + "Main Prompt": "メインプロンプト", + "Jailbreak": "脱獄", + "Creator's Metadata (Not sent with the AI prompt)": "作成者のメタデータ(AIプロンプトとは送信されません)", + "Everything here is optional": "ここにあるすべては任意です", + "Created by": "作成者", + "Character Version": "キャラクターバージョン", + "Tags to Embed": "埋め込むタグ", + "How often the character speaks in group chats!": "キャラクターがグループチャットで話す頻度!", + "Important to set the character's writing style.": "キャラクターの執筆スタイルを設定するのに重要です。", + "ATTENTION!": "注意!", + "Samplers Order": "サンプラーの順序", + "Samplers will be applied in a top-down order. Use with caution.": "サンプラーは上から下への順序で適用されます。注意して使用してください。", + "Repetition Penalty": "繰り返しペナルティ", + "Rep. Pen. Range.": "繰り返しペナルティの範囲", + "Rep. Pen. Freq.": "繰り返しペナルティの頻度", + "Rep. Pen. Presence": "繰り返しペナルティの存在", + "Enter it in the box below:": "以下のボックスに入力してください:", + "separate with commas w/o space between": "間にスペースのないカンマで区切ります", + "Document": "文書", + "Suggest replies": "回答を提案する", + "Show suggested replies. Not all bots support this.": "提案された回答を表示します。すべてのボットがこれをサポートしているわけではありません。", + "Use 'Unlocked Context' to enable chunked generation.": "'ロック解除されたコンテキスト'を使用して、チャンク生成を有効にします。", + "It extends the context window in exchange for reply generation speed.": "それは返信生成速度の代わりにコンテキストウィンドウを拡張します。", + "Continue": "続行", + "CFG Scale": "CFGスケール", + "Editing:": "編集:", + "AI reply prefix": "AI応答のプレフィックス", + "Custom Stopping Strings": "カスタム停止文字列", + "JSON serialized array of strings": "文字列のJSONシリアル化配列", + "words you dont want generated separated by comma ','": "コンマ ',' で区切られた生成したくない単語", + "Extensions URL": "拡張URL", + "API Key": "APIキー", + "Enter your name": "あなたの名前を入力してください", + "Name this character": "このキャラクターに名前を付ける", + "Search / Create Tags": "タグを検索/作成", + "Describe your character's physical and mental traits here.": "ここにキャラクターの身体的および精神的特徴を説明します。", + "This will be the first message from the character that starts every chat.": "これはすべてのチャットを開始するキャラクターからの最初のメッセージになります。", + "Chat Name (Optional)": "チャット名(任意)", + "Filter...": "フィルタ...", + "Search...": "検索...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "ここにあるコンテンツは、このキャラクターに使用されるデフォルトのメインプロンプトを置き換えます。(v2仕様:system_prompt)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "ここにあるコンテンツは、このキャラクターに使用されるデフォルトのジェイルブレイクプロンプトを置き換えます。(v2仕様:post_history_instructions)", + "(Botmaker's name / Contact Info)": "(ボットメーカーの名前/連絡先情報)", + "(If you want to track character versions)": "(キャラクターバージョンを追跡したい場合)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(ボットを説明し、使用のヒントを与えるか、それがテストされたチャットモデルのリストを示します。これはキャラクターリストに表示されます。)", + "(Write a comma-separated list of tags)": "(カンマで区切られたタグのリストを書きます)", + "(A brief description of the personality)": "(人格の簡単な説明)", + "(Circumstances and context of the interaction)": "(相互作用の状況と文脈)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(チャットダイアログの例。各例を新しい行でSTARTで始めます。)", + "Injection text (supports parameters)": "インジェクションテキスト(パラメーターをサポート)", + "Injection depth": "インジェクションの深さ", + "Type here...": "ここに入力...", + "Comma separated (required)": "カンマで区切られています(必須)", + "What this keyword should mean to the AI, sent verbatim": "このキーワードがAIにとって何を意味するか、そのまま送信されます", + "Filter to Character(s)": "キャラクターにフィルター", + "Character Exclusion": "キャラクターの除外", + "Inclusion Group": "含蓋グループ", + "Only one entry with the same label will be activated": "同じラベルのエントリが1つだけ有効になります", + "-- Characters not found --": "-- キャラクターが見つかりません --", + "Not sent to the AI": "AIに送信されません", + "(This will be the first message from the character that starts every chat)": "(これはすべてのチャットを開始するキャラクターからの最初のメッセージになります)", + "Not connected to API!": "APIに接続されていません!", + "AI Response Configuration": "AI応答の構成", + "AI Configuration panel will stay open": "AI構成パネルが開いたままになります", + "Update current preset": "現在のプリセットを更新", + "Create new preset": "新しいプリセットを作成", + "Import preset": "プリセットをインポート", + "Export preset": "プリセットをエクスポート", + "Delete the preset": "プリセットを削除", + "Auto-select this preset for Instruct Mode": "Instructモードのためにこのプリセットを自動選択", + "Auto-select this preset on API connection": "API接続時にこのプリセットを自動選択", + "NSFW block goes first in the resulting prompt": "NSFWブロックは、結果のプロンプトで最初に表示されます", + "Enables OpenAI completion streaming": "OpenAI完成ストリーミングを有効にします", + "Wrap user messages in quotes before sending": "送信前にユーザーメッセージを引用符で囲む", + "Restore default prompt": "デフォルトのプロンプトを復元", + "New preset": "新しいプリセット", + "Delete preset": "プリセットを削除", + "Restore default jailbreak": "デフォルトのジェイルブレイクを復元", + "Restore default reply": "デフォルトの応答を復元", + "Restore defaul note": "デフォルトの注記を復元", + "API Connections": "API接続", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "承認済みの作業者のみをキューに入れることで、悪い応答に対処できます。応答時間が遅くなる場合があります。", + "Clear your API key": "APIキーをクリア", + "Refresh models": "モデルをリフレッシュ", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "OAuthフローを使用してOpenRouter APIトークンを取得します。 openrouter.aiにリダイレクトされます", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "短いテストメッセージを送信してAPI接続を検証します。それに対してクレジットが与えられることに注意してください!", + "Create New": "新規作成", + "Edit": "編集", + "Locked = World Editor will stay open": "ロックされた = ワールドエディターが開いたままになります", + "Entries can activate other entries by mentioning their keywords": "エントリは、キーワードを言及することで他のエントリをアクティブにできます", + "Lookup for the entry keys in the context will respect the case": "コンテキスト内のエントリキーの検索は、ケースを尊重します", + "If the entry key consists of only one word, it would not be matched as part of other words": "エントリキーが1つの単語だけで構成されている場合、他の単語の一部として一致しません", + "Open all Entries": "すべてのエントリを開く", + "Close all Entries": "すべてのエントリを閉じる", + "Create": "作成", + "Import World Info": "ワールド情報のインポート", + "Export World Info": "ワールド情報のエクスポート", + "Delete World Info": "ワールド情報を削除", + "Duplicate World Info": "ワールド情報の複製", + "Rename World Info": "ワールド情報の名前を変更", + "Refresh": "更新", + "Primary Keywords": "主要キーワード", + "Logic": "論理", + "AND ANY": "任意のAND", + "AND ALL": "すべてのAND", + "NOT ALL": "すべてのNOT", + "NOT ANY": "どれかのNOT", + "Optional Filter": "オプションフィルタ", + "New Entry": "新しいエントリ", + "Fill empty Memo/Titles with Keywords": "空のメモ/タイトルにキーワードを入れる", + "Save changes to a new theme file": "新しいテーマファイルに変更を保存", + "removes blur and uses alternative background color for divs": "ブラーを削除し、divの代替背景色を使用します", + "AI Response Formatting": "AI応答の書式設定", + "Change Background Image": "背景画像を変更", + "Extensions": "拡張機能", + "Click to set a new User Name": "新しいユーザー名を設定するにはクリック", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "選択したペルソナを現在のチャットにロックするにはクリックします。 ロックを解除するには、もう一度クリックします。", + "Click to set user name for all messages": "すべてのメッセージにユーザー名を設定するにはクリック", + "Create a dummy persona": "ダミーのペルソナを作成", + "Character Management": "キャラクター管理", + "Locked = Character Management panel will stay open": "ロックされました=キャラクター管理パネルは開いたままになります", + "Select/Create Characters": "キャラクターを選択/作成", + "Token counts may be inaccurate and provided just for reference.": "トークン数は不正確かもしれず、参考のために提供されます。", + "Click to select a new avatar for this character": "このキャラクターの新しいアバターを選択するにはクリック", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "例:[{{user}}は28歳のルーマニアの猫の少女です。]", + "Toggle grid view": "グリッドビューの切り替え", + "Add to Favorites": "お気に入りに追加", + "Advanced Definition": "高度な定義", + "Character Lore": "キャラクターロア", + "Export and Download": "エクスポートとダウンロード", + "Duplicate Character": "キャラクターを複製", + "Create Character": "キャラクターを作成", + "Delete Character": "キャラクターを削除", + "View all tags": "すべてのタグを表示", + "Click to set additional greeting messages": "追加の挨拶メッセージを設定するにはクリック", + "Show / Hide Description and First Message": "説明と最初のメッセージを表示/非表示", + "Click to select a new avatar for this group": "このグループの新しいアバターを選択するにはクリック", + "Set a group chat scenario": "グループチャットのシナリオを設定", + "Restore collage avatar": "コラージュアバターを復元", + "Create New Character": "新しいキャラクターを作成", + "Import Character from File": "ファイルからキャラクターをインポート", + "Import content from external URL": "外部URLからコンテンツをインポート", + "Create New Chat Group": "新しいチャットグループを作成", + "Characters sorting order": "キャラクターのソート順", + "Add chat injection": "チャットインジェクションを追加", + "Remove injection": "インジェクションを削除", + "Remove": "削除", + "Select a World Info file for": "次のためにワールド情報ファイルを選択", + "Primary Lorebook": "プライマリロアブック", + "A selected World Info will be bound to this character as its own Lorebook.": "選択したワールド情報は、このキャラクターにその独自のロアブックとしてバインドされます。", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "AI応答を生成する際、グローバルワールド情報セレクターのエントリと組み合わされます。", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "キャラクターをエクスポートすると、JSONデータに埋め込まれた選択したロアブックファイルもエクスポートされます。", + "Additional Lorebooks": "追加のロアブック", + "Associate one or more auxillary Lorebooks with this character.": "このキャラクターに1つ以上の補助ロアブックを関連付けます。", + "NOTE: These choices are optional and won't be preserved on character export!": "注意:これらの選択肢は任意であり、キャラクターエクスポート時には保存されません!", + "Rename chat file": "チャットファイルの名前を変更", + "Export JSONL chat file": "JSONLチャットファイルをエクスポート", + "Download chat as plain text document": "プレーンテキストドキュメントとしてチャットをダウンロード", + "Delete chat file": "チャットファイルを削除", + "Delete tag": "タグを削除", + "Translate message": "メッセージを翻訳", + "Generate Image": "画像を生成", + "Narrate": "語る", + "Prompt": "プロンプト", + "Create Bookmark": "ブックマークを作成", + "Copy": "コピー", + "Open bookmark chat": "ブックマークチャットを開く", + "Confirm": "確認", + "Copy this message": "このメッセージをコピー", + "Delete this message": "このメッセージを削除", + "Move message up": "メッセージを上に移動", + "Move message down": "メッセージを下に移動", + "Enlarge": "拡大", + "Temporarily disable automatic replies from this character": "このキャラクターからの自動返信を一時的に無効にする", + "Enable automatic replies from this character": "このキャラクターからの自動返信を有効にする", + "Trigger a message from this character": "このキャラクターからメッセージをトリガーする", + "Move up": "上に移動", + "Move down": "下に移動", + "View character card": "キャラクターカードを表示", + "Remove from group": "グループから削除", + "Add to group": "グループに追加", + "Add": "追加", + "Abort request": "要求を中止", + "Send a message": "メッセージを送信", + "Ask AI to write your message for you": "AIにあなたのメッセージを書くように依頼", + "Continue the last message": "前回のメッセージを継続", + "Bind user name to that avatar": "ユーザー名をそのアバターにバインド", + "Select this as default persona for the new chats.": "これを新しいチャットのデフォルトのペルソナとして選択します。", + "Change persona image": "ペルソナ画像を変更", + "Delete persona": "ペルソナを削除", + "Reduced Motion": "動作の軽減", + "Auto-select": "自動選択", + "Automatically select a background based on the chat context": "チャットのコンテキストに基づいて背景を自動選択", + "Filter": "フィルター", + "Exclude message from prompts": "プロンプトからメッセージを除外", + "Include message in prompts": "プロンプトにメッセージを含める", + "Create checkpoint": "チェックポイントを作成", + "Create Branch": "ブランチを作成", + "Embed file or image": "ファイルまたは画像を埋め込む", + "UI Theme": "UIテーマ", + "This message is invisible for the AI": "このメッセージはAIには見えません", + "Sampler Priority": "サンプラー優先度", + "Ooba only. Determines the order of samplers.": "Oobaのみ。サンプラーの順序を決定します。", + "Load default order": "デフォルトの順序を読み込む", + "Max Tokens Second": "最大トークン/秒", + "CFG": "CFG", + "No items": "アイテムがありません", + "Extras API key (optional)": "エクストラAPIキー(オプション)", + "Notify on extension updates": "拡張機能の更新時に通知", + "Toggle character grid view": "キャラクターグリッドビューの切り替え", + "Bulk edit characters": "キャラクターを一括編集", + "Bulk delete characters": "キャラクターを一括削除", + "Favorite characters to add them to HotSwaps": "お気に入りのキャラクターを選択してHotSwapsに追加", + "Underlined Text": "下線付きテキスト", + "Token Probabilities": "トークン確率", + "Close chat": "チャットを閉じる", + "Manage chat files": "チャットファイルを管理", + "Import Extension From Git Repo": "Gitリポジトリから拡張機能をインポート", + "Install extension": "拡張機能をインストール", + "Manage extensions": "拡張機能を管理", + "Tokens persona description": "トークン", + "Most tokens": "最も多いトークン", + "Least tokens": "最も少ないトークン", + "Random": "ランダム", + "Skip Example Dialogues Formatting": "例の対話の書式設定をスキップ", + "Import a theme file": "テーマファイルをインポート", + "Export a theme file": "テーマファイルをエクスポート" + + +} \ No newline at end of file diff --git a/public/locales/lang.json b/public/locales/lang.json index 1e17d000e..bc8bf896d 100644 --- a/public/locales/lang.json +++ b/public/locales/lang.json @@ -2,11 +2,14 @@ { "lang": "ar-sa", "display": "Arabic" }, { "lang": "zh-cn", "display": "Chinese (Simplified)" }, { "lang": "nl-nl", "display": "Dutch" }, + { "lang": "fr-fr", "display": "French" }, + { "lang": "is-is", "display": "Icelandic" }, { "lang": "it-it", "display": "Italian" }, - { "lang": "es-es", "display": "Spanish" }, { "lang": "ja-jp", "display": "Japanese" }, { "lang": "ko-kr", "display": "Korean" }, - { "lang": "pt-pt", "display": "Portuguese (Portugal)" }, + { "lang": "pt-pt", "display": "Portuguese" }, { "lang": "ru-ru", "display": "Russian" }, + { "lang": "es-es", "display": "Spanish" }, + { "lang": "uk-ua", "display": "Ukrainian" }, { "lang": "vi-vn", "display": "Vietnamese" } ] \ No newline at end of file diff --git a/public/locales/nl-nl.json b/public/locales/nl-nl.json index c6d971764..4e11b4cee 100644 --- a/public/locales/nl-nl.json +++ b/public/locales/nl-nl.json @@ -1,227 +1,384 @@ { - "UI Language": "Taal", - "clickslidertips": "klikregel tips", - "kobldpresets": "Kobold sjablonen", - "guikoboldaisettings": "GUI KoboldAI-instellingen", - "novelaipreserts": "NovelAI sjablonen", - "default": "standaard", - "openaipresets": "OpenAI sjablonen", - "text gen webio(ooba) presets": "Tekstgeneratie webio(ooba) sjablonen", - "response length(tokens)": "lengte reactie (in tokens)", - "select": "selecteer", - "context size(tokens)": "contextgrootte (in tokens)", - "unlocked": "ontgrendeld", - "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Selecteer alleen modellen die contextgroottes groter dan 4096 tokens ondersteunen. Ga alleen verder als je weet wat je doet!", - "rep.pen": "rep.pen", - "rep.pen range": "rep.pen bereik", - "temperature": "temperatuur", - "Encoder Rep. Pen.": "Encoder Rep. Pen.", - "No Repeat Ngram Size": "Geen herhaal N-gram grootte", - "Min Length": "minimale lengte", - "OpenAI Reverse Proxy": "OpenAI Reverse Proxy", + "clickslidertips": "Klik om waarden handmatig in te voeren.", + "kobldpresets": "Kobold voorinstellingen", + "guikoboldaisettings": "KoboldAI-interface-instellingen", + "novelaipreserts": "NovelAI-voorinstellingen", + "default": "Standaard", + "openaipresets": "OpenAI-voorinstellingen", + "text gen webio(ooba) presets": "WebUI(ooba)-voorinstellingen voor tekstgeneratie", + "response legth(tokens)": "Reactielengte (tokens)", + "select": "Selecteer", + "context size(tokens)": "Contextgrootte (tokens)", + "unlocked": "Ontgrendeld", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Alleen bepaalde modellen ondersteunen contextgroottes groter dan 4096 tokens. Vergroot alleen als je weet wat je doet.", + "rep.pen": "Herhalingsstraf", + "WI Entry Status:🔵 Constant🟢 Normaal❌ Uitgeschakeld": "WI-invoerstatus:🔵 Constant🟢 Normaal❌ Uitgeschakeld", + "rep.pen range": "Herhalingsstrafbereik", + "Temperature controls the randomness in token selection": "Temperatuur regelt de willekeurigheid bij het selecteren van tokens", + "temperature": "Temperatuur", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K stelt een maximumhoeveelheid top tokens in die kunnen worden gekozen", + "Top P (a.k.a. nucleus sampling)": "Top P (ook bekend als kernsampling)", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Typische P-sampling geeft prioriteit aan tokens op basis van hun afwijking van de gemiddelde entropie van de set", + "Min P sets a base minimum probability": "Min P stelt een basismimimumkans in", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A stelt een drempel in voor tokenselectie op basis van het kwadraat van de hoogste tokenkans", + "Tail-Free Sampling (TFS)": "Staartvrije sampling (TFS)", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Epsilon-cutoff stelt een kansdrempel in waaronder tokens worden uitgesloten van bemonstering", + "Scale Temperature dynamically per token, based on the variation of probabilities": "Pas temperatuur dynamisch toe per token, op basis van de variatie van kansen", + "Minimum Temp": "Minimale temperatuur", + "Maximum Temp": "Maximale temperatuur", + "Exponent": "Exponent", + "Mirostat Mode": "Mirostat-modus", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "Variability parameter for Mirostat outputs": "Variabiliteitsparameter voor Mirostat-uitvoer", + "Learning rate of Mirostat": "Leersnelheid van Mirostat", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Sterkte van de regulariseringsterm voor contrastieve zoekopdrachten. Stel in op 0 om CS uit te schakelen.", + "Temperature Last": "Laatste temperatuur", + "Use the temperature sampler last": "Gebruik de temperatuursampler als laatste", + "LLaMA / Mistral / Yi models only": "Alleen LLaMA / Mistral / Yi-modellen", + "Example: some text [42, 69, 1337]": "Voorbeeld: wat tekst [42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Klassificatorvrije begeleiding. Meer nuttige tips volgen binnenkort", + "Scale": "Schaal", + "GBNF Grammar": "GBNF Grammatica", + "Usage Stats": "Gebruiksstatistieken", + "Click for stats!": "Klik voor statistieken!", + "Backup": "Back-up", + "Backup your personas to a file": "Maak een back-up van je persona's naar een bestand", + "Restore": "Herstellen", + "Restore your personas from a file": "Herstel je persona's uit een bestand", + "Type in the desired custom grammar": "Typ de gewenste aangepaste grammatica", + "Encoder Rep. Pen.": "Encoder herhalingsstraf", + "Smoothing Factor": "Gladstrijkfactor", + "No Repeat Ngram Size": "Geen herhaalde ngram-grootte", + "Min Length": "Minimale lengte", + "OpenAI Reverse Proxy": "OpenAI omgekeerde proxy", "Alternative server URL (leave empty to use the default value).": "Alternatieve server-URL (laat leeg om de standaardwaarde te gebruiken).", "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Verwijder je echte OAI API-sleutel uit het API-paneel VOORDAT je iets in dit vak typt", - "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Wij kunnen geen ondersteuning bieden voor problemen die zich voordoen bij het gebruik van een niet-officiële OpenAI-proxy", - "Legacy Streaming Processing": "Legacy Streaming Verwerking", - "Enable this if the streaming doesn't work with your proxy": "Schakel dit in als streaming niet werkt met je proxy.", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "We kunnen geen ondersteuning bieden voor problemen die zich voordoen bij het gebruik van een niet-officiële OpenAI-proxy", + "Legacy Streaming Processing": "Legacy streamingverwerking", + "Enable this if the streaming doesn't work with your proxy": "Schakel dit in als de streaming niet werkt met je proxy", "Context Size (tokens)": "Contextgrootte (tokens)", - "Max Response Length (tokens)": "Maximale lengte antwoord (tokens)", + "Max Response Length (tokens)": "Maximale lengte van het antwoord (tokens)", "Temperature": "Temperatuur", - "Frequency Penalty": "Frequentie Penalty", - "Presence Penalty": "Aanwezigheid Penalty", + "Frequency Penalty": "Frequentieboete", + "Presence Penalty": "Aanwezigheidsboete", "Top-p": "Top-p", - "Display bot response text chunks as they are generated": "Toon tekstfragmenten van de botreactie tijdens het genereren.", + "Display bot response text chunks as they are generated": "Toon tekstfragmenten van de botreactie terwijl ze worden gegenereerd", "Top A": "Top A", - "Typical Sampling": "Typische Sampling", - "Tail Free Sampling": "Staartvrije Sampling", - "Rep. Pen. Slope": "Steilheid repenalisatie", - "Single-line mode": "Enkele-regel modus", + "Typical Sampling": "Typische sampling", + "Tail Free Sampling": "Staartvrije sampling", + "Rep. Pen. Slope": "Helling van de herhalingsstraf", + "Single-line mode": "Enkele regel-modus", "Top K": "Top K", "Top P": "Top P", - "Typical P": "Typische P", - "Do Sample": "Do Sample", + "Do Sample": "Monster", "Add BOS Token": "Voeg BOS-token toe", - "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "Voeg het bos_token toe aan het begin van prompts. Uitschakelen kan zorgen voor creatievere antwoorden.", - "Ban EOS Token": "Blokkeer EOS-token", - "Ban the eos_token. This forces the model to never end the generation prematurely": "Blokkeer het eos_token. Dit dwingt het model om de generatie nooit voortijdig te beëindigen.", - "Skip Special Tokens": "Sla speciale tokens over", - "Beam search": "Beam-zoekopdracht", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Voeg het BOS-token toe aan het begin van prompts. Het uitschakelen hiervan kan de antwoorden creatiever maken", + "Ban EOS Token": "Ban EOS-token", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Ban het EOS-token. Dit dwingt het model om de generatie nooit voortijdig te beëindigen", + "Skip Special Tokens": "Speciale tokens overslaan", + "Beam search": "Beam-zoeken", "Number of Beams": "Aantal beams", - "Length Penalty": "Penalty Lengte", + "Length Penalty": "Lengteboete", "Early Stopping": "Vroegtijdig stoppen", "Contrastive search": "Contrastieve zoekopdracht", - "Penalty Alpha": "Penalty Alpha", - "Seed": "Seed", + "Penalty Alpha": "Straf alfa", + "Seed": "Zaad", + "Epsilon Cutoff": "Epsilon-afkapwaarde", + "Eta Cutoff": "Eta-afkapwaarde", + "Negative Prompt": "Negatieve prompt", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (modus=1 is alleen voor llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat is een thermostaat voor de outputperplexiteit", + "Add text here that would make the AI generate things you don't want in your outputs.": "Voeg hier tekst toe die ervoor zou zorgen dat de AI dingen genereert die je niet wilt in je uitvoer.", + "Phrase Repetition Penalty": "Straf voor zinsherhaling", + "Preamble": "Preambule", + "Use style tags to modify the writing style of the output.": "Gebruik stijltags om de schrijfstijl van de uitvoer te wijzigen.", + "Banned Tokens": "Verboden tokens", + "Sequences you don't want to appear in the output. One per line.": "Sequenties die je niet in de uitvoer wilt laten verschijnen. Één per regel.", + "AI Module": "AI-module", + "Changes the style of the generated text.": "Verandert de stijl van de gegenereerde tekst.", + "Used if CFG Scale is unset globally, per chat or character": "Wordt gebruikt als CFG-schaal wereldwijd, per chat of karakter niet is ingesteld.", "Inserts jailbreak as a last system message.": "Voegt jailbreak toe als laatste systeembericht.", "This tells the AI to ignore its usual content restrictions.": "Dit vertelt de AI om zijn gebruikelijke inhoudsbeperkingen te negeren.", - "NSFW Encouraged": "NSFW Aanmoediging", + "NSFW Encouraged": "NSFW Aangemoedigd", "Tell the AI that NSFW is allowed.": "Vertel de AI dat NSFW is toegestaan.", - "NSFW Prioritized": "NSFW Prioriteit", - "NSFW prompt text goes first in the prompt to emphasize its effect.": "NSFW-prompttekst staat eerst in de prompt om het effect te benadrukken.", + "NSFW Prioritized": "NSFW Voorrang", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "Tekst van NSFW-prompts komt eerst in de prompt om het effect ervan te benadrukken.", "Streaming": "Streaming", - "Display the response bit by bit as it is generated.": "Toon het antwoord stukje bij beetje terwijl het wordt gegenereerd.", - "When this is off, responses will be displayed all at once when they are complete.": "Wanneer dit is uitgeschakeld, worden antwoorden in één keer weergegeven wanneer ze compleet zijn.", + "Dynamic Temperature": "Dynamische Temperatuur", + "Restore current preset": "Herstel huidige voorinstelling", + "Neutralize Samplers": "Neutraliseer Samplers", + "Text Completion presets": "Tekstvervolledigingsvoorinstellingen", + "Documentation on sampling parameters": "Documentatie over steekproefparameters", + "Set all samplers to their neutral/disabled state.": "Stel alle samplers in op hun neutrale/uitgeschakelde toestand.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Schakel dit alleen in als uw model contextgroottes ondersteunt groter dan 4096 tokens", + "Display the response bit by bit as it is generated": "Toon de reactie beetje bij beetje zoals deze wordt gegenereerd", "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Genereer slechts één regel per verzoek (alleen KoboldAI, genegeerd door KoboldCpp).", - "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Verbied het End-of-Sequence (EOS) token (met KoboldCpp, en mogelijk ook andere tokens met KoboldAI).", - "Good for story writing, but should not be used for chat and instruct mode.": "Goed voor het schrijven van verhalen, maar mag niet worden gebruikt voor de chat- en instructiemodus.", - "Enhance Definitions": "Verbeter definities", - "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Gebruik de OAI-kennisbank om definities van publieke figuren en bekende fictieve personages te verbeteren.", - "Wrap in Quotes": "Wikkel in aanhalingstekens", - "Wrap entire user message in quotes before sending.": "Wikkel het volledige gebruikersbericht in aanhalingstekens voordat je het verzendt.", - "Leave off if you use quotes manually for speech.": "Laat dit uit als je handmatig aanhalingstekens gebruikt voor spraak.", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Verbied het End-of-Sequence (EOS) -token (met KoboldCpp, en mogelijk ook andere tokens met KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Goed voor het schrijven van verhalen, maar mag niet worden gebruikt voor chat- en instructiemodus.", + "Enhance Definitions": "Definities verbeteren", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Gebruik de OAI-kennisbank om definities te verbeteren voor publieke figuren en bekende fictieve personages", + "Wrap in Quotes": "In Quotes plaatsen", + "Wrap entire user message in quotes before sending.": "Wikkel het volledige gebruikersbericht in aanhalingstekens voordat u het verzendt.", + "Leave off if you use quotes manually for speech.": "Laat dit weg als u handmatig aanhalingstekens gebruikt voor spraak.", "Main prompt": "Hoofdprompt", - "The main prompt used to set the model behavior": "De hoofdprompt die wordt gebruikt om het gedrag van het model in te stellen.", + "The main prompt used to set the model behavior": "De hoofd prompt die wordt gebruikt om het modelgedrag in te stellen", "NSFW prompt": "NSFW-prompt", - "Prompt that is used when the NSFW toggle is on": "Prompt die wordt gebruikt wanneer de NSFW-schakelaar is ingeschakeld.", + "Prompt that is used when the NSFW toggle is on": "Prompt die wordt gebruikt wanneer de NSFW-schakelaar is ingeschakeld", "Jailbreak prompt": "Jailbreak-prompt", - "Prompt that is used when the Jailbreak toggle is on": "Prompt die wordt gebruikt wanneer de Jailbreak-schakelaar is ingeschakeld.", - "Impersonation prompt": "Prompt voor impersonatie van gebruiker", - "Prompt that is used for Impersonation function": "Prompt die wordt gebruikt voor de Impersonation-functie van de gebruiker", + "Prompt that is used when the Jailbreak toggle is on": "Prompt die wordt gebruikt wanneer de Jailbreak-schakelaar is ingeschakeld", + "Impersonation prompt": "Imitatie-prompt", + "Prompt that is used for Impersonation function": "Prompt die wordt gebruikt voor de imitatie-functie", "Logit Bias": "Logit Bias", - "Helps to ban or reenforce the usage of certain words": "Helpt bij het verbieden of versterken van het gebruik van bepaalde woorden.", - "View / Edit bias preset": "Bekijk / Bewerk bias-sjabloon", - "Add bias entry": "Bias-item toevoegen", - "Jailbreak activation message": "Activatiebericht voor jailbreak", + "Helps to ban or reenforce the usage of certain words": "Helpt bij het verbieden of versterken van het gebruik van bepaalde woorden", + "View / Edit bias preset": "Biasvoorinstelling bekijken / bewerken", + "Add bias entry": "Biasvermelding toevoegen", + "Jailbreak activation message": "Jailbreak-activeringsbericht", "Message to send when auto-jailbreak is on.": "Bericht om te verzenden wanneer auto-jailbreak is ingeschakeld.", - "Jailbreak confirmation reply": "Bevestigingsantwoord voor jailbreak", - "Bot must send this back to confirm jailbreak": "De bot moet dit antwoord sturen om de jailbreak te bevestigen.", + "Jailbreak confirmation reply": "Bevestigingsreactie op jailbreak", + "Bot must send this back to confirm jailbreak": "Bot moet dit terugsturen om jailbreak te bevestigen", "Character Note": "Karakternotitie", - "Influences bot behavior in its responses": "Beïnvloedt het gedrag van de bot in zijn antwoorden.", + "Influences bot behavior in its responses": "Beïnvloedt het gedrag van de bot in zijn reacties", + "Connect": "Verbinden", + "Test Message": "Testbericht", "API": "API", "KoboldAI": "KoboldAI", "Use Horde": "Gebruik Horde", "API url": "API-url", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (Wrappermodus voor OpenAI API)", "Register a Horde account for faster queue times": "Registreer een Horde-account voor snellere wachttijden", - "Learn how to contribute your idle GPU cycles to the Horde": "Leer hoe je je ongebruikte GPU-cycli kunt bijdragen aan de Horde", - "Adjust context size to worker capabilities": "Pas de contextgrootte aan op basis van de capaciteiten van de werker", - "Adjust response length to worker capabilities": "Pas de lengte van het antwoord aan op basis van de capaciteiten van de werker", + "Learn how to contribute your idle GPU cycles to the Hord": "Leer hoe u uw inactieve GPU-cycli kunt bijdragen aan de Hord", + "Adjust context size to worker capabilities": "Pas de contextgrootte aan aan de mogelijkheden van de werknemer", + "Adjust response length to worker capabilities": "Pas de lengte van de reactie aan aan de mogelijkheden van de werknemer", "API key": "API-sleutel", + "Tabby API key": "Tabby API-sleutel", + "Get it here:": "Haal het hier:", "Register": "Registreren", - "For privacy reasons": "Om privacyredenen", - "Model": "Model", + "TogetherAI Model": "TogetherAI-model", + "Example: 127.0.0.1:5001": "Voorbeeld: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp (Output-server)", + "Example: 127.0.0.1:8080": "Voorbeeld: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Voorbeeld: 127.0.0.1:11434", + "Ollama Model": "Ollama-model", + "Download": "Downloaden", + "TogetherAI API Key": "TogetherAI API-sleutel", + "-- Connect to the API --": "-- Verbinding maken met de API --", + "View my Kudos": "Mijn Kudos bekijken", + "Enter": "Invoeren", + "to use anonymous mode.": "om de anonieme modus te gebruiken.", + "For privacy reasons": "Om privacyredenen wordt de API-sleutel na het verversen van de pagina verborgen", + "Models": "Modellen", "Hold Control / Command key to select multiple models.": "Houd de Control / Command-toets ingedrukt om meerdere modellen te selecteren.", "Horde models not loaded": "Horde-modellen niet geladen", - "Not connected": "Niet verbonden", - "Novel API key": "NovelAI API-sleutel", - "Follow": "Volg", + "Not connected...": "Niet verbonden...", + "Novel API key": "NovelAPI-sleutel", + "Follow": "Volgen", "these directions": "deze instructies", - "to get your NovelAI API key.": "om je NovelAI API-sleutel te verkrijgen.", - "Enter it in the box below": "Voer het in in het vak hieronder", - "Novel AI Model": "NovelAI-model", - "No connection": "Geen verbinding", - "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", - "Make sure you run it with": "Zorg ervoor dat je het uitvoert met --extensions openai", + "to get your NovelAI API key.": "om uw NovelAI API-sleutel te krijgen.", + "Enter it in the box below": "Voer het in het vak hieronder in", + "Novel AI Model": "Novel AI-model", + "If you are using:": "Als u gebruikt:", + "oobabooga/text-generation-webui": "", + "Make sure you run it with": "Zorg ervoor dat u het uitvoert met", + "flag": "vlag", + "API key (optional)": "API-sleutel (optioneel)", + "Server url": "Server-URL", + "Custom model (optional)": "Aangepast model (optioneel)", + "Bypass API status check": "Omzeil API-statuscontrole", + "Mancer AI": "", + "Use API key (Only required for Mancer)": "Gebruik API-sleutel (alleen vereist voor Mancer)", "Blocking API url": "Blokkerende API-url", + "Example: 127.0.0.1:5000": "Voorbeeld: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "Legacy API (vóór OAI, geen streaming)", + "Bypass status check": "Omzeil statuscontrole", "Streaming API url": "Streaming API-url", - "to get your OpenAI API key.": "om je OpenAI API-sleutel te verkrijgen.", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Voorbeeld: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Mancer API-sleutel", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Voorbeeld: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "om uw OpenAI API-sleutel te krijgen.", + "Window AI Model": "Window AI-model", "OpenAI Model": "OpenAI-model", + "Claude API Key": "Claude API-sleutel", + "Get your key from": "Haal je sleutel op bij", + "Anthropic's developer console": "Anthropic's ontwikkelaarsconsole", + "Slack and Poe cookies will not work here, do not bother trying.": "Slack- en Poe-cookies werken hier niet, probeer het niet eens.", + "Claude Model": "Claude-model", + "Scale API Key": "Scale API-sleutel", + "Alt Method": "Alternatieve methode", + "AI21 API Key": "AI21 API-sleutel", + "AI21 Model": "AI21-model", "View API Usage Metrics": "Bekijk API-gebruiksstatistieken", + "Show External models (provided by API)": "Externe modellen weergeven (geleverd door API)", "Bot": "Bot", - "Connect to the API": "Verbind met de API", + "Allow fallback routes": "Fallback-routes toestaan", + "Allow fallback routes Description": "Het alternatieve model wordt automatisch gekozen als het geselecteerde model niet aan uw verzoek kan voldoen.", + "OpenRouter API Key": "OpenRouter API-sleutel", + "Connect to the API": "Verbinden met de API", + "OpenRouter Model": "OpenRouter-model", + "View Remaining Credits": "Bekijk het resterende krediet", + "Click Authorize below or get the key from": "Klik op Autoriseren hieronder of haal de sleutel op bij", "Auto-connect to Last Server": "Automatisch verbinden met de laatste server", - "View hidden API keys": "Bekijk verborgen API-sleutels", - "Advanced Formatting": "Geavanceerde opmaak", - "AutoFormat Overrides": "AutoFormat-overschrijvingen", - "Disable description formatting": "Schakel opmaak van beschrijving uit", - "Disable personality formatting": "Schakel opmaak van persoonlijkheid uit", - "Disable scenario formatting": "Schakel opmaak van scenario uit", - "Disable example chats formatting": "Schakel opmaak van voorbeeldchats uit", - "Disable chat start formatting": "Schakel opmaak van chatstart uit", - "Custom Chat Separator": "Aangepaste chat-scheidingsteken", - "Instruct mode": "Instructiemodus", - "Enabled": "Ingeschakeld", - "Wrap Sequences with Newline": "Wikkel sequenties in met een nieuwe regel", - "Include Names": "Inclusief namen", + "View hidden API keys": "Verborgen API-sleutels bekijken", + "Advanced Formatting": "Geavanceerd opmaken", + "Context Template": "Contextsjabloon", + "AutoFormat Overrides": "AutoFormaat overschrijvingen", + "Disable description formatting": "Beschrijvingsopmaak uitschakelen", + "Disable personality formatting": "Persoonlijkheidsopmaak uitschakelen", + "Disable scenario formatting": "Scenario-opmaak uitschakelen", + "Disable example chats formatting": "Opmaken van voorbeeldchats uitschakelen", + "Disable chat start formatting": "Opmaken van chatstart uitschakelen", + "Custom Chat Separator": "Aangepaste chatscheider", + "Replace Macro in Custom Stopping Strings": "Macro vervangen in aangepaste stopreeksen", + "Strip Example Messages from Prompt": "Voorbeeldberichten verwijderen uit de prompt", + "Story String": "Verhaalstring", + "Example Separator": "Voorbeeldscheider", + "Chat Start": "Chatstart", + "Activation Regex": "Activeringsregex", + "Instruct Mode": "Instructiemodus", + "Wrap Sequences with Newline": "Sequenties omwikkelen met nieuwe regel", + "Include Names": "Namen opnemen", + "Force for Groups and Personas": "Forceer voor groepen en persona's", "System Prompt": "Systeemprompt", - "Instruct Mode Sequences": "Instrueermodusreeksen", + "Instruct Mode Sequences": "Sequenties in instructiemodus", "Input Sequence": "Invoersequentie", - "First Output Sequence": "Eerste uitvoerreeks", - "Last Output Sequence": "Laatste uitvoerreeks", - "System Sequence Prefix": "Systeemreeksvoorvoegsel", - "System Sequence Suffix": "Systeemreeksachtervoegsel", + "Output Sequence": "Uitvoersequentie", + "First Output Sequence": "Eerste uitvoersequentie", + "Last Output Sequence": "Laatste uitvoersequentie", + "System Sequence Prefix": "Voorvoegsel systeemsequentie", + "System Sequence Suffix": "Achtervoegsel systeemsequentie", "Stop Sequence": "Stopsequentie", "Context Formatting": "Contextopmaak", + "(Saved to Context Template)": "(Opgeslagen in contextsjabloon)", "Tokenizer": "Tokenizer", "None / Estimated": "Geen / Geschat", "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", "Token Padding": "Token-vulling", + "Save preset as": "Instellingen opslaan als", "Always add character's name to prompt": "Voeg altijd de naam van het personage toe aan de prompt", - "Keep Example Messages in Prompt": "Behoud voorbeeldberichten in de prompt", - "Remove Empty New Lines from Output": "Verwijder lege regels uit de uitvoer", + "Use as Stop Strings": "Gebruik als stopreeksen", + "Bind to Context": "Binden aan context", + "Generate only one line per request": "Genereer slechts één regel per verzoek", + "Misc. Settings": "Diverse instellingen", + "Auto-Continue": "Automatisch doorgaan", + "Collapse Consecutive Newlines": "Samenvouwen van opeenvolgende nieuwe regels", + "Allow for Chat Completion APIs": "Chatvervolledigings-API's toestaan", + "Target length (tokens)": "Doellengte (tokens)", + "Keep Example Messages in Prompt": "Voorbeeldberichten in prompt behouden", + "Remove Empty New Lines from Output": "Lege nieuwe regels uit de uitvoer verwijderen", "Disabled for all models": "Uitgeschakeld voor alle modellen", "Automatic (based on model name)": "Automatisch (op basis van modelnaam)", "Enabled for all models": "Ingeschakeld voor alle modellen", - "Anchors Order": "Ankersvolgorde", - "Character then Style": "Personage dan Stijl", - "Style then Character": "Stijl dan Personage", - "Character Anchor": "Personage Anker", - "Style Anchor": "Stijl Anker", + "Anchors Order": "Volgorde van ankers", + "Character then Style": "Personage dan stijl", + "Style then Character": "Stijl dan personage", + "Character Anchor": "Personageanker", + "Style Anchor": "Stijlanker", "World Info": "Wereldinformatie", "Scan Depth": "Scandiepte", + "Case-Sensitive": "Hoofdlettergevoelig", + "Match Whole Words": "Hele woorden matchen", + "Use global setting": "Gebruik de algemene instelling", + "Yes": "Ja", + "No": "Nee", + "Context %": "Context %", + "Budget Cap": "Budgetplafond", + "(0 = disabled)": "(0 = uitgeschakeld)", "depth": "diepte", - "Token Budget": "Token-budget", + "Token Budget": "Tokenbudget", "budget": "budget", - "Recursive scanning": "Recursieve scanning", + "Recursive scanning": "Recursief scannen", "None": "Geen", "User Settings": "Gebruikersinstellingen", - "UI Customization": "UI-aanpassing", + "UI Mode": "UI-modus", + "UI Language": "UI-taal", + "MovingUI Preset": "MovingUI-voorinstelling", + "UI Customization": "Aanpassing van de gebruikersinterface", "Avatar Style": "Avatarstijl", "Circle": "Cirkel", "Rectangle": "Rechthoek", - "Chat Style": "Chatstijl", + "Square": "Vierkant", + "Chat Style": "Chatsstijl", "Default": "Standaard", - "Bubbles": "Bellen", - "Chat Width (PC)": "Chatbreedte (PC)", + "Bubbles": "Bubbels", "No Blur Effect": "Geen vervagingseffect", "No Text Shadows": "Geen tekstschaduwen", - "Waifu Mode": "♡ Waifu-modus ♡", - "Message Timer": "Berichttimer", - "Characters Hotswap": "Personages Hotswap", - "Movable UI Panels": "Verplaatsbare UI-panelen", - "Reset Panels": "Herstel panelen", - "UI Colors": "UI-kleuren", - "Main Text": "Hoofdtekst", - "Italics Text": "Schuingedrukte tekst", - "Quote Text": "Geciteerde tekst", - "Shadow Color": "Schaduwkleur", - "FastUI BG": "FastUI BG", - "Blur Tint": "Vervagingskleur", - "Font Scale": "Lettergrootte", - "Blur Strength": "Vervagingssterkte", - "Text Shadow Width": "Tekstschaduwbreedte", - "UI Theme Preset": "UI-thema-sjabloon", - "Power User Options": "Geavanceerde gebruikersopties", - "Swipes": "Veegbewegingen", - "Background Sound Only": "Alleen achtergrondgeluid", - "Auto-load Last Chat": "Automatisch laatste chat laden", - "Auto-save Message Edits": "Automatisch berichtbewerkingen opslaan", - "Auto-fix Markdown": "Automatische Markdown-correctie", + "Waifu Mode": "Waifu-modus", + "Message Timer": "Berichtentimer", + "Model Icon": "Modelpictogram", + "# of messages (0 = disabled)": "# berichten (0 = uitgeschakeld)", + "Advanced Character Search": "Geavanceerd personage zoeken", "Allow {{char}}: in bot messages": "Toestaan {{char}}: in botberichten", "Allow {{user}}: in bot messages": "Toestaan {{user}}: in botberichten", + "Show tags in responses": "Tags weergeven in reacties", + "Aux List Field": "Hulpveld lijst", + "Lorebook Import Dialog": "Lorebook-import dialoogvenster", + "MUI Preset": "MUI-voorinstelling", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Als dit is ingesteld in de geavanceerde karakterdefinities, wordt dit veld weergegeven in de lijst met personages.", + "Relaxed API URLS": "Ontspannen API URL'S", + "Custom CSS": "Aangepaste CSS", + "Default (oobabooga)": "Standaard (oobabooga)", + "Mancer Model": "Mancer-model", + "API Type": "API-type", + "Aphrodite API key": "Aphrodite API-sleutel", + "Relax message trim in Groups": "Trimbericht ontspannen in groepen", + "Characters Hotswap": "Personages Hotswap", + "Request token probabilities": "Aanvraag tokenkansen", + "Movable UI Panels": "Verplaatsbare UI-panelen", + "Reset Panels": "Panelen opnieuw instellen", + "UI Colors": "UI-kleuren", + "Main Text": "Hoofdtekst", + "Italics Text": "Schuine tekst", + "Quote Text": "Quote-tekst", + "Shadow Color": "Schaduwkleur", + "FastUI BG": "FastUI-achtergrond", + "Blur Tint": "Vervagingstint", + "Font Scale": "Lettertype schaal", + "Blur Strength": "Vervagingssterkte", + "Text Shadow Width": "Tekstschaduwbreedte", + "UI Theme Preset": "UI-thema voorinstelling", + "Power User Options": "Geavanceerde gebruikersopties", + "Swipes": "Veegbewegingen", + "Miscellaneous": "Diversen", + "Theme Toggles": "Themaknoppen", + "Background Sound Only": "Alleen achtergrondgeluid", + "Auto-load Last Chat": "Laatste chat automatisch laden", + "Auto-save Message Edits": "Automatisch opslaan van berichtbewerkingen", + "Auto-fix Markdown": "Automatisch repareren van Markdown", + "Allow : in bot messages": "Toestaan : in botberichten", "Auto-scroll Chat": "Automatisch scrollen chat", - "Render Formulas": "Formules weergeven", + "Render Formulas": "Formules renderen", "Send on Enter": "Verzenden bij Enter", "Always disabled": "Altijd uitgeschakeld", "Automatic (desktop)": "Automatisch (desktop)", "Always enabled": "Altijd ingeschakeld", + "Debug Menu": "Debugmenu", + "Restore User Input": "Gebruikersinvoer herstellen", + "Character Handling": "Personagebehandeling", + "Example Messages Behavior": "Gedrag voorbeeldberichten", + "Gradual push-out": "Geleidelijke uitstoot", + "Chat/Message Handling": "Chat-/berichtafhandeling", + "Always include examples": "Altijd voorbeelden opnemen", + "Never include examples": "Nooit voorbeelden opnemen", + "Forbid External Media": "Externe media verbieden", + "System Backgrounds": "Systeemachtergronden", "Name": "Naam", - "Your Avatar": "Je Avatar", - "Extensions API:": "Uitbreidingen API:", + "Your Avatar": "Je avatar", + "Extensions API:": "Extensies API:", "SillyTavern-extras": "SillyTavern-extras", "Auto-connect": "Automatisch verbinden", - "Active extensions": "Actieve uitbreidingen", - "Extension settings": "Uitbreidingsinstellingen", + "Active extensions": "Actieve extensies", + "Extension settings": "Extensie-instellingen", "Description": "Beschrijving", "First message": "Eerste bericht", - "Group Controls": "Groepsbediening", - "Group reply strategy": "Strategie voor groepsantwoorden", + "Group Controls": "Groepsbesturing", + "Group reply strategy": "Groepsantwoordstrategie", "Natural order": "Natuurlijke volgorde", "List order": "Lijstvolgorde", - "Allow self responses": "Toestaan zelfantwoorden", + "Allow self responses": "Zelfreacties toestaan", "Auto Mode": "Automatische modus", "Add Members": "Leden toevoegen", "Current Members": "Huidige leden", - "text": "Tekst", + "text": "tekst", "Delete": "Verwijderen", "Cancel": "Annuleren", "Advanced Defininitions": "Geavanceerde definities", @@ -229,143 +386,240 @@ "A brief description of the personality": "Een korte beschrijving van de persoonlijkheid", "Scenario": "Scenario", "Circumstances and context of the dialogue": "Omstandigheden en context van de dialoog", - "Talkativeness": "Spreekzaamheid", + "Talkativeness": "Spraakzaamheid", "How often the chracter speaks in": "Hoe vaak het personage spreekt in", "group chats!": "groepschats!", "Shy": "Verlegen", "Normal": "Normaal", - "Chatty": "Praterig", + "Chatty": "Kletserig", "Examples of dialogue": "Voorbeelden van dialoog", "Forms a personality more clearly": "Vormt een persoonlijkheid duidelijker", "Save": "Opslaan", - "World Info Editor": "Wereldinformatie Editor", - "New Entry": "Nieuwe invoer", + "World Info Editor": "Wereldinformatie-editor", + "New summary": "Nieuwe samenvatting", "Export": "Exporteren", "Delete World": "Wereld verwijderen", "Chat History": "Chatgeschiedenis", - "Group Chat Scenario Override": "Groepschat Scenario Overschrijving", - "All group members will use the following scenario text instead of what is specified in their character cards.": "Alle groepsleden zullen de volgende scenario-tekst gebruiken in plaats van wat is gespecificeerd in hun karakterkaarten.", - "Keywords": "Sleutelwoorden", + "Group Chat Scenario Override": "Groepschat Scenario Overschrijven", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Alle groepsleden zullen de volgende scenario-tekst gebruiken in plaats van wat is gespecificeerd op hun karakterkaarten.", + "Keywords": "Trefwoorden", "Separate with commas": "Scheiden met komma's", - "Secondary Required Keywords": "Secundaire Vereiste Sleutelwoorden", + "Secondary Required Keywords": "Secundaire Vereiste Trefwoorden", "Content": "Inhoud", - "What this keyword should mean to the AI": "Wat dit sleutelwoord voor de AI zou moeten betekenen", + "What this keyword should mean to the AI": "Wat dit trefwoord voor de AI moet betekenen", "Memo/Note": "Memo/Notitie", "Not sent to AI": "Niet naar AI gestuurd", - "Constant": "Constante", + "Constant": "Constant", "Selective": "Selectief", - "Before Char": "Voor Char", - "After Char": "Na Char", - "Insertion Order": "Invoegingsvolgorde", + "Before Char": "Voor Karakter", + "After Char": "Na Karakter", + "Insertion Order": "Invoegvolgorde", "Tokens:": "Tokens:", "Disable": "Uitschakelen", "${characterName}": "${karakterNaam}", - "CHAR": "CHAR", + "CHAR": "KAR", "is typing": "is aan het typen...", "Back to parent chat": "Terug naar ouderlijke chat", "Save bookmark": "Bladwijzer opslaan", "Convert to group": "Converteren naar groep", "Start new chat": "Nieuwe chat starten", - "View past chats": "Bekijk vorige chats", + "View past chats": "Bekijk eerdere chats", "Delete messages": "Berichten verwijderen", "Impersonate": "Imiteren", "Regenerate": "Regenereren", "PNG": "PNG", "JSON": "JSON", - "presets": "sjablonen", + "presets": "voorinstellingen", "Message Sound": "Berichtgeluid", - "Author's Note": "Notitie van auteur", + "Author's Note": "Aantekening van de auteur", "Send Jailbreak": "Stuur Jailbreak", "Replace empty message": "Vervang leeg bericht", "Send this text instead of nothing when the text box is empty.": "Stuur deze tekst in plaats van niets wanneer het tekstvak leeg is.", "NSFW avoidance prompt": "NSFW vermijdingsprompt", - "Prompt that is used when the NSFW toggle is off": "Prompt die wordt gebruikt wanneer de NSFW-schakelaar is uitgeschakeld.", + "Prompt that is used when the NSFW toggle is off": "Prompt die wordt gebruikt wanneer de NSFW-schakelaar is uitgeschakeld", "Advanced prompt bits": "Geavanceerde prompt-bits", - "World Info format template": "Wereldinformatie opmaak sjablonen", - "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Wikkelt geactiveerde Wereldinformatie-invoeren in voordat ze in de prompt worden ingevoegd. Gebruik {0} om een plek aan te geven waar de inhoud wordt ingevoegd.", - "Unrestricted maximum value for the context slider": "Onbeperkte maximale waarde voor de context schuifregelaar", - "Chat Completion Source": "Bron voor Chatvervulling", + "World Info format": "Wereldinformatieformaat", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Wikkelt geactiveerde Wereldinformatie-items voordat ze in de prompt worden ingevoegd. Gebruik {0} om een plaats aan te geven waar de inhoud wordt ingevoegd.", + "Unrestricted maximum value for the context slider": "Onbeperkte maximale waarde voor de contextschuifregelaar", + "Chat Completion Source": "Bron voor Chatvoltooiing", "Avoid sending sensitive information to the Horde.": "Vermijd het verzenden van gevoelige informatie naar de Horde.", - "Review the Privacy statement": "Bekijk de Privacyverklaring", - "Learn how to contribute your idel GPU cycles to the Horde": "Leer hoe je je ongebruikte GPU-cycli kunt bijdragen aan de Horde", - "Trusted workers only": "Alleen vertrouwde medewerkers", - "For privacy reasons, your API key will be hidden after you reload the page.": "Om privacyredenen wordt je API-sleutel verborgen nadat je de pagina opnieuw hebt geladen.", + "Review the Privacy statement": "Bekijk de privacyverklaring", + "Learn how to contribute your idel GPU cycles to the Horde": "Leer hoe je je inactieve GPU-cycli kunt bijdragen aan de Horde", + "Trusted workers only": "Alleen vertrouwde werknemers", + "For privacy reasons, your API key will be hidden after you reload the page.": "Om privacyredenen wordt uw API-sleutel verborgen nadat u de pagina opnieuw hebt geladen.", "-- Horde models not loaded --": "-- Horde-modellen niet geladen --", "Example: http://127.0.0.1:5000/api ": "Voorbeeld: http://127.0.0.1:5000/api", "No connection...": "Geen verbinding...", - "Get your NovelAI API Key": "Krijg je NovelAI API-sleutel", + "Get your NovelAI API Key": "Ontvang uw NovelAI API-sleutel", "KoboldAI Horde": "KoboldAI Horde", "Text Gen WebUI (ooba)": "Tekst Gen WebUI (ooba)", "NovelAI": "NovelAI", - "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Chatvervulling (OpenAI, Claude, Window/OpenRouter, Scale)", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Chat Voltooiing (OpenAI, Claude, Window/OpenRouter, Scale)", "OpenAI API key": "OpenAI API-sleutel", - "Trim spaces": "Spaties verwijderen", - "Trim Incomplete Sentences": "Onvolledige zinnen bijsnijden", - "Include Newline": "Nieuwe regel opnemen", - "Non-markdown strings": "Niet-Markdown-teksten", + "Trim spaces": "Spaties trimmen", + "Trim Incomplete Sentences": "Onvolledige Zinnen Trimmen", + "Include Newline": "Nieuwe Regel Inclusief", + "Non-markdown strings": "Niet-markdown-strings", "Replace Macro in Sequences": "Macro vervangen in sequenties", - "Presets": "sjablonen", + "Presets": "Voorinstellingen", "Separator": "Scheidingsteken", "Start Reply With": "Begin antwoord met", "Show reply prefix in chat": "Toon antwoordvoorvoegsel in chat", - "Worlds/Lorebooks": "Werelden/Loreboeken", + "Worlds/Lorebooks": "Werelden/Lorebooks", "Active World(s)": "Actieve Wereld(en)", + "Activation Settings": "Activeringsinstellingen", "Character Lore Insertion Strategy": "Karakter Lore Invoegstrategie", "Sorted Evenly": "Gelijkmatig gesorteerd", + "Active World(s) for all chats": "Actieve Wereld(en) voor alle chats", + "-- World Info not found --": "-- Wereldinformatie niet gevonden --", + "--- Pick to Edit ---": "--- Kies om te bewerken ---", + "or": "of", + "New": "Nieuw", + "Priority": "Prioriteit", + "Custom": "Aangepast", + "Title A-Z": "Titel A-Z", + "Title Z-A": "Titel Z-A", + "Tokens ↗": "Tokens ↗", + "Tokens ↘": "Tokens ↘", + "Depth ↗": "Diepte ↗", + "Depth ↘": "Diepte ↘", + "Order ↗": "Bestelling ↗", + "Order ↘": "Bestelling ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "Trigger% ↗", + "Trigger% ↘": "Trigger% ↘", + "Order:": "Bestelling:", + "Depth:": "Diepte:", "Character Lore First": "Karakter Lore Eerst", "Global Lore First": "Globale Lore Eerst", - "-- World Info not found --": "-- Wereldinformatie niet gevonden --", "Recursive Scan": "Recursieve Scan", "Case Sensitive": "Hoofdlettergevoelig", "Match whole words": "Hele woorden matchen", + "Alert On Overflow": "Waarschuwing bij overloop", "World/Lore Editor": "Wereld/Lore Editor", "--- None ---": "--- Geen ---", - "Comma seperated (ignored if empty)": "Komma gescheiden (genegeerd als leeg)", + "Comma separated (ignored if empty)": "Komma gescheiden (genegeerd indien leeg)", "Use Probability": "Gebruik Waarschijnlijkheid", "Exclude from recursion": "Uitsluiten van recursie", + "Entry Title/Memo": "Titel/Memo", "Position:": "Positie:", - "Before Char Defs": "Voor Char Definities", - "After Char Defs": "Na Char Definities", - "Before AN": "Voor Auteur Notities", - "After AN": "Na Auteur Notities", - "Order:": "Volgorde:", + "T_Position": "↑Char: voor karakterdefinities\n↓Char: na karakterdefinities\n↑AN: voor aantekeningen auteur\n↓AN: na aantekeningen auteur\n@D: op diepte", + "Before Char Defs": "Voor karakterdefinities", + "After Char Defs": "Na karakterdefinities", + "Before AN": "Voor AN", + "After AN": "Na AN", + "at Depth": "op Diepte", + "Order": "Bestelling:", "Probability:": "Waarschijnlijkheid:", - "Delete Entry": "Verwijder Invoer", - "User Message Blur Tint": "Vervagingstint Gebruiker Bericht", - "AI Message Blur Tint": "Vervagingstint AI Bericht", + "Update a theme file": "Werk een themabestand bij", + "Save as a new theme": "Opslaan als nieuw thema", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Minimaal aantal gedetecteerde verboden woorden om een automatische veeg te activeren", + "Delete Entry": "Verwijdering invoer", + "User Message Blur Tint": "Gebruikersbericht Blur Tint", + "AI Message Blur Tint": "AI-bericht Blur Tint", + "Chat Backgrounds": "Achtergronden chat", + "Chat Background": "Chat achtergrond", + "UI Background": "UI-achtergrond", + "Mad Lab Mode": "Mad Lab-modus", + "Show Message Token Count": "Toon bericht token tellen", + "Compact Input Area (Mobile)": "Compacte invoergebied (Mobiel)", + "Zen Sliders": "Zen-schuiven", + "UI Border": "UI-grens", "Chat Style:": "Chatstijl:", - "Chat Width (PC):": "Chat Breedte (PC):", - "Chat Timestamps": "Chat Tijdstempels", - "Message IDs": "Bericht ID's", - "Prefer Character Card Prompt": "Voorkeur Karakter Kaart Prompt", - "Prefer Character Card Jailbreak": "Voorkeur Karakter Kaart Jailbreak", + "Chat Width (PC)": "Chatbreedte (PC)", + "Chat Timestamps": "Chat-tijdstempels", + "Tags as Folders": "Tags als mappen", + "Chat Truncation": "Chat-afkapping", + "(0 = unlimited)": "(0 = onbeperkt)", + "Streaming FPS": "Streaming FPS", + "Gestures": "Gebaren", + "Message IDs": "Bericht-IDs", + "Prefer Character Card Prompt": "Voorkeur karakterkaart prompt", + "Prefer Character Card Jailbreak": "Voorkeur karakterkaart jailbreak", "Press Send to continue": "Druk op Verzenden om door te gaan", - "Log prompts to console": "Logboek van prompts naar console", - "Never resize avatars": "Avatars nooit formaat aanpassen", - "Show avatar filenames": "Laat avatar bestandsnamen zien", - "Import Card Tags": "Importeer Kaart Tags", - "Confirm message deletion": "Bevestig verwijdering van bericht", - "Spoiler Free Mode": "Spoiler Vrije Modus", - "Auto-swipe": "Automatisch swipen", + "Quick 'Continue' button": "Snelle 'Doorgaan' knop", + "Log prompts to console": "Logt prompts naar console", + "Never resize avatars": "Avatars nooit verkleinen", + "Show avatar filenames": "Toon avatar bestandsnamen", + "Import Card Tags": "Kaart tags importeren", + "Confirm message deletion": "Bevestig bericht verwijdering", + "Spoiler Free Mode": "Spoiler Free-modus", + "Auto-swipe": "Automatisch vegen", "Minimum generated message length": "Minimale gegenereerde berichtlengte", - "Blacklisted words": "Geblokkeerde woorden", - "Blacklisted word count to swipe": "Geblokkeerd woordaantal om te swipen", - "Reload Chat": "Chat Herladen", + "Blacklisted words": "Verboden woorden", + "Blacklisted word count to swipe": "Aantal verboden woorden om te vegen", + "Reload Chat": "Chat herladen", + "Search Settings": "Zoekinstellingen", + "Disabled": "Uitgeschakeld", + "Automatic (PC)": "Automatisch (PC)", + "Enabled": "Ingeschakeld", + "Simple": "Eenvoudig", + "Advanced": "Geavanceerd", + "Disables animations and transitions": "Schakelt animaties en overgangen uit", + "removes blur from window backgrounds": "Verwijdert vervaging van vensterachtergronden", + "Remove text shadow effect": "Verwijder tekstschaduweffect", + "Reduce chat height, and put a static sprite behind the chat window": "Verlaag de hoogte van de chat en plaats een statische sprite achter het chatvenster", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Toon altijd de volledige lijst met berichtacties voor chatberichten, in plaats van ze te verbergen achter '...' ", + "Alternative UI for numeric sampling parameters with fewer steps": "Alternatieve UI voor numerieke bemonsteringsparameters met minder stappen", + "Entirely unrestrict all numeric sampling parameters": "Volledig alle numerieke bemonsteringsparameters onbeperkt maken", + "Time the AI's message generation, and show the duration in the chat log": "Time de berichtgeneratie van de AI en toon de duur in het chatlogboek", + "Show a timestamp for each message in the chat log": "Toon een tijdstempel voor elk bericht in het chatlogboek", + "Show an icon for the API that generated the message": "Toon een pictogram voor de API die het bericht heeft gegenereerd", + "Show sequential message numbers in the chat log": "Toon opeenvolgende berichtnummers in het chatlogboek", + "Show the number of tokens in each message in the chat log": "Toon het aantal tokens in elk bericht in het chatlogboek", + "Single-row message input area. Mobile only, no effect on PC": "Enkele rij bericht invoergebied. Alleen mobiel, geen effect op pc", + "In the Character Management panel, show quick selection buttons for favorited characters": "In het karakterbeheerpaneel, toon snelle selectieknoppen voor favoriete karakters", + "Show tagged character folders in the character list": "Toon gemarkeerde karaktermappen in de lijst met personages", + "Play a sound when a message generation finishes": "Speel een geluid af wanneer een berichtgeneratie is voltooid", + "Only play a sound when ST's browser tab is unfocused": "Speel alleen een geluid af wanneer het browsertabblad van ST niet gefocust is", + "Reduce the formatting requirements on API URLs": "Verminder de opmaakvereisten voor API-URL's", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Vraag om de Wereldinformatie/Lorebook te importeren voor elke nieuwe karakter met ingesloten lorebook. Als dit niet is aangevinkt, wordt in plaats daarvan een kort bericht weergegeven", + "Restore unsaved user input on page refresh": "Herstel niet-opgeslagen gebruikersinvoer bij het vernieuwen van de pagina", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Sta het verplaatsen van bepaalde UI-elementen toe door ze te slepen. Alleen pc, geen effect op mobiel", + "MovingUI preset. Predefined/saved draggable positions": "MovingUI-voorinstelling. Voorgedefinieerde/opgeslagen sleepbare posities", + "Save movingUI changes to a new file": "Sla de wijzigingen van MovingUI op in een nieuw bestand", + "Apply a custom CSS style to all of the ST GUI": "Pas een aangepaste CSS-stijl toe op de hele ST GUI", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Gebruik fuzzy-matching en zoek personages in de lijst op alle gegevensvelden, niet alleen op een naamsubreeks", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Als aangevinkt en de karakterkaart bevat een prompt-override (Systeemprompt), gebruik die in plaats daarvan", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Als aangevinkt en de karakterkaart bevat een jailbreak-override (Post History Instruction), gebruik die in plaats daarvan", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Vermijd bijsnijden en wijzigen van de grootte van geïmporteerde karakterafbeeldingen. Wanneer uitgeschakeld, bijsnijden/wijzigen naar 400x600", + "Show actual file names on the disk, in the characters list display only": "Toon de werkelijke bestandsnamen op de schijf, alleen in de weergave van de lijst met personages", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Prompt om ingesloten kaarttags te importeren bij het importeren van personages. Anders worden ingesloten tags genegeerd", + "Hide character definitions from the editor panel behind a spoiler button": "Verberg karakterdefinities uit het bewerkingspaneel achter een spoilerknop", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Toon een knop in het invoergebied om de AI te vragen om door te gaan (uit te breiden) met zijn laatste bericht", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Toon pijlknoppen op het laatste in-chatbericht om alternatieve AI-responses te genereren. Zowel pc als mobiel", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Sta het gebruik van veeggebaren toe op het laatste in-chatbericht om swipe-generatie te activeren. Alleen mobiel, geen effect op pc", + "Save edits to messages without confirmation as you type": "Sla bewerkingen op berichten op zonder bevestiging terwijl u typt", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "LaTeX en AsciiMath-vergelijking notatie renderen in chatberichten. Aangedreven door KaTeX", + "Disalow embedded media from other domains in chat messages": "Ingesloten media van andere domeinen niet toestaan in chatberichten", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Codering en -tekens overslaan in berichttekst, waardoor een subset van HTML-opmaak en Markdown wordt toegestaan", + "Allow AI messages in groups to contain lines spoken by other group members": "Sta toe dat AI-berichten in groepen regels bevatten die zijn uitgesproken door andere groepsleden", + "Requests logprobs from the API for the Token Probabilities feature": "Vraagt logprobs aan van de API voor de Token Probabilities-functie", + "Automatically reject and re-generate AI message based on configurable criteria": "Automatisch AI-bericht afwijzen en opnieuw genereren op basis van configureerbare criteria", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Schakel de automatische-vegen functie in. Instellingen in dit gedeelte hebben alleen effect wanneer automatisch vegen is ingeschakeld", + "If the generated message is shorter than this, trigger an auto-swipe": "Als het gegenereerde bericht korter is dan dit, activeer dan een automatische veeg", + "Reload and redraw the currently open chat": "Laad de momenteel geopende chat opnieuw en teken opnieuw", + "Auto-Expand Message Actions": "Automatisch uitbreiden van berichtacties", "Not Connected": "Niet Verbonden", - "Persona Management": "Persona Beheer", - "Persona Description": "Persona Beschrijving", - "Before Character Card": "Voor Karakter Kaart", - "After Character Card": "Na Karakter Kaart", - "Top of Author's Note": "Bovenkant van Auteur Notitie", - "Bottom of Author's Note": "Onderkant van Auteur Notitie", + "Persona Management": "Persoonbeheer", + "Persona Description": "Persoonbeschrijving", + "Your Persona": "Je Personage", + "Show notifications on switching personas": "Notificaties tonen bij het wisselen van personages", + "Blank": "Leeg", + "In Story String / Chat Completion: Before Character Card": "In Verhaalreeks / Chat Voltooiing: Vóór Karakterkaart", + "In Story String / Chat Completion: After Character Card": "In Verhaalreeks / Chat Voltooiing: Na Karakterkaart", + "In Story String / Prompt Manager": "In Verhaalreeks / Prompt Manager", + "Top of Author's Note": "Bovenste deel van Auteur's Notitie", + "Bottom of Author's Note": "Onderste deel van Auteur's Notitie", "How do I use this?": "Hoe gebruik ik dit?", "More...": "Meer...", "Link to World Info": "Link naar Wereldinformatie", - "Import Card Lore": "Importeer Kaart Lore", + "Import Card Lore": "Kaart Lore Importeren", "Scenario Override": "Scenario Overschrijving", "Rename": "Hernoemen", - "Character Description": "Karakter Beschrijving", - "Creator's Notes": "Notities van Maker", + "Character Description": "Karakterbeschrijving", + "Creator's Notes": "Maker's Notities", "A-Z": "A-Z", "Z-A": "Z-A", "Newest": "Nieuwste", @@ -375,51 +629,54 @@ "Most chats": "Meeste chats", "Least chats": "Minste chats", "Back": "Terug", - "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Prompt Overschrijvingen (Voor OpenAI/Claude/Scale APIs, Window/OpenRouter, en Instruct modus)", - "Insert {{original}} into either box to include the respective default prompt from system settings.": "Voeg {{original}} in in een van de vakken om het respectievelijke standaard prompt van systeeminstellingen op te nemen.", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Prompt Overschrijvingen (Voor OpenAI/Claude/Scale APIs, Window/OpenRouter, en Instructie modus)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Voeg {{original}} in in elk vak in om de respectievelijke standaardprompt vanuit systeeminstellingen op te nemen.", "Main Prompt": "Hoofd Prompt", "Jailbreak": "Jailbreak", - "Creator's Metadata (Not sent with the AI prompt)": "Metadata van Maker (Niet verzonden met de AI-prompt)", + "Creator's Metadata (Not sent with the AI prompt)": "Maker's Metadata (Niet verzonden met de AI prompt)", "Everything here is optional": "Alles hier is optioneel", "Created by": "Gemaakt door", - "Character Version": "Karakter Versie", - "Tags to Embed": "In te bedden tags", + "Character Version": "Karakterversie", + "Tags to Embed": "In te sluiten Tags", "How often the character speaks in group chats!": "Hoe vaak het personage spreekt in groepschats!", - "Important to set the character's writing style.": "Belangrijk om de schrijfstijl van het personage in te stellen", - "ATTENTION!": "AANDACHT!", - "Samplers Order": "Monsters Bestelling", - "Samplers will be applied in a top-down order. Use with caution.": "Monsters worden toegepast in een top-down volgorde. Gebruik met voorzichtigheid.", - "Repetition Penalty": "Herhalings Penalty", - "Epsilon Cutoff": "Epsilon Cutoff", - "Eta Cutoff": "Eta Cutoff", + "Important to set the character's writing style.": "Belangrijk om de schrijfstijl van het personage in te stellen.", + "ATTENTION!": "LET OP!", + "Samplers Order": "Samplers Volgorde", + "Samplers will be applied in a top-down order. Use with caution.": "Samplers worden toegepast in een top-down volgorde. Gebruik met voorzichtigheid.", + "Repetition Penalty": "Herhaling Straf", "Rep. Pen. Range.": "Herh. Pen. Bereik.", - "Rep. Pen. Freq.": "Herh. Pen. Freq.", - "Rep. Pen. Presence": "Herh. Pen. Aanwezigheid.", - "Enter it in the box below:": "Voer het in bij het onderstaande vak:", - "separate with commas w/o space between": "scheiden met komma's zonder spaties ertussen", + "Rep. Pen. Freq.": "Herh. Pen. Frequentie.", + "Rep. Pen. Presence": "Herh. Pen. Aanwezigheid", + "Enter it in the box below:": "Voer het in in het vak hieronder:", + "separate with commas w/o space between": "gescheiden met komma's zonder spatie ertussen", "Document": "Document", + "Suggest replies": "Suggesties voor antwoorden", + "Show suggested replies. Not all bots support this.": "Toon voorgestelde antwoorden. Niet alle bots ondersteunen dit.", + "Use 'Unlocked Context' to enable chunked generation.": "Gebruik 'Niet-vergrendelde Context' om chunked generatie in te schakelen.", + "It extends the context window in exchange for reply generation speed.": "Het breidt het contextvenster uit in ruil voor de snelheid van het genereren van antwoorden.", "Continue": "Doorgaan", + "CFG Scale": "CFG Schaal", "Editing:": "Bewerken:", "AI reply prefix": "AI antwoord voorvoegsel", - "Custom Stopping Strings": "Aangepaste Stopwoorden", - "JSON serialized array of strings": "JSON geserialiseerde array van teksten", - "words you dont want generated separated by comma ','": "woorden die je niet wilt genereren gescheiden door komma ','", - "Extensions URL": "Extensies URL", - "API Key": "API-sleutel", + "Custom Stopping Strings": "Aangepaste Stopreeksen", + "JSON serialized array of strings": "JSON geserialiseerde reeks van strings", + "words you dont want generated separated by comma ','": "woorden die je niet gegenereerd wilt hebben gescheiden door komma ','", + "Extensions URL": "Uitbreidingen URL", + "API Key": "API Sleutel", "Enter your name": "Voer je naam in", "Name this character": "Geef dit personage een naam", - "Search / Create Tags": "Zoek / Maak Tags", - "Describe your character's physical and mental traits here.": "Beschrijf hier de fysieke en mentale kenmerken van je personage.", - "This will be the first message from the character that starts every chat.": "Dit zal het eerste bericht zijn van het personage dat elke chat start.", + "Search / Create Tags": "Zoeken / Tags maken", + "Describe your character's physical and mental traits here.": "Beschrijf hier de fysieke en mentale eigenschappen van je personage.", + "This will be the first message from the character that starts every chat.": "Dit zal het eerste bericht zijn van het personage dat elke chat begint.", "Chat Name (Optional)": "Chat Naam (Optioneel)", - "Filter...": "Filteren...", + "Filter...": "Filter...", "Search...": "Zoeken...", - "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Elke inhoud hier zal het standaard Hoofd Prompt vervangen dat voor dit personage wordt gebruikt. (v2 specificatie: systeem_prompt)", - "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Elke inhoud hier zal het standaard Jailbreak Prompt vervangen dat voor dit personage wordt gebruikt. (v2 specificatie: post_history_instructions)", - "(Botmaker's name / Contact Info)": "(Naam van botmaker / Contactgegevens)", - "(If you want to track character versions)": "(Als je de versies van het personage wilt bijhouden)", - "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Beschrijf de bot, geef gebruikerstips of vermeld de chatmodellen waarop het is getest. Dit wordt weergegeven in de lijst met personages.)", - "(Write a comma-separated list of tags)": "(Schrijf een lijst van tags gescheiden door komma's)", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Elke inhoud hier zal de standaard Hoofd Prompt vervangen die wordt gebruikt voor dit personage. (v2 spec: systeem_prompt)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Elke inhoud hier zal de standaard Jailbreak Prompt vervangen die wordt gebruikt voor dit personage. (v2 spec: post_history_instructions)", + "(Botmaker's name / Contact Info)": "(Naam van Botmaker / Contactgegevens)", + "(If you want to track character versions)": "(Als je versies van het personage wilt bijhouden)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Beschrijf de bot, geef gebruikstips, of lijst de chatmodellen op waarop het is getest. Dit zal worden weergegeven in de lijst met personages.)", + "(Write a comma-separated list of tags)": "(Schrijf een komma-gescheiden lijst met tags)", "(A brief description of the personality)": "(Een korte beschrijving van de persoonlijkheid)", "(Circumstances and context of the interaction)": "(Omstandigheden en context van de interactie)", "(Examples of chat dialog. Begin each example with START on a new line.)": "(Voorbeelden van chatdialogen. Begin elk voorbeeld met START op een nieuwe regel.)", @@ -427,102 +684,118 @@ "Injection depth": "Injectiediepte", "Type here...": "Typ hier...", "Comma separated (required)": "Komma gescheiden (vereist)", - "Comma separated (ignored if empty)": "Komma gescheiden (genegeerd indien leeg)", - "What this keyword should mean to the AI, sent verbatim": "Wat deze trefwoorden voor de AI zouden moeten betekenen, letterlijk verzonden", + "What this keyword should mean to the AI, sent verbatim": "Wat dit trefwoord voor de AI zou moeten betekenen, woordelijk verzonden", + "Filter to Character(s)": "Filteren op personage(s)", + "Character Exclusion": "Personage uitsluiting", + "Inclusion Group": "Insluitingsgroep", + "Only one entry with the same label will be activated": "Slechts één item met hetzelfde label zal worden geactiveerd", + "-- Characters not found --": "-- Personages niet gevonden --", "Not sent to the AI": "Niet naar de AI verzonden", - "(This will be the first message from the character that starts every chat)": "(Dit zal het eerste bericht zijn van het personage dat elke chat start)", + "(This will be the first message from the character that starts every chat)": "(Dit zal het eerste bericht zijn van het personage dat elke chat begint)", "Not connected to API!": "Niet verbonden met API!", - "AI Response Configuration": "AI Reactie Configuratie", - "AI Configuration panel will stay open": "Het AI configuratiepaneel blijft openstaan", - "Update current preset": "Huidige preset bijwerken", - "Create new preset": "Nieuwe preset aanmaken", - "Import preset": "Preset importeren", - "Export preset": "Preset exporteren", - "Delete the preset": "De preset verwijderen", - "Inserts jailbreak as a last system message": "Voegt jailbreak in als een laatste systeembericht", - "NSFW block goes first in the resulting prompt": "NSFW blok komt als eerste in de resulterende prompt", - "Enables OpenAI completion streaming": "Activeert OpenAI voltooiing streamen", - "Wrap user messages in quotes before sending": "Wikkel gebruikersberichten in aanhalingstekens voordat ze worden verzonden", - "Restore default prompt": "Herstel standaard prompt", - "New preset": "Nieuwe preset", - "Delete preset": "Preset verwijderen", - "Restore default jailbreak": "Herstel standaard jailbreak", - "Restore default reply": "Herstel standaard antwoord", - "Restore defaul note": "Herstel standaard notitie", + "AI Response Configuration": "AI-responsconfiguratie", + "AI Configuration panel will stay open": "Het AI-configuratiescherm blijft open", + "Update current preset": "Huidige voorinstelling bijwerken", + "Create new preset": "Nieuwe voorinstelling maken", + "Import preset": "Voorinstelling importeren", + "Export preset": "Voorinstelling exporteren", + "Delete the preset": "De voorinstelling verwijderen", + "Auto-select this preset for Instruct Mode": "Automatisch deze voorinstelling selecteren voor Instructiemodus", + "Auto-select this preset on API connection": "Automatisch deze voorinstelling selecteren bij API-verbinding", + "NSFW block goes first in the resulting prompt": "NSFW-blok gaat eerst in de resulterende prompt", + "Enables OpenAI completion streaming": "Maakt OpenAI-voltooiingsstreaming mogelijk", + "Wrap user messages in quotes before sending": "Wikkel gebruikersberichten in aanhalingstekens voordat u ze verzendt", + "Restore default prompt": "Standaardprompt herstellen", + "New preset": "Nieuwe voorinstelling", + "Delete preset": "Voorinstelling verwijderen", + "Restore default jailbreak": "Standaard jailbreak herstellen", + "Restore default reply": "Standaard antwoord herstellen", + "Restore default note": "Standaard notitie herstellen", "API Connections": "API-verbindingen", - "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Kan helpen bij slechte reacties door alleen de goedgekeurde medewerkers in de wachtrij te plaatsen. Kan de reactietijd vertragen.", - "Clear your API key": "Wis je API-sleutel", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Kan helpen bij slechte reacties door alleen de goedgekeurde werknemers in de wachtrij te zetten. Kan de responstijd vertragen.", + "Clear your API key": "Wis uw API-sleutel", "Refresh models": "Modellen vernieuwen", - "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Ontvang je OpenRouter API-token via het OAuth-proces. Je wordt doorverwezen naar openrouter.ai", - "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Verifieert je API-verbinding door een kort testbericht te sturen. Wees je ervan bewust dat je hiervoor wordt gecrediteerd!", - "Create New": "Nieuw aanmaken", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Haal uw OpenRouter API-token op met behulp van OAuth-flow. U wordt doorgestuurd naar openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Verifieert uw API-verbinding door een kort testbericht te verzenden. Wees ervan bewust dat u hiervoor wordt gecrediteerd!", + "Create New": "Nieuw maken", "Edit": "Bewerken", - "Locked = World Editor will stay open": "Vergrendeld = Wereld Editor blijft open", - "Entries can activate other entries by mentioning their keywords": "Invoeren kunnen andere invoeren activeren door hun trefwoorden te noemen", - "Lookup for the entry keys in the context will respect the case": "Zoeken naar de toetsen van de invoer in de context zal de hoofdlettergevoeligheid respecteren", - "If the entry key consists of only one word, it would not be matched as part of other words": "Als de invoertoets uit slechts één woord bestaat, wordt het niet gematcht als onderdeel van andere woorden", - "Open all Entries": "Open alle invoeren", - "Close all Entries": "Sluit alle invoeren", - "Create": "Aanmaken", + "Locked = World Editor will stay open": "Vergrendeld = Wereldeditor blijft open", + "Entries can activate other entries by mentioning their keywords": "Items kunnen andere items activeren door hun trefwoorden te vermelden", + "Lookup for the entry keys in the context will respect the case": "Opzoeken van de itemtoetsen in de context zal de zaak respecteren", + "If the entry key consists of only one word, it would not be matched as part of other words": "Als de itemtoets uit slechts één woord bestaat, wordt deze niet gematcht als onderdeel van andere woorden", + "Open all Entries": "Alle items openen", + "Close all Entries": "Alle items sluiten", + "Create": "Creëren", "Import World Info": "Wereldinformatie importeren", "Export World Info": "Wereldinformatie exporteren", "Delete World Info": "Wereldinformatie verwijderen", + "Duplicate World Info": "Wereldinformatie dupliceren", "Rename World Info": "Wereldinformatie hernoemen", - "Save changes to a new theme file": "Wijzigingen opslaan naar een nieuw themabestand", + "Refresh": "Vernieuwen", + "Primary Keywords": "Primaire trefwoorden", + "Logic": "Logica", + "AND ANY": "EN ENIGE", + "AND ALL": "EN ALLES", + "NOT ALL": "NIET ALLES", + "NOT ANY": "NIET ENIGE", + "Optional Filter": "Optioneel filter", + "New Entry": "Nieuw item", + "Fill empty Memo/Titles with Keywords": "Vul lege Memo/Titels in met trefwoorden", + "Save changes to a new theme file": "Wijzigingen opslaan in een nieuw themabestand", "removes blur and uses alternative background color for divs": "verwijdert vervaging en gebruikt een alternatieve achtergrondkleur voor divs", - "If checked and the character card contains a prompt override (System Prompt), use that instead.": "Als aangevinkt en de karakterkaart bevat een prompt overschrijving (Systeem Prompt), gebruik dat dan in plaats daarvan.", - "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead.": "Als aangevinkt en de karakterkaart bevat een jailbreak overschrijving (Post History Instruction), gebruik dat dan in plaats daarvan.", - "AI Response Formatting": "AI Antwoord Opmaak", + "AI Response Formatting": "AI-respons opmaken", "Change Background Image": "Achtergrondafbeelding wijzigen", - "Extensions": "Extensies", + "Extensions": "Uitbreidingen", "Click to set a new User Name": "Klik om een nieuwe gebruikersnaam in te stellen", - "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Klik om je geselecteerde persona aan de huidige chat te koppelen. Klik nogmaals om de koppeling te verwijderen.", - "Click to set user name for all messages": "Klik om de gebruikersnaam in te stellen voor alle berichten", - "Create a dummy persona": "Creëer een dummy persona", - "Character Management": "Karakterbeheer", - "Locked = Character Management panel will stay open": "Vergrendeld = Het karakterbeheerpaneel blijft open", - "Select/Create Characters": "Karakters Selecteren/Aanmaken", - "Token counts may be inaccurate and provided just for reference.": "Token tellingen kunnen onnauwkeurig zijn en worden alleen ter referentie verstrekt.", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Klik om uw geselecteerde persona aan de huidige chat te vergrendelen. Klik opnieuw om het slot te verwijderen.", + "Click to set user name for all messages": "Klik om een gebruikersnaam in te stellen voor alle berichten", + "Create a dummy persona": "Maak een dummy-persona", + "Character Management": "Personagebeheer", + "Locked = Character Management panel will stay open": "Vergrendeld = Paneel voor personagebeheer blijft open", + "Select/Create Characters": "Personages selecteren/maken", + "Token counts may be inaccurate and provided just for reference.": "Token-tellingen kunnen onnauwkeurig zijn en worden alleen ter referentie verstrekt.", "Click to select a new avatar for this character": "Klik om een nieuwe avatar voor dit personage te selecteren", - "Add to Favorites": "Toevoegen aan Favorieten", - "Advanced Definition": "Geavanceerde Definitie", - "Character Lore": "Karaktergeschiedenis", - "Export and Download": "Exporteren en Downloaden", - "Duplicate Character": "Dubbel Karakter", - "Create Character": "Karakter Aanmaken", - "Delete Character": "Karakter Verwijderen", - "View all tags": "Bekijk alle tags", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Voorbeeld: [{{user}} is een 28-jarig Roemeens kattemeisje.]", + "Toggle grid view": "Rasterweergave omzetten", + "Add to Favorites": "Toevoegen aan favorieten", + "Advanced Definition": "Geavanceerde definitie", + "Character Lore": "Personage-achtergrondverhaal", + "Export and Download": "Exporteren en downloaden", + "Duplicate Character": "Personage dupliceren", + "Create Character": "Personage maken", + "Delete Character": "Personage verwijderen", + "View all tags": "Alle tags bekijken", "Click to set additional greeting messages": "Klik om extra begroetingsberichten in te stellen", - "Show / Hide Description and First Message": "Beschrijving en Eerste Bericht Tonen / Verbergen", + "Show / Hide Description and First Message": "Beschrijving en eerste bericht weergeven/verbergen", "Click to select a new avatar for this group": "Klik om een nieuwe avatar voor deze groep te selecteren", - "Set a group chat scenario": "Stel een groep chat scenario in", - "Restore collage avatar": "Herstel collage-avatar", - "Create New Character": "Nieuw Karakter Aanmaken", - "Import Character from File": "Karakter Importeren uit Bestand", + "Set a group chat scenario": "Stel een scenario voor groepschat in", + "Restore collage avatar": "Collage-avatar herstellen", + "Create New Character": "Nieuw personage maken", + "Import Character from File": "Personage importeren uit bestand", "Import content from external URL": "Inhoud importeren van externe URL", - "Create New Chat Group": "Nieuwe Chatgroep Aanmaken", - "Characters sorting order": "Volgorde van Karakters sorteren", - "Add chat injection": "Chat Injectie Toevoegen", - "Remove injection": "Injectie Verwijderen", + "Create New Chat Group": "Nieuwe chatgroep maken", + "Characters sorting order": "Sorteervolgorde van personages", + "Add chat injection": "Chatinjectie toevoegen", + "Remove injection": "Injectie verwijderen", "Remove": "Verwijderen", - "Select a World Info file for": "Selecteer een Wereldinformatie bestand voor", - "Primary Lorebook": "Primaire Loreboek", - "A selected World Info will be bound to this character as its own Lorebook.": "Een geselecteerde Wereldinformatie zal aan dit personage worden gekoppeld als zijn eigen Loreboek.", - "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Bij het genereren van een AI-antwoord, zal dit gecombineerd worden met de vermeldingen vanuit een wereldwijde Wereldinformatie selector.", - "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Het exporteren van een personage zal ook het geselecteerde Loreboekbestand exporteren dat is ingebed in de JSON-gegevens.", - "Additional Lorebooks": "Extra Loreboeken", - "Associate one or more auxillary Lorebooks with this character.": "Koppel één of meer aanvullende Loreboeken aan dit personage.", + "Select a World Info file for": "Selecteer een Wereldinformatiebestand voor", + "Primary Lorebook": "Primaire Verhalenboek", + "A selected World Info will be bound to this character as its own Lorebook.": "Een geselecteerde Wereldinformatie zal aan dit personage worden gekoppeld als zijn eigen Verhalenboek.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Bij het genereren van een AI-antwoord zal het worden gecombineerd met de invoer uit een wereldwijde Wereldinformatie-selector.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Het exporteren van een personage zou ook het geselecteerde Verhalenboekbestand exporteren dat is ingebed in de JSON-gegevens.", + "Additional Lorebooks": "Extra Verhalenboeken", + "Associate one or more auxillary Lorebooks with this character.": "Koppel een of meer extra Verhalenboeken aan dit personage.", "NOTE: These choices are optional and won't be preserved on character export!": "LET OP: Deze keuzes zijn optioneel en worden niet behouden bij het exporteren van het personage!", "Rename chat file": "Chatbestand hernoemen", - "Export JSONL chat file": "JSONL chatbestand exporteren", - "Download chat as plain text document": "Chat downloaden als plat tekstbestand", + "Export JSONL chat file": "Exporteer JSONL-chatbestand", + "Download chat as plain text document": "Download chat als plat tekstbestand", "Delete chat file": "Chatbestand verwijderen", "Delete tag": "Tag verwijderen", "Translate message": "Bericht vertalen", - "Generate Image": "Afbeelding Genereren", + "Generate Image": "Afbeelding genereren", "Narrate": "Vertellen", "Prompt": "Prompt", - "Create Bookmark": "Bladwijzer Aanmaken", + "Create Bookmark": "Bladwijzer maken", "Copy": "Kopiëren", "Open bookmark chat": "Bladwijzerchat openen", "Confirm": "Bevestigen", @@ -533,19 +806,60 @@ "Enlarge": "Vergroten", "Temporarily disable automatic replies from this character": "Tijdelijk automatische antwoorden van dit personage uitschakelen", "Enable automatic replies from this character": "Automatische antwoorden van dit personage inschakelen", - "Trigger a message from this character": "Een bericht van dit personage activeren", + "Trigger a message from this character": "Een bericht activeren van dit personage", "Move up": "Omhoog verplaatsen", "Move down": "Omlaag verplaatsen", - "View character card": "Karakterkaart bekijken", - "Remove from group": "Uit groep verwijderen", + "View character card": "Bekijk personagekaart", + "Remove from group": "Verwijderen uit groep", "Add to group": "Toevoegen aan groep", "Add": "Toevoegen", - "Abort request": "Verzoek afbreken", - "Send a message": "Een bericht verzenden", + "Abort request": "Verzoek annuleren", + "Send a message": "Een bericht versturen", "Ask AI to write your message for you": "Vraag de AI om je bericht voor je te schrijven", - "Continue the last message": "Het laatste bericht voortzetten", - "Bind user name to that avatar": "Gebruikersnaam aan die avatar koppelen", - "Select this as default persona for the new chats.": "Selecteer dit als standaard persona voor de nieuwe chats.", - "Change persona image": "persona afbeelding wijzigen", - "Delete persona": "persona verwijderen" -} + "Continue the last message": "Ga door met het laatste bericht", + "Bind user name to that avatar": "Gebruikersnaam aan die avatar binden", + "Select this as default persona for the new chats.": "Selecteer dit als standaardpersona voor de nieuwe chats.", + "Change persona image": "Afbeelding van persona wijzigen", + "Delete persona": "Persona verwijderen", + "Reduced Motion": "Verminderde beweging", + "Auto-select": "Automatisch selecteren", + "Automatically select a background based on the chat context": "Automatisch een achtergrond selecteren op basis van de chatcontext", + "Filter": "Filter", + "Exclude message from prompts": "Bericht uitsluiten van prompts", + "Include message in prompts": "Bericht opnemen in prompts", + "Create checkpoint": "Controlepunt maken", + "Create Branch": "Vertakking maken", + "Embed file or image": "Bestand of afbeelding insluiten", + "UI Theme": "UI-thema", + "This message is invisible for the AI": "Dit bericht is onzichtbaar voor de AI", + "Sampler Priority": "Prioriteit van de sampler", + "Ooba only. Determines the order of samplers.": "Alleen Ooba. Bepaalt de volgorde van samplers.", + "Load default order": "Standaardvolgorde laden", + "Max Tokens Second": "Maximale Tokens per Seconde", + "CFG": "CFG", + "No items": "Geen items", + "Extras API key (optional)": "Extra API-sleutel (optioneel)", + "Notify on extension updates": "Op de hoogte stellen van extensie-updates", + "Toggle character grid view": "Wissel weergave roosterkarakter", + "Bulk edit characters": "Massaal bewerken personages", + "Bulk delete characters": "Massaal verwijderen personages", + "Favorite characters to add them to HotSwaps": "Favoriete personages toevoegen aan HotSwaps", + "Underlined Text": "Onderstreepte tekst", + "Token Probabilities": "Token-kansen", + "Close chat": "Chat sluiten", + "Manage chat files": "Beheer chatbestanden", + "Import Extension From Git Repo": "Extensie importeren vanuit Git Repository", + "Install extension": "Installeer extensie", + "Manage extensions": "Beheer extensies", + "Tokens persona description": "Beschrijving van tokens", + "Most tokens": "Meeste tokens", + "Least tokens": "Minste tokens", + "Random": "Willekeurig", + "Skip Example Dialogues Formatting": "Opmaak van voorbeelddialogen overslaan", + "Import a theme file": "Importeer een themabestand", + "Export a theme file": "Exporteer een themabestand", + "Select Color": "aaaaaaaaaaaaaaaaaaaaaaa" + + + +} \ No newline at end of file diff --git a/public/locales/uk-ua.json b/public/locales/uk-ua.json new file mode 100644 index 000000000..37cc7a7d0 --- /dev/null +++ b/public/locales/uk-ua.json @@ -0,0 +1,863 @@ +{ + "clickslidertips": "Натисніть, щоб ввести значення вручну.", + "kobldpresets": "Стандартні налаштування Kobold", + "guikoboldaisettings": "Налаштування інтерфейсу KoboldAI", + "novelaipreserts": "Стандартні налаштування NovelAI", + "default": "За замовчуванням", + "openaipresets": "Стандартні налаштування OpenAI", + "text gen webio(ooba) presets": "Стандартні налаштування WebUI(ooba)", + "response legth(tokens)": "Довжина відповіді (токени)", + "select": "Оберіть", + "context size(tokens)": "Розмір контексту (токени)", + "unlocked": "Розблоковано", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Тільки деякі моделі підтримують розміри контексту більше 4096 токенів. Збільшуйте лише якщо ви розумієте, що робите.", + "rep.pen": "Штраф за повтор", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "Статус WI Entry:🔵 Постійний🟢 Нормальний❌ Вимкнений", + "rep.pen range": "Діапазон штрафу за повтор", + "Temperature controls the randomness in token selection": "Температура контролює випадковість у виборі токенів", + "temperature": "Температура", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K встановлює максимальну кількість верхніх токенів, які можна вибрати", + "Top P (a.k.a. nucleus sampling)": "Top P (також відомий як відбір ядра)", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Типовий відбір P визначає пріоритет токенів на основі їх відхилення від середньої ентропії набору", + "Min P sets a base minimum probability": "Min P встановлює базову мінімальну ймовірність", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A встановлює поріг для вибору токенів на основі квадрату найвищої ймовірності токена", + "Tail-Free Sampling (TFS)": "Вільний вибір з хвостом (TFS)", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Епсилон встановлює нижню межу ймовірності, нижче якої токени виключаються з вибірки", + "Scale Temperature dynamically per token, based on the variation of probabilities": "Шкала температури динамічно за кожний токен, на основі варіації ймовірностей", + "Minimum Temp": "Мінімальна температура", + "Maximum Temp": "Максимальна температура", + "Exponent": "Експонент", + "Mirostat Mode": "Режим Mirostat", + "Mirostat Tau": "Тау Mirostat", + "Mirostat Eta": "Ета Mirostat", + "Variability parameter for Mirostat outputs": "Параметр змінності для виходів Mirostat", + "Learning rate of Mirostat": "Швидкість навчання Mirostat", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Сила терміну регуляризації контрастного пошуку. Встановіть 0, щоб вимкнути CS", + "Temperature Last": "Остання температура", + "Use the temperature sampler last": "Використовуйте останній вибір температури", + "LLaMA / Mistral / Yi models only": "Тільки моделі LLaMA / Mistral / Yi", + "Example: some text [42, 69, 1337]": "Приклад: деякий текст [42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Вільні інструкції класифікатора. Більше корисних порад незабаром", + "Scale": "Масштаб", + "GBNF Grammar": "Синтаксис GBNF", + "Usage Stats": "Статистика використання", + "Click for stats!": "Клацніть для статистики!", + "Backup": "Резервне копіювання", + "Backup your personas to a file": "Зробіть резервну копію своїх персонажів у файл", + "Restore": "Відновлення", + "Restore your personas from a file": "Відновіть свої персонажі з файлу", + "Type in the desired custom grammar": "Введіть бажаний власний синтаксис", + "Encoder Rep. Pen.": "Штраф за повтор кодера", + "Smoothing Factor": "Коефіцієнт згладжування", + "No Repeat Ngram Size": "Розмір n-грам без повторень", + "Min Length": "Мінімальна довжина", + "OpenAI Reverse Proxy": "Обернений проксі OpenAI", + "Alternative server URL (leave empty to use the default value).": "Альтернативний URL-адрес сервера (залиште порожнім, щоб використовувати значення за замовчуванням).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Видаліть свій справжній ключ API OAI з панелі API ПЕРЕД тим, як щось вводити в це поле", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Ми не можемо надати підтримку для проблем, які виникають при використанні неофіційного проксі OpenAI", + "Legacy Streaming Processing": "Застаріла потокова обробка", + "Enable this if the streaming doesn't work with your proxy": "Увімкніть це, якщо потокова передача не працює з вашим проксі", + "Context Size (tokens)": "Розмір контексту (токени)", + "Max Response Length (tokens)": "Максимальна довжина відповіді (токени)", + "Temperature": "Температура", + "Frequency Penalty": "Штраф за частоту", + "Presence Penalty": "Штраф за наявність", + "Top-p": "Топ-p", + "Display bot response text chunks as they are generated": "Показувати фрагменти тексту відповіді бота при їх генерації", + "Top A": "Топ A", + "Typical Sampling": "Типовий відбір", + "Tail Free Sampling": "Вільний вибір з хвостом", + "Rep. Pen. Slope": "Кутна нахилу штрафу за повтор", + "Single-line mode": "Однорядковий режим", + "Top K": "Топ K", + "Top P": "Топ P", + "Do Sample": "Відбір", + "Add BOS Token": "Додати токен BOS", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Додайте bos_token на початок підказок. Вимкнення цього може зробити відповіді більш творчими", + "Ban EOS Token": "Заборонити токен EOS", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Забороніть токен eos. Це змусить модель ніколи не завершувати генерацію передчасно", + "Skip Special Tokens": "Пропустити спеціальні токени", + "Beam search": "Пошук по пучку", + "Number of Beams": "Кількість пучків", + "Length Penalty": "Штраф за довжину", + "Early Stopping": "Раннє зупинення", + "Contrastive search": "Контрастний пошук", + "Penalty Alpha": "Коефіцієнт штрафу", + "Seed": "Зерно", + "Epsilon Cutoff": "Кінець епсилону", + "Eta Cutoff": "Кінець ети", + "Negative Prompt": "Негативна підказка", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (режим=1 тільки для llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat - це термостат для ускладнення виведення", + "Add text here that would make the AI generate things you don't want in your outputs.": "Додайте сюди текст, який змусить штучний інтелект генерувати речі, які ви не хочете бачити у виводах.", + "Phrase Repetition Penalty": "Штраф за повтор фраз", + "Preamble": "Преамбула", + "Use style tags to modify the writing style of the output.": "Використовуйте теги стилю для зміни стилю написання виводу.", + "Banned Tokens": "Заборонені токени", + "Sequences you don't want to appear in the output. One per line.": "Послідовності, які ви не хочете бачити у виводі. Одна на рядок.", + "AI Module": "Модуль ШІ", + "Changes the style of the generated text.": "Змінює стиль створеного тексту.", + "Used if CFG Scale is unset globally, per chat or character": "Використовується, якщо масштаб CFG не встановлений глобально, на кожен чат або символ.", + "Inserts jailbreak as a last system message.": "Вставляє втрату як останнє системне повідомлення.", + "This tells the AI to ignore its usual content restrictions.": "Це каже ШІ ігнорувати звичайні обмеження на вміст.", + "NSFW Encouraged": "NSFW заохочується", + "Tell the AI that NSFW is allowed.": "Повідомте ШІ, що NSFW дозволено.", + "NSFW Prioritized": "Пріоритет NSFW", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "Текст запитання NSFW йде першим у запиті, щоб підкреслити його ефект.", + "Streaming": "Стрімінг", + "Dynamic Temperature": "Динамічна температура", + "Restore current preset": "Відновити поточний налаштування", + "Neutralize Samplers": "Нейтралізувати зразки", + "Text Completion presets": "Налаштування завершення тексту", + "Documentation on sampling parameters": "Документація щодо параметрів вибірки", + "Set all samplers to their neutral/disabled state.": "Встановіть всі семплери у їх нейтральний/вимкнений стан.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Увімкніть це лише в разі підтримки моделлю розмірів контексту більше 4096 токенів", + "Display the response bit by bit as it is generated": "Поступово відображати відповідь по мірі її створення", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Генерувати лише один рядок за запит (тільки KoboldAI, ігнорується KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Заборонити токен закінчення послідовності (EOS) (з KoboldCpp, а можливо, також інші токени з KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Добре для написання історій, але не повинно використовуватися для чату і режиму інструкцій.", + "Enhance Definitions": "Покращити визначення", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Використовуйте базу знань OAI для покращення визначень для публічних осіб і відомих вигаданих персонажів", + "Wrap in Quotes": "Оберніть у лапки", + "Wrap entire user message in quotes before sending.": "Перед відправкою повідомлення користувача оберніть усе у лапки.", + "Leave off if you use quotes manually for speech.": "Не включайте, якщо ви вручну використовуєте лапки для мовлення.", + "Main prompt": "Основне запитання", + "The main prompt used to set the model behavior": "Основний запит, який використовується для встановлення поведінки моделі", + "NSFW prompt": "NSFW запит", + "Prompt that is used when the NSFW toggle is on": "Запит, який використовується, коли увімкнено перемикач NSFW", + "Jailbreak prompt": "Запит на втечу з в'язниці", + "Prompt that is used when the Jailbreak toggle is on": "Запит, який використовується, коли увімкнено перемикач Jailbreak", + "Impersonation prompt": "Запит на перевтілення", + "Prompt that is used for Impersonation function": "Запит, який використовується для функції перевтілення", + "Logit Bias": "Упередження логіту", + "Helps to ban or reenforce the usage of certain words": "Допомагає забороняти або підсилювати використання певних слів", + "View / Edit bias preset": "Переглянути / Редагувати заздалегідь встановлене упередження", + "Add bias entry": "Додати запис упередження", + "Jailbreak activation message": "Повідомлення про активацію втечі з в'язниці", + "Message to send when auto-jailbreak is on.": "Повідомлення для відправки при увімкненні автоматичної втечі з в'язниці.", + "Jailbreak confirmation reply": "Відповідь на підтвердження втечі з в'язниці", + "Bot must send this back to confirm jailbreak": "Робот повинен відправити це назад, щоб підтвердити втечу з в'язниці.", + "Character Note": "Примітка про персонажа", + "Influences bot behavior in its responses": "Впливає на поведінку робота у його відповідях", + "Connect": "Підключення", + "Test Message": "Тестове повідомлення", + "API": "API", + "KoboldAI": "KoboldAI", + "Use Horde": "Використовуйте Horde", + "API url": "URL-адреса API", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (режим обгортки для інтерфейсу програмування додатків OpenAI)", + "Register a Horde account for faster queue times": "Зареєструйте обліковий запис Horde для швидшого часу очікування в черзі", + "Learn how to contribute your idle GPU cycles to the Hord": "Дізнайтеся, як внести свої вільні цикли GPU до Hord", + "Adjust context size to worker capabilities": "Налаштуйте розмір контексту відповідно до можливостей робітників", + "Adjust response length to worker capabilities": "Налаштуйте довжину відповіді відповідно до можливостей робітників", + "API key": "Ключ API", + "Tabby API key": "Ключ API для Tabby", + "Get it here:": "Отримати його тут:", + "Register": "Зареєструвати", + "TogetherAI Model": "Модель TogetherAI", + "Example: 127.0.0.1:5001": "Приклад: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp (сервер виведення)", + "Example: 127.0.0.1:8080": "Приклад: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Приклад: 127.0.0.1:11434", + "Ollama Model": "Модель Ollama", + "Download": "Завантажити", + "TogetherAI API Key": "Ключ API для TogetherAI", + "-- Connect to the API --": "-- Підключення до API --", + "View my Kudos": "Переглянути мої Kudos", + "Enter": "Увійти", + "to use anonymous mode.": "щоб використовувати анонімний режим.", + "For privacy reasons": "З приватних причин", + "Models": "Моделі", + "Hold Control / Command key to select multiple models.": "Утримуйте клавішу Control / Command, щоб вибрати кілька моделей.", + "Horde models not loaded": "Моделі Horde не завантажено", + "Not connected...": "Не підключено...", + "Novel API key": "Ключ API для NovelAI", + "Follow": "Дотримуйтесь", + "these directions": "ці напрямки", + "to get your NovelAI API key.": "щоб отримати свій ключ API для NovelAI.", + "Enter it in the box below": "Введіть його в поле нижче", + "Novel AI Model": "Модель NovelAI", + "If you are using:": "Якщо ви використовуєте:", + "oobabooga/text-generation-webui": "", + "Make sure you run it with": "Переконайтеся, що ви запускаєте його з", + "flag": "прапор", + "API key (optional)": "Ключ API (необов'язково)", + "Server url": "URL-адреса сервера", + "Custom model (optional)": "Спеціальна модель (необов'язково)", + "Bypass API status check": "Обійти перевірку статусу API", + "Mancer AI": "", + "Use API key (Only required for Mancer)": "Використовуйте ключ API (потрібно лише для Mancer)", + "Blocking API url": "URL-адреса API, яка блокується", + "Example: 127.0.0.1:5000": "Приклад: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "Застарілий API (до OAI, без потокового відтворення)", + "Bypass status check": "Обійти перевірку статусу", + "Streaming API url": "URL-адреса потокового API", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Приклад: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Ключ API для Mancer", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Приклад: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "щоб отримати свій ключ API для OpenAI.", + "Window AI Model": "Модель Window AI", + "OpenAI Model": "Модель OpenAI", + "Claude API Key": "Ключ API для Claude", + "Get your key from": "Отримайте свій ключ з", + "Anthropic's developer console": "консоль розробника Anthropic", + "Slack and Poe cookies will not work here, do not bother trying.": "Функція Slack та файли cookie Poe тут не працюватимуть, не витрачайте час на спроби.", + "Claude Model": "Модель Claude", + "Scale API Key": "Ключ API для Scale", + "Alt Method": "Альтернативний метод", + "AI21 API Key": "Ключ API для AI21", + "AI21 Model": "Модель AI21", + "View API Usage Metrics": "Переглянути метрики використання API", + "Show External models (provided by API)": "Показати зовнішні моделі (надані API)", + "Bot": "Бот:", + "Allow fallback routes": "Дозволити резервні маршрути", + "Allow fallback routes Description": "Автоматично вибирає альтернативну модель, якщо вибрана модель не може задовольнити ваш запит.", + "OpenRouter API Key": "Ключ API OpenRouter", + "Connect to the API": "Підключитися до API", + "OpenRouter Model": "Модель OpenRouter", + "View Remaining Credits": "Переглянути залишкові кредити", + "Click Authorize below or get the key from": "Клацніть 'Авторизувати' нижче або отримайте ключ з", + "Auto-connect to Last Server": "Автоматичне підключення до останнього сервера", + "View hidden API keys": "Переглянути приховані ключі API", + "Advanced Formatting": "Розширене форматування", + "Context Template": "Шаблон контексту", + "AutoFormat Overrides": "Автоформат перевизначень", + "Disable description formatting": "Вимкнути форматування опису", + "Disable personality formatting": "Вимкнути форматування особистості", + "Disable scenario formatting": "Вимкнути форматування сценарію", + "Disable example chats formatting": "Вимкнути форматування прикладів чатів", + "Disable chat start formatting": "Вимкнути форматування початку чату", + "Custom Chat Separator": "Спеціальний роздільник чату", + "Replace Macro in Custom Stopping Strings": "Замінити макрос в власних рядках зупинки", + "Strip Example Messages from Prompt": "Видалити приклади повідомлень з пропозиції", + "Story String": "Рядок історії", + "Example Separator": "Роздільник прикладів", + "Chat Start": "Початок чату", + "Activation Regex": "Регулярний вираз активації", + "Instruct Mode": "Режим інструкцій", + "Wrap Sequences with Newline": "Перенесення послідовностей з нового рядка", + "Include Names": "Включити імена", + "Force for Groups and Personas": "Примусово для груп і персонажів", + "System Prompt": "Системне запитання", + "Instruct Mode Sequences": "Послідовності режиму інструкцій", + "Input Sequence": "Послідовність введення", + "Output Sequence": "Послідовність виведення", + "First Output Sequence": "Перша послідовність виведення", + "Last Output Sequence": "Остання послідовність виведення", + "System Sequence Prefix": "Префікс послідовності системи", + "System Sequence Suffix": "Суфікс послідовності системи", + "Stop Sequence": "Послідовність зупинки", + "Context Formatting": "Форматування контексту", + "(Saved to Context Template)": "(Збережено в шаблоні контексту)", + "Tokenizer": "Токенізатор", + "None / Estimated": "Жоден / Оцінений", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "Вирівнювання токенів", + "Save preset as": "Зберегти попередньо встановлене як", + "Always add character's name to prompt": "Завжди додавати ім'я персонажа до пропозиції", + "Use as Stop Strings": "Використовувати як рядки зупинки", + "Bind to Context": "Прив'язати до контексту", + "Generate only one line per request": "Генерувати лише один рядок за запит", + "Misc. Settings": "Різні налаштування", + "Auto-Continue": "Автоматичне продовження", + "Collapse Consecutive Newlines": "Згортати послідовні нові рядки", + "Allow for Chat Completion APIs": "Дозволити для API завершення чату", + "Target length (tokens)": "Цільова довжина (токени)", + "Keep Example Messages in Prompt": "Зберігати приклади повідомлень у пропозиції", + "Remove Empty New Lines from Output": "Видалити порожні нові рядки з виведення", + "Disabled for all models": "Вимкнено для всіх моделей", + "Automatic (based on model name)": "Автоматичний (заснований на назві моделі)", + "Enabled for all models": "Увімкнено для всіх моделей", + "Anchors Order": "Порядок якорів", + "Character then Style": "Потім стиль персонажа", + "Style then Character": "Потім стиль", + "Character Anchor": "Якір персонажа", + "Style Anchor": "Стильовий якір", + "World Info": "Інформація про світ", + "Scan Depth": "Глибина сканування", + "Case-Sensitive": "З урахуванням регістру", + "Match Whole Words": "Відповідність цілим словам", + "Use global setting": "Використовувати глобальні налаштування", + "Yes": "Так", + "No": "Ні", + "Context %": "Контекст %", + "Budget Cap": "Ліміт бюджету", + "(0 = disabled)": "(0 = вимкнено)", + "depth": "глибина", + "Token Budget": "Бюджет токенів", + "budget": "бюджет", + "Recursive scanning": "Рекурсивне сканування", + "None": "Немає", + "User Settings": "Налаштування користувача", + "UI Mode": "Режим користувацького інтерфейсу", + "UI Language": "мова", + "MovingUI Preset": "Попередньо встановлене MovingUI", + "UI Customization": "Налаштування користувацького інтерфейсу", + "Avatar Style": "Стиль аватара", + "Circle": "Коло", + "Rectangle": "Прямокутник", + "Square": "Квадрат", + "Chat Style": "Стиль чату", + "Default": "За замовчуванням", + "Bubbles": "Мурашки", + "No Blur Effect": "Без ефекту розмиття", + "No Text Shadows": "Без тіней тексту", + "Waifu Mode": "Режим Waifu", + "Message Timer": "Таймер повідомлень", + "Model Icon": "Іконка моделі", + "# of messages (0 = disabled)": "# повідомлень (0 = вимкнено)", + "Advanced Character Search": "Розширений пошук персонажа", + "Allow {{char}}: in bot messages": "Дозволити {{char}}: у повідомленнях бота", + "Allow {{user}}: in bot messages": "Дозволити {{user}}: у повідомленнях бота", + "Show tags in responses": "Показати теги в відповідях", + "Aux List Field": "Допоміжний список полів", + "Lorebook Import Dialog": "Діалог імпорту книги знань", + "MUI Preset": "Попереднє встановлення MUI:", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Якщо встановлено у визначеннях розширеного персонажа, це поле буде відображено в списку персонажів.", + "Relaxed API URLS": "URL-адреси API з невимогою", + "Custom CSS": "Власний CSS", + "Default (oobabooga)": "За замовчуванням (oobabooga)", + "Mancer Model": "Модель Mancer", + "API Type": "Тип API", + "Aphrodite API key": "Ключ API Aphrodite", + "Relax message trim in Groups": "Послаблення обрізання повідомлень у групах", + "Characters Hotswap": "Швидка заміна персонажів", + "Request token probabilities": "Імовірності запиту токенів", + "Movable UI Panels": "Рухомі панелі користувальницького інтерфейсу", + "Reset Panels": "Скидання панелей", + "UI Colors": "Кольори користувальницького інтерфейсу", + "Main Text": "Головний текст", + "Italics Text": "Курсивний текст", + "Quote Text": "Текст цитати", + "Shadow Color": "Колір тіні", + "FastUI BG": "Швидкий фон UI", + "Blur Tint": "Затемнення фону", + "Font Scale": "Масштаб шрифту", + "Blur Strength": "Сила розмиття", + "Text Shadow Width": "Ширина тіні тексту", + "UI Theme Preset": "Попередньо встановлена тема інтерфейсу", + "Power User Options": "Параметри для досвідчених користувачів", + "Swipes": "Потяги", + "Miscellaneous": "Різне", + "Theme Toggles": "Перемикачі теми", + "Background Sound Only": "Тільки фоновий звук", + "Auto-load Last Chat": "Автоматичне завантаження останнього чату", + "Auto-save Message Edits": "Автоматичне збереження редагувань повідомлень", + "Auto-fix Markdown": "Автоматичний ремонт Markdown", + "Allow : in bot messages": "Дозволити : у повідомленнях бота", + "Auto-scroll Chat": "Автоматична прокрутка чату", + "Render Formulas": "Відображення формул", + "Send on Enter": "Відправити при натисканні Enter", + "Always disabled": "Завжди вимкнено", + "Automatic (desktop)": "Автоматичний (робочий стіл)", + "Always enabled": "Завжди увімкнено", + "Debug Menu": "Меню налагодження", + "Restore User Input": "Відновлення введення користувача", + "Character Handling": "Обробка персонажа", + "Example Messages Behavior": "Поведінка прикладних повідомлень", + "Gradual push-out": "Поступове виштовхування", + "Chat/Message Handling": "Обробка чату/повідомлень", + "Always include examples": "Завжди включати приклади", + "Never include examples": "Ніколи не включати приклади", + "Forbid External Media": "Заборонити зовнішні медіа", + "System Backgrounds": "Фони системи", + "Name": "Ім'я", + "Your Avatar": "Ваш аватар", + "Extensions API:": "API розширень:", + "SillyTavern-extras": "SillyTavern-додатки", + "Auto-connect": "Автоматичне підключення", + "Active extensions": "Активні розширення", + "Extension settings": "Налаштування розширення", + "Description": "Опис", + "First message": "Перше повідомлення", + "Group Controls": "Керування групою", + "Group reply strategy": "Стратегія відповіді у групі", + "Natural order": "Природний порядок", + "List order": "Порядок списку", + "Allow self responses": "Дозволити відповіді самому собі", + "Auto Mode": "Автоматичний режим", + "Add Members": "Додати учасників", + "Current Members": "Поточні учасники", + "text": "текст", + "Delete": "Видалити", + "Cancel": "Скасувати", + "Advanced Defininitions": "Розширені визначення", + "Personality summary": "Опис особистості", + "A brief description of the personality": "Короткий опис особистості", + "Scenario": "Сценарій", + "Circumstances and context of the dialogue": "Обставини та контекст діалогу", + "Talkativeness": "Балакучість", + "How often the chracter speaks in": "Як часто персонаж розмовляє у", + "group chats!": "групових чатах!", + "Shy": "Сором'язливий", + "Normal": "Нормальний", + "Chatty": "Балакучий", + "Examples of dialogue": "Приклади діалогу", + "Forms a personality more clearly": "Формує особистість більш чітко", + "Save": "Зберегти", + "World Info Editor": "Редактор інформації про світ", + "New summary": "Новий опис", + "Export": "Експорт", + "Delete World": "Видалити світ", + "Chat History": "Історія чату", + "Group Chat Scenario Override": "Перевизначення сценарію групового чату", + "All group members will use the following scenario text instead of what is specified in their character cards.": "Усі учасники групи використовуватимуть наступний текст сценарію замість того, що вказано у їх картках персонажа.", + "Keywords": "Ключові слова", + "Separate with commas": "Розділяйте комами", + "Secondary Required Keywords": "Вторинні обов'язкові ключові слова", + "Content": "Зміст", + "What this keyword should mean to the AI": "Що це ключове слово має означати для штучного інтелекту", + "Memo/Note": "Нотатка/Примітка", + "Not sent to AI": "Не відправляється до штучного інтелекту", + "Constant": "Постійний", + "Selective": "Вибірковий", + "Before Char": "Перед персонажем", + "After Char": "Після персонажа", + "Insertion Order": "Порядок вставки", + "Tokens:": "Токени:", + "Disable": "Вимкнути", + "${characterName}": "${ім'яПерсонажа}", + "CHAR": "Персонаж", + "is typing": "пише...", + "Back to parent chat": "Повернутися до батьківського чату", + "Save bookmark": "Зберегти закладку", + "Convert to group": "Перетворити на групу", + "Start new chat": "Розпочати новий чат", + "View past chats": "Переглянути минулі чати", + "Delete messages": "Видалити повідомлення", + "Impersonate": "Видача за іншого", + "Regenerate": "Регенерувати", + "PNG": "PNG", + "JSON": "JSON", + "presets": "налаштування за замовчуванням", + "Message Sound": "Звук повідомлення", + "Author's Note": "Примітка автора", + "Send Jailbreak": "Відправити Jailbreak", + "Replace empty message": "Замінити порожнє повідомлення", + "Send this text instead of nothing when the text box is empty.": "Надіслати цей текст замість порожнього, коли поле тексту порожнє.", + "NSFW avoidance prompt": "Підказка про уникнення NSFW", + "Prompt that is used when the NSFW toggle is off": "Підказка, яка використовується, коли вимкнено перемикач NSFW", + "Advanced prompt bits": "Продвинуті біти підказок", + "World Info format": "Формат інформації про світ", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Закручує активовані записи інформації про світ перед вставленням у підказку. Використовуйте {0}, щоб позначити місце вставлення вмісту.", + "Unrestricted maximum value for the context slider": "Необмежене максимальне значення для повзунка контексту", + "Chat Completion Source": "Джерело завершення чату", + "Avoid sending sensitive information to the Horde.": "Уникайте надсилання чутливої інформації Горді.", + "Review the Privacy statement": "Перегляньте заяву про конфіденційність", + "Learn how to contribute your idel GPU cycles to the Horde": "Дізнайтеся, як внести свої вільні цикли GPU до Горди", + "Trusted workers only": "Лише довірені працівники", + "For privacy reasons, your API key will be hidden after you reload the page.": "З приватних причин ваш ключ API буде приховано після перезавантаження сторінки.", + "-- Horde models not loaded --": "-- Моделі Горди не завантажені --", + "Example: http://127.0.0.1:5000/api ": "Приклад: http://127.0.0.1:5000/api", + "No connection...": "Немає підключення...", + "Get your NovelAI API Key": "Отримайте свій ключ API NovelAI", + "KoboldAI Horde": "Гордія KoboldAI", + "Text Gen WebUI (ooba)": "Веб-інтерфейс генерації тексту (ooba)", + "NovelAI": "NovelAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Завершення чату (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "Ключ API OpenAI", + "Trim spaces": "Обрізати пробіли", + "Trim Incomplete Sentences": "Обрізати неповні речення", + "Include Newline": "Включити новий рядок", + "Non-markdown strings": "Рядки без Markdown", + "Replace Macro in Sequences": "Замінити макрос в послідовностях", + "Presets": "Налаштування за замовчуванням", + "Separator": "Роздільник", + "Start Reply With": "Почати відповідь з", + "Show reply prefix in chat": "Показати префікс відповіді в чаті", + "Worlds/Lorebooks": "Світи/Lorebook-и", + "Active World(s)": "Активні світи", + "Activation Settings": "Налаштування активації", + "Character Lore Insertion Strategy": "Стратегія вставки характеристики характеристики", + "Sorted Evenly": "Рівномірно впорядковані", + "Active World(s) for all chats": "Активні світи для всіх чатів", + "-- World Info not found --": "-- Інформація про світ не знайдена --", + "--- Pick to Edit ---": "--- Виберіть для редагування ---", + "or": "або", + "New": "Новий", + "Priority": "Пріоритет", + "Custom": "Користувацький", + "Title A-Z": "Заголовок від А до Я", + "Title Z-A": "Заголовок від Я до А", + "Tokens ↗": "Токени ↗", + "Tokens ↘": "Токени ↘", + "Depth ↗": "Глибина ↗", + "Depth ↘": "Глибина ↘", + "Order ↗": "Порядок ↗", + "Order ↘": "Порядок ↘", + "UID ↗": "UID ↗", + "UID ↘": "UID ↘", + "Trigger% ↗": "Тригер% ↗", + "Trigger% ↘": "Тригер% ↘", + "Order:": "Порядок:", + "Depth:": "Глибина:", + "Character Lore First": "Характеристика персонажа першою", + "Global Lore First": "Глобальний Lore перший", + "Recursive Scan": "Рекурсивне сканування", + "Case Sensitive": "Чутливий до регістру", + "Match whole words": "Відповідає цілим словам", + "Alert On Overflow": "Сповіщення при переповненні", + "World/Lore Editor": "Редактор світу/Lore", + "--- None ---": "--- Нічого ---", + "Comma separated (ignored if empty)": "Розділені комою (ігноруються, якщо порожні)", + "Use Probability": "Використовуйте ймовірність", + "Exclude from recursion": "Виключити з рекурсії", + "Entry Title/Memo": "Заголовок запису/записка", + "Position:": "Позиція:", + "T_Position": "↑Символ: перед визначеннями символів\n↓Символ: після визначень символів\n↑AN: перед авторськими примітками\n↓AN: після авторських приміток\n@D: на глибині", + "Before Char Defs": "↑Визначення символів", + "After Char Defs": "↓Визначення символів", + "Before AN": "↑AN", + "After AN": "↓AN", + "at Depth": "@Глибина", + "Order": "Порядок:", + "Probability:": "Ймовірність:", + "Update a theme file": "Оновити файл теми", + "Save as a new theme": "Зберегти як нову тему", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Мінімальна кількість заборонених слів, виявлених для запуску автоматичного змаху.", + "Delete Entry": "Видалити запис", + "User Message Blur Tint": "Затемнення користувацького повідомлення", + "AI Message Blur Tint": "Затемнення повідомлення ШІ", + "Chat Backgrounds": "Фони чату", + "Chat Background": "Фон чату", + "UI Background": "Фон інтерфейсу користувача", + "Mad Lab Mode": "Режим Божевілля Лабораторії", + "Show Message Token Count": "Показати кількість токенів у повідомленні", + "Compact Input Area (Mobile)": "Компактна область введення (мобільна)", + "Zen Sliders": "Слайдери зен", + "UI Border": "Межа інтерфейсу користувача", + "Chat Style:": "Стиль чату:", + "Chat Width (PC)": "Ширина чату (ПК)", + "Chat Timestamps": "Відмітки часу чату", + "Tags as Folders": "Теги як теки", + "Chat Truncation": "Обрізка чату", + "(0 = unlimited)": "(0 = необмежено)", + "Streaming FPS": "Кадри на секунду потокового відео", + "Gestures": "Жести", + "Message IDs": "Ідентифікатори повідомлень", + "Prefer Character Card Prompt": "Перевага картки персонажа з підказкою", + "Prefer Character Card Jailbreak": "Перевага картки персонажа з в'язницею", + "Press Send to continue": "Натисніть 'Відправити', щоб продовжити", + "Quick 'Continue' button": "Швидка кнопка 'Продовжити'", + "Log prompts to console": "Записуйте підказки у консоль", + "Never resize avatars": "Ніколи не змінювати розмір аватарів", + "Show avatar filenames": "Показати імена файлів аватарів", + "Import Card Tags": "Імпортуйте теги картки", + "Confirm message deletion": "Підтвердити видалення повідомлення", + "Spoiler Free Mode": "Режим без спойлерів", + "Auto-swipe": "Автоматичний змах", + "Minimum generated message length": "Мінімальна довжина згенерованого повідомлення", + "Blacklisted words": "Список заборонених слів", + "Blacklisted word count to swipe": "Кількість заборонених слів для змаху", + "Reload Chat": "Перезавантажити чат", + "Search Settings": "Налаштування пошуку", + "Disabled": "Вимкнено", + "Automatic (PC)": "Автоматичний (ПК)", + "Enabled": "Увімкнено", + "Simple": "Простий", + "Advanced": "Розширений", + "Disables animations and transitions": "Вимикає анімації та переходи", + "removes blur from window backgrounds": "видаляє розмиття з фонів вікон для прискорення відображення", + "Remove text shadow effect": "Видалити тінь тексту", + "Reduce chat height, and put a static sprite behind the chat window": "Зменшити висоту чату та розмістити статичний спрайт за вікном чату", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Завжди показувати повний список елементів контексту Повідомлення для повідомлень чату, а не приховувати їх за '...' ", + "Alternative UI for numeric sampling parameters with fewer steps": "Альтернативний інтерфейс користувача для числових параметрів вибірки з меншою кількістю кроків", + "Entirely unrestrict all numeric sampling parameters": "Повністю скасуйте обмеження всіх числових параметрів вибірки", + "Time the AI's message generation, and show the duration in the chat log": "Виміряйте час генерації повідомлення ШІ та покажіть тривалість у журналі чату", + "Show a timestamp for each message in the chat log": "Показати відмітку часу для кожного повідомлення у журналі чату", + "Show an icon for the API that generated the message": "Показати значок для API, який згенерував повідомлення", + "Show sequential message numbers in the chat log": "Показати послідовні номери повідомлень у журналі чату", + "Show the number of tokens in each message in the chat log": "Показати кількість токенів у кожному повідомленні у журналі чату", + "Single-row message input area. Mobile only, no effect on PC": "Область введення повідомлення з одним рядком. Тільки для мобільних пристроїв, не впливає на ПК", + "In the Character Management panel, show quick selection buttons for favorited characters": "У панелі Управління персонажами показувати кнопки швидкого вибору для улюблених персонажів", + "Show tagged character folders in the character list": "Показати папки персонажів з тегами у списку персонажів", + "Play a sound when a message generation finishes": "Відтворити звук, коли завершується генерація повідомлення", + "Only play a sound when ST's browser tab is unfocused": "Відтворюйте звук лише тоді, коли вкладка браузера ST не зосереджена", + "Reduce the formatting requirements on API URLs": "Зменшіть вимоги до форматування URL-адрес API", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Попросіть імпортувати інформацію про світ/лорбук для кожного нового персонажа з вбудованим лорбуком. Якщо не відзначено, замість цього буде показано коротке повідомлення", + "Restore unsaved user input on page refresh": "Відновити незбережений введений користувачем при оновленні сторінки", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Дозвольте переміщення деяких елементів інтерфейсу користувача, перетягуючи їх. Тільки для ПК, не впливає на мобільні пристрої", + "MovingUI preset. Predefined/saved draggable positions": "Передбачений/збережений налаштування рухомого інтерфейсу. Передбачені/збережені позиції, які можна перетягувати", + "Save movingUI changes to a new file": "Зберегти зміни в рухомому інтерфейсі у новий файл", + "Apply a custom CSS style to all of the ST GUI": "Застосуйте власний стиль CSS до всього графічного інтерфейсу ST", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Використовуйте розмите відповідності та шукайте персонажів у списку за всіма полями даних, а не лише за підстрокою імені", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Якщо відмічено і картка персонажа містить заміну підказки (Системна підказка), використовуйте її замість цього", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Якщо відмічено і картка персонажа містить заміну в'язниці (Інструкція про історію публікацій), використовуйте її замість цього", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Уникайте обрізання та зміни розміру імпортованих зображень персонажів. Якщо вимкнено, обрізайте/змінюйте розмір на 400x600", + "Show actual file names on the disk, in the characters list display only": "Показати фактичні назви файлів на диску, тільки у відображенні списку персонажів", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Запрошення імпортувати вбудовані теги картки при імпорті персонажа. В іншому випадку вбудовані теги ігноруються", + "Hide character definitions from the editor panel behind a spoiler button": "Сховати визначення персонажів з панелі редактора за кнопкою спойлера", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Показати кнопку у області введення для запиту у ШІ про продовження (розширення) його останнього повідомлення", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Показати кнопки стрілок на останньому повідомленні в чаті, щоб згенерувати альтернативні відповіді ШІ. Як на ПК, так і на мобільних пристроях", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Дозвольте використовувати жести перетягування на останньому повідомленні в чаті для запуску генерації свайпів. Тільки для мобільних пристроїв, не впливає на ПК", + "Save edits to messages without confirmation as you type": "Збережіть внесені зміни до повідомлень без підтвердження під час набору", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Відображення формул LaTeX та AsciiMath у повідомленнях чату. Працює на основі KaTeX", + "Disalow embedded media from other domains in chat messages": "Забороняти вбудовані медіа з інших доменів у повідомленнях чату", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Пропустіть кодування та символи у тексті повідомлення, дозволяючи підмножину розмітки HTML, а також Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Дозволити повідомлення ШІ у групах містити рядки, сказані іншими учасниками групи", + "Requests logprobs from the API for the Token Probabilities feature": "Запитує логарифмічні імовірності з API для функції ймовірностей токенів", + "Automatically reject and re-generate AI message based on configurable criteria": "Автоматично відхиляти та знову генерувати повідомлення ШІ на основі налаштованих критеріїв", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Увімкніть функцію автоматичного свайпу. Налаштування в цьому розділі діють лише тоді, коли увімкнено автоматичний свайп", + "If the generated message is shorter than this, trigger an auto-swipe": "Якщо згенероване повідомлення коротше за це, викликайте автоматичний свайп", + "Reload and redraw the currently open chat": "Перезавантажте та перетворіть на новий поточний чат", + "Auto-Expand Message Actions": "Автоматично розгортати дії повідомлень", + "Not Connected": "Не підключено", + "Persona Management": "Управління персоналом", + "Persona Description": "Опис персони", + "Your Persona": "Ваша особистість", + "Show notifications on switching personas": "Показувати сповіщення при зміні особистостей", + "Blank": "Порожній", + "In Story String / Chat Completion: Before Character Card": "У рядку сюжету / завершення чату: перед карткою персонажа", + "In Story String / Chat Completion: After Character Card": "У рядку сюжету / завершення чату: після картки персонажа", + "In Story String / Prompt Manager": "У рядку сюжету / Менеджер підказок", + "Top of Author's Note": "На вершині примітки автора", + "Bottom of Author's Note": "Унизу примітки автора", + "How do I use this?": "Як я можу це використовувати?", + "More...": "Більше...", + "Link to World Info": "Посилання на інформацію про світ", + "Import Card Lore": "Імпорт легенд картки", + "Scenario Override": "Перевизначення сценарію", + "Rename": "Перейменувати", + "Character Description": "Опис персонажа", + "Creator's Notes": "Нотатки творця", + "A-Z": "А-Я", + "Z-A": "Я-А", + "Newest": "Найновіше", + "Oldest": "Найстаріше", + "Favorites": "Вибрані", + "Recent": "Останні", + "Most chats": "Найбільше чатів", + "Least chats": "Менше чатів", + "Back": "Назад", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Перевизначення підказок (для API OpenAI/Claude/Scale, вікон/відкритих маршрутизаторів та режиму навчання)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Вставте {{original}} в будь-яку коробку, щоб включити відповідну типову підказку з налаштувань системи.", + "Main Prompt": "Головна підказка", + "Jailbreak": "Виходи з в'язниці", + "Creator's Metadata (Not sent with the AI prompt)": "Метадані творця (не надсилаються з підказкою ШІ)", + "Everything here is optional": "Все тут є необов'язковим", + "Created by": "Створено", + "Character Version": "Версія персонажа", + "Tags to Embed": "Теги для вбудовування", + "How often the character speaks in group chats!": "Як часто персонаж розмовляє в групових чатах!", + "Important to set the character's writing style.": "Важливо встановити стиль письма персонажа.", + "ATTENTION!": "УВАГА!", + "Samplers Order": "Порядок вибірки", + "Samplers will be applied in a top-down order. Use with caution.": "Вибірки будуть застосовані у порядку зверху донизу. Використовуйте з обережністю.", + "Repetition Penalty": "Покарання за повторення", + "Rep. Pen. Range.": "Діапазон покарання за повторення.", + "Rep. Pen. Freq.": "Частота покарання за повторення.", + "Rep. Pen. Presence": "Наявність покарання за повторення.", + "Enter it in the box below:": "Введіть його в коробку нижче:", + "separate with commas w/o space between": "розділяйте комами без пропусків між ними", + "Document": "Документ", + "Suggest replies": "Запропонувати відповіді", + "Show suggested replies. Not all bots support this.": "Показати запропоновані відповіді. Не всі боти підтримують це.", + "Use 'Unlocked Context' to enable chunked generation.": "Використовуйте 'Розблокований контекст', щоб увімкнути розділене створення.", + "It extends the context window in exchange for reply generation speed.": "Він розширює вікно контексту в обмін на швидкість генерації відповідей.", + "Continue": "Продовжити", + "CFG Scale": "Масштаб CFG", + "Editing:": "Редагування:", + "AI reply prefix": "Префікс відповіді ШІ", + "Custom Stopping Strings": "Спеціальні рядки зупинки", + "JSON serialized array of strings": "JSON серіалізований масив рядків", + "words you dont want generated separated by comma ','": "слова, які ви не хочете генерувати, розділені комою ','", + "Extensions URL": "URL розширень", + "API Key": "Ключ API", + "Enter your name": "Введіть своє ім'я", + "Name this character": "Дайте цьому персонажу ім'я", + "Search / Create Tags": "Пошук / Створення тегів", + "Describe your character's physical and mental traits here.": "Опишіть фізичні та психічні риси вашого персонажа тут.", + "This will be the first message from the character that starts every chat.": "Це буде перше повідомлення від персонажа, яке починає кожен чат.", + "Chat Name (Optional)": "Назва чату (необов'язково)", + "Filter...": "Фільтрувати...", + "Search...": "Пошук...", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Будь-який вміст тут замінить типову головну підказку, використовувану для цього персонажа. (v2 специфікація: системна підказка)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Будь-який вміст тут замінить типову підказку для ксилки, використовувану для цього персонажа. (v2 специфікація: інструкції історії після)", + "(Botmaker's name / Contact Info)": "(Ім'я розробника бота / Контактна інформація)", + "(If you want to track character versions)": "(Якщо ви хочете відстежувати версії персонажа)", + "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Опишіть бота, дайте поради щодо використання або перерахуйте моделі чату, на яких він був протестований. Це буде відображатися у списку персонажів.)", + "(Write a comma-separated list of tags)": "(Напишіть список тегів, розділених комами)", + "(A brief description of the personality)": "(Короткий опис особистості)", + "(Circumstances and context of the interaction)": "(Обставини та контекст взаємодії)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Приклади діалогу в чаті. Почніть кожний приклад з початку на новому рядку.)", + "Injection text (supports parameters)": "Текст впровадження (підтримує параметри)", + "Injection depth": "Глибина впровадження", + "Type here...": "Введіть тут...", + "Comma separated (required)": "Розділені комами (обов'язково)", + "What this keyword should mean to the AI, sent verbatim": "Що це ключове слово повинно означати для ШІ, надсилається дослівно", + "Filter to Character(s)": "Фільтр до персонажів", + "Character Exclusion": "Виключення персонажів", + "Inclusion Group": "Група включення", + "Only one entry with the same label will be activated": "Буде активовано лише один запис з однією міткою", + "-- Characters not found --": "-- Персонажі не знайдені --", + "Not sent to the AI": "Не відправлено ШІ", + "(This will be the first message from the character that starts every chat)": "(Це буде перше повідомлення від персонажа, яке починає кожен чат)", + "Not connected to API!": "Не підключено до API!", + "AI Response Configuration": "Конфігурація відповіді ШІ", + "AI Configuration panel will stay open": "Панель конфігурації ШІ залишиться відкритою", + "Update current preset": "Оновити поточний шаблон", + "Create new preset": "Створити новий шаблон", + "Import preset": "Імпортувати шаблон", + "Export preset": "Експортувати шаблон", + "Delete the preset": "Видалити шаблон", + "Auto-select this preset for Instruct Mode": "Автоматично вибрати цей шаблон для режиму навчання", + "Auto-select this preset on API connection": "Автоматично вибрати цей шаблон при підключенні до API", + "NSFW block goes first in the resulting prompt": "Блок NSFW йде першим у результаті підказки", + "Enables OpenAI completion streaming": "Увімкнути потокове завершення OpenAI", + "Wrap user messages in quotes before sending": "Перед відправленням обгортайте повідомлення користувача в лапки", + "Restore default prompt": "Відновити типову підказку", + "New preset": "Новий шаблон", + "Delete preset": "Видалити шаблон", + "Restore default jailbreak": "Відновити типовий ксилку", + "Restore default reply": "Відновити типову відповідь", + "Restore defaul note": "Відновити типову примітку", + "API Connections": "З'єднання з API", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Може допомогти з поганими відповідями, ставлячи в чергу тільки схвалених робітників. Може сповільнити час відповіді.", + "Clear your API key": "Очистити свій ключ API", + "Refresh models": "Оновити моделі", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Отримайте свій токен API OpenRouter за допомогою OAuth потоку. Вас буде перенаправлено на openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Підтверджує ваше підключення до API, надсилаючи коротке тестове повідомлення. Пам'ятайте, що ви будете кредитуватися за це!", + "Create New": "Створити новий", + "Edit": "Редагувати", + "Locked = World Editor will stay open": "Заблоковано = Редактор світу залишиться відкритим", + "Entries can activate other entries by mentioning their keywords": "Записи можуть активувати інші записи, згадуючи їх ключові слова", + "Lookup for the entry keys in the context will respect the case": "Пошук ключів запису в контексті буде дотримуватися випадку", + "If the entry key consists of only one word, it would not be matched as part of other words": "Якщо ключ запису складається лише з одного слова, він не буде співпадати як частина інших слів", + "Open all Entries": "Відкрити всі записи", + "Close all Entries": "Закрити всі записи", + "Create": "Створити", + "Import World Info": "Імпортувати інформацію про світ", + "Export World Info": "Експортувати інформацію про світ", + "Delete World Info": "Видалити інформацію про світ", + "Duplicate World Info": "Дублювати інформацію про світ", + "Rename World Info": "Перейменувати інформацію про світ", + "Refresh": "Оновити", + "Primary Keywords": "Основні ключові слова", + "Logic": "Логіка", + "AND ANY": "І БУДЬ-ЯКІ", + "AND ALL": "І ВСІ", + "NOT ALL": "НЕ ВСІ", + "NOT ANY": "НЕ БУДЬ-ЯКІ", + "Optional Filter": "Додатковий фільтр", + "New Entry": "Новий запис", + "Fill empty Memo/Titles with Keywords": "Заповнити порожні підказки/заголовки ключовими словами", + "Save changes to a new theme file": "Зберегти зміни в новому файлі теми", + "removes blur and uses alternative background color for divs": "видаляє розмиття та використовує альтернативний колір фону для блоків", + "AI Response Formatting": "Форматування відповіді штучного інтелекту", + "Change Background Image": "Змінити фонове зображення", + "Extensions": "Розширення", + "Click to set a new User Name": "Клацніть, щоб встановити нове ім'я користувача", + "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Клацніть, щоб заблокувати обрану персону в поточному чаті. Клацніть ще раз, щоб видалити блокування.", + "Click to set user name for all messages": "Клацніть, щоб встановити ім'я користувача для всіх повідомлень", + "Create a dummy persona": "Створити манекен-персону", + "Character Management": "Управління персонажем", + "Locked = Character Management panel will stay open": "Заблоковано = Панель управління персонажем залишиться відкритою", + "Select/Create Characters": "Вибрати/створити персонажів", + "Token counts may be inaccurate and provided just for reference.": "Лічильники токенів можуть бути неточними і надаються тільки для посилання.", + "Click to select a new avatar for this character": "Клацніть, щоб вибрати новий аватар для цього персонажа", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Приклад: [{{user}} - 28-річна румунська кішка].", + "Toggle grid view": "Перемкнути вид сітки", + "Add to Favorites": "Додати до обраного", + "Advanced Definition": "Розширений опис", + "Character Lore": "Історія персонажа", + "Export and Download": "Експорт і завантаження", + "Duplicate Character": "Дублювати персонажа", + "Create Character": "Створити персонажа", + "Delete Character": "Видалити персонажа", + "View all tags": "Переглянути всі теги", + "Click to set additional greeting messages": "Клацніть, щоб встановити додаткові привітальні повідомлення", + "Show / Hide Description and First Message": "Показати / приховати опис і перше повідомлення", + "Click to select a new avatar for this group": "Клацніть, щоб вибрати новий аватар для цієї групи", + "Set a group chat scenario": "Встановити сценарій групового чату", + "Restore collage avatar": "Відновити аватар колажу", + "Create New Character": "Створити нового персонажа", + "Import Character from File": "Імпортувати персонажа з файлу", + "Import content from external URL": "Імпортувати вміст з зовнішнього URL", + "Create New Chat Group": "Створити нову групу чату", + "Characters sorting order": "Порядок сортування персонажів", + "Add chat injection": "Додати впору в чат", + "Remove injection": "Вилучити впору", + "Remove": "Видалити", + "Select a World Info file for": "Виберіть файл інформації про світ для", + "Primary Lorebook": "Основний збірник легенд", + "A selected World Info will be bound to this character as its own Lorebook.": "Вибрана інформація про світ буде пов'язана з цим персонажем як власний збірник легенд.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Під час генерації відповіді ШІ, вона буде поєднана з записами зі світового селектора інформації.", + "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Експорт персонажа також експортуватиме вибраний файл збірника легенд, вбудований у дані JSON.", + "Additional Lorebooks": "Додаткові збірники легенд", + "Associate one or more auxillary Lorebooks with this character.": "Асоціюйте один або кілька допоміжних збірників легенд з цим персонажем.", + "NOTE: These choices are optional and won't be preserved on character export!": "ПРИМІТКА: Ці вибори є необов'язковими і не будуть збережені при експорті персонажа!", + "Rename chat file": "Перейменувати файл чату", + "Export JSONL chat file": "Експортувати файл чату у форматі JSONL", + "Download chat as plain text document": "Завантажити чат як документ у форматі простого тексту", + "Delete chat file": "Видалити файл чату", + "Delete tag": "Видалити тег", + "Translate message": "Перекласти повідомлення", + "Generate Image": "Створити зображення", + "Narrate": "Розповідати", + "Prompt": "Запит", + "Create Bookmark": "Створити закладку", + "Copy": "Копіювати", + "Open bookmark chat": "Відкрити чат за закладкою", + "Confirm": "Підтвердити", + "Copy this message": "Скопіювати це повідомлення", + "Delete this message": "Видалити це повідомлення", + "Move message up": "Перемістити повідомлення вгору", + "Move message down": "Перемістити повідомлення вниз", + "Enlarge": "Збільшити", + "Temporarily disable automatic replies from this character": "Тимчасово вимкнути автоматичні відповіді від цього персонажа", + "Enable automatic replies from this character": "Увімкнути автоматичні відповіді від цього персонажа", + "Trigger a message from this character": "Викликати повідомлення від цього персонажа", + "Move up": "Перемістити вгору", + "Move down": "Перемістити вниз", + "View character card": "Переглянути картку персонажа", + "Remove from group": "Вилучити з групи", + "Add to group": "Додати до групи", + "Add": "Додати", + "Abort request": "Скасувати запит", + "Send a message": "Надіслати повідомлення", + "Ask AI to write your message for you": "Попросіть ШІ написати ваше повідомлення за вас", + "Continue the last message": "Продовжте останнє повідомлення", + "Bind user name to that avatar": "Прив'яжіть ім'я користувача до цього аватара", + "Select this as default persona for the new chats.": "Виберіть це як типову особистість для нових чатів.", + "Change persona image": "Змінити зображення особистості", + "Delete persona": "Видалити особистість", + "Reduced Motion": "Зменшена рухомість", + "Auto-select": "Автовибір", + "Automatically select a background based on the chat context": "Автоматичний вибір фону на основі контексту чату", + "Filter": "Фільтр", + "Exclude message from prompts": "Виключити повідомлення з підказок", + "Include message in prompts": "Включити повідомлення в підказки", + "Create checkpoint": "Створити контрольну точку", + "Create Branch": "Створити гілку", + "Embed file or image": "Вбудувати файл або зображення", + "UI Theme": "Тема інтерфейсу користувача", + "This message is invisible for the AI": "Це повідомлення невидиме для ШІ", + "Sampler Priority": "Пріоритет зразка", + "Ooba only. Determines the order of samplers.": "Лише Ooba. Визначає порядок вибірки.", + "Load default order": "Завантажити типовий порядок", + "Max Tokens Second": "Максимальна кількість токенів / секунду", + "CFG": "CFG", + "No items": "Немає елементів", + "Extras API key (optional)": "Додатковий ключ API (необов'язково)", + "Notify on extension updates": "Повідомити про оновлення розширень", + "Toggle character grid view": "Перемкнути вид сітки персонажів", + "Bulk edit characters": "Масове редагування персонажів", + "Bulk delete characters": "Масове видалення персонажів", + "Favorite characters to add them to HotSwaps": "Оберіть улюблених персонажів, щоб додати їх до HotSwaps", + "Underlined Text": "Підкреслений текст", + "Token Probabilities": "Ймовірності токенів", + "Close chat": "Закрити чат", + "Manage chat files": "Керувати файлами чату", + "Import Extension From Git Repo": "Імпортувати розширення з репозиторію Git", + "Install extension": "Встановити розширення", + "Manage extensions": "Керувати розширеннями", + "Tokens persona description": "Опис персонажа", + "Most tokens": "Найбільше токенів", + "Least tokens": "Найменше токенів", + "Random": "Випадковий", + "Skip Example Dialogues Formatting": "Пропустити форматування прикладів діалогів", + "Import a theme file": "Імпортувати файл теми", + "Export a theme file": "Експортувати файл теми" + + +} \ No newline at end of file From 25d40c381471f391a485981eb6f4841bad723350 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Wed, 13 Mar 2024 23:21:55 +0200 Subject: [PATCH 123/144] Fix translation file --- public/locales/uk-ua.json | 516 +++++++++++++++++++------------------- 1 file changed, 257 insertions(+), 259 deletions(-) diff --git a/public/locales/uk-ua.json b/public/locales/uk-ua.json index 37cc7a7d0..289771ac2 100644 --- a/public/locales/uk-ua.json +++ b/public/locales/uk-ua.json @@ -1,40 +1,40 @@ { "clickslidertips": "Натисніть, щоб ввести значення вручну.", - "kobldpresets": "Стандартні налаштування Kobold", - "guikoboldaisettings": "Налаштування інтерфейсу KoboldAI", - "novelaipreserts": "Стандартні налаштування NovelAI", + "kobldpresets": "Налаштування Kobold", + "guikoboldaisettings": "З інтерфейсу KoboldAI", + "novelaipreserts": "Налаштування NovelAI", "default": "За замовчуванням", - "openaipresets": "Стандартні налаштування OpenAI", - "text gen webio(ooba) presets": "Стандартні налаштування WebUI(ooba)", - "response legth(tokens)": "Довжина відповіді (токени)", + "openaipresets": "Налаштування OpenAI", + "text gen webio(ooba) presets": "Налаштування Text Completion", + "response legth(tokens)": "Відповідь (токени)", "select": "Оберіть", - "context size(tokens)": "Розмір контексту (токени)", + "context size(tokens)": "Контекст (токени)", "unlocked": "Розблоковано", "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Тільки деякі моделі підтримують розміри контексту більше 4096 токенів. Збільшуйте лише якщо ви розумієте, що робите.", "rep.pen": "Штраф за повтор", - "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "Статус WI Entry:🔵 Постійний🟢 Нормальний❌ Вимкнений", + "WI Entry Status:🔵 Constant🟢 Normal❌ Disabled": "Статус запису WI:🔵 Постійний🟢 Нормальний❌ Вимкнений", "rep.pen range": "Діапазон штрафу за повтор", "Temperature controls the randomness in token selection": "Температура контролює випадковість у виборі токенів", "temperature": "Температура", - "Top K sets a maximum amount of top tokens that can be chosen from": "Top K встановлює максимальну кількість верхніх токенів, які можна вибрати", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K встановлює максимальну кількість наймовірніших токенів, які можна обрати", "Top P (a.k.a. nucleus sampling)": "Top P (також відомий як відбір ядра)", "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Типовий відбір P визначає пріоритет токенів на основі їх відхилення від середньої ентропії набору", "Min P sets a base minimum probability": "Min P встановлює базову мінімальну ймовірність", "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A встановлює поріг для вибору токенів на основі квадрату найвищої ймовірності токена", - "Tail-Free Sampling (TFS)": "Вільний вибір з хвостом (TFS)", + "Tail-Free Sampling (TFS)": "Безхвостовий відбір (TFS)", "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Епсилон встановлює нижню межу ймовірності, нижче якої токени виключаються з вибірки", "Scale Temperature dynamically per token, based on the variation of probabilities": "Шкала температури динамічно за кожний токен, на основі варіації ймовірностей", "Minimum Temp": "Мінімальна температура", "Maximum Temp": "Максимальна температура", - "Exponent": "Експонент", + "Exponent": "Експонента", "Mirostat Mode": "Режим Mirostat", "Mirostat Tau": "Тау Mirostat", "Mirostat Eta": "Ета Mirostat", "Variability parameter for Mirostat outputs": "Параметр змінності для виходів Mirostat", "Learning rate of Mirostat": "Швидкість навчання Mirostat", - "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Сила терміну регуляризації контрастного пошуку. Встановіть 0, щоб вимкнути CS", - "Temperature Last": "Остання температура", - "Use the temperature sampler last": "Використовуйте останній вибір температури", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Сила терміну регуляризації контрастного пошуку. Встановіть 0, щоб вимкнути контрастний пошук", + "Temperature Last": "Температура останньою", + "Use the temperature sampler last": "Використовувати вибірку по температурі останньою", "LLaMA / Mistral / Yi models only": "Тільки моделі LLaMA / Mistral / Yi", "Example: some text [42, 69, 1337]": "Приклад: деякий текст [42, 69, 1337]", "Classifier Free Guidance. More helpful tip coming soon": "Вільні інструкції класифікатора. Більше корисних порад незабаром", @@ -43,52 +43,52 @@ "Usage Stats": "Статистика використання", "Click for stats!": "Клацніть для статистики!", "Backup": "Резервне копіювання", - "Backup your personas to a file": "Зробіть резервну копію своїх персонажів у файл", + "Backup your personas to a file": "Зробіть резервну копію своїх персон у файл", "Restore": "Відновлення", - "Restore your personas from a file": "Відновіть свої персонажі з файлу", + "Restore your personas from a file": "Відновіть свої персони з файлу", "Type in the desired custom grammar": "Введіть бажаний власний синтаксис", "Encoder Rep. Pen.": "Штраф за повтор кодера", "Smoothing Factor": "Коефіцієнт згладжування", "No Repeat Ngram Size": "Розмір n-грам без повторень", "Min Length": "Мінімальна довжина", - "OpenAI Reverse Proxy": "Обернений проксі OpenAI", - "Alternative server URL (leave empty to use the default value).": "Альтернативний URL-адрес сервера (залиште порожнім, щоб використовувати значення за замовчуванням).", - "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Видаліть свій справжній ключ API OAI з панелі API ПЕРЕД тим, як щось вводити в це поле", + "OpenAI Reverse Proxy": "Зворотний проксі OpenAI", + "Alternative server URL (leave empty to use the default value).": "URL-адрес альтернативного сервера (залиште порожнім, щоб використовувати значення за замовчуванням).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Видаліть свій справжній API ключ OAI з API-панелі ПЕРЕД тим, як щось вводити в це поле", "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Ми не можемо надати підтримку для проблем, які виникають при використанні неофіційного проксі OpenAI", - "Legacy Streaming Processing": "Застаріла потокова обробка", + "Legacy Streaming Processing": "Стара обробка потоку", "Enable this if the streaming doesn't work with your proxy": "Увімкніть це, якщо потокова передача не працює з вашим проксі", "Context Size (tokens)": "Розмір контексту (токени)", - "Max Response Length (tokens)": "Максимальна довжина відповіді (токени)", + "Max Response Length (tokens)": "Довжина відповіді (токени)", "Temperature": "Температура", "Frequency Penalty": "Штраф за частоту", "Presence Penalty": "Штраф за наявність", - "Top-p": "Топ-p", + "Top-p": "Топ P", "Display bot response text chunks as they are generated": "Показувати фрагменти тексту відповіді бота при їх генерації", "Top A": "Топ A", "Typical Sampling": "Типовий відбір", - "Tail Free Sampling": "Вільний вибір з хвостом", + "Tail Free Sampling": "Безхвостовий відбір", "Rep. Pen. Slope": "Кутна нахилу штрафу за повтор", "Single-line mode": "Однорядковий режим", "Top K": "Топ K", "Top P": "Топ P", - "Do Sample": "Відбір", + "Do Sample": "Робити відбір", "Add BOS Token": "Додати токен BOS", - "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Додайте bos_token на початок підказок. Вимкнення цього може зробити відповіді більш творчими", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Додавати bos_token на початок запиту. Вимкнення цього може зробити відповіді більш креативними", "Ban EOS Token": "Заборонити токен EOS", - "Ban the eos_token. This forces the model to never end the generation prematurely": "Забороніть токен eos. Це змусить модель ніколи не завершувати генерацію передчасно", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Заборонити токен eos. Це змусить модель ніколи не завершувати генерацію передчасно", "Skip Special Tokens": "Пропустити спеціальні токени", - "Beam search": "Пошук по пучку", + "Beam search": "Пучковий пошук", "Number of Beams": "Кількість пучків", "Length Penalty": "Штраф за довжину", "Early Stopping": "Раннє зупинення", "Contrastive search": "Контрастний пошук", "Penalty Alpha": "Коефіцієнт штрафу", "Seed": "Зерно", - "Epsilon Cutoff": "Кінець епсилону", - "Eta Cutoff": "Кінець ети", + "Epsilon Cutoff": "Відсіч епсилону", + "Eta Cutoff": "Відсіч ети", "Negative Prompt": "Негативна підказка", "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (режим=1 тільки для llama.cpp)", - "Mirostat is a thermostat for output perplexity": "Mirostat - це термостат для ускладнення виведення", + "Mirostat is a thermostat for output perplexity": "Mirostat - це термостат для заплутанності виводу", "Add text here that would make the AI generate things you don't want in your outputs.": "Додайте сюди текст, який змусить штучний інтелект генерувати речі, які ви не хочете бачити у виводах.", "Phrase Repetition Penalty": "Штраф за повтор фраз", "Preamble": "Преамбула", @@ -97,62 +97,62 @@ "Sequences you don't want to appear in the output. One per line.": "Послідовності, які ви не хочете бачити у виводі. Одна на рядок.", "AI Module": "Модуль ШІ", "Changes the style of the generated text.": "Змінює стиль створеного тексту.", - "Used if CFG Scale is unset globally, per chat or character": "Використовується, якщо масштаб CFG не встановлений глобально, на кожен чат або символ.", - "Inserts jailbreak as a last system message.": "Вставляє втрату як останнє системне повідомлення.", - "This tells the AI to ignore its usual content restrictions.": "Це каже ШІ ігнорувати звичайні обмеження на вміст.", + "Used if CFG Scale is unset globally, per chat or character": "Використовується, якщо масштаб CFG не встановлений глобально, на кожен чат або персонажа.", + "Inserts jailbreak as a last system message.": "Вставляє джейлбрейк як останнє системне повідомлення.", + "This tells the AI to ignore its usual content restrictions.": "Інструктує ШІ ігнорувати звичайні обмеження на вміст.", "NSFW Encouraged": "NSFW заохочується", "Tell the AI that NSFW is allowed.": "Повідомте ШІ, що NSFW дозволено.", "NSFW Prioritized": "Пріоритет NSFW", "NSFW prompt text goes first in the prompt to emphasize its effect.": "Текст запитання NSFW йде першим у запиті, щоб підкреслити його ефект.", - "Streaming": "Стрімінг", + "Streaming": "Потокова передача", "Dynamic Temperature": "Динамічна температура", - "Restore current preset": "Відновити поточний налаштування", - "Neutralize Samplers": "Нейтралізувати зразки", - "Text Completion presets": "Налаштування завершення тексту", + "Restore current preset": "Відновити поточні налаштування", + "Neutralize Samplers": "Нейтралізувати вибірку", + "Text Completion presets": "Налаштування Text Completion", "Documentation on sampling parameters": "Документація щодо параметрів вибірки", - "Set all samplers to their neutral/disabled state.": "Встановіть всі семплери у їх нейтральний/вимкнений стан.", + "Set all samplers to their neutral/disabled state.": "Встановити всі семплери у їх нейтральний/вимкнений стан.", "Only enable this if your model supports context sizes greater than 4096 tokens": "Увімкніть це лише в разі підтримки моделлю розмірів контексту більше 4096 токенів", "Display the response bit by bit as it is generated": "Поступово відображати відповідь по мірі її створення", "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Генерувати лише один рядок за запит (тільки KoboldAI, ігнорується KoboldCpp).", - "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Заборонити токен закінчення послідовності (EOS) (з KoboldCpp, а можливо, також інші токени з KoboldAI).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Заборонити токен закінчення послідовності (EOS) (для KoboldCpp, а можливо, також інші токени для KoboldAI).", "Good for story writing, but should not be used for chat and instruct mode.": "Добре для написання історій, але не повинно використовуватися для чату і режиму інструкцій.", "Enhance Definitions": "Покращити визначення", - "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Використовуйте базу знань OAI для покращення визначень для публічних осіб і відомих вигаданих персонажів", - "Wrap in Quotes": "Оберніть у лапки", - "Wrap entire user message in quotes before sending.": "Перед відправкою повідомлення користувача оберніть усе у лапки.", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Інструктувати використати знання моделі для покращення визначень публічних осіб і відомих вигаданих персонажів", + "Wrap in Quotes": "Обертати у лапки", + "Wrap entire user message in quotes before sending.": "Перед відправкою повідомлення користувача обертати усе у лапки.", "Leave off if you use quotes manually for speech.": "Не включайте, якщо ви вручну використовуєте лапки для мовлення.", - "Main prompt": "Основне запитання", + "Main prompt": "Основний запит", "The main prompt used to set the model behavior": "Основний запит, який використовується для встановлення поведінки моделі", "NSFW prompt": "NSFW запит", "Prompt that is used when the NSFW toggle is on": "Запит, який використовується, коли увімкнено перемикач NSFW", - "Jailbreak prompt": "Запит на втечу з в'язниці", - "Prompt that is used when the Jailbreak toggle is on": "Запит, який використовується, коли увімкнено перемикач Jailbreak", + "Jailbreak prompt": "Джейлбрейк запит", + "Prompt that is used when the Jailbreak toggle is on": "Запит, який використовується, коли увімкнено перемикач джейлбрейку", "Impersonation prompt": "Запит на перевтілення", "Prompt that is used for Impersonation function": "Запит, який використовується для функції перевтілення", - "Logit Bias": "Упередження логіту", + "Logit Bias": "Зміщення логітів", "Helps to ban or reenforce the usage of certain words": "Допомагає забороняти або підсилювати використання певних слів", - "View / Edit bias preset": "Переглянути / Редагувати заздалегідь встановлене упередження", - "Add bias entry": "Додати запис упередження", - "Jailbreak activation message": "Повідомлення про активацію втечі з в'язниці", - "Message to send when auto-jailbreak is on.": "Повідомлення для відправки при увімкненні автоматичної втечі з в'язниці.", - "Jailbreak confirmation reply": "Відповідь на підтвердження втечі з в'язниці", - "Bot must send this back to confirm jailbreak": "Робот повинен відправити це назад, щоб підтвердити втечу з в'язниці.", + "View / Edit bias preset": "Переглянути / Редагувати налаштування зміщення", + "Add bias entry": "Додати запис зміщення", + "Jailbreak activation message": "Повідомлення для активації джейлбрейку", + "Message to send when auto-jailbreak is on.": "Повідомлення для відправки при увімкненні автоматичного джейлбрейку.", + "Jailbreak confirmation reply": "Відповідь на підтвердження джейлбрейку", + "Bot must send this back to confirm jailbreak": "Робот повинен відправити це назад, щоб підтвердити джейлбрейк.", "Character Note": "Примітка про персонажа", "Influences bot behavior in its responses": "Впливає на поведінку робота у його відповідях", - "Connect": "Підключення", + "Connect": "Підключитися", "Test Message": "Тестове повідомлення", "API": "API", "KoboldAI": "KoboldAI", - "Use Horde": "Використовуйте Horde", + "Use Horde": "Використовувати Horde", "API url": "URL-адреса API", - "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (режим обгортки для інтерфейсу програмування додатків OpenAI)", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine (режим OpenAI API)", "Register a Horde account for faster queue times": "Зареєструйте обліковий запис Horde для швидшого часу очікування в черзі", - "Learn how to contribute your idle GPU cycles to the Hord": "Дізнайтеся, як внести свої вільні цикли GPU до Hord", - "Adjust context size to worker capabilities": "Налаштуйте розмір контексту відповідно до можливостей робітників", - "Adjust response length to worker capabilities": "Налаштуйте довжину відповіді відповідно до можливостей робітників", + "Learn how to contribute your idle GPU cycles to the Hord": "Дізнайтеся, як зробити внесок свого вільного GPU до Horde", + "Adjust context size to worker capabilities": "Налаштовувати розмір контексту відповідно до можливостей робітників", + "Adjust response length to worker capabilities": "Налаштовувати довжину відповіді відповідно до можливостей робітників", "API key": "Ключ API", "Tabby API key": "Ключ API для Tabby", - "Get it here:": "Отримати його тут:", + "Get it here:": "Отримайте його тут:", "Register": "Зареєструвати", "TogetherAI Model": "Модель TogetherAI", "Example: 127.0.0.1:5001": "Приклад: 127.0.0.1:5001", @@ -162,36 +162,36 @@ "Ollama Model": "Модель Ollama", "Download": "Завантажити", "TogetherAI API Key": "Ключ API для TogetherAI", - "-- Connect to the API --": "-- Підключення до API --", + "-- Connect to the API --": "-- Підлючиться до API --", "View my Kudos": "Переглянути мої Kudos", "Enter": "Увійти", "to use anonymous mode.": "щоб використовувати анонімний режим.", - "For privacy reasons": "З приватних причин", + "For privacy reasons": "З метою приватності", "Models": "Моделі", - "Hold Control / Command key to select multiple models.": "Утримуйте клавішу Control / Command, щоб вибрати кілька моделей.", + "Hold Control / Command key to select multiple models.": "Утримуйте клавішу Control / Command, щоб обрати кілька моделей.", "Horde models not loaded": "Моделі Horde не завантажено", "Not connected...": "Не підключено...", "Novel API key": "Ключ API для NovelAI", "Follow": "Дотримуйтесь", - "these directions": "ці напрямки", + "these directions": "цих інструкцій", "to get your NovelAI API key.": "щоб отримати свій ключ API для NovelAI.", "Enter it in the box below": "Введіть його в поле нижче", "Novel AI Model": "Модель NovelAI", "If you are using:": "Якщо ви використовуєте:", "oobabooga/text-generation-webui": "", "Make sure you run it with": "Переконайтеся, що ви запускаєте його з", - "flag": "прапор", + "flag": "прапорцем", "API key (optional)": "Ключ API (необов'язково)", "Server url": "URL-адреса сервера", - "Custom model (optional)": "Спеціальна модель (необов'язково)", + "Custom model (optional)": "Власна модель (необов'язково)", "Bypass API status check": "Обійти перевірку статусу API", "Mancer AI": "", - "Use API key (Only required for Mancer)": "Використовуйте ключ API (потрібно лише для Mancer)", - "Blocking API url": "URL-адреса API, яка блокується", + "Use API key (Only required for Mancer)": "Використати ключ API (потрібно лише для Mancer)", + "Blocking API url": "Блокуюча URL-адреса API", "Example: 127.0.0.1:5000": "Приклад: 127.0.0.1:5000", - "Legacy API (pre-OAI, no streaming)": "Застарілий API (до OAI, без потокового відтворення)", + "Legacy API (pre-OAI, no streaming)": "Застарілий API (до OAI, без потокової передачі)", "Bypass status check": "Обійти перевірку статусу", - "Streaming API url": "URL-адреса потокового API", + "Streaming API url": "Потокова URL-адреса API", "Example: ws://127.0.0.1:5005/api/v1/stream": "Приклад: ws://127.0.0.1:5005/api/v1/stream", "Mancer API key": "Ключ API для Mancer", "Example: https://neuro.mancer.tech/webui/MODEL/api": "Приклад: https://neuro.mancer.tech/webui/MODEL/api", @@ -200,8 +200,8 @@ "OpenAI Model": "Модель OpenAI", "Claude API Key": "Ключ API для Claude", "Get your key from": "Отримайте свій ключ з", - "Anthropic's developer console": "консоль розробника Anthropic", - "Slack and Poe cookies will not work here, do not bother trying.": "Функція Slack та файли cookie Poe тут не працюватимуть, не витрачайте час на спроби.", + "Anthropic's developer console": "консолі розробника Anthropic", + "Slack and Poe cookies will not work here, do not bother trying.": "Файли cookie Slack та Poe тут не працюватимуть, не гайте час.", "Claude Model": "Модель Claude", "Scale API Key": "Ключ API для Scale", "Alt Method": "Альтернативний метод", @@ -212,7 +212,7 @@ "Bot": "Бот:", "Allow fallback routes": "Дозволити резервні маршрути", "Allow fallback routes Description": "Автоматично вибирає альтернативну модель, якщо вибрана модель не може задовольнити ваш запит.", - "OpenRouter API Key": "Ключ API OpenRouter", + "OpenRouter API Key": "Ключ API для OpenRouter", "Connect to the API": "Підключитися до API", "OpenRouter Model": "Модель OpenRouter", "View Remaining Credits": "Переглянути залишкові кредити", @@ -221,23 +221,23 @@ "View hidden API keys": "Переглянути приховані ключі API", "Advanced Formatting": "Розширене форматування", "Context Template": "Шаблон контексту", - "AutoFormat Overrides": "Автоформат перевизначень", + "AutoFormat Overrides": "Перевизначення автоформатування", "Disable description formatting": "Вимкнути форматування опису", "Disable personality formatting": "Вимкнути форматування особистості", "Disable scenario formatting": "Вимкнути форматування сценарію", "Disable example chats formatting": "Вимкнути форматування прикладів чатів", "Disable chat start formatting": "Вимкнути форматування початку чату", - "Custom Chat Separator": "Спеціальний роздільник чату", - "Replace Macro in Custom Stopping Strings": "Замінити макрос в власних рядках зупинки", - "Strip Example Messages from Prompt": "Видалити приклади повідомлень з пропозиції", + "Custom Chat Separator": "Власний роздільник чату", + "Replace Macro in Custom Stopping Strings": "Замінювати макроси у власних рядках зупинки", + "Strip Example Messages from Prompt": "Видалити приклади повідомлень з запиту", "Story String": "Рядок історії", "Example Separator": "Роздільник прикладів", "Chat Start": "Початок чату", "Activation Regex": "Регулярний вираз активації", "Instruct Mode": "Режим інструкцій", - "Wrap Sequences with Newline": "Перенесення послідовностей з нового рядка", + "Wrap Sequences with Newline": "Починати послідовності з нового рядка", "Include Names": "Включити імена", - "Force for Groups and Personas": "Примусово для груп і персонажів", + "Force for Groups and Personas": "Примусово для груп і персон", "System Prompt": "Системне запитання", "Instruct Mode Sequences": "Послідовності режиму інструкцій", "Input Sequence": "Послідовність введення", @@ -248,25 +248,25 @@ "System Sequence Suffix": "Суфікс послідовності системи", "Stop Sequence": "Послідовність зупинки", "Context Formatting": "Форматування контексту", - "(Saved to Context Template)": "(Збережено в шаблоні контексту)", + "(Saved to Context Template)": "(Зберігаються в шаблоні контексту)", "Tokenizer": "Токенізатор", - "None / Estimated": "Жоден / Оцінений", + "None / Estimated": "Жоден / Оцінка", "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", - "Token Padding": "Вирівнювання токенів", - "Save preset as": "Зберегти попередньо встановлене як", - "Always add character's name to prompt": "Завжди додавати ім'я персонажа до пропозиції", + "Token Padding": "Набивка токенів", + "Save preset as": "Зберегти шаблон як", + "Always add character's name to prompt": "Завжди додавати ім'я персонажа до запиту", "Use as Stop Strings": "Використовувати як рядки зупинки", "Bind to Context": "Прив'язати до контексту", "Generate only one line per request": "Генерувати лише один рядок за запит", "Misc. Settings": "Різні налаштування", "Auto-Continue": "Автоматичне продовження", "Collapse Consecutive Newlines": "Згортати послідовні нові рядки", - "Allow for Chat Completion APIs": "Дозволити для API завершення чату", + "Allow for Chat Completion APIs": "Дозволити для Chat Completion API", "Target length (tokens)": "Цільова довжина (токени)", - "Keep Example Messages in Prompt": "Зберігати приклади повідомлень у пропозиції", + "Keep Example Messages in Prompt": "Зберігати приклади повідомлень у запиті", "Remove Empty New Lines from Output": "Видалити порожні нові рядки з виведення", "Disabled for all models": "Вимкнено для всіх моделей", - "Automatic (based on model name)": "Автоматичний (заснований на назві моделі)", + "Automatic (based on model name)": "Автоматично (по назві моделі)", "Enabled for all models": "Увімкнено для всіх моделей", "Anchors Order": "Порядок якорів", "Character then Style": "Потім стиль персонажа", @@ -289,46 +289,46 @@ "Recursive scanning": "Рекурсивне сканування", "None": "Немає", "User Settings": "Налаштування користувача", - "UI Mode": "Режим користувацького інтерфейсу", - "UI Language": "мова", + "UI Mode": "Режим інтерфейсу", + "UI Language": "Мова", "MovingUI Preset": "Попередньо встановлене MovingUI", - "UI Customization": "Налаштування користувацького інтерфейсу", + "UI Customization": "Налаштування інтерфейсу", "Avatar Style": "Стиль аватара", "Circle": "Коло", "Rectangle": "Прямокутник", "Square": "Квадрат", "Chat Style": "Стиль чату", "Default": "За замовчуванням", - "Bubbles": "Мурашки", + "Bubbles": "Бульбашки", "No Blur Effect": "Без ефекту розмиття", "No Text Shadows": "Без тіней тексту", - "Waifu Mode": "Режим Waifu", + "Waifu Mode": "Режим візуальної новели", "Message Timer": "Таймер повідомлень", "Model Icon": "Іконка моделі", "# of messages (0 = disabled)": "# повідомлень (0 = вимкнено)", "Advanced Character Search": "Розширений пошук персонажа", "Allow {{char}}: in bot messages": "Дозволити {{char}}: у повідомленнях бота", "Allow {{user}}: in bot messages": "Дозволити {{user}}: у повідомленнях бота", - "Show tags in responses": "Показати теги в відповідях", - "Aux List Field": "Допоміжний список полів", + "Show tags in responses": "Показати <теги> в відповідях", + "Aux List Field": "Допоміжне поле списку", "Lorebook Import Dialog": "Діалог імпорту книги знань", "MUI Preset": "Попереднє встановлення MUI:", - "If set in the advanced character definitions, this field will be displayed in the characters list.": "Якщо встановлено у визначеннях розширеного персонажа, це поле буде відображено в списку персонажів.", - "Relaxed API URLS": "URL-адреси API з невимогою", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "Якщо встановлено у розширених визначеннях персонажа, це поле буде відображено в списку персонажів.", + "Relaxed API URLS": "Послаблення URL-адреси API", "Custom CSS": "Власний CSS", "Default (oobabooga)": "За замовчуванням (oobabooga)", "Mancer Model": "Модель Mancer", "API Type": "Тип API", - "Aphrodite API key": "Ключ API Aphrodite", + "Aphrodite API key": "Ключ API для Aphrodite", "Relax message trim in Groups": "Послаблення обрізання повідомлень у групах", "Characters Hotswap": "Швидка заміна персонажів", - "Request token probabilities": "Імовірності запиту токенів", - "Movable UI Panels": "Рухомі панелі користувальницького інтерфейсу", + "Request token probabilities": "Запитувати ймовірності токенів", + "Movable UI Panels": "Рухомі панелі", "Reset Panels": "Скидання панелей", - "UI Colors": "Кольори користувальницького інтерфейсу", + "UI Colors": "Кольори інтерфейсу", "Main Text": "Головний текст", "Italics Text": "Курсивний текст", - "Quote Text": "Текст цитати", + "Quote Text": "Текст в лапках", "Shadow Color": "Колір тіні", "FastUI BG": "Швидкий фон UI", "Blur Tint": "Затемнення фону", @@ -337,34 +337,34 @@ "Text Shadow Width": "Ширина тіні тексту", "UI Theme Preset": "Попередньо встановлена тема інтерфейсу", "Power User Options": "Параметри для досвідчених користувачів", - "Swipes": "Потяги", + "Swipes": "Змахи", "Miscellaneous": "Різне", "Theme Toggles": "Перемикачі теми", "Background Sound Only": "Тільки фоновий звук", "Auto-load Last Chat": "Автоматичне завантаження останнього чату", "Auto-save Message Edits": "Автоматичне збереження редагувань повідомлень", - "Auto-fix Markdown": "Автоматичний ремонт Markdown", + "Auto-fix Markdown": "Автоматичне виправлення Markdown", "Allow : in bot messages": "Дозволити : у повідомленнях бота", "Auto-scroll Chat": "Автоматична прокрутка чату", "Render Formulas": "Відображення формул", "Send on Enter": "Відправити при натисканні Enter", "Always disabled": "Завжди вимкнено", - "Automatic (desktop)": "Автоматичний (робочий стіл)", + "Automatic (desktop)": "Автоматично (ПК)", "Always enabled": "Завжди увімкнено", "Debug Menu": "Меню налагодження", "Restore User Input": "Відновлення введення користувача", "Character Handling": "Обробка персонажа", - "Example Messages Behavior": "Поведінка прикладних повідомлень", - "Gradual push-out": "Поступове виштовхування", + "Example Messages Behavior": "Поведінка прикладів повідомлень", + "Gradual push-out": "Поступова заміна", "Chat/Message Handling": "Обробка чату/повідомлень", "Always include examples": "Завжди включати приклади", "Never include examples": "Ніколи не включати приклади", "Forbid External Media": "Заборонити зовнішні медіа", - "System Backgrounds": "Фони системи", + "System Backgrounds": "Системні фони", "Name": "Ім'я", "Your Avatar": "Ваш аватар", - "Extensions API:": "API розширень:", - "SillyTavern-extras": "SillyTavern-додатки", + "Extensions API:": "API для розширень:", + "SillyTavern-extras": "SillyTavern-extras", "Auto-connect": "Автоматичне підключення", "Active extensions": "Активні розширення", "Extension settings": "Налаштування розширення", @@ -372,7 +372,7 @@ "First message": "Перше повідомлення", "Group Controls": "Керування групою", "Group reply strategy": "Стратегія відповіді у групі", - "Natural order": "Природний порядок", + "Natural order": "Звичайний порядок", "List order": "Порядок списку", "Allow self responses": "Дозволити відповіді самому собі", "Auto Mode": "Автоматичний режим", @@ -397,7 +397,7 @@ "Save": "Зберегти", "World Info Editor": "Редактор інформації про світ", "New summary": "Новий опис", - "Export": "Експорт", + "Export": "Експортувати", "Delete World": "Видалити світ", "Chat History": "Історія чату", "Group Chat Scenario Override": "Перевизначення сценарію групового чату", @@ -406,9 +406,9 @@ "Separate with commas": "Розділяйте комами", "Secondary Required Keywords": "Вторинні обов'язкові ключові слова", "Content": "Зміст", - "What this keyword should mean to the AI": "Що це ключове слово має означати для штучного інтелекту", + "What this keyword should mean to the AI": "Що це ключове слово має означати для ШІ", "Memo/Note": "Нотатка/Примітка", - "Not sent to AI": "Не відправляється до штучного інтелекту", + "Not sent to AI": "Не відправляється до ШІ", "Constant": "Постійний", "Selective": "Вибірковий", "Before Char": "Перед персонажем", @@ -416,63 +416,63 @@ "Insertion Order": "Порядок вставки", "Tokens:": "Токени:", "Disable": "Вимкнути", - "${characterName}": "${ім'яПерсонажа}", - "CHAR": "Персонаж", + "${characterName}": "${characterName}", + "CHAR": "CHAR", "is typing": "пише...", - "Back to parent chat": "Повернутися до батьківського чату", + "Back to parent chat": "Повернутися до головного чату", "Save bookmark": "Зберегти закладку", "Convert to group": "Перетворити на групу", "Start new chat": "Розпочати новий чат", "View past chats": "Переглянути минулі чати", "Delete messages": "Видалити повідомлення", - "Impersonate": "Видача за іншого", + "Impersonate": "Перевтілення", "Regenerate": "Регенерувати", "PNG": "PNG", "JSON": "JSON", - "presets": "налаштування за замовчуванням", + "presets": "налаштування", "Message Sound": "Звук повідомлення", "Author's Note": "Примітка автора", "Send Jailbreak": "Відправити Jailbreak", "Replace empty message": "Замінити порожнє повідомлення", "Send this text instead of nothing when the text box is empty.": "Надіслати цей текст замість порожнього, коли поле тексту порожнє.", - "NSFW avoidance prompt": "Підказка про уникнення NSFW", - "Prompt that is used when the NSFW toggle is off": "Підказка, яка використовується, коли вимкнено перемикач NSFW", - "Advanced prompt bits": "Продвинуті біти підказок", - "World Info format": "Формат інформації про світ", - "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Закручує активовані записи інформації про світ перед вставленням у підказку. Використовуйте {0}, щоб позначити місце вставлення вмісту.", + "NSFW avoidance prompt": "Запит про уникнення NSFW", + "Prompt that is used when the NSFW toggle is off": "Запит, яка використовується, коли вимкнено перемикач NSFW", + "Advanced prompt bits": "Продвинуті частини запиту", + "World Info format": "Формат даних про світ", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Обгортає активовані записи даних про світ перед вставленням у запит. Використовуйте {0}, щоб позначити місце вставлення вмісту.", "Unrestricted maximum value for the context slider": "Необмежене максимальне значення для повзунка контексту", - "Chat Completion Source": "Джерело завершення чату", - "Avoid sending sensitive information to the Horde.": "Уникайте надсилання чутливої інформації Горді.", + "Chat Completion Source": "Джерело Chat Completion", + "Avoid sending sensitive information to the Horde.": "Уникайте надсилання чутливої інформації в Horde.", "Review the Privacy statement": "Перегляньте заяву про конфіденційність", - "Learn how to contribute your idel GPU cycles to the Horde": "Дізнайтеся, як внести свої вільні цикли GPU до Горди", + "Learn how to contribute your idel GPU cycles to the Horde": "Дізнайтеся, як внести свої вільні цикли GPU до Horde", "Trusted workers only": "Лише довірені працівники", - "For privacy reasons, your API key will be hidden after you reload the page.": "З приватних причин ваш ключ API буде приховано після перезавантаження сторінки.", - "-- Horde models not loaded --": "-- Моделі Горди не завантажені --", + "For privacy reasons, your API key will be hidden after you reload the page.": "З причин приватності ваш ключ API буде приховано після перезавантаження сторінки.", + "-- Horde models not loaded --": "-- Моделі Horde не завантажені --", "Example: http://127.0.0.1:5000/api ": "Приклад: http://127.0.0.1:5000/api", "No connection...": "Немає підключення...", "Get your NovelAI API Key": "Отримайте свій ключ API NovelAI", - "KoboldAI Horde": "Гордія KoboldAI", + "KoboldAI Horde": "KoboldAI Horde", "Text Gen WebUI (ooba)": "Веб-інтерфейс генерації тексту (ooba)", "NovelAI": "NovelAI", - "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Завершення чату (OpenAI, Claude, Window/OpenRouter, Scale)", - "OpenAI API key": "Ключ API OpenAI", + "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)", + "OpenAI API key": "Ключ API для OpenAI", "Trim spaces": "Обрізати пробіли", "Trim Incomplete Sentences": "Обрізати неповні речення", "Include Newline": "Включити новий рядок", "Non-markdown strings": "Рядки без Markdown", - "Replace Macro in Sequences": "Замінити макрос в послідовностях", - "Presets": "Налаштування за замовчуванням", + "Replace Macro in Sequences": "Заміняти макроси в послідовностях", + "Presets": "Налаштування", "Separator": "Роздільник", "Start Reply With": "Почати відповідь з", "Show reply prefix in chat": "Показати префікс відповіді в чаті", - "Worlds/Lorebooks": "Світи/Lorebook-и", + "Worlds/Lorebooks": "Світи / Книги знань", "Active World(s)": "Активні світи", "Activation Settings": "Налаштування активації", - "Character Lore Insertion Strategy": "Стратегія вставки характеристики характеристики", + "Character Lore Insertion Strategy": "Стратегія вставки знань персонажа", "Sorted Evenly": "Рівномірно впорядковані", "Active World(s) for all chats": "Активні світи для всіх чатів", - "-- World Info not found --": "-- Інформація про світ не знайдена --", - "--- Pick to Edit ---": "--- Виберіть для редагування ---", + "-- World Info not found --": "-- Світи не знайдені --", + "--- Pick to Edit ---": "--- Редагувати ---", "or": "або", "New": "Новий", "Priority": "Пріоритет", @@ -491,22 +491,22 @@ "Trigger% ↘": "Тригер% ↘", "Order:": "Порядок:", "Depth:": "Глибина:", - "Character Lore First": "Характеристика персонажа першою", - "Global Lore First": "Глобальний Lore перший", + "Character Lore First": "Інформація персонажу першою", + "Global Lore First": "Глобальна інформація першою", "Recursive Scan": "Рекурсивне сканування", - "Case Sensitive": "Чутливий до регістру", - "Match whole words": "Відповідає цілим словам", + "Case Sensitive": "Чутливість до регістру", + "Match whole words": "Відповідність цілим словам", "Alert On Overflow": "Сповіщення при переповненні", - "World/Lore Editor": "Редактор світу/Lore", + "World/Lore Editor": "Редактор світу/книги", "--- None ---": "--- Нічого ---", "Comma separated (ignored if empty)": "Розділені комою (ігноруються, якщо порожні)", - "Use Probability": "Використовуйте ймовірність", + "Use Probability": "Використовувати ймовірність", "Exclude from recursion": "Виключити з рекурсії", - "Entry Title/Memo": "Заголовок запису/записка", + "Entry Title/Memo": "Заголовок запису", "Position:": "Позиція:", - "T_Position": "↑Символ: перед визначеннями символів\n↓Символ: після визначень символів\n↑AN: перед авторськими примітками\n↓AN: після авторських приміток\n@D: на глибині", - "Before Char Defs": "↑Визначення символів", - "After Char Defs": "↓Визначення символів", + "T_Position": "↑Символ: перед визначеннями персонажу\n↓Символ: після визначень персонажу\n↑AN: перед авторськими примітками\n↓AN: після авторських приміток\n@D: на глибині", + "Before Char Defs": "↑Визначення персонажу", + "After Char Defs": "↓Визначення персонажу", "Before AN": "↑AN", "After AN": "↓AN", "at Depth": "@Глибина", @@ -516,33 +516,33 @@ "Save as a new theme": "Зберегти як нову тему", "Minimum number of blacklisted words detected to trigger an auto-swipe": "Мінімальна кількість заборонених слів, виявлених для запуску автоматичного змаху.", "Delete Entry": "Видалити запис", - "User Message Blur Tint": "Затемнення користувацького повідомлення", - "AI Message Blur Tint": "Затемнення повідомлення ШІ", + "User Message Blur Tint": "Колір повідомлення користувача", + "AI Message Blur Tint": "Колір повідомлення ШІ", "Chat Backgrounds": "Фони чату", "Chat Background": "Фон чату", - "UI Background": "Фон інтерфейсу користувача", - "Mad Lab Mode": "Режим Божевілля Лабораторії", - "Show Message Token Count": "Показати кількість токенів у повідомленні", - "Compact Input Area (Mobile)": "Компактна область введення (мобільна)", + "UI Background": "Фон інтерфейсу", + "Mad Lab Mode": "Режим лабораторії", + "Show Message Token Count": "Кількість токенів у повідомленні", + "Compact Input Area (Mobile)": "Компактна область введення", "Zen Sliders": "Слайдери зен", - "UI Border": "Межа інтерфейсу користувача", + "UI Border": "Межі інтерфейсу", "Chat Style:": "Стиль чату:", - "Chat Width (PC)": "Ширина чату (ПК)", - "Chat Timestamps": "Відмітки часу чату", + "Chat Width (PC)": "Ширина чату", + "Chat Timestamps": "Відмітки часу в чаті", "Tags as Folders": "Теги як теки", "Chat Truncation": "Обрізка чату", "(0 = unlimited)": "(0 = необмежено)", - "Streaming FPS": "Кадри на секунду потокового відео", + "Streaming FPS": "Потоких оновлень на секунду", "Gestures": "Жести", "Message IDs": "Ідентифікатори повідомлень", - "Prefer Character Card Prompt": "Перевага картки персонажа з підказкою", - "Prefer Character Card Jailbreak": "Перевага картки персонажа з в'язницею", + "Prefer Character Card Prompt": "Перевага запиту персонажа", + "Prefer Character Card Jailbreak": "Перевага джейлбрейку персонажа", "Press Send to continue": "Натисніть 'Відправити', щоб продовжити", "Quick 'Continue' button": "Швидка кнопка 'Продовжити'", - "Log prompts to console": "Записуйте підказки у консоль", + "Log prompts to console": "Записуйте запити у консоль", "Never resize avatars": "Ніколи не змінювати розмір аватарів", - "Show avatar filenames": "Показати імена файлів аватарів", - "Import Card Tags": "Імпортуйте теги картки", + "Show avatar filenames": "Показувати імена файлів аватарів", + "Import Card Tags": "Імпортувати теги з картки", "Confirm message deletion": "Підтвердити видалення повідомлення", "Spoiler Free Mode": "Режим без спойлерів", "Auto-swipe": "Автоматичний змах", @@ -550,9 +550,9 @@ "Blacklisted words": "Список заборонених слів", "Blacklisted word count to swipe": "Кількість заборонених слів для змаху", "Reload Chat": "Перезавантажити чат", - "Search Settings": "Налаштування пошуку", + "Search Settings": "Пошук налаштувань", "Disabled": "Вимкнено", - "Automatic (PC)": "Автоматичний (ПК)", + "Automatic (PC)": "Автоматично (ПК)", "Enabled": "Увімкнено", "Simple": "Простий", "Advanced": "Розширений", @@ -560,94 +560,94 @@ "removes blur from window backgrounds": "видаляє розмиття з фонів вікон для прискорення відображення", "Remove text shadow effect": "Видалити тінь тексту", "Reduce chat height, and put a static sprite behind the chat window": "Зменшити висоту чату та розмістити статичний спрайт за вікном чату", - "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Завжди показувати повний список елементів контексту Повідомлення для повідомлень чату, а не приховувати їх за '...' ", - "Alternative UI for numeric sampling parameters with fewer steps": "Альтернативний інтерфейс користувача для числових параметрів вибірки з меншою кількістю кроків", - "Entirely unrestrict all numeric sampling parameters": "Повністю скасуйте обмеження всіх числових параметрів вибірки", - "Time the AI's message generation, and show the duration in the chat log": "Виміряйте час генерації повідомлення ШІ та покажіть тривалість у журналі чату", - "Show a timestamp for each message in the chat log": "Показати відмітку часу для кожного повідомлення у журналі чату", - "Show an icon for the API that generated the message": "Показати значок для API, який згенерував повідомлення", - "Show sequential message numbers in the chat log": "Показати послідовні номери повідомлень у журналі чату", - "Show the number of tokens in each message in the chat log": "Показати кількість токенів у кожному повідомленні у журналі чату", + "Always show the full list of the Message Actions context items for chat messages, instead of hiding them behind '...'": "Завжди показувати повний список контекстних дій для повідомлень чату, а не приховувати їх за '...' ", + "Alternative UI for numeric sampling parameters with fewer steps": "Альтернативний інтерфейс для числових параметрів вибірки з меншою кількістю кроків", + "Entirely unrestrict all numeric sampling parameters": "Повністю скасовує обмеження всіх числових параметрів вибірки", + "Time the AI's message generation, and show the duration in the chat log": "Вимірювати час генерації повідомлення ШІ та показувати тривалість у журналі чату", + "Show a timestamp for each message in the chat log": "Показувати відмітку часу для кожного повідомлення у журналі чату", + "Show an icon for the API that generated the message": "Показувати значок для API, який згенерував повідомлення", + "Show sequential message numbers in the chat log": "Показувати послідовні номери повідомлень у журналі чату", + "Show the number of tokens in each message in the chat log": "Показувати кількість токенів у кожному повідомленні у журналі чату", "Single-row message input area. Mobile only, no effect on PC": "Область введення повідомлення з одним рядком. Тільки для мобільних пристроїв, не впливає на ПК", "In the Character Management panel, show quick selection buttons for favorited characters": "У панелі Управління персонажами показувати кнопки швидкого вибору для улюблених персонажів", - "Show tagged character folders in the character list": "Показати папки персонажів з тегами у списку персонажів", - "Play a sound when a message generation finishes": "Відтворити звук, коли завершується генерація повідомлення", - "Only play a sound when ST's browser tab is unfocused": "Відтворюйте звук лише тоді, коли вкладка браузера ST не зосереджена", - "Reduce the formatting requirements on API URLs": "Зменшіть вимоги до форматування URL-адрес API", - "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Попросіть імпортувати інформацію про світ/лорбук для кожного нового персонажа з вбудованим лорбуком. Якщо не відзначено, замість цього буде показано коротке повідомлення", - "Restore unsaved user input on page refresh": "Відновити незбережений введений користувачем при оновленні сторінки", - "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Дозвольте переміщення деяких елементів інтерфейсу користувача, перетягуючи їх. Тільки для ПК, не впливає на мобільні пристрої", - "MovingUI preset. Predefined/saved draggable positions": "Передбачений/збережений налаштування рухомого інтерфейсу. Передбачені/збережені позиції, які можна перетягувати", + "Show tagged character folders in the character list": "Показувати папки персонажів з тегами у списку персонажів", + "Play a sound when a message generation finishes": "Відтворювати звук, коли завершується генерація повідомлення", + "Only play a sound when ST's browser tab is unfocused": "Відтворювати звук лише тоді, коли вкладка браузера ST неактивна", + "Reduce the formatting requirements on API URLs": "Зменшити вимоги до форматування URL-адрес API", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "Запитувати імпортувати інформацію про світ/книгу знань для кожного нового персонажа з вбудованою книгою. Якщо не відзначено, замість цього буде показано коротке повідомлення", + "Restore unsaved user input on page refresh": "Відновлювати незбережений введений користувачем текст при оновленні сторінки", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Дозволяти переміщення деяких елементів інтерфейсу користувача, перетягуючи їх. Тільки для ПК, не впливає на мобільні пристрої", + "MovingUI preset. Predefined/saved draggable positions": "Налаштування рухомого інтерфейсу. Передбачені/збережені позиції елементів, які можна перетягувати", "Save movingUI changes to a new file": "Зберегти зміни в рухомому інтерфейсі у новий файл", - "Apply a custom CSS style to all of the ST GUI": "Застосуйте власний стиль CSS до всього графічного інтерфейсу ST", - "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Використовуйте розмите відповідності та шукайте персонажів у списку за всіма полями даних, а не лише за підстрокою імені", - "If checked and the character card contains a prompt override (System Prompt), use that instead": "Якщо відмічено і картка персонажа містить заміну підказки (Системна підказка), використовуйте її замість цього", - "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Якщо відмічено і картка персонажа містить заміну в'язниці (Інструкція про історію публікацій), використовуйте її замість цього", - "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Уникайте обрізання та зміни розміру імпортованих зображень персонажів. Якщо вимкнено, обрізайте/змінюйте розмір на 400x600", - "Show actual file names on the disk, in the characters list display only": "Показати фактичні назви файлів на диску, тільки у відображенні списку персонажів", - "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Запрошення імпортувати вбудовані теги картки при імпорті персонажа. В іншому випадку вбудовані теги ігноруються", - "Hide character definitions from the editor panel behind a spoiler button": "Сховати визначення персонажів з панелі редактора за кнопкою спойлера", - "Show a button in the input area to ask the AI to continue (extend) its last message": "Показати кнопку у області введення для запиту у ШІ про продовження (розширення) його останнього повідомлення", - "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Показати кнопки стрілок на останньому повідомленні в чаті, щоб згенерувати альтернативні відповіді ШІ. Як на ПК, так і на мобільних пристроях", - "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Дозвольте використовувати жести перетягування на останньому повідомленні в чаті для запуску генерації свайпів. Тільки для мобільних пристроїв, не впливає на ПК", - "Save edits to messages without confirmation as you type": "Збережіть внесені зміни до повідомлень без підтвердження під час набору", - "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Відображення формул LaTeX та AsciiMath у повідомленнях чату. Працює на основі KaTeX", + "Apply a custom CSS style to all of the ST GUI": "Застосовувати власний стиль CSS до всього графічного інтерфейсу ST", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "Використовувати нечітку відповідность та шукати персонажів у списку за всіма полями даних, а не лише за рядком імені", + "If checked and the character card contains a prompt override (System Prompt), use that instead": "Якщо відмічено і картка персонажа містить заміну запиту (Системний запит), використовувати її замість цього", + "If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "Якщо відмічено і картка персонажа містить заміну джейлбрейку (Інструкцію), використовуйте її замість цього", + "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600": "Уникати обрізання та зміни розміру імпортованих зображень персонажів. Якщо вимкнено, обрізати/змінювати розмір на 400x600", + "Show actual file names on the disk, in the characters list display only": "Показувати фактичні назви файлів на диску, тільки у відображенні списку персонажів", + "Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "Запитувати імпортувати вбудовані теги картки при імпорті персонажа. В іншому випадку вбудовані теги ігноруються", + "Hide character definitions from the editor panel behind a spoiler button": "Ховати визначення персонажів з панелі редактора за кнопкою спойлера", + "Show a button in the input area to ask the AI to continue (extend) its last message": "Показувати кнопку у області введення для запиту у ШІ про продовження (розширення) його останнього повідомлення", + "Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "Показувати кнопки стрілок на останньому повідомленні в чаті, щоб згенерувати альтернативні відповіді ШІ. Як на ПК, так і на мобільних пристроях", + "Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC": "Дозвольте використовувати жести перетягування на останньому повідомленні в чаті для запуску генерації змахів. Тільки для мобільних пристроїв, не впливає на ПК", + "Save edits to messages without confirmation as you type": "Зберігати внесені зміни до повідомлень без підтвердження під час набору", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Відображати формул LaTeX та AsciiMath у повідомленнях чату. Працює на основі KaTeX", "Disalow embedded media from other domains in chat messages": "Забороняти вбудовані медіа з інших доменів у повідомленнях чату", - "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Пропустіть кодування та символи у тексті повідомлення, дозволяючи підмножину розмітки HTML, а також Markdown", - "Allow AI messages in groups to contain lines spoken by other group members": "Дозволити повідомлення ШІ у групах містити рядки, сказані іншими учасниками групи", - "Requests logprobs from the API for the Token Probabilities feature": "Запитує логарифмічні імовірності з API для функції ймовірностей токенів", + "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown": "Пропускати кодування символів < та > у тексті повідомлення, дозволяючи підмножину розмітки HTML, а також Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Дозволяти повідомленням ШІ у групах містити рядки, сказані іншими учасниками групи", + "Requests logprobs from the API for the Token Probabilities feature": "Запитувати імовірності з API для функції ймовірностей токенів", "Automatically reject and re-generate AI message based on configurable criteria": "Автоматично відхиляти та знову генерувати повідомлення ШІ на основі налаштованих критеріїв", - "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Увімкніть функцію автоматичного свайпу. Налаштування в цьому розділі діють лише тоді, коли увімкнено автоматичний свайп", - "If the generated message is shorter than this, trigger an auto-swipe": "Якщо згенероване повідомлення коротше за це, викликайте автоматичний свайп", + "Enable the auto-swipe function. Settings in this section only have an effect when auto-swipe is enabled": "Вмикає функцію автоматичного змаху. Налаштування в цьому розділі діють лише тоді, коли увімкнено автоматичний змах", + "If the generated message is shorter than this, trigger an auto-swipe": "Якщо згенероване повідомлення коротше за це, викликайте автоматичний змаху", "Reload and redraw the currently open chat": "Перезавантажте та перетворіть на новий поточний чат", "Auto-Expand Message Actions": "Автоматично розгортати дії повідомлень", "Not Connected": "Не підключено", - "Persona Management": "Управління персоналом", + "Persona Management": "Управління персонами", "Persona Description": "Опис персони", - "Your Persona": "Ваша особистість", - "Show notifications on switching personas": "Показувати сповіщення при зміні особистостей", - "Blank": "Порожній", - "In Story String / Chat Completion: Before Character Card": "У рядку сюжету / завершення чату: перед карткою персонажа", - "In Story String / Chat Completion: After Character Card": "У рядку сюжету / завершення чату: після картки персонажа", - "In Story String / Prompt Manager": "У рядку сюжету / Менеджер підказок", + "Your Persona": "Ваша персона", + "Show notifications on switching personas": "Показувати сповіщення при зміні персон", + "Blank": "Порожня", + "In Story String / Chat Completion: Before Character Card": "Перед карткою персонажа", + "In Story String / Chat Completion: After Character Card": "Після картки персонажа", + "In Story String / Prompt Manager": "У рядку історії / Менеджері запитів", "Top of Author's Note": "На вершині примітки автора", "Bottom of Author's Note": "Унизу примітки автора", - "How do I use this?": "Як я можу це використовувати?", + "How do I use this?": "Як це використовувати?", "More...": "Більше...", - "Link to World Info": "Посилання на інформацію про світ", - "Import Card Lore": "Імпорт легенд картки", - "Scenario Override": "Перевизначення сценарію", + "Link to World Info": "Зв'язати з інформацією про світ", + "Import Card Lore": "Імпортувати книгу знань з картки", + "Scenario Override": "Перевизначити сценарій", "Rename": "Перейменувати", "Character Description": "Опис персонажа", "Creator's Notes": "Нотатки творця", "A-Z": "А-Я", "Z-A": "Я-А", - "Newest": "Найновіше", - "Oldest": "Найстаріше", + "Newest": "Найновіші", + "Oldest": "Найстаріші", "Favorites": "Вибрані", "Recent": "Останні", - "Most chats": "Найбільше чатів", + "Most chats": "Більше чатів", "Least chats": "Менше чатів", "Back": "Назад", - "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Перевизначення підказок (для API OpenAI/Claude/Scale, вікон/відкритих маршрутизаторів та режиму навчання)", - "Insert {{original}} into either box to include the respective default prompt from system settings.": "Вставте {{original}} в будь-яку коробку, щоб включити відповідну типову підказку з налаштувань системи.", - "Main Prompt": "Головна підказка", - "Jailbreak": "Виходи з в'язниці", - "Creator's Metadata (Not sent with the AI prompt)": "Метадані творця (не надсилаються з підказкою ШІ)", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Перевизначення запитів (для Chat Completion та Режиму інструкцій)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Вставте {{original}} в будь-яке поле, щоб включити відповідний запит з налаштувань системи.", + "Main Prompt": "Головний запит", + "Jailbreak": "Джейлбрейк", + "Creator's Metadata (Not sent with the AI prompt)": "Метадані творця (не надсилаються до ШІ)", "Everything here is optional": "Все тут є необов'язковим", - "Created by": "Створено", + "Created by": "Ім'я автора", "Character Version": "Версія персонажа", "Tags to Embed": "Теги для вбудовування", "How often the character speaks in group chats!": "Як часто персонаж розмовляє в групових чатах!", - "Important to set the character's writing style.": "Важливо встановити стиль письма персонажа.", + "Important to set the character's writing style.": "Важливо щоб встановити стиль письма персонажа.", "ATTENTION!": "УВАГА!", "Samplers Order": "Порядок вибірки", "Samplers will be applied in a top-down order. Use with caution.": "Вибірки будуть застосовані у порядку зверху донизу. Використовуйте з обережністю.", - "Repetition Penalty": "Покарання за повторення", - "Rep. Pen. Range.": "Діапазон покарання за повторення.", - "Rep. Pen. Freq.": "Частота покарання за повторення.", - "Rep. Pen. Presence": "Наявність покарання за повторення.", - "Enter it in the box below:": "Введіть його в коробку нижче:", + "Repetition Penalty": "Штраф за повторення", + "Rep. Pen. Range.": "Діапазон штрафу за повторення.", + "Rep. Pen. Freq.": "Частота штрафу за повторення.", + "Rep. Pen. Presence": "Наявність штрафу за повторення.", + "Enter it in the box below:": "Введіть його в поле нижче:", "separate with commas w/o space between": "розділяйте комами без пропусків між ними", "Document": "Документ", "Suggest replies": "Запропонувати відповіді", @@ -658,8 +658,8 @@ "CFG Scale": "Масштаб CFG", "Editing:": "Редагування:", "AI reply prefix": "Префікс відповіді ШІ", - "Custom Stopping Strings": "Спеціальні рядки зупинки", - "JSON serialized array of strings": "JSON серіалізований масив рядків", + "Custom Stopping Strings": "Власні рядки зупинки", + "JSON serialized array of strings": "JSON-серіалізований масив рядків", "words you dont want generated separated by comma ','": "слова, які ви не хочете генерувати, розділені комою ','", "Extensions URL": "URL розширень", "API Key": "Ключ API", @@ -671,26 +671,26 @@ "Chat Name (Optional)": "Назва чату (необов'язково)", "Filter...": "Фільтрувати...", "Search...": "Пошук...", - "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Будь-який вміст тут замінить типову головну підказку, використовувану для цього персонажа. (v2 специфікація: системна підказка)", - "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Будь-який вміст тут замінить типову підказку для ксилки, використовувану для цього персонажа. (v2 специфікація: інструкції історії після)", + "Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Будь-який вміст тут замінить типову головний запит, використовуваний для цього персонажа. (v2 специфікація: system_prompt)", + "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Будь-який вміст тут замінить запит для джейлбрейку, використовуваний для цього персонажа. (v2 специфікація: post_history_instructions)", "(Botmaker's name / Contact Info)": "(Ім'я розробника бота / Контактна інформація)", "(If you want to track character versions)": "(Якщо ви хочете відстежувати версії персонажа)", "(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Опишіть бота, дайте поради щодо використання або перерахуйте моделі чату, на яких він був протестований. Це буде відображатися у списку персонажів.)", "(Write a comma-separated list of tags)": "(Напишіть список тегів, розділених комами)", "(A brief description of the personality)": "(Короткий опис особистості)", "(Circumstances and context of the interaction)": "(Обставини та контекст взаємодії)", - "(Examples of chat dialog. Begin each example with START on a new line.)": "(Приклади діалогу в чаті. Почніть кожний приклад з початку на новому рядку.)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Приклади діалогу в чаті. Почніть кожний приклад зі на новому рядку.)", "Injection text (supports parameters)": "Текст впровадження (підтримує параметри)", "Injection depth": "Глибина впровадження", "Type here...": "Введіть тут...", - "Comma separated (required)": "Розділені комами (обов'язково)", + "Comma separated (required)": "Розділення комами (обов'язково)", "What this keyword should mean to the AI, sent verbatim": "Що це ключове слово повинно означати для ШІ, надсилається дослівно", - "Filter to Character(s)": "Фільтр до персонажів", + "Filter to Character(s)": "Фільтр для персонажів", "Character Exclusion": "Виключення персонажів", "Inclusion Group": "Група включення", "Only one entry with the same label will be activated": "Буде активовано лише один запис з однією міткою", "-- Characters not found --": "-- Персонажі не знайдені --", - "Not sent to the AI": "Не відправлено ШІ", + "Not sent to the AI": "Не відправляється ШІ", "(This will be the first message from the character that starts every chat)": "(Це буде перше повідомлення від персонажа, яке починає кожен чат)", "Not connected to API!": "Не підключено до API!", "AI Response Configuration": "Конфігурація відповіді ШІ", @@ -700,28 +700,28 @@ "Import preset": "Імпортувати шаблон", "Export preset": "Експортувати шаблон", "Delete the preset": "Видалити шаблон", - "Auto-select this preset for Instruct Mode": "Автоматично вибрати цей шаблон для режиму навчання", + "Auto-select this preset for Instruct Mode": "Автоматично вибрати цей шаблон для режиму інструкцій", "Auto-select this preset on API connection": "Автоматично вибрати цей шаблон при підключенні до API", "NSFW block goes first in the resulting prompt": "Блок NSFW йде першим у результаті підказки", "Enables OpenAI completion streaming": "Увімкнути потокове завершення OpenAI", - "Wrap user messages in quotes before sending": "Перед відправленням обгортайте повідомлення користувача в лапки", - "Restore default prompt": "Відновити типову підказку", + "Wrap user messages in quotes before sending": "Перед відправленням обгортати повідомлення користувача в лапки", + "Restore default prompt": "Відновити типовий запит", "New preset": "Новий шаблон", "Delete preset": "Видалити шаблон", - "Restore default jailbreak": "Відновити типовий ксилку", + "Restore default jailbreak": "Відновити типовий джейлбрейк", "Restore default reply": "Відновити типову відповідь", "Restore defaul note": "Відновити типову примітку", "API Connections": "З'єднання з API", "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Може допомогти з поганими відповідями, ставлячи в чергу тільки схвалених робітників. Може сповільнити час відповіді.", "Clear your API key": "Очистити свій ключ API", "Refresh models": "Оновити моделі", - "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Отримайте свій токен API OpenRouter за допомогою OAuth потоку. Вас буде перенаправлено на openrouter.ai", - "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Підтверджує ваше підключення до API, надсилаючи коротке тестове повідомлення. Пам'ятайте, що ви будете кредитуватися за це!", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Отримайте свій токен API OpenRouter за допомогою OAuth. Вас буде перенаправлено на openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Підтверджує ваше підключення до API, надсилаючи коротке тестове повідомлення. Пам'ятайте, що ви будете платити за це!", "Create New": "Створити новий", "Edit": "Редагувати", "Locked = World Editor will stay open": "Заблоковано = Редактор світу залишиться відкритим", "Entries can activate other entries by mentioning their keywords": "Записи можуть активувати інші записи, згадуючи їх ключові слова", - "Lookup for the entry keys in the context will respect the case": "Пошук ключів запису в контексті буде дотримуватися випадку", + "Lookup for the entry keys in the context will respect the case": "Пошук ключів запису в контексті буде дотримуватися регістру", "If the entry key consists of only one word, it would not be matched as part of other words": "Якщо ключ запису складається лише з одного слова, він не буде співпадати як частина інших слів", "Open all Entries": "Відкрити всі записи", "Close all Entries": "Закрити всі записи", @@ -740,26 +740,26 @@ "NOT ANY": "НЕ БУДЬ-ЯКІ", "Optional Filter": "Додатковий фільтр", "New Entry": "Новий запис", - "Fill empty Memo/Titles with Keywords": "Заповнити порожні підказки/заголовки ключовими словами", + "Fill empty Memo/Titles with Keywords": "Заповнити порожні заголовки ключовими словами", "Save changes to a new theme file": "Зберегти зміни в новому файлі теми", "removes blur and uses alternative background color for divs": "видаляє розмиття та використовує альтернативний колір фону для блоків", - "AI Response Formatting": "Форматування відповіді штучного інтелекту", + "AI Response Formatting": "Форматування відповіді ШІ", "Change Background Image": "Змінити фонове зображення", "Extensions": "Розширення", "Click to set a new User Name": "Клацніть, щоб встановити нове ім'я користувача", "Click to lock your selected persona to the current chat. Click again to remove the lock.": "Клацніть, щоб заблокувати обрану персону в поточному чаті. Клацніть ще раз, щоб видалити блокування.", "Click to set user name for all messages": "Клацніть, щоб встановити ім'я користувача для всіх повідомлень", - "Create a dummy persona": "Створити манекен-персону", + "Create a dummy persona": "Створити порожню персону", "Character Management": "Управління персонажем", "Locked = Character Management panel will stay open": "Заблоковано = Панель управління персонажем залишиться відкритою", "Select/Create Characters": "Вибрати/створити персонажів", - "Token counts may be inaccurate and provided just for reference.": "Лічильники токенів можуть бути неточними і надаються тільки для посилання.", + "Token counts may be inaccurate and provided just for reference.": "Лічильники токенів можуть бути неточними і надаються тільки для довідки.", "Click to select a new avatar for this character": "Клацніть, щоб вибрати новий аватар для цього персонажа", - "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Приклад: [{{user}} - 28-річна румунська кішка].", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Приклад: [{{user}} - 28-річна румунська дівчина-кішка].", "Toggle grid view": "Перемкнути вид сітки", "Add to Favorites": "Додати до обраного", - "Advanced Definition": "Розширений опис", - "Character Lore": "Історія персонажа", + "Advanced Definition": "Розширені визначення", + "Character Lore": "Книга знань персонажа", "Export and Download": "Експорт і завантаження", "Duplicate Character": "Дублювати персонажа", "Create Character": "Створити персонажа", @@ -780,11 +780,11 @@ "Remove": "Видалити", "Select a World Info file for": "Виберіть файл інформації про світ для", "Primary Lorebook": "Основний збірник легенд", - "A selected World Info will be bound to this character as its own Lorebook.": "Вибрана інформація про світ буде пов'язана з цим персонажем як власний збірник легенд.", - "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Під час генерації відповіді ШІ, вона буде поєднана з записами зі світового селектора інформації.", + "A selected World Info will be bound to this character as its own Lorebook.": "Вибрана інформація про світ буде пов'язана з цим персонажем як власна книга знань.", + "When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Під час генерації відповіді ШІ, вона буде поєднана з записами із глобального селектора інформації про світ.", "Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Експорт персонажа також експортуватиме вибраний файл збірника легенд, вбудований у дані JSON.", - "Additional Lorebooks": "Додаткові збірники легенд", - "Associate one or more auxillary Lorebooks with this character.": "Асоціюйте один або кілька допоміжних збірників легенд з цим персонажем.", + "Additional Lorebooks": "Додаткові книги знань", + "Associate one or more auxillary Lorebooks with this character.": "Асоціюйте одну або кілька допоміжних книг знань з цим персонажем.", "NOTE: These choices are optional and won't be preserved on character export!": "ПРИМІТКА: Ці вибори є необов'язковими і не будуть збережені при експорті персонажа!", "Rename chat file": "Перейменувати файл чату", "Export JSONL chat file": "Експортувати файл чату у форматі JSONL", @@ -815,12 +815,12 @@ "Add": "Додати", "Abort request": "Скасувати запит", "Send a message": "Надіслати повідомлення", - "Ask AI to write your message for you": "Попросіть ШІ написати ваше повідомлення за вас", - "Continue the last message": "Продовжте останнє повідомлення", - "Bind user name to that avatar": "Прив'яжіть ім'я користувача до цього аватара", - "Select this as default persona for the new chats.": "Виберіть це як типову особистість для нових чатів.", + "Ask AI to write your message for you": "Попросити ШІ написати ваше повідомлення за вас", + "Continue the last message": "Продовжити останнє повідомлення", + "Bind user name to that avatar": "Прив'язати ім'я користувача до цього аватара", + "Select this as default persona for the new chats.": "Виберіть це як типову персону для нових чатів.", "Change persona image": "Змінити зображення особистості", - "Delete persona": "Видалити особистість", + "Delete persona": "Видалити персону", "Reduced Motion": "Зменшена рухомість", "Auto-select": "Автовибір", "Automatically select a background based on the chat context": "Автоматичний вибір фону на основі контексту чату", @@ -830,9 +830,9 @@ "Create checkpoint": "Створити контрольну точку", "Create Branch": "Створити гілку", "Embed file or image": "Вбудувати файл або зображення", - "UI Theme": "Тема інтерфейсу користувача", + "UI Theme": "Тема інтерфейсу", "This message is invisible for the AI": "Це повідомлення невидиме для ШІ", - "Sampler Priority": "Пріоритет зразка", + "Sampler Priority": "Пріоритет вибірки", "Ooba only. Determines the order of samplers.": "Лише Ooba. Визначає порядок вибірки.", "Load default order": "Завантажити типовий порядок", "Max Tokens Second": "Максимальна кількість токенів / секунду", @@ -858,6 +858,4 @@ "Skip Example Dialogues Formatting": "Пропустити форматування прикладів діалогів", "Import a theme file": "Імпортувати файл теми", "Export a theme file": "Експортувати файл теми" - - -} \ No newline at end of file +} From 1f20833f446e2e4a14223d1a219ee9275b18cf86 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Wed, 13 Mar 2024 23:56:08 +0200 Subject: [PATCH 124/144] Add Claude 3 Haiku --- public/index.html | 1 + public/scripts/extensions/caption/index.js | 1 + 2 files changed, 2 insertions(+) diff --git a/public/index.html b/public/index.html index 24593898e..d81d6ef45 100644 --- a/public/index.html +++ b/public/index.html @@ -2357,6 +2357,7 @@ + diff --git a/public/scripts/extensions/caption/index.js b/public/scripts/extensions/caption/index.js index c13190907..0483deeb2 100644 --- a/public/scripts/extensions/caption/index.js +++ b/public/scripts/extensions/caption/index.js @@ -369,6 +369,7 @@ jQuery(function () { + From 46993384a3ff80c449dcf65318680e8c517f89b6 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:33:04 +0200 Subject: [PATCH 125/144] Allow any model to send inline images in OpenAI custom endpoint mode --- public/scripts/openai.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/openai.js b/public/scripts/openai.js index e5370b780..dc22b9537 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -3840,7 +3840,7 @@ export function isImageInliningSupported() { case chat_completion_sources.OPENROUTER: return !oai_settings.openrouter_force_instruct && (oai_settings.openrouter_model.includes(gpt4v) || oai_settings.openrouter_model.includes(llava)); case chat_completion_sources.CUSTOM: - return oai_settings.custom_model.includes(gpt4v) || oai_settings.custom_model.includes(llava) || oai_settings.custom_model.includes(geminiProV); + return true; default: return false; } From acf36b6107c65a056c95b6f66a7ec2be68ec4f85 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:34:09 +0200 Subject: [PATCH 126/144] Add koboldcpp API key/password support --- public/index.html | 9 +++++++ public/script.js | 53 ++++++++++++--------------------------- public/scripts/secrets.js | 2 ++ src/additional-headers.js | 11 ++++++++ src/endpoints/secrets.js | 1 + 5 files changed, 39 insertions(+), 37 deletions(-) diff --git a/public/index.html b/public/index.html index d81d6ef45..cb706453e 100644 --- a/public/index.html +++ b/public/index.html @@ -2144,6 +2144,15 @@ LostRuins/koboldcpp +

    koboldcpp API key (optional)

    +
    + + +
    +
    + For privacy reasons, your API key will be hidden after you reload the page. +

    API URL

    Example: http://127.0.0.1:5001 diff --git a/public/script.js b/public/script.js index 3a686e9c1..202e4f2de 100644 --- a/public/script.js +++ b/public/script.js @@ -8727,44 +8727,23 @@ jQuery(async function () { }); $('#api_button_textgenerationwebui').on('click', async function (e) { - const mancerKey = String($('#api_key_mancer').val()).trim(); - if (mancerKey.length) { - await writeSecret(SECRET_KEYS.MANCER, mancerKey); - } + const keys = [ + { id: 'api_key_mancer', secret: SECRET_KEYS.MANCER }, + { id: 'api_key_aphrodite', secret: SECRET_KEYS.APHRODITE }, + { id: 'api_key_tabby', secret: SECRET_KEYS.TABBY }, + { id: 'api_key_togetherai', secret: SECRET_KEYS.TOGETHERAI }, + { id: 'api_key_ooba', secret: SECRET_KEYS.OOBA }, + { id: 'api_key_infermaticai', secret: SECRET_KEYS.INFERMATICAI }, + { id: 'api_key_dreamgen', secret: SECRET_KEYS.DREAMGEN }, + { id: 'api_key_openrouter-tg', secret: SECRET_KEYS.OPENROUTER }, + { id: 'api_key_koboldcpp', secret: SECRET_KEYS.KOBOLDCPP }, + ]; - const aphroditeKey = String($('#api_key_aphrodite').val()).trim(); - if (aphroditeKey.length) { - await writeSecret(SECRET_KEYS.APHRODITE, aphroditeKey); - } - - const tabbyKey = String($('#api_key_tabby').val()).trim(); - if (tabbyKey.length) { - await writeSecret(SECRET_KEYS.TABBY, tabbyKey); - } - - const togetherKey = String($('#api_key_togetherai').val()).trim(); - if (togetherKey.length) { - await writeSecret(SECRET_KEYS.TOGETHERAI, togetherKey); - } - - const oobaKey = String($('#api_key_ooba').val()).trim(); - if (oobaKey.length) { - await writeSecret(SECRET_KEYS.OOBA, oobaKey); - } - - const infermaticAIKey = String($('#api_key_infermaticai').val()).trim(); - if (infermaticAIKey.length) { - await writeSecret(SECRET_KEYS.INFERMATICAI, infermaticAIKey); - } - - const dreamgenKey = String($('#api_key_dreamgen').val()).trim(); - if (dreamgenKey.length) { - await writeSecret(SECRET_KEYS.DREAMGEN, dreamgenKey); - } - - const openRouterKey = String($('#api_key_openrouter-tg').val()).trim(); - if (openRouterKey.length) { - await writeSecret(SECRET_KEYS.OPENROUTER, openRouterKey); + for (const key of keys) { + const keyValue = String($(`#${key.id}`).val()).trim(); + if (keyValue.length) { + await writeSecret(key.secret, keyValue); + } } validateTextGenUrl(); diff --git a/public/scripts/secrets.js b/public/scripts/secrets.js index 7c587d876..9ba9dcedd 100644 --- a/public/scripts/secrets.js +++ b/public/scripts/secrets.js @@ -21,6 +21,7 @@ export const SECRET_KEYS = { CUSTOM: 'api_key_custom', OOBA: 'api_key_ooba', NOMICAI: 'api_key_nomicai', + KOBOLDCPP: 'api_key_koboldcpp', }; const INPUT_MAP = { @@ -43,6 +44,7 @@ const INPUT_MAP = { [SECRET_KEYS.INFERMATICAI]: '#api_key_infermaticai', [SECRET_KEYS.DREAMGEN]: '#api_key_dreamgen', [SECRET_KEYS.NOMICAI]: '#api_key_nomicai', + [SECRET_KEYS.KOBOLDCPP]: '#api_key_koboldcpp', }; async function clearSecret() { diff --git a/src/additional-headers.js b/src/additional-headers.js index 60933c4d6..e7480f03e 100644 --- a/src/additional-headers.js +++ b/src/additional-headers.js @@ -68,6 +68,14 @@ function getOobaHeaders() { }) : {}; } +function getKoboldCppHeaders() { + const apiKey = readSecret(SECRET_KEYS.KOBOLDCPP); + + return apiKey ? ({ + 'Authorization': `Bearer ${apiKey}`, + }) : {}; +} + function getOverrideHeaders(urlHost) { const requestOverrides = getConfigValue('requestOverrides', []); const overrideHeaders = requestOverrides?.find((e) => e.hosts?.includes(urlHost))?.headers; @@ -112,6 +120,9 @@ function setAdditionalHeaders(request, args, server) { case TEXTGEN_TYPES.OPENROUTER: headers = getOpenRouterHeaders(); break; + case TEXTGEN_TYPES.KOBOLDCPP: + headers = getKoboldCppHeaders(); + break; default: headers = server ? getOverrideHeaders((new URL(server))?.host) : {}; break; diff --git a/src/endpoints/secrets.js b/src/endpoints/secrets.js index a68181936..10ba9e556 100644 --- a/src/endpoints/secrets.js +++ b/src/endpoints/secrets.js @@ -33,6 +33,7 @@ const SECRET_KEYS = { INFERMATICAI: 'api_key_infermaticai', DREAMGEN: 'api_key_dreamgen', NOMICAI: 'api_key_nomicai', + KOBOLDCPP: 'api_key_koboldcpp', }; // These are the keys that are safe to expose, even if allowKeysExposure is false From bd223486dec85d083a207e461a6391c0064403f1 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 00:48:08 +0200 Subject: [PATCH 127/144] Include additional headers for all supported Text Completion types. --- default/config.yaml | 4 ++++ src/additional-headers.js | 15 ++++++++++++++- src/endpoints/tokenizers.js | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/default/config.yaml b/default/config.yaml index 5925d573b..dedb5ac5f 100644 --- a/default/config.yaml +++ b/default/config.yaml @@ -35,11 +35,15 @@ skipContentCheck: false # Disable automatic chats backup disableChatBackup: false # API request overrides (for KoboldAI and Text Completion APIs) +## Note: host includes the port number if it's not the default (80 or 443) ## Format is an array of objects: ## - hosts: ## - example.com ## headers: ## Content-Type: application/json +## - 127.0.0.1:5001 +## headers: +## User-Agent: "Googlebot/2.1 (+http://www.google.com/bot.html)" requestOverrides: [] # -- PLUGIN CONFIGURATION -- # Enable UI extensions diff --git a/src/additional-headers.js b/src/additional-headers.js index e7480f03e..e69872bf3 100644 --- a/src/additional-headers.js +++ b/src/additional-headers.js @@ -124,10 +124,23 @@ function setAdditionalHeaders(request, args, server) { headers = getKoboldCppHeaders(); break; default: - headers = server ? getOverrideHeaders((new URL(server))?.host) : {}; + headers = {}; break; } + if (typeof server === 'string' && server.length > 0) { + try { + const url = new URL(server); + const overrideHeaders = getOverrideHeaders(url.host); + + if (overrideHeaders && Object.keys(overrideHeaders).length > 0) { + Object.assign(headers, overrideHeaders); + } + } catch { + // Do nothing + } + } + Object.assign(args.headers, headers); } diff --git a/src/endpoints/tokenizers.js b/src/endpoints/tokenizers.js index 1ab7d77b8..615042a96 100644 --- a/src/endpoints/tokenizers.js +++ b/src/endpoints/tokenizers.js @@ -607,7 +607,7 @@ router.post('/remote/textgenerationwebui/encode', jsonParser, async function (re headers: { 'Content-Type': 'application/json' }, }; - setAdditionalHeaders(request, args, null); + setAdditionalHeaders(request, args, baseUrl); // Convert to string + remove trailing slash + /v1 suffix let url = String(baseUrl).replace(/\/$/, '').replace(/\/v1$/, ''); From 6ac8ef1b48c2d1aa15fcc74390923e2a2207fd73 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 01:03:51 +0200 Subject: [PATCH 128/144] Add koboldcpp as a multimodal captioning source --- public/scripts/extensions/caption/index.js | 3 +++ public/scripts/extensions/shared.js | 13 +++++++++++-- src/endpoints/openai.js | 13 ++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/public/scripts/extensions/caption/index.js b/public/scripts/extensions/caption/index.js index 0483deeb2..307455a17 100644 --- a/public/scripts/extensions/caption/index.js +++ b/public/scripts/extensions/caption/index.js @@ -288,6 +288,7 @@ jQuery(function () { (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'ollama' && textgenerationwebui_settings.server_urls[textgen_types.OLLAMA]) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'llamacpp' && textgenerationwebui_settings.server_urls[textgen_types.LLAMACPP]) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'ooba' && textgenerationwebui_settings.server_urls[textgen_types.OOBA]) || + (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'koboldcpp' && textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP]) || (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'custom') || extension_settings.caption.source === 'local' || extension_settings.caption.source === 'horde'; @@ -355,6 +356,7 @@ jQuery(function () {
    diff --git a/public/scripts/extensions/shared.js b/public/scripts/extensions/shared.js index a30d7967c..96400ad32 100644 --- a/public/scripts/extensions/shared.js +++ b/public/scripts/extensions/shared.js @@ -21,16 +21,17 @@ export async function getMultimodalCaption(base64Img, prompt) { } // OpenRouter has a payload limit of ~2MB. Google is 4MB, but we love democracy. - // Ooba requires all images to be JPEGs. + // Ooba requires all images to be JPEGs. Koboldcpp just asked nicely. const isGoogle = extension_settings.caption.multimodal_api === 'google'; const isClaude = extension_settings.caption.multimodal_api === 'anthropic'; const isOllama = extension_settings.caption.multimodal_api === 'ollama'; const isLlamaCpp = extension_settings.caption.multimodal_api === 'llamacpp'; const isCustom = extension_settings.caption.multimodal_api === 'custom'; const isOoba = extension_settings.caption.multimodal_api === 'ooba'; + const isKoboldCpp = extension_settings.caption.multimodal_api === 'koboldcpp'; const base64Bytes = base64Img.length * 0.75; const compressionLimit = 2 * 1024 * 1024; - if ((['google', 'openrouter'].includes(extension_settings.caption.multimodal_api) && base64Bytes > compressionLimit) || isOoba) { + if ((['google', 'openrouter'].includes(extension_settings.caption.multimodal_api) && base64Bytes > compressionLimit) || isOoba || isKoboldCpp) { const maxSide = 1024; base64Img = await createThumbnail(base64Img, maxSide, maxSide, 'image/jpeg'); @@ -76,6 +77,10 @@ export async function getMultimodalCaption(base64Img, prompt) { requestBody.server_url = textgenerationwebui_settings.server_urls[textgen_types.OOBA]; } + if (isKoboldCpp) { + requestBody.server_url = textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP]; + } + if (isCustom) { requestBody.server_url = oai_settings.custom_url; requestBody.model = oai_settings.custom_model || 'gpt-4-vision-preview'; @@ -142,6 +147,10 @@ function throwIfInvalidModel() { throw new Error('Text Generation WebUI server URL is not set.'); } + if (extension_settings.caption.multimodal_api === 'koboldcpp' && !textgenerationwebui_settings.server_urls[textgen_types.KOBOLDCPP]) { + throw new Error('KoboldCpp server URL is not set.'); + } + if (extension_settings.caption.multimodal_api === 'custom' && !oai_settings.custom_url) { throw new Error('Custom API URL is not set.'); } diff --git a/src/endpoints/openai.js b/src/endpoints/openai.js index 1d10537e9..f8803cfec 100644 --- a/src/endpoints/openai.js +++ b/src/endpoints/openai.js @@ -5,6 +5,7 @@ const FormData = require('form-data'); const fs = require('fs'); const { jsonParser, urlencodedParser } = require('../express-common'); const { getConfigValue, mergeObjectWithYaml, excludeKeysByYaml, trimV1 } = require('../util'); +const { setAdditionalHeaders } = require('../additional-headers'); const router = express.Router(); @@ -37,7 +38,11 @@ router.post('/caption-image', jsonParser, async (request, response) => { bodyParams.temperature = 0.1; } - if (!key && !request.body.reverse_proxy && request.body.api !== 'custom' && request.body.api !== 'ooba') { + if (request.body.api === 'koboldcpp') { + key = readSecret(SECRET_KEYS.KOBOLDCPP); + } + + if (!key && !request.body.reverse_proxy && ['custom', 'ooba', 'koboldcpp'].includes(request.body.api) === false) { console.log('No key found for API', request.body.api); return response.sendStatus(400); } @@ -104,6 +109,12 @@ router.post('/caption-image', jsonParser, async (request, response) => { }); } + if (request.body.api === 'koboldcpp') { + apiUrl = `${trimV1(request.body.server_url)}/v1/chat/completions`; + } + + setAdditionalHeaders(request, { headers }, apiUrl); + const result = await fetch(apiUrl, { method: 'POST', headers: { From 94230c0891dcd8c74389619726afc533e4d04ed6 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 14:51:56 +0200 Subject: [PATCH 129/144] Set prefill before squashing messages --- src/endpoints/prompt-converters.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/endpoints/prompt-converters.js b/src/endpoints/prompt-converters.js index 71b1bfe21..52161b661 100644 --- a/src/endpoints/prompt-converters.js +++ b/src/endpoints/prompt-converters.js @@ -122,6 +122,14 @@ function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFi } }); + // Shouldn't be conditional anymore, messages api expects the last role to be user unless we're explicitly prefilling + if (prefillString) { + messages.push({ + role: 'assistant', + content: prefillString.trimEnd(), + }); + } + // Since the messaging endpoint only supports user assistant roles in turns, we have to merge messages with the same role if they follow eachother // Also handle multi-modality, holy slop. let mergedMessages = []; @@ -172,14 +180,6 @@ function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFi } }); - // Shouldn't be conditional anymore, messages api expects the last role to be user unless we're explicitly prefilling - if (prefillString) { - mergedMessages.push({ - role: 'assistant', - content: prefillString.trimEnd(), - }); - } - return { messages: mergedMessages, systemPrompt: systemPrompt.trim() }; } From 51f959c06b5062df4ad45d575e64e849d2c13574 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 14:56:58 +0200 Subject: [PATCH 130/144] Replace quote extract separator for Silero TTS --- public/scripts/extensions/tts/silerotts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/extensions/tts/silerotts.js b/public/scripts/extensions/tts/silerotts.js index c507f4956..c242c67f5 100644 --- a/public/scripts/extensions/tts/silerotts.js +++ b/public/scripts/extensions/tts/silerotts.js @@ -11,7 +11,7 @@ class SileroTtsProvider { settings; ready = false; voices = []; - separator = ' .. '; + separator = ' '; defaultSettings = { provider_endpoint: 'http://localhost:8001/tts', From ce756bc4f7fb5d65c384fe645fbfd8359b05e37c Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 23:10:35 +0200 Subject: [PATCH 131/144] Allow setting altering group greetings with extensions. Add ability to add extensions when creating characters. --- public/css/st-tailwind.css | 9 ++++++--- public/index.html | 2 +- public/script.js | 13 ++++++++++++- public/scripts/group-chats.js | 11 +++++++++-- src/endpoints/characters.js | 10 ++++++++++ 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/public/css/st-tailwind.css b/public/css/st-tailwind.css index 2472b1a8f..911f9d6a4 100644 --- a/public/css/st-tailwind.css +++ b/public/css/st-tailwind.css @@ -271,15 +271,18 @@ flex-wrap: wrap; } -.flexnowrap { +.flexnowrap, +.flexNoWrap { flex-wrap: nowrap; } -.alignitemscenter { +.alignitemscenter, +.alignItemsCenter { align-items: center; } -.alignitemsstart { +.alignitemsstart, +.alignItemsStart { align-items: start; } diff --git a/public/index.html b/public/index.html index cb706453e..2fc0be604 100644 --- a/public/index.html +++ b/public/index.html @@ -4063,7 +4063,7 @@
    -
    +
    First message diff --git a/public/script.js b/public/script.js index 202e4f2de..8054d833b 100644 --- a/public/script.js +++ b/public/script.js @@ -400,6 +400,7 @@ export const event_types = { GROUP_MEMBER_DRAFTED: 'group_member_drafted', WORLD_INFO_ACTIVATED: 'world_info_activated', TEXT_COMPLETION_SETTINGS_READY: 'text_completion_settings_ready', + CHARACTER_FIRST_MESSAGE_SELECTED: 'character_first_message_selected', }; export const eventSource = new EventEmitter(); @@ -745,6 +746,7 @@ let create_save = { alternate_greetings: [], depth_prompt_prompt: '', depth_prompt_depth: depth_prompt_depth_default, + extensions: {}, }; //animation right menu @@ -7184,6 +7186,8 @@ async function createOrEditCharacter(e) { formData.append('alternate_greetings', value); } + formData.append('extensions', JSON.stringify(create_save.extensions)); + await jQuery.ajax({ type: 'POST', url: url, @@ -7216,6 +7220,7 @@ async function createOrEditCharacter(e) { { id: '#character_json_data', callback: () => { } }, { id: '#alternate_greetings_template', callback: value => create_save.alternate_greetings = value, defaultValue: [] }, { id: '#character_world', callback: value => create_save.world = value }, + { id: '#_character_extensions_fake', callback: value => create_save.extensions = {} }, ]; fields.forEach(field => { @@ -7336,7 +7341,7 @@ window['SillyTavern'].getContext = function () { chatMetadata: chat_metadata, streamingProcessor, eventSource: eventSource, - event_types: event_types, + eventTypes: event_types, addOneMessage: addOneMessage, generate: Generate, getTokenCount: getTokenCount, @@ -7366,6 +7371,12 @@ window['SillyTavern'].getContext = function () { writeExtensionField: writeExtensionField, tags: tags, tagMap: tag_map, + menuType: menu_type, + createCharacterData: create_save, + /** + * @deprecated Legacy snake-case naming, compatibility with old extensions + */ + event_types: event_types, }; }; diff --git a/public/scripts/group-chats.js b/public/scripts/group-chats.js index bb0775624..52ec5078c 100644 --- a/public/scripts/group-chats.js +++ b/public/scripts/group-chats.js @@ -197,7 +197,7 @@ export async function getGroupChat(groupId) { continue; } - const mes = getFirstCharacterMessage(character); + const mes = await getFirstCharacterMessage(character); chat.push(mes); addOneMessage(mes); } @@ -374,7 +374,7 @@ export function getGroupCharacterCards(groupId, characterId) { return { description, personality, scenario, mesExamples }; } -function getFirstCharacterMessage(character) { +async function getFirstCharacterMessage(character) { let messageText = character.first_mes; // if there are alternate greetings, pick one at random @@ -383,6 +383,13 @@ function getFirstCharacterMessage(character) { messageText = messageTexts[Math.floor(Math.random() * messageTexts.length)]; } + // Allow extensions to change the first message + const eventArgs = { input: messageText, output: '', character: character }; + await eventSource.emit(event_types.CHARACTER_FIRST_MESSAGE_SELECTED, eventArgs); + if (eventArgs.output) { + messageText = eventArgs.output; + } + const mes = {}; mes['is_user'] = false; mes['is_system'] = false; diff --git a/src/endpoints/characters.js b/src/endpoints/characters.js index 54a25c51f..03260f1a7 100644 --- a/src/endpoints/characters.js +++ b/src/endpoints/characters.js @@ -357,6 +357,16 @@ function charaFormatData(data) { } } + if (data.extensions) { + try { + const extensions = JSON.parse(data.extensions); + // Deep merge the extensions object + _.set(char, 'data.extensions', deepMerge(char.data.extensions, extensions)); + } catch { + console.debug(`Failed to parse extensions JSON: ${data.extensions}`); + } + } + return char; } From 2369d35846162627493faf0acfa4778b20575ce7 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 14 Mar 2024 23:10:55 +0200 Subject: [PATCH 132/144] Bump package version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31eb6d5e3..b89a2bd19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sillytavern", - "version": "1.11.5", + "version": "1.11.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sillytavern", - "version": "1.11.5", + "version": "1.11.6", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 9d0fa6cdf..e8085c240 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "type": "git", "url": "https://github.com/SillyTavern/SillyTavern.git" }, - "version": "1.11.5", + "version": "1.11.6", "scripts": { "start": "node server.js", "start-multi": "node server.js --disableCsrf", From 60ea9df55e92092fa31124fad8e543b233282b8e Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 00:20:46 +0200 Subject: [PATCH 133/144] Allow imports in custom CSS. Confirm import usage on theme adding. --- public/scripts/power-user.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js index db872788a..c482c994b 100644 --- a/public/scripts/power-user.js +++ b/public/scripts/power-user.js @@ -1074,13 +1074,6 @@ async function applyThemeColor(type) { async function applyCustomCSS() { power_user.custom_css = String(localStorage.getItem(storage_keys.custom_css) ?? ''); - if (power_user.custom_css.includes('@import')) { - var removeImport = /@import[^;]+;/gm; - power_user.custom_css = power_user.custom_css.replace(removeImport, ''); - localStorage.setItem(storage_keys.custom_css, power_user.custom_css); - toastr.warning('@import not allowed in Custom CSS. @import lines removed.'); - } - $('#customCSS').val(power_user.custom_css); var styleId = 'custom-style'; var style = document.getElementById(styleId); @@ -2026,6 +2019,13 @@ async function importTheme(file) { throw new Error('Theme with that name already exists'); } + if (parsed.custom_css.includes('@import')) { + const confirm = await callPopup('This theme contains @import lines in the Custom CSS. Press "Yes" to proceed.', 'confirm', '', { okButton: 'Yes' }); + if (!confirm) { + throw new Error('Theme contains @import lines'); + } + } + themes.push(parsed); await applyTheme(parsed.name); await saveTheme(parsed.name); From 54d5e269d5ad6a9561fca8ebca139f2c496e2f4c Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 00:22:10 +0200 Subject: [PATCH 134/144] Add type check --- public/scripts/power-user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/scripts/power-user.js b/public/scripts/power-user.js index c482c994b..1b637e278 100644 --- a/public/scripts/power-user.js +++ b/public/scripts/power-user.js @@ -2019,7 +2019,7 @@ async function importTheme(file) { throw new Error('Theme with that name already exists'); } - if (parsed.custom_css.includes('@import')) { + if (typeof parsed.custom_css === 'string' && parsed.custom_css.includes('@import')) { const confirm = await callPopup('This theme contains @import lines in the Custom CSS. Press "Yes" to proceed.', 'confirm', '', { okButton: 'Yes' }); if (!confirm) { throw new Error('Theme contains @import lines'); From 2db2e2d68703cc234cfb8e9caf095c0714155d83 Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Fri, 15 Mar 2024 00:35:21 +0100 Subject: [PATCH 135/144] added data-i18n tags +updated and added data-i18n tags --- public/index.html | 25 +++++++++--------- public/scripts/PromptManager.js | 12 ++++----- public/scripts/templates/welcome.html | 37 +++++++++++++++------------ 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/public/index.html b/public/index.html index cb706453e..2f5ef6df2 100644 --- a/public/index.html +++ b/public/index.html @@ -445,7 +445,7 @@

    -
    - Quick Prompts Edit + Quick Prompts Edit
    @@ -1239,7 +1239,7 @@
    Eta Cutoff -
    +
    @@ -1585,7 +1585,7 @@

    Sampler Priority -
    +

    Ooba only. Determines the order of samplers. @@ -1613,7 +1613,7 @@ `; diff --git a/public/scripts/templates/welcome.html b/public/scripts/templates/welcome.html index 44a7103de..dd424e9e0 100644 --- a/public/scripts/templates/welcome.html +++ b/public/scripts/templates/welcome.html @@ -1,53 +1,58 @@

    - SillyTavern -
    + SillyTavern +

    - + Want to update?
    -

    How to start chatting?

    +

    How to start chatting?

      -
    1. Click and select a Chat API.
    2. -
    3. Click and pick a character
    4. +
    5. + Click and select a Chat API. +
    6. +
    7. + Click and pick a character +

    -

    Confused or lost?

    +

    Confused or lost?

    -
    -

    Still have questions?

    +
    +

    Still have questions?

    + From a12793a9ac6a3b32f94dc4cdfaa8a5eb69683d58 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 11:39:21 +0200 Subject: [PATCH 136/144] Lazy evaluation of macro in first message --- public/script.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index 8054d833b..eea7430c1 100644 --- a/public/script.js +++ b/public/script.js @@ -1629,6 +1629,10 @@ function messageFormatting(mes, ch_name, isSystem, isUser, messageId) { return ''; } + if (Number(messageId) === 0 && !isSystem && !isUser) { + mes = substituteParams(mes); + } + mesForShowdownParse = mes; // Force isSystem = false on comment messages so they get formatted properly @@ -5360,12 +5364,12 @@ function getFirstMessage() { is_user: false, is_system: false, send_date: getMessageTimeStamp(), - mes: substituteParams(getRegexedString(firstMes, regex_placement.AI_OUTPUT)), + mes: getRegexedString(firstMes, regex_placement.AI_OUTPUT), extra: {}, }; if (Array.isArray(alternateGreetings) && alternateGreetings.length > 0) { - const swipes = [message.mes, ...(alternateGreetings.map(greeting => substituteParams(getRegexedString(greeting, regex_placement.AI_OUTPUT))))]; + const swipes = [message.mes, ...(alternateGreetings.map(greeting => getRegexedString(greeting, regex_placement.AI_OUTPUT)))]; message['swipe_id'] = 0; message['swipes'] = swipes; message['swipe_info'] = []; From cbc14279e71b06d239230989ccd9bdb8d20f9409 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:30:13 +0200 Subject: [PATCH 137/144] Display node version on startup --- server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.js b/server.js index 9d6557bb4..538679dbc 100644 --- a/server.js +++ b/server.js @@ -93,7 +93,7 @@ const cliArguments = yargs(hideBin(process.argv)) }).parseSync(); // change all relative paths -console.log(`Running in ${process.env.NODE_ENV} environment`); +console.log(`Node version: ${process.version}. Running in ${process.env.NODE_ENV} environment.`); const serverDirectory = __dirname; process.chdir(serverDirectory); From cda7ab053074079022931c3b8d15217d0c00d2c2 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:08:22 +0200 Subject: [PATCH 138/144] Add /model command --- public/scripts/slash-commands.js | 100 +++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 4 deletions(-) diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 9d9778b3f..74968fcb0 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -38,8 +38,10 @@ import { hideChatMessage, unhideChatMessage } from './chats.js'; import { getContext, saveMetadataDebounced } from './extensions.js'; import { getRegexedString, regex_placement } from './extensions/regex/engine.js'; import { findGroupMemberId, groups, is_group_generating, openGroupById, resetSelectedGroup, saveGroupChat, selected_group } from './group-chats.js'; +import { chat_completion_sources, oai_settings } from './openai.js'; import { autoSelectPersona } from './personas.js'; import { addEphemeralStoppingString, chat_styles, flushEphemeralStoppingStrings, power_user } from './power-user.js'; +import { textgen_types, textgenerationwebui_settings } from './textgen-settings.js'; import { decodeTextTokens, getFriendlyTokenizerName, getTextTokens, getTokenCount } from './tokenizers.js'; import { delay, isFalseBoolean, isTrueBoolean, stringToRange, trimToEndSentence, trimToStartSentence, waitUntilCondition } from './utils.js'; import { registerVariableCommands, resolveVariable } from './variables.js'; @@ -233,6 +235,7 @@ parser.addCommand('inject', injectCallback, [], 'id=inje parser.addCommand('listinjects', listInjectsCallback, [], ' – lists all script injections for the current chat.', true, true); parser.addCommand('flushinjects', flushInjectsCallback, [], ' – removes all script injections for the current chat.', true, true); parser.addCommand('tokens', (_, text) => getTokenCount(text), [], '(text) – counts the number of tokens in the text.', true, true); +parser.addCommand('model', modelCallback, [], '(model name) – sets the model for the current API.', true, true); registerVariableCommands(); const NARRATOR_NAME_KEY = 'narrator_name'; @@ -1584,6 +1587,97 @@ function setBackgroundCallback(_, bg) { } } +/** + * Sets a model for the current API. + * @param {object} _ Unused + * @param {string} model Model name + * @returns {void} + */ +function modelCallback(_, model) { + if (!model) { + return; + } + + console.log('Set model to ' + model); + + const modelSelectMap = [ + { id: 'model_togetherai_select', api: 'textgenerationwebui', type: textgen_types.TOGETHERAI }, + { id: 'openrouter_model', api: 'textgenerationwebui', type: textgen_types.OPENROUTER }, + { id: 'model_infermaticai_select', api: 'textgenerationwebui', type: textgen_types.INFERMATICAI }, + { id: 'model_dreamgen_select', api: 'textgenerationwebui', type: textgen_types.DREAMGEN }, + { id: 'mancer_model', api: 'textgenerationwebui', type: textgen_types.MANCER }, + { id: 'aphrodite_model', api: 'textgenerationwebui', type: textgen_types.APHRODITE }, + { id: 'ollama_model', api: 'textgenerationwebui', type: textgen_types.OLLAMA }, + { id: 'model_openai_select', api: 'openai', type: chat_completion_sources.OPENAI }, + { id: 'model_claude_select', api: 'openai', type: chat_completion_sources.CLAUDE }, + { id: 'model_windowai_select', api: 'openai', type: chat_completion_sources.WINDOWAI }, + { id: 'model_openrouter_select', api: 'openai', type: chat_completion_sources.OPENROUTER }, + { id: 'model_ai21_select', api: 'openai', type: chat_completion_sources.AI21 }, + { id: 'model_google_select', api: 'openai', type: chat_completion_sources.MAKERSUITE }, + { id: 'model_mistralai_select', api: 'openai', type: chat_completion_sources.MISTRALAI }, + { id: 'model_custom_select', api: 'openai', type: chat_completion_sources.CUSTOM }, + { id: 'model_novel_select', api: 'novel', type: null }, + { id: 'horde_model', api: 'koboldhorde', type: null }, + ]; + + function getSubType() { + switch (main_api) { + case 'textgenerationwebui': + return textgenerationwebui_settings.type; + case 'openai': + return oai_settings.chat_completion_source; + default: + return null; + } + } + + const apiSubType = getSubType(); + const modelSelectItem = modelSelectMap.find(x => x.api == main_api && x.type == apiSubType)?.id; + + if (!modelSelectItem) { + toastr.info('Setting a model for your API is not supported or not implemented yet.'); + return; + } + + const modelSelectControl = document.getElementById(modelSelectItem); + + if (!(modelSelectControl instanceof HTMLSelectElement)) { + toastr.error(`Model select control not found: ${main_api}[${apiSubType}]`); + return; + } + + const options = Array.from(modelSelectControl.options); + + if (!options.length) { + toastr.warning('No model options found. Check your API settings.'); + return; + } + + let newSelectedOption = null; + + const fuse = new Fuse(options, { keys: ['text', 'value'] }); + const fuzzySearchResult = fuse.search(model); + + const exactValueMatch = options.find(x => x.value.trim().toLowerCase() === model.trim().toLowerCase()); + const exactTextMatch = options.find(x => x.text.trim().toLowerCase() === model.trim().toLowerCase()); + + if (exactValueMatch) { + newSelectedOption = exactValueMatch; + } else if (exactTextMatch) { + newSelectedOption = exactTextMatch; + } else if (fuzzySearchResult.length) { + newSelectedOption = fuzzySearchResult[0].item; + } + + if (newSelectedOption) { + modelSelectControl.value = newSelectedOption.value; + $(modelSelectControl).trigger('change'); + toastr.success(`Model set to "${newSelectedOption.text}"`); + } else { + toastr.warning(`No model found with name "${model}"`); + } +} + /** * Executes slash commands in the provided text * @param {string} text Slash command text @@ -1659,8 +1753,7 @@ async function executeSlashCommands(text, unescape = false) { unnamedArg = unnamedArg ?.replace(/\\\|/g, '|') ?.replace(/\\\{/g, '{') - ?.replace(/\\\}/g, '}') - ; + ?.replace(/\\\}/g, '}'); } for (const [key, value] of Object.entries(result.args)) { @@ -1668,8 +1761,7 @@ async function executeSlashCommands(text, unescape = false) { result.args[key] = value .replace(/\\\|/g, '|') .replace(/\\\{/g, '{') - .replace(/\\\}/g, '}') - ; + .replace(/\\\}/g, '}'); } } From 508bab7e0fe9e9fbc4e5ed82765c7f31964ccaf3 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:31:43 +0200 Subject: [PATCH 139/144] Fix range numbers parsing --- public/scripts/utils.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/scripts/utils.js b/public/scripts/utils.js index 3de04e55c..c7d001761 100644 --- a/public/scripts/utils.js +++ b/public/scripts/utils.js @@ -43,6 +43,10 @@ export function isValidUrl(value) { export function stringToRange(input, min, max) { let start, end; + if (typeof input !== 'string') { + input = String(input); + } + if (input.includes('-')) { const parts = input.split('-'); start = parts[0] ? parseInt(parts[0], 10) : NaN; From 306998ce7da4c0b09cc605985d342a9d5b844411 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 21:38:51 +0200 Subject: [PATCH 140/144] Clean-up template --- public/scripts/templates/welcome.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/public/scripts/templates/welcome.html b/public/scripts/templates/welcome.html index dd424e9e0..6082b2cde 100644 --- a/public/scripts/templates/welcome.html +++ b/public/scripts/templates/welcome.html @@ -1,6 +1,5 @@

    - SillyTavern -
    +

    Want to update? @@ -36,7 +35,7 @@ -
    +

    Still have questions?

    • From ad609c8f94d2d2a84a2f2c74c7abbfa52275f657 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Fri, 15 Mar 2024 22:38:20 +0200 Subject: [PATCH 141/144] Fix npm audit --- package-lock.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b89a2bd19..0298605fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1968,14 +1968,15 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.4", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, From 3032f47b29c8f7bd8d556e89df9f0b5a3150b3bb Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sat, 16 Mar 2024 01:11:00 +0200 Subject: [PATCH 142/144] Add import of Agnai chats --- src/endpoints/chats.js | 180 ++++++++++++++++++++++++----------------- 1 file changed, 107 insertions(+), 73 deletions(-) diff --git a/src/endpoints/chats.js b/src/endpoints/chats.js index 28e48f5ed..99fce52e5 100644 --- a/src/endpoints/chats.js +++ b/src/endpoints/chats.js @@ -38,6 +38,103 @@ function backupChat(name, chat) { } } +function importOobaChat(user_name, ch_name, jsonData, avatar_url) { + /** @type {object[]} */ + const chat = [{ + user_name: user_name, + character_name: ch_name, + create_date: humanizedISO8601DateTime(), + }]; + + for (const arr of jsonData.data_visible) { + if (arr[0]) { + const userMessage = { + name: user_name, + is_user: true, + send_date: humanizedISO8601DateTime(), + mes: arr[0], + }; + chat.push(userMessage); + } + if (arr[1]) { + const charMessage = { + name: ch_name, + is_user: false, + send_date: humanizedISO8601DateTime(), + mes: arr[1], + }; + chat.push(charMessage); + } + } + + const chatContent = chat.map(obj => JSON.stringify(obj)).join('\n'); + writeFileAtomicSync(`${DIRECTORIES.chats + avatar_url}/${ch_name} - ${humanizedISO8601DateTime()} imported.jsonl`, chatContent, 'utf8'); +} + +function importAgnaiChat(user_name, ch_name, jsonData, avatar_url) { + /** @type {object[]} */ + const chat = [{ + user_name: user_name, + character_name: ch_name, + create_date: humanizedISO8601DateTime(), + }]; + + for (const message of jsonData.messages) { + const isUser = !!message.userId; + chat.push({ + name: isUser ? user_name : ch_name, + is_user: isUser, + send_date: humanizedISO8601DateTime(), + mes: message.msg, + }); + } + + const chatContent = chat.map(obj => JSON.stringify(obj)).join('\n'); + writeFileAtomicSync(`${DIRECTORIES.chats + avatar_url}/${ch_name} - ${humanizedISO8601DateTime()} imported.jsonl`, chatContent, 'utf8'); +} + +function importCAIChat(user_name, ch_name, jsonData, avatar_url) { + const chat = { + from(history) { + return [ + { + user_name: user_name, + character_name: ch_name, + create_date: humanizedISO8601DateTime(), + }, + ...history.msgs.map( + (message) => ({ + name: message.src.is_human ? user_name : ch_name, + is_user: message.src.is_human, + send_date: humanizedISO8601DateTime(), + mes: message.text, + }), + ), + ]; + }, + }; + + const newChats = []; + (jsonData.histories.histories ?? []).forEach((history) => { + newChats.push(chat.from(history)); + }); + + const errors = []; + + for (const chat of newChats) { + const filePath = `${DIRECTORIES.chats + avatar_url}/${ch_name} - ${humanizedISO8601DateTime()} imported.jsonl`; + const fileContent = chat.map(tryParse).filter(x => x).join('\n'); + + try { + writeFileAtomicSync(filePath, fileContent, 'utf8'); + } catch (err) { + errors.push(err); + } + } + + return errors; +} + const router = express.Router(); router.post('/save', jsonParser, function (request, response) { @@ -253,83 +350,20 @@ router.post('/import', urlencodedParser, function (request, response) { if (format === 'json') { const jsonData = JSON.parse(data); if (jsonData.histories !== undefined) { - //console.log('/api/chats/import confirms JSON histories are defined'); - const chat = { - from(history) { - return [ - { - user_name: user_name, - character_name: ch_name, - create_date: humanizedISO8601DateTime(), - }, - ...history.msgs.map( - (message) => ({ - name: message.src.is_human ? user_name : ch_name, - is_user: message.src.is_human, - send_date: humanizedISO8601DateTime(), - mes: message.text, - }), - )]; - }, - }; - - const newChats = []; - (jsonData.histories.histories ?? []).forEach((history) => { - newChats.push(chat.from(history)); - }); - - const errors = []; - - for (const chat of newChats) { - const filePath = `${DIRECTORIES.chats + avatar_url}/${ch_name} - ${humanizedISO8601DateTime()} imported.jsonl`; - const fileContent = chat.map(tryParse).filter(x => x).join('\n'); - - try { - writeFileAtomicSync(filePath, fileContent, 'utf8'); - } catch (err) { - errors.push(err); - } - } - + // CAI Tools format + const errors = importCAIChat(user_name, ch_name, jsonData, avatar_url); if (0 < errors.length) { - response.send('Errors occurred while writing character files. Errors: ' + JSON.stringify(errors)); + return response.send('Errors occurred while writing character files. Errors: ' + JSON.stringify(errors)); } - - response.send({ res: true }); + return response.send({ res: true }); } else if (Array.isArray(jsonData.data_visible)) { // oobabooga's format - /** @type {object[]} */ - const chat = [{ - user_name: user_name, - character_name: ch_name, - create_date: humanizedISO8601DateTime(), - }]; - - for (const arr of jsonData.data_visible) { - if (arr[0]) { - const userMessage = { - name: user_name, - is_user: true, - send_date: humanizedISO8601DateTime(), - mes: arr[0], - }; - chat.push(userMessage); - } - if (arr[1]) { - const charMessage = { - name: ch_name, - is_user: false, - send_date: humanizedISO8601DateTime(), - mes: arr[1], - }; - chat.push(charMessage); - } - } - - const chatContent = chat.map(obj => JSON.stringify(obj)).join('\n'); - writeFileAtomicSync(`${DIRECTORIES.chats + avatar_url}/${ch_name} - ${humanizedISO8601DateTime()} imported.jsonl`, chatContent, 'utf8'); - - response.send({ res: true }); + importOobaChat(user_name, ch_name, jsonData, avatar_url); + return response.send({ res: true }); + } else if (Array.isArray(jsonData.messages)) { + // Agnai format + importAgnaiChat(user_name, ch_name, jsonData, avatar_url); + return response.send({ res: true }); } else { console.log('Incorrect chat format .json'); return response.send({ error: true }); From d311780328223cbd56497d303d584325781ea9a6 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sat, 16 Mar 2024 01:38:23 +0200 Subject: [PATCH 143/144] Fix performance in macro substitution --- public/scripts/macros.js | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/public/scripts/macros.js b/public/scripts/macros.js index e88971de1..5e6b37b7b 100644 --- a/public/scripts/macros.js +++ b/public/scripts/macros.js @@ -210,11 +210,22 @@ export function evaluateMacros(content, env) { return ''; } + // Legacy non-macro substitutions + content = content.replace(//gi, typeof env.user === 'function' ? env.user() : env.user); + content = content.replace(//gi, typeof env.char === 'function' ? env.char() : env.char); + content = content.replace(//gi, typeof env.group === 'function' ? env.group() : env.group); + content = content.replace(//gi, typeof env.group === 'function' ? env.group() : env.group); + + // Short circuit if there are no macros + if (!content.includes('{{')) { + return content; + } + content = diceRollReplace(content); content = replaceInstructMacros(content); content = replaceVariableMacros(content); content = content.replace(/{{newline}}/gi, '\n'); - content = content.replace(/{{input}}/gi, String($('#send_textarea').val())); + content = content.replace(/{{input}}/gi, () => String($('#send_textarea').val())); // Substitute passed-in variables for (const varName in env) { @@ -225,25 +236,19 @@ export function evaluateMacros(content, env) { } content = content.replace(/{{maxPrompt}}/gi, () => String(getMaxContextSize())); - content = content.replace(/{{lastMessage}}/gi, getLastMessage()); - content = content.replace(/{{lastMessageId}}/gi, getLastMessageId()); - content = content.replace(/{{firstIncludedMessageId}}/gi, getFirstIncludedMessageId()); - content = content.replace(/{{lastSwipeId}}/gi, getLastSwipeId()); - content = content.replace(/{{currentSwipeId}}/gi, getCurrentSwipeId()); - - // Legacy non-macro substitutions - content = content.replace(//gi, typeof env.user === 'function' ? env.user() : env.user); - content = content.replace(//gi, typeof env.char === 'function' ? env.char() : env.char); - content = content.replace(//gi, typeof env.group === 'function' ? env.group() : env.group); - content = content.replace(//gi, typeof env.group === 'function' ? env.group() : env.group); + content = content.replace(/{{lastMessage}}/gi, () => getLastMessage()); + content = content.replace(/{{lastMessageId}}/gi, () => getLastMessageId()); + content = content.replace(/{{firstIncludedMessageId}}/gi, () => getFirstIncludedMessageId()); + content = content.replace(/{{lastSwipeId}}/gi, () => getLastSwipeId()); + content = content.replace(/{{currentSwipeId}}/gi, () => getCurrentSwipeId()); content = content.replace(/\{\{\/\/([\s\S]*?)\}\}/gm, ''); - content = content.replace(/{{time}}/gi, moment().format('LT')); - content = content.replace(/{{date}}/gi, moment().format('LL')); - content = content.replace(/{{weekday}}/gi, moment().format('dddd')); - content = content.replace(/{{isotime}}/gi, moment().format('HH:mm')); - content = content.replace(/{{isodate}}/gi, moment().format('YYYY-MM-DD')); + content = content.replace(/{{time}}/gi, () => moment().format('LT')); + content = content.replace(/{{date}}/gi, () => moment().format('LL')); + content = content.replace(/{{weekday}}/gi, () => moment().format('dddd')); + content = content.replace(/{{isotime}}/gi, () => moment().format('HH:mm')); + content = content.replace(/{{isodate}}/gi, () => moment().format('YYYY-MM-DD')); content = content.replace(/{{datetimeformat +([^}]*)}}/gi, (_, format) => { const formattedTime = moment().format(format); From 7aa5ab2d8dfadc9e5220c58a40b7212d37e81378 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sat, 16 Mar 2024 02:19:41 +0200 Subject: [PATCH 144/144] Fix performance of loading very large chats --- public/index.html | 6 +-- public/script.js | 114 ++++++++++++++++------------------------------ 2 files changed, 41 insertions(+), 79 deletions(-) diff --git a/public/index.html b/public/index.html index bdf12f7b8..2992b4e97 100644 --- a/public/index.html +++ b/public/index.html @@ -4904,7 +4904,7 @@
    -
    +
    @@ -4920,7 +4920,7 @@
    -
    +
    @@ -4952,7 +4952,7 @@
    -
    +
    diff --git a/public/script.js b/public/script.js index eea7430c1..fc9c94334 100644 --- a/public/script.js +++ b/public/script.js @@ -466,6 +466,10 @@ let rawPromptPopper = Popper.createPopper(document.getElementById('dialogue_popu placement: 'right', }); +// Saved here for performance reasons +const messageTemplate = $('#message_template .mes'); +const chatElement = $('#chat'); + let dialogueResolve = null; let dialogueCloseStop = false; let chat_metadata = {}; @@ -1524,7 +1528,7 @@ async function printMessages() { for (let i = startIndex; i < chat.length; i++) { const item = chat[i]; - addOneMessage(item, { scroll: i === chat.length - 1, forceId: i }); + addOneMessage(item, { scroll: i === chat.length - 1, forceId: i, showSwipes: false }); } // Scroll to bottom when all images are loaded @@ -1542,6 +1546,11 @@ async function printMessages() { } } + $('#chat .mes').removeClass('last_mes'); + $('#chat .mes').last().addClass('last_mes'); + hideSwipeButtons(); + showSwipeButtons(); + function incrementAndCheck() { imagesLoaded++; if (imagesLoaded === images.length) { @@ -1822,7 +1831,7 @@ function getMessageFromTemplate({ tokenCount, extra, } = {}) { - const mes = $('#message_template .mes').clone(); + const mes = messageTemplate.clone(); mes.attr({ 'mesid': mesId, 'ch_name': characterName, @@ -1916,8 +1925,8 @@ export function addCopyToCodeBlocks(messageElement) { } -function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true, insertBefore = null, forceId = null } = {}) { - var messageText = mes['mes']; +function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true, insertBefore = null, forceId = null, showSwipes = true } = {}) { + let messageText = mes['mes']; const momentDate = timestampToMoment(mes.send_date); const timestamp = momentDate.isValid() ? momentDate.format('LL LT') : ''; @@ -1932,7 +1941,7 @@ function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true mes.swipes = [mes.mes]; } - var avatarImg = getUserAvatar(user_avatar); + let avatarImg = getUserAvatar(user_avatar); const isSystem = mes.is_system; const title = mes.title; generatedPromptCache = ''; @@ -1968,17 +1977,7 @@ function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true ); const bias = messageFormatting(mes.extra?.bias ?? '', '', false, false, -1); let bookmarkLink = mes?.extra?.bookmark_link ?? ''; - // Verify bookmarked chat still exists - // Cohee: Commented out for now. I'm worried of performance issues. - /*if (bookmarkLink !== '') { - let chat_names = selected_group - ? getGroupChatNames(selected_group) - : Object.values(getPastCharacterChats()).map(({ file_name }) => file_name); - if (!chat_names.includes(bookmarkLink)) { - bookmarkLink = '' - } - }*/ let params = { mesId: forceId ?? chat.length - 1, characterName: mes.name, @@ -1995,22 +1994,18 @@ function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true ...formatGenerationTimer(mes.gen_started, mes.gen_finished, mes.extra?.token_count), }; - const HTMLForEachMes = getMessageFromTemplate(params); + const renderedMessage = getMessageFromTemplate(params); if (type !== 'swipe') { if (!insertAfter && !insertBefore) { - $('#chat').append(HTMLForEachMes); + chatElement.append(renderedMessage); } else if (insertAfter) { - const target = $('#chat').find(`.mes[mesid="${insertAfter}"]`); - $(HTMLForEachMes).insertAfter(target); - $(HTMLForEachMes).find('.swipe_left').css('display', 'none'); - $(HTMLForEachMes).find('.swipe_right').css('display', 'none'); + const target = chatElement.find(`.mes[mesid="${insertAfter}"]`); + $(renderedMessage).insertAfter(target); } else { - const target = $('#chat').find(`.mes[mesid="${insertBefore}"]`); - $(HTMLForEachMes).insertBefore(target); - $(HTMLForEachMes).find('.swipe_left').css('display', 'none'); - $(HTMLForEachMes).find('.swipe_right').css('display', 'none'); + const target = chatElement.find(`.mes[mesid="${insertBefore}"]`); + $(renderedMessage).insertBefore(target); } } @@ -2021,49 +2016,19 @@ function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true const isSmallSys = mes?.extra?.isSmallSys; newMessage.data('isSystem', isSystem); - if (isSystem) { - // newMessage.find(".mes_edit").hide(); - newMessage.find('.mes_prompt').hide(); //don't need prompt button for sys - } - if (isSmallSys === true) { newMessage.addClass('smallSysMes'); } - // don't need prompt button for user - if (params.isUser === true) { - newMessage.find('.mes_prompt').hide(); - //console.log(`hiding prompt for user mesID ${params.mesId}`); - } - //shows or hides the Prompt display button let mesIdToFind = type == 'swipe' ? params.mesId - 1 : params.mesId; //Number(newMessage.attr('mesId')); //if we have itemized messages, and the array isn't null.. - if (params.isUser === false && itemizedPrompts.length !== 0 && itemizedPrompts.length !== null) { - // console.log('looking through itemized prompts...'); - //console.log(`mesIdToFind = ${mesIdToFind} from ${params.avatarImg}`); - //console.log(`itemizedPrompts.length = ${itemizedPrompts.length}`) - //console.log(itemizedPrompts); - - for (var i = 0; i < itemizedPrompts.length; i++) { - //console.log(`itemized array item ${i} is MesID ${Number(itemizedPrompts[i].mesId)}, does it match ${Number(mesIdToFind)}?`); - if (Number(itemizedPrompts[i].mesId) === Number(mesIdToFind)) { - newMessage.find('.mes_prompt').show(); - //console.log(`showing button for mesID ${params.mesId} from ${params.characterName}`); - break; - - } /*else { - console.log(`no cache obj for mesID ${mesIdToFind}, hiding this prompt button`); - newMessage.find(".mes_prompt").hide(); - console.log(itemizedPrompts); - } */ + if (params.isUser === false && Array.isArray(itemizedPrompts) && itemizedPrompts.length > 0) { + const itemizedPrompt = itemizedPrompts.find(x => Number(x.mesId) === Number(mesIdToFind)); + if (itemizedPrompt) { + newMessage.find('.mes_prompt').show(); } - } else { - //console.log('itemizedprompt array empty null, or user, hiding this prompt buttons'); - //$(".mes_prompt").hide(); - newMessage.find('.mes_prompt').hide(); - //console.log(itemizedPrompts); } newMessage.find('.avatar img').on('error', function () { @@ -2072,38 +2037,36 @@ function addOneMessage(mes, { type = 'normal', insertAfter = null, scroll = true }); if (type === 'swipe') { - const swipeMessage = $('#chat').find(`[mesid="${chat.length - 1}"]`); - swipeMessage.find('.mes_text').html(''); - swipeMessage.find('.mes_text').append(messageText); - appendMediaToMessage(mes, swipeMessage); - swipeMessage.attr('title', title); + const swipeMessage = chatElement.find(`[mesid="${chat.length - 1}"]`); + swipeMessage.find('.mes_text').html(messageText).attr('title', title); swipeMessage.find('.timestamp').text(timestamp).attr('title', `${params.extra.api} - ${params.extra.model}`); + appendMediaToMessage(mes, swipeMessage); if (power_user.timestamp_model_icon && params.extra?.api) { insertSVGIcon(swipeMessage, params.extra); } if (mes.swipe_id == mes.swipes.length - 1) { - swipeMessage.find('.mes_timer').text(params.timerValue); - swipeMessage.find('.mes_timer').attr('title', params.timerTitle); + swipeMessage.find('.mes_timer').text(params.timerValue).attr('title', params.timerTitle); swipeMessage.find('.tokenCounterDisplay').text(`${params.tokenCount}t`); } else { - swipeMessage.find('.mes_timer').html(''); - swipeMessage.find('.tokenCounterDisplay').html(''); + swipeMessage.find('.mes_timer').empty(); + swipeMessage.find('.tokenCounterDisplay').empty(); } } else { const messageId = forceId ?? chat.length - 1; - $('#chat').find(`[mesid="${messageId}"]`).find('.mes_text').append(messageText); + chatElement.find(`[mesid="${messageId}"] .mes_text`).append(messageText); appendMediaToMessage(mes, newMessage); - hideSwipeButtons(); + showSwipes && hideSwipeButtons(); } addCopyToCodeBlocks(newMessage); - $('#chat .mes').last().addClass('last_mes'); - $('#chat .mes').eq(-2).removeClass('last_mes'); - - hideSwipeButtons(); - showSwipeButtons(); + if (showSwipes) { + $('#chat .mes').last().addClass('last_mes'); + $('#chat .mes').eq(-2).removeClass('last_mes'); + hideSwipeButtons(); + showSwipeButtons(); + } // Don't scroll if not inserting last if (!insertAfter && !insertBefore && scroll) { @@ -2177,7 +2140,6 @@ function formatGenerationTimer(gen_started, gen_finished, tokenCount) { function scrollChatToBottom() { if (power_user.auto_scroll_chat_to_bottom) { - const chatElement = $('#chat'); let position = chatElement[0].scrollHeight; if (power_user.waifuMode) {