Merge pull request #1937 from SillyTavern/staging

Staging
This commit is contained in:
Cohee 2024-03-16 16:35:32 +02:00 committed by GitHub
commit f121d1da56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
87 changed files with 14725 additions and 7911 deletions

2
.github/readme.md vendored
View File

@ -12,6 +12,8 @@ Based on a fork of [TavernAI](https://github.com/TavernAI/TavernAI) 1.2.8
2. Missing extensions after the update? Since the 1.10.6 release version, most of the previously built-in extensions have been converted to downloadable add-ons. You can download them via the built-in "Download Extensions and Assets" menu in the extensions panel (stacked blocks icon in the top bar).
3. Unsupported platform: android arm LEtime-web. 32-bit Android requires an external dependency that can't be installed with npm. Use the following command to install it: `pkg install esbuild`. Then run the usual installation steps.
### Brought to you by Cohee, RossAscends, and the SillyTavern community
### What is SillyTavern or TavernAI?

View File

@ -12,11 +12,14 @@ ENTRYPOINT [ "tini", "--" ]
# Create app directory
WORKDIR ${APP_HOME}
# Set NODE_ENV to production
ENV NODE_ENV=production
# Install app dependencies
COPY package*.json post-install.js ./
RUN \
echo "*** Install npm packages ***" && \
npm install && npm cache clean --force
npm i --no-audit --no-fund --quiet --omit=dev && npm cache clean --force
# Bundle app source
COPY . ./

View File

@ -1,5 +1,6 @@
pushd %~dp0
call npm install --no-audit
set NODE_ENV=production
call npm install --no-audit --no-fund --quiet --omit=dev
node server.js %*
pause
popd

View File

@ -11,7 +11,8 @@ if %errorlevel% neq 0 (
echo There were errors while updating. Please download the latest version manually.
)
)
call npm install
set NODE_ENV=production
call npm install --no-audit --no-fund --quiet --omit=dev
node server.js %*
pause
popd

View File

@ -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

View File

@ -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,

View File

@ -113,6 +113,7 @@
"shadow_width": 2,
"main_text_color": "rgba(220, 220, 210, 1)",
"italics_text_color": "rgba(145, 145, 145, 1)",
"underline_text_color": "rgba(188, 231, 207, 1)",
"quote_text_color": "rgba(225, 138, 36, 1)",
"blur_tint_color": "rgba(23, 23, 23, 1)",
"user_mes_blur_tint_color": "rgba(0, 0, 0, 0.9)",
@ -445,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,
@ -622,7 +623,6 @@
"show_external_models": false,
"proxy_password": "",
"assistant_prefill": "",
"use_ai21_tokenizer": false,
"exclude_assistant": false
"use_ai21_tokenizer": false
}
}

1664
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@
"@agnai/sentencepiece-js": "^1.1.1",
"@agnai/web-tokenizers": "^0.1.3",
"@dqbd/tiktoken": "^1.0.13",
"@zeldafan0225/ai_horde": "^4.0.1",
"bing-translate-api": "^2.9.1",
"body-parser": "^1.20.2",
"command-exists": "^1.2.9",
@ -46,6 +47,9 @@
},
"axios": {
"follow-redirects": "^1.15.4"
},
"@zeldafan0225/ai_horde": {
"esbuild": "npm:dry-uninstall"
}
},
"name": "sillytavern",
@ -55,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",

View File

@ -0,0 +1,11 @@
{
"story_string": "<|im_start|>system\n{{#if system}}{{system}}\n\n\n{{/if}}## Overall plot description:\n\n{{#if scenario}}{{scenario}}{{else}}Conversation between {{char}} and {{user}}.{{/if}}{{#if wiBefore}}\n\n{{wiBefore}}{{/if}}\n\n\n## Characters:\n\n### {{char}}\n\n{{#if description}}{{description}}\n\n{{/if}}{{#if personality}}{{personality}}\n\n{{/if}}### {{user}}\n\n{{#if persona}}{{persona}}{{else}}{{user}} is the protagonist of the role-play.{{/if}}{{#if wiAfter}}\n\n{{wiAfter}}{{/if}}{{#if mesExamples}}\n\n{{mesExamples}}{{/if}}",
"example_separator": "",
"chat_start": "",
"use_stop_strings": false,
"always_force_name2": false,
"trim_sentences": true,
"include_newline": false,
"single_line": false,
"name": "DreamGen Role-Play V1"
}

View File

@ -391,10 +391,6 @@
flex-wrap: wrap;
height: unset;
}
#extensionsMenuButton {
order: 1;
}
}
/*iOS specific*/

View File

@ -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;
}

View File

@ -89,7 +89,7 @@
#bulkTagsList,
#tagList.tags {
margin: 5px 0;
margin: 2px 0;
}
#bulkTagsList,

View File

@ -165,7 +165,7 @@ body.big-avatars .avatar-container .ch_description {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
white-space: normal;
white-space: pre-line;
text-overflow: unset;
}

File diff suppressed because it is too large Load Diff

1
public/img/dreamgen.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon"><path fill-rule="evenodd" d="M9.528 1.718a.75.75 0 0 1 .162.819A8.97 8.97 0 0 0 9 6a9 9 0 0 0 9 9 8.97 8.97 0 0 0 3.463-.69.75.75 0 0 1 .981.98 10.503 10.503 0 0 1-9.694 6.46c-5.799 0-10.5-4.7-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 0 1 .818.162Z" clip-rule="evenodd"></path></svg>

After

Width:  |  Height:  |  Size: 408 B

View File

@ -47,6 +47,8 @@
<script src="lib/pagination.js"></script>
<script src="lib/toolcool-color-picker.js"></script>
<script src="lib/svg-inject.js"></script>
<script src="lib/Readability.js"></script>
<script src="lib/Readability-readerable.js"></script>
<script type="module" src="lib/structured-clone/monkey-patch.js"></script>
<script type="module" src="lib/swiped-events.js"></script>
<script type="module" src="lib/eventemitter.js"></script>
@ -143,7 +145,7 @@
<div class="flex-container flexBasis100p justifyCenter">
<input type="file" hidden data-preset-manager-file="kobold" accept=".json, .settings">
<i data-newbie-hidden data-preset-manager-update="kobold" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i data-newbie-hidden data-preset-manager-new="kobold" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-new="kobold" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-import="kobold" class="menu_button fa-solid fa-file-import" title="Import preset" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden data-preset-manager-export="kobold" class="menu_button fa-solid fa-file-export" title="Export preset" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden data-preset-manager-restore="kobold" class="menu_button fa-solid fa-recycle" title="Restore current preset" data-i18n="[title]Restore current preset"></i>
@ -165,7 +167,7 @@
<div class="flex-container flexBasis100p justifyCenter">
<input type="file" hidden data-preset-manager-file="novel" accept=".json, .settings">
<i data-newbie-hidden data-preset-manager-update="novel" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i data-newbie-hidden data-preset-manager-new="novel" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-new="novel" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-import="novel" class="menu_button fa-solid fa-file-import" title="Import preset" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden data-preset-manager-export="novel" class="menu_button fa-solid fa-file-export" title="Export preset" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden data-preset-manager-restore="novel" class="menu_button fa-solid fa-recycle" title="Restore current preset" data-i18n="[title]Restore current preset"></i>
@ -183,7 +185,7 @@
<div class="flex-container flexBasis100p justifyCenter">
<input id="openai_preset_import_file" type="file" accept=".json,.settings" hidden />
<i id="update_oai_preset" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i id="new_oai_preset" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i id="new_oai_preset" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden title="Import preset" id="import_oai_preset" class="menu_button fa-solid fa-file-import" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden title="Export preset" id="export_oai_preset" class="menu_button fa-solid fa-file-export" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden id="delete_oai_preset" class="menu_button fa-solid fa-trash-can" title="Delete the preset" data-i18n="[title]Delete the preset"></i>
@ -199,7 +201,7 @@
<div class="flex-container flexBasis100p justifyCenter">
<input type="file" hidden data-preset-manager-file="textgenerationwebui" accept=".json, .settings">
<i data-newbie-hidden data-preset-manager-update="textgenerationwebui" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i data-newbie-hidden data-preset-manager-new="textgenerationwebui" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-new="textgenerationwebui" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-import="textgenerationwebui" class="menu_button fa-solid fa-file-import" title="Import preset" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden data-preset-manager-export="textgenerationwebui" class="menu_button fa-solid fa-file-export" title="Export preset" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden data-preset-manager-restore="textgenerationwebui" class="menu_button fa-solid fa-recycle" title="Restore current preset" data-i18n="[title]Restore current preset"></i>
@ -264,6 +266,9 @@
</label>
</div>
</div>
<small data-tg-type="openrouter">
Max prompt cost: <span id="or_prompt_cost">&ndash;</span>
</small>
</div>
<hr>
</div>
@ -440,7 +445,7 @@
</div>
<hr>
<div class="range-block">
<label for="stream_toggle" title="Enable OpenAI completion streaming" class="checkbox_label widthFreeExpand">
<label for="stream_toggle" title="Enable OpenAI completion streaming" data-i18n="[title]Enable OpenAI completion streaming" class="checkbox_label widthFreeExpand">
<input id="stream_toggle" type="checkbox" /><span data-i18n="Streaming">
Streaming</span>
</label>
@ -572,7 +577,7 @@
</div>
<div class="inline-drawer m-t-1 wide100p">
<div class="inline-drawer-toggle inline-drawer-header">
<b data-i18n="Quick Edit">Quick Prompts Edit</b>
<b data-i18n="Quick Prompts Edit">Quick Prompts Edit</b>
<div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
</div>
<div class="inline-drawer-content">
@ -1164,7 +1169,7 @@
</div>
<div data-newbie-hidden data-tg-type="aphrodite" class="flex-container flexFlowColumn alignitemscenter flexBasis100p flexGrow flexShrink gap0">
<small data-i18n="Multiple swipes per generation">Multiple swipes per generation</small>
<input type="number" id="n_textgenerationwebui" class="text_pole textAlignCenter" min="1" value="1" />
<input type="number" id="n_textgenerationwebui" class="text_pole textAlignCenter" min="1" value="1" step="1" />
</div>
<div class="flex-container gap10h5v justifyCenter">
<div class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0">
@ -1234,7 +1239,7 @@
<div data-newbie-hidden data-tg-type="ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0">
<small>
<span data-i18n="Eta Cutoff">Eta Cutoff</span>
<div class="fa-solid fa-circle-info opacity50p" title="Eta cutoff is the main parameter of the special Eta Sampling technique.&#13;In units of 1e-4; a reasonable value is 3.&#13;Set to 0 to disable.&#13;See the paper Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022) for details."></div>
<div class="fa-solid fa-circle-info opacity50p" data-i18n="[title]Eta cutoff is the main parameter of the special Eta Sampling technique.&#13;In units of 1e-4; a reasonable value is 3.&#13;Set to 0 to disable.&#13;See the paper Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022) for details." title="Eta cutoff is the main parameter of the special Eta Sampling technique.&#13;In units of 1e-4; a reasonable value is 3.&#13;Set to 0 to disable.&#13;See the paper Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022) for details."></div>
</small>
<input class="neo-range-slider" type="range" id="eta_cutoff_textgenerationwebui" name="volume" min="0" max="20" step="0.01">
<input class="neo-range-input" type="number" min="0" max="20" step="0.01" data-for="eta_cutoff_textgenerationwebui" id="eta_cutoff_counter_textgenerationwebui">
@ -1269,7 +1274,7 @@
<input class="neo-range-slider" type="range" id="no_repeat_ngram_size_textgenerationwebui" name="volume" min="0" max="20" step="1">
<input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="no_repeat_ngram_size_textgenerationwebui" id="no_repeat_ngram_size_counter_textgenerationwebui">
</div>
<div data-newbie-hidden data-tg-type="ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0">
<div data-newbie-hidden data-tg-type="ooba, dreamgen" class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0">
<small data-i18n="Min Length">Min Length</small>
<input class="neo-range-slider" type="range" id="min_length_textgenerationwebui" name="volume" min="0" max="2000" step="1" />
<input class="neo-range-input" type="number" min="0" max="2000" step="1" data-for="min_length_textgenerationwebui" id="min_length_counter_textgenerationwebui">
@ -1279,6 +1284,11 @@
<input class="neo-range-slider" type="range" id="smoothing_factor_textgenerationwebui" name="volume" min="0" max="10" step="0.01" />
<input class="neo-range-input" type="number" min="0" max="10" step="0.01" data-for="smoothing_factor_textgenerationwebui" id="smoothing_factor_counter_textgenerationwebui">
</div>
<div data-newbie-hidden data-tg-type="ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0">
<small data-i18n="Max Tokens Second">Maximum tokens/second</small>
<input class="neo-range-slider" type="range" id="max_tokens_second_textgenerationwebui" name="volume" min="0" max="20" step="1" />
<input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="max_tokens_second_textgenerationwebui" id="max_tokens_second_counter_textgenerationwebui">
</div>
<!--
<div data-tg-type="aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis48p flexGrow flexShrink gap0" data-i18n="Responses">
<small>Responses</small>
@ -1575,7 +1585,7 @@
<hr class="wide100p">
<h4 class="range-block-title justifyCenter">
<span data-i18n="Sampler Priority">Sampler Priority</span>
<div class="margin5 fa-solid fa-circle-info opacity50p" title="Ooba only. Determines the order of samplers."></div>
<div class="margin5 fa-solid fa-circle-info opacity50p" title="Ooba only. Determines the order of samplers." data-i18n="[title]Ooba only. Determines the order of samplers."></div>
</h4>
<div class="toggle-description widthUnset" data-i18n="Ooba only. Determines the order of samplers.">
Ooba only. Determines the order of samplers.
@ -1603,7 +1613,7 @@
<div id="openai_settings">
<div class="">
<div class="range-block">
<label for="wrap_in_quotes" title="Wrap user messages in quotes before sending" class="checkbox_label widthFreeExpand">
<label for="wrap_in_quotes" title="Wrap user messages in quotes before sending" data-i18n="[title]Wrap user messages in quotes before sending" class="checkbox_label widthFreeExpand">
<input id="wrap_in_quotes" type="checkbox" /><span data-i18n="Wrap in Quotes">
Wrap in Quotes</span>
</label>
@ -1615,11 +1625,11 @@
</div>
</div>
<div class="range-block">
<label for="names_in_completion" title="Add character names" class="checkbox_label widthFreeExpand">
<label for="names_in_completion" title="Add character names" data-i18n="[title]Add character names" class="checkbox_label widthFreeExpand">
<input id="names_in_completion" type="checkbox" /><span data-i18n="Add character names">Add character names</span>
</label>
<div class="toggle-description justifyLeft">
<span data-i18n="Send names in the message objects.">Send names in the message objects. Helps the model to associate messages with characters.</span>
<span data-i18n="Send names in the message objects. Helps the model to associate messages with characters.">Send names in the message objects. Helps the model to associate messages with characters.</span>
</div>
</div>
<div class="range-block">
@ -1628,31 +1638,30 @@
<span data-i18n="Continue prefill">Continue prefill</span>
</label>
<div class="toggle-description justifyLeft">
<span data-i18n="Continue sends the last message.">
<span data-i18n="Continue sends the last message as assistant role instead of system message with instruction.">
Continue sends the last message as assistant role instead of system message with instruction.
</span>
</div>
</div>
<div class="range-block">
<label for="squash_system_messages" title="Squash system messages" class="checkbox_label widthFreeExpand">
<label for="squash_system_messages" title="Squash system messages" data-i18n="[title]Squash system messages" class="checkbox_label widthFreeExpand">
<input id="squash_system_messages" type="checkbox" />
<span data-i18n="Squash system messages">
Squash system messages
</span>
</label>
<div class="toggle-description justifyLeft">
<span data-i18n="Combines consecutive system messages into one.">
Combines consecutive system messages into one (excluding example dialogues).
May improve coherence for some models.
<span data-i18n="Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.">
Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.
</span>
</div>
</div>
<div class="range-block" data-source="openai,openrouter,makersuite,custom">
<div class="range-block" data-source="openai,openrouter,makersuite,claude,custom">
<label for="openai_image_inlining" class="checkbox_label flexWrap widthFreeExpand">
<input id="openai_image_inlining" type="checkbox" />
<span data-i18n="Send inline images">Send inline images</span>
<div id="image_inlining_hint" class="flexBasis100p toggle-description justifyLeft">
Sends images in prompts if the model supports it (e.g. GPT-4V or Llava 13B).
Sends images in prompts if the model supports it (e.g. GPT-4V, Claude 3 or Llava 13B).
Use the <code><i class="fa-solid fa-paperclip"></i></code> action on any message or the
<code><i class="fa-solid fa-wand-magic-sparkles"></i></code> menu to attach an image file to the chat.
</div>
@ -1675,26 +1684,7 @@
</div>
</div>
<div data-newbie-hidden class="range-block" data-source="claude">
<label for="claude_exclude_prefixes" title="Exclude Human/Assistant prefixes" class="checkbox_label widthFreeExpand">
<input id="claude_exclude_prefixes" type="checkbox" />
<span data-i18n="Exclude Human/Assistant prefixes">Exclude Human/Assistant prefixes</span>
</label>
<div class="toggle-description justifyLeft marginBot5">
<span data-i18n="Exclude Human/Assistant prefixes from being added to the prompt.">
Exclude Human/Assistant prefixes from being added to the prompt, except very first/last message, system prompt Human message and Assistant suffix.
Requires 'Add character names' checked.
</span>
</div>
<label for="exclude_assistant" title="Exclude Assistant suffix" class="checkbox_label widthFreeExpand">
<input id="exclude_assistant" type="checkbox" />
<span data-i18n="Exclude Assistant suffix">Exclude Assistant suffix</span>
</label>
<div class="toggle-description justifyLeft marginBot5">
<span data-i18n="Exclude the assistant suffix from being added to the end of prompt.">
Exclude the assistant suffix from being added to the end of prompt. Requires jailbreak with 'Assistant:' in it.
</span>
</div>
<div id="claude_assistant_prefill_block" class="wide100p">
<div class="wide100p">
<span id="claude_assistant_prefill_text" data-i18n="Assistant Prefill">Assistant Prefill</span>
<textarea id="claude_assistant_prefill" class="text_pole textarea_compact" name="assistant_prefill autoSetHeight" rows="3" maxlength="10000" data-i18n="[placeholder]Start Claude's answer with..." placeholder="Start Claude's answer with..."></textarea>
</div>
@ -1705,19 +1695,18 @@
</span>
</label>
<div class="toggle-description justifyLeft marginBot5">
<span data-i18n="Exclude the 'Human: ' prefix from being added to the beginning of the prompt.">
Exclude the 'Human: ' prefix from being added to the beginning of the prompt.
Instead, place it between the system prompt and the first message with the role 'assistant' (right before 'Chat History' by default).
<span data-i18n="Send the system prompt for supported models. If disabled, the user message is added to the beginning of the prompt.">
Send the system prompt for supported models. If disabled, the user message is added to the beginning of the prompt.
</span>
</div>
<div id="claude_human_sysprompt_message_block" class="wide100p">
<div class="range-block-title openai_restorable">
<span data-i18n="Human: first message">Human: first message</span>
<div id="claude_human_sysprompt_message_restore" title="Restore Human: first message" class="right_menu_button">
<span data-i18n="User first message">User first message</span>
<div id="claude_human_sysprompt_message_restore" title="Restore User first message" class="right_menu_button">
<div class="fa-solid fa-clock-rotate-left"></div>
</div>
</div>
<textarea id="claude_human_sysprompt_textarea" class="text_pole textarea_compact" rows="4" maxlength="10000" data-i18n="[placeholder]Human message" placeholder="Human message, instruction, etc.&#10;Adds nothing when empty, i.e. requires a new prompt with the role 'user' or manually adding the 'Human: ' prefix."></textarea>
<textarea id="claude_human_sysprompt_textarea" class="text_pole textarea_compact" rows="4" maxlength="10000" data-i18n="[placeholder]Human message" placeholder="Human message, instruction, etc.&#10;Adds nothing when empty, i.e. requires a new prompt with the role 'user'."></textarea>
</div>
</div>
</div>
@ -1797,7 +1786,7 @@
account for faster queue times</a>
</li>
<li>
<a target="_blank" href="https://github.com/db0/AI-Horde-Worker#readme" data-i18n="Learn how to contribute your idle GPU cycles to the Horde">Learn
<a target="_blank" href="https://github.com/Haidra-Org/horde-worker-reGen?tab=readme-ov-file#ai-horde-worker-regen" data-i18n="Learn how to contribute your idle GPU cycles to the Horde">Learn
how to contribute your idle GPU cycles to the Horde</a>
</li>
</ul>
@ -1910,15 +1899,16 @@
<h4 data-i18n="API Type">API Type</h4>
<select id="textgen_type">
<option value="ooba" data-i18n="Default (oobabooga)">Default (oobabooga)</option>
<option value="mancer">Mancer</option>
<option value="aphrodite">Aphrodite</option>
<option value="tabby">TabbyAPI</option>
<option value="dreamgen">DreamGen</option>
<option value="infermaticai">InfermaticAI</option>
<option value="koboldcpp">KoboldCpp</option>
<option value="llamacpp">llama.cpp</option>
<option value="openrouter">OpenRouter</option>
<option value="mancer">Mancer</option>
<option value="ollama">Ollama</option>
<option value="openrouter">OpenRouter</option>
<option value="tabby">TabbyAPI</option>
<option value="togetherai">TogetherAI</option>
<option value="infermaticai">InfermaticAI</option>
</select>
</div>
<div data-tg-type="togetherai" class="flex-container flexFlowColumn">
@ -1981,6 +1971,29 @@
</select>
</div>
</div>
<div data-tg-type="dreamgen" class="flex-container flexFlowColumn">
<h4 data-i18n="DreamGen API key">
DreamGen API key
<a href="https://dreamgen.com/account/api-keys" class="notes-link" target="_blank">
<span class="fa-solid fa-circle-question note-link-span"></span>
</a>
</h4>
<div class="flex-container">
<input id="api_key_dreamgen" name="api_key_dreamgen" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off">
<div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_dreamgen"></div>
</div>
<div data-for="api_key_dreamgen" class="neutral_warning">
For privacy reasons, your API key will be hidden after you reload the page.
</div>
<div>
<h4 data-i18n="DreamGen Model">DreamGen Model</h4>
<select id="model_dreamgen_select">
<option>
-- Connect to the API --
</option>
</select>
</div>
</div>
<div data-tg-type="mancer" class="flex-container flexFlowColumn">
<div class="flex-container flexFlowColumn">
</div>
@ -2055,6 +2068,14 @@
<small data-i18n="Example: 127.0.0.1:5000">Example: http://127.0.0.1:5000</small>
<input id="aphrodite_api_url_text" class="text_pole wide100p" maxlength="500" value="" autocomplete="off" data-server-history="aphrodite">
</div>
<div>
<h4 data-i18n="Aphrodite Model">Aphrodite Model</h4>
<select id="aphrodite_model">
<option data-i18n="-- Connect to the API --">
-- Connect to the API --
</option>
</select>
</div>
</div>
<div data-tg-type="llamacpp">
<div class="flex-container flexFlowColumn">
@ -2122,6 +2143,15 @@
LostRuins/koboldcpp
</a>
</div>
<h4 data-i18n="koboldcpp API key (optional)">koboldcpp API key (optional)</h4>
<div class="flex-container">
<input id="api_key_koboldcpp" name="api_key_koboldcpp" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off">
<div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_koboldcpp">
</div>
</div>
<div data-for="api_key_koboldcpp" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page.">
For privacy reasons, your API key will be hidden after you reload the page.
</div>
<div class="flex1">
<h4 data-i18n="API url">API URL</h4>
<small data-i18n="Example: 127.0.0.1:5001">Example: http://127.0.0.1:5001</small>
@ -2332,24 +2362,15 @@
<div>
<h4 data-i18n="Claude Model">Claude Model</h4>
<select id="model_claude_select">
<optgroup label="Latest">
<option value="claude-2">claude-2</option>
<option value="claude-v1">claude-v1</option>
<option value="claude-v1-100k">claude-v1-100k</option>
<option value="claude-instant-v1">claude-instant-v1</option>
<option value="claude-instant-v1-100k">claude-instant-v1-100k</option>
</optgroup>
<optgroup label="Sub-versions">
<optgroup label="Versions">
<option value="claude-3-opus-20240229">claude-3-opus-20240229</option>
<option value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
<option value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
<option value="claude-2.1">claude-2.1</option>
<option value="claude-2.0">claude-2.0</option>
<option value="claude-v1.3">claude-v1.3</option>
<option value="claude-v1.3-100k">claude-v1.3-100k</option>
<option value="claude-v1.2">claude-v1.2</option>
<option value="claude-v1.0">claude-v1.0</option>
<option value="claude-1.3">claude-1.3</option>
<option value="claude-instant-1.2">claude-instant-1.2</option>
<option value="claude-instant-v1.1">claude-instant-v1.1</option>
<option value="claude-instant-v1.1-100k">claude-instant-v1.1-100k</option>
<option value="claude-instant-v1.0">claude-instant-v1.0</option>
<option value="claude-instant-1.1">claude-instant-1.1</option>
</optgroup>
</select>
</div>
@ -2425,6 +2446,10 @@
<div class="marginTopBot5">
<label for="openrouter_force_instruct" class="checkbox_label">
<input id="openrouter_force_instruct" type="checkbox" />
<span class="flex-container alignItemsBaseline" title="This option is outdated and will be removed in the future. To use instruct formatting, please switch to OpenRouter under Text Completion API instead.">
<i class="fa-solid fa-circle-exclamation neutral_warning"></i>
<b data-i18n="LEGACY">LEGACY</b>
</span>
<span data-i18n="Force Instruct Mode formatting">Force Instruct Mode formatting</span>
</label>
<div class="toggle-description justifyLeft wide100p">
@ -2620,7 +2645,7 @@
<input type="file" hidden data-preset-manager-file="context" accept=".json, .settings">
<i id="context_set_default" class="menu_button fa-solid fa-heart" title="Auto-select this preset for Instruct Mode." data-i18n="[title]Auto-select this preset for Instruct Mode"></i>
<i data-newbie-hidden data-preset-manager-update="context" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i data-newbie-hidden data-preset-manager-new="context" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-new="context" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-import="context" class="menu_button fa-solid fa-file-import" title="Import preset" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden data-preset-manager-export="context" class="menu_button fa-solid fa-file-export" title="Export preset" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden id="context_delete_preset" data-preset-manager-delete="context" class="menu_button fa-solid fa-trash-can" title="Delete the preset" data-i18n="[title]Delete the preset"></i>
@ -2652,6 +2677,10 @@
<input id="context_use_stop_strings" type="checkbox" />
<small data-i18n="Use as Stop Strings">Use as Stop Strings</small>
</label>
<label class="checkbox_label" title="Includes Jailbreak at the end of the prompt, if defined in the character card AND ''Prefer Char. Jailbreak'' is enabled.&#10;THIS IS NOT RECOMMENDED FOR TEXT COMPLETION MODELS, CAN LEAD TO BAD OUTPUT.">
<input id="context_allow_jailbreak" type="checkbox" />
<small data-i18n="Allow Jailbreak">Allow Jailbreak</small>
</label>
</div>
<div data-newbie-hidden class="inline-drawer wide100p flexFlowColumn margin-bot-10px" style="display:none;">
@ -2715,7 +2744,7 @@
<input type="file" hidden data-preset-manager-file="instruct" accept=".json, .settings">
<i id="instruct_set_default" class="menu_button fa-solid fa-heart" title="Auto-select this preset on API connection." data-i18n="[title]Auto-select this preset on API connection"></i>
<i data-newbie-hidden data-preset-manager-update="instruct" class="menu_button fa-solid fa-save" title="Update current preset" data-i18n="[title]Update current preset"></i>
<i data-newbie-hidden data-preset-manager-new="instruct" class="menu_button fa-solid fa-paste" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-new="instruct" class="menu_button fa-solid fa-file-circle-plus" title="Save preset as" data-i18n="[title]Save preset as"></i>
<i data-newbie-hidden data-preset-manager-import="instruct" class="menu_button fa-solid fa-file-import" title="Import preset" data-i18n="[title]Import preset"></i>
<i data-newbie-hidden data-preset-manager-export="instruct" class="menu_button fa-solid fa-file-export" title="Export preset" data-i18n="[title]Export preset"></i>
<i data-newbie-hidden data-preset-manager-delete="instruct" class="menu_button fa-solid fa-trash-can" title="Delete the preset" data-i18n="[title]Delete the preset"></i>
@ -2737,6 +2766,10 @@
<input id="instruct_macro" type="checkbox" />
<span data-i18n="Replace Macro in Sequences">Replace Macro in Sequences</span>
</label>
<label for="instruct_skip_examples" class="checkbox_label">
<input id="instruct_skip_examples" type="checkbox" />
<span data-i18n="Skip Example Dialogues Formatting">Skip Example Dialogues Formatting</span>
</label>
<label for="instruct_names" class="checkbox_label">
<input id="instruct_names" type="checkbox" />
<span data-i18n="Include Names">Include Names</span>
@ -3213,7 +3246,7 @@
<span data-i18n="UI Language">Language:</span>
<select id="ui_language_select" class="widthNatural flex1 margin0">
<option value="" data-i18n="Default">Default</option>
<option value="en">en</option>
<option value="en">English</option>
</select>
</div>
<small id="version_display"></small>
@ -3244,7 +3277,7 @@
<i class="fa-solid fa-save"></i>
</div>
<div id="ui-preset-save-button" title="Save as a new theme" data-i18n="[title]Save as a new theme" class="menu_button margin0">
<i class="fa-solid fa-paste"></i>
<i class="fa-solid fa-file-circle-plus"></i>
</div>
</div>
</div>
@ -3277,6 +3310,10 @@
<toolcool-color-picker id="italics-color-picker"></toolcool-color-picker>
<span data-i18n="Italics Text">Italics Text</span>
</div>
<div class="flex-container">
<toolcool-color-picker id="underline-color-picker"></toolcool-color-picker>
<span data-i18n="Underlined Text">Underlined Text</span>
</div>
<div class="flex-container">
<toolcool-color-picker id="quote-color-picker"></toolcool-color-picker>
<span data-i18n="Quote Text">Quote Text</span>
@ -3569,7 +3606,7 @@
<span data-i18n="Spoiler Free Mode">Spoiler Free Mode</span>
</label>
</div>
<div name="ChatMessageHandlingToggles" >
<div name="ChatMessageHandlingToggles">
<h4 data-i18n="Chat/Message Handling">Chat/Message Handling</h4>
<div data-newbie-hidden class="flex-container alignitemscenter">
<span data-i18n="Send on Enter">
@ -3598,7 +3635,7 @@
<input id="swipes-checkbox" type="checkbox" />
<span data-i18n="Swipes">Swipes</span><i class="fa-solid fa-desktop"></i><i class="fa-solid fa-mobile-screen-button"></i>
</label>
<label data-newbie-hidden class="checkbox_label" for="gestures-checkbox" title="Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC.", data-i18n="[title]Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC">
<label data-newbie-hidden class="checkbox_label" for="gestures-checkbox" title="Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC." , data-i18n="[title]Allow using swiping gestures on the last in-chat message to trigger swipe generation. Mobile only, no effect on PC">
<input id="gestures-checkbox" type="checkbox" />
<span data-i18n="Gestures">Gestures</span>
<i class="fa-solid fa-mobile-screen-button"></i>
@ -3681,7 +3718,7 @@
</div>
</div>
<div data-newbie-hidden class="flex-container">
<div id="reload_chat" class="menu_button whitespacenowrap" data-i18n="[title]Reload and redraw the currently open chat" title="Reload and redraw the currently open chat." >
<div id="reload_chat" class="menu_button whitespacenowrap" data-i18n="[title]Reload and redraw the currently open chat" title="Reload and redraw the currently open chat.">
<span data-i18n="Reload Chat">Reload Chat</span>
</div>
<div id="debug_menu" class="menu_button whitespacenowrap" data-i18n="Debug Menu">
@ -3744,11 +3781,11 @@
</label>
<div id="extensions_details" class="menu_button_icon menu_button">
<i class="fa-solid fa-cubes"></i>
Manage extensions
<span data-i18n="Manage extensions">Manage extensions</span>
</div>
<div id="third_party_extension_button" title="Import Extension From Git Repo" class="menu_button menu_button_icon">
<div id="third_party_extension_button" title="Import Extension From Git Repo" data-i18n="[title]Import Extension From Git Repo" class="menu_button menu_button_icon">
<i class="fa-solid fa-cloud-arrow-down"></i>
Install extension
<span data-i18n="Install extension">Install extension</span>
</div>
</div>
<div id="extensions_settings" class="flex1 wide50p">
@ -3847,7 +3884,7 @@
<h4 data-i18n="Persona Description">Persona Description</h4>
<textarea id="persona_description" name="persona_description" data-i18n="[placeholder]Example: [{{user}} is a 28-year-old Romanian cat girl.]" placeholder="Example:&#10;[{{user}} is a 28-year-old Romanian cat girl.]" class="text_pole textarea_compact" maxlength="50000" value="" autocomplete="off" rows="8"></textarea>
<div class="extension_token_counter">
Tokens: <span id="persona_description_token_count">0</span>
<span data-i18n="Tokens persona description">Tokens</span>: <span id="persona_description_token_count">0</span>
</div>
<div data-newbie-hidden>
<label for="persona_description_position" data-i18n="Position:">Position:</label>
@ -3971,6 +4008,12 @@
<option id="renameCharButton" data-i18n="Rename">
Rename
</option>
<option id="character_source" data-i18n="Link to Source">
Link to Source
</option>
<option id="replace_update" data-i18n="Replace / Update">
Replace / Update
</option>
<!--<option id="dupe_button">
Duplicate
</option>
@ -3983,7 +4026,7 @@
</select>
</label>
</div>
<div id="tags_div" class="marginBot5">
<div id="tags_div">
<div class="tag_controls">
<input id="tagInput" class="text_pole tag_input wide100p margin0" data-i18n="[placeholder]Search / Create Tags" placeholder="Search / Create tags" maxlength="50" />
<div class="tags_view menu_button fa-solid fa-tags" title="View all tags" data-i18n="[title]View all tags"></div>
@ -3995,44 +4038,47 @@
</div>
</div>
<hr>
<div id="description_div" class="marginBot5 flex-container alignitemscenter">
<span data-i18n="Character Description">Description</span>
<i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="description_textarea" title="Expand the editor"></i>
<a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#character-description" class="notes-link" target="_blank">
<span class="fa-solid fa-circle-question note-link-span"></span>
</a>
<div id="spoiler_free_desc" class="flex-container flexFlowColumn flex1 flexNoGap">
<div id="creators_notes_div" class="title_restorable">
<span data-i18n="Creator's Notes">Creator's Notes</span>
<div id="spoiler_free_desc_button" class="margin0 menu_button fa-solid fa-eye" title="Show / Hide Description and First Message" data-i18n="[title]Show / Hide Description and First Message"></div>
</div>
<div id="creator_notes_spoiler" class="flex1"></div>
<!-- A button to show / hide description_div and description_textarea and first_message_div and firstmessage_textarea-->
</div>
<textarea id="description_textarea" data-i18n="[placeholder]Describe your character's physical and mental traits here." placeholder="Describe your character's physical and mental traits here." class="marginBot5" name="description" placeholder=""></textarea>
<div class="extension_token_counter">
Tokens: <span data-token-counter="description_textarea" data-token-permanent="true">counting...</span>
</div>
<div id="first_message_div" class="marginBot5 title_restorable">
<div class="flex-container alignitemscenter">
<span data-i18n="First message">First message</span>
<i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="firstmessage_textarea" title="Expand the editor"></i>
<a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#first-message" class="notes-link" target="_blank">
<div id="descriptionWrapper" class="flex-container flexFlowColumn flex1">
<hr>
<div id="description_div" class="marginBot5 flex-container alignitemscenter">
<span data-i18n="Character Description">Description</span>
<i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="description_textarea" title="Expand the editor"></i>
<a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#character-description" class="notes-link" target="_blank">
<span class="fa-solid fa-circle-question note-link-span"></span>
</a>
</div>
<div class="menu_button menu_button_icon open_alternate_greetings margin0" title="Click to set additional greeting messages" data-i18n="[title]Click to set additional greeting messages">
<span data-i18n="Alt. Greetings">
Alt. Greetings
</span>
<textarea id="description_textarea" data-i18n="[placeholder]Describe your character's physical and mental traits here." placeholder="Describe your character's physical and mental traits here." name="description" placeholder=""></textarea>
<div class="extension_token_counter">
Tokens: <span data-token-counter="description_textarea" data-token-permanent="true">counting...</span>
</div>
</div>
<textarea id="firstmessage_textarea" data-i18n="[placeholder]This will be the first message from the character that starts every chat." placeholder="This will be the first message from the character that starts every chat." class="marginBot5" name="first_mes" placeholder=""></textarea>
<div class="extension_token_counter">
Tokens: <span data-token-counter="firstmessage_textarea">counting...</span>
</div>
<div id="spoiler_free_desc">
<div id="creators_notes_div" class="marginBot5 title_restorable">
<span data-i18n="Creator's Notes">Creator's Notes</span>
<div id="spoiler_free_desc_button" class="menu_button fa-solid fa-eye" title="Show / Hide Description and First Message" data-i18n="[title]Show / Hide Description and First Message"></div>
</a>
<div id="firstMessageWrapper" class="flex-container flexFlowColumn flex1">
<div id="first_message_div" class="marginBot5 title_restorable">
<div class="flex-container alignitemscenter flex1">
<span data-i18n="First message">First message</span>
<i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="firstmessage_textarea" title="Expand the editor"></i>
<a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#first-message" class="notes-link" target="_blank">
<span class="fa-solid fa-circle-question note-link-span"></span>
</a>
</div>
<div class="menu_button menu_button_icon open_alternate_greetings margin0" title="Click to set additional greeting messages" data-i18n="[title]Click to set additional greeting messages">
<span data-i18n="Alt. Greetings">
Alt. Greetings
</span>
</div>
</div>
<textarea id="firstmessage_textarea" data-i18n="[placeholder]This will be the first message from the character that starts every chat." placeholder="This will be the first message from the character that starts every chat." name="first_mes" placeholder=""></textarea>
<div class="extension_token_counter">
Tokens: <span data-token-counter="firstmessage_textarea">counting...</span>
</div>
<hr>
<div id="creator_notes_spoiler" data-i18n="[placeholder]Creator's Notes" placeholder="Creator's Notes" class="marginBot5" name="creator_notes_spoiler"></div>
<!-- A button to show / hide description_div and description_textarea and first_message_div and firstmessage_textarea-->
</div>
<!-- these divs are invisible and used for server communication purposes -->
<div id="hidden-divs">
@ -4166,6 +4212,7 @@
<input multiple type="file" id="character_import_file" accept=".json, image/png, .yaml, .yml" name="avatar">
<input id="character_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</form>
<input type="file" id="character_replace_file" accept="image/png" name="replace_avatar" hidden>
</div>
<div name="Character List Panel" id="rm_characters_block" class="right_menu">
<div id="charListFixedTop">
@ -4196,9 +4243,9 @@
</div>
<div id="rm_print_characters_pagination">
<i id="charListGridToggle" class="fa-solid fa-table-cells-large menu_button" title="Toggle character grid view"></i>
<i id="bulkEditButton" class="fa-solid fa-edit menu_button bulkEditButton" title="Bulk edit characters"></i>
<i id="bulkDeleteButton" class="fa-solid fa-trash menu_button bulkDeleteButton" title="Bulk delete characters" style="display: none;"></i>
<i id="charListGridToggle" class="fa-solid fa-table-cells-large menu_button" title="Toggle character grid view" data-i18n="[title]Toggle character grid view"></i>
<i id="bulkEditButton" class="fa-solid fa-edit menu_button bulkEditButton" title="Bulk edit characters" data-i18n="[title]Bulk edit characters"></i>
<i id="bulkDeleteButton" class="fa-solid fa-trash menu_button bulkDeleteButton" title="Bulk delete characters" data-i18n="[title]Bulk delete characters" style="display: none;"></i>
</div>
<div id="rm_print_characters_block" class="flexFlowColumn"></div>
</div>
@ -4275,7 +4322,7 @@
</div>
<div class="flex-container flexnowrap">
<div class="flex1">
<h4 data-i18n="Creator's Notes">Creator's Notes</h4>
<h4 class="flex-box" data-i18n="Creator's Notes">Creator's Notes<i class="editor_maximize fa-solid fa-maximize" data-for="creator_notes_textarea" title="Expand the editor"></i></h4>
<textarea id="creator_notes_textarea" name="creator_notes" data-i18n="[placeholder](Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)" placeholder="(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)" form="form_create" class="text_pole" autocomplete="off" rows="4" maxlength="20000"></textarea>
</div>
<div class="flex1">
@ -4398,7 +4445,7 @@
<span id="ChatHistoryCharName"></span><span data-i18n="Chat History">Chat History</span>
<a href="https://docs.sillytavern.app/usage/core-concepts/chatfilemanagement/#chat-import" class="notes-link" target="_blank"><span class="fa-solid fa-circle-question note-link-span"></span></a>
</div>
<div id="newChatFromManageScreenButton" class="menu_button menu_button_icon" >
<div id="newChatFromManageScreenButton" class="menu_button menu_button_icon">
<i class="fa-solid fa-plus"></i>
<span data-i18n="New Chat">New Chat</span>
</div>
@ -4544,7 +4591,7 @@
<textarea class="text_pole autoSetHeight" name="comment" maxlength="5000" data-i18n="[placeholder]Entry Title/Memo" placeholder="Entry Title/Memo"></textarea>
</div>
<!-- <span class="world_entry_form_position_value"></span> -->
<select data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled" title="WI Entry Status:&#13;🔵 Constant&#13;🟢 Normal&#13;❌ Disabled" name="entryStateSelector" class="widthNatural margin0">
<select data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled" title="WI Entry Status:&#13;🔵 Constant&#13;🟢 Normal&#13;❌ Disabled" name="entryStateSelector" class="text_pole widthNatural margin0">
<option title="WI Entry Status:&#13;🔵 Constant&#13;🟢 Normal&#13;❌ Disabled" value="constant" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled">🔵</option>
<option title="WI Entry Status:&#13;🔵 Constant&#13;🟢 Normal&#13;❌ Disabled" value="normal" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled">🟢</option>
<option title="WI Entry Status:&#13;🔵 Constant&#13;🟢 Normal&#13;❌ Disabled" value="disabled" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled"></option>
@ -4553,7 +4600,7 @@
<div class="WIEnteryHeaderControls flex-container">
<div name="PositionBlock" class="world_entry_form_control world_entry_form_radios wi-enter-footer-text">
<label for="position" class="WIEntryHeaderTitleMobile" data-i18n="Position:">Position:</label>
<select name="position" class="widthNatural margin0" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions&#13;↓Char: After Character Definitions&#13;↑AN: Before Author's Note&#13;↓AN: After Author's Note&#13;@D: at Depth&#13;">
<select name="position" class="text_pole widthNatural margin0" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions&#13;↓Char: After Character Definitions&#13;↑AN: Before Author's Note&#13;↓AN: After Author's Note&#13;@D: at Depth&#13;">
<option value="0" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions&#13;↓Char: After Character Definitions&#13;↑AN: Before Author's Note&#13;↓AN: After Author's Note&#13;@D: at Depth&#13;"><span data-i18n="Before Char Defs">↑Char</span></option>
<option value="1" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions&#13;↓Char: After Character Definitions&#13;↑AN: Before Author's Note&#13;↓AN: After Author's Note&#13;@D: at Depth&#13;"><span data-i18n="After Char Defs">↓Char</span></option>
<option value="2" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions&#13;↓Char: After Character Definitions&#13;↑AN: Before Author's Note&#13;↓AN: After Author's Note&#13;@D: at Depth&#13;"><span data-i18n="Before AN">↑AN</span></option>
@ -4857,7 +4904,7 @@
<div class="mes_timer"></div>
<div class="tokenCounterDisplay"></div>
</div>
<div class="swipe_left fa-solid fa-chevron-left"></div>
<div class="swipe_left fa-solid fa-chevron-left" style="display: none;"></div>
<div class="mes_block">
<div class="ch_name flex-container justifySpaceBetween">
<div class="flex-container flex1 alignitemscenter">
@ -4873,7 +4920,7 @@
<div title="Translate message" class="mes_translate fa-solid fa-language" data-i18n="[title]Translate message"></div>
<div title="Generate Image" class="sd_message_gen fa-solid fa-paintbrush" data-i18n="[title]Generate Image"></div>
<div title="Narrate" class="mes_narrate fa-solid fa-bullhorn" data-i18n="[title]Narrate"></div>
<div title="Prompt" class="mes_prompt fa-solid fa-square-poll-horizontal " data-i18n="[title]Prompt"></div>
<div title="Prompt" class="mes_prompt fa-solid fa-square-poll-horizontal " data-i18n="[title]Prompt" style="display: none;"></div>
<div title="Exclude message from prompts" class="mes_hide fa-solid fa-eye" data-i18n="[title]Exclude message from prompts"></div>
<div title="Include message in prompts" class="mes_unhide fa-solid fa-eye-slash" data-i18n="[title]Include message in prompts"></div>
<div title="Embed file or image" class="mes_embed fa-solid fa-paperclip" data-i18n="[title]Embed file or image"></div>
@ -4905,7 +4952,7 @@
</div>
<div class="mes_bias"></div>
</div>
<div class="swipe_right fa-solid fa-chevron-right">
<div class="swipe_right fa-solid fa-chevron-right" style="display: none;">
<div class="swipes-counter"></div>
</div>
</div>
@ -5527,12 +5574,14 @@
toastr.options.positionClass = "toast-top-center"; // Where to position the toast container
</script>
<script>
const documentHeight = () => {
const doc = document.documentElement
doc.style.setProperty('--doc-height', `${window.innerHeight}px`)
}
window.addEventListener('resize', documentHeight)
documentHeight()
window.addEventListener('load', (event) => {
const documentHeight = () => {
const doc = document.documentElement;
doc.style.setProperty('--doc-height', `${window.innerHeight}px`);
}
window.addEventListener('resize', documentHeight);
documentHeight();
});
</script>
</body>

View File

@ -0,0 +1,18 @@
{
"system_prompt": "You are an intelligent, skilled, versatile writer.\n\nYour task is to write a role-play based on the information below.",
"input_sequence": "<|im_end|>\n<|im_start|>text names= {{user}}\n",
"output_sequence": "<|im_end|>\n<|im_start|>text names= {{char}}\n",
"first_output_sequence": "",
"last_output_sequence": "",
"system_sequence_prefix": "",
"system_sequence_suffix": "",
"stop_sequence": "",
"separator_sequence": "",
"wrap": false,
"macro": true,
"names": false,
"names_force_groups": false,
"activation_regex": "",
"skip_examples": false,
"name": "DreamGen Role-Play V1"
}

View File

@ -23,7 +23,8 @@
"handlebars",
"highlight.js",
"localforage",
"pdfjs-dist"
"pdfjs-dist",
"@mozilla/readability"
]
}
}

View File

@ -0,0 +1,108 @@
/*
* Copyright (c) 2010 Arc90 Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* This code is heavily based on Arc90's readability.js (1.7.1) script
* available at: http://code.google.com/p/arc90labs-readability
*/
var REGEXPS = {
// NOTE: These two regular expressions are duplicated in
// Readability.js. Please keep both copies in sync.
unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,
okMaybeItsACandidate: /and|article|body|column|content|main|shadow/i,
};
function isNodeVisible(node) {
// Have to null-check node.style and node.className.indexOf to deal with SVG and MathML nodes.
return (!node.style || node.style.display != "none")
&& !node.hasAttribute("hidden")
//check for "fallback-image" so that wikimedia math images are displayed
&& (!node.hasAttribute("aria-hidden") || node.getAttribute("aria-hidden") != "true" || (node.className && node.className.indexOf && node.className.indexOf("fallback-image") !== -1));
}
/**
* Decides whether or not the document is reader-able without parsing the whole thing.
* @param {Object} options Configuration object.
* @param {number} [options.minContentLength=140] The minimum node content length used to decide if the document is readerable.
* @param {number} [options.minScore=20] The minumum cumulated 'score' used to determine if the document is readerable.
* @param {Function} [options.visibilityChecker=isNodeVisible] The function used to determine if a node is visible.
* @return {boolean} Whether or not we suspect Readability.parse() will suceeed at returning an article object.
*/
function isProbablyReaderable(doc, options = {}) {
// For backward compatibility reasons 'options' can either be a configuration object or the function used
// to determine if a node is visible.
if (typeof options == "function") {
options = { visibilityChecker: options };
}
var defaultOptions = { minScore: 20, minContentLength: 140, visibilityChecker: isNodeVisible };
options = Object.assign(defaultOptions, options);
var nodes = doc.querySelectorAll("p, pre, article");
// Get <div> nodes which have <br> node(s) and append them into the `nodes` variable.
// Some articles' DOM structures might look like
// <div>
// Sentences<br>
// <br>
// Sentences<br>
// </div>
var brNodes = doc.querySelectorAll("div > br");
if (brNodes.length) {
var set = new Set(nodes);
[].forEach.call(brNodes, function (node) {
set.add(node.parentNode);
});
nodes = Array.from(set);
}
var score = 0;
// This is a little cheeky, we use the accumulator 'score' to decide what to return from
// this callback:
return [].some.call(nodes, function (node) {
if (!options.visibilityChecker(node)) {
return false;
}
var matchString = node.className + " " + node.id;
if (REGEXPS.unlikelyCandidates.test(matchString) &&
!REGEXPS.okMaybeItsACandidate.test(matchString)) {
return false;
}
if (node.matches("li p")) {
return false;
}
var textContentLength = node.textContent.trim().length;
if (textContentLength < options.minContentLength) {
return false;
}
score += Math.sqrt(textContentLength - options.minContentLength);
if (score > options.minScore) {
return true;
}
return false;
});
}
if (typeof module === "object") {
/* global module */
module.exports = isProbablyReaderable;
}

2314
public/lib/Readability.js Normal file

File diff suppressed because it is too large Load Diff

863
public/locales/ar-sa.json Normal file
View File

@ -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": "قواعد اللغة الباكوسية",
"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_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)": "(فقط عند استخدام 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.": "استخدم علامات النمط لتعديل نمط الكتابة النهائية.",
"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 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": "",
"Make sure you run it with": "تأكد من تشغيله مع",
"flag": "وضع علامة",
"API key (optional)": "مفتاح API (اختياري)",
"Server url": "رابط الخادم",
"Custom model (optional)": "نموذج مخصص (اختياري)",
"Bypass API status check": "تجاوز فحص حالة واجهة برمجة التطبيقات",
"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)": "واجهة برمجة التطبيقات القديمة (قبل 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": "عرض مقاييس استخدام واجهة برمجة التطبيقات",
"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": "عرض مفاتيح واجهة برمجة التطبيقات المخفية",
"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": "نموذج مانسر",
"API Type": "نوع واجهة برمجة التطبيقات",
"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.": "تجنب إرسال معلومات حساسة إلى الجماعة.",
"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 ↘": "معرف فريد ↘",
"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": "↑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)": "فاصلة مفصولة (مطلوب)",
"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": "تصدير ملف موضوع"
}

2
public/locales/en.json Normal file
View File

@ -0,0 +1,2 @@
{
}

164
public/locales/es-es.json Normal file
View File

@ -0,0 +1,164 @@
{
"UI Language": "Idioma de la interfaz",
"clickslidertips": "Haz click en el número al lado de la barra \npara seleccionar un número manualmente.",
"kobldpresets": "Configuraciones de KoboldAI",
"guikoboldaisettings": "Configuración actual de la interfaz de KoboldAI",
"novelaipreserts": "Configuraciones de NovelAI",
"default": "Predeterminado",
"openaipresets": "Configuraciones de OpenAI",
"text gen webio(ooba) presets": "Configuraciones de WebUI(ooba)",
"response legth(tokens)": "Largo de la respuesta de la IA (en Tokens)",
"select": "Seleccionar",
"context size(tokens)": "Tamaño del contexto (en Tokens)",
"unlocked": "Desbloqueado",
"Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Solo algunos modelos tienen soporte para tamaños de más de 4096 tokens. Procede solo si sabes lo que estás haciendo.",
"rep.pen": "Rep. Pen.",
"rep.pen range": "Rango de Rep. Pen.",
"temperature": "Temperature",
"Encoder Rep. Pen.": "Encoder Rep. Pen.",
"No Repeat Ngram Size": "No Repeat Ngram Size",
"Min Length": "Largo mínimo",
"OpenAI Reverse Proxy": "Reverse Proxy de OpenAI",
"Alternative server URL (leave empty to use the default value).": "URL del server alternativo (deja vacío para usar el predeterminado)",
"Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Borra tu clave(API) real de OpenAI ANTES de escribir nada en este campo.",
"We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "SillyTaven no puede dar soporte por problemas encontrados durante el uso de un proxy no-oficial de OpenAI",
"Legacy Streaming Processing": "Processo Streaming Legacy",
"Enable this if the streaming doesn't work with your proxy": "Habilita esta opción si el \"streaming\" no está funcionando.",
"Context Size (tokens)": "Tamaño del contexto (en Tokens)",
"Max Response Length (tokens)": "Tamaño máximo (en Tokens)",
"Temperature": "Temperatura",
"Frequency Penalty": "Frequency Penalty",
"Presence Penalty": "Presence Penalty",
"Top-p": "Top-p",
"Display bot response text chunks as they are generated": "Muestra el texto poco a poco al mismo tiempo que es generado.",
"Top A": "Top-a",
"Typical Sampling": "Typical Sampling",
"Tail Free Sampling": "Tail Free Sampling",
"Rep. Pen. Slope": "Rep. Pen. Slope",
"Single-line mode": "Modo \"Solo una línea\"",
"Top K": "Top-k",
"Top P": "Top-p",
"Do Sample": "Do Sample",
"Add BOS Token": "Añadir BOS Token",
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "Añade el \"bos_token\" al inicio del prompt. Desabilitar esto puede hacer las respuestas de la IA más creativas",
"Ban EOS Token": "Prohibir EOS Token",
"Ban the eos_token. This forces the model to never end the generation prematurely": "Prohibe el \"eos_token\". Esto obliga a la IA a no terminar su generación de forma prematura",
"Skip Special Tokens": "Saltarse Tokens Especiales",
"Beam search": "Beam Search",
"Number of Beams": "Number of Beams",
"Length Penalty": "Length Penalty",
"Early Stopping": "Early Stopping",
"Contrastive search": "Contrastive search",
"Penalty Alpha": "Penalty Alpha",
"Seed": "Seed",
"Inserts jailbreak as a last system message.": "Inserta el \"jailbreak\" como el último mensaje del Sistema",
"This tells the AI to ignore its usual content restrictions.": "Esto ayuda a la IA para ignorar sus restricciones de contenido",
"NSFW Encouraged": "Alentar \"NSFW\"",
"Tell the AI that NSFW is allowed.": "Le dice a la IA que el contenido NSFW (+18) está permitido",
"NSFW Prioritized": "Priorizar NSFW",
"NSFW prompt text goes first in the prompt to emphasize its effect.": "El \"prompt NSFW\" va antes para enfatizar su efecto",
"Streaming": "Streaming",
"Display the response bit by bit as it is generated.": "Enseña el texto poco a poco mientras es generado",
"When this is off, responses will be displayed all at once when they are complete.": "Cuando esto está deshabilitado, las respuestas se mostrarán de una vez cuando la generación se haya completado",
"Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Genera solo una línea por solicitud (solo KoboldAI, ignorada por KoboldCpp).",
"Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Prohibir el token de fin de secuencia (EOS) (con KoboldCpp, y posiblemente también otros tokens con KoboldAI).",
"Good for story writing, but should not be used for chat and instruct mode.": "Bueno para escribir historias, pero no debe usarse para chatear ni para el modo de instrucción.",
"Enhance Definitions": "Definiciones Mejoradas",
"Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Usa el conocimiento de OpenAI (GPT 3.5, GPT 4, ChatGPT) para mejorar las definiciones de figuras públicas y personajes ficticios",
"Wrap in Quotes": "Envolver En Comillas",
"Wrap entire user message in quotes before sending.": "Envuelve todo el mensaje en comillas antes de enviar",
"Leave off if you use quotes manually for speech.": "Déjalo deshabilitado si usas comillas manualmente para denotar diálogo",
"Main prompt": "Prompt Principal",
"The main prompt used to set the model behavior": "El prompt principal usado para definir el comportamiento de la IA",
"NSFW prompt": "Prompt NSFW",
"Prompt that is used when the NSFW toggle is on": "Prompt que es utilizado cuando \"Alentar NSFW\" está activado",
"Jailbreak prompt": "Jailbreak prompt",
"Prompt that is used when the Jailbreak toggle is on": "Prompt que es utilizado cuando Jailbreak Prompt está activado",
"Impersonation prompt": "Prompt \"Impersonar\"",
"Prompt that is used for Impersonation function": "Prompt que es utilizado para la función \"Impersonar\"",
"Restore default prompt": "Restaurar el prompt por defecto",
"Logit Bias": "Logit Bias",
"Helps to ban or reenforce the usage of certain words": "Ayuda a prohibir o alentar el uso de algunas palabras",
"View / Edit bias preset": "Ver/Editar configuración de \"Logit Bias\"",
"Add bias entry": "Añadir bias",
"Jailbreak activation message": "Mensaje de activación de Jailbrak",
"Message to send when auto-jailbreak is on.": "Mensaje enviado cuando auto-jailbreak está activado",
"Jailbreak confirmation reply": "Mensaje de confirmación de Jailbreak",
"Bot must send this back to confirm jailbreak": "La IA debe enviar un mensaje para confirmar el jailbreak",
"Character Note": "Nota del personaje",
"Influences bot behavior in its responses": "Influencia el comportamiento de la IA y sus respuestas",
"API": "API",
"KoboldAI": "KoboldAI",
"Use Horde": "Usar AI Horde de KoboldAI",
"API url": "URL de la API",
"Register a Horde account for faster queue times": "Regístrate en KoboldAI para conseguir respuestas más rápido",
"Learn how to contribute your idle GPU cycles to the Hord": "Aprende cómo contribuir a AI Horde con tu GPU",
"Adjust context size to worker capabilities": "Ajustar tamaño del contexto a las capacidades del trabajador",
"Adjust response length to worker capabilities": "Ajustar tamaño de la respuesta a las capacidades del trabajador",
"API key": "API key",
"Register": "Registrarse",
"For privacy reasons": "Por motivos de privacidad, tu API será ocultada cuando se vuelva a cargar la página",
"Model": "Modelo IA",
"Hold Control / Command key to select multiple models.": "Presiona Ctrl/Command Key para seleccionar multiples modelos",
"Horde models not loaded": "Modelos del Horde no cargados",
"Not connected": "Desconectado",
"Novel API key": "API key de NovelAI",
"Follow": "Sigue",
"these directions": "estas instrucciones",
"to get your NovelAI API key.": "para conseguir tu NovelAI API key",
"Enter it in the box below": "Introduce tu clave API de OpenAI en el siguiente campo",
"Novel AI Model": "Modelo IA de NovelAI",
"No connection": "Desconectado",
"oobabooga/text-generation-webui": "oobabooga/text-generation-webui",
"Make sure you run it with": "Asegúrate de usar el argumento --extensions openai cuando se ejecute",
"Blocking API url": "API URL",
"Streaming API url": "Streaming API URL",
"to get your OpenAI API key.": "para conseguir tu clave API de OpenAI",
"OpenAI Model": "Modelo AI de OpenAI",
"View API Usage Metrics": "Ver métricas de uso de la API",
"Bot": "Bot",
"Auto-connect to Last Server": "Auto-conectarse con el último servidor",
"View hidden API keys": "Ver claves API ocultas",
"Advanced Formatting": "Formateo avanzado",
"AutoFormat Overrides": "Autoformateo de overrides",
"Samplers Order": "Orden de Samplers",
"Samplers will be applied in a top-down order. Use with caution.": "Los Samplers serán aplicados de orden superior a inferior. \nUsa con precaución",
"Load koboldcpp order": "Cargar el orden de koboldcpp",
"Unlocked Context Size": "Desbloquear Tamaño Del Contexto",
"Unrestricted maximum value for the context slider": "Desbloquea el Tamaño máximo del contexto. Solo habilita esto si sabes lo que estás haciendo.",
"Quick Edit": "Editor Rápido de Prompts",
"Main": "Principal",
"Assistant Prefill": "Prefijo del Asistente",
"Start Claude's answer with...": "Inicia la respuesta de Claude con...",
"Utility Prompts": "Indicaciones Útiles",
"World Info Format Template": "Plantilla para formato de World Info",
"NSFW avoidance prompt": "Prompt para evitar NSFW",
"Prompt that is used when the NSFW toggle is O": "Prompt utilizado para evitar NSFW cuando \"Alentar NSFW\" está deshabilitado",
"Wraps activated World Info entries before inserting into the prompt.": "Envuelve las entradas activadas de World Info antes de insertarlas en el prompt.",
"New Chat": "Chat Nuevo",
"Set at the beginning of the chat history to indicate that a new chat is about to start.": "Colocado al inicio del historial de chat para indicar que un nuevo chat va a comenzar.",
"New Group Chat": "Nuevo Chat Grupal",
"Set at the beginning of the chat history to indicate that a new group chat is about to start.": "Colocado al inicio del historial de chat para indicarle a la IA que un nuevo Chat Grupal va a comenzar",
"New Example Chat": "Nuevo Ejemplo De Chat",
"Add character names": "Incluír nombre del personaje",
"Send names in the ChatML objects.": "Envía los mensajes al objeto ChatML. Ayuda a la IA a asociar mensajes con nombres en un chat grupal.",
"Proxy Password": "Contraseña del Proxy",
"Will be used as a password for the proxy instead of API key.": "Será utilizado como contraseña del proxy en vez de la clave API.",
"Chat Completion Source": "Fuente de Chat",
"Use Proxy password field instead. This input will be ignored.": "Utiliza el campo de Contraseña del Proxy. Lo que pongas aquí será ignorado.",
"Show External models (provided by API)": "Mostrar modelos externos (Proveídos por la API)",
"Connect": "Conectarse",
"[title]Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Verifica que tu conexión con la API enviando un mensaje corto. ¡Ten en cuenta que se te cobrará por ello!",
"Continue nudge": "Empujuón para continuar",
"Replace empty message": "Reemplazar mensaje vacío",
"Send this text instead of nothing when the text box is empty.": "Envía este mensaje en vez de nada cuando la barra de chat está vacía",
"No connection...": "Sin conexión...",
"Avoid sending sensitive information to the Horde.": "No envíes información personal a Horde.",
"Review the Privacy statement": "Revisa el aviso de privacidad",
"Learn how to contribute your idle GPU cycles to the Horde": "Aprende como contribuír a Horde con tu GPU.",
"Trusted workers only": "Solo trabajadores de confianza",
"API Key": "Clave API",
"Get it here:": "Consíguela aquí:",
"View my Kudos": "Ver mis Kudos",
"Models": "Modelos IA"
}

862
public/locales/fr-fr.json Normal file
View File

@ -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"
}

863
public/locales/is-is.json Normal file
View File

@ -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á"
}

759
public/locales/it-it.json Normal file
View File

@ -0,0 +1,759 @@
{
"clickslidertips": "consigli per gli slider",
"kobldpresets": "Preset Kobold",
"guikoboldaisettings": "settaggi KoboldAI",
"novelaipreserts": "Preset NovelAI",
"default": "default",
"openaipresets": "Preset OpenAI",
"text gen webio(ooba) presets": "Preset text gen webio(ooba)",
"response legth(tokens)": "lunghezza risposta (in Token)",
"select": "seleziona",
"context size(tokens)": "dimensione contesto (in Token)",
"unlocked": "Sblocca",
"Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Seleziona il supporto ai modls soltanto se le dimenzioni contesto sono più grandi di 4096 token. Procedi soltanto se sai cosa stai facendo.",
"rep.pen": "rep.pen",
"rep.pen range": "rep.pen range",
"temperature": "temperature",
"Encoder Rep. Pen.": "Encoder Rep. Pen.",
"No Repeat Ngram Size": "Dimensione N-gramma senza ripetizioni",
"Min Length": "lunghezza minima",
"OpenAI Reverse Proxy": "OpenAI Reverse Proxy",
"Alternative server URL (leave empty to use the default value).": "URL del server alternativo (lasciare il campo vuoto per i valori predefiniti).",
"Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Rimuovi la chiave API di OpenAI dal pannello API PRIMA di scrivere qualsiasi cosa in questa casella",
"We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "Non possiamo offrire supporto per problemi incontrati durante l'utilizzo di un proxy non ufficiale di OpenAI",
"Legacy Streaming Processing": "Processo Streaming Legacy",
"Enable this if the streaming doesn't work with your proxy": "Spunta la casella se lo streaming non funziona con il tuo proxy.",
"Context Size (tokens)": "Grandezza del contesto (in Token)",
"Max Response Length (tokens)": "Lunghezza risposta massima (in Token)",
"Temperature": "Temperature",
"Frequency Penalty": "Frequency Penalty",
"Presence Penalty": "Presence Penalty",
"Top-p": "Top-p",
"Display bot response text chunks as they are generated": "Mostra la risposta del bot mano a mano che viene generata.",
"Top A": "Top A",
"Typical Sampling": "Typical Sampling",
"Tail Free Sampling": "Tail Free Sampling",
"Rep. Pen. Slope": "Rep. Pen. Slope",
"Single-line mode": "Single-line mode",
"Top K": "Top K",
"Top P": "Top P",
"Typical P": "Typical P",
"Do Sample": "Do Sample",
"Add BOS Token": "Aggiungi BOS Token",
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "Aggiungi bos_token all'inizio di un prompt. Disattivarlo potrebbe rendere le risposte più creative.",
"Ban EOS Token": "Blocca EOS Token",
"Ban the eos_token. This forces the model to never end the generation prematurely": "Blocca eos_token. Questo costringe il modello a non concludere prematuramente la generazione del testo.",
"Skip Special Tokens": "Salta Token speciali",
"Beam search": "Ricerca Beam",
"Number of Beams": "Numero di Beam",
"Length Penalty": "Length Penalty",
"Early Stopping": "Early Stoppinga",
"Contrastive search": "Contrastive search",
"Penalty Alpha": "Penalty Alpha",
"Seed": "Seed",
"Inserts jailbreak as a last system message.": "Inserisci il Jailbreak come ultimo messaggio di sistema.",
"This tells the AI to ignore its usual content restrictions.": "Questo suggerisce alla IA di ignorare le restrizioni contestualizzate nella chat.",
"NSFW Encouraged": "Stimolare le risposte NSFW",
"Tell the AI that NSFW is allowed.": "Dice all'IA che il materiale NSFW è permesso.",
"NSFW Prioritized": "Dai la precedenza al materiale NSFW",
"NSFW prompt text goes first in the prompt to emphasize its effect.": "Il prompt NSFW viene inviato per prima per enfatizzarne l'effetto.",
"Streaming": "Streaming",
"Display the response bit by bit as it is generated.": "Mostra la risposta mano a mano che viene generata.",
"When this is off, responses will be displayed all at once when they are complete.": "Quando questa casella è disattivata, le risposte vengono mostrate soltanto una volta che il testo è stato ultimato.",
"Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Genera solo una riga per richiesta (solo KoboldAI, ignorata da KoboldCpp).",
"Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Bandire il token End-of-Sequence (EOS) (con KoboldCpp, ed eventualmente anche altri token con KoboldAI).",
"Good for story writing, but should not be used for chat and instruct mode.": "Buono per scrivere storie, ma non dovrebbe essere usato per la modalità chat e istruzioni.",
"Enhance Definitions": "Migliora le definizioni",
"Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Usa la conoscenza di OpenAI per migliorare le definizioni di personaggi pubblici e personaggi immaginari famosi.",
"Wrap in Quotes": "Invia i messaggi tra virgolette",
"Wrap entire user message in quotes before sending.": "Tutti i messaggi verranno inviati sotto forma di dialogo prima di inviarli.",
"Leave off if you use quotes manually for speech.": "Lascia perdere questa opzione se scrivi già da te le citazioni per rappresentare i dialoghi.",
"Main prompt": "Prompt principale",
"The main prompt used to set the model behavior": "Il prompt principale usato come base per il comportamento del modello.",
"NSFW prompt": "Prompt NSFW",
"Prompt that is used when the NSFW toggle is on": "Prompt utilizzato quando l'opzione NSFW è attiva.",
"Jailbreak prompt": "Jailbreak prompt",
"Prompt that is used when the Jailbreak toggle is on": "Prompt utilizzato quando l'opzione Jailbreak è attiva.",
"Impersonation prompt": "Prompt per l'impersonificazione dell'utente",
"Prompt that is used for Impersonation function": "Prompt utilizzato per la funzione di impersonificazione dell'utente",
"Logit Bias": "Logit Bias",
"Helps to ban or reenforce the usage of certain words": "Aiuta a disincentivare o rinforzare l'utilizzo di alcuni tipi di parole.",
"View / Edit bias preset": "Mostra / Modifica bias preset",
"Add bias entry": "Aggiungi voce bias",
"Jailbreak activation message": "Messaggio d'attivazione del Jailbreak",
"Message to send when auto-jailbreak is on.": "Messaggio da inviare quando l'auto-jailbreak è attivato",
"Jailbreak confirmation reply": "Risposta di conferma per il Jailbreak",
"Bot must send this back to confirm jailbreak": "Il bot deve inviare questa risposta per confermare il Jailbreak",
"Character Note": "Note del personaggio",
"Influences bot behavior in its responses": "Influenza il comportamento del bot nelle sue risposte",
"API": "API",
"KoboldAI": "KoboldAI",
"Use Horde": "Usa Horde",
"API url": "Url API",
"Register a Horde account for faster queue times": "Crea un account Horde per tempi di attesa più brevi",
"Learn how to contribute your idle GPU cycles to the Hord": "Impara come utilizzare i tuoi cicli GPU in idle per contribuire a Horde",
"Adjust context size to worker capabilities": "Sistema la grandezza del contesto alle sue capacità operazionali",
"Adjust response length to worker capabilities": "Sistema la lunghezza della risposta alle sue capacità operazionali",
"API key": "Chiave API",
"Register": "Registrati",
"For privacy reasons": "Per motivi di privacy",
"Model": "Modello",
"Hold Control / Command key to select multiple models.": "Mantieni premuto il tasto Control / Comando per selezionare modelli multipli.",
"Horde models not loaded": "Modelli Horde non caricati",
"Not connected": "Non connesso",
"Novel API key": "NovelAI API key",
"Follow": "Segui",
"these directions": "questi suggerimenti",
"to get your NovelAI API key.": "per ottenere la chiave API di NovelAI.",
"Enter it in the box below": "Inserisci la chiave all'interno della casella qui sotto",
"Novel AI Model": "Modello di NovelAI",
"Euterpe": "Euterpe",
"Krake": "Krake",
"No connection": "Nessuna connessione",
"oobabooga/text-generation-webui": "oobabooga/text-generation-webui",
"Make sure you run it with": "assicurati di farlo partire con --extensions openai",
"Blocking API url": "Blocca l'indirizzo API",
"Streaming API url": "Streaming dell'indirizzo API",
"to get your OpenAI API key.": "per ottenere la tua chiave API di OpenAI.",
"OpenAI Model": "Modello di OpenAI",
"View API Usage Metrics": "Mostra le metriche di utilizzo delle API",
"Bot": "Bot",
"Connect to the API": "Connettiti alle API",
"Auto-connect to Last Server": "Connessione automatica all'ultimo server",
"View hidden API keys": "Mostra le chiavi API nascoste",
"Advanced Formatting": "Formattazione avanzata",
"AutoFormat Overrides": "Sovrascrittura AutoFormat",
"Disable description formatting": "Disattiva la formattazione della descrizione",
"Disable personality formatting": "Disattiva la formattazione della personalità",
"Disable scenario formatting": "Disattiva la formattazione dello scenario",
"Disable example chats formatting": "Disattiva la formattazione degli esempi di chat",
"Disable chat start formatting": "Disattiva la formattazione della chat iniziale",
"Custom Chat Separator": "Separatore di chat personalizzato",
"Instruct mode": "Modalità istruzione",
"Enabled": "Attiva",
"Wrap Sequences with Newline": "Ogni sequenza viene rimandata a capo",
"Include Names": "Includi i nomi",
"System Prompt": "Prompt di sistema",
"Instruct Mode Sequences": "Sequenze in modalità istruzione",
"Input Sequence": "Sequenza di input",
"First Output Sequence": "Prima sequenza di output",
"Last Output Sequence": "Ultima sequenza di output",
"System Sequence Prefix": "Prefisso sequenza di sistema",
"System Sequence Suffix": "Suffisso della sequenza del sistema",
"Stop Sequence": "Sequenza d'arresto",
"Context Formatting": "Formattazione del contesto",
"Tokenizer": "Tokenizer",
"None / Estimated": "None / Estimated",
"Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)",
"Token Padding": "Token Padding",
"Always add character's name to prompt": "Aggiungi sempre il nome del personaggio al prompt",
"Keep Example Messages in Prompt": "Mantieni i messaggi d'esempio dal prompt",
"Remove Empty New Lines from Output": "Rimuovi le linee di testo vuote dall'output",
"Pygmalion Formatting": "Formattazione Pygmalion",
"Disabled for all models": "Disattiva per tutti i modelli",
"Automatic (based on model name)": "Automatico (basato sul nome del modello)",
"Enabled for all models": "Attiva per tutti i modelli",
"Multigen": "Multigen",
"First chunk (tokens)": "Primo pacchetto in Token",
"Next chunks (tokens)": "Pacchetto successivo in Token",
"Anchors Order": "Anchors Order",
"Character then Style": "Prima il personaggio, successivamente lo stile",
"Style then Character": "Prima lo stile, successivamente il personaggio",
"Character Anchor": "Character Anchor",
"Style Anchor": "Style Anchor",
"World Info": "'Info Mondo'",
"Scan Depth": "Profondità della scansione",
"depth": "Profondità",
"Token Budget": "Budget per i Token",
"budget": "budget",
"Recursive scanning": "Analisi ricorsiva",
"None": "None",
"User Settings": "Settaggi utente",
"UI Customization": "Personalizzazione UI",
"Avatar Style": "Stile avatar",
"Circle": "Cerchio",
"Rectangle": "Rettangolo",
"Chat Style": "Stile della Chat",
"Default": "Predefinito",
"Bubbles": "Bolle",
"Chat Width (PC)": "Lunghezza della chat (PC)",
"No Blur Effect": "Nessun effetto sfocatura",
"No Text Shadows": "Nessuna ombreggiatura testo",
"Waifu Mode": "♡ Modalità Waifu ♡",
"Message Timer": "Timer messaggio",
"Characters Hotswap": "Hotswap personaggi",
"Movable UI Panels": "Pannelli UI movibili",
"Reset Panels": "Ripristina i pannelli",
"UI Colors": "Colori UI",
"Main Text": "Testo principale",
"Italics Text": "Testo in Italic",
"Quote Text": "Testo citato",
"Shadow Color": "Colore ombreggiatura",
"FastUI BG": "FastUI BG",
"Blur Tint": "Tinta sfocatura",
"Font Scale": "Grandezza font",
"Blur Strength": "Intensità sfocatura",
"Text Shadow Width": "Larghezza ombreggiatura testo",
"UI Theme Preset": "Tema UI",
"Power User Options": "Opzioni utente avanzate",
"Swipes": "Swipes",
"Background Sound Only": "Soltanto suono di background",
"Auto-load Last Chat": "Carica automaticamente l'ultima chat",
"Auto-save Message Edits": "Salva automaticamente i messaggi editati",
"Auto-fix Markdown": "Correggi automaticamente il testo per la formattazione in Markdown",
"Allow {{char}}: in bot messages": "Permetti {{char}} nei messaggi del bot",
"Allow {{user}}: in bot messages": "Permetti {{user}} nei messaggi del bot",
"Auto-scroll Chat": "scorrimento automatico della chat",
"Render Formulas": "Renderizza le formule",
"Send on Enter": "Inoltrare premendo Invio",
"Always disabled": "Sempre disattivato",
"Automatic (desktop)": "Automatico (desktop)",
"Always enabled": "Sempre attivato",
"Name": "Nome",
"Your Avatar": "Il tuo avatar",
"Extensions API:": "Estensioni API aggiuntive:",
"SillyTavern-extras": "SillyTavern-extras",
"Auto-connect": "Connessione automatica",
"Active extensions": "Estensione attiva",
"Extension settings": "Estensione delle impostazioni",
"Description": "Descrizione",
"First message": "Messaggio iniziale",
"Group Controls": "Controlli del gruppo",
"Group reply strategy": "Organizzazione per le risposte del gruppo",
"Natural order": "Ordine naturale",
"List order": "Ordine lista",
"Allow self responses": "Permetti risposta automatica",
"Auto Mode": "Modalità automatica",
"Add Members": "Aggiungi membri",
"Current Members": "Membri correnti",
"text": "Testo",
"Delete": "Elimina",
"Cancel": "Cancella",
"Advanced Defininitions": "Definizioni avanzate",
"Personality summary": "Riassunto della personalità",
"A brief description of the personality": "Una breve descrizione della personalità",
"Scenario": "Scenario",
"Circumstances and context of the dialogue": "Circostanza e contesto del dialogo",
"Talkativeness": "Loquacità",
"How often the chracter speaks in": "Determina la frequenza con la quale il personaggio parla all'interno",
"group chats!": "delle chat di gruppo!",
"Shy": "Timido",
"Normal": "Normale",
"Chatty": "Loquace",
"Examples of dialogue": "Esempi di dialogo",
"Forms a personality more clearly": "Aiuta a formare una personalità in maniera più distinta",
"Save": "Salva",
"World Info Editor": "Editor 'Info Mondo'",
"New Entry": "Nuova voce",
"Export": "Esporta",
"Delete World": "Elimina mondo",
"Chat History": "Cronologia chat",
"Group Chat Scenario Override": "Sovrascrittura dello scenario della chat di gruppo",
"All group members will use the following scenario text instead of what is specified in their character cards.": "Tutti i membri del gruppo useranno il seguente scenario invece di quello specificato nella carta dei personaggi",
"Keywords": "Parole chiave",
"Separate with commas": "Separa con delle virgolette",
"Secondary Required Keywords": "Parole chiave accessorie",
"Content": "Contenuto",
"What this keyword should mean to the AI": "Questa parola chiave cosa dovrebbe significare per L'IA",
"Memo/Note": "Memo/Note",
"Not sent to AI": "Non inviato all'IA",
"Constant": "Costante",
"Selective": "Selettivo",
"Before Char": "Prima di Char",
"After Char": "Dopo Char",
"Insertion Order": "Ordine di inserimento",
"Tokens:": "Token",
"Disable": "Disattiva",
"${characterName}": "${nomePersonaggio}",
"CHAR": "CHAR",
"is typing": "sta scrivendo...",
"Back to parent chat": "Torna indietro nella chat collegata a questa",
"Save bookmark": "Salva nei preferiti",
"Convert to group": "Converti in gruppo",
"Start new chat": "Inizia una nuova chat",
"View past chats": "Mostra chat passate",
"Delete messages": "Elimina messaggi",
"Impersonate": "Impersona",
"Regenerate": "Rigenera",
"PNG": "PNG",
"JSON": "JSON",
"WEBP": "WEBP",
"presets": "preset",
"Message Sound": "Suono del messaggio",
"Author's Note": "Note d'autore",
"Send Jailbreak": "Invia il Jailbreak",
"Replace empty message": "Sostituisci i messaggi vuoti",
"Send this text instead of nothing when the text box is empty.": "Quando il campo di testo è vuoto, invia invece questo messaggio.",
"NSFW avoidance prompt": "NSFW avoidance prompt",
"Prompt that is used when the NSFW toggle is off": "Prompt utilizzato quando la casella NSFW è disattivata.",
"Advanced prompt bits": "Advanced prompt bits",
"World Info format template": "Formato template 'Info Mondo'",
"Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Seleziona le informazioni del mondo attualmente attive prima di inserirle nel prompt. Usa {0} per segnalare dove vuoi che il contenuto venga inserito all'interno del prompt.",
"Unrestricted maximum value for the context slider": "Valore massimo illimitato per la grandezza del contesto.",
"Chat Completion Source": "Sorgente IA per la Chat",
"Avoid sending sensitive information to the Horde.": "Evita di inviare informazioni sensibili e personali a Horde",
"Review the Privacy statement": "Leggi l'informativa sulla privacy",
"Learn how to contribute your idel GPU cycles to the Horde": "Impara come utilizzare i tuoi cicli GPU in idle per contribuire a Horde",
"Trusted workers only": "Utilizza solo utenti di fiducia",
"For privacy reasons, your API key will be hidden after you reload the page.": "Per motivi di sicurezza la tua chiave API verrà oscurata dopo aver ricaricato la pagina.",
"-- Horde models not loaded --": "-- Modelli Horde non caricati --",
"Example: http://127.0.0.1:5000/api ": "Esempio: http://127.0.0.1:5000/api",
"No connection...": "Nessuna connessione",
"Get your NovelAI API Key": "Ottieni la chiave API per NovelAI",
"KoboldAI Horde": "KoboldAI Horde",
"Text Gen WebUI (ooba)": "Text Gen WebUI (ooba)",
"NovelAI": "NovelAI",
"Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)",
"OpenAI API key": "Chiave API OpenAI",
"Trim spaces": "Elimina gli spazi",
"Trim Incomplete Sentences": "Taglia le frasi incomplete",
"Include Newline": "Includere il ritorno a capo",
"Non-markdown strings": "Stringhe di formattazione Non-markdown",
"Replace Macro in Sequences": "Sostituisci le macro nelle sequenze",
"Presets": "Preset",
"Separator": "Separatore",
"Start Reply With": "Inizia la risposta con",
"Show reply prefix in chat": "Mostra il prefisso della risposta nella chat",
"Worlds/Lorebooks": "Mondi/Lorebook",
"Active World(s)": "Mondi Attivi",
"Character Lore Insertion Strategy": "Strategia per l'inserimento della lore all'interno del contesto dell'IA",
"Sorted Evenly": "Equamente distribuito",
"Character Lore First": "Per prima la storia del personaggio",
"Global Lore First": "Per prima la lore",
"-- World Info not found --": "-- 'Info Mondo' non trovate --",
"Recursive Scan": "Scannerizzazione ricorsiva",
"Case Sensitive": "Sensibilità alle maiuscole",
"Match whole words": "Abbina mondi interi",
"World/Lore Editor": "Mondo/Editor della storia",
"--- None ---": "--- None ---",
"Comma seperated (ignored if empty)": "Separato dalle virgole (Ignorare se vuoto)",
"Use Probability": "Probabilità di utilizzo",
"Exclude from recursion": "Escludi dalla ricorsività",
"Position:": "Posizione",
"Before Char Defs": "Prima della definizione di Char",
"After Char Defs": "Dopo le definizione di Char",
"Before AN": "Prima delle note d'autore",
"After AN": "Dopo le note d'autore",
"Order:": "Ordine",
"Probability:": "Probabilità:",
"Delete Entry": "Elimina Voce",
"User Message Blur Tint": "Sfocatura sfondo utente",
"AI Message Blur Tint": "Sfocatura sfondo IA",
"Chat Style:": "Stile Chat",
"Chat Width (PC):": "Larghezza riquadro chat (PC)",
"Chat Timestamps": "Timestamp della chat",
"Message IDs": "ID del Messaggio",
"Prefer Character Card Prompt": "Priorità prompt 'Carta Personaggio'",
"Prefer Character Card Jailbreak": "Priorità jailbreak 'Carta Personaggio'",
"Press Send to continue": "Premi Invio per continuare",
"Log prompts to console": "Registro prompt a console",
"Never resize avatars": "Non ridimensionare mai l'avatar",
"Show avatar filenames": "Mostra il nome del file dell'avatar",
"Import Card Tags": "Importa i tag della carta",
"Confirm message deletion": "Conferma l'eliminazione del messaggio",
"Spoiler Free Mode": "Modalità spoiler free",
"Auto-swipe": "Auto-swipe",
"Minimum generated message length": "Lunghezza minima per i messaggi generati",
"Blacklisted words": "Parole nella lista nera",
"Blacklisted word count to swipe": "Numero delle parole nella lista nera",
"Reload Chat": "Ricarica la chat",
"Not Connected": "Non connesso",
"Persona Management": "Gestione del proprio alter ego",
"Persona Description": "Descrizione alter ego",
"Before Character Card": "Prima della 'Carta Personaggio'",
"After Character Card": "Dopo la 'Carta Personaggio'",
"Top of Author's Note": "All'inizio delle note d'autore",
"Bottom of Author's Note": "Alla fine delle note d'autore",
"How do I use this?": "Cos'è e cosa posso farci?",
"More...": "Mostra di più...",
"Link to World Info": "Collegamento 'Info Mondo'",
"Import Card Lore": "Importa la storia dell carta",
"Scenario Override": "Sovrascrittura dello scenario",
"Rename": "Rinomina",
"Character Description": "Descrizione personaggio",
"Creator's Notes": "Note del Creatore",
"A-Z": "A-Z",
"Z-A": "Z-A",
"Newest": "Più recente",
"Oldest": "Meno recente",
"Favorites": "Favoriti",
"Recent": "Recente",
"Most chats": "Più sessioni chat",
"Least chats": "Meno sessioni chat",
"Back": "Indietro",
"Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Sovrascrittura del Prompt (Per le API di OpenAI/Claude/Scale, Window/OpenRouter e Instruct mode)",
"Insert {{original}} into either box to include the respective default prompt from system settings.": "Inserisci {{original}} all'intero della casella per includere i rispettivi prompt predefiniti dai settaggi di sistema.",
"Main Prompt": "Prompt Principale",
"Jailbreak": "Jailbreak",
"Creator's Metadata (Not sent with the AI prompt)": "Metadata del creatore (Non viene inviato all'IA)",
"Everything here is optional": "Tutto ciò che si trova qui è opzionale",
"Created by": "Creato da",
"Character Version": "Versione del personaggio",
"Tags to Embed": "Tag da incorporare",
"How often the character speaks in group chats!": "La frequenza con la quale il personaggio parla all'interno delle chat di gruppo!",
"Important to set the character's writing style.": "È importante per impostare lo stile di scrittura del personaggio",
"ATTENTION!": "ATTENZIONE!",
"Samplers Order": "Ordine dei campionatori",
"Samplers will be applied in a top-down order. Use with caution.": "L'ordine dei campioni va dall'alto verso il basso. Usalo con cautela.",
"Repetition Penalty": "Repetition Penalty",
"Epsilon Cutoff": "Epsilon Cutoff",
"Eta Cutoff": "Eta Cutoff",
"Rep. Pen. Range.": "Rep. Pen. Range.",
"Rep. Pen. Freq.": "Rep. Pen. Freq.",
"Rep. Pen. Presence": "Rep. Pen. Presence.",
"Enter it in the box below:": "Inseriscilo nella casella in basso:",
"separate with commas w/o space between": "Separa con le virgole o degli spazi tra di loro",
"Document": "Documento",
"Continue": "Continua",
"Editing:": "Editing:",
"AI reply prefix": "Prefisso di risposta dell'IA",
"Custom Stopping Strings": "Stringhe d'arresto personalizzate",
"JSON serialized array of strings": "Array di stringhe serializzate JSON",
"words you dont want generated separated by comma ','": "Inserisci le parole che non vuoi siano generate, devono essere separate dalle virgole ','",
"Extensions URL": "Estensioni URL",
"API Key": "Chiave API",
"Enter your name": "Inserisci il tuo nome",
"Name this character": "Dai un nome a questo personaggio",
"Search / Create Tags": "Cerca / Crea tag",
"Describe your character's physical and mental traits here.": "Descrivi le caratteristiche fisiche e psicologiche del tuo personaggio.",
"This will be the first message from the character that starts every chat.": "Questo sarà il primo messaggio che il personaggio utilizzerà all'inizio di ogni chat.",
"Chat Name (Optional)": "Nome della chat (opzionale)",
"Filter...": "Filtro...",
"Search...": "Cerca...",
"Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "Ogni elemento racchiuso qui dentro sostituirà il prompt principale predefinito usato da questo personaggio. (v2 spec: system_prompt)",
"Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "Ogni elemento racchiuso qui dentro sostituirà il Jailbreak predefinito usato da questo personaggio. (v2 spec: post_history_instructions)",
"(Botmaker's name / Contact Info)": "Nome del creatore del bot / Informazioni di contatto",
"(If you want to track character versions)": "(Se vuoi segnalare la versione del personaggio attuale)",
"(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(Descrivi il bot, scrivi dei suggerimenti o informa riguardo i modelli IA su cui è stato testato. Questo verrà mostrato nella lista personaggio)",
"(Write a comma-separated list of tags)": "(Scrivi una lista di tag separati dalle virgole)",
"(A brief description of the personality)": "(Scrivi una breve descrizione della sua personalità)",
"(Circumstances and context of the interaction)": "(Scrivi le circostanze e il contesto dello scenario)",
"(Examples of chat dialog. Begin each example with START on a new line.)": "(Esempi di dialogo. Inizia ogni esempio con START quando vai a capo.)",
"Injection text (supports parameters)": "Injection text (supporta i parametri)",
"Injection depth": "Profondità dell'Injection",
"Type here...": "Scrivi qui...",
"Comma separated (required)": "Separa le parole con le virgole (necessario)",
"Comma separated (ignored if empty)": "Separa le parole con le virgole (ignora se vuoto)",
"What this keyword should mean to the AI, sent verbatim": "Cosa dovrebbe significare per l'IA questa parola chiave? Riporta tutto fedelmente, parola per parola",
"Not sent to the AI": "Non verrà inviato all'IA",
"(This will be the first message from the character that starts every chat)": "(Questo sarà il primo messaggio inviato dal personaggio all'inizio di ogni chat)",
"Not connected to API!": "Non connesso a nessuna API!",
"AI Response Configuration": "Configurazione della risposta dell'IA",
"AI Configuration panel will stay open": "Se clicchi il lucchetto, il pannello di configurazione dell'IA rimarrà aperto",
"Update current preset": "Aggiorna preset corrente",
"Create new preset": "Crea un nuovo preset",
"Import preset": "Importa preset",
"Export preset": "Esporta preset",
"Delete the preset": "Cancella preset",
"Inserts jailbreak as a last system message": "Inserisci il Jailbreak come ultimo messaggio del sistema",
"NSFW block goes first in the resulting prompt": "Il blocco al contenuto NSFW spunterà per primo nel prompt corrente",
"Enables OpenAI completion streaming": "Attiva 'streaming completion' per OpenAI",
"Wrap user messages in quotes before sending": "Mette tra il messaggio dell'utente in virgolette prima di inviare il messaggio",
"Restore default prompt": "Ripristina il prompt predefinito",
"New preset": "Nuovo preset",
"Delete preset": "Elimina preset",
"Restore default jailbreak": "Ripristina il Jailbreak predefinito",
"Restore default reply": "Ripristina la risposta predefinita",
"Restore defaul note": "Ripristina le note predefinite",
"API Connections": "Connessioni API",
"Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Può aiutare a risolvere il problema delle risposte negative chiedendo di essere messo soltanto in liste di utenti approvati. Potrebbe rallentare i tempi di risposta.",
"Clear your API key": "Cancella la tua chiave API",
"Refresh models": "Aggiorna i modelli",
"Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Ottieni i tuoi token per le API di OpenRouter tramite OAuth flow. Verrai reindirizzato alla pagina openrouter.ai",
"Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Verifica la connessione all'API inviando un breve messaggio. Devi comprendere che il messaggio verrà addebitato come tutti gli altri!",
"Create New": "Crea nuovo",
"Edit": "Edita",
"Locked = World Editor will stay open": "Se clicchi il lucchetto, l'editor del mondo rimarrà aperto",
"Entries can activate other entries by mentioning their keywords": "Le voci possono attivare altre voci menzionando le loro parole chiave",
"Lookup for the entry keys in the context will respect the case": "Fai attenzione alle parole chiave usate, esse rispetteranno le maiuscole",
"If the entry key consists of only one word, it would not be matched as part of other words": "Se la parola chiave consiste in una sola parola, non verrà accoppiata come parte di altre parole",
"Open all Entries": "Apri tutte le voci",
"Close all Entries": "Chiudi tutte le voci",
"Create": "Crea",
"Import World Info": "Importa 'Info Mondo'",
"Export World Info": "Esporta 'Info Mondo'",
"Delete World Info": "Elimina 'Info Mondo'",
"Rename World Info": "Rinomina 'Info Mondo'",
"Save changes to a new theme file": "Salva i cambiamenti in un nuovo file",
"removes blur and uses alternative background color for divs": "rimuovi la sfocatura e utilizza uno sfondo colorato alternativo per 'divs'",
"If checked and the character card contains a prompt override (System Prompt), use that instead.": "Se la casella viene spuntata e la 'Carta Personaggio' contiene una sovrascrittura del prompt (Prompt di sistema), utilizza quello al suo posto.",
"If checked and the character card contains a jailbreak override (Post History Instruction), use that instead.": "Se la casella viene spuntata e la 'Carta Personaggio' contiene una sovrascrittura del Jailbreak (Post History Instruction), utilizza quello al suo posto.",
"AI Response Formatting": "Formattazione della risposta dell'IA",
"Change Background Image": "Cambia l'immagine dello sfondo",
"Extensions": "Estensioni",
"Click to set a new User Name": "Clicca qui per impostare un nuovo nome utente",
"Click to lock your selected persona to the current chat. Click again to remove the lock.": "Clicca qui per bloccare l'alter ego selezionato alla chat corrente. Clicca di nuovo per rimuovere il blocco.",
"Click to set user name for all messages": "Clicca qui per impostare il nome utente per tutti i messaggi",
"Create a dummy persona": "Crea una tuo alter ego fittizio",
"Character Management": "Gestione personaggio",
"Locked = Character Management panel will stay open": "Se clicchi il lucchetto, il pannello di gestione del personaggio rimarrà aperto",
"Select/Create Characters": "Seleziona/Crea Personaggi",
"Token counts may be inaccurate and provided just for reference.": "Il conteggio dei Token potrebbe risultare inaccurato, perciò è da utilizzarsi solo come una approssimazione.",
"Click to select a new avatar for this character": "Clicca qui per selezionare un nuovo avatar per questo personaggio",
"Add to Favorites": "Aggiungi ai favoriti",
"Advanced Definition": "Definizioni avanzate",
"Character Lore": "Storia del personaggio",
"Export and Download": "Esporta e scarica",
"Duplicate Character": "Duplica il personaggio",
"Create Character": "Crea un personaggio",
"Delete Character": "Elimina un personaggio",
"View all tags": "Mostra tutti i tag",
"Click to set additional greeting messages": "Clicca qui per impostare ulteriori messaggi iniziali",
"Show / Hide Description and First Message": "Mostra / Nascondi Descrizione e Primo Messaggio",
"Click to select a new avatar for this group": "Clicca qui per selezionare un nuovo avatar per questo gruppo",
"Set a group chat scenario": "Imposta lo scenario per la chat di gruppo",
"Restore collage avatar": "Ripristina il collage dell'avatar",
"Create New Character": "Crea un nuovo personaggio",
"Import Character from File": "Importa un personaggio da un file",
"Import content from external URL": "Importa il contenuto da un URL esterno",
"Create New Chat Group": "Crea una nuova chat di gruppo",
"Characters sorting order": "Ordina Personaggi per:",
"Add chat injection": "Aggiungi 'chat injection'",
"Remove injection": "Elimina injection",
"Remove": "Elimina",
"Select a World Info file for": "Seleziona un file dell'Informazione Mondo per:",
"Primary Lorebook": "Lorebook Principale",
"A selected World Info will be bound to this character as its own Lorebook.": "La selezione di un 'Info Mondo' sarà legato a questo personaggio come il suo personale Lorebook.",
"When generating an AI reply, it will be combined with the entries from a global World Info selector.": "Quando viene generata una risposta della IA, Sarà fuso con le voci dal selettore globale 'Info Mondo'.",
"Exporting a character would also export the selected Lorebook file embedded in the JSON data.": "Esportare un personaggio porterà anche alla esportazione del Lorebook a lui legato nei dati JSON.",
"Additional Lorebooks": "Lorebook Aggiuntivi",
"Associate one or more auxillary Lorebooks with this character.": "Associa uno o più Lorebook ausiliari a questo personaggio.",
"NOTE: These choices are optional and won't be preserved on character export!": "NOTA BENE: Queste scelte sono opzionali e non saranno preservate nel momento dell'esportazione del personaggio!",
"Rename chat file": "Rinomina il file della chat",
"Export JSONL chat file": "Esporta il file della chat in JSONL",
"Download chat as plain text document": "Scarica la chat come documento di testo",
"Delete chat file": "Elimina il file della chat",
"Delete tag": "Elimina tag",
"Translate message": "Traduci messaggio",
"Generate Image": "Genera un'immagine",
"Narrate": "Narra",
"Prompt": "Prompt",
"Create Bookmark": "Crea un segnalibro",
"Copy": "Copia",
"Open bookmark chat": "Apri la chat salvata come segnalibro",
"Confirm": "Conferma",
"Copy this message": "Copia questo messaggio",
"Delete this message": "Cancella questo messaggio",
"Move message up": "Muovi il messaggio in alto",
"Move message down": "Muovi il messaggio in basso",
"Enlarge": "Ingrandisci",
"Temporarily disable automatic replies from this character": "Disattiva temporaneamente le risposte in automatico da parte di questo personaggio",
"Enable automatic replies from this character": "Attiva le risposte in automatico da parte di questo personaggio",
"Trigger a message from this character": "Innesca un messaggio di risposta da parte di questo personaggio",
"Move up": "Muovi sopra",
"Move down": "Muovi sotto",
"View character card": "Mostra la 'Carta Personaggio'",
"Remove from group": "Rimuovi dal gruppo",
"Add to group": "Aggiungi al gruppo",
"Add": "Aggiungi",
"Abort request": "Interrompi la richiesta",
"Send a message": "Invia messaggio",
"Ask AI to write your message for you": "Chiedi all'IA di scrivere un messaggio al posto tuo",
"Continue the last message": "Continua l'ultimo messaggio in chat",
"Bind user name to that avatar": "Lega il nome utente a questo avatar",
"Select this as default persona for the new chats.": "Seleziona questo alter ego come predefinito per tutte le nuove chat",
"Change persona image": "Cambia l'immagine del tuo alter ego",
"Delete persona": "Elimina il tuo alter ego",
"--- Pick to Edit ---": "--- Seleziona per modificare ---",
"Add text here that would make the AI generate things you don't want in your outputs.": "Scrivi ciò che non vuoi l'IA generi nel suo output.",
"write short replies, write replies using past tense": "Scrivi risposte brevi, scrivi risposte usando il passato",
"Alert if your world info is greater than the allocated budget.": "Ti avvisa nel momento in cui 'Info Mondo' consuma più di quanto allocato nel budget.",
"Clear your cookie": "Cancella i cookie",
"Restore new group chat prompt": "Ripristina il prompt della nuova chat di gruppo",
"Save movingUI changes to a new file": "Salva i cambiamenti apportati alla posizione dei pannelli dell'UI (MovingUI) in un nuovo file",
"Export all": "Esporta tutto",
"Import": "Importa",
"Insert": "Inserisci",
"New": "Nuovo",
"Prompts": "Prompt",
"Tokens": "Token",
"Reset current character": "Ripristina il personaggio attuale",
"(0 = disabled)": "(0 = disattivato)",
"1 = disabled": "1 = disattivato",
"Activation Regex": "Attivazione Regex",
"Active World(s) for all chats": "Attiva i Mondi per tutte le chat",
"Add character names": "Aggiungi i nomi dei personaggi",
"Add Memo": "Aggiungi note",
"Advanced Character Search": "Ricerca personaggi avanzata",
"Aggressive": "Aggressivo",
"AI21 Model": "Modello AI21",
"Alert On Overflow": "Avviso in caso di Overflow",
"Allow fallback routes": "Permetti fallback routes",
"Allow fallback routes Description": "Permetti descrizione fallback routes",
"Alt Method": "Metodo Alt",
"Alternate Greetings": "Alterna i saluti",
"Alternate Greetings Hint": "Premi la croce in alto a destra per generare una nuova casella di testo",
"Alternate Greetings Subtitle": "Qui saranno presenti i saluti alternativi",
"Assistant Prefill": "Assistant Prefill",
"Banned Tokens": "Token banditi",
"Blank": "Nuovo",
"Browser default": "Predefinito del browser",
"Budget Cap": "Limite budget",
"CFG": "CFG",
"CFG Scale": "CFG Scale",
"Changes the style of the generated text.": "Cambia lo stile del testo generato.",
"Character Negatives": "Character Negatives",
"Chat Negatives": "Chat Negatives",
"Chat Scenario Override": "Sovrascrittura dello scenario della chat",
"Chat Start": "Avvio della chat",
"Claude Model": "Modello Claude",
"Close chat": "Chiudi chat",
"Context %": "Context %",
"Context Template": "Context Template",
"Count Penalty": "Count Penalty",
"Example Separator": "Separatore d'esempio",
"Exclude Assistant suffix": "Escludi il suffisso assistente",
"Exclude the assistant suffix from being added to the end of prompt.": "Esclude il suffisso assistente dall'essere aggiunto alla fine del prompt.",
"Force for Groups and Personas": "Forzalo per gruppi e alter ego",
"Global Negatives": "Global Negatives",
"In Story String / Chat Completion: After Character Card": "Nella stringa narrativa / Chat Completion: Dopo la 'Carta Personaggio'",
"In Story String / Chat Completion: Before Character Card": "Nella stringa narrativa / Chat Completion: Prima della 'Carta Personaggio",
"Instruct": "Instruct",
"Instruct Mode": "Modalità Instruct",
"Last Sequence": "Ultima sequenza",
"Lazy Chat Loading": "Caricamento svogliato della chat",
"Least tokens": "Token minimi",
"Light": "Leggero",
"Load koboldcpp order": "Ripristina l'ordine di koboldcpp",
"Main": "Principale",
"Mancer API key": "Chiave API di Mancer",
"Mancer API url": "Url API di Mancer",
"May help the model to understand context. Names must only contain letters or numbers.": "Può aiutare il modello a comprendere meglio il contesto. I nomi devono contenere solo numeri e lettere.",
"Medium": "Medium",
"Mirostat": "Mirostat",
"Mirostat (mode=1 is only for llama.cpp)": "Mirostat (mode=1 è valido solo per llama.cpp)",
"Mirostat Eta": "Mirostat Eta",
"Mirostat LR": "Mirostat LR",
"Mirostat Mode": "Mirostat Mode",
"Mirostat Tau": "Mirostat Tau",
"Model Icon": "Icona modello",
"Most tokens": "Token massimi",
"MovingUI Preset": "Preset MovingUI",
"Negative Prompt": "Prompt negativo",
"No Module": "Nessun modulo",
"NSFW": "NSFW",
"Nucleus Sampling": "Nucleus Sampling",
"Off": "Spento",
"OpenRouter API Key": "Chiave API di OpenRouter",
"OpenRouter Model": "Modello OpenRouter",
"or": "o",
"Phrase Repetition Penalty": "Phrase Repetition Penalty",
"Positive Prompt": "Prompt positivo",
"Preamble": "Premessa",
"Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct Mode)": "Sovrascrittura del prompt (Per le API di OpenAI/Claude/Scale, Window/OpenRouter, e la Modalità Instruct)",
"Prompt that is used when the NSFW toggle is O": "Prompt utilizzato quando l'interruttore NSFW è disattivato.",
"Prose Augmenter": "Prose Augmenter",
"Proxy Password": "Password proxy",
"Quick Edit": "Editing rapido",
"Random": "Casuale",
"Relaxed API URLS": "URL API sciatto",
"Replace Macro in Custom Stopping Strings": "Rimpiazza le macro nelle stringe d'arresto personalizzate",
"Scale": "Scale",
"Sequences you don't want to appear in the output. One per line.": "Sequenze che non vuoi appaiano nell'output. Una per linea.",
"Set at the beginning of Dialogue examples to indicate that a new example chat is about to start.": "Impostato all'inizio degli Esempi di dialogo per indicare che un nuovo esempio di chat sta per iniziare.",
"Set at the beginning of the chat history to indicate that a new chat is about to start.": "Impostato all'inizio della cronologia chat per indicare che una nuova chat sta per iniziare.",
"Set at the beginning of the chat history to indicate that a new group chat is about to start.": "Impostato all'inizio della cronologia chat per indicare che un nuova chat di gruppo sta per iniziare.",
"Show External models (provided by API)": "Mostra modelli esterni (Forniti dall'API)",
"Show Notifications Show notifications on switching personas": "Mostra una notifica quando l'alter ego viene cambiato",
"Show tags in responses": "Mostra i tag nelle risposte",
"Story String": "Stringa narrativa",
"Text Adventure": "Avventura testuale",
"Text Gen WebUI presets": "Preset Text Gen WebUI",
"Toggle Panels": "Interruttore pannelli",
"Top A Sampling": "Top A Sampling",
"Top K Sampling": "Top K Sampling",
"UI Language": "Linguaggio UI",
"Unlocked Context Size": "Sblocca dimensione contesto",
"Usage Stats": "Statistiche di utilizzo",
"Use AI21 Tokenizer": "Utilizza il Tokenizer di AI21",
"Use API key (Only required for Mancer)": "Utilizza la chiave API (Necessario soltanto per Mancer)",
"Use character author's note": "Utilizza le note d'autore del personaggio",
"Use character CFG scales": "Utilizza CFG scales del personaggio",
"Use Proxy password field instead. This input will be ignored.": "Utilizza il campo della password proxy al suo posto. Questo input verrà ignorato.",
"Use style tags to modify the writing style of the output": "Utilizza lo stile delle tag per modificare lo stile di scrittura in output",
"Use the appropriate tokenizer for Jurassic models, which is more efficient than GPT's.": "Utilizza il tokenizer appropiato per i modelli giurassici, visto che è più efficente di quello di GPT.",
"Used if CFG Scale is unset globally, per chat or character": "È utilizzato soltanto se CFG Scale non è settato globalmente, per le chat o per i personaggi",
"Very aggressive": "Esageratamente aggressivo",
"Very light": "Esageratamente leggero",
"Welcome to SillyTavern!": "Benvenuto in SillyTavern!",
"Will be used as a password for the proxy instead of API key.": "Verrà usato come password per il proxy invece che la chiave API.",
"Window AI Model": "Modello Window AI",
"Your Persona": "Il tuo alter ego",
"Start Claude's answer with...": "Inizia la risposta di Claude con...",
"# of messages (0 = disabled)": "'# dei messaggi (0 = disattivato)'",
"Advanced": "Avanzata",
"AI Module": "Modulo IA",
"AI21 API Key": "Chiave API AI21",
"Allow NSFW images from Horde": "Permetti immagini NSFW da Horde",
"Anthropic's developer console": "Console di sviluppo per Anthropic",
"Avoid spending Anlas": "Evita di spendere Anlas",
"Click Authorize below or get the key from": "Clicca Autorizza qui sotto oppure ottieni la chiave da",
"Connect": "Connettiti",
"Context Order": "Ordine del contesto",
"Continue nudge": "Continua nudge (spinta)",
"Convert to Persona": "Converti in alter ego",
"Debug Menu": "Menu Debug",
"Debug Warning": "Avviso Debug",
"Enable simple UI mode": "Avvia la modalità UI semplice",
"Enter": "Invio",
"Example Dialogues": "Dialoghi d'esempio",
"Example: https://neuro.mancer.tech/webui/MODEL/api": "Esempio: https://neuro.mancer.tech/webui/MODEL/api",
"Example: ws://127.0.0.1:5005/api/v1/stream": "Esempio: ws://127.0.0.1:5005/api/v1/stream",
"Execute": "Esegui",
"Get it here:": "Ottienila qui:",
"Get your key from": "Ottieni la tua chiave da",
"Hint": "Suggerimento",
"If you are using:": "Se stai usando:",
"In Story String / Prompt Manager": "Stringa narrativa / Gestione prompt",
"In-Chat Position not affected": "La posizione in-chat non è influenzata",
"Karras (not all samplers supported)": "Karras (Non tutti i sampler sono supportati)",
"Learn how to contribute your idle GPU cycles to the Horde": "Impara come utilizzare i tuoi cicli GPU in idle per contribuire a Horde",
"Models": "Modelli",
"New Chat": "Nuova chat",
"New Example Chat": "Esempio nuova chat",
"New Group Chat": "Nuova chat di gruppo",
"Not connected...": "Non connesso...",
"Opus tier": "Opus tier",
"Output Sequence": "Sequenza Output",
"Permanent": "Permanente",
"Scale API Key": "Chiave API Scale",
"Send names in the ChatML objects.": "Condividi a ChatML i nomi dei partecipanti.",
"Show impersonated replies in groups": "Mostra risposte impersonate nelle chat di gruppo",
"Show Message Token Count": "Mostra costo in Token per messaggio",
"Show notifications on switching personas": "Mostra notifiche quando l'alter ego cambia",
"Simple": "Semplice",
"Slack and Poe cookies will not work here, do not bother trying.": "I cookie di Slack e Poe non funzioneranno qui, non perdere tempo provandoci.",
"Strip Example Messages from Prompt": "Rimuovi i messaggi d'esempio dal prompt",
"Summary": "Riassunto",
"to use anonymous mode.": "per utilizzare la modalità in anonimo.",
"UI Mode": "Modalità UI",
"Use style tags to modify the writing style of the output.": "Utilizza i tag di stile per modificare la forma di scrittura in uscita.",
"Utility Prompts": "Utility Prompt",
"View my Kudos": "Mostra i miei Kudos",
"View Remaining Credits": "Mostra crediti rimanenti",
"World Info Format Template": "Formato template 'Info Mondo'",
"Wraps activated World Info entries before inserting into the prompt.": "Seleziona le informazioni del mondo attualmente attive prima di inserirle nel prompt.",
"Local server classification": "Classificazione server locale",
"Create Branch": "Crea nuovo ramo",
"removes blur from window backgrounds": "Elimina la sfocatura dagli sfondi delle finestre",
"Allow for Chat Completion APIs": "Permetti per le 'Chat Completion API'",
"at Depth": "a profondità",
"Auto-Continue": "Risposta continua",
"Auto-Expand Message Actions": "Espansione automatica dei messaggi d'azione",
"Automatic (PC)": "Automatico (PC)",
"Character Exclusion": "Estromissione del personaggio",
"Chat Background": "Sfondo chat",
"Custom CSS": "CSS personalizzato",
"Depth:": "Profondità:",
"Disabled": "Disattivato",
"Filter to Character(s)": "Filtra per personaggio",
"Grammar": "Grammatica",
"Miscellaneous": "Varie",
"PaLM API Key": "Chiave API PaLM",
"Relax message trim in Groups": "Troncatura leggera dei messaggi nelle chat di gruppo",
"Target length (tokens)": "Lunghezza target (in token)",
"Theme Toggles": "Interruttore tema",
"Type in the desired custom grammar (GBNF).": "Scrivi la tua grammatica personalizzata (GBNF).",
"UI Background": "Sfondo UI",
"UI Border": "Bordo UI"
}

862
public/locales/ja-jp.json Normal file
View File

@ -0,0 +1,862 @@
{
"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": "繰り返しペナルティ",
"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 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)": "最大応答長(トークン数)",
"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_tokenを禁止します。これにより、モデルが生成を早期に終了することがなくなります",
"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)": "ミロスタット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プロンプトテキストが効果を強調するために最初に表示されます。",
"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).": "リクエストごとに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.": "発言のために引用符を手動で使用する場合はオフにします。",
"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": "ジェイルブレイクトグルがオンになっているときに使用されるプロンプト",
"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": "ホードを使用",
"API url": "API URL",
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engineOpenAI 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モデル",
"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": "ブロッキングAPI URL",
"Example: 127.0.0.1:5000": "例: 127.0.0.1:5000",
"Legacy API (pre-OAI, no streaming)": "レガシーAPIOAI以前のもの、ストリーミングなし",
"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キーを表示",
"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": "リクエストごとに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": "スタイル後にキャラクター",
"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モード",
"UI Language": "UI言語",
"MovingUI Preset": "MovingUIプリセット",
"UI Customization": "UIのカスタマイズ",
"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": "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": "パネルのリセット",
"UI Colors": "UIの色",
"Main Text": "メインテキスト",
"Italics Text": "イタリックテキスト",
"Quote Text": "引用テキスト",
"Shadow Color": "シャドウカラー",
"FastUI BG": "FastUI BG",
"Blur Tint": "ぼかしティント",
"Font Scale": "フォントスケール",
"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": "チャットの自動スクロール",
"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-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": "2次必須キーワード",
"Content": "内容",
"What this keyword should mean to the AI": "このキーワードがAIにとってどのような意味を持つか",
"Memo/Note": "メモ/ノート",
"Not sent to AI": "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": "NovelAI APIキーを取得する",
"KoboldAI Horde": "KoboldAIホルド",
"Text Gen WebUI (ooba)": "テキストGen WebUIooba",
"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": "テーマファイルをエクスポート"
}

556
public/locales/ko-kr.json Normal file
View File

@ -0,0 +1,556 @@
{
"UI Language": "언어",
"clickslidertips": "슬라이더의 오른쪽 숫자를 클릭하면 직접 입력할 수 있습니다.",
"kobldpresets": "Kobold 설정",
"guikoboldaisettings": "GUI KoboldAI 설정",
"novelaipreserts": "NovelAI 설정",
"default": "기본값",
"openaipresets": "OpenAI 설정",
"text gen webio(ooba) presets": "TextGenWebUI(ooba) 설정",
"response legth(tokens)": "답변 길이(토큰수)",
"select": "선택",
"context size(tokens)": "맥락 크기(토큰수)",
"Unlocked Context Size": "한도 해제",
"Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "토큰 4096개 이상의 맥락을 사용할 수 있는 모델에서만 사용하세요. 파워유저 옵션이에요.",
"rep.pen": "반복 페널티",
"rep.pen range": "반복 페널티 범위",
"temperature": "온도",
"Encoder Rep. Pen.": "인코더 반복 페널티",
"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": "온도",
"Frequency Penalty": "빈도 페널티",
"Presence Penalty": "존재 페널티",
"Top-p": "상위 P",
"Display bot response text chunks as they are generated": "AI가 생성하는 답변을 실시간으로 출력합니다.",
"Top A": "상위 A",
"Typical Sampling": "전형적 표집",
"Tail Free Sampling": "꼬리자르기 표집",
"Rep. Pen. Slope": "반복 페널티 경사도",
"Single-line mode": "한줄 모드",
"Top K": "상위 K",
"Top P": "상위 P",
"Typical 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을 삽입합니다. 이 옵션을 해제하면 답변이 더 다양해질 수 있어요.",
"Ban EOS Token": "EOS토큰 금지",
"Ban the eos_token. This forces the model to never end the generation prematurely": "eos_token을 금지합니다. 모델이 답변 생성을 완성하기 전에 포기하는 것을 막아요.",
"Skip Special Tokens": "특수토큰 무시",
"Beam search": "빔 탐색",
"Number of Beams": "빔 갯수",
"Length Penalty": "길이 페널티",
"Early Stopping": "조기종료",
"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": "19금 응원",
"Tell the AI that NSFW is allowed.": "AI가 19금을 생성할 수 있다고 알려줍니다.",
"NSFW Prioritized": "19금 요구",
"NSFW prompt text goes first in the prompt to emphasize its effect.": "19금 프롬프트를 시스템 프롬프트 맨 앞에 삽입하여 효과를 강화합니다.",
"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).": "요청당 한 줄만 생성합니다(KoboldAI만 해당, KoboldCpp에서는 무시됨).",
"Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "EOS(End-of-Sequence) 토큰(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": "OpenAI 지식 데이터베이스를 활용하여 공공인물, 유명한 캐릭터 등 이미 알려진 정보를 사용합니다.",
"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": "19금 프롬프트",
"Prompt that is used when the NSFW toggle is on": "19금 옵션이 활성화되면 사용하는 프롬프트입니다.",
"Jailbreak prompt": "탈옥 프롬프트",
"Prompt that is used when the Jailbreak toggle is on": "탈옥 옵션이 활성화되면 사용하는 프롬프트입니다.",
"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": "AI가 답변을 생성할 때 영향을 줍니다.",
"API": "API",
"KoboldAI": "KoboldAI",
"Use Horde": "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": "Horde를 위하여 노는 GPU를 기여하는 법을 배워보세요.",
"Adjust context size to worker capabilities": "Horde 일꾼의 사양에 맞춰 맥락 크기 조정",
"Adjust response length to worker capabilities": "Horde 일꾼의 사양에 맞춰 답변 길이 조정",
"API key": "API 키",
"Register": "등록",
"For privacy reasons": "개인정보 보호를 위하여 API 키는 반드시 비밀로 하세요.",
"Model": "모델",
"Hold Control / Command key to select multiple models.": "Control/Cmd키를 누르면 여러 모델을 선택할 수 있습니다.",
"Horde models not loaded": "Horde 모델을 불러오지 못했어요!",
"Not connected": "접속 없음",
"Novel API key": "NovelAI API 키",
"Follow": "API키를 받으려면",
"these directions": "이 설명글을",
"to get your NovelAI API key.": "자세히 읽어주세요.",
"Enter it in the box below": "밑 입력창에 입력하세요.",
"Novel AI Model": "NovelAI 모델",
"No connection": "접속 실패",
"oobabooga/text-generation-webui": "oobabooga/text-generation-webui",
"Make sure you run it with": "--extensions openai 인수를 반드시 사용해야 합니다.",
"Blocking API url": "API URL을 막는 중",
"Streaming API url": "API URL에서 스트리밍 중",
"OpenAI Model": "OpenAI 모델",
"View API Usage Metrics": "API 사용량 보기",
"Bot": "봇",
"Connect to the API": "API 접속",
"Auto-connect to Last Server": "최근 접속한 서버에 자동접속",
"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": "활성화",
"Wrap Sequences with Newline": "배열 명령 양 끝에 줄바꿈 삽입",
"Include Names": "이름 포함",
"System Prompt": "시스템 프롬프트",
"Instruct Mode Sequences": "지시 모드 순서",
"Input Sequence": "입력 배열",
"First Output Sequence": "첫 번째 출력 시퀀스",
"Last Output Sequence": "마지막 출력 순서",
"System Sequence Prefix": "시스템 시퀀스 접두사",
"System Sequence Suffix": "시스템 시퀀스 접미사",
"Stop Sequence": "정지 배열",
"Context Formatting": "맥락 서식",
"Tokenizer": "토큰화 장치",
"None / Estimated": "없음/추정",
"Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)",
"Token Padding": "토큰 패딩",
"Always add character's name to prompt": "프롬프트에 항상 캐릭터 이름 삽입",
"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": "Anchors Order",
"Character then Style": "캐릭터 다음 스타일",
"Style then Character": "스타일 다음 캐릭터",
"Character Anchor": "캐릭터 Anchor",
"Style Anchor": "스타일 Anchor",
"World Info": "세계관",
"Scan Depth": "탐색 깊이",
"depth": "깊이",
"Token Budget": "토큰 예산",
"budget": "예산",
"Recursive scanning": "되풀이 검색",
"None": "없음",
"User Settings": "사용자 설정",
"UI Customization": "UI 꾸미기",
"Avatar Style": "아바타 스타일",
"Circle": "동그라미",
"Rectangle": "네모",
"Chat Style": "채팅창 스타일",
"Default": "기본",
"Bubbles": "말풍선",
"Chat Width (PC)": "채팅창 넓이PC",
"No Blur Effect": "흐리기 효과 없음",
"No Text Shadows": "글 그림자 없음",
"Waifu Mode": "미연시 모드",
"Message Timer": "메시지 타이머",
"Characters Hotswap": "빠른 캐릭터 바꾸기",
"Movable UI Panels": "UI 패널 이동",
"Reset Panels": "패널 제위치로",
"UI Colors": "UI 색상",
"Main Text": "본문",
"Italics Text": "이탤릭체",
"Quote Text": "따옴표",
"Shadow Color": "그림자",
"FastUI BG": "FastUI 배경색",
"Blur Tint": "흐리기",
"Font Scale": "글 크기",
"Blur Strength": "흐리기 정도",
"Text Shadow Width": "글 그림자 넓이",
"UI Theme Preset": "UI 테마",
"Power User Options": "파워유저 옵션",
"Swipes": "스와이프",
"Background Sound Only": "배경음만",
"Auto-load Last Chat": "마지막 채팅 자동으로 불러오기",
"Auto-save Message Edits": "메시지 수정 후 자동 저장",
"Auto-fix Markdown": "서식 고치기 자동화",
"Allow {{char}}: in bot messages": "AI 메시지에 {{char}} 표기 허용",
"Allow {{user}}: in bot messages": "AI 메시지에 {{user}} 표기 허용",
"Auto-scroll Chat": "채팅창 자동 스크롤링",
"Render Formulas": "계산식 처리하기",
"Send on Enter": "엔터키로 보내기",
"Always disabled": "항상 금지",
"Automatic (desktop)": "자동PC",
"Always enabled": "항상 허용",
"Name": "이름",
"Your Avatar": "사용자 아바타",
"Extensions API:": "확장기능 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 Entry": "새 항목",
"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": "AI가 이 키워드를 어떻게 이해하나요?",
"Memo/Note": "쪽지/낙서",
"Not sent to AI": "AI에게 보내지 않습니다.",
"Constant": "항상 발동",
"Selective": "선택 발동",
"Before Char": "캐릭터 앞에",
"After Char": "캐릭터 다음",
"Insertion Order": "삽입 순서",
"Tokens:": "토큰 개수:",
"Disable": "비활성화",
"${characterName}": "${charaterName}",
"CHAR": "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": "19금 금지 프롬프트",
"Prompt that is used when the NSFW toggle is off": "19금 응원이 비활성화되었을 때 전송하는 프롬프트입니다.",
"Advanced prompt bits": "고급 프롬프트 옵션",
"World Info format template": "설정집 서식 템플릿",
"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": "\n맥락 크기 제한을 해제합니다. 파워유저 옵션이에요.",
"Chat Completion Source": "문장완성 API 소스",
"Avoid sending sensitive information to the Horde.": "Horde로 개인정보나 기밀사항을 전송하지 마세요.",
"Review the Privacy statement": "개인정보 보호 방침을 확인합니다.",
"Learn how to contribute your idel GPU cycles to the Horde": "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 모델을 불러오지 못했어요! --",
"Example: http://127.0.0.1:5000/api ": "예: http://127.0.0.1:5000/api ",
"No connection...": "접속되지 않음...",
"Get your NovelAI API Key": "NovelAI를 받아오세요!",
"KoboldAI Horde": "KoboldAI Horde",
"Text Gen WebUI (ooba)": "Text Gen WebUI (ooba)",
"NovelAI": "NovelAI",
"Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "문장완성 (OpenAI, Claude, Window/OpenRouter, Scale)",
"OpenAI API key": "OpenAI API 키",
"to get your OpenAI API key.": "자세히 읽어주세요.",
"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": "세계관/설정집",
"Active World(s)": "활성화된 세계관",
"Character Lore Insertion Strategy": "캐릭터 설정집 삽입 전략",
"Sorted Evenly": "균등하게 배분",
"Character Lore First": "캐릭터 설정집 먼저",
"Global Lore First": "세계관 설정집 먼저",
"-- World Info not found --": "-- 세계관을 찾을 수 없음 --",
"Recursive Scan": "회귀 탐색",
"Case Sensitive": "대소문자 구별",
"Match whole words": "전체 단어 일치",
"World/Lore Editor": "세계관/설정집 편집기",
"--- None ---": "--- 없음 ---",
"Comma seperated (ignored if empty)": "쉼표로 구분 (비어있을 경우 무시)",
"Use Probability": "확률성 발동 사용",
"Exclude from recursion": "회귀탐색에서 제외",
"Position:": "삽입 위치:",
"Before Char Defs": "캐릭터 정의 앞에",
"After Char Defs": "캐릭터 정의 다음에",
"Before AN": "글쓴이 쪽지 앞에",
"After AN": "글쓴이 쪽지 다음에",
"Order:": "순서:",
"Probability:": "발동확률:",
"Delete Entry": "설정 파기",
"User Message Blur Tint": "사용자 메시지 흐리기",
"AI Message Blur Tint": "AI 메시지 흐리기",
"Chat Style:": "메시지 스타일:",
"Chat Width (PC):": "채팅창 넓이 (PC):",
"Chat Timestamps": "메시지 타임스탬프",
"Message IDs": "메시지 ID 표시",
"Prefer Character Card Prompt": "캐릭터 카드 프롬프트 우선시",
"Prefer Character Card Jailbreak": "캐릭터 카드 탈옥 프롬프트 우선시",
"Press Send to continue": "보내기를 눌러서 AI 메시지 이어서 출력",
"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": "채팅 다시불러오기",
"Not Connected": "접속되지 않음",
"Persona Management": "주인공 관리",
"Persona Description": "주인공 묘사",
"In Story String / Chat Completion: Before Character Card": "스토리 문자열에서 / 문장완성: 캐릭터 카드 앞에",
"In Story String / Chat Completion: After Character Card": "스토리 문자열에서 / 문장완성: 캐릭터 카드 다음에",
"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": "이름순 (A-Z)",
"Z-A": "이름순 (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 API, Window/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)": "작성자 메타데이터 (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.": "캐릭터의 문체를 설정할 때 중요합니다.",
"unlocked": "한도 해제",
"ATTENTION!": "경고!!",
"Samplers Order": "표집방식 우선순위",
"Samplers will be applied in a top-down order. Use with caution.": "표집방식은 위에서부터 아래로 내려가며 적용합니다. 유의하여 사용하세요.",
"Repetition Penalty": "반복 페널티",
"Epsilon Cutoff": "엡실론 한도",
"Eta Cutoff": "에타 한도",
"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": "이어서 계속",
"Editing:": "편집:",
"AI reply prefix": "AI 답변 접두사",
"Custom Stopping Strings": "문장출력 중단 문자열 (KoboldAI/TextGen/NovelAI)",
"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.)": "(AI가 생성해야하는 답변 예시 양식. 새로운 예시마다 전 줄에 <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": "키워드가 AI에게 뭘 뜻하나요? (문자 그대로 전송)",
"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": "설정 삭제하기",
"Inserts jailbreak as a last system message": "시스템 메시지 끝에 탈옥 프롬프트를 삽입합니다",
"NSFW block goes first in the resulting prompt": "생성되는 프롬프트 맨 앞에 19금 블록을 삽입합니다",
"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 flow를 사용하여 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": "발동 키워드가 단 한 단어라면 다른 단어에 일부로 취급하지 않습니다",
"Open all Entries": "모든 설정 열기",
"Close all Entries": "모든 설정 닫기",
"Create": "생성",
"Import World Info": "설정집 불러오기",
"Export World Info": "설정집 내보내기",
"Delete World Info": "설정집 삭제하기",
"Rename World Info": "설정집 이름 바꾸기",
"Save changes to a new theme file": "변경사항을 새 테마 파일로 저장",
"removes blur and uses alternative background color for divs": "흐리기 효과를 제거하고 문단 배경을 대체합니다",
"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.": "활성화할 경우, 캐릭터 카드에 합봉된 탈옥 프롬프트 덮어쓰기를 사용합니다.",
"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": "캐릭터 아바타를 다시 설정합니다",
"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.": "하나 혹은 다수의 설정집을 캐릭터와 연결합니다.",
"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": "주인공 삭제하기"
}

15
public/locales/lang.json Normal file
View File

@ -0,0 +1,15 @@
[
{ "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": "ja-jp", "display": "Japanese" },
{ "lang": "ko-kr", "display": "Korean" },
{ "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" }
]

865
public/locales/nl-nl.json Normal file
View File

@ -0,0 +1,865 @@
{
"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": "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 van het antwoord (tokens)",
"Temperature": "Temperatuur",
"Frequency Penalty": "Frequentieboete",
"Presence Penalty": "Aanwezigheidsboete",
"Top-p": "Top-p",
"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": "Helling van de herhalingsstraf",
"Single-line mode": "Enkele regel-modus",
"Top K": "Top K",
"Top P": "Top P",
"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. 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": "Lengteboete",
"Early Stopping": "Vroegtijdig stoppen",
"Contrastive search": "Contrastieve zoekopdracht",
"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 Aangemoedigd",
"Tell the AI that NSFW is allowed.": "Vertel de AI dat NSFW is toegestaan.",
"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",
"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 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 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",
"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": "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": "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": "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 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 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",
"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": "NovelAPI-sleutel",
"Follow": "Volgen",
"these directions": "deze instructies",
"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",
"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",
"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": "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": "Sequenties in instructiemodus",
"Input Sequence": "Invoersequentie",
"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",
"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": "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": "Tokenbudget",
"budget": "budget",
"Recursive scanning": "Recursief scannen",
"None": "Geen",
"User Settings": "Gebruikersinstellingen",
"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",
"Square": "Vierkant",
"Chat Style": "Chatsstijl",
"Default": "Standaard",
"Bubbles": "Bubbels",
"No Blur Effect": "Geen vervagingseffect",
"No Text Shadows": "Geen tekstschaduwen",
"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 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:": "Extensies API:",
"SillyTavern-extras": "SillyTavern-extras",
"Auto-connect": "Automatisch verbinden",
"Active extensions": "Actieve extensies",
"Extension settings": "Extensie-instellingen",
"Description": "Beschrijving",
"First message": "Eerste bericht",
"Group Controls": "Groepsbesturing",
"Group reply strategy": "Groepsantwoordstrategie",
"Natural order": "Natuurlijke volgorde",
"List order": "Lijstvolgorde",
"Allow self responses": "Zelfreacties toestaan",
"Auto Mode": "Automatische modus",
"Add Members": "Leden toevoegen",
"Current Members": "Huidige leden",
"text": "tekst",
"Delete": "Verwijderen",
"Cancel": "Annuleren",
"Advanced Defininitions": "Geavanceerde definities",
"Personality summary": "Persoonlijkheidssamenvatting",
"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": "Spraakzaamheid",
"How often the chracter speaks in": "Hoe vaak het personage spreekt in",
"group chats!": "groepschats!",
"Shy": "Verlegen",
"Normal": "Normaal",
"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 summary": "Nieuwe samenvatting",
"Export": "Exporteren",
"Delete World": "Wereld verwijderen",
"Chat History": "Chatgeschiedenis",
"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 Trefwoorden",
"Content": "Inhoud",
"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": "Constant",
"Selective": "Selectief",
"Before Char": "Voor Karakter",
"After Char": "Na Karakter",
"Insertion Order": "Invoegvolgorde",
"Tokens:": "Tokens:",
"Disable": "Uitschakelen",
"${characterName}": "${karakterNaam}",
"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 eerdere chats",
"Delete messages": "Berichten verwijderen",
"Impersonate": "Imiteren",
"Regenerate": "Regenereren",
"PNG": "PNG",
"JSON": "JSON",
"presets": "voorinstellingen",
"Message Sound": "Berichtgeluid",
"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",
"Advanced prompt bits": "Geavanceerde prompt-bits",
"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 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": "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)": "Chat Voltooiing (OpenAI, Claude, Window/OpenRouter, Scale)",
"OpenAI API key": "OpenAI API-sleutel",
"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": "Voorinstellingen",
"Separator": "Scheidingsteken",
"Start Reply With": "Begin antwoord met",
"Show reply prefix in chat": "Toon antwoordvoorvoegsel in chat",
"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",
"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 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:",
"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:",
"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)": "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",
"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": "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": "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": "Kaart Lore Importeren",
"Scenario Override": "Scenario Overschrijving",
"Rename": "Hernoemen",
"Character Description": "Karakterbeschrijving",
"Creator's Notes": "Maker's Notities",
"A-Z": "A-Z",
"Z-A": "Z-A",
"Newest": "Nieuwste",
"Oldest": "Oudste",
"Favorites": "Favorieten",
"Recent": "Recent",
"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 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)": "Maker's Metadata (Niet verzonden met de AI prompt)",
"Everything here is optional": "Alles hier is optioneel",
"Created by": "Gemaakt door",
"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!": "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. 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 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": "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...": "Filter...",
"Search...": "Zoeken...",
"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.)",
"Injection text (supports parameters)": "Injectietekst (ondersteunt parameters)",
"Injection depth": "Injectiediepte",
"Type here...": "Typ hier...",
"Comma separated (required)": "Komma gescheiden (vereist)",
"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 begint)",
"Not connected to API!": "Niet verbonden met API!",
"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 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": "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 = 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",
"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",
"AI Response Formatting": "AI-respons opmaken",
"Change Background Image": "Achtergrondafbeelding wijzigen",
"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 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",
"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 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 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 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 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": "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",
"Narrate": "Vertellen",
"Prompt": "Prompt",
"Create Bookmark": "Bladwijzer maken",
"Copy": "Kopiëren",
"Open bookmark chat": "Bladwijzerchat openen",
"Confirm": "Bevestigen",
"Copy this message": "Dit bericht kopiëren",
"Delete this message": "Dit bericht verwijderen",
"Move message up": "Bericht omhoog verplaatsen",
"Move message down": "Bericht omlaag verplaatsen",
"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 activeren van dit personage",
"Move up": "Omhoog verplaatsen",
"Move down": "Omlaag verplaatsen",
"View character card": "Bekijk personagekaart",
"Remove from group": "Verwijderen uit groep",
"Add to group": "Toevoegen aan groep",
"Add": "Toevoegen",
"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": "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"
}

756
public/locales/pt-pt.json Normal file
View File

@ -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"
}

834
public/locales/ru-ru.json Normal file
View File

@ -0,0 +1,834 @@
{
"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 🟢 Cтандартный\n ❌ Отключен",
"rep.pen range": "Диапазон штрафов за повтор.",
"Temperature controls the randomness in token selection": "Temperature контролирует случайность выбора токенов:\n- низкая Temperature (<1.0) приводит к более предсказуемому тексту, отдавая предпочтение токенам с высокой вероятностью.\n- высокая Temperature (>1.0) повышает креативность и разнообразие вывода, давая токенам с низкой вероятностью больше шансов.\nУстановите значение 1.0 для исходных вероятностей.",
"temperature": "Temperature",
"Top K sets a maximum amount of top tokens that can be chosen from": "Top K задает максимальное количество токенов, которые могут быть выбраны.\nЕсли Top-K равен 20, это означает, что будут сохранены только 20 токенов с наивысшим рейтингом (независимо от того, что их вероятности разнообразны или ограничены)\nУстановите значение 0, чтобы отключить.",
"Top P (a.k.a. nucleus sampling)": "Top P (также известная как выборка ядра) складывает все верхние токены, необходимые для достижения целевого процента.\nТо есть, если 2 верхних токена составляют 25%, а Top-P равен 0.50, учитываются только эти 2 верхних токена.\nУстановите значение 1.0, чтобы отключить.",
"Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Сэмплер Typical P определяет приоритет токенов на основе их отклонения от средней энтропии набора.\nОстаются токены, чья кумулятивная вероятность близка к заданному порогу (например, 0,5), выделяя те, которые имеют среднее информационное содержание.\nУстановите значение 1.0, чтобы отключить.",
"Min P sets a base minimum probability": "Min P устанавливает базовую минимальную вероятность. Она масштабируется в зависимости от вероятности верхнего токена.\nЕсли вероятность верхнего токена составляет 80%, а Min P - 0.1, будут рассматриваться только токены с вероятностью выше 8%.\nУстановите значение 0, чтобы отключить.",
"Top A sets a threshold for token selection based on the square of the highest token probability": "Top A устанавливает порог для отбора токенов на основе квадрата наибольшей вероятности токена.\nЕсли значение Top A равно 0.2, а вероятность верхнего токена равна 50%, то токены с вероятностью ниже 5% (0.2 * 0.5^2) будут исключены.\nУстановите значение 0, чтобы отключить.",
"Tail-Free Sampling (TFS)": "Tail-Free Sampling (TFS) ищет хвост маловероятных токнов в распределении,\n анализируя скорость изменения вероятностей токенов с помощью производных. Он сохраняет токены до порога (например, 0.3), основанного на нормированной второй производной.\nЧем ближе к 0, тем больше отброшенных токенов. Установите значение 1.0, чтобы отключить.",
"Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Epsilon cutoff устанавливает уровень вероятности, ниже которого токены исключаются из выборки.\nВ единицах 1e-4; разумное значение - 3.\nУстановите 0, чтобы отключить.",
"Scale Temperature dynamically per token, based on the variation of probabilities": "Динамическое масштабирование Temperature для каждого токена, основанное на изменении вероятностей.",
"Minimum Temp": "Минимальная Temp",
"Maximum Temp": "Максимальная Temp",
"Exponent": "Экспонента",
"Mirostat Mode": "Режим",
"Mirostat Tau": "Tau",
"Mirostat Eta": "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": "Сила условия регуляризации контрастивного поиска. Установите значение 0, чтобы отключить CS.",
"Temperature Last": "Temperature Last",
"Use the temperature sampler last": "Использовать Temperature сэмплер в последнюю очередь. Это почти всегда разумно.\nПри включении: сначала выборка набора правдоподобных токенов, затем применение Temperature для корректировки их относительных вероятностей (технически, логитов).\nПри отключении: сначала применение Temperature для корректировки относительных вероятностей ВСЕХ токенов, затем выборка правдоподобных токенов из этого.\nОтключение Temperature Last увеличивает вероятности в хвосте распределения, что увеличивает шансы получить несогласованный ответ.",
"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": "Удалите свой личный OAI API Key из панели 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": "Temperature",
"Frequency Penalty": "Штраф за частоту",
"Presence Penalty": "Штраф за присутствие",
"Top-p": "Top P",
"Display bot response text chunks as they are generated": "Отображать ответ ИИ по мере генерации текста",
"Top A": "Top А",
"Typical Sampling": "Typical Sampling",
"Tail Free Sampling": "Tail Free Sampling",
"Rep. Pen. Slope": "Rep. Pen. Slope",
"Single-line mode": "Режим одной строки",
"Top K": "Top K",
"Top P": "Top 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": "Поиск Beam",
"Number of Beams": "Количество Beam",
"Length Penalty": "Штраф за длину",
"Early Stopping": "Преждевременная остановка",
"Contrastive search": "Контрастный поиск",
"Penalty Alpha": "Penalty Alpha",
"Seed": "Зерно",
"Epsilon Cutoff": "Epsilon Cutoff",
"Eta Cutoff": "Eta Cutoff",
"Negative Prompt": "Отрицательная подсказка",
"Mirostat (mode=1 is only for llama.cpp)": "Mirostat",
"Mirostat is a thermostat for output perplexity": "Mirostat - это термостат для недоумения на выходе.\nMirostat подгоняет недоумение на выходе к недоумению на входе, что позволяет избежать ловушки повторения.\n(когда по мере того, как авторегрессионный вывод производит текст, недоумение на выходе стремится к нулю)\n и ловушки путаницы (когда недоумение расходится)\nДля подробностей смотрите статью Mirostat: A Neural Text Decoding Algorithm that Directly Controls Perplexity by Basu et al. (2020).\nРежим выбирает версию Mirostat. 0=отключить, 1=Mirostat 1.0 (только llama.cpp), 2=Mirostat 2.0.",
"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.": "Вставлять JailBreak последним системным сообщением.",
"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-инструкцию в начале для усиления его эффекта",
"Streaming": "Потоковый вывод текста",
"Dynamic Temperature": "Динамическая Temperature",
"Restore current preset": "Восстановить текущую предустановку",
"Neutralize Samplers": "Нейтрализовать сэмплеры",
"Text Completion presets": "Предустановки Text Completion",
"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 токенов.\nУвеличивайте только если вы знаете, что делаете.",
"Display the response bit by bit as it is generated": "Отображение ответа бит за битом по мере его генерации.\nКогда этот параметр выключен, ответы будут отображаться все сразу после их завершения.",
"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": "Позволяет использовать базу знаний, улучшающую узнаваемость ИИ публичных лиц и вымышленных персонажей",
"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": "Инструкция для JailBreak",
"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": "Посмотреть/Настроить предустановку для bias",
"Add bias entry": "Добавить инструкцию в Bias",
"Jailbreak activation message": "Сообщение об активации JailBreak",
"Message to send when auto-jailbreak is on.": "Сообщение, отправляемое когда автоматический JailBreak включен.",
"Jailbreak confirmation reply": "Подтверждение JailBreak",
"Bot must send this back to confirm jailbreak": "Это сообщение будет отправлено ИИ при успешном включении 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 (Режим обёртки API 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": "Tabby API-ключ",
"Get it here:": "Получить здесь:",
"Register": "Регистрация",
"TogetherAI Model": "Модель TogetherAI",
"Example: 127.0.0.1:5001": "Пример: http://127.0.0.1:5001",
"ggerganov/llama.cpp": "ggerganov/llama.cpp (сервер вывода)",
"Example: 127.0.0.1:8080": "Пример: http://127.0.0.1:8080",
"Example: 127.0.0.1:11434": "Пример: http://127.0.0.1:11434",
"Ollama Model": "Модель Ollama",
"Download": "Скачать",
"TogetherAI API Key": "TogetherAI API-ключ",
"-- Connect to the API --": "-- Подключитесь к API --",
"View my Kudos": "Посмотреть мой рейтинг(Kudos)",
"Enter": "Вставьте",
"to use anonymous mode.": "чтобы использовать анонимный режим.",
"For privacy reasons": "В целях конфиденциальности API-ключ будет скрыт после перезагрузки страницы",
"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 ключ!):",
"Blocking API url": "Блокирующий API url",
"Example: 127.0.0.1:5000": "Пример: http://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.": "для получения API-ключа OpenAI",
"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.": "Файлы cookie 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-ключи",
"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)": "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": "Порядок Anchors",
"Character then Style": "Персонаж после Стиля",
"Style then Character": "Стиль после Персонажа",
"Character Anchor": "Anchors Персонажа",
"Style Anchor": "Стиль Anchors",
"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": "Рeжим Вайфу",
"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": "Импрот Lorebook-ка",
"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": "Сбросить MovingUI",
"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": "Автоматическое исправление подчеркиваний",
"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-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": "Отправлять 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": "Источник для 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 в состоянии простоя на благо 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 Horde",
"Text Gen WebUI (ooba)": "Text Gen WebUI (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": "Строки без разметки",
"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 ↗": "Уник. ID ↗",
"UID ↘": "Уник. ID ↘",
"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 seperated (ignored if empty)": "Разделение запятыми (не используется, если оставлено пустым)",
"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": "↑АЗ",
"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": "Сообщение ИИ",
"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": "Потоковый FPS",
"Gestures": "Жесты",
"Message IDs": "ID сообщений",
"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": "Уменьшитm высоту чата и поместить статичный спрайт за окном чата.",
"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": "Запросить импорт информации о мире/Lorebook для каждого нового персонажа со встроенным Lorebook. Если флажок снят, вместо этого будет показано короткое сообщение.",
"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": "Предварительная настройка MovingUI. Предопределенные/сохраненные позиции для перетаскивания.",
"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": "Разрешить в групповых сообщениях AI содержать реплики, произнесенные другими членами группы.",
"Requests logprobs from the API for the Token Probabilities feature": "Запросить логпробы из API для функции Token Probabilities.",
"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": "A-Z",
"Z-A": "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 API, Window/OpenRouter, и Режима Instruct)",
"Insert {{original}} into either box to include the respective default prompt from system settings.": "Внесите {{original}} в любое поле для внесения стандартных инструкций из системных настроек",
"Main Prompt": "Главные инструкции",
"Jailbreak": "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!": "Нет подключения к 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": "НСФВ блокировка идет первой при отправки Промта",
"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": "Получите свой OpenRouter API токен используя 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.]": "Пример:\n [{{user}} is a 28-year-old Romanian cat girl.]",
"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.": "Скачивание этого персонажа так же будет включать в себя закрепленный за ним Сведения",
"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": "Скачать чат в формте .txt",
"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": "Вставить файл или изображение"
}

861
public/locales/uk-ua.json Normal file
View File

@ -0,0 +1,861 @@
{
"clickslidertips": "Натисніть, щоб ввести значення вручну.",
"kobldpresets": "Налаштування Kobold",
"guikoboldaisettings": "З інтерфейсу KoboldAI",
"novelaipreserts": "Налаштування NovelAI",
"default": "За замовчуванням",
"openaipresets": "Налаштування OpenAI",
"text gen webio(ooba) presets": "Налаштування Text Completion",
"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": "Температура",
"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, щоб вимкнути контрастний пошук",
"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": "Налаштування Text Completion",
"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": "Інструктувати використати знання моделі для покращення визначень публічних осіб і відомих вигаданих персонажів",
"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": "Запит, який використовується, коли увімкнено перемикач джейлбрейку",
"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 API)",
"Register a Horde account for faster queue times": "Зареєструйте обліковий запис Horde для швидшого часу очікування в черзі",
"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:": "Отримайте його тут:",
"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.": "Файли cookie 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)": "Показати зовнішні моделі (надані 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": "Дозволити для Chat Completion 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": "Режим візуальної новели",
"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-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}": "${characterName}",
"CHAR": "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": "Джерело 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 до 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 Horde",
"Text Gen WebUI (ooba)": "Веб-інтерфейс генерації тексту (ooba)",
"NovelAI": "NovelAI",
"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": "Налаштування",
"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 ↗",
"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": "↑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)": "Перевизначення запитів (для 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": "Ім'я автора",
"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 специфікація: 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": "Що це ключове слово повинно означати для ШІ, надсилається дослівно",
"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": "Експортувати файл теми"
}

863
public/locales/vi-vn.json Normal file
View File

@ -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ủ đề"
}

552
public/locales/zh-cn.json Normal file
View File

@ -0,0 +1,552 @@
{
"UI Language": "语言",
"clickslidertips": "点击滑块右侧数字可手动输入",
"kobldpresets": "Kobold 预设",
"guikoboldaisettings": "KoboldAI GUI 设置",
"novelaipreserts": "NovelAI 预设",
"default": "默认",
"openaipresets": "OpenAI 预设",
"text gen webio(ooba) presets": "Text generation web UI 预设",
"response legth(tokens)": "响应长度Tokens",
"select": "选择 ",
"context size(tokens)": "上下文大小Tokens",
"unlocked": "解锁",
"Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "只有在选定的模型支持大于 4096 个Token时可以选择启用。在启用该选项时你应该知道自己在做什么。",
"rep.pen": "重复惩罚",
"rep.pen range": "重复惩罚范围",
"temperature": "温度",
"Encoder Rep. Pen.": "编码器重复惩罚",
"No Repeat Ngram Size": "不重复N元语法大小",
"Min Length": "最小长度",
"OpenAI Reverse Proxy": "OpenAI API 反向代理",
"Alternative server URL (leave empty to use the default value).": "自定义 OpenAI API 的反向代理地址 (留空时使用 OpenAI 默认服务器)。",
"Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "在输入内容之前,从 API 面板中删除 OpenAI API 密钥",
"We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "我们无法为使用自定义 OpenAI API 反向代理时遇到的问题提供支持",
"Legacy Streaming Processing": "传统流式处理",
"Enable this if the streaming doesn't work with your proxy": "如果流式回复与您的代理不兼容,请启用此功能",
"Context Size (tokens)": "上下文大小Tokens",
"Max Response Length (tokens)": "最大响应长度Tokens",
"Temperature": "温度",
"Frequency Penalty": "频率惩罚",
"Presence Penalty": "存在惩罚",
"Top-p": "Top P",
"Display bot response text chunks as they are generated": "显示机器人生成的响应文本块",
"Top A": "Top A",
"Typical Sampling": "典型采样",
"Tail Free Sampling": "无尾采样",
"Rep. Pen. Slope": "重复惩罚梯度",
"Single-line mode": "单行模式",
"Top K": "Top-K",
"Top P": "Top-P",
"Typical P": "典型 P",
"Do Sample": "样本测试",
"Add BOS Token": "添加 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 Token",
"Ban the eos_token. This forces the model to never end the generation prematurely": "禁止 EOS Token这会迫使模型不会过早结束生成。",
"Skip Special Tokens": "跳过特殊 Tokens",
"Beam search": "Beam 搜索",
"Number of Beams": "Beams 的数量",
"Length Penalty": "长度惩罚",
"Early Stopping": "提前终止",
"Contrastive search": "对比搜索",
"Penalty Alpha": "惩罚系数",
"Seed": "随机种子",
"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": "流式生成",
"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).": "每个请求仅生成一行(仅限 KoboldAI被 KoboldCpp 忽略)。",
"Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "禁止序列结束 (EOS) token使用 KoboldCpp也可能使用 KoboldAI 禁止其他 token。",
"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": "使用 OpenAI 知识库增强公众人物和已知虚构人物的定义",
"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": "越狱开关打开时使用的提示",
"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": "影响机器人响应中的行为",
"API": "API",
"KoboldAI": "KoboldAI",
"Use Horde": "使用 Horde",
"API url": "API 地址",
"Register a Horde account for faster queue times": "注册帐户以加快排队时间",
"Learn how to contribute your idle GPU cycles to the Hord": "学习如何将闲置的显卡计算资源贡献给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.": "按住控制/命令键选择多个模型。",
"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": "无连接",
"oobabooga/text-generation-webui": "",
"Make sure you run it with": "确保启动时包含 --api 参数",
"Blocking API url": "阻塞式 API 地址",
"Streaming API url": "流式传输 API 地址",
"to get your OpenAI API key.": "获取您的 OpenAI API 密钥。",
"OpenAI Model": "OpenAI模型",
"View API Usage Metrics": "查看 API 使用情况",
"Bot": "Bot",
"Connect to the API": "连接到 API",
"Auto-connect to Last Server": "自动连接到最后设置的 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": "启用",
"Wrap Sequences with Newline": "用换行符换行序列",
"Include Names": "包括名称",
"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": "上下文格式",
"Tokenizer": "Tokenizer",
"None / Estimated": "无/估计",
"Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)",
"Token Padding": "Token 填充",
"Always add character's name to prompt": "始终将角色名称添加到提示中",
"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": "样式锚点",
"Scan Depth": "扫描深度",
"depth": "深度",
"Token Budget": "Token 预算",
"budget": "预算",
"Recursive scanning": "递归扫描",
"None": "没有",
"User Settings": "聊天窗口设置",
"UI Customization": "聊天窗口自定义",
"Avatar Style": "头像风格",
"Circle": "圆形",
"Rectangle": "长方形",
"Chat Style": "聊天窗口样式:",
"Default": "默认",
"Bubbles": "气泡",
"Chat Width (PC)": "聊天窗口宽度(电脑):",
"No Blur Effect": "关闭模糊效果",
"No Text Shadows": "关闭文字阴影",
"Waifu Mode": "♡ 老 婆 模 式 ♡",
"Message Timer": "消息计时器",
"Characters Hotswap": "角色热插拔",
"Movable UI Panels": "可移动的UI面板",
"Reset Panels": "重置面板",
"UI Colors": "UI颜色",
"Main Text": "正文",
"Italics Text": "斜体文字",
"Quote Text": "引用文字",
"Shadow Color": "阴影颜色",
"FastUI BG": "快速UI背景",
"Blur Tint": "模糊色调",
"Font Scale": "字体缩放",
"Blur Strength": "模糊强度",
"Text Shadow Width": "文字阴影宽度",
"UI Theme Preset": "UI主题预设",
"Power User Options": "高级用户选项",
"Swipes": "滑动",
"Background Sound Only": "仅背景声音",
"Auto-load Last Chat": "自动加载上次聊天",
"Auto-save Message Edits": "自动保存已编辑的消息",
"Auto-fix Markdown": "自动修复 Markdown 格式",
"Allow {{char}}: in bot messages": "允许 {{char}}:在机器人消息中",
"Allow {{user}}: in bot messages": "允许 {{user}}:在机器人消息中",
"Auto-scroll Chat": "自动滚动聊天界面",
"Render Formulas": "渲染公式",
"Send on Enter": "按下回车键发送",
"Always disabled": "始终禁用",
"Automatic (desktop)": "自动(电脑)",
"Always enabled": "始终启用",
"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 Entry": "新条目",
"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": "这个关键词对 AI 意味着什么",
"Memo/Note": "笔记",
"Not sent to AI": "未发送到 AI",
"Constant": "常数 ",
"Selective": "选择",
"Before Char": "在Char之前",
"After Char": "在Char之后",
"Insertion Order": "插入顺序",
"Tokens:": "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": "AI 消息提示音",
"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 template": "世界背景格式模板",
"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": "学习如何将闲置的显卡计算资源贡献给Horde",
"Trusted workers only": "仅限可信赖的 Workers",
"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": "获取您的 NovelAI API 密钥",
"KoboldAI Horde": "KoboldAI Horde",
"Text Gen WebUI (ooba)": "Text Gen WebUI (ooba)",
"NovelAI": "NovelAI",
"Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)": "Chat Completion (OpenAI, Claude, Window/OpenRouter, Scale)",
"OpenAI API key": "OpenAI API 密钥",
"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": "世界/Lorebooks",
"Active World(s)": "激活的世界",
"Character Lore Insertion Strategy": "角色背景插入策略",
"Sorted Evenly": "均匀排序",
"Character Lore First": "角色背景优先",
"Global Lore First": "全局背景优先",
"-- World Info not found --": "-- 世界背景未找到 --",
"Recursive Scan": "归递扫描",
"Case Sensitive": "区分大小写",
"Match whole words": "匹配整个单词",
"World/Lore Editor": "世界/Lore 编辑",
"--- None ---": "--- 全无 ---",
"Comma seperated (ignored if empty)": "逗号分隔 (如果为空则忽略)",
"Use Probability": "使用概率",
"Exclude from recursion": "从递归中排除",
"Position:": "插入位置:",
"Before Char Defs": "角色定义之前",
"After Char Defs": "角色定义之后",
"Before AN": "作者注释之前",
"After AN": "作者注释之后",
"Order:": "排序",
"Probability:": "概率",
"Delete Entry": "删除条目",
"User Message Blur Tint": "用户消息模糊颜色",
"AI Message Blur Tint": "AI 消息模糊颜色",
"Chat Style:": "聊天窗口样式:",
"Chat Width (PC):": "聊天窗口宽度 (电脑)",
"Chat Timestamps": "聊天时间戳",
"Message IDs": "消息 ID",
"Prefer Character Card Prompt": "首选角色卡提示",
"Prefer Character Card Jailbreak": "首选角色卡越狱",
"Press Send to continue": "按下发送按钮继续",
"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": "重新加载聊天窗口",
"Not Connected": "未连接",
"Persona Management": "用户角色设置",
"Persona Description": "用户角色描述",
"In Story String / Chat Completion: Before Character Card": "在故事字符串 / 聊天补全中: 角色卡之前",
"In Story String / Chat Completion: After Character Card": "在故事字符串 / 聊天补全中: 角色卡之后",
"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": "A-Z",
"Z-A": "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": "重复惩罚",
"Epsilon Cutoff": "Epsilon 切断",
"Eta Cutoff": "Eta 切断",
"Rep. Pen. Range.": "重复惩罚范围",
"Rep. Pen. Freq.": "重复频率惩罚",
"Rep. Pen. Presence": "重复存在惩罚",
"Enter it in the box below:": "在下面的框中输入:",
"separate with commas w/o space between": "用逗号分隔,不要空格",
"Document": "文档",
"Continue": "继续",
"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)": "Bot制作者的名字/联系信息)",
"(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": "这个关键词对AI来说应该是什么意思逐字递送",
"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": "删除该预设",
"Inserts jailbreak as a last system message": "将越狱插入为最后一个系统消息",
"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.": "通过只排队已批准的worker来帮助处理不良响应。可能会减慢响应时间。",
"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": "编辑",
"World Info": "世界背景",
"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": "删除世界背景",
"Rename World Info": "重命名世界背景",
"Save changes to a new theme file": "将更改保存到新主题文件中",
"removes blur and uses alternative background color for divs": "去除模糊并为div使用替代的背景颜色",
"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.": "如果选中并且角色卡包含越狱覆盖(发布历史指令),请改用该选项。",
"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.": "Token 计数可能不准确,仅供参考。",
"Click to select a new avatar for this character": "点击选择此角色的新头像",
"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": "主要的 Lorebook",
"A selected World Info will be bound to this character as its own Lorebook.": "所选择的世界背景将作为其自己的 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数据中的 Lorebook 文件。",
"Additional Lorebooks": "其他 Lorebook",
"Associate one or more auxillary Lorebooks with this character.": "将一个或多个辅助的 Lorebook 与这个角色关联。",
"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": "删除角色"
}

View File

@ -22,7 +22,7 @@ import {
parseTabbyLogprobs,
} from './scripts/textgen-settings.js';
const { MANCER, TOGETHERAI, OOBA, APHRODITE, OLLAMA, INFERMATICAI, OPENROUTER } = textgen_types;
const { MANCER, TOGETHERAI, OOBA, APHRODITE, OLLAMA, INFERMATICAI, DREAMGEN, OPENROUTER } = textgen_types;
import {
world_info,
@ -148,9 +148,10 @@ import {
getBase64Async,
humanFileSize,
Stopwatch,
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,
@ -172,6 +173,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';
@ -196,7 +198,7 @@ import { createPersona, initPersonas, selectCurrentPersona, setPersonaDescriptio
import { getBackgrounds, initBackgrounds, loadBackgroundSettings, background_settings } from './scripts/backgrounds.js';
import { hideLoader, showLoader } from './scripts/loader.js';
import { BulkEditOverlay, CharacterContextMenu } from './scripts/BulkEditOverlay.js';
import { loadMancerModels, loadOllamaModels, loadTogetherAIModels, loadInfermaticAIModels, loadOpenRouterModels } from './scripts/textgen-models.js';
import { loadMancerModels, loadOllamaModels, loadTogetherAIModels, loadInfermaticAIModels, loadOpenRouterModels, loadAphroditeModels, loadDreamGenModels } from './scripts/textgen-models.js';
import { appendFileContent, hasPendingFileAttachment, populateFileAttachment, decodeStyleTags, encodeStyleTags } from './scripts/chats.js';
import { initPresetManager } from './scripts/preset-manager.js';
import { evaluateMacros } from './scripts/macros.js';
@ -398,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();
@ -463,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 = {};
@ -689,6 +696,8 @@ function reloadMarkdownProcessor(render_formulas = false) {
literalMidWordUnderscores: true,
parseImgDimensions: true,
tables: true,
underline: true,
extensions: [markdownUnderscoreExt()],
});
}
@ -741,6 +750,7 @@ let create_save = {
alternate_greetings: [],
depth_prompt_prompt: '',
depth_prompt_depth: depth_prompt_depth_default,
extensions: {},
};
//animation right menu
@ -1060,9 +1070,15 @@ async function getStatusTextgen() {
} else if (textgen_settings.type === INFERMATICAI) {
loadInfermaticAIModels(data?.data);
online_status = textgen_settings.infermaticai_model;
} else if (textgen_settings.type === DREAMGEN) {
loadDreamGenModels(data?.data);
online_status = textgen_settings.dreamgen_model;
} else if (textgen_settings.type === OPENROUTER) {
loadOpenRouterModels(data?.data);
online_status = textgen_settings.openrouter_model;
} else if (textgen_settings.type === APHRODITE) {
loadAphroditeModels(data?.data);
online_status = textgen_settings.aphrodite_model;
} else {
online_status = data?.result;
}
@ -1204,7 +1220,7 @@ function getCharacterBlock(item, id) {
template.toggleClass('is_fav', item.fav || item.fav == 'true');
template.find('.ch_fav').val(item.fav);
const description = item.data?.creator_notes?.split('\n', 1)[0] || '';
const description = item.data?.creator_notes || '';
if (description) {
template.find('.ch_description').text(description);
}
@ -1373,6 +1389,28 @@ export async function getOneCharacter(avatarUrl) {
}
}
function getCharacterSource(chId = this_chid) {
const character = characters[chId];
if (!character) {
return '';
}
const chubId = characters[chId]?.data?.extensions?.chub?.full_path;
if (chubId) {
return `https://chub.ai/characters/${chubId}`;
}
const pygmalionId = characters[chId]?.data?.extensions?.pygmalion_id;
if (pygmalionId) {
return `https://pygmalion.chat/${pygmalionId}`;
}
return '';
}
async function getCharacters() {
var response = await fetch('/api/characters/all', {
method: 'POST',
@ -1490,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
@ -1508,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) {
@ -1595,6 +1638,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
@ -1784,7 +1831,7 @@ function getMessageFromTemplate({
tokenCount,
extra,
} = {}) {
const mes = $('#message_template .mes').clone();
const mes = messageTemplate.clone();
mes.attr({
'mesid': mesId,
'ch_name': characterName,
@ -1878,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') : '';
@ -1894,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 = '';
@ -1930,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,
@ -1957,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);
}
}
@ -1983,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 () {
@ -2034,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) {
@ -2139,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) {
@ -2157,11 +2157,11 @@ function scrollChatToBottom() {
/**
* Substitutes {{macro}} parameters in a string.
* @param {string} content - The string to substitute parameters in.
* @param {*} _name1 - The name of the user. Uses global name1 if not provided.
* @param {*} _name2 - The name of the character. Uses global name2 if not provided.
* @param {*} _original - The original message for {{original}} substitution.
* @param {*} _group - The group members list for {{group}} substitution.
* @param {boolean} _replaceCharacterCard - Whether to replace character card macros.
* @param {string} [_name1] - The name of the user. Uses global name1 if not provided.
* @param {string} [_name2] - The name of the character. Uses global name2 if not provided.
* @param {string} [_original] - The original message for {{original}} substitution.
* @param {string} [_group] - The group members list for {{group}} substitution.
* @param {boolean} [_replaceCharacterCard] - Whether to replace character card macros.
* @returns {string} The string with substituted parameters.
*/
function substituteParams(content, _name1, _name2, _original, _group, _replaceCharacterCard = true) {
@ -2484,12 +2484,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) : '';
@ -3150,6 +3150,20 @@ async function Generate(type, { automatic_trigger, force_name2, quiet_prompt, qu
//////////////////////////////////
// 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, '');
// 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 = [];
let continue_mag = '';
for (let i = coreChat.length - 1, j = 0; i >= 0; i--, j++) {
@ -5312,12 +5326,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'] = [];
@ -5928,7 +5942,7 @@ async function saveSettings(type) {
}
export function setGenerationParamsFromPreset(preset) {
const needsUnlock = preset.max_length > MAX_CONTEXT_DEFAULT || preset.genamt > MAX_RESPONSE_DEFAULT;
const needsUnlock = (preset.max_length ?? max_context) > MAX_CONTEXT_DEFAULT || (preset.genamt ?? amount_gen) > MAX_RESPONSE_DEFAULT;
$('#max_context_unlocked').prop('checked', needsUnlock).trigger('change');
if (preset.genamt !== undefined) {
@ -6203,7 +6217,27 @@ export async function displayPastChats() {
const fileName = chat['file_name'];
const chatContent = rawChats[fileName];
return chatContent && Object.values(chatContent).some(message => message?.mes?.toLowerCase()?.includes(searchQuery.toLowerCase()));
// // Uncomment this to return to old behavior (classical full-substring search).
// return chatContent && Object.values(chatContent).some(message => message?.mes?.toLowerCase()?.includes(searchQuery.toLowerCase()));
// Fragment search a.k.a. swoop (as in `helm-swoop` in the Helm package of Emacs).
// Split a `query` {string} into its fragments {string[]}.
function makeQueryFragments(query) {
let fragments = query.trim().split(/\s+/).map(str => str.trim().toLowerCase()).filter(onlyUnique);
// fragments = fragments.filter( function(str) { return str.length >= 3; } ); // Helm does this, but perhaps better if we don't.
return fragments;
}
// Check whether `text` {string} includes all of the `fragments` {string[]}.
function matchFragments(fragments, text) {
if (!text) {
return false;
}
return fragments.every(item => text.includes(item));
}
const fragments = makeQueryFragments(searchQuery);
// At least one chat message must match *all* the fragments.
// Currently, this doesn't match if the fragment matches are distributed across several chat messages.
return chatContent && Object.values(chatContent).some(message => matchFragments(fragments, message?.mes?.toLowerCase()));
});
console.debug(filteredData);
@ -6252,6 +6286,14 @@ export async function displayPastChats() {
const searchQuery = $(this).val();
debouncedDisplay(searchQuery);
});
// UX convenience: Focus the search field when the Manage Chat Files view opens.
setTimeout(function () {
const textSearchElement = $('#select_chat_search');
textSearchElement.click();
textSearchElement.focus();
textSearchElement.select(); // select content (if any) for easy erasing
}, 200);
}
function selectRightMenuWithAnimation(selectedMenuId) {
@ -6414,7 +6456,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(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 || '');
@ -6484,7 +6526,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(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);
@ -7093,6 +7135,11 @@ async function createOrEditCharacter(e) {
formData.set('fav', fav_ch_checked);
if ($('#form_create').attr('actiontype') == 'createcharacter') {
if ($('#character_name_pole').val().length > 0) {
if (is_group_generating || is_send_press) {
toastr.error('Cannot create characters while generating. Stop the request and try again.', 'Creation aborted');
throw new Error('Cannot import character while generating');
}
//if the character name text area isn't empty (only posible when creating a new character)
let url = '/api/characters/create';
@ -7105,6 +7152,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,
@ -7137,6 +7186,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 => {
@ -7257,7 +7307,7 @@ window['SillyTavern'].getContext = function () {
chatMetadata: chat_metadata,
streamingProcessor,
eventSource: eventSource,
event_types: event_types,
eventTypes: event_types,
addOneMessage: addOneMessage,
generate: Generate,
getTokenCount: getTokenCount,
@ -7284,8 +7334,15 @@ window['SillyTavern'].getContext = function () {
ModuleWorkerWrapper: ModuleWorkerWrapper,
getTokenizerModel: getTokenizerModel,
generateQuietPrompt: generateQuietPrompt,
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,
};
};
@ -7719,6 +7776,11 @@ const CONNECT_API_MAP = {
button: '#api_button_textgenerationwebui',
type: textgen_types.INFERMATICAI,
},
'dreamgen': {
selected: 'textgenerationwebui',
button: '#api_button_textgenerationwebui',
type: textgen_types.DREAMGEN,
},
'openrouter-text': {
selected: 'textgenerationwebui',
button: '#api_button_textgenerationwebui',
@ -7845,6 +7907,11 @@ export async function processDroppedFiles(files, preserveFileNames = false) {
* @returns {Promise<void>}
*/
async function importCharacter(file, preserveFileName = false) {
if (is_group_generating || is_send_press) {
toastr.error('Cannot import characters while generating. Stop the request and try again.', 'Import aborted');
throw new Error('Cannot import character while generating');
}
const ext = file.name.match(/\.(\w+)$/);
if (!ext || !(['json', 'png', 'yaml', 'yml'].includes(ext[1].toLowerCase()))) {
return;
@ -8381,8 +8448,13 @@ jQuery(async function () {
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;
@ -8391,6 +8463,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');
}
}
@ -8631,39 +8704,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 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();
@ -8768,8 +8825,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('<h3>Start new chat?</h3>');
callPopup(`
<h3>Start new chat?</h3><br>
<label for="del_chat_checkbox" class="checkbox_label justifyCenter"
title="If necessary, you can later restore this chat file from the /backups folder">
<input type="checkbox" id="del_chat_checkbox" />
<span>Also delete the current chat file</span>
</label><br>
`, 'new_chat', '');
}
}
@ -9766,6 +9829,40 @@ jQuery(async function () {
await importEmbeddedWorldInfo();
saveCharacterDebounced();
break;
case 'character_source': {
const source = getCharacterSource(this_chid);
if (source && isValidUrl(source)) {
const url = new URL(source);
const confirm = await callPopup(`Open ${url.hostname} in a new tab?`, 'confirm');
if (confirm) {
window.open(source, '_blank');
}
} else {
toastr.info('This character doesn\'t seem to have a source.');
}
} break;
case 'replace_update': {
const confirm = await callPopup('<p><b>Choose a new character card to replace this character with.</b></p><p>All chats, assets and group memberships will be preserved, but local changes to the character data will be lost.</p><p>Proceed?</p>', 'confirm', '');
if (confirm) {
async function uploadReplacementCard(e) {
const file = e.target.files[0];
if (!file) {
return;
}
try {
const cloneFile = new File([file], characters[this_chid].avatar, { type: file.type });
const chatFile = characters[this_chid]['chat'];
await processDroppedFiles([cloneFile], true);
await openCharacterChat(chatFile);
} catch {
toastr.error('Failed to replace the character card.', 'Something went wrong');
}
}
$('#character_replace_file').off('change').on('change', uploadReplacementCard).trigger('click');
}
} break;
/*case 'delete_button':
popup_type = "del_ch";
callPopup(`
@ -9932,10 +10029,10 @@ jQuery(async function () {
const html = `<h3>Enter the URL of the content to import</h3>
Supported sources:<br>
<ul class="justifyLeft">
<li>Chub characters (direct link or id)<br>Example: <tt>Anonymous/example-character</tt></li>
<li>Chub lorebooks (direct link or id)<br>Example: <tt>lorebooks/bartleby/example-lorebook</tt></li>
<li>JanitorAI character (direct link or id)<br>Example: <tt>https://janitorai.com/characters/ddd1498a-a370-4136-b138-a8cd9461fdfe_character-aqua-the-useless-goddess</tt></li>
<li>Pygmalion.chat character (link)<br>Example: <tt>https://pygmalion.chat/character/a7ca95a1-0c88-4e23-91b3-149db1e78ab9</tt></li>
<li>Chub Character (Direct Link or ID)<br>Example: <tt>Anonymous/example-character</tt></li>
<li>Chub Lorebook (Direct Link or ID)<br>Example: <tt>lorebooks/bartleby/example-lorebook</tt></li>
<li>JanitorAI Character (Direct Link or UUID)<br>Example: <tt>ddd1498a-a370-4136-b138-a8cd9461fdfe_character-aqua-the-useless-goddess</tt></li>
<li>Pygmalion.chat Character (Direct Link or UUID)<br>Example: <tt>a7ca95a1-0c88-4e23-91b3-149db1e78ab9</tt></li>
<li>More coming soon...</li>
<ul>`;
const input = await callPopup(html, 'input', '', { okButton: 'Import', rows: 4 });
@ -9946,13 +10043,23 @@ jQuery(async function () {
}
const url = input.trim();
console.debug('Custom content import started', url);
var request;
const request = await fetch('/api/content/import', {
method: 'POST',
headers: getRequestHeaders(),
body: JSON.stringify({ url }),
});
if (isValidUrl(url)) {
console.debug('Custom content import started for URL: ', url);
request = await fetch('/api/content/importURL', {
method: 'POST',
headers: getRequestHeaders(),
body: JSON.stringify({ url }),
});
} else {
console.debug('Custom content import started for Char UUID: ', url);
request = await fetch('/api/content/importUUID', {
method: 'POST',
headers: getRequestHeaders(),
body: JSON.stringify({ url }),
});
}
if (!request.ok) {
toastr.info(request.statusText, 'Custom content import failed');

View File

@ -1334,12 +1334,12 @@ class PromptManager {
<select id="${this.configuration.prefix}prompt_manager_footer_append_prompt" class="text_pole" name="append-prompt">
${prompts}
</select>
<a class="menu_button fa-chain fa-solid" title="Insert prompt" data-i18n="Insert"></a>
<a class="caution menu_button fa-x fa-solid" title="Delete prompt" data-i18n="Delete"></a>
<a class="menu_button fa-file-import fa-solid" id="prompt-manager-import" title="Import a prompt list" data-i18n="Import"></a>
<a class="menu_button fa-file-export fa-solid" id="prompt-manager-export" title="Export this prompt list" data-i18n="Export"></a>
<a class="menu_button fa-undo fa-solid" id="prompt-manager-reset-character" title="Reset current character" data-i18n="Reset current character"></a>
<a class="menu_button fa-plus-square fa-solid" title="New prompt" data-i18n="New"></a>
<a class="menu_button fa-chain fa-solid" title="Insert prompt" data-i18n="[title]Insert prompt"></a>
<a class="caution menu_button fa-x fa-solid" title="Delete prompt" data-i18n="[title]Delete prompt"></a>
<a class="menu_button fa-file-import fa-solid" id="prompt-manager-import" title="Import a prompt list" data-i18n="[title]Import a prompt list"></a>
<a class="menu_button fa-file-export fa-solid" id="prompt-manager-export" title="Export this prompt list" data-i18n="[title]Export this prompt list"></a>
<a class="menu_button fa-undo fa-solid" id="prompt-manager-reset-character" title="Reset current character" data-i18n="[title]Reset current character"></a>
<a class="menu_button fa-plus-square fa-solid" title="New prompt" data-i18n="[title]New prompt"></a>
</div>
`;

View File

@ -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('<small><span><i class="fa-solid fa-star"></i> Favorite characters to add them to HotSwaps</span></small>'); }
if (count === 0) {
container.html('<small><span data-i18n="Favorite characters to add them to HotSwaps"><i class="fa-solid fa-star"></i> Favorite characters to add them to HotSwaps</span></small>');
}
//otherwise replace with fav'd characters
if (count > 0) {
container.replaceWith(newContainer);
@ -391,8 +393,9 @@ function RA_autoconnect(PrevApi) {
case 'textgenerationwebui':
if ((textgen_settings.type === textgen_types.MANCER && secret_state[SECRET_KEYS.MANCER])
|| (textgen_settings.type === textgen_types.TOGETHERAI && secret_state[SECRET_KEYS.TOGETHERAI])
|| (textgen_settings.type === textgen_types.INFERMATICAI && secret_state[SECRET_KEYS.INFERMATICAI]
|| (textgen_settings.type === textgen_types.OPENROUTER && secret_state[SECRET_KEYS.OPENROUTER]))
|| (textgen_settings.type === textgen_types.INFERMATICAI && secret_state[SECRET_KEYS.INFERMATICAI])
|| (textgen_settings.type === textgen_types.DREAMGEN && secret_state[SECRET_KEYS.DREAMGEN])
|| (textgen_settings.type === textgen_types.OPENROUTER && secret_state[SECRET_KEYS.OPENROUTER])
) {
$('#api_button_textgenerationwebui').trigger('click');
}

View File

@ -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<void>} 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');

View File

@ -284,9 +284,11 @@ jQuery(function () {
(extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openai' && (secret_state[SECRET_KEYS.OPENAI] || extension_settings.caption.allow_reverse_proxy)) ||
(extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openrouter' && secret_state[SECRET_KEYS.OPENROUTER]) ||
(extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'google' && secret_state[SECRET_KEYS.MAKERSUITE]) ||
(extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'anthropic' && secret_state[SECRET_KEYS.CLAUDE]) ||
(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';
@ -316,7 +318,8 @@ jQuery(function () {
$('#caption_multimodal_model').val(extension_settings.caption.multimodal_model);
$('#caption_multimodal_block [data-type]').each(function () {
const type = $(this).data('type');
$(this).toggle(type === extension_settings.caption.multimodal_api);
const types = type.split(',');
$(this).toggle(types.includes(extension_settings.caption.multimodal_api));
});
$('#caption_multimodal_api').on('change', () => {
const api = String($('#caption_multimodal_api').val());
@ -343,7 +346,7 @@ jQuery(function () {
<label for="caption_source">Source</label>
<select id="caption_source" class="text_pole">
<option value="local">Local</option>
<option value="multimodal">Multimodal (OpenAI / llama / Google)</option>
<option value="multimodal">Multimodal (OpenAI / Anthropic / llama / Google)</option>
<option value="extras">Extras</option>
<option value="horde">Horde</option>
</select>
@ -353,8 +356,10 @@ jQuery(function () {
<select id="caption_multimodal_api" class="flex1 text_pole">
<option value="llamacpp">llama.cpp</option>
<option value="ooba">Text Generation WebUI (oobabooga)</option>
<option value="koboldcpp">KoboldCpp</option>
<option value="ollama">Ollama</option>
<option value="openai">OpenAI</option>
<option value="anthropic">Anthropic</option>
<option value="openrouter">OpenRouter</option>
<option value="google">Google MakerSuite</option>
<option value="custom">Custom (OpenAI-compatible)</option>
@ -364,6 +369,9 @@ jQuery(function () {
<label for="caption_multimodal_model">Model</label>
<select id="caption_multimodal_model" class="flex1 text_pole">
<option data-type="openai" value="gpt-4-vision-preview">gpt-4-vision-preview</option>
<option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
<option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
<option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
<option data-type="google" value="gemini-pro-vision">gemini-pro-vision</option>
<option data-type="openrouter" value="openai/gpt-4-vision-preview">openai/gpt-4-vision-preview</option>
<option data-type="openrouter" value="haotian-liu/llava-13b">haotian-liu/llava-13b</option>
@ -372,10 +380,11 @@ jQuery(function () {
<option data-type="ollama" value="llava:latest">llava:latest</option>
<option data-type="llamacpp" value="llamacpp_current">[Currently loaded]</option>
<option data-type="ooba" value="ooba_current">[Currently loaded]</option>
<option data-type="koboldcpp" value="koboldcpp_current">[Currently loaded]</option>
<option data-type="custom" value="custom_current">[Currently selected]</option>
</select>
</div>
<label data-type="openai" class="checkbox_label flexBasis100p" for="caption_allow_reverse_proxy" title="Allow using reverse proxy if defined and valid.">
<label data-type="openai,anthropic" class="checkbox_label flexBasis100p" for="caption_allow_reverse_proxy" title="Allow using reverse proxy if defined and valid.">
<input id="caption_allow_reverse_proxy" type="checkbox" class="checkbox">
Allow reverse proxy
</label>

View File

@ -21,15 +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');
@ -39,7 +41,7 @@ export async function getMultimodalCaption(base64Img, prompt) {
}
const useReverseProxy =
extension_settings.caption.multimodal_api === 'openai'
(extension_settings.caption.multimodal_api === 'openai' || extension_settings.caption.multimodal_api === 'anthropic')
&& extension_settings.caption.allow_reverse_proxy
&& oai_settings.reverse_proxy
&& isValidUrl(oai_settings.reverse_proxy);
@ -75,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';
@ -87,6 +93,8 @@ export async function getMultimodalCaption(base64Img, prompt) {
switch (extension_settings.caption.multimodal_api) {
case 'google':
return '/api/google/caption-image';
case 'anthropic':
return '/api/anthropic/caption-image';
case 'llamacpp':
return '/api/backends/text-completions/llamacpp/caption-image';
case 'ollama':
@ -139,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.');
}

View File

@ -2,7 +2,7 @@ import { callPopup, main_api } from '../../../script.js';
import { getContext } from '../../extensions.js';
import { registerSlashCommand } from '../../slash-commands.js';
import { getFriendlyTokenizerName, getTextTokens, getTokenCount, tokenizers } from '../../tokenizers.js';
import { resetScrollHeight } from '../../utils.js';
import { resetScrollHeight, debounce } from '../../utils.js';
function rgb2hex(rgb) {
rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
@ -38,7 +38,7 @@ async function doTokenCounter() {
</div>`;
const dialog = $(html);
dialog.find('#token_counter_textarea').on('input', () => {
const countDebounced = debounce(() => {
const text = String($('#token_counter_textarea').val());
const ids = main_api == 'openai' ? getTextTokens(tokenizers.OPENAI, text) : getTextTokens(tokenizerId, text);
@ -59,7 +59,8 @@ async function doTokenCounter() {
resetScrollHeight($('#token_counter_textarea'));
resetScrollHeight($('#token_counter_ids'));
});
}, 1000);
dialog.find('#token_counter_textarea').on('input', () => countDebounced());
$('#dialogue_popup').addClass('wide_dialogue_popup');
callPopup(dialog, 'text', '', { wide: true, large: true });

View File

@ -11,7 +11,7 @@ class SileroTtsProvider {
settings;
ready = false;
voices = [];
separator = ' .. ';
separator = ' ';
defaultSettings = {
provider_endpoint: 'http://localhost:8001/tts',

View File

@ -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';
@ -12,6 +12,8 @@ const settings = {
// For both
source: 'transformers',
include_wi: false,
togetherai_model: 'togethercomputer/m2-bert-80M-32k-retrieval',
openai_model: 'text-embedding-ada-002',
// For chats
enabled_chats: false,
@ -428,6 +430,24 @@ async function getSavedHashes(collectionId) {
return hashes;
}
function getVectorHeaders() {
const headers = getRequestHeaders();
switch (settings.source) {
case 'extras':
addExtrasHeaders(headers);
break;
case 'togetherai':
addTogetherAiHeaders(headers);
break;
case 'openai':
addOpenAiHeaders(headers);
break;
default:
break;
}
return headers;
}
/**
* Add headers for the Extras API source.
* @param {object} headers Headers object
@ -440,6 +460,26 @@ function addExtrasHeaders(headers) {
});
}
/**
* Add headers for the TogetherAI API source.
* @param {object} headers Headers object
*/
function addTogetherAiHeaders(headers) {
Object.assign(headers, {
'X-Togetherai-Model': extension_settings.vectors.togetherai_model,
});
}
/**
* Add headers for the OpenAI API source.
* @param {object} headers Header object
*/
function addOpenAiHeaders(headers) {
Object.assign(headers, {
'X-OpenAI-Model': extension_settings.vectors.openai_model,
});
}
/**
* Inserts vector items into a collection
* @param {string} collectionId - The collection to insert into
@ -449,7 +489,9 @@ function addExtrasHeaders(headers) {
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 === 'mistral' && !secret_state[SECRET_KEYS.MISTRALAI] ||
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' });
}
@ -457,10 +499,7 @@ async function insertVectorItems(collectionId, items) {
throw new Error('Vectors: Embeddings module missing', { cause: 'extras_module_missing' });
}
const headers = getRequestHeaders();
if (settings.source === 'extras') {
addExtrasHeaders(headers);
}
const headers = getVectorHeaders();
const response = await fetch('/api/vector/insert', {
method: 'POST',
@ -506,10 +545,7 @@ async function deleteVectorItems(collectionId, hashes) {
* @returns {Promise<{ hashes: number[], metadata: object[]}>} - Hashes of the results
*/
async function queryCollection(collectionId, searchText, topK) {
const headers = getRequestHeaders();
if (settings.source === 'extras') {
addExtrasHeaders(headers);
}
const headers = getVectorHeaders();
const response = await fetch('/api/vector/query', {
method: 'POST',
@ -526,8 +562,7 @@ async function queryCollection(collectionId, searchText, topK) {
throw new Error(`Failed to query collection ${collectionId}`);
}
const results = await response.json();
return results;
return await response.json();
}
/**
@ -564,6 +599,9 @@ async function purgeVectorIndex(collectionId) {
function toggleSettings() {
$('#vectors_files_settings').toggle(!!settings.enabled_files);
$('#vectors_chats_settings').toggle(!!settings.enabled_chats);
$('#together_vectorsModel').toggle(settings.source === 'togetherai');
$('#openai_vectorsModel').toggle(settings.source === 'openai');
$('#nomicai_apiKey').toggle(settings.source === 'nomicai');
}
async function onPurgeClick() {
@ -617,6 +655,7 @@ jQuery(async () => {
}
Object.assign(settings, extension_settings.vectors);
// Migrate from TensorFlow to Transformers
settings.source = settings.source !== 'local' ? settings.source : 'transformers';
$('#extensions_settings2').append(renderExtensionTemplate(MODULE_NAME, 'settings'));
@ -626,6 +665,7 @@ jQuery(async () => {
saveSettingsDebounced();
toggleSettings();
});
$('#vectors_modelWarning').hide();
$('#vectors_enabled_files').prop('checked', settings.enabled_files).on('input', () => {
settings.enabled_files = $('#vectors_enabled_files').prop('checked');
Object.assign(extension_settings.vectors, settings);
@ -636,6 +676,26 @@ jQuery(async () => {
settings.source = String($('#vectors_source').val());
Object.assign(extension_settings.vectors, settings);
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', () => {
$('#vectors_modelWarning').show();
settings.togetherai_model = String($('#vectors_togetherai_model').val());
Object.assign(extension_settings.vectors, settings);
saveSettingsDebounced();
});
$('#vectors_openai_model').val(settings.openai_model).on('change', () => {
$('#vectors_modelWarning').show();
settings.openai_model = String($('#vectors_openai_model').val());
Object.assign(extension_settings.vectors, settings);
saveSettingsDebounced();
});
$('#vectors_template').val(settings.template).on('input', () => {
settings.template = String($('#vectors_template').val());
@ -702,6 +762,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);

View File

@ -15,8 +15,56 @@
<option value="openai">OpenAI</option>
<option value="palm">Google MakerSuite (PaLM)</option>
<option value="mistral">MistralAI</option>
<option value="togetherai">TogetherAI</option>
<option value="nomicai">NomicAI</option>
</select>
</div>
<div class="flex-container flexFlowColumn" id="openai_vectorsModel">
<label for="vectors_openai_model">
Vectorization Model
</label>
<select id="vectors_openai_model" class="text_pole">
<option value="text-embedding-ada-002">text-embedding-ada-002</option>
<option value="text-embedding-3-small">text-embedding-3-small</option>
<option value="text-embedding-3-large">text-embedding-3-large</option>
</select>
</div>
<div class="flex-container flexFlowColumn" id="together_vectorsModel">
<label for="vectors_togetherai_model">
Vectorization Model
</label>
<select id="vectors_togetherai_model" class="text_pole">
<option value="togethercomputer/m2-bert-80M-32k-retrieval">M2-BERT-Retrieval-32k</option>
<option value="togethercomputer/m2-bert-80M-8k-retrieval">M2-BERT-Retrieval-8k</option>
<option value="togethercomputer/m2-bert-80M-2k-retrieval">M2-BERT-Retrieval-2K</option>
<option value="WhereIsAI/UAE-Large-V1">UAE-Large-V1</option>
<option value="BAAI/bge-large-en-v1.5">BAAI-Bge-Large-1p5</option>
<option value="BAAI/bge-base-en-v1.5">BAAI-Bge-Base-1p5</option>
<option value="sentence-transformers/msmarco-bert-base-dot-v5">Sentence-BERT</option>
<option value="bert-base-uncased">Bert Base Uncased</option>
</select>
</div>
<small id="vectors_modelWarning">
<i class="fa-solid fa-exclamation-triangle"></i>
<span data-i18n="Vectors Model Warning">
It is recommended to purge vectors when changing the model mid-chat. Otherwise, it will lead to sub-par results.
</span>
</small>
<div class="flex-container flexFlowColumn" id="nomicai_apiKey">
<label for="api_key_nomicai">
<span>NomicAI API Key</span>
</label>
<div class="flex-container">
<input id="api_key_nomicai" name="api_key_nomicai" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off">
<div title="Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_nomicai">
</div>
</div>
<div data-for="api_key_nomicai" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page.">
For privacy reasons, your API key will be hidden after you reload the page.
</div>
</div>
<div class="flex-container flexFlowColumn" title="How many last messages will be matched for relevance.">
<label for="vectors_query">

View File

@ -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;
@ -598,6 +605,11 @@ function getGroupAvatar(group) {
return groupAvatar;
}
// catch edge case where group had one member and that member is deleted
if (avatarCount === 0) {
return $('<div class="missing-avatar fa-solid fa-user-slash"></div>');
}
// default avatar
const groupAvatar = $('#group_avatars_template .collage_1').clone();
groupAvatar.find('.img_1').attr('src', group.avatar_url || system_avatar);
@ -1622,7 +1634,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);
}

View File

@ -1,24 +1,51 @@
import { registerDebugFunction } from './power-user.js';
import { waitUntilCondition } from './utils.js';
const storageKey = 'language';
export const localeData = await fetch('i18n.json').then(response => response.json());
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);
function getMissingTranslations() {
/**
* Fetches the locale data for the given language.
* @param {string} language Language code
* @returns {Promise<Record<string, string>>} Locale data
*/
async function getLocaleData(language) {
let supportedLang = langs.find(x => x.lang === language);
if (!supportedLang) {
console.warn(`Unsupported language: ${language}`);
return {};
}
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.lang) {
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) {
const attributeMatch = key.match(/\[(\S+)\](.+)/); // [attribute]key
if (attributeMatch) { // attribute-tagged key
const localizedValue = localeData?.[language]?.[attributeMatch[2]];
const localizedValue = localeData?.[attributeMatch[2]];
if (!localizedValue) {
missingData.push({ key, language, value: $(this).attr(attributeMatch[1]) });
}
} else { // No attribute tag, treat as 'text'
const localizedValue = localeData?.[language]?.[key];
const localizedValue = localeData?.[key];
if (!localizedValue) {
missingData.push({ key, language, value: $(this).text().trim() });
}
@ -39,12 +66,12 @@ function getMissingTranslations() {
uniqueMissingData.sort((a, b) => a.language.localeCompare(b.language) || a.key.localeCompare(b.key));
// Map to { language: { key: value } }
const missingDataMap = {};
for (const { key, language, value } of uniqueMissingData) {
if (!missingDataMap[language]) {
missingDataMap[language] = {};
let missingDataMap = {};
for (const { key, value } of uniqueMissingData) {
if (!missingDataMap) {
missingDataMap = {};
}
missingDataMap[language][key] = value;
missingDataMap[key] = value;
}
console.table(uniqueMissingData);
@ -54,11 +81,9 @@ function getMissingTranslations() {
}
export function applyLocale(root = document) {
const overrideLanguage = localStorage.getItem('language');
var language = overrideLanguage || navigator.language || navigator.userLanguage;
language = language.toLowerCase();
//load the appropriate language file
if (localeData.lang.indexOf(language) < 0) language = 'en';
if (!localeData || Object.keys(localeData).length === 0) {
return root;
}
const $root = root instanceof Document ? $(root) : $(new DOMParser().parseFromString(root, 'text/html'));
@ -69,12 +94,12 @@ export function applyLocale(root = document) {
for (const key of keys) {
const attributeMatch = key.match(/\[(\S+)\](.+)/); // [attribute]key
if (attributeMatch) { // attribute-tagged key
const localizedValue = localeData?.[language]?.[attributeMatch[2]];
const localizedValue = localeData?.[attributeMatch[2]];
if (localizedValue) {
$(this).attr(attributeMatch[1], localizedValue);
}
} else { // No attribute tag, treat as 'text'
const localizedValue = localeData?.[language]?.[key];
const localizedValue = localeData?.[key];
if (localizedValue) {
$(this).text(localizedValue);
}
@ -87,15 +112,12 @@ export function applyLocale(root = document) {
}
}
function addLanguagesToDropdown() {
if (!Array.isArray(localeData?.lang)) {
return;
}
for (const lang of localeData.lang) {
function addLanguagesToDropdown() {
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);
}
@ -106,7 +128,6 @@ function addLanguagesToDropdown() {
}
export function initLocales() {
waitUntilCondition(() => !!localeData);
applyLocale();
addLanguagesToDropdown();

View File

@ -30,6 +30,7 @@ const controls = [
{ id: 'instruct_last_output_sequence', property: 'last_output_sequence', isCheckbox: false },
{ id: 'instruct_activation_regex', property: 'activation_regex', isCheckbox: false },
{ id: 'instruct_bind_to_context', property: 'bind_to_context', isCheckbox: true },
{ id: 'instruct_skip_examples', property: 'skip_examples', isCheckbox: true },
];
/**
@ -45,6 +46,10 @@ export function loadInstructMode(data) {
power_user.instruct.names_force_groups = true;
}
if (power_user.instruct.skip_examples === undefined) {
power_user.instruct.skip_examples = false;
}
controls.forEach(control => {
const $element = $(`#${control.id}`);
@ -264,6 +269,7 @@ export function formatInstructModeChat(name, mes, isUser, isNarrator, forceAvata
if (power_user.instruct.macro) {
sequence = substituteParams(sequence, name1, name2);
sequence = sequence.replace(/{{name}}/gi, name || 'System');
}
const separator = power_user.instruct.wrap ? '\n' : '';
@ -302,6 +308,10 @@ export function formatInstructModeSystemPrompt(systemPrompt){
* @returns {string} Formatted example messages string.
*/
export function formatInstructModeExamples(mesExamples, name1, name2) {
if (power_user.instruct.skip_examples) {
return mesExamples;
}
const includeNames = power_user.instruct.names || (!!selected_group && power_user.instruct.names_force_groups);
let inputSequence = power_user.instruct.input_sequence;
@ -337,6 +347,7 @@ export function formatInstructModePrompt(name, isImpersonate, promptBias, name1,
if (power_user.instruct.macro) {
sequence = substituteParams(sequence, name1, name2);
sequence = sequence.replace(/{{name}}/gi, name || 'System');
}
const separator = power_user.instruct.wrap ? '\n' : '';

View File

@ -210,11 +210,22 @@ export function evaluateMacros(content, env) {
return '';
}
// Legacy non-macro substitutions
content = content.replace(/<USER>/gi, typeof env.user === 'function' ? env.user() : env.user);
content = content.replace(/<BOT>/gi, typeof env.char === 'function' ? env.char() : env.char);
content = content.replace(/<CHARIFNOTGROUP>/gi, typeof env.group === 'function' ? env.group() : env.group);
content = content.replace(/<GROUP>/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(/<USER>/gi, typeof env.user === 'function' ? env.user() : env.user);
content = content.replace(/<BOT>/gi, typeof env.char === 'function' ? env.char() : env.char);
content = content.replace(/<CHARIFNOTGROUP>/gi, typeof env.group === 'function' ? env.group() : env.group);
content = content.replace(/<GROUP>/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);

View File

@ -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,
@ -213,7 +213,7 @@ const default_settings = {
scenario_format: default_scenario_format,
personality_format: default_personality_format,
openai_model: 'gpt-3.5-turbo',
claude_model: 'claude-instant-v1',
claude_model: 'claude-2.1',
google_model: 'gemini-pro',
ai21_model: 'j2-ultra',
mistralai_model: 'mistral-medium-latest',
@ -239,9 +239,7 @@ const default_settings = {
human_sysprompt_message: default_claude_human_sysprompt_message,
use_ai21_tokenizer: false,
use_google_tokenizer: false,
exclude_assistant: false,
claude_use_sysprompt: false,
claude_exclude_prefixes: false,
use_alt_scale: false,
squash_system_messages: false,
image_inlining: false,
@ -282,7 +280,7 @@ const oai_settings = {
scenario_format: default_scenario_format,
personality_format: default_personality_format,
openai_model: 'gpt-3.5-turbo',
claude_model: 'claude-instant-v1',
claude_model: 'claude-2.1',
google_model: 'gemini-pro',
ai21_model: 'j2-ultra',
mistralai_model: 'mistral-medium-latest',
@ -308,9 +306,7 @@ const oai_settings = {
human_sysprompt_message: default_claude_human_sysprompt_message,
use_ai21_tokenizer: false,
use_google_tokenizer: false,
exclude_assistant: false,
claude_use_sysprompt: false,
claude_exclude_prefixes: false,
use_alt_scale: false,
squash_system_messages: false,
image_inlining: false,
@ -1607,6 +1603,8 @@ async function sendOpenAIRequest(type, messages, signal) {
'stop': getCustomStoppingStrings(openai_max_stop_strings),
'chat_completion_source': oai_settings.chat_completion_source,
'n': canMultiSwipe ? oai_settings.n : undefined,
'user_name': name1,
'char_name': name2,
};
// Empty array will produce a validation error
@ -1634,13 +1632,11 @@ async function sendOpenAIRequest(type, messages, signal) {
if (isClaude) {
generate_data['top_k'] = Number(oai_settings.top_k_openai);
generate_data['exclude_assistant'] = oai_settings.exclude_assistant;
generate_data['claude_use_sysprompt'] = oai_settings.claude_use_sysprompt;
generate_data['claude_exclude_prefixes'] = oai_settings.claude_exclude_prefixes;
generate_data['stop'] = getCustomStoppingStrings(); // Claude shouldn't have limits on stop strings.
generate_data['human_sysprompt_message'] = substituteParams(oai_settings.human_sysprompt_message);
// Don't add a prefill on quiet gens (summarization)
if (!isQuiet && !oai_settings.exclude_assistant) {
if (!isQuiet) {
generate_data['assistant_prefill'] = substituteParams(oai_settings.assistant_prefill);
}
}
@ -1751,7 +1747,7 @@ async function sendOpenAIRequest(type, messages, signal) {
function getStreamingReply(data) {
if (oai_settings.chat_completion_source == chat_completion_sources.CLAUDE) {
return data?.completion || '';
return data?.delta?.text || '';
} else if (oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE) {
return data?.candidates?.[0]?.content?.parts?.[0]?.text || '';
} else {
@ -2564,9 +2560,7 @@ function loadOpenAISettings(data, settings) {
if (settings.openai_model !== undefined) oai_settings.openai_model = settings.openai_model;
if (settings.use_ai21_tokenizer !== undefined) { oai_settings.use_ai21_tokenizer = !!settings.use_ai21_tokenizer; oai_settings.use_ai21_tokenizer ? ai21_max = 8191 : ai21_max = 9200; }
if (settings.use_google_tokenizer !== undefined) oai_settings.use_google_tokenizer = !!settings.use_google_tokenizer;
if (settings.exclude_assistant !== undefined) oai_settings.exclude_assistant = !!settings.exclude_assistant;
if (settings.claude_use_sysprompt !== undefined) oai_settings.claude_use_sysprompt = !!settings.claude_use_sysprompt;
if (settings.claude_exclude_prefixes !== undefined) oai_settings.claude_exclude_prefixes = !!settings.claude_exclude_prefixes;
if (settings.use_alt_scale !== undefined) { oai_settings.use_alt_scale = !!settings.use_alt_scale; updateScaleForm(); }
$('#stream_toggle').prop('checked', oai_settings.stream_openai);
$('#api_url_scale').val(oai_settings.api_url_scale);
@ -2604,9 +2598,7 @@ function loadOpenAISettings(data, settings) {
$('#openai_external_category').toggle(oai_settings.show_external_models);
$('#use_ai21_tokenizer').prop('checked', oai_settings.use_ai21_tokenizer);
$('#use_google_tokenizer').prop('checked', oai_settings.use_google_tokenizer);
$('#exclude_assistant').prop('checked', oai_settings.exclude_assistant);
$('#claude_use_sysprompt').prop('checked', oai_settings.claude_use_sysprompt);
$('#claude_exclude_prefixes').prop('checked', oai_settings.claude_exclude_prefixes);
$('#scale-alt').prop('checked', oai_settings.use_alt_scale);
$('#openrouter_use_fallback').prop('checked', oai_settings.openrouter_use_fallback);
$('#openrouter_force_instruct').prop('checked', oai_settings.openrouter_force_instruct);
@ -2828,9 +2820,7 @@ async function saveOpenAIPreset(name, settings, triggerUi = true) {
human_sysprompt_message: settings.human_sysprompt_message,
use_ai21_tokenizer: settings.use_ai21_tokenizer,
use_google_tokenizer: settings.use_google_tokenizer,
exclude_assistant: settings.exclude_assistant,
claude_use_sysprompt: settings.claude_use_sysprompt,
claude_exclude_prefixes: settings.claude_exclude_prefixes,
use_alt_scale: settings.use_alt_scale,
squash_system_messages: settings.squash_system_messages,
image_inlining: settings.image_inlining,
@ -3205,9 +3195,7 @@ function onSettingsPresetChange() {
human_sysprompt_message: ['#claude_human_sysprompt_textarea', 'human_sysprompt_message', false],
use_ai21_tokenizer: ['#use_ai21_tokenizer', 'use_ai21_tokenizer', true],
use_google_tokenizer: ['#use_google_tokenizer', 'use_google_tokenizer', true],
exclude_assistant: ['#exclude_assistant', 'exclude_assistant', true],
claude_use_sysprompt: ['#claude_use_sysprompt', 'claude_use_sysprompt', true],
claude_exclude_prefixes: ['#claude_exclude_prefixes', 'claude_exclude_prefixes', true],
use_alt_scale: ['#use_alt_scale', 'use_alt_scale', true],
squash_system_messages: ['#squash_system_messages', 'squash_system_messages', true],
image_inlining: ['#openai_image_inlining', 'image_inlining', true],
@ -3330,8 +3318,15 @@ async function onModelChange() {
let value = String($(this).val() || '');
if ($(this).is('#model_claude_select')) {
if (value.includes('-v')) {
value = value.replace('-v', '-');
} else if (value === '' || value === 'claude-2') {
value = default_settings.claude_model;
}
console.log('Claude model changed to', value);
oai_settings.claude_model = value;
$('#model_claude_select').val(oai_settings.claude_model);
}
if ($(this).is('#model_windowai_select')) {
@ -3439,7 +3434,7 @@ async function onModelChange() {
if (oai_settings.max_context_unlocked) {
$('#openai_max_context').attr('max', max_200k);
}
else if (value == 'claude-2.1' || value == 'claude-2') {
else if (value == 'claude-2.1' || value.startsWith('claude-3')) {
$('#openai_max_context').attr('max', max_200k);
}
else if (value.endsWith('100k') || value.startsWith('claude-2') || value === 'claude-instant-1.2') {
@ -3735,7 +3730,6 @@ function toggleChatCompletionForms() {
});
if (chat_completion_sources.CLAUDE == oai_settings.chat_completion_source) {
$('#claude_assistant_prefill_block').toggle(!oai_settings.exclude_assistant);
$('#claude_human_sysprompt_message_block').toggle(oai_settings.claude_use_sysprompt);
}
}
@ -3829,6 +3823,7 @@ export function isImageInliningSupported() {
const gpt4v = 'gpt-4-vision';
const geminiProV = 'gemini-pro-vision';
const claude = 'claude-3';
const llava = 'llava';
if (!oai_settings.image_inlining) {
@ -3840,10 +3835,12 @@ export function isImageInliningSupported() {
return oai_settings.openai_model.includes(gpt4v);
case chat_completion_sources.MAKERSUITE:
return oai_settings.google_model.includes(geminiProV);
case chat_completion_sources.CLAUDE:
return oai_settings.claude_model.includes(claude);
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;
}
@ -4075,23 +4072,12 @@ $(document).ready(async function () {
saveSettingsDebounced();
});
$('#exclude_assistant').on('change', function () {
oai_settings.exclude_assistant = !!$('#exclude_assistant').prop('checked');
$('#claude_assistant_prefill_block').toggle(!oai_settings.exclude_assistant);
saveSettingsDebounced();
});
$('#claude_use_sysprompt').on('change', function () {
oai_settings.claude_use_sysprompt = !!$('#claude_use_sysprompt').prop('checked');
$('#claude_human_sysprompt_message_block').toggle(oai_settings.claude_use_sysprompt);
saveSettingsDebounced();
});
$('#claude_exclude_prefixes').on('change', function () {
oai_settings.claude_exclude_prefixes = !!$('#claude_exclude_prefixes').prop('checked');
saveSettingsDebounced();
});
$('#names_in_completion').on('change', function () {
oai_settings.names_in_completion = !!$('#names_in_completion').prop('checked');
saveSettingsDebounced();

View File

@ -138,6 +138,7 @@ let power_user = {
main_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeBodyColor').trim()}`,
italics_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeEmColor').trim()}`,
underline_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeUnderlineColor').trim()}`,
quote_text_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeQuoteColor').trim()}`,
blur_tint_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeBlurTintColor').trim()}`,
chat_tint_color: `${getComputedStyle(document.documentElement).getPropertyValue('--SmartThemeChatTintColor').trim()}`,
@ -216,6 +217,7 @@ let power_user = {
chat_start: defaultChatStart,
example_separator: defaultExampleSeparator,
use_stop_strings: true,
allow_jailbreak: false,
},
personas: {},
@ -255,6 +257,7 @@ const storage_keys = {
main_text_color: 'TavernAI_main_text_color',
italics_text_color: 'TavernAI_italics_text_color',
underline_text_color: 'TavernAI_underline_text_color',
quote_text_color: 'TavernAI_quote_text_color',
blur_tint_color: 'TavernAI_blur_tint_color',
chat_tint_color: 'TavernAI_chat_tint_color',
@ -292,6 +295,7 @@ const contextControls = [
{ id: 'context_example_separator', property: 'example_separator', isCheckbox: false, isGlobalSetting: false },
{ id: 'context_chat_start', property: 'chat_start', isCheckbox: false, isGlobalSetting: false },
{ id: 'context_use_stop_strings', property: 'use_stop_strings', isCheckbox: true, isGlobalSetting: false, defaultValue: false },
{ id: 'context_allow_jailbreak', property: 'allow_jailbreak', isCheckbox: true, isGlobalSetting: false, defaultValue: false },
// Existing power user settings
{ id: 'always-force-name2-checkbox', property: 'always_force_name2', isCheckbox: true, isGlobalSetting: true, defaultValue: true },
@ -459,6 +463,7 @@ function switchReducedMotion() {
const overrideDuration = power_user.reduced_motion ? 0 : ANIMATION_DURATION_DEFAULT;
setAnimationDuration(overrideDuration);
$('#reduced_motion').prop('checked', power_user.reduced_motion);
$('body').toggleClass('reduced-motion', power_user.reduced_motion);
}
function switchCompactInputArea() {
@ -617,7 +622,8 @@ async function CreateZenSliders(elmnt) {
sliderID == 'min_length_textgenerationwebui' ||
sliderID == 'top_k' ||
sliderID == 'mirostat_mode_kobold' ||
sliderID == 'rep_pen_range') {
sliderID == 'rep_pen_range' ||
sliderID == 'max_tokens_second_textgenerationwebui') {
decimals = 0;
}
if (sliderID == 'min_temp_textgenerationwebui' ||
@ -914,27 +920,24 @@ function switchWaifuMode() {
function switchSpoilerMode() {
if (power_user.spoiler_free_mode) {
$('#description_div').hide();
$('#description_textarea').hide();
$('#firstmessage_textarea').hide();
$('#first_message_div').hide();
$('#spoiler_free_desc').show();
$('#descriptionWrapper').hide();
$('#firstMessageWrapper').hide();
$('#spoiler_free_desc').addClass('flex1');
$('#creator_notes_spoiler').show();
}
else {
$('#description_div').show();
$('#description_textarea').show();
$('#firstmessage_textarea').show();
$('#first_message_div').show();
$('#spoiler_free_desc').hide();
$('#descriptionWrapper').show();
$('#firstMessageWrapper').show();
$('#spoiler_free_desc').removeClass('flex1');
$('#creator_notes_spoiler').hide();
}
}
function peekSpoilerMode() {
$('#description_div').toggle();
$('#description_textarea').toggle();
$('#firstmessage_textarea').toggle();
$('#first_message_div').toggle();
$('#descriptionWrapper').toggle();
$('#firstMessageWrapper').toggle();
$('#creator_notes_spoiler').toggle();
$('#spoiler_free_desc').toggleClass('flex1');
}
@ -1039,6 +1042,9 @@ async function applyThemeColor(type) {
if (type === 'italics') {
document.documentElement.style.setProperty('--SmartThemeEmColor', power_user.italics_text_color);
}
if (type === 'underline') {
document.documentElement.style.setProperty('--SmartThemeUnderlineColor', power_user.underline_text_color);
}
if (type === 'quote') {
document.documentElement.style.setProperty('--SmartThemeQuoteColor', power_user.quote_text_color);
}
@ -1068,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);
@ -1131,6 +1130,7 @@ async function applyTheme(name) {
const themeProperties = [
{ key: 'main_text_color', selector: '#main-text-color-picker', type: 'main' },
{ key: 'italics_text_color', selector: '#italics-color-picker', type: 'italics' },
{ key: 'underline_text_color', selector: '#underline-color-picker', type: 'underline' },
{ key: 'quote_text_color', selector: '#quote-color-picker', type: 'quote' },
{ key: 'blur_tint_color', selector: '#blur-tint-color-picker', type: 'blurTint' },
{ key: 'chat_tint_color', selector: '#chat-tint-color-picker', type: 'chatTint' },
@ -1540,6 +1540,7 @@ function loadPowerUserSettings(settings, data) {
$('#main-text-color-picker').attr('color', power_user.main_text_color);
$('#italics-color-picker').attr('color', power_user.italics_text_color);
$('#underline-color-picker').attr('color', power_user.underline_text_color);
$('#quote-color-picker').attr('color', power_user.quote_text_color);
$('#blur-tint-color-picker').attr('color', power_user.blur_tint_color);
$('#chat-tint-color-picker').attr('color', power_user.chat_tint_color);
@ -2018,6 +2019,13 @@ async function importTheme(file) {
throw new Error('Theme with that name already exists');
}
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');
}
}
themes.push(parsed);
await applyTheme(parsed.name);
await saveTheme(parsed.name);
@ -2048,6 +2056,7 @@ async function saveTheme(name = undefined) {
blur_strength: power_user.blur_strength,
main_text_color: power_user.main_text_color,
italics_text_color: power_user.italics_text_color,
underline_text_color: power_user.underline_text_color,
quote_text_color: power_user.quote_text_color,
blur_tint_color: power_user.blur_tint_color,
chat_tint_color: power_user.chat_tint_color,
@ -2894,6 +2903,12 @@ $(document).ready(() => {
saveSettingsDebounced();
});
$('#underline-color-picker').on('change', (evt) => {
power_user.underline_text_color = evt.detail.rgba;
applyThemeColor('underline');
saveSettingsDebounced();
});
$('#quote-color-picker').on('change', (evt) => {
power_user.quote_text_color = evt.detail.rgba;
applyThemeColor('quote');
@ -3332,7 +3347,7 @@ $(document).ready(() => {
$('#ui_preset_import_file').trigger('click');
});
$('#ui_preset_import_file').on('change', async function() {
$('#ui_preset_import_file').on('change', async function () {
const inputElement = this instanceof HTMLInputElement && this;
try {

View File

@ -309,12 +309,15 @@ class PresetManager {
'mancer_model',
'togetherai_model',
'ollama_model',
'aphrodite_model',
'server_urls',
'type',
'custom_model',
'bypass_status_check',
'infermaticai_model',
'dreamgen_model',
'openrouter_model',
'max_tokens_second',
];
const settings = Object.assign({}, getSettingsByApiId(this.apiId));

View File

@ -17,8 +17,11 @@ export const SECRET_KEYS = {
MISTRALAI: 'api_key_mistralai',
TOGETHERAI: 'api_key_togetherai',
INFERMATICAI: 'api_key_infermaticai',
DREAMGEN: 'api_key_dreamgen',
CUSTOM: 'api_key_custom',
OOBA: 'api_key_ooba',
NOMICAI: 'api_key_nomicai',
KOBOLDCPP: 'api_key_koboldcpp',
};
const INPUT_MAP = {
@ -39,6 +42,9 @@ const INPUT_MAP = {
[SECRET_KEYS.TOGETHERAI]: '#api_key_togetherai',
[SECRET_KEYS.OOBA]: '#api_key_ooba',
[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() {
@ -46,7 +52,7 @@ async function clearSecret() {
await writeSecret(key, '');
secret_state[key] = false;
updateSecretDisplay();
$(INPUT_MAP[key]).val('');
$(INPUT_MAP[key]).val('').trigger('input');
$('#main_api').trigger('change');
}

View File

@ -0,0 +1,27 @@
// Showdown extension that replaces words surrounded by singular underscores with <em> tags
export const markdownUnderscoreExt = () => {
try {
if (!canUseNegativeLookbehind()) {
console.log('Showdown-underscore extension: Negative lookbehind not supported. Skipping.');
return [];
}
return [{
type: 'lang',
regex: new RegExp('\\b(?<!_)_(?!_)(.*?)(?<!_)_(?!_)\\b', 'g'),
replace: '<em>$1</em>',
}];
} catch (e) {
console.error('Error in Showdown-underscore extension:', e);
return [];
}
};
function canUseNegativeLookbehind() {
try {
new RegExp('(?<!_)');
return true;
} catch (e) {
return false;
}
}

View File

@ -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';
@ -76,48 +78,93 @@ class SlashCommandParser {
this.helpStrings[command] = stringBuilder;
}
/**
* Parses a slash command to extract the command name, the (named) arguments and the remaining text
* @param {string} text - Slash command text
* @returns {{command: string, args: object, value: string}} - The parsed command, its arguments and the remaining text
*/
parse(text) {
// Parses a command even when spaces are present in arguments
// /buttons labels=["OK","I do not accept"] some text
// /fuzzy list=[ "red pink" , "yellow" ] threshold=" 0.6 " he yelled when the color was reddish and not pink | /echo
const excludedFromRegex = ['sendas'];
const firstSpace = text.indexOf(' ');
const command = firstSpace !== -1 ? text.substring(1, firstSpace) : text.substring(1);
let args = firstSpace !== -1 ? text.substring(firstSpace + 1) : '';
let command = '';
const argObj = {};
let unnamedArg;
let unnamedArg = '';
if (args.length > 0) {
let match;
// Match unnamed argument
const unnamedArgPattern = /(?:\w+=(?:"(?:\\.|[^"\\])*"|\S+)\s*)*(.*)/s;
match = unnamedArgPattern.exec(args);
if (match !== null && match[1].length > 0) {
args = args.slice(0, -match[1].length);
unnamedArg = match[1].trim();
}
// Match named arguments
const namedArgPattern = /(\w+)=("(?:\\.|[^"\\])*"|\S+)/g;
while ((match = namedArgPattern.exec(args)) !== null) {
const key = match[1];
const value = match[2];
// Remove the quotes around the value, if any
argObj[key] = value.replace(/(^")|("$)/g, '');
}
// Excluded commands format in their own function
if (!excludedFromRegex.includes(command)) {
unnamedArg = getRegexedString(
unnamedArg,
regex_placement.SLASH_COMMAND,
);
}
// extract the command " /fuzzy " => "fuzzy"
text = text.trim();
let remainingText = '';
const commandArgPattern = /^\/([^\s]+)\s*(.*)$/s;
let match = commandArgPattern.exec(text);
if (match !== null && match[1].length > 0) {
command = match[1];
remainingText = match[2];
console.debug('command:' + command);
}
// parse the rest of the string to extract named arguments, the remainder is the "unnamedArg" which is usually text, like the prompt to send
while (remainingText.length > 0) {
// does the remaining text is like nameArg=[value] or nameArg=[value,value] or nameArg=[ value , value , value]
// where value can be a string like " this is some text " , note previously it was not possible to have have spaces
// where value can be a scalar like AScalar
// where value can be a number like +9 -1005.44
// where value can be a macro like {{getvar::name}}
const namedArrayArgPattern = /^(\w+)=\[\s*(((?<quote>["'])[^"]*(\k<quote>)|{{[^}]*}}|[+-]?\d*\.?\d+|\w*)\s*,?\s*)+\]/s;
match = namedArrayArgPattern.exec(remainingText);
if (match !== null && match[0].length > 0) {
//console.log(`matching: ${match[0]}`);
const posFirstEqual = match[0].indexOf('=');
const key = match[0].substring(0, posFirstEqual).trim();
const value = match[0].substring(posFirstEqual + 1).trim();
// Remove the quotes around the value, if any
argObj[key] = value.replace(/(^")|("$)/g, '');
remainingText = remainingText.slice(match[0].length + 1).trim();
continue;
}
// does the remaining text is like nameArg=value
// where value can be a string like " this is some text " , note previously it was not possible to have have spaces
// where value can be a scalar like AScalar
// where value can be a number like +9 -1005.44
// where value can be a macro like {{getvar::name}}
const namedScalarArgPattern = /^(\w+)=(((?<quote>["'])[^"]*(\k<quote>)|{{[^}]*}}|[+-]?\d*\.?\d+|\w*))/s;
match = namedScalarArgPattern.exec(remainingText);
if (match !== null && match[0].length > 0) {
//console.log(`matching: ${match[0]}`);
const posFirstEqual = match[0].indexOf('=');
const key = match[0].substring(0, posFirstEqual).trim();
const value = match[0].substring(posFirstEqual + 1).trim();
// Remove the quotes around the value, if any
argObj[key] = value.replace(/(^")|("$)/g, '');
remainingText = remainingText.slice(match[0].length + 1).trim();
continue;
}
// the remainder that matches no named argument is the "unamedArg" previously mentioned
unnamedArg = remainingText.trim();
remainingText = '';
}
// Excluded commands format in their own function
if (!excludedFromRegex.includes(command)) {
console.debug(`parse: !excludedFromRegex.includes(${command}`);
console.debug(` parse: unnamedArg before: ${unnamedArg}`);
unnamedArg = getRegexedString(
unnamedArg,
regex_placement.SLASH_COMMAND,
);
console.debug(` parse: unnamedArg after: ${unnamedArg}`);
}
// your weird complex command is now transformed into a juicy tiny text or something useful :)
if (this.commands[command]) {
return { command: this.commands[command], args: argObj, value: unnamedArg };
}
return false;
return null;
}
getHelpString() {
@ -173,8 +220,7 @@ parser.addCommand('gen', generateCallback, [], '<span class="monospace">(lock=on
parser.addCommand('genraw', generateRawCallback, [], '<span class="monospace">(lock=on/off [prompt])</span> 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. <tt>/genraw instruct=off Why is the sky blue?</tt>. Use stop=... with a JSON-serialized array to add one-time custom stop strings, e.g. <tt>/genraw stop=["\\n"] Say hi</tt>', true, true);
parser.addCommand('addswipe', addSwipeCallback, ['swipeadd'], '<span class="monospace">(text)</span> 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"] (search value) performs a fuzzy match of the provided search using the provided list of value and passes the closest match to the next command through the pipe.', true, true);
parser.addCommand('pass', (_, arg) => arg, ['return'], '<span class="monospace">(text)</span> 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'], '<span class="monospace">(text)</span> passes the text to the next command through the pipe.', true, true);
parser.addCommand('delay', delayCallback, ['wait', 'sleep'], '<span class="monospace">(milliseconds)</span> delays the next command in the pipe by the specified number of milliseconds.', true, true);
parser.addCommand('input', inputCallback, ['prompt'], '<span class="monospace">(default="string" large=on/off wide=on/off okButton="string" rows=number [text])</span> 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'], '<span class="monospace">[key1=value key2=value ...] ([qrSet.]qrLabel)</span> 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);
@ -189,6 +235,7 @@ parser.addCommand('inject', injectCallback, [], '<span class="monospace">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), [], '<span class="monospace">(text)</span> counts the number of tokens in the text.', true, true);
parser.addCommand('model', modelCallback, [], '<span class="monospace">(model name)</span> sets the model for the current API.', true, true);
registerVariableCommands();
const NARRATOR_NAME_KEY = 'narrator_name';
@ -502,8 +549,17 @@ async function inputCallback(args, prompt) {
return result || '';
}
function fuzzyCallback(args, value) {
if (!value) {
/**
* Each item in "args.list" is searched within "search_item" using fuzzy search. If any matches it returns the matched "item".
* @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, searchInValue) {
if (!searchInValue) {
console.warn('WARN: No argument provided for /fuzzy command');
return '';
}
@ -520,14 +576,37 @@ function fuzzyCallback(args, value) {
return '';
}
const fuse = new Fuse(list, {
const params = {
includeScore: true,
findAllMatches: true,
ignoreLocation: true,
threshold: 0.7,
});
const result = fuse.search(value);
return result[0]?.item;
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) {
params.threshold = parseFloat(resolveVariable(args.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) {
params.threshold = 0;
}
if (params.threshold > 1) {
params.threshold = 1;
}
}
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 (const searchItem of list) {
const result = fuse.search(searchItem);
if (result.length > 0) {
console.info('fuzzyCallback Matched: ' + searchItem);
return searchItem;
}
}
return '';
} catch {
console.warn('WARN: Invalid list argument provided for /fuzzy command');
return '';
@ -1508,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
@ -1583,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)) {
@ -1592,8 +1761,7 @@ async function executeSlashCommands(text, unescape = false) {
result.args[key] = value
.replace(/\\\|/g, '|')
.replace(/\\\{/g, '{')
.replace(/\\\}/g, '}')
;
.replace(/\\\}/g, '}');
}
}

View File

@ -266,7 +266,7 @@ function countWords(str) {
* @param {string} oldMesssage - The old message that's being processed.
*/
async function statMesProcess(line, type, characters, this_chid, oldMesssage) {
if (this_chid === undefined) {
if (this_chid === undefined || characters[this_chid] === undefined) {
return;
}
await getStats();

View File

@ -3,6 +3,9 @@ Text formatting commands:
<li><tt>*text*</tt> - displays as <i>italics</i></li>
<li><tt>**text**</tt> - displays as <b>bold</b></li>
<li><tt>***text***</tt> - displays as <b><i>bold italics</i></b></li>
<li><tt>__text__</tt> - displays as an <u>underline</u></li>
<li><tt>[text](url)</tt> - displays as a <a href="#">hyperlink</a></li>
<li><tt>![text](url)</tt> - displays as an image</li>
<li><tt>```text```</tt> - displays as a code block (new lines allowed between the backticks)</li>
</ul>
<pre><code> like this</code></pre>

View File

@ -1,53 +1,57 @@
<h3>
<span id="version_display_welcome">SillyTavern</span>
<div id="version_display_welcome"></div>
<span id="version_display_welcome"></span>
</h3>
<a href="https://docs.sillytavern.app/usage/update/"" target=" _blank">
<a href="https://docs.sillytavern.app/usage/update/" target="_blank" data-i18n="Want to update?">
Want to update?
</a>
<hr>
<h3>How to start chatting?</h3>
<h3 data-i18n="How to start chatting?">How to start chatting?</h3>
<ol>
<li>Click <code><i class="fa-solid fa-plug"></i></code> and select a <a href="https://docs.sillytavern.app/usage/api-connections/" target="_blank">Chat API</a>.</li>
<li>Click <code><i class="fa-solid fa-address-card"></i></code> and pick a character</li>
<li>
<span data-i18n="Click ">Click </span><code><i class="fa-solid fa-plug"></i></code><span data-i18n="and select a"> and select a </span><a href="https://docs.sillytavern.app/usage/api-connections/" target="_blank" data-i18n="Chat API">Chat API</a>.</span>
</li>
<li>
<span data-i18n="Click ">Click </span><code><i class="fa-solid fa-address-card"></i></code><span data-i18n="and pick a character"> and pick a character</span>
</li>
</ol>
<hr>
<h3>Confused or lost?</h3>
<h3 data-i18n="Confused or lost?">Confused or lost?</h3>
<ul>
<li>
<span class="note-link-span"><a class="fa-solid fa-circle-question" target="_blank" href="https://docs.sillytavern.app/"></a></span> - click these icons!
<span class="note-link-span"><a class="fa-solid fa-circle-question" target="_blank" href="https://docs.sillytavern.app/" data-i18n=""></a></span> - <span data-i18n="click these icons!">click these icons!</span>
</li>
<li>
Enter <code>/?</code> in the chat bar
<span data-i18n="Enter">Enter </span><code>/?</code><span data-i18n="in the chat bar"> in the chat bar</span>
</li>
<li>
<a target="_blank" href="https://docs.sillytavern.app/">
<a target="_blank" href="https://docs.sillytavern.app/" data-i18n="SillyTavern Documentation Site">
SillyTavern Documentation Site
</a>
</li>
<li>
<a target="_blank" href="https://docs.sillytavern.app/extras/installation/">
<a target="_blank" href="https://docs.sillytavern.app/extras/installation/" data-i18n="Extras Installation Guide">
Extras Installation Guide
</a>
</li>
</ul>
<hr>
<h3>Still have questions?</h3>
<h3 data-i18n="Still have questions?">Still have questions?</h3>
<ul>
<li>
<a target="_blank" href="https://discord.gg/sillytavern">
<a target="_blank" href="https://discord.gg/sillytavern" data-i18n="Join the SillyTavern Discord">
Join the SillyTavern Discord
</a>
</li>
<li>
<a target="_blank" href="https://github.com/SillyTavern/SillyTavern/issues">
<a target="_blank" href="https://github.com/SillyTavern/SillyTavern/issues" data-i18n="Post a GitHub issue">
Post a GitHub issue
</a>
</li>
<li>
<a target="_blank" href="https://github.com/SillyTavern/SillyTavern#questions-or-suggestions">
<a target="_blank" href="https://github.com/SillyTavern/SillyTavern#questions-or-suggestions" data-i18n="Contact the developers">
Contact the developers
</a>
</li>
</ul>

View File

@ -1,11 +1,13 @@
import { callPopup, getRequestHeaders, setGenerationParamsFromPreset } from '../script.js';
import { isMobile } from './RossAscends-mods.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';
let mancerModels = [];
let togetherModels = [];
let infermaticAIModels = [];
let dreamGenModels = [];
let aphroditeModels = [];
export let openRouterModels = [];
export async function loadOllamaModels(data) {
@ -81,6 +83,32 @@ export async function loadInfermaticAIModels(data) {
}
}
export async function loadDreamGenModels(data) {
if (!Array.isArray(data)) {
console.error('Invalid DreamGen models data', data);
return;
}
dreamGenModels = data;
if (!data.find(x => x.id === textgen_settings.dreamgen_model)) {
textgen_settings.dreamgen_model = data[0]?.id || '';
}
$('#model_dreamgen_select').empty();
for (const model of data) {
if (model.display_type === 'image') {
continue;
}
const option = document.createElement('option');
option.value = model.id;
option.text = model.id;
option.selected = model.id === textgen_settings.dreamgen_model;
$('#model_dreamgen_select').append(option);
}
}
export async function loadMancerModels(data) {
if (!Array.isArray(data)) {
console.error('Invalid Mancer models data', data);
@ -123,6 +151,31 @@ 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) {
if (!Array.isArray(data)) {
console.error('Invalid Aphrodite models data', data);
return;
}
aphroditeModels = data;
if (!data.find(x => x.id === textgen_settings.aphrodite_model)) {
textgen_settings.aphrodite_model = data[0]?.id || '';
}
$('#aphrodite_model').empty();
for (const model of data) {
const option = document.createElement('option');
option.value = model.id;
option.text = model.id;
option.selected = model.id === textgen_settings.aphrodite_model;
$('#aphrodite_model').append(option);
}
}
function onMancerModelSelect() {
@ -150,6 +203,13 @@ function onInfermaticAIModelSelect() {
setGenerationParamsFromPreset({ max_length: model.context_length });
}
function onDreamGenModelSelect() {
const modelName = String($('#model_dreamgen_select').val());
textgen_settings.dreamgen_model = modelName;
$('#api_button_textgenerationwebui').trigger('click');
// TODO(DreamGen): Consider retuning max_tokens from API and setting it here.
}
function onOllamaModelSelect() {
const modelId = String($('#ollama_model').val());
textgen_settings.ollama_model = modelId;
@ -164,6 +224,12 @@ function onOpenRouterModelSelect() {
setGenerationParamsFromPreset({ max_length: model.context_length });
}
function onAphroditeModelSelect() {
const modelId = String($('#aphrodite_model').val());
textgen_settings.aphrodite_model = modelId;
$('#api_button_textgenerationwebui').trigger('click');
}
function getMancerModelTemplate(option) {
const model = mancerModels.find(x => x.id === option?.element?.value);
@ -211,6 +277,20 @@ function getInfermaticAIModelTemplate(option) {
`));
}
function getDreamGenModelTemplate(option) {
const model = dreamGenModels.find(x => x.id === option?.element?.value);
if (!option.id || !model) {
return option.text;
}
return $((`
<div class="flex-container flexFlowColumn">
<div><strong>${DOMPurify.sanitize(model.id)}</strong></div>
</div>
`));
}
function getOpenRouterModelTemplate(option) {
const model = openRouterModels.find(x => x.id === option?.element?.value);
@ -230,6 +310,20 @@ function getOpenRouterModelTemplate(option) {
`));
}
function getAphroditeModelTemplate(option) {
const model = aphroditeModels.find(x => x.id === option?.element?.value);
if (!option.id || !model) {
return option.text;
}
return $((`
<div class="flex-container flexFlowColumn">
<div><strong>${DOMPurify.sanitize(model.id)}</strong></div>
</div>
`));
}
async function downloadOllamaModel() {
try {
const serverUrl = textgen_settings.server_urls[textgen_types.OLLAMA];
@ -271,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);
}
}
$('#or_prompt_cost').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);
@ -284,13 +404,29 @@ export function getCurrentOpenRouterModelTokenizer() {
}
}
export function getCurrentDreamGenModelTokenizer() {
const modelId = textgen_settings.dreamgen_model;
const model = dreamGenModels.find(x => x.id === modelId);
if (model.id.startsWith('opus-v1-sm')) {
return tokenizers.MISTRAL;
} else if (model.id.startsWith('opus-v1-lg')) {
return tokenizers.YI;
} else if (model.id.startsWith('opus-v1-xl')) {
return tokenizers.LLAMA;
} else {
return tokenizers.MISTRAL;
}
}
jQuery(function () {
$('#mancer_model').on('change', onMancerModelSelect);
$('#model_togetherai_select').on('change', onTogetherModelSelect);
$('#model_infermaticai_select').on('change', onInfermaticAIModelSelect);
$('#model_dreamgen_select').on('change', onDreamGenModelSelect);
$('#ollama_model').on('change', onOllamaModelSelect);
$('#openrouter_model').on('change', onOpenRouterModelSelect);
$('#ollama_download_model').on('click', downloadOllamaModel);
$('#aphrodite_model').on('change', onAphroditeModelSelect);
if (!isMobile()) {
$('#mancer_model').select2({
@ -320,6 +456,13 @@ jQuery(function () {
width: '100%',
templateResult: getInfermaticAIModelTemplate,
});
$('#model_dreamgen_select').select2({
placeholder: 'Select a model',
searchInputPlaceholder: 'Search models...',
searchInputCssClass: 'text_pole',
width: '100%',
templateResult: getDreamGenModelTemplate,
});
$('#openrouter_model').select2({
placeholder: 'Select a model',
searchInputPlaceholder: 'Search models...',
@ -327,5 +470,12 @@ jQuery(function () {
width: '100%',
templateResult: getOpenRouterModelTemplate,
});
$('#aphrodite_model').select2({
placeholder: 'Select a model',
searchInputPlaceholder: 'Search models...',
searchInputCssClass: 'text_pole',
width: '100%',
templateResult: getAphroditeModelTemplate,
});
}
});

View File

@ -4,7 +4,6 @@ import {
getRequestHeaders,
getStoppingStrings,
max_context,
online_status,
saveSettingsDebounced,
setGenerationParamsFromPreset,
setOnlineStatus,
@ -14,7 +13,7 @@ import { BIAS_CACHE, createNewLogitBiasEntry, displayLogitBias, getLogitBiasList
import { power_user, registerDebugFunction } from './power-user.js';
import EventSourceStream from './sse-stream.js';
import { getCurrentOpenRouterModelTokenizer } from './textgen-models.js';
import { getCurrentDreamGenModelTokenizer, getCurrentOpenRouterModelTokenizer } from './textgen-models.js';
import { SENTENCEPIECE_TOKENIZERS, TEXTGEN_TOKENIZERS, getTextTokens, tokenizers } from './tokenizers.js';
import { getSortableDelay, onlyUnique } from './utils.js';
@ -35,10 +34,11 @@ export const textgen_types = {
LLAMACPP: 'llamacpp',
OLLAMA: 'ollama',
INFERMATICAI: 'infermaticai',
DREAMGEN: 'dreamgen',
OPENROUTER: 'openrouter',
};
const { MANCER, APHRODITE, TABBY, TOGETHERAI, OOBA, OLLAMA, LLAMACPP, INFERMATICAI, OPENROUTER } = textgen_types;
const { MANCER, APHRODITE, TABBY, TOGETHERAI, OOBA, OLLAMA, LLAMACPP, INFERMATICAI, DREAMGEN, OPENROUTER } = textgen_types;
const LLAMACPP_DEFAULT_ORDER = [
'top_k',
@ -71,6 +71,7 @@ const MANCER_SERVER_DEFAULT = 'https://neuro.mancer.tech';
let MANCER_SERVER = localStorage.getItem(MANCER_SERVER_KEY) ?? MANCER_SERVER_DEFAULT;
let TOGETHERAI_SERVER = 'https://api.together.xyz';
let INFERMATICAI_SERVER = 'https://api.totalgpt.ai';
let DREAMGEN_SERVER = 'https://dreamgen.com';
let OPENROUTER_SERVER = 'https://openrouter.ai/api';
const SERVER_INPUTS = {
@ -111,6 +112,7 @@ const settings = {
max_temp: 2.0,
dynatemp_exponent: 1.0,
smoothing_factor: 0.0,
max_tokens_second: 0,
seed: -1,
preset: 'Default',
add_bos_token: true,
@ -141,6 +143,8 @@ const settings = {
infermaticai_model: '',
ollama_model: '',
openrouter_model: 'openrouter/auto',
aphrodite_model: '',
dreamgen_model: 'opus-v1-xl/text',
legacy_api: false,
sampler_order: KOBOLDCPP_ORDER,
logit_bias: [],
@ -178,6 +182,7 @@ const setting_names = [
'max_temp',
'dynatemp_exponent',
'smoothing_factor',
'max_tokens_second',
'encoder_rep_pen',
'freq_pen',
'presence_pen',
@ -244,6 +249,10 @@ export function getTextGenServer() {
return INFERMATICAI_SERVER;
}
if (settings.type === DREAMGEN) {
return DREAMGEN_SERVER;
}
if (settings.type === OPENROUTER) {
return OPENROUTER_SERVER;
}
@ -272,7 +281,7 @@ async function selectPreset(name) {
function formatTextGenURL(value) {
try {
// Mancer/Together/InfermaticAI doesn't need any formatting (it's hardcoded)
if (settings.type === MANCER || settings.type === TOGETHERAI || settings.type === INFERMATICAI || settings.type === OPENROUTER) {
if (settings.type === MANCER || settings.type === TOGETHERAI || settings.type === INFERMATICAI || settings.type === DREAMGEN || settings.type === OPENROUTER) {
return value;
}
@ -309,6 +318,10 @@ function getTokenizerForTokenIds() {
return getCurrentOpenRouterModelTokenizer();
}
if (settings.type === DREAMGEN) {
return getCurrentDreamGenModelTokenizer();
}
return tokenizers.LLAMA;
}
@ -934,12 +947,16 @@ function getModel() {
return settings.infermaticai_model;
}
if (settings.type === DREAMGEN) {
return settings.dreamgen_model;
}
if (settings.type === OPENROUTER) {
return settings.openrouter_model;
}
if (settings.type === APHRODITE) {
return online_status;
return settings.aphrodite_model;
}
if (settings.type === OLLAMA) {
@ -973,6 +990,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
'presence_penalty': settings.presence_pen,
'top_k': settings.top_k,
'min_length': settings.type === OOBA ? settings.min_length : undefined,
'minimum_message_content_tokens': settings.type === DREAMGEN ? settings.min_length : undefined,
'min_tokens': settings.min_length,
'num_beams': settings.type === OOBA ? settings.num_beams : undefined,
'length_penalty': settings.length_penalty,
@ -984,6 +1002,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
'dynatemp_range': settings.dynatemp ? (settings.max_temp - settings.min_temp) / 2 : 0,
'dynatemp_exponent': settings.dynatemp ? settings.dynatemp_exponent : 1,
'smoothing_factor': settings.smoothing_factor,
'max_tokens_second': settings.max_tokens_second,
'sampler_priority': settings.type === OOBA ? settings.sampler_priority : undefined,
'samplers': settings.type === LLAMACPP ? settings.samplers : undefined,
'stopping_strings': getStoppingStrings(isImpersonate, isContinue),

View File

@ -5,9 +5,9 @@ import { groups, selected_group } from './group-chats.js';
import { getStringHash } from './utils.js';
import { kai_flags } from './kai-settings.js';
import { textgen_types, textgenerationwebui_settings as textgen_settings, getTextGenServer } from './textgen-settings.js';
import { getCurrentOpenRouterModelTokenizer, openRouterModels } from './textgen-models.js';
import { getCurrentDreamGenModelTokenizer, getCurrentOpenRouterModelTokenizer, openRouterModels } from './textgen-models.js';
const { OOBA, TABBY, KOBOLDCPP, APHRODITE, LLAMACPP, OPENROUTER } = textgen_types;
const { OOBA, TABBY, KOBOLDCPP, APHRODITE, LLAMACPP, OPENROUTER, DREAMGEN } = textgen_types;
export const CHARACTERS_PER_TOKEN_RATIO = 3.35;
const TOKENIZER_WARNING_KEY = 'tokenizationWarningShown';
@ -206,6 +206,9 @@ export function getTokenizerBestMatch(forApi) {
if (forApi === 'textgenerationwebui' && textgen_settings.type === OPENROUTER) {
return getCurrentOpenRouterModelTokenizer();
}
if (forApi === 'textgenerationwebui' && textgen_settings.type === DREAMGEN) {
return getCurrentDreamGenModelTokenizer();
}
}
return tokenizers.LLAMA;

View File

@ -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;
@ -602,7 +606,25 @@ export function isOdd(number) {
return number % 2 !== 0;
}
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
*/
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();
}
@ -970,7 +992,7 @@ export async function saveBase64AsFile(base64Data, characterName, filename = '',
const requestBody = {
image: dataURL,
ch_name: characterName,
filename: filename,
filename: String(filename).replace(/\./g, '_'),
};
// Send the data URL to your backend using fetch
@ -1111,11 +1133,13 @@ export function uuidv4() {
});
}
function postProcessText(text) {
function postProcessText(text, collapse = true) {
// Collapse multiple newlines into one
text = collapseNewlines(text);
// Trim leading and trailing whitespace, and remove empty lines
text = text.split('\n').map(l => l.trim()).filter(Boolean).join('\n');
if (collapse) {
text = collapseNewlines(text);
// Trim leading and trailing whitespace, and remove empty lines
text = text.split('\n').map(l => l.trim()).filter(Boolean).join('\n');
}
// Remove carriage returns
text = text.replace(/\r/g, '');
// Normalize unicode spaces
@ -1127,6 +1151,25 @@ function postProcessText(text) {
return text;
}
/**
* Uses Readability.js to parse the text from a web page.
* @param {Document} document HTML document
* @param {string} [textSelector='body'] The fallback selector for the text to parse.
* @returns {Promise<string>} A promise that resolves to the parsed text.
*/
export async function getReadableText(document, textSelector = 'body') {
if (isProbablyReaderable(document)) {
const parser = new Readability(document);
const article = parser.parse();
return postProcessText(article.textContent, false);
}
const elements = document.querySelectorAll(textSelector);
const rawText = Array.from(elements).map(e => e.textContent).join('\n');
const text = postProcessText(rawText);
return text;
}
/**
* Use pdf.js to load and parse text from PDF pages
* @param {Blob} blob PDF file blob
@ -1188,10 +1231,7 @@ export async function extractTextFromHTML(blob, textSelector = 'body') {
const html = await blob.text();
const domParser = new DOMParser();
const document = domParser.parseFromString(DOMPurify.sanitize(html), 'text/html');
const elements = document.querySelectorAll(textSelector);
const rawText = Array.from(elements).map(e => e.textContent).join('\n');
const text = postProcessText(rawText);
return text;
return await getReadableText(document, textSelector);
}
/**
@ -1205,6 +1245,30 @@ export async function extractTextFromMarkdown(blob) {
const html = converter.makeHtml(markdown);
const domParser = new DOMParser();
const document = domParser.parseFromString(DOMPurify.sanitize(html), 'text/html');
const text = postProcessText(document.body.textContent);
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;
}

View File

@ -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);
}
}
@ -1542,7 +1529,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);
});
@ -2223,7 +2210,7 @@ async function checkWorldInfo(chat, maxContext) {
const text = newEntries
.filter(x => !failedProbabilityChecks.has(x))
.filter(x => !x.preventRecursion)
.map(x => x.content).join('\n');
.map(x => substituteParams(x.content)).join('\n');
buffer.addRecurse(text);
allActivatedText = (text + '\n' + allActivatedText);
}

View File

@ -50,6 +50,7 @@
/*Default Theme, will be changed by ToolCool Color Picker*/
--SmartThemeBodyColor: rgb(220, 220, 210);
--SmartThemeEmColor: rgb(145, 145, 145);
--SmartThemeUnderlineColor: rgb(188, 231, 207);
--SmartThemeQuoteColor: rgb(225, 138, 36);
/* --SmartThemeFastUIBGColor: rgba(0, 0, 0, 0.9); */
--SmartThemeBlurTintColor: rgba(23, 23, 23, 1);
@ -274,6 +275,10 @@ table.responsiveTable {
color: var(--SmartThemeEmColor);
}
.mes_text u {
color: var(--SmartThemeUnderlineColor);
}
.mes_text q {
color: var(--SmartThemeQuoteColor);
}
@ -414,6 +419,11 @@ hr {
transition: background-image 0.5s ease-in-out;
}
body.reduced-motion #bg1,
body.reduced-motion #bg_custom {
transition: none;
}
#version_display {
padding: 5px;
opacity: 0.8;
@ -1013,6 +1023,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);
}
@ -1023,6 +1046,12 @@ select {
white-space: nowrap;
}
#creator_notes_spoiler {
border: 0;
font-size: calc(var(--mainFontSize)*.8);
padding-top: 5px;
}
@media screen and (max-width: 1000px) {
#form_create textarea {
flex-grow: 1;
@ -1032,8 +1061,8 @@ select {
@media screen and (min-width: 1001px) {
#description_textarea {
height: 33vh;
height: 33svh;
height: 30vh;
height: 30svh;
}
#firstmessage_textarea {

View File

@ -93,8 +93,8 @@ const cliArguments = yargs(hideBin(process.argv))
}).parseSync();
// change all relative paths
const serverDirectory = process['pkg'] ? path.dirname(process.execPath) : __dirname;
console.log(process['pkg'] ? 'Running from binary' : 'Running from source');
console.log(`Node version: ${process.version}. Running in ${process.env.NODE_ENV} environment.`);
const serverDirectory = __dirname;
process.chdir(serverDirectory);
const app = express();
@ -384,9 +384,9 @@ app.post('/uploadimage', jsonParser, async (request, response) => {
}
// if character is defined, save to a sub folder for that character
let pathToNewFile = path.join(DIRECTORIES.userImages, filename);
let pathToNewFile = path.join(DIRECTORIES.userImages, sanitize(filename));
if (request.body.ch_name) {
pathToNewFile = path.join(DIRECTORIES.userImages, request.body.ch_name, filename);
pathToNewFile = path.join(DIRECTORIES.userImages, sanitize(request.body.ch_name), sanitize(filename));
}
ensureDirectoryExistence(pathToNewFile);
@ -505,6 +505,9 @@ app.use('/api/openai', require('./src/endpoints/openai').router);
//Google API
app.use('/api/google', require('./src/endpoints/google').router);
//Anthropic API
app.use('/api/anthropic', require('./src/endpoints/anthropic').router);
// Tokenizers
app.use('/api/tokenizers', require('./src/endpoints/tokenizers').router);

View File

@ -27,6 +27,14 @@ function getInfermaticAIHeaders() {
}) : {};
}
function getDreamGenHeaders() {
const apiKey = readSecret(SECRET_KEYS.DREAMGEN);
return apiKey ? ({
'Authorization': `Bearer ${apiKey}`,
}) : {};
}
function getOpenRouterHeaders() {
const apiKey = readSecret(SECRET_KEYS.OPENROUTER);
const baseHeaders = { ...OPENROUTER_HEADERS };
@ -60,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;
@ -98,12 +114,31 @@ function setAdditionalHeaders(request, args, server) {
case TEXTGEN_TYPES.INFERMATICAI:
headers = getInfermaticAIHeaders();
break;
case TEXTGEN_TYPES.DREAMGEN:
headers = getDreamGenHeaders();
break;
case TEXTGEN_TYPES.OPENROUTER:
headers = getOpenRouterHeaders();
break;
default:
headers = server ? getOverrideHeaders((new URL(server))?.host) : {};
case TEXTGEN_TYPES.KOBOLDCPP:
headers = getKoboldCppHeaders();
break;
default:
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);

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2022 ZeldaFan0225
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

2192
src/ai_horde/index.d.ts vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
import AIHorde from './index.js'
export default AIHorde
export { AIHorde }

View File

@ -177,6 +177,7 @@ const TEXTGEN_TYPES = {
LLAMACPP: 'llamacpp',
OLLAMA: 'ollama',
INFERMATICAI: 'infermaticai',
DREAMGEN: 'dreamgen',
OPENROUTER: 'openrouter',
};
@ -192,6 +193,23 @@ const INFERMATICAI_KEYS = [
'stop',
];
// https://dreamgen.com/docs/api#openai-text
const DREAMGEN_KEYS = [
'model',
'prompt',
'max_tokens',
'temperature',
'top_p',
'top_k',
'min_p',
'repetition_penalty',
'frequency_penalty',
'presence_penalty',
'stop',
'stream',
'minimum_message_content_tokens'
];
// https://docs.together.ai/reference/completions
const TOGETHERAI_KEYS = [
'model',
@ -263,6 +281,7 @@ module.exports = {
TOGETHERAI_KEYS,
OLLAMA_KEYS,
INFERMATICAI_KEYS,
DREAMGEN_KEYS,
OPENROUTER_HEADERS,
OPENROUTER_KEYS,
};

View File

@ -0,0 +1,67 @@
const { readSecret, SECRET_KEYS } = require('./secrets');
const fetch = require('node-fetch').default;
const express = require('express');
const { jsonParser } = require('../express-common');
const router = express.Router();
router.post('/caption-image', jsonParser, async (request, response) => {
try {
const mimeType = request.body.image.split(';')[0].split(':')[1];
const base64Data = request.body.image.split(',')[1];
const baseUrl = request.body.reverse_proxy ? request.body.reverse_proxy : 'https://api.anthropic.com/v1';
const url = `${baseUrl}/messages`;
const body = {
model: request.body.model,
messages: [
{
'role': 'user', 'content': [
{
'type': 'image',
'source': {
'type': 'base64',
'media_type': mimeType,
'data': base64Data,
},
},
{ 'type': 'text', 'text': request.body.prompt },
],
},
],
max_tokens: 800,
};
console.log('Multimodal captioning request', body);
const result = await fetch(url, {
body: JSON.stringify(body),
method: 'POST',
headers: {
'Content-Type': 'application/json',
'anthropic-version': '2023-06-01',
'x-api-key': request.body.reverse_proxy ? request.body.proxy_password : readSecret(SECRET_KEYS.CLAUDE),
},
timeout: 0,
});
if (!result.ok) {
console.log(`Claude API returned error: ${result.status} ${result.statusText}`);
return response.status(result.status).send({ error: true });
}
const generateResponseJson = await result.json();
const caption = generateResponseJson.content[0].text;
console.log('Claude response:', generateResponseJson);
if (!caption) {
return response.status(500).send('No caption found');
}
return response.json({ caption });
} catch (error) {
console.error(error);
response.status(500).send('Internal server error');
}
});
module.exports = { router };

View File

@ -5,7 +5,7 @@ const { Readable } = require('stream');
const { jsonParser } = require('../../express-common');
const { CHAT_COMPLETION_SOURCES, GEMINI_SAFETY, BISON_SAFETY, OPENROUTER_HEADERS } = require('../../constants');
const { forwardFetchResponse, getConfigValue, tryParse, uuidv4, mergeObjectWithYaml, excludeKeysByYaml, color } = require('../../util');
const { convertClaudePrompt, convertGooglePrompt, convertTextCompletionPrompt } = require('../prompt-converters');
const { convertClaudeMessages, convertGooglePrompt, convertTextCompletionPrompt } = require('../prompt-converters');
const { readSecret, SECRET_KEYS } = require('../secrets');
const { getTokenizerModel, getSentencepiceTokenizer, getTiktokenTokenizer, sentencepieceTokenizers, TEXT_COMPLETION_MODELS } = require('../tokenizers');
@ -34,45 +34,8 @@ async function sendClaudeRequest(request, response) {
request.socket.on('close', function () {
controller.abort();
});
const isSysPromptSupported = request.body.model === 'claude-2' || request.body.model === 'claude-2.1';
const requestPrompt = convertClaudePrompt(request.body.messages, !request.body.exclude_assistant, request.body.assistant_prefill, isSysPromptSupported, request.body.claude_use_sysprompt, request.body.human_sysprompt_message, request.body.claude_exclude_prefixes);
// Check Claude messages sequence and prefixes presence.
let sequenceError = [];
const sequence = requestPrompt.split('\n').filter(x => x.startsWith('Human:') || x.startsWith('Assistant:'));
const humanFound = sequence.some(line => line.startsWith('Human:'));
const assistantFound = sequence.some(line => line.startsWith('Assistant:'));
let humanErrorCount = 0;
let assistantErrorCount = 0;
for (let i = 0; i < sequence.length - 1; i++) {
if (sequence[i].startsWith(sequence[i + 1].split(':')[0])) {
if (sequence[i].startsWith('Human:')) {
humanErrorCount++;
} else if (sequence[i].startsWith('Assistant:')) {
assistantErrorCount++;
}
}
}
if (!humanFound) {
sequenceError.push(`${divider}\nWarning: No 'Human:' prefix found in the prompt.\n${divider}`);
}
if (!assistantFound) {
sequenceError.push(`${divider}\nWarning: No 'Assistant: ' prefix found in the prompt.\n${divider}`);
}
if (sequence[0] && !sequence[0].startsWith('Human:')) {
sequenceError.push(`${divider}\nWarning: The messages sequence should start with 'Human:' prefix.\nMake sure you have '\\n\\nHuman:' prefix at the very beggining of the prompt, or after the system prompt.\n${divider}`);
}
if (humanErrorCount > 0 || assistantErrorCount > 0) {
sequenceError.push(`${divider}\nWarning: Detected incorrect Prefix sequence(s).`);
sequenceError.push(`Incorrect "Human:" prefix(es): ${humanErrorCount}.\nIncorrect "Assistant: " prefix(es): ${assistantErrorCount}.`);
sequenceError.push('Check the prompt above and fix it in the SillyTavern.');
sequenceError.push('\nThe correct sequence in the console should look like this:\n(System prompt msg) <-(for the sysprompt format only, else have \\n\\n above the first human\'s message.)');
sequenceError.push(`\\n + <-----(Each message beginning with the "Assistant:/Human:" prefix must have \\n\\n before it.)\n\\n +\nHuman: \\n +\n\\n +\nAssistant: \\n +\n...\n\\n +\nHuman: \\n +\n\\n +\nAssistant: \n${divider}`);
}
let use_system_prompt = (request.body.model.startsWith('claude-2') || request.body.model.startsWith('claude-3')) && request.body.claude_use_sysprompt;
let converted_prompt = convertClaudeMessages(request.body.messages, request.body.assistant_prefill, use_system_prompt, request.body.human_sysprompt_message, request.body.char_name, request.body.user_name);
// Add custom stop sequences
const stopSequences = ['\n\nHuman:', '\n\nSystem:', '\n\nAssistant:'];
if (Array.isArray(request.body.stop)) {
@ -80,23 +43,21 @@ async function sendClaudeRequest(request, response) {
}
const requestBody = {
prompt: requestPrompt,
messages: converted_prompt.messages,
model: request.body.model,
max_tokens_to_sample: request.body.max_tokens,
max_tokens: request.body.max_tokens,
stop_sequences: stopSequences,
temperature: request.body.temperature,
top_p: request.body.top_p,
top_k: request.body.top_k,
stream: request.body.stream,
};
if (use_system_prompt) {
requestBody.system = converted_prompt.systemPrompt;
}
console.log('Claude request:', requestBody);
sequenceError.forEach(sequenceError => {
console.log(color.red(sequenceError));
});
const generateResponse = await fetch(apiUrl + '/complete', {
const generateResponse = await fetch(apiUrl + '/messages', {
method: 'POST',
signal: controller.signal,
body: JSON.stringify(requestBody),
@ -118,7 +79,7 @@ async function sendClaudeRequest(request, response) {
}
const generateResponseJson = await generateResponse.json();
const responseText = generateResponseJson.completion;
const responseText = generateResponseJson.content[0].text;
console.log('Claude response:', generateResponseJson);
// Wrap it back to OAI format

View File

@ -4,7 +4,7 @@ const _ = require('lodash');
const Readable = require('stream').Readable;
const { jsonParser } = require('../../express-common');
const { TEXTGEN_TYPES, TOGETHERAI_KEYS, OLLAMA_KEYS, INFERMATICAI_KEYS, OPENROUTER_KEYS } = require('../../constants');
const { TEXTGEN_TYPES, TOGETHERAI_KEYS, OLLAMA_KEYS, INFERMATICAI_KEYS, OPENROUTER_KEYS, DREAMGEN_KEYS } = require('../../constants');
const { forwardFetchResponse, trimV1 } = require('../../util');
const { setAdditionalHeaders } = require('../../additional-headers');
@ -110,6 +110,9 @@ router.post('/status', jsonParser, async function (request, response) {
case TEXTGEN_TYPES.OPENROUTER:
url += '/v1/models';
break;
case TEXTGEN_TYPES.DREAMGEN:
url += '/api/openai/v1/models';
break;
case TEXTGEN_TYPES.MANCER:
url += '/oai/v1/models';
break;
@ -238,6 +241,9 @@ router.post('/generate', jsonParser, async function (request, response) {
case TEXTGEN_TYPES.INFERMATICAI:
url += '/v1/completions';
break;
case TEXTGEN_TYPES.DREAMGEN:
url += '/api/openai/v1/completions';
break;
case TEXTGEN_TYPES.MANCER:
url += '/oai/v1/completions';
break;
@ -273,6 +279,13 @@ router.post('/generate', jsonParser, async function (request, response) {
args.body = JSON.stringify(request.body);
}
if (request.body.api_type === TEXTGEN_TYPES.DREAMGEN) {
request.body = _.pickBy(request.body, (_, key) => DREAMGEN_KEYS.includes(key));
// NOTE: DreamGen sometimes get confused by the unusual formatting in the character cards.
request.body.stop?.push('### User', '## User');
args.body = JSON.stringify(request.body);
}
if (request.body.api_type === TEXTGEN_TYPES.OPENROUTER) {
request.body = _.pickBy(request.body, (_, key) => OPENROUTER_KEYS.includes(key));
args.body = JSON.stringify(request.body);

View File

@ -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;
}
@ -600,10 +610,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) {

View File

@ -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 });

View File

@ -357,7 +357,7 @@ function getUuidFromUrl(url) {
const router = express.Router();
router.post('/import', jsonParser, async (request, response) => {
router.post('/importURL', jsonParser, async (request, response) => {
if (!request.body.url) {
return response.sendStatus(400);
}
@ -413,6 +413,49 @@ router.post('/import', jsonParser, async (request, response) => {
}
});
router.post('/importUUID', jsonParser, async (request, response) => {
if (!request.body.url) {
return response.sendStatus(400);
}
try {
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';
if (isPygmalion) {
console.log('Downloading Pygmalion character:', uuid);
result = await downloadPygmalionCharacter(uuid);
} else if (isJannny) {
console.log('Downloading Janitor character:', uuid.split('_')[0]);
result = await downloadJannyCharacter(uuid.split('_')[0]);
} else {
if (uuidType === 'character') {
console.log('Downloading chub character:', uuid);
result = await downloadChubCharacter(uuid);
}
else if (uuidType === 'lorebook') {
console.log('Downloading chub lorebook:', uuid);
result = await downloadChubLorebook(uuid);
}
else {
return response.sendStatus(404);
}
}
if (result.fileType) response.set('Content-Type', result.fileType);
response.set('Content-Disposition', `attachment; filename="${result.fileName}"`);
response.set('X-Custom-Content-Type', uuidType);
return response.send(result.buffer);
} catch (error) {
console.log('Importing custom content failed', error);
return response.sendStatus(500);
}
});
module.exports = {
checkForNewContent,
getDefaultPresets,

View File

@ -1,6 +1,6 @@
const fetch = require('node-fetch').default;
const express = require('express');
const AIHorde = require('../ai_horde');
const AIHorde = require('@zeldafan0225/ai_horde');
const { getVersion, delay, Cache } = require('../util');
const { readSecret, SECRET_KEYS } = require('./secrets');
const { jsonParser } = require('../express-common');

View File

@ -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: {

View File

@ -71,6 +71,118 @@ 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 {string} prefillString User determined prefill string
* @param {boolean} useSysPrompt See if we want to use a system prompt
* @param {string} humanMsgFix Add Human message between system prompt and assistant.
* @param {string} charName Character name
* @param {string} userName User name
*/
function convertClaudeMessages(messages, prefillString, useSysPrompt, humanMsgFix, charName = '', userName = '') {
let systemPrompt = '';
if (useSysPrompt) {
// Collect all the system messages up until the first instance of a non-system message, and then remove them from the messages array.
let i;
for (i = 0; i < messages.length; i++) {
if (messages[i].role !== 'system') {
break;
}
if (userName && messages[i].name === 'example_user') {
messages[i].content = `${userName}: ${messages[i].content}`;
}
if (charName && messages[i].name === 'example_assistant') {
messages[i].content = `${charName}: ${messages[i].content}`;
}
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 humanMsgFix or a blank message.
// 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]',
});
}
}
// Now replace all further messages that have the role 'system' with the role 'user'. (or all if we're not using one)
messages.forEach((message) => {
if (message.role === 'system') {
if (userName && message.name === 'example_user') {
message.content = `${userName}: ${message.content}`;
}
if (charName && message.name === 'example_assistant') {
message.content = `${charName}: ${message.content}`;
}
message.role = 'user';
}
});
// 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 = [];
messages.forEach((message) => {
const imageEntry = message.content?.[1]?.image_url;
const imageData = imageEntry?.url;
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)) {
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)) {
mergedMessages[mergedMessages.length - 1].content[0].text += '\n\n' + message.content;
} else {
mergedMessages[mergedMessages.length - 1].content += '\n\n' + message.content;
}
}
} else {
mergedMessages.push(message);
}
if (imageData) {
mergedMessages[mergedMessages.length - 1].content = [
{ type: 'text', text: mergedMessages[mergedMessages.length - 1].content[0]?.text || mergedMessages[mergedMessages.length - 1].content },
{
type: 'image', source: {
type: 'base64',
media_type: mimeType,
data: base64Data,
},
},
];
}
});
return { messages: mergedMessages, systemPrompt: systemPrompt.trim() };
}
/**
* Convert a prompt from the ChatML objects to the format used by Google MakerSuite models.
* @param {object[]} messages Array of messages
@ -160,6 +272,7 @@ function convertTextCompletionPrompt(messages) {
module.exports = {
convertClaudePrompt,
convertClaudeMessages,
convertGooglePrompt,
convertTextCompletionPrompt,
};

View File

@ -31,6 +31,9 @@ const SECRET_KEYS = {
CUSTOM: 'api_key_custom',
OOBA: 'api_key_ooba',
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

View File

@ -249,6 +249,7 @@ async function loadClaudeTokenizer(modelPath) {
}
function countClaudeTokens(tokenizer, messages) {
// Should be fine if we use the old conversion method instead of the messages API one i think?
const convertedPrompt = convertClaudePrompt(messages, false, false, false);
// Fallback to strlen estimation
@ -606,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$/, '');

View File

@ -5,7 +5,7 @@ const sanitize = require('sanitize-filename');
const { jsonParser } = require('../express-common');
// Don't forget to add new sources to the SOURCES array
const SOURCES = ['transformers', 'mistral', 'openai', 'extras', 'palm'];
const SOURCES = ['transformers', 'mistral', 'openai', 'extras', 'palm', 'togetherai', 'nomicai'];
/**
* Gets the vector for the given text from the given source.
@ -16,9 +16,12 @@ const SOURCES = ['transformers', 'mistral', 'openai', 'extras', 'palm'];
*/
async function getVector(source, sourceSettings, text) {
switch (source) {
case 'nomicai':
return require('../nomicai-vectors').getNomicAIVector(text, source);
case 'togetherai':
case 'mistral':
case 'openai':
return require('../openai-vectors').getOpenAIVector(text, source);
return require('../openai-vectors').getOpenAIVector(text, source, sourceSettings.model);
case 'transformers':
return require('../embedding').getTransformersVector(text);
case 'extras':
@ -44,9 +47,13 @@ async function getBatchVector(source, sourceSettings, texts) {
let results = [];
for (let batch of batches) {
switch (source) {
case 'nomicai':
results.push(...await require('../nomicai-vectors').getNomicAIBatchVector(batch, source));
break;
case 'togetherai':
case 'mistral':
case 'openai':
results.push(...await require('../openai-vectors').getOpenAIBatchVector(batch, source));
results.push(...await require('../openai-vectors').getOpenAIBatchVector(batch, source, sourceSettings.model));
break;
case 'transformers':
results.push(...await require('../embedding').getTransformersBatchVector(batch));
@ -165,19 +172,32 @@ async function queryCollection(collectionId, source, sourceSettings, searchText,
* @returns {object} - An object that can be used as `sourceSettings` in functions that take that parameter.
*/
function getSourceSettings(source, request) {
// Extras API settings to connect to the Extras embeddings provider
let extrasUrl = '';
let extrasKey = '';
if (source === 'extras') {
extrasUrl = String(request.headers['x-extras-url']);
extrasKey = String(request.headers['x-extras-key']);
}
if (source === 'togetherai') {
let model = String(request.headers['x-togetherai-model']);
const sourceSettings = {
extrasUrl: extrasUrl,
extrasKey: extrasKey,
};
return sourceSettings;
return {
model: model,
};
} else if (source === 'openai') {
let model = String(request.headers['x-openai-model']);
return {
model: model,
};
} else {
// Extras API settings to connect to the Extras embeddings provider
let extrasUrl = '';
let extrasKey = '';
if (source === 'extras') {
extrasUrl = String(request.headers['x-extras-url']);
extrasKey = String(request.headers['x-extras-key']);
}
return {
extrasUrl: extrasUrl,
extrasKey: extrasKey,
};
}
}
const router = express.Router();

76
src/nomicai-vectors.js Normal file
View File

@ -0,0 +1,76 @@
const fetch = require('node-fetch').default;
const { SECRET_KEYS, readSecret } = require('./endpoints/secrets');
const SOURCES = {
'nomicai': {
secretKey: SECRET_KEYS.NOMICAI,
url: 'api-atlas.nomic.ai/v1/embedding/text',
model: 'nomic-embed-text-v1.5',
}
};
/**
* Gets the vector for the given text batch from an OpenAI compatible endpoint.
* @param {string[]} texts - The array of texts to get the vector for
* @param {string} source - The source of the vector
* @returns {Promise<number[][]>} - The array of vectors for the texts
*/
async function getNomicAIBatchVector(texts, source) {
const config = SOURCES[source];
if (!config) {
console.log('Unknown source', source);
throw new Error('Unknown source');
}
const key = readSecret(config.secretKey);
if (!key) {
console.log('No API key found');
throw new Error('No API key found');
}
const url = config.url;
let response;
response = await fetch(`https://${url}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${key}`,
},
body: JSON.stringify({
texts: texts,
model: config.model,
}),
});
if (!response.ok) {
const text = await response.text();
console.log('API request failed', response.statusText, text);
throw new Error('API request failed');
}
const data = await response.json();
if (!Array.isArray(data?.embeddings)) {
console.log('API response was not an array');
throw new Error('API response was not an array');
}
return data.embeddings;
}
/**
* Gets the vector for the given text from an OpenAI compatible endpoint.
* @param {string} text - The text to get the vector for
* @param {string} source - The source of the vector
* @returns {Promise<number[]>} - The vector for the text
*/
async function getNomicAIVector(text, source) {
const vectors = await getNomicAIBatchVector([text], source);
return vectors[0];
}
module.exports = {
getNomicAIVector,
getNomicAIBatchVector,
};

View File

@ -2,6 +2,11 @@ const fetch = require('node-fetch').default;
const { SECRET_KEYS, readSecret } = require('./endpoints/secrets');
const SOURCES = {
'togetherai': {
secretKey: SECRET_KEYS.TOGETHERAI,
url: 'api.together.xyz',
model: 'togethercomputer/m2-bert-80M-32k-retrieval',
},
'mistral': {
secretKey: SECRET_KEYS.MISTRALAI,
url: 'api.mistral.ai',
@ -18,9 +23,10 @@ const SOURCES = {
* Gets the vector for the given text batch from an OpenAI compatible endpoint.
* @param {string[]} texts - The array of texts to get the vector for
* @param {string} source - The source of the vector
* @param {string} model - The model to use for the embedding
* @returns {Promise<number[][]>} - The array of vectors for the texts
*/
async function getOpenAIBatchVector(texts, source) {
async function getOpenAIBatchVector(texts, source, model = '') {
const config = SOURCES[source];
if (!config) {
@ -44,7 +50,7 @@ async function getOpenAIBatchVector(texts, source) {
},
body: JSON.stringify({
input: texts,
model: config.model,
model: model || config.model,
}),
});
@ -72,10 +78,11 @@ async function getOpenAIBatchVector(texts, source) {
* Gets the vector for the given text from an OpenAI compatible endpoint.
* @param {string} text - The text to get the vector for
* @param {string} source - The source of the vector
* @param model
* @returns {Promise<number[]>} - The vector for the text
*/
async function getOpenAIVector(text, source) {
const vectors = await getOpenAIBatchVector([text], source);
async function getOpenAIVector(text, source, model = '') {
const vectors = await getOpenAIBatchVector([text], source, model);
return vectors[0];
}

View File

@ -28,7 +28,8 @@ if [ ! -z "$REPL_ID" ]; then
fi
echo "Installing Node Modules..."
npm i --no-audit
export NODE_ENV=production
npm i --no-audit --no-fund --quiet --omit=dev
echo "Entering SillyTavern..."
node "$(dirname "$0")/server.js" "$@"