This commit is contained in:
RossAscends
2023-06-05 05:04:18 +09:00
6 changed files with 1517 additions and 522 deletions

583
public/i18n.json Normal file
View File

@ -0,0 +1,583 @@
{
"lang": ["en", "zh-cn"],
"en": {
"clickslidertips": "Click slider numbers to input manually.",
"kobldpresets": "Kobold Presets",
"guikoboldaisettings":"GUI KoboldAI Settings",
"novelaipreserts":"NovelAI Presets",
"default":"Default",
"openaipresets":"OpenAI Presets",
"text gen webio(ooba) presets":"Text Gen WebUI (ooba) presets",
"poe.com api settings":"Poe.com API Settings",
"response legth(tokens)":" Response Length (tokens)",
"context size(tokens)":" Context Size (tokens)",
"unlocked":" Unlocked",
"only select modls support context sizes greater than 2048 tokens. proceed only is you know you're doing":"Only select models support context sizes greater than 2048 tokens.Proceed only if you know what you're doing.",
"rep.pen range":"Rep. Pen. Range",
"temperature":"Temperature",
"rep.pen":"Rep. Pen.",
"Encoder Rep. Pen.":"Encoder Rep. Pen.",
"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.",
"Auto-purge API context (save JB)":"Auto-purge API context (save JB)",
"Delete non-JB messages from Poe context before sending a new prompt. Prevents auto-jailbreak message from being pushed out of context":"Delete non-JB messages from Poe context before sending a new prompt. Prevents auto-jailbreak message from being pushed out of context",
"Auto-jailbreak":"Auto-jailbreak",
"Send the jailbreak message before first generation after page refresh.":"Send the jailbreak message before first generation after page refresh.",
"Send character note":"Send character note",
"Sent with every prompt to modify bot responses.":"Sent with every prompt to modify bot responses.",
"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",
"select":"select",
"Typical P":"Typical 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",
"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",
"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.",
"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",
"API":"API",
"KoboldAI":"KoboldAI",
"Poe":"Poe",
"Use Horde":"Use Horde",
"API url":"API url",
"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",
"Register":"Register",
"For privacy reasons":"For privacy reasons, your API key will be hidden after you reload the page",
"Model":"Model",
"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",
"Euterpe":"Euterpe",
"Krake":"Krake",
"No connection":"No connection...",
"oobabooga/text-generation-webui":"oobabooga/text-generation-webui",
"Make sure you run it with":" Make sure you run it with --api flag",
"Blocking API url":"Blocking API url",
"Streaming API url":"Streaming API url",
"to get your OpenAI API key.":"to get your OpenAI API key.",
"OpenAI Model":"OpenAI Model",
"View API Usage Metrics":"View API Usage Metrics",
"Poe.com Unofficial API":"Poe.com Unofficial API",
"to get your 'p-b cookie'":"to get your 'p-b cookie'",
"Bot":"Bot",
"Connect to the API":"Connect to the API",
"Auto-connect to Last Server":"Auto-connect to Last Server",
"View hidden API keys":"View hidden API keys",
"Advanced Formatting":"Advanced Formatting",
"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",
"Instruct mode":"Instruct mode",
"Enabled":"Enabled",
"Wrap Sequences with Newline":"Wrap Sequences with Newline",
"Include Names":"Include Names",
"System Prompt":"System Prompt",
"Input Sequence":"Input Sequence",
"Output Sequence":"Output Sequence",
"System Sequence":"System Sequence",
"Stop Sequence":"Stop Sequence",
"Context Formatting":"Context Formatting",
"Tokenizer":"Tokenizer",
"None / Estimated":"None / Estimated",
"Sentencepiece (LLaMA)":"Sentencepiece (LLaMA)",
"Token Padding":"Token Padding",
"Always add character's name to prompt":"Always add character's name to prompt",
"Keep Example Messages in Prompt":"Keep Example Messages in Prompt",
"Remove Empty New Lines from Output":"Remove Empty New Lines from Output",
"Pygmalion Formatting":"Pygmalion Formatting",
"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",
"Multigen":"Multigen",
"First chunk (tokens)":"First chunk (tokens)",
"Next chunks (tokens)":"Next chunks (tokens)",
"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",
"depth":"depth",
"Token Budget":"Token Budget",
"budget":"budget",
"Recursive scanning":"Recursive scanning",
"Soft Prompt":"Soft Prompt",
"About soft prompts":"About soft prompts",
"None":"None",
"User Settings":"User Settings",
"UI Customization":"UI Customization",
"Avatar Style":"Avatar Style:",
"Circle":"Circle",
"Rectangle":"Rectangle",
"Chat Style":"Chat Style:",
"Default":"Default",
"Bubbles":"Bubbles",
"Chat Width (PC)":"Chat Width (PC):",
"No Blur Effect":"No Blur Effect",
"No Text Shadows":"No Text Shadows",
"Waifu Mode":" ♡ Waifu Mode ♡",
"Message Timer":"Message Timer",
"Characters Hotswap":"Characters Hotswap",
"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",
"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 {{char}}: in bot messages":"Allow {{char}}: in bot messages",
"Allow {{user}}: in bot messages":"Allow {{user}}: 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",
"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 Entry":"New Entry",
"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",
"WEBP":"WEBP",
"presets": "Presets",
"Message Sound": "Message Sound",
"Author's Note": "Author's Note"
},
"zh-cn": {
"clickslidertips": "点击滑块右侧数字可手动输入",
"kobldpresets": "Kobold 预设",
"guikoboldaisettings":"GUI KoboldAI 设置",
"novelaipreserts":"NovelAI预设",
"default":"默认",
"openaipresets":"OpenAI 预设",
"text gen webio(ooba) presets":"文本生成WebUI(ooba)预设",
"poe.com api settings":"poe.com API 设置",
"response legth(tokens)":"响应长度(Toekns)",
"select":"选择 ",
"context size(tokens)":"上下文大小(Toekns)",
"unlocked":"解锁",
"only select modls support context sizes greater than 2048 tokens. proceed only is you know you're doing":"仅选定模型支持大于2048Toekn的上下文窗口时可用。您在修改该选项时应该知道自己在做什么。",
"rep.pen":"Rep. Pen.",
"rep.pen range":"Rep. Pen.范围",
"temperature":"Temperature",
"Encoder Rep. Pen.":"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)":"上下文大小(Tokens)",
"Max Response Length (tokens)":"最大响应长度(Tokens)",
"Temperature":"采样温度",
"Frequency Penalty":"频率惩罚",
"Presence Penalty":"存在惩罚",
"Top-p":"Top-p",
"Display bot response text chunks as they are generated":"显示机器人生成的响应文本块",
"Auto-purge API context (save JB)":"自动删除应用程序接口上下文(保存JB)",
"Delete non-JB messages from Poe context before sending a new prompt. Prevents auto-jailbreak message from being pushed out of context":"在发送新提示之前从Poe上下文中删除非JB消息。防止自动越狱消息被推出上下文",
"Auto-jailbreak":"自动越狱",
"Send the jailbreak message before first generation after page refresh.":"在页面刷新后的第一次生成之前发送越狱消息",
"Send character note":"发送人物笔记",
"Sent with every prompt to modify bot responses.":"每个提示都发送给修改机器人响应的人",
"Top A":"Top-a",
"Typical Sampling":"典型采样",
"Tail Free Sampling":"无尾采样",
"Rep. Pen. Slope":"Rep. Pen. Slope",
"Single-line mode":"单行模式",
"Top K":"Top-k",
"Top P":"Top-p",
"Typical 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":"种子",
"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.":"关闭此选项后,响应将在完成后立即显示所有响应。",
"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":"影响机器人响应中的行为",
"API":"API",
"KoboldAI":"KoboldAI",
"Poe":"Poe",
"Use Horde":"使用Horde",
"API url":"接口网址",
"Register a Horde account for faster queue times":"注册帐户以加快排队时间",
"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":"接口密钥",
"Register":"注册",
"For privacy reasons":"出于隐私原因,您的 API 密钥将在您重新加载页面后隐藏",
"Model":"模型",
"Hold Control / Command key to select multiple models.":"按住控制/命令键选择多个型号。",
"Horde models not loaded":"按住控制/命令键选择多个型号。",
"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 模型",
"Euterpe":"Euterpe",
"Krake":"Krate",
"No connection":"无连接",
"oobabooga/text-generation-webui":"",
"Make sure you run it with":"确保启动时包含 --api 参数",
"Blocking API url":"阻塞式 API 地址",
"Streaming API url":"Streaming API 地址",
"to get your OpenAI API key.":"以获取您的 OpenAI API 密钥。",
"OpenAI Model":"OpenAI模型",
"View API Usage Metrics":"查看 API 使用情况",
"Poe.com Unofficial API":"Poe.com 非官方的 “API”",
"to get your 'p-b cookie'":"",
"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":"系统提示",
"Input Sequence":"输入序列",
"Output Sequence":"输出序列",
"System Sequence":"系统顺序",
"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":"从输出中删除空的新行",
"Pygmalion Formatting":"Pygmalion 格式",
"Disabled for all models":"对所有模型禁用",
"Automatic (based on model name)":"自动(基于型号名称)",
"Enabled for all models":"所有模型启用",
"Multigen":"Multigen",
"First chunk (tokens)":"第一个区块Tokens",
"Next chunks (tokens)":"接下来的区块Tokens",
"Anchors Order":"锚点顺序",
"Character then Style":"字符然后样式",
"Style then Character":"样式然后字符",
"Character Anchor":"角色锚点",
"Style Anchor":"样式锚点",
"World Info":"",
"Scan Depth":"扫描深度",
"depth":"深度",
"Token Budget":"Token预算",
"budget":"预算",
"Recursive scanning":"递归扫描",
"Soft Prompt":"软提示",
"About soft prompts":"关于软提示",
"None":"没有",
"User Settings":"用户设置",
"UI Customization":"用户界面定制",
"Avatar Style":"头像风格",
"Circle":"圈",
"Rectangle":"Rectangle",
"Chat Style":"聊天方式:",
"Default":"默认",
"Bubbles":"气泡",
"Chat Width (PC)":"聊天宽度(电脑):",
"No Blur Effect":"无模糊效果",
"No Text Shadows":"无文本阴影",
"Waifu Mode":"♡ Waifu模式 ♡",
"Message Timer":"消息计时器",
"Characters Hotswap":"角色热插拔",
"Movable UI Panels":"可移动的用户界面面板",
"Reset Panels":"重置面板",
"UI Colors":"用户界面颜色",
"Main Text":"正文",
"Italics Text":"斜体文本",
"Quote Text":"引用文本",
"Shadow Color":"阴影颜色",
"FastUI BG":"快界面 BG",
"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":"允许 {{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:":"扩展接口:",
"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":"在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",
"WEBP":"WEBP",
"presets": "预设",
"Message Sound": "消息音效",
"Author's Note": "作者的注释"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -78,7 +78,6 @@ async function updateVisualNovelMode(name, expression) {
async function visualNovelRemoveInactive(container) {
const context = getContext();
const group = context.groups.find(x => x.id == context.groupId);
const members = group.members;
const removeInactiveCharactersPromises = [];
// remove inactive characters after 1 second
@ -87,7 +86,7 @@ async function visualNovelRemoveInactive(container) {
const element = $(current);
const avatar = element.data('avatar');
if (!members.includes(avatar) || group.disabled_members.includes(avatar)) {
if (!group.members.includes(avatar) || group.disabled_members.includes(avatar)) {
element.fadeOut(250, () => {
element.remove();
resolve();
@ -106,13 +105,12 @@ async function visualNovelRemoveInactive(container) {
async function visualNovelSetCharacterSprites(container, name, expression) {
const context = getContext();
const group = context.groups.find(x => x.id == context.groupId);
const members = group.members;
const labels = await getExpressionsList();
const createCharacterPromises = [];
const setSpritePromises = [];
for (const avatar of members) {
for (const avatar of group.members) {
const isDisabled = group.disabled_members.includes(avatar);
// skip disabled characters
@ -121,6 +119,11 @@ async function visualNovelSetCharacterSprites(container, name, expression) {
}
const character = context.characters.find(x => x.avatar == avatar);
if (!character) {
continue;
}
let spriteFolderName = character.name;
const avatarFileName = getSpriteFolderName({ original_avatar: character.avatar });
const expressionOverride = extension_settings.expressionOverrides.find((e) =>
@ -177,9 +180,8 @@ async function visualNovelSetCharacterSprites(container, name, expression) {
async function visualNovelUpdateLayers(container) {
const context = getContext();
const group = context.groups.find(x => x.id == context.groupId);
const members = group.members;
const recentMessages = context.chat.map(x => x.original_avatar).filter(x => x).reverse().filter(onlyUnique);
const filteredMembers = members.filter(x => !group.disabled_members.includes(x));
const filteredMembers = group.members.filter(x => !group.disabled_members.includes(x));
const layerIndices = filteredMembers.slice().sort((a, b) => recentMessages.indexOf(b) - recentMessages.indexOf(a));
const setLayerIndicesPromises = [];
@ -272,6 +274,8 @@ function setImage(img, path) {
img.removeClass('default');
img.off('error');
img.on('error', function () {
console.debug('Error loading image', path);
$(this).off('error');
$(this).attr('src', '');
});
}
@ -624,7 +628,9 @@ async function setExpression(character, expression, force) {
img.removeClass('default');
img.off('error');
img.on('error', function () {
console.debug('Expression image error', sprite.path);
$(this).attr('src', '');
$(this).off('error');
if (force && extension_settings.expressions.showDefault) {
setDefault();
}

View File

@ -633,11 +633,11 @@ function isConnectedToExtras() {
async function moduleWorker() {
if (isConnectedToExtras() || extension_settings.sd.horde) {
$('#sd_gen').show(200);
$('#sd_gen').show();
$('.sd_message_gen').show();
}
else {
$('#sd_gen').hide(200);
$('#sd_gen').hide();
$('.sd_message_gen').hide();
}
}

View File

@ -1005,7 +1005,7 @@ function select_group_chats(groupId, skipAnimation) {
}
$("#dialogue_popup").data("group_id", groupId);
callPopup("<h3>Delete the group?</h3>", "del_group");
callPopup('<h3>Delete the group?</h3><p>This will also delete all your chats with that group. If you want to delete a single conversation, select a "View past chats" option in the lower left menu.</p>', "del_group");
});
updateFavButtonState(group?.fav ?? false);

View File

@ -2181,16 +2181,29 @@ app.post('/deletegroup', jsonParser, async (request, response) => {
const id = request.body.id;
const pathToGroup = path.join(directories.groups, sanitize(`${id}.json`));
const pathToChat = path.join(directories.groupChats, sanitize(`${id}.jsonl`));
try {
// Delete group chats
const group = json5.parse(fs.readFileSync(pathToGroup));
if (group && Array.isArray(group.chats)) {
for (const chat of group.chats) {
console.log('Deleting group chat', chat);
const pathToFile = path.join(directories.groupChats, `${id}.jsonl`);
if (fs.existsSync(pathToFile)) {
fs.rmSync(pathToFile);
}
}
}
} catch (error) {
console.error('Could not delete group chats. Clean them up manually.', error);
}
if (fs.existsSync(pathToGroup)) {
fs.rmSync(pathToGroup);
}
if (fs.existsSync(pathToChat)) {
fs.rmSync(pathToChat);
}
return response.send({ ok: true });
});