feat: multi-language interface (zh-CN/zh-TW/en/ja), multilingual offline changelog, settings robustness
i18n - shared/i18n: dependency-free t() with flat per-namespace dictionaries (common/settings/workspace/terminal/ssh/panels/main), zh-CN fallback - language picker in Settings -> System; antd ConfigProvider locale follows it - main process tracks the language too: tray menu, close prompt, ssh/sftp/ zmodem errors and the log TUI marker are translated; tray rebuilds on change changelog - CHANGELOG.md (zh-CN canonical) + .zh-TW/.en/.ja, bundled via ?raw and read per interface language with per-version fallback to zh-CN (no network) - sync-changelog.cjs merges RELEASE_NOTES[.<lang>].md per release; release.cjs refuses to publish without a zh-CN entry for the version settings robustness - closeAction 'ask' survives the sanitizer (was silently coerced to 'tray', which made the 'ask every time' option dead) - highlight rules are repaired instead of dropped: string priority, 0/1 enabled, missing fg colour; unknown fields preserved - load-time warnings are written to settings-warnings.log (deduped, capped) terminal/UI - configurable terminal toolbar: open working directory (default on), session log recording (off), open logs folder (off) - global shortcut field records key combos (modifier or F-key required) - input suggestions + command history default to off, with a one-time reset migration for existing installs - settings dialog scrolling fixed (antd v6 renamed the tabs container), theme gallery nested scrollbar removed, joined segmented pickers with readable selected-state text tests: settings-store.mjs (15 checks) added; commands-store.mjs updated for the new off-by-default history setting
This commit is contained in:
1 parent
34094d607b
commit
4c6a29ef28
82 files changed
+3342
-608
No files matched your search
@@ -0,0 +1,147 @@
|
||||
/** 命名空間: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.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.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.theme.accent': '標籤強調色',
|
||||
'settings.theme.accentDesc': '作用中標籤的邊框、側邊欄指示條與 SSH 徽章的強調顏色',
|
||||
'settings.theme.customBadge': '自訂',
|
||||
'settings.theme.deleteTitle': '刪除自訂主題',
|
||||
'settings.theme.create': '新增主題',
|
||||
'settings.theme.editTitle': '編輯主題',
|
||||
'settings.themeEditor.name': '名稱',
|
||||
'settings.themeEditor.namePlaceholder': '主題名稱',
|
||||
'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
|
||||
Reference in new issue
Block a user