mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-09-21 11:11:26 -03:00
feat(ui): improve discoverability of hidden interactions
- Expand onboarding tour from 8 to 11 steps: marquee drag-select, drag card to sidebar folder, and the three context menus (card / bulk / global); enrich bulk-mode step with range-select and exit tips - Add Replay Tutorial button to help modal Getting Started tab - Add Shortcuts cheat-sheet tab to help modal, opened directly via the '?' key when not typing - Fix trigger-word tooltip to mention double-click to edit - Keep checkpoint/embedding send tooltips truthful (no replace mode) Sync new i18n keys to all locales (placeholders pending translation)
This commit is contained in:
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "Kontextmenü",
|
"title": "Kontextmenü",
|
||||||
"content": "<strong>Rechtsklick</strong> auf eine Modellkarte öffnet ein Kontextmenü mit weiteren Aktionen."
|
"content": "<strong>Rechtsklick</strong> auf eine Modellkarte öffnet ein Kontextmenü mit weiteren Aktionen."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "Tippen zum Hinzufügen oder klicken Sie auf Vorschläge unten",
|
"addPlaceholder": "Tippen zum Hinzufügen oder klicken Sie auf Vorschläge unten",
|
||||||
"editWord": "Trigger Word bearbeiten",
|
"editWord": "Trigger Word bearbeiten",
|
||||||
"editPlaceholder": "Trigger Word bearbeiten",
|
"editPlaceholder": "Trigger Word bearbeiten",
|
||||||
"copyWord": "Trigger Word kopieren",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "Trigger Word löschen",
|
"deleteWord": "Trigger Word löschen",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "Keine Vorschläge verfügbar",
|
"noSuggestions": "Keine Vorschläge verfügbar",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "Erste Schritte",
|
"gettingStarted": "Erste Schritte",
|
||||||
"updateVlogs": "Update-Vlogs",
|
"updateVlogs": "Update-Vlogs",
|
||||||
"documentation": "Dokumentation"
|
"documentation": "Dokumentation",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "Erste Schritte mit LoRA Manager"
|
"title": "Erste Schritte mit LoRA Manager",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "Neueste Updates",
|
"title": "Neueste Updates",
|
||||||
|
|||||||
+55
-5
@@ -96,7 +96,7 @@
|
|||||||
},
|
},
|
||||||
"bulk": {
|
"bulk": {
|
||||||
"title": "Bulk Operations",
|
"title": "Bulk Operations",
|
||||||
"content": "Enter bulk mode by clicking this button or pressing <span class=\"onboarding-shortcut\">B</span>. Select multiple models and perform batch operations. Use <span class=\"onboarding-shortcut\">Ctrl+A</span> to select all visible models."
|
"content": "Enter bulk mode by clicking this button or pressing <span class=\"onboarding-shortcut\">B</span> to select multiple models and perform batch operations.<br>• <span class=\"onboarding-shortcut\">Ctrl/Cmd+A</span> select all visible models, <span class=\"onboarding-shortcut\">Shift+Click</span> select a range.<br>• <span class=\"onboarding-shortcut\">Esc</span> or clicking an empty area exits bulk mode."
|
||||||
},
|
},
|
||||||
"searchOptions": {
|
"searchOptions": {
|
||||||
"title": "Search Options",
|
"title": "Search Options",
|
||||||
@@ -116,7 +116,19 @@
|
|||||||
},
|
},
|
||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "Context Menu",
|
"title": "Context Menu",
|
||||||
"content": "<strong>Right-click</strong> any model card for a context menu with additional actions."
|
"content": "<strong>Right-click</strong> any model card for a context menu with card actions like moving, deleting, or editing metadata."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "Drag to Select",
|
||||||
|
"content": "Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "Organize by Dragging",
|
||||||
|
"content": "Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "More Context Menus",
|
||||||
|
"content": "In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "Type to add or click suggestions below",
|
"addPlaceholder": "Type to add or click suggestions below",
|
||||||
"editWord": "Edit trigger word",
|
"editWord": "Edit trigger word",
|
||||||
"editPlaceholder": "Edit trigger word",
|
"editPlaceholder": "Edit trigger word",
|
||||||
"copyWord": "Copy trigger word",
|
"copyOrEditWord": "Click to copy, double-click to edit",
|
||||||
"deleteWord": "Delete trigger word",
|
"deleteWord": "Delete trigger word",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "No suggestions available",
|
"noSuggestions": "No suggestions available",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "Getting Started",
|
"gettingStarted": "Getting Started",
|
||||||
"updateVlogs": "Update Vlogs",
|
"updateVlogs": "Update Vlogs",
|
||||||
"documentation": "Documentation"
|
"documentation": "Documentation",
|
||||||
|
"shortcuts": "Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "Getting Started with LoRA Manager"
|
"title": "Getting Started with LoRA Manager",
|
||||||
|
"replayTutorial": "Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "General",
|
||||||
|
"selection": "Selection & Bulk Mode",
|
||||||
|
"navigation": "Navigation",
|
||||||
|
"modelModal": "Model / Recipe Modal",
|
||||||
|
"mediaViewer": "Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "Click",
|
||||||
|
"drag": "Drag",
|
||||||
|
"rightClick": "Right-click",
|
||||||
|
"letter": "Letter",
|
||||||
|
"swipe": "Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "Focus search",
|
||||||
|
"closeModal": "Close modal / panel",
|
||||||
|
"openShortcuts": "Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "Toggle bulk mode",
|
||||||
|
"selectAll": "Select all visible models",
|
||||||
|
"rangeSelect": "Range select",
|
||||||
|
"marqueeSelect": "Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "Exit bulk mode",
|
||||||
|
"bulkActions": "On selected card: bulk actions menu",
|
||||||
|
"globalActions": "On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "Scroll pages",
|
||||||
|
"jumpAlphabet": "Jump alphabet bar",
|
||||||
|
"prevNext": "Previous / next model",
|
||||||
|
"deleteEntry": "Delete",
|
||||||
|
"cycleMedia": "Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "Cycle media on touch devices",
|
||||||
|
"closeViewer": "Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "Latest Updates",
|
"title": "Latest Updates",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "Menú contextual",
|
"title": "Menú contextual",
|
||||||
"content": "<strong>Clic derecho</strong> en cualquier tarjeta de modelo para ver un menú contextual con acciones adicionales."
|
"content": "<strong>Clic derecho</strong> en cualquier tarjeta de modelo para ver un menú contextual con acciones adicionales."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "Escribe para añadir o haz clic en sugerencias de abajo",
|
"addPlaceholder": "Escribe para añadir o haz clic en sugerencias de abajo",
|
||||||
"editWord": "Editar palabra de activación",
|
"editWord": "Editar palabra de activación",
|
||||||
"editPlaceholder": "Editar palabra de activación",
|
"editPlaceholder": "Editar palabra de activación",
|
||||||
"copyWord": "Copiar palabra de activación",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "Eliminar palabra de activación",
|
"deleteWord": "Eliminar palabra de activación",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "No hay sugerencias disponibles",
|
"noSuggestions": "No hay sugerencias disponibles",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "Comenzando",
|
"gettingStarted": "Comenzando",
|
||||||
"updateVlogs": "Vlogs de actualización",
|
"updateVlogs": "Vlogs de actualización",
|
||||||
"documentation": "Documentación"
|
"documentation": "Documentación",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "Comenzando con el gestor de LoRA"
|
"title": "Comenzando con el gestor de LoRA",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "Últimas actualizaciones",
|
"title": "Últimas actualizaciones",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "Menu contextuel",
|
"title": "Menu contextuel",
|
||||||
"content": "<strong>Clic droit</strong> sur une carte de modèle pour accéder à un menu contextuel avec des actions supplémentaires."
|
"content": "<strong>Clic droit</strong> sur une carte de modèle pour accéder à un menu contextuel avec des actions supplémentaires."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "Tapez pour ajouter ou cliquez sur les suggestions ci-dessous",
|
"addPlaceholder": "Tapez pour ajouter ou cliquez sur les suggestions ci-dessous",
|
||||||
"editWord": "Modifier le mot-clé",
|
"editWord": "Modifier le mot-clé",
|
||||||
"editPlaceholder": "Modifier le mot-clé",
|
"editPlaceholder": "Modifier le mot-clé",
|
||||||
"copyWord": "Copier le mot-clé",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "Supprimer le mot-clé",
|
"deleteWord": "Supprimer le mot-clé",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "Aucune suggestion disponible",
|
"noSuggestions": "Aucune suggestion disponible",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "Commencer",
|
"gettingStarted": "Commencer",
|
||||||
"updateVlogs": "Vlogs de mise à jour",
|
"updateVlogs": "Vlogs de mise à jour",
|
||||||
"documentation": "Documentation"
|
"documentation": "Documentation",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "Premiers pas avec le Gestionnaire LoRA"
|
"title": "Premiers pas avec le Gestionnaire LoRA",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "Dernières mises à jour",
|
"title": "Dernières mises à jour",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "תפריט הקשר",
|
"title": "תפריט הקשר",
|
||||||
"content": "<strong>לחיצה ימנית</strong> על כל כרטיס מודל לתפריט הקשר עם פעולות נוספות."
|
"content": "<strong>לחיצה ימנית</strong> על כל כרטיס מודל לתפריט הקשר עם פעולות נוספות."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "הקלד להוספה או לחץ על הצעות למטה",
|
"addPlaceholder": "הקלד להוספה או לחץ על הצעות למטה",
|
||||||
"editWord": "עריכת מילת טריגר",
|
"editWord": "עריכת מילת טריגר",
|
||||||
"editPlaceholder": "עריכת מילת טריגר",
|
"editPlaceholder": "עריכת מילת טריגר",
|
||||||
"copyWord": "העתק מילת טריגר",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "מחק מילת טריגר",
|
"deleteWord": "מחק מילת טריגר",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "אין הצעות זמינות",
|
"noSuggestions": "אין הצעות זמינות",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "תחילת עבודה",
|
"gettingStarted": "תחילת עבודה",
|
||||||
"updateVlogs": "בלוגי וידאו של עדכונים",
|
"updateVlogs": "בלוגי וידאו של עדכונים",
|
||||||
"documentation": "תיעוד"
|
"documentation": "תיעוד",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "תחילת עבודה עם מנהל LoRA"
|
"title": "תחילת עבודה עם מנהל LoRA",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "עדכונים אחרונים",
|
"title": "עדכונים אחרונים",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "コンテキストメニュー",
|
"title": "コンテキストメニュー",
|
||||||
"content": "<strong>モデルカードを右クリック</strong>すると追加の操作ができるコンテキストメニューが表示されます。"
|
"content": "<strong>モデルカードを右クリック</strong>すると追加の操作ができるコンテキストメニューが表示されます。"
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "入力して追加するか、下の提案をクリック",
|
"addPlaceholder": "入力して追加するか、下の提案をクリック",
|
||||||
"editWord": "トリガーワードを編集",
|
"editWord": "トリガーワードを編集",
|
||||||
"editPlaceholder": "トリガーワードを編集",
|
"editPlaceholder": "トリガーワードを編集",
|
||||||
"copyWord": "トリガーワードをコピー",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "トリガーワードを削除",
|
"deleteWord": "トリガーワードを削除",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "提案はありません",
|
"noSuggestions": "提案はありません",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "はじめに",
|
"gettingStarted": "はじめに",
|
||||||
"updateVlogs": "更新Vlog",
|
"updateVlogs": "更新Vlog",
|
||||||
"documentation": "ドキュメント"
|
"documentation": "ドキュメント",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "LoRA Managerを始める"
|
"title": "LoRA Managerを始める",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "最新の更新",
|
"title": "最新の更新",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "컨텍스트 메뉴",
|
"title": "컨텍스트 메뉴",
|
||||||
"content": "<strong>오른쪽 클릭</strong>으로 모델 카드의 추가 작업 메뉴를 사용할 수 있습니다."
|
"content": "<strong>오른쪽 클릭</strong>으로 모델 카드의 추가 작업 메뉴를 사용할 수 있습니다."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "입력하거나 아래 제안을 클릭하세요",
|
"addPlaceholder": "입력하거나 아래 제안을 클릭하세요",
|
||||||
"editWord": "트리거 단어 편집",
|
"editWord": "트리거 단어 편집",
|
||||||
"editPlaceholder": "트리거 단어 편집",
|
"editPlaceholder": "트리거 단어 편집",
|
||||||
"copyWord": "트리거 단어 복사",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "트리거 단어 삭제",
|
"deleteWord": "트리거 단어 삭제",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "사용 가능한 제안이 없습니다",
|
"noSuggestions": "사용 가능한 제안이 없습니다",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "시작하기",
|
"gettingStarted": "시작하기",
|
||||||
"updateVlogs": "업데이트 영상",
|
"updateVlogs": "업데이트 영상",
|
||||||
"documentation": "문서"
|
"documentation": "문서",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "LoRA Manager 시작하기"
|
"title": "LoRA Manager 시작하기",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "최신 업데이트",
|
"title": "최신 업데이트",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "Контекстное меню",
|
"title": "Контекстное меню",
|
||||||
"content": "<strong>Правый клик</strong> по карточке модели откроет контекстное меню с дополнительными действиями."
|
"content": "<strong>Правый клик</strong> по карточке модели откроет контекстное меню с дополнительными действиями."
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "Введите для добавления или нажмите на предложения ниже",
|
"addPlaceholder": "Введите для добавления или нажмите на предложения ниже",
|
||||||
"editWord": "Редактировать триггерное слово",
|
"editWord": "Редактировать триггерное слово",
|
||||||
"editPlaceholder": "Редактировать триггерное слово",
|
"editPlaceholder": "Редактировать триггерное слово",
|
||||||
"copyWord": "Копировать триггерное слово",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "Удалить триггерное слово",
|
"deleteWord": "Удалить триггерное слово",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "Предложения недоступны",
|
"noSuggestions": "Предложения недоступны",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "Начало работы",
|
"gettingStarted": "Начало работы",
|
||||||
"updateVlogs": "Видео обновлений",
|
"updateVlogs": "Видео обновлений",
|
||||||
"documentation": "Документация"
|
"documentation": "Документация",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "Начало работы с LoRA Manager"
|
"title": "Начало работы с LoRA Manager",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "Последние обновления",
|
"title": "Последние обновления",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "右键菜单",
|
"title": "右键菜单",
|
||||||
"content": "<strong>右键点击</strong>任意模型卡片可打开更多操作菜单。"
|
"content": "<strong>右键点击</strong>任意模型卡片可打开更多操作菜单。"
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "输入或点击下方建议添加",
|
"addPlaceholder": "输入或点击下方建议添加",
|
||||||
"editWord": "编辑触发词",
|
"editWord": "编辑触发词",
|
||||||
"editPlaceholder": "编辑触发词",
|
"editPlaceholder": "编辑触发词",
|
||||||
"copyWord": "复制触发词",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "删除触发词",
|
"deleteWord": "删除触发词",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "暂无建议",
|
"noSuggestions": "暂无建议",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "新手入门",
|
"gettingStarted": "新手入门",
|
||||||
"updateVlogs": "更新日志",
|
"updateVlogs": "更新日志",
|
||||||
"documentation": "文档"
|
"documentation": "文档",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "LoRA 管理器新手入门"
|
"title": "LoRA 管理器新手入门",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "最新更新",
|
"title": "最新更新",
|
||||||
|
|||||||
+53
-3
@@ -117,6 +117,18 @@
|
|||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
"title": "右鍵選單",
|
"title": "右鍵選單",
|
||||||
"content": "<strong>右鍵點擊</strong>任一模型卡片可開啟更多操作選單。"
|
"content": "<strong>右鍵點擊</strong>任一模型卡片可開啟更多操作選單。"
|
||||||
|
},
|
||||||
|
"marqueeSelect": {
|
||||||
|
"title": "[TODO: Translate] Drag to Select",
|
||||||
|
"content": "[TODO: Translate] Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once."
|
||||||
|
},
|
||||||
|
"dragToSidebar": {
|
||||||
|
"title": "[TODO: Translate] Organize by Dragging",
|
||||||
|
"content": "[TODO: Translate] Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode."
|
||||||
|
},
|
||||||
|
"contextMenus": {
|
||||||
|
"title": "[TODO: Translate] More Context Menus",
|
||||||
|
"content": "[TODO: Translate] In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1629,7 +1641,7 @@
|
|||||||
"addPlaceholder": "輸入或點擊下方建議",
|
"addPlaceholder": "輸入或點擊下方建議",
|
||||||
"editWord": "編輯觸發詞",
|
"editWord": "編輯觸發詞",
|
||||||
"editPlaceholder": "編輯觸發詞",
|
"editPlaceholder": "編輯觸發詞",
|
||||||
"copyWord": "複製觸發詞",
|
"copyOrEditWord": "[TODO: Translate] Click to copy, double-click to edit",
|
||||||
"deleteWord": "刪除觸發詞",
|
"deleteWord": "刪除觸發詞",
|
||||||
"suggestions": {
|
"suggestions": {
|
||||||
"noSuggestions": "無可用建議",
|
"noSuggestions": "無可用建議",
|
||||||
@@ -1954,10 +1966,48 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"gettingStarted": "快速開始",
|
"gettingStarted": "快速開始",
|
||||||
"updateVlogs": "更新影片",
|
"updateVlogs": "更新影片",
|
||||||
"documentation": "文件"
|
"documentation": "文件",
|
||||||
|
"shortcuts": "[TODO: Translate] Shortcuts"
|
||||||
},
|
},
|
||||||
"gettingStarted": {
|
"gettingStarted": {
|
||||||
"title": "LoRA 管理器快速開始"
|
"title": "LoRA 管理器快速開始",
|
||||||
|
"replayTutorial": "[TODO: Translate] Replay Tutorial"
|
||||||
|
},
|
||||||
|
"shortcuts": {
|
||||||
|
"title": "[TODO: Translate] Keyboard & Mouse Shortcuts",
|
||||||
|
"groups": {
|
||||||
|
"general": "[TODO: Translate] General",
|
||||||
|
"selection": "[TODO: Translate] Selection & Bulk Mode",
|
||||||
|
"navigation": "[TODO: Translate] Navigation",
|
||||||
|
"modelModal": "[TODO: Translate] Model / Recipe Modal",
|
||||||
|
"mediaViewer": "[TODO: Translate] Media Viewer / Showcase"
|
||||||
|
},
|
||||||
|
"keys": {
|
||||||
|
"click": "[TODO: Translate] Click",
|
||||||
|
"drag": "[TODO: Translate] Drag",
|
||||||
|
"rightClick": "[TODO: Translate] Right-click",
|
||||||
|
"letter": "[TODO: Translate] Letter",
|
||||||
|
"swipe": "[TODO: Translate] Swipe"
|
||||||
|
},
|
||||||
|
"entries": {
|
||||||
|
"focusSearch": "[TODO: Translate] Focus search",
|
||||||
|
"closeModal": "[TODO: Translate] Close modal / panel",
|
||||||
|
"openShortcuts": "[TODO: Translate] Open this shortcuts panel",
|
||||||
|
"toggleBulkMode": "[TODO: Translate] Toggle bulk mode",
|
||||||
|
"selectAll": "[TODO: Translate] Select all visible models",
|
||||||
|
"rangeSelect": "[TODO: Translate] Range select",
|
||||||
|
"marqueeSelect": "[TODO: Translate] Marquee-select cards (on empty grid area)",
|
||||||
|
"exitBulkMode": "[TODO: Translate] Exit bulk mode",
|
||||||
|
"bulkActions": "[TODO: Translate] On selected card: bulk actions menu",
|
||||||
|
"globalActions": "[TODO: Translate] On empty page area: global actions menu (update check, manage excluded models)",
|
||||||
|
"scrollPages": "[TODO: Translate] Scroll pages",
|
||||||
|
"jumpAlphabet": "[TODO: Translate] Jump alphabet bar",
|
||||||
|
"prevNext": "[TODO: Translate] Previous / next model",
|
||||||
|
"deleteEntry": "[TODO: Translate] Delete",
|
||||||
|
"cycleMedia": "[TODO: Translate] Cycle media ([ / ] in showcase gallery)",
|
||||||
|
"swipeTouch": "[TODO: Translate] Cycle media on touch devices",
|
||||||
|
"closeViewer": "[TODO: Translate] Close viewer"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"updateVlogs": {
|
"updateVlogs": {
|
||||||
"title": "最新更新",
|
"title": "最新更新",
|
||||||
|
|||||||
@@ -305,3 +305,86 @@
|
|||||||
[data-theme="dark"] .video-container {
|
[data-theme="dark"] .video-container {
|
||||||
background-color: var(--surface-hover);
|
background-color: var(--surface-hover);
|
||||||
}
|
}
|
||||||
|
/* Replay tutorial button styles */
|
||||||
|
.help-actions {
|
||||||
|
margin-top: var(--space-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.replay-tutorial-btn {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
border-radius: var(--border-radius-sm);
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: var(--transition-base);
|
||||||
|
background-color: var(--lora-accent);
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.replay-tutorial-btn:hover {
|
||||||
|
background-color: oklch(from var(--lora-accent) l c h / 85%);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Shortcuts tab styles */
|
||||||
|
.shortcuts-section {
|
||||||
|
margin-bottom: var(--space-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcuts-section h4 {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
margin-bottom: var(--space-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcuts-list {
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: var(--space-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcuts-list li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
margin-bottom: var(--space-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcut-keys {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 2px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcut-sep {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 0.75rem;
|
||||||
|
margin: 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcuts-list kbd {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
padding: 0 4px;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 0.68rem;
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--text-muted);
|
||||||
|
/* Subtle tint derived from text color so it adapts to both light & dark themes */
|
||||||
|
background: color-mix(in oklch, var(--text-muted) 12%, transparent);
|
||||||
|
border: 1px solid color-mix(in oklch, var(--text-muted) 25%, transparent);
|
||||||
|
border-radius: var(--border-radius-xs, 3px);
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shortcut-description {
|
||||||
|
font-size: 0.9em;
|
||||||
|
opacity: 0.85;
|
||||||
|
}
|
||||||
|
|||||||
@@ -607,9 +607,11 @@ export function createModelCard(model, modelType) {
|
|||||||
sendTitle = translate('modelCard.actions.sendToWorkflow', {}, 'Send to ComfyUI (Click: Append, Shift+Click: Replace)');
|
sendTitle = translate('modelCard.actions.sendToWorkflow', {}, 'Send to ComfyUI (Click: Append, Shift+Click: Replace)');
|
||||||
copyTitle = translate('modelCard.actions.copyLoRASyntax', {}, 'Copy LoRA Syntax');
|
copyTitle = translate('modelCard.actions.copyLoRASyntax', {}, 'Copy LoRA Syntax');
|
||||||
} else if (modelType === MODEL_TYPES.CHECKPOINT) {
|
} else if (modelType === MODEL_TYPES.CHECKPOINT) {
|
||||||
|
// Checkpoint send sets the widget value directly; no append/replace modes.
|
||||||
sendTitle = translate('modelCard.actions.sendCheckpointToWorkflow', {}, 'Send to ComfyUI');
|
sendTitle = translate('modelCard.actions.sendCheckpointToWorkflow', {}, 'Send to ComfyUI');
|
||||||
copyTitle = translate('modelCard.actions.copyCheckpointName', {}, 'Copy checkpoint name');
|
copyTitle = translate('modelCard.actions.copyCheckpointName', {}, 'Copy checkpoint name');
|
||||||
} else if (modelType === MODEL_TYPES.EMBEDDING) {
|
} else if (modelType === MODEL_TYPES.EMBEDDING) {
|
||||||
|
// Embedding send always appends to the prompt; no replace mode.
|
||||||
sendTitle = translate('modelCard.actions.sendEmbeddingToWorkflow', {}, 'Send to ComfyUI');
|
sendTitle = translate('modelCard.actions.sendEmbeddingToWorkflow', {}, 'Send to ComfyUI');
|
||||||
copyTitle = translate('modelCard.actions.copyEmbeddingName', {}, 'Copy embedding name');
|
copyTitle = translate('modelCard.actions.copyEmbeddingName', {}, 'Copy embedding name');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ export function renderTriggerWords(words, filePath) {
|
|||||||
const escapedWord = escapeHtml(word);
|
const escapedWord = escapeHtml(word);
|
||||||
const escapedAttr = escapeAttribute(word);
|
const escapedAttr = escapeAttribute(word);
|
||||||
return `
|
return `
|
||||||
<div class="trigger-word-tag" data-word="${escapedAttr}" title="${translate('modals.model.triggerWords.copyWord')}">
|
<div class="trigger-word-tag" data-word="${escapedAttr}" title="${translate('modals.model.triggerWords.copyOrEditWord')}">
|
||||||
<span class="trigger-word-content">${escapedWord}</span>
|
<span class="trigger-word-content">${escapedWord}</span>
|
||||||
<span class="trigger-word-copy">
|
<span class="trigger-word-copy">
|
||||||
<i class="fas fa-copy"></i>
|
<i class="fas fa-copy"></i>
|
||||||
@@ -455,7 +455,7 @@ function resetTriggerWordsUIState(section) {
|
|||||||
// Restore click-to-copy functionality
|
// Restore click-to-copy functionality
|
||||||
tag.removeEventListener('click', startEditTriggerWord);
|
tag.removeEventListener('click', startEditTriggerWord);
|
||||||
setupDisplayTriggerWordTag(tag);
|
setupDisplayTriggerWordTag(tag);
|
||||||
tag.title = translate('modals.model.triggerWords.copyWord');
|
tag.title = translate('modals.model.triggerWords.copyOrEditWord');
|
||||||
|
|
||||||
// Show copy icon, hide delete button
|
// Show copy icon, hide delete button
|
||||||
if (copyIcon) copyIcon.style.display = '';
|
if (copyIcon) copyIcon.style.display = '';
|
||||||
@@ -503,7 +503,7 @@ function createTriggerWordTag(word, isEditMode = false) {
|
|||||||
const tag = document.createElement('div');
|
const tag = document.createElement('div');
|
||||||
tag.className = 'trigger-word-tag';
|
tag.className = 'trigger-word-tag';
|
||||||
tag.dataset.word = word;
|
tag.dataset.word = word;
|
||||||
tag.title = translate(isEditMode ? 'modals.model.triggerWords.editWord' : 'modals.model.triggerWords.copyWord');
|
tag.title = translate(isEditMode ? 'modals.model.triggerWords.editWord' : 'modals.model.triggerWords.copyOrEditWord');
|
||||||
|
|
||||||
const escapedWord = escapeHtml(word);
|
const escapedWord = escapeHtml(word);
|
||||||
tag.innerHTML = `
|
tag.innerHTML = `
|
||||||
@@ -537,7 +537,7 @@ function setupDisplayTriggerWordTag(tag) {
|
|||||||
|
|
||||||
tag.addEventListener('click', handleDisplayTriggerWordClick);
|
tag.addEventListener('click', handleDisplayTriggerWordClick);
|
||||||
tag.addEventListener('dblclick', handleDisplayTriggerWordDoubleClick);
|
tag.addEventListener('dblclick', handleDisplayTriggerWordDoubleClick);
|
||||||
tag.title = translate('modals.model.triggerWords.copyWord');
|
tag.title = translate('modals.model.triggerWords.copyOrEditWord');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { getStorageItem, setStorageItem } from '../utils/storageHelpers.js';
|
import { getStorageItem, setStorageItem } from '../utils/storageHelpers.js';
|
||||||
|
import { onboardingManager } from './OnboardingManager.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages help modal functionality and tutorial update notifications
|
* Manages help modal functionality and tutorial update notifications
|
||||||
@@ -55,6 +56,53 @@ export class HelpManager {
|
|||||||
const tabButtons = document.querySelectorAll('.help-tabs .tab-btn');
|
const tabButtons = document.querySelectorAll('.help-tabs .tab-btn');
|
||||||
tabButtons.forEach(button => {
|
tabButtons.forEach(button => {
|
||||||
button.addEventListener('click', (event) => {
|
button.addEventListener('click', (event) => {
|
||||||
|
this.activateHelpTab(event.currentTarget.getAttribute('data-tab'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Replay tutorial button in the Getting Started tab
|
||||||
|
const replayTutorialBtn = document.getElementById('replayTutorialBtn');
|
||||||
|
if (replayTutorialBtn) {
|
||||||
|
replayTutorialBtn.addEventListener('click', () => {
|
||||||
|
// Close the help modal, then restart the onboarding tutorial
|
||||||
|
if (window.modalManager) {
|
||||||
|
window.modalManager.closeModal('helpModal');
|
||||||
|
}
|
||||||
|
onboardingManager.reset();
|
||||||
|
onboardingManager.startTutorial();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Global "?" shortcut opens the help modal on the Shortcuts tab
|
||||||
|
document.addEventListener('keydown', (event) => {
|
||||||
|
if (event.key !== '?') return;
|
||||||
|
if (this.isTypingContext(event.target)) return;
|
||||||
|
if (window.modalManager?.isAnyModalOpen()) return;
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
this.openHelpModal('shortcuts');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the event target is a text entry context where "?" is literal input
|
||||||
|
*/
|
||||||
|
isTypingContext(target) {
|
||||||
|
if (!(target instanceof Element)) return false;
|
||||||
|
|
||||||
|
const tagName = target.tagName?.toLowerCase();
|
||||||
|
return target.isContentEditable || tagName === 'input' || tagName === 'textarea' || tagName === 'select';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate a specific help modal tab by its data-tab id
|
||||||
|
* @param {string} tabId - The tab id (matches data-tab and pane element id)
|
||||||
|
*/
|
||||||
|
activateHelpTab(tabId) {
|
||||||
|
const tabButton = document.querySelector(`.help-tabs .tab-btn[data-tab="${tabId}"]`);
|
||||||
|
const tabPane = document.getElementById(tabId);
|
||||||
|
if (!tabButton || !tabPane) return;
|
||||||
|
|
||||||
// Remove active class from all buttons and panes
|
// Remove active class from all buttons and panes
|
||||||
document.querySelectorAll('.help-tabs .tab-btn').forEach(btn => {
|
document.querySelectorAll('.help-tabs .tab-btn').forEach(btn => {
|
||||||
btn.classList.remove('active');
|
btn.classList.remove('active');
|
||||||
@@ -63,24 +111,24 @@ export class HelpManager {
|
|||||||
pane.classList.remove('active');
|
pane.classList.remove('active');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add active class to clicked button
|
// Activate the requested tab
|
||||||
event.currentTarget.classList.add('active');
|
tabButton.classList.add('active');
|
||||||
|
tabPane.classList.add('active');
|
||||||
// Show corresponding tab content
|
|
||||||
const tabId = event.currentTarget.getAttribute('data-tab');
|
|
||||||
document.getElementById(tabId).classList.add('active');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open the help modal
|
* Open the help modal
|
||||||
|
* @param {string} [tabId] - Optional tab id to activate after opening
|
||||||
*/
|
*/
|
||||||
openHelpModal() {
|
openHelpModal(tabId) {
|
||||||
// Use modalManager to open the help modal
|
// Use modalManager to open the help modal
|
||||||
if (window.modalManager) {
|
if (window.modalManager) {
|
||||||
window.modalManager.toggleModal('helpModal');
|
window.modalManager.toggleModal('helpModal');
|
||||||
|
|
||||||
|
if (tabId) {
|
||||||
|
this.activateHelpTab(tabId);
|
||||||
|
}
|
||||||
|
|
||||||
// Add visual indicator to Documentation tab if there's new content
|
// Add visual indicator to Documentation tab if there's new content
|
||||||
this.updateDocumentationTabIndicator();
|
this.updateDocumentationTabIndicator();
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export class OnboardingManager {
|
|||||||
{
|
{
|
||||||
target: '.controls .action-buttons [data-action="bulk"]',
|
target: '.controls .action-buttons [data-action="bulk"]',
|
||||||
title: () => translate('onboarding.steps.bulk.title', {}, 'Bulk Operations'),
|
title: () => translate('onboarding.steps.bulk.title', {}, 'Bulk Operations'),
|
||||||
content: () => translate('onboarding.steps.bulk.content', {}, 'Enter bulk mode by clicking this button or pressing <span class="onboarding-shortcut">B</span>. Select multiple models and perform batch operations. Use <span class="onboarding-shortcut">Ctrl+A</span> to select all visible models.'),
|
content: () => translate('onboarding.steps.bulk.content', {}, 'Enter bulk mode by clicking this button or pressing <span class="onboarding-shortcut">B</span> to select multiple models and perform batch operations.<br>• <span class="onboarding-shortcut">Ctrl/Cmd+A</span> select all visible models, <span class="onboarding-shortcut">Shift+Click</span> select a range.<br>• <span class="onboarding-shortcut">Esc</span> or clicking an empty area exits bulk mode.'),
|
||||||
position: 'bottom'
|
position: 'bottom'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -71,10 +71,30 @@ export class OnboardingManager {
|
|||||||
position: 'top',
|
position: 'top',
|
||||||
customPosition: { top: '20%', left: '50%' }
|
customPosition: { top: '20%', left: '50%' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
target: '.card-grid',
|
||||||
|
title: () => translate('onboarding.steps.marqueeSelect.title', {}, 'Drag to Select'),
|
||||||
|
content: () => translate('onboarding.steps.marqueeSelect.content', {}, 'Hold the <strong>left mouse button</strong> on an empty area of the grid and drag to draw a marquee that selects multiple cards at once.'),
|
||||||
|
position: 'top',
|
||||||
|
customPosition: { top: '20%', left: '50%' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
target: '#folderSidebar',
|
||||||
|
title: () => translate('onboarding.steps.dragToSidebar.title', {}, 'Organize by Dragging'),
|
||||||
|
content: () => translate('onboarding.steps.dragToSidebar.content', {}, 'Drag a model card onto a folder in the sidebar to move the file there. This also works with multiple selected cards in bulk mode.'),
|
||||||
|
position: 'right'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
target: '.card-grid',
|
target: '.card-grid',
|
||||||
title: () => translate('onboarding.steps.contextMenu.title', {}, 'Context Menu'),
|
title: () => translate('onboarding.steps.contextMenu.title', {}, 'Context Menu'),
|
||||||
content: () => translate('onboarding.steps.contextMenu.content', {}, '<strong>Right-click</strong> any model card for a context menu with additional actions.'),
|
content: () => translate('onboarding.steps.contextMenu.content', {}, '<strong>Right-click</strong> any model card for a context menu with card actions like moving, deleting, or editing metadata.'),
|
||||||
|
position: 'top',
|
||||||
|
customPosition: { top: '20%', left: '50%' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
target: '.card-grid',
|
||||||
|
title: () => translate('onboarding.steps.contextMenus.title', {}, 'More Context Menus'),
|
||||||
|
content: () => translate('onboarding.steps.contextMenus.content', {}, 'In bulk mode, <strong>right-click a selected card</strong> for bulk actions. <strong>Right-click an empty area</strong> of the page for global actions like update checks and managing excluded models.'),
|
||||||
position: 'top',
|
position: 'top',
|
||||||
customPosition: { top: '20%', left: '50%' }
|
customPosition: { top: '20%', left: '50%' }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<button class="tab-btn active" data-tab="getting-started">{{ t('help.tabs.gettingStarted') }}</button>
|
<button class="tab-btn active" data-tab="getting-started">{{ t('help.tabs.gettingStarted') }}</button>
|
||||||
<button class="tab-btn" data-tab="update-vlogs">{{ t('help.tabs.updateVlogs') }}</button>
|
<button class="tab-btn" data-tab="update-vlogs">{{ t('help.tabs.updateVlogs') }}</button>
|
||||||
<button class="tab-btn" data-tab="documentation">{{ t('help.tabs.documentation') }}</button>
|
<button class="tab-btn" data-tab="documentation">{{ t('help.tabs.documentation') }}</button>
|
||||||
|
<button class="tab-btn" data-tab="shortcuts">{{ t('help.tabs.shortcuts') }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="help-content">
|
<div class="help-content">
|
||||||
@@ -39,6 +40,12 @@
|
|||||||
<li><strong>Recipe System:</strong> Create, save and share your perfect combinations</li>
|
<li><strong>Recipe System:</strong> Create, save and share your perfect combinations</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="help-actions">
|
||||||
|
<button id="replayTutorialBtn" class="replay-tutorial-btn">
|
||||||
|
<i class="fas fa-graduation-cap"></i>
|
||||||
|
<span>{{ t('help.gettingStarted.replayTutorial') }}</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Update Vlogs Tab -->
|
<!-- Update Vlogs Tab -->
|
||||||
@@ -136,6 +143,108 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Shortcuts Tab -->
|
||||||
|
<div class="tab-pane" id="shortcuts">
|
||||||
|
<h3>{{ t('help.shortcuts.title') }}</h3>
|
||||||
|
|
||||||
|
<div class="shortcuts-section">
|
||||||
|
<h4><i class="fas fa-keyboard"></i> {{ t('help.shortcuts.groups.general') }}</h4>
|
||||||
|
<ul class="shortcuts-list">
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Ctrl</kbd><span class="shortcut-sep">/</span><kbd>Cmd</kbd><span class="shortcut-sep">+</span><kbd>F</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.focusSearch') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Esc</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.closeModal') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>?</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.openShortcuts') }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shortcuts-section">
|
||||||
|
<h4><i class="fas fa-object-group"></i> {{ t('help.shortcuts.groups.selection') }}</h4>
|
||||||
|
<ul class="shortcuts-list">
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>B</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.toggleBulkMode') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Ctrl</kbd><span class="shortcut-sep">/</span><kbd>Cmd</kbd><span class="shortcut-sep">+</span><kbd>A</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.selectAll') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Shift</kbd><span class="shortcut-sep">+</span><kbd>{{ t('help.shortcuts.keys.click') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.rangeSelect') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>{{ t('help.shortcuts.keys.drag') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.marqueeSelect') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Esc</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.exitBulkMode') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>{{ t('help.shortcuts.keys.rightClick') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.bulkActions') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>{{ t('help.shortcuts.keys.rightClick') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.globalActions') }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shortcuts-section">
|
||||||
|
<h4><i class="fas fa-arrows-alt-v"></i> {{ t('help.shortcuts.groups.navigation') }}</h4>
|
||||||
|
<ul class="shortcuts-list">
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>PageUp</kbd><span class="shortcut-sep">/</span><kbd>PageDown</kbd><span class="shortcut-sep">/</span><kbd>Home</kbd><span class="shortcut-sep">/</span><kbd>End</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.scrollPages') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Alt</kbd><span class="shortcut-sep">+</span><kbd>{{ t('help.shortcuts.keys.letter') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.jumpAlphabet') }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shortcuts-section">
|
||||||
|
<h4><i class="fas fa-window-restore"></i> {{ t('help.shortcuts.groups.modelModal') }}</h4>
|
||||||
|
<ul class="shortcuts-list">
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>←</kbd><span class="shortcut-sep">/</span><kbd>→</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.prevNext') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Delete</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.deleteEntry') }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shortcuts-section">
|
||||||
|
<h4><i class="fas fa-images"></i> {{ t('help.shortcuts.groups.mediaViewer') }}</h4>
|
||||||
|
<ul class="shortcuts-list">
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>←</kbd><span class="shortcut-sep">/</span><kbd>→</kbd><span class="shortcut-sep">/</span><kbd>[</kbd><span class="shortcut-sep">/</span><kbd>]</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.cycleMedia') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>{{ t('help.shortcuts.keys.swipe') }}</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.swipeTouch') }}</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="shortcut-keys"><kbd>Esc</kbd></span>
|
||||||
|
<span class="shortcut-description">{{ t('help.shortcuts.entries.closeViewer') }}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user