806 lines
22 KiB
TypeScript
806 lines
22 KiB
TypeScript
import { getClientConfig } from "../config/client";
|
||
import { SubmitKey } from "../store/config";
|
||
import { LocaleType } from "./index";
|
||
import { SAAS_CHAT_UTM_URL } from "@/app/constant";
|
||
// if you are adding a new translation, please use PartialLocaleType instead of LocaleType
|
||
|
||
const isApp = !!getClientConfig()?.isApp;
|
||
const en: LocaleType = {
|
||
WIP: "Coming Soon...",
|
||
Error: {
|
||
Unauthorized: isApp
|
||
? `😆 Oops, there's an issue. No worries:
|
||
\\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL})
|
||
\\ 2️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️`
|
||
: `😆 Oops, there's an issue. Let's fix it:
|
||
\ 1️⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL})
|
||
\ 2️⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑
|
||
\ 3️⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️
|
||
`,
|
||
},
|
||
Auth: {
|
||
Return: "Return",
|
||
Title: "Need Access Code",
|
||
Tips: "Please enter access code below",
|
||
SubTips: "Or enter your OpenAI or Google API Key",
|
||
Input: "access code",
|
||
Confirm: "Confirm",
|
||
Later: "Later",
|
||
SaasTips: "Too Complex, Use Immediately Now",
|
||
TopTips:
|
||
"🥳 NextChat AI launch promotion: Instantly unlock the latest models like OpenAI o1, GPT-4o, Claude-3.5!",
|
||
},
|
||
ChatItem: {
|
||
ChatItemCount: (count: number) => `${count} messages`,
|
||
},
|
||
Chat: {
|
||
SubTitle: (count: number) => `${count} messages`,
|
||
EditMessage: {
|
||
Title: "Edit All Messages",
|
||
Topic: {
|
||
Title: "Topic",
|
||
SubTitle: "Change the current topic",
|
||
},
|
||
},
|
||
Actions: {
|
||
ChatList: "Go To Chat List",
|
||
CompressedHistory: "Compressed History Memory Prompt",
|
||
Export: "Export All Messages as Markdown",
|
||
Copy: "Copy",
|
||
Stop: "Stop",
|
||
Retry: "Retry",
|
||
Pin: "Pin",
|
||
PinToastContent: "Pinned 1 messages to contextual prompts",
|
||
PinToastAction: "View",
|
||
Delete: "Delete",
|
||
Edit: "Edit",
|
||
FullScreen: "FullScreen",
|
||
RefreshTitle: "Refresh Title",
|
||
RefreshToast: "Title refresh request sent",
|
||
Speech: "Play",
|
||
StopSpeech: "Stop",
|
||
},
|
||
Commands: {
|
||
new: "Start a new chat",
|
||
newm: "Start a new chat with mask",
|
||
next: "Next Chat",
|
||
prev: "Previous Chat",
|
||
clear: "Clear Context",
|
||
fork: "Copy Chat",
|
||
del: "Delete Chat",
|
||
},
|
||
InputActions: {
|
||
Stop: "Stop",
|
||
ToBottom: "To Latest",
|
||
Theme: {
|
||
auto: "Auto",
|
||
light: "Light Theme",
|
||
dark: "Dark Theme",
|
||
},
|
||
Prompt: "Prompts",
|
||
Masks: "Masks",
|
||
Clear: "Clear Context",
|
||
Settings: "Settings",
|
||
UploadImage: "Upload Images",
|
||
},
|
||
Rename: "Rename Chat",
|
||
Typing: "Typing…",
|
||
Input: (submitKey: string) => {
|
||
var inputHints = `${submitKey} to send`;
|
||
if (submitKey === String(SubmitKey.Enter)) {
|
||
inputHints += ", Shift + Enter to wrap";
|
||
}
|
||
return inputHints + ", / to search prompts, : to use commands";
|
||
},
|
||
Send: "Send",
|
||
StartSpeak: "Start Speak",
|
||
StopSpeak: "Stop Speak",
|
||
Config: {
|
||
Reset: "Reset to Default",
|
||
SaveAs: "Save as Mask",
|
||
},
|
||
IsContext: "Contextual Prompt",
|
||
ShortcutKey: {
|
||
Title: "Keyboard Shortcuts",
|
||
newChat: "Open New Chat",
|
||
focusInput: "Focus Input Field",
|
||
copyLastMessage: "Copy Last Reply",
|
||
copyLastCode: "Copy Last Code Block",
|
||
showShortcutKey: "Show Shortcuts",
|
||
},
|
||
},
|
||
Export: {
|
||
Title: "Export Messages",
|
||
Copy: "Copy All",
|
||
Download: "Download",
|
||
MessageFromYou: "Message From You",
|
||
MessageFromChatGPT: "Message From ChatGPT",
|
||
Share: "Share to ShareGPT",
|
||
Format: {
|
||
Title: "Export Format",
|
||
SubTitle: "Markdown or PNG Image",
|
||
},
|
||
IncludeContext: {
|
||
Title: "Including Context",
|
||
SubTitle: "Export context prompts in mask or not",
|
||
},
|
||
Steps: {
|
||
Select: "Select",
|
||
Preview: "Preview",
|
||
},
|
||
Image: {
|
||
Toast: "Capturing Image...",
|
||
Modal: "Long press or right click to save image",
|
||
},
|
||
Artifacts: {
|
||
Title: "Share Artifacts",
|
||
Error: "Share Error",
|
||
},
|
||
},
|
||
Select: {
|
||
Search: "Search",
|
||
All: "Select All",
|
||
Latest: "Select Latest",
|
||
Clear: "Clear",
|
||
},
|
||
Memory: {
|
||
Title: "Memory Prompt",
|
||
EmptyContent: "Nothing yet.",
|
||
Send: "Send Memory",
|
||
Copy: "Copy Memory",
|
||
Reset: "Reset Session",
|
||
ResetConfirm:
|
||
"Resetting will clear the current conversation history and historical memory. Are you sure you want to reset?",
|
||
},
|
||
Home: {
|
||
NewChat: "New Chat",
|
||
DeleteChat: "Confirm to delete the selected conversation?",
|
||
DeleteToast: "Chat Deleted",
|
||
Revert: "Revert",
|
||
},
|
||
Settings: {
|
||
Title: "Settings",
|
||
SubTitle: "All Settings",
|
||
ShowPassword: "ShowPassword",
|
||
Danger: {
|
||
Reset: {
|
||
Title: "Reset All Settings",
|
||
SubTitle: "Reset all setting items to default",
|
||
Action: "Reset",
|
||
Confirm: "Confirm to reset all settings to default?",
|
||
},
|
||
Clear: {
|
||
Title: "Clear All Data",
|
||
SubTitle: "Clear all messages and settings",
|
||
Action: "Clear",
|
||
Confirm: "Confirm to clear all messages and settings?",
|
||
},
|
||
},
|
||
Lang: {
|
||
Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
|
||
All: "All Languages",
|
||
},
|
||
Avatar: "Avatar",
|
||
FontSize: {
|
||
Title: "Font Size",
|
||
SubTitle: "Adjust font size of chat content",
|
||
},
|
||
FontFamily: {
|
||
Title: "Chat Font Family",
|
||
SubTitle:
|
||
"Font Family of the chat content, leave empty to apply global default font",
|
||
Placeholder: "Font Family Name",
|
||
},
|
||
InjectSystemPrompts: {
|
||
Title: "Inject System Prompts",
|
||
SubTitle: "Inject a global system prompt for every request",
|
||
},
|
||
InputTemplate: {
|
||
Title: "Input Template",
|
||
SubTitle: "Newest message will be filled to this template",
|
||
},
|
||
|
||
Update: {
|
||
Version: (x: string) => `Version: ${x}`,
|
||
IsLatest: "Latest version",
|
||
CheckUpdate: "Check Update",
|
||
IsChecking: "Checking update...",
|
||
FoundUpdate: (x: string) => `Found new version: ${x}`,
|
||
GoToUpdate: "Update",
|
||
Success: "Update Successful.",
|
||
Failed: "Update Failed.",
|
||
},
|
||
SendKey: "Send Key",
|
||
Theme: "Theme",
|
||
TightBorder: "Tight Border",
|
||
SendPreviewBubble: {
|
||
Title: "Send Preview Bubble",
|
||
SubTitle: "Preview markdown in bubble",
|
||
},
|
||
AutoGenerateTitle: {
|
||
Title: "Auto Generate Title",
|
||
SubTitle: "Generate a suitable title based on the conversation content",
|
||
},
|
||
Sync: {
|
||
CloudState: "Last Update",
|
||
NotSyncYet: "Not sync yet",
|
||
Success: "Sync Success",
|
||
Fail: "Sync Fail",
|
||
|
||
Config: {
|
||
Modal: {
|
||
Title: "Config Sync",
|
||
Check: "Check Connection",
|
||
},
|
||
SyncType: {
|
||
Title: "Sync Type",
|
||
SubTitle: "Choose your favorite sync service",
|
||
},
|
||
Proxy: {
|
||
Title: "Enable CORS Proxy",
|
||
SubTitle: "Enable a proxy to avoid cross-origin restrictions",
|
||
},
|
||
ProxyUrl: {
|
||
Title: "Proxy Endpoint",
|
||
SubTitle:
|
||
"Only applicable to the built-in CORS proxy for this project",
|
||
},
|
||
|
||
WebDav: {
|
||
Endpoint: "WebDAV Endpoint",
|
||
UserName: "User Name",
|
||
Password: "Password",
|
||
},
|
||
|
||
UpStash: {
|
||
Endpoint: "UpStash Redis REST Url",
|
||
UserName: "Backup Name",
|
||
Password: "UpStash Redis REST Token",
|
||
},
|
||
},
|
||
|
||
LocalState: "Local Data",
|
||
Overview: (overview: any) => {
|
||
return `${overview.chat} chats,${overview.message} messages,${overview.prompt} prompts,${overview.mask} masks`;
|
||
},
|
||
ImportFailed: "Failed to import from file",
|
||
},
|
||
Mask: {
|
||
Splash: {
|
||
Title: "Mask Splash Screen",
|
||
SubTitle: "Show a mask splash screen before starting new chat",
|
||
},
|
||
Builtin: {
|
||
Title: "Hide Builtin Masks",
|
||
SubTitle: "Hide builtin masks in mask list",
|
||
},
|
||
},
|
||
Prompt: {
|
||
Disable: {
|
||
Title: "Disable auto-completion",
|
||
SubTitle: "Input / to trigger auto-completion",
|
||
},
|
||
List: "Prompt List",
|
||
ListCount: (builtin: number, custom: number) =>
|
||
`${builtin} built-in, ${custom} user-defined`,
|
||
Edit: "Edit",
|
||
Modal: {
|
||
Title: "Prompt List",
|
||
Add: "Add One",
|
||
Search: "Search Prompts",
|
||
},
|
||
EditModal: {
|
||
Title: "Edit Prompt",
|
||
},
|
||
},
|
||
HistoryCount: {
|
||
Title: "Attached Messages Count",
|
||
SubTitle: "Number of sent messages attached per request",
|
||
},
|
||
CompressThreshold: {
|
||
Title: "History Compression Threshold",
|
||
SubTitle:
|
||
"Will compress if uncompressed messages length exceeds the value",
|
||
},
|
||
|
||
Usage: {
|
||
Title: "Account Balance",
|
||
SubTitle(used: any, total: any) {
|
||
return `Used this month $${used}, subscription $${total}`;
|
||
},
|
||
IsChecking: "Checking...",
|
||
Check: "Check",
|
||
NoAccess: "Enter API Key to check balance",
|
||
},
|
||
Access: {
|
||
SaasStart: {
|
||
Title: "Use NextChat AI",
|
||
Label: " (Most Cost-Effective Option)",
|
||
SubTitle:
|
||
"Maintained by NextChat, zero setup needed, unlock OpenAI o1, GPT-4o," +
|
||
" Claude-3.5 and more",
|
||
ChatNow: "Start Now",
|
||
},
|
||
AccessCode: {
|
||
Title: "Access Code",
|
||
SubTitle: "Access control Enabled",
|
||
Placeholder: "Enter Code",
|
||
},
|
||
CustomEndpoint: {
|
||
Title: "Custom Endpoint",
|
||
SubTitle: "Use custom Azure or OpenAI service",
|
||
},
|
||
Provider: {
|
||
Title: "Model Provider",
|
||
SubTitle: "Select Azure or OpenAI",
|
||
},
|
||
OpenAI: {
|
||
ApiKey: {
|
||
Title: "OpenAI API Key",
|
||
SubTitle: "User custom OpenAI Api Key",
|
||
Placeholder: "sk-xxx",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "OpenAI Endpoint",
|
||
SubTitle: "Must start with http(s):// or use /api/openai as default",
|
||
},
|
||
},
|
||
Azure: {
|
||
ApiKey: {
|
||
Title: "Azure Api Key",
|
||
SubTitle: "Check your api key from Azure console",
|
||
Placeholder: "Azure Api Key",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "Azure Endpoint",
|
||
SubTitle: "Example: ",
|
||
},
|
||
|
||
ApiVerion: {
|
||
Title: "Azure Api Version",
|
||
SubTitle: "Check your api version from azure console",
|
||
},
|
||
},
|
||
Anthropic: {
|
||
ApiKey: {
|
||
Title: "Anthropic API Key",
|
||
SubTitle:
|
||
"Use a custom Anthropic Key to bypass password access restrictions",
|
||
Placeholder: "Anthropic API Key",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
|
||
ApiVerion: {
|
||
Title: "API Version (claude api version)",
|
||
SubTitle: "Select and input a specific API version",
|
||
},
|
||
},
|
||
Baidu: {
|
||
ApiKey: {
|
||
Title: "Baidu API Key",
|
||
SubTitle: "Use a custom Baidu API Key",
|
||
Placeholder: "Baidu API Key",
|
||
},
|
||
SecretKey: {
|
||
Title: "Baidu Secret Key",
|
||
SubTitle: "Use a custom Baidu Secret Key",
|
||
Placeholder: "Baidu Secret Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "not supported, configure in .env",
|
||
},
|
||
},
|
||
Tencent: {
|
||
ApiKey: {
|
||
Title: "Tencent API Key",
|
||
SubTitle: "Use a custom Tencent API Key",
|
||
Placeholder: "Tencent API Key",
|
||
},
|
||
SecretKey: {
|
||
Title: "Tencent Secret Key",
|
||
SubTitle: "Use a custom Tencent Secret Key",
|
||
Placeholder: "Tencent Secret Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "not supported, configure in .env",
|
||
},
|
||
},
|
||
ByteDance: {
|
||
ApiKey: {
|
||
Title: "ByteDance API Key",
|
||
SubTitle: "Use a custom ByteDance API Key",
|
||
Placeholder: "ByteDance API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
Alibaba: {
|
||
ApiKey: {
|
||
Title: "Alibaba API Key",
|
||
SubTitle: "Use a custom Alibaba Cloud API Key",
|
||
Placeholder: "Alibaba Cloud API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
Moonshot: {
|
||
ApiKey: {
|
||
Title: "Moonshot API Key",
|
||
SubTitle: "Use a custom Moonshot API Key",
|
||
Placeholder: "Moonshot API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
XAI: {
|
||
ApiKey: {
|
||
Title: "XAI API Key",
|
||
SubTitle: "Use a custom XAI API Key",
|
||
Placeholder: "XAI API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
ChatGLM: {
|
||
ApiKey: {
|
||
Title: "ChatGLM API Key",
|
||
SubTitle: "Use a custom ChatGLM API Key",
|
||
Placeholder: "ChatGLM API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
Stability: {
|
||
ApiKey: {
|
||
Title: "Stability API Key",
|
||
SubTitle: "Use a custom Stability API Key",
|
||
Placeholder: "Stability API Key",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
Iflytek: {
|
||
ApiKey: {
|
||
Title: "Iflytek API Key",
|
||
SubTitle: "Use a Iflytek API Key",
|
||
Placeholder: "Iflytek API Key",
|
||
},
|
||
ApiSecret: {
|
||
Title: "Iflytek API Secret",
|
||
SubTitle: "Use a Iflytek API Secret",
|
||
Placeholder: "Iflytek API Secret",
|
||
},
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
},
|
||
CustomModel: {
|
||
Title: "Custom Models",
|
||
SubTitle: "Custom model options, seperated by comma",
|
||
},
|
||
Google: {
|
||
ApiKey: {
|
||
Title: "API Key",
|
||
SubTitle: "Obtain your API Key from Google AI",
|
||
Placeholder: "Google AI API Key",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "Endpoint Address",
|
||
SubTitle: "Example: ",
|
||
},
|
||
|
||
ApiVersion: {
|
||
Title: "API Version (specific to gemini-pro)",
|
||
SubTitle: "Select a specific API version",
|
||
},
|
||
GoogleSafetySettings: {
|
||
Title: "Google Safety Settings",
|
||
SubTitle: "Select a safety filtering level",
|
||
},
|
||
},
|
||
},
|
||
|
||
Model: "Model",
|
||
CompressModel: {
|
||
Title: "Summary Model",
|
||
SubTitle: "Model used to compress history and generate title",
|
||
},
|
||
Temperature: {
|
||
Title: "Temperature",
|
||
SubTitle: "A larger value makes the more random output",
|
||
},
|
||
TopP: {
|
||
Title: "Top P",
|
||
SubTitle: "Do not alter this value together with temperature",
|
||
},
|
||
MaxTokens: {
|
||
Title: "Max Tokens",
|
||
SubTitle: "Maximum length of input tokens and generated tokens",
|
||
},
|
||
PresencePenalty: {
|
||
Title: "Presence Penalty",
|
||
SubTitle:
|
||
"A larger value increases the likelihood to talk about new topics",
|
||
},
|
||
FrequencyPenalty: {
|
||
Title: "Frequency Penalty",
|
||
SubTitle:
|
||
"A larger value decreasing the likelihood to repeat the same line",
|
||
},
|
||
TTS: {
|
||
Enable: {
|
||
Title: "Enable TTS",
|
||
SubTitle: "Enable text-to-speech service",
|
||
},
|
||
Autoplay: {
|
||
Title: "Enable Autoplay",
|
||
SubTitle:
|
||
"Automatically generate speech and play, you need to enable the text-to-speech switch first",
|
||
},
|
||
Model: "Model",
|
||
Voice: {
|
||
Title: "Voice",
|
||
SubTitle: "The voice to use when generating the audio",
|
||
},
|
||
Speed: {
|
||
Title: "Speed",
|
||
SubTitle: "The speed of the generated audio",
|
||
},
|
||
Engine: "TTS Engine",
|
||
},
|
||
},
|
||
Store: {
|
||
DefaultTopic: "New Conversation",
|
||
BotHello: "Hello! How can I assist you today?",
|
||
Error: "Something went wrong, please try again later.",
|
||
Prompt: {
|
||
History: (content: string) =>
|
||
"This is a summary of the chat history as a recap: " + content,
|
||
Topic:
|
||
"Please generate a four to five word title summarizing our conversation without any lead-in, punctuation, quotation marks, periods, symbols, bold text, or additional text. Remove enclosing quotation marks.",
|
||
Summarize:
|
||
"Summarize the discussion briefly in 200 words or less to use as a prompt for future context.",
|
||
},
|
||
},
|
||
Copy: {
|
||
Success: "Copied to clipboard",
|
||
Failed: "Copy failed, please grant permission to access clipboard",
|
||
},
|
||
Download: {
|
||
Success: "Content downloaded to your directory.",
|
||
Failed: "Download failed.",
|
||
},
|
||
Context: {
|
||
Toast: (x: any) => `With ${x} contextual prompts`,
|
||
Edit: "Current Chat Settings",
|
||
Add: "Add a Prompt",
|
||
Clear: "Context Cleared",
|
||
Revert: "Revert",
|
||
},
|
||
Discovery: {
|
||
Name: "Discovery",
|
||
},
|
||
FineTuned: {
|
||
Sysmessage: "You are an assistant that",
|
||
},
|
||
SearchChat: {
|
||
Name: "Search",
|
||
Page: {
|
||
Title: "Search Chat History",
|
||
Search: "Enter search query to search chat history",
|
||
NoResult: "No results found",
|
||
NoData: "No data",
|
||
Loading: "Loading...",
|
||
|
||
SubTitle: (count: number) => `Found ${count} results`,
|
||
},
|
||
Item: {
|
||
View: "View",
|
||
},
|
||
},
|
||
Plugin: {
|
||
Name: "Plugin",
|
||
Page: {
|
||
Title: "Plugins",
|
||
SubTitle: (count: number) => `${count} plugins`,
|
||
Search: "Search Plugin",
|
||
Create: "Create",
|
||
Find: "You can find awesome plugins on github: ",
|
||
},
|
||
Item: {
|
||
Info: (count: number) => `${count} method`,
|
||
View: "View",
|
||
Edit: "Edit",
|
||
Delete: "Delete",
|
||
DeleteConfirm: "Confirm to delete?",
|
||
},
|
||
Auth: {
|
||
None: "None",
|
||
Basic: "Basic",
|
||
Bearer: "Bearer",
|
||
Custom: "Custom",
|
||
CustomHeader: "Parameter Name",
|
||
Token: "Token",
|
||
Proxy: "Using Proxy",
|
||
ProxyDescription: "Using proxies to solve CORS error",
|
||
Location: "Location",
|
||
LocationHeader: "Header",
|
||
LocationQuery: "Query",
|
||
LocationBody: "Body",
|
||
},
|
||
EditModal: {
|
||
Title: (readonly: boolean) =>
|
||
`Edit Plugin ${readonly ? "(readonly)" : ""}`,
|
||
Download: "Download",
|
||
Auth: "Authentication Type",
|
||
Content: "OpenAPI Schema",
|
||
Load: "Load From URL",
|
||
Method: "Method",
|
||
Error: "OpenAPI Schema Error",
|
||
},
|
||
},
|
||
Mask: {
|
||
Name: "Mask",
|
||
Page: {
|
||
Title: "Prompt Template",
|
||
SubTitle: (count: number) => `${count} prompt templates`,
|
||
Search: "Search Templates",
|
||
Create: "Create",
|
||
},
|
||
Item: {
|
||
Info: (count: number) => `${count} prompts`,
|
||
Chat: "Chat",
|
||
View: "View",
|
||
Edit: "Edit",
|
||
Delete: "Delete",
|
||
DeleteConfirm: "Confirm to delete?",
|
||
},
|
||
EditModal: {
|
||
Title: (readonly: boolean) =>
|
||
`Edit Prompt Template ${readonly ? "(readonly)" : ""}`,
|
||
Download: "Download",
|
||
Clone: "Clone",
|
||
},
|
||
Config: {
|
||
Avatar: "Bot Avatar",
|
||
Name: "Bot Name",
|
||
Sync: {
|
||
Title: "Use Global Config",
|
||
SubTitle: "Use global config in this chat",
|
||
Confirm: "Confirm to override custom config with global config?",
|
||
},
|
||
HideContext: {
|
||
Title: "Hide Context Prompts",
|
||
SubTitle: "Do not show in-context prompts in chat",
|
||
},
|
||
Artifacts: {
|
||
Title: "Enable Artifacts",
|
||
SubTitle: "Can render HTML page when enable artifacts.",
|
||
},
|
||
CodeFold: {
|
||
Title: "Enable CodeFold",
|
||
SubTitle:
|
||
"Automatically collapse/expand overly long code blocks when CodeFold is enabled",
|
||
},
|
||
Share: {
|
||
Title: "Share This Mask",
|
||
SubTitle: "Generate a link to this mask",
|
||
Action: "Copy Link",
|
||
},
|
||
},
|
||
},
|
||
NewChat: {
|
||
Return: "Return",
|
||
Skip: "Just Start",
|
||
Title: "Pick a Mask",
|
||
SubTitle: "Chat with the Soul behind the Mask",
|
||
More: "Find More",
|
||
NotShow: "Never Show Again",
|
||
ConfirmNoShow: "Confirm to disable?You can enable it in settings later.",
|
||
},
|
||
|
||
UI: {
|
||
Confirm: "Confirm",
|
||
Cancel: "Cancel",
|
||
Close: "Close",
|
||
Create: "Create",
|
||
Edit: "Edit",
|
||
Export: "Export",
|
||
Import: "Import",
|
||
Sync: "Sync",
|
||
Config: "Config",
|
||
},
|
||
Exporter: {
|
||
Description: {
|
||
Title: "Only messages after clearing the context will be displayed",
|
||
},
|
||
Model: "Model",
|
||
Messages: "Messages",
|
||
Topic: "Topic",
|
||
Time: "Time",
|
||
},
|
||
URLCommand: {
|
||
Code: "Detected access code from url, confirm to apply? ",
|
||
Settings: "Detected settings from url, confirm to apply?",
|
||
},
|
||
SdPanel: {
|
||
Prompt: "Prompt",
|
||
NegativePrompt: "Negative Prompt",
|
||
PleaseInput: (name: string) => `Please input ${name}`,
|
||
AspectRatio: "Aspect Ratio",
|
||
ImageStyle: "Image Style",
|
||
OutFormat: "Output Format",
|
||
AIModel: "AI Model",
|
||
ModelVersion: "Model Version",
|
||
Submit: "Submit",
|
||
ParamIsRequired: (name: string) => `${name} is required`,
|
||
Styles: {
|
||
D3Model: "3d-model",
|
||
AnalogFilm: "analog-film",
|
||
Anime: "anime",
|
||
Cinematic: "cinematic",
|
||
ComicBook: "comic-book",
|
||
DigitalArt: "digital-art",
|
||
Enhance: "enhance",
|
||
FantasyArt: "fantasy-art",
|
||
Isometric: "isometric",
|
||
LineArt: "line-art",
|
||
LowPoly: "low-poly",
|
||
ModelingCompound: "modeling-compound",
|
||
NeonPunk: "neon-punk",
|
||
Origami: "origami",
|
||
Photographic: "photographic",
|
||
PixelArt: "pixel-art",
|
||
TileTexture: "tile-texture",
|
||
},
|
||
},
|
||
Sd: {
|
||
SubTitle: (count: number) => `${count} images`,
|
||
Actions: {
|
||
Params: "See Params",
|
||
Copy: "Copy Prompt",
|
||
Delete: "Delete",
|
||
Retry: "Retry",
|
||
ReturnHome: "Return Home",
|
||
History: "History",
|
||
},
|
||
EmptyRecord: "No images yet",
|
||
Status: {
|
||
Name: "Status",
|
||
Success: "Success",
|
||
Error: "Error",
|
||
Wait: "Waiting",
|
||
Running: "Running",
|
||
},
|
||
Danger: {
|
||
Delete: "Confirm to delete?",
|
||
},
|
||
GenerateParams: "Generate Params",
|
||
Detail: "Detail",
|
||
},
|
||
};
|
||
|
||
export default en;
|