{
  "app": {
    "name": "PromptHub",
    "description": "Local Prompt Manager with Version Control"
  },
  "filter": {
    "all": "All",
    "text": "Text",
    "image": "Image"
  },
  "nav": {
    "allPrompts": "All Prompts",
    "textPrompts": "Text Prompts",
    "imagePrompts": "Image Prompts",
    "favorites": "Favorites",
    "folders": "Folders",
    "tags": "Tags",
    "resources": "Resources",
    "installed": "Installed",
    "allSkills": "All Skills",
    "added": "Added",
    "deployed": "Installed",
    "skillLibrary": "Skill Library",
    "mySkills": "My Skills",
    "projects": "Project Skills",
    "rules": "Rules",
    "libraryImported": "From Library",
    "platformDeployed": "Deployed",
    "distribution": "Distribution",
    "skillStore": "Skill Store"
  },
  "header": {
    "search": "Search Prompt...",
    "new": "New",
    "settings": "Settings",
    "topbarWebTitle": "PromptHub Web",
    "searchProjectSkills": "Search project skills...",
    "searchSkill": "Search skills...",
    "resultsCount": "{{count}} results",
    "noResults": "No results",
    "prevResult": "Previous (Shift+Tab)",
    "nextResult": "Next (Tab)",
    "clearSearch": "Clear search"
  },
  "prompt": {
    "title": "Title",
    "description": "Description",
    "systemPrompt": "System Prompt",
    "systemPromptEn": "System Prompt (English)",
    "userPrompt": "User Prompt",
    "userPromptEn": "User Prompt (English)",
    "addEnglishVersion": "Add English Version",
    "addLocalizedVersion": "Add Localized Version",
    "alreadyEnglish": "Content is already in English",
    "translateDetectedEnglish": "English detected, translate to current language",
    "removeEnglishVersion": "Hide English Version",
    "showChinese": "中文",
    "showEnglish": "English",
    "showLocalized": "Show Localized",
    "bilingualHint": "Support bilingual prompts for easy reference and modification",
    "tags": "Tags",
    "media": "media",
    "properties": "Properties",
    "basicInfo": "Basic Info",
    "moreSettings": "More Settings",
    "type": "Prompt Type",
    "typeText": "Text",
    "typeImage": "Image",
    "typeTextDesc": "Test with chat models (e.g., GPT-4)",
    "typeImageDesc": "Test with image models (e.g., DALL-E). Generated images will be saved to preview.",
    "videoNotSupported": "Video generation coming soon!",
    "mismatchText": "Current Prompt is Text type, please configure a Chat Model in settings.",
    "mismatchImage": "Current Prompt is Image type, please configure an Image Model in settings.",
    "notesOptional": "Notes (Optional)",
    "notes": "Notes",
    "notesPlaceholder": "Personal notes about this prompt...",
    "source": "Source",
    "sourceOptional": "Source (Optional)",
    "sourcePlaceholder": "Where did you find this Prompt? e.g. URL, book, etc.",
    "variables": "Variables",
    "preview": "Preview",
    "copy": "Copy Prompt",
    "duplicate": "Create Duplicate",
    "duplicateSuffix": "Duplicate",
    "filterByTag": "Filter by tag",
    "copied": "Copied",
    "edit": "Edit",
    "delete": "Delete",
    "save": "Save",
    "cancel": "Cancel",
    "create": "Create",
    "noPrompts": "No Prompts",
    "addFirst": "Click \"New\" to create your first Prompt",
    "resizeListPaneAria": "Resize prompt list",
    "selectPrompt": "Select a Prompt",
    "selectPromptDesc": "Select a Prompt from the list to view details, or click \"New\" to create one",
    "variableHint": "Use {{variableName}} to define variables",
    "history": "Version History",
    "historyLoading": "Loading...",
    "noHistory": "No version history",
    "noHistoryHint": "Version history will be saved automatically after editing",
    "selectVersion": "Select Version",
    "selectCompareVersion": "Select Compare Version",
    "versionCompare": "Compare Versions",
    "exitCompare": "Exit Compare",
    "restoreVersion": "Restore This Version",
    "restoreConfirm": "Are you sure you want to restore to v{{version}}? Current content will be overwritten.",
    "currentVersion": "Current Version",
    "deleteVersionTitle": "Delete version",
    "deleteVersionConfirm": "Delete v{{version}}? This history entry will be removed permanently.",
    "noChanges": "No changes",
    "noContent": "(None)",
    "changeNote": "Change Note",
    "aiTest": "AI Test",
    "outputFormat": "Output Format",
    "outputFormatText": "Text",
    "outputFormatJson": "JSON Mode",
    "outputFormatJsonSchema": "JSON Schema",
    "jsonSchemaName": "Schema Name",
    "jsonSchemaContent": "Schema Definition",
    "jsonSchemaPlaceholder": "Enter JSON Schema, e.g.:\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"answer\": { \"type\": \"string\" }\n  },\n  \"required\": [\"answer\"]\n}",
    "jsonSchemaInvalid": "Invalid JSON Schema",
    "jsonSchemaHint": "Define the JSON structure for output, AI will strictly follow this format",
    "testing": "Testing...",
    "selectModelsHint": "Select multiple models to compare responses",
    "clearSelection": "Clear Selection",
    "selectAtLeast2": "Please select at least 2 models to compare",
    "comparing": "Comparing...",
    "compareModels": "Compare {{count}} Models",
    "updatedAt": "Updated",
    "versionLabel": "Version {{version}}",
    "confirmDeletePrompt": "Are you sure you want to delete this Prompt?",
    "promptDeleted": "Prompt deleted",
    "promptDuplicated": "Prompt duplicate created",
    "unsavedChanges": "Unsaved Changes",
    "unsavedChangesMessage": "You have unsaved changes. Do you want to save them?",
    "discardChanges": "Discard",
    "imageDownloadFailed": "Image Download Failed",
    "imageDownloadFailedMessage": "Unable to download image from this URL. Please check if the link is correct.",
    "aiResponse": "AI Response",
    "callingAI": "Calling AI...",
    "waitingResponse": "Waiting for response...",
    "copyResponse": "Copy Response",
    "responseCopied": "AI response copied",
    "viewRaw": "Show Plain Text",
    "viewMarkdown": "Render Markdown",
    "createPrompt": "New Prompt",
    "editPrompt": "Edit Prompt",
    "titleLabel": "Title",
    "titlePlaceholder": "Name your Prompt",
    "descriptionOptional": "Description (Optional)",
    "descriptionPlaceholder": "Briefly describe this Prompt",
    "folderOptional": "Folder (Optional)",
    "noFolder": "No folder",
    "moveTo": "Move to...",
    "movedToNoFolder": "Removed from current folder",
    "tagsOptional": "Tags (Optional)",
    "selectExistingTags": "Select existing tags:",
    "enterTagHint": "Enter new tag and press Enter",
    "addTag": "Add",
    "referenceImages": "Reference Images",
    "uploadImage": "Upload/Paste/URL",
    "uploadVideo": "Upload Video",
    "addImageByUrl": "Add by URL",
    "enterImageUrl": "Enter image URL",
    "pasteImageHint": "Paste image directly",
    "referenceMedia": "Reference Media",
    "videoLabel": "Video",
    "videoOptional": "Preview Video (Optional)",
    "videoHint": "Supports MP4, WebM, MOV formats",
    "mediaHint": "Supports Images (PNG/JPG/GIF) and Videos (MP4/WebM)",
    "mediaUploadHint": "Supported formats: Images JPG/PNG/GIF/WEBP · Videos MP4/WebM/MOV/AVI/MKV · URL download timeout 30s",
    "previewVideos": "Preview Videos",
    "downloadingImage": "Downloading image...",
    "downloadTimeout": "Image download timed out, please check network or URL",
    "generating": "Generating...",
    "addToPrompt": "Add to Prompt",
    "imageAddedToPrompt": "Image added to Prompt",
    "aiTestAttachments": "Test Attachments",
    "aiTestAttachmentHint": "PNG, JPG, WebP, or GIF for multimodal chat models. Up to {{count}}, {{size}} each.",
    "aiTestAddImages": "Add Images",
    "aiTestSelectReferenceImages": "Select existing reference images",
    "aiTestUploadedReferenceImages": "Uploaded reference images",
    "aiTestRemoveImage": "Remove image",
    "aiTestImageLimit": "Up to {{count}} images can be attached",
    "aiTestImageUnsupported": "{{name}} is not an image file",
    "aiTestImageTooLarge": "{{name}} exceeds {{size}}",
    "aiTestImageReadFailed": "Unable to read image",
    "systemPromptLabel": "System Prompt",
    "systemPromptOptional": "System Prompt (Optional)",
    "systemPromptPlaceholder": "Set the AI's role and behavior...",
    "userPromptLabel": "User Prompt",
    "inlineEditSystemPromptAria": "Double-click to edit system prompt",
    "inlineEditUserPromptAria": "Double-click to edit user prompt",
    "userPromptPlaceholder": "Enter your Prompt content, use {{variableName}} or {{variableName:example}} to define variables...",
    "variableTip": "Variable Tip",
    "variableTipContent": "Use {{variableName}} or {{variableName:exampleValue}} to define variables, e.g., {{language}} or {{courseName:Computer Science}}",
    "typeYourPrompt": "Type your prompt here...",
    "enterEnglishSystemPrompt": "Enter English System Prompt...",
    "enterEnglishUserPrompt": "Enter English User Prompt...",
    "translateToEnglish": "Translate to English",
    "translateFromEnglish": "Translate from English",
    "englishGenerated": "English version generated",
    "localizedGenerated": "Localized version generated",
    "noContentToTranslate": "No content to translate",
    "noEnglishContentToTranslate": "No English content to translate",
    "addTagPlaceholder": "Add tag...",
    "variablePreview": "Variable Preview",
    "copyResult": "Copy Result",
    "previewResult": "Preview Result",
    "inputVariable": "Enter {{name}} value...",
    "variableInput": "Fill Variables",
    "fillVariables": "Please fill in the variable values (auto-saved)",
    "noVariables": "This Prompt has no variables",
    "defaultValue": "Default",
    "exampleValue": "Example",
    "exampleHint": "e.g.",
    "variableName": "Variable",
    "fromHistory": "From history",
    "systemVariables": "System Variables",
    "sortBy": "Sort",
    "sortNewest": "Newest",
    "sortOldest": "Oldest",
    "sortTitleAsc": "Title A-Z",
    "sortTitleDesc": "Title Z-A",
    "sortMostUsed": "Most Used",
    "sortLeastUsed": "Least Used",
    "viewCard": "Card View",
    "viewList": "List View",
    "viewGallery": "Gallery View",
    "viewKanban": "Kanban View",
    "columns2": "2 Columns",
    "columns3": "3 Columns",
    "columns4": "4 Columns",
    "columns5": "5 Columns",
    "pinnedPrompts": "Pinned Prompts",
    "pin": "Pin",
    "unpin": "Unpin",
    "expandAll": "Expand All",
    "collapseAll": "Collapse All",
    "unpinAll": "Clear All",
    "usageCount": "Usage",
    "createdAt": "Created",
    "promptCount": "{{count}} prompts",
    "actions": "Actions",
    "columnConfig": "Column Settings",
    "columnConfigHint": "Click to toggle column visibility",
    "columnDesc": {
      "title": "Prompt name/title",
      "userPrompt": "User prompt content preview",
      "aiResponse": "AI response content preview",
      "variables": "Number of replaceable variables",
      "usageCount": "Copy/usage count statistics"
    },
    "pageSize": "Per page",
    "movedToFolder": "Moved to folder",
    "dataPathChanged": "Data path changed",
    "batchFavorited": "Batch favorited",
    "batchMoved": "Batch moved",
    "batchDeleted": "Batch deleted",
    "addToFavorites": "Add to Favorites",
    "removeFromFavorites": "Remove from Favorites",
    "viewDetail": "View detail",
    "enterValue": "Enter value",
    "selected": "{{count}} selected",
    "batchFavorite": "Batch Favorite",
    "batchMove": "Batch Move",
    "batchDelete": "Batch Delete",
    "confirmBatchDelete": "Are you sure you want to delete these {{count}} prompts?"
  },
  "rules": {
    "title": "Rules",
    "sidebarTitle": "Rules Workspace",
    "platformSidebarTitle": "Rules",
    "sidebarHint": "Manage global rule files and project AGENTS.md files from one workspace.",
    "globalSection": "Global Rules",
    "projectSection": "Project Rules",
    "addProjectRuleDirectory": "Add Project Directory",
    "addProjectRuleDirectoryHint": "Pick a code project folder and PromptHub will create and maintain an AGENTS.md rule file inside it for AI tools to read.",
    "currentProjectBadge": "Current",
    "editorTitle": "Rule Editor",
    "editorCanvas": "Rule Content",
    "fileLabel": "Rule File",
    "pathLabel": "Path",
    "diffAdded": "Added",
    "diffRemoved": "Removed",
    "aiRewriteTitle": "Ask AI to improve this rule",
    "aiRewriteHint": "Describe the change you want. AI will prepare a new draft for the selected rule file.",
    "aiRewritePlaceholder": "Example: add testing requirements, reorganize sections, or strengthen the wording while keeping the current markdown headings where possible.",
    "aiRewriteAction": "Improve with AI",
    "aiRewriteWorking": "Generating draft...",
    "aiRewriteDone": "AI draft ready",
    "aiRewriteFailed": "AI improvement failed",
    "rescanAction": "Rescan rule files",
    "rescanShortAction": "Rescan",
    "rescanWorking": "Scanning...",
    "rescanDone": "Rules rescanned",
    "rescanFailed": "Rescan failed",
    "stopTrackingAction": "Stop Tracking",
    "draftUnsavedStatus": "Draft has unsaved changes",
    "draftSyncedStatus": "Draft matches the saved file",
    "draftEditMode": "Draft editor - not written to the file until you save",
    "snapshotPreviewMode": "Snapshot preview - read only",
    "saveAndOverwrite": "Save and overwrite file",
    "saveOverwriteHint": "Saving writes this draft to the real rules file.",
    "versionTitle": "Version Snapshots",
    "versionHint": "Snapshots are read-only history. Select one to preview it, then restore it into the draft if needed.",
    "versionPreviewTitle": "Snapshot Preview",
    "versionPreviewReadonly": "Preview mode is read-only.",
    "versionEditingDraft": "Editing current draft",
    "versionBackToDraft": "Back to Draft",
    "versionRestoreToDraft": "Restore to Draft",
    "versionRestoreDone": "Snapshot restored to draft",
    "versionSourceManualSave": "Saved",
    "versionSourceAiRewrite": "AI Draft",
    "versionSourceCreate": "Created",
    "versionEmpty": "No snapshots yet. Saving or AI rewriting will create local history.",
    "searchPlaceholder": "Search rule files, platforms, or paths...",
    "exists": "Exists",
    "notExists": "Will be created",
    "openLocation": "Open Location",
    "pathUnknown": "Path unavailable",
    "emptyHint": "Rule content will appear here.",
    "diffSnapshotHeader": "Snapshot vs Current Draft",
    "diffCurrentDraft": "Current Draft",
    "editorLineCount": "{{count}} lines",
    "editorCharCount": "{{count}} chars",
    "aiRewriteSummary": "AI has generated a new draft. Review it and save when ready.",
    "versionCurrentLabel": "Current",
    "versionDeleteAction": "Delete snapshot",
    "versionDeleteConfirmMessage": "Are you sure you want to delete this snapshot? This action cannot be undone.",
    "versionDeleteDone": "Snapshot deleted",
    "versionShowMore": "Show {{count}} more",
    "versionShowLess": "Show less"
  },
  "folder": {
    "new": "New Folder",
    "edit": "Edit Folder",
    "rename": "Rename",
    "delete": "Delete",
    "empty": "No folders",
    "icon": "Icon",
    "name": "Name",
    "namePlaceholder": "Enter folder name",
    "setPrivate": "Set as private folder",
    "privateNeedPassword": "Please set a master password in Settings > Security first",
    "privateNeedPasswordInline": "Please set a master password in \"Settings - Security\" first.",
    "privateHint": "After saving, this folder will be encrypted and will require password verification.",
    "unlockTitle": "Enter master password",
    "unlockDesc": "You need to unlock the master password before saving a private folder",
    "unlockPlaceholder": "Enter master password",
    "unlocking": "Unlocking...",
    "unlockSuccess": "Unlocked",
    "unlockFailed": "Unlock failed",
    "wrongPassword": "Wrong password",
    "deleteTitle": "Delete folder \"{{name}}\"",
    "containsPrompts": "This folder contains {{count}} prompts",
    "deleteFolderOnly": "Delete folder only",
    "deleteFolderOnlyDesc": "Keep {{count}} prompts and move them to root",
    "deleteAllContent": "Delete all contents",
    "deleteAllContentDesc": "Delete the folder and all {{count}} prompts inside",
    "confirmDelete": "Confirm delete",
    "deletedWithPrompts": "Deleted folder and {{count}} prompts",
    "deletedMovedPrompts": "Deleted folder, moved {{count}} prompts to root",
    "duplicateTitle": "Folder name already exists",
    "duplicateDesc": "A folder named \"{{name}}\" already exists. Do you still want to create it?",
    "confirmCreate": "Create anyway",
    "masterPasswordRequired": "Please enter master password",
    "deletePrivateTitle": "Delete private folder",
    "deletePrivateDesc": "This will delete the private folder \"{{name}}\" and all encrypted contents. Enter master password to confirm.",
    "deleting": "Deleting...",
    "wrongPasswordCannotDelete": "Wrong master password, cannot delete",
    "privateUnlockTitle": "Unlock private folder",
    "privateUnlockMessage": "Folder \"{{name}}\" is private. Enter the master password to unlock and view its content.",
    "folderDeleted": "Folder deleted",
    "deleteFailed": "Delete failed",
    "parentFolder": "Parent Folder",
    "uncategorized": "Uncategorized",
    "noParent": "None (Root)",
    "noAvailableParents": "No available parent folders",
    "parentHint": "Maximum {{depth}} levels of nesting"
  },
  "settings": {
    "developer": "Developer Options",
    "debugMode": "Debug Mode",
    "debugModeDesc": "Enable console debugging (Supports Ctrl+Shift+I / Cmd+Option+I)",
    "security": "Security",
    "securityStatus": "Status",
    "masterSet": "Master password set",
    "masterNotSet": "Master password not set",
    "unlocked": "Unlocked",
    "locked": "Locked",
    "setMaster": "Set master password (min 4 chars)",
    "masterPlaceholder": "Enter master password",
    "masterConfirmPlaceholder": "Confirm master password",
    "setMasterBtn": "Set master password",
    "unlockTitle": "Unlock / Lock",
    "unlockPlaceholder": "Enter master password to unlock",
    "unlock": "Unlock",
    "lock": "Lock",
    "refresh": "Refresh status",
    "securityDesc": "Master password unlocks private content. PromptHub stores only a salted password hash, never the plain text password. Private content stays hidden until unlocked.",
    "pwdTooShort": "Master password must be at least 4 characters",
    "pwdMismatch": "Passwords do not match",
    "masterSetSuccess": "Master password set and unlocked",
    "masterSetFail": "Failed to set master password",
    "enterMasterPwd": "Please enter master password",
    "unlockSuccess": "Unlocked successfully",
    "pwdWrong": "Incorrect password",
    "unlockFail": "Failed to unlock",
    "lockSuccess": "Locked",
    "lockFail": "Failed to lock",
    "enterCurrentPwd": "Please enter current master password",
    "newPwdTooShort": "New password must be at least 4 characters",
    "currentPwdWrong": "Current master password is incorrect",
    "changePwdSuccess": "Master password changed and re-unlocked",
    "changePwdFail": "Failed to change password",
    "statusFetchFail": "Failed to get security status",
    "changePwd": "Change master password",
    "changePwdBtn": "Change password",
    "oldPwdPlaceholder": "Enter current master password",
    "newPwdPlaceholder": "Enter new master password (min 4 chars)",
    "newPwdConfirmPlaceholder": "Confirm new master password",
    "confirmChange": "Confirm change",
    "title": "Settings",
    "back": "Back",
    "general": "App Settings",
    "appearance": "Appearance",
    "data": "Data & Sync",
    "platformPreview": "Platform Preview",
    "ai": "Model Services",
    "language": "Language",
    "notifications": "Notifications",
    "languageAndRegion": "Language & Region",
    "about": "About",
    "startup": "Startup",
    "launchAtStartup": "Launch at Startup",
    "launchAtStartupDesc": "Automatically run PromptHub when system starts",
    "minimizeOnLaunch": "Minimize on Launch",
    "minimizeOnLaunchDesc": "Minimize to tray on startup",
    "closeAction": "Close Window Behavior",
    "closeActionDesc": "Action when clicking the close button",
    "askEveryTime": "Ask every time",
    "closeToTray": "Minimize to tray",
    "closeApp": "Exit app",
    "editor": "Editor",
    "autoSave": "Auto Save",
    "autoSaveDesc": "Automatically save changes while editing",
    "showLineNumbers": "Show Line Numbers",
    "showLineNumbersDesc": "Display line numbers in editor",
    "theme": "Theme",
    "themeMode": "Theme Mode",
    "light": "Light",
    "dark": "Dark",
    "system": "System",
    "themeColor": "Theme Color",
    "desktopWorkspace": "Desktop workspace",
    "homeModules": "Home modules",
    "homeModulesHint": "At least one module stays enabled so the desktop home always has a reachable workspace.",
    "homeModulesReorderHint": "Drag enabled modules to reorder the desktop home rail.",
    "desktopModulePromptsDesc": "Prompt editing, folders, tags and search",
    "desktopModuleSkillsDesc": "My Skills, projects and store workflows",
    "desktopModuleRulesDesc": "Global and project rule workspaces",
    "backgroundImage": "Background Image",
    "backgroundImageTitle": "Desktop background",
    "backgroundImageDesc": "Pick a local image and turn it into your desktop background, give PromptHub a workspace feel that fits you, keep the actual file in PromptHub's image library, and save only a lightweight reference in settings for easier backup and migration.",
    "backgroundImageEmpty": "No background image selected",
    "backgroundImagePreviewAlt": "Background image preview",
    "selectBackgroundImage": "Choose image",
    "changeBackgroundImage": "Change image",
    "enableBackgroundImage": "Enable",
    "disableBackgroundImage": "Disable",
    "backgroundImageEnabledHint": "Background image is currently enabled for the desktop shell.",
    "backgroundImageDisabledHint": "Background image is saved but currently disabled.",
    "backgroundImageOpacity": "Background visibility",
    "backgroundImageBlur": "Blur strength",
    "customColor": "Custom",
    "customColorDesc": "Pick any color and apply it globally",
    "preview": "Preview",
    "primary": "Primary",
    "accent": "Accent",
    "neutral": "Neutral",
    "fontSize": "Font Size",
    "colorRoyalBlue": "Royal Blue",
    "colorBlue": "Mist Blue",
    "colorPurple": "Smoke Purple",
    "colorGreen": "Sage Green",
    "colorOrange": "Apricot",
    "colorTeal": "Teal",
    "fontSmall": "Small",
    "fontMedium": "Medium",
    "fontLarge": "Large",
    "motion": {
      "title": "Motion",
      "desc": "Control how much animation the desktop renderer plays. 'Standard' overrides the system 'reduce motion' setting on this machine.",
      "off": "Off",
      "reduced": "Reduced",
      "standard": "Standard"
    },
    "dataSubmenuBasic": "Basic data settings",
    "dataSubmenuCloudBackup": "Cloud backup settings",
    "syncProviderTitle": "Current sync source",
    "syncProviderDesc": "You can enable multiple backup targets, but automatic sync uses only one source at a time to avoid conflicts.",
    "syncProviderManual": "Manual only",
    "syncSourceInactiveDesc": "This target stays available for manual backup and restore, but automatic sync only runs for the current sync source.",
    "dataSubmenuImportExport": "Import and export settings",
    "dataPath": "Data Directory",
    "dataPathDesc": "Location where Prompt data is stored",
    "openFolder": "Open Folder",
    "openLogs": "Open Logs",
    "applicationData": "Application Data",
    "applicationLogs": "Application Logs",
    "rulesData": "Rules Directory",
    "skillsData": "Skills Directory",
    "backupsData": "Backups Directory",
    "cacheData": "App Cache",
    "cacheDataDesc": "Electron renderer process cache, does not affect data",
    "clearCache": "Clear Cache",
    "cacheClearedToast": "Cache cleared",
    "change": "Change",
    "confirmDataMigration": "Are you sure you want to migrate data to the new directory?\n\nThe app needs to restart after migration.",
    "existingDataPathTitle": "Target directory already contains PromptHub data",
    "existingDataPathDesc": "If this directory was copied from another computer, choose “Switch to this directory”. “Overwrite and migrate” will replace the data in that directory with data from this computer.",
    "detectedDataMarkers": "Detected data",
    "targetDataSummary": "{{prompts}} prompts, {{folders}} folders, {{skills}} skills",
    "switchToExistingDataPath": "Switch to this directory",
    "overwriteAndMigrateDataPath": "Overwrite and migrate",
    "confirmOverwriteDataPath": "Overwrite the data in this directory with this computer's data? PromptHub will create a backup of the target directory first.",
    "dataPathSwitchSuccess": "Data directory switched",
    "dataPathOverwriteSuccess": "Data migrated and target backup created",
    "restartRequired": "Please restart the app",
    "restartNow": "Data migration complete. Restart the app now?",
    "pendingDataPath": "Will switch to this directory after restart:",
    "backup": "Backup & Restore",
    "export": "Export Data",
    "exportDesc": "Export all data as JSON file",
    "selectiveExport": "Selective export",
    "selectiveExportDesc": "Export selected data. Restorable later via the restore action.",
    "fullBackup": "Full backup / restore",
    "fullBackupDesc": "For migration: includes prompts, images, AI config, settings, and skills",
    "upgradeBackups": "Roll back data",
    "upgradeBackupsDesc": "Local rollback points created automatically before upgrades. Restoring a snapshot first saves your current state as a new snapshot, then rolls back and restarts automatically.",
    "upgradeBackupsLoading": "Loading upgrade backups...",
    "upgradeBackupsEmpty": "No automatic upgrade backups found yet.",
    "upgradeBackupsSummary": "{{count}} rollback snapshot(s)",
    "upgradeBackupsSummaryCollapsed": "Latest {{count}} shown by default",
    "upgradeBackupsSummaryExpanded": "Showing full history in a scrollable list",
    "upgradeBackupsSummaryCompact": "All snapshots fit in the compact list",
    "upgradeBackupsShowAll": "Show all {{count}}",
    "upgradeBackupLoadFailed": "Failed to load upgrade backups",
    "upgradeBackupRestoreTitle": "Restore upgrade backup",
    "upgradeBackupRestoreAction": "Roll back to this snapshot",
    "upgradeBackupRestoreConfirm": "Restore the automatic snapshot from {{from}}{{to}} created at {{createdAt}}? PromptHub will first save your current state as another backup, then restart.",
    "upgradeBackupRestoreScheduled": "Upgrade backup restored. PromptHub will restart automatically.",
    "upgradeBackupRestoreFailed": "Failed to restore upgrade backup",
    "upgradeBackupDeleteTitle": "Delete upgrade backup",
    "upgradeBackupDeleteConfirm": "Delete the automatic snapshot {{backupId}}? This history entry cannot be recovered.",
    "upgradeBackupDeleteSuccess": "Upgrade backup deleted",
    "upgradeBackupDeleteFailed": "Failed to delete upgrade backup",
    "upgradeBackupCreatedAt": "Snapshot time",
    "upgradeBackupItems": "Included items",
    "backupCompressed": "Compressed backup",
    "fullBackupExport": "Full backup",
    "restore": "Restore",
    "exportPrompts": "Prompts",
    "exportFolders": "Folders",
    "exportImages": "Media",
    "exportAiConfig": "AI config",
    "exportSettings": "App settings",
    "exportVersions": "Version history",
    "exportSkills": "Skills",
    "import": "Import Data",
    "importDesc": "Import data from JSON file",
    "importPreviewTitle": "Review import summary",
    "importPreviewFile": "File",
    "importPreviewExportedAt": "Exported at",
    "importPreviewCounts": "Will import",
    "importPreviewBackupNotice": "PromptHub will automatically create a local safety backup of your current state before importing.",
    "importPreviewSkipped": "Invalid records that will be skipped",
    "importConfirmAction": "Back up current data and import",
    "recoveryScanner": "Historical data recovery",
    "recoveryScannerTitle": "Historical data recovery",
    "recoveryScannerDesc": "Find recoverable data from old version directories, manually specified folders, or historical backups. Preview and select your restore source.",
    "recoveryScanAction": "Scan now",
    "recoveryExtraPaths": "Extra scan directories",
    "recoveryExtraPathsDesc": "Add old install folders or copied data directories to include them in recovery scans.",
    "recoveryAddScanDir": "Add folder",
    "recoveryManualPathPlaceholder": "Paste or type a path…",
    "recoveryAddPathBtn": "Add",
    "recoveryExtraPathsEmpty": "No extra scan directories added yet.",
    "recoveryScanEmpty": "No recoverable history was found in the scanned locations.",
    "recoveryScanFailed": "Failed to scan recovery sources",
    "manualRecoveryPathExists": "This scan directory has already been added.",
    "clear": "Clear Data",
    "clearDesc": "Delete all local data",
    "clearNeedPassword": "Clearing data is a high-risk operation. Please set a master password in Security settings first",
    "dangerOperation": "Danger",
    "enterMasterPassword": "Enter master password to confirm",
    "masterPasswordPlaceholder": "Enter master password",
    "confirmClear": "Confirm Clear",
    "enterPassword": "Please enter master password",
    "wrongPassword": "Wrong password",
    "webdav": "WebDAV Sync",
    "webdavSyncMenu": "WebDAV",
    "webdavEnabled": "Enable WebDAV",
    "webdavEnabledDesc": "Sync data to WebDAV server when enabled",
    "webdavUrl": "Server URL",
    "webdavUsername": "Username",
    "webdavPassword": "Password",
    "webdavAutoSync": "Auto Sync on Startup",
    "webdavAutoSyncDesc": "Bidirectional sync on startup (including images): upload if local is newer, download if remote is newer",
    "webdavAutoRun": "Auto Run",
    "webdavAutoRunDesc": "Periodically attempt to sync data automatically. May affect battery usage.",
    "selfHostedAutoRun": "Automatic Sync",
    "selfHostedAutoRunDesc": "Keep desktop and your self-hosted PromptHub workspace aligned on a background schedule.",
    "webdavSyncOnStartup": "Run Once on Startup",
    "webdavSyncOnStartupDesc": "Automatically sync once after app startup. Changes take effect on next launch.",
    "selfHostedSyncOnStartup": "Run Once on Startup",
    "selfHostedSyncOnStartupDesc": "Automatically pull from your self-hosted PromptHub workspace after desktop startup. Changes take effect on next launch.",
    "webdavSyncOnSave": "Sync on Save (Experimental)",
    "webdavSyncOnSaveDesc": "Attempt sync when data is saved. Note: frequent syncing may affect performance and battery.",
    "webdavSyncOnSaveUnavailableDesc": "Reserved for future support. Saving data does not trigger sync in the current build.",
    "every5min": "Every 5 minutes",
    "every15min": "Every 15 minutes",
    "every30min": "Every 30 minutes",
    "every60min": "Every 60 minutes",
    "startupImmediate": "Run immediately on startup",
    "startupDelay5s": "Run 5 seconds after startup",
    "startupDelay10s": "Run 10 seconds after startup",
    "startupDelay30s": "Run 30 seconds after startup",
    "webdavIncludeImages": "Include Images",
    "webdavIncludeImagesDesc": "Include all image files when syncing. Disable to reduce backup size and sync time.",
    "webdavIncrementalSync": "Incremental Sync",
    "webdavIncrementalSyncDesc": "Only upload changed files, significantly reducing bandwidth usage. First sync will upload all data.",
    "webdavEncryption": "Encrypt Backup (Experimental)",
    "webdavEncryptionDesc": "Encrypt backup data with AES-256. Warning: Forgetting the password will make data unrecoverable!",
    "webdavEncryptionPassword": "Encryption Password",
    "webdavEncryptionPasswordPlaceholder": "Enter encryption password (optional, leave empty to skip)",
    "s3Storage": "S3 compatible storage",
    "s3SyncMenu": "S3 Compatible Storage",
    "s3StorageDesc": "Configure an S3-compatible object storage backup target such as AWS S3, Cloudflare R2, OSS, or COS.",
    "s3StorageUnavailableDesc": "S3 sync is not available in the current build yet. Connection, upload, download, and automatic sync stay disabled.",
    "s3Endpoint": "API endpoint",
    "s3Region": "Region",
    "s3Bucket": "Bucket",
    "s3AccessKeyId": "Access Key ID",
    "s3SecretAccessKey": "Secret Access Key",
    "s3BackupPrefix": "Backup directory (optional)",
    "s3AutoSync": "Automatic sync",
    "s3AutoSyncDesc": "Choose how often PromptHub should use this S3-compatible backup target.",
    "selectImageModels": "Select Image Models",
    "testConnection": "Test Connection",
    "upload": "Upload",
    "download": "Download",
    "dbInfo": "Local data paths",
    "aiConfig": "AI Model Configuration",
    "provider": "Provider",
    "apiKey": "API Key",
    "apiUrl": "API URL",
    "model": "Model",
    "selectModel": "Select preset model...",
    "customModel": "Or enter custom model name",
    "saveConfig": "Save Configuration",
    "aiConfigSaved": "AI configuration saved",
    "aiConfigDesc1": "Test Prompts with AI after configuration",
    "aiConfigDesc2": "API Key is stored locally and never uploaded",
    "aiConfigDesc3": "Supports OpenAI-compatible API format",
    "aiConfigDesc4": "Model names can be entered manually",
    "translationMode": "Translation Mode",
    "translationModeDesc": "Choose how AI translates skill content",
    "translationImmersive": "Immersive",
    "translationImmersiveDesc": "Original and translated text shown alternately, paragraph by paragraph",
    "translationFull": "Full Translation",
    "translationFullDesc": "Replace original text with fully translated content",
    "selectLanguage": "Select interface language",
    "languageChangeHint": "Refresh the page after changing the language.",
    "refreshNow": "Refresh Now",
    "enableNotifications": "Enable Notifications",
    "enableNotificationsDesc": "Allow app to send desktop notifications",
    "copyNotification": "Copy Success Notification",
    "copyNotificationDesc": "Show notification after copying Prompt",
    "behaviorPreferences": "Behavior & Preferences",
    "tagFilterMode": "Tag click mode",
    "tagFilterModeDesc": "Choose whether clicking a tag replaces the current filter or adds to a multi-select filter",
    "tagFilterModeSingle": "Single select",
    "tagFilterModeMulti": "Multi select",
    "saveNotification": "Save Success Notification",
    "saveNotificationDesc": "Show notification after saving changes",
    "version": "Version",
    "checkUpdate": "Check for Updates",
    "checking": "Checking...",
    "updateAvailable": "Update Available",
    "updateAvailableDesc": "Version {{version}} is available. Download now?",
    "newVersion": "v{{version}} available",
    "macManualInstall": "Download complete! Due to macOS signing restrictions, please install manually:\n\n1. Open the Downloads folder\n2. Double-click the DMG installer to install\n3. If you see a security warning, allow it in System Settings > Privacy & Security\n\nIf you installed via Homebrew, you can simply run:\nbrew upgrade --cask prompthub",
    "homebrewUpdateHint": "This PromptHub build was installed via Homebrew. Please upgrade it with Homebrew instead of the in-app DMG updater.",
    "homebrewUpdateRequired": "This PromptHub build appears to be installed via Homebrew. Please run 'brew upgrade --cask prompthub' instead of using the in-app updater.",
    "openReleasesPage": "Open Releases",
    "openDownloadFolder": "Open Downloads",
    "manualDownload": "Manual Download",
    "manualDownloadHint": "Auto-update failed? You can manually download the latest version:",
    "noUpdate": "Up to Date",
    "noUpdateDesc": "Current version {{version}} is the latest",
    "downloading": "Downloading...",
    "downloadProgress": "Download progress: {{percent}}%",
    "downloadComplete": "Download Complete",
    "downloadCompleteDesc": "New version downloaded. Install now?",
    "installRestartHint": "Installing will close the app and start the installer.",
    "installNow": "Install Now",
    "installLater": "Later",
    "downloadUpdate": "Download Update",
    "backupBeforeUpgrade": "Create Full Backup",
    "backupDropRestore": "Drag to Restore Backup",
    "backupDropRestoreDesc": "Drag a PromptHub backup archive here to review and restore it quickly.",
    "backupDropRestoreFormats": "Supported: .json, .phub.gz, .gz, .zip",
    "backupDropUnsupported": "Please drop a PromptHub backup file (.json, .phub.gz, .gz, or .zip).",
    "backupRequiredForUpgrade": "Manual backup is required before in-app upgrade",
    "backupRequiredForUpgradeDesc": "Create a manual backup for the current version to unlock installation. PromptHub will still create an automatic local snapshot immediately before the installer starts.",
    "backupOptionalForUpgradeDesc": "If you want an extra full export, you can create it here first. You can still continue installing without it. PromptHub will automatically create a local snapshot right before installation starts.",
    "backupMissingForUpgrade": "A manual backup for version {{version}} is required before installation. PromptHub will also create an automatic local snapshot once installation starts.",
    "backupReadyForUpgrade": "Manual backup recorded at {{time}}. Installation is now unlocked, and PromptHub will still create an automatic local snapshot before installation.",
    "backupConfirmUpgrade": "I have backed up the relevant data and understand the app will close during installation.",
    "backupConfirmRequired": "Confirm the backup acknowledgement before continuing with the upgrade.",
    "skipVersion": "Skip This Version",
    "releaseNotes": "Release Notes",
    "autoCheckUpdate": "Auto Check Updates",
    "autoCheckUpdateDesc": "Automatically check for new versions on startup",
    "tryMirrorSource": "Use Mirror Source",
    "usingMirrorSource": "Accessing via accelerator mirror...",
    "mirrorSourceDesc": "Accelerator mirrors are provided by third parties. Contents are generally consistent with official.",
    "mirrorSourceRisk": "If enabled, the app will automatically try mirrors when official source fails. Mirrors are generally safe but not officially maintained. Recommended only if official download is slow.",
    "projectInfo": "Project Info",
    "projectInfoDesc1": "An all-in-one AI toolbox for prompt, skill, and agent asset management",
    "projectInfoDesc2": "Reuse prompts, distribute skills with one click, and manage agent assets in one place",
    "projectInfoDesc3": "Supports cloud sync, backup, version control, and local-first privacy",
    "cliTitle": "CLI",
    "cliShortDesc": "Install the command-line tool to manage prompts and skills from the terminal.",
    "cliFeatureTitle": "What you can do",
    "cliFeatureDesc": "Once installed, use the prompthub command in your terminal:\n• Create, edit, and search prompts\n• Install, update, and uninstall skills\n• Manage rules and project rules\n• Export/import your full workspace",
    "cliStandaloneDesc": "PromptHub CLI is distributed as a standalone package and can be installed globally without building from source.",
    "cliInstallHint": "The installer uses the current GitHub release tarball and runs a standard global npm or pnpm install command.",
    "cliInstallStatus": "Installation Status",
    "cliCheckingStatus": "Checking whether the `prompthub` command is available...",
    "cliInstalled": "Installed",
    "cliInstalledDesc": "The `prompthub` command is available. Current version: {{version}}",
    "cliNotInstalled": "Not Installed",
    "cliNotInstalledDesc": "The `prompthub` command is not available yet on this machine.",
    "cliCommandLabel": "CLI Command",
    "cliCommandDesc": "The shell command you can run after installation",
    "cliInstallSourceLabel": "Install Source",
    "cliInstallSourceDesc": "The GitHub release tarball used for one-click installation",
    "cliInstallSourcePending": "Current release tarball is not available yet",
    "cliVersionLabel": "Version",
    "cliPackageManagerLabel": "Detected Package Manager",
    "cliPackageManagerDesc": "PromptHub will prefer pnpm when available, otherwise npm",
    "cliPackageManagerMissing": "Neither pnpm nor npm was detected on PATH",
    "cliActionsTitle": "Install & Refresh",
    "cliInstallWith": "Install with {{manager}}",
    "cliRefreshStatus": "Refresh Status",
    "cliInstallSuccess": "PromptHub CLI installed successfully",
    "cliInstallFailed": "Failed to install PromptHub CLI",
    "cliStatusLoadFailed": "Failed to load PromptHub CLI status",
    "openSource": "Open Source",
    "projectRepository": "Project Repository",
    "projectRepositoryDesc": "Browse PromptHub source code and releases on GitHub",
    "communityTitle": "Community",
    "communityDiscord": "Discord",
    "communityDiscordDesc": "Join the PromptHub Discord community for announcements and discussion",
    "communityQQ": "QQ Group",
    "communityQQDesc": "Try opening the QQ group directly. If QQ cannot jump, search for the group number {{group}} manually in the client",
    "communityQQCopy": "Copy ID",
    "communityQQCopied": "QQ group number {{group}} copied",
    "viewOnGithub": "View on GitHub",
    "reportIssue": "Report Issue",
    "reportIssueDesc": "Submit issues or suggestions on GitHub",
    "author": "Author",
    "contactAuthor": "Contact Author",
    "overseas": "Overseas",
    "domestic": "Domestic",
    "other": "Other",
    "description": "Description",
    "compareModels": "Model Comparison",
    "enableCompare": "Enable Compare Mode",
    "runCompare": "Run Comparison",
    "modelType": "Model Type",
    "chatModel": "Chat Model",
    "imageModel": "Image Model",
    "imageSize": "Image Size",
    "imagePrompt": "Image prompt",
    "imageQuality": "Image Quality",
    "imageStyle": "Image Style",
    "qualityStandard": "Standard",
    "qualityHD": "HD",
    "styleVivid": "Vivid",
    "styleNatural": "Natural",
    "testImage": "Test Image",
    "configImageModel": "Please configure an image model first",
    "imageGenSuccess": "Image generated successfully",
    "generatedImages": "Generated Images",
    "noImageModel": "No image model configured",
    "noImageModelHint": "Please configure an image model in settings first",
    "multiModelCompare": "Multi-Model Compare",
    "chatModels": "Chat Models",
    "imageModels": "Image Models",
    "addChatModel": "Add Chat Model",
    "addImageModel": "Add Image Model",
    "editChatModel": "Edit Chat Model",
    "editImageModel": "Edit Image Model",
    "customName": "Custom Name",
    "customNameOptional": "Custom Name (Optional)",
    "customNamePlaceholder": "e.g., My GPT-4o, Work",
    "providerName": "Provider",
    "modelName": "Model Name",
    "modelNamePlaceholder": "e.g., gpt-4o, deepseek-chat",
    "fetchModels": "Fetch Models",
    "fillApiFirst": "Please fill in API Key and URL first",
    "modelsLoaded": "Loaded {{count}} models",
    "noModelsFound": "No models found",
    "selectModels": "Select Models",
    "searchModels": "Search model ID or name...",
    "totalModels": "{{count}} models total",
    "filteredModels": "{{count}} matched",
    "noModelsMatch": "No matching models",
    "modelAlreadyAdded": "Already added",
    "endpointPreview": "Preview",
    "addedCount": "{{count}} added",
    "addAll": "Add All",
    "apiKeyPlaceholder": "Enter API Key",
    "apiUrlPlaceholder": "https://api.example.com/v1",
    "saveChanges": "Save Changes",
    "addModel": "Add Model",
    "setDefault": "Set as Default",
    "deleteModel": "Delete",
    "confirmDelete": "Are you sure you want to delete this model?",
    "modelAdded": "Model added",
    "modelUpdated": "Model updated",
    "autoFillDisabled": "Auto-fill disabled (#)",
    "apiUrlHint": "End with # to fully disable auto-fill",
    "aiWorkbenchApiUrlGuide": "Enter the provider base URL or version root only. PromptHub will append the final request path automatically. If you want to preserve the exact address you entered, add # at the end and PromptHub will stop appending any path in both the saved URL and request preview.",
    "aiWorkbenchApiUrlExamplesLabel": "Examples",
    "aiWorkbenchApiUrlBaseLabel": "Stored Base URL",
    "aiWorkbenchApiUrlRequestLabel": "Request Endpoint",
    "aiWorkbenchApiUrlDetectedFullEndpoint": "A full endpoint path was detected. PromptHub will normalize it to the base URL on blur/save.",
    "fillComplete": "Please fill in all required fields",
    "noModelsHint": "Add models to use multi-model comparison on Prompt detail page",
    "testConnectionBtn": "Test Connection",
    "aiWorkbenchTitle": "AI Model Workbench",
    "aiWorkbenchDescription": "Manage global AI models and define scenario-based default routing.",
    "aiWorkbenchTestDefault": "Test Default Model",
    "aiWorkbenchStatusOverview": "Status Overview",
    "aiWorkbenchScenarioDefaults": "Scenario Defaults",
    "aiWorkbenchEndpoints": "Configured Endpoints",
    "aiWorkbenchNoModels": "No models configured yet. Add a chat or image model first.",
    "aiWorkbenchDefaultLabel": "Default",
    "aiWorkbenchUsingLabel": "Using",
    "aiWorkbenchTranslationCapability": "Translation Capability",
    "aiWorkbenchEnabled": "Enabled",
    "aiWorkbenchPending": "Pending",
    "aiWorkbenchNotConfigured": "Not configured",
    "aiWorkbenchUnverified": "Unverified",
    "aiWorkbenchConnected": "Connected",
    "aiWorkbenchModelCount": "{{count}} models",
    "aiWorkbenchMissingModelConfig": "Missing complete model configuration",
    "aiWorkbenchFollowGlobalDefault": "Follow the global default for this type",
    "aiWorkbenchScenarioQuickAdd": "Quick Add Analysis",
    "aiWorkbenchScenarioQuickAddDesc": "Analyze free-form input and generate a first Prompt draft.",
    "aiWorkbenchScenarioPromptTest": "Prompt Text Testing",
    "aiWorkbenchScenarioPromptTestDesc": "Used by the Prompt detail page and text-based AI tests.",
    "aiWorkbenchScenarioImageTest": "Prompt Image Testing",
    "aiWorkbenchScenarioImageTestDesc": "Default model for image Prompt testing.",
    "aiWorkbenchScenarioTranslation": "Translation / Bilingual Editing",
    "aiWorkbenchScenarioTranslationDesc": "Used by Prompt and Skill translation flows.",
    "aiWorkbenchBadgeQuickAdd": "Default Quick Add",
    "aiWorkbenchBadgePromptTest": "Default Text Test",
    "aiWorkbenchBadgeImageTest": "Default Image Test",
    "aiWorkbenchBadgeTranslation": "Default Translation",
    "aiWorkbenchLegacyBannerTitle": "Legacy single-model configuration detected",
    "aiWorkbenchLegacyBannerDesc": "Your existing AI features still work, but the new workbench needs that config imported into the multi-model list.",
    "aiWorkbenchImportLegacy": "Import Legacy Config",
    "aiWorkbenchLegacyImported": "Legacy default model imported",
    "aiWorkbenchFetchModelsFailed": "Failed to load available models",
    "aiWorkbenchFetchModelsUnsupported": "This provider did not return a compatible model list endpoint. You can still enter the model ID manually.",
    "aiWorkbenchFetchModelsNetworkError": "Could not reach the model list endpoint. Check API URL, network, proxy, or CORS policy.",
    "aiWorkbenchFetchModelsAuthError": "The model list request was rejected. Check your API key and provider permissions.",
    "aiWorkbenchFetchModelsEmpty": "The provider returned no models. If it hides the list endpoint, enter the model ID manually.",
    "aiWorkbenchConnectionNetworkError": "Request failed before the provider responded. Check API URL, network, proxy, or CORS policy.",
    "aiWorkbenchConnectionAuthError": "The provider rejected this request. Check your API key, account permission, and endpoint path.",
    "aiWorkbenchCorsBlocked": "Browser blocked this cross-origin request (CORS) while calling {{target}}. Enable CORS on the provider or use an app-side proxy.",
    "aiWorkbenchCorsBlockedDev": "Browser blocked this cross-origin request (CORS). Current page {{origin}} cannot directly call {{target}}. Either enable CORS on the provider or route this request through the Electron main process.",
    "aiWorkbenchInvalidCustomParams": "Custom parameters must be a JSON object with string, number, or boolean values",
    "aiWorkbenchModelDeleted": "Model deleted",
    "aiWorkbenchIncompleteModel": "This model configuration is incomplete and cannot be tested",
    "aiWorkbenchEndpointNotTestable": "No complete model under this endpoint can be tested yet",
    "aiWorkbenchEndpointConnected": "Endpoint connected ({{latency}}ms)",
    "aiWorkbenchEndpointUpdated": "Endpoint updated",
    "aiWorkbenchModelTestSuccess": "test succeeded",
    "aiWorkbenchModelTestFailed": "test failed",
    "aiWorkbenchNoDefaultModel": "There is no default model available to test yet",
    "aiWorkbenchTypeDefault": "Type Default",
    "aiWorkbenchAdvancedParamsDesc": "Request parameters remain configurable per model.",
    "aiWorkbenchConfigure": "Configure",
    "aiWorkbenchEditModel": "Edit Model",
    "aiWorkbenchModelModalSubtitle": "Saved changes take effect immediately and participate in scenario routing.",
    "aiWorkbenchChatParamsDesc": "Configure chat generation parameters for this model.",
    "aiWorkbenchImageParamsDesc": "Configure image generation parameters for this model.",
    "aiWorkbenchTestDraft": "Test Current Config",
    "aiWorkbenchEditEndpoint": "Edit Endpoint",
    "aiWorkbenchEditEndpointSubtitle": "This updates provider, API Key, and API URL for all models under the endpoint.",
    "aiWorkbenchTestAction": "Test",
    "aiWorkbenchEndpointAddressMissing": "Address not configured",
    "protocol": "Protocol",
    "protocolOpenAICompatible": "OpenAI-compatible",
    "protocolGeminiCompatible": "Gemini-compatible",
    "protocolAnthropicCompatible": "Anthropic-compatible",
    "advancedParams": "Advanced Parameters",
    "showAdvancedParams": "Show Advanced Parameters",
    "hideAdvancedParams": "Hide Advanced Parameters",
    "temperature": "Temperature",
    "temperatureDesc": "Controls randomness, higher values = more random (0-2)",
    "maxTokens": "Max Tokens",
    "maxTokensDesc": "Maximum number of tokens to generate",
    "topP": "Top P",
    "topPDesc": "Nucleus sampling parameter, controls diversity (0-1)",
    "topK": "Top K",
    "topKDesc": "Limits the number of candidates for each step",
    "frequencyPenalty": "Frequency Penalty",
    "frequencyPenaltyDesc": "Reduces repetition of words (-2 to 2)",
    "presencePenalty": "Presence Penalty",
    "presencePenaltyDesc": "Encourages discussing new topics (-2 to 2)",
    "streamOutput": "Stream Output",
    "streamOutputDesc": "Show AI response in real-time instead of waiting for completion",
    "enableThinking": "Thinking Mode",
    "enableThinkingDesc": "View model's reasoning process (requires model support)",
    "thinkingContent": "Thinking Process",
    "imageN": "Number of Images",
    "imageNDesc": "Number of images to generate at once",
    "shortcuts": "Shortcuts",
    "globalShortcuts": "Global Shortcuts",
    "shortcutShowApp": "Show/Hide App",
    "shortcutShowAppDesc": "Quickly bring up the app window from anywhere",
    "shortcutNewPrompt": "New Prompt",
    "shortcutNewPromptDesc": "Quickly create a new Prompt",
    "shortcutSearch": "Search",
    "shortcutSearchDesc": "Quickly open the search box",
    "shortcutSettings": "Open Settings",
    "shortcutSettingsDesc": "Quickly open the settings page",
    "shortcutOptions": "Shortcut Options",
    "shortcutMode": "Shortcut Mode",
    "shortcutModeGlobal": "Global",
    "shortcutModeLocal": "Local",
    "shortcutModeDesc": "Global shortcuts work from any app. Local shortcuts only work when PromptHub is focused",
    "enableGlobalShortcuts": "Enable Global Shortcuts",
    "enableGlobalShortcutsDesc": "Allow shortcuts to work in other applications",
    "shortcutTips": "Tips",
    "shortcutTip1": "Click the input field and press your desired key combination",
    "shortcutTip2": "Shortcuts must include a modifier key (Ctrl/Cmd/Alt/Shift) and a regular key",
    "shortcutTip3": "Some shortcuts may conflict with system or other applications",
    "notSet": "Not Set",
    "pressKeys": "Press keys...",
    "clearShortcut": "Clear Shortcut",
    "shortcutConflict": "Shortcut conflicts with \"{{key}}\"",
    "conflictWith": "Conflicts with \"{{key}}\"",
    "shortcutUpdated": "Shortcut updated",
    "shortcutCleared": "Shortcut cleared",
    "customParams": "Custom Parameters",
    "addCustomParam": "Add Parameter",
    "customParamsDesc": "Add custom request parameters, e.g., max_completion_tokens",
    "paramName": "Parameter Name",
    "paramValue": "Parameter Value",
    "clipboardImport": "Clipboard Auto-import",
    "clipboardImportDesc": "Detect Prompt JSON in clipboard and prompt for import when window is focused",
    "shareJSON": "Share as JSON",
    "skill": "Agent Management",
    "platformSkillPaths": "Platform Root Directories",
    "platformSkillPathsDesc": "Override the root directory for each AI tool platform. PromptHub will derive internal paths like skills and global rules from this root.",
    "platformSkillPathPlaceholder": "Leave empty to use the default root, e.g. ~/.trae-cn",
    "platformRootPaths": "Platform Root Directories",
    "platformRootPathsDesc": "Override the root directory for each AI tool platform. PromptHub will derive internal paths like skills and global rules from this root.",
    "platformRootPathPlaceholder": "Leave empty to use the default root, e.g. ~/.trae-cn",
    "defaultPathLabel": "Default path",
    "resetPlatformSkillPath": "Use Default",
    "resetPlatformRootPath": "Use Default",
    "platformDerivedSkillPath": "Derived skills path",
    "platformDerivedRulesPath": "Derived rules path",
    "platformDerivedConfigPath": "Derived config files",
    "platformDerivedPathHint": "Skills, Rules, and related config files are derived from the platform root directory.",
    "trackRulesPlatform": "Show this platform",
    "platformEnabled": "Enabled",
    "platformDisabled": "Disabled",
    "extraSkillScanPaths": "Extra Scan Directories",
    "extraSkillScanPathsDesc": "Add extra Skill directories for import and discovery. These do not replace the platform default directories.",
    "customSkillScanPaths": "Custom Scan Paths",
    "customSkillScanPathsDesc": "Add directories containing your Skill files to include them in scans.",
    "customSkillScanPathPlaceholder": "Enter path, e.g. ~/myskills",
    "addPath": "Add",
    "noCustomPaths": "No custom paths added",
    "skillBackupHint": "To backup & restore Skills, go to the \"Data\" panel → Full backup / restore",
    "skillBackupHintLink": "Go to Data panel",
    "builtinSkillScanPaths": "Built-in Scan Paths (Read-only)",
    "builtinSkillScanPathsDesc": "The following AI tool Skill directories are automatically scanned by PromptHub.",
    "githubTokenTitle": "GitHub Access Token",
    "githubTokenDesc": "Optional. Attach a GitHub personal access token (classic or fine-grained) so Skill Store requests use your authenticated rate limit (5 000 req/h) instead of the anonymous 60 req/h limit. The token is only sent to api.github.com and raw.githubusercontent.com.",
    "githubTokenPlaceholder": "ghp_… or github_pat_…",
    "githubTokenShow": "Show token",
    "githubTokenHide": "Hide token",
    "githubTokenLearnMore": "Create a personal access token",
    "githubTokenScopeHint": "A read-only token without any scope (public repositories) is enough for the skill store.",
    "skillInstallMethod": "Skill Install Method",
    "skillInstallMethodDesc": "Choose how to install Skills from PromptHub to AI tool platforms.",
    "skillInstallSymlink": "Symlink",
    "skillInstallSymlinkDesc": "Create a symlink in the platform directory pointing to PromptHub's Skills folder. More efficient for sync updates.",
    "skillInstallCopy": "Copy File",
    "skillInstallCopyDesc": "Copy SKILL.md directly to the platform directory. Independent from PromptHub's directory.",
    "platformDisplayOrder": "Platform Display Order",
    "platformDisplayOrderDesc": "Control which agent platforms are enabled and how they are ordered across Skills and Rules.",
    "resetPlatformDisplayOrder": "Reset",
    "movePlatformUp": "Move Up",
    "movePlatformDown": "Move Down",
    "addNModels": "Add {{count}} Models",
    "selectedModels": "{{count}} selected",
    "webWorkspace": "Web Workspace",
    "webRuntime": "Web Runtime",
    "selfHostedWeb": "Self-Hosted Web",
    "selfHostedSyncMenu": "Self-Hosted PromptHub",
    "selfHostedWebDesc": "This browser workspace is the self-hosted PromptHub deployment and keeps the same core experience as desktop with web-specific controls.",
    "webSkillSettingsDesc": "The self-hosted web workspace keeps Skill content in the same backup dataset, but does not manage local platform directories, symlinks, or desktop-only distribution flows.",
    "webDataPathPlaceholder": "PromptHub Web Self-Hosted Data Directory",
    "webOrigin": "Site Origin",
    "browserSession": "Browser Session",
    "browserSessionDesc": "Authentication and access are managed by this browser session instead of desktop runtime services.",
    "currentUser": "Current User",
    "connectedClient": "Connected Client",
    "connectedClientDesc": "The current browser and operating system connected to this self-hosted PromptHub workspace.",
    "connectedDevices": "Connected Devices",
    "connectedDevicesDesc": "Desktop and browser clients that have recently connected to this self-hosted PromptHub workspace.",
    "deviceManagement": "Device Management",
    "deviceManagementDesc": "Manage connected clients, desktop backup cadence, and Skill Store refresh behavior for this self-hosted workspace.",
    "currentDevice": "Current Device",
    "clientSync": "Client Sync",
    "deviceSyncCadence": "Client Sync Cadence",
    "deviceSyncCadenceDesc": "How often desktop and browser clients should sync with this self-hosted PromptHub workspace.",
    "deviceType": "Device Type",
    "deviceTypeDesktop": "Desktop Client",
    "deviceTypeBrowser": "Browser Client",
    "devicePlatform": "Platform",
    "deviceVersion": "Version",
    "deviceLastSeen": "Last Seen",
    "noConnectedDevices": "No connected devices have reported in yet.",
    "refreshDevices": "Refresh",
    "syncCadenceManual": "Manual only",
    "syncCadence15m": "Every 15 minutes",
    "syncCadence1h": "Every hour",
    "syncCadence1d": "Every day",
    "storeSync": "Store Sync",
    "storeAutoSync": "Auto-sync Skill Store",
    "storeAutoSyncDesc": "Keep official and connected Skill sources refreshed automatically for this workspace.",
    "storeSyncCadence": "Store Refresh Cadence",
    "storeSyncCadenceDesc": "How often the self-hosted web app should refresh connected Skill sources.",
    "storeSyncHint": "Skill sources should stay fresh in the background so connected desktop clients and this web workspace see the same installable Skills.",
    "registrationMode": "Registration Mode",
    "registrationOpen": "Public sign-up enabled",
    "registrationClosed": "Public sign-up disabled",
    "signOut": "Sign Out",
    "webUpdatesManagedDesc": "Self-hosted web updates are managed by your deployment workflow. Pull the new version and redeploy the service instead of using in-app desktop updates.",
    "skillSafetyChecks": "Skill Safety Checks",
    "skillSafetyChecksDesc": "Control automatic safety scans for installed Skills and pre-install checks from the store.",
    "autoScanInstalledSkills": "Auto-scan Installed Skills",
    "autoScanInstalledSkillsDesc": "Automatically run a safety scan when opening a Skill detail page to detect high-risk changes.",
    "autoScanStoreSkillsBeforeInstall": "Pre-install Safety Scan",
    "autoScanStoreSkillsBeforeInstallDesc": "Off by default. When enabled, a safety scan runs before adding a Skill from the store, blocking obviously dangerous entries.",
    "batchScanInstalledSkills": "Scan All Installed Skills Now",
    "batchScanInstalledSkillsDesc": "Manually run a safety scan on all Skills in your library to quickly find high-risk content.",
    "batchScanInstalledSkillsResult": "Checked {{total}} skills · blocked {{blocked}} · high risk {{highRisk}} · warn {{warn}}",
    "selfHostedSyncDesc": "Use your deployed PromptHub Web as an authenticated backup target and restore source for desktop data without WebDAV.",
    "webLoginPassword": "Login password",
    "webLoginPasswordDesc": "Change the password used to sign in to this self-hosted web workspace.",
    "webPasswordTooShort": "New login password must be at least 8 characters",
    "webPasswordChangeSuccess": "Login password changed successfully",
    "webPasswordChangeFailed": "Failed to change login password",
    "webNewLoginPasswordPlaceholder": "Enter new login password (min 8 characters)",
    "webConfirmLoginPasswordPlaceholder": "Confirm new login password",
    "stableChannel": "Stable channel",
    "previewChannel": "Preview channel",
    "joinPreviewChannel": "Preview Channel",
    "joinPreviewChannelDesc": "When enabled, update checks only use prerelease preview builds from GitHub Releases. Stable releases are checked again after you turn this off.",
    "previewChannelWarning": "Preview builds may be unstable. Please back up your data before updating and use them mainly for testing new fixes.",
    "previewChannelConfirmTitle": "Enable preview updates?",
    "previewChannelConfirmSubtitle": "Preview updates are opt-in. When enabled, PromptHub checks prerelease builds only and will not automatically switch to stable releases.",
    "previewChannelConfirmRisk": "Preview builds can include regressions, unfinished behavior, or migration edge cases that are not yet fully validated.",
    "previewChannelConfirmBackup": "Before enabling this channel, create a manual backup or export so you can safely roll back if a preview build behaves unexpectedly.",
    "previewChannelConfirmConsent": "Turn off the preview channel to return to stable updates. If your preview version is newer than the latest stable release, PromptHub will not downgrade automatically.",
    "previewChannelConfirmCancel": "Keep Stable Channel",
    "previewChannelConfirmEnable": "Enable Preview Updates",
    "previewChannelActiveDesc": "Version: {{version}} · Preview updates only"
  },
  "import": {
    "clipboardTitle": "Import Prompt from Clipboard",
    "detectedPrompt": "Prompt Detected",
    "detectedDesc": "The content in your clipboard matches the Prompt format. Would you like to import it?"
  },
  "auth": {
    "loginTitle": "Login to PromptHub",
    "registerTitle": "Create Account",
    "username": "Username",
    "password": "Password",
    "signIn": "Sign In",
    "register": "Register",
    "needAccount": "Need an account? Register",
    "haveAccount": "Already have an account? Login",
    "loginError": "Invalid credentials",
    "registerError": "Registration failed",
    "setupBadge": "Initial Setup",
    "setupTitle": "Set Up Your Self-Hosted PromptHub",
    "setupDescription": "This deployment has not been initialized yet. Create the first administrator account to unlock the web workspace.",
    "setupHint": "The first account becomes the local admin for this self-hosted instance. After setup, manage this workspace through its backup, restore, and settings flows.",
    "confirmPassword": "Confirm Password",
    "completeSetup": "Create Administrator",
    "setupPasswordMismatch": "The two passwords do not match.",
    "setupError": "Initial setup failed",
    "setupRegistrationLocked": "Registration is currently unavailable. Check the server configuration before continuing."
  },
  "resources": {
    "title": "Recommended Resources",
    "promptGuides": "Prompt Engineering Guides",
    "agentSkills": "Agent / Skill Best Practices",
    "openaiGuideDesc": "Official OpenAI prompting guide",
    "openaiPromptEngineeringDesc": "Reliability strategies and prompt patterns",
    "anthropicGuideDesc": "Official Anthropic prompt engineering guide",
    "learnPromptingDesc": "Free prompt engineering course",
    "claudeCodeOverviewDesc": "Single official entry for docs, workflows, hooks, and settings",
    "openaiAgentsGuideDesc": "OpenAI's practical guide for production-grade agents",
    "anthropicToolUseDesc": "Tool-use patterns, guardrails, and implementation advice",
    "mcpQuickstartDesc": "Protocol quickstart for tools, skills, and integrations"
  },
  "common": {
    "confirm": "Confirm",
    "cancel": "Cancel",
    "save": "Save",
    "preview": "Preview",
    "content": "Source",
    "delete": "Delete",
    "edit": "Edit",
    "add": "Add",
    "select": "Select",
    "selected": "Selected",
    "selectAll": "Select All",
    "clear": "Clear",
    "close": "Close",
    "minimize": "Minimize",
    "maximize": "Maximize",
    "expand": "Expand",
    "collapse": "Collapse",
    "loading": "Loading...",
    "saving": "Saving...",
    "retry": "Retry",
    "error": "Error",
    "success": "Success",
    "optional": "Optional",
    "back": "Back",
    "backToTop": "Back to Top",
    "done": "Done",
    "yesterday": "Yesterday",
    "daysAgo": " days ago",
    "off": "Off",
    "upload": "Upload",
    "download": "Download",
    "downloadSuccess": "Download successful",
    "downloadFailed": "Download failed",
    "imageLoadFailed": "Image load failed",
    "showAll": "All",
    "chars": "chars",
    "reset": "Reset",
    "fullscreen": "Fullscreen",
    "exitFullscreen": "Exit Fullscreen",
    "markdownSupported": "Markdown Supported",
    "prompts": "Prompts",
    "skills": "Skills",
    "deselectAll": "Deselect All",
    "refresh": "Refresh",
    "refreshing": "Refreshing",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "enable": "Enable",
    "disable": "Disable"
  },
  "skill": {
    "title": "Skill",
    "name": "Skill Name",
    "description": "Description",
    "version": "Version",
    "author": "Author",
    "tags": "Tags",
    "files": "Files",
    "instructions": "Instructions",
    "instructionsSection": "Instructions",
    "instructionsPlaceholder": "Enter SKILL.md format instructions...",
    "noInstructions": "No instructions available",
    "mcpConfigSection": "MCP Configuration",
    "metadata": "Metadata",
    "id": "ID",
    "createdAt": "Created At",
    "updatedAt": "Updated At",
    "localStorage": "Local Storage",
    "defaultDescriptionLong": "This is an AI agent skill containing instructions and configurations for specific tasks.",
    "platformIntegration": "Platform Integration",
    "installed": "Installed",
    "clickToInstall": "Click to select",
    "clickToSelect": "Click to select",
    "selectedForInstall": "Pending install",
    "selectAll": "Select All",
    "deselectAll": "Deselect All",
    "selected": "Selected",
    "batchInstall": "Install All",
    "installing": "Installing...",
    "uninstall": "Uninstall",
    "export": "Export",
    "exportSkillMd": "Claude compatible format",
    "exportJson": "Backup/Share format",
    "exportZip": "Full local repo archive",
    "edit": "Edit Skill",
    "editing": "Editing",
    "cancel": "Cancel",
    "saveChanges": "Save Changes",
    "copyMd": "Copy MD",
    "copyRaw": "Copy Raw",
    "copied": "Copied",
    "visitRepo": "Visit Skill Repository",
    "updateFailed": "Update failed",
    "allSkills": "All Skills",
    "favorites": "Favorites",
    "create": "Create Skill",
    "createTitle": "Create New Skill",
    "editTitle": "Edit Skill",
    "search": "Search skills...",
    "empty": "No skills yet",
    "emptyDesc": "Create your first AI agent skill",
    "scanLocal": "Scan Local",
    "scanLocalDesc": "Scan local skills on your machine",
    "installFromGithub": "Install from GitHub",
    "galleryView": "Gallery View",
    "listView": "List View",
    "quickInstall": "Install to Platforms",
    "selectPlatforms": "Select platforms to install",
    "installSelected": "Install Selected",
    "noPlatformsDetected": "No platforms detected",
    "allPlatformsInstalled": "Installed on all platforms",
    "alreadyInstalled": "This skill is already installed on all detected platforms",
    "notInstalled": "Not installed",
    "imported": "Imported",
    "deployed": "Distributed",
    "noSkills": "No skills yet",
    "noSkillsHint": "Import skills from Skill Store, scan local environments, or create one manually to get started",
    "noFavorites": "No favorite skills",
    "noFavoritesHint": "Click the star on skill cards to add favorites",
    "noImportedSkills": "No imported skills yet",
    "noImportedSkillsHint": "After importing from Skill Store, local scan, GitHub, or manual creation, they will appear here.",
    "noDeployedSkills": "No distributed skills yet",
    "noDeployedSkillsHint": "After distributing skills to Claude, Cursor, or other platforms, they will show up here.",
    "pendingDeployment": "Pending",
    "noPendingSkills": "No pending skills",
    "noPendingSkillsHint": "Skills not yet distributed to any platform will appear here.",
    "noDistributionSkillsHint": "Import skills first, then install, sync, or uninstall them to Claude, Cursor, and other platforms here.",
    "webSkillLibrary": "Skill Workspace",
    "webLibraryHint": "Create or import your own skills here. Platform distribution and skill marketplaces are desktop-only.",
    "protocol": "Protocol",
    "addPath": "Add path",
    "checkPlatformDirs": "Check whether Claude Code, Cursor, and other platforms are installed",
    "customPathsHint": "Add extra directories to scan (for example ~/mytools/skills). Click Re-scan to apply.",
    "deletePathConfirm": "Are you sure you want to delete this file or folder? This action cannot be undone.",
    "detailRenderErrorHint": "The detail view failed to render. Go back to the list and try again.",
    "importTagsOptional": "Optional: add tags during import",
    "orAddCustomPath": "Or add a custom path above and re-scan",
    "searchImportPlaceholder": "Search by name, description, tags, platform, or path",
    "unsavedChangesWarning": "You have unsaved changes. Discard and close?",
    "webLibrarySubtitle": "Manage your personal skill library in the self-hosted web workspace.",
    "workspaceHint": "Manage all imported skills in one place, regardless of where they came from.",
    "distributionHint": "Manage install, sync, and uninstall across connected platforms.",
    "addProject": "Add Project",
    "editProject": "Edit Project",
    "projectName": "Project Name",
    "projectNamePlaceholder": "Workspace Project",
    "projectRootPath": "Project Root Path",
    "projectRootPathPlaceholder": "/path/to/project",
    "projectRootPathFirstHint": "Choose the project root first. PromptHub can infer the project name and start scanning right away.",
    "browseFolder": "Browse",
    "projectScanPaths": "Scan Paths",
    "projectScanPathPlaceholder": "Optional extra directories to scan",
    "projectScanPathsHint": "PromptHub always scans the project root plus default folders like .claude/skills, .agents/skills, skills, and .gemini. Add extra paths only if your project keeps skills elsewhere.",
    "projectScanPathsEmpty": "No extra scan paths configured yet. PromptHub will still scan the project root automatically.",
    "projectFormRequired": "Project name and root path are required.",
    "projectRootPathExists": "This project root path is already registered.",
    "projectUpdated": "Project updated",
    "projectCreated": "Project added",
    "projectCreatedAndScanning": "Project added. Scanning now...",
    "projectSaveFailed": "Failed to save project",
    "projectScanComplete": "Scanned {{count}} skills",
    "projectScanFailed": "Failed to scan project skills",
    "projectImportSuccess": "Imported to My Skills",
    "projectImportHint": "Import this project-local skill into My Skills first. After that, you can distribute it just like any normal PromptHub skill.",
    "projectsSidebarHint": "Register project directories and manage their local skills.",
    "noProjects": "No projects yet",
    "noProjectsHint": "Add a project root to scan and manage project-local skills.",
    "projectSkillCount": "{{count}} skills",
    "projectImportableCount": "{{count}} importable",
    "projectWorkspaceHint": "Scan project-local skill folders, import selected ones into PromptHub, or open the source paths directly.",
    "projectLastScan": "Last Scan",
    "projectDetectedSkills": "Detected Skills",
    "openProjectFolder": "Open Project",
    "projectNoScanResults": "No scanned skills yet",
    "projectNoScanResultsHint": "Run a scan to discover SKILL.md files inside this project, then choose whether to import them into PromptHub or just manage the source paths directly.",
    "scanProjectSkills": "Scan Project Skills",
    "projectSearchEmptyHint": "Try another search keyword to find project-local skills.",
    "selectProject": "Select a Project",
    "selectProjectHint": "Choose a registered project on the left or add a new one to start scanning project-local skills.",
    "selectProjectSkill": "Select a Skill",
    "selectProjectSkillHint": "Choose a project-local skill to view its content, translation, and files using the same detail view as My Skills.",
    "projectDeleted": "Project removed",
    "deleteProjectTitle": "Delete project",
    "deleteProjectMessage": "Remove project \"{{name}}\" from PromptHub? This only removes the project workspace record and does not delete any files.",
    "all": "All",
    "confirmDelete": "Are you sure you want to delete skill \"{{name}}\"?",
    "defaultDescription": "Skill description to help AI understand when to use this skill",
    "icon": "Icon",
    "iconHint": "Upload your own icon, or pick one directly from the presets.",
    "presetIcons": "Preset Icons",
    "uploadIcon": "Upload Icon",
    "useDefaultIcon": "Use Default Icon",
    "iconBackground": "Icon Background",
    "iconBackgroundHint": "Pick a steadier background color for the icon so the detail page no longer feels like it is floating.",
    "useDefaultBackground": "Default",
    "addFavorite": "Add to favorites",
    "removeFavorite": "Remove from favorites",
    "delete": "Delete",
    "confirmInstallTitle": "Confirm Install",
    "confirmInstallMessage": "Install skill to the following platforms:",
    "confirmUninstallTitle": "Confirm Uninstall",
    "confirmUninstallMessage": "Are you sure you want to uninstall this skill from {{platform}}?",
    "installSuccess": "Operation successful",
    "installPartialFailure": "Some platforms could not be installed\n{{details}}",
    "installFailureRow": "{{platform}}: {{reason}}",
    "uninstallSuccess": "Uninstall successful",
    "aiGenerate": "AI Generate",
    "generating": "Generating...",
    "configureAiFirst": "Please configure an AI model in settings first",
    "aiGenerateHint": "Configure an AI model in settings to enable AI generation",
    "descriptionRequired": "Please enter a skill description for AI generation",
    "noAiModelConfigured": "Please configure an AI model in settings first",
    "generateFailed": "Failed to generate skill content",
    "store": "Skill Store",
    "storeHint": "Discover and import skills from official, community, and custom stores.",
    "searchStore": "Search skills...",
    "installedSection": "In My Skills",
    "recommendedSection": "Available to Add",
    "importedSection": "Imported",
    "availableSection": "Available",
    "install": "Import",
    "addToLibrary": "Import to My Skills",
    "addedToLibrary": "Imported",
    "openInMySkills": "Open in My Skills",
    "removeFromLibrary": "Remove from My Skills",
    "openSkillFolder": "Open Folder",
    "importAndDistribute": "Distribute",
    "officialStore": "Official Store",
    "communityStore": "Community Store",
    "claudeCodeStore": "Claude Code Store",
    "openaiCodexStore": "OpenAI Codex Store",
    "customStores": "My Stores",
    "communityStoreHint": "This area will aggregate third-party community skill sources. The entry is ready for connecting a community registry next.",
    "claudeCodeStoreHint": "Built-in Claude Code source with first-class support for the official skills repo and common marketplace.json indexes.",
    "claudeCodeStoreDetail": "This built-in source is meant for the Claude Code ecosystem. It is designed to work first with the official skills repository and marketplace.json indexes, and can later become a browsable remote store.",
    "openaiCodexStoreHint": "Built-in OpenAI Codex source with first-class support for the curated openai/skills catalog.",
    "openaiCodexStoreDetail": "This built-in source is meant for the OpenAI Codex ecosystem. It focuses on the curated openai/skills catalog and keeps the install flow compatible with directory-style SKILL.md repositories.",
    "customStoresHint": "Add your own store endpoints here. A later step can connect remote manifests or registries.",
    "customStoreEmpty": "No skills in this custom store yet",
    "customStoreEmptyHint": "This source is connected, but no skills were loaded yet. Try refreshing from the top right, or open Edit to adjust the source configuration.",
    "addStoreSource": "Add Store",
    "storeNamePlaceholder": "Store name",
    "storeUrlPlaceholder": "Store URL / manifest URL",
    "sourceTypeMarketplace": "Marketplace JSON",
    "sourceTypeGit": "Git Repository",
    "sourceTypeLocal": "Local Directory",
    "sourceTypeMarketplaceHint": "Best for a direct marketplace.json URL. PromptHub will read the index and load store entries from it.",
    "sourceTypeGitHint": "Best for a GitHub or Git repository URL. PromptHub will detect SKILL.md folders or a store index inside it.",
    "sourceTypeLocalHint": "Best for a local folder path. PromptHub will scan it for skill folders.",
    "storeExamples": "Examples",
    "storeExampleMarketplace": "Marketplace JSON example",
    "storeExampleGit": "Git repository example",
    "storeExampleLocal": "Local directory example",
    "supportedFormat": "Supported Formats",
    "formatDirectoryRepo": "`SKILL.md` directory-style repository",
    "formatIndexStore": "`marketplace.json` index-style store",
    "formatCuratedSubdir": "Curated subdirectory inside a larger Git repository",
    "formatCommunityLeaderboard": "skills.sh community leaderboard",
    "loadingOpenAiStore": "Loading OpenAI Codex skills from the remote source...",
    "formatSkillDetailPage": "skills.sh skill detail page",
    "exampleSources": "Built-in Reference Sources",
    "customStorePendingHint": "This area will show skills fetched from the selected store in the next step. The current version focuses on source management and the left-side hierarchy.",
    "loadingRemoteStore": "Loading Claude Code skills from the remote source...",
    "loadingCommunityStore": "Loading skills.sh community skill list...",
    "loadingCustomStore": "Loading custom store content...",
    "remoteStoreLoadFailed": "Failed to load remote store",
    "remoteStoreRetry": "Retry",
    "remoteStoreRateLimitHint": "GitHub API rate limit reached. Try again in a few minutes, or switch to another network and retry.",
    "remoteStoreNetworkHint": "Failed to reach GitHub. Check your network connection or switch to another network and retry.",
    "remoteStoreInvalidRepoHint": "Repository not found or URL is invalid. Check the GitHub repository address and try again.",
    "invalidGitRepo": "Please enter a GitHub repository URL, or use a local directory path instead",
    "skillsCount": "skills",
    "storeSourceAdded": "Store added",
    "storeSourceRequired": "Please enter both a store name and URL",
    "noCustomStores": "No custom stores yet",
    "noCustomStoresHint": "Use the dashed Add Store entry in the left sidebar to connect your own skill sources.",
    "adding": "Adding...",
    "noResults": "No skills found",
    "tryDifferentSearch": "Try a different search or category",
    "prerequisites": "Prerequisites",
    "source": "Source",
    "sourceGithubStore": "Imported from GitHub / Skill Store",
    "sourceGithubRepo": "Imported from GitHub Repository",
    "sourceRemoteStore": "Imported from Remote Skill Store",
    "sourceRemoteLink": "Imported from Remote Link",
    "sourceLocalFolder": "Imported from Local Folder",
    "sourceClaudeLocalFolder": "Imported from Claude Code Local Skills Folder",
    "sourceCursorLocalFolder": "Imported from Cursor Local Skills Folder",
    "compatibility": "Compatible with",
    "navigationHint": "Skill navigation coming soon",
    "symlink": "Symlink",
    "symlinkHint": "Creates a symlink in the platform directory — lighter updates going forward.",
    "copyMode": "Copy",
    "copyHint": "Copies SKILL.md to the platform directory — more compatible.",
    "symlinkDesc": "Symlink: Creates a symbolic link pointing to the source file. All platforms share the same source — edits sync instantly, but requires filesystem support.",
    "copyModeDesc": "Copy: Copies the SKILL.md file to each platform directory. Each copy is independent — edits in PromptHub won't sync automatically.",
    "rawContent": "SKILL.md Content",
    "noContent": "No content available",
    "translate": "AI Translate",
    "translating": "Translating...",
    "showOriginal": "Show Original",
    "showTranslation": "Show Translation",
    "translateSuccess": "Translation complete",
    "translateFailed": "Translation failed",
    "translationOutdatedTitle": "Saved translation is outdated",
    "translationOutdatedMessage": "This skill's SKILL.md changed after the last translation. Retranslate now?",
    "translationOutdatedBadge": "Saved translation needs refresh",
    "retranslateNow": "Retranslate now",
    "aiNotConfigured": "Please configure AI model in Settings first",
    "aiNotConfiguredDetailed": "No usable AI translation model is configured. Please configure a chat model in Settings, or fix the selected translation model.",
    "translateGatewayTimeout": "The AI service timed out while translating. Please try again in a moment, or switch to a faster / more stable model endpoint.",
    "translateNetworkError": "The translation request could not reach the AI service. Please check your network and API endpoint, then try again.",
    "addSkill": "Add Skill",
    "chooseAddMethod": "Choose how you want to add a new skill:",
    "aiCreate": "AI Draft",
    "aiCreateDesc": "Describe what you need, AI drafts the SKILL.md for review",
    "aiCreateHint": "Uses the Skill Creator skill to draft a professional SKILL.md. You can review and edit before saving.",
    "aiDescPlaceholder": "Describe what this skill should do, its purpose, and when to use it...",
    "generateAndReview": "Generate & Review",
    "createManually": "Create Manually",
    "manualDesc": "Build a skill from scratch",
    "githubDesc": "Paste a GitHub repository URL",
    "scanLocalTitle": "Scan for Local Skills",
    "scanLocalHint": "Automatically detect SKILL.md files from PromptHub managed folders, Claude, Cursor, Windsurf, and other AI tools.",
    "dropImportTitle": "Drop skills to import",
    "dropImportDesc": "Drop a skill folder or a file named SKILL.md here to open the existing scan preview and import flow.",
    "dropImportUnsupported": "Only local folders or a file named SKILL.md can be imported as skills.",
    "dropImportEmpty": "No importable SKILL.md files were found in the dropped items.",
    "dropImportFailed": "Failed to scan dropped skill files",
    "nameRequired": "Please enter a skill name",
    "namePlaceholder": "my-skill",
    "githubUrl": "GitHub Repository URL",
    "githubUrlHint": "Use the repository root URL. PromptHub will scan the repo for importable SKILL.md entries before you choose what to import.",
    "githubConstraintHint": "Only repository root URLs are supported, such as https://github.com/owner/repo",
    "githubFallbackHint": "If no SKILL.md files are found, PromptHub will fall back to the root README.md as a single import option.",
    "enterGithubUrl": "Please enter a GitHub URL",
    "invalidGithubUrl": "Invalid GitHub URL format",
    "scanRepository": "Scan Repository",
    "githubNoImportableSkills": "No importable SKILL.md or README.md files were found in this repository.",
    "githubScanFound": "Found {{count}} import option(s)",
    "githubScanHint": "Select one or more skills from this repository before importing.",
    "githubImportSummary": "Imported {{imported}} / {{total}}, skipped {{skipped}}, failed {{failed}}.",
    "installFailed": "Failed to install from GitHub",
    "installReturnedEmpty": "GitHub install did not return a skill",
    "createFailed": "Failed to create skill",
    "createReturnedEmpty": "Skill creation did not return a result",
    "noSkillsFound": "No new local SKILL.md files found.",
    "scanFailed": "Failed to scan: ",
    "skillName": "Skill Name",
    "skillDescription": "Description",
    "nameHint": "Lowercase letters, numbers, and hyphens only, e.g. my-skill-name",
    "descriptionPlaceholder": "Briefly describe what this skill does",
    "authorPlaceholder": "Author name",
    "tagsOptional": "Tags (Optional)",
    "selectExistingTags": "Select existing tags:",
    "enterTagHint": "Enter new tag and press Enter",
    "importTags": "Import Tags",
    "addTag": "Add tag",
    "uploadMd": "Upload .md",
    "aiPolish": "AI Polish",
    "polishing": "Polishing...",
    "polishNeedsContent": "Please write some content first before polishing",
    "polishFailed": "Failed to polish skill content",
    "aiPolishHint": "Polish content to SKILL.md standard format",
    "instructionsHint": "Supports Markdown format for guiding AI on how to use this skill",
    "startScan": "Start Scan",
    "scanning": "Scanning...",
    "scanFound": "Found {{count}} skill(s)",
    "rescan": "Rescan",
    "importSelected": "Import Selected",
    "importing": "Importing...",
    "scanImportSummary": "Imported {{imported}} / {{total}}, skipped {{skipped}}, failed {{failed}}.",
    "allDuplicates": "All selected skills already exist in your library.",
    "allAlreadyImported": "All scanned skills already exist in your library.",
    "versionHistory": "Version History",
    "versionManagement": "Version Management",
    "currentVersion": "Current Version",
    "restoreVersion": "Restore to this version",
    "restoreConfirm": "Are you sure you want to restore to v{{version}}? Current content will be saved as a new version.",
    "deleteVersionTitle": "Delete version snapshot",
    "deleteVersionConfirm": "Delete v{{version}}? This history entry cannot be recovered.",
    "noVersions": "No version history",
    "compareVersions": "Compare Versions",
    "filesInVersion": "Files in Version",
    "versionNote": "Version Note",
    "initialVersion": "Initial version",
    "fileEditor": "File Editor",
    "newFile": "New File",
    "newFolder": "New Folder",
    "deleteFile": "Delete File",
    "deleteFileConfirm": "Are you sure you want to delete this file? This action cannot be undone.",
    "openInExplorer": "Open in File Manager",
    "unsavedFile": "File has unsaved changes",
    "fileSaved": "File saved",
    "noFiles": "No local files for this skill",
    "binaryFile": "Binary file cannot be edited",
    "enterFileName": "Enter file name",
    "enterFolderName": "Enter folder name",
    "createVersion": "Create Version",
    "versionNotePlaceholder": "Describe what changed...",
    "versionCreated": "Version created",
    "creating": "Creating...",
    "batchTags": "Batch Tags",
    "batchTagsHint": "Add or remove tags across {{count}} selected skills.",
    "batchTagAffected": "{{count}} skills will be updated",
    "batchTagPartialFailure": "Batch tag update finished: {{updated}} succeeded, {{failed}} failed",
    "batchTagAddSuccess": "Added tag to {{count}} skills",
    "batchTagRemoveSuccess": "Removed tag from {{count}} skills",
    "batchManage": "Batch Manage",
    "batchDeploy": "Batch Deploy",
    "selectionMode": "Batch Mode",
    "selectedCount": "{{count}} selected",
    "detectedPlatforms": "Detected Platforms",
    "selectedPlatforms": "{{count}} selected",
    "distributionStats": "{{deployed}} deployed / {{total}} total",
    "progressiveRendering": "Rendering {{rendered}}/{{total}} in chunks",
    "batchDeployDefaultsHint": "Detected platforms are selected by default. Confirm the targets before starting batch sync.",
    "batchUndeployDefaultsHint": "This only removes PromptHub-distributed skills from selected platforms. Your local repo remains untouched.",
    "executionPlan": "Execution Plan",
    "noPlatformSelected": "No platform selected",
    "compareAgainst": "Compare Against",
    "compareSummary": "{{from}} -> {{to}}",
    "createSnapshot": "Create Snapshot",
    "snapshot": "Snapshot",
    "snapshotPrompt": "Enter a note for this snapshot",
    "snapshotCreated": "Version snapshot created",
    "snapshotDefaultNote": "Manual snapshot {{timestamp}}",
    "versionTimeline": "Timeline",
    "noVersionHistory": "No version history yet",
    "noVersionHistoryHint": "Editing SKILL.md or the file tree will automatically create snapshots that can be restored here.",
    "versionRestoreHint": "Select a version to restore",
    "selectedVersion": "Selected Version",
    "diffView": "Diff",
    "noChanges": "No changes",
    "filesChanged": "{{count}} file(s) changed",
    "expandAll": "Expand All",
    "collapseAll": "Collapse All",
    "importedBadge": "Already Imported",
    "noLocalRepo": "No local repository found",
    "safetyLevelSafe": "Safe",
    "safetyLevelWarn": "Needs review",
    "safetyLevelHighRisk": "High risk",
    "safetyLevelBlocked": "Blocked",
    "safetySummarySafe": "No obvious malicious patterns were detected across {{count}} scanned files.",
    "safetySummaryWarn": "{{warn}} warning findings were detected across {{count}} scanned files. Review the source before installing or executing it.",
    "safetySummaryHighRisk": "{{high}} high-risk and {{warn}} warning findings were detected across {{count}} scanned files. Manual review is recommended before proceeding.",
    "safetySummaryBlocked": "Obvious dangerous patterns were detected across {{count}} scanned files. Installation should remain blocked.",
    "securityAudits": "Security Audits",
    "safetyAssessment": "Safety Assessment",
    "safetyAssessmentDesc": "AI-powered safety analysis of the skill content and source context.",
    "safetyAssessmentEmpty": "No safety assessment available yet. Run a scan to check this skill.",
    "safetyScanning": "Scanning...",
    "runSafetyAssessment": "Run Scan",
    "safetyScanFailed": "Safety scan failed",
    "safetyScanBlockedInstall": "Installation blocked due to safety concerns.",
    "safetyLevelLabel": "Risk Level",
    "safetyModalTitle": "Safety Report",
    "safetyRescan": "Rescan",
    "safetyFilesChecked": "{{count}} file(s) checked",
    "safetyScanMethod": "Method",
    "safetyScanMethodAI": "AI-assisted",
    "safetyScanMethodAIDesc": "AI scan reviews the SKILL.md and relevant repo files with model context, so it is the primary signal for installation decisions.",
    "safetyScore": "Score",
    "safetyScoreDesc": "Score 0–100 (higher = safer). Based on risk level and number of findings: blocked 0–10, high-risk 20–40, caution 50–70, safe 80–100.",
    "safetyDimensionTitle": "Scoring Dimensions",
    "safetyDimContent": "Content patterns",
    "safetyDimContentDesc": "AI review of SKILL.md instructions and suspicious repo files for dangerous commands, privilege escalation, secret access, prompt injection, and exfiltration behavior.",
    "safetyDimSource": "Source trust",
    "safetyDimSourceDesc": "Source provenance preflight plus AI context review for missing provenance, malformed URLs, custom hosts, and restricted internal addresses.",
    "safetyDimRepo": "Repository structure",
    "safetyDimRepoDesc": "Repository tree review for executable scripts, bundled binaries, persistence-related files, and other risky packaging signals surfaced to the AI scan.",
    "safetyDimFindings": "{{count}} finding(s)",
    "safetyDimNoFindings": "Clean",
    "safetyScoreFormula": "Score formula: level sets the base range (blocked 0–10 · high-risk 20–40 · caution 50–70 · safe 80–100), then each finding deducts points within that range.",
    "safetyNoFindings": "No issues found",
    "safetySeverityHigh": "High",
    "safetySeverityWarn": "Warning",
    "safetySeverityInfo": "Info",
    "safetyScanTime": "Scanned",
    "safetyHighRiskTitle": "High-Risk Skill Detected",
    "safetyScanBlockedSource": "Safety scan blocked this source because it resolves to an internal or restricted address.",
    "safetyHighRiskConfirm": "This skill has been flagged as high risk. Are you sure you want to proceed?",
    "addAnyway": "Add Anyway",
    "confirmDeleteTitle": "Confirm Delete",
    "confirmDeleteSingle": "Are you sure you want to delete skill \"{{name}}\"?",
    "confirmDeleteMultiple": "Are you sure you want to delete {{count}} selected skills?",
    "deleteHint": "Only removes from the PromptHub library. Source files are preserved and platform installations will be uninstalled.",
    "refreshTranslation": "Refresh Translation",
    "editMetadata": "Edit Skill Metadata",
    "batchAction": "Action Mode",
    "batchDeployFailed": "Batch deploy completed with {{failed}} failures out of {{total}} targets.",
    "batchDeployFailureList": "Failed Targets",
    "batchDeployHint": "Deploy {{count}} skill(s) to selected platforms.",
    "batchUndeploy": "Batch Uninstall from Platforms",
    "batchUndeployHint": "Removes corresponding skills from selected platform directories. Your local PromptHub repo is not affected.",
    "noDetectedPlatforms": "No syncable platform directories detected.",
    "customPaths": "Custom scan paths",
    "detailRenderError": "This skill cannot be opened right now",
    "existingTags": "Existing tags",
    "exportFailed": "Export failed",
    "githubStars": "GitHub Stars",
    "hideOptionalTags": "Hide optional tags",
    "importFailed": "Failed to import skills",
    "installMethod": "Install Method",
    "loadFailed": "Load failed",
    "nameInvalid": "Invalid name format (only lowercase letters, numbers, and hyphens)",
    "nameTooLong": "Name must not exceed 64 characters",
    "openFileEditor": "Open File Editor",
    "openLocalSource": "Open Local Skill Folder",
    "openRemoteSource": "Open Source Link",
    "operation": "Operation",
    "pathPlaceholder": "~/path/to/skills",
    "previewRenderError": "Skill preview cannot be rendered right now",
    "previewRenderErrorHint": "The skill content or metadata format has a compatibility issue, but it won't crash the entire detail page. You can retry later or switch to the file view to inspect the raw content.",
    "instructionsManagedInFiles": "Instructions are managed in the file editor",
    "instructionsManagedInFilesHint": "SKILL.md and other files should be edited in the file editor. This form is for metadata only (name, description, author, tags).",
    "removeTag": "Remove tag",
    "restore": "Restore",
    "restoring": "Restoring...",
    "scanPreview": "Scan Preview",
    "scanPreviewStats": "Total: {{total}} · Imported: {{imported}} · Importable: {{importable}} · Selected: {{selected}}",
    "scanStatsImportable": "Importable",
    "scanStatsImported": "Imported",
    "scanStatsSelected": "Selected",
    "scanStatsTotal": "Total",
    "selectedSkills": "Selected Skills",
    "showOptionalTags": "Add tags when needed",
    "skillContent": "Skill Content",
    "skills": "skills",
    "storePage": "Store Page",
    "storePathPlaceholder": "Local directory path",
    "storeSourceHttpsRequired": "Store URL must use HTTPS",
    "storeSourceInvalidUrl": "Invalid store URL format",
    "storeSourceType": "Store Type",
    "syncSummary": "Sync Summary",
    "syncing": "Syncing",
    "syncingProgress": "Syncing {{current}}/{{total}}...",
    "tag": "Tag",
    "targetPlatforms": "Target Platforms",
    "totalTargets": "Total Targets",
    "translateRefreshed": "Translation refreshed",
    "weeklyInstalls": "Weekly Installs",
    "safetyFinding": {
      "shell-pipe-exec": "Detected pipe-to-shell execution",
      "dangerous-delete": "Detected destructive delete command",
      "encoded-powershell": "Detected encoded PowerShell execution",
      "encoded-shell-bootstrap": "Detected encoded payload decoded and executed immediately",
      "privilege-escalation": "Requests elevated privileges",
      "system-persistence": "Touches persistence or system service mechanisms",
      "secret-access": "Reads secret-bearing paths",
      "security-bypass": "Suggests bypassing approvals or sandboxing",
      "network-exfil": "Contains possible credential exfiltration behavior",
      "exec-bit": "Modifies executable permissions",
      "network-bootstrap": "Downloads remote resources",
      "env-mutation": "Mutates shell environment or startup files",
      "untrusted-source-host": "Source host is not a known trusted marketplace host",
      "external-audits": "Marketplace exposes external security audit metadata",
      "internal-source": "Source resolves to a local or internal address",
      "unknown-source": "Source provenance is missing",
      "invalid-source-url": "Source URL is invalid",
      "insecure-source-url": "Source URL is not HTTPS",
      "persistence-file": "Repository contains workflow or persistence-related files",
      "high-risk-binary": "Repository contains high-risk executable artifacts",
      "script-file": "Repository contains executable scripts"
    },
    "updateAvailable": "Update available",
    "updateConflict": "Local changes conflict with the store update",
    "localModified": "Local changes detected",
    "upToDate": "Already up to date",
    "updateCheckFailed": "Update check failed",
    "updateSuccess": "Updated",
    "checkingUpdate": "Checking...",
    "checkUpdate": "Check update",
    "updating": "Updating...",
    "update": "Update",
    "overwriteLocalChanges": "Overwrite local changes",
    "platformWorkbench": {
      "badge": "Future Workspace Preview",
      "heroTitle": "From Prompt + Skill manager to an AI operations workspace",
      "heroDesc": "This prototype explores how PromptHub could grow into a unified platform for prompts, skills, agents, MCP integrations and execution history without forcing everything into the current two-mode shell.",
      "heroStatObjects": "Managed objects",
      "heroStatObjectsHint": "Prompt · Skill · Agent · MCP",
      "heroStatLayers": "Platform layers",
      "heroStatLayersHint": "Assets · Connections · Runs",
      "heroStatGoal": "Goal",
      "heroStatGoalValue": "Clearer IA",
      "heroStatGoalHint": "Scale without UI entropy",
      "sidebarTitle": "Platform map",
      "sidebarFootTitle": "Design signal",
      "sidebarFootDesc": "Main navigation shifts from object count to domain structure: assets, automations, integrations and operations.",
      "libraryLabel": "Library",
      "libraryEyebrow": "Assets",
      "libraryTitle": "Prompts, skills and reusable building blocks",
      "libraryDesc": "Content assets and reusable capabilities live in the same workspace, but remain clearly typed and searchable.",
      "agentsLabel": "Agents",
      "agentsEyebrow": "Automation",
      "agentsTitle": "Agents become first-class managed units",
      "agentsDesc": "Agents should sit beside skills, with explicit runtime, ownership and safety metadata instead of being hidden inside loose prompt conventions.",
      "mcpLabel": "MCP & Integrations",
      "mcpEyebrow": "Connections",
      "mcpTitle": "External tools are managed as connections, not content",
      "mcpDesc": "MCP servers, model gateways and sync endpoints belong in a dedicated integration surface with health, auth and environment context.",
      "operationsLabel": "Operations",
      "operationsEyebrow": "Runs",
      "operationsTitle": "Execution becomes observable and reviewable",
      "operationsDesc": "Once Prompt, Skill, Agent and MCP all coexist, users need a unified surface for runs, failures, audits and release readiness.",
      "summaryReady": "Ready",
      "summaryNeedsReview": "Needs review",
      "summaryShared": "Shared",
      "summaryActive": "Active",
      "summaryQueued": "Queued",
      "summaryGuarded": "Guarded",
      "summaryConnected": "Connected",
      "summaryAttention": "Attention",
      "summaryEnvironments": "Environments",
      "summaryRuns": "Runs today",
      "summaryFailures": "Failures",
      "summaryRecovered": "Recovered",
      "lanePrompts": "Prompts",
      "lanePromptsHint": "Writing assets, templates, snippets",
      "laneSkills": "Skills",
      "laneSkillsHint": "Reusable capability packages and project skills",
      "laneResources": "Resources",
      "laneResourcesHint": "Reference docs, context packs, imported files",
      "laneResearch": "Research agents",
      "laneResearchHint": "Discovery, synthesis and evaluation loops",
      "laneCoding": "Coding agents",
      "laneCodingHint": "Implementation, refactor and test execution",
      "laneOps": "Ops agents",
      "laneOpsHint": "Release, monitoring and support workflows",
      "laneMcpServers": "MCP servers",
      "laneMcpServersHint": "Tool adapters, execution endpoints, repo bridges",
      "laneProviders": "Providers",
      "laneProvidersHint": "AI gateways, inference vendors, fallback chains",
      "laneSync": "Sync targets",
      "laneSyncHint": "Backups, publishing targets and workspace mirrors",
      "laneRuns": "Execution runs",
      "laneRunsHint": "Recent tasks, jobs and automated sequences",
      "laneAudit": "Audits",
      "laneAuditHint": "Security checks, publish reviews and quality gates",
      "laneReleases": "Releases",
      "laneReleasesHint": "Version plans, rollout state and rollback safety",
      "statusPublished": "Published",
      "statusDraft": "Draft",
      "statusReady": "Ready",
      "statusHealthy": "Healthy",
      "statusExperiment": "Experiment",
      "statusMonitored": "Monitored",
      "statusStable": "Stable",
      "statusSyncing": "Syncing",
      "statusAtRisk": "At risk",
      "statusNeedsReview": "Needs review",
      "statusOnline": "Online",
      "actionOpenSkill": "Open skill",
      "actionOpenPrompt": "Open prompt pack",
      "actionOpenTemplate": "Open template",
      "actionOpenAgent": "Open agent",
      "actionInspectAgent": "Inspect workflow",
      "actionReviewRuns": "Review runs",
      "actionOpenConnection": "Open connection",
      "actionViewHealth": "View health",
      "actionInspectSource": "Inspect source",
      "actionOpenBoard": "Open board",
      "actionReviewQueue": "Review queue",
      "actionOpenTimeline": "Open timeline",
      "actionCompare": "Compare model",
      "searchPlaceholder": "Search resources, capabilities or integrations...",
      "filter": "Filter",
      "emptySearch": "No prototype items match the current search.",
      "items": "items",
      "contextTitle": "Context panel",
      "metaType": "Type",
      "metaStatus": "Status",
      "metaOwner": "Owner",
      "metaUpdated": "Updated",
      "whyTitle": "Why this matters",
      "whyLibrary": "Prompts and skills can still feel familiar, but they no longer need to shoulder every future object type in the product.",
      "whyAgents": "Agents deserve their own lifecycle, observability and guardrails instead of being buried as prompt conventions or skill metadata hacks.",
      "whyMcp": "MCP and provider configuration is operational infrastructure. Treating it as a connection surface keeps auth, health and environment concerns explicit.",
      "whyOperations": "As the platform grows, users need a home for runs, audits and release status that cuts across every resource type.",
      "noteTitle": "Prototype note",
      "noteDesc": "This page is intentionally driven by mock structure. The goal is to preview a scalable navigation and workspace shape before migrating the real Prompt / Skill shell."
    }
  },
  "error": {
    "sha512Desc": "SHA512 checksum mismatch.\nThis is usually caused by CDN cache inconsistencies or network issues.\nThe file may have been downloaded successfully. You can try to install it manually."
  },
  "toast": {
    "exportSuccess": "Data exported successfully",
    "exportFailed": "Export failed",
    "importSuccess": "Data imported successfully",
    "importPartialSuccess": "Data imported. Skipped corrupted records ({{details}}).",
    "importFailed": "Import failed",
    "clearSuccess": "Data cleared",
    "clearFailed": "Clear failed",
    "connectionSuccess": "Connection successful",
    "connectionFailed": "Connection failed",
    "uploadSuccess": "Upload successful",
    "uploadFailed": "Upload failed",
    "downloadSuccess": "Download successful",
    "downloadFailed": "Download failed",
    "copied": "Copied to clipboard",
    "saved": "Saved successfully",
    "updateFailed": "Update failed",
    "deleted": "Deleted",
    "restored": "Restored to previous version",
    "configApiKey": "Please enter API Key first",
    "configAI": "Please configure AI model in settings first",
    "aiFailed": "AI request failed",
    "movedToFolder": "Moved to folder",
    "dataPathChanged": "Data path changed",
    "dataPathChangeFailed": "Data migration failed",
    "batchFavorited": "Batch favorited",
    "batchMoved": "Batch moved",
    "batchDeleted": "Batch deleted",
    "imageSaved": "Image saved to preview",
    "selfHostedSyncConnectionSuccess": "Connection successful. Remote workspace currently stores {{prompts}} prompts, {{folders}} folders, {{rules}} rules, and {{skills}} skills.",
    "selfHostedSyncPushSuccess": "Uploaded {{prompts}} prompts, {{folders}} folders, {{rules}} rules, and {{skills}} skills to PromptHub Web.",
    "selfHostedSyncPullSuccess": "Restored {{prompts}} prompts, {{folders}} folders, {{rules}} rules, and {{skills}} skills from PromptHub Web."
  },
  "closeDialog": {
    "title": "Close Application",
    "message": "Would you like to close the app or minimize to system tray?",
    "minimizeToTray": "Minimize to Tray",
    "exitApp": "Exit App",
    "rememberChoice": "Remember my choice"
  },
  "quickAdd": {
    "title": "Quick Add",
    "manualAdd": "Manual Add",
    "manualAddDesc": "Manually fill in details",
    "desc": "Paste content for AI analysis & categorization",
    "generateEntry": "AI Generate",
    "generateEntryDesc": "Describe your goal and let AI draft a Prompt",
    "quickAddDesc": "Paste Prompt, AI auto-categorizes",
    "smartFolder": "AI Smart Auto-Folder",
    "needConfig": "AI Required",
    "noAiConfig": "AI service not configured",
    "noAiConfigDesc": "Please configure an AI provider in settings to use smart analysis.",
    "tokenWarning": "Using AI analysis will consume some tokens",
    "pastePrompt": "Paste your Prompt",
    "placeholder": "Paste your Prompt content here...",
    "modeLabel": "Creation Mode",
    "modeAnalyze": "Analyze Existing",
    "modeAnalyzeDesc": "Paste an existing Prompt and let AI extract title, tags, and folder",
    "modeGenerate": "AI Generate Prompt",
    "modeGenerateDesc": "Describe your goal and let AI generate a ready-to-save Prompt draft",
    "generatePromptRequest": "Describe the Prompt you want",
    "generatePlaceholder": "For example: Create a Prompt for writing Xiaohongshu headlines with a young, internet-savvy tone and output 10 title options.",
    "generateAndCreate": "Generate & Create",
    "analyzing": "Analyzing...",
    "analyzeWithAi": "Analyze with AI",
    "parseError": "Failed to parse AI response",
    "analysisFailed": "AI analysis failed",
    "analysisResult": "AI Analysis Result",
    "suggestedFolder": "Suggested Folder",
    "create": "Create"
  },
  "recovery": {
    "title": "Data Recovery Available",
    "description": "We found one or more recovery sources. Review the counts, timestamps, and preview data below, then choose the source you want to restore.",
    "sourceLabel": "Found data at:",
    "promptCount": "{{count}} prompts",
    "folderCount": "{{count}} folders",
    "skillCount": "{{count}} skills",
    "dbSize": "Database size: {{size}}",
    "recover": "Recover Data",
    "recoverSelected": "Restore Selected Source",
    "dismiss": "Start Fresh",
    "recovering": "Recovering data...",
    "success": "Data recovered successfully! The app will restart.",
    "restarting": "The app is restarting...",
    "failed": "Recovery failed: {{error}}",
    "overwriteWarning": "Your current library has {{count}} prompt(s). Recovering will replace your existing data with the selected backup. Your current data will be backed up automatically before proceeding.",
    "confirmDismiss": "Are you sure you want to start with an empty database? Your old data will remain at the original location and can be recovered manually later.",
    "sourcesTitle": "Recovery Sources",
    "sourcesDescription": "Choose the source that looks like your real data.",
    "sourceCount": "{{count}} sources",
    "previewTitle": "Preview",
    "previewLoading": "Loading preview...",
    "previewEmpty": "No preview items are available for this source yet.",
    "previewUnavailable": "Preview is not available for this source.",
    "previewTruncated": "Preview is truncated. Restore the source to inspect all items.",
    "sourceType": {
      "current-residual": "Current directory residuals",
      "external-user-data": "Previous data directory",
      "upgrade-backup": "Automatic upgrade backup",
      "standalone-db-backup": "Standalone database backup"
    },
    "dataSource": {
      "sqlite": "SQLite",
      "workspace": "Workspace files",
      "browser-storage": "Browser storage",
      "skills": "Skills",
      "legacy-layout": "Legacy layout"
    },
    "previewKind": {
      "prompt": "Prompt",
      "folder": "Folder",
      "skill": "Skill"
    },
    "skillsOnly": "Skills only"
  }
}
