diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue index dcfd785f02..33d735dd26 100644 --- a/src/components/SettingsModal.vue +++ b/src/components/SettingsModal.vue @@ -168,6 +168,7 @@ const languages = computed(() => [ { name: "Русский", code: "ru" }, { name: "Tiếng Việt", code: "vi" }, { name: "简体中文", code: "zh" }, + { name: "繁體中文", code: "zhtw" }, ]); const modes = computed(() => [ diff --git a/src/i18n/index.js b/src/i18n/index.js index 239208df81..12581f26d2 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -11,6 +11,7 @@ if (lang == "auto") { // Import translation files here import enMessages from "./locales/en.json"; import zhMessages from "./locales/zh.json"; +import zhtwMessages from "./locales/zhtw.json"; import deMessages from "./locales/de.json"; import ruMessages from "./locales/ru.json"; import viMessages from "./locales/vi.json"; @@ -23,6 +24,7 @@ import jaMessages from "./locales/ja.json"; const messages = { en: enMessages, zh: zhMessages, + zhtw: zhtwMessages, de: deMessages, ru: ruMessages, vi: viMessages, diff --git a/src/i18n/locales/zhtw.json b/src/i18n/locales/zhtw.json new file mode 100644 index 0000000000..3146078858 --- /dev/null +++ b/src/i18n/locales/zhtw.json @@ -0,0 +1,315 @@ +{ + "settings": { + "enable": "啟用", + "forExample": "例如:{ example }", + "title": "設定", + "general": "一般", + "language": "語言", + "languagePrompt": "新語言將在程式重新啟動後生效", + "loginOrOut": "登入/登出", + "loginOrOutPrompt": "點選下方連結,在新視窗內登入或登出,然後關閉此視窗", + "notice": "注意", + "secretPrompt": "你的私密 token 只會儲存在本地,任何其他人都無法存取", + "theme": "主題", + "system": "系統", + "light": "淺色", + "dark": "深色", + "bots": "AI 模型" + }, + "header": { + "clearMessages": "清空目前對話的所有訊息?", + "yes": "是", + "no": "否", + "singleColumn": "單欄", + "doubleColumn": "雙欄", + "tripleColumn": "三欄", + "selectedResponsesCount": "已選擇 { selectedCount } 個" + }, + "footer": { + "chooseFavorite": "選擇你喜歡的 AI", + "sendPrompt": "傳送到:", + "promptPlaceholder": "輸入訊息。(Shift+Enter 換行)", + "madeInChina": "中國製造", + "openSource": "開源", + "free": "免費", + "paid": "付費", + "api": "API" + }, + "error": { + "error": "錯誤", + "failedConnectUrl": "連線 { url } 失敗", + "closedByServer": "連線被伺服器關閉", + "requireLogin": "請登入:{ link }", + "solveChallenge": "請點選下方連結,按頁面指示完成驗證 / 驗證碼,然後關閉視窗。" + }, + "modal": { + "confirmHide": "刪除這條訊息?", + "confirmHideChat": "刪除這條對話?", + "confirmHidePrompt": "刪除這條提示?", + "confirmHideAction": "刪除這條操作?", + "done": "完成", + "cancel": "取消" + }, + "chat": { + "name": "對話", + "newChat": "新對話", + "deleteAllChatHistory": "刪除所有對話記錄", + "downloadAllChatHistory": "儲存所有對話記錄", + "exportImport": "匯出 / 匯入", + "exportImportDesc": "匯出 / 匯入設定和聊天,不包括機器人設定和 API 金鑰。", + "export": "匯出資料", + "exportDesc": "匯出器將建立一個包含不包括機器人設定和 API 金鑰的資料的 .ChatALL 檔案。確認匯出?", + "exportFailed": "匯出資料失敗", + "exportSuccess": "資料匯出成功", + "import": "匯入資料", + "importDesc": "匯入器將嘗試將您目前的聊天與所選的 .ChatALL 匯出檔案合併和更新。點選匯出按鈕備份資料,儲存目前聊天歷史和設定。這允許在匯入錯誤時進行恢復。確認匯入?", + "importLog": "匯入日誌", + "importSuccess": "資料匯入成功", + "importFailed": "匯入資料失敗", + "confirmDeleteAllChatHistory": "你確定要刪除所有對話記錄嗎?此操作無法撤銷。", + "actions": "操作", + "addAction": "新增操作", + "actionName": "名稱", + "prefix": "前綴", + "actionTemplate": "範本", + "suffix": "後綴", + "preview": "預覽", + "inNewChat": "在新對話", + "inCurrentChat": "在目前對話", + "templateParameters": "範本參數", + "parameter": "參數", + "description": "描述", + "botNameDesc": "所選回應的機器人名稱", + "botResponseDesc": "所選回應內容", + "loading": "載入中..." + }, + "bot": { + "creatingConversation": "建立新對話...", + "disabled": "已停用", + "failedToCreateConversation": "建立對話失敗", + "nullBot": "虛無", + "notImplemented": "開發中...", + "notAvailable": "這個對話機器人現在無法使用。可能因為未登入,或者設定不正確。", + "waiting": "等待其它 { botName } 請求結束...", + "pastRounds": "攜帶多少輪過去的對話?", + "pastRoundsPrompt": "帶的歷史對話越多,多輪對話效果越好,但也會消耗更多費用" + }, + "360AiBrain": { + "name": "360 智腦" + }, + "azureOpenaiApi": { + "name": "Azure OpenAI 服務", + "temperature": "Temperature", + "temperaturePrompt": "Temperature 越高,生成的文字越有創造性,但也越沒條理", + "temperature0": "更具確定性", + "temperature2": "更具隨機性", + "azureOpenAIApiKey": "金鑰", + "azureApiInstanceName": "執行個體名稱", + "azureApiInstanceNamePrompt": "在 https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI 檢視", + "azureOpenAIApiDeploymentName": "部署名稱", + "azureOpenAIApiDeploymentNamePrompt": "在 https://oai.azure.com/ 的「管理 -> 部署」下檢視", + "azureOpenAIApiVersion": "模型版本", + "azureOpenAIApiVersionPrompt": "在 https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/reference#completions 檢視支援的版本" + }, + "bard": { + "name": "Bard" + }, + "bingChat": { + "name": "必應對話", + "solveCaptcha": "你需要通過真人驗證才能繼續。", + "h3imaginative": "創造力", + "galileo": "平衡", + "h3precise": "精確" + }, + "characterAI": { + "name": "Character.AI" + }, + "chatGpt": { + "name": "ChatGPT", + "autoRefresh": "自動防斷線", + "autoRefreshPrompt": "如果沒有被要求頻繁登入,不需要啟用此功能", + "notice": "只有付費的 ChatGPT Plus 使用者才能使用 GPT-4", + "text-davinci-002-render-sha": "GPT-3.5", + "gpt-4": "GPT-4", + "gpt-4-browsing": "Web 瀏覽", + "gpt-4-mobile": "GPT-4 行動裝置版 V2" + }, + "claudeAi": { + "name": "Claude 2" + }, + "ernie": { + "name": "文心一言" + }, + "huggingChat": { + "name": "HuggingChat", + "codellamaCodeLlama-34b-Instruct-hf": "Code Llama", + "OpenAssistantoasst-sft-6-llama-30b-xor": "oasst-sft-6-llama-30b", + "meta-llamaLlama-2-70b-chat-hf": "llama-2-70b", + "tiiuaefalcon-180B-chat": "falcon-180b", + "HuggingFaceH4zephyr-7b-beta": "zephyr-7b" + }, + "gradio": { + "fnIndex": "fn_index", + "fnIndexPrompt": "要呼叫的功能的 fn_index。通常是 0", + "name": "Gradio", + "queueFull": "佇列已滿,請稍後再試", + "url": "Gradio App URL", + "urlPrompt": "您自己的 Gradio app URL。如使用 Hugging Face 的 space,點選 space 右上角的 \"Embed this space\" 取得 direct URL", + "waiting": "目前有 { queue_size } 個請求在佇列中,你在第 { rank } 位,預計還要等待 { queue_eta } 秒" + }, + "lmsys": { + "name": "LMSYS", + "vicuna-7b": "vicuna-7b", + "vicuna-13b": "vicuna-13b", + "vicuna-33b": "vicuna-33b", + "chatglm-6b": "chatglm-6b", + "chatglm2-6b": "chatglm2-6b", + "chatglm3-6b": "chatglm3-6b", + "alpaca-13b": "alpaca-13b", + "claude-1": "claude-1", + "wizardlm-13b": "WizardLM-13B", + "wizardlm-70b": "WizardLM-70B", + "codellama-34b-instruct": "Code Llama", + "llama-2-13b-chat": "llama-2-13b", + "llama-2-7b-chat": "llama-2-7b", + "llama-2-70b-chat": "llama-2-70b" + }, + "moss": { + "name": "MOSS" + }, + "openaiApi": { + "name": "OpenAI API", + "alterUrl": "自訂基礎 URL", + "alterUrlPrompt": "API 請求的基礎 URL 路徑。如果沒有使用代理或服務模擬器,就留空", + "gpt-35-turbo": "gpt-3.5-turbo", + "gpt-35-turbo-16k": "gpt-3.5-turbo-16k", + "gpt-4": "gpt-4", + "temperature": "Temperature", + "temperaturePrompt": "Temperature 越高,生成的文字越有創造性,但也越沒條理", + "temperature0": "更具確定性", + "temperature2": "更具隨機性", + "apiKey": "API 金鑰" + }, + "poe": { + "name": "Poe", + "a2": "Claude-instant", + "a2_100k": "Claude-instant-100k", + "a2_2": "Claude-2-100k", + "beaver": "GPT-4", + "capybara": "Assistant", + "chinchilla": "ChatGPT 3.5", + "vizcacha": "GPT-4-32k" + }, + "qianWen": { + "name": "通義千問" + }, + "skyWork": { + "name": "天工" + }, + "spark": { + "name": "訊飛星火" + }, + "wenxinQianfan": { + "name": "文心千帆", + "ERNIE-Bot": "ERNIE-Bot", + "ERNIE-Bot-turbo": "ERNIE-Bot-turbo", + "ERNIE-Bot-4": "ERNIE-Bot-4" + }, + "youChat": { + "name": "YouChat" + }, + "chatGlm": { + "name": "智譜清言" + }, + "pi": { + "name": "Pi", + "waitPiIntro": "請點選下方的網站連結,等待 Pi 介紹完成後,然後關閉視窗。" + }, + "openAssistant": { + "name": "Open Assistant", + "queue": "目前有 { queue_size } 個請求在佇列中,你在第 { queue_position } 位" + }, + "falcon": { + "name": "Falcon", + "falcon-180b": "180b" + }, + "phind": { + "name": "Phind" + }, + "dev": { + "name": "開發專用 Bot" + }, + "updates": { + "updateAvailable": "有更新!", + "currentVersion": "您目前的版本", + "latestVersion": "最新版本", + "downloadFromGitHub": "前往 GitHub 下載", + "skipThisVersion": "跳過此版本", + "close": "關閉" + }, + "find": { + "find": "尋找", + "noMatches": "未找到結果", + "matchCase": "區分大小寫", + "wrapAround": "迴圈尋找" + }, + "proxy": { + "name": "代理伺服器", + "address": "代理伺服器地址", + "addressExample": "http://127.0.0.1:7890,socks5://127.0.0.1:1080", + "enableProxy": "啟用代理", + "proxyMode": "代理模式", + "globalMode": "普通模式", + "pacFileMode": "PAC 檔案模式", + "pacUrlMode": "PAC URL 模式", + "byPass": "不使用代理的 網址(僅對普通模式生效)", + "byPassHint": "用英文 ';' 分隔,但最後不要出現;號,如';*.aliyun.com;*.tiangong.cn;*.xfyun.cn;*.baidu.com;*.baidubce.com'", + "fromFile": "從檔案載入", + "fromURL": "從 URL 載入", + "pacUrl": "PAC URL 地址", + "pacFile": "PAC 檔案", + "pacFileUsing": "目前使用的 PAC 檔案", + "pacFileNew": "選擇其他 PAC 檔案", + "quickSet": "快捷設定", + "fullSet": "進階設定", + "action": "操作", + "onlySave": "僅儲存", + "saveAndApply": "儲存並套用", + "reload": "重新載入", + "reset": "重設", + "proxyFilePath": "代理設定檔案路徑", + "proxyFilePathHint": "你可以備份這個檔案,或者用其他程式修改", + "saveSuccess": "儲存成功", + "saveFailed": "儲存失敗", + "resetAllMessage": "所有代理的設定(包括已儲存的)都會遺失。確定重設到預設狀態嗎?", + "reloadMessage": "所有未經儲存的設定都會遺失。確定重新載入設定檔案嗎?", + "saveAndActiveMessage": "應用代理需要重新啟動 ChatALL。確定重新啟動嗎?", + "googleService": "Google 各種資源" + }, + "prompt": { + "addPrompt": "新增提示", + "title": "標題", + "prompt": "提示", + "action": "操作", + "required": "必填" + }, + "$vuetify": { + "firstPage": "無資料顯示", + "dataFooter": { + "itemsPerPageText": "每頁顯示數目", + "pageText": "", + "firstPage": "第一頁", + "prevPage": "上一頁", + "lastPage": "最後一頁", + "nextPage": "下一頁", + "itemsPerPageAll": "全部" + }, + "input": { + "clear": "清除" + } + }, + "10": "10", + "25": "25", + "50": "50", + "100": "100" +}