mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-09-21 11:11:26 -03:00
2bc9860b24
Add per-model-type filename templates ({model_name}, {version_name},
{base_model}, {author}, {first_tag}, {hash_short}, {original_name}) so
downloaded files get informative names instead of e.g. V1.safetensors.
Empty template keeps the current filename (opt-in, off by default).
- apply template automatically after downloads; rename conflicts keep
the original name and never fail the download
- record original_file_name in metadata on rename for traceability
- bulk apply via GET|POST /api/lm/{prefix}/apply-filename-template with
WebSocket progress, sharing the auto-organize lock
- settings UI lives in the new Organization tab with validation, live
preview, and per-type 'apply to library' actions
2782 lines
126 KiB
JSON
2782 lines
126 KiB
JSON
{
|
|
"common": {
|
|
"cancel": "Cancel",
|
|
"confirm": "Confirm",
|
|
"reorder": {
|
|
"dragHandle": "Drag to reorder"
|
|
},
|
|
"actions": {
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"confirm": "Confirm",
|
|
"delete": "Delete",
|
|
"move": "Move",
|
|
"refresh": "Refresh",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"backToTop": "Back to top",
|
|
"settings": "Settings",
|
|
"help": "Help",
|
|
"add": "Add",
|
|
"close": "Close",
|
|
"menu": "Menu",
|
|
"remove": "Remove",
|
|
"change": "Change"
|
|
},
|
|
"status": {
|
|
"loading": "Loading...",
|
|
"cancelling": "Cancelling...",
|
|
"unknown": "Unknown",
|
|
"date": "Date",
|
|
"version": "Version",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled"
|
|
},
|
|
"language": {
|
|
"select": "Language",
|
|
"select_help": "Choose your preferred language for the interface",
|
|
"english": "English",
|
|
"chinese_simplified": "中文(简体)",
|
|
"chinese_traditional": "中文(繁体)",
|
|
"russian": "Русский",
|
|
"german": "Deutsch",
|
|
"japanese": "日本語",
|
|
"korean": "한국어",
|
|
"french": "Français",
|
|
"spanish": "Español",
|
|
"Hebrew": "עברית"
|
|
},
|
|
"fileSize": {
|
|
"zero": "0 Bytes",
|
|
"bytes": "Bytes",
|
|
"kb": "KB",
|
|
"mb": "MB",
|
|
"gb": "GB",
|
|
"tb": "TB"
|
|
},
|
|
"scanProgress": {
|
|
"refreshing": "Refreshing {type}s...",
|
|
"fullRebuilding": "Full rebuild {type}s...",
|
|
"actionRefresh": "Refresh",
|
|
"actionFullRebuild": "Full rebuild",
|
|
"actionRefreshLower": "refresh",
|
|
"actionRebuildLower": "rebuild",
|
|
"stages": {
|
|
"scan_folders": "Scanning folders...",
|
|
"count_models": "Found {total} files",
|
|
"process_models": "Processing models",
|
|
"reconcile_scan": "Checking for changes...",
|
|
"process_new": "Processing new models",
|
|
"finalizing": "Finalizing..."
|
|
},
|
|
"eta": {
|
|
"lessThanMinute": "Less than a minute remaining",
|
|
"minutes": "~{minutes} min remaining",
|
|
"hours": "~{hours} hr {minutes} min remaining"
|
|
}
|
|
}
|
|
},
|
|
"onboarding": {
|
|
"languageSelection": {
|
|
"title": "Welcome to LoRA Manager",
|
|
"continue": "Continue",
|
|
"changeFailed": "Failed to change language: {message}"
|
|
},
|
|
"tutorial": {
|
|
"skipTutorial": "Skip Tutorial",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"finish": "Finish"
|
|
},
|
|
"steps": {
|
|
"fetch": {
|
|
"title": "Fetch Models Metadata",
|
|
"content": "Click the <strong>Fetch</strong> button to download model metadata and preview images from CivitAI."
|
|
},
|
|
"download": {
|
|
"title": "Download New Models",
|
|
"content": "Use the <strong>Download</strong> button to download models directly from CivitAI URLs."
|
|
},
|
|
"bulk": {
|
|
"title": "Bulk Operations",
|
|
"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": {
|
|
"title": "Search Options",
|
|
"content": "Click this button to configure what fields to search in: filename, model name, tags, or creator name. Customize your search scope."
|
|
},
|
|
"filter": {
|
|
"title": "Filter Models",
|
|
"content": "Use filters to narrow down models by base model type (SD1.5, SDXL, Flux, etc.) or by specific tags."
|
|
},
|
|
"breadcrumb": {
|
|
"title": "Breadcrumb Navigation",
|
|
"content": "The breadcrumb navigation shows your current path and allows quick navigation between folders. Click any folder name to jump directly there."
|
|
},
|
|
"modelCards": {
|
|
"title": "Model Cards",
|
|
"content": "<strong>Single-click</strong> a model card to view detailed information and edit metadata. Look for the pencil icon when hovering over editable fields."
|
|
},
|
|
"contextMenu": {
|
|
"title": "Context Menu",
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"modelCard": {
|
|
"actions": {
|
|
"addToFavorites": "Add to favorites",
|
|
"removeFromFavorites": "Remove from favorites",
|
|
"viewOnCivitai": "View on CivitAI",
|
|
"notAvailableFromCivitai": "Not available from CivitAI",
|
|
"viewOnHuggingFace": "View on Hugging Face",
|
|
"viewOnSource": "View on {source}",
|
|
"sendToWorkflow": "Send to ComfyUI (Click: Append, Shift+Click: Replace)",
|
|
"copyLoRASyntax": "Copy LoRA Syntax",
|
|
"checkpointNameCopied": "Checkpoint name copied",
|
|
"toggleBlur": "Toggle blur",
|
|
"show": "Show",
|
|
"openExampleImages": "Open Example Images Folder",
|
|
"replacePreview": "Replace Preview",
|
|
"copyCheckpointName": "Copy checkpoint name",
|
|
"copyEmbeddingName": "Copy embedding name",
|
|
"embeddingNameCopied": "Embedding syntax copied",
|
|
"modelNameCopied": "Model name copied",
|
|
"sendCheckpointToWorkflow": "Send to ComfyUI",
|
|
"sendEmbeddingToWorkflow": "Send to ComfyUI"
|
|
},
|
|
"nsfw": {
|
|
"matureContent": "Mature Content",
|
|
"xxxRated": "XXX-rated Content",
|
|
"xRated": "X-rated Content",
|
|
"rRated": "R-rated Content"
|
|
},
|
|
"favorites": {
|
|
"added": "Added to favorites",
|
|
"removed": "Removed from favorites",
|
|
"updateFailed": "Failed to update favorite status"
|
|
},
|
|
"sendToWorkflow": {
|
|
"checkpointNotImplemented": "Send checkpoint to workflow - feature to be implemented",
|
|
"missingPath": "Unable to determine model path for this card"
|
|
},
|
|
"exampleImages": {
|
|
"checkError": "Error checking for example images",
|
|
"missingHash": "Missing model hash information.",
|
|
"noRemoteImagesAvailable": "No remote example images available for this model on CivitAI"
|
|
},
|
|
"badges": {
|
|
"update": "Update",
|
|
"updateAvailable": "Update available",
|
|
"skipRefresh": "Metadata refresh skipped"
|
|
},
|
|
"usage": {
|
|
"timesUsed": "Times used"
|
|
},
|
|
"footer": {
|
|
"versionCount": "{count} versions",
|
|
"viewAllVersions": "View all local versions"
|
|
}
|
|
},
|
|
"globalContextMenu": {
|
|
"downloadExampleImages": {
|
|
"label": "Download example images",
|
|
"missingPath": "Set a download location before downloading example images.",
|
|
"unavailable": "Example image downloads aren't available yet. Try again after the page finishes loading."
|
|
},
|
|
"checkModelUpdates": {
|
|
"label": "Check for updates",
|
|
"loading": "Checking for {type} updates...",
|
|
"success": "Found {count} update(s) for {type}s",
|
|
"none": "All {type}s are up to date",
|
|
"error": "Failed to check for {type} updates: {message}"
|
|
},
|
|
"cleanupExampleImages": {
|
|
"label": "Clean up example image folders",
|
|
"success": "Moved {count} folder(s) to the deleted folder",
|
|
"none": "No example image folders needed cleanup",
|
|
"partial": "Cleanup completed with {failures} folder(s) skipped",
|
|
"error": "Failed to clean example image folders: {message}"
|
|
},
|
|
"fetchMissingLicenses": {
|
|
"label": "Refresh license metadata",
|
|
"loading": "Refreshing license metadata for {typePlural}...",
|
|
"success": "Updated license metadata for {count} {typePlural}",
|
|
"none": "All {typePlural} already have license metadata",
|
|
"error": "Failed to refresh license metadata for {typePlural}: {message}"
|
|
},
|
|
"rematchRecipes": {
|
|
"label": "Rematch recipes to local models",
|
|
"loading": "Rematching recipes to local models...",
|
|
"success": "Matched {entries} entries across {recipes} recipes",
|
|
"cancelled": "Rematch cancelled. {recipes} recipes updated ({entries} entries).",
|
|
"error": "Recipe rematch failed: {message}"
|
|
},
|
|
"manageExcludedModels": {
|
|
"label": "Manage Excluded Models"
|
|
},
|
|
"groupByModel": {
|
|
"label": "Group by Model"
|
|
}
|
|
},
|
|
"header": {
|
|
"appTitle": "LoRA Manager",
|
|
"navigation": {
|
|
"loras": "LoRAs",
|
|
"recipes": "Recipes",
|
|
"checkpoints": "Checkpoints",
|
|
"embeddings": "Embeddings",
|
|
"other": "Other",
|
|
"statistics": "Stats"
|
|
},
|
|
"search": {
|
|
"placeholder": "Search",
|
|
"options": "Search Options",
|
|
"searchIn": "Search In:",
|
|
"notAvailable": "Search not available on statistics page",
|
|
"filters": {
|
|
"filename": "Filename",
|
|
"modelname": "Model Name",
|
|
"tags": "Tags",
|
|
"creator": "Creator",
|
|
"hash": "Hash",
|
|
"title": "Recipe Title",
|
|
"loraName": "LoRA Filename",
|
|
"loraModel": "LoRA Model Name",
|
|
"prompt": "Prompt"
|
|
}
|
|
},
|
|
"filter": {
|
|
"title": "Filter Models",
|
|
"presets": "Presets",
|
|
"savePreset": "Save current active filters as a new preset.",
|
|
"savePresetDisabledActive": "Cannot save: A preset is already active. Modify filters to save new preset.",
|
|
"savePresetDisabledNoFilters": "Select filters first to save as preset",
|
|
"savePresetPrompt": "Enter preset name:",
|
|
"presetClickTooltip": "Click to apply preset \"{name}\"",
|
|
"presetDeleteTooltip": "Delete preset",
|
|
"presetDeleteConfirm": "Delete preset \"{name}\"?",
|
|
"presetDeleteConfirmClick": "Click again to confirm",
|
|
"presetOverwriteConfirm": "Preset \"{name}\" already exists. Overwrite?",
|
|
"presetNamePlaceholder": "Preset name...",
|
|
"baseModel": "Base Model",
|
|
"baseModelSearchPlaceholder": "Search base models...",
|
|
"modelTags": "Tags",
|
|
"modelTypes": "Model Types",
|
|
"license": "License",
|
|
"noCreditRequired": "No Credit Required",
|
|
"allowSellingGeneratedContent": "Allow Selling",
|
|
"allowSellingGeneratedContentTooltip": "Allow selling generated images",
|
|
"noCreditRequiredTooltip": "Use the model without crediting the creator",
|
|
"noTags": "No tags",
|
|
"tagSearchPlaceholder": "Search tags...",
|
|
"noTagMatches": "No tags match the current search.",
|
|
"autoTags": "Auto Tags",
|
|
"noBaseModelMatches": "No base models match the current search.",
|
|
"clearAll": "Clear All Filters",
|
|
"any": "Any",
|
|
"all": "All",
|
|
"tagLogicAny": "Match any tag (OR)",
|
|
"tagLogicAll": "Match all tags (AND)",
|
|
"loraAvailability": "Lora Availability",
|
|
"availabilityReady": "Ready to use",
|
|
"availabilityMissing": "Has missing",
|
|
"availabilityDeleted": "Has deleted"
|
|
},
|
|
"theme": {
|
|
"toggle": "Toggle theme",
|
|
"switchToLight": "Switch to light theme",
|
|
"switchToDark": "Switch to dark theme",
|
|
"switchToAuto": "Switch to auto theme",
|
|
"presets": "Theme Presets",
|
|
"default": "Default",
|
|
"nord": "Nord",
|
|
"midnight": "Midnight",
|
|
"monokai": "Monokai",
|
|
"dracula": "Dracula",
|
|
"solarized": "Solarized",
|
|
"mode": "Mode",
|
|
"light": "Light",
|
|
"dark": "Dark",
|
|
"auto": "Auto"
|
|
},
|
|
"actions": {
|
|
"checkUpdates": "Check Updates",
|
|
"notifications": "Notifications",
|
|
"support": "Support"
|
|
}
|
|
},
|
|
"settings": {
|
|
"civitaiApiKey": "CivitAI API Key",
|
|
"civitaiApiKeyPlaceholder": "Enter your CivitAI API key",
|
|
"civitaiApiKeyHelp": "Used for authentication when downloading models from CivitAI",
|
|
"civitaiApiKeyConfigured": "Configured",
|
|
"civitaiApiKeyNotConfigured": "Not configured",
|
|
"civitaiApiKeySet": "Set up",
|
|
"civitaiHost": {
|
|
"label": "CivitAI host",
|
|
"help": "Choose which CivitAI site opens when using View on CivitAI links.",
|
|
"options": {
|
|
"com": "civitai.com (SFW)",
|
|
"red": "civitai.red (unrestricted)"
|
|
}
|
|
},
|
|
"downloadBackend": {
|
|
"label": "Download backend",
|
|
"help": "Choose how model files are downloaded. Python uses the built-in downloader. aria2 uses the recommended external downloader process.",
|
|
"options": {
|
|
"python": "Python (built-in)",
|
|
"aria2": "aria2 (recommended)"
|
|
}
|
|
},
|
|
"aria2cPath": {
|
|
"label": "aria2c path",
|
|
"help": "Optional path to the aria2c executable. Leave empty to use aria2c from your system PATH.",
|
|
"placeholder": "Leave empty to use aria2c from PATH"
|
|
},
|
|
"aria2HelpLink": "Learn how to set up the aria2 download backend",
|
|
"civitaiHostBanner": {
|
|
"title": "CivitAI host preference available",
|
|
"content": "CivitAI now uses civitai.com for SFW content and civitai.red for unrestricted content. You can change which site opens by default in Settings.",
|
|
"openSettings": "Open Settings"
|
|
},
|
|
"openSettingsFileLocation": {
|
|
"label": "Open settings folder",
|
|
"tooltip": "Open folder containing settings.json",
|
|
"success": "Opened settings.json folder",
|
|
"failed": "Failed to open settings.json folder",
|
|
"copied": "Settings path copied to clipboard: {{path}}",
|
|
"clipboardFallback": "Settings path: {{path}}"
|
|
},
|
|
"sections": {
|
|
"contentFiltering": "Content Filtering",
|
|
"downloads": "Downloads",
|
|
"videoSettings": "Video Settings",
|
|
"layoutSettings": "Layout Settings",
|
|
"licenseIcons": "License Icons",
|
|
"misc": "Miscellaneous",
|
|
"backup": "Backups",
|
|
"folderSettings": "Default Roots",
|
|
"recipeSettings": "Recipes",
|
|
"extraFolderPaths": "Extra Folder Paths",
|
|
"downloadPathTemplates": "Download Path Templates",
|
|
"priorityTags": "Priority Tags",
|
|
"versionScope": "Version Scope",
|
|
"exampleImages": "Example Images",
|
|
"autoOrganize": "Auto-organize",
|
|
"metadata": "Metadata",
|
|
"proxySettings": "Proxy Settings"
|
|
},
|
|
"nav": {
|
|
"general": "General",
|
|
"interface": "Interface",
|
|
"library": "Library",
|
|
"organization": "Organization",
|
|
"modelPaths": "Model Paths"
|
|
},
|
|
"search": {
|
|
"placeholder": "Search settings...",
|
|
"clear": "Clear search",
|
|
"noResults": "No settings found matching \"{query}\""
|
|
},
|
|
"storage": {
|
|
"locationLabel": "Portable mode",
|
|
"locationHelp": "Enable to keep settings.json inside the repository; disable to store it in your user config directory."
|
|
},
|
|
"contentFiltering": {
|
|
"blurNsfwContent": "Blur NSFW Content",
|
|
"blurNsfwContentHelp": "Blur mature (NSFW) content preview images",
|
|
"showOnlySfw": "Show Only SFW Results",
|
|
"showOnlySfwHelp": "Filter out all NSFW content when browsing and searching",
|
|
"matureBlurThreshold": "Mature Blur Threshold",
|
|
"matureBlurThresholdHelp": "Set which rating level starts blur filtering when NSFW blur is enabled.",
|
|
"matureBlurThresholdOptions": {
|
|
"pg13": "PG13 and above",
|
|
"r": "R and above (default)",
|
|
"x": "X and above",
|
|
"xxx": "XXX only"
|
|
}
|
|
},
|
|
"videoSettings": {
|
|
"autoplayOnHover": "Autoplay Videos on Hover",
|
|
"autoplayOnHoverHelp": "Only play video previews when hovering over them"
|
|
},
|
|
"autoOrganizeExclusions": {
|
|
"label": "Auto-organize exclusions",
|
|
"placeholder": "Example: curated/*, */backups/*; *_temp.safetensors",
|
|
"help": "Skip moving files that match these wildcard patterns. Separate multiple patterns with commas or semicolons.",
|
|
"validation": {
|
|
"noPatterns": "Enter at least one pattern separated by commas or semicolons.",
|
|
"saveFailed": "Unable to save exclusions: {message}"
|
|
}
|
|
},
|
|
"metadataRefreshSkipPaths": {
|
|
"label": "Metadata refresh skip paths",
|
|
"placeholder": "Example: temp, archived/old, test_models",
|
|
"help": "Skip models in these directory paths during bulk metadata refresh (\"Fetch All Metadata\"). Enter folder paths relative to your model root directory, separated by commas.",
|
|
"validation": {
|
|
"noPaths": "Enter at least one path separated by commas.",
|
|
"saveFailed": "Unable to save skip paths: {message}"
|
|
}
|
|
},
|
|
"backup": {
|
|
"autoEnabled": "Automatic backups",
|
|
"autoEnabledHelp": "Create a local snapshot once per day and keep the latest snapshots according to the retention policy.",
|
|
"retention": "Retention count",
|
|
"retentionHelp": "How many automatic snapshots to keep before older ones are pruned.",
|
|
"management": "Backup management",
|
|
"managementHelp": "Export your current user state or restore it from a backup archive.",
|
|
"scopeHelp": "Backs up your settings, download history, and model update state. It does not include model files or rebuildable caches.",
|
|
"locationSummary": "Current backup location",
|
|
"openFolderButton": "Open backup folder",
|
|
"openFolderSuccess": "Opened backup folder",
|
|
"openFolderFailed": "Failed to open backup folder",
|
|
"locationCopied": "Backup path copied to clipboard: {{path}}",
|
|
"locationClipboardFallback": "Backup path: {{path}}",
|
|
"exportButton": "Export backup",
|
|
"exportSuccess": "Backup exported successfully.",
|
|
"exportFailed": "Failed to export backup: {message}",
|
|
"importButton": "Import backup",
|
|
"importConfirm": "Import this backup and overwrite local user state?",
|
|
"importSuccess": "Backup imported successfully.",
|
|
"importFailed": "Failed to import backup: {message}",
|
|
"latestSnapshot": "Latest snapshot",
|
|
"latestAutoSnapshot": "Latest automatic snapshot",
|
|
"snapshotCount": "Saved snapshots",
|
|
"noneAvailable": "No snapshots yet"
|
|
},
|
|
"downloadSkipBaseModels": {
|
|
"label": "Skip downloads for base models",
|
|
"help": "When enabled, versions using the selected base models will be skipped.",
|
|
"searchPlaceholder": "Filter base models...",
|
|
"empty": "No base models match the current search.",
|
|
"summary": {
|
|
"none": "None selected",
|
|
"count": "{count} selected"
|
|
},
|
|
"actions": {
|
|
"edit": "Edit",
|
|
"collapse": "Collapse",
|
|
"clear": "Clear"
|
|
},
|
|
"validation": {
|
|
"saveFailed": "Unable to save excluded base models: {message}"
|
|
}
|
|
},
|
|
"skipPreviouslyDownloadedModelVersions": {
|
|
"label": "Skip previously downloaded model versions",
|
|
"help": "When enabled, versions downloaded before will be skipped."
|
|
},
|
|
"layoutSettings": {
|
|
"groupByModel": "Group by Model",
|
|
"groupByModelHelp": "When enabled, only the latest version of each CivitAI model is shown as a single card. Older versions are hidden.",
|
|
"stickyControls": "Keep Action Bar Visible",
|
|
"stickyControlsHelp": "When enabled, the action bar (Refresh, Download, etc.) stays pinned at the top while scrolling, together with the breadcrumb navigation.",
|
|
"displayDensity": "Display Density",
|
|
"displayDensityOptions": {
|
|
"default": "Default",
|
|
"medium": "Medium",
|
|
"compact": "Compact"
|
|
},
|
|
"displayDensityHelp": "Choose how many cards to display per row:",
|
|
"displayDensityDetails": {
|
|
"default": "5 (1080p), 6 (2K), 8 (4K)",
|
|
"medium": "6 (1080p), 7 (2K), 9 (4K)",
|
|
"compact": "7 (1080p), 8 (2K), 10 (4K)"
|
|
},
|
|
"displayDensityWarning": "Warning: Higher densities may cause performance issues on systems with limited resources.",
|
|
"recipesLayout": "Recipes Layout",
|
|
"recipesLayoutHelp": "Choose how recipe cards are arranged: a uniform grid or a masonry (Pinterest-style) layout that preserves each image's aspect ratio.",
|
|
"recipesLayoutOptions": {
|
|
"grid": "Grid",
|
|
"masonry": "Masonry"
|
|
},
|
|
"showFolderSidebar": "Show Folder Sidebar",
|
|
"showFolderSidebarHelp": "Toggle the folder navigation sidebar on model pages. When disabled, the sidebar and hover area stay hidden.",
|
|
"cardInfoDisplay": "Card Info Display",
|
|
"cardInfoDisplayOptions": {
|
|
"always": "Always Visible",
|
|
"hover": "Reveal on Hover"
|
|
},
|
|
"cardInfoDisplayHelp": "Choose when to display model information and action buttons",
|
|
"showVersionOnCard": "Show Version on Card",
|
|
"showVersionOnCardHelp": "Show or hide the version name on model cards",
|
|
"modelCardFooterAction": "Model Card Button Action",
|
|
"modelCardFooterActionOptions": {
|
|
"exampleImages": "Open Example Images",
|
|
"replacePreview": "Replace Preview"
|
|
},
|
|
"modelCardFooterActionHelp": "Choose what the bottom-right card button does",
|
|
"modelNameDisplay": "Model Name Display",
|
|
"modelNameDisplayOptions": {
|
|
"modelName": "Model Name",
|
|
"fileName": "File Name"
|
|
},
|
|
"modelNameDisplayHelp": "Choose what to display in the model card footer",
|
|
"cardBlurAmount": "Card Overlay Blur",
|
|
"cardBlurAmountHelp": "Adjust the blur intensity of the header and footer overlays on model and recipe cards (0 = no blur, 20 = maximum blur)."
|
|
},
|
|
"folderSettings": {
|
|
"activeLibrary": "Active Library",
|
|
"activeLibraryHelp": "Switch between configured libraries to update default folders. Changing the selection reloads the page.",
|
|
"loadingLibraries": "Loading libraries...",
|
|
"noLibraries": "No libraries configured",
|
|
"defaultLoraRoot": "LoRA Root",
|
|
"defaultLoraRootHelp": "Set default LoRA root directory for downloads, imports and moves",
|
|
"defaultCheckpointRoot": "Checkpoint Root",
|
|
"defaultCheckpointRootHelp": "Set default checkpoint root directory for downloads, imports and moves",
|
|
"defaultUnetRoot": "Diffusion Model Root",
|
|
"defaultUnetRootHelp": "Set default diffusion model (UNET) root directory for downloads, imports and moves",
|
|
"defaultEmbeddingRoot": "Embedding Root",
|
|
"defaultEmbeddingRootHelp": "Set default embedding root directory for downloads, imports and moves",
|
|
"defaultVaeRoot": "VAE Root",
|
|
"defaultVaeRootHelp": "Set default VAE root directory for downloads, imports and moves",
|
|
"defaultUpscalerRoot": "Upscaler Root",
|
|
"defaultUpscalerRootHelp": "Set default upscaler root directory for downloads, imports and moves",
|
|
"defaultTextEncoderRoot": "Text Encoder Root",
|
|
"defaultTextEncoderRootHelp": "Set default text encoder root directory for downloads, imports and moves",
|
|
"defaultClipVisionRoot": "CLIP Vision Root",
|
|
"defaultClipVisionRootHelp": "Set default CLIP vision root directory for downloads, imports and moves",
|
|
"defaultControlnetRoot": "ControlNet Root",
|
|
"defaultControlnetRootHelp": "Set default ControlNet root directory for downloads, imports and moves",
|
|
"enableOtherModels": "Other Models Management",
|
|
"enableOtherModelsHelp": "When off, VAE / upscaler / text encoder / CLIP vision / ControlNet folders are not scanned, the Other Models page stays disabled, and these model types cannot be downloaded.",
|
|
"otherSubTypes": "Managed Types",
|
|
"otherSubTypesHelp": "Choose which other-model categories are scanned and shown on the Other Models page.",
|
|
"subTypeVae": "VAE",
|
|
"subTypeUpscaler": "Upscaler",
|
|
"subTypeTextEncoder": "Text Encoder",
|
|
"subTypeClipVision": "CLIP Vision",
|
|
"subTypeControlnet": "ControlNet",
|
|
"recipesPath": "Recipes Storage Path",
|
|
"recipesPathHelp": "Optional custom directory for stored recipes. Leave empty to use the first LoRA root's recipes folder.",
|
|
"recipesPathPlaceholder": "/path/to/recipes",
|
|
"recipesPathMigrating": "Migrating recipes storage...",
|
|
"noDefault": "No Default"
|
|
},
|
|
"extraFolderPaths": {
|
|
"title": "Extra Folder Paths",
|
|
"description": "Additional model root paths exclusive to LoRA Manager. Load models from locations outside ComfyUI's standard folders—ideal for large libraries that would otherwise slow down ComfyUI.",
|
|
"restartRequired": "Requires restart to take effect",
|
|
"modelTypes": {
|
|
"lora": "LoRA Paths",
|
|
"checkpoint": "Checkpoint Paths",
|
|
"unet": "Diffusion Model Paths",
|
|
"embedding": "Embedding Paths"
|
|
},
|
|
"pathPlaceholder": "/path/to/extra/models",
|
|
"saveSuccess": "Extra folder paths updated. Restart required to apply changes.",
|
|
"saveError": "Failed to update extra folder paths: {message}",
|
|
"validation": {
|
|
"duplicatePath": "This path is already configured",
|
|
"checkpointUnetOverlap": "Cannot use the same path for both checkpoints and diffusion models: {paths}",
|
|
"checkpointUnetOverlapInline": "This path is also used for a different model type. Use separate folders for checkpoints and diffusion models."
|
|
}
|
|
},
|
|
"modelPaths": {
|
|
"title": "Model Library Paths",
|
|
"description": "Root folders LoRA Manager scans for your models. These are the primary model locations read from settings.json in standalone mode.",
|
|
"restartRequired": "Requires restart to take effect",
|
|
"coreTypes": "Core Model Types",
|
|
"otherTypes": "Other Model Types",
|
|
"otherTypesDisabledHint": "No other model types are enabled. Turn on the types you need above to configure their folders.",
|
|
"saveSuccessRestart": "Model library paths updated. Restart required to apply changes.",
|
|
"pendingRestartNotice": "Path changes saved. Restart LoRA Manager for them to take effect.",
|
|
"pendingRestartBannerTitle": "Restart required to apply path changes",
|
|
"pendingRestartBannerMessage": "Model library paths were updated. Restart the LoRA Manager server to scan the new folders.",
|
|
"folderKeys": {
|
|
"loras": "LoRA Paths",
|
|
"checkpoints": "Checkpoint Paths",
|
|
"unet": "Diffusion Model Paths",
|
|
"embeddings": "Embedding Paths",
|
|
"vae": "VAE Paths",
|
|
"upscale_models": "Upscaler Paths",
|
|
"text_encoders": "Text Encoder Paths",
|
|
"clip": "CLIP Paths (legacy)",
|
|
"clip_vision": "CLIP Vision Paths",
|
|
"controlnet": "ControlNet Paths"
|
|
}
|
|
},
|
|
"directoryPicker": {
|
|
"title": "Browse Folders",
|
|
"selectFolder": "Select This Folder",
|
|
"goUp": "Up",
|
|
"pathPlaceholder": "Enter path...",
|
|
"go": "Go",
|
|
"emptyFolder": "No subfolders",
|
|
"loadError": "Failed to load directory"
|
|
},
|
|
"pathValidation": {
|
|
"valid": "Path is valid",
|
|
"pathNotFound": "Path does not exist",
|
|
"notADirectory": "Not a directory",
|
|
"notReadable": "Path is not readable",
|
|
"notWritable": "Path is not writable"
|
|
},
|
|
"priorityTags": {
|
|
"title": "Priority Tags",
|
|
"description": "Customize the tag priority order for each model type (e.g., character, concept, style(toon|toon_style))",
|
|
"placeholder": "character, concept, style(toon|toon_style)",
|
|
"helpLinkLabel": "Open priority tags help",
|
|
"modelTypes": {
|
|
"lora": "LoRA",
|
|
"checkpoint": "Checkpoint",
|
|
"embedding": "Embedding"
|
|
},
|
|
"saveSuccess": "Priority tags updated.",
|
|
"saveError": "Failed to update priority tags.",
|
|
"loadingSuggestions": "Loading suggestions...",
|
|
"validation": {
|
|
"missingClosingParen": "Entry {index} is missing a closing parenthesis.",
|
|
"missingCanonical": "Entry {index} must include a canonical tag name.",
|
|
"duplicateCanonical": "The canonical tag \"{tag}\" appears more than once.",
|
|
"unknown": "Invalid priority tag configuration."
|
|
}
|
|
},
|
|
"downloadPathTemplates": {
|
|
"title": "Download Path Templates",
|
|
"help": "Configure folder structures for different model types when downloading from CivitAI.",
|
|
"availablePlaceholders": "Available placeholders:",
|
|
"templateOptions": {
|
|
"flatStructure": "Flat Structure",
|
|
"byBaseModel": "By Base Model",
|
|
"byAuthor": "By Author",
|
|
"byFirstTag": "By First Tag",
|
|
"baseModelFirstTag": "Base Model + First Tag",
|
|
"baseModelAuthor": "Base Model + Author",
|
|
"authorFirstTag": "Author + First Tag",
|
|
"baseModelAuthorFirstTag": "Base Model + Author + First Tag",
|
|
"customTemplate": "Custom Template"
|
|
},
|
|
"customTemplatePlaceholder": "Enter custom template (e.g., {base_model}/{author}/{first_tag})",
|
|
"modelTypes": {
|
|
"lora": "LoRA",
|
|
"checkpoint": "Checkpoint",
|
|
"embedding": "Embedding"
|
|
},
|
|
"baseModelPathMappings": "Base Model Path Mappings",
|
|
"baseModelPathMappingsHelp": "Customize folder names for specific base models (e.g., \"Flux.1 D\" → \"flux\")",
|
|
"addMapping": "Add Mapping",
|
|
"selectBaseModel": "Select Base Model",
|
|
"customPathPlaceholder": "Custom path (e.g., flux)",
|
|
"removeMapping": "Remove mapping",
|
|
"validation": {
|
|
"validFlat": "Valid (flat structure)",
|
|
"invalidChars": "Invalid characters detected",
|
|
"doubleSlashes": "Double slashes not allowed",
|
|
"leadingTrailingSlash": "Cannot start or end with slash",
|
|
"invalidPlaceholder": "Invalid placeholder: {placeholder}",
|
|
"validTemplate": "Valid template"
|
|
}
|
|
},
|
|
"filenameTemplates": {
|
|
"title": "Filename Templates",
|
|
"help": "Configure filenames for downloaded models per model type. Leave empty to keep the original filename. The original filename is always preserved in the model's metadata.",
|
|
"availablePlaceholders": "Available placeholders:",
|
|
"templatePlaceholder": "Enter filename template (e.g., {base_model}-{model_name}-{version_name})",
|
|
"applyButton": "Apply to Library Now",
|
|
"applyHelp": "Renames all existing files of this model type according to the template. Warning: renaming changes the relative path seen by ComfyUI loaders, so existing workflows referencing the old filename may need to be updated. The original filename is preserved in each model's metadata.",
|
|
"confirmApply": "Rename all existing files of this model type according to the filename template? This changes the relative path seen by ComfyUI loaders. The original filename is preserved in each model's metadata.",
|
|
"emptyTemplateInfo": "No filename template configured for this model type — original filenames are kept, nothing to apply.",
|
|
"validation": {
|
|
"keepOriginal": "Valid (keep original filename)",
|
|
"invalidChars": "Invalid characters detected (a filename cannot contain / \\ < > : \" | ? *)",
|
|
"invalidPlaceholder": "Invalid placeholder: {placeholder}",
|
|
"validTemplate": "Valid template"
|
|
}
|
|
},
|
|
"exampleImages": {
|
|
"downloadLocation": "Download Location",
|
|
"downloadLocationPlaceholder": "Enter folder path for example images",
|
|
"downloadLocationHelp": "Enter the folder path where example images from CivitAI will be saved",
|
|
"autoDownload": "Auto Download Example Images",
|
|
"autoDownloadHelp": "Automatically download example images for models that don't have them (requires download location to be set)",
|
|
"openMode": "Open Example Images Action",
|
|
"openModeHelp": "Choose whether the action opens on the server, copies a mapped local path, or launches a custom URI.",
|
|
"openModeOptions": {
|
|
"system": "Open on server",
|
|
"clipboard": "Copy local path",
|
|
"uriTemplate": "Open custom URI"
|
|
},
|
|
"localRoot": "Local Example Images Root",
|
|
"localRootHelp": "Optional local or mounted root that mirrors the server example images directory. If blank, the server path is reused.",
|
|
"localRootPlaceholder": "Example: /Volumes/ComfyUI/example_images",
|
|
"uriTemplate": "Open URI Template",
|
|
"uriTemplateHelp": "Use a custom deep link such as a file URI or a Shortcuts link.",
|
|
"uriTemplatePlaceholder": "Example: shortcuts://run-shortcut?name=Open%20Finder&input=text&text={{encoded_local_path}}",
|
|
"uriTemplatePlaceholders": "Available placeholders: {{local_path}}, {{encoded_local_path}}, {{relative_path}}, {{encoded_relative_path}}, {{file_uri}}, {{encoded_file_uri}}",
|
|
"openModeWikiLink": "Learn more about remote open modes",
|
|
"optimizeImages": "Optimize Downloaded Images",
|
|
"optimizeImagesHelp": "Optimize example images to reduce file size and improve loading speed (metadata will be preserved)",
|
|
"download": "Download",
|
|
"restartRequired": "Requires restart"
|
|
},
|
|
"versionGrouping": {
|
|
"label": "Version Grouping",
|
|
"help": "Decide how versions are grouped for display: by base model or all together. Also controls update badge logic and the VLM version list filtering.",
|
|
"options": {
|
|
"sameBase": "Group by base model (same_base)",
|
|
"any": "Show all versions (any)"
|
|
}
|
|
},
|
|
"hideEarlyAccessUpdates": {
|
|
"label": "Hide Early Access Updates",
|
|
"help": "When enabled, models with only early access updates will not show 'Update available' badge"
|
|
},
|
|
"hidePaidUpdates": {
|
|
"label": "Hide Paid Updates",
|
|
"help": "When enabled, models with only paid updates will not show 'Update available' badge"
|
|
},
|
|
"licenseIcons": {
|
|
"useNewStyle": "Use updated license icons",
|
|
"useNewStyleHelp": "Display license permissions with colored indicators (new style) or restriction-only icons (classic style). Mirroring the current CivitAI design."
|
|
},
|
|
"misc": {
|
|
"includeTriggerWords": "Include Trigger Words in LoRA Syntax",
|
|
"includeTriggerWordsHelp": "Include trained trigger words when copying LoRA syntax to clipboard",
|
|
"loraSyntaxFormat": "LoRA Syntax Format",
|
|
"loraSyntaxFormatHelp": "LoRA syntax format. Full includes subfolder path (<lora:style/anime/x:1.0>) for lossless model resolution. Legacy uses filename only (<lora:x:1.0>) — A1111 convention, may be ambiguous with duplicate filenames across folders.",
|
|
"loraSyntaxFormatOptions": {
|
|
"full": "Full path (subfolder/name)",
|
|
"legacy": "Legacy A1111 (name only)"
|
|
}
|
|
},
|
|
"metadataArchive": {
|
|
"enableArchiveDb": "Enable Metadata Archive Database",
|
|
"enableArchiveDbHelp": "Use a local database to access metadata for models that have been deleted from CivitAI.",
|
|
"status": "Status",
|
|
"statusAvailable": "Available",
|
|
"statusUnavailable": "Not Available",
|
|
"enabled": "Enabled",
|
|
"management": "Database Management",
|
|
"managementHelp": "Download or remove the metadata archive database",
|
|
"downloadButton": "Download Database",
|
|
"downloadingButton": "Downloading...",
|
|
"downloadedButton": "Downloaded",
|
|
"removeButton": "Remove Database",
|
|
"removingButton": "Removing...",
|
|
"downloadSuccess": "Metadata archive database downloaded successfully",
|
|
"downloadError": "Failed to download metadata archive database",
|
|
"removeSuccess": "Metadata archive database removed successfully",
|
|
"removeError": "Failed to remove metadata archive database",
|
|
"removeConfirm": "Are you sure you want to remove the metadata archive database? This will delete the local database file and you'll need to download it again to use this feature.",
|
|
"preparing": "Preparing download...",
|
|
"connecting": "Connecting to download server...",
|
|
"completed": "Completed",
|
|
"downloadComplete": "Download completed successfully",
|
|
"enableCivarchiveApi": "Enable CivArchive API as metadata provider",
|
|
"enableCivarchiveApiHelp": "When on, CivArchive API is used as a fallback source for model metadata (e.g. for models deleted from CivitAI). Turn off to avoid CivArchive rate limits entirely.",
|
|
"providerOrder": "Metadata provider fallback order",
|
|
"providerOrderHelp": "CivitAI API is always tried first. Choose the order of the remaining providers when looking up metadata.",
|
|
"providerOrderCivitaiArchiveSqlite": "CivitAI → CivArchive → Archive DB",
|
|
"providerOrderCivitaiSqliteArchive": "CivitAI → Archive DB → CivArchive"
|
|
},
|
|
"proxySettings": {
|
|
"enableProxy": "Enable App-level Proxy",
|
|
"enableProxyHelp": "Enable custom proxy settings for this application, overriding system proxy settings",
|
|
"proxyType": "Proxy Type",
|
|
"proxyTypeHelp": "Select the type of proxy server (HTTP, HTTPS, SOCKS4, SOCKS5)",
|
|
"proxyHost": "Proxy Host",
|
|
"proxyHostPlaceholder": "proxy.example.com",
|
|
"proxyHostHelp": "The hostname or IP address of your proxy server",
|
|
"proxyPort": "Proxy Port",
|
|
"proxyPortPlaceholder": "8080",
|
|
"proxyPortHelp": "The port number of your proxy server",
|
|
"proxyUsername": "Username (Optional)",
|
|
"proxyUsernamePlaceholder": "username",
|
|
"proxyUsernameHelp": "Username for proxy authentication (if required)",
|
|
"proxyPassword": "Password (Optional)",
|
|
"proxyPasswordPlaceholder": "password",
|
|
"proxyPasswordHelp": "Password for proxy authentication (if required)"
|
|
},
|
|
"aiProvider": {
|
|
"title": "AI Provider",
|
|
"provider": "Provider",
|
|
"providerHelp": "Choose your LLM provider. Preset providers set the API base URL automatically. Custom lets you specify any OpenAI-compatible endpoint.",
|
|
"providerOptions": {
|
|
"openai": "OpenAI",
|
|
"ollama": "Ollama (local)",
|
|
"deepseek": "DeepSeek",
|
|
"groq": "Groq",
|
|
"openrouter": "OpenRouter",
|
|
"google": "Gemini",
|
|
"opencode-go": "OpenCode Go",
|
|
"custom": "Custom (OpenAI-compatible)"
|
|
},
|
|
"apiBase": "API Base URL",
|
|
"apiBaseHelp": "The base URL for the LLM API. Select a preset or enter a custom URL. The dropdown shows presets for all supported providers.",
|
|
"apiBasePlaceholder": "https://api.openai.com/v1",
|
|
"apiKey": "API Key",
|
|
"apiKeyHelp": "Your LLM provider API key. Stored locally, never sent to any server except your chosen LLM provider.",
|
|
"apiKeyPlaceholder": "sk-...",
|
|
"apiKeyNotSet": "Not set",
|
|
"apiKeyConfigured": "Configured",
|
|
"apiKeySet": "Set up",
|
|
"model": "Model",
|
|
"modelHelp": "The model to use. Select from the dropdown (fetched from your provider) or type a custom model name.",
|
|
"modelPlaceholder": "Select a model..."
|
|
}
|
|
},
|
|
"loras": {
|
|
"controls": {
|
|
"sort": {
|
|
"title": "Sort models by...",
|
|
"name": "Name",
|
|
"nameAsc": "A - Z",
|
|
"nameDesc": "Z - A",
|
|
"date": "Date Added",
|
|
"dateDesc": "Newest",
|
|
"dateAsc": "Oldest",
|
|
"size": "File Size",
|
|
"sizeDesc": "Largest",
|
|
"sizeAsc": "Smallest",
|
|
"usage": "Use Count",
|
|
"usageDesc": "Most",
|
|
"usageAsc": "Least",
|
|
"versionsCount": "Local Versions",
|
|
"versionsCountDesc": "Most versions first",
|
|
"versionsCountAsc": "Fewest versions first",
|
|
"versionIdDesc": "Newest version first",
|
|
"random": "Random",
|
|
"randomAction": "Randomize (shuffle)"
|
|
},
|
|
"refresh": {
|
|
"title": "Refresh model list",
|
|
"full": "Rebuild Cache",
|
|
"fullTooltip": "Reload all model details from metadata files—use if the library looks out of date or after manual edits."
|
|
},
|
|
"fetch": {
|
|
"title": "Fetch metadata from CivitAI",
|
|
"action": "Fetch"
|
|
},
|
|
"download": {
|
|
"title": "Download from URL",
|
|
"action": "Download"
|
|
},
|
|
"bulk": {
|
|
"title": "Bulk Operations",
|
|
"action": "Bulk"
|
|
},
|
|
"duplicates": {
|
|
"title": "Find Duplicates",
|
|
"action": "Duplicates"
|
|
},
|
|
"favorites": {
|
|
"title": "Show Favorites Only",
|
|
"action": "Favorites"
|
|
},
|
|
"updates": {
|
|
"title": "Show models with updates available",
|
|
"action": "Updates",
|
|
"menuLabel": "Show update options",
|
|
"check": "Check updates",
|
|
"checkTooltip": "Checking updates may take a while."
|
|
}
|
|
},
|
|
"bulkOperations": {
|
|
"selected": "{count} selected",
|
|
"selectedSuffix": "selected",
|
|
"viewSelected": "View Selected",
|
|
"addTags": "Add Tags to Selected",
|
|
"setBaseModel": "Set Base Model for Selected",
|
|
"setContentRating": "Set Content Rating for Selected",
|
|
"copyAll": "Copy Selected Syntax",
|
|
"refreshAll": "Refresh Selected Metadata",
|
|
"rematchMetadata": "Rematch Selected to Local Models",
|
|
"reimportMetadata": "Re-import from Source",
|
|
"checkUpdates": "Check Updates for Selected",
|
|
"moveAll": "Move Selected to Folder",
|
|
"autoOrganize": "Auto-Organize Selected",
|
|
"skipMetadataRefresh": "Skip Metadata Refresh for Selected",
|
|
"resumeMetadataRefresh": "Resume Metadata Refresh for Selected",
|
|
"setFavorite": "Set as Favorite",
|
|
"setFavoriteCount": "Set as Favorite ({favorited}/{total})",
|
|
"unfavorite": "Remove from Favorites",
|
|
"deleteAll": "Delete Selected",
|
|
"downloadMissingLoras": "Download Missing LoRAs",
|
|
"downloadExamples": "Download Example Images",
|
|
"downloadMissingExamples": "Download Missing",
|
|
"reprocessExamples": "Re-process All",
|
|
"clear": "Clear Selection",
|
|
"skipMetadataRefreshCount": "Skip ({count} models)",
|
|
"resumeMetadataRefreshCount": "Resume ({count} models)",
|
|
"sendToWorkflow": "Send to Workflow",
|
|
"sections": {
|
|
"workflow": "Workflow",
|
|
"metadata": "Metadata",
|
|
"attributes": "Attributes",
|
|
"organize": "Organize",
|
|
"download": "Download"
|
|
},
|
|
"autoOrganizeProgress": {
|
|
"initializing": "Initializing auto-organize...",
|
|
"starting": "Starting auto-organize for {type}...",
|
|
"processing": "Processing ({processed}/{total}) - {success} moved, {skipped} skipped, {failures} failed",
|
|
"cleaning": "Cleaning up empty directories...",
|
|
"completed": "Completed: {success} moved, {skipped} skipped, {failures} failed",
|
|
"complete": "Auto-organize complete",
|
|
"error": "Error: {error}"
|
|
},
|
|
"filenameTemplateProgress": {
|
|
"initializing": "Initializing filename template apply...",
|
|
"starting": "Applying filename template to {type}...",
|
|
"processing": "Processing ({processed}/{total}) - {success} renamed, {skipped} skipped, {failures} failed",
|
|
"completed": "Completed: {success} renamed, {skipped} skipped, {failures} failed",
|
|
"complete": "Filename template apply complete",
|
|
"error": "Error: {error}"
|
|
},
|
|
"enrichHfAgent": "Enrich Metadata with AI"
|
|
},
|
|
"contextMenu": {
|
|
"refreshMetadata": "Refresh CivitAI Data",
|
|
"checkUpdates": "Check Updates",
|
|
"linkModel": "Link Model",
|
|
"linkCivitai": "Link to CivitAI",
|
|
"linkModelSource": "Link to Model Source",
|
|
"copySyntax": "Copy LoRA Syntax",
|
|
"copyFilename": "Copy Model Filename",
|
|
"copyRecipeSyntax": "Copy Recipe Syntax",
|
|
"sendToWorkflowAppend": "Send to Workflow (Append)",
|
|
"sendToWorkflowReplace": "Send to Workflow (Replace)",
|
|
"openExamples": "Open Examples Folder",
|
|
"downloadExamples": "Download Example Images",
|
|
"downloadMissingExamples": "Download Missing",
|
|
"reprocessExamples": "Re-process All",
|
|
"replacePreview": "Replace Preview",
|
|
"setContentRating": "Set Content Rating",
|
|
"moveToFolder": "Move to Folder",
|
|
"rematchMetadata": "Rematch to local models",
|
|
"reimportMetadata": "Re-import from Source",
|
|
"excludeModel": "Exclude Model",
|
|
"restoreModel": "Restore Model",
|
|
"deleteModel": "Delete Model",
|
|
"shareRecipe": "Share Recipe",
|
|
"viewAllLoras": "View All LoRAs",
|
|
"downloadMissingLoras": "Download Missing LoRAs",
|
|
"deleteRecipe": "Delete Recipe",
|
|
"enrichHfAgent": "Enrich Metadata with AI"
|
|
}
|
|
},
|
|
"recipes": {
|
|
"title": "LoRA Recipes",
|
|
"actions": {
|
|
"sendCheckpoint": "Send to ComfyUI",
|
|
"sendRecipe": "Send to ComfyUI",
|
|
"copyRecipeSyntax": "Copy Recipe Syntax",
|
|
"deleteRecipeWithShortcut": "Delete recipe (Del)"
|
|
},
|
|
"navigation": {
|
|
"label": "Recipe navigation",
|
|
"previousWithShortcut": "Previous recipe (←)",
|
|
"nextWithShortcut": "Next recipe (→)"
|
|
},
|
|
"modal": {
|
|
"metadata": {
|
|
"id": "ID",
|
|
"baseModel": "Base Model",
|
|
"unknown": "Unknown"
|
|
},
|
|
"actions": {
|
|
"openFileLocation": "Open File Location",
|
|
"copyId": "Copy recipe ID"
|
|
},
|
|
"openFileLocation": {
|
|
"success": "File location opened successfully",
|
|
"failed": "Failed to open file location",
|
|
"copied": "Path copied to clipboard: {{path}}",
|
|
"clipboardFallback": "Path: {{path}}"
|
|
}
|
|
},
|
|
"workflow": {
|
|
"sendWorkflow": "Send Workflow to ComfyUI",
|
|
"sent": "Workflow sent to ComfyUI",
|
|
"sendFailed": "Failed to send workflow to ComfyUI",
|
|
"noWorkflow": "No embedded workflow found in this recipe"
|
|
},
|
|
"status": {
|
|
"ready": "Ready to use",
|
|
"missingCount": "{count} missing",
|
|
"deletedCount": "{count} deleted",
|
|
"downloadMissing": "Download {count} missing LoRAs",
|
|
"downloadMissingTooltip": "Click to download missing LoRAs"
|
|
},
|
|
"loraStatus": {
|
|
"none": "No LoRAs in this recipe",
|
|
"allAvailable": "All LoRAs available - Ready to use",
|
|
"missing": "{missing} of {total} LoRAs missing",
|
|
"missingAndUnavailable": "{missing} of {total} LoRAs missing, {unavailable} unavailable (deleted from source or unresolvable hash)",
|
|
"partial": "{unavailable} of {total} LoRAs unavailable (deleted from source or unresolvable hash) - skipped when recipe is used",
|
|
"noneUsable": "No usable LoRAs - {unavailable} of {total} deleted from source or unresolvable hash"
|
|
},
|
|
"resources": {
|
|
"inLibrary": "In Library",
|
|
"notInLibrary": "Not in Library",
|
|
"deleted": "Deleted",
|
|
"hashInvalid": "Unresolvable Hash",
|
|
"inLibraryTooltip": "This model exists in your local library",
|
|
"notInLibraryTooltip": "This model is not in your library",
|
|
"deletedTooltip": "This LoRA was deleted from the source and is no longer available for download",
|
|
"hashInvalidTooltip": "This LoRA hash cannot be resolved on CivitAI - the model may have been updated",
|
|
"noLorasAssociated": "No LoRAs associated with this recipe",
|
|
"noLorasWhyToggle": "Why no LoRAs?",
|
|
"noLorasImportMethod": "Import method",
|
|
"noLorasInferredNote": "Possible reason (inferred) — this recipe was imported before import diagnostics were recorded.",
|
|
"noLorasChannels": {
|
|
"batch_import_url": "Batch import (image URL)",
|
|
"batch_import_local": "Batch import (local file)",
|
|
"url": "Image URL import",
|
|
"local": "Local file import",
|
|
"upload": "Image upload",
|
|
"widget": "Saved from workflow",
|
|
"reimport_url": "Re-import (image URL)",
|
|
"reimport_local": "Re-import (local file)"
|
|
},
|
|
"noLorasReasons": {
|
|
"no_loras_used": "The generation metadata is complete and does not reference any LoRAs.",
|
|
"api_meta_no_lora_resources": "The source API returned no LoRA resource data for this image. LoRAs shown on the CivitAI page may come from internal data that the public API does not expose.",
|
|
"api_meta_missing": "The source API returned no generation metadata for this image.",
|
|
"no_embedded_metadata": "The image has no embedded generation metadata, so LoRA information could not be recovered.",
|
|
"workflow_metadata_limited": "The image's embedded metadata is a ComfyUI workflow; extracting LoRA information from workflows is limited.",
|
|
"video_no_metadata": "Video files do not carry embedded generation metadata.",
|
|
"metadata_unsupported": "The image contains metadata in a format that could not be parsed.",
|
|
"unknown": "The reason could not be determined from the stored recipe data."
|
|
},
|
|
"noLorasDetails": {
|
|
"apiMetaFields": "API metadata fields",
|
|
"modelVersionIds": "Model version IDs reported",
|
|
"embeddedMetadata": "Embedded metadata",
|
|
"present": "found",
|
|
"absent": "none"
|
|
},
|
|
"download": "Download",
|
|
"downloadLoraTooltip": "Download this LoRA",
|
|
"preparingDownload": "Preparing download...",
|
|
"reconnect": "Reconnect",
|
|
"reconnectTooltip": "Reconnect with a local LoRA",
|
|
"reconnectInstructions": "Enter LoRA syntax or name to reconnect:",
|
|
"reconnectExample": "Example: <lora:name:1> or just the name",
|
|
"reconnectPlaceholder": "Enter LoRA name or syntax",
|
|
"reconnectSuggestionsLoading": "Searching local library...",
|
|
"reconnectSuggestionsEmpty": "No matching LoRAs in your local library",
|
|
"reconnectMatchSameHash": "Same hash",
|
|
"reconnectMatchSameVersion": "Same model version",
|
|
"reconnectMatchSimilarFilename": "Similar filename",
|
|
"reconnectMatchSimilarName": "Similar name",
|
|
"undoReconnect": "Undo",
|
|
"undoReconnectTooltip": "Restore the association this entry had before reconnecting",
|
|
"undoReconnectTooltipNamed": "Restore to {name} (the association before reconnecting)",
|
|
"viewOnCivitai": "View on CivitAI",
|
|
"openLoraDetails": "View {name} in the LoRA library",
|
|
"openCheckpointDetails": "View {name} in the model library",
|
|
"checkpointDeletedTooltip": "This checkpoint was deleted from the source and can no longer be downloaded - reconnect it with a local model",
|
|
"checkpointHashInvalidTooltip": "This checkpoint hash cannot be resolved on CivitAI - the model may have been updated",
|
|
"reconnectCheckpoint": "Reconnect",
|
|
"reconnectCheckpointTooltip": "Reconnect with a local checkpoint",
|
|
"checkpointReconnectInstructions": "Enter checkpoint name to reconnect:",
|
|
"checkpointReconnectPlaceholder": "Enter checkpoint name",
|
|
"checkpointReconnectSuggestionsEmpty": "No matching checkpoints in your local library"
|
|
},
|
|
"controls": {
|
|
"import": {
|
|
"action": "Import",
|
|
"title": "Import a recipe from image or URL",
|
|
"dropZoneLabel": "Upload image",
|
|
"dropZoneHint": "Drag & drop an image here, paste from clipboard, or click to browse",
|
|
"orDivider": "or drag & drop / paste an image",
|
|
"imageUrlOrPath": "Image URL or File Path:",
|
|
"urlPlaceholder": "https://civitai.com/images/... or https://civitai.red/images/... or C:/path/to/image.png",
|
|
"fetchImage": "Fetch Image",
|
|
"recipeName": "Recipe Name",
|
|
"recipeNamePlaceholder": "Enter recipe name",
|
|
"tagsOptional": "Tags (optional)",
|
|
"addTagPlaceholder": "Add a tag",
|
|
"addTag": "Add",
|
|
"noTagsAdded": "No tags added",
|
|
"lorasInRecipe": "LoRAs in this Recipe",
|
|
"downloadLocationPreview": "Download Location Preview:",
|
|
"useDefaultPath": "Use Default Path",
|
|
"useDefaultPathTooltip": "When enabled, files are automatically organized using configured path templates",
|
|
"selectLoraRoot": "Select a LoRA root directory",
|
|
"targetFolderPath": "Target Folder Path:",
|
|
"folderPathPlaceholder": "Type folder path or select from tree below...",
|
|
"createNewFolder": "Create new folder",
|
|
"root": "Root",
|
|
"browseFolders": "Browse Folders:",
|
|
"downloadAndSaveRecipe": "Download & Save Recipe",
|
|
"importRecipeOnly": "Import Recipe Only",
|
|
"importAndDownload": "Import & Download",
|
|
"downloadMissingLoras": "Download Missing LoRAs",
|
|
"saveRecipe": "Save Recipe",
|
|
"loraCountInfo": "({existing}/{total} in library)",
|
|
"processingInput": "Processing input...",
|
|
"analyzingMetadata": "Analyzing image metadata...",
|
|
"downloadingLoras": "Downloading LoRAs...",
|
|
"savingRecipe": "Saving recipe...",
|
|
"startingDownload": "Starting download for LoRA {current}/{total}",
|
|
"deletedFromCivitai": "Deleted from CivitAI",
|
|
"inLibrary": "In Library",
|
|
"notInLibrary": "Not in Library",
|
|
"earlyAccessRequired": "This LoRA requires early access payment to download.",
|
|
"earlyAccessEnds": "Early access ends on {date}.",
|
|
"earlyAccess": "Early Access",
|
|
"verifyEarlyAccess": "Verify that you have purchased early access before downloading.",
|
|
"duplicateRecipesFound": "{count} identical recipe(s) found in your library",
|
|
"duplicateRecipesDescription": "These recipes contain the same LoRAs with identical weights.",
|
|
"showDuplicates": "Show duplicates",
|
|
"hideDuplicates": "Hide duplicates",
|
|
"loraCount": "{count} LoRAs",
|
|
"recipePreviewAlt": "Recipe preview",
|
|
"loraPreviewAlt": "LoRA preview",
|
|
"errors": {
|
|
"selectImageFile": "Please select an image file",
|
|
"enterUrlOrPath": "Please enter a URL or file path",
|
|
"invalidUrl": "Please enter a valid URL",
|
|
"invalidInputFormat": "Please enter an image URL or a local image file path",
|
|
"selectLoraRoot": "Please select a LoRA root directory"
|
|
}
|
|
},
|
|
"sort": {
|
|
"title": "Sort recipes by...",
|
|
"name": "Name",
|
|
"nameAsc": "A - Z",
|
|
"nameDesc": "Z - A",
|
|
"date": "Date",
|
|
"dateDesc": "Newest",
|
|
"dateAsc": "Oldest",
|
|
"lorasCount": "LoRA Count",
|
|
"lorasCountDesc": "Most",
|
|
"lorasCountAsc": "Least",
|
|
"opened": "Recently Opened",
|
|
"openedDesc": "Recently opened"
|
|
},
|
|
"refresh": {
|
|
"title": "Refresh recipe list",
|
|
"full": "Rebuild Cache",
|
|
"fullTooltip": "Rebuild cache - full rescan of all recipe files"
|
|
},
|
|
"filteredByLora": "Filtered by LoRA",
|
|
"favorites": {
|
|
"title": "Show Favorites Only",
|
|
"action": "Favorites"
|
|
},
|
|
"layout": {
|
|
"title": "Recipes Layout",
|
|
"grid": "Grid layout",
|
|
"masonry": "Masonry layout (Pinterest-style, preserves image aspect ratio)"
|
|
}
|
|
},
|
|
"duplicates": {
|
|
"finding": "Scanning for duplicate recipes...",
|
|
"found": "Found {count} duplicate groups",
|
|
"noGroups": "No duplicate groups found with the current matching basis",
|
|
"keepLatest": "Keep Latest Versions",
|
|
"deleteSelected": "Delete Selected",
|
|
"includePromptLabel": "Include prompt in matching",
|
|
"basis": {
|
|
"loraCombo": "Matched by: LoRA combination",
|
|
"loraComboAndPrompt": "Matched by: LoRA combination + prompt",
|
|
"hintLoraCombo": "Recipes with the same LoRAs at identical strengths are grouped.",
|
|
"hintPromptIncluded": "Recipes are grouped only when they use the same LoRAs at identical strengths AND have the same prompt."
|
|
}
|
|
},
|
|
"contextMenu": {
|
|
"copyRecipe": {
|
|
"missingId": "Cannot copy recipe: Missing recipe ID",
|
|
"failed": "Failed to copy recipe syntax"
|
|
},
|
|
"sendRecipe": {
|
|
"missingId": "Cannot send recipe: Missing recipe ID",
|
|
"failed": "Failed to send recipe to workflow"
|
|
},
|
|
"viewLoras": {
|
|
"missingId": "Cannot view LoRAs: Missing recipe ID",
|
|
"noLorasFound": "No LoRAs found in this recipe",
|
|
"loadError": "Error loading recipe LoRAs: {message}"
|
|
},
|
|
"downloadMissing": {
|
|
"missingId": "Cannot download LoRAs: Missing recipe ID",
|
|
"noMissingLoras": "No missing LoRAs to download",
|
|
"getInfoFailed": "Failed to get information for missing LoRAs",
|
|
"prepareError": "Error preparing LoRAs for download: {message}"
|
|
},
|
|
"reimport": {
|
|
"starting": "Re-importing recipe from source...",
|
|
"success": "Recipe re-imported successfully",
|
|
"noSourceUrl": "Recipe has no source URL, cannot re-import",
|
|
"failed": "Failed to re-import recipe: {message}",
|
|
"missingId": "Cannot re-import recipe: Missing recipe ID"
|
|
}
|
|
},
|
|
"batchImport": {
|
|
"title": "Batch Import Recipes",
|
|
"action": "Batch Import",
|
|
"urlList": "URL List",
|
|
"directory": "Directory",
|
|
"urlDescription": "Enter image URLs or local file paths (one per line). Each will be imported as a recipe.",
|
|
"directoryDescription": "Enter a directory path to import all images from that folder.",
|
|
"urlsLabel": "Image URLs or Local Paths",
|
|
"urlsPlaceholder": "https://civitai.com/images/...\nhttps://civitai.com/images/...\nC:/path/to/image.png\n...",
|
|
"urlsHint": "Enter one URL or path per line",
|
|
"directoryPath": "Directory Path",
|
|
"directoryPlaceholder": "/path/to/images/folder",
|
|
"browse": "Browse",
|
|
"recursive": "Include subdirectories",
|
|
"tagsOptional": "Tags (optional, applied to all recipes)",
|
|
"tagsPlaceholder": "Enter tags separated by commas",
|
|
"tagsHint": "Tags will be added to all imported recipes",
|
|
"skipNoMetadata": "Skip images without metadata",
|
|
"skipNoMetadataHelp": "Images without LoRA metadata will be skipped automatically.",
|
|
"start": "Start Import",
|
|
"startImport": "Start Import",
|
|
"importing": "Importing...",
|
|
"rateLimitedSlowdown": "Rate limited — slowing down...",
|
|
"rateLimitedHint": "Some items were skipped due to metadata provider rate limits. Re-run the import later to retry them.",
|
|
"progress": "Progress",
|
|
"total": "Total",
|
|
"success": "Success",
|
|
"failed": "Failed",
|
|
"skipped": "Skipped",
|
|
"current": "Current",
|
|
"currentItem": "Current",
|
|
"preparing": "Preparing...",
|
|
"cancel": "Cancel",
|
|
"cancelImport": "Cancel",
|
|
"cancelled": "Import cancelled",
|
|
"completed": "Import completed",
|
|
"completedWithErrors": "Completed with errors",
|
|
"completedSuccess": "Successfully imported {count} recipe(s)",
|
|
"successCount": "Successful",
|
|
"failedCount": "Failed",
|
|
"skippedCount": "Skipped",
|
|
"totalProcessed": "Total processed",
|
|
"viewDetails": "View Details",
|
|
"newImport": "New Import",
|
|
"manualPathEntry": "Please enter the directory path manually. File browser is not available in this browser.",
|
|
"batchImportDirectorySelected": "Directory selected: {path}",
|
|
"batchImportManualEntryRequired": "File browser not available. Please enter the directory path manually.",
|
|
"backToParent": "Back to parent directory",
|
|
"folders": "Folders",
|
|
"folderCount": "{count} folders",
|
|
"imageFiles": "Image Files",
|
|
"images": "images",
|
|
"imageCount": "{count} images",
|
|
"selectFolder": "Select This Folder",
|
|
"errors": {
|
|
"enterUrls": "Please enter at least one URL or path",
|
|
"enterDirectory": "Please enter a directory path",
|
|
"startFailed": "Failed to start import: {message}"
|
|
}
|
|
}
|
|
},
|
|
"checkpoints": {
|
|
"title": "Checkpoint Models",
|
|
"modelTypes": {
|
|
"checkpoint": "Checkpoint",
|
|
"diffusion_model": "Diffusion Model"
|
|
},
|
|
"contextMenu": {
|
|
"moveToOtherTypeFolder": "Move to {otherType} Folder",
|
|
"sendToWorkflow": "Send to Workflow"
|
|
}
|
|
},
|
|
"embeddings": {
|
|
"title": "Embedding Models"
|
|
},
|
|
"other": {
|
|
"title": "Other Models",
|
|
"disabled": {
|
|
"title": "Other Models management is off",
|
|
"description": "Enable it to scan and manage VAE, upscaler, text encoder, CLIP vision and ControlNet files, and to download them from CivitAI.",
|
|
"enableButton": "Enable Other Models",
|
|
"hint": "You can change the managed model types later in Settings > Library.",
|
|
"enableFailed": "Failed to enable Other Models",
|
|
"downloadBlocked": "Other Models management is disabled for this model type. Enable it in Settings > Library to download this file.",
|
|
"enableAction": "Enable Other Models"
|
|
},
|
|
"noPaths": {
|
|
"title": "No other-model folders found",
|
|
"descriptionStandalone": "Other Models management is on, but no other-model folders were found. Add your model folders under Settings → Model Paths, then restart LoRA Manager.",
|
|
"hintStandalone": "Only enabled model types are scanned; enable the types you need under Library → Folder Settings.",
|
|
"descriptionComfyUI": "Other Models management is on, but none of the configured model folders exist on disk. Add the matching model folders to your ComfyUI model paths, then reload this page.",
|
|
"hintComfyUI": "Other models are read from ComfyUI's vae, upscale_models, text_encoders, clip_vision and controlnet folders.",
|
|
"openSettings": "Open Settings",
|
|
"openModelPaths": "Configure Model Folders",
|
|
"openSettingsFolder": "Open Settings Folder"
|
|
}
|
|
},
|
|
"sidebar": {
|
|
"modelRoot": "Root",
|
|
"collapseAll": "Collapse All Folders",
|
|
"collapseAllDisabled": "Not available in list view",
|
|
"hideOnThisPage": "Hide sidebar on this page",
|
|
"showSidebar": "Show sidebar",
|
|
"sidebarHiddenNotification": "Folder sidebar hidden on {page} page",
|
|
"viewOptions": "View options",
|
|
"treeView": "Tree view",
|
|
"listView": "List view",
|
|
"recursiveOn": "Include subfolders",
|
|
"createFolder": "New folder",
|
|
"newSubfolder": "New subfolder",
|
|
"showEmptyFolders": "Show empty folders",
|
|
"createFolderResult": {
|
|
"success": "Folder \"{name}\" created",
|
|
"failed": "Failed to create folder: {message}",
|
|
"unsupported": "Folder creation is not supported on this page",
|
|
"noRoot": "No model root is configured"
|
|
},
|
|
"deleteFolder": "Delete folder",
|
|
"deleteFolderModal": {
|
|
"title": "Delete folder?",
|
|
"message": "The folder and everything inside it will be permanently removed from disk.",
|
|
"folderLabel": "Folder",
|
|
"emptyNote": "This folder contains no models. Any other files it holds will be deleted too.",
|
|
"notEmptyTitle": "Folder is not empty",
|
|
"notEmptyMessage": "This folder still contains models. Delete or move them first — deleting a folder never cascades over model files.",
|
|
"confirm": "Delete folder"
|
|
},
|
|
"deleteFolderResult": {
|
|
"success": "Folder \"{name}\" deleted",
|
|
"successWithFiles": "Folder \"{name}\" deleted along with {count} other item(s)",
|
|
"restored": "Folder restored",
|
|
"failed": "Failed to delete folder: {message}",
|
|
"notEmpty": "This folder still contains models. Refresh the sidebar and try again.",
|
|
"busy": "A deletion is still pending inside this folder. Wait for the undo window to expire.",
|
|
"unsupported": "Folder deletion is not supported on this page",
|
|
"noRoot": "No model root is configured"
|
|
},
|
|
"renameFolder": "Rename folder",
|
|
"renameFolderResult": {
|
|
"success": "Folder renamed to \"{name}\"",
|
|
"failed": "Failed to rename folder: {message}",
|
|
"targetExists": "A folder with that name already exists here",
|
|
"busy": "A deletion is still pending inside this folder. Wait for the undo window to expire.",
|
|
"unsupported": "Folder renaming is not supported on this page",
|
|
"noRoot": "No model root is configured"
|
|
},
|
|
"dragDrop": {
|
|
"unableToResolveRoot": "Unable to determine destination path for move.",
|
|
"moveUnsupported": "Move is not supported for this item.",
|
|
"newFolderName": "New folder name",
|
|
"emptyFolderName": "Please enter a folder name",
|
|
"invalidFolderName": "Folder name contains invalid characters",
|
|
"noDragState": "No pending drag operation found"
|
|
},
|
|
"empty": {
|
|
"noFolders": "No folders found",
|
|
"createHint": "Click the New Folder button above to create folders"
|
|
},
|
|
"folderUpdateCheck": {
|
|
"label": "Check for updates in this folder",
|
|
"loading": "Checking {type} updates for this folder...",
|
|
"success": "Found {count} update(s) for {type}s in this folder",
|
|
"none": "All {type}s in this folder are up to date",
|
|
"error": "Failed to check folder for {type} updates: {message}"
|
|
}
|
|
},
|
|
"statistics": {
|
|
"title": "Statistics",
|
|
"tabs": {
|
|
"overview": "Overview",
|
|
"usage": "Usage Analysis",
|
|
"collection": "Collection",
|
|
"storage": "Storage",
|
|
"insights": "Insights"
|
|
},
|
|
"metrics": {
|
|
"totalModels": "Total Models",
|
|
"totalStorage": "Total Storage",
|
|
"totalGenerations": "Total Generations",
|
|
"usageRate": "Usage Rate",
|
|
"loras": "LoRAs",
|
|
"checkpoints": "Checkpoints",
|
|
"embeddings": "Embeddings",
|
|
"uniqueTags": "Unique Tags",
|
|
"unusedModels": "Unused Models",
|
|
"avgUsesPerModel": "Avg. Uses/Model"
|
|
},
|
|
"usage": {
|
|
"mostUsedLoras": "Most Used LoRAs",
|
|
"mostUsedCheckpoints": "Most Used Checkpoints",
|
|
"mostUsedEmbeddings": "Most Used Embeddings"
|
|
},
|
|
"collection": {
|
|
"popularTags": "Popular Tags",
|
|
"modelTypes": "Model Types",
|
|
"collectionAnalysis": "Collection Analysis"
|
|
},
|
|
"storage": {
|
|
"storageUsage": "Storage Usage",
|
|
"largestModels": "Largest Models",
|
|
"storageEfficiency": "Storage vs Usage Efficiency"
|
|
},
|
|
"insights": {
|
|
"smartInsights": "Smart Insights",
|
|
"recommendations": "Recommendations",
|
|
"noInsights": "No insights available",
|
|
"unusedLoras": {
|
|
"high": {
|
|
"title": "High Number of Unused LoRAs",
|
|
"description": "{percent}% of your LoRAs ({count}/{total}) have never been used.",
|
|
"suggestion": "Consider organizing or archiving unused models to free up storage space."
|
|
}
|
|
},
|
|
"unusedCheckpoints": {
|
|
"detected": {
|
|
"title": "Unused Checkpoints Detected",
|
|
"description": "{percent}% of your checkpoints ({count}/{total}) have never been used.",
|
|
"suggestion": "Review and consider removing checkpoints you no longer need."
|
|
}
|
|
},
|
|
"unusedEmbeddings": {
|
|
"high": {
|
|
"title": "High Number of Unused Embeddings",
|
|
"description": "{percent}% of your embeddings ({count}/{total}) have never been used.",
|
|
"suggestion": "Consider organizing or archiving unused embeddings to optimize your collection."
|
|
}
|
|
},
|
|
"collection": {
|
|
"large": {
|
|
"title": "Large Collection Detected",
|
|
"description": "Your model collection is using {size} of storage.",
|
|
"suggestion": "Consider using external storage or cloud solutions for better organization."
|
|
}
|
|
},
|
|
"activity": {
|
|
"active": {
|
|
"title": "Active User",
|
|
"description": "You've completed {count} generations so far!",
|
|
"suggestion": "Keep exploring and creating amazing content with your models."
|
|
}
|
|
}
|
|
},
|
|
"charts": {
|
|
"collectionOverview": "Collection Overview",
|
|
"baseModelDistribution": "Base Model Distribution",
|
|
"usageTrends": "Usage Trends (Last 30 Days)",
|
|
"usageDistribution": "Usage Distribution",
|
|
"date": "Date",
|
|
"usageCount": "Usage Count",
|
|
"fileSizeBytes": "File Size (bytes)",
|
|
"models": "Models",
|
|
"loraUsage": "LoRA Usage",
|
|
"checkpointUsage": "Checkpoint Usage",
|
|
"embeddingUsage": "Embedding Usage"
|
|
},
|
|
"modelTypes": {
|
|
"lora": "LoRA",
|
|
"locon": "LyCORIS",
|
|
"dora": "DoRA",
|
|
"checkpoint": "Checkpoint",
|
|
"diffusion_model": "Diffusion Model",
|
|
"embedding": "Embeddings"
|
|
},
|
|
"placeholders": {
|
|
"loading": "Loading...",
|
|
"noModels": "No models found",
|
|
"errorLoading": "Error loading data",
|
|
"noStorageData": "No storage data available",
|
|
"rootFolder": "Root",
|
|
"chartLibraryMissing": "Chart requires Chart.js library"
|
|
},
|
|
"tooltips": {
|
|
"tagCount": "{tag}: {count} models",
|
|
"chartUsage": "{name}: {size}, {count} uses",
|
|
"chartPercentage": "{label}: {value} ({pct}%)"
|
|
}
|
|
},
|
|
"modals": {
|
|
"exclude": {
|
|
"confirm": "Exclude"
|
|
},
|
|
"download": {
|
|
"title": "Download Model from URL",
|
|
"titleWithType": "Download {type} from URL",
|
|
"civitaiUrl": "Model URL(s):",
|
|
"placeholder": "https://civitai.com/models/...",
|
|
"urlHint": "Enter one CivitAI, CivArchive, Hugging Face, or ModelScope URL per line. Supports multiple URLs for batch download.",
|
|
"selectHfFiles": "Select file(s) to download from this repository:",
|
|
"selectAll": "Select All",
|
|
"fetchingRepoFiles": "Fetching repository files...",
|
|
"locationPreview": "Download Location Preview",
|
|
"useDefaultPath": "Use Default Path",
|
|
"useDefaultPathTooltip": "When enabled, files are automatically organized using configured path templates",
|
|
"selectRootDirectory": "Select a root directory",
|
|
"selectModelRoot": "Select Model Root:",
|
|
"selectTypeRoot": "Select {type} Root:",
|
|
"targetFolderPath": "Target Folder Path:",
|
|
"browseFolders": "Browse Folders:",
|
|
"createNewFolder": "Create new folder",
|
|
"pathPlaceholder": "Type folder path or select from tree below...",
|
|
"root": "Root",
|
|
"download": "Download",
|
|
"fetchingVersions": "Fetching model versions...",
|
|
"versionPreview": "Version preview",
|
|
"earlyAccess": "Early Access",
|
|
"earlyAccessTooltip": "Early access required",
|
|
"inLibrary": "In Library",
|
|
"downloaded": "Downloaded",
|
|
"downloadedTooltip": "Previously downloaded, but it is not currently in your library.",
|
|
"alreadyInLibrary": "Already in Library",
|
|
"partiallyDownloaded": "Partially downloaded",
|
|
"autoOrganizedPath": "[Auto-organized by path template]",
|
|
"fileSelection": {
|
|
"title": "Select File Format",
|
|
"files": "files",
|
|
"select": "Select File",
|
|
"inLibrary": "In Library"
|
|
},
|
|
"errors": {
|
|
"invalidUrl": "Invalid model URL format",
|
|
"noVersions": "No versions available for this model",
|
|
"mixedSources": "Cannot mix CivitAI and Hugging Face / ModelScope URLs in the same batch.",
|
|
"noModelFiles": "No model files found in this repository."
|
|
},
|
|
"status": {
|
|
"preparing": "Preparing download...",
|
|
"downloadedPreview": "Downloaded preview image",
|
|
"downloadingFile": "Downloading {type} file",
|
|
"finalizing": "Finalizing download...",
|
|
"cancelling": "Cancelling download...",
|
|
"cancelled": "Download cancelled"
|
|
},
|
|
"progress": {
|
|
"currentFile": "Current file:",
|
|
"downloading": "Downloading: {name}",
|
|
"metadata": "Metadata: {name}",
|
|
"indexingFile": "Reading model file...",
|
|
"fetchingSourceMetadata": "Fetching metadata from {source}...",
|
|
"fetchingMetadata": "Fetching metadata...",
|
|
"transferred": "Transferred: {downloaded} / {total}",
|
|
"transferredSimple": "Transferred: {downloaded}",
|
|
"transferredUnknown": "Transferred: --",
|
|
"speed": "Speed: {speed}"
|
|
}
|
|
},
|
|
"move": {
|
|
"title": "Move Models"
|
|
},
|
|
"contentRating": {
|
|
"title": "Set Content Rating",
|
|
"current": "Current",
|
|
"multiple": "Multiple values",
|
|
"levels": {
|
|
"pg": "PG",
|
|
"pg13": "PG13",
|
|
"r": "R",
|
|
"x": "X",
|
|
"xxx": "XXX"
|
|
}
|
|
},
|
|
"deleteModel": {
|
|
"freesSpace": "Frees {size}",
|
|
"title": "Delete Model",
|
|
"message": "Are you sure you want to delete this model and all associated files?",
|
|
"recoverableWarning": "This will permanently delete the file after 20 seconds unless you undo."
|
|
},
|
|
"deleteRecipe": {
|
|
"recoverableWarning": "This action can be undone for 20 seconds."
|
|
},
|
|
"excludeModel": {
|
|
"title": "Exclude Model",
|
|
"message": "Are you sure you want to exclude this model? Excluded models won't appear in searches or model lists."
|
|
},
|
|
"deleteDuplicateRecipes": {
|
|
"title": "Delete Duplicate Recipes",
|
|
"message": "Are you sure you want to delete the selected duplicate recipes?",
|
|
"countMessage": "recipes will be permanently deleted."
|
|
},
|
|
"deleteDuplicateModels": {
|
|
"title": "Delete Duplicate Models",
|
|
"message": "Are you sure you want to delete the selected duplicate models?",
|
|
"countMessage": "models will be permanently deleted."
|
|
},
|
|
"clearCache": {
|
|
"title": "Clear Cache Files",
|
|
"message": "Are you sure you want to clear all cache files?",
|
|
"description": "This will remove all cached model data. The system will need to rebuild the cache on next startup, which may take some time depending on your model collection size.",
|
|
"action": "Clear Cache"
|
|
},
|
|
"bulkDelete": {
|
|
"title": "Delete Multiple Models",
|
|
"message": "Are you sure you want to delete all selected models and their associated files?",
|
|
"countMessage": "models will be permanently deleted.",
|
|
"action": "Delete All"
|
|
},
|
|
"bulkDeleteRecipes": {
|
|
"title": "Delete Multiple Recipes",
|
|
"message": "Are you sure you want to delete all selected recipes and their associated files?",
|
|
"countMessage": "recipes will be permanently deleted.",
|
|
"action": "Delete All"
|
|
},
|
|
"checkUpdates": {
|
|
"title": "Check updates for all {typePlural}?",
|
|
"message": "This checks every {typePlural} in your library for updates. Large collections may take a little longer.",
|
|
"tip": "To work in smaller batches, switch to bulk mode, choose the ones you need, then use \"Check Updates for Selected\".",
|
|
"action": "Check All"
|
|
},
|
|
"bulkAddTags": {
|
|
"title": "Add Tags to Multiple Models",
|
|
"description": "Add tags to",
|
|
"models": "models",
|
|
"tagsToAdd": "Tags to Add",
|
|
"placeholder": "Enter tag and press Enter...",
|
|
"appendTags": "Append Tags",
|
|
"replaceTags": "Replace Tags",
|
|
"saveChanges": "Save changes"
|
|
},
|
|
"bulkBaseModel": {
|
|
"title": "Set Base Model for Multiple Models",
|
|
"description": "Set base model for",
|
|
"models": "models",
|
|
"selectBaseModel": "Select Base Model",
|
|
"save": "Update Base Model",
|
|
"cancel": "Cancel"
|
|
},
|
|
"bulkDownloadMissingLoras": {
|
|
"title": "Download Missing LoRAs",
|
|
"message": "Found {uniqueCount} unique missing LoRAs (from {totalCount} total across selected recipes).",
|
|
"previewTitle": "LoRAs to download:",
|
|
"moreItems": "...and {count} more",
|
|
"note": "Files will be downloaded using default path templates. This may take a while depending on the number of LoRAs.",
|
|
"downloadButton": "Download {count} LoRA(s)"
|
|
},
|
|
"rematchOptions": {
|
|
"title": "Rematch Recipes",
|
|
"messageGlobal": "All recipes will be scanned against your local model library.",
|
|
"messageSingle": "This recipe will be scanned against your local model library.",
|
|
"messageBulk": "{count} selected recipe(s) will be scanned against your local model library.",
|
|
"relaxedLabel": "Also reconnect missing models by file name",
|
|
"relaxedDescription": "These models could also be fixed by downloading — download is more accurate. Matches may link a different version; they'll be listed for review and can be undone.",
|
|
"confirmButton": "Rematch"
|
|
},
|
|
"rematchResults": {
|
|
"undo": "Undo",
|
|
"undone": "Undone",
|
|
"undoFailed": "Failed to undo rematch: {message}"
|
|
},
|
|
"rematchSummary": {
|
|
"title": "Rematch Summary",
|
|
"successMessage": "Matched {entries} entries",
|
|
"failed": "Rematch failed",
|
|
"completedWithWarnings": "Rematch completed — review recommended",
|
|
"cancelledNote": "Run cancelled before completion — counts are partial.",
|
|
"statMatched": "Matched entries",
|
|
"statReview": "Needs review",
|
|
"statUnresolved": "Unresolved",
|
|
"statErrors": "Errors",
|
|
"reviewSection": "Filename matches to review ({count})",
|
|
"columnRecipe": "Recipe",
|
|
"columnEntry": "Entry",
|
|
"columnFile": "Matched file",
|
|
"columnUndo": "Undo",
|
|
"copyReport": "Copy Report",
|
|
"close": "Close",
|
|
"scope_global": "All recipes",
|
|
"scope_bulk": "Selected recipes",
|
|
"scope_single": "Single recipe"
|
|
},
|
|
"exampleAccess": {
|
|
"title": "Local Example Images",
|
|
"message": "No local example images found for this model. View options:",
|
|
"downloadOption": {
|
|
"title": "Download from CivitAI",
|
|
"description": "Save remote examples locally for offline use and faster loading"
|
|
},
|
|
"importOption": {
|
|
"title": "Import Your Own",
|
|
"description": "Add your own custom examples for this model"
|
|
},
|
|
"footerNote": "Remote examples are still viewable in the model details even without local copies"
|
|
},
|
|
"moveModel": {
|
|
"targetLocationPreview": "Target Location Preview:",
|
|
"selectModelRoot": "Select Model Root:",
|
|
"targetFolderPath": "Target Folder Path:",
|
|
"browseFolders": "Browse Folders:",
|
|
"createNewFolder": "Create new folder",
|
|
"pathPlaceholder": "Type folder path or select from tree below...",
|
|
"root": "Root"
|
|
},
|
|
"linkModelSource": {
|
|
"title": "Link to Model Source",
|
|
"infoText": "Paste the model page URL to associate this model with its source. Linking enables AI-powered metadata enrichment for Hugging Face and ModelScope models.",
|
|
"urlLabel": "Model Page URL:",
|
|
"urlPlaceholder": "https://huggingface.co/user/repo",
|
|
"helpText": "Enter the full URL of the model page. Supported sites:",
|
|
"enrichNote": "AI enrichment needs a readable model card. Sites that don't expose one (currently TensorArt) can only be linked.",
|
|
"urlRequired": "Please enter a model page URL.",
|
|
"invalidUrl": "Unsupported URL. Supported sites: Hugging Face, ModelScope, TensorArt.",
|
|
"linking": "Linking model source...",
|
|
"confirmAction": "Save & Link"
|
|
},
|
|
"relinkCivitai": {
|
|
"title": "Re-link to CivitAI",
|
|
"warning": "Warning:",
|
|
"warningText": "This is a potentially destructive operation. Re-linking will:",
|
|
"warningList": {
|
|
"overrideMetadata": "Override existing metadata",
|
|
"modifyHash": "Potentially modify the model hash",
|
|
"unintendedConsequences": "May have other unintended consequences"
|
|
},
|
|
"proceedText": "Only proceed if you're sure this is what you want.",
|
|
"urlLabel": "CivitAI Model URL:",
|
|
"urlPlaceholder": "https://civitai.com/models/12345/model-name?modelVersionId=67890 or https://civitai.red/models/12345/model-name?modelVersionId=67890",
|
|
"helpText": {
|
|
"title": "Paste any CivitAI or CivitArchive model URL. Supported formats:",
|
|
"format1": "https://civitai.com/models/12345",
|
|
"format2": "https://civitai.com/models/12345?modelVersionId=67890",
|
|
"format3": "https://civitai.com/models/12345/model-name?modelVersionId=67890",
|
|
"note": "Note: If no modelVersionId is provided, the latest version will be used.",
|
|
"format4": "https://civarchive.com/models/12345 (CivArchive)"
|
|
},
|
|
"confirmAction": "Confirm Re-link"
|
|
},
|
|
"model": {
|
|
"actions": {
|
|
"editModelName": "Edit model name",
|
|
"editFileName": "Edit file name",
|
|
"editBaseModel": "Edit base model",
|
|
"editVersionName": "Edit version name",
|
|
"viewOnCivitai": "View on CivitAI",
|
|
"viewOnCivitaiText": "View on CivitAI",
|
|
"viewOnHuggingFace": "View on Hugging Face",
|
|
"viewOnHuggingFaceText": "View on Hugging Face",
|
|
"viewCreatorProfile": "View Creator Profile",
|
|
"openFileLocation": "Open File Location",
|
|
"sendToWorkflow": "Send to ComfyUI",
|
|
"sendToWorkflowText": "Send to ComfyUI",
|
|
"copyHash": "Copy hash",
|
|
"deleteModelWithShortcut": "Delete model (Del)"
|
|
},
|
|
"openFileLocation": {
|
|
"success": "File location opened successfully",
|
|
"failed": "Failed to open file location",
|
|
"copied": "Path copied to clipboard: {{path}}",
|
|
"clipboardFallback": "Path: {{path}}"
|
|
},
|
|
"sendToWorkflow": {
|
|
"noFilePath": "Unable to send to ComfyUI: No file path available"
|
|
},
|
|
"metadata": {
|
|
"version": "Version",
|
|
"fileName": "File Name",
|
|
"location": "Location",
|
|
"baseModel": "Base Model",
|
|
"size": "Size",
|
|
"hashes": "Hashes",
|
|
"unknown": "Unknown",
|
|
"usageTips": "Usage Tips",
|
|
"additionalNotes": "Additional Notes",
|
|
"notesHint": "Press Enter to save, Shift+Enter for new line",
|
|
"addNotesPlaceholder": "Add your notes here...",
|
|
"aboutThisVersion": "About this version",
|
|
"baseModelSearchPlaceholder": "Search base model…",
|
|
"baseModelSuggested": "Suggested",
|
|
"baseModelNoMatch": "No matching base models"
|
|
},
|
|
"notes": {
|
|
"saved": "Notes saved successfully",
|
|
"saveFailed": "Failed to save notes",
|
|
"showMore": "Show more",
|
|
"showLess": "Show less"
|
|
},
|
|
"usageTips": {
|
|
"addPresetParameter": "Add preset parameter...",
|
|
"strengthMin": "Strength Min",
|
|
"strengthMax": "Strength Max",
|
|
"strengthRange": "Strength Range",
|
|
"strength": "Strength",
|
|
"clipStrength": "Clip Strength",
|
|
"clipSkip": "Clip Skip",
|
|
"valuePlaceholder": "Value",
|
|
"add": "Add",
|
|
"invalidRange": "Invalid range format. Use x.x-y.y",
|
|
"invalidValue": "Please enter a valid number",
|
|
"saveFailed": "Failed to save preset parameter",
|
|
"added": "Preset parameter added",
|
|
"updated": "Preset parameter updated"
|
|
},
|
|
"triggerWords": {
|
|
"label": "Trigger Words",
|
|
"noTriggerWordsNeeded": "No trigger word needed",
|
|
"edit": "Edit trigger words",
|
|
"cancel": "Cancel editing",
|
|
"save": "Save changes",
|
|
"addPlaceholder": "Type to add or click suggestions below",
|
|
"editWord": "Edit trigger word",
|
|
"editPlaceholder": "Edit trigger word",
|
|
"copyOrEditWord": "Click to copy, double-click to edit",
|
|
"deleteWord": "Delete trigger word",
|
|
"suggestions": {
|
|
"noSuggestions": "No suggestions available",
|
|
"noTrainedWords": "No trained words or class tokens found in this model. You can manually enter trigger words.",
|
|
"classToken": "Class Token",
|
|
"classTokenDescription": "Add to your prompt for best results",
|
|
"wordSuggestions": "Word Suggestions",
|
|
"wordsFound": "{count} words found",
|
|
"loading": "Loading suggestions..."
|
|
}
|
|
},
|
|
"description": {
|
|
"noDescription": "No model description available",
|
|
"failedToLoad": "Failed to load model description",
|
|
"editTitle": "Edit model description",
|
|
"validation": {
|
|
"cannotBeEmpty": "Description cannot be empty"
|
|
},
|
|
"messages": {
|
|
"updated": "Model description updated",
|
|
"updateFailed": "Failed to update model description"
|
|
}
|
|
},
|
|
"tabs": {
|
|
"examples": "Examples",
|
|
"description": "Model Description",
|
|
"recipes": "Recipes",
|
|
"versions": "Versions"
|
|
},
|
|
"navigation": {
|
|
"label": "Model navigation",
|
|
"previousWithShortcut": "Previous model (←)",
|
|
"nextWithShortcut": "Next model (→)",
|
|
"noPrevious": "No previous model available",
|
|
"noNext": "No next model available"
|
|
},
|
|
"license": {
|
|
"noImageSell": "No selling generated content",
|
|
"noRentCivit": "No CivitAI generation",
|
|
"noRent": "No generation services",
|
|
"noSell": "No selling models",
|
|
"creditRequired": "Creator credit required",
|
|
"noDerivatives": "No sharing merges",
|
|
"noReLicense": "Same permissions required",
|
|
"restrictionsLabel": "License restrictions"
|
|
},
|
|
"loading": {
|
|
"exampleImages": "Loading example images...",
|
|
"description": "Loading model description...",
|
|
"recipes": "Loading recipes...",
|
|
"examples": "Loading examples...",
|
|
"versions": "Loading versions..."
|
|
},
|
|
"showcase": {
|
|
"hiddenBySfw": "{count} hidden by SFW-only setting",
|
|
"showExamples": "Show examples",
|
|
"showCount": "Show examples ({count})",
|
|
"hideExamples": "Hide examples",
|
|
"addExamples": "Add examples",
|
|
"previousExample": "Previous example ([)",
|
|
"nextExample": "Next example (])",
|
|
"noExamples": "No example images available",
|
|
"addMoreExamples": "Add more examples",
|
|
"dragDrop": "Drag & drop images or videos here",
|
|
"or": "or",
|
|
"selectFiles": "Select Files",
|
|
"supportedFormats": "Supported formats: jpg, png, gif, webp, avif, jxl, mp4, webm",
|
|
"importing": "Importing files...",
|
|
"noSupportedFiles": "No supported files selected. Please select image or video files.",
|
|
"allFiltered": "All example images are filtered due to NSFW content settings",
|
|
"sfwOnlyEnabled": "Your settings are currently set to show only safe-for-work content",
|
|
"changeInSettings": "You can change this in Settings",
|
|
"nsfwMature": "Mature Content",
|
|
"nsfwR": "R-rated Content",
|
|
"nsfwX": "X-rated Content",
|
|
"nsfwXxx": "XXX-rated Content"
|
|
},
|
|
"versions": {
|
|
"heading": "Model versions",
|
|
"copy": "Track and manage every version of this model in one place.",
|
|
"media": {
|
|
"placeholder": "No preview"
|
|
},
|
|
"labels": {
|
|
"unnamed": "Untitled Version",
|
|
"noDetails": "No additional details",
|
|
"earlyAccess": "EA"
|
|
},
|
|
"eaTime": {
|
|
"endingSoon": "ending soon",
|
|
"hours": "in {count}h",
|
|
"days": "in {count}d"
|
|
},
|
|
"badges": {
|
|
"current": "Opened Version",
|
|
"currentTooltip": "This is the version you opened this modal from",
|
|
"inLibrary": "In Library",
|
|
"inLibraryTooltip": "This version exists in your local library",
|
|
"downloaded": "Downloaded",
|
|
"downloadedTooltip": "This version was downloaded before, but is not currently in your library",
|
|
"newer": "Newer Version",
|
|
"newerTooltip": "This version is newer than your latest local version",
|
|
"earlyAccess": "Early Access",
|
|
"earlyAccessTooltip": "This version currently requires CivitAI early access",
|
|
"paid": "Paid",
|
|
"paidTooltip": "This version requires payment to download",
|
|
"ignored": "Ignored",
|
|
"ignoredTooltip": "Update notifications are disabled for this version",
|
|
"onSiteOnly": "On-Site Only",
|
|
"onSiteOnlyTooltip": "This version is only available for on-site generation on CivitAI"
|
|
},
|
|
"actions": {
|
|
"download": "Download",
|
|
"downloadTooltip": "Download this version",
|
|
"downloadChooseFilesTooltip": "Choose which files to download",
|
|
"downloadEarlyAccessTooltip": "Download this early access version from CivitAI",
|
|
"downloadPaidTooltip": "Download this paid version from CivitAI",
|
|
"downloadNotAllowedTooltip": "This version is only available for on-site generation on CivitAI",
|
|
"delete": "Delete",
|
|
"deleteTooltip": "Delete this local version",
|
|
"ignore": "Ignore",
|
|
"unignore": "Unignore",
|
|
"ignoreTooltip": "Ignore update notifications for this version",
|
|
"unignoreTooltip": "Resume update notifications for this version",
|
|
"viewVersionOnCivitai": "View version on CivitAI",
|
|
"earlyAccessTooltip": "Requires early access purchase",
|
|
"resumeModelUpdates": "Resume updates for this model",
|
|
"ignoreModelUpdates": "Ignore updates for this model",
|
|
"viewLocalVersions": "View all local versions",
|
|
"viewLocalTooltip": "Show all local versions of this model on the main page"
|
|
},
|
|
"filters": {
|
|
"label": "Base filter",
|
|
"state": {
|
|
"showAll": "All versions",
|
|
"showSameBase": "Same base"
|
|
},
|
|
"tooltip": {
|
|
"showAllVersions": "Switch to showing all versions",
|
|
"showSameBaseVersions": "Switch to showing only versions that match the current base model"
|
|
},
|
|
"empty": "No versions match the current base model filter."
|
|
},
|
|
"empty": "No version history available for this model yet.",
|
|
"error": "Failed to load versions.",
|
|
"missingModelId": "This model is missing a CivitAI model id.",
|
|
"sourceGroupInfo": "This is a {source} model group. Open the library to see all versions in the grid.",
|
|
"confirm": {
|
|
"delete": "Delete this version from your library?"
|
|
},
|
|
"toast": {
|
|
"modelIgnored": "Updates ignored for this model",
|
|
"modelResumed": "Update tracking resumed",
|
|
"versionIgnored": "Updates ignored for this version",
|
|
"versionUnignored": "Version re-enabled",
|
|
"versionDeleted": "Version deleted"
|
|
}
|
|
}
|
|
},
|
|
"metadataFetchSummary": {
|
|
"title": "Metadata Fetch Summary",
|
|
"statSuccess": "Success",
|
|
"statFailed": "Failed",
|
|
"statSkipped": "Skipped",
|
|
"statTotal": "Total Scanned",
|
|
"statDuration": "Duration",
|
|
"successMessage": "All {count} {type}s updated successfully!",
|
|
"failedItems": "Failed Items ({count})",
|
|
"close": "Close",
|
|
"copyReport": "Copy Report",
|
|
"downloadCsv": "Download CSV",
|
|
"columnModelName": "Model Name",
|
|
"columnError": "Error"
|
|
},
|
|
"downloadBatchSummary": {
|
|
"title": "Batch Download Summary",
|
|
"statSuccess": "Success",
|
|
"statFailed": "Failed",
|
|
"statTotal": "Total",
|
|
"successMessage": "All {count} models downloaded successfully",
|
|
"completedWithErrors": "Completed with errors",
|
|
"failed": "Download failed",
|
|
"failedItems": "Failed Items ({count})",
|
|
"columnName": "Model Name",
|
|
"columnError": "Error",
|
|
"close": "Close",
|
|
"copyReport": "Copy Report",
|
|
"retryFailed": "Retry Failed ({count})"
|
|
}
|
|
},
|
|
"modelTags": {
|
|
"messages": {
|
|
"updated": "Tags updated successfully",
|
|
"updateFailed": "Failed to update tags"
|
|
},
|
|
"validation": {
|
|
"maxLength": "Tag should not exceed 30 characters",
|
|
"maxCount": "Maximum 30 tags allowed",
|
|
"duplicate": "This tag already exists"
|
|
}
|
|
},
|
|
"initialization": {
|
|
"title": "Initializing",
|
|
"message": "Preparing your workspace...",
|
|
"status": "Initializing...",
|
|
"estimatingTime": "Estimating time...",
|
|
"loras": {
|
|
"title": "Initializing LoRA Manager",
|
|
"message": "Scanning and building LoRA cache. This may take a few minutes..."
|
|
},
|
|
"checkpoints": {
|
|
"title": "Initializing Checkpoint Manager",
|
|
"message": "Scanning and building checkpoint cache. This may take a few minutes..."
|
|
},
|
|
"embeddings": {
|
|
"title": "Initializing Embedding Manager",
|
|
"message": "Scanning and building embedding cache. This may take a few minutes..."
|
|
},
|
|
"other": {
|
|
"title": "Initializing Other Models Manager",
|
|
"message": "Scanning and building model cache. This may take a few minutes..."
|
|
},
|
|
"recipes": {
|
|
"title": "Initializing Recipe Manager",
|
|
"message": "Loading and processing recipes. This may take a few minutes..."
|
|
},
|
|
"statistics": {
|
|
"title": "Initializing Statistics",
|
|
"message": "Processing model data for statistics. This may take a few minutes..."
|
|
},
|
|
"tips": {
|
|
"title": "Tips & Tricks",
|
|
"civitai": {
|
|
"title": "CivitAI Integration",
|
|
"description": "Connect your CivitAI account: Visit Profile Avatar → Settings → API Keys → Add API Key, then paste it in Lora Manager settings.",
|
|
"alt": "CivitAI API Setup"
|
|
},
|
|
"download": {
|
|
"title": "Easy Download",
|
|
"description": "Use CivitAI URLs to quickly download and install new models.",
|
|
"alt": "CivitAI Download"
|
|
},
|
|
"recipes": {
|
|
"title": "Save Recipes",
|
|
"description": "Create recipes to save your favorite model combinations for future use.",
|
|
"alt": "Recipes"
|
|
},
|
|
"filter": {
|
|
"title": "Fast Filtering",
|
|
"description": "Filter models by tags or base model type using the filter button in the header.",
|
|
"alt": "Filter Models"
|
|
},
|
|
"search": {
|
|
"title": "Quick Search",
|
|
"description": "Press Ctrl+F (Cmd+F on Mac) to quickly search within your current view.",
|
|
"alt": "Quick Search"
|
|
}
|
|
}
|
|
},
|
|
"duplicates": {
|
|
"found": "Found {count} duplicate groups",
|
|
"showNotification": "Show Duplicates Notification",
|
|
"deleteSelected": "Delete Selected",
|
|
"exitMode": "Exit Mode",
|
|
"help": {
|
|
"identicalHashes": "Identical hashes mean identical model files, even if they have different names or previews.",
|
|
"keepOne": "Keep only one version (preferably with better metadata/previews) and safely delete the others."
|
|
}
|
|
},
|
|
"uiHelpers": {
|
|
"clipboard": {
|
|
"copied": "Copied to clipboard",
|
|
"copyFailed": "Copy failed"
|
|
},
|
|
"lora": {
|
|
"syntaxCopied": "LoRA syntax copied to clipboard",
|
|
"syntaxCopiedNoTriggerWords": "LoRA syntax copied to clipboard (no trigger words found)",
|
|
"syntaxCopiedWithTriggerWords": "LoRA syntax with trigger words copied to clipboard",
|
|
"syntaxCopiedWithTriggerWordGroups": "LoRA syntax with trigger word groups copied to clipboard"
|
|
},
|
|
"workflow": {
|
|
"noSupportedNodes": "No supported target nodes found in workflow",
|
|
"communicationFailed": "Failed to communicate with ComfyUI",
|
|
"loraAdded": "LoRA appended to workflow",
|
|
"loraReplaced": "LoRA replaced in workflow",
|
|
"loraFailedToSend": "Failed to send LoRA to workflow",
|
|
"recipeAdded": "Recipe appended to workflow",
|
|
"recipeReplaced": "Recipe replaced in workflow",
|
|
"recipeFailedToSend": "Failed to send recipe to workflow",
|
|
"noMatchingNodes": "No compatible nodes available in the current workflow",
|
|
"noPromptTargets": "No compatible prompt targets in the workflow.\nRight-click a node in ComfyUI → Mark as → Send Prompt Target",
|
|
"noTargetNodeSelected": "No target node selected",
|
|
"modelUpdated": "Model updated in workflow",
|
|
"modelFailed": "Failed to update model node",
|
|
"embeddingAdded": "Embedding added to workflow",
|
|
"embeddingFailed": "Failed to add embedding",
|
|
"promptSent": "Prompt sent to workflow",
|
|
"promptFailed": "Failed to send prompt"
|
|
},
|
|
"nodeSelector": {
|
|
"recipe": "Recipe",
|
|
"lora": "LoRA",
|
|
"embedding": "Embedding",
|
|
"prompt": "Prompt",
|
|
"replace": "Replace",
|
|
"append": "Append",
|
|
"selectTargetNode": "Select target node",
|
|
"sendToAll": "Send to All"
|
|
},
|
|
"exampleImages": {
|
|
"opened": "Example images folder opened",
|
|
"openingFolder": "Opening example images folder",
|
|
"failedToOpen": "Failed to open example images folder",
|
|
"copiedPath": "Path copied to clipboard: {{path}}",
|
|
"clipboardFallback": "Path: {{path}}",
|
|
"copiedUri": "Link copied to clipboard: {{uri}}",
|
|
"uriClipboardFallback": "Link: {{uri}}",
|
|
"setupRequired": "Example Images Storage",
|
|
"setupDescription": "To add custom example images, you need to set a download location first.",
|
|
"setupUsage": "This path is used for both downloaded and custom example images.",
|
|
"openSettings": "Open Settings"
|
|
}
|
|
},
|
|
"help": {
|
|
"title": "Help & Tutorials",
|
|
"tabs": {
|
|
"gettingStarted": "Getting Started",
|
|
"updateVlogs": "Update Vlogs",
|
|
"documentation": "Documentation",
|
|
"shortcuts": "Shortcuts"
|
|
},
|
|
"gettingStarted": {
|
|
"title": "Getting Started with LoRA Manager",
|
|
"replayTutorial": "Replay Tutorial"
|
|
},
|
|
"shortcuts": {
|
|
"title": "Keyboard & Mouse Shortcuts",
|
|
"groups": {
|
|
"general": "General",
|
|
"actions": "Actions",
|
|
"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",
|
|
"refresh": "Refresh model list",
|
|
"fetchMetadata": "Fetch metadata from CivitAI (model pages only)",
|
|
"downloadModel": "Download a model (model pages only)",
|
|
"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": {
|
|
"title": "Latest Updates",
|
|
"watchOnYouTube": "Watch on YouTube",
|
|
"playlistTitle": "LoRA Manager Updates Playlist",
|
|
"playlistDescription": "Watch all update videos showcasing the latest features and improvements."
|
|
},
|
|
"documentation": {
|
|
"title": "Documentation",
|
|
"general": "General",
|
|
"troubleshooting": "Troubleshooting",
|
|
"modelManagement": "Model Management",
|
|
"recipes": "Recipes",
|
|
"settings": "Settings & Configuration",
|
|
"extensions": "Extensions",
|
|
"newBadge": "NEW"
|
|
},
|
|
"newContentBadge": "New"
|
|
},
|
|
"update": {
|
|
"title": "Check for Updates",
|
|
"notificationsTitle": "Notifications",
|
|
"tabs": {
|
|
"updates": "Updates",
|
|
"messages": "Messages"
|
|
},
|
|
"updateAvailable": "Update Available",
|
|
"noChangelogAvailable": "No detailed changelog available. Check GitHub for more information.",
|
|
"currentVersion": "Current Version",
|
|
"newVersion": "New Version",
|
|
"commit": "Commit",
|
|
"viewOnGitHub": "View on GitHub",
|
|
"updateNow": "Update Now",
|
|
"preparingUpdate": "Preparing update...",
|
|
"changelog": "Changelog",
|
|
"checkingUpdates": "Checking for updates...",
|
|
"checkingMessage": "Please wait while we check for the latest version.",
|
|
"showNotifications": "Show update notifications",
|
|
"latestBadge": "Latest",
|
|
"latestMain": "Latest main",
|
|
"channel": "Update Channel",
|
|
"channels": {
|
|
"release": "Release",
|
|
"nightly": "Nightly"
|
|
},
|
|
"updateProgress": {
|
|
"preparing": "Preparing update...",
|
|
"installing": "Installing update...",
|
|
"completed": "Update completed successfully!",
|
|
"failed": "Update failed: {error}"
|
|
},
|
|
"status": {
|
|
"updating": "Updating...",
|
|
"updated": "Updated!",
|
|
"updateFailed": "Update Failed"
|
|
},
|
|
"completion": {
|
|
"successMessage": "Successfully updated to {version}!",
|
|
"restartMessage": "Please restart ComfyUI or LoRA Manager to apply update.",
|
|
"reloadMessage": "Make sure to reload your browser for both LoRA Manager and ComfyUI."
|
|
},
|
|
"nightly": {
|
|
"warning": "Warning: Nightly builds may contain experimental features and could be unstable.",
|
|
"enable": "Enable Nightly Updates"
|
|
},
|
|
"channelSwitch": {
|
|
"nightlyTitle": "Switch to Nightly Channel",
|
|
"nightlyMessage": "Switching to Nightly will initialize a Git repository and track the latest main branch commits. Updates will be more frequent but may be unstable. You can switch back to Release at any time.",
|
|
"releaseTitle": "Switch to Release Channel",
|
|
"releaseMessage": "Switching to Release will checkout the latest stable release tag. You can switch back to Nightly at any time.",
|
|
"switching": "Switching to {channel} channel...",
|
|
"completed": "Successfully switched to {channel} channel",
|
|
"failed": "Failed to switch channel"
|
|
},
|
|
"banners": {
|
|
"recent": "Recent messages",
|
|
"empty": "No recent banners yet.",
|
|
"shown": "Shown {time}",
|
|
"dismissed": "Dismissed {time}",
|
|
"active": "Active"
|
|
}
|
|
},
|
|
"support": {
|
|
"title": "Support the Project",
|
|
"message": "If you find LoRA Manager useful, I'd really appreciate your support! 🙌",
|
|
"feedback": {
|
|
"title": "Provide Feedback",
|
|
"description": "Your feedback helps shape future updates! Share your thoughts:"
|
|
},
|
|
"links": {
|
|
"submitGithubIssue": "Submit GitHub Issue",
|
|
"joinDiscord": "Join Discord",
|
|
"youtubeChannel": "YouTube Channel",
|
|
"civitaiProfile": "CivitAI Profile",
|
|
"supportKofi": "Support on Ko-fi",
|
|
"supportPatreon": "Support on Patreon"
|
|
},
|
|
"sections": {
|
|
"followUpdates": "Follow for Updates",
|
|
"buyMeCoffee": "Buy me a coffee",
|
|
"coffeeDescription": "If you'd like to support my work directly:",
|
|
"becomePatron": "Become a Patron",
|
|
"patronDescription": "Support ongoing development with monthly contributions:",
|
|
"wechatSupport": "WeChat Support",
|
|
"wechatDescription": "For users in China, you can support via WeChat:",
|
|
"showWechatQR": "Show WeChat QR Code",
|
|
"hideWechatQR": "Hide WeChat QR Code"
|
|
},
|
|
"footer": "Thank you for using LoRA Manager! ❤️",
|
|
"supporters": {
|
|
"title": "Thank You To Our Supporters",
|
|
"subtitle": "Thanks to {count} supporters who made this project possible",
|
|
"specialThanks": "Special Thanks",
|
|
"allSupporters": "All Supporters",
|
|
"totalCount": "{count} supporters in total"
|
|
}
|
|
},
|
|
"toast": {
|
|
"general": {
|
|
"cannotInteractStandalone": "Cannot interact with ComfyUI in standalone mode",
|
|
"failedWorkflowInfo": "Failed to get workflow information",
|
|
"pageInitFailed": "Failed to initialize {pageType} page. Please reload.",
|
|
"statisticsLoadFailed": "Failed to load statistics data"
|
|
},
|
|
"loras": {
|
|
"copyOnlyForLoras": "Copy syntax is only available for LoRAs",
|
|
"noLorasSelected": "No LoRAs selected",
|
|
"missingDataForLoras": "Missing data for {count} LoRAs",
|
|
"noValidLorasToCopy": "No valid LoRAs to copy",
|
|
"sendOnlyForLoras": "Send to workflow is only available for LoRAs",
|
|
"noValidLorasToSend": "No valid LoRAs to send",
|
|
"downloadSuccessful": "LoRAs downloaded successfully",
|
|
"allDownloadSuccessful": "All {count} LoRAs downloaded successfully",
|
|
"downloadPartialSuccess": "Downloaded {completed} of {total} LoRAs",
|
|
"downloadPartialWithAccess": "Downloaded {completed} of {total} LoRAs. {accessFailures} failed due to access restrictions. Check your API key in settings or early access status.",
|
|
"pleaseSelectVersion": "Please select a version",
|
|
"pleaseSelectFile": "Please select at least one file",
|
|
"versionExists": "This version already exists in your library",
|
|
"downloadCompleted": "Download completed successfully",
|
|
"downloadSkippedByBaseModel": "Skipped download because base model {baseModel} is excluded",
|
|
"autoOrganizeSuccess": "Auto-organize completed successfully for {count} {type}",
|
|
"autoOrganizePartialSuccess": "Auto-organize completed with {success} moved, {failures} failed out of {total} models",
|
|
"autoOrganizeFailed": "Auto-organize failed: {error}",
|
|
"filenameTemplateSuccess": "Filename template applied successfully for {count} {type}",
|
|
"filenameTemplatePartialSuccess": "Filename template applied with {success} renamed, {failures} failed out of {total} models",
|
|
"filenameTemplateFailed": "Applying filename template failed: {error}",
|
|
"noModelsSelected": "No models selected"
|
|
},
|
|
"recipes": {
|
|
"fetchFailed": "Failed to fetch recipes: {message}",
|
|
"reloadFailed": "Failed to reload {modelType}s: {message}",
|
|
"loadFailed": "Failed to load {modelType}s: {message}",
|
|
"refreshComplete": "Refresh complete",
|
|
"refreshFailed": "Failed to refresh recipes: {message}",
|
|
"syncComplete": "Sync complete",
|
|
"syncFailed": "Failed to sync recipes: {message}",
|
|
"updateFailed": "Failed to update recipe: {error}",
|
|
"updateError": "Error updating recipe: {message}",
|
|
"nameSaved": "Recipe \"{name}\" saved successfully",
|
|
"nameUpdated": "Recipe name updated successfully",
|
|
"tagsUpdated": "Recipe tags updated successfully",
|
|
"sourceUrlUpdated": "Source URL updated successfully",
|
|
"promptUpdated": "Prompt updated successfully",
|
|
"negativePromptUpdated": "Negative prompt updated successfully",
|
|
"promptEditorHint": "Press Enter to save, Shift+Enter for new line",
|
|
"noRecipeId": "No recipe ID available",
|
|
"sendToWorkflowFailed": "Failed to send recipe to workflow: {message}",
|
|
"copyFailed": "Error copying recipe syntax: {message}",
|
|
"createError": "Error creating recipe: {message}",
|
|
"createFailed": "Failed to create recipe: {error}",
|
|
"createMissingData": "Missing required data to create recipe",
|
|
"created": "Recipe created successfully",
|
|
"noMissingLoras": "No missing LoRAs to download",
|
|
"unresolvableMarkedForReconnect": "{count} unresolvable entr(ies) marked — they can now be reconnected to a local LoRA.",
|
|
"noPreviousRecipe": "No previous recipe available",
|
|
"noNextRecipe": "No next recipe available",
|
|
"missingLorasInfoFailed": "Failed to get information for missing LoRAs",
|
|
"preparingForDownloadFailed": "Error preparing LoRAs for download",
|
|
"enterLoraName": "Please enter a LoRA name or syntax",
|
|
"reconnectedSuccessfully": "LoRA reconnected successfully",
|
|
"reconnectBaseModelMismatch": "Reconnected, but base models differ (recipe: {recipe}, LoRA: {lora}) — they are architecture-compatible",
|
|
"reconnectFailed": "Error reconnecting LoRA: {message}",
|
|
"loraRestored": "LoRA restored to its previous association",
|
|
"loraRestoreFailed": "Error restoring LoRA: {message}",
|
|
"noPromptToSend": "No prompt to send",
|
|
"cannotSend": "Cannot send recipe: Missing recipe ID",
|
|
"sendFailed": "Failed to send recipe to workflow",
|
|
"sendError": "Error sending recipe to workflow",
|
|
"missingCheckpointPath": "Checkpoint path not available",
|
|
"missingCheckpointInfo": "Missing checkpoint information",
|
|
"downloadCheckpointFailed": "Failed to download checkpoint: {message}",
|
|
"enterCheckpointName": "Please enter a checkpoint name",
|
|
"checkpointReconnectedSuccessfully": "Checkpoint reconnected successfully",
|
|
"reconnectCheckpointBaseModelMismatch": "Reconnected, but base models differ (recipe: {recipe}, checkpoint: {checkpoint}) — they are architecture-compatible",
|
|
"checkpointReconnectFailed": "Error reconnecting checkpoint: {message}",
|
|
"checkpointRestored": "Checkpoint restored to its previous association",
|
|
"checkpointRestoreFailed": "Error restoring checkpoint: {message}",
|
|
"checkpointDownloadUnavailable": "This checkpoint cannot be downloaded without CivitAI identifiers - try reconnecting it with a local checkpoint",
|
|
"missingLoraDownloadInfo": "Missing download information for this LoRA",
|
|
"hashNotFoundOnCivitai": "This LoRA hash cannot be resolved on CivitAI - the model may have been updated or the hash is invalid",
|
|
"downloadLoraFailed": "Failed to download LoRA: {message}",
|
|
"cannotDelete": "Cannot delete recipe: Missing recipe ID",
|
|
"deleteConfirmationError": "Error showing delete confirmation",
|
|
"deletedSuccessfully": "Recipe deleted successfully",
|
|
"deleteFailed": "Error deleting recipe: {message}",
|
|
"cannotShare": "Cannot share recipe: Missing recipe ID",
|
|
"preparingForSharing": "Preparing recipe for sharing...",
|
|
"downloadStarted": "Recipe download started",
|
|
"shareError": "Error sharing recipe: {message}",
|
|
"sharePreparationError": "Error preparing recipe for sharing",
|
|
"selectImageFirst": "Please select an image first",
|
|
"enterRecipeName": "Please enter a recipe name",
|
|
"processingError": "Processing error: {message}",
|
|
"folderBrowserError": "Error loading folder browser: {message}",
|
|
"recipeSaveFailed": "Failed to save recipe: {error}",
|
|
"recipeSaved": "Recipe saved successfully",
|
|
"importFailed": "Import failed: {message}",
|
|
"folderTreeFailed": "Failed to load folder tree",
|
|
"folderTreeError": "Error loading folder tree",
|
|
"batchImportFailed": "Failed to start batch import: {message}",
|
|
"batchImportCancelling": "Cancelling batch import...",
|
|
"batchImportCancelFailed": "Failed to cancel batch import: {message}",
|
|
"batchImportNoUrls": "Please enter at least one URL or file path",
|
|
"batchImportNoDirectory": "Please enter a directory path",
|
|
"batchImportRateLimited": "Metadata provider rate limit reached — requests are being slowed and some items may be skipped. You can re-run the import later.",
|
|
"batchImportBrowseFailed": "Failed to browse directory: {message}",
|
|
"batchImportDirectorySelected": "Directory selected: {path}",
|
|
"noRecipesSelected": "No recipes selected",
|
|
"rematchSkipped": "No rematch needed for any of the {total} selected recipes",
|
|
"rematchFailed": "Failed to rematch selected recipes: {message}",
|
|
"reimporting": "Re-importing recipe from source...",
|
|
"reimportingViaExtension": "Re-importing recipe {current}/{total} via browser extension...",
|
|
"reimportSuccess": "Recipe re-imported successfully",
|
|
"reimportBulkComplete": "Re-import complete: {completed} re-imported, {failed} failed (of {total})",
|
|
"reimportBulkFailed": "Failed to re-import some recipes",
|
|
"noMissingLorasInSelection": "No missing LoRAs found in selected recipes",
|
|
"noLoraRootConfigured": "No LoRA root directory configured. Please set a default LoRA root in settings.",
|
|
"workflowSent": "Workflow sent to ComfyUI",
|
|
"workflowSendFailed": "Failed to send workflow to ComfyUI: {error}",
|
|
"workflowNoWorkflow": "No embedded workflow found in this recipe"
|
|
},
|
|
"models": {
|
|
"noModelsSelected": "No models selected",
|
|
"deletedSuccessfully": "Successfully deleted {count} {type}(s)",
|
|
"deleteFailed": "Error: {error}",
|
|
"deleteFailedGeneral": "Failed to delete models",
|
|
"selectedAdditional": "Selected {count} additional {type}(s)",
|
|
"marqueeSelectionComplete": "Selected {count} {type}(s) with marquee selection",
|
|
"refreshMetadataFailed": "Failed to refresh metadata",
|
|
"nameCannotBeEmpty": "Model name cannot be empty",
|
|
"nameUpdatedSuccessfully": "Model name updated successfully",
|
|
"nameUpdateFailed": "Failed to update model name",
|
|
"baseModelUpdated": "Base model updated successfully",
|
|
"baseModelUpdateFailed": "Failed to update base model",
|
|
"baseModelNotSelected": "Please select a base model",
|
|
"bulkBaseModelUpdating": "Updating base model for {count} model(s)...",
|
|
"bulkBaseModelUpdateSuccess": "Successfully updated base model for {count} model(s)",
|
|
"bulkBaseModelUpdatePartial": "Updated {success} model(s), failed {failed} model(s)",
|
|
"bulkBaseModelUpdateFailed": "Failed to update base model for selected models",
|
|
"skipMetadataRefreshUpdating": "Updating metadata refresh flag for {count} model(s)...",
|
|
"skipMetadataRefreshSet": "Metadata refresh skipped for {count} model(s)",
|
|
"skipMetadataRefreshCleared": "Metadata refresh resumed for {count} model(s)",
|
|
"skipMetadataRefreshPartial": "Updated {success} model(s), {failed} failed",
|
|
"skipMetadataRefreshFailed": "Failed to update metadata refresh flag for selected models",
|
|
"bulkContentRatingUpdating": "Updating content rating for {count} model(s)...",
|
|
"bulkContentRatingSet": "Set content rating to {level} for {count} model(s)",
|
|
"bulkContentRatingPartial": "Set content rating to {level} for {success} model(s), {failed} failed",
|
|
"bulkContentRatingFailed": "Failed to update content rating for selected models",
|
|
"bulkFavoriteUpdating": "Adding {count} model(s) to favorites...",
|
|
"bulkUnfavoriteUpdating": "Removing {count} model(s) from favorites...",
|
|
"bulkFavoritePartialAdded": "Added {success} model(s) to favorites, {failed} failed",
|
|
"bulkFavoritePartialRemoved": "Removed {success} model(s) from favorites, {failed} failed",
|
|
"bulkFavoriteFailed": "Failed to update favorite status for selected models",
|
|
"bulkUpdatesChecking": "Checking selected {type}(s) for updates...",
|
|
"bulkUpdatesSuccess": "Updates available for {count} selected {type}(s)",
|
|
"bulkUpdatesNone": "No updates found for selected {type}(s)",
|
|
"bulkUpdatesMissing": "Selected {type}(s) are not linked to CivitAI updates",
|
|
"bulkUpdatesPartialMissing": "Skipped {missing} selected {type}(s) without CivitAI links",
|
|
"bulkUpdatesFailed": "Failed to check updates for selected {type}(s): {message}",
|
|
"invalidCharactersRemoved": "Invalid characters removed from filename",
|
|
"filenameCannotBeEmpty": "File name cannot be empty",
|
|
"renameFailed": "Failed to rename file: {message}",
|
|
"moveFailed": "Failed to move model(s): {message}",
|
|
"pleaseSelectRoot": "Please select a {type} root directory",
|
|
"nameTooLong": "Model name is limited to 100 characters",
|
|
"verificationAlreadyDone": "This group has already been verified",
|
|
"verificationCompleteMismatch": "Verification complete. {count} file(s) have different actual hashes.",
|
|
"verificationCompleteSuccess": "Verification complete. All files are confirmed duplicates.",
|
|
"verificationFailed": "Failed to verify hashes: {message}",
|
|
"noTagsToAdd": "No tags to add",
|
|
"bulkTagsUpdating": "Updating tags for {count} model(s)...",
|
|
"tagsAddedSuccessfully": "Successfully added {tagCount} tag(s) to {count} {type}(s)",
|
|
"tagsReplacedSuccessfully": "Successfully replaced tags for {count} {type}(s) with {tagCount} tag(s)",
|
|
"tagsAddFailed": "Failed to add tags to {count} model(s)",
|
|
"tagsReplaceFailed": "Failed to replace tags for {count} model(s)",
|
|
"bulkTagsAddFailed": "Failed to add tags to models",
|
|
"bulkTagsReplaceFailed": "Failed to replace tags for models"
|
|
},
|
|
"search": {
|
|
"atLeastOneOption": "At least one search option must be selected"
|
|
},
|
|
"settings": {
|
|
"loraRootsFailed": "Failed to load LoRA roots: {message}",
|
|
"checkpointRootsFailed": "Failed to load checkpoint roots: {message}",
|
|
"unetRootsFailed": "Failed to load diffusion model roots: {message}",
|
|
"embeddingRootsFailed": "Failed to load embedding roots: {message}",
|
|
"otherRootsFailed": "Failed to load other model roots: {message}",
|
|
"mappingsUpdated": "Base model path mappings updated ({count} mapping{plural})",
|
|
"mappingsCleared": "Base model path mappings cleared",
|
|
"mappingSaveFailed": "Failed to save base model mappings: {message}",
|
|
"downloadTemplatesUpdated": "Download path templates updated",
|
|
"downloadTemplatesFailed": "Failed to save download path templates: {message}",
|
|
"filenameTemplatesUpdated": "Filename templates updated",
|
|
"filenameTemplatesFailed": "Failed to save filename templates: {message}",
|
|
"recipesPathUpdated": "Recipes storage path updated",
|
|
"recipesPathSaveFailed": "Failed to update recipes storage path: {message}",
|
|
"settingsUpdated": "Settings updated: {setting}",
|
|
"compactModeToggled": "Compact Mode {state}",
|
|
"settingSaveFailed": "Failed to save setting: {message}",
|
|
"displayDensitySet": "Display Density set to {density}",
|
|
"libraryLoadFailed": "Failed to load libraries: {message}",
|
|
"libraryActivateFailed": "Failed to activate library: {message}",
|
|
"languageChangeFailed": "Failed to change language: {message}",
|
|
"cacheCleared": "Cache files have been cleared successfully. Cache will rebuild on next action.",
|
|
"cacheClearFailed": "Failed to clear cache: {error}",
|
|
"cacheClearError": "Error clearing cache: {message}"
|
|
},
|
|
"filters": {
|
|
"applied": "{message}",
|
|
"cleared": "Filters cleared",
|
|
"noCustomFilterToClear": "No custom filter to clear",
|
|
"noActiveFilters": "No active filters to save"
|
|
},
|
|
"presets": {
|
|
"created": "Preset \"{name}\" created",
|
|
"deleted": "Preset \"{name}\" deleted",
|
|
"applied": "Preset \"{name}\" applied",
|
|
"overwritten": "Preset \"{name}\" overwritten",
|
|
"restored": "Default presets restored"
|
|
},
|
|
"error": {
|
|
"presetNameEmpty": "Preset name cannot be empty",
|
|
"presetNameTooLong": "Preset name must be {max} characters or less",
|
|
"presetNameInvalidChars": "Preset name contains invalid characters",
|
|
"presetNameExists": "A preset with this name already exists",
|
|
"presetNotFound": "Preset not found",
|
|
"invalidPreset": "Invalid preset data",
|
|
"deletePresetFailed": "Failed to delete preset",
|
|
"applyPresetFailed": "Failed to apply preset"
|
|
},
|
|
"downloads": {
|
|
"imagesCompleted": "Example images {action} completed",
|
|
"imagesFailed": "Example images {action} failed",
|
|
"loadError": "Error loading downloads: {message}",
|
|
"downloadError": "Download error: {message}",
|
|
"downloadStopped": "Download cancelled"
|
|
},
|
|
"import": {
|
|
"folderTreeFailed": "Failed to load folder tree",
|
|
"folderTreeError": "Error loading folder tree",
|
|
"imagesImported": "Example images imported successfully",
|
|
"imagesPartial": "{success} image(s) imported, {failed} failed",
|
|
"importFailed": "Failed to import example images: {message}"
|
|
},
|
|
"triggerWords": {
|
|
"loadFailed": "Could not load trained words",
|
|
"tooLong": "Trigger word should not exceed 500 words",
|
|
"tooMany": "Maximum 100 trigger words allowed",
|
|
"alreadyExists": "This trigger word already exists",
|
|
"updateSuccess": "Trigger words updated successfully",
|
|
"updateFailed": "Failed to update trigger words",
|
|
"copyFailed": "Copy failed"
|
|
},
|
|
"undo": {
|
|
"action": "Undo",
|
|
"deleted": "Deleted {name}",
|
|
"deletedBulk": "Deleted {count} item(s)",
|
|
"expired": "Undo window expired. The item was permanently deleted.",
|
|
"failed": "Undo failed: {error}",
|
|
"restored": "Item restored"
|
|
},
|
|
"virtual": {
|
|
"loadFailed": "Failed to load items",
|
|
"loadMoreFailed": "Failed to load more items",
|
|
"loadPositionFailed": "Failed to load items at this position"
|
|
},
|
|
"bulk": {
|
|
"unableToSelectAll": "Unable to select all items"
|
|
},
|
|
"duplicates": {
|
|
"findFailed": "Failed to find duplicates: {message}",
|
|
"noDuplicatesFound": "No duplicate {type} found",
|
|
"noItemsSelected": "No {type} selected for deletion",
|
|
"deleteError": "Error: {message}",
|
|
"deleteSuccess": "Successfully deleted {count} {type}",
|
|
"deleteFailed": "Failed to delete {type}: {message}"
|
|
},
|
|
"controls": {
|
|
"reloadFailed": "Failed to reload {pageType}: {message}",
|
|
"refreshFailed": "Failed to {action} {pageType}: {message}",
|
|
"fetchMetadataFailed": "Failed to fetch metadata: {message}",
|
|
"clearFilterFailed": "Failed to clear custom filter: {message}"
|
|
},
|
|
"contextMenu": {
|
|
"contentRatingSet": "Content rating set to {level}",
|
|
"contentRatingFailed": "Failed to set content rating: {message}",
|
|
"relinkSuccess": "Model successfully re-linked to CivitAI",
|
|
"relinkFailed": "Error: {message}",
|
|
"linkHfSuccess": "Model successfully linked to its model source",
|
|
"linkHfFailed": "Error: {message}",
|
|
"linkCivArchSuccess": "Model successfully re-linked via CivitArchive",
|
|
"fetchMetadataFirst": "Please fetch metadata from CivitAI first",
|
|
"noCivitaiInfo": "No CivitAI information available",
|
|
"missingHash": "Model hash not available",
|
|
"enrichNeedsSource": "Link this model to a model source first (Link Model → Link to Model Source)",
|
|
"enrichUnsupportedSource": "AI enrichment is not available for {source} models"
|
|
},
|
|
"exampleImages": {
|
|
"pathUpdated": "Example images path updated successfully",
|
|
"pathUpdateFailed": "Failed to update example images path: {message}",
|
|
"downloadInProgress": "Download already in progress",
|
|
"enterLocationFirst": "Please enter a download location first",
|
|
"downloadStarted": "Example images download started",
|
|
"downloadStartFailed": "Failed to start download: {error}",
|
|
"downloadPaused": "Download paused",
|
|
"pauseFailed": "Failed to pause download: {error}",
|
|
"downloadResumed": "Download resumed",
|
|
"resumeFailed": "Failed to resume download: {error}",
|
|
"downloadStopped": "Download cancelled",
|
|
"stopFailed": "Failed to cancel download: {error}",
|
|
"deleted": "Example image deleted",
|
|
"deleteFailed": "Failed to delete example image",
|
|
"setPreviewFailed": "Failed to set preview image"
|
|
},
|
|
"api": {
|
|
"fetchFailed": "Failed to fetch {type}s: {message}",
|
|
"reloadFailed": "Failed to reload {type}s: {message}",
|
|
"deleteSuccess": "{type} deleted successfully",
|
|
"deleteFailed": "Failed to delete {type}: {message}",
|
|
"excludeSuccess": "{type} excluded successfully",
|
|
"excludeFailed": "Failed to exclude {type}: {message}",
|
|
"restoreSuccess": "{type} restored successfully",
|
|
"restoreFailed": "Failed to restore {type}: {message}",
|
|
"fileNameUpdated": "File name updated successfully",
|
|
"fileRenameFailed": "Failed to rename file: {error}",
|
|
"previewUpdated": "Preview updated successfully",
|
|
"previewUploadFailed": "Failed to upload preview image",
|
|
"previewDropInvalid": "Unsupported file type: {name}. Drop an image or MP4 video instead.",
|
|
"refreshComplete": "{action} complete",
|
|
"refreshFailed": "Failed to {action} {type}s",
|
|
"metadataRefreshed": "Metadata refreshed successfully",
|
|
"metadataRefreshFailed": "Failed to refresh metadata: {message}",
|
|
"metadataUpdateComplete": "Metadata update complete",
|
|
"operationCancelled": "Operation cancelled by user",
|
|
"operationCancelledPartial": "Operation cancelled. {success} items processed.",
|
|
"metadataFetchFailed": "Failed to fetch metadata: {message}",
|
|
"bulkMetadataCompleteAll": "Successfully refreshed all {count} {type}s",
|
|
"bulkMetadataCompletePartial": "Refreshed {success} of {total} {type}s",
|
|
"bulkMetadataCompleteNone": "Failed to refresh metadata for any {type}s",
|
|
"bulkMetadataFailureDetails": "Failed refreshes:\n{failures}",
|
|
"bulkMetadataFailed": "Failed to refresh metadata: {message}",
|
|
"moveNotSupported": "Moving {type}s is not supported",
|
|
"alreadyInFolder": "{type} is already in the selected folder",
|
|
"moveInfo": "{message}",
|
|
"moveSuccess": "{type} moved successfully",
|
|
"bulkMoveNotSupported": "Moving {type}s is not supported",
|
|
"allAlreadyInFolder": "All selected {type}s are already in the target folder",
|
|
"bulkMovePartial": "Moved {successCount} {type}s, {failureCount} failed",
|
|
"bulkMoveFailures": "Failed moves:\n{failures}",
|
|
"bulkMoveSuccess": "Successfully moved {successCount} {type}s",
|
|
"exampleImagesDownloadSuccess": "Successfully downloaded example images!",
|
|
"exampleImagesDownloadFailed": "Failed to download example images: {message}",
|
|
"moveFailed": "Failed to move item: {message}",
|
|
"copiedToClipboard": "Copied to clipboard",
|
|
"downloadStarted": "Download started"
|
|
},
|
|
"agent": {
|
|
"llmNotConfigured": "AI provider not configured. Enable it in Settings → AI Provider.",
|
|
"enrichStarted": "Enriching metadata with AI...",
|
|
"enrichComplete": "Metadata enrichment complete: {{summary}}",
|
|
"enrichFailed": "Metadata enrichment failed: {{error}}"
|
|
}
|
|
},
|
|
"doctor": {
|
|
"kicker": "System diagnostics",
|
|
"title": "Doctor",
|
|
"buttonTitle": "Run diagnostics and common fixes",
|
|
"loading": "Checking environment...",
|
|
"footer": "Export a diagnostics bundle if the issue still persists after repair.",
|
|
"summary": {
|
|
"idle": "Run a health check for settings, cache integrity, and UI consistency.",
|
|
"ok": "No active issues were found in the current environment.",
|
|
"warning": "{count} issue(s) were found. Most can be fixed directly from this panel.",
|
|
"error": "{count} issue(s) need attention before the app is fully healthy."
|
|
},
|
|
"status": {
|
|
"ok": "Healthy",
|
|
"warning": "Needs Attention",
|
|
"error": "Action Required"
|
|
},
|
|
"issues": {
|
|
"civitai_api_key": {
|
|
"title": "CivitAI API Key"
|
|
},
|
|
"cache_health": {
|
|
"title": "Model Cache Health"
|
|
},
|
|
"filename_conflicts": {
|
|
"title": "Duplicate Filename Conflicts"
|
|
},
|
|
"ui_version": {
|
|
"title": "UI Version"
|
|
}
|
|
},
|
|
"actions": {
|
|
"runAgain": "Run Again",
|
|
"exportBundle": "Export Bundle",
|
|
"open-settings": "Open Settings",
|
|
"open-settings-syntax-format": "Switch to Full Path Syntax",
|
|
"repair-cache": "Rebuild Cache",
|
|
"resolve-filename-conflicts": "Resolve Conflicts",
|
|
"reload-page": "Reload UI"
|
|
},
|
|
"labels": {
|
|
"conflicts": "Conflicts",
|
|
"version": "Version"
|
|
},
|
|
"toast": {
|
|
"loadFailed": "Failed to load diagnostics: {message}",
|
|
"repairSuccess": "Cache rebuild completed.",
|
|
"repairFailed": "Cache rebuild failed: {message}",
|
|
"exportSuccess": "Diagnostics bundle exported.",
|
|
"exportFailed": "Failed to export diagnostics bundle: {message}",
|
|
"conflictsResolved": "{count} filename conflict(s) resolved.",
|
|
"conflictsResolveFailed": "Failed to resolve filename conflicts: {message}"
|
|
}
|
|
},
|
|
"conflictConfirm": {
|
|
"title": "Resolve Filename Conflicts",
|
|
"message": "Renaming by appending a 4-character hash to each duplicate filename.",
|
|
"note": "This operation renames files on disk. Model references in existing workflows may need updating if you use the A1111 syntax format.",
|
|
"detail": "Example: <code>filename_v1.2</code> → <code>filename_v1.2-ab3c</code>",
|
|
"impact": "Will rename <strong>{count}</strong> file(s) across <strong>{groups}</strong> duplicate group(s).",
|
|
"confirm": "Rename Files",
|
|
"cancel": "Cancel"
|
|
},
|
|
"banners": {
|
|
"versionMismatch": {
|
|
"title": "Application Update Detected",
|
|
"content": "Your browser is running an outdated version of LoRA Manager ({storedVersion}). The server has been updated to version {currentVersion}. Please refresh to ensure proper functionality.",
|
|
"refreshNow": "Refresh Now",
|
|
"refreshingIn": "Refreshing in",
|
|
"seconds": "seconds"
|
|
},
|
|
"communitySupport": {
|
|
"title": "Keep LoRA Manager Thriving with Your Support ❤️",
|
|
"content": "LoRA Manager is a passion project maintained full-time by a solo developer. Your support on Ko-fi helps cover development costs, keeps new updates coming, and unlocks a license key for the LM CivitAI Extension as a thank-you gift. Every contribution truly makes a difference.",
|
|
"supportCta": "Support on Ko-fi",
|
|
"learnMore": "LM CivitAI Extension Tutorial"
|
|
},
|
|
"cacheHealth": {
|
|
"corrupted": {
|
|
"title": "Cache Corruption Detected"
|
|
},
|
|
"degraded": {
|
|
"title": "Cache Issues Detected"
|
|
},
|
|
"content": "{invalid} of {total} cache entries are invalid ({rate}). This may cause missing models or errors. Rebuilding the cache is recommended.",
|
|
"rebuildCache": "Rebuild Cache",
|
|
"dismiss": "Dismiss",
|
|
"rebuilding": "Rebuilding cache...",
|
|
"rebuildFailed": "Failed to rebuild cache: {error}",
|
|
"retry": "Retry"
|
|
},
|
|
"otherModels": {
|
|
"title": "Other Models Management is available",
|
|
"content": "Scan and manage VAE, upscaler, text encoder, CLIP vision and ControlNet files — and download them from CivitAI — from one dedicated page.",
|
|
"enable": "Enable Other Models",
|
|
"openSettings": "Open Settings"
|
|
},
|
|
"pager": {
|
|
"previous": "Previous message",
|
|
"next": "Next message",
|
|
"position": "Message {current} of {total}"
|
|
}
|
|
}
|
|
}
|