feat(ui): land the centralized shortcuts core from #2532 with review fixes
The schema/config/bindings/registry/dispatcher module, useKeybind hooks, recording dialog, reworked shortcuts settings page, help dialog, and the localized action labels — re-based onto current main rather than merged (the branch predates 440+ commits including the session-tabs shortcuts). Review fixes applied on top of the original: - close_session_tab (alt+w) joins the schema with labels in every locale; it shipped on main after the PR's base and would otherwise silently die. - switch_context_surface's special-case in conflict resolution is now a declared prefixStyle config property instead of a magic id string. - Duplicate handler registration warns in dev builds. - The risky-browser-shortcut warning inspects every chord and covers mod+q/d/h/j/o/u plus mod+shift+w/q. - The dispatcher remembers which target armed a two-chord prefix so the window-level completion handler can distinguish a deliberate sequence from typing in an editable field (guard lands with the dispatch hook). - Schema tests: unique normalized default bindings enforced, and the flat-file-era override format proven to keep resolving.
This commit is contained in:
@@ -1101,7 +1101,7 @@ export const settingsDict = {
|
||||
"settings.openchamber.keyboardShortcuts.overwritePrompt": "Ця комбінація вже використовується іншою комбінацією клавіш. Перезаписати та очистити інше зіставлення?",
|
||||
"settings.openchamber.keyboardShortcuts.field.pressKeys": "Натисніть клавіші...",
|
||||
"settings.openchamber.keyboardShortcuts.error.captureFirst": "Спочатку запишіть комбінацію клавіш.",
|
||||
"settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut": "Ця комбінація клавіш може конфліктувати зі стандартними скороченнями браузера. Її все одно збережено.",
|
||||
"settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut": "Ця комбінація клавіш може конфліктувати зі стандартними скороченнями браузера. Ви все одно можете її зберегти.",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_go_to_line.label": "Перейти до рядка (редактор файлів)",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_command_palette.label": "Відкрити палітру команд",
|
||||
"settings.openchamber.keyboardShortcuts.action.focus_input.label": "Фокус на полі вводу",
|
||||
@@ -1116,6 +1116,7 @@ export const settingsDict = {
|
||||
"settings.openchamber.keyboardShortcuts.action.switch_context_surface.label": "Перемкнути поверхню панелі контексту",
|
||||
"settings.openchamber.keyboardShortcuts.action.switch_context_surface.suffix": " + 1…0",
|
||||
"settings.openchamber.keyboardShortcuts.action.new_chat.label": "Нова сесія",
|
||||
"settings.openchamber.keyboardShortcuts.action.close_session_tab.label": "Закрити вкладку сесії",
|
||||
"settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label": "Нова чернетка worktree",
|
||||
"settings.openchamber.keyboardShortcuts.action.new_mini_chat.label": "Нове вікно Mini Chat",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_help.label": "Відкрити комбінації клавіш",
|
||||
@@ -1130,6 +1131,27 @@ export const settingsDict = {
|
||||
"settings.openchamber.keyboardShortcuts.action.expand_input.label": "Розгорнути введення",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label": "Відкрити хронологію розмови",
|
||||
"settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label": "Показати або приховати навігатор промптів",
|
||||
"settings.openchamber.keyboardShortcuts.warning.contextualPrefix": "Ця послідовність має спільний контекстний префікс із дією {action}. Коли її контекст активний, ця дія має пріоритет.",
|
||||
"settings.openchamber.keyboardShortcuts.category.session": "Керування сесією",
|
||||
"settings.openchamber.keyboardShortcuts.category.models": "Моделі й агенти",
|
||||
"settings.openchamber.keyboardShortcuts.category.panels": "Панелі та інструменти",
|
||||
"settings.openchamber.keyboardShortcuts.category.navigation": "Навігація",
|
||||
"settings.openchamber.keyboardShortcuts.category.application": "Застосунок",
|
||||
"settings.openchamber.keyboardShortcuts.actions.edit": "Редагувати",
|
||||
"settings.openchamber.keyboardShortcuts.actions.confirm": "Підтвердити",
|
||||
"settings.openchamber.keyboardShortcuts.dialog.title": "Редагувати {action}",
|
||||
"settings.openchamber.keyboardShortcuts.dialog.instructions": "Натисніть до двох комбінацій клавіш, не більше трьох клавіш у кожній. Після першої зачекайте до 3 секунд на другу комбінацію. Виберіть Підтвердити, щоб застосувати, або Скасувати, щоб відхилити. Backspace видаляє останню.",
|
||||
"settings.openchamber.keyboardShortcuts.dialog.firstChord": "Перша комбінація",
|
||||
"settings.openchamber.keyboardShortcuts.dialog.secondChord": "Друга комбінація",
|
||||
"settings.openchamber.keyboardShortcuts.dialog.recording": "Натисніть клавіші…",
|
||||
"settings.openchamber.keyboardShortcuts.unassigned": "Не призначено",
|
||||
"settings.openchamber.keyboardShortcuts.error.prefixConflict": "Це конфліктує з послідовністю, яку використовує {action}. Виберіть іншу комбінацію.",
|
||||
"settings.openchamber.keyboardShortcuts.error.exactConflict": "Цю комбінацію вже використовує {action}.",
|
||||
"settings.openchamber.keyboardShortcuts.error.internalConflict": "Ця комбінація конфліктує з вбудованим скороченням, яке не можна замінити.",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_draft_project_picker.label": "Відкрити вибір проєкту чернетки",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_draft_worktree_picker.label": "Відкрити вибір worktree чернетки",
|
||||
"settings.openchamber.keyboardShortcuts.action.open_session_list.label": "Відкрити останні сесії",
|
||||
"settings.openchamber.keyboardShortcuts.action.toggle_dictation.label": "Голосове введення",
|
||||
"settings.projects.sidebar.total": "Усього {count}",
|
||||
"settings.projects.sidebar.actions.addProject": "Додати проєкт",
|
||||
"settings.projects.page.empty.noProjects": "Немає доступних проєктів.",
|
||||
|
||||
Reference in New Issue
Block a user