{"common":{"cancel":"Cancel","clear":"Clear","clearAll":"Clear All","close":"Close","loading":"Loading...","success":"Success","pending":"Pending","failed":"Failed","copy":"Copy","copied":"Copied!","copyJson":"Copy JSON","collapseAll":"Collapse All","expandAll":"Expand All","viewOnNpm":"View on NPM","later":"Later","source":"SOURCE","minimize":"Minimize","tapToExpand":"Tap to expand","open":"Open","share":"Share","openInBrowser":"Open in Browser","openInBrowserPrompt":"Are you sure you want to open this URL in your external browser?","delete":"Delete","reset":"Reset","save":"Save","edit":"Edit","add":"Add","search":"Search","filter":"Filter","sort":"Sort","refresh":"Refresh","retry":"Retry","confirm":"Confirm","yes":"Yes","no":"No","ok":"OK","done":"Done","back":"Back","next":"Next","show":"Show","hide":"Hide","select":"Select","selectAll":"Select All","deselectAll":"Deselect All","noResults":"No results found","items":"items","of":"of","showing":"Showing","active":"Active","inactive":"Inactive","enabled":"Enabled","disabled":"Disabled","live":"Live","connected":"Connected","disconnected":"Disconnected","version":"Version","update":"UPDATE","unknown":"Unknown","moreFilters":"More Filters","all":"All","dragToHide":"Drag here to hide","releaseToHide":"Release to hide inspector","expand":"Expand","undo":"Undo","inActiveDevelopment":"In Active Development","inspectorDismissed":"Inspector dismissed","noMatches":"No matching results"},"support":{"title":"Support & Community","subtitle":"React Native In-App Inspector","sponsor":"Sponsor on GitHub","sponsorBadge":"SPONSOR","sponsorDesc":"Support ongoing maintenance, new features and release improvements.","star":"Star on GitHub","starDesc":"Star our repo to help more React Native developers discover this tool.","issues":"Report Issue / Suggestion","issuesDesc":"Found a bug or have an idea? Open an issue on GitHub.","docs":"Official Documentation","docsDesc":"Interactive feature tour, search syntax & configuration guides.","contact":"Contact Author","contactDesc":"vengatmacuser@gmail.com • Direct support & enterprise inquiries.","heroDescription":"Crafted with passion to provide an all-in-one on-device debugging suite for mobile teams worldwide. Your sponsorship, stars, and feedback directly fuel continuous improvements, native architecture support, and rapid releases.","sponsorBtn":"Become a Sponsor","copiedSponsor":"Copied GitHub Sponsors link!","waysToSupport":"WAYS TO CONTRIBUTE & SUPPORT","npmRegistry":"NPM Package Registry","npmRegistryDesc":"Explore published version release notes, tarball sizes, and install stats.","shareTitle":"SPREAD THE WORD","shareDesc":"Help your engineering teammates and QA specialists debug network, console logs, and Redux faster.","shareWithTeam":"Share with Teammates","copiedRepo":"Copied repository link!","copyRepo":"Copy Repo URL","maintainer":"PROJECT MAINTAINER","sendEmail":"Send Email","copiedEmail":"Copied email address!","copyEmail":"Copy Email","close":"Close"},"header":{"updateAvailableTitle":"Update Available","updateAvailableMessage":"react-native-inapp-inspector v{{version}} is available on NPM (installed: v{{installed}}).","clearEverythingTitle":"Clear Everything","clearEverythingMessage":"This clears all tabs — APIs, Logs, Analytics, Redux timeline and Crash history. Continue?","photo":"Photo","screenshot":"Screenshot","record":"Record","videoCapture":"Record","rec":"REC","clear":"Clear","about":"About","screenshotCaptured":"📸 Screenshot captured & saved","screenshotFailed":"Failed to capture screenshot","screenshotError":"Error taking screenshot","recordingStarted":"🔴 Video recording started","recordingSaved":"🎥 Recording saved ({{duration}}s)","recordingError":"Recording error","recordingStartFailed":"Failed to start recording","paramCount":"{{count}} param","paramCount_plural":"{{count}} params","sourceFirebase":"FB","sourceManual":"MAN","firebase":"firebase","manual":"manual","aboutSpecs":"About & Specs","live":"Live","keys":"{{count}} keys","frames":"{{count}} frames","sliceBadge":"SLICE","recordScreen":"Record Screen","newVersionAvailable":"Update Available","updateAvailable":"react-native-inapp-inspector update v{{latestVersion}} is ready","updateAvailableSubtitle":"A new version of react-native-inapp-inspector is ready to install","upgradeCommand":"UPGRADE COMMAND","copyCommand":"Copy","viewNpm":"View"},"tabs":{"apis":"APIs","logs":"Logs","perf":"Perf & FPS","analytics":"Analytics","redux":"Redux","crash":"Crash","push":"Push","socket":"WebSocket","device":"Device","storage":"Storage","media":"Screencast","debugging":"Debugging"},"settings":{"mainTitle":"Settings & Modules","mainSubtitle":"Manage modules and preferences","requiredBadge":"REQUIRED","defaultBadge":"DEFAULT","notConnectedBadge":"NOT CONNECTED","notDetectedBadge":"NOT DETECTED","readOnlyBadge":"READ ONLY","coreBadge":"CORE","activeBadge":"ACTIVE","dormantBadge":"DORMANT","protectedBadge":"PROTECTED","modulesAndTools":"Modules & Tools","uiPreferences":"UI & Display","ramLimits":"RAM & Limits","screenVideoCapture":"Screen & Video Capture","navModules":"Modules","navDisplay":"Display","navLimits":"Limits","navCapture":"Capture","zeroOverheadTitle":"Zero Background Overhead","zeroOverheadDesc":"Check the modules you wish to activate. Disabled modules consume 0% CPU & memory until saved.","unsavedPending":"● Unsaved selections pending","allSynchronized":"All modules synchronized","modulesActive":"{{active}} of {{total}} Modules Active","saveChanges":"Save Changes","settingsSaved":"Settings Saved","settingsSavedDesc":"Active module configurations have been successfully updated.","configure":"Configure","appearanceTheme":"APPEARANCE & THEME","windowLayout":"WINDOW & LAYOUT","startupDefault":"STARTUP & DEFAULT SCREEN","logFiltersDeduplication":"LOG FILTERS & DEDUPLICATION","resetSettings":"Reset All Settings","resetSettingsDesc":"Wipe customized preferences back to default","reset":"Reset","reduxNotConnectedTip":"Redux store is not connected. Call connectReduxStore(store) or use inspectorReduxMiddleware to enable.","analyticsNotConnectedTip":"Analytics is not initialized. Call setupAnalyticsLogger(analytics()) to enable.","tabVisibility":"Tab Visibility","tabVisibilityDescription":"Choose which modules appear in the inspector","settingsTitle":"Settings","back":"Back","apis":{"title":"APIs Settings","total":"Total: {{count}}","maxRequestLogs":"Max Request Logs","maxRequestLogsDescription":"Buffer size of network requests preserved in memory","clearNetworkLogs":"Clear Network Logs","clearNetworkLogsDescription":"{{count}} requests stored","networkLogsCleared":"Network logs cleared.","showStatusFilter":"Status Filter","showStatusFilterDescription":"Show status chips in the APIs list","showMethodFilter":"Method Filter","showMethodFilterDescription":"Show method chips in the APIs list","defaultTabDescription":"Tab the inspector opens on","hideUrlRegexTitle":"Hidden URL Filters (Regex)","hideUrlRegexDesc":"Hide matching URLs from Network list and search results (calls will still execute normally).","resetFilterToast":"Reset to default URL filters","addPatternPlaceholder":"e.g. https://api.example.com or .*analytics.*","noFiltersActive":"No URL filters active. All URLs will be displayed."},"logs":{"title":"Logs Settings","total":"Total: {{count}}","maxConsoleLogs":"Max Console Logs","maxConsoleLogsDescription":"How many console messages to retain","logLevels":"Log Severities","logLevelsDescription":"Select which severities to capture in Logs","showInfo":"Show Info logs","showInfoDesc":"Informational logs & debug prints","showWarn":"Show Warning logs","showWarnDesc":"Warning notices & deprecations","showError":"Show Error logs","showErrorDesc":"Runtime errors & exceptions","clearConsoleLogs":"Clear Console Logs","clearConsoleLogsDescription":"{{count}} logs stored","consoleLogsCleared":"Console logs cleared."},"analytics":{"title":"Analytics Settings","total":"Events: {{count}}","maxAnalyticsEvents":"Events Captured","maxAnalyticsEventsDescription":"{{count}} analytics events stored in buffer","clearAnalyticsEvents":"Clear Analytics History","clearAnalyticsEventsDescription":"Wipe all captured telemetry events","analyticsEventsCleared":"Analytics events cleared."},"redux":{"title":"Redux Settings","reducers":"Reducers: {{count}}","autoRefresh":"Auto-refresh Store","autoRefreshDescription":"Capture Redux store state tree on every dispatch","defaultJsonExpandDepth":"Default JSON Expand Depth","defaultJsonExpandDepthDescription":"Initial depth of Redux state tree to auto-expand","clearReduxState":"Clear Redux State","clearReduxStateDescription":"Reset current state snapshot in inspector","clearReduxStateEmpty":"No store snapshot recorded","reduxStateCleared":"Redux state snapshot cleared.","clearReduxTimeline":"Clear Redux Timeline","clearReduxTimelineDescription":"Remove all captured action history","reduxTimelineCleared":"Redux action history cleared."},"bundle":{"title":"Bundle Settings","sourceBundler":"Metro Source Bundler","sourceBundlerDesc":"Parses live module trees and calculates binary size breakdowns","clearCache":"Clear Bundle Cache","clearCacheDesc":"Force re-fetching and parsing of JS bundle","cacheCleared":"Bundle analysis cache cleared."},"performance":{"title":"Performance Settings","frameMeasurement":"Live Frame Measurement","frameMeasurementDesc":"Samples UI/JS frame rates & detects wasteful re-renders","clearEvents":"Clear Performance Events","clearEventsDesc":"Reset recorded jank and FPS drops history","eventsCleared":"Performance events cleared."},"crash":{"title":"Crash Protection & Error Governance","subtitle":"Configure error categories, governance presets & modal policies","maxCrashLogs":"Max Crash Logs Buffer","maxCrashLogsDesc":"How many crash records to preserve in history (5-100)","globalGuard":"Global Crash Guard","globalGuardDesc":"Intercepts native, JS, and render errors directly","governancePresets":"GOVERNANCE PRESETS","categoryMatrix":"ERROR INTERCEPTION & IGNORED CATEGORIES","presetBalanced":"Balanced","presetBalancedDesc":"Recommended: Native & Promise protected; JS & Render ignored for clean dev workflow","presetMaxShield":"Max Shield","presetMaxShieldDesc":"100% Protection: Intercepts & captures all 5 error categories","presetSilent":"Silent Mode","presetSilentDesc":"Bypasses all error modals & badges for screencasts & clean demos","ignoreJs":"Ignore JS Runtime Crashes","ignoreJsDesc":"Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils","ignoreNative":"Ignore Native Platform Crashes","ignoreNativeDesc":"Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager","ignoreRender":"Ignore React Render Errors","ignoreRenderDesc":"Bypasses React component tree render failures & ErrorBoundary","ignorePromise":"Ignore Promise Rejections","ignorePromiseDesc":"Bypasses unhandled asynchronous Promise rejections","ignoreCustom":"Ignore Custom Recorded Errors","ignoreCustomDesc":"Bypasses manual recordCustomCrash exceptions & telemetry triggers","protectedBadge":"PROTECTED","ignoredBadge":"IGNORED","modalTriggerTitle":"Modal Alert Display Policy","modalTriggerDesc":"Configure when the full-screen diagnostic modal appears","policyFatalOnly":"Fatal Only","policyAllErrors":"All Caught","policySilent":"Silent Only","throttleTitle":"Crash Loop Rate-Limiter","throttleDesc":"Throttles duplicate crashes in rapid render loops (< 500ms)","clearHistory":"Clear Crash History","clearHistoryDesc":"{{count}} crash logs stored in memory buffer","historyCleared":"Crash logs cleared.","resetDefaults":"Reset to Defaults","resetDefaultsDesc":"Restore recommended balanced crash protection settings"},"media":{"title":"Screen & Video Capture","badge":"Native H.264 / GIF","desc":"Configure screenshot formats, quality, video FPS, audio narration, GIF recording & storage","screenshotCardTitle":"Screenshot Formats & Quality","screenshotCardDesc":"High-resolution full-window snapshot configuration","imageFormat":"Image Format","imageFormatDesc":"PNG (lossless), JPEG (compact), or WEBP","autoHide":"Auto-Hide Inspector Overlay","autoHideDesc":"Excludes inspector UI from screenshots","enabled":"ENABLED","videoCardTitle":"Video & GIF Recording","videoCardDesc":"H.264 MP4 recording & animated GIF export","audioMode":"Audio Narration Mode","audioModeDesc":"Muted, App Audio, or Voice Narration","frameRate":"Frame Rate","frameRateDesc":"Higher FPS yields smoother recordings","gifAutoOpt":"GIF Auto-Optimization","gifAutoOptDesc":"Converts video recordings for GitHub PRs & Slack","purgeAll":"Purge All Captured Media","purgeAllDesc":"Deletes all stored screenshots, videos, and GIFs","purgeCacheBtn":"Purge Cache","purgeConfirmTitle":"Purge Media Storage","purgeConfirmMessage":"This deletes all captured media files from local cache. Continue?","purgedSuccess":"Media storage purged"},"general":{"darkMode":"Dark Mode Theme","darkModeDescription":"Toggle sleek dark aesthetic or light contrast","modalHeight":"Inspector Window Height","modalHeightDescription":"Modal screen coverage percentage","modalAnimation":"Transition Animation","modalAnimationDescription":"Entrance and dismissal presentation style","duplicateLogs":"Show Duplicate Logs","duplicateLogsDescription":"Off: Identical repeated entries collapse into ×N badges","defaultOpeningTab":"Default Opening Tab","defaultOpeningTabDesc":"Initial tab active when launcher button is tapped","activeConsoleLogLevels":"Active Console Log Levels","activeConsoleLogLevelsDesc":"Select which severities to capture in Logs","resetToDefaults":"Reset to Defaults","resetToDefaultsDescription":"Restore all inspector settings","resetConfirmationTitle":"Settings Reset","resetConfirmationMessage":"All settings have been reset to default values.","storageStatus":"Persistent Storage","storageStatusEnabled":"Settings Storage: Persistent ({{type}})","storageStatusEnabledDesc":"Your preferences and module visibility persist across app reboots.","storageStatusDisabled":"Settings Storage: In-Memory (Temporary)","storageStatusDisabledDesc":"Preferences reset on app kill. Pass custom storage to <NetworkInspector storage={...} /> to persist on Android.","language":"Language","languageDescription":"Select interface display language","selectLanguage":"Select Language","peekOpacity":"Peek-Through Opacity","peekOpacityDescription":"Transparency level when the eye icon is enabled"},"configureSubtitle":"Configure module parameters","resetAlertTitle":"Reset All Settings","resetAlertMessage":"This restores all module visibility and UI preferences to defaults. Continue?","settingsReset":"Settings Reset","settingsResetMessage":"All settings have been reset to default values.","pushHistoryCleared":"Push notification history cleared","socketHistoryCleared":"WebSocket history cleared","memory":{"manualTitle":"Manual Memory Cleanup","manualDescription":"Prune older entries across all log stores and free RAM","pruned":"Pruned {{count}} items from memory"},"simulator":{"salesforce":"Simulated Salesforce Marketing Cloud push","fcm":"Simulated Firebase FCM push","apns":"Simulated Apple APNs push","deepLink":"Simulated Deep Link push","chat":"Simulated Real-time Chat WebSocket session","crypto":"Simulated Binance Crypto Ticker stream","socketio":"Simulated Socket.IO v4 session","echo":"Simulated WebSocket Echo test","screenshotSaved":"Screenshot captured and saved!"},"simulatePushTitle":"SIMULATE TEST PUSH NOTIFICATIONS","simulateSocketTitle":"SIMULATE TEST SOCKET CONNECTIONS","directCaptureShortcuts":"DIRECT CAPTURE SHORTCUTS"},"network":{"title":"APIs","searchPlaceholder":"Search by URL, status or method...","emptyTitle":"No API calls captured yet","emptySubtitle":"Network requests will appear here as you use the app.","reload":"Reload","clearTitle":"Clear Network Logs","clearMessage":"Are you sure you want to clear all captured network logs?","detailTabs":{"metadata":"Metadata","headers":"Headers","request":"Request","response":"Response"},"requestTitle":"Request","responseTitle":"Response","searchRequest":"Search request...","searchResponse":"Search response...","searchHeaders":"Search headers...","requestHeaders":"Request Headers","responseHeaders":"Response Headers","diffTitle":"Diff","noResponse":"No response body","noRequest":"No request body","statusFailed":"Failed","urlHeader":"URL","methodHeader":"Method","statusHeader":"Status","durationHeader":"Duration","sizeHeader":"Size","triggeredAt":"Triggered at","contentType":"Content-Type","sourcePage":"Source Page","sourcePageUnknown":"Unknown source","loadMore":"Load more","groupByPage":"Group by page","groupByDomain":"Group by domain","groupByNone":"List","domain":"Domain","page":"Page","requests":"{{count}} requests","requests_plural":"{{count}} requests","noFilteredResults":"No requests match the current filters","scrollToTop":"Scroll to top","copyCurl":"Copy cURL","copyFetch":"Copy fetch snippet","emptyResponse":"Empty response","bodyHidden":"{ Body hidden }","queryParams":"Query Params","fullUrl":"Full URL","open":"Open","showMore":"Show More","showLess":"Show Less","failedNetworkError":"Failed (Network Error)","noMatchingHeaders":"No matching headers","diffHidden":"{ Diff hidden }","noDiff":"No differences from previous API.","healthTitle":"Network Health & Telemetry","successRate":"Success Rate","avgLatency":"Avg Latency","p95Latency":"P95 Latency","bandwidth":"Bandwidth","fastest":"Fastest","slowest":"Slowest","timingWaterfall":"Timing Waterfall & Latency","throughput":"Throughput","performanceTier":"Performance Tier","perf":{"fast":"Fast (< 200ms)","moderate":"Moderate (200-800ms)","slow":"Slow (> 800ms)"},"jsonViewer":{"pretty":"Pretty","raw":"Raw","table":"Table","emptyObject":"Empty Object","emptyTable":"Empty Object","key":"Key","value":"VALUE","keyProperty":"KEY / PROPERTY","noMatchingKeys":"No matching keys or values found","emptyPayload":"No payload data available"},"showingRequests":"Showing {{count}} requests","showingFilteredRequests":"Showing {{filtered}} of {{total}} requests","status200":"200 OK","status201":"201 Created","status204":"204 No Content","status304":"304 Not Modified","status400":"400 Bad Req","status401":"401 Unauth","status403":"403 Forbidden","status404":"404 Not Found","status500":"500 Error","shareError":"Share Error","shareErrorMessage":"Failed to open share sheet","clearLogsTitle":"Clear Network Logs","clearLogsMsg":"Are you sure you want to clear all network logs?","moreFilters":"More Filters"},"console":{"title":"Logs","searchPlaceholder":"Search logs...","emptyTitle":"No console logs yet","emptySubtitle":"Console output from your app will appear here.","analyticsBadge":"Analytics","userLogBadge":"user-log","jsonTitle":"Log JSON","messageTitle":"Log Message","search":"Search log...","searchJson":"Search log JSON...","logMessage":"Log message","consoleLog":"Console Log","characters":"{{count}} chars","duplicates":"×{{count}} duplicates","showMore":"Show more","showLess":"Show less","clearTitle":"Clear Logs","clearMessage":"Are you sure you want to clear all console logs?","seeMore":"Show more","noResults":"No logs match the current filters","filterAll":"All","filterInfo":"Info","filterWarn":"Warn","filterError":"Error","filterUserLog":"User Log","filterAnalytics":"Analytics","tabOutput":"Output","tabArgs":"Args ({{count}})","tabStack":"Stack Trace","tabMetadata":"Metadata","callStack":"Call Stack ({{count}} frames)","errorStack":"Error Exception Stack ({{count}} frames)","callOriginStack":"Call Origin Stack","errorThrownStack":"Error Thrown Stack","appCodeScope":"🎯 App Code ({{count}})","allFramesScope":"📜 All Frames ({{count}})","cardsView":"Cards","rawTraceView":"Raw","noStackAvailable":"No call stack frames found matching the active filter.","originBadge":"#1 ORIGIN","appCodeBadge":"App Code","dependencyBadge":"Dependency","nativeBadge":"Native","hermesVmBadge":"Hermes VM","fullStackTrace":"Full Stack Trace","lineCol":"Line {{line}}, Col {{col}}","lineColShort":"L{{line}}:C{{col}}","searchInLogDetails":"Search in log details...","showingLogs":"Showing {{count}} logs","showingFilteredLogs":"Showing {{filtered}} of {{total}} logs","filteredBy":"Filtered by {{filters}} ({{filtered}} of {{total}} logs)","log":"Log","info":"Info","warning":"Warn","error":"Error","clearLogsTitle":"Clear Console Logs","clearLogsMsg":"Are you sure you want to clear all console logs?","analytics":"Analytics","exportTitle":"Export Console Logs","exportScope":"LOG SOURCE SCOPE","filteredView":"Active Filter","allLogsScope":"All Logs","howManyLogs":"HOW MANY LOGS TO EXPORT?","enterCount":"Enter number of logs:","exportFormat":"EXPORT FORMAT","exportSummary":"Estimated Export Size","selectedLogs":"SELECTED LOGS","estSize":"ESTIMATED SIZE","format":"FORMAT","exportLogsAction":"Export {{count}} Logs ({{size}})","exportingLogs":"Exporting Console Logs...","processingItem":"Processing","records":"records","exportSuccessTitle":"Logs Export Ready!","exportSuccessDesc":"Generated full formatted log bundle ready to share or save.","shareReport":"Share Logs","saveToDisk":"Save to Disk","copyToClipboard":"Copy Content","exportAnother":"← Export Another","noLogsToExport":"No logs available to export","savePromptOpened":"Opened save to disk dialog","copiedLogs":"Logs copied to clipboard!","ignorePatterns":"Ignore Patterns (Regex)","ignorePatternsDesc":"Logs matching this regex will be excluded from export.","invalidRegex":"Invalid regular expression syntax","logsExcluded":"{{count}} logs excluded"},"analytics":{"title":"Analytics","searchPlaceholder":"Search events...","emptyTitle":"No analytics events yet","emptySubtitle":"Analytics events will appear here as your app tracks them.","clearTitle":"Clear Analytics","clearMessage":"Are you sure you want to clear all analytics events?","eventParams":"{{count}} params","eventCount":"{{count}} events","userProperties":"User Properties","userId":"User ID","defaultParameters":"Default Parameters","collectionEnabled":"Collection Enabled","screenView":"screen_view","eventDetails":"Event Details","parameters":"Parameters","noParams":"No parameters","recentEvents":"Recent Events","analyticsError":"Analytics Error","duplicate":"Duplicate","params":"params","props":"props","item":"item","items":"items","pageViewCategory":"Page View","ecommerceCategory":"Ecommerce","systemCategory":"System","customCategory":"Custom","realtimeStream":"Realtime Activity","liveTelemetry":"Live Telemetry","eventsInWindow":"events in window","eventVelocity":"{{rate}} ev/min","peakVolume":"Peak: {{count}}","time30mAgo":"-30m","time20mAgo":"-20m","time10mAgo":"-10m","timeNow":"NOW","selectedBucket":"Bucket: {{time}} ({{count}} events)","totalRevenue":"Revenue","activeDistribution":"Category Split","allCategory":"All","screensCategory":"Screens","overviewTab":"Overview","jsonTreeTab":"JSON Tree","rawPayloadTab":"Raw Payload","sessionContext":"Session Context","userPropertiesSnapshot":"User Properties Snapshot","parameterKeys":"Parameters ({{count}})","searchParameters":"Search parameters...","noParamsFound":"No parameters match your search","sourceFirebase":"FIREBASE GA4","sourceCustom":"CUSTOM / MANUAL","dataVisualization":"Data Visualization","dataTypesBreakdown":"Data Types Breakdown","highestPayloadStrings":"Highest Payload Strings","topLevelMetrics":"Top-Level Metrics","importantDates":"Important Dates","itemPrices":"Item Prices","sessionIdentity":"SESSION & IDENTITY","metricParams":"Params:","metricUserProps":"User Props:","metricSize":"Size:","metricItems":"{{count}} items","sessionId":"Session ID","trackingId":"Tracking ID","eventParameters":"EVENT PARAMETERS ({{count}})","keyValueAttributes":"Key-Value Attributes","filterParamsPlaceholder":"Filter parameters by key or value...","noParamsRecorded":"No custom parameters recorded for this event.","noParamsMatching":"No parameters matching \"{{search}}\"","clearEventsTitle":"Clear Analytics","clearEventsMsg":"Are you sure you want to clear all analytics events?"},"redux":{"title":"Redux","searchPlaceholder":"Search state or actions...","emptyTitle":"No Redux store connected","emptySubtitle":"Connect your store to inspect its state and actions.","stateTab":"State","actionsTab":"Actions","clearTitle":"Clear Redux Timeline","clearMessage":"Are you sure you want to clear the dispatched action history?","noActions":"No actions dispatched yet. Trigger an action in the app to populate history.","noSearchResults":"No actions match your search.","lastAction":"Last action","actionHistory":"Action History","affectedSlices":"Affected slices","noAffectedSlices":"None","dispatchTime":"Dispatched at","prevState":"Previous State","nextState":"Next State","viewDiff":"View Diff","emptyState":"State is empty","rootState":"Root State","connectionStatus":"Connected","connectionStatusNone":"Not connected","autoRefresh":"Auto-refresh","paused":"Paused","liveState":"Live State","timeline":"Timeline","persisted":"Persisted","storage":"Storage","metadata":"Metadata","inMemory":"In-Memory","slice":"SLICE","rootKeys":"Root Keys","size":"Size","actions":"actions","keys":"Keys","last":"Last","live":"Live","loading":"Loading","error":"Error","empty":"Empty","payload":"Payload","actionPayload":"Action Payload:","stateChangesDiff":"State Changes (Diff):","tapToInspectAction":"Tap to inspect action payload & diff changes","noDispatchedActions":"No dispatched actions recorded for this slice yet.","sliceJson":"Slice JSON","originSaga":"SAGA","originThunk":"THUNK","originUi":"UI","originDirect":"DIRECT","originListener":"LISTENER","triggeredFrom":"Triggered From:","openInEditor":"Open in Editor","callStack":"Call Stack Trace","sliceOrigin":"Slice / Origin","activeSlices":"ACTIVE SLICES","totalState":"TOTAL STATE","lastActionHeader":"LAST ACTION","initialState":"Initial state (no actions dispatched yet)","noStoreConnected":"No Redux Store Connected","connectStoreTip":"Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.","clearPersistedTitle":"Clear Persisted State","clearPersistedMessage":"Are you sure you want to delete persisted storage for slice \"{{slice}}\"?","clearedPersisted":"Persisted state has been cleared.","clearPersistedError":"Failed to clear persisted state.","clearTimelineTitle":"Clear Redux Timeline","clearTimelineMsg":"Are you sure you want to clear the dispatched action history?","diff":"State Diff"},"device":{"title":"Device","searchPlaceholder":"Search specs, UDID, IP, screen...","subTabs":{"overview":"Overview","hardware":"Hardware","network":"Network & IP","display":"Display","runtime":"Runtime & App","security":"Security & IDs"},"sections":{"overview":"DEVICE OVERVIEW","hardware":"HARDWARE & SYSTEM","network":"NETWORK & CONNECTIVITY","display":"DISPLAY & GEOMETRY","runtime":"RUNTIME & ENVIRONMENT","security":"IDENTIFIERS & SECURITY"},"copied":"Copied {{label}}","copiedJson":"Copied Full Device JSON Report!","copiedMarkdown":"Copied Markdown Report to Clipboard!","live":"LIVE","ipAddress":"IP ADDRESS","ramUsedTotal":"RAM (USED/TOTAL)","uptime":"UPTIME","copiedUuid":"Copied Unique Device ID (UUID)"},"storage":{"title":"Storage","searchPlaceholder":"Search keys, values, types...","subTabs":{"asyncStorage":"AsyncStorage","mmkv":"MMKV"},"clearTitle":"Clear Storage Driver","clearMessage":"Are you sure you want to delete all keys in {{driver}}?","clearConfirm":"Clear All","emptyTitle":"No Storage Entries","emptySubtitle":"Storage is currently empty for this driver.","addKey":"Add Key","add":"Add","editKey":"Edit Key","createKey":"Create Key","save":"Save","saveKey":"Save Key","keyName":"Key Name","value":"Value","valueContent":"Value Content","type":"Type","beautifyJson":"Beautify JSON","loading":"Loading storage entries...","deleteKeyTitle":"Delete Key","deleteKeyMessage":"Are you sure you want to delete key \"{{key}}\"?","asyncStorage":"AsyncStorage","mmkv":"MMKV","deleteConfirm":"Delete","cleared":"Storage cleared","keyNameEmpty":"Key name cannot be empty","saveError":"Error saving storage key"},"footer":{"endOfList":"You've reached the end of the list","loadMore":"Load {{count}} More","loadMoreRequests":"Load {{count}} More Requests","allLoaded":"All {{count}} requests loaded","showingOf":"Showing {{count}} of {{total}} {{label}}"},"performance":{"title":"Performance","fpsTarget":"60 FPS Target Monitor","healthScore":"FPS Health Score","excellent":"Excellent (60 FPS)","good":"Good (Minor Janks)","needsOptimization":"Needs Optimization","liveFps":"Live FPS & Refresh Cycle","realtimeWindow":"Real-Time (1s window)","uiRenderThread":"UI Render Thread","optimalFrame":"Optimal (<16.6ms)","slowFrame":"Slow Frame (>16.6ms)","budgetUsage":"60 FPS Budget Usage","avgFrameTime":"Avg Frame Time","peakTime":"Peak Time","jsThread":"JS Thread","uiThread":"UI Thread","jsiLatency":"JSI Latency","heapImpact":"Heap Impact","optimizationTip":"Optimization Tip:","recordedEvents":"Recorded Events & Interactions","liveStream":"Live Session Stream","emptyTitle":"No performance events captured yet","emptySubtitle":"Perform actions in your app to see thread timings, render cost, and FPS tracking.","tabOverview":"Overview","tabRenders":"Renders","tabInteractions":"Interactions","tabMemory":"Memory","filterAll":"All","filterSlow":"Slow (>16ms)","filterCritical":"Critical (>33ms)","searchPlaceholder":"Search component, interaction...","avgRenderTime":"Avg Render","totalRenders":"Total Renders","renderCost":"Render Cost","slowRenders":"Slow Renders","unnecessaryRenders":"Wasteful Renders","heapAllocated":"Heap Allocated","heapLimit":"Heap Limit","gcEvents":"GC Events","leakRisk":"Leak Risk","lowRisk":"Low Risk","mediumRisk":"Medium Risk","highRisk":"High Risk","memoryTimeline":"Memory Timeline","clearPerformance":"Clear Performance Data","clearConfirmation":"Are you sure you want to clear all performance tracking data?","liveFpsDip":"Live Frame Rate Dip ({{fps}} FPS)","liveFpsDipDetail":"Main thread frame duration extended to {{duration}}ms during view update.","liveFpsDipAdvice":"Heavy JavaScript execution during frame pass delayed display presentation.","yogaLayout":"Yoga Flexbox Layout","hermesGc":"Hermes Garbage Collection","jsEngine":"JS Engine","uiReconciler":"UI Reconciler","memoryHeap":"Memory Heap","allLogs":"All Logs","jankySlow":"Janky / Slow","navigation":"Navigation","components":"Components","memoryGc":"Memory & GC","networkIo":"Network & I/O","catAll":"All","catJanky":"Janky","catNavigation":"Navigation","catRender":"Components","catMemory":"Memory","catIo":"I/O","recording":"Recording","paused":"Paused","budgetHeadroom":"~{{time}}ms Headroom ({{percent}}%)","jsExec":"JS Exec: {{time}}ms","yogaLayoutTime":"Yoga Layout: {{time}}ms","uiRenderTime":"UI Render: {{time}}ms","freeTime":"Free: {{time}}ms","heapAllocatedSub":"{{allocated}} MB allocated","hermesAot":"Hermes (AOT)","v8Jit":"V8 (JIT)","jscEngine":"JSC","bytecodeCompiled":"Bytecode compiled","jitEngine":"JIT Engine","webkitEngine":"Webkit Engine","fabricJsi":"Fabric / JSI","paperBridge":"Paper / Bridge","directCppBindings":"Direct C++ bindings","asyncJsonBridge":"Async JSON Bridge","fpsUnit":"FPS","jsLag":"JS Lag","jankRate":"Jank Rate","fpsAreaChartTitle":"Real-Time FPS Stream & Jitter (30s)","fpsAreaChartSub":"Live 60 FPS target with continuous frame variance measurement","frameLatencyDistTitle":"Frame Latency Distribution","frameLatencyDistSub":"Proportion of frames delivered within 16.6ms budget","optimalBucket":"< 16.6ms (60 FPS)","minorJankBucket":"16.7 - 33.3ms (30-60 FPS)","noticeableJankBucket":"33.4 - 50.0ms (20-30 FPS)","severeFreezeBucket":"> 50.0ms (< 20 FPS)","hermesHeapTrendTitle":"Memory & Hermes Heap Dynamics","hermesHeapTrendSub":"Live allocation vs generational GC scavenge cycles","live":"Live","msTotal":"{{duration}}ms total • {{time}}","droppedFrames":"{{count}} Dropped","zeroDropped":"0 Dropped","frameBudgetMs":"{{time}}ms / frame ({{budget}}% budget)","target60Fps":"Target 60 FPS • Actual {{fps}} FPS","frameDuration":"Frame Duration","frameDurationVal":"{{time}} ms (16.67ms budget)","frameUtilization":"Frame Budget Exceeded","frameBudgetOk":"Frame Budget Headroom","bottleneck":"Bottleneck","jsBound":"JS Thread Bound","uiBound":"UI Thread Bound","balanced":"Balanced","smooth":"Smooth 60 FPS","minorJank":"Minor Stutter","noticeableJank":"Noticeable Jank","severeFreeze":"Severe Freeze","screenContext":"Screen Context","profileReason1":"Inline arrow function props passed to children (onAddToCart={() => ...})","profileReason2":"Unmemoized Redux selector creating new object reference on every dispatch","profileReason3":"Dynamic style object created in render body ({ marginTop: insets.top + 10 })","profileReason4":"FlatList missing getItemLayout causing async layout measuring passes","profileReason5":"renderItem function defined anonymously inside JSX body","profileReason6":"List item components not wrapped with React.memo","profileReason7":"Parent screen re-rendered on keyboard show/hide event","profileReason8":"Unstable callback reference passed into checkout button","profileReason9":"TextInput value state triggers parent re-render on every keystroke without debouncing","profileReason10":"Passing unmemoized filter object ({ category, minPrice }) down to child chips","profileReason11":"Avatar image cache re-validation on auth session refresh","fixUseCallbackTitle":"Wrap Event Handlers in useCallback","fixUseCallbackDesc":"Inline functions recreate a new memory reference on every render, invalidating React.memo on child components.","fixCreateSelectorTitle":"Memoize Redux / Zustand Selectors with shallowEqual","fixCreateSelectorDesc":"Returning new object or array references inside useSelector forces an automatic re-render on every state dispatch.","fixUseMemoStylesTitle":"Hoist Styles or Use useMemo for Dynamic Dimensions","fixUseMemoStylesDesc":"Inline style objects create new object identities on every frame pass, causing Yoga Flexbox reconciliation diffs.","fixGetItemLayoutTitle":"Implement getItemLayout for Fixed-Height Items","fixGetItemLayoutDesc":"Supplying getItemLayout allows FlatList to immediately compute scroll offsets and virtual windows without measuring views asynchronously.","fixReactMemoTitle":"Wrap List Items in React.memo","fixReactMemoDesc":"Prevents all 50+ visible list items from re-rendering when parent list state (e.g. scroll position or pagination) updates.","fixComponentSplittingTitle":"Isolate Fast-Changing State in Leaf Components","fixComponentSplittingDesc":"Move keyboard listeners and modal animation state into self-contained subcomponents so the parent does not re-render.","fixDebouncedInputTitle":"Debounce Search Input or Use Local Controlled State","fixDebouncedInputDesc":"Do not propagate keystroke state into global store immediately. Use a 250ms debounce or uncontrolled ref.","fixPrimitivePropsTitle":"Pass Primitive Props Instead of Large Objects","fixPrimitivePropsDesc":"Passing only categoryId string instead of whole category object prevents re-renders when other category metadata updates.","fixUseRefForTrackingTitle":"Use useRef for Non-Visual Tracking Values","fixUseRefForTrackingDesc":"Do not store analytics timers, scroll offsets, or tracking IDs in useState if they do not directly alter the JSX tree.","highImpact":"High Impact","mediumImpact":"Medium Impact","bestPractice":"Best Practice","beforeUseCallback":"// ❌ Before in <{{comp}} /> (re-creates function reference on every render):","afterUseCallback":"// ✅ After (stable memoized callback reference):","beforeCreateSelector":"// ❌ Before in <{{comp}} /> (returns new object reference every render):","afterCreateSelector":"// ✅ After (shallowEqual prevents re-render unless values change):","beforeMemo":"// ❌ Before (<{{comp}} />):","afterMemo":"// ✅ After (skips render if props are shallowly identical):","flatListOptimization":"// FlatList Optimization for <{{comp}} />","customComparator":"// Custom equality function for <{{comp}} />","debounceInput":"// Debounce input inside <{{comp}} /> to prevent per-keystroke renders:","isolateState":"// Isolate rapidly changing state from <{{comp}} /> to child sub-tree\n// ✅ Encapsulate animated layout inside isolated component:","beforeUseRef":"// ❌ Before in <{{comp}} /> (triggers whole component re-render on value change):","afterUseRef":"// ✅ After (preserves mutable reference across renders without re-rendering):","fixInteractionManagerTitle":"Defer Offscreen Logic with InteractionManager","fixInteractionManagerDesc":"Heavy data processing during screen animations drops frames. Defer until transition finishes.","beforeInteractionManager":"// ❌ Before in <{{comp}} /> (runs heavy computation while transition animates):\nuseEffect(() => {\n  loadHeavyData();\n}, []);","afterInteractionManager":"// ✅ After (waits until transition completes smoothly):\nuseEffect(() => {\n  const task = InteractionManager.runAfterInteractions(() => {\n    loadHeavyData();\n  });\n  return () => task.cancel();\n}, []);","fixFlatListWindowingTitle":"Tune FlatList Windowing Properties","fixFlatListWindowingDesc":"Configure maxToRenderPerBatch and windowSize to minimize offscreen virtualized view allocations.","beforeFlatListWindowing":"// FlatList Windowing Optimization for <{{comp}} />:\n<FlatList\n  data={items}\n  maxToRenderPerBatch={10}\n  windowSize={5}\n  initialNumToRender={8}\n  removeClippedSubviews={true}\n/>","fixImageCachingTitle":"Optimize Image Caching and Downscaling","fixImageCachingDesc":"Use priority headers or resizeMode downscaling to avoid massive bitmap allocations in the Hermes heap.","beforeImageCaching":"// Image Optimization for <{{comp}} />:\n<Image\n  source={{ uri: imageUrl, cache: 'force-cache' }}\n  resizeMode=\"cover\"\n  fadeDuration={100}\n/>","fixContextSplittingTitle":"Split Monolithic Context into Granular Providers","fixContextSplittingDesc":"Components subscribing to a large context re-render even when unused state properties change.","beforeContextSplitting":"// ❌ Before (<{{comp}} /> consumes entire AppContext):\nconst { user, cart, theme } = useAppContext();","afterContextSplitting":"// ✅ After (subscribe to dedicated slice context):\nconst theme = useThemeContext();","fixInlineStylesHoistTitle":"Hoist Static Styles with StyleSheet.create","fixInlineStylesHoistDesc":"Inline style objects allocate new memory references on each render pass, causing Yoga reconciliation overhead.","beforeInlineStyles":"// ❌ Before (<{{comp}} /> allocates inline object every frame):\n<View style={{ flex: 1, padding: 16, backgroundColor: '#ffffff' }} />","afterInlineStyles":"// ✅ After (hoisted StyleSheet reference):\nconst styles = StyleSheet.create({ container: { flex: 1, padding: 16, backgroundColor: '#ffffff' } });\n<View style={styles.container} />","transitionEventLabel":"Screen Transition: {{screen}}","transitionEventDetail":"Transition completed in {{duration}}ms (TTI: {{tti}}ms).","transitionEventAdvice":"Interaction completed within 60 FPS target budget.","heavyTaskEventLabel":"Heavy Synchronous Task: {{taskName}}","heavyTaskEventDetail":"JS thread blocked for {{duration}}ms during task execution.","heavyTaskEventAdvice":"Consider offloading to web worker, InteractionManager, or batching in chunks.","asyncOpEventLabel":"Slow Async Operation: {{opName}}","asyncOpEventDetail":"Async task took {{duration}}ms to resolve.","renderLoopWarningLabel":"Rapid Re-render Spike in <{{comp}} />","renderLoopWarningDetail":"Component re-rendered {{count}} times in 500ms. Potential infinite loop or unstable dependencies.","renderLoopWarningAdvice":"Check useEffect / useCallback dependency arrays for unstable object or function references.","event1Label":"Main Thread Spike during Navigation","event1Detail":"Screen transition triggered heavy layout reconciliation and simultaneous component mounts.","event1Advice":"Defer non-critical offscreen hooks with InteractionManager.runAfterInteractions to preserve 60 FPS.","event2Label":"FlatList Virtualization Re-render Pass","event2Detail":"FlatList rendered 25 items simultaneously on orientation change without memoized row component.","event2Advice":"Implement getItemLayout and React.memo(LogCard) to skip redundant diffing passes.","event3Label":"Native Modal Slide-Up Transition","event3Detail":"Hardware accelerated native driver animated transform running smoothly at sustained 60 FPS.","event3Advice":"Using nativeDriver: true successfully prevents JS thread blocking during animations.","event4Label":"Hermes Generational Garbage Collection","event4Detail":"Minor generational GC cycle scavenged 4.2 MB ephemeral heap objects with sub-millisecond thread pause.","event4Advice":"Hermes generational garbage collector is operating within optimal sub-5ms limits.","gcCycleLabel":"Manual Garbage Collection Cycle","gcCycleDetail":"Reclaimed ~{{amount}} MB unreferenced heap objects and compacted memory nursery.","gcCycleAdvice":"Heap usage optimized. Generational nursery cleared.","liveFpsDropLabel":"Live Frame Rate Dip ({{fps}} FPS)","liveFpsDropDetail":"Main thread frame duration extended to {{duration}}ms during view update.","liveFpsDropAdvice":"Heavy JavaScript execution during frame pass delayed display presentation.","event5Label":"Large JSON Payload Deserialization","event5Detail":"50-item API response parse overhead in network adapter (185 KB JSON raw string).","event5Advice":"Consider paginating API payloads or streaming responses if payload size exceeds 250 KB.","event6Label":"Image Bitmap Decode & Rasterization","event6Detail":"Retina raster decode for banner_dark.png (1200×630px raster buffer allocation).","event6Advice":"Downscale asset dimensions or convert to WebP to reduce decode latency by ~65%.","event7Label":"Native TurboModule JSI Invocation","event7Detail":"AsyncStorage / MMKV preferences transaction read across 32 configuration keys.","event7Advice":"Direct C++ JSI Turbomodule bindings completely bypass legacy JSON bridge serialization overhead.","event8Label":"Redux Action State Tree Diffing","event8Detail":"Redux dispatch pass evaluated 6 reducer slices and emitted state notification in 4.8ms.","event8Advice":"State tree immutability preserved. Memoized selectors prevented redundant component renders.","event9Label":"Touch-to-Render Event Latency","event9Detail":"Gesture responder dispatched tap event to TabBar button with immediate 60 FPS response.","event9Advice":"Touch responder latency is well within standard 16.67ms frame budget.","event10Label":"C++ Yoga Flexbox Layout Pass","event10Detail":"Inspector UI multi-tab card layout recalculation and font metrics pass in C++ Yoga engine.","event10Advice":"Flexbox layout constraints are cached and computed efficiently with zero reflow penalties."},"bundle":{"heroTitle":"Bundle & Asset Architecture","heroSubtitle":"Real-time size breakdown across all assets, code, and dependencies","heroSubtitleLive":"Live analysis of {{scriptUrl}}","liveAnalysisUnavailable":"Live bundle analysis unavailable","liveAnalysisUnavailableSub":"Could not reach the Metro dev server, so values are estimates. Make sure the app runs in development via `npx react-native start` and the Inspector can reach your Metro port (8081, 8082, ...).","bundleOverviewJson":"Bundle Overview JSON","devBundleSize":"DEV BUNDLE SIZE","devBundleHint":"{{kb}} KB • {{modules}} modules","trackedFilesHint":"{{count}} Tracked files","imagesMedia":"IMAGES & MEDIA","pctOfTrackedAssets":"{{pct}}% of tracked assets","tsJsSource":"TS / JS SOURCE","jsEngine":"JS ENGINE","bytecodeAot":"Bytecode AOT","standard":"Standard","splitUpTitle":"Development Bundle Split-Up","splitUpSub":"Measured {{mb}} MB JS bundle • {{files}} files • {{packages}} packages","splitUpJson":"Split-Up JSON","splitAppSource":"App Source Code","splitNodeModules":"node_modules Dependencies","splitAssetsMedia":"Assets & Media","splitMetroOverhead":"Metro Dev Overhead","splitSize":"{{kb}} KB • {{mb}} MB","productionFootprint":"PRODUCTION FOOTPRINT","productionValue":"iOS {{ios}} MB • Android {{android}} MB","productionDownload":"Download: iOS ~{{ios}} MB • AAB ~{{aab}} MB • APK ~{{apk}} MB","treemapTitle":"Asset & File Type Ratio Treemap","treemapSub":"Total ~{{mb}} MB","treemapJson":"Ratio Treemap JSON","legendImages":"Images:","legendTs":"TS/TSX:","legendJs":"JS Libs:","legendFonts":"Fonts:","legendJson":"JSON:","categoryBreakdown":"Category Breakdown","categoriesJson":"Categories Breakdown JSON","catImagesTitle":"Images & Media Assets","catImagesDesc":"PNG, WebP, SVG, and JPG assets in bundle","catJsTitle":"Compiled Node Modules & JS","catJsDesc":"Third-party dependencies and native bridges","catFontsTitle":"Custom Fonts & Vector Glyphs","catFontsDesc":"Font assets in bundle","catTsTitle":"TypeScript & JSX Components","catTsDesc":"App screen components, hooks, and business logic","catJsonTitle":"JSON Data & Localizations","catJsonDesc":"i18n translation dictionaries and static configs","totalBundleAssets":"TOTAL HOST PROJECT FILES","totalBundleValue":"{{kb}} KB (~{{mb}} MB)","totalFormula":"Sum of host source files: {{images}} KB + {{js}} KB + {{fonts}} KB + {{ts}} KB + {{json}} KB = {{total}} KB ({{count}} items)","prodIosApp":"iOS App (.ipa)","prodAndroidAab":"Android AAB (.aab)","prodAndroidApk":"Universal APK (.apk)","prodHeroTitleIos":"iOS Production Binary Footprint","prodHeroTitleAab":"Google Play App Bundle (.aab)","prodHeroTitleApk":"Universal Standalone APK (.apk)","prodHeroSubIos":"App Store install & over-the-air cellular download estimates","prodHeroSubAab":"Optimized per-device dynamic delivery split APK architecture","prodHeroSubApk":"Multi-ABI universal install archive for sideloading & direct distribution","prodInstallSize":"INSTALL SIZE","prodInstallHint":"On-device uncompressed footprint","prodDownloadSize":"DOWNLOAD SIZE","prodDownloadHint":"Store network transfer payload","prodCompression":"COMPRESSION","prodCompressionHint":"Bytecode & asset ratio","prodFormatArch":"FORMAT ARCHITECTURE","prodFormatHintIos":"Apple ARM64 runtime","prodFormatHintAab":"Dynamic Google Play delivery","prodFormatHintApk":"Sideload universal package","prodArchTitle":"Binary Component Architecture","prodArchSub":"Compiled native libraries, runtime bytecodes, assets, and signature blocks","prodTotalIos":"TOTAL IOS APP BINARY","prodTotalAab":"TOTAL ANDROID AAB BUNDLE","prodTotalApk":"TOTAL UNIVERSAL APK","prodTotalFormula":"From {{devKb}} KB (~{{devMb}} MB • {{count}} total assets) dev source bundle → {{installMb}} MB optimized native binary ({{pct}}% bytecode/asset compression).","tabOverview":"Overview","tabProduction":"Production ({{count}})","tabFiles":"Files ({{count}})","tabPackages":"Packages ({{count}})","tabMedia":"Media ({{count}})","tabOptimizer":"Optimizer","analyzingTitle":"Analyzing host app bundle from Metro…","analyzingHint":"Fetching bundle & extracting real modules","searchFilesPlaceholder":"Search by file name (.png, .tsx, .ttf, path)...","filteredFilesJson":"Filtered Files JSON","catAll":"All Files","catUnused":"Not Consumed (Dead)","catConsumed":"In-Use / Active","catImages":"Images & Media","catTypescript":"TypeScript / TSX","catJavascript":"JS & Node Modules","catFonts":"Fonts & Glyphs","catJson":"JSON & Data","treeView":"Tree View","flatList":"Flat List","expand":"Expand","collapse":"Collapse","showingFilesOf":"Showing {{shown}} of {{total}} files","filesOf":"{{count}} of {{total}} Files","notConsumed":"Not Consumed","consumed":"Consumed","copyFileInfo":"Copy {{name}} Info","fileDetailsJson":"File Details JSON","file":"file","files":"files","fileSizeKb":"{{size}} KB","fileSizeMb":"{{size}} MB","mbValue":"~{{size}} MB","kbMbValue":"{{kb}} KB ({{mb}} MB)","legendValue":"{{kb}} KB ({{pct}}%)","mediaSavings":"{{size}} KB","searchPackagesPlaceholder":"Search package (react-native, axios, navigation)...","dependenciesJson":"Dependencies JSON","showingDependencies":"Showing {{count}} dependencies","versionPrefix":"v{{version}}","bundled":"bundled","deprecated":"DEPRECATED","updateAvailable":"Update: v{{version}}","upToDate":"Up to date","bundledBadge":"Bundled","packageDetailsJson":"Package Details JSON","direct":"Direct","transitive":"Transitive","minified":"~{{size}} KB minified","npmLink":"npm ↗","dependenciesCount":"{{count}} Dependencies","mediaAuditorTitle":"Media Compression Auditor","mediaAssetsJson":"Media Assets JSON","mediaAuditorPrefix":"Images & Fonts constitute","mediaAuditorMid":"of total assets (~{{kb}} KB). Converting PNGs to WebP and font subsetting can reduce size by up to","mediaAuditorSuffix":"KB.","mediaAssetsList":"Media Assets & Fonts ({{count}} items)","mediaItemJson":"Media Item JSON","mediaAndFonts":"{{count}} Media & Fonts","optimizerTitle":"React Native Bundle Optimization Checklist","optimizationChecklist":"Optimization Checklist","optTip1Title":"Convert Heavy PNGs to WebP / SVGs","optTip1Desc":"Images account for >40% of final app download size. Converting 2x/3x raster PNGs to WebP saves 60-70% size with no visible fidelity loss.","optTip2Title":"Enable Hermes Bytecode Engine","optTip2DescActive":"Hermes is active! JavaScript is compiled into optimized bytecode Ahead-Of-Time.","optTip2DescInactive":"Hermes is disabled. Enable hermes in your app config for ~40% smaller payload and instant TTI startup.","optTip3Title":"Font Subsetting & Weight Pruning","optTip3Desc":"Include only the font weights you actively use (e.g. Regular & Bold). Remove unused glyph ranges to save 100KB+ per font file.","optTip4Title":"Selective Path Imports (Tree-shaking)","optTip4Desc":"Import from specific subpaths (e.g. lodash/get or specific vector icon sets) instead of importing large monolithic packages.","optTip5Title":"Screen Lazy-Loading","optTip5Desc":"Lazy load secondary screens and heavy modal sheets using dynamic imports and InteractionManager to reduce initial bundle evaluation.","highImpact":"High Impact","mediumImpact":"Medium Impact","bestPractice":"Best Practice","actionRequired":"Action Required","active":"Active","tipDetails":"Tip Details","iosComp1Name":"Frameworks & Dynamic Pods","iosComp1Desc":"React, Hermes, and {{count}} native pod frameworks.","iosComp1Advice":"Ensure Dead Code Stripping (STRIP_INSTALLED_PRODUCT = YES) in Release mode.","iosComp2Name":"Mach-O Executable (ARM64)","iosComp2Desc":"Host App compiled Swift/Objective-C and C++ native bridges.","iosComp2Advice":"Enable Monolithic LTO (Link-Time Optimization) in Xcode Scheme.","iosComp3Name":"Asset Catalog (Assets.car)","iosComp3Desc":"AppIcons, splash screens, vector glyphs, and bundled fonts.","iosComp3Advice":"Compile images into Xcode Asset Catalog for automatic App Thinning.","iosComp4Name":"Hermes Bytecode (main.jsbundle)","iosComp4Desc":"Host app JavaScript compiled AOT into Hermes bytecode ({{count}} files).","iosComp4Advice":"AOT bytecode loads with 0ms compile latency on device launch.","iosComp5Name":"Metadata & Code Signatures","iosComp5Desc":"_CodeSignature, Info.plist, and entitlements block.","iosComp5Advice":"Standard Apple Code Signing & provisioning signature.","andComp1Name":"Native C++ Libraries (.so)","andComp1Desc":"libhermes.so, libfbjni.so, and {{count}} C++ native adapters.","andComp1Advice":"Deploy with Android App Bundle (.aab) to deliver per-ABI split APKs.","andComp2Name":"Compiled DEX (classes.dex)","andComp2Desc":"Compiled Java & Kotlin runtime, AndroidX, and React Native bridges.","andComp2Advice":"Enable R8 / ProGuard shrinking (minifyEnabled true) in build.gradle.","andComp3Name":"Android Resources (res/)","andComp3Desc":"Drawables, vector XMLs, mipmap densities, resources.arsc, fonts.","andComp3Advice":"Use WebP and VectorDrawables to avoid multi-density asset duplication.","andComp4Name":"Hermes Bytecode (Android)","andComp4Desc":"Host app JavaScript compiled into Hermes bytecode ({{count}} files).","andComp4Advice":"Pre-compiled bytecode during assembleRelease gradle task.","andComp5Name":"Manifest & Signatures (META-INF)","andComp5Desc":"AndroidManifest.xml, signing certs, v2/v3/v4 APK Signature Scheme blocks.","andComp5Advice":"Official Google Play signing & signature block.","apkComp1Name":"Multi-ABI C++ Libraries (.so)","apkComp1Desc":"Universal multi-architecture shared libraries (.so) bundled for direct sideloading.","apkComp1Advice":"Use Android App Bundle (.aab) for Google Play to reduce install size by 60%.","apkComp2Name":"Compiled DEX Bytecode (classes.dex)","apkComp2Desc":"Compiled Java & Kotlin runtime, AndroidX libraries, and native bridge modules.","apkComp2Advice":"Enable R8 / ProGuard shrinking (minifyEnabled true) and shrinkResources true.","apkComp3Name":"Android Resources & Assets (res/)","apkComp3Desc":"Drawables, vector XMLs, mipmap densities, resources.arsc, fonts.","apkComp3Advice":"Use WebP and VectorDrawables to avoid multi-density asset duplication.","apkComp4Name":"Hermes Bytecode Bundle (Android)","apkComp4Desc":"Host app JavaScript compiled into Hermes bytecode ({{count}} files).","apkComp4Advice":"Pre-compiled bytecode during assembleRelease gradle task.","apkComp5Name":"Manifest & Signatures (META-INF)","apkComp5Desc":"AndroidManifest.xml, signing certs, JAR & v2/v3/v4 APK Signature Scheme.","apkComp5Advice":"Enterprise sideload & direct install signature block."},"errors":{"title":"Something went wrong","message":"An unexpected error occurred.","retry":"Try Again","reset":"Reset","close":"Close","errorReport":"Error report","modalTitle":"Inspector crashed","modalMessage":"The inspector hit an unexpected error. You can reset it below.","inlineTitle":"Inspector error","inlineMessage":"An unexpected error occurred inside the inspector.","networkError":"Network request failed","crashIntercepted":"CRASH INTERCEPTED","protected":"PROTECTED","rootCauseTitle":"Root Cause Diagnostics","rootCauseSubtitle":"Inspector caught this runtime error to prevent app termination","exactLocation":"EXACT SOURCE LOCATION","file":"File:","lineCol":"Line / Col:","lineColVal":"Line {{line}}, Col {{col}}","function":"Function:","callStack":"CALL STACK FRAMES","framesCount":"{{count}} frames","tryAgainRecover":"Try Again / Recover","copyDiagnostics":"Copy Diagnostics","appTag":"APP","copy":"Copy"},"jsonViewer":{"pretty":"Pretty","raw":"Raw","table":"Table","emptyObject":"Empty Object","emptyPayload":"Empty payload","emptyTable":"Empty Object","fold":"Fold","expand":"Expand","min":"Min","indent":"Indent","wrap":"Wrap","copied":"Copied!","copy":"Copy JSON","key":"Key","value":"Value","lines":"lines","line":"line"},"codeSnippet":{"copy":"Copy","copied":"Copied!","matchCount":"{{count}} match","matchCount_plural":"{{count}} matches","noMatches":"No matches","searchPlaceholder":"Search...","prevMatch":"Previous match","nextMatch":"Next match","clearSearch":"Clear search"},"diffViewer":{"added":"added","removed":"removed","changed":"changed","noDiff":"No differences","emptyTitle":"No differences found","emptySubtitle":"The two payloads are identical."},"logCard":{"seeMore":"Show more","seeLess":"Show less","copy":"Copy","copied":"Copied!"},"emptyState":{"title":"Nothing here yet","subtitle":"Data will appear here as you use the app.","reload":"Reload"},"errorBoundary":{"faultIsolated":"FAULT ISOLATED","retryModule":"Retry Module","sourcePage":"Source Page","parameters":"Parameters","metadata":"Metadata"},"crash":{"title":"Crash","searchPlaceholder":"Search error, message, stack...","searchDetailPlaceholder":"Search in trace or JSON...","statCrashes":"Crashes","statFatal":"Fatal","statJsErrors":"JS Errors","statPromises":"Promises","statRender":"Render","statNative":"Native","filterAll":"All","filterFatal":"Fatal","filterJsError":"JS Error","filterPromise":"Promise","filterRender":"Render","filterNative":"Native","fatalBadge":"FATAL","handledBadge":"HANDLED","fatalCrash":"FATAL CRASH","handledException":"HANDLED EXCEPTION","unknownException":"Unknown Exception","report":"Report","inspect":"Inspect","copyReport":"Copy Report","copied":"Copied","clearTitle":"Clear Crash History","clearMessage":"Are you sure you want to clear all intercepted crash records?","clearCancel":"Cancel","clearConfirm":"Clear All","emptyTitle":"Zero Crashes Detected","emptySubtitle":"Global crash guard is active. All native and JavaScript exceptions are intercepted and protected.","emptySearchSubtitle":"No crash entries matched your search query.","tabStack":"Stack ({{count}})","tabDiagnostics":"Diagnostics","tabTrail":"Trail ({{count}})","tabRawJson":"Raw JSON","appFrames":"App Frames ({{count}})","allFrames":"All Frames ({{count}})","frameApp":"APP","frameLib":"LIB","anonymous":"<anonymous>","noStackTrace":"No stack trace captured for this event.","deviceEnvironment":"Device & Environment","platform":"Platform","osVersion":"OS Version","reactNative":"React Native","jsEngine":"JS Engine","hermesEngine":"Hermes Engine","jsc":"JSC","architecture":"Architecture","fabricNewArch":"Fabric (New Arch)","paperLegacy":"Paper (Legacy)","appState":"App State","jsHeapMemory":"JS Heap Memory","usedHeap":"Used Heap","totalHeap":"Total Heap","noBreadcrumbs":"No breadcrumb events recorded prior to this crash.","simNativeMessage":"Simulated native fatal exception","simPromiseMessage":"Simulated unhandled promise rejection","simRenderMessage":"Simulated React component render error","simJsMessage":"Simulated JavaScript exception","reportTitle":"CRASH DIAGNOSTIC REPORT","reportErrorName":"Error Name:","reportMessage":"Message:","reportType":"Type:","reportFatalYes":"YES (Fatal)","reportFatalNo":"NO (Caught/Handled)","reportFatal":"Fatal:","reportTimestamp":"Timestamp:","reportUptime":"App Uptime:","reportUptimeValue":"{{seconds}} seconds","reportPlatform":"Platform:","reportReactNative":"React Native:","reportHermes":"Hermes:","reportEnabled":"Enabled","reportDisabled":"Disabled","reportArchitecture":"Architecture:","reportFabricNew":"Fabric (New)","reportPaperLegacy":"Paper (Legacy)","reportScreenSize":"Screen Size:","reportAppState":"App State:","reportJsMemory":"JS Memory:","reportStackTrace":"STACK TRACE:","reportNoStackTrace":"No stack trace available","reportComponentHierarchy":"COMPONENT HIERARCHY:","reportRecentBreadcrumbs":"RECENT BREADCRUMBS:","mdReportTitle":"🚨 Crash Report: {{name}}","mdStackTrace":"📦 Stack Trace","mdComponentHierarchy":"🌲 Component Hierarchy","mdRecentBreadcrumbs":"👣 Recent Breadcrumbs","mdSeverityFatal":"FATAL","mdSeverityHandled":"HANDLED","breadcrumbNavigation":"Navigated from \"{{from}}\" to \"{{to}}\"","breadcrumbAction":"Action: {{actionType}}","unknown":"Unknown","runtimeException":"Runtime Exception","logFatalCrash":"Fatal Crash","logUnhandledError":"Unhandled Error","errorNameFatal":"FatalError","errorNameUnhandled":"UnhandledException","nativeCrashTitle":"Native Crash","nativeUncaughtException":"Native Uncaught Exception","nativeException":"Native Exception","unhandledPromiseRejection":"Unhandled Promise Rejection","filterTitle":"Crash Filters","filterSubtitle":"Diagnostics & Reports","filterReset":"Reset All","filterTypeSection":"CRASH TYPE","filterTypeAll":"All Types","filterTimeSection":"TIME HORIZON","filterTimeAll":"All Time","filterTime15m":"Last 15 mins","filterTime1h":"Last 1 hour","filterTime24h":"Last 24 hours","filterTime7d":"Last 7 days","filterPlatformSection":"PLATFORM","filterPlatformAll":"All Platforms","filterPlatformIos":"iOS","filterPlatformAndroid":"Android","filterEngineSection":"JS ENGINE","filterEngineAll":"All Engines","filterEngineHermes":"Hermes","filterSortSection":"SORT ORDER","filterSortNewest":"Newest First (Default)","filterSortOldest":"Oldest First","filterDiscard":"Discard","filterApply":"Apply ({{count}} Crashes)","frameCopy":"Copy","frameCopied":"Copied","componentHierarchy":"Component Hierarchy","breadcrumbTrail":"BREADCRUMB TRAIL & EVENT LOG","deviceDiagnostics":"DEVICE DIAGNOSTICS AT CRASH TIME","openInInspector":"Open in Inspector"},"mediaGallery":{"all":"All ({{count}})","photos":"Photos","videos":"Videos","gifs":"GIFs","purge":"Purge ({{size}})","purgeTitle":"Purge All Media","purgeMessage":"This will permanently delete all {{count}} captured screenshots, videos, and GIFs ({{size}}). Continue?","noMediaTitle":"No Captured Media","noMediaDesc":"Use the Photo or Video Record button in the toolbar to capture whole-app screenshots, screen recordings, or GIFs.","deleted":"Deleted media item","allPurged":"All captured media purged","converting":"Converting...","convertToGif":"Convert to GIF","playVideo":"Play Video","playError":"Unable to play video","convertedSuccess":"Converted to Animated GIF successfully!","convertFailed":"Failed to convert to GIF","share":"Share","copyUri":"Copy URI","uriCopied":"File URI copied to clipboard","delete":"Delete","deleteSelected":"Delete ({{count}})","deleteSelectedTitle":"Delete Selected","deleteSelectedMessage":"Are you sure you want to delete {{count}} selected media items?","deletedCount":"Deleted {{count}} media items","deleteTitle":"Delete Media","deleteMessage":"Are you sure you want to delete {{filename}}?","shareUnavailable":"Sharing not available on this device","showingResults":"Showing {{count}} results","showingFilteredResults":"Showing {{count}} of {{total}} results","selectedOfResults":"Selected {{selected}} of {{total}} results","minimize":"Minimize","expand":"Expand Fullscreen","collapse":"Exit Fullscreen","speed":"Speed","loop":"Loop","pause":"Pause","play":"Play","hideGridlines":"Hide Instagram Grid (3×3)","showGridlines":"Show Instagram Grid (3×3)","hideWatermark":"Hide QA Watermark","showWatermark":"Show QA Watermark","exportGif":"Export as Animated GIF","snapshotFrame":"Snapshot Frame (PNG)","tapToPlaceStep":"Tap or drag on image to place step badge","resetAdjustments":"Adjustments Reset","tagPlaced":"Placed tag","tapToAddText":"Tap anywhere on the image to add text","textAdded":"Text overlay added","redone":"Redone","undone":"Undone","videoSaved":"Edited video saved to gallery","savedSuccess":"Saved successfully","saveFailed":"Failed to save media","snapshotSaved":"Snapshot frame saved to gallery","snapshotFailed":"Failed to capture frame snapshot","shareSuccess":"Media shared successfully","cropFailed":"Failed to crop media","croppedSuccess":"Media cropped successfully","resizeFailed":"Failed to resize media","resizedSuccess":"Media resized successfully","trimFailed":"Failed to trim video","trimmedSuccess":"Video trimmed successfully","muteFailed":"Failed to update video audio","mutedSuccess":"Audio modified successfully","resetSuccess":"Image reset to original","openCameraRoll":"Open Camera Roll","importPhotos":"Import Photos from Library","importVideos":"Import Videos from Library","importedPhoto":"Photo imported from Camera Roll","importedVideo":"Video imported from Camera Roll","importFailed":"Failed to import media","preview":"Preview"},"socket":{"title":"WebSocket","messages":"Messages","overview":"Overview","params":"Params","rawAndCode":"Raw & Code","totalFrames":"TOTAL FRAMES","sentRecv":"SENT / RECV","dataTransferred":"DATA TRANSFERRED","searchFramesPlaceholder":"Search frame payloads or event names...","sent":"Sent","recv":"Recv","emptyFrames":"No frames captured for this connection","searchSocketsPlaceholder":"Search WebSocket URL or messages...","noSockets":"No WebSocket Connections","noSocketsDesc":"Captured WebSocket, Socket.IO, and WSS connections will appear here in real time.","noMatching":"No matching WebSockets","adjustSearchFilter":"Try adjusting your search query or filter chips.","simulateTraffic":"Simulate Demo WebSocket Traffic","clearTitle":"Clear All WebSocket Logs","clearMessage":"Are you sure you want to delete all recorded WebSocket sessions?","cleared":"All WebSocket logs cleared","deleteSelectedTitle":"Delete Selected WebSockets","deleteSelectedMsg":"Are you sure you want to delete {{count}} selected WebSocket logs?","filterTitle":"Filter WebSocket Connections","showingConnections":"Showing {{count}} connections","showingFilteredConnections":"Showing {{filtered}} of {{total}} connections","deletedCount":"Deleted {{count}} WebSocket logs","copiedUrls":"{{count}} URLs copied to clipboard","webSocketTraffic":"WebSocket Traffic ({{count}} connections)","connectionDetails":"CONNECTION DETAILS","url":"URL","clientEngine":"Client Engine","readyState":"Ready State","connectedAt":"Connected At","closedAt":"Closed At","closeCodeReason":"Close Code & Reason","subprotocols":"Subprotocols","callerStack":"Caller Stack","error":"Error","handshakeHeaders":"Handshake Headers","handshakeParams":"HANDSHAKE QUERY PARAMETERS","noQueryParams":"No query parameters passed in connection URL","jsClientCode":"JAVASCRIPT CLIENT CODE","terminalWscat":"TERMINAL WSCAT COMMAND","rawDump":"RAW CONNECTION JSON DUMP"},"push":{"title":"Push Notifications","preview":"Preview","payload":"Custom Payload","deliveryMetadata":"Delivery & Message Metadata","rawPayload":"Raw Payload","link":"Link","appNotification":"App Notification","now":"now","domainFields":"Domain Specific Fields","searchPlaceholder":"Search push notifications...","noNotifications":"No Push Notifications","noNotificationsDesc":"Captured Firebase FCM, Apple APNs, OneSignal, and custom push events will appear here in real time.","filterTitle":"Filter Push Notifications","clearTitle":"Clear Push History","clearMessage":"Are you sure you want to clear all push notification records?","cleared":"Push notification history cleared","foreground":"Foreground","background":"Background","quit":"Quit","messageId":"Message ID:","sourceDomain":"Source / Domain:","appState":"App State:","actionType":"Action Type:","timestamp":"Timestamp:","channelId":"Channel ID:","sound":"Sound:","badgeCount":"Badge Count:","collapseKey":"Collapse Key:","noCustomData":"No custom key-value data found in payload","noMatching":"No matching push notifications","adjustSearchFilter":"Try adjusting your search query or filter chips."},"debugging":{"title":"Debugging & Tools","buildSuccess":"APK Build Generated Successfully!","buildFailed":"Build Failed: {{error}}","buildCancelled":"Build cancelled by user"},"about":{"title":"About & Specs","subtitle":"Package info, runtime specs & diagnostic payload","heroTitle":"In-App Inspector","heroDescription":"The all-in-one on-device debugging, logging, and QA companion for React Native & Expo applications. Designed for developers, QA testers, and product teams.","upToDate":"Up to date","versionAvailable":"v{{version}} Available","copyUpgradeCommand":"Copy Upgrade Command (v{{version}})","copiedUpgradeCommand":"Copied npm upgrade command!","appInformation":"APP INFORMATION","appName":"App Name","packageIdentifier":"Package Identifier","appVersion":"App Version","environment":"Environment","developmentDebug":"Development (Debug)","productionRelease":"Production (Release)","platform":"Platform","appleIos":"Apple iOS","googleAndroid":"Google Android","features":"WHAT IN-APP INSPECTOR DOES","featureNetwork":"Network Traffic Monitor","featureNetworkDesc":"Inspect HTTP and HTTPS API requests, responses, headers, and server latency with waterfall timing charts.","featureConsole":"Console Logger","featureConsoleDesc":"View real-time console logs, warnings, and errors with source file origins and formatted stack traces.","featureAnalytics":"Analytics Telemetry","featureAnalyticsDesc":"Track Firebase and custom analytics events, screen views, and user properties live on the device.","featureRedux":"Redux State & Actions","featureReduxDesc":"Inspect dispatched actions, payloads, and state tree diffs without connecting desktop companion tools.","featureCapture":"Screen & Video Capture","featureCaptureDesc":"Take screenshots and record test sessions to share with QA and engineering teams instantly.","featureCrash":"Crash Catcher & Diagnostics","featureCrashDesc":"Protects against native crashes and provides device health metrics including RAM, battery, and storage.","github":"GitHub","githubSub":"Star & source code","npmRegistry":"NPM Registry","npmRegistrySub":"Package updates","documentation":"Documentation","documentationSub":"Integration guide","reportIssue":"Report Issue","reportIssueSub":"Help & support","releaseNotes":"Release Notes","releaseNotesSub":"What's new","copyInstall":"Copy Install","copyInstallSub":"npm / yarn command","copiedInstallCommand":"Copied package install command!","footerLicense":"React Native In-App Inspector · MIT License","footerTagline":"Zero-config on-device debugging tool"},"telemetry":{"fps":"FPS","liveTraffic":"LIVE NET","ram":"RAM","active":"ACTIVE","networkSpeed":"Network Speed","fpsLive":"Live FPS","ramUsage":"RAM Usage","battery":"Battery","livePerformanceStrip":"Live Performance Strip"},"media":{"animatedGif":"ANIMATED GIF","cropDefect":"Crop Defect","rotate90":"Rotate 90°","redactPii":"Redact PII","trim5s":"Trim 5s","muteAudio":"Mute Audio","toGif":"To GIF","play":"Play","trim":"Trim","audio":"Audio","speed":"Speed","snapshot":"Snapshot","grid3x3":"Grid 3×3","brightness":"Brightness","contrast":"Contrast","saturation":"Saturation","warmth":"Warmth","exposure":"Exposure","vignette":"Vignette","draw":"Draw","text":"Text","shapes":"Shapes","crop":"Crop","filters":"Filters","stickers":"Stickers","adjust":"Adjust","resetAdjust":"Reset","saveToGallery":"Save to Gallery","copyImage":"Copy Image","shareImage":"Share Image","exportImage":"Export Image"},"filters":{"networkFiltersTitle":"Network Filters","networkFiltersSubtitle":"Filter requests by status, method & speed","httpStatusCode":"HTTP STATUS CODE","httpMethod":"HTTP METHOD","latencySpeed":"LATENCY & SPEED","protocol":"PROTOCOL","sortBy":"SORT BY","resetAll":"Reset All","applyFilters":"Apply Filters","filterWebSocketsTitle":"Filter WebSockets","connectionStatus":"CONNECTION STATUS","protocolClient":"PROTOCOL & CLIENT","analyticsFiltersTitle":"Analytics Filters","crashFiltersTitle":"Crash Filters","filterBySeverity":"Filter by severity & type"},"deviceInfo":{"deviceOverview":"DEVICE OVERVIEW","hardwareSpecs":"HARDWARE & SYSTEM SPECIFICATIONS","networkConnectivity":"NETWORK & CONNECTIVITY","displayGeometry":"DISPLAY & SCREEN GEOMETRY","runtimeApp":"RUNTIME & APPLICATION","deviceSecurity":"DEVICE IDENTIFIERS & SECURITY","deviceUuid":"DEVICE UUID","featured":"FEATURED","live":"LIVE","noMatchingSpecs":"No matching device specifications","clearSearch":"Clear Search"},"modals":{"installed":"INSTALLED","latest":"LATEST","appTag":"APP","os":"OS","rnVersion":"RN Version","engine":"Engine","architecture":"Architecture","jsHeap":"JS Heap","openInBrowser":"Open in Browser","openInBrowserPrompt":"Are you sure you want to open this URL in your external browser?"},"language":{"confirmTitle":"Change Language?","confirmMessage":"Do you want to switch the inspector language to {{newLang}}?","confirmApply":"Apply Language","current":"Current","new":"New","all":"All","searchLanguage":"Search languages or countries...","switchSuccess":"Language switched to {{lang}}"},"perf":{"title":"Performance & FPS Profiler Studio","target60Fps":"60 FPS Target","triggerGc":"GC","gcTriggered":"Garbage collection triggered","resetStats":"Reset","statsReset":"Performance counters reset","copySummary":"Copy","summaryCopied":"Performance summary copied to clipboard","exportReport":"Export","shareUnavailable":"Share unavailable","liveApm":"LIVE APM","statusExcellent":"EXCELLENT","statusGood":"GOOD","statusFair":"FAIR","statusPoor":"POOR","descExcellent":"UI and JS threads are buttery smooth. Zero performance bottlenecks detected.","descGood":"Good performance with occasional frame drops during heavy operations.","descPoor":"Performance jank detected. JS event loop is being blocked by synchronous tasks.","session":"Session","apdex":"Apdex","uiFps":"UI FPS","avg":"Avg","min":"Min","frameTime":"Frame Time","target":"Target","jsThreadLag":"JS Thread Lag","peak":"Peak","jsHeap":"JS Heap","engineProtected":"Engine Protected","vsyncBudgetConsumption":"16.6ms Vsync Budget Consumption","budgetHeadroomAvailable":"budget headroom available","budgetExceededBy":"Budget exceeded by","budgetTarget":"Budget: 16.6ms","tabOverview":"Overview & Vitals","tabPercentiles":"Percentiles & Latency","tabEngine":"Engine & Heap","tabJanks":"Janks Log","tabBenchmark":"Stress Tests","datadogVitalsTitle":"Datadog & New Relic APM Vitals","datadogVitalsDesc":"Real-time Mobile APM metrics computed via official New Relic Apdex (T=16.6ms) and Datadog RUM Mobile Vitals algorithms.","satisfiedFrames":"Satisfied (≤16.6ms)","slowFrames":"Slow Frames (17-66ms)","frozenFrames":"Frozen Frames (>66ms)","longTasks":"JS Long Tasks (>50ms)","distributionTitle":"Frame Duration Distribution (Histogram)","framesSampled":"frames sampled","ultraSmooth":"Ultra-smooth","normalUiLayout":"Normal UI Layout","minorVariance":"Minor Variance","droppedFrame":"Dropped Frame","frozenFrame":"Frozen Frame","percentilesTitle":"Latency Percentile Matrix (p50 / p90 / p95 / p99)","percentilesSubtitle":"Computed from Live Frames","percentilesDesc":"Exact mathematical distribution of frame times sampled from the active rolling window.","p50Label":"p50 (Median)","p50Sub":"50% of frames faster","p90Label":"p90","p90Sub":"90% of frames faster","p95Label":"p95","p95Sub":"95% of frames faster","p99Label":"p99 (Tail Latency)","p99Sub":"Worst 1% outlier frames","realtimeFrameTimes":"Real-Time Frame Times (50 Frames)","target60FpsLabel":"16.6ms Target (60fps)","past50Frames":"← Past 50 Frames","nowInstant":"Now (Instantaneous) →","smoothLegend":"Smooth (<18ms)","jankLegend":"Jank (18-33ms)","frozenLegend":"Frozen (>33ms)","jsResponsiveness":"JS Thread Responsiveness","instantaneous":"⚡ Instantaneous","lagUnit":"ms Lag","avgJsQueueLag":"Average JS Queue Lag","peakLagSpike":"Peak Lag Spike","engineTelemetryTitle":"Engine & Runtime Telemetry","engineTelemetryDesc":"Deep inspection of the active JavaScript Virtual Machine, memory allocations, and React Native architecture.","jsEngine":"JavaScript Engine","architectureMode":"Architecture Mode","turboModulesBridge":"TurboModules Bridge","turboModulesEnabled":"⚡ Enabled (JSI Direct)","standardBridge":"Standard Bridge","liveHeapSize":"Live Heap Size","totalHeapAllocated":"Total Heap Allocated","sessionPeakHeap":"Session Peak Heap","gcCollections":"GC Collections","gcCpuTime":"GC CPU Time","nativeManaged":"Native Managed","triggerHermesGc":"Trigger Hermes Garbage Collection","invokedHermesGc":"Invoked Hermes GC cycle","jankIncidentLog":"Jank & Frozen Frame Incident Log","janksCount":"janks","allFilter":"ALL","moderateFilter":"MODERATE","severeFilter":"SEVERE","frozenFilter":"FROZEN","zeroJanksDetected":"Zero Janks Detected","zeroJanksDesc":"All frames rendered smoothly within the target vsync budget.","inspect":"Inspect","hide":"Hide","incidentDiagnostics":"Incident Diagnostics","delayedBy":"Frame delayed by","beyondDeadline":"beyond standard vsync deadline","stressTitle":"Interactive Stress Test & Benchmark Suite","stressDesc":"Trigger synchronous workloads or render bursts to watch the live FPS and JS lag meters react dynamically.","jsStressTitle":"JS Loop Stress (120ms)","jsStressSub":"Simulates heavy compute / blocking synchronous loop","jsStressRan":"Ran 120ms synchronous JS blocking loop","renderStressTitle":"Re-render Burst (25 frames)","renderStressSub":"Simulates rapid state & layout reconciliation passes","renderStressRan":"Fired 25 rapid re-render cycles"}}