From 92ad5ca32077c776f756c9e9b5fa7ae59f07433a Mon Sep 17 00:00:00 2001 From: Zhongyi Lu Date: Tue, 16 Apr 2024 20:00:43 -0700 Subject: [PATCH 1/2] add English test --- public/locales/en.json | 919 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 918 insertions(+), 1 deletion(-) diff --git a/public/locales/en.json b/public/locales/en.json index 2c63c085..2dd55f95 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -1,2 +1,919 @@ { -} + "clickslidertips": "Click slider numbers to input manually.", + "kobldpresets": "Kobold Presets", + "guikoboldaisettings": "GUI KoboldAI Settings", + "novelaipreserts": "NovelAI Presets", + "default": "default", + "openaipresets": "Chat Completion Presets", + "text gen webio(ooba) presets": "Text gen webio(ooba) presets", + "response legth(tokens)": "Response (tokens)", + "select": "Select", + "context size(tokens)": "Context (tokens)", + "unlocked": "Unlocked", + "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.": "Only select models support context sizes greater than 4096 tokens. Increase only if you know what you're doing.", + "rep.pen": "Repetition Penalty", + "WI Entry Status:\ud83d\udd35 Constant\ud83d\udfe2 Normal\u274c Disabled": "WI Entry Status:\ud83d\udd35 Constant\ud83d\udfe2 Normal\u274c Disabled", + "rep.pen range": "Repetition Penalty Range", + "Temperature controls the randomness in token selection": "Temperature controls the randomness in token selection", + "temperature": "Temperature", + "Top K sets a maximum amount of top tokens that can be chosen from": "Top K sets a maximum amount of top tokens that can be chosen from", + "Top P (a.k.a. nucleus sampling)": "Top P (a.k.a. nucleus sampling)", + "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set": "Typical P Sampling prioritizes tokens based on their deviation from the average entropy of the set", + "Min P sets a base minimum probability": "Min P sets a base minimum probability", + "Top A sets a threshold for token selection based on the square of the highest token probability": "Top A sets a threshold for token selection based on the square of the highest token probability", + "Tail-Free Sampling (TFS)": "Tail-Free Sampling (TFS)", + "Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "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": "Scale Temperature dynamically per token, based on the variation of probabilities", + "Minimum Temp": "Minimum Temp", + "Maximum Temp": "Maximum Temp", + "Exponent": "Exponent", + "Mirostat Mode": "Mirostat Mode", + "Mirostat Tau": "Mirostat Tau", + "Mirostat Eta": "Mirostat Eta", + "Variability parameter for Mirostat outputs": "Variability parameter for Mirostat outputs", + "Learning rate of Mirostat": "Learning rate of Mirostat", + "Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Strength of the Contrastive Search regularization term. Set to 0 to disable CS", + "Temperature Last": "Temperature Last", + "Use the temperature sampler last": "Use the temperature sampler last", + "LLaMA / Mistral / Yi models only": "LLaMA / Mistral / Yi models only", + "Example: some text [42, 69, 1337]": "Example: some text [42, 69, 1337]", + "Classifier Free Guidance. More helpful tip coming soon": "Classifier Free Guidance. More helpful tip coming soon", + "Scale": "Scale", + "GBNF Grammar": "GBNF Grammar", + "Usage Stats": "Usage Stats", + "Click for stats!": "Click for stats!", + "Backup": "Backup", + "Backup your personas to a file": "Backup your personas to a file", + "Restore": "Restore", + "Restore your personas from a file": "Restore your personas from a file", + "Type in the desired custom grammar": "Type in the desired custom grammar", + "Encoder Rep. Pen.": "Encoder Rep. Pen.", + "Smoothing Factor": "Smoothing Factor", + "No Repeat Ngram Size": "No Repeat Ngram Size", + "Min Length": "Min Length", + "OpenAI Reverse Proxy": "OpenAI Reverse Proxy", + "Alternative server URL (leave empty to use the default value).": "Alternative server URL (leave empty to use the default value).", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "Remove your real OAI API Key from the API panel BEFORE typing anything into this box", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "We cannot provide support for problems encountered while using an unofficial OpenAI proxy", + "Legacy Streaming Processing": "Legacy Streaming Processing", + "Enable this if the streaming doesn't work with your proxy": "Enable this if the streaming doesn't work with your proxy", + "Context Size (tokens)": "Context Size (tokens)", + "Max Response Length (tokens)": "Max Response Length (tokens)", + "Temperature": "Temperature", + "Frequency Penalty": "Frequency Penalty", + "Presence Penalty": "Presence Penalty", + "Top-p": "Top-p", + "Display bot response text chunks as they are generated": "Display bot response text chunks as they are generated", + "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", + "Do Sample": "Do Sample", + "Add BOS Token": "Add BOS Token", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative", + "Ban EOS Token": "Ban EOS Token", + "Ban the eos_token. This forces the model to never end the generation prematurely": "Ban the eos_token. This forces the model to never end the generation prematurely", + "Skip Special Tokens": "Skip Special Tokens", + "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", + "Epsilon Cutoff": "Epsilon Cutoff", + "Eta Cutoff": "Eta Cutoff", + "Negative Prompt": "Negative Prompt", + "Mirostat (mode=1 is only for llama.cpp)": "Mirostat (mode=1 is only for llama.cpp)", + "Mirostat is a thermostat for output perplexity": "Mirostat is a thermostat for output perplexity", + "Add text here that would make the AI generate things you don't want in your outputs.": "Add text here that would make the AI generate things you don't want in your outputs.", + "Phrase Repetition Penalty": "Phrase Repetition Penalty", + "Preamble": "Preamble", + "Use style tags to modify the writing style of the output.": "Use style tags to modify the writing style of the output.", + "Banned Tokens": "Banned Tokens", + "Sequences you don't want to appear in the output. One per line.": "Sequences you don't want to appear in the output. One per line.", + "AI Module": "AI Module", + "Changes the style of the generated text.": "Changes the style of the generated text.", + "Used if CFG Scale is unset globally, per chat or character": "Used if CFG Scale is unset globally, per chat or character", + "Inserts jailbreak as a last system message.": "Inserts jailbreak as a last system message.", + "This tells the AI to ignore its usual content restrictions.": "This tells the AI to ignore its usual content restrictions.", + "NSFW Encouraged": "NSFW Encouraged", + "Tell the AI that NSFW is allowed.": "Tell the AI that NSFW is allowed.", + "NSFW Prioritized": "NSFW Prioritized", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "NSFW prompt text goes first in the prompt to emphasize its effect.", + "Streaming": "Streaming", + "Dynamic Temperature": "Dynamic Temperature", + "Restore current preset": "Restore current preset", + "Neutralize Samplers": "Neutralize Samplers", + "Text Completion presets": "Text Completion presets", + "Documentation on sampling parameters": "Documentation on sampling parameters", + "Set all samplers to their neutral/disabled state.": "Set all samplers to their neutral/disabled state.", + "Only enable this if your model supports context sizes greater than 4096 tokens": "Only enable this if your model supports context sizes greater than 4096 tokens", + "Display the response bit by bit as it is generated": "Display the response bit by bit as it is generated", + "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).": "Generate only one line per request (KoboldAI only, ignored by KoboldCpp).", + "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).": "Ban the End-of-Sequence (EOS) token (with KoboldCpp, and possibly also other tokens with KoboldAI).", + "Good for story writing, but should not be used for chat and instruct mode.": "Good for story writing, but should not be used for chat and instruct mode.", + "Enhance Definitions": "Enhance Definitions", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "Use OAI knowledge base to enhance definitions for public figures and known fictional characters", + "Wrap in Quotes": "Wrap in Quotes", + "Wrap entire user message in quotes before sending.": "Wrap entire user message in quotes before sending.", + "Leave off if you use quotes manually for speech.": "Leave off if you use quotes manually for speech.", + "Main prompt": "Main prompt", + "The main prompt used to set the model behavior": "The main prompt used to set the model behavior", + "NSFW prompt": "NSFW prompt", + "Prompt that is used when the NSFW toggle is on": "Prompt that is used when the NSFW toggle is on", + "Jailbreak prompt": "Jailbreak prompt", + "Prompt that is used when the Jailbreak toggle is on": "Prompt that is used when the Jailbreak toggle is on", + "Impersonation prompt": "Impersonation prompt", + "Prompt that is used for Impersonation function": "Prompt that is used for Impersonation function", + "Logit Bias": "Logit Bias", + "Helps to ban or reenforce the usage of certain words": "Helps to ban or reenforce the usage of certain words", + "View / Edit bias preset": "View / Edit bias preset", + "Add bias entry": "Add bias entry", + "Jailbreak activation message": "Jailbreak activation message", + "Message to send when auto-jailbreak is on.": "Message to send when auto-jailbreak is on.", + "Jailbreak confirmation reply": "Jailbreak confirmation reply", + "Bot must send this back to confirm jailbreak": "Bot must send this back to confirm jailbreak", + "Character Note": "Character Note", + "Influences bot behavior in its responses": "Influences bot behavior in its responses", + "Connect": "Connect", + "Test Message": "Test Message", + "API": "API", + "KoboldAI": "KoboldAI", + "Use Horde": "Use Horde", + "API url": "API url", + "PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite-engine", + "Register a Horde account for faster queue times": "Register a Horde account for faster queue times", + "Learn how to contribute your idle GPU cycles to the Hord": "Learn how to contribute your idle GPU cycles to the Hord", + "Adjust context size to worker capabilities": "Adjust context size to worker capabilities", + "Adjust response length to worker capabilities": "Adjust response length to worker capabilities", + "API key": "API key", + "Tabby API key": "Tabby API key", + "Get it here:": "Get it here:", + "Register": "Register", + "TogetherAI Model": "TogetherAI Model", + "Example: 127.0.0.1:5001": "Example: 127.0.0.1:5001", + "ggerganov/llama.cpp": "ggerganov/llama.cpp", + "Example: 127.0.0.1:8080": "Example: 127.0.0.1:8080", + "Example: 127.0.0.1:11434": "Example: 127.0.0.1:11434", + "Ollama Model": "Ollama Model", + "Download": "Download", + "TogetherAI API Key": "TogetherAI API Key", + "-- Connect to the API --": "-- Connect to the API --", + "View my Kudos": "View my Kudos", + "Enter": "Enter", + "to use anonymous mode.": "to use anonymous mode.", + "For privacy reasons": "For privacy reasons", + "Models": "Models", + "Hold Control / Command key to select multiple models.": "Hold Control / Command key to select multiple models.", + "Horde models not loaded": "Horde models not loaded", + "Not connected...": "Not connected...", + "Novel API key": "Novel API key", + "Follow": "Follow", + "these directions": "these directions", + "to get your NovelAI API key.": "to get your NovelAI API key.", + "Enter it in the box below": "Enter it in the box below", + "Novel AI Model": "Novel AI Model", + "If you are using:": "If you are using:", + "oobabooga/text-generation-webui": "oobabooga/text-generation-webui", + "Make sure you run it with": "Make sure you run it with", + "flag": "flag", + "API key (optional)": "API key (optional)", + "Server url": "Server url", + "Custom model (optional)": "Custom model (optional)", + "Bypass API status check": "Bypass API status check", + "Mancer AI": "Mancer AI", + "Use API key (Only required for Mancer)": "Use API key (Only required for Mancer)", + "Blocking API url": "Blocking API url", + "Example: 127.0.0.1:5000": "Example: 127.0.0.1:5000", + "Legacy API (pre-OAI, no streaming)": "Legacy API (pre-OAI, no streaming)", + "Bypass status check": "Bypass status check", + "Streaming API url": "Streaming API url", + "Example: ws://127.0.0.1:5005/api/v1/stream": "Example: ws://127.0.0.1:5005/api/v1/stream", + "Mancer API key": "Mancer API key", + "Example: https://neuro.mancer.tech/webui/MODEL/api": "Example: https://neuro.mancer.tech/webui/MODEL/api", + "to get your OpenAI API key.": "to get your OpenAI API key.", + "Window AI Model": "Window AI Model", + "OpenAI Model": "OpenAI Model", + "Claude API Key": "Claude API Key", + "Get your key from": "Get your key from", + "Anthropic's developer console": "Anthropic's developer console", + "Slack and Poe cookies will not work here, do not bother trying.": "Slack and Poe cookies will not work here, do not bother trying.", + "Claude Model": "Claude Model", + "Scale API Key": "Scale API Key", + "Alt Method": "Alt Method", + "AI21 API Key": "AI21 API Key", + "AI21 Model": "AI21 Model", + "View API Usage Metrics": "View API Usage Metrics", + "Show External models (provided by API)": "Show External models (provided by API)", + "Bot": "Bot", + "Allow fallback routes": "Allow fallback routes", + "Allow fallback routes Description": "Allow fallback routes Description", + "OpenRouter API Key": "OpenRouter API Key", + "Connect to the API": "Connect to the API", + "OpenRouter Model": "OpenRouter Model", + "View Remaining Credits": "View Remaining Credits", + "Click Authorize below or get the key from": "Click Authorize below or get the key from", + "Auto-connect to Last Server": "Auto-connect to Last Server", + "View hidden API keys": "View hidden API keys", + "Advanced Formatting": "Advanced Formatting", + "Context Template": "Context Template", + "AutoFormat Overrides": "AutoFormat Overrides", + "Disable description formatting": "Disable description formatting", + "Disable personality formatting": "Disable personality formatting", + "Disable scenario formatting": "Disable scenario formatting", + "Disable example chats formatting": "Disable example chats formatting", + "Disable chat start formatting": "Disable chat start formatting", + "Custom Chat Separator": "Custom Chat Separator", + "Replace Macro in Custom Stopping Strings": "Replace Macro in Custom Stopping Strings", + "Strip Example Messages from Prompt": "Strip Example Messages from Prompt", + "Story String": "Story String", + "Example Separator": "Example Separator", + "Chat Start": "Chat Start", + "Activation Regex": "Activation Regex", + "Instruct Mode": "Instruct Mode", + "Wrap Sequences with Newline": "Wrap Sequences with Newline", + "Include Names": "Include Names", + "Force for Groups and Personas": "Force for Groups and Personas", + "System Prompt": "System Prompt", + "Instruct Mode Sequences": "Instruct Mode Sequences", + "Input Sequence": "Input Sequence", + "Output Sequence": "Output Sequence", + "First Output Sequence": "First Output Sequence", + "Last Output Sequence": "Last Output Sequence", + "System Sequence Prefix": "System Sequence Prefix", + "System Sequence Suffix": "System Sequence Suffix", + "Stop Sequence": "Stop Sequence", + "Context Formatting": "Context Formatting", + "(Saved to Context Template)": "(Saved to Context Template)", + "Tokenizer": "Tokenizer", + "None / Estimated": "None / Estimated", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "Token Padding", + "Save preset as": "Save preset as", + "Always add character's name to prompt": "Always add character's name to prompt", + "Use as Stop Strings": "Use as Stop Strings", + "Bind to Context": "Bind to Context", + "Generate only one line per request": "Generate only one line per request", + "Misc. Settings": "Misc. Settings", + "Auto-Continue": "Auto-Continue", + "Collapse Consecutive Newlines": "Collapse Consecutive Newlines", + "Allow for Chat Completion APIs": "Allow for Chat Completion APIs", + "Target length (tokens)": "Target length (tokens)", + "Keep Example Messages in Prompt": "Keep Example Messages in Prompt", + "Remove Empty New Lines from Output": "Remove Empty New Lines from Output", + "Disabled for all models": "Disabled for all models", + "Automatic (based on model name)": "Automatic (based on model name)", + "Enabled for all models": "Enabled for all models", + "Anchors Order": "Anchors Order", + "Character then Style": "Character then Style", + "Style then Character": "Style then Character", + "Character Anchor": "Character Anchor", + "Style Anchor": "Style Anchor", + "World Info": "World Info", + "Scan Depth": "Scan Depth", + "Case-Sensitive": "Case-Sensitive", + "Match Whole Words": "Match Whole Words", + "Use global setting": "Use global setting", + "Yes": "Yes", + "No": "No", + "Context %": "Context %", + "Budget Cap": "Budget Cap", + "(0 = disabled)": "(0 = disabled)", + "depth": "depth", + "Token Budget": "Token Budget", + "budget": "budget", + "Recursive scanning": "Recursive scanning", + "None": "None", + "User Settings": "User Settings", + "UI Mode": "UI Mode", + "UI Language": "UI Language", + "MovingUI Preset": "MovingUI Preset", + "UI Customization": "UI Customization", + "Avatar Style": "Avatar Style", + "Circle": "Circle", + "Rectangle": "Rectangle", + "Square": "Square", + "Chat Style": "Chat Style", + "Default": "Default", + "Bubbles": "Bubbles", + "No Blur Effect": "No Blur Effect", + "No Text Shadows": "No Text Shadows", + "Waifu Mode": "Waifu Mode", + "Message Timer": "Message Timer", + "Model Icon": "Model Icon", + "# of messages (0 = disabled)": "# of messages (0 = disabled)", + "Advanced Character Search": "Advanced Character Search", + "Allow {{char}}: in bot messages": "Allow {{char}}: in bot messages", + "Allow {{user}}: in bot messages": "Allow {{user}}: in bot messages", + "Show tags in responses": "Show tags in responses", + "Aux List Field": "Aux List Field", + "Lorebook Import Dialog": "Lorebook Import Dialog", + "MUI Preset": "MUI Preset", + "If set in the advanced character definitions, this field will be displayed in the characters list.": "If set in the advanced character definitions, this field will be displayed in the characters list.", + "Relaxed API URLS": "Relaxed API URLS", + "Custom CSS": "Custom CSS", + "Default (oobabooga)": "Default (oobabooga)", + "Mancer Model": "Mancer Model", + "API Type": "API Type", + "Aphrodite API key": "Aphrodite API key", + "Relax message trim in Groups": "Relax message trim in Groups", + "Characters Hotswap": "Characters Hotswap", + "Request token probabilities": "Request token probabilities", + "Movable UI Panels": "Movable UI Panels", + "Reset Panels": "Reset Panels", + "UI Colors": "UI Colors", + "Main Text": "Main Text", + "Italics Text": "Italics Text", + "Quote Text": "Quote Text", + "Shadow Color": "Shadow Color", + "FastUI BG": "FastUI BG", + "Blur Tint": "Blur Tint", + "Font Scale": "Font Scale", + "Blur Strength": "Blur Strength", + "Text Shadow Width": "Text Shadow Width", + "UI Theme Preset": "UI Theme Preset", + "Power User Options": "Power User Options", + "Swipes": "Swipes", + "Miscellaneous": "Miscellaneous", + "Theme Toggles": "Theme Toggles", + "Background Sound Only": "Background Sound Only", + "Auto-load Last Chat": "Auto-load Last Chat", + "Auto-save Message Edits": "Auto-save Message Edits", + "Auto-fix Markdown": "Auto-fix Markdown", + "Allow : in bot messages": "Allow : in bot messages", + "Auto-scroll Chat": "Auto-scroll Chat", + "Render Formulas": "Render Formulas", + "Send on Enter": "Send on Enter", + "Always disabled": "Always disabled", + "Automatic (desktop)": "Automatic (desktop)", + "Always enabled": "Always enabled", + "Debug Menu": "Debug Menu", + "Restore User Input": "Restore User Input", + "Character Handling": "Character Handling", + "Example Messages Behavior": "Example Messages Behavior", + "Gradual push-out": "Gradual push-out", + "Chat/Message Handling": "Chat/Message Handling", + "Always include examples": "Always include examples", + "Never include examples": "Never include examples", + "Forbid External Media": "Forbid External Media", + "System Backgrounds": "System Backgrounds", + "Name": "Name", + "Your Avatar": "Your Avatar", + "Extensions API:": "Extensions API:", + "SillyTavern-extras": "SillyTavern-extras", + "Auto-connect": "Auto-connect", + "Active extensions": "Active extensions", + "Extension settings": "Extension settings", + "Description": "Description", + "First message": "First message", + "Group Controls": "Group Controls", + "Group reply strategy": "Group reply strategy", + "Natural order": "Natural order", + "List order": "List order", + "Allow self responses": "Allow self responses", + "Auto Mode": "Auto Mode", + "Add Members": "Add Members", + "Current Members": "Current Members", + "text": "text", + "Delete": "Delete", + "Cancel": "Cancel", + "Advanced Defininitions": "Advanced Defininitions", + "Personality summary": "Personality summary", + "A brief description of the personality": "A brief description of the personality", + "Scenario": "Scenario", + "Circumstances and context of the dialogue": "Circumstances and context of the dialogue", + "Talkativeness": "Talkativeness", + "How often the chracter speaks in": "How often the chracter speaks in", + "group chats!": "group chats!", + "Shy": "Shy", + "Normal": "Normal", + "Chatty": "Chatty", + "Examples of dialogue": "Examples of dialogue", + "Forms a personality more clearly": "Forms a personality more clearly", + "Save": "Save", + "World Info Editor": "World Info Editor", + "New summary": "New summary", + "Export": "Export", + "Delete World": "Delete World", + "Chat History": "Chat History", + "Group Chat Scenario Override": "Group Chat Scenario Override", + "All group members will use the following scenario text instead of what is specified in their character cards.": "All group members will use the following scenario text instead of what is specified in their character cards.", + "Keywords": "Keywords", + "Separate with commas": "Separate with commas", + "Secondary Required Keywords": "Secondary Required Keywords", + "Content": "Content", + "What this keyword should mean to the AI": "What this keyword should mean to the AI", + "Memo/Note": "Memo/Note", + "Not sent to AI": "Not sent to AI", + "Constant": "Constant", + "Selective": "Selective", + "Before Char": "Before Char", + "After Char": "After Char", + "Insertion Order": "Insertion Order", + "Tokens:": "Tokens:", + "Disable": "Disable", + "${characterName}": "${characterName}", + "CHAR": "CHAR", + "is typing": "is typing", + "Back to parent chat": "Back to parent chat", + "Save bookmark": "Save bookmark", + "Convert to group": "Convert to group", + "Start new chat": "Start new chat", + "View past chats": "View past chats", + "Delete messages": "Delete messages", + "Impersonate": "Impersonate", + "Regenerate": "Regenerate", + "PNG": "PNG", + "JSON": "JSON", + "presets": "presets", + "Message Sound": "Message Sound", + "Author's Note": "Author's Note", + "Send Jailbreak": "Send Jailbreak", + "Replace empty message": "Replace empty message", + "Send this text instead of nothing when the text box is empty.": "Send this text instead of nothing when the text box is empty.", + "NSFW avoidance prompt": "NSFW avoidance prompt", + "Prompt that is used when the NSFW toggle is off": "Prompt that is used when the NSFW toggle is off", + "Advanced prompt bits": "Advanced prompt bits", + "World Info format": "World Info format", + "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.": "Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.", + "Unrestricted maximum value for the context slider": "Unrestricted maximum value for the context slider", + "Chat Completion Source": "Chat Completion Source", + "Avoid sending sensitive information to the Horde.": "Avoid sending sensitive information to the Horde.", + "Review the Privacy statement": "Review the Privacy statement", + "Learn how to contribute your idel GPU cycles to the Horde": "Learn how to contribute your idel GPU cycles to the Horde", + "Trusted workers only": "Trusted workers only", + "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.", + "-- Horde models not loaded --": "-- Horde models not loaded --", + "Example: http://127.0.0.1:5000/api ": "Example: http://127.0.0.1:5000/api ", + "No connection...": "No connection...", + "Get your NovelAI API Key": "Get your NovelAI API Key", + "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 key", + "Trim spaces": "Trim spaces", + "Trim Incomplete Sentences": "Trim Incomplete Sentences", + "Include Newline": "Include Newline", + "Non-markdown strings": "Non-markdown strings", + "Replace Macro in Sequences": "Replace Macro in Sequences", + "Presets": "Presets", + "Separator": "Separator", + "Start Reply With": "Start Reply With", + "Show reply prefix in chat": "Show reply prefix in chat", + "Worlds/Lorebooks": "Worlds/Lorebooks", + "Active World(s)": "Active World(s)", + "Activation Settings": "Activation Settings", + "Character Lore Insertion Strategy": "Character Lore Insertion Strategy", + "Sorted Evenly": "Sorted Evenly", + "Active World(s) for all chats": "Active World(s) for all chats", + "-- World Info not found --": "-- World Info not found --", + "--- Pick to Edit ---": "--- Pick to Edit ---", + "or": "or", + "New": "New", + "Priority": "Priority", + "Custom": "Custom", + "Title A-Z": "Title A-Z", + "Title Z-A": "Title Z-A", + "Tokens \u2197": "Tokens \u2197", + "Tokens \u2198": "Tokens \u2198", + "Depth \u2197": "Depth \u2197", + "Depth \u2198": "Depth \u2198", + "Order \u2197": "Order \u2197", + "Order \u2198": "Order \u2198", + "UID \u2197": "UID \u2197", + "UID \u2198": "UID \u2198", + "Trigger% \u2197": "Trigger% \u2197", + "Trigger% \u2198": "Trigger% \u2198", + "Order:": "Order:", + "Depth:": "Depth:", + "Character Lore First": "Character Lore First", + "Global Lore First": "Global Lore First", + "Recursive Scan": "Recursive Scan", + "Case Sensitive": "Case Sensitive", + "Match whole words": "Match whole words", + "Alert On Overflow": "Alert On Overflow", + "World/Lore Editor": "World/Lore Editor", + "--- None ---": "--- None ---", + "Comma seperated (ignored if empty)": "Comma seperated (ignored if empty)", + "Use Probability": "Use Probability", + "Exclude from recursion": "Exclude from recursion", + "Entry Title/Memo": "Entry Title/Memo", + "Position:": "Position:", + "T_Position": "T_Position", + "Before Char Defs": "Before Char Defs", + "After Char Defs": "After Char Defs", + "Before AN": "Before AN", + "After AN": "After AN", + "at Depth": "at Depth", + "Order": "Order", + "Probability:": "Probability:", + "Update a theme file": "Update a theme file", + "Save as a new theme": "Save as a new theme", + "Minimum number of blacklisted words detected to trigger an auto-swipe": "Minimum number of blacklisted words detected to trigger an auto-swipe", + "Delete Entry": "Delete Entry", + "User Message Blur Tint": "User Message Blur Tint", + "AI Message Blur Tint": "AI Message Blur Tint", + "Chat Backgrounds": "Chat Backgrounds", + "Chat Background": "Chat Background", + "UI Background": "UI Background", + "Mad Lab Mode": "Mad Lab Mode", + "Show Message Token Count": "Show Message Token Count", + "Compact Input Area (Mobile)": "Compact Input Area (Mobile)", + "Zen Sliders": "Zen Sliders", + "UI Border": "UI Border", + "Chat Style:": "Chat Style:", + "Chat Width (PC)": "Chat Width (PC)", + "Chat Timestamps": "Chat Timestamps", + "Tags as Folders": "Tags as Folders", + "Chat Truncation": "Chat Truncation", + "(0 = unlimited)": "(0 = unlimited)", + "Streaming FPS": "Streaming FPS", + "Gestures": "Gestures", + "Message IDs": "Message IDs", + "Prefer Character Card Prompt": "Prefer Character Card Prompt", + "Prefer Character Card Jailbreak": "Prefer Character Card Jailbreak", + "Press Send to continue": "Press Send to continue", + "Quick 'Continue' button": "Quick 'Continue' button", + "Log prompts to console": "Log prompts to console", + "Never resize avatars": "Never resize avatars", + "Show avatar filenames": "Show avatar filenames", + "Import Card Tags": "Import Card Tags", + "Confirm message deletion": "Confirm message deletion", + "Spoiler Free Mode": "Spoiler Free Mode", + "Auto-swipe": "Auto-swipe", + "Minimum generated message length": "Minimum generated message length", + "Blacklisted words": "Blacklisted words", + "Blacklisted word count to swipe": "Blacklisted word count to swipe", + "Reload Chat": "Reload Chat", + "Search Settings": "Search Settings", + "Disabled": "Disabled", + "Automatic (PC)": "Automatic (PC)", + "Enabled": "Enabled", + "Simple": "Simple", + "Advanced": "Advanced", + "Disables animations and transitions": "Disables animations and transitions", + "removes blur from window backgrounds": "removes blur from window backgrounds", + "Remove text shadow effect": "Remove text shadow effect", + "Reduce chat height, and put a static sprite behind the chat window": "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 '...'": "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": "Alternative UI for numeric sampling parameters with fewer steps", + "Entirely unrestrict all numeric sampling parameters": "Entirely unrestrict all numeric sampling parameters", + "Time the AI's message generation, and show the duration in the chat log": "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 a timestamp for each message in the chat log", + "Show an icon for the API that generated the message": "Show an icon for the API that generated the message", + "Show sequential message numbers in the chat log": "Show sequential message numbers in the chat log", + "Show the number of tokens in each message 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": "Single-row message input area. Mobile only, no effect on PC", + "In the Character Management panel, show quick selection buttons for favorited characters": "In the Character Management panel, show quick selection buttons for favorited characters", + "Show tagged character folders in the character list": "Show tagged character folders in the character list", + "Play a sound when a message generation finishes": "Play a sound when a message generation finishes", + "Only play a sound when ST's browser tab is unfocused": "Only play a sound when ST's browser tab is unfocused", + "Reduce the formatting requirements on API URLs": "Reduce the formatting requirements on API URLs", + "Ask to import the World Info/Lorebook for every new character with embedded lorebook. If unchecked, a brief message will be shown instead": "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": "Restore unsaved user input on page refresh", + "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile": "Allow repositioning certain UI elements by dragging them. PC only, no effect on mobile", + "MovingUI preset. Predefined/saved draggable positions": "MovingUI preset. Predefined/saved draggable positions", + "Save movingUI changes to a new file": "Save movingUI changes to a new file", + "Apply a custom CSS style to all of the ST GUI": "Apply a custom CSS style to all of the ST GUI", + "Use fuzzy matching, and search characters in the list by all data fields, not just by a name substring": "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 prompt override (System Prompt), use that instead", + "If checked and the character card contains a jailbreak override (Post History Instruction), 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": "Avoid cropping and resizing imported character images. When off, crop/resize to 400x600", + "Show actual file names on the disk, in the characters list display only": "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": "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": "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 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": "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": "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": "Save edits to messages without confirmation as you type", + "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX": "Render LaTeX and AsciiMath equation notation in chat messages. Powered by KaTeX", + "Disalow embedded media from other domains in chat messages": "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": "Skip encoding and characters in message text, allowing a subset of HTML markup as well as Markdown", + "Allow AI messages in groups to contain lines spoken by other group members": "Allow AI messages in groups to contain lines spoken by other group members", + "Requests logprobs from the API for the Token Probabilities feature": "Requests logprobs from the API for the Token Probabilities feature", + "Automatically reject and re-generate AI message based on configurable criteria": "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": "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": "If the generated message is shorter than this, trigger an auto-swipe", + "Reload and redraw the currently open chat": "Reload and redraw the currently open chat", + "Auto-Expand Message Actions": "Auto-Expand Message Actions", + "Not Connected": "Not Connected", + "Persona Management": "Persona Management", + "Persona Description": "Persona Description", + "Your Persona": "Your Persona", + "Show notifications on switching personas": "Show notifications on switching personas", + "Blank": "Blank", + "In Story String / Chat Completion: Before Character Card": "In Story String / Chat Completion: Before Character Card", + "In Story String / Chat Completion: After Character Card": "In Story String / Chat Completion: After Character Card", + "In Story String / Prompt Manager": "In Story String / Prompt Manager", + "Top of Author's Note": "Top of Author's Note", + "Bottom of Author's Note": "Bottom of Author's Note", + "How do I use this?": "How do I use this?", + "More...": "More...", + "Link to World Info": "Link to World Info", + "Import Card Lore": "Import Card Lore", + "Scenario Override": "Scenario Override", + "Rename": "Rename", + "Character Description": "Character Description", + "Creator's Notes": "Creator's Notes", + "A-Z": "A-Z", + "Z-A": "Z-A", + "Newest": "Newest", + "Oldest": "Oldest", + "Favorites": "Favorites", + "Recent": "Recent", + "Most chats": "Most chats", + "Least chats": "Least chats", + "Back": "Back", + "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)": "Prompt Overrides (For OpenAI/Claude/Scale APIs, Window/OpenRouter, and Instruct mode)", + "Insert {{original}} into either box to include the respective default prompt from system settings.": "Insert {{original}} into either box to include the respective default prompt from system settings.", + "Main Prompt": "Main Prompt", + "Jailbreak": "Jailbreak", + "Creator's Metadata (Not sent with the AI prompt)": "Creator's Metadata (Not sent with the AI prompt)", + "Everything here is optional": "Everything here is optional", + "Created by": "Created by", + "Character Version": "Character Version", + "Tags to Embed": "Tags to Embed", + "How often the character speaks in group chats!": "How often the character speaks in group chats!", + "Important to set the character's writing style.": "Important to set the character's writing style.", + "ATTENTION!": "ATTENTION!", + "Samplers Order": "Samplers Order", + "Samplers will be applied in a top-down order. Use with caution.": "Samplers will be applied in a top-down order. Use with caution.", + "Repetition Penalty": "Repetition Penalty", + "Rep. Pen. Range.": "Rep. Pen. Range.", + "Rep. Pen. Freq.": "Rep. Pen. Freq.", + "Rep. Pen. Presence": "Rep. Pen. Presence", + "Enter it in the box below:": "Enter it in the box below:", + "separate with commas w/o space between": "separate with commas w/o space between", + "Document": "Document", + "Suggest replies": "Suggest replies", + "Show suggested replies. Not all bots support this.": "Show suggested replies. Not all bots support this.", + "Use 'Unlocked Context' to enable chunked generation.": "Use 'Unlocked Context' to enable chunked generation.", + "It extends the context window in exchange for reply generation speed.": "It extends the context window in exchange for reply generation speed.", + "Continue": "Continue", + "CFG Scale": "CFG Scale", + "Editing:": "Editing:", + "AI reply prefix": "AI reply prefix", + "Custom Stopping Strings": "Custom Stopping Strings", + "JSON serialized array of strings": "JSON serialized array of strings", + "words you dont want generated separated by comma ','": "words you dont want generated separated by comma ','", + "Extensions URL": "Extensions URL", + "API Key": "API Key", + "Enter your name": "Enter your name", + "Name this character": "Name this character", + "Search / Create Tags": "Search / Create Tags", + "Describe your character's physical and mental traits here.": "Describe your character's physical and mental traits here.", + "This will be the first message from the character that starts every chat.": "This will be the first message from the character that starts every chat.", + "Chat Name (Optional)": "Chat Name (Optional)", + "Filter...": "Filter...", + "Search...": "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 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)": "Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)", + "(Botmaker's name / Contact Info)": "(Botmaker's name / Contact Info)", + "(If you want to track character versions)": "(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.)": "(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)": "(Write a comma-separated list of tags)", + "(A brief description of the personality)": "(A brief description of the personality)", + "(Circumstances and context of the interaction)": "(Circumstances and context of the interaction)", + "(Examples of chat dialog. Begin each example with START on a new line.)": "(Examples of chat dialog. Begin each example with START on a new line.)", + "Injection text (supports parameters)": "Injection text (supports parameters)", + "Injection depth": "Injection depth", + "Type here...": "Type here...", + "Comma separated (required)": "Comma separated (required)", + "Comma separated (ignored if empty)": "Comma separated (ignored if empty)", + "What this keyword should mean to the AI, sent verbatim": "What this keyword should mean to the AI, sent verbatim", + "Filter to Character(s)": "Filter to Character(s)", + "Character Exclusion": "Character Exclusion", + "Inclusion Group": "Inclusion Group", + "Only one entry with the same label will be activated": "Only one entry with the same label will be activated", + "-- Characters not found --": "-- Characters not found --", + "Not sent to the AI": "Not sent to the AI", + "(This will be the first message from the character that starts every chat)": "(This will be the first message from the character that starts every chat)", + "Not connected to API!": "Not connected to API!", + "AI Response Configuration": "AI Response Configuration", + "AI Configuration panel will stay open": "AI Configuration panel will stay open", + "Update current preset": "Update current preset", + "Create new preset": "Create new preset", + "Import preset": "Import preset", + "Export preset": "Export preset", + "Delete the preset": "Delete the preset", + "Auto-select this preset for Instruct Mode": "Auto-select this preset for Instruct Mode", + "Auto-select this preset on API connection": "Auto-select this preset on API connection", + "NSFW block goes first in the resulting prompt": "NSFW block goes first in the resulting prompt", + "Enables OpenAI completion streaming": "Enables OpenAI completion streaming", + "Wrap user messages in quotes before sending": "Wrap user messages in quotes before sending", + "Restore default prompt": "Restore default prompt", + "New preset": "New preset", + "Delete preset": "Delete preset", + "Restore default jailbreak": "Restore default jailbreak", + "Restore default reply": "Restore default reply", + "Restore defaul note": "Restore defaul note", + "API Connections": "API Connections", + "Can help with bad responses by queueing only the approved workers. May slowdown the response time.": "Can help with bad responses by queueing only the approved workers. May slowdown the response time.", + "Clear your API key": "Clear your API key", + "Refresh models": "Refresh models", + "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai": "Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai", + "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!": "Verifies your API connection by sending a short test message. Be aware that you'll be credited for it!", + "Create New": "Create New", + "Edit": "Edit", + "Locked = World Editor will stay open": "Locked = World Editor will stay open", + "Entries can activate other entries by mentioning their keywords": "Entries can activate other entries by mentioning their keywords", + "Lookup for the entry keys in the context will respect the case": "Lookup for the entry keys in the context will respect the case", + "If the entry key consists of only one word, it would not be matched as part of other words": "If the entry key consists of only one word, it would not be matched as part of other words", + "Open all Entries": "Open all Entries", + "Close all Entries": "Close all Entries", + "Create": "Create", + "Import World Info": "Import World Info", + "Export World Info": "Export World Info", + "Delete World Info": "Delete World Info", + "Duplicate World Info": "Duplicate World Info", + "Rename World Info": "Rename World Info", + "Refresh": "Refresh", + "Primary Keywords": "Primary Keywords", + "Logic": "Logic", + "AND ANY": "AND ANY", + "AND ALL": "AND ALL", + "NOT ALL": "NOT ALL", + "NOT ANY": "NOT ANY", + "Optional Filter": "Optional Filter", + "New Entry": "New Entry", + "Fill empty Memo/Titles with Keywords": "Fill empty Memo/Titles with Keywords", + "Save changes to a new theme file": "Save changes to a new theme file", + "removes blur and uses alternative background color for divs": "removes blur and uses alternative background color for divs", + "AI Response Formatting": "AI Response Formatting", + "Change Background Image": "Change Background Image", + "Extensions": "Extensions", + "Click to set a new User Name": "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 lock your selected persona to the current chat. Click again to remove the lock.", + "Click to set user name for all messages": "Click to set user name for all messages", + "Create a dummy persona": "Create a dummy persona", + "Character Management": "Character Management", + "Locked = Character Management panel will stay open": "Locked = Character Management panel will stay open", + "Select/Create Characters": "Select/Create Characters", + "Token counts may be inaccurate and provided just for reference.": "Token counts may be inaccurate and provided just for reference.", + "Click to select a new avatar for this character": "Click to select a new avatar for this character", + "Example: [{{user}} is a 28-year-old Romanian cat girl.]": "Example: [{{user}} is a 28-year-old Romanian cat girl.]", + "Toggle grid view": "Toggle grid view", + "Add to Favorites": "Add to Favorites", + "Advanced Definition": "Advanced Definition", + "Character Lore": "Character Lore", + "Export and Download": "Export and Download", + "Duplicate Character": "Duplicate Character", + "Create Character": "Create Character", + "Delete Character": "Delete Character", + "View all tags": "View all tags", + "Click to set additional greeting messages": "Click to set additional greeting messages", + "Show / Hide Description and First Message": "Show / Hide Description and First Message", + "Click to select a new avatar for this group": "Click to select a new avatar for this group", + "Set a group chat scenario": "Set a group chat scenario", + "Restore collage avatar": "Restore collage avatar", + "Create New Character": "Create New Character", + "Import Character from File": "Import Character from File", + "Import content from external URL": "Import content from external URL", + "Create New Chat Group": "Create New Chat Group", + "Characters sorting order": "Characters sorting order", + "Add chat injection": "Add chat injection", + "Remove injection": "Remove injection", + "Remove": "Remove", + "Select a World Info file for": "Select a World Info file for", + "Primary Lorebook": "Primary Lorebook", + "A selected World Info will be bound to this character as its own 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.": "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.": "Exporting a character would also export the selected Lorebook file embedded in the JSON data.", + "Additional Lorebooks": "Additional Lorebooks", + "Associate one or more auxillary Lorebooks with this character.": "Associate one or more auxillary Lorebooks with this character.", + "NOTE: These choices are optional and won't be preserved on character export!": "NOTE: These choices are optional and won't be preserved on character export!", + "Rename chat file": "Rename chat file", + "Export JSONL chat file": "Export JSONL chat file", + "Download chat as plain text document": "Download chat as plain text document", + "Delete chat file": "Delete chat file", + "Delete tag": "Delete tag", + "Translate message": "Translate message", + "Generate Image": "Generate Image", + "Narrate": "Narrate", + "Prompt": "Prompt", + "Create Bookmark": "Create Bookmark", + "Copy": "Copy", + "Open bookmark chat": "Open bookmark chat", + "Confirm": "Confirm", + "Copy this message": "Copy this message", + "Delete this message": "Delete this message", + "Move message up": "Move message up", + "Move message down": "Move message down", + "Enlarge": "Enlarge", + "Temporarily disable automatic replies from this character": "Temporarily disable automatic replies from this character", + "Enable automatic replies from this character": "Enable automatic replies from this character", + "Trigger a message from this character": "Trigger a message from this character", + "Move up": "Move up", + "Move down": "Move down", + "View character card": "View character card", + "Remove from group": "Remove from group", + "Add to group": "Add to group", + "Add": "Add", + "Abort request": "Abort request", + "Send a message": "Send a message", + "Ask AI to write your message for you": "Ask AI to write your message for you", + "Continue the last message": "Continue the last message", + "Bind user name to that avatar": "Bind user name to that avatar", + "Select this as default persona for the new chats.": "Select this as default persona for the new chats.", + "Change persona image": "Change persona image", + "Delete persona": "Delete persona", + "Reduced Motion": "Reduced Motion", + "Auto-select": "Auto-select", + "Automatically select a background based on the chat context": "Automatically select a background based on the chat context", + "Filter": "Filter", + "Exclude message from prompts": "Exclude message from prompts", + "Include message in prompts": "Include message in prompts", + "Create checkpoint": "Create checkpoint", + "Create Branch": "Create Branch", + "Embed file or image": "Embed file or image", + "UI Theme": "UI Theme", + "This message is invisible for the AI": "This message is invisible for the AI", + "Sampler Priority": "Sampler Priority", + "Ooba only. Determines the order of samplers.": "Ooba only. Determines the order of samplers.", + "Load default order": "Load default order", + "Max Tokens Second": "Max Tokens Second", + "CFG": "CFG", + "No items": "No items", + "Extras API key (optional)": "Extras API key (optional)", + "Notify on extension updates": "Notify on extension updates", + "Toggle character grid view": "Toggle character grid view", + "Bulk edit characters": "Bulk edit characters", + "Bulk delete characters": "Bulk delete characters", + "Favorite characters to add them to HotSwaps": "Favorite characters to add them to HotSwaps", + "Underlined Text": "Underlined Text", + "Token Probabilities": "Token Probabilities", + "Close chat": "Close chat", + "Manage chat files": "Manage chat files", + "Import Extension From Git Repo": "Import Extension From Git Repo", + "Install extension": "Install extension", + "Manage extensions": "Manage extensions", + "Tokens persona description": "Tokens persona description", + "Most tokens": "Most tokens", + "Least tokens": "Least tokens", + "Random": "Random", + "Skip Example Dialogues Formatting": "Skip Example Dialogues Formatting", + "Import a theme file": "Import a theme file", + "Export a theme file": "Export a theme file", + "Unlocked Context Size": "Unlocked Context Size", + "Display the response bit by bit as it is generated.": "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.": "When this is off, responses will be displayed all at once when they are complete.", + "Quick Prompts Edit": "Quick Prompts Edit", + "Enable OpenAI completion streaming": "Enable OpenAI completion streaming", + "Main": "Main", + "Utility Prompts": "Utility Prompts", + "Add character names": "Add character names", + "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.", + "Continue prefill": "Continue prefill", + "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.", + "Squash system messages": "Squash system messages", + "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.", + "Send inline images": "Send inline images", + "Assistant Prefill": "Assistant Prefill", + "Start Claude's answer with...": "Start Claude's answer with...", + "Use system prompt (Claude 2.1+ only)": "Use system prompt (Claude 2.1+ only)", + "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.", + "Prompts": "Prompts", + "Total Tokens:": "Total Tokens:", + "Insert prompt": "Insert prompt", + "Delete prompt": "Delete prompt", + "Import a prompt list": "Import a prompt list", + "Export this prompt list": "Export this prompt list", + "Reset current character": "Reset current character", + "New prompt": "New prompt", + "Tokens": "Tokens", + "Want to update?": "Want to update?", + "How to start chatting?": "How to start chatting?", + "Click": "Click", + "and select a": "and select a", + "Chat API": "Chat API", + "and pick a character": "and pick a character", + "in the chat bar": "in the chat bar", + "Confused or lost?": "Confused or lost?", + "click these icons!": "click these icons!", + "SillyTavern Documentation Site": "SillyTavern Documentation Site", + "Extras Installation Guide": "Extras Installation Guide", + "Still have questions?": "Still have questions?", + "Join the SillyTavern Discord": "Join the SillyTavern Discord", + "Post a GitHub issue": "Post a GitHub issue", + "Contact the developers": "Contact the developers", + "Nucleus Sampling": "Nucleus Sampling", + "Typical P": "Typical P", + "Top K Sampling": "Top K Sampling", + "Top A Sampling": "Top A Sampling", + "Off": "Off", + "Very light": "Very light", + "Light": "Light", + "Medium": "Medium", + "Aggressive": "Aggressive", + "Very aggressive": "Very aggressive", + "Eta cutoff is the main parameter of the special Eta Sampling technique. In units of 1e-4; a reasonable value is 3. Set to 0 to disable. See the paper Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022) for details.": "Eta cutoff is the main parameter of the special Eta Sampling technique. In units of 1e-4; a reasonable value is 3. Set to 0 to disable. See the paper Truncation Sampling as Language Model Desmoothing by Hewitt et al. (2022) for details.", + "Learn how to contribute your idle GPU cycles to the Horde": "Learn how to contribute your idle GPU cycles to the Horde", + "Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.": "Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.", + "Load koboldcpp order": "Load koboldcpp order", + "Use Google Tokenizer": "Use Google Tokenizer" +} \ No newline at end of file From 1a3070d46415c203206282597431cd308174777e Mon Sep 17 00:00:00 2001 From: Zhongyi Lu Date: Wed, 17 Apr 2024 16:00:54 -0700 Subject: [PATCH 2/2] add generating script --- public/locales/generate.py | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 public/locales/generate.py diff --git a/public/locales/generate.py b/public/locales/generate.py new file mode 100644 index 00000000..620a123c --- /dev/null +++ b/public/locales/generate.py @@ -0,0 +1,60 @@ +from collections import OrderedDict +import json +import os +from bs4 import BeautifulSoup + + +def extract_i18n_keys(html_content): + soup = BeautifulSoup(html_content, 'html.parser') + i18n_dict = {} + for tag in soup.find_all(attrs={"data-i18n": True}): + i18n_value = tag.attrs.get("data-i18n") + + if i18n_value.startswith('['): + end_bracket_pos = i18n_value.find(']') + if end_bracket_pos != -1: + attribute_name = i18n_value[1:end_bracket_pos] + key = i18n_value[end_bracket_pos+1:] + value = tag.attrs.get(attribute_name, '') + i18n_dict[key] = value + else: + key = i18n_value + value = tag.text.strip() + i18n_dict[key] = value + return i18n_dict + + +def process_html_files(directory): + i18n_data = {} + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith('.html'): + filepath = os.path.join(root, file) + with open(filepath, 'r', encoding='utf-8') as f: + html_content = f.read() + + i18n_data.update(extract_i18n_keys(html_content)) + return i18n_data + + +def update_json(json_file, i18n_dict): + with open(json_file, 'r', encoding='utf-8') as file: + data = json.load(file, object_pairs_hook=OrderedDict) + + for key in data.keys(): + data[key] = i18n_dict.get(key, "") + + with open(json_file, 'w', encoding='utf-8') as file: + json.dump(data, file, ensure_ascii=False, indent=4) + + return data + + +if __name__ == "__main__": + directory_path = "public" + json_file_path = "public/locales/en.json" + + all_i18n_data = process_html_files(directory_path) + + updated_json = update_json(json_file_path, all_i18n_data) + print(updated_json)