2023-08-15 14:50:42 +00:00
import { getClientConfig } from "../config/client" ;
2023-04-21 16:12:07 +00:00
import { SubmitKey } from "../store/config" ;
2023-03-29 09:53:52 +00:00
2023-08-15 14:50:42 +00:00
const isApp = ! ! getClientConfig ( ) ? . isApp ;
2023-03-20 16:17:45 +00:00
const cn = {
2023-03-23 17:42:38 +00:00
WIP : "该功能仍在开发中……" ,
2023-03-26 06:53:40 +00:00
Error : {
2023-08-15 14:50:42 +00:00
Unauthorized : isApp
? "检测到无效 API Key, 请前往[设置](/#/settings)页检查 API Key 是否配置正确。"
2024-02-23 07:50:54 +00:00
: "访问密码不正确或为空,请前往[登录](https://passport.gter.net/?referer=https://app.gter.net/ai/login?token={token}#/scanLogin)页输入正确的访问密码,或者在[设置](/#/settings)页填入你自己的 OpenAI API Key。" ,
2023-06-06 18:18:24 +00:00
} ,
Auth : {
Title : "需要密码" ,
Tips : "管理员开启了密码验证,请在下方填入访问码" ,
2023-12-23 19:44:13 +00:00
SubTips : "或者输入你的 OpenAI 或 Google API 密钥" ,
2023-06-06 18:18:24 +00:00
Input : "在此处填写访问码" ,
Confirm : "确认" ,
Later : "稍后再说" ,
2023-03-26 06:53:40 +00:00
} ,
2023-03-21 16:20:32 +00:00
ChatItem : {
ChatItemCount : ( count : number ) = > ` ${ count } 条对话 ` ,
} ,
Chat : {
2023-06-25 17:27:36 +00:00
SubTitle : ( count : number ) = > ` 共 ${ count } 条对话 ` ,
2023-07-20 16:24:26 +00:00
EditMessage : {
2023-08-02 15:35:51 +00:00
Title : "编辑消息记录" ,
2023-07-20 16:24:26 +00:00
Topic : {
Title : "聊天主题" ,
SubTitle : "更改当前聊天主题" ,
} ,
} ,
2023-03-21 16:20:32 +00:00
Actions : {
ChatList : "查看消息列表" ,
CompressedHistory : "查看压缩后的历史 Prompt" ,
Export : "导出聊天记录" ,
2023-03-23 17:42:38 +00:00
Copy : "复制" ,
Stop : "停止" ,
2023-03-26 10:59:09 +00:00
Retry : "重试" ,
2023-06-25 16:21:58 +00:00
Pin : "固定" ,
2023-07-09 08:15:58 +00:00
PinToastContent : "已将 1 条对话固定至预设提示词" ,
2023-06-25 16:21:58 +00:00
PinToastAction : "查看" ,
2023-04-16 10:55:29 +00:00
Delete : "删除" ,
2023-06-28 17:31:27 +00:00
Edit : "编辑" ,
2023-03-21 16:20:32 +00:00
} ,
2023-06-24 15:38:11 +00:00
Commands : {
new : "新建聊天" ,
newm : "从面具新建聊天" ,
next : "下一个聊天" ,
prev : "上一个聊天" ,
clear : "清除上下文" ,
del : "删除聊天" ,
} ,
2023-06-12 18:27:39 +00:00
InputActions : {
Stop : "停止响应" ,
ToBottom : "滚到最新" ,
Theme : {
auto : "自动主题" ,
light : "亮色模式" ,
dark : "深色模式" ,
} ,
Prompt : "快捷指令" ,
Masks : "所有面具" ,
Clear : "清除聊天" ,
Settings : "对话设置" ,
2024-02-20 10:04:32 +00:00
UploadImage : "上传图片" ,
2023-06-12 18:27:39 +00:00
} ,
2023-03-29 16:02:50 +00:00
Rename : "重命名对话" ,
2023-03-21 16:20:32 +00:00
Typing : "正在输入…" ,
2023-03-29 09:53:52 +00:00
Input : ( submitKey : string ) = > {
2023-04-07 18:53:35 +00:00
var inputHints = ` ${ submitKey } 发送 ` ;
2023-03-29 09:53:52 +00:00
if ( submitKey === String ( SubmitKey . Enter ) ) {
2023-03-29 11:31:34 +00:00
inputHints += ", Shift + Enter 换行" ;
2023-03-29 09:53:52 +00:00
}
2023-06-24 15:38:11 +00:00
return inputHints + ", / 触发补全,: 触发命令" ;
2023-03-29 09:53:52 +00:00
} ,
2023-03-21 16:20:32 +00:00
Send : "发送" ,
2023-04-26 17:16:21 +00:00
Config : {
2023-05-20 18:04:30 +00:00
Reset : "清除记忆" ,
SaveAs : "存为面具" ,
2023-04-26 17:16:21 +00:00
} ,
2023-07-09 08:39:46 +00:00
IsContext : "预设提示词" ,
2023-03-21 16:20:32 +00:00
} ,
Export : {
2023-05-21 16:59:36 +00:00
Title : "分享聊天记录" ,
2023-03-21 16:20:32 +00:00
Copy : "全部复制" ,
Download : "下载文件" ,
2023-05-21 16:59:36 +00:00
Share : "分享到 ShareGPT" ,
2023-11-12 11:33:19 +00:00
MessageFromYou : "用户" ,
MessageFromChatGPT : "ChatGPT" ,
2023-05-21 16:59:36 +00:00
Format : {
Title : "导出格式" ,
SubTitle : "可以导出 Markdown 文本或者 PNG 图片" ,
} ,
IncludeContext : {
Title : "包含面具上下文" ,
SubTitle : "是否在消息中展示面具上下文" ,
} ,
Steps : {
Select : "选取" ,
Preview : "预览" ,
} ,
2023-07-05 17:26:06 +00:00
Image : {
Toast : "正在生成截图" ,
Modal : "长按或右键保存图片" ,
} ,
2023-05-21 16:59:36 +00:00
} ,
Select : {
Search : "搜索消息" ,
All : "选取全部" ,
2023-05-24 17:04:37 +00:00
Latest : "最近几条" ,
2023-05-21 16:59:36 +00:00
Clear : "清除选中" ,
2023-03-21 16:20:32 +00:00
} ,
Memory : {
2023-04-18 03:42:08 +00:00
Title : "历史摘要" ,
2023-04-22 17:27:15 +00:00
EmptyContent : "对话内容过短,无需总结" ,
2023-04-27 16:34:37 +00:00
Send : "自动压缩聊天记录并作为上下文发送" ,
2023-04-18 03:42:08 +00:00
Copy : "复制摘要" ,
2023-05-20 18:04:30 +00:00
Reset : "[unused]" ,
ResetConfirm : "确认清空历史摘要?" ,
2023-03-21 16:20:32 +00:00
} ,
Home : {
NewChat : "新的聊天" ,
DeleteChat : "确认删除选中的对话?" ,
2023-04-06 16:14:27 +00:00
DeleteToast : "已删除会话" ,
Revert : "撤销" ,
2023-03-21 16:20:32 +00:00
} ,
Settings : {
Title : "设置" ,
2023-06-28 17:09:51 +00:00
SubTitle : "所有设置选项" ,
Danger : {
Reset : {
Title : "重置所有设置" ,
SubTitle : "重置所有设置项回默认值" ,
Action : "立即重置" ,
Confirm : "确认重置所有设置?" ,
} ,
Clear : {
Title : "清除所有数据" ,
SubTitle : "清除所有聊天、设置数据" ,
Action : "立即清除" ,
Confirm : "确认清除所有聊天、设置数据?" ,
} ,
2023-03-21 16:20:32 +00:00
} ,
Lang : {
2023-05-10 07:16:40 +00:00
Name : "Language" , // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
2023-04-26 17:16:21 +00:00
All : "所有语言" ,
2023-03-20 16:17:45 +00:00
} ,
2023-03-21 16:20:32 +00:00
Avatar : "头像" ,
2023-03-28 06:37:44 +00:00
FontSize : {
Title : "字体大小" ,
SubTitle : "聊天内容的字体大小" ,
} ,
2023-07-10 10:56:22 +00:00
InjectSystemPrompts : {
Title : "注入系统级提示信息" ,
2023-07-10 12:12:51 +00:00
SubTitle : "强制给每次请求的消息列表开头添加一个模拟 ChatGPT 的系统提示" ,
2023-07-10 10:56:22 +00:00
} ,
2023-06-23 16:07:46 +00:00
InputTemplate : {
Title : "用户输入预处理" ,
SubTitle : "用户最新的一条消息会填充到此模板" ,
} ,
2023-03-23 16:01:00 +00:00
Update : {
Version : ( x : string ) = > ` 当前版本: ${ x } ` ,
IsLatest : "已是最新版本" ,
CheckUpdate : "检查更新" ,
IsChecking : "正在检查更新..." ,
FoundUpdate : ( x : string ) = > ` 发现新版本: ${ x } ` ,
GoToUpdate : "前往更新" ,
} ,
2023-03-21 16:20:32 +00:00
SendKey : "发送键" ,
Theme : "主题" ,
2023-04-09 15:51:12 +00:00
TightBorder : "无边框模式" ,
2023-04-27 16:34:37 +00:00
SendPreviewBubble : {
Title : "预览气泡" ,
SubTitle : "在预览气泡中预览 Markdown 内容" ,
} ,
2023-07-14 18:13:39 +00:00
AutoGenerateTitle : {
Title : "自动生成标题" ,
2023-08-14 12:47:02 +00:00
SubTitle : "根据对话内容生成合适的标题" ,
2023-07-14 18:13:39 +00:00
} ,
2023-09-10 16:20:23 +00:00
Sync : {
2023-09-12 18:51:02 +00:00
CloudState : "云端数据" ,
NotSyncYet : "还没有进行过同步" ,
Success : "同步成功" ,
Fail : "同步失败" ,
Config : {
Modal : {
Title : "配置云同步" ,
2023-09-18 18:12:43 +00:00
Check : "检查可用性" ,
2023-09-12 18:51:02 +00:00
} ,
SyncType : {
Title : "同步类型" ,
SubTitle : "选择喜爱的同步服务器" ,
} ,
Proxy : {
Title : "启用代理" ,
SubTitle : "在浏览器中同步时,必须启用代理以避免跨域限制" ,
} ,
ProxyUrl : {
Title : "代理地址" ,
SubTitle : "仅适用于本项目自带的跨域代理" ,
} ,
WebDav : {
Endpoint : "WebDAV 地址" ,
UserName : "用户名" ,
Password : "密码" ,
} ,
2023-09-18 19:18:34 +00:00
UpStash : {
Endpoint : "UpStash Redis REST Url" ,
UserName : "备份名称" ,
Password : "UpStash Redis REST Token" ,
} ,
2023-09-12 18:51:02 +00:00
} ,
2023-09-10 16:20:23 +00:00
LocalState : "本地数据" ,
Overview : ( overview : any ) = > {
return ` ${ overview . chat } 次对话, ${ overview . message } 条消息, ${ overview . prompt } 条提示词, ${ overview . mask } 个面具 ` ;
} ,
ImportFailed : "导入失败" ,
} ,
2023-04-27 16:34:37 +00:00
Mask : {
2023-07-04 17:07:26 +00:00
Splash : {
Title : "面具启动页" ,
SubTitle : "新建聊天时,展示面具启动页" ,
} ,
Builtin : {
2023-07-05 14:39:25 +00:00
Title : "隐藏内置面具" ,
SubTitle : "在所有面具列表中隐藏内置面具" ,
2023-07-04 17:07:26 +00:00
} ,
2023-04-27 16:34:37 +00:00
} ,
2023-03-28 17:30:11 +00:00
Prompt : {
Disable : {
Title : "禁用提示词自动补全" ,
2023-03-29 15:31:55 +00:00
SubTitle : "在输入框开头输入 / 即可触发自动补全" ,
2023-03-28 17:30:11 +00:00
} ,
List : "自定义提示词列表" ,
ListCount : ( builtin : number , custom : number ) = >
` 内置 ${ builtin } 条,用户定义 ${ custom } 条 ` ,
Edit : "编辑" ,
2023-04-17 17:34:12 +00:00
Modal : {
Title : "提示词列表" ,
2023-05-01 18:26:43 +00:00
Add : "新建" ,
2023-04-18 08:13:32 +00:00
Search : "搜索提示词" ,
2023-04-17 17:34:12 +00:00
} ,
2023-05-01 18:26:43 +00:00
EditModal : {
Title : "编辑提示词" ,
} ,
2023-03-28 17:30:11 +00:00
} ,
2023-03-21 16:20:32 +00:00
HistoryCount : {
Title : "附带历史消息数" ,
SubTitle : "每次请求携带的历史消息数" ,
2023-03-20 16:17:45 +00:00
} ,
2023-03-21 16:20:32 +00:00
CompressThreshold : {
Title : "历史消息长度压缩阈值" ,
SubTitle : "当未压缩的历史消息超过该值时,将进行压缩" ,
2023-03-20 16:17:45 +00:00
} ,
2023-04-27 16:34:37 +00:00
2023-03-29 17:45:26 +00:00
Usage : {
2023-04-05 19:56:54 +00:00
Title : "余额查询" ,
SubTitle ( used : any , total : any ) {
return ` 本月已使用 $ ${ used } ,订阅总额 $ ${ total } ` ;
2023-03-29 17:45:26 +00:00
} ,
IsChecking : "正在检查…" ,
Check : "重新检查" ,
2023-04-05 19:56:54 +00:00
NoAccess : "输入 API Key 或访问密码查看余额" ,
2023-03-29 17:45:26 +00:00
} ,
2023-11-09 18:43:30 +00:00
Access : {
AccessCode : {
Title : "访问密码" ,
SubTitle : "管理员已开启加密访问" ,
Placeholder : "请输入访问密码" ,
} ,
CustomEndpoint : {
Title : "自定义接口" ,
SubTitle : "是否使用自定义 Azure 或 OpenAI 服务" ,
} ,
Provider : {
Title : "模型服务商" ,
SubTitle : "切换不同的服务商" ,
} ,
OpenAI : {
ApiKey : {
Title : "API Key" ,
SubTitle : "使用自定义 OpenAI Key 绕过密码访问限制" ,
Placeholder : "OpenAI API Key" ,
} ,
Endpoint : {
Title : "接口地址" ,
SubTitle : "除默认地址外,必须包含 http(s)://" ,
} ,
} ,
Azure : {
ApiKey : {
Title : "接口密钥" ,
SubTitle : "使用自定义 Azure Key 绕过密码访问限制" ,
Placeholder : "Azure API Key" ,
} ,
Endpoint : {
Title : "接口地址" ,
SubTitle : "样例:" ,
} ,
ApiVerion : {
Title : "接口版本 (azure api version)" ,
SubTitle : "选择指定的部分版本" ,
} ,
} ,
2023-12-23 18:15:30 +00:00
Google : {
ApiKey : {
2024-02-12 12:36:52 +00:00
Title : "API 密钥" ,
2024-02-20 10:04:32 +00:00
SubTitle : "从 Google AI 获取您的 API 密钥" ,
2024-02-12 12:36:52 +00:00
Placeholder : "输入您的 Google AI Studio API 密钥" ,
2023-12-23 18:15:30 +00:00
} ,
Endpoint : {
2024-02-12 12:36:52 +00:00
Title : "终端地址" ,
SubTitle : "示例:" ,
2023-12-23 18:15:30 +00:00
} ,
2024-02-12 12:36:52 +00:00
ApiVersion : {
Title : "API 版本(仅适用于 gemini-pro) " ,
SubTitle : "选择一个特定的 API 版本" ,
2023-12-23 18:15:30 +00:00
} ,
} ,
2023-11-09 18:43:30 +00:00
CustomModel : {
Title : "自定义模型名" ,
SubTitle : "增加自定义模型可选项,使用英文逗号隔开" ,
} ,
2023-07-09 10:15:52 +00:00
} ,
2023-11-09 18:43:30 +00:00
2023-03-21 16:20:32 +00:00
Model : "模型 (model)" ,
Temperature : {
Title : "随机性 (temperature)" ,
2023-04-23 17:15:44 +00:00
SubTitle : "值越大,回复越随机" ,
2023-03-20 16:17:45 +00:00
} ,
2023-07-03 16:39:54 +00:00
TopP : {
Title : "核采样 (top_p)" ,
SubTitle : "与随机性类似,但不要和随机性一起更改" ,
} ,
2023-03-21 16:20:32 +00:00
MaxTokens : {
Title : "单次回复限制 (max_tokens)" ,
SubTitle : "单次交互所用的最大 Token 数" ,
2023-03-20 16:17:45 +00:00
} ,
2023-05-16 07:40:43 +00:00
PresencePenalty : {
2023-03-21 16:20:32 +00:00
Title : "话题新鲜度 (presence_penalty)" ,
SubTitle : "值越大,越有可能扩展到新话题" ,
2023-03-20 16:17:45 +00:00
} ,
2023-06-04 08:05:35 +00:00
FrequencyPenalty : {
Title : "频率惩罚度 (frequency_penalty)" ,
SubTitle : "值越大,越有可能降低重复字词" ,
} ,
2023-03-21 16:20:32 +00:00
} ,
Store : {
DefaultTopic : "新的聊天" ,
BotHello : "有什么可以帮你的吗" ,
Error : "出错了,稍后重试吧" ,
Prompt : {
2023-05-20 17:28:09 +00:00
History : ( content : string ) = > "这是历史聊天总结作为前情提要:" + content ,
2023-03-21 16:20:32 +00:00
Topic :
2023-12-23 18:15:30 +00:00
"使用四到五个字直接返回这句话的简要主题,不要解释、不要标点、不要语气词、不要多余文本,不要加粗,如果没有主题,请直接返回“闲聊”" ,
2023-03-21 16:20:32 +00:00
Summarize :
2023-05-20 17:28:09 +00:00
"简要总结一下对话内容,用作后续的上下文提示 prompt, 控制在 200 字以内" ,
2023-03-20 16:17:45 +00:00
} ,
2023-03-21 16:20:32 +00:00
} ,
Copy : {
Success : "已写入剪切板" ,
Failed : "复制失败,请赋予剪切板权限" ,
} ,
2023-10-03 01:49:03 +00:00
Download : {
Success : "内容已下载到您的目录。" ,
Failed : "下载失败。" ,
} ,
2023-04-02 18:02:03 +00:00
Context : {
2023-05-20 17:28:09 +00:00
Toast : ( x : any ) = > ` 包含 ${ x } 条预设提示词 ` ,
2023-04-22 17:27:15 +00:00
Edit : "当前对话设置" ,
2023-08-02 15:35:51 +00:00
Add : "新增一条对话" ,
2023-05-20 17:44:59 +00:00
Clear : "上下文已清除" ,
Revert : "恢复上下文" ,
2023-04-02 18:02:03 +00:00
} ,
2023-04-27 16:34:37 +00:00
Plugin : {
2023-08-25 11:15:50 +00:00
Name : "插件" ,
2023-08-25 10:09:39 +00:00
} ,
FineTuned : {
Sysmessage : "你是一个助手" ,
2023-04-27 16:34:37 +00:00
} ,
2023-04-26 17:16:21 +00:00
Mask : {
2023-04-27 16:34:37 +00:00
Name : "面具" ,
2023-04-26 17:16:21 +00:00
Page : {
Title : "预设角色面具" ,
SubTitle : ( count : number ) = > ` ${ count } 个预设角色定义 ` ,
Search : "搜索角色面具" ,
Create : "新建" ,
} ,
Item : {
Info : ( count : number ) = > ` 包含 ${ count } 条预设对话 ` ,
Chat : "对话" ,
View : "查看" ,
Edit : "编辑" ,
Delete : "删除" ,
DeleteConfirm : "确认删除?" ,
} ,
EditModal : {
Title : ( readonly : boolean ) = >
` 编辑预设面具 ${ readonly ? "(只读)" : "" } ` ,
Download : "下载预设" ,
Clone : "克隆预设" ,
} ,
Config : {
Avatar : "角色头像" ,
Name : "角色名称" ,
2023-05-19 16:39:52 +00:00
Sync : {
Title : "使用全局设置" ,
SubTitle : "当前对话是否使用全局模型设置" ,
Confirm : "当前对话的自定义设置将会被自动覆盖,确认启用全局设置?" ,
} ,
2023-05-20 12:08:17 +00:00
HideContext : {
Title : "隐藏预设对话" ,
SubTitle : "隐藏后预设对话不会出现在聊天界面" ,
} ,
2023-07-05 15:19:54 +00:00
Share : {
Title : "分享此面具" ,
SubTitle : "生成此面具的直达链接" ,
Action : "复制链接" ,
} ,
2023-04-26 17:16:21 +00:00
} ,
} ,
NewChat : {
Return : "返回" ,
2023-04-27 16:34:37 +00:00
Skip : "直接开始" ,
NotShow : "不再展示" ,
ConfirmNoShow : "确认禁用?禁用后可以随时在设置中重新启用。" ,
2023-04-26 17:16:21 +00:00
Title : "挑选一个面具" ,
SubTitle : "现在开始,与面具背后的灵魂思维碰撞" ,
2023-05-01 19:10:13 +00:00
More : "查看全部" ,
2023-04-26 17:16:21 +00:00
} ,
2023-05-01 18:26:43 +00:00
2023-07-20 15:17:58 +00:00
URLCommand : {
Code : "检测到链接中已经包含访问码,是否自动填入?" ,
Settings : "检测到链接中包含了预制设置,是否自动填入?" ,
} ,
2023-05-01 18:26:43 +00:00
UI : {
Confirm : "确认" ,
Cancel : "取消" ,
Close : "关闭" ,
Create : "新建" ,
Edit : "编辑" ,
2023-09-10 16:20:23 +00:00
Export : "导出" ,
Import : "导入" ,
Sync : "同步" ,
2023-09-12 18:51:02 +00:00
Config : "配置" ,
2023-05-01 18:26:43 +00:00
} ,
2023-06-19 08:03:46 +00:00
Exporter : {
2023-12-23 18:15:30 +00:00
Description : {
Title : "只有清除上下文之后的消息会被展示" ,
} ,
2023-06-19 08:03:46 +00:00
Model : "模型" ,
Messages : "消息" ,
Topic : "主题" ,
Time : "时间" ,
} ,
2023-03-21 16:20:32 +00:00
} ;
2023-03-20 16:17:45 +00:00
2023-05-18 16:59:04 +00:00
type DeepPartial < T > = T extends object
? {
[ P in keyof T ] ? : DeepPartial < T [ P ] > ;
}
: T ;
2023-06-16 17:03:06 +00:00
export type LocaleType = typeof cn ;
export type PartialLocaleType = DeepPartial < typeof cn > ;
2023-03-20 16:17:45 +00:00
2023-03-21 16:20:32 +00:00
export default cn ;