From fe3f2d04a93a1893f4d472beb23bc671ae3ab7d0 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Tue, 10 Mar 2026 20:50:40 +0100 Subject: [PATCH] Translation: traditional chinese (by me.october) --- README.md | 10 +- languages/traditional-chinese.json | 608 +++++++++++++++++++++++++++ src/core/api/defaults/language.ts | 1 + src/data/framework/languageLoader.ts | 1 + 4 files changed, 615 insertions(+), 5 deletions(-) create mode 100644 languages/traditional-chinese.json diff --git a/README.md b/README.md index 48f8a8f..d0974a9 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@

Open Ticket is the most advanced and customizable Discord ticket bot available. With 350+ configurable settings, you have full control over every aspect of your ticket system! From HTML transcripts and Advanced Plugins to Claiming & Pinning, Questions & Modals, Detailed Statistics, and much more.

-The bot is fully translated into 36+ languages and has been battle-tested in large Discord servers.
+The bot is fully translated into 37+ languages and has been battle-tested in large Discord servers.
Need help or want to get involved? Feel free to join our Discord server.

@@ -37,7 +37,7 @@ Need help or want to get involved? Feel free to join our ` => 必填參數\n`[名稱]` => 可選參數", + "statsReset":"機器人統計已成功重置!", + "statsError":"無法檢視工單統計!\n{0}不是工單!", + "blacklistAdd":"{0}已成功拉黑!", + "blacklistRemove":"{0}已成功解禁!", + "blacklistGetSuccess":"{0}當前已被拉黑!", + "blacklistGetEmpty":"{0}當前未被拉黑!", + "blacklistViewEmpty":"尚未有人被拉黑!", + "blacklistViewTip":"使用“/blacklist add”拉黑用戶!", + "clearVerify":"確定要刪除多個工單嗎?\n此操作無法撤銷!", + "clearReady":"{0}個工單已成功刪除!", + "rolesEmpty":"未更新任何角色!", + + "autocloseLeave":"此工單已自動關閉,因為創建者離開了服務器!", + "autocloseTimeout":"此工單已自動關閉,因為它已超過`{0}小時`未活動!", + "autodeleteLeave":"此工單已自動刪除,因為創建者離開了服務器!", + "autodeleteTimeout":"此工單已自動刪除,因為它已超過`{0}天`未活動!", + "autocloseEnabled":"此工單已啟用自動關閉!\n超過`{0}小時`未活動後將自動關閉!", + "autocloseDisabled":"此工單已禁用自動關閉!\n不再自動關閉!", + "autodeleteEnabled":"此工單已啟用自動刪除!\n超過`{0}天`未活動後將自動刪除!", + "autodeleteDisabled":"此工單已禁用自動刪除!\n不再自動刪除!", + + "ticketMessageLimit":"您隻能同時創建{0}個工單!", + "ticketMessageAutoclose":"此工單將在超過{0}小時未活動後自動關閉!", + "ticketMessageAutodelete":"此工單將在超過{0}天未活動後自動刪除!", + "panelReady":"麵闆已在後續消息中可用!\n此消息現在可以刪除!", + + "topicSet":"頻道主題已由 {0} 成功更改!", + "prioritySet":"工單優先級已由 {1} 成功更改為 {0}!", + "priorityGet":"此工單當前的優先級為 {0}。", + "transfer":"工單所有權已由 {2} 成功從 {0} 轉移至 {1}!" + }, + "modal":{ + "closePlaceholder":"您為什麼關閉此工單?", + "deletePlaceholder":"您為什麼刪除此工單?", + "reopenPlaceholder":"您為什麼重新開啟此工單?", + "claimPlaceholder":"您為什麼認領此工單?", + "unclaimPlaceholder":"您為什麼取消認領此工單?", + "pinPlaceholder":"您為什麼置頂此工單?", + "unpinPlaceholder":"您為什麼取消置頂此工單?" + }, + "logs":{ + "createLog":"{0}創建了一個新工單!", + "closeLog":"此工單已被{0}關閉!", + "closeDm":"您的工單已在我們的服務器中關閉!", + "deleteLog":"此工單已被{0}刪除!", + "deleteDm":"您的工單已在我們的服務器中刪除!", + "reopenLog":"此工單已被{0}重新開啟!", + "reopenDm":"您的工單已在我們的服務器中重新開啟!", + "claimLog":"此工單已被{0}認領!", + "claimDm":"您的工單已在我們的服務器中被認領!", + "unclaimLog":"此工單已被{0}取消認領!", + "unclaimDm":"您的工單已在我們的服務器中取消認領!", + "pinLog":"此工單已被{0}置頂!", + "pinDm":"您的工單已在我們的服務器中置頂!", + "unpinLog":"此工單已被{0}取消置頂!", + "unpinDm":"您的工單已在我們的服務器中取消置頂!", + "renameLog":"此工單已被{1}重命名為{0}!", + "renameDm":"您的工單已在我們的服務器中重命名為{0}!", + "moveLog":"此工單已被{1}移動到{0}!", + "moveDm":"您的工單已在我們的服務器中移動到{0}!", + "addLog":"{0}已被{1}添加到此工單!", + "addDm":"{0}已被添加到您的工單中!", + "removeLog":"{0}已被{1}從此工單移除!", + "removeDm":"{0}已被從您的工單中移除!", + + "blacklistAddLog":"{0}被{1}拉黑!", + "blacklistRemoveLog":"{0}被{1}從黑名單移除!", + "blacklistAddDm":"您已被我們的服務器拉黑!\n從現在起,您無法創建工單!", + "blacklistRemoveDm":"您已被我們的服務器解禁!\n現在您可以再次創建工單!", + "clearLog":"{0}個工單已被{1}刪除!", + + "transferLog":"此工單的所有權已由 {2} 從 {0} 轉移至 {1}!", + "transferDm":"您在服務器中的工單所有權已從 {0} 轉移至 {1}!", + "prioritySetLog":"此工單的優先級已由 {1} 更改為 {0}!", + "prioritySetDm":"您在服務器中的工單優先級已更改為 {0}!", + "roleUpdateLog":"{0} 已更新其角色!", + "roleUpdateDm":"您在服務器中的角色已更新!" + } + }, + "transcripts":{ + "success":{ + "visit":"檢視記錄", + "ready":"記錄已創建", + "textFileDescription":"這是已刪除工單的文本記錄!", + "htmlProgress":"請等待此HTML記錄處理完成...", + + "createdChannel":"服務器中已創建一個新的{0}記錄!", + "createdCreator":"已為您的工單創建一個新的{0}記錄!", + "createdParticipant":"您參與的工單中已創建一個新的{0}記錄!", + "createdActiveAdmin":"您作為管理員參與的工單中已創建一個新的{0}記錄!", + "createdEveryAdmin":"您曾擔任管理員的工單中已創建一個新的{0}記錄!", + "createdOther":"已創建一個新的{0}記錄!" + }, + "errors":{ + "retry":"重試", + "continue":"刪除無記錄", + "backup":"創建備份記錄", + "error":"創建記錄時出錯。\n您想怎麼做?\n\n在您點選以下按鈕之前,此工單不會被刪除。", + "title":"記錄錯誤" + }, + "text":{ + "messagesTitle":"消息", + "embedTitle":"EMBED", + "fileTitle":"文件", + "fieldsTitle":"字段", + "reactionsTitle":"反應", + "statsTitle":"統計", + "emptyContent":"<內容為空>", + "noTitle":"<無標題>", + "noDesc":"<無描述>" + } + }, + "errors":{ + "titles":{ + "internalError":"內部錯誤", + "optionMissing":"命令選項缺失", + "optionInvalid":"命令選項無效", + "unknownCommand":"未知命令", + "noPermissions":"無權限", + "unknownTicket":"未知工單", + "deprecatedTicket":"過時工單", + "unknownOption":"未知選項", + "unknownPanel":"未知麵闆", + "notInGuild":"不在服務器中", + "channelRename":"無法重命名頻道", + "busy":"工單繁忙", + "permissionError":"權限錯誤" + }, + "descriptions":{ + "askForInfo":"請聯係此機器人的所有者獲取更多信息!", + "askForInfoResolve":"如果此問題在多次嘗試後仍未解決,請聯係此機器人的所有者。", + "internalError":"由於內部錯誤,無法回響此{0}!", + "optionMissing":"此命令缺少必填參數!", + "optionInvalid":"此命令中的參數無效!", + "optionInvalidChoose":"請選擇", + "unknownCommand":"請訪問幫助菜單獲取更多信息!", + "noPermissions":"您無權使用此{0}!", + "noPermissionsList":"所需權限:(其中之一)", + "noPermissionsCooldown":"您因冷卻時間無法使用此{0}!", + "noPermissionsBlacklist":"您因被拉黑無法使用此{0}!", + "noPermissionsLimitGlobal":"您無法創建工單,因為服務器已達到最大工單限製!", + "noPermissionsLimitGlobalUser":"您無法創建工單,因為您已達到最大工單限製!", + "noPermissionsLimitOption":"您無法創建工單,因為服務器已達到此選項的最大工單限製!", + "noPermissionsLimitOptionUser":"您無法創建工單,因為您已達到此選項的最大工單限製!", + "unknownTicket":"請在有效工單中重試此命令!", + "deprecatedTicket":"當前頻道不是有效工單!可能是舊版Open Ticket的工單!", + "notInGuild":"此{0}在私信中無效!請在服務器中重試!", + "channelRename":"由於Discord速率限製,機器人目前無法重命名頻道。如果機器人未重啟,頻道將在10分鍾後自動重命名。", + "channelRenameSource":"此錯誤的來源是:{0}", + "busy":"無法使用此{0}!\n工單當前正在被機器人處理。\n\n請幾秒後重試!", + "closeBeforeMessage":"用戶發送消息之前,無法關閉或刪除此工單。", + "closeBeforeAdminMessage":"工單管理員或支援成員發送消息之前,無法關閉或刪除此工單。", + "unableToCreateTicket":"您無法創建工單。" + }, + "optionInvalidReasons":{ + "stringRegex":"值不符合模式!", + "stringMinLength":"值至少需要{0}個字符!", + "stringMaxLength":"值最多需要{0}個字符!", + "numberInvalid":"無效數字!", + "numberMin":"數字至少為{0}!", + "numberMax":"數字最多為{0}!", + "numberDecimal":"數字不能為小數!", + "numberNegative":"數字不能為負數!", + "numberPositive":"數字不能為正數!", + "numberZero":"數字不能為零!", + "channelNotFound":"無法找到頻道!", + "userNotFound":"無法找到用戶!", + "roleNotFound":"無法找到角色!", + "memberNotFound":"無法找到用戶!", + "mentionableNotFound":"無法找到用戶或角色!", + "channelType":"無效的頻道類型!", + "notInGuild":"此選項需要您在服務器中!" + }, + "permissions":{ + "developer":"您需要是機器人的開發者。", + "owner":"您需要是服務器所有者。", + "admin":"您需要是服務器管理員。", + "moderator":"您需要是版主。", + "support":"您需要是支援團隊成員。", + "member":"您需要是成員。", + "discord-administrator":"您需要擁有`ADMINISTRATOR`權限。" + }, + "actionInvalid":{ + "close":"工單已關閉!", + "reopen":"工單未關閉!", + "claim":"工單已認領!", + "unclaim":"工單未認領!", + "pin":"工單已置頂!", + "unpin":"工單未置頂!", + "add":"此用戶已可訪問工單!", + "remove":"無法從此工單移除此用戶!" + } + }, + "params":{ + "uppercase":{ + "ticket":"工單", + "tickets":"工單", + "reason":"原因", + "creator":"創建者", + "remaining":"剩餘時間", + "added":"已添加", + "removed":"已移除", + "filter":"篩選", + "method":"方式", + "type":"類型", + "blacklisted":"已拉黑", + "panel":"麵闆", + "command":"命令", + "system":"係統", + "true":"是", + "false":"否", + "syntax":"文法", + "originalName":"原名稱", + "newName":"新名稱", + "until":"直到", + "validOptions":"有效選項", + "validPanels":"有效麵闆", + "autoclose":"自動關閉", + "autodelete":"自動刪除", + "startupDate":"啟動日期", + "version":"版本", + "name":"名稱", + "role":"角色", + "status":"狀態", + "claimed":"已認領", + "pinned":"已置頂", + "creationDate":"創建日期", + + "noone":"無人", + "open":"開啟", + "closed":"關閉", + "priority":"優先級", + "participants":"參與者", + "yes":"是", + "no":"否", + "option":"選項", + "topic":"主題", + "uptime":"係統運行時間", + "messages":"消息", + "embeds":"嵌入", + "files":"文件", + "components":"組件", + "cooldown":"冷卻時間", + "maxTickets":"最大工單數", + "admins":"管理員", + "roles":"角色", + "size":"大小" + }, + "lowercase":{ + "text":"文本", + "html":"HTML", + "command":"命令", + "modal":"模態框", + "button":"按鈕", + "dropdown":"下拉菜單", + "method":"方式" + } + }, + "commands":{ + "reason":"指定一個可選原因,該原因將在日誌中可見。", + "help":"獲取所有可用命令的列錶。", + "panel":"生成帶有下拉菜單或按鈕的消息(用於工單創建)。", + "panelId":"您想要生成的麵闆的標識符。", + "panelAutoUpdate":"您希望此麵闆在編輯時自動更新嗎?", + "ticket":"立即創建一個工單。", + "ticketId":"您想要創建的工單的標識符。", + "close":"關閉一個工單。", + "delete":"刪除一個工單。", + "deleteNoTranscript":"刪除此工單而不創建記錄。", + "reopen":"重新開啟一個工單。", + "claim":"認領一個工單。", + "claimUser":"將此工單認領給其他人而不是您自己。", + "unclaim":"取消認領一個工單。", + "pin":"置頂一個工單。", + "unpin":"取消置頂一個工單。", + + "move":"移動一個工單。", + "moveId":"您想要移動到的選項的標識符。", + "rename":"重命名一個工單。", + "renameName":"此工單的新名稱。", + "add":"將用戶添加到工單。", + "addUser":"要添加的用戶。", + "remove":"從工單中移除用戶。", + "removeUser":"要移除的用戶。", + + "blacklist":"管理工單黑名單。", + "blacklistView":"檢視當前黑名單的列錶。", + "blacklistAdd":"將用戶添加到黑名單。", + "blacklistRemove":"從黑名單中移除用戶。", + "blacklistGet":"獲取被拉黑用戶的詳細信息。", + "blacklistGetUser":"要獲取詳細信息的用戶。", + "stats":"檢視機器人、成員或工單的統計信息。", + "statsReset":"重置機器人的所有統計信息(並從零開始計數)。", + "statsGlobal":"檢視全局統計信息。", + "statsUser":"檢視服務器中用戶的統計信息。", + "statsUserUser":"要檢視的用戶。", + "statsTicket":"檢視服務器中工單的統計信息。", + "statsTicketTicket":"要檢視的工單。", + + "clear":"同時刪除多個工單。", + "clearFilter":"清除工單的篩選條件。", + "clearFilters":{ + "all":"全部", + "open":"開啟", + "close":"關閉", + "claim":"已認領", + "unclaim":"未認領", + "pin":"已置頂", + "unpin":"未置頂", + "autoclose":"自動關閉" + }, + + "autoclose":"管理工單中的自動關閉。", + "autocloseDisable":"禁用此工單的自動關閉。", + "autocloseEnable":"啟用此工單的自動關閉。", + "autocloseEnableTime":"工單需要多少小時不活動才能自動關閉。", + "autodelete":"管理工單中的自動刪除。", + "autodeleteDisable":"禁用此工單的自動刪除。", + "autodeleteEnable":"啟用此工單的自動刪除。", + "autodeleteEnableTime":"工單需要多少天不活動才能自動刪除。", + + "topic":"管理工單頻道的主題。", + "topicSet":"設定工單頻道的主題。", + "topicValue":"頻道的新主題。", + "topicList":"獲取所有工單及其主題和統計信息的列錶。", + "priority":"管理工單的優先級。", + "prioritySet":"設定工單的優先級。", + "priorityValue":"頻道的優先級。", + "priorityGet":"獲取工單的優先級。", + "priorityList":"獲取所有工單的優先級狀態列錶。", + "transfer":"將工單所有權從一位用戶轉移至另一位用戶。", + "transferUser":"要轉移給的用戶。" + }, + "helpMenu":{ + "help":"獲取所有可用命令的列錶。", + "ticket":"立即創建一個工單。", + "close":"關閉一個工單,這將禁用此頻道的寫入權限。", + "delete":"刪除一個工單,啟用時會創建記錄。", + "reopen":"重新開啟一個工單,這將重新啟用此頻道的寫入權限。", + "pin":"置頂一個工單。這將把工單移動到頂部,並在名稱前添加'📌'錶情符號。", + "unpin":"取消置頂一個工單。工單將保持當前位置,但會移除'📌'錶情符號。", + "move":"移動一個工單。這將更改此工單的類型。", + "rename":"重命名一個工單。這將更改此工單的頻道名稱。", + "claim":"認領一個工單。通過此操作,您可以告知團隊您正在處理此工單。", + "unclaim":"取消認領一個工單。通過此操作,您可以告知團隊此工單已空閒。", + "add":"將用戶添加到工單。這將允許用戶在此工單中讀取和寫入。", + "remove":"從工單中移除用戶。這將移除用戶在此工單中讀取和寫入的權限。", + "panel":"生成帶有下拉菜單或按鈕的消息(用於工單創建)。", + "blacklistView":"檢視當前黑名單的列錶。", + "blacklistAdd":"將用戶添加到黑名單。", + "blacklistRemove":"從黑名單中移除用戶。", + "blacklistGet":"獲取被拉黑用戶的詳細信息。", + "statsGlobal":"檢視全局統計信息。", + "statsTicket":"檢視服務器中工單的統計信息。", + "statsUser":"檢視服務器中用戶的統計信息。", + "statsReset":"重置機器人的所有統計信息(並從零開始計數)。", + "autocloseDisable":"禁用此工單的自動關閉。", + "autocloseEnable":"啟用此工單的自動關閉。", + "autodeleteDisable":"禁用此工單的自動刪除。", + "autodeleteEnable":"啟用此工單的自動刪除。", + "categories":{ + "general":"通用命令", + "basicTicket":"基礎工單命令", + "advancedTicket":"高級工單命令", + "userTicket":"用戶工單命令", + "admin":"管理員命令", + "advanced":"高級命令", + "extra":"額外命令" + } + }, + "stats":{ + "scopes":{ + "global":"全局統計", + "system":"係統統計", + "user":"用戶統計", + "ticket":"工單統計", + "participants":"參與者", + "messages":"消息" + }, + "properties":{ + "ticketsCreated":"工單已創建", + "ticketsClosed":"工單已關閉", + "ticketsDeleted":"工單已刪除", + "ticketsReopened":"工單已重新開啟", + "ticketsAutoclosed":"工單已自動關閉", + "ticketsClaimed":"工單已認領", + "ticketsPinned":"工單已置頂", + "ticketsMoved":"工單已移動", + "usersBlacklisted":"用戶已拉黑", + "transcriptsCreated":"記錄已創建", + "ticketsAutodeleted":"自動刪除的工單", + "ticketsTransferred":"已轉移的工單", + "ticketVolume":"工單量", + "averageTickets":"平均工單數/用戶", + "currentTickets":"當前工單", + "age":"工單時長", + "responseTime":"回響時間", + "resolutionTime":"解決時間", + "createdOn":"創建於", + "createdBy":"創建者", + "closedOn":"關閉於", + "closedBy":"關閉者", + "claimedOn":"認領於", + "claimedBy":"認領者", + "pinnedOn":"固定於", + "pinnedBy":"固定者", + "deletedOn":"刪除於", + "deletedBy":"刪除者" + }, + "roles":{ + "developer":"開發者", + "serverOwner":"服務器所有者", + "serverAdmin":"服務器管理員", + "moderator":"管理團隊", + "support":"支援團隊", + "member":"成員" + } + }, + "panel":{ + "selectTicket":"選擇您的工單", + "selectRole":"選擇您的角色", + "selectOption":"選擇您的選項" + }, + "priorities":{ + "urgent":"緊急", + "veryHigh":"非常高", + "high":"高", + "normal":"普通", + "low":"低", + "veryLow":"非常低", + "none":"無" + } +} \ No newline at end of file diff --git a/src/core/api/defaults/language.ts b/src/core/api/defaults/language.ts index 649cebf..5595253 100644 --- a/src/core/api/defaults/language.ts +++ b/src/core/api/defaults/language.ts @@ -52,6 +52,7 @@ export interface ODLanguageManagerIds_Default { "opendiscord:korean":api.ODLanguage, "opendiscord:kurdish":api.ODLanguage, "opendiscord:simplified-chinese":api.ODLanguage, + "opendiscord:traditional-chinese":api.ODLanguage, "opendiscord:slovenian":api.ODLanguage, "opendiscord:tamil":api.ODLanguage, //ADD NEW LANGUAGES HERE!!! diff --git a/src/data/framework/languageLoader.ts b/src/data/framework/languageLoader.ts index de1ef2c..ee1570f 100644 --- a/src/data/framework/languageLoader.ts +++ b/src/data/framework/languageLoader.ts @@ -46,6 +46,7 @@ export const loadAllLanguages = async () => { opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:korean","korean.json")) opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:kurdish","kurdish.json")) opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:simplified-chinese","simplified-chinese.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:traditional-chinese","traditional-chinese.json")) opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:slovenian","slovenian.json")) opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:tamil","tamil.json")) } \ No newline at end of file