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:
Bill committed 2026-09-20 14:22:29 +08:00
1 parent 34094d607b
commit 4c6a29ef28
82 files changed
+3342 -608

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
# OpenTerminal 更新履歴
## v1.0.13 - 2026-09-20
- 簡体字中国語 / 繁体字中国語 / English / 日本語 に対応。設定 → システム → 表示言語 から切り替え、即時反映され保存されます
- アプリ全体を翻訳:設定の各ページ、ワークスペース、ターミナルの右クリックメニューと検索、SSH 接続管理、ファイルパネル、システムモニター、コマンドパネル、トレイメニューと終了確認
- antd コンポーネントの内蔵文言(空状態・ページネーションなど)も表示言語に追従
- 更新履歴は**アプリに同梱**され、オフラインでも表示できます(ネットワーク不要)
- 更新履歴も多言語対応:現在の表示言語で表示し、未翻訳のバージョンは簡体字中国語にフォールバック
- 「閉じるボタンの動作 = 毎回確認」が機能しない問題を修正(従来は「トレイに最小化」へ無言で書き換えられていました)
- ハイライトルールが形式の問題で無言で破棄されなくなりました:優先度の文字列、0/1 の真偽値、前景色の欠落などは自動修復し、未知のフィールドは保持します
- 設定の解析警告を `settings-warnings.log` に記録し、設定異常を追跡可能にしました
- ターミナル右上のツールバーを設定可能に(設定 → 描画と動作):作業ディレクトリを開く(既定で有効)、セッションログの記録、ログフォルダを開く
- 「作業ディレクトリを開く」:ターミナルの現在のフォルダをエクスプローラーで開きます(`cd` に追従)
- グローバル表示ショートカットを**キー録音式**に変更:入力欄をクリックして組み合わせキーを押すだけ。Esc でキャンセル、Backspace で消去。修飾キーまたはファンクションキーが必要で、通常の文字入力を奪いません
- 「入力候補」「コマンド履歴の記録」は既定でオフ(既存インストールは一度だけリセットされ、以後の手動設定は上書きされません)
- 設定ダイアログの内容欄がスクロールしない問題を修正(antd v6 のコンテナクラス名変更による)。テーマページの二重スクロールバーも解消
- UI 調整:描画モードと言語のボタンを連結セグメント化し、選択時の文字コントラストを修正
リリース時に `scripts/sync-changelog.cjs` が `RELEASE_NOTES.ja.md` をこのファイルへ
マージします。内容はアプリに同梱され、「情報」タブは現在の表示言語の更新履歴を
表示します(未翻訳のバージョンは簡体字中国語にフォールバック)。
## v1.0.12 - 2026-09-20
### ライトテーマのコントラスト修正
- タブバーとサイドバーの色をテーマ背景の明度から算出するように変更:ライトテーマではタブバーがターミナルと同じ色味になり(濁ったグレーの帯が解消)、ダークテーマの見た目は変わりません
- ライトテーマでタブが濃いブロック+白文字になっていた問題を修正:タブの背景と文字をテーマ変数から取得し、非アクティブタブは淡色背景+濃い文字、アクティブタブの文字は自動的に濃くなります
- 設定ダイアログ全体をライトテーマに対応:フォント/ハイライト/テーマ各ページのラベル・説明・表・パレットの文字がテーマの前景色に追従し、明るい背景でも読みやすくなりました
### 安定性
- セッションログの書き込みをファイル単位のバッファ + 単一の書き込みループに変更:大量出力時はまとめて書き込まれ、順序も保証され、書き込み回数に応じて無限に溜まることはなくなりました
- 設定の保存を直列化:トレイからの終了動作の変更と設定画面からの保存が同時でも上書きして更新を失わなくなりました