feat: move snippets, keybinding actions and macros out of core into plugins

This commit is contained in:
LukeGus committed 2026-09-29 11:39:14 -05:00
1 parent d9bba10612
commit e0c30a4e6f
262 files changed
+9091 -10744

No files matched your search

+1 -229
View File
@@ -409,7 +409,6 @@
"sidebarSettings": "Налаштування бічної панелі...",
"hosts": "Хости",
"snippets": "Фрагменти",
"macros": "Макроси",
"hostManager": "Менеджер хостингу",
"credentials": "Облікові дані",
"connections": "З'єднання",
@@ -869,7 +868,6 @@
"groupTags": "Теги та закріплення",
"groupTunnels": "Тунелі",
"groupJumpHosts": "Хости Jump",
"groupQuickActions": "Швидкі дії",
"groupFeatureFlags": "Прапорці функцій",
"groupAdvanced": "Розширена конфігурація",
"preview": "Попередній перегляд",
@@ -1068,9 +1066,6 @@
"addCredentialDesc": "Зберігайте SSH-ключі або паролі",
"tmuxMonitor": "Монітор Tmux",
"tmuxMonitorDesc": "Моніторинг сесій tmux на ваших хостах",
"snippets": "Фрагменти",
"runSnippetDesc": "Запустити в активній вкладці терміналу",
"noSnippetsFound": "Не знайдено фрагментів, що відповідають \"{{search}}\"",
"recentActivity": "Нещодавня активність",
"serversAndHosts": "Сервери та хости",
"noHostsFound": "Не знайдено хостів, що відповідають \"{{search}}\"",
@@ -1864,119 +1859,6 @@
"hotkeysPrevTab": "Попередня вкладка",
"hotkeysJumpTab": "Перейти до вкладки"
},
"snippets": {
"title": "Фрагменти",
"createSnippetTitle": "Створити фрагмент",
"createSnippetDescription": "Створіть новий фрагмент команди для швидкого виконання",
"nameLabel": "Ім'я",
"namePlaceholder": "наприклад, перезавантажте Nginx",
"descriptionLabel": "Опис",
"descriptionPlaceholder": "Додатковий опис",
"optional": "Необов'язково",
"folderLabel": "Папка",
"noFolder": "Немає папки (Без категорії)",
"commandLabel": "Команда",
"commandPlaceholder": "наприклад, sudo systemctl перезавантажити nginx",
"typeLabel": "Тип",
"typeCommand": "Команда",
"typeNote": "Примітка",
"noteLabel": "Примітка",
"notePlaceholder": "наприклад, текст нагадування або підказки для повторного використання",
"cancel": "Скасувати",
"createSnippetButton": "Створити фрагмент",
"createFolderTitle": "Створити папку",
"createFolderDescription": "Упорядкуйте свої фрагменти коду в папки",
"folderNameLabel": "Назва папки",
"folderNamePlaceholder": "наприклад, системні команди, скрипти Docker",
"folderColorLabel": "Колір папки",
"folderIconLabel": "Піктограма папки",
"previewLabel": "Попередній перегляд",
"folderNameFallback": "Назва папки",
"createFolderButton": "Створити папку",
"targetTerminals": "Цільові термінали",
"selectAll": "Усі",
"selectNone": "Жоден",
"noTerminalTabsOpen": "Немає відкритих вкладок терміналу",
"searchPlaceholder": "Пошук фрагментів...",
"newSnippet": "Новий фрагмент",
"newFolder": "Нова папка",
"run": "Бігти",
"noSnippetsInFolder": "У цій папці немає фрагментів",
"uncategorized": "Без категорії",
"editSnippetTitle": "Редагувати фрагмент",
"editSnippetDescription": "Оновіть цей фрагмент команди",
"saveSnippetButton": "Зберегти зміни",
"createSuccess": "Фрагмент успішно створено",
"createFailed": "Не вдалося створити фрагмент",
"updateSuccess": "Фрагмент успішно оновлено",
"updateFailed": "Не вдалося оновити фрагмент",
"deleteFailed": "Не вдалося видалити фрагмент",
"folderCreateSuccess": "Папку успішно створено",
"folderCreateFailed": "Не вдалося створити папку",
"editFolderTitle": "Редагувати папку",
"editFolderDescription": "Перейменуйте або змініть зовнішній вигляд цієї папки",
"saveFolderButton": "Зберегти зміни",
"editFolder": "Редагувати папку",
"deleteFolder": "Видалити папку",
"folderDeleteSuccess": "Папку «{{name}}» видалено",
"folderDeleteFailed": "Не вдалося видалити папку",
"folderEditSuccess": "Папку успішно оновлено",
"folderEditFailed": "Не вдалося оновити папку",
"confirmRunMessage": "Запустити \"{{name}}\"?",
"confirmRunButton": "Бігти",
"runSuccess": "Виконано \"{{name}}\" у {{count}} терміналі(ах)",
"pasteSuccess": "Вставлено \"{{name}}\" у термінал(и) {{count}}",
"pasteToTerminal": "Вставити",
"copySuccess": "Скопійовано \"{{name}}\" у буфер обміну",
"shareTitle": "Поділитися фрагментом",
"shareUser": "Користувач",
"shareRole": "Роль",
"selectUser": "Виберіть користувача...",
"selectRole": "Виберіть роль...",
"shareSuccess": "Фрагмент успішно поділився",
"shareFailed": "Не вдалося поділитися фрагментом",
"revokeSuccess": "Доступ скасовано",
"revokeFailed": "Не вдалося скасувати доступ",
"currentAccess": "Поточний доступ",
"shareLoadError": "Не вдалося завантажити дані спільного доступу",
"loading": "Завантаження...",
"close": "Закрити",
"reorderFailed": "Не вдалося зберегти порядок фрагментів",
"importExport": "Імпорт / Експорт",
"exportBtn": "Експорт JSON",
"importBtn": "Імпорт JSON",
"exportSuccess": "Фрагменти успішно експортовано",
"exportFailed": "Не вдалося експортувати фрагменти",
"importTitle": "Імпорт фрагментів",
"importDescription": "Імпорт фрагментів та папок з JSON-файлу, експортованого Termix",
"importDropOrClick": "Перетягніть сюди JSON-файл або натисніть, щоб переглянути",
"importSelectedFile": "Вибрано: {{name}}",
"importOverwrite": "Перезаписати існуючі фрагменти з тією ж назвою та папкою",
"importStartBtn": "Імпорт",
"importSuccess": "Імпорт завершено: додано {{snippets}} фрагментів, оновлено {{updated}} , пропущено {{skipped}} , додано папок {{folders}}",
"importFailed": "Не вдалося імпортувати фрагменти",
"importInvalidFile": "Недійсний файл: очікується об'єкт JSON з фрагментами або масивами папок",
"targetHostsLabel": "Цільові хости",
"targetHostsHint": "Призначте хости для запуску цього фрагмента коду безпосередньо без відкритого терміналу.",
"noHostsAvailable": "Немає налаштованих хостів",
"clearTargetHosts": "Очистити все",
"hasTargetHosts": "Має цільові хости",
"runOnTargets": "Біг за цілями",
"directRunSuccess": "Виконано \"{{name}}\" на хості(ах) {{count}}",
"directRunPartialFail": "«{{name}}» не вдалося виконати на одному або кількох хостах",
"executionResultTitle": "Результати виконання: {{name}}",
"executionResultDescription": "Вивідні дані запуску фрагмента коду на кожному цільовому хості.",
"executionSuccess": "Успіх",
"executionFailed": "Не вдалося",
"expandAll": "Розгорнути всі папки",
"collapseAll": "Згорнути всі папки",
"settings": "Налаштування фрагмента",
"variablesHint": "Змінні: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Мітка}",
"variablesDialogTitle": "Виконати \"{{name}}\"",
"variablesDialogDescription": "Заповніть значення, необхідні цьому фрагменту, перш ніж запускати його.",
"variablesPreviewLabel": "Попередній перегляд",
"variablesConfirmButton": "Бігти"
},
"keybindings": {
"title": "Комбінації клавіш",
"description": "Налаштуйте комбінації клавіш для копіювання, вставки та керування терміналом або прив’яжіть клавіші для надсилання тексту чи запуску фрагмента коду.",
@@ -2000,26 +1882,11 @@
"pressKeysPlaceholder": "Клацайте та натискайте клавіші",
"recording": "Натискайте клавіші...",
"comboRequiredError": "Спочатку натисніть комбінацію клавіш",
"textRequiredError": "Введіть текст для надсилання",
"controlCodeRequiredError": "Введіть одну літеру для контрольного коду",
"snippetRequiredError": "Виберіть фрагмент",
"conflictWarning": "Ця комбінація вже пов'язана з {{combo}}. Збереження призведе до спрацювання обох.",
"actionLabel": "Дія",
"actionCopy": "Копіювати виділення",
"actionPaste": "Вставити",
"actionSendControlCode": "Надіслати сигнал Ctrl+літера",
"actionSendText": "Надіслати текст",
"actionRunSnippet": "Запустити існуючий фрагмент коду",
"actionNextTab": "Перейти до наступної вкладки",
"actionPreviousTab": "Перейти до попередньої вкладки",
"actionOpenCommandPalette": "Відкрити швидкий пошук",
"controlCodeLabel": "Лист",
"textLabel": "Текст для надсилання",
"appendEnterLabel": "Натисніть Enter після відправлення",
"snippetLabel": "Фрагмент",
"selectSnippetPlaceholder": "Виберіть фрагмент",
"orphanedSnippetWarning": "фрагмент не знайдено",
"clipboardPermissionNote": "У деяких браузерах може запитуватися дозвіл на використання буфера обміну під час першого використання."
"actionOpenCommandPalette": "Відкрити швидкий пошук"
},
"userProfile": {
"donateTitle": "Збережи Термікс живим",
@@ -2240,100 +2107,5 @@
"ntfyTopicRequired": "Тема обов'язкова",
"ntfyToken": "Маркер доступу (необов'язково)",
"channelSaveFailed": "Не вдалося зберегти канал"
},
"macros": {
"title": "Макроси",
"description": "Виконайте збережену серію команд у терміналі та відреагуйте на те, що надсилає сервер.",
"target": "Ціль",
"noTerminal": "Термінал не відкритий",
"empty": "Поки що немає макросів",
"emptyHint": "Створіть макрос для автоматизації процесу роботи термінала, такого як вхід у систему, перезапуск служби або відповідь на запити.",
"create": "Новий макрос",
"back": "Повернутися до макросів",
"name": "Ім'я",
"namePlaceholder": "Перезапустіть веб-сервер",
"nameRequired": "Введіть ім'я макросу перед збереженням",
"descriptionLabel": "Опис",
"descriptionPlaceholder": "Що робить цей макрос (необов'язково)",
"unsaved": "Незбережені зміни",
"save": "Зберегти",
"saved": "Макрос збережено",
"saveFailed": "Не вдалося зберегти макрос",
"delete": "Видалити",
"deleteTitle": "Видалити цей макрос?",
"deleteBody": "«{{name}}» буде видалено назавжди. Цю дію неможливо скасувати.",
"deleted": "Макрос видалено",
"cancel": "Скасувати",
"run": "Бігти",
"stop": "СТІЙ",
"running": "Біг...",
"completed": "Макрос завершено",
"failed": "Помилка макросу",
"loadFailed": "Не вдалося завантажити макроси",
"needTerminal": "Спочатку відкрийте та підключіть термінал",
"noSteps": "Цей макрос ще не має кроків. Додайте один нижче.",
"addStep": "Додати крок",
"stepNumber": "Крок {{number}}",
"removeStep": "Видалити крок",
"confirmRunTitle": "Запустити цей макрос?",
"confirmRunBody": "\"{{name}}\" надсилатиме команди до {{host}}.",
"confirmRunAction": "Запустити макрос",
"stepTypes": {
"send": {
"label": "Надіслати команду",
"help": "Вводить текст у термінал так само, як і надруковано."
},
"wait": {
"label": "Зачекайте на вивід",
"help": "Призупиняється, доки сервер не надрукує вказаний вами текст, наприклад, запит на пароль."
},
"delay": {
"label": "Пауза",
"help": "Очікує фіксований проміжок часу перед наступним кроком."
},
"if": {
"label": "Якщо вихід містить",
"help": "Перевіряє все, що сервер надрукував до цього часу, а потім запускає одну з двох гілок."
},
"repeat": {
"label": "Повторити",
"help": "Виконує кроки всередині нього задану кількість разів."
}
},
"send": {
"text": "Команда або текст",
"textPlaceholder": "перезапуск systemctl nginx",
"pressEnter": "Натисніть Enter після відправлення",
"pressEnterHelp": "Вимкніть цю функцію, щоб вводити текст, не надсилаючи його."
},
"wait": {
"pattern": "Зачекайте, поки вихідні дані міститимуть",
"patternPlaceholder": "пароль:",
"timeout": "Здайся після",
"onTimeout": "Якщо воно ніколи не з'явиться",
"stop": "Зупинити макрос",
"continue": "Продовжуй у будь-якому разі"
},
"delay": {
"duration": "Зачекайте"
},
"ifStep": {
"pattern": "Якщо вихід містить",
"patternPlaceholder": "Активний: активний (працює)",
"then": "Тоді зробіть це",
"else": "Інакше зробіть це",
"emptyBranch": "Без сходинок"
},
"repeat": {
"count": "Кількість разів",
"times": "рази"
},
"match": {
"useRegex": "Зіставлення з регулярним виразом",
"useRegexHelp": "Не виключайте це, щоб текст точно відповідав написаному.",
"invalidRegex": "Недійсний регулярний вираз, буде знайдено звичайний текст"
},
"seconds": "секунди",
"secondsShort": "{{count}}с"
}
}