Rules & engine: - 22 presets (was 11): split status into okstate/warnstate/badstate, add delop, createop, danger, secret, level, exitcode, percent, http; status words are case-insensitive and cover the ✓ ✔ ✅ ✗ ✘ ✖ ❌ ⚠ symbol set - value bands: the first number in a match picks the colour (percent: <20% red / 20-50% yellow / 50-80% light green / >=80% green) - optional per-rule `caseInsensitive`, `category`, `bands`; load-time `refreshBuiltinRules` upgrades untouched built-in patterns in place Settings page: - three-way master switch `highlightMode` (all / basic / off); `basic` runs only the five safety+status rules and `off` empties the rule set rather than bypassing HighlightStream (which would drop the held tail) - category column + grouping (`highlightGroupByCategory`), per-rule hit/duration stats (`highlightStats`, opt-in sink, snapshot once a second), theme-following colours (`highlightThemeColors`, hue-bucket mapping onto the ANSI palette), import/export JSON envelope, live preview through the real engine - named rule subsets bound per host (`highlightPerHost` + `highlightProfiles` + `SshConnection.highlightProfileId`); empty ruleIds = every rule Tests: new tests/hl-rules.mjs (word boundaries, case flag, negative words, bands, import/export, preview, basic mode, categories, stats, theme colours, profiles) + profile round-trip in tests/settings-store.mjs
240 lines
15 KiB
TypeScript
240 lines
15 KiB
TypeScript
/** 命名空間:settings(設定對話框:字型/游標/渲染/高亮/主題/系統/關於)。歸屬:設定頁維護者。 */
|
||
const settings: Record<string, string> = {
|
||
'settings.title': '設定',
|
||
'settings.tabs.font': '字型',
|
||
'settings.tabs.cursor': '游標與捲動',
|
||
'settings.tabs.render': '渲染與行為',
|
||
'settings.tabs.highlight': '高亮',
|
||
'settings.tabs.theme': '主題',
|
||
'settings.tabs.system': '系統',
|
||
'settings.tabs.about': '關於',
|
||
'settings.resizeHandle': '拖曳調整大小',
|
||
'settings.preview': '預覽',
|
||
'settings.deleteConfirmDesc': '刪除後無法復原,確定要繼續嗎?',
|
||
'settings.color.foreground': '前景',
|
||
'settings.color.background': '背景',
|
||
'settings.color.cursor': '游標',
|
||
'settings.color.selection': '選取區',
|
||
'settings.font.label': '字型',
|
||
'settings.font.desc': '內建預設字型或系統等寬字型',
|
||
'settings.font.placeholder': '選擇字型',
|
||
'settings.font.default': '預設',
|
||
'settings.font.size': '字型大小',
|
||
'settings.font.sizeDesc': '終端文字的像素大小',
|
||
'settings.font.weight': '字重',
|
||
'settings.font.weightDesc': '400 為一般,700 為粗體',
|
||
'settings.font.boldWeight': '粗體字重',
|
||
'settings.font.boldWeightDesc': '粗體文字所使用的字重',
|
||
'settings.font.letterSpacing': '字元間距',
|
||
'settings.font.letterSpacingDesc': '字元之間的水平間距',
|
||
'settings.font.lineHeight': '行高',
|
||
'settings.font.lineHeightDesc': '相鄰兩行之間的垂直距離',
|
||
'settings.cursor.blink': '游標閃爍',
|
||
'settings.cursor.blinkDesc': '游標是否週期性閃爍',
|
||
'settings.cursor.style': '游標樣式',
|
||
'settings.cursor.styleDesc': '游標的顯示形狀',
|
||
'settings.cursor.inactiveStyle': '非作用中游標樣式',
|
||
'settings.cursor.inactiveStyleDesc': '視窗失焦時的游標樣式',
|
||
'settings.cursor.scrollback': '捲動緩衝區',
|
||
'settings.cursor.scrollbackDesc': '畫面上可往回捲動的行數',
|
||
'settings.cursorStyle.bar': '直線 (bar)',
|
||
'settings.cursorStyle.block': '方塊 (block)',
|
||
'settings.cursorStyle.underline': '底線 (underline)',
|
||
'settings.cursorStyle.outline': '外框 (outline)',
|
||
'settings.cursorStyle.none': '無 (none)',
|
||
'settings.rendererMode.auto': '自動',
|
||
'settings.rendererMode.autoHint': '優先使用 WebGL 加速,失敗時自動退回 DOM 渲染',
|
||
'settings.rendererMode.webgl': '高效能 WebGL',
|
||
'settings.rendererMode.webglHint': '強制使用 GPU 加速渲染,適合高更新率與大量行數捲動',
|
||
'settings.rendererMode.dom': '相容 DOM',
|
||
'settings.rendererMode.domHint': '純 CPU 渲染,相容性最佳,適合沒有 GPU 或遠端桌面的環境',
|
||
'settings.render.modeLabel': '渲染模式',
|
||
'settings.render.modeHint': '終端儲存格的渲染加速方式,變更將套用到所有終端',
|
||
'settings.render.autoWrap': '自動換行',
|
||
'settings.render.autoWrapDesc': '超出寬度時自動折行',
|
||
'settings.render.copyOnSelect': '選取即複製',
|
||
'settings.render.copyOnSelectDesc': '以滑鼠選取文字時自動複製',
|
||
'settings.render.pasteRiskConfirm': '貼上風險確認',
|
||
'settings.render.pasteRiskConfirmDesc': '多行文字(或超長單行)貼上前彈出確認;單行直接貼上',
|
||
'settings.render.suggest': '輸入建議',
|
||
'settings.render.suggestDesc': '輸入時顯示指令建議;Tab 接受,Enter 一律直接執行',
|
||
'settings.render.history': '記錄指令歷史',
|
||
'settings.render.historyDesc': '關閉後不再記錄新指令;已儲存的歷史仍會保留',
|
||
'settings.render.historyLimit': '歷史筆數上限',
|
||
'settings.render.historyLimitDesc': '指令歷史最多保留幾筆,重複的指令只記一次',
|
||
'settings.render.recButton': '終端工具列 · 錄製',
|
||
'settings.render.recButtonDesc': '右上角顯示「記錄工作階段日誌」按鈕',
|
||
'settings.render.openLogsButton': '終端工具列 · 開啟日誌目錄',
|
||
'settings.render.openLogsButtonDesc': '右上角顯示「開啟日誌目錄」按鈕',
|
||
'settings.render.openCwdButton': '終端工具列 · 開啟工作區目錄',
|
||
'settings.render.openCwdButtonDesc':
|
||
'右上角顯示「開啟目前目錄」按鈕(SSH 工作階段不顯示;目錄會隨 cd 即時追蹤,需開啟 shell 整合或使用 cd 指令)',
|
||
'settings.system.launchAtLogin': '開機時自動啟動',
|
||
'settings.system.launchAtLoginDesc': '開機時自動啟動程式(開發模式下註冊的是開發版程式)',
|
||
'settings.system.preventSleep': '防止系統休眠',
|
||
'settings.system.preventSleepDesc':
|
||
'開啟後 OpenTerminal 會防止系統自動休眠;關閉則允許系統依本身的設定休眠',
|
||
'settings.system.restoreSession': '啟動時還原上次工作階段',
|
||
'settings.system.restoreSessionDesc':
|
||
'下次啟動時還原分割版面,並讓每個終端回到上次所在的目錄;關閉則每次都以單一終端啟動',
|
||
'settings.system.shellIntegration': 'Shell 整合',
|
||
'settings.system.shellIntegrationDesc':
|
||
'讓 shell 主動回報工作目錄(OSC 7),路徑記憶更精確(含指令碼內的 cd);會包裝你的命令提示字元,提示字元主題顯示異常時關閉即可',
|
||
'settings.system.closeAction': '關閉按鈕行為',
|
||
'settings.system.closeActionDesc':
|
||
'點擊視窗關閉按鈕時的動作;最小化至系統匣後,可從系統匣圖示的右鍵選單結束',
|
||
'settings.system.closeActionTray': '最小化至系統匣',
|
||
'settings.system.closeActionExit': '直接結束',
|
||
'settings.system.closeActionAsk': '每次詢問',
|
||
'settings.system.globalShortcut': '全域喚出快速鍵',
|
||
'settings.system.globalShortcutDesc': '點擊輸入框後直接按下組合鍵;Esc 取消,Backspace 清除並停用',
|
||
'settings.system.globalShortcutHint':
|
||
'搭配全域鍵可在任何畫面喚出/隱藏視窗;若註冊失敗(與其他軟體衝突)則不會生效,應用程式也不會報錯。',
|
||
'settings.system.shortcutRecording': '請按下組合鍵…',
|
||
'settings.system.shortcutPlaceholder': '點擊後按下快速鍵,留空為停用',
|
||
'settings.system.shortcutConflict':
|
||
'此組合鍵已被應用內快捷鍵佔用(Ctrl+= / Ctrl+- / Ctrl+0 / Ctrl+PgUp / Ctrl+PgDn),請換一個。',
|
||
'settings.resetTerminal': '恢復預設終端設定',
|
||
'settings.resetTerminalTitle': '恢復預設終端設定?',
|
||
'settings.resetTerminalDesc': '字體、游標、渲染與主題等全部終端設定將恢復為預設值。',
|
||
'settings.highlight.alert':
|
||
'自訂高亮可強化顯示效果,但會略微增加效能負擔。規則依優先順序套用。PS:高亮是在寫入終端時注入顏色,對既有的回捲內容不生效',
|
||
'settings.highlight.enabled': '啟用',
|
||
'settings.highlight.pattern': '正規表示式',
|
||
'settings.highlight.patternPlaceholder': '例如 \\b(ERROR|FAILED)\\b',
|
||
'settings.highlight.invalidRegex': '正規表示式無效',
|
||
'settings.highlight.priority': '優先順序',
|
||
'settings.highlight.priorityHint': '值越小越先套用',
|
||
'settings.highlight.color': '顏色',
|
||
'settings.highlight.clearBg': '清除',
|
||
'settings.highlight.addBg': '新增',
|
||
'settings.highlight.palette': '色盤',
|
||
'settings.highlight.note': '備註',
|
||
'settings.highlight.notePlaceholder': '規則說明(選填)',
|
||
'settings.highlight.caseInsensitive': '忽略大小寫',
|
||
'settings.highlight.caseInsensitiveHint': '字母不區分大小寫(OK 也能匹配 ok)',
|
||
'settings.highlight.bands': '數值分級',
|
||
'settings.highlight.bandsHint': '依匹配到的第一個數字取色;沒有數字或低於最小分級時用前景色',
|
||
'settings.highlight.bandMin': '下限',
|
||
'settings.highlight.addBand': '+ 新增分級',
|
||
'settings.highlight.removeBand': '刪除分級',
|
||
'settings.highlight.importExport': '匯入 / 匯出',
|
||
'settings.highlight.importExportTitle': '匯入 / 匯出高亮規則',
|
||
'settings.highlight.exportSection': '匯出(複製或儲存下面的 JSON 分享給別人)',
|
||
'settings.highlight.copy': '複製',
|
||
'settings.highlight.copied': '已複製',
|
||
'settings.highlight.download': '儲存為檔案',
|
||
'settings.highlight.importSection': '匯入(貼上 JSON,或選擇 .json 檔案)',
|
||
'settings.highlight.chooseFile': '選擇檔案',
|
||
'settings.highlight.importMode': '匯入方式',
|
||
'settings.highlight.importReplace': '取代現有規則',
|
||
'settings.highlight.importAppend': '附加到現有規則',
|
||
'settings.highlight.importOk': '匯入',
|
||
'settings.highlight.importEmpty': '沒有解析到可用規則',
|
||
'settings.highlight.importBadJson': '不是有效的 JSON',
|
||
'settings.highlight.importWrongKind': '這份 JSON 不是高亮規則檔案',
|
||
'settings.highlight.importSkipped': '已略過 {n} 條:{list}',
|
||
'settings.highlight.imported': '已匯入 {n} 條規則',
|
||
'settings.highlight.testText': '測試文字',
|
||
'settings.highlight.testHint': '改完正規表示式立刻看到效果(僅預覽前 2000 字元)',
|
||
'settings.highlight.mode': '高亮模式',
|
||
'settings.highlight.modeAll': '全部',
|
||
'settings.highlight.modeBasic': '僅基礎',
|
||
'settings.highlight.modeOff': '關閉',
|
||
'settings.highlight.modeDesc': '僅基礎:只保留錯誤/成功/警告/危險命令/密鑰等關鍵規則,開銷更小;關閉:完全不注入顏色(規則與顏色都保留)',
|
||
'settings.highlight.category': '分類',
|
||
'settings.highlight.groupByCategory': '依分類分組',
|
||
'settings.highlight.category.safety': '安全',
|
||
'settings.highlight.category.status': '狀態',
|
||
'settings.highlight.category.file': '檔案',
|
||
'settings.highlight.category.net': '網路',
|
||
'settings.highlight.category.text': '文字',
|
||
'settings.highlight.category.metric': '數值',
|
||
'settings.highlight.category.none': '未分類',
|
||
'settings.highlight.stats': '統計命中與耗時',
|
||
'settings.highlight.statsHint': '開啟後統計每條規則的命中次數與耗時(設定頁顯示,關閉時零開銷)',
|
||
'settings.highlight.statsHits': '命中',
|
||
'settings.highlight.statsMs': '耗時',
|
||
'settings.highlight.statsReset': '重設統計',
|
||
'settings.highlight.statsEmpty': '還沒有統計資料,先去終端機跑點輸出',
|
||
'settings.highlight.themeColors': '跟隨主題配色',
|
||
'settings.highlight.themeColorsHint': '依色相把高亮顏色對應到目前終端機主題的調色盤(灰階色保持原樣)',
|
||
'settings.highlight.perHost': '依主機規則集',
|
||
'settings.highlight.perHostHint': '開啟後,綁定了規則集的 SSH 連線只跑該子集;關閉時所有工作階段都用全部規則',
|
||
'settings.highlight.profiles': '主機規則集',
|
||
'settings.highlight.profilesHint': '把規則的子集存成命名規則集,在「編輯連線」裡綁定給某台主機',
|
||
'settings.highlight.profileNew': '+ 新增規則集',
|
||
'settings.highlight.profileEdit': '編輯規則集',
|
||
'settings.highlight.profileName': '名稱',
|
||
'settings.highlight.profileNamePlaceholder': '例如:正式機(只看錯誤)',
|
||
'settings.highlight.profileRules': '包含的規則',
|
||
'settings.highlight.profileRulesHint': '未勾選的規則在這台主機上不生效',
|
||
'settings.highlight.profileEmpty': '尚未建立規則集',
|
||
'settings.highlight.profileDeleteTitle': '刪除規則集',
|
||
'settings.highlight.actions': '操作',
|
||
'settings.highlight.addRule': '+ 新增規則',
|
||
'settings.highlight.empty': '尚無高亮規則,點擊「+ 新增規則」建立',
|
||
'settings.highlight.deleteTitle': '刪除高亮規則',
|
||
'settings.highlight.resetTitle': '還原預設高亮規則',
|
||
'settings.highlight.resetDesc': '會將目前所有規則取代為內建預設,無法復原。',
|
||
'settings.highlight.resetOk': '還原',
|
||
'settings.highlight.createTitle': '新增高亮規則',
|
||
'settings.highlight.editTitle': '編輯高亮規則',
|
||
'settings.highlight.builtin.perm': 'Linux 權限與使用者',
|
||
'settings.highlight.builtin.path': 'Linux 檔案路徑',
|
||
'settings.highlight.builtin.shellkw': 'Shell 關鍵字與流程',
|
||
'settings.highlight.builtin.danger': '危險/破壞性命令',
|
||
'settings.highlight.builtin.secret': '疑似密鑰/權杖',
|
||
'settings.highlight.builtin.loglevel': '日誌等級',
|
||
'settings.highlight.builtin.rootat': '管理員提示字元 root@',
|
||
'settings.highlight.builtin.exitcode': '結束碼',
|
||
'settings.highlight.builtin.http': 'HTTP 狀態碼',
|
||
'settings.highlight.builtin.latency': '耗時(毫秒)',
|
||
'settings.highlight.builtin.delop': '刪除/移動/覆蓋操作',
|
||
'settings.highlight.builtin.createop': '新建/建立操作',
|
||
'settings.highlight.builtin.okstate': '成功狀態',
|
||
'settings.highlight.builtin.warnstate': '警告與待辦標記',
|
||
'settings.highlight.builtin.badstate': '錯誤/失敗狀態',
|
||
'settings.highlight.builtin.quoted': '字串與引號',
|
||
'settings.highlight.builtin.envvar': '環境變數與參數',
|
||
'settings.highlight.builtin.ipv4': '網路與 IP 位址',
|
||
'settings.highlight.builtin.datetime': '時間與日期',
|
||
'settings.highlight.builtin.numbers': '數字與計數',
|
||
'settings.highlight.builtin.url': '網址連結',
|
||
'settings.theme.accent': '標籤強調色',
|
||
'settings.theme.accentDesc': '作用中標籤的邊框、側邊欄指示條與 SSH 徽章的強調顏色',
|
||
'settings.theme.backgroundImage': '背景圖片',
|
||
'settings.theme.backgroundImageDesc': '為終端設定一張背景圖片;移除後恢復純色背景',
|
||
'settings.theme.chooseImage': '選擇圖片',
|
||
'settings.theme.clearImage': '移除圖片',
|
||
'settings.theme.imageOpacity': '圖片不透明度',
|
||
'settings.theme.customBadge': '自訂',
|
||
'settings.theme.deleteTitle': '刪除自訂主題',
|
||
'settings.theme.create': '新增主題',
|
||
'settings.theme.editTitle': '編輯主題',
|
||
'settings.themeEditor.name': '名稱',
|
||
'settings.themeEditor.namePlaceholder': '主題名稱',
|
||
'settings.themeEditor.duplicateName': '與其他主題同名,仍可儲存',
|
||
'settings.themeEditor.copySuffix': '(副本)',
|
||
'settings.about.currentVersion': '目前版本',
|
||
'settings.about.statusIdle': '點擊檢查更新',
|
||
'settings.about.statusChecking': '正在檢查更新…',
|
||
'settings.about.statusAvailable': '發現新版本',
|
||
'settings.about.statusLatest': '目前已是最新版本',
|
||
'settings.about.statusDownloading': '正在下載…',
|
||
'settings.about.statusDownloaded': '下載完成,可重新啟動安裝',
|
||
'settings.about.statusError': '檢查失敗',
|
||
'settings.about.statusDev': '開發模式不支援檢查更新',
|
||
'settings.about.channelStable': '穩定更新通道',
|
||
'settings.about.autoCheck': '啟動時自動檢查',
|
||
'settings.about.download': '下載更新',
|
||
'settings.about.downloadGithub': '(GitHub 來源)',
|
||
'settings.about.install': '重新啟動安裝',
|
||
'settings.about.check': '檢查更新',
|
||
'settings.about.checkingButton': '檢查中',
|
||
'settings.about.changelog': '更新日誌',
|
||
'settings.about.changelogEmpty': '暫無更新日誌'
|
||
}
|
||
|
||
export default settings
|