Files
myaps_api/static/lib/i18n/en-US.js
T

680 lines
29 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* English Language Pack (US English)
*/
window.__i18n_en_US__ = {
// ============ Page Titles ============
'monitor.page.title': 'MyAPI System Monitor',
'monitor.page.live_logs': 'Live Logs - System Monitor',
'monitor.page.history_logs': 'Log History Query - System Monitor',
// ============ Navigation ============
'monitor.nav.overview': '📊 Overview',
'monitor.nav.database': '🗃️ Database',
'monitor.nav.events': '☎️ Events',
'monitor.nav.scheduler': '⏰ Scheduler',
'monitor.nav.http_requests': '📥 HTTP Requests',
'monitor.nav.outbound_requests': '📤 Outbound',
'monitor.nav.logs': '📋 Logs',
// ============ Tabs ============
'monitor.tab.overview': 'Overview',
'monitor.tab.database': 'Database',
'monitor.tab.events': 'Events',
'monitor.tab.scheduler': 'Scheduler',
'monitor.tab.http': 'HTTP Requests',
'monitor.tab.outbound': 'Outbound',
'monitor.tab.logs': 'System Logs',
'monitor.tab.timeline': 'Timeline',
'monitor.tab.chart': 'Charts',
// ============ Cards ============
'monitor.card.resource': 'Resource Usage',
'monitor.card.db_status': 'Database Status',
'monitor.card.db_connections': 'Database Connections',
'monitor.card.event_helpers': 'Event Helpers',
'monitor.card.scheduler': 'Job Scheduler',
'monitor.card.api_requests': 'HTTP Requests',
'monitor.card.outbound_requests': 'Outbound Requests',
'monitor.card.redis': 'Redis Status',
'monitor.card.event_listener': 'Event Listener',
'monitor.card.recent_alerts': 'Recent Alerts',
'monitor.card.mysql': 'MySQL',
'monitor.card.http_requests_log': 'HTTP Request Records',
'monitor.card.scheduler_detail': 'Scheduler Details',
'monitor.card.outbound_requests_log': 'Outbound Request Records',
'monitor.card.callback_tracker': 'Callback Tracker',
'monitor.card.event_deduplicator': 'Event Deduplicator',
// ============ Metrics ============
'monitor.metric.cpu': 'CPU Usage',
'monitor.metric.memory': 'Memory Usage',
'monitor.metric.threads': 'Threads',
'monitor.metric.uptime': 'Uptime',
'monitor.metric.total_connections': 'Total Connections',
'monitor.metric.healthy': 'Healthy',
'monitor.metric.unhealthy': 'Unhealthy',
'monitor.metric.degraded': 'Degraded',
'monitor.metric.total': 'Total',
'monitor.metric.success': 'Success',
'monitor.metric.failed': 'Failed',
'monitor.metric.pending': 'Pending',
'monitor.metric.active': 'Active',
'monitor.metric.idle': 'Idle',
'monitor.metric.unknown': 'Unknown',
'monitor.metric.warning': 'Warning',
'monitor.metric.events_received': 'Events Received',
'monitor.metric.events_processed': 'Events Processed',
'monitor.metric.events_failed': 'Events Failed',
'monitor.metric.jobs_running': 'Running Jobs',
'monitor.metric.jobs_pending': 'Pending Jobs',
'monitor.metric.requests_total': 'Total Requests',
'monitor.metric.requests_slow': 'Slow Requests',
'monitor.metric.requests_error': 'Error Requests',
'monitor.metric.error_rate': 'Error Rate',
'monitor.metric.avg_time': 'Avg Response',
'monitor.metric.connection_status': 'Connection Status',
'monitor.metric.host': 'Host',
'monitor.metric.port': 'Port',
'monitor.metric.database': 'Database',
'monitor.metric.used_connections': 'Used Connections',
'monitor.metric.max_connections': 'Max Connections',
'monitor.metric.connection_usage': 'Connection Usage',
'monitor.metric.buffer_size': 'Buffer Size',
'monitor.metric.buffer_threshold': 'Buffer Threshold',
'monitor.metric.buffer_usage': 'Buffer Usage',
'monitor.metric.events_interrupted': 'Interrupted',
'monitor.metric.overall_success_rate': 'Overall Success Rate',
'monitor.metric.active_event_types': 'Active Event Types',
'monitor.metric.backpressure_status': 'Backpressure Status',
'monitor.metric.backpressure_pending': 'Pending Events',
'monitor.metric.backpressure_usage': 'Backpressure Usage',
'monitor.metric.event_loop_status': 'Event Loop Status',
'monitor.metric.pending_callbacks': 'Pending Callbacks',
'monitor.metric.max_retries': 'Max Retries',
'monitor.metric.pending_retries': 'Pending Retries',
'monitor.metric.total_entries': 'Total Entries',
'monitor.metric.active_items': 'Active Items',
'monitor.metric.ttl_seconds': 'TTL (seconds)',
'monitor.metric.max_entries': 'Max Entries',
'monitor.metric.dl_total': 'DL Total',
'monitor.metric.recent_dl': 'Recent DL',
'monitor.metric.process_success_rate': 'Process Success Rate',
'monitor.metric.scheduler_status': 'Scheduler Status',
'monitor.metric.job_count': 'Job Count',
'monitor.metric.pending_events': 'Pending Events',
'monitor.metric.total_events': 'Total Events',
'monitor.metric.file_size': 'File Size',
'monitor.metric.running_status': 'Running Status',
// ============ Status ============
'monitor.status.healthy': '● System Healthy',
'monitor.status.unhealthy': '● System Unhealthy',
'monitor.status.degraded': '● System Degraded',
'monitor.status.running': 'Running',
'monitor.status.checking': 'Checking',
'monitor.status.stopped': 'Stopped',
'monitor.status.loading': 'Loading...',
'monitor.status.querying': 'Querying...',
'monitor.status.exporting': 'Exporting...',
'monitor.status.no_data': 'No data',
'monitor.status.connected': 'Connected',
'monitor.status.connecting': 'Connecting...',
'monitor.status.disconnected': 'Disconnected',
'monitor.status.reconnecting': 'Reconnecting...',
'monitor.status.paused': 'Paused',
'monitor.status.enabled': 'Enabled',
'monitor.status.disabled': 'Disabled',
'monitor.status.no_db_connections': 'No database connections',
'monitor.status.no_scheduler': 'No scheduled tasks',
'monitor.status.no_http_requests': 'No HTTP requests',
'monitor.status.no_alerts': 'No alerts',
'monitor.status.no_logs': 'No logs',
'monitor.status.no_events': 'No event statistics',
'monitor.status.no_api_requests': 'No API request records',
'monitor.status.no_outbound_requests': 'No outbound request records',
'monitor.status.no_dead_letters': 'No DL',
'monitor.status.partial_warnings': '● Partial Warnings',
'monitor.status.monitoring': 'Monitoring',
// ============ Buttons ============
'monitor.btn.query': 'Query',
'monitor.btn.reset': 'Reset',
'monitor.btn.refresh': 'Refresh',
'monitor.btn.export': 'Export',
'monitor.btn.export_csv': 'Export CSV',
'monitor.btn.export_json': 'Export JSON',
'monitor.btn.detail': 'Detail',
'monitor.btn.pause': 'Pause',
'monitor.btn.resume': 'Resume',
'monitor.btn.clear': 'Clear',
'monitor.btn.save': 'Save',
'monitor.btn.delete': 'Delete',
'monitor.btn.close': 'Close',
'monitor.btn.confirm': 'Confirm',
'monitor.btn.cancel': 'Cancel',
'monitor.btn.test': 'Test',
'monitor.btn.apply': 'Apply',
'monitor.btn.filter': 'Filter',
'monitor.btn.clear_all': 'Clear All',
'monitor.btn.realtime_on': 'Realtime: ON',
'monitor.btn.realtime_off': 'Realtime: OFF',
'monitor.btn.precise_locate': '± 60s',
'monitor.btn.precise_cancel': '± 60s - Click to cancel',
'monitor.btn.reset_stats': 'Reset Stats',
'monitor.btn.flush_all': 'Flush All',
'monitor.btn.new_window': 'New Window',
'monitor.btn.auto_scroll': 'Auto Scroll',
'monitor.btn.live_logs': 'Live Logs',
'monitor.btn.history_query': 'History Query',
'monitor.btn.mark_all_read': 'Mark All Read',
'monitor.btn.clear_read_status': 'Clear Read Status',
// ============ Table Columns ============
'monitor.col.index': '#',
'monitor.col.time': 'Time',
'monitor.col.level': 'Level',
'monitor.col.module': 'Module',
'monitor.col.message': 'Message',
'monitor.col.method': 'Method',
'monitor.col.path': 'Path',
'monitor.col.url': 'URL',
'monitor.col.status': 'Status',
'monitor.col.duration': 'Duration',
'monitor.col.client_ip': 'Client IP',
'monitor.col.source': 'Source',
'monitor.col.function': 'Function',
'monitor.col.line': 'Line',
'monitor.col.operation': 'Action',
'monitor.col.count': 'Count',
'monitor.col.avg_time': 'Avg Time',
'monitor.col.max_time': 'Max Time',
'monitor.col.db_name': 'DB Name',
'monitor.col.last_check': 'Last Check',
'monitor.col.current_connections': 'Current',
'monitor.col.max_connections': 'Max',
'monitor.col.min_connections': 'Min',
'monitor.col.idle_connections': 'Idle',
'monitor.col.used_connections': 'Used',
'monitor.col.usage': 'Usage',
'monitor.col.processed_records': 'Processed',
'monitor.col.timestamp': 'Timestamp',
'monitor.col.query_params': 'Query Params',
'monitor.col.error_message': 'Error Message',
'monitor.col.url': 'URL',
'monitor.col.is_read': 'Read',
'monitor.col.description': 'Description',
'monitor.col.total_received': 'Total Received',
'monitor.col.pending': 'Pending',
'monitor.col.processed': 'Processed',
'monitor.col.interrupted': 'Interrupted',
'monitor.col.completion_rate': 'Completion Rate',
'monitor.col.avg_latency': 'Avg Latency',
'monitor.col.last_action': 'Last Action',
'monitor.col.id': 'ID',
'monitor.col.event_type': 'Event Type',
'monitor.col.table': 'Table',
// ============ Quick Time ============
'monitor.time.start_time': 'Start Time',
'monitor.time.end_time': 'End Time',
'monitor.time.last_10m': 'Last 10 min',
'monitor.time.last_30m': 'Last 30 min',
'monitor.time.last_1h': 'Last 1 hour',
'monitor.time.last_6h': 'Last 6 hours',
'monitor.time.last_24h': 'Last 24 hours',
'monitor.time.range': 'Time Range',
// ============ Filters ============
'monitor.filter.level': 'All Levels',
'monitor.filter.type': 'All Types',
'monitor.filter.module': 'Module',
'monitor.filter.keyword': 'Keyword',
'monitor.filter.method': 'Method',
'monitor.filter.client_ip': 'Client IP',
'monitor.filter.status_range': 'Status Range',
'monitor.filter.duration_range': 'Duration Range',
'monitor.filter.advanced': 'Advanced Filters',
'monitor.filter.collapse': 'Collapse',
'monitor.filter.expand': 'Expand',
'monitor.filter.clear': 'Clear',
'monitor.filter.active': 'Active Filters',
'monitor.filter.module_placeholder': 'Enter module name',
'monitor.filter.keyword_placeholder': 'Enter keyword',
'monitor.filter.ip_placeholder': 'Enter client IP',
'monitor.filter.status_placeholder': 'e.g.: 400-499',
'monitor.filter.duration_placeholder': 'e.g.: >1000',
'monitor.filter.all_logs': 'All Logs',
// ============ Charts ============
'monitor.chart.request_trend': '📊 Request Trend',
'monitor.chart.level_distribution': '📊 Log Level Distribution',
'monitor.chart.status_distribution': '📈 Status Code Distribution',
'monitor.chart.slow_requests': '⏱️ Slow Requests TOP10',
'monitor.chart.total_requests': 'Total Requests',
'monitor.chart.error_count': 'Errors',
'monitor.chart.slow_count': 'Slow Requests',
'monitor.chart.log_count': 'Total Logs',
'monitor.chart.no_slow': '✅ No slow requests',
'monitor.chart.query_required': 'Please execute query first',
'monitor.chart.load_failed': '❌ Chart data load failed, please retry',
'monitor.chart.no_data': 'No data',
'monitor.chart.no_trend': 'No trend data',
'monitor.chart.redis_connections': 'Redis Connection Pool Usage',
'monitor.chart.redis_buffer': 'Redis Buffer Size Changes',
'monitor.chart.cpu': 'CPU',
'monitor.chart.memory': 'Memory',
'monitor.chart.upload': 'Upload',
'monitor.chart.download': 'Download',
'monitor.chart.cpu_memory_axis': 'CPU / Memory (%)',
'monitor.chart.network_axis': 'Network Upload / Download (KB/s)',
'monitor.chart.used_connections': 'Used Connections',
'monitor.chart.buffer_size_mb': 'Buffer Size (MB)',
// ============ Errors ============
'monitor.error.time_range_invalid': 'Start time cannot be greater than end time',
'monitor.error.time_range_required': 'Please select start time and end time',
'monitor.error.query_failed': 'Query failed, please try again',
'monitor.error.export_failed': 'Export failed, please retry',
'monitor.error.connection_failed': 'Connection failed, please refresh page',
'monitor.error.max_templates': 'Maximum 10 templates allowed, please delete some first',
'monitor.error.auto_pause': 'Realtime tracking auto-paused (over 10 minutes)',
'monitor.error.load_failed': 'Load failed, please retry',
'monitor.error.invalid_params': 'Invalid parameters',
'monitor.error.clear_dl_failed': 'Failed to clear DeadLetter queue',
// ============ Success ============
'monitor.success.query_complete': 'Query Complete',
'monitor.success.export_complete': 'Export Complete',
'monitor.success.template_saved': 'Template "{name}" saved',
'monitor.success.logs_cleared': 'Logs cleared',
'monitor.success.operation_success': 'Operation successful',
'monitor.success.dl_cleared': 'DeadLetter queue cleared',
// ============ Timeline ============
'monitor.timeline.title': 'Timeline',
'monitor.timeline.no_data': 'No data, please execute query first',
'monitor.timeline.anomaly_detected': '⚠️ {count} anomalies detected',
'monitor.timeline.error_burst': '{count} consecutive ERROR logs',
'monitor.timeline.slow_anomaly': 'Slow request anomaly ({duration}ms > avg {avg}ms×3)',
'monitor.timeline.duplicate_error': 'Duplicate error "{msg}" appeared {count} times',
'monitor.timeline.http_request': 'HTTP Request',
'monitor.timeline.outbound_request': 'Outbound Request',
'monitor.timeline.system_log': 'System Log',
'monitor.timeline.summary_title': '📊 Timeline Statistics',
'monitor.timeline.total_events': 'Total Events',
'monitor.timeline.http_requests': 'HTTP Requests',
'monitor.timeline.outbound_requests': 'Outbound Requests',
'monitor.timeline.system_logs': 'System Logs',
'monitor.timeline.errors': 'Errors',
'monitor.timeline.warnings': 'Warnings',
'monitor.timeline.slow_requests': 'Slow Requests',
// ============ Pagination ============
'monitor.pagination.page': 'Page',
'monitor.pagination.of': 'of',
'monitor.pagination.items': 'items',
'monitor.pagination.showing': 'Showing',
'monitor.pagination.per_page': 'Per Page',
'monitor.pagination.first': 'First',
'monitor.pagination.last': 'Last',
'monitor.pagination.prev': 'Previous',
'monitor.pagination.next': 'Next',
'monitor.pagination.go_to': 'Go to',
// ============ Export ============
'monitor.export.current_page': 'Export Current Page',
'monitor.export.all_data': 'Export All Data',
'monitor.export.format_csv': 'CSV Format',
'monitor.export.format_json': 'JSON Format',
'monitor.export.select_format': 'Select Format',
// ============ Templates ============
'monitor.template.saved_queries': 'Saved Queries...',
'monitor.template.save': 'Save Query',
'monitor.template.manage': 'Manage Templates',
'monitor.template.name': 'Template Name',
'monitor.template.description': 'Description',
'monitor.template.delete_confirm': 'Delete this template?',
'monitor.template.empty': 'No saved templates',
// ============ Statistics ============
'monitor.stats.time_range': 'Query Time Range',
'monitor.stats.http_requests': 'HTTP Requests',
'monitor.stats.outbound_requests': 'Outbound Requests',
'monitor.stats.system_logs': 'System Logs',
'monitor.stats.level_distribution': 'Level Distribution',
'monitor.stats.all_time': 'All Time',
// ============ Others ============
'monitor.other.last_update': 'Last Update',
'monitor.other.auto_reconnect': 'reconnect in 5s',
'monitor.other.waiting_logs': 'Waiting for log data...',
'monitor.other.no_matching_logs': 'No matching logs',
'monitor.other.precise_mode': 'Precise Mode',
'monitor.other.saved_queries': 'Saved Queries...',
'monitor.other.all_time': 'All Time',
'monitor.other.linked_query': 'Linked Query',
'monitor.other.seconds': 'seconds',
'monitor.other.minutes': 'minutes',
'monitor.other.hours': 'hours',
'monitor.other.days': 'days',
'monitor.other.ms': 'ms',
'monitor.other.times': 'times',
'monitor.other.view_detail': 'View Detail',
'monitor.other.copy': 'Copy',
'monitor.other.expand': 'Expand',
'monitor.other.collapse': 'Collapse',
'monitor.other.show_internal': 'Show Internal',
'monitor.other.show_read': 'Show Read',
// ============ Date ============
'monitor.date.today': 'Today',
'monitor.date.yesterday': 'Yesterday',
// ============ Language ============
'monitor.lang.select': 'Select Language',
'monitor.lang.zh': '中文',
'monitor.lang.en': 'English',
'monitor.lang.de': 'Deutsch',
// ============ HTTP Methods ============
'monitor.method.get': 'GET',
'monitor.method.post': 'POST',
'monitor.method.put': 'PUT',
'monitor.method.delete': 'DELETE',
'monitor.method.patch': 'PATCH',
// ============ Log Levels ============
'monitor.level.debug': 'DEBUG',
'monitor.level.info': 'INFO',
'monitor.level.warning': 'WARNING',
'monitor.level.error': 'ERROR',
'monitor.level.critical': 'CRITICAL',
// ============ Scheduler ============
'monitor.scheduler.rule': 'Schedule Rule',
'monitor.scheduler.last_run': 'Last Run',
'monitor.scheduler.max_time': 'Max Time',
'monitor.scheduler.never_run': 'Never Run',
'monitor.scheduler.default': 'Default',
'monitor.scheduler.running': 'Running',
'monitor.scheduler.not_scheduled': 'Not Scheduled',
// ============ Relative Time ============
'monitor.time.just_now': 'Just now',
'monitor.time.minutes_ago': '{n} min ago',
'monitor.time.hours_ago': '{n} hours ago',
'monitor.time.days_ago': '{n} days ago',
'monitor.time.day_before_yesterday': 'Day before yesterday',
// ============ Alert Types ============
'monitor.alert.warning': 'Warning',
'monitor.alert.error': 'Error',
'monitor.alert.critical': 'Critical',
'monitor.alert.normal': 'Normal',
// ============ Connection Status ============
'monitor.connection.failed': 'Connection Failed',
'monitor.connection.reconnecting': 'Reconnecting',
'monitor.connection.connected': 'Connected',
'monitor.connection.disconnected': 'Disconnected',
// ============ Monitor Status ============
'monitor.monitor.paused': '● Monitor paused (inactive)',
'monitor.monitor.panel': 'Monitor Panel',
'monitor.monitor.last_update': 'Last Update',
'monitor.monitor.reset_stats_confirm': 'Reset all event statistics?',
// ============ Highlight ============
'monitor.highlight.on': 'Highlighted',
'monitor.highlight.off': 'Highlight',
// ============ Copy ============
'monitor.copy.success': 'Copied',
'monitor.copy.failed': 'Copy failed, please copy manually',
'monitor.copy.error': 'Copy failed',
// ============ Prompts ============
'monitor.prompt.select_date': 'Please select a date',
'monitor.prompt.fetch_failed': 'Failed to fetch request records, please try again',
'monitor.prompt.fetch_outbound_failed': 'Failed to fetch outbound request records, please try again',
'monitor.prompt.reset_failed': 'Reset failed, please try again',
// ============ Page Titles ============
'monitor.page.http_requests_log': 'HTTP Request Records',
'monitor.page.outbound_requests_log': 'Outbound Request Records',
// ============ Time ============
'monitor.time.tomorrow': 'Tomorrow',
'monitor.time.day_after_tomorrow': 'Day after tomorrow',
'monitor.time.over_24h': 'Over 24 hours',
'monitor.time.expired': 'Expired',
'monitor.time.days_hours_later': '{days}d {hours}h later',
'monitor.time.unknown': 'Unknown',
'monitor.time.month_day': '{month}/{day}',
// ============ Task Types ============
'monitor.task.system': 'System',
'monitor.task.project': 'Project',
'monitor.task.avg_time': 'Avg Execution Time',
// ============ Detail Modal ============
'monitor.modal.outbound_detail': 'Outbound Request Detail',
'monitor.modal.timestamp': 'Timestamp:',
'monitor.modal.method': 'Method:',
'monitor.modal.status_code': 'Status Code:',
'monitor.modal.response_time': 'Response Time:',
'monitor.modal.module': 'Module:',
'monitor.modal.error_msg': 'Error Message:',
// ============ Request/Response Sections ============
'monitor.section.request_headers': 'Request Headers',
'monitor.section.request_body': 'Request Body',
'monitor.section.response_headers': 'Response Headers',
'monitor.section.response_body': 'Response Body',
'monitor.section.no_response': 'No response body data',
'monitor.section.response_failed': 'Response body processing failed: ',
'monitor.section.truncated': '[Content truncated, export to view full content]',
'monitor.section.large_data_warning': '⚠️ Large data ({count} chars), may affect performance',
'monitor.section.showing_chars': 'Showing first {count} chars',
'monitor.section.basic_info': 'Basic Information',
'monitor.section.no_data': 'No data',
// ============ Rate Limiting ============
'monitor.status.rate_limited': 'Rate Limited',
// ============ Log Level Selection ============
'monitor.log_level.all_with_debug': 'All Levels (with DEBUG)',
'monitor.log_level.error': 'Error Logs',
'monitor.log_level.warning': 'Warning Logs',
'monitor.log_level.info': 'Info Logs',
'monitor.log_level.debug': 'Debug Logs',
// ============ DeadLetter ============
'monitor.dl.reprocess': 'Reprocess',
'monitor.dl.reprocess_success': 'DeadLetter reprocessed successfully',
'monitor.dl.reprocess_failed': 'DeadLetter reprocess failed',
// ============ Backend Alert Message Mapping ============
'monitor.alert.scheduler_not_running': 'Scheduler not running',
'monitor.alert.db_connection_failed': 'Database connection failed',
'monitor.alert.redis_connection_failed': 'Redis connection failed',
'monitor.alert.event_listener_stopped': 'Event listener stopped',
'monitor.alert.binlog_listener_stopped': 'Binlog listener stopped',
'monitor.alert.high_error_rate': 'High error rate',
'monitor.alert.memory_warning': 'Memory usage warning',
'monitor.alert.cpu_warning': 'CPU usage warning',
// ================================================================================
// MDS Module (Data Staging System)
// ================================================================================
// ============ App Title ============
'mds.app.title': 'Data Staging System',
'mds.app.guide': 'User Guide',
'mds.app.apiDoc': 'API Docs',
// ============ Navigation ============
'mds.nav.material': 'Material',
'mds.nav.matVer': 'Mat Version',
'mds.nav.workcenter': 'Work Center',
'mds.nav.matWc': 'Routing',
'mds.nav.bom': 'BOM',
'mds.nav.mold': 'Mold',
'mds.nav.matWcMold': 'Mat-Wc-Mold',
'mds.nav.all': 'All',
// ============ Status Labels (P0) ============
'mds.status.pending': 'Pending',
'mds.status.compliancePass': 'Compliance Pass',
'mds.status.complianceError': 'Compliance Error',
'mds.status.relationPass': 'Relation Pass',
'mds.status.relationError': 'Relation Error',
'mds.status.syncError': 'Sync Failed',
'mds.status.synced': 'Synced',
'mds.status.all': 'All',
// ============ Action Buttons (P1) ============
'mds.action.import': 'Import',
'mds.action.validate': 'Validate',
'mds.action.sync': 'Sync',
'mds.action.query': 'Query',
'mds.action.reset': 'Reset',
'mds.action.save': 'Save',
'mds.action.delete': 'Delete',
'mds.action.cancel': 'Cancel',
'mds.action.confirm': 'Confirm',
'mds.action.close': 'Close',
'mds.action.clear': 'Clear',
'mds.action.export': 'Export',
'mds.action.exportTemplate': 'Export Template',
'mds.action.refresh': 'Refresh',
'mds.action.filter': 'Filter',
'mds.action.edit': 'Edit',
'mds.action.view': 'View',
'mds.action.selectAll': 'Select All',
'mds.action.deselectAll': 'Deselect All',
'mds.action.batchDelete': 'Batch Delete',
'mds.action.batchSync': 'Batch Sync',
'mds.action.showRules': 'View Rules',
'mds.action.preciseFilter': 'Precise Filter',
'mds.action.clearFilter': 'Clear Filter',
// ============ Validation ============
'mds.validation.title': 'Validation',
'mds.validation.complete': 'Validation complete: {pass} passed, {fail} failed',
'mds.validation.noPending': 'No pending records',
'mds.validation.confirmStart': 'Missing fields will be filled with default values. Proceed?',
'mds.validation.processing': 'Validating',
'mds.validation.failed': 'Validation failed',
'mds.validation.progress': 'Processed {current}/{total}',
'mds.validation.rulesTitle': 'Validation Rules',
'mds.validation.noRules': 'No validation rules',
// ============ Sync ============
'mds.sync.title': 'Sync',
'mds.sync.complete': 'Sync complete: {accounts} accounts, {synced} synced, {dedup} dedup failed, {failed} other failed',
'mds.sync.noData': 'No [Relation Pass] or [Sync Failed] records to sync',
'mds.sync.selectTarget': 'Please select at least one target account',
'mds.sync.selectMode': 'Select sync mode',
'mds.sync.incremental': 'Incremental Sync',
'mds.sync.refresh': 'Refresh Sync',
'mds.sync.confirmRefresh': 'Refresh sync will delete all data in target table. Proceed with caution!',
'mds.sync.processing': 'Syncing',
'mds.sync.progress': 'Sync Progress',
// ============ Upload ============
'mds.upload.title': 'Import Excel Data',
'mds.upload.success': 'Import complete: {inserted} inserted, {skipped} skipped',
'mds.upload.invalidType': 'Please upload Excel or CSV file',
'mds.upload.noFile': 'Please select a file first',
'mds.upload.dragDrop': 'Click or drag to upload (.xlsx, .xls, .csv)',
'mds.upload.processing': 'Importing',
'mds.upload.dedupStrategy': 'Dedup Strategy',
'mds.upload.overwrite': 'Overwrite',
'mds.upload.skip': 'Skip',
// ============ Table ============
'mds.table.noData': 'No data',
'mds.table.loading': 'Loading...',
'mds.table.selectAll': 'Select All',
'mds.table.perPage': '/ page',
'mds.table.total': 'Total {count}',
'mds.table.edit': 'Edit',
'mds.table.delete': 'Delete',
'mds.table.export': 'Export Template',
'mds.table.selected': '{count} selected',
'mds.table.actions': 'Actions',
'mds.table.status': 'Status',
'mds.table.columns': 'Columns',
// ============ Modal ============
'mds.modal.confirm': 'Confirm',
'mds.modal.cancel': 'Cancel',
'mds.modal.close': 'Close',
'mds.modal.importTitle': 'Import Excel Data',
'mds.modal.filterTitle': 'Precise Filter',
'mds.modal.editTitle': 'Edit Record',
'mds.modal.validationRules': 'Validation Rules',
'mds.modal.syncTitle': 'Sync Data',
'mds.modal.deleteConfirm': 'Delete this record?',
'mds.modal.batchDeleteConfirm': 'Delete {count} selected records?',
// ============ Errors ============
'mds.error.queryFailed': 'Query failed',
'mds.error.uploadFailed': 'Upload failed',
'mds.error.timeout': 'Request timeout',
'mds.error.loadFailed': 'Load failed, please retry',
'mds.error.validateFailed': 'Validation failed',
'mds.error.syncFailed': 'Sync failed',
'mds.error.noPermission': 'No permission',
'mds.error.invalidData': 'Invalid data format',
'mds.error.duplicateKey': 'Duplicate data: {field}={value} already exists',
'mds.error.foreignKeyViolation': 'Foreign key violation: {field} reference not found',
'mds.error.validationFailed': 'Validation failed: {reason}',
// ============ Success ============
'mds.success.queryComplete': 'Query complete',
'mds.success.uploadComplete': 'Import complete',
'mds.success.validateComplete': 'Validation complete',
'mds.success.syncComplete': 'Sync complete',
'mds.success.deleteComplete': 'Delete complete',
'mds.success.saveComplete': 'Save complete',
'mds.success.exportComplete': 'Export complete',
// ============ Stats ============
'mds.stats.total': 'Total',
'mds.stats.pending': 'Pending',
'mds.stats.passed': 'Passed',
'mds.stats.failed': 'Failed',
'mds.stats.synced': 'Synced',
'mds.stats.today': 'Today',
'mds.stats.week': 'This Week',
'mds.stats.month': 'This Month',
// ============ Form ============
'mds.form.required': 'Required',
'mds.form.optional': 'Optional',
'mds.form.defaultValue': 'Default',
'mds.form.placeholder': 'Enter value',
'mds.form.selectPlaceholder': 'Select',
// ============ Other ============
'mds.other.loading': 'Loading...',
'mds.other.processing': 'Processing...',
'mds.other.noData': 'No data',
'mds.other.confirm': 'Confirm',
'mds.other.cancel': 'Cancel',
'mds.other.tip': 'Tip',
'mds.other.warning': 'Warning',
'mds.other.error': 'Error',
'mds.other.success': 'Success',
// ============ 补充翻译键 ============
'monitor.other.yes': 'Yes',
'monitor.other.no': 'No',
'monitor.other.data_points': 'data points',
'monitor.col.is_slow': 'Is Slow Request',
'monitor.col.is_error': 'Is Error'
};