import { getClientConfig } from "../config/client"; import { SubmitKey } from "../store/config"; import { LocaleType } from "./index"; // 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 ? "Invalid API Key, please check it in [Settings](/#/settings) page." : "Unauthorized access, please enter access code in [auth](/#/auth) page, or enter your OpenAI API Key.", }, Auth: { Title: "Need Access Code", Tips: "Please enter access code below", SubTips: "Or enter your OpenAI API Key", Input: "access code", Confirm: "Confirm", Later: "Later", }, 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", }, Commands: { new: "Start a new chat", newm: "Start a new chat with mask", next: "Next Chat", prev: "Previous Chat", clear: "Clear Context", 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", }, 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", Config: { Reset: "Reset to Default", SaveAs: "Save as Mask", }, IsContext: "Contextual Prompt", }, 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", }, }, 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", 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", }, 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", }, 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: { 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 starts 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", }, }, CustomModel: { Title: "Custom Models", SubTitle: "Custom model options, seperated by comma", }, }, Model: "Model", 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", }, }, 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, 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", }, Plugin: { Name: "Plugin", }, FineTuned: { Sysmessage: "You are an assistant that", }, 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", }, 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?", }, }; export default en;