/**
 * English Translation
 */
window.LOCALE_DATA = window.LOCALE_DATA || {};
window.LOCALE_DATA['en-US'] = {
    // ===== Common =====
    'app.title': 'Wukong AI Image Generator',
    'app.config': 'Config',
    'app.theme.toggle': 'Toggle Theme',
    'app.language.toggle': 'Toggle Language',
    'app.close': 'Close',
    'app.cancel': 'Cancel',
    'app.confirm': 'Confirm',
    'app.save': 'Save',
    'app.delete': 'Delete',
    'app.edit': 'Edit',
    'app.add': 'Add',
    'app.browse': 'Browse...',
    'app.loading': 'Loading...',
    'app.uploading': 'Uploading...',
    'app.processing': 'Processing...',
    'app.success': 'Success',
    'app.error': 'Error',
    'app.warning': 'Warning',
    
    // ===== Tabs =====
    'tab.banana': 'Banana',
    'tab.comfyui': 'ComfyUI',
    'tab.rh': 'RH',

    'rh.title': 'RH Workspace',
    'rh.subtitle': 'Parse, run, preview, and place RunningHub workflows directly inside Photoshop.',
    'rh.docs.open': 'Docs',
    'rh.docs.opened': 'RunningHub documentation opened',
    'rh.account.kicker': 'Account',
    'rh.account.title': 'RunningHub Credentials & Status',
    'rh.account.apiKey': 'API Key',
    'rh.account.toggle': 'Show',
    'rh.account.toggleHide': 'Hide',
    'rh.account.balance': 'Balance',
    'rh.account.coins': 'RH Coins',
    'rh.account.status': 'Status',
    'rh.account.refresh': 'Refresh Account',
    'rh.account.save': 'Save Key',
    'rh.account.clear': 'Clear',
    'rh.account.saved': 'API key saved',
    'rh.account.cleared': 'API key cleared',
    'rh.account.missing': 'Please enter API key first',
    'rh.account.loading': 'Loading...',
    'rh.account.ok': 'Connected',
    'rh.account.failed': 'Failed',
    'rh.account.loaded': 'Account status refreshed',
    'rh.app.kicker': 'App',
    'rh.app.title': 'Workflow Parse & Management',
    'rh.app.source': 'Workflow ID / URL',
    'rh.app.sourcePlaceholder': 'https://www.runninghub.cn/#/workflow/...',
    'rh.app.name': 'Local Name',
    'rh.app.namePlaceholder': 'e.g. Fashion Retouch RH Workflow',
    'rh.app.parse': 'Parse Workflow',
    'rh.app.save': 'Save App',
    'rh.app.delete': 'Delete',
    'rh.app.savedList': 'Saved Apps',
    'rh.app.savedPlaceholder': 'Select a saved app',
    'rh.app.metaEmpty': 'No app loaded yet. Enter a workflow ID / URL and click Parse Workflow.',
    'rh.app.metaPrefix': 'Current App',
    'rh.app.metaInputs': 'Inputs',
    'rh.app.sourceMissing': 'Please enter workflow ID or URL',
    'rh.app.parsing': 'Parsing workflow',
    'rh.app.parsed': 'Workflow parsed successfully',
    'rh.app.noCurrent': 'Please parse or select a workflow first',
    'rh.app.savedDone': 'App saved',
    'rh.app.deleted': 'App deleted',
    'rh.app.selected': 'App switched',
    'rh.inputs.kicker': 'Inputs',
    'rh.inputs.title': 'Dynamic Parameters',
    'rh.inputs.empty': 'Dynamic inputs will appear here after parsing.',
    'rh.inputs.summary': '{count} inputs, {images} image inputs, {required} required.',
    'rh.inputs.imageEmpty': 'No image captured yet',
    'rh.inputs.captureQuick': 'Quick Layer',
    'rh.inputs.captureLayer': 'Layer Canvas',
    'rh.inputs.captureCanvas': 'Full Canvas',
    'rh.inputs.clearImage': 'Clear',
    'rh.inputs.capturing': 'Capturing image',
    'rh.inputs.captureFailed': 'Failed to capture image data',
    'rh.inputs.captureDone': 'Image captured',
    'rh.run.kicker': 'Run',
    'rh.run.title': 'Execution & Advanced Settings',
    'rh.run.submit': 'Run Workflow',
    'rh.run.cancel': 'Cancel Task',
    'rh.run.reset': 'Reset View',
    'rh.run.running': 'Submitting and polling task...',
    'rh.run.start': 'Run started',
    'rh.run.done': 'Task completed',
    'rh.run.completedTask': 'Task completed',
    'rh.run.failed': 'Task failed',
    'rh.run.cancelled': 'Task cancelled',
    'rh.run.noTask': 'No running task to cancel',
    'rh.run.resetDone': 'View reset. Current app and settings were kept.',
    'rh.results.kicker': 'Results',
    'rh.results.title': 'Results & Photoshop Placement',
    'rh.results.import': 'Import to Photoshop',
    'rh.results.download': 'Download Current',
    'rh.results.downloadAll': 'Download All',
    'rh.results.empty': 'Waiting for RunningHub results.',
    'rh.results.current': 'Current Result',
    'rh.results.preview': 'Preview',
    'rh.results.noCurrent': 'No result available for import or download',
    'rh.results.onlyImageImport': 'Only image outputs can be imported into Photoshop',
    'rh.results.imported': 'Result imported into Photoshop',
    'rh.results.downloadOpened': 'Opened result download link',
    'rh.results.downloadAllOpened': 'Opened all result links',
    'rh.results.noOutputs': 'No outputs available',
    'rh.tasks.kicker': 'Tasks',
    'rh.tasks.title': 'Task History',
    'rh.tasks.refresh': 'Refresh',
    'rh.tasks.clear': 'Clear',
    'rh.tasks.empty': 'No task history yet.',
    'rh.tasks.load': 'Load',
    'rh.tasks.loaded': 'Task loaded',
    'rh.tasks.cleared': 'Task history cleared',
    'rh.log.kicker': 'Log',
    'rh.log.title': 'Run Log',
    'rh.log.clear': 'Clear Log',
    'rh.log.ready': 'RH module is ready.',
    'rh.settings.pollInterval': 'Poll Interval (s)',
    'rh.settings.timeout': 'Timeout (s)',
    'rh.settings.targetBytes': 'Upload Target (MB)',
    'rh.settings.hardLimit': 'Upload Hard Limit (MB)',
    'rh.settings.concurrency': 'Concurrency',
    'rh.settings.autoCompress': 'Auto compress upload images',
    
    // ===== Theme =====
    'theme.light': 'L',
    'theme.dark': 'D',
    'theme.toggle_to_light': 'Switch to Light Theme',
    'theme.toggle_to_dark': 'Switch to Dark Theme',
    
    // ===== Language =====
    'language.label': 'Language',
    'language.zh_cn': '简体中文',
    'language.zh_tw': '繁體中文',
    'language.en_us': 'English',
    'language.vi_vn': 'Tiếng Việt',
    
    // ===== ComfyUI Connection =====
    'comfy.server.placeholder': 'ComfyUI Server Address (http://127.0.0.1:8188)',
    'comfy.server.connect': 'Connect',
    'comfy.server.disconnect': 'Disconnect',
    'comfy.server.connected': 'Connected',
    'comfy.server.disconnected': 'Disconnected',
    'comfy.server.connecting': 'Connecting...',
    'comfy.server.error': 'Connection Failed',
    
    // ===== ComfyUI Settings =====
    'comfy.settings.auto_expand': 'Auto Expand Canvas',
    'comfy.settings.limit_size': 'Limit Upload Size (2048)',
    
    // ===== ComfyUI System Stats =====
    'comfy.stats.queue': 'Queue',
    'comfy.stats.cpu': 'CPU',
    'comfy.stats.ram': 'RAM',
    'comfy.stats.gpu': 'GPU',
    'comfy.stats.vram': 'VRAM',
    'comfy.stats.temp': 'Temp',
    
    // ===== ComfyUI Workflow =====
    'comfy.workflow.title': 'Workflow',
    'comfy.workflow.add': 'Add Workflow',
    'comfy.workflow.manage': 'Manage Workflows',
    'comfy.workflow.name': 'Button Name',
    'comfy.workflow.file': 'Workflow File',
    'comfy.workflow.name_placeholder': 'e.g.: Text to Image',
    'comfy.workflow.file_placeholder': 'Click browse to select JSON file...',
    'comfy.workflow.delete_confirm': 'Are you sure to delete workflow "{name}"?',
    'comfy.workflow.reselect': 'Reselect',
    
    // ===== ComfyUI Parameters =====
    'comfy.params.title': 'Parameters',
    'comfy.params.count': '{count} parameters',
    'comfy.params.no_params': 'Please connect to server and select a workflow first',
    'comfy.params.image_input': 'Image Input',
    'comfy.params.mask_input': 'Mask Input',
    'comfy.params.click_to_get': 'Click button to get image',
    'comfy.params.not_uploaded': 'Not uploaded yet',
    'comfy.params.not_uploaded_mask': 'Mask not uploaded yet',
    
    // ===== ComfyUI Image Operations =====
    'comfy.image.grab_quick': 'Quick Layer',
    'comfy.image.grab_layer': 'Current Layer',
    'comfy.image.grab_canvas': 'Full Canvas',
    'comfy.image.grab_selection': 'Selection',
    'comfy.image.remove': '×',
    
    // ===== ComfyUI Mask Operations =====
    'comfy.mask.selection': 'Selection Mask',
    'comfy.mask.layer': 'Layer Mask',
    
    // ===== ComfyUI Execution =====
    'comfy.execute.run': 'Run Workflow',
    'comfy.execute.stop': 'Stop',
    'comfy.execute.running': 'Running...',
    'comfy.execute.idle': 'Idle...',
    'comfy.execute.progress': 'Progress',
    'comfy.execute.save_internal': 'Free Memory',
    'comfy.execute.stop_all': 'Stop All',
    
    // ===== Error Messages =====
    'error.server_not_connected': 'Please connect to ComfyUI server first',
    'error.no_workflow': 'Please select a workflow first',
    'error.upload_failed': 'Upload failed',
    'error.execute_failed': 'Execution failed',
    'error.network_error': 'Network error',
    'error.invalid_workflow': 'Invalid workflow file',
    'error.file_too_large': 'File too large',
    'error.unsupported_format': 'Unsupported file format',
    'error.no_selection': 'No selection',
    'error.no_active_layer': 'No active layer',
    // ===== Error Messages (Generation) =====
    'error.quota_exceeded': 'Insufficient balance, cannot generate images!\n\nPlease go to "Config" to recharge and try again.',
    'error.network_failed': 'Network connection failed!\n\n{msg}',
    'error.timeout': 'API request timed out!\n\n{msg}',
    'error.generation_failed': 'Generation failed: {msg}',
    'error.quota_short': '🚫 Insufficient balance ({time})\n\nPlease go to "Config" to recharge.',
    'error.network_short': '🚫 Network error ({time})\n\nNetwork connection failed, please check your network.',
    'error.timeout_short': '⏰ Generation timeout ({time})\n\nRequest timed out, please check your network.',
    'error.generation_failed_short': '❌ Generation failed ({time})\n\n{msg}',
    'banana.result.completed': 'Generation complete, time: {seconds}s',
    'banana.result.referenceCount': 'Used {count} reference images',
    'banana.result.selectionMode': '🎯 Selection mode: image placed directly into the selection',
    'banana.result.uploadTiming': 'Reference upload time: {seconds}s ({successCount}/{requestedCount} images)',
    'banana.result.uploadTimingNone': 'Reference upload time: 0.00s (no reference image used)',
    'banana.result.downloadTiming': 'Result download time: {seconds}s ({count} images)',
    'banana.result.seed.random': '[Seed: Random]',
    'banana.result.seed.fixed': '[Seed: {seed}]',
    'banana.result.successCount': 'Successfully generated {count} images',
    'banana.result.batchLine': '[Batch {index}] {text}',
    'banana.result.taskUuid': 'Task UUID: {uuid}',
    'banana.result.taskUuidWithCount': 'Task UUID: {uuid}, generated {count} images',
    'banana.result.failedLine': '❌ {msg}',
    'banana.result.generationFailed': 'Generation failed',
    'banana.result.downloadAll': '📥 Download All',
    'banana.result.sendAllToPS': '📤 Send All to PS',
    'banana.result.createNewDocument': '📄 Create New Document',
    
    // ===== Success Messages =====
    'success.connected': 'Connected successfully',
    'success.uploaded': 'Uploaded successfully',
    'success.executed': 'Executed successfully',
    'success.saved': 'Saved successfully',
    'success.deleted': 'Deleted successfully',
    
    // ===== Log Messages =====
    'log.connecting': 'Connecting to {url}...',
    'log.connected': 'Connected to ComfyUI server',
    'log.disconnected': 'Disconnected',
    'log.uploading_image': 'Uploading image...',
    'log.uploading_mask': 'Uploading mask...',
    'log.executing_workflow': 'Executing workflow...',
    'log.workflow_completed': 'Workflow completed',
    'log.node_executing': 'Executing node: {node}',
    
    // ===== API Config Modal =====
    'apiConfig.title': 'API Config',
    'apiConfig.close': 'Close',
    'apiConfig.logout': 'Logout',
    'apiConfig.balance.label': 'Account Balance',
    'apiConfig.balance.unit': '¥',
    'apiConfig.recharge': 'Recharge',
    'apiConfig.vietnamRecharge': 'Vietnam Recharge',
    'apiConfig.vietnamRecharge.opened': 'Vietnam recharge page opened',
    'apiConfig.vietnamRecharge.failed': 'Failed to open Vietnam recharge page',
    'apiConfig.paymentHistory': 'Top-up History',
    'apiConfig.networkTest': 'Network Test',
    'apiConfig.announcements': 'Announcements',
    'apiConfig.login': 'Login / Register',
    'apiConfig.apiKey.placeholder': 'API Token *',
    'apiConfig.show': 'Show',
    'apiConfig.save': 'Save',
    'apiConfig.taskMode': 'Task Management Mode',
    'apiConfig.balanceMode': 'Use Balance (Login Required)',
    'apiConfig.customerService': 'Customer Service',
    'apiConfig.copyWechat': 'Copy',
    'announcement.center.title': 'Announcement Center',
    'announcement.center.refresh': 'Refresh',
    'announcement.center.empty': 'No announcements',
    'announcement.center.markRead': 'Mark as Read',
    'announcement.center.badge.forcePopup': 'Forced Popup',
    'announcement.center.badge.unread': 'Unread',
    'announcement.center.level.info': 'Info',
    'announcement.center.level.warning': 'Warning',
    'announcement.center.level.critical': 'Critical',
    'paymentHistory.title': 'Top-up History',
    'paymentHistory.refresh': 'Refresh',
    'paymentHistory.empty': 'No payment records',
    'paymentHistory.loadMore': 'Load More',
    'paymentHistory.status.pending': 'Pending',
    'paymentHistory.status.paid': 'Paid',
    'paymentHistory.status.closed': 'Closed',
    'paymentHistory.status.failed': 'Failed',
    'networkTest.title': 'Current Network Route',
    'networkTest.summary.idle': 'Click the button to test current network',
    'networkTest.summary.testing': 'Testing network, please wait...',
    'networkTest.summary.result': 'Current route: {line}',
    'networkTest.line1': 'Line 1',
    'networkTest.line2': 'Line 2',
    'networkTest.value.unavailable': 'Unavailable',
    'networkTest.meta.untested': 'Not tested',
    'networkTest.meta.cache': 'Cached result',
    'networkTest.meta.probe': 'Live test',
    'networkTest.meta.fallback': 'Fallback default',
    'networkTest.meta.updated': '{source} · {time}',
    'networkTest.error': 'Network test failed',
    'apiConfig.quotaUsed': 'Used: --',
    'apiConfig.quotaTotal': 'Total: --',
    'userRole.admin': 'Admin',
    'userRole.user': 'User',

    // ===== Task Manager Panel =====
    'taskManager.panel.title': 'Task Manager',
    'taskManager.panel.empty': 'No generation history',
    'taskManager.panel.clear': 'Clear',
    'taskManager.panel.clear.title': 'Clear history',
    'taskManager.panel.btn': 'Tasks',
    'taskManager.panel.query': 'Query',
    'taskManager.panel.query.loading': 'Querying...',
    'taskManager.panel.query.title': 'Query server tasks (last 24 hours)',
    'taskManager.panel.importCurrent': 'Import to Current Canvas',
    'taskManager.panel.importNewCanvas': 'Import to New Canvas',
    'taskManager.panel.importedCurrent': 'Image imported to current canvas',
    'taskManager.panel.importedNewCanvas': 'Image imported to new canvas',
    'main.accountBar.title': 'Account Overview',
    'main.accountBar.balance': 'Balance',
    'main.accountBar.refresh': 'Refresh Balance',

    // ===== Banana Page =====
    'banana.image_upload': 'Image Source & Preview',
    'banana.mode.normal': 'Normal',
    'banana.mode.selection': 'Mask',
    'banana.layout.full': 'Full Canvas',
    'banana.layout.image': 'Layer Canvas',
    'banana.layout.fast': 'Quick Layer',
    'banana.image.title': 'Image Source & Preview',
    'banana.image.slot': 'Image {n}',
    'banana.image.click_to_get': 'Click button to get image',
    'banana.image.not_uploaded': 'Not uploaded yet',
    'banana.prompt.placeholder': 'Describe your prompt *',
    'banana.prompt.presetLockedPlaceholder': 'Preset selected — no need to type a prompt here',
    'banana.batch.label': 'Batch Size',
    'banana.aiPromptOptimize.title': 'AI Prompt Optimize',
    'banana.aiPromptOptimize.hint': 'Use Gemini to expand short descriptions into Banana Pro structured prompts',
    'banana.aiPromptOptimize.optimizing': 'Optimizing prompt…',
    'banana.aiPromptOptimize.done': '✨ Prompt optimized',
    'banana.aiPromptOptimize.fail': '⚠️ AI optimization failed, using original prompt',
    'banana.aiPromptOptimize.modeLabel': 'Optimize Mode',
    'banana.aiPromptOptimize.mode.universal': 'Universal',
    'banana.aiPromptOptimize.mode.photography': 'Photography',
    'banana.aiPromptOptimize.mode.scene': 'Scene Build',
    'banana.aiPromptOptimize.mode.blend': 'Multi-Image Blend',
    'banana.aiPromptOptimize.mode.edit': 'Precision Edit',
    'banana.aiPromptOptimize.mode.design': 'Design Layout',
    'banana.manualStretch.title': '⤢ Fit to Canvas',
    'banana.settings.title': 'Generation Settings',
    'banana.settings.auto_expand': 'Auto Expand Canvas',
    'banana.settings.limit_size': 'Limit Upload Size (2048)',
    'banana.settings.creativity': 'Creativity',
    'banana.settings.align_reference': 'Align Reference Images',
    'banana.settings.auto_stretch': 'Auto Stretch to Canvas',
    'banana.settings.createNewDoc': 'Auto Create Canvas and Place Returned Image',
    'banana.settings.seed': 'Random Seed',
    'banana.settings.seed_placeholder': 'Seed (-1 for random)',
    'banana.preset.placeholder': 'Select preset template...',
    'banana.generate': 'Start Generating',
    'banana.generate_selection': 'Generate in Selection',
    'banana.generate_hint': 'Generate image and add to current document',
    'banana.generate_selection_hint': 'Selection detected, will generate directly in selection area',
    'banana.generating': 'Generating...',
    'banana.loading.wait': 'Generating image, please wait...',
    'banana.loading.cancel': 'Cancel Generation',
    'banana.loading.interrupting': 'Interrupting...',
    'banana.loading.cancelling': 'Cancelling...',
    'banana.loading.cancelRequested': 'Cancellation requested. Waiting for the current task to finish...',
    'banana.progress.running': 'Generating {progress}%',
    'banana.progress.completed': 'Completed ✓',
    'banana.progress.failed': 'Failed {progress}%',
    'banana.stop': 'Stop',
    'banana.save_internal': 'Free Memory',
    'banana.stop_all': 'Stop All',
    'banana.quickFunctions.title': 'Preset Templates',
    'banana.quickFunctions.expand': 'Expand ▼',
    'banana.quickFunctions.collapse': 'Collapse ▲',
    'banana.quickFunctions.needPrompt': 'Enter a prompt or select a quick action',
    // Categories
    'banana.quickFunctions.cat.ai': 'AI Photography',
    'banana.quickFunctions.cat.portrait': 'Portrait',
    'banana.quickFunctions.cat.retouch': 'Retouching',
    'banana.quickFunctions.cat.wedding': 'Wedding',
    'banana.quickFunctions.cat.hotel': 'Hotel',
    // Presets
    'banana.quickFunctions.preset.qf-family-2': 'Family Photo',
    'banana.quickFunctions.preset.qf-couple-travel': 'Couple Travel',
    'banana.quickFunctions.preset.qf-couple-cinematic': 'Couple Composition',
    'banana.quickFunctions.preset.qf-newyear-koi': 'Koi Style',
    'banana.quickFunctions.preset.qf-newyear-classicindoor': 'Indoor Classic',
    'banana.quickFunctions.preset.qf-movie-moon': 'White Dress',
    'banana.quickFunctions.preset.qf-movie-ferry': 'Moody Vibe',
    'banana.quickFunctions.preset.qf-movie-japanese': 'Japanese Style',
    'banana.quickFunctions.preset.qf-movie-subway': 'Subway Style',
    'banana.quickFunctions.preset.qf-movie-blue': 'Blue Film',
    'banana.quickFunctions.preset.qf-movie-fresh': 'Fresh Style',
    'banana.quickFunctions.preset.qf-movie-ferry2': 'Ferry Style',
    'banana.quickFunctions.preset.qf-movie-road': 'Road Movie',
    'banana.quickFunctions.preset.qf-movie-lake': 'Lake Style',
    'banana.quickFunctions.preset.qf-movie-snow': 'Snow Style',
    'banana.quickFunctions.preset.qf-portrait-goldfish': 'Koi Portrait',
    'banana.quickFunctions.preset.qf-portrait-splash': 'Portrait Style',
    'banana.quickFunctions.preset.qf-retouch-rapeseed': 'Flower Field',
    'banana.quickFunctions.preset.qf-retouch-composite': 'Composite',
    'banana.quickFunctions.preset.qf-retouch-sunny': 'Sunny Style',
    'banana.quickFunctions.preset.qf-retouch-colorgrade': 'Color Grade',
    'banana.quickFunctions.preset.qf-retouch-liquify': 'Liquify',
    'banana.quickFunctions.preset.qf-retouch-shimmer': 'Shimmering Ripples',
    'banana.quickFunctions.preset.qf-retouch-oldphoto': 'Old Photo Restore',
    'banana.quickFunctions.preset.qf-retouch-liquifyslim': 'Liquify Slimming',
    'banana.quickFunctions.preset.qf-retouch-colorgrade2': 'Color Grade 2',
    'banana.quickFunctions.preset.qf-retouch-skirtrepair': 'Skirt Repair',
    'banana.quickFunctions.preset.qf-retouch-blend': 'Image Blend',
    'banana.quickFunctions.preset.qf-retouch-grassrepair': 'Grass Repair',
    'banana.quickFunctions.preset.qf-wedding-rainbowsmoke': 'Rainbow Smoke',
    'banana.quickFunctions.preset.qf-wedding-topdown-redcarpet': 'Top-Down Red Carpet',
    'banana.quickFunctions.preset.qf-wedding-colorsmoke': 'Color Smoke',
    'banana.quickFunctions.preset.qf-wedding-redcarpet': 'Red Carpet',
    'banana.quickFunctions.preset.qf-wedding-confetti': 'Confetti',
    'banana.quickFunctions.preset.qf-wedding-lighting': 'Lighting',
    'banana.quickFunctions.preset.qf-wedding-carpet': 'Red Carpet Fix',
    'banana.quickFunctions.preset.qf-wedding-mvp1': 'Wedding MVP',
    'banana.quickFunctions.preset.qf-wedding-mvp2': 'Wedding MVP',
    'banana.quickFunctions.preset.qf-hotel-night': 'Night Edit',
    'banana.quickFunctions.preset.qf-hotel-day': 'Day Edit',
    'banana.quickFunctions.preset.qf-hotel-bed-all': 'Bedding Edit',

    // ===== SD WebUI Page =====
    'sd.title': 'SD WebUI',
    'sd.prompt.placeholder': 'Prompt (optional)',
    'sd.model': 'Model',
    'sd.model.loading': 'Loading...',
    'sd.sampler': 'Sampler',
    'sd.cfg': 'CFG',
    'sd.denoising': 'Denoising Strength',
    'sd.size': 'Size',
    'sd.lock': 'Lock',
    'sd.color_space': 'Color Space',
    'sd.restore_faces': 'Restore Faces',
    'sd.inpainting': 'Inpainting',
    'sd.inpainting.enable': 'Enable',
    'sd.fill': 'Fill',
    'sd.fill.original': 'Original',
    'sd.fill.noise': 'Noise',
    'sd.fill.fill': 'Fill',
    'sd.fill.blank': 'Blank',
    'sd.generate': 'Start Generating',
    'sd.stop': 'Stop',
    'sd.preview': 'Live Preview',
    'sd.preview.generating': 'Generating preview...',
    'sd.get_size': 'Get Selection Size',

    // SD WebUI Status Area
    'sd.server': 'SD WebUI Server',
    'sd.queue': 'Queue',
    'sd.idle': 'Idle...',
    'sd.model.info': 'Model',

    // SD WebUI Connection
    'sd.server.placeholder': 'SD Server Address (http://127.0.0.1:7860)',
    'sd.connect': 'Connect',
    'sd.disconnect': 'Disconnect',

    // ===== Ecommerce Panel =====
    'ec.modal.title': 'Ecommerce Detail Mode',
    'ec.modal.titleInterior': 'Interior Design Version',
    'ec.interior.badge': 'Interior',
    'ec.interior.section.referenceScene': 'Scene Reference',
    'ec.interior.label.imageCount': 'Generate Count',
    'ec.interior.label.prompt': 'Additional Notes',
    'ec.interior.placeholder.prompt': 'Add style preference, camera angle, key materials, soft furnishing mood, etc...',
    'ec.interior.label.sceneType': 'Scene Type',
    'ec.interior.label.daylight': 'Default Daylight',
    'ec.interior.label.peopleMode': 'People',
    'ec.interior.label.shootTime': 'Shoot Time',
    'ec.interior.label.cityView': 'City View',
    'ec.interior.label.weatherMode': 'Weather',
    'ec.interior.label.cameraModel': 'Camera',
    'ec.interior.label.aperture': 'Aperture',
    'ec.interior.label.materialPreset': 'Material Preset',
    'ec.interior.step.setup': 'Scene Setup',
    'ec.interior.step.material': 'Lighting & Materials',
    'ec.interior.step.generate': 'Rendering',
    'ec.interior.step.completed': 'Completed',
    'ec.interior.option.sceneType.indoor': 'Indoor',
    'ec.interior.option.sceneType.outdoor': 'Outdoor',
    'ec.interior.option.daylight.enabled': 'Enabled',
    'ec.interior.option.daylight.disabled': 'Disabled',
    'ec.interior.option.peopleMode.natural_people': 'Add Real People',
    'ec.interior.option.peopleMode.no_people': 'No People',
    'ec.interior.option.shootTime.noon': 'Noon',
    'ec.interior.option.shootTime.morning': 'Morning',
    'ec.interior.option.shootTime.afternoon': 'Afternoon',
    'ec.interior.option.shootTime.dusk': 'Dusk',
    'ec.interior.option.shootTime.night': 'Night',
    'ec.interior.option.cityView.nanjing': 'Nanjing',
    'ec.interior.option.cityView.shanghai': 'Shanghai',
    'ec.interior.option.cityView.beijing': 'Beijing',
    'ec.interior.option.cityView.shenzhen': 'Shenzhen',
    'ec.interior.option.cityView.none': 'No Landmark Emphasis',
    'ec.interior.option.weatherMode.sunny': 'Sunny',
    'ec.interior.option.weatherMode.cloudy': 'Cloudy',
    'ec.interior.option.weatherMode.rainy': 'Rainy',
    'ec.interior.option.weatherMode.snowy': 'Snowy',
    'ec.interior.option.cameraModel.canon_r5': 'Canon EOS R5',
    'ec.interior.option.cameraModel.sony_a7r5': 'Sony A7R5',
    'ec.interior.option.cameraModel.nikon_z8': 'Nikon Z8',
    'ec.interior.option.materialPreset.pbr_realistic': 'PBR Realistic',
    'ec.interior.option.materialPreset.architectural_magazine': 'Architectural Magazine',
    'ec.interior.option.materialPreset.cinematic_realistic': 'Cinematic Realistic',
    'ec.button.openEcommerce': 'One-Click E-Commerce Detail',
    'ec.button.openInteriorDesign': 'Interior Design Version',
    'ec.button.backMain': 'Back to Main',
    'ec.section.referenceImage': 'Reference Image',
    'ec.hint.referenceImage': 'Supports 3 reference images. First click to select preview, then click button above to get image from Photoshop.',
    'ec.button.grabQuick': 'Quick Layer',
    'ec.button.grabLayer': 'Layer Canvas',
    'ec.button.grabCanvas': 'Full Canvas',
    'ec.label.canvasRatio': 'Canvas Ratio',
    'ec.label.imageCount': 'Image Count',
    'ec.label.outputLanguage': 'Output Language',
    'ec.label.targetPlatform': 'Target Platform',
    'ec.label.designTheme': 'Design Theme',
    'ec.label.palette': 'Tone',
    'ec.label.imageModel': 'Image Model',
    'ec.label.resolution': 'Resolution',
    'ec.label.brandColor': 'Brand Color',
    'ec.placeholder.brandColor': 'e.g: #FF6B6B',
    'ec.label.productPrompt': 'Product Description / Selling Points',
    'ec.placeholder.productPrompt': 'Please enter product name, selling points, parameters, target users, etc...',
    'ec.step.productRecognition': 'Product Recognition',
    'ec.step.designPlanning': 'Design Planning',
    'ec.step.generating': 'Generating Images',
    'ec.step.completed': 'Completed',
    'ec.button.generate': 'Start Generating',
    'common.close': 'Close',
    'language.switch': 'Switch Language',

    // ===== Grid Mode =====
    'ec.grid.mode': 'Grid Mode',
    'ec.grid.type': 'Grid Type',
    'ec.grid.hint': 'Generate a single grid detail page image with multiple tiles',
    'ec.option.grid.3': '3-Grid (3 tiles)',
    'ec.option.grid.4': '4-Grid (2×2)',
    'ec.option.grid.6': '6-Grid (2×3)',
    'ec.option.grid.8': '8-Grid (2×4)',
    'ec.option.grid.9': '9-Grid (3×3)',
    'ec.option.grid.12': '12-Grid (3×4)',
    'ec.option.grid.free': 'Auto',

    // ===== Clone Mode =====
    'ec.clone.mode': 'Clone Mode',
    'ec.section.referenceImage_clone': 'Product Images (Clone Mode)',
    'ec.hint.referenceImage_clone': '3 slots for product images. Select the clone reference slot below, then click a button to get the detail page.',
    'ec.clone.remove': 'Remove',
    
    // ===== Ecommerce Panel - Dropdown Options =====
    'ec.option.ratio.1_1': '1:1 Square',
    'ec.option.ratio.3_4': '3:4 Portrait',
    'ec.option.ratio.4_3': '4:3 Landscape',
    'ec.option.ratio.9_16': '9:16 Mobile',
    'ec.option.ratio.16_9': '16:9 Widescreen',
    'ec.option.ratio.21_9': '21:9 Ultrawide',
    'ec.option.ratio.4_5': '4:5 Social Portrait',
    'ec.option.ratio.2_3': '2:3 Portrait',
    'ec.option.count.unit': 'Images',
    'ec.option.platform.amazon': 'Amazon',
    'ec.option.platform.taobao': 'Taobao/Tmall',
    'ec.option.platform.jd': 'JD.com',
    'ec.option.platform.xiaohongshu': 'Xiaohongshu',
    'ec.option.platform.tiktok': 'TikTok Shop',
    'ec.option.platform.shopify': 'Shopify',
    'ec.option.platform.shein': 'SHEIN',
    'ec.option.platform.temu': 'Temu',
    'ec.option.theme.follow_recommendation': 'Smart Recommendation',
    'ec.option.theme.minimalist': 'Minimalist Modern',
    'ec.option.theme.premium': 'Premium Luxury',
    'ec.option.theme.youthful': 'Youthful Energy',
    'ec.option.theme.nature': 'Natural Fresh',
    'ec.option.theme.tech': 'Tech Texture',
    'ec.option.palette.follow_recommendation': 'Smart Recommendation',
    'ec.option.palette.warm': 'Warm Tone',
    'ec.option.palette.cool': 'Cool Tone',
    'ec.option.palette.high_contrast': 'High Contrast',
    'ec.option.palette.soft': 'Soft Elegant',
    'ec.option.palette.vibrant': 'Vibrant Lively',
    'ec.option.model.bananapro': 'Banana Pro (Recommended)',
    'ec.option.model.banana2': 'Banana 2',
    'ec.option.model.banana1': 'gpt-image2',
    'ec.option.size.1K': '1K (1024)',
    'ec.option.size.2K': '2K (2048)',
    'ec.option.size.4K': '4K (4096)',
    'ec.option.outLang.none': 'None (Pure product image)',
    'ec.option.outLang.zh-CN': 'Simplified Chinese',
    'ec.option.outLang.zh-TW': 'Traditional Chinese',
    'ec.option.outLang.en-US': 'English (US)',
    'ec.option.outLang.en-GB': 'English (UK)',
    'ec.option.outLang.ja-JP': 'Japanese',
    'ec.option.outLang.ko-KR': 'Korean',
    'ec.option.outLang.fr-FR': 'French',
    'ec.option.outLang.de-DE': 'German',
    'ec.option.outLang.es-ES': 'Spanish',
    'ec.option.outLang.pt-BR': 'Portuguese',
    'ec.option.outLang.ar-SA': 'Arabic',
    'ec.option.outLang.ru-RU': 'Russian',
    'ec.option.outLang.th-TH': 'Thai',
    'ec.option.outLang.vi-VN': 'Vietnamese',
    'ec.option.outLang.id-ID': 'Indonesian',

    // ===== Aspect Ratio Options =====
    'aspectRatio.original': 'Original',
    'aspectRatio.1:1': '1:1 Square (1024x1024)',
    'aspectRatio.2:3': '2:3 Portrait (832x1248)',
    'aspectRatio.3:2': '3:2 Landscape (1248x832)',
    'aspectRatio.3:4': '3:4 Portrait (864x1184)',
    'aspectRatio.4:3': '4:3 Landscape (1184x864)',
    'aspectRatio.4:5': '4:5 Portrait (896x1152)',
    'aspectRatio.5:4': '5:4 Landscape (1152x896)',
    'aspectRatio.9:16': '9:16 Mobile (768x1344)',
    'aspectRatio.16:9': '16:9 Widescreen (1344x768)',
    'aspectRatio.21:9': '21:9 Ultrawide (1536x672)',

    // ===== Banana Aspect Ratio Options =====
    'bananaAspectRatio.auto': 'Auto',
    'bananaAspectRatio.1:1': '1:1 Square',
    'bananaAspectRatio.2:3': '2:3 Portrait',
    'bananaAspectRatio.3:2': '3:2 Landscape',
    'bananaAspectRatio.3:4': '3:4 Portrait',
    'bananaAspectRatio.4:3': '4:3 Landscape',
    'bananaAspectRatio.4:5': '4:5 Portrait',
    'bananaAspectRatio.5:4': '5:4 Landscape',
    'bananaAspectRatio.9:16': '9:16 Mobile',
    'bananaAspectRatio.16:9': '16:9 Widescreen',
    'bananaAspectRatio.21:9': '21:9 Ultrawide',

    // ===== Login / Register =====
    'login.title': 'Login',
    'login.submit': 'Login',
    'login.username': 'Username',
    'login.username.placeholder': 'Enter username',
    'login.password': 'Password',
    'login.password.placeholder': 'Enter password',
    'login.savedAccounts': 'Saved Accounts',
    'login.savedAccounts.placeholder': 'Select a saved account',
    'login.rememberPassword': 'Remember Password',
    'login.noAccount': "Don't have an account?",
    'login.registerNow': 'Register now',
    'login.close': 'Close',

    'register.title': 'Register',
    'register.submit': 'Register',
    'register.username': 'Username (min 3 chars)',
    'register.username.placeholder': 'Enter username (min 3 chars)',
    'register.email': 'Email (optional)',
    'register.email.placeholder': 'Enter email address (optional)',
    'register.password': 'Password (min 6 chars)',
    'register.password.placeholder': 'Enter password (min 6 chars)',
    'register.confirmPassword': 'Confirm Password',
    'register.confirmPassword.placeholder': 'Re-enter password',
    'register.invitationCode': 'Invitation Code (optional)',
    'register.invitationCode.placeholder': 'Enter invitation code (optional)',
    'register.hasAccount': 'Already have an account?',
    'register.loginNow': 'Login now',

    // ===== Plugin Update =====
    'pluginUpdate.label': 'Plugin Update',
    'pluginUpdate.check': 'Check Update',
    'pluginUpdate.title': 'Select Version to Update',
    'pluginUpdate.close': '×',
    'pluginUpdate.latest': 'Latest',
    'pluginUpdate.current': 'Current',
    'pluginUpdate.older': 'Older',
    'pluginUpdate.updateTo': 'Update to This Version',
    'pluginUpdate.updateToLatest': 'Update to Latest',
    'pluginUpdate.currentVersion': 'Current Version',
    'pluginUpdate.noDesc': 'No description',
    'pluginUpdate.status.connecting': 'Checking for updates...',
    'pluginUpdate.status.serverFail': 'Server connection failed',
    'pluginUpdate.status.fetchFail': 'Failed to fetch version list',
    'pluginUpdate.status.noVersions': 'No available versions',
    'pluginUpdate.status.downloading': 'Downloading version {version}...',
    'pluginUpdate.status.fetchingStructure': 'Fetching plugin structure...',
    'pluginUpdate.status.downloadingFiles': 'Downloading plugin files...',
    'pluginUpdate.status.downloadingFolder': 'Downloading folder',
    'pluginUpdate.status.downloadingFile': 'Downloading file',
    'pluginUpdate.status.downloading2': 'Downloading',
    'pluginUpdate.status.installing': 'Download complete, installing new version...',
    'pluginUpdate.status.success': 'Plugin updated! {count} files updated, new version: {version}, please restart PS',
    'pluginUpdate.status.successNoChange': 'Plugin updated! New version: {version}, please restart PS',
    'pluginUpdate.status.structureFail': 'Failed to fetch plugin structure',
    'pluginUpdate.status.downloadFail': 'Failed to download plugin files',
    'pluginUpdate.status.installFail': 'Installation failed',
    'pluginUpdate.status.checkFail': 'Update check failed',
    'pluginUpdate.status.latestOk': 'Already on the latest version'
};
