Merge from main (#155)

# PR Checklist
- [X] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [ X Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [X] Did you added a type def?

# Description
Merge from main
This commit is contained in:
kwaroran
2023-06-05 02:01:23 +09:00
committed by GitHub
2 changed files with 308 additions and 0 deletions

304
src/lang/cn.ts Normal file
View File

@@ -0,0 +1,304 @@
export const languageChinese = {
formating:{
'main': "主要提示词",
'jailbreak': "越狱提示词",
'chats': "过去的聊天",
'lorebook': "Lorebook",
'globalNote': "全局注释",
'authorNote': "作者的注释",
'lastChat': "最后的聊天",
"description": "角色描述"
},
errors:{
toomuchtoken: '错误所需的最小token数大于最大上下文大小。',
unknownModel: '错误:选择了未知的模型',
httpError: '错误:请求出错:',
noData: '文件中没有数据,或者文件已损坏',
onlyOneChat: '必须至少有一次聊天',
alreadyCharInGroup: "群组中已存在同名的角色。"
},
help:{
model: "模型选项是用于聊天的主要模型。",
submodel: "辅助模型是用于分析情绪图像自动建议等的模型。推荐使用gpt3.5。",
oaiapikey: 'OpenAI的API密钥。你可以在https://platform.openai.com/account/api-keys处获取。',
mainprompt: '主提示词选项设定了默认模型的行为。',
jailbreak: '当角色中启动NSFW(成人模式)/越狱开关时NSFW(成人模式)/越狱提示词选项将被激活。',
globalNote: '强烈影响模型行为的笔记也被称为UJB。在所有角色中都起作用。',
autoSuggest: '在自动建议用户回应时,用于生成选项的提示词。',
formatOrder: "提示词的格式化顺序。较低的块对模型的影响更大。",
forceUrl: "如果不为空请求将会被发送到你输入的URL。",
tempature: "较低的值使角色紧密遵循提示词,但它更可能像机器一样回应。\n较高的值将导致创造性的行为但角色的回应可能更容易崩溃。",
frequencyPenalty: "较高的值防止在回应中使用重复的单词,但角色的回应可能更容易崩溃。",
presensePenalty: "较高的值防止在所有上下文中使用重复的单词,但角色的回应可能更容易崩溃。",
sdProvider: "图像生成的提供者。",
msgSound: "角色回应时播放*叮*的声音",
charDesc: "角色的简要描述。这会影响角色的回应。",
charFirstMessage: "角色的第一条信息。这会极大地影响角色的回应。",
charNote: "强烈影响模型行为的笔记。嵌入到当前角色。也被称为UJB。",
toggleNsfw: "开启和关闭NSFW(成人模式)/越狱提示词。",
lorebook: "lorebook是AI的用户制作的词典。只有当上下文中有激活键时AI才会看到它。",
loreName: "lorebook的名称。它不会影响AI。",
loreActivationKey: "如果上下文中存在其中一个激活键lorebook就会被激活提示词将会进入。用逗号分隔。",
loreorder: "如果插入顺序更高它会更多地影响模型而当激活的lorebook较多时它会被剪裁的更少。",
bias: "偏置是一种修改字符串出现概率的键值数据。\n它可以从-100到100更高的值会更可能出现更低的值则不太可能出现\n警告如果分词器出错它可能无法正常工作。",
emotion: "情绪图像选项根据角色的情绪显示图像,该情绪是通过分析角色的回应得出的。你必须输入情绪名称作为单词*(如 joyhappyfear 等)*。如果存在,以**neutral**命名的情绪将成为默认情绪。必须有3个以上的图像才能正常工作。",
imggen: "图像生成选项从外部程序生成并显示图像。该图像是通过分析当前聊天生成的图像提示词生成的。\n\n图像生成是基于键值参数进行分析的这些参数可以在下面配置。"
+ "\n\n'always'键总是应用,并且不会改变。'negative'键对于图像生成始终应用负值。"
+ "\n\n其他键的值将根据随着聊天的进行而改变。"
+ "\n\n如果一个键的名字前面有特殊字符它就有特殊的效果。"
+ "\n- 如果键以**|**开始,键的值将不会改变。"
+ "\n- 如果键以**$**开始,键的值更有可能改变。"
+ "\n\n当图像首次生成时你只能通过修改下面的'当前图像生成数据'来改变它。",
regexScript: "正则表达式脚本是一个自定义脚本它将匹配到的IN字符串替换为OUT。\n\n有四种类型的选项。"
+ "\n\n- **修改输入** 修改用户的输入"
+ "\n\n- **修改输出** 修改角色的输出"
+ "\n\n- **修改请求数据** 在发送时修改当前聊天数据。"
+ "\n\n- **修改显示** 在显示时只修改文本,而不修改聊天数据。"
+ "\n\nIN必须是一个没有标记且开始和结束时没有斜杠的正则表达式。\n\nOUT是一个可以包含替换模式的字符串。这些是模式"
+ "\n\n- $$\n\n - 插入$"
+ "\n\n- $&\n\n - 插入匹配的子字符串。"
+ "\n\n- $`\n\n - 插入匹配子字符串之前的字符串部分。"
+ "\n\n- $1\n\n - 插入第一个匹配的组。与其他数字如23等一起工作..."
+ "\n\n- $(name)\n\n - 插入命名的组"
+ "\n\n如果OUT以**@@**开始,它不会替换字符串,而是在找到匹配字符串时产生特殊效果。"
+ "\n\n- @@emo (情绪名称)\n\n - 如果角色处于情绪图像模式,将(情绪名称)设置为情绪,并阻止默认设置。",
experimental: "这是一个实验性功能。可能不稳定。",
oogaboogaURL: "如果你的WebUI支持api的旧版本你的url应该看起来*像https:.../run/textgen*\n\n"
+ "如果你的WebUI支持api的新版本你的url应该看起来像*https://.../api/v1/generate*并且使用api服务器作为主机并在参数中添加 --api。",
exampleMessage: "影响角色输出的示例对话。它不会永久性地使用令牌。"
+ "\n\n对话的示例格式"
+ "\n\n```\n<START>\n{{user}}: hi\n{{char}}: hello\n<START>\n{{user}}: hi\nHaruhi: hello\n```"
+ "\n\n```<START>```标记新对话的开始。",
creatorQuotes: "注意第一条消息上方的出现。用于向用户通报关于该角色的信息。它不会进入提示词。",
systemPrompt: "如果不为空,将替换设置中的主提示词。",
chatNote: "强烈影响模型行为的笔记。嵌入到当前聊天中。也被称为记忆或ujb。",
personality: "关于角色个性的简短描述。\n\n**不建议使用此选项。改为在角色描述中进行描述。**",
scenario: "关于角色情景的简短描述。\n\n**不建议使用此选项。改为在角色描述中进行描述。**",
utilityBot: "激活后,它会忽略主提示词。\n\n**不建议使用此选项。改为修改系统提示词。**",
loreSelective: "如果已切换选择模式则激活密钥和次级密钥都应有匹配项才能激活lorebook。",
loreRandomActivation: "如果启用了使用概率条件如果lorebook的其他条件都已满足每次发送聊天时lorebook将以“概率”设置的概率被激活。",
additionalAssets: "在你的聊天中显示的额外资产。 \n\n - 使用 `{{raw::<asset name>}}` 作为路径。\n - 使用 `{{img::<asset name>}}` 作为图片",
superMemory: "SuperMemory 通过给 AI 提供总结数据使你的角色记忆更多信息。\n\n"
+ "SuperMemory 模型是一个总结文本的模型。推荐使用达芬奇除非是具有超过2000个令牌的高度总结能力的未过滤模型否则不推荐使用辅助模型。\n\n"
+ "SuperMemory 提示词决定了应发送什么提示词进行总结。如果你留空,它将使用默认提示词。建议留空。\n\n"
+ "在所有设置都完成后,你可以在角色的设置中启用它。",
replaceGlobalNote: "如果不为空,将当前的全局笔记替换为此。",
},
setup:{
chooseProvider: "选择AI提供商",
openaikey: "使用API Key的OpenAI推荐",
openaiProxy: "OpenAI反向代理",
setupmodelself: "其他 / 我将自行设置",
inputApiKey: "在这里输入API Key",
apiKeyhelp: "你可以从以下链接获取api key",
setupSelfHelp: "在欢迎屏幕结束后,在设置中自行设置。",
theme: "选择你的主题",
themeDescWifulike: "不适合手机",
themeDescWifuCut: "适合手机",
texttheme: "选择你的文本颜色",
inputName: "最后,输入你的昵称。"
},
confirm: "确认",
goback: "返回",
botSettings: '机器人设置',
model: "模型",
apiKey: 'API Key',
providerURL: '请求URL',
providerJSON: '请求主体JSON',
mainPrompt: "主要提示词",
jailbreakPrompt: "NSFW(成人模式)/越狱提示词",
globalNote: "全局注释",
autoSuggest: "自动建议",
tokens: '令牌',
maxContextSize: '最大上下文大小',
maxResponseSize: '最大响应大小',
temperature: '温度',
frequencyPenalty: '频率惩罚',
presensePenalty: '出现惩罚',
advancedSettings: '高级设置',
advancedSettingsWarn: "警告:如果你不知道选项的作用,不要改变它!",
formatingOrder: "格式化顺序",
authorNote: "作者注释",
firstMessage: '第一条消息',
description: '描述',
jailbreakToggle: '切换NSFW(成人模式)/越狱',
charIcon: "角色图标",
characterDisplay: "角色展示",
viewScreen: '额外角色屏幕',
none: "无",
emotionImage: "情绪图像",
noImages: "没有图像",
noBias: "无偏差",
image: '图像',
name: '名称',
emotion: "情绪名称",
value: "值",
reroll: '重新生成',
chatList: '聊天列表',
removeChat: "移除此消息?",
loreBook: 'lorebook',
character: "角色",
Chat: "聊天",
globalLoreInfo: "角色lorebook应用于角色中的所有聊天。",
group: "群组",
groupLoreInfo: "群组lorebook应用于群组中的所有聊天。",
localLoreInfo: "聊天lorebook仅应用于当前聊天。",
removeConfirm: "你真的想移除:",
removeConfirm2: "你真的真的想移除:",
exportConfirm: "你想要导出这个吗?",
insertOrder: '插入顺序',
activationKeys: '激活键',
activationKeysInfo: '用逗号分隔',
prompt: '提示词',
loreBookDepth: "lorebook搜索深度",
loreBookToken: "lorebook最大令牌",
removeCharacter: "移除角色",
removeGroup: "移除群组",
exportCharacter: "导出角色",
userSetting: "用户设置",
username: '你的名字',
userIcon: "你的图标",
successExport: "成功导出并下载到你的下载目录",
successImport: "成功导入",
importedCharacter: '导入角色',
alwaysActive: "始终活跃",
additionalPrompt: "额外的提示词",
descriptionPrefix: "描述前缀",
forceReplaceUrl: "反向代理",
emotionWarn: "使用辅助模型。",
plugin: "插件",
language: "语言",
UiLanguage: "UI语言",
createfromScratch: "从头开始创建",
importCharacter: '导入角色',
translator: "翻译",
disabled: "禁用",
noPluginSelected: "模型选为插件,但没有选择插件。",
text: "文本",
UISize: "聊天文本大小",
newVersion: "找到更新,你想要安装吗?",
display: "显示和音频",
useCustomBackground: "自定义背景",
translateInput: "翻译输入",
autoTranslation: "自动翻译",
fullscreen: "全屏",
playMessage: "播放消息音频",
iconSize: "图标大小",
createGroup: "创建群聊",
groupIcon: "群组图标",
single: "单人",
multiple: "多人",
useCharLorebook: "使用角色的lorebook",
selectChar: "选择角色",
askLoadFirstMsg: "我们应该加载第一条消息吗?",
theme: "主题",
editOrder: "编辑顺序",
autoMode: "自动模式",
submodel: "辅助模型",
timeOutinSec: "超时(以秒为单位)",
emotionPrompt: "情绪提示词",
singleView: "单视图",
SpacedView: "多角色视图",
emphasizedView: "双角色视图",
pluginWarn: "插件在隔离环境中运行,但安装恶意插件可能会导致问题。",
createGroupImg: "生成群组图标",
waifuWidth: "虚拟角色聊天宽度",
savebackup: "将备份保存到谷歌",
loadbackup: "从谷歌加载备份",
files: "文件",
backupConfirm: "你真的想保存备份吗?",
backupLoadConfirm: "你真的想加载备份吗?所有数据将会丢失!",
backupLoadConfirm2: "你真的真的想加载备份吗?所有数据将会丢失!",
pasteAuthCode: "请从弹出窗口复制授权码并粘贴在这里:",
others: "其他",
presets: "预设",
imageGeneration: "图像生成",
provider: "提供者",
key: "键",
noData: "无数据",
currentImageGeneration: "当前图像生成数据",
promptPreprocess: "使用提示词预处理",
SwipeRegenerate: "使用滑动重新生成",
instantRemove: "当消息被移除时,立即移除随后的消息",
instantRemoveConfirm: "你想移除单条消息吗?如果你选择否,那么随后的消息也将被移除。",
textColor: "文本颜色",
classicRisu: "经典的Risu",
highcontrast: "高对比度",
quickPreset: "你可以通过Ctrl + (预设的索引)快速更改预设",
requestretrys: "请求失败时重试",
utilityBot: "实用机器人",
ShowLog: "显示请求日志",
waifuWidth2: "虚拟角色大小",
sayNothing: "当没有输入字符串时,输入'什么都不说'",
regexScript: "正则表达式脚本",
type: "类型", editInput: "修改输入",
editOutput: "修改输出",
editProcess: "修改请求数据",
loadLatest: "加载最新备份",
loadOthers: "加载其他备份",
exampleMessage: "示例消息",
creatorNotes: "创作者的评论",
systemPrompt: "系统提示词",
characterNotes: "角色备注",
personality: "个性",
scenario: "情境",
alternateGreetings: "备用问候语",
unrecommended: "不推荐",
chatNotes: "聊天笔记",
showUnrecommended: "显示不推荐的设置",
altGreet: "备选首条消息",
scripts: "脚本",
settings: "设置",
selective: "选择性的",
SecondaryKeys: '次要键',
useGlobalSettings: "使用全局设置",
recursiveScanning: "递归扫描",
creator: "创作者",
CharVersion: "角色版本",
Speech: "语音",
ToggleSuperMemory: "切换超级记忆",
SuperMemory: "超级记忆",
useExperimental: "启用实验性功能",
showMemoryLimit: "显示记忆限制",
roundIcons: "圆形图标",
streaming: "流媒体",
chatBot: '聊天机器人',
otherBots: '其他机器人',
user: "用户",
additionalAssets: "额外资产",
editDisplay: "修改显示",
community: "社区",
textBackgrounds: "自定义文本屏幕颜色",
textBorder: "文本轮廓",
textScreenRound: "圆形文本屏幕",
textScreenBorder: "文本屏幕边框",
ttsReadOnlyQuoted: "仅朗读引用",
ttsStop: "停止TTS",
askRemoval: "询问移除",
replaceGlobalNote: "替换全局备注",
charLoreBook: '角色lorebook',
globalLoreBook: '全局lorebook',
globalRegexScript: "全局正则表达式",
accessibility: "可访问性",
sendWithEnter: "使用Enter键发送",
clickToEdit: "点击文本以编辑",
setNodePassword: "设置你的安全密码",
inputNodePassword: "输入你的密码。如果你记不住删除服务器文件中的save/__password.txt并重启服务器。",
simple: "简单",
advanced: "高级",
askReRollAutoSuggestions: "重新生成自动建议",
creatingSuggestions: "正在生成建议...",
orderByOrder: "按顺序交谈",
removeFromGroup: "你真的要将{{char}}从群组中移除吗?",
talkness: "健谈程度",
active: "活跃",
loreRandomActivation: "使用概率条件",
activationProbability: "概率",
shareCloud: "分享到RisuRealm",
hub: "RisuRealm",
tags: "标签"
}

View File

@@ -1,6 +1,7 @@
import { cloneDeep, merge } from "lodash"; import { cloneDeep, merge } from "lodash";
import { languageEnglish } from "./en"; import { languageEnglish } from "./en";
import { languageKorean } from "./ko"; import { languageKorean } from "./ko";
import { languageChinese } from "./cn";
export let language:typeof languageEnglish = languageEnglish export let language:typeof languageEnglish = languageEnglish
@@ -9,6 +10,9 @@ export function changeLanguage(lang:string){
if(lang === 'ko'){ if(lang === 'ko'){
language = merge(cloneDeep(languageEnglish), languageKorean) language = merge(cloneDeep(languageEnglish), languageKorean)
} }
else if(lang === 'cn'){
language = merge(cloneDeep(languageEnglish), languageChinese)
}
else{ else{
language = languageEnglish language = languageEnglish
} }