react-native-inapp-inspector 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.ar.md +163 -0
  2. package/README.de.md +163 -0
  3. package/README.es.md +164 -0
  4. package/README.fr.md +163 -0
  5. package/README.hi.md +163 -0
  6. package/README.ja.md +180 -0
  7. package/README.ko.md +163 -0
  8. package/README.md +340 -243
  9. package/README.pt-BR.md +163 -0
  10. package/README.ru.md +163 -0
  11. package/README.zh-CN.md +387 -0
  12. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +82 -21
  13. package/assets/banner_dark.svg +186 -0
  14. package/assets/banner_light.svg +186 -0
  15. package/assets/icon_circle.svg +148 -0
  16. package/assets/icon_square.svg +369 -0
  17. package/assets/inapp_inspector_icon.gif +0 -0
  18. package/assets/inapp_inspector_icon_original.gif +0 -0
  19. package/assets/social_preview.png +0 -0
  20. package/assets/walkthrough.gif +0 -0
  21. package/dist/commonjs/components/AnimatedBrandOwl.d.ts +7 -0
  22. package/dist/commonjs/components/AnimatedBrandOwl.js +175 -0
  23. package/dist/commonjs/components/AppHeaderLogo.d.ts +1 -0
  24. package/dist/commonjs/components/AppHeaderLogo.js +7 -5
  25. package/dist/commonjs/components/BrandSquareIcon.d.ts +5 -0
  26. package/dist/commonjs/components/BrandSquareIcon.js +139 -0
  27. package/dist/commonjs/components/ConsoleLogCard.d.ts +2 -1
  28. package/dist/commonjs/components/ConsoleLogCard.js +23 -39
  29. package/dist/commonjs/components/Inspector/AboutModal.js +44 -54
  30. package/dist/commonjs/components/Inspector/AnalyticsTab.js +16 -16
  31. package/dist/commonjs/components/Inspector/ConfirmationModal.d.ts +13 -0
  32. package/dist/commonjs/components/Inspector/ConfirmationModal.js +32 -0
  33. package/dist/commonjs/components/Inspector/ConsoleTab.js +15 -15
  34. package/dist/commonjs/components/Inspector/CrashTab.js +25 -23
  35. package/dist/commonjs/components/Inspector/DebuggingTab.js +17 -17
  36. package/dist/commonjs/components/Inspector/FabLauncher.js +22 -30
  37. package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +2 -2
  38. package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +15 -0
  39. package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +90 -0
  40. package/dist/commonjs/components/Inspector/MainScreen.js +46 -33
  41. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +21 -19
  42. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +85 -101
  43. package/dist/commonjs/components/Inspector/NetworkTab.js +50 -50
  44. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +1 -1
  45. package/dist/commonjs/components/Inspector/PushCard.d.ts +3 -2
  46. package/dist/commonjs/components/Inspector/PushCard.js +5 -4
  47. package/dist/commonjs/components/Inspector/PushDetail.js +32 -23
  48. package/dist/commonjs/components/Inspector/PushTab.js +13 -13
  49. package/dist/commonjs/components/Inspector/ReduxDetail.js +32 -32
  50. package/dist/commonjs/components/Inspector/ReduxTab.js +14 -14
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +258 -139
  52. package/dist/commonjs/components/Inspector/SocketCard.d.ts +5 -0
  53. package/dist/commonjs/components/Inspector/SocketCard.js +116 -0
  54. package/dist/commonjs/components/Inspector/SocketDetail.d.ts +4 -0
  55. package/dist/commonjs/components/Inspector/SocketDetail.js +317 -0
  56. package/dist/commonjs/components/Inspector/SocketFilterModal.d.ts +13 -0
  57. package/dist/commonjs/components/Inspector/SocketFilterModal.js +69 -0
  58. package/dist/commonjs/components/Inspector/SocketTab.d.ts +3 -0
  59. package/dist/commonjs/components/Inspector/SocketTab.js +112 -0
  60. package/dist/commonjs/components/Inspector/StorageTab.js +34 -32
  61. package/dist/commonjs/components/Inspector/SupportModal.d.ts +7 -0
  62. package/dist/commonjs/components/Inspector/SupportModal.js +125 -0
  63. package/dist/commonjs/components/Inspector/SupportPage.d.ts +5 -0
  64. package/dist/commonjs/components/Inspector/SupportPage.js +227 -0
  65. package/dist/commonjs/components/Inspector/TabBar.js +24 -23
  66. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +24 -24
  67. package/dist/commonjs/components/JsonViewer.js +7 -7
  68. package/dist/commonjs/components/LogCard.d.ts +3 -2
  69. package/dist/commonjs/components/LogCard.js +17 -14
  70. package/dist/commonjs/components/LogSyntaxHighlighter.js +5 -5
  71. package/dist/commonjs/components/ModuleErrorBoundary.js +2 -2
  72. package/dist/commonjs/components/NetworkIcons.d.ts +15 -0
  73. package/dist/commonjs/components/NetworkIcons.js +38 -3
  74. package/dist/commonjs/components/SegmentedTabs.js +1 -1
  75. package/dist/commonjs/constants/version.d.ts +1 -1
  76. package/dist/commonjs/constants/version.js +1 -1
  77. package/dist/commonjs/customHooks/socketLogger.d.ts +26 -0
  78. package/dist/commonjs/customHooks/socketLogger.js +2 -0
  79. package/dist/commonjs/helpers/index.js +3 -3
  80. package/dist/commonjs/helpers/memoryManager.d.ts +1 -0
  81. package/dist/commonjs/helpers/memoryManager.js +1 -1
  82. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
  83. package/dist/commonjs/helpers/searchQueryParser.js +5 -1
  84. package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
  85. package/dist/commonjs/helpers/settingsStore.js +1 -1
  86. package/dist/commonjs/helpers/shareFormatter.d.ts +3 -1
  87. package/dist/commonjs/helpers/shareFormatter.js +8 -7
  88. package/dist/commonjs/i18n/index.d.ts +99 -1
  89. package/dist/commonjs/i18n/index.js +1 -1
  90. package/dist/commonjs/i18n/locales/ar.json +1 -1
  91. package/dist/commonjs/i18n/locales/bn.json +1 -0
  92. package/dist/commonjs/i18n/locales/de.json +1 -1
  93. package/dist/commonjs/i18n/locales/en.json +1 -1
  94. package/dist/commonjs/i18n/locales/es.json +1 -1
  95. package/dist/commonjs/i18n/locales/fr.json +1 -1
  96. package/dist/commonjs/i18n/locales/gu.json +1 -0
  97. package/dist/commonjs/i18n/locales/hi.json +1 -1
  98. package/dist/commonjs/i18n/locales/id.json +1 -0
  99. package/dist/commonjs/i18n/locales/it.json +1 -0
  100. package/dist/commonjs/i18n/locales/ja.json +1 -1
  101. package/dist/commonjs/i18n/locales/kn.json +1 -0
  102. package/dist/commonjs/i18n/locales/ko.json +1 -1
  103. package/dist/commonjs/i18n/locales/ml.json +1 -0
  104. package/dist/commonjs/i18n/locales/mr.json +1 -0
  105. package/dist/commonjs/i18n/locales/nl.json +1 -0
  106. package/dist/commonjs/i18n/locales/pa.json +1 -0
  107. package/dist/commonjs/i18n/locales/pl.json +1 -0
  108. package/dist/commonjs/i18n/locales/pt.json +1 -1
  109. package/dist/commonjs/i18n/locales/ru.json +1 -1
  110. package/dist/commonjs/i18n/locales/ta.json +1 -0
  111. package/dist/commonjs/i18n/locales/te.json +1 -0
  112. package/dist/commonjs/i18n/locales/tr.json +1 -0
  113. package/dist/commonjs/i18n/locales/vi.json +1 -0
  114. package/dist/commonjs/i18n/locales/zh.json +1 -1
  115. package/dist/commonjs/index.d.ts +13 -13
  116. package/dist/commonjs/index.js +5 -4
  117. package/dist/commonjs/native/NativeInspector.d.ts +1 -0
  118. package/dist/commonjs/socket.d.ts +4 -0
  119. package/dist/commonjs/socket.js +1 -0
  120. package/dist/commonjs/styles/index.d.ts +23 -0
  121. package/dist/commonjs/styles/index.js +1 -1
  122. package/dist/commonjs/types/enums.d.ts +40 -0
  123. package/dist/commonjs/types/enums.js +1 -1
  124. package/dist/commonjs/types/interfaces.d.ts +122 -1
  125. package/dist/esm/components/AnimatedBrandOwl.d.ts +7 -0
  126. package/dist/esm/components/AnimatedBrandOwl.js +175 -0
  127. package/dist/esm/components/AppHeaderLogo.d.ts +1 -0
  128. package/dist/esm/components/AppHeaderLogo.js +7 -5
  129. package/dist/esm/components/BrandSquareIcon.d.ts +5 -0
  130. package/dist/esm/components/BrandSquareIcon.js +139 -0
  131. package/dist/esm/components/ConsoleLogCard.d.ts +2 -1
  132. package/dist/esm/components/ConsoleLogCard.js +61 -77
  133. package/dist/esm/components/Inspector/AboutModal.js +85 -95
  134. package/dist/esm/components/Inspector/AnalyticsTab.js +31 -31
  135. package/dist/esm/components/Inspector/ConfirmationModal.d.ts +13 -0
  136. package/dist/esm/components/Inspector/ConfirmationModal.js +32 -0
  137. package/dist/esm/components/Inspector/ConsoleTab.js +49 -49
  138. package/dist/esm/components/Inspector/CrashTab.js +40 -38
  139. package/dist/esm/components/Inspector/DebuggingTab.js +29 -29
  140. package/dist/esm/components/Inspector/FabLauncher.js +50 -58
  141. package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +7 -7
  142. package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +15 -0
  143. package/dist/esm/components/Inspector/LanguageSelectorModal.js +90 -0
  144. package/dist/esm/components/Inspector/MainScreen.js +123 -110
  145. package/dist/esm/components/Inspector/MediaGalleryTab.js +64 -62
  146. package/dist/esm/components/Inspector/MediaPreviewModal.js +107 -123
  147. package/dist/esm/components/Inspector/NetworkTab.js +90 -90
  148. package/dist/esm/components/Inspector/NpmUpdateToast.js +1 -1
  149. package/dist/esm/components/Inspector/PushCard.d.ts +3 -2
  150. package/dist/esm/components/Inspector/PushCard.js +23 -22
  151. package/dist/esm/components/Inspector/PushDetail.js +34 -25
  152. package/dist/esm/components/Inspector/PushTab.js +25 -25
  153. package/dist/esm/components/Inspector/ReduxDetail.js +42 -42
  154. package/dist/esm/components/Inspector/ReduxTab.js +35 -35
  155. package/dist/esm/components/Inspector/SettingsPanel.js +495 -376
  156. package/dist/esm/components/Inspector/SocketCard.d.ts +5 -0
  157. package/dist/esm/components/Inspector/SocketCard.js +116 -0
  158. package/dist/esm/components/Inspector/SocketDetail.d.ts +4 -0
  159. package/dist/esm/components/Inspector/SocketDetail.js +317 -0
  160. package/dist/esm/components/Inspector/SocketFilterModal.d.ts +13 -0
  161. package/dist/esm/components/Inspector/SocketFilterModal.js +69 -0
  162. package/dist/esm/components/Inspector/SocketTab.d.ts +3 -0
  163. package/dist/esm/components/Inspector/SocketTab.js +112 -0
  164. package/dist/esm/components/Inspector/StorageTab.js +136 -134
  165. package/dist/esm/components/Inspector/SupportModal.d.ts +7 -0
  166. package/dist/esm/components/Inspector/SupportModal.js +125 -0
  167. package/dist/esm/components/Inspector/SupportPage.d.ts +5 -0
  168. package/dist/esm/components/Inspector/SupportPage.js +227 -0
  169. package/dist/esm/components/Inspector/TabBar.js +36 -35
  170. package/dist/esm/components/Inspector/UpdateAvailableModal.js +22 -22
  171. package/dist/esm/components/JsonViewer.js +55 -55
  172. package/dist/esm/components/LogCard.d.ts +3 -2
  173. package/dist/esm/components/LogCard.js +61 -58
  174. package/dist/esm/components/LogSyntaxHighlighter.js +5 -5
  175. package/dist/esm/components/ModuleErrorBoundary.js +23 -23
  176. package/dist/esm/components/NetworkIcons.d.ts +15 -0
  177. package/dist/esm/components/NetworkIcons.js +38 -3
  178. package/dist/esm/components/SegmentedTabs.js +7 -7
  179. package/dist/esm/constants/version.d.ts +1 -1
  180. package/dist/esm/constants/version.js +1 -1
  181. package/dist/esm/customHooks/socketLogger.d.ts +26 -0
  182. package/dist/esm/customHooks/socketLogger.js +2 -0
  183. package/dist/esm/helpers/index.js +3 -3
  184. package/dist/esm/helpers/memoryManager.d.ts +1 -0
  185. package/dist/esm/helpers/memoryManager.js +1 -1
  186. package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
  187. package/dist/esm/helpers/searchQueryParser.js +5 -1
  188. package/dist/esm/helpers/settingsStore.d.ts +1 -0
  189. package/dist/esm/helpers/settingsStore.js +1 -1
  190. package/dist/esm/helpers/shareFormatter.d.ts +3 -1
  191. package/dist/esm/helpers/shareFormatter.js +8 -7
  192. package/dist/esm/i18n/index.d.ts +99 -1
  193. package/dist/esm/i18n/index.js +1 -1
  194. package/dist/esm/i18n/locales/ar.json +1 -1
  195. package/dist/esm/i18n/locales/bn.json +1 -0
  196. package/dist/esm/i18n/locales/de.json +1 -1
  197. package/dist/esm/i18n/locales/en.json +1 -1
  198. package/dist/esm/i18n/locales/es.json +1 -1
  199. package/dist/esm/i18n/locales/fr.json +1 -1
  200. package/dist/esm/i18n/locales/gu.json +1 -0
  201. package/dist/esm/i18n/locales/hi.json +1 -1
  202. package/dist/esm/i18n/locales/id.json +1 -0
  203. package/dist/esm/i18n/locales/it.json +1 -0
  204. package/dist/esm/i18n/locales/ja.json +1 -1
  205. package/dist/esm/i18n/locales/kn.json +1 -0
  206. package/dist/esm/i18n/locales/ko.json +1 -1
  207. package/dist/esm/i18n/locales/ml.json +1 -0
  208. package/dist/esm/i18n/locales/mr.json +1 -0
  209. package/dist/esm/i18n/locales/nl.json +1 -0
  210. package/dist/esm/i18n/locales/pa.json +1 -0
  211. package/dist/esm/i18n/locales/pl.json +1 -0
  212. package/dist/esm/i18n/locales/pt.json +1 -1
  213. package/dist/esm/i18n/locales/ru.json +1 -1
  214. package/dist/esm/i18n/locales/ta.json +1 -0
  215. package/dist/esm/i18n/locales/te.json +1 -0
  216. package/dist/esm/i18n/locales/tr.json +1 -0
  217. package/dist/esm/i18n/locales/vi.json +1 -0
  218. package/dist/esm/i18n/locales/zh.json +1 -1
  219. package/dist/esm/index.d.ts +13 -13
  220. package/dist/esm/index.js +8 -7
  221. package/dist/esm/native/NativeInspector.d.ts +1 -0
  222. package/dist/esm/socket.d.ts +4 -0
  223. package/dist/esm/socket.js +1 -0
  224. package/dist/esm/styles/index.d.ts +23 -0
  225. package/dist/esm/styles/index.js +1 -1
  226. package/dist/esm/types/enums.d.ts +40 -0
  227. package/dist/esm/types/enums.js +1 -1
  228. package/dist/esm/types/interfaces.d.ts +122 -1
  229. package/ios/NetworkInspectorModule.mm +102 -12
  230. package/package.json +204 -2
  231. package/src/native/NativeInspector.ts +8 -0
@@ -0,0 +1 @@
1
+ {"common":{"cancel":"Batalkan","clear":"Jelas","clearAll":"Hapus Semua","close":"Tutup","loading":"Memuat...","success":"Sukses","pending":"Tertunda","failed":"Gagal","copy":"Salin","copied":"Disalin!","copyJson":"Salin JSON","collapseAll":"Ciutkan Semua","expandAll":"Perluas Semua","viewOnNpm":"Lihat di NPM","later":"Nanti","source":"SUMBER","minimize":"Minimalkan","tapToExpand":"Ketuk untuk memperluas","open":"Buka","share":"Bagikan","openInBrowser":"Buka di Peramban","openInBrowserPrompt":"Apakah Anda yakin ingin membuka URL ini di browser eksternal Anda?","delete":"Hapus","reset":"Setel ulang","save":"Simpan","edit":"Sunting","add":"Tambahkan","search":"Cari","filter":"Menyaring","sort":"Sortir","refresh":"Segarkan","retry":"Coba lagi","confirm":"Konfirmasikan","yes":"Ya","no":"Tidak","ok":"Oke","done":"Selesai","back":"Kembali","next":"Selanjutnya","show":"Tunjukkan","hide":"Sembunyikan","select":"Pilih","selectAll":"Pilih Semua","deselectAll":"Batalkan pilihan Semua","noResults":"Tidak ada hasil yang ditemukan","items":"item","of":"dari","showing":"Menampilkan","active":"Aktif","inactive":"Tidak aktif","enabled":"Diaktifkan","disabled":"Dengan disabilitas","live":"Hidup","connected":"Terhubung","disconnected":"Terputus","version":"Versi","update":"PEMBARUAN","unknown":"Tidak diketahui"},"header":{"updateAvailableTitle":"Pembaruan Tersedia","updateAvailableMessage":"react-native-inapp-inspector v{{version}} tersedia di NPM (diinstal: v{{installed}}).","clearEverythingTitle":"Hapus Segalanya","clearEverythingMessage":"Ini menghapus semua tab — API, Log, Analytics, garis waktu Redux, dan riwayat Kerusakan. Melanjutkan?","photo":"Foto","record":"Rekam","rec":"REKAM","clear":"Jelas","about":"Tentang","screenshotCaptured":"📸 Tangkapan layar diambil & disimpan","screenshotFailed":"Gagal mengambil tangkapan layar","screenshotError":"Terjadi kesalahan saat mengambil tangkapan layar","recordingStarted":"🔴 Perekaman video dimulai","recordingSaved":"🎥 Rekaman disimpan ({{duration}}s)","recordingError":"Kesalahan perekaman","recordingStartFailed":"Gagal memulai perekaman","paramCount":"{{count}} parameter","paramCount_plural":"{{count}} parameter","sourceFirebase":"FB","sourceManual":"PRIA","firebase":"firebase","manual":"panduan","aboutSpecs":"Tentang & Spesifikasi","live":"Hidup","keys":"{{count}} kunci","frames":"{{count}} bingkai","sliceBadge":"irisan"},"tabs":{"apis":"API","logs":"Log","analytics":"Analisis","redux":"reduks","crash":"Kecelakaan","push":"Dorong","socket":"Soket Web","device":"Perangkat","storage":"Penyimpanan","media":"Siaran layar","debugging":"Men-debug"},"settings":{"mainTitle":"Pengaturan & Modul","mainSubtitle":"Kelola modul dan preferensi","requiredBadge":"DIPERLUKAN","defaultBadge":"DEFAULT","notConnectedBadge":"TIDAK TERHUBUNG","notDetectedBadge":"TIDAK TERDETEKSI","readOnlyBadge":"HANYA BACA","coreBadge":"INTI","activeBadge":"AKTIF","dormantBadge":"TIDAK aktif","protectedBadge":"DILINDUNGI","modulesAndTools":"Modul & Alat","uiPreferences":"UI & Tampilan","ramLimits":"RAM & Batasan","screenVideoCapture":"Pengambilan Layar & Video","zeroOverheadTitle":"Nol Latar Belakang Overhead","zeroOverheadDesc":"Periksa modul yang ingin Anda aktifkan. Modul yang dinonaktifkan menggunakan 0% CPU & memori hingga disimpan.","unsavedPending":"● Pilihan yang belum disimpan tertunda","allSynchronized":"Semua modul disinkronkan","modulesActive":"{{active}} dari {{total}} Modul Aktif","saveChanges":"Simpan Perubahan","settingsSaved":"Pengaturan Disimpan","settingsSavedDesc":"Konfigurasi modul aktif telah berhasil diperbarui.","configure":"Konfigurasikan","appearanceTheme":"PENAMPILAN & TEMA","windowLayout":"JENDELA & TATA LETAK","startupDefault":"LAYAR MULAI & DEFAULT","logFiltersDeduplication":"FILTER LOG & DDUPLIKASI","resetSettings":"Atur Ulang Semua Pengaturan","resetSettingsDesc":"Hapus preferensi khusus kembali ke default","reset":"Setel ulang","reduxNotConnectedTip":"Toko Redux tidak terhubung. Panggil connectReduxStore(store) atau gunakan inspekturReduxMiddleware untuk mengaktifkan.","analyticsNotConnectedTip":"Analytics tidak diinisialisasi. Panggil setupAnalyticsLogger(analytics()) untuk mengaktifkan.","tabVisibility":"Visibilitas Tab","tabVisibilityDescription":"Pilih modul mana yang muncul di inspektur","settingsTitle":"Pengaturan","back":"Kembali","apis":{"title":"Pengaturan API","total":"Jumlah: {{count}}","maxRequestLogs":"Log Permintaan Maks","maxRequestLogsDescription":"Ukuran buffer permintaan jaringan disimpan dalam memori","clearNetworkLogs":"Hapus Log Jaringan","clearNetworkLogsDescription":"{{count}} permintaan disimpan","networkLogsCleared":"Log jaringan dihapus.","showStatusFilter":"Penyaring Status","showStatusFilterDescription":"Tampilkan chip status di daftar API","showMethodFilter":"Filter Metode","showMethodFilterDescription":"Tampilkan chip metode dalam daftar API","defaultTabDescription":"Tab tempat inspektur terbuka"},"logs":{"title":"Pengaturan Log","total":"Jumlah: {{count}}","maxConsoleLogs":"Log Konsol Maks","maxConsoleLogsDescription":"Berapa banyak pesan konsol yang harus dipertahankan","logLevels":"Keparahan Log","logLevelsDescription":"Pilih tingkat keparahan mana yang akan diambil di Log","showInfo":"Tampilkan log Info","showInfoDesc":"Log informasi & cetakan debug","showWarn":"Tampilkan log Peringatan","showWarnDesc":"Pemberitahuan peringatan & penghentian","showError":"Tampilkan log Kesalahan","showErrorDesc":"Kesalahan & pengecualian waktu proses","clearConsoleLogs":"Hapus Log Konsol","clearConsoleLogsDescription":"{{count}} log disimpan","consoleLogsCleared":"Log konsol dihapus."},"analytics":{"title":"Pengaturan Analisis","total":"Acara: {{count}}","maxAnalyticsEvents":"Peristiwa yang Diambil","maxAnalyticsEventsDescription":"{{count}} peristiwa analisis disimpan dalam buffer","clearAnalyticsEvents":"Hapus Riwayat Analisis","clearAnalyticsEventsDescription":"Hapus semua peristiwa telemetri yang direkam","analyticsEventsCleared":"Peristiwa Analytics dihapus."},"redux":{"title":"Pengaturan Redux","reducers":"Pereduksi: {{count}}","autoRefresh":"Toko Penyegaran Otomatis","autoRefreshDescription":"Tangkap pohon status penyimpanan Redux pada setiap pengiriman","defaultJsonExpandDepth":"JSON Default Perluas Kedalaman","defaultJsonExpandDepthDescription":"Kedalaman awal pohon status Redux untuk diperluas secara otomatis","clearReduxState":"Hapus Status Redux","clearReduxStateDescription":"Setel ulang snapshot status saat ini di inspektur","clearReduxStateEmpty":"Tidak ada snapshot toko yang direkam","reduxStateCleared":"Snapshot status Redux dihapus.","clearReduxTimeline":"Hapus Garis Waktu Redux","clearReduxTimelineDescription":"Hapus semua riwayat tindakan yang diambil","reduxTimelineCleared":"Riwayat tindakan Redux dihapus."},"bundle":{"title":"Pengaturan Bundel","sourceBundler":"Bundel Sumber Metro","sourceBundlerDesc":"Mengurai pohon modul langsung dan menghitung perincian ukuran biner","clearCache":"Hapus Cache Bundel","clearCacheDesc":"Pengambilan ulang paksa dan penguraian paket JS","cacheCleared":"Cache analisis bundel dibersihkan."},"performance":{"title":"Pengaturan Kinerja","frameMeasurement":"Pengukuran Bingkai Langsung","frameMeasurementDesc":"Mengambil sampel kecepatan bingkai UI/JS & mendeteksi perenderan ulang yang sia-sia","clearEvents":"Hapus Acara Kinerja","clearEventsDesc":"Reset rekaman jank dan riwayat penurunan FPS","eventsCleared":"Acara pertunjukan dihapus."},"crash":{"title":"Pengaturan Kecelakaan","maxCrashLogs":"Log Kerusakan Maks","maxCrashLogsDesc":"Berapa banyak catatan kecelakaan yang harus disimpan dalam sejarah","globalGuard":"Penjaga Kecelakaan Global","globalGuardDesc":"Mencegat asli, JS, dan membuat kesalahan secara langsung","clearHistory":"Hapus Riwayat Kerusakan","clearHistoryDesc":"{{count}} log kerusakan disimpan","historyCleared":"Log kerusakan dihapus."},"media":{"title":"Pengambilan Layar & Video","badge":"H.264 / GIF asli","desc":"Konfigurasikan format tangkapan layar, kualitas, FPS video, narasi audio, perekaman & penyimpanan GIF","screenshotCardTitle":"Format & Kualitas Tangkapan Layar","screenshotCardDesc":"Konfigurasi snapshot jendela penuh resolusi tinggi","imageFormat":"Format Gambar","imageFormatDesc":"PNG (lossless), JPEG (kompak), atau WEBP","autoHide":"Hamparan Inspektur Sembunyikan Otomatis","autoHideDesc":"Tidak termasuk UI inspektur dari tangkapan layar","enabled":"DIAKTIFKAN","videoCardTitle":"Rekaman Video & GIF","videoCardDesc":"Perekaman MP4 H.264 & ekspor GIF animasi","audioMode":"Mode Narasi Audio","audioModeDesc":"Dibisukan, Audio Aplikasi, atau Narasi Suara","frameRate":"Kecepatan Bingkai","frameRateDesc":"FPS yang lebih tinggi menghasilkan rekaman yang lebih halus","gifAutoOpt":"Optimasi Otomatis GIF","gifAutoOptDesc":"Mengonversi rekaman video untuk GitHub PR & Slack","purgeAll":"Bersihkan Semua Media yang Diambil","purgeAllDesc":"Menghapus semua tangkapan layar, video, dan GIF yang disimpan","purgeCacheBtn":"Bersihkan Cache","purgeConfirmTitle":"Bersihkan Penyimpanan Media","purgeConfirmMessage":"Ini menghapus semua file media yang diambil dari cache lokal. Melanjutkan?","purgedSuccess":"Penyimpanan media dibersihkan"},"general":{"darkMode":"Tema Mode Gelap","darkModeDescription":"Alihkan estetika gelap yang ramping atau kontras terang","modalHeight":"Tinggi Jendela Inspektur","modalHeightDescription":"Persentase cakupan layar modal","modalAnimation":"Animasi Transisi","modalAnimationDescription":"Gaya presentasi masuk dan keluar","duplicateLogs":"Tampilkan Log Duplikat","duplicateLogsDescription":"Mati: Entri berulang yang identik diciutkan menjadi lencana ×N","defaultOpeningTab":"Tab Pembuka Default","defaultOpeningTabDesc":"Tab awal aktif ketika tombol peluncur diketuk","activeConsoleLogLevels":"Level Log Konsol Aktif","activeConsoleLogLevelsDesc":"Pilih tingkat keparahan mana yang akan diambil di Log","resetToDefaults":"Atur Ulang ke Default","resetToDefaultsDescription":"Pulihkan semua pengaturan inspektur","resetConfirmationTitle":"Pengaturan Ulang","resetConfirmationMessage":"Semua pengaturan telah diatur ulang ke nilai default.","storageStatus":"Penyimpanan Persisten","storageStatusEnabled":"Pengaturan Penyimpanan: Persisten ({{type}})","storageStatusEnabledDesc":"Preferensi dan visibilitas modul Anda tetap ada saat aplikasi dinyalakan ulang.","storageStatusDisabled":"Penyimpanan Pengaturan: Dalam Memori (Sementara)","storageStatusDisabledDesc":"Preferensi disetel ulang saat aplikasi dimatikan. Berikan penyimpanan khusus ke <NetworkInspector storage={...} /> agar tetap ada di Android.","language":"Bahasa","languageDescription":"Pilih bahasa tampilan antarmuka","selectLanguage":"Pilih Bahasa"},"configureSubtitle":"Konfigurasikan parameter modul","resetAlertTitle":"Atur Ulang Semua Pengaturan","resetAlertMessage":"Ini mengembalikan semua visibilitas modul dan preferensi UI ke default. Melanjutkan?","settingsReset":"Pengaturan Ulang","settingsResetMessage":"Semua pengaturan telah diatur ulang ke nilai default.","pushHistoryCleared":"Riwayat pemberitahuan push dihapus","socketHistoryCleared":"Riwayat WebSocket dihapus","memory":{"manualTitle":"Pembersihan Memori Manual","manualDescription":"Pangkas entri lama di semua penyimpanan log dan kosongkan RAM","pruned":"Memangkas {{count}} item dari memori"},"simulator":{"salesforce":"Simulasi dorongan Salesforce Marketing Cloud","fcm":"Simulasi dorongan Firebase FCM","apns":"Simulasi dorongan APN Apple","deepLink":"Simulasi dorongan Deep Link","chat":"Simulasi sesi WebSocket Obrolan Real-time","crypto":"Aliran Ticker Kripto Binance yang disimulasikan","socketio":"Sesi simulasi Socket.IO v4","echo":"Tes simulasi WebSocket Echo","screenshotSaved":"Tangkapan layar diambil dan disimpan!"}},"network":{"title":"API","searchPlaceholder":"Cari berdasarkan URL, status atau metode...","emptyTitle":"Belum ada panggilan API yang terekam","emptySubtitle":"Permintaan jaringan akan muncul di sini saat Anda menggunakan aplikasi.","reload":"Muat ulang","clearTitle":"Hapus Log Jaringan","clearMessage":"Apakah Anda yakin ingin menghapus semua log jaringan yang diambil?","detailTabs":{"metadata":"Metadata","headers":"Header","request":"Permintaan","response":"Respon"},"requestTitle":"Permintaan","responseTitle":"Respon","searchRequest":"Permintaan pencarian...","searchResponse":"Respon penelusuran...","searchHeaders":"Cari header...","requestHeaders":"Permintaan Header","responseHeaders":"Header Respons","diffTitle":"Beda","noResponse":"Tidak ada badan tanggapan","noRequest":"Tidak ada badan permintaan","statusFailed":"Gagal","urlHeader":"URL","methodHeader":"Metode","statusHeader":"Status","durationHeader":"Durasi","sizeHeader":"Ukuran","triggeredAt":"Dipicu pada","contentType":"Tipe Konten","sourcePage":"Halaman Sumber","sourcePageUnknown":"Sumber tidak diketahui","loadMore":"Muat lebih banyak","groupByPage":"Kelompokkan berdasarkan halaman","groupByDomain":"Kelompokkan berdasarkan domain","groupByNone":"Daftar","domain":"Domain","page":"Halaman","requests":"{{count}} permintaan","requests_plural":"{{count}} permintaan","noFilteredResults":"Tidak ada permintaan yang cocok dengan filter saat ini","scrollToTop":"Gulir ke atas","copyCurl":"Salin cURL","copyFetch":"Salin cuplikan pengambilan","emptyResponse":"Tanggapan kosong","bodyHidden":"{ Tubuh disembunyikan }","queryParams":"Param Kueri","fullUrl":"URL lengkap","open":"Buka","showMore":"Tampilkan Lebih Banyak","showLess":"Tampilkan Lebih Sedikit","failedNetworkError":"Gagal (Kesalahan Jaringan)","noMatchingHeaders":"Tidak ada header yang cocok","diffHidden":"{ Perbedaan disembunyikan }","noDiff":"Tidak ada perbedaan dengan API sebelumnya.","healthTitle":"Kesehatan Jaringan & Telemetri","successRate":"Tingkat Keberhasilan","avgLatency":"Rata-rata Latensi","p95Latency":"P95 Latensi","bandwidth":"Bandwidth","fastest":"Tercepat","slowest":"Paling lambat","timingWaterfall":"Waktu Terjun & Latensi","throughput":"Hasil","performanceTier":"Tingkat Kinerja","perf":{"fast":"Cepat (<200ms)","moderate":"Sedang (200-800ms)","slow":"Lambat (> 800ms)"},"jsonViewer":{"pretty":"Cantik","raw":"Mentah","table":"Tabel","emptyObject":"Objek Kosong","emptyTable":"Objek Kosong","key":"Kunci","value":"Nilai"},"showingRequests":"Menampilkan permintaan {{count}}","showingFilteredRequests":"Menampilkan {{filtered}} dari {{total}} permintaan","status200":"200 oke","status201":"201 Dibuat","status204":"204 Tidak Ada Konten","status304":"304 Tidak Dimodifikasi","status400":"400 Persyaratan Buruk","status401":"401 Tidak autentik","status403":"403 Dilarang","status404":"404 Tidak Ditemukan","status500":"500 Kesalahan","shareError":"Bagikan Kesalahan","shareErrorMessage":"Gagal membuka lembar berbagi"},"console":{"title":"Log","searchPlaceholder":"Log penelusuran...","emptyTitle":"Belum ada log konsol","emptySubtitle":"Output konsol dari aplikasi Anda akan muncul di sini.","analyticsBadge":"Analisis","userLogBadge":"log pengguna","jsonTitle":"Catat JSON","messageTitle":"Pesan Log","search":"Catatan pencarian...","searchJson":"Log penelusuran JSON...","logMessage":"Pesan log","consoleLog":"Log Konsol","characters":"{{count}} karakter","duplicates":"×{{count}} duplikat","showMore":"Tampilkan lebih banyak","showLess":"Tampilkan lebih sedikit","clearTitle":"Hapus Log","clearMessage":"Apakah Anda yakin ingin menghapus semua log konsol?","seeMore":"Tampilkan lebih banyak","noResults":"Tidak ada log yang cocok dengan filter saat ini","filterAll":"Semua","filterInfo":"Informasi","filterWarn":"Peringatkan","filterError":"Kesalahan","filterUserLog":"Catatan Pengguna","filterAnalytics":"Analisis","tabOutput":"Keluaran","tabArgs":"Argumen ({{count}})","tabStack":"Pelacakan Tumpukan","tabMetadata":"Metadata","callStack":"Tumpukan Panggilan ({{count}} bingkai)","errorStack":"Tumpukan Pengecualian Kesalahan ({{count}} bingkai)","callOriginStack":"Hubungi Tumpukan Asal","errorThrownStack":"Tumpukan yang Dilemparkan Kesalahan","appCodeScope":"🎯 Kode Aplikasi ({{count}})","allFramesScope":"📜 Semua Bingkai ({{count}})","cardsView":"Kartu-kartu","rawTraceView":"Mentah","noStackAvailable":"Tidak ditemukan bingkai tumpukan panggilan yang cocok dengan filter aktif.","originBadge":"#1 ASAL","appCodeBadge":"Kode Aplikasi","dependencyBadge":"Ketergantungan","nativeBadge":"Asli","hermesVmBadge":"Hermes VM","fullStackTrace":"Pelacakan Tumpukan Penuh","lineCol":"Baris {{line}}, Kol {{col}}","lineColShort":"L{{line}}:C{{col}}","searchInLogDetails":"Cari di detail log...","showingLogs":"Menampilkan log {{count}}","showingFilteredLogs":"Menampilkan {{filtered}} dari {{total}} log","filteredBy":"Difilter berdasarkan {{filters}} ({{filtered}} dari {{total}} log)","log":"Catatan","info":"Informasi","warning":"Peringatkan","error":"Kesalahan","debug":"Men-debug"},"analytics":{"title":"Analisis","searchPlaceholder":"Telusuri acara...","emptyTitle":"Belum ada peristiwa analitik","emptySubtitle":"Peristiwa Analytics akan muncul di sini saat aplikasi Anda melacaknya.","clearTitle":"Hapus Analisis","clearMessage":"Apakah Anda yakin ingin menghapus semua peristiwa analisis?","eventParams":"{{count}} parameter","eventCount":"{{count}} acara","userProperties":"Properti Pengguna","userId":"ID Pengguna","defaultParameters":"Parameter Bawaan","collectionEnabled":"Koleksi Diaktifkan","screenView":"tampilan_layar","eventDetails":"Detail Acara","parameters":"Parameter","noParams":"Tidak ada parameter","recentEvents":"Acara Terkini","analyticsError":"Kesalahan Analisis","duplicate":"Duplikat","params":"param","props":"alat peraga","item":"barang","items":"item","pageViewCategory":"Tampilan Halaman","ecommerceCategory":"E-niaga","systemCategory":"Sistem","customCategory":"Adat","realtimeStream":"Aktivitas Waktu Nyata","liveTelemetry":"Telemetri Langsung","eventsInWindow":"acara di jendela","eventVelocity":"{{rate}} ev/mnt","peakVolume":"Puncak: {{count}}","time30mAgo":"-30m","time20mAgo":"-20m","time10mAgo":"-10m","timeNow":"SEKARANG","selectedBucket":"Keranjang: {{time}} ({{count}} acara)","totalRevenue":"Pendapatan","activeDistribution":"Pemisahan Kategori","allCategory":"Semua","screensCategory":"Layar","overviewTab":"Ikhtisar","jsonTreeTab":"Pohon JSON","rawPayloadTab":"Muatan Mentah","sessionContext":"Konteks Sesi","userPropertiesSnapshot":"Cuplikan Properti Pengguna","parameterKeys":"Parameter ({{count}})","searchParameters":"Parameter pencarian...","noParamsFound":"Tidak ada parameter yang cocok dengan penelusuran Anda","sourceFirebase":"FIREBASE GA4","sourceCustom":"KHUSUS / MANUAL"},"redux":{"title":"reduks","searchPlaceholder":"Telusuri status atau tindakan...","emptyTitle":"Tidak ada toko Redux yang terhubung","emptySubtitle":"Hubungkan toko Anda untuk memeriksa status dan tindakannya.","stateTab":"Negara","actionsTab":"Tindakan","clearTitle":"Hapus Garis Waktu Redux","clearMessage":"Apakah Anda yakin ingin menghapus riwayat tindakan yang dikirimkan?","noActions":"Belum ada tindakan yang dikirim. Memicu tindakan di aplikasi untuk mengisi riwayat.","noSearchResults":"Tidak ada tindakan yang cocok dengan penelusuran Anda.","lastAction":"Tindakan terakhir","actionHistory":"Sejarah Aksi","affectedSlices":"Irisan yang terkena dampak","noAffectedSlices":"Tidak ada","dispatchTime":"Dikirim pada","prevState":"Negara Bagian Sebelumnya","nextState":"Negara Bagian Berikutnya","viewDiff":"Lihat Perbedaan","emptyState":"Negara bagian kosong","rootState":"Keadaan Akar","connectionStatus":"Terhubung","connectionStatusNone":"Tidak terhubung","autoRefresh":"Segarkan otomatis","paused":"Dijeda","liveState":"Keadaan Hidup","timeline":"Garis Waktu","persisted":"Bertahan","storage":"Penyimpanan","metadata":"Metadata","inMemory":"Dalam Memori","slice":"irisan","rootKeys":"Kunci Akar","size":"Ukuran","actions":"tindakan","keys":"Kunci","last":"Terakhir","live":"Hidup","loading":"Memuat","error":"Kesalahan","empty":"Kosong","payload":"Muatan","actionPayload":"Muatan Tindakan:","stateChangesDiff":"Perubahan Status (Perbedaan):","tapToInspectAction":"Ketuk untuk memeriksa payload tindakan & perubahan yang berbeda","noDispatchedActions":"Belum ada tindakan terkirim yang dicatat untuk potongan ini.","sliceJson":"Iris JSON","originSaga":"SAGA","originThunk":"TERIMA KASIH","originUi":"UI","originDirect":"LANGSUNG","originListener":"PENDENGAR","triggeredFrom":"Dipicu Dari:","openInEditor":"Buka di Editor","callStack":"Panggil Pelacakan Tumpukan","sliceOrigin":"Iris / Asal","activeSlices":"Irisan Aktif","totalState":"NEGARA JUMLAH","lastActionHeader":"TINDAKAN TERAKHIR","initialState":"Status awal (belum ada tindakan yang dikirim)","noStoreConnected":"Tidak Ada Toko Redux yang Terhubung","connectStoreTip":"Panggil connectReduxStore(store) atau gunakan inspekturReduxMiddleware saat inisialisasi aplikasi.","clearPersistedTitle":"Hapus Status Bertahan","clearPersistedMessage":"Apakah Anda yakin ingin menghapus penyimpanan tetap untuk potongan \"{{slice}}\"?","clearedPersisted":"Status yang bertahan telah dihapus.","clearPersistedError":"Gagal menghapus status yang bertahan."},"device":{"title":"Perangkat","searchPlaceholder":"Spesifikasi pencarian, UDID, IP, layar...","subTabs":{"overview":"Ikhtisar","hardware":"Perangkat keras","network":"Jaringan & IP","display":"Tampilan","runtime":"Waktu Proses & Aplikasi","security":"Keamanan & ID"},"sections":{"overview":"GAMBARAN UMUM PERANGKAT","hardware":"PERANGKAT KERAS & SISTEM","network":"JARINGAN & KONEKTIVITAS","display":"TAMPILAN & GEOMETRI","runtime":"WAKTU JALAN & LINGKUNGAN","security":"IDENTIFIKASI & KEAMANAN"},"copied":"Disalin {{label}}","copiedJson":"Menyalin Laporan JSON Perangkat Lengkap!","copiedMarkdown":"Menyalin Laporan Penurunan Harga ke Papan Klip!","live":"LANGSUNG","ipAddress":"ALAMAT IP","ramUsedTotal":"RAM (TERGUNA/TOTAL)","uptime":"WAKTU TERAKHIR"},"storage":{"title":"Penyimpanan","searchPlaceholder":"Kunci pencarian, nilai, jenis...","subTabs":{"asyncStorage":"Penyimpanan Asinkron","mmkv":"MMKV"},"clearTitle":"Hapus Driver Penyimpanan","clearMessage":"Apakah Anda yakin ingin menghapus semua kunci di {{driver}}?","clearConfirm":"Hapus Semua","emptyTitle":"Tidak Ada Entri Penyimpanan","emptySubtitle":"Penyimpanan saat ini kosong untuk driver ini.","addKey":"Tambahkan Kunci","add":"Tambahkan","editKey":"Sunting Kunci","createKey":"Buat Kunci","save":"Simpan","saveKey":"Simpan Kunci","keyName":"Nama Kunci","value":"Nilai","valueContent":"Nilai Konten","type":"Ketik","beautifyJson":"Mempercantik JSON","loading":"Memuat entri penyimpanan...","deleteKeyTitle":"Hapus Kunci","deleteKeyMessage":"Apakah Anda yakin ingin menghapus kunci \"{{key}}\"?","asyncStorage":"Penyimpanan Asinkron","mmkv":"MMKV","deleteConfirm":"Hapus","cleared":"Penyimpanan dibersihkan"},"footer":{"endOfList":"Anda telah mencapai akhir daftar","loadMore":"Muat {{count}} Lainnya","loadMoreRequests":"Muat {{count}} Permintaan Lainnya","allLoaded":"Semua permintaan {{count}} dimuat","showingOf":"Menampilkan {{count}} dari {{total}} {{label}}"},"performance":{"title":"Kinerja","fpsTarget":"Monitor Sasaran 60 FPS","healthScore":"Skor Kesehatan FPS","excellent":"Luar biasa (60 FPS)","good":"Bagus (Janks Kecil)","needsOptimization":"Perlu Optimasi","liveFps":"FPS Langsung & Siklus Penyegaran","realtimeWindow":"Waktu Nyata (jendela 1 detik)","uiRenderThread":"Utas Render UI","optimalFrame":"Optimal (<16,6 mdtk)","slowFrame":"Bingkai Lambat (>16,6 mdtk)","budgetUsage":"Penggunaan Anggaran 60 FPS","avgFrameTime":"Waktu Bingkai Rata-Rata","peakTime":"Waktu Puncak","jsThread":"Benang JS","uiThread":"Untaian UI","jsiLatency":"Latensi JSI","heapImpact":"Dampak Tumpukan","optimizationTip":"Kiat Pengoptimalan:","recordedEvents":"Peristiwa & Interaksi yang Direkam","liveStream":"Streaming Sesi Langsung","emptyTitle":"Belum ada peristiwa pertunjukan yang direkam","emptySubtitle":"Lakukan tindakan di aplikasi Anda untuk melihat pengaturan waktu thread, biaya render, dan pelacakan FPS.","tabOverview":"Ikhtisar","tabRenders":"Render","tabInteractions":"Interaksi","tabMemory":"Memori","filterAll":"Semua","filterSlow":"Lambat (>16ms)","filterCritical":"Kritis (>33ms)","searchPlaceholder":"Komponen pencarian, interaksi...","avgRenderTime":"Rata-rata Render","totalRenders":"Total Render","renderCost":"Biaya Render","slowRenders":"Render Lambat","unnecessaryRenders":"Render yang boros","heapAllocated":"Tumpukan Dialokasikan","heapLimit":"Batas Tumpukan","gcEvents":"Acara GC","leakRisk":"Risiko Kebocoran","lowRisk":"Risiko Rendah","mediumRisk":"Risiko Sedang","highRisk":"Resiko Tinggi","memoryTimeline":"Garis Waktu Memori","clearPerformance":"Hapus Data Kinerja","clearConfirmation":"Apakah Anda yakin ingin menghapus semua data pelacakan kinerja?","liveFpsDip":"Penurunan Kecepatan Bingkai Langsung ({{fps}} FPS)","liveFpsDipDetail":"Durasi frame thread utama diperpanjang hingga {{duration}}ms selama pembaruan tampilan.","liveFpsDipAdvice":"Eksekusi JavaScript yang berat selama frame pass menunda presentasi tampilan.","yogaLayout":"Tata Letak Yoga Flexbox","hermesGc":"Pengumpulan Sampah Hermes","jsEngine":"Mesin JS","uiReconciler":"Rekonsiliasi UI","memoryHeap":"Tumpukan Memori","allLogs":"Semua Log","jankySlow":"Janky / Lambat","navigation":"Navigasi","components":"Komponen","memoryGc":"Memori & GC","networkIo":"Jaringan & I/O","catAll":"Semua","catJanky":"Janky","catNavigation":"Navigasi","catRender":"Komponen","catMemory":"Memori","catIo":"masukan/keluaran","recording":"Rekaman","paused":"Dijeda","budgetHeadroom":"~{{time}}md Ruang Kepala ({{percent}}%)","jsExec":"Eksekutif JS: {{time}}md","yogaLayoutTime":"Tata Letak Yoga: {{time}}ms","uiRenderTime":"Render UI: {{time}}mdtk","freeTime":"Gratis: {{time}}md","heapAllocatedSub":"{{allocated}} MB dialokasikan","hermesAot":"Hermes (AOT)","v8Jit":"V8 (JIT)","jscEngine":"JSC","bytecodeCompiled":"Bytecode dikompilasi","jitEngine":"Mesin JIT","webkitEngine":"Mesin Webkit","fabricJsi":"Kain / JSI","paperBridge":"Kertas / Jembatan","directCppBindings":"Pengikatan C++ langsung","asyncJsonBridge":"Jembatan JSON Asinkron","fpsUnit":"FPS","jsLag":"Keterlambatan JS","jankRate":"Tingkat Jank","fpsAreaChartTitle":"Streaming & Jitter FPS Waktu Nyata (30 detik)","fpsAreaChartSub":"Target langsung 60 FPS dengan pengukuran varian bingkai berkelanjutan","frameLatencyDistTitle":"Distribusi Latensi Bingkai","frameLatencyDistSub":"Proporsi frame yang dikirimkan dalam anggaran 16,6 ms","optimalBucket":"< 16,6 md (60 FPS)","minorJankBucket":"16,7 - 33,3 md (30-60 FPS)","noticeableJankBucket":"33,4 - 50,0 ms (20-30 FPS)","severeFreezeBucket":"> 50,0 ms (<20 FPS)","hermesHeapTrendTitle":"Memori & Dinamika Tumpukan Hermes","hermesHeapTrendSub":"Alokasi langsung vs siklus pemulungan GC generasi","live":"Hidup","msTotal":"{{duration}}md total • {{time}}","droppedFrames":"{{count}} Jatuh","zeroDropped":"0 Jatuh","frameBudgetMs":"{{time}}ms / frame ({{budget}}% anggaran)","target60Fps":"Target 60 FPS • FPS aktual {{fps}}","frameDuration":"Durasi Bingkai","frameDurationVal":"{{time}} md (anggaran 16,67 md)","frameUtilization":"Anggaran Bingkai Melebihi","frameBudgetOk":"Bingkai Ruang Kepala Anggaran","bottleneck":"Kemacetan","jsBound":"Benang JS Terikat","uiBound":"Utas UI Terikat","balanced":"Seimbang","smooth":"Halus 60 FPS","minorJank":"Gagap Kecil","noticeableJank":"Jank yang Terlihat","severeFreeze":"Pembekuan Parah","screenContext":"Konteks Layar","profileReason1":"Props fungsi panah sebaris diteruskan ke anak-anak (onAddToCart={() => ...})","profileReason2":"Pemilih Redux yang tidak dimoisasi membuat referensi objek baru pada setiap pengiriman","profileReason3":"Objek gaya dinamis dibuat di badan render ({ marginTop: insets.top + 10 })","profileReason4":"FlatList kehilangan getItemLayout yang menyebabkan lintasan pengukuran tata letak asinkron","profileReason5":"fungsi renderItem didefinisikan secara anonim di dalam badan JSX","profileReason6":"Komponen item daftar tidak dibungkus dengan React.memo","profileReason7":"Layar induk dirender ulang pada acara tampilkan/sembunyikan keyboard","profileReason8":"Referensi panggilan balik yang tidak stabil diteruskan ke tombol checkout","profileReason9":"Status nilai TextInput memicu rendering ulang induk pada setiap penekanan tombol tanpa melakukan debouncing","profileReason10":"Meneruskan objek filter yang tidak dimoisasi ({ kategori, minPrice }) ke chip anak","profileReason11":"Validasi ulang cache gambar avatar pada penyegaran sesi autentikasi","fixUseCallbackTitle":"Bungkus Event Handler di useCallback","fixUseCallbackDesc":"Fungsi inline membuat ulang referensi memori baru pada setiap render, membuat React.memo pada komponen anak tidak valid.","fixCreateSelectorTitle":"Memoize Redux / Zustand Selectors dengan dangkalEqual","fixCreateSelectorDesc":"Mengembalikan referensi objek atau larik baru di dalam useSelector akan memaksa rendering ulang otomatis pada setiap pengiriman status.","fixUseMemoStylesTitle":"Gaya Hoist atau Gunakan useMemo untuk Dimensi Dinamis","fixUseMemoStylesDesc":"Objek gaya sebaris membuat identitas objek baru pada setiap frame pass, menyebabkan perbedaan rekonsiliasi Yoga Flexbox.","fixGetItemLayoutTitle":"Implementasikan getItemLayout untuk Item dengan Ketinggian Tetap","fixGetItemLayoutDesc":"Menyediakan getItemLayout memungkinkan FlatList untuk segera menghitung offset gulir dan jendela virtual tanpa mengukur tampilan secara asinkron.","fixReactMemoTitle":"Bungkus Item Daftar di React.memo","fixReactMemoDesc":"Mencegah 50+ item daftar yang terlihat dirender ulang ketika status daftar induk (misalnya posisi gulir atau penomoran halaman) diperbarui.","fixComponentSplittingTitle":"Isolasi Keadaan Cepat Berubah pada Komponen Daun","fixComponentSplittingDesc":"Pindahkan pendengar keyboard dan status animasi modal ke dalam subkomponen mandiri sehingga induknya tidak merender ulang.","fixDebouncedInputTitle":"Hilangkan Pentalan Masukan Pencarian atau Gunakan Status Terkendali Lokal","fixDebouncedInputDesc":"Jangan langsung menyebarkan status penekanan tombol ke penyimpanan global. Gunakan debounce 250ms atau ref yang tidak terkontrol.","fixPrimitivePropsTitle":"Berikan Alat Peraga Primitif Daripada Benda Besar","fixPrimitivePropsDesc":"Hanya meneruskan string kategoriId alih-alih seluruh objek kategori akan mencegah perenderan ulang ketika metadata kategori lainnya diperbarui.","fixUseRefForTrackingTitle":"Gunakan useRef untuk Nilai Pelacakan Non-Visual","fixUseRefForTrackingDesc":"Jangan menyimpan penghitung waktu analitik, offset gulir, atau ID pelacakan di useState jika tidak secara langsung mengubah pohon BEJ.","highImpact":"Dampak Tinggi","mediumImpact":"Dampak Sedang","bestPractice":"Praktik Terbaik","beforeUseCallback":"// ❌ Sebelum di <{{comp}} /> (membuat ulang referensi fungsi pada setiap render):","afterUseCallback":"// ✅ Setelah (referensi panggilan balik memo yang stabil):","beforeCreateSelector":"// ❌ Sebelum di <{{comp}} /> (mengembalikan referensi objek baru setiap render):","afterCreateSelector":"// ✅ Setelah (shallowEqual mencegah rendering ulang kecuali nilainya berubah):","beforeMemo":"// ❌ Sebelumnya (<{{comp}} />):","afterMemo":"// ✅ Setelah (lewati render jika propsnya hampir sama):","flatListOptimization":"// Optimasi FlatList untuk <{{comp}} />","customComparator":"// Fungsi kesetaraan khusus untuk <{{comp}} />","debounceInput":"// Hapus pantulan masukan di dalam <{{comp}} /> untuk mencegah perenderan per penekanan tombol:","isolateState":"// Pisahkan status yang berubah dengan cepat dari <{{comp}} /> ke subpohon turunan // ✅ Enkapsulasi tata letak animasi di dalam komponen yang terisolasi:","beforeUseRef":"// ❌ Sebelum di <{{comp}} /> (memicu rendering ulang seluruh komponen saat nilai berubah):","afterUseRef":"// ✅ Setelah (mempertahankan referensi yang dapat berubah di seluruh render tanpa melakukan rendering ulang):","fixInteractionManagerTitle":"Tunda Logika Luar Layar dengan InteractionManager","fixInteractionManagerDesc":"Pemrosesan data yang berat selama animasi layar menghilangkan bingkai. Tunda sampai transisi selesai.","beforeInteractionManager":"// ❌ Sebelum di <{{comp}} /> (menjalankan komputasi berat saat transisi dianimasikan): useEffect(() => { loadHeavyData(); }, []);","afterInteractionManager":"// ✅ Setelah (menunggu hingga transisi selesai dengan lancar): useEffect(() => { const task = InteractionManager.runAfterInteractions(() => { loadHeavyData(); }); return () => task.cancel(); }, []);","fixFlatListWindowingTitle":"Sesuaikan Properti Windowing FlatList","fixFlatListWindowingDesc":"Konfigurasikan maxToRenderPerBatch dan windowSize untuk meminimalkan alokasi tampilan tervirtualisasi di luar layar.","beforeFlatListWindowing":"// Optimasi Windowing FlatList untuk <{{comp}} />: <FlatList data={items} maxToRenderPerBatch={10} windowSize={5} initialNumToRender={8} deleteClippedSubviews={true} />","fixImageCachingTitle":"Optimalkan Caching dan Downscaling Gambar","fixImageCachingDesc":"Gunakan header prioritas atau penurunan skala resizeMode untuk menghindari alokasi bitmap besar-besaran di heap Hermes.","beforeImageCaching":"// Pengoptimalan Gambar untuk <{{comp}} />: <Sumber gambar={{ uri: imageUrl, cache: 'force-cache' }} resizeMode=\"cover\" fadeDuration={100} />","fixContextSplittingTitle":"Pisahkan Konteks Monolitik menjadi Penyedia Terperinci","fixContextSplittingDesc":"Komponen yang berlangganan konteks besar dirender ulang bahkan ketika properti status yang tidak digunakan berubah.","beforeContextSplitting":"// ❌ Sebelum (<{{comp}} /> menggunakan seluruh AppContext): const { user, cart, theme } = useAppContext();","afterContextSplitting":"// ✅ Setelah (berlangganan konteks irisan khusus): const theme = useThemeContext();","fixInlineStylesHoistTitle":"Gaya Statis Hoist dengan StyleSheet.create","fixInlineStylesHoistDesc":"Objek gaya sebaris mengalokasikan referensi memori baru pada setiap proses render, menyebabkan overhead rekonsiliasi Yoga.","beforeInlineStyles":"// ❌ Sebelum (<{{comp}} /> mengalokasikan objek sebaris setiap frame): <View style={{ flex: 1, padding: 16, backgroundColor: '#ffffff' }} />","afterInlineStyles":"// ✅ Setelah (referensi StyleSheet yang diangkat): const style = StyleSheet.create({ container: { flex: 1, padding: 16, backgroundColor: '#ffffff' } }); <Lihat gaya={styles.container} />","transitionEventLabel":"Transisi Layar: {{screen}}","transitionEventDetail":"Transisi selesai dalam {{duration}}ms (TTI: {{tti}}ms).","transitionEventAdvice":"Interaksi selesai dalam anggaran target 60 FPS.","heavyTaskEventLabel":"Tugas Sinkronisasi Berat: {{taskName}}","heavyTaskEventDetail":"Thread JS diblokir selama {{duration}}ms selama pelaksanaan tugas.","heavyTaskEventAdvice":"Pertimbangkan untuk memindahkan muatan ke pekerja web, InteractionManager, atau mengelompokkan dalam beberapa bagian.","asyncOpEventLabel":"Operasi Asinkron Lambat: {{opName}}","asyncOpEventDetail":"Tugas asinkron memerlukan waktu {{duration}} ms untuk diselesaikan.","renderLoopWarningLabel":"Lonjakan Render Ulang Cepat di <{{comp}} />","renderLoopWarningDetail":"Komponen dirender ulang {{count}} kali dalam 500 mdtk. Potensi loop tak terbatas atau ketergantungan tidak stabil.","renderLoopWarningAdvice":"Periksa array ketergantungan useEffect / useCallback untuk referensi objek atau fungsi yang tidak stabil.","event1Label":"Lonjakan Thread Utama selama Navigasi","event1Detail":"Transisi layar memicu rekonsiliasi tata letak yang berat dan pemasangan komponen secara bersamaan.","event1Advice":"Tunda pengait di luar layar yang tidak penting dengan InteractionManager.runAfterInteractions untuk mempertahankan 60 FPS.","event2Label":"Pass Render Ulang Virtualisasi FlatList","event2Detail":"FlatList merender 25 item secara bersamaan pada perubahan orientasi tanpa komponen baris yang dimemo.","event2Advice":"Implementasikan getItemLayout dan React.memo(LogCard) untuk melewati proses diffing yang berlebihan.","event3Label":"Transisi Slide-Up Modal Asli","event3Detail":"Transformasi animasi driver asli yang dipercepat perangkat keras berjalan lancar pada 60 FPS berkelanjutan.","event3Advice":"Menggunakan nativeDriver: true berhasil mencegah pemblokiran thread JS selama animasi.","event4Label":"Pengumpulan Sampah Generasi Hermes","event4Detail":"Siklus GC generasi kecil mengumpulkan objek tumpukan sementara sebesar 4,2 MB dengan jeda thread sub-milidetik.","event4Advice":"Pengumpul sampah generasi Hermes beroperasi dalam batas optimal di bawah 5ms.","gcCycleLabel":"Siklus Pengumpulan Sampah Manual","gcCycleDetail":"Objek heap yang tidak direferensikan ~{{amount}} MB direklamasi dan penyimpanan memori dipadatkan.","gcCycleAdvice":"Penggunaan tumpukan dioptimalkan. Pembibitan generasi dibersihkan.","liveFpsDropLabel":"Penurunan Kecepatan Bingkai Langsung ({{fps}} FPS)","liveFpsDropDetail":"Durasi frame thread utama diperpanjang hingga {{duration}}ms selama pembaruan tampilan.","liveFpsDropAdvice":"Eksekusi JavaScript yang berat selama frame pass menunda presentasi tampilan.","event5Label":"Deserialisasi Payload JSON Besar","event5Detail":"Respons API 50 item mengurai overhead di adaptor jaringan (string mentah JSON 185 KB).","event5Advice":"Pertimbangkan untuk memberi nomor halaman payload API atau respons streaming jika ukuran payload melebihi 250 KB.","event6Label":"Dekode & Rasterisasi Bitmap Gambar","event6Detail":"Dekode raster retina untuk banner_dark.png (alokasi buffer raster 1200×630 piksel).","event6Advice":"Turunkan dimensi aset atau konversikan ke WebP untuk mengurangi latensi dekode sebesar ~65%.","event7Label":"Doa JSI TurboModule Asli","event7Detail":"Transaksi preferensi AsyncStorage / MMKV dibaca di 32 kunci konfigurasi.","event7Advice":"Pengikatan Turbomodule C++ JSI langsung sepenuhnya mengabaikan overhead serialisasi jembatan JSON lama.","event8Label":"Perbedaan Pohon Status Tindakan Redux","event8Detail":"Tiket pengiriman Redux mengevaluasi 6 irisan peredam dan mengeluarkan pemberitahuan status dalam 4,8 mdtk.","event8Advice":"Kekekalan pohon negara dipertahankan. Pemilih yang dimoisasi mencegah perenderan komponen yang berlebihan.","event9Label":"Latensi Peristiwa Sentuh untuk Merender","event9Detail":"Responden isyarat mengirimkan acara ketuk ke tombol TabBar dengan respons langsung 60 FPS.","event9Advice":"Latensi respons sentuh berada dalam anggaran bingkai standar 16,67 ms.","event10Label":"Tiket Tata Letak C++ Yoga Flexbox","event10Detail":"Perhitungan ulang tata letak kartu multi-tab UI Inspektur dan metrik font diteruskan di mesin C++ Yoga.","event10Advice":"Batasan tata letak Flexbox di-cache dan dihitung secara efisien tanpa penalti perubahan posisi."},"bundle":{"heroTitle":"Arsitektur Bundel & Aset","heroSubtitle":"Perincian ukuran real-time di seluruh aset, kode, dan dependensi","heroSubtitleLive":"Analisis langsung {{scriptUrl}}","liveAnalysisUnavailable":"Analisis bundel langsung tidak tersedia","liveAnalysisUnavailableSub":"Tidak dapat menjangkau server pengembang Metro, jadi nilainya hanyalah perkiraan. Pastikan aplikasi berjalan dalam pengembangan melalui `npx react-native start` dan Inspektur dapat menjangkau port Metro Anda (8081, 8082, ...).","bundleOverviewJson":"Ikhtisar Paket JSON","devBundleSize":"UKURAN BUNDLE DEV","devBundleHint":"{{kb}} KB • {{modules}} modul","trackedFilesHint":"{{count}} File yang dilacak","imagesMedia":"GAMBAR & MEDIA","pctOfTrackedAssets":"{{pct}}% dari aset yang dilacak","tsJsSource":"SUMBER TS/JS","jsEngine":"MESIN JS","bytecodeAot":"Bytecode AOT","standard":"Standar","splitUpTitle":"Pemisahan Paket Pengembangan","splitUpSub":"Paket JS {{mb}} MB terukur • file {{files}} • paket {{packages}}","splitUpJson":"JSON Terpisah","splitAppSource":"Kode Sumber Aplikasi","splitNodeModules":"Ketergantungan node_modules","splitAssetsMedia":"Aset & Media","splitMetroOverhead":"Overhead Pengembang Metro","splitSize":"{{kb}} MB • {{mb}} MB","productionFootprint":"JEJAK PRODUKSI","productionValue":"iOS {{ios}} MB • Android {{android}} MB","productionDownload":"Unduh: iOS ~{{ios}} MB • AAB ~{{aab}} MB • APK ~{{apk}} MB","treemapTitle":"Peta Hierarki Rasio Jenis Aset & File","treemapSub":"Jumlahnya ~{{mb}} MB","treemapJson":"Rasio Peta Hierarki JSON","legendImages":"Gambar:","legendTs":"TS/TSX:","legendJs":"JS Lib:","legendFonts":"Font:","legendJson":"JSON:","categoryBreakdown":"Perincian Kategori","categoriesJson":"Kategori Perincian JSON","catImagesTitle":"Gambar & Aset Media","catImagesDesc":"Aset PNG, WebP, SVG, dan JPG dalam bundel","catJsTitle":"Modul Node & JS yang Dikompilasi","catJsDesc":"Ketergantungan pihak ketiga dan jembatan asli","catFontsTitle":"Font Kustom & Mesin Terbang Vektor","catFontsDesc":"Aset font dalam bundel","catTsTitle":"Komponen TypeScript & JSX","catTsDesc":"Komponen layar aplikasi, kait, dan logika bisnis","catJsonTitle":"Data & Pelokalan JSON","catJsonDesc":"kamus terjemahan i18n dan konfigurasi statis","totalBundleAssets":"TOTAL FILE PROYEK HOST","totalBundleValue":"{{kb}} KB (~{{mb}} MB)","totalFormula":"Jumlah file sumber host: {{images}} KB + {{js}} KB + {{fonts}} KB + {{ts}} KB + {{json}} KB = {{total}} KB ({{count}} item)","prodIosApp":"Aplikasi iOS (.ipa)","prodAndroidAab":"Android AAB (.aab)","prodAndroidApk":"APK Universal (.apk)","prodHeroTitleIos":"Jejak Biner Produksi iOS","prodHeroTitleAab":"Paket Aplikasi Google Play (.aab)","prodHeroTitleApk":"APK Mandiri Universal (.apk)","prodHeroSubIos":"Perkiraan pemasangan App Store & unduhan seluler melalui udara","prodHeroSubAab":"Arsitektur APK terpisah pengiriman dinamis per perangkat telah dioptimalkan","prodHeroSubApk":"Arsip instalasi universal multi-ABI untuk sideloading & distribusi langsung","prodInstallSize":"UKURAN PASANG","prodInstallHint":"Jejak kaki yang tidak terkompresi pada perangkat","prodDownloadSize":"UNDUH UKURAN","prodDownloadHint":"Menyimpan muatan transfer jaringan","prodCompression":"KOMPRESI","prodCompressionHint":"Bytecode & rasio aset","prodFormatArch":"ARSITEKTUR FORMAT","prodFormatHintIos":"Waktu proses Apple ARM64","prodFormatHintAab":"Pengiriman Google Play yang dinamis","prodFormatHintApk":"Sideload paket universal","prodArchTitle":"Arsitektur Komponen Biner","prodArchSub":"Perpustakaan asli yang dikompilasi, bytecode runtime, aset, dan blok tanda tangan","prodTotalIos":"TOTAL BINARI APLIKASI IOS","prodTotalAab":"JUMLAH PAKET AAB ANDROID","prodTotalApk":"JUMLAH APK UNIVERSAL","prodTotalFormula":"Dari {{devKb}} KB (~{{devMb}} MB • {{count}} total aset) paket sumber dev → {{installMb}} MB biner asli yang dioptimalkan ({{pct}}% bytecode/kompresi aset).","tabOverview":"Ikhtisar","tabProduction":"Produksi ({{count}})","tabFiles":"File ({{count}})","tabPackages":"Paket ({{count}})","tabMedia":"Media ({{count}})","tabOptimizer":"Pengoptimal","analyzingTitle":"Menganalisis bundel aplikasi host dari Metro…","analyzingHint":"Mengambil bundel & mengekstrak modul nyata","searchFilesPlaceholder":"Cari berdasarkan nama file (.png, .tsx, .ttf, path)...","filteredFilesJson":"File JSON yang Difilter","catAll":"Semua File","catUnused":"Tidak Dikonsumsi (Mati)","catConsumed":"Sedang Digunakan / Aktif","catImages":"Gambar & Media","catTypescript":"Skrip Ketik / TSX","catJavascript":"Modul JS & Node","catFonts":"Font & Mesin Terbang","catJson":"JSON & Data","treeView":"Pemandangan Pohon","flatList":"Daftar Datar","expand":"Perluas","collapse":"Runtuh","showingFilesOf":"Menampilkan {{shown}} dari {{total}} file","filesOf":"{{count}} dari {{total}} File","notConsumed":"Tidak Dikonsumsi","consumed":"Dikonsumsi","copyFileInfo":"Salin {{name}} Info","fileDetailsJson":"Detail File JSON","file":"mengajukan","files":"file","fileSizeKb":"{{size}}KB","fileSizeMb":"{{size}}MB","mbValue":"~{{size}}MB","kbMbValue":"{{kb}} KB ({{mb}} MB)","legendValue":"{{kb}} KB ({{pct}}%)","mediaSavings":"{{size}}KB","searchPackagesPlaceholder":"Paket pencarian (react-native, axios, navigasi)...","dependenciesJson":"Ketergantungan JSON","showingDependencies":"Menampilkan dependensi {{count}}","versionPrefix":"v{{version}}","bundled":"dibundel","deprecated":"TIDAK DIGUNAKAN lagi","updateAvailable":"Pembaruan: v{{version}}","upToDate":"Terkini","bundledBadge":"Dibundel","packageDetailsJson":"Detail Paket JSON","direct":"Langsung","transitive":"Transitif","minified":"~{{size}} KB diperkecil","npmLink":"npm ↗","dependenciesCount":"{{count}} Ketergantungan","mediaAuditorTitle":"Auditor Kompresi Media","mediaAssetsJson":"Aset Media JSON","mediaAuditorPrefix":"Gambar & Font merupakan","mediaAuditorMid":"dari total aset (~{{kb}} KB). Mengonversi PNG ke WebP dan subsetting font dapat mengurangi ukuran hingga","mediaAuditorSuffix":"KB.","mediaAssetsList":"Aset & Font Media ({{count}} item)","mediaItemJson":"Item Media JSON","mediaAndFonts":"{{count}} Media & Font","optimizerTitle":"Daftar Periksa Optimasi Bundel Asli React","optimizationChecklist":"Daftar Periksa Optimasi","optTip1Title":"Konversi PNG Berat ke WebP / SVG","optTip1Desc":"Gambar menyumbang >40% dari ukuran akhir unduhan aplikasi. Mengonversi PNG raster 2x/3x ke WebP menghemat ukuran 60-70% tanpa kehilangan fidelitas yang terlihat.","optTip2Title":"Aktifkan Mesin Bytecode Hermes","optTip2DescActive":"Hermes aktif! JavaScript dikompilasi menjadi bytecode yang dioptimalkan sebelumnya.","optTip2DescInactive":"Hermes dinonaktifkan. Aktifkan hermes di konfigurasi aplikasi Anda untuk ~40% payload lebih kecil dan startup TTI instan.","optTip3Title":"Subsetting Font & Pemangkasan Berat","optTip3Desc":"Sertakan hanya bobot font yang Anda gunakan secara aktif (misalnya Reguler & Tebal). Hapus rentang mesin terbang yang tidak digunakan untuk menghemat 100KB+ per file font.","optTip4Title":"Impor Jalur Selektif (Gemetar Pohon)","optTip4Desc":"Impor dari subjalur tertentu (misalnya lodash/get atau kumpulan ikon vektor tertentu) alih-alih mengimpor paket monolitik besar.","optTip5Title":"Layar Memuat Lambat","optTip5Desc":"Lambat memuat layar sekunder dan lembar modal berat menggunakan impor dinamis dan InteractionManager untuk mengurangi evaluasi paket awal.","highImpact":"Dampak Tinggi","mediumImpact":"Dampak Sedang","bestPractice":"Praktik Terbaik","actionRequired":"Diperlukan Tindakan","active":"Aktif","tipDetails":"Detail Tip","iosComp1Name":"Kerangka Kerja & Pod Dinamis","iosComp1Desc":"Kerangka kerja pod asli React, Hermes, dan {{count}}.","iosComp1Advice":"Pastikan Pengupasan Kode Mati (STRIP_INSTALLED_product = YES) dalam mode Rilis.","iosComp2Name":"Dapat Dieksekusi Mach-O (ARM64)","iosComp2Desc":"Aplikasi Host mengkompilasi jembatan asli Swift/Objective-C dan C++.","iosComp2Advice":"Aktifkan LTO Monolitik (Optimasi Waktu Tautan) di Skema Xcode.","iosComp3Name":"Katalog Aset (Assets.car)","iosComp3Desc":"AppIcons, layar splash, mesin terbang vektor, dan font yang dibundel.","iosComp3Advice":"Kompilasi gambar ke dalam Katalog Aset Xcode untuk Penipisan Aplikasi otomatis.","iosComp4Name":"Hermes Bytecode (main.jsbundle)","iosComp4Desc":"Aplikasi host JavaScript mengkompilasi AOT ke dalam bytecode Hermes (file {{count}}).","iosComp4Advice":"Bytecode AOT dimuat dengan latensi kompilasi 0 ms saat peluncuran perangkat.","iosComp5Name":"Metadata & Tanda Tangan Kode","iosComp5Desc":"_CodeSignature, Info.plist, dan blok hak.","iosComp5Advice":"Penandatanganan Kode Apple Standar & tanda tangan penyediaan.","andComp1Name":"Perpustakaan C++ Asli (.so)","andComp1Desc":"libhermes.so, libfbjni.so, dan {{count}} adaptor asli C++.","andComp1Advice":"Terapkan dengan Android App Bundle (.aab) untuk mengirimkan APK terpisah per-ABI.","andComp2Name":"DEX yang dikompilasi (classes.dex)","andComp2Desc":"Mengkompilasi runtime Java & Kotlin, AndroidX, dan jembatan React Native.","andComp2Advice":"Aktifkan penyusutan R8/ProGuard (minifyEnabled true) di build.gradle.","andComp3Name":"Sumber Daya Android (res/)","andComp3Desc":"Sumber daya dapat digambar, XML vektor, kepadatan mipmap, resource.arsc, font.","andComp3Advice":"Gunakan WebP dan VectorDrawables untuk menghindari duplikasi aset multi-densitas.","andComp4Name":"Bytecode Hermes (Android)","andComp4Desc":"JavaScript aplikasi host dikompilasi ke dalam bytecode Hermes (file {{count}}).","andComp4Advice":"Bytecode yang telah dikompilasi sebelumnya selama tugas gradle assembleRelease.","andComp5Name":"Manifes & Tanda Tangan (META-INF)","andComp5Desc":"AndroidManifest.xml, penandatanganan sertifikat, blok Skema Tanda Tangan APK v2/v3/v4.","andComp5Advice":"Penandatanganan & blok tanda tangan resmi Google Play.","apkComp1Name":"Perpustakaan Multi-ABI C++ (.so)","apkComp1Desc":"Pustaka bersama multi-arsitektur universal (.so) dibundel untuk sideloading langsung.","apkComp1Advice":"Gunakan Android App Bundle (.aab) untuk Google Play guna mengurangi ukuran pemasangan sebesar 60%.","apkComp2Name":"Bytecode DEX yang dikompilasi (classes.dex)","apkComp2Desc":"Runtime Java & Kotlin yang dikompilasi, pustaka AndroidX, dan modul jembatan asli.","apkComp2Advice":"Aktifkan penyusutan R8 / ProGuard (minifyEnabled true) dan shrinkResources true.","apkComp3Name":"Sumber Daya & Aset Android (res/)","apkComp3Desc":"Sumber daya dapat digambar, XML vektor, kepadatan mipmap, resource.arsc, font.","apkComp3Advice":"Gunakan WebP dan VectorDrawables untuk menghindari duplikasi aset multi-densitas.","apkComp4Name":"Paket Bytecode Hermes (Android)","apkComp4Desc":"JavaScript aplikasi host dikompilasi ke dalam bytecode Hermes (file {{count}}).","apkComp4Advice":"Bytecode yang telah dikompilasi sebelumnya selama tugas gradle assembleRelease.","apkComp5Name":"Manifes & Tanda Tangan (META-INF)","apkComp5Desc":"AndroidManifest.xml, sertifikat penandatanganan, Skema Tanda Tangan APK JAR & v2/v3/v4.","apkComp5Advice":"Sideload perusahaan & blok tanda tangan pemasangan langsung."},"errors":{"title":"Ada yang tidak beres","message":"Terjadi kesalahan yang tidak terduga.","retry":"Coba Lagi","reset":"Setel ulang","close":"Tutup","errorReport":"Laporan kesalahan","modalTitle":"Inspektur jatuh","modalMessage":"Inspektur menemukan kesalahan yang tidak terduga. Anda dapat mengatur ulang di bawah.","inlineTitle":"Kesalahan inspektur","inlineMessage":"Terjadi kesalahan tak terduga di dalam inspektur.","networkError":"Permintaan jaringan gagal","crashIntercepted":"KEJADIAN DICATAT","protected":"DILINDUNGI","rootCauseTitle":"Diagnostik Akar Penyebab","rootCauseSubtitle":"Inspektur menangkap kesalahan runtime ini untuk mencegah penghentian aplikasi","exactLocation":"LOKASI SUMBER YANG TEPAT","file":"Berkas:","lineCol":"Baris / Kol:","lineColVal":"Baris {{line}}, Kol {{col}}","function":"Fungsi:","callStack":"PANGGILAN STACK FRAME","framesCount":"{{count}} bingkai","tryAgainRecover":"Coba Lagi/Pulihkan","copyDiagnostics":"Salin Diagnostik","appTag":"APLIKASI","copy":"Salin"},"jsonViewer":{"pretty":"Cantik","raw":"Mentah","table":"Tabel","emptyObject":"Objek Kosong","emptyPayload":"Muatan kosong","emptyTable":"Objek Kosong","fold":"Lipat","expand":"Perluas","min":"Minimal","indent":"Indentasi","wrap":"Bungkus","copied":"Disalin!","copy":"Salin JSON","key":"Kunci","value":"Nilai","lines":"garis","line":"garis"},"codeSnippet":{"copy":"Salin","copied":"Disalin!","matchCount":"{{count}} cocok","matchCount_plural":"{{count}} cocok","noMatches":"Tidak ada kecocokan","searchPlaceholder":"Cari...","prevMatch":"Pertandingan sebelumnya","nextMatch":"Pertandingan berikutnya","clearSearch":"Hapus pencarian"},"diffViewer":{"added":"ditambahkan","removed":"dihapus","changed":"berubah","noDiff":"Tidak ada perbedaan","emptyTitle":"Tidak ada perbedaan yang ditemukan","emptySubtitle":"Kedua muatan itu identik."},"logCard":{"seeMore":"Tampilkan lebih banyak","seeLess":"Tampilkan lebih sedikit","copy":"Salin","copied":"Disalin!"},"emptyState":{"title":"Belum ada apa pun di sini","subtitle":"Data akan muncul di sini saat Anda menggunakan aplikasi.","reload":"Muat ulang"},"errorBoundary":{"title":"Ada yang tidak beres","message":"Terjadi kesalahan yang tidak terduga.","retry":"Coba Lagi","reset":"Setel ulang","close":"Tutup"},"crash":{"title":"Kecelakaan","searchPlaceholder":"Kesalahan pencarian, pesan, tumpukan...","searchDetailPlaceholder":"Cari di jejak atau JSON...","statCrashes":"Gangguan","statFatal":"Mematikan","statJsErrors":"Kesalahan JS","statPromises":"Janji","statRender":"Render","statNative":"Asli","filterAll":"Semua","filterFatal":"Mematikan","filterJsError":"Kesalahan JS","filterPromise":"Janji","filterRender":"Render","filterNative":"Asli","fatalBadge":"FATAL","handledBadge":"DITANGANI","fatalCrash":"KEJADIAN FATAL","handledException":"PENGECUALIAN YANG DITANGANI","unknownException":"Pengecualian Tidak Diketahui","report":"Laporkan","inspect":"Periksa","copyReport":"Salin Laporan","copied":"Disalin","clearTitle":"Hapus Riwayat Kerusakan","clearMessage":"Apakah Anda yakin ingin menghapus semua catatan kerusakan yang disadap?","clearCancel":"Batalkan","clearConfirm":"Hapus Semua","emptyTitle":"Nol Kerusakan Terdeteksi","emptySubtitle":"Penjaga kecelakaan global aktif. Semua pengecualian asli dan JavaScript disadap dan dilindungi.","emptySearchSubtitle":"Tidak ada entri kerusakan yang cocok dengan kueri penelusuran Anda.","tabStack":"Tumpukan ({{count}})","tabDiagnostics":"Diagnostik","tabTrail":"Jejak ({{count}})","tabRawJson":"JSON mentah","appFrames":"Bingkai Aplikasi ({{count}})","allFrames":"Semua Bingkai ({{count}})","frameApp":"APLIKASI","frameLib":"LIB","anonymous":"<anonim>","noStackTrace":"Tidak ada jejak tumpukan yang diambil untuk kejadian ini.","deviceEnvironment":"Perangkat & Lingkungan","platform":"Peron","osVersion":"Versi OS","reactNative":"Bereaksi Asli","jsEngine":"Mesin JS","hermesEngine":"Mesin Hermes","jsc":"JSC","architecture":"Arsitektur","fabricNewArch":"Kain (Lengkungan Baru)","paperLegacy":"Kertas (Warisan)","appState":"Status Aplikasi","jsHeapMemory":"Memori Tumpukan JS","usedHeap":"Tumpukan Bekas","totalHeap":"Jumlah Tumpukan","noBreadcrumbs":"Tidak ada peristiwa runut tautan yang tercatat sebelum kerusakan ini.","simNativeMessage":"Simulasi pengecualian fatal asli","simPromiseMessage":"Simulasi penolakan janji yang tidak tertangani","simRenderMessage":"Kesalahan render komponen React yang disimulasikan","simJsMessage":"Pengecualian JavaScript yang disimulasikan","reportTitle":"LAPORAN DIAGNOSTIK KEJADIAN","reportErrorName":"Nama Kesalahan:","reportMessage":"Pesan:","reportType":"Jenis:","reportFatalYes":"YA (Fatal)","reportFatalNo":"TIDAK (Tertangkap/Ditangani)","reportFatal":"Mematikan:","reportTimestamp":"Stempel waktu:","reportUptime":"Waktu Aktif Aplikasi:","reportUptimeValue":"{{seconds}} detik","reportPlatform":"Peron:","reportReactNative":"Bereaksi Asli:","reportHermes":"Hermes:","reportEnabled":"Diaktifkan","reportDisabled":"Dengan disabilitas","reportArchitecture":"Arsitektur:","reportFabricNew":"Kain (Baru)","reportPaperLegacy":"Kertas (Warisan)","reportScreenSize":"Ukuran Layar:","reportAppState":"Status Aplikasi:","reportJsMemory":"Memori JS:","reportStackTrace":"JEJAK TUMPUKAN:","reportNoStackTrace":"Tidak ada pelacakan tumpukan yang tersedia","reportComponentHierarchy":"HIERARKI KOMPONEN:","reportRecentBreadcrumbs":"BREADCRUMBS TERBARU:","mdReportTitle":"🚨 Laporan Kerusakan: {{name}}","mdStackTrace":"📦 Pelacakan Tumpukan","mdComponentHierarchy":"🌲 Hirarki Komponen","mdRecentBreadcrumbs":"👣 Remah Roti Terbaru","mdSeverityFatal":"FATAL","mdSeverityHandled":"DITANGANI","breadcrumbNavigation":"Dinavigasi dari \"{{from}}\" ke \"{{to}}\"","breadcrumbAction":"Tindakan: {{actionType}}","unknown":"Tidak diketahui","runtimeException":"Pengecualian Waktu Proses","logFatalCrash":"Kecelakaan Fatal","logUnhandledError":"Kesalahan yang Tidak Tertangani","errorNameFatal":"Kesalahan Fatal","errorNameUnhandled":"Pengecualian Tidak Tertangani","nativeCrashTitle":"Kecelakaan Asli","nativeUncaughtException":"Pengecualian Asli Tidak Tertangkap","nativeException":"Pengecualian Asli","unhandledPromiseRejection":"Penolakan Janji yang Tidak Tertangani","filterTitle":"Filter Kerusakan","filterSubtitle":"Diagnostik & Laporan","filterReset":"Atur Ulang Semua","filterTypeSection":"JENIS KERUSAKAN","filterTypeAll":"Semua Jenis","filterTimeSection":"HORISON WAKTU","filterTimeAll":"Sepanjang Waktu","filterTime15m":"15 menit terakhir","filterTime1h":"1 jam terakhir","filterTime24h":"24 jam terakhir","filterTime7d":"7 hari terakhir","filterPlatformSection":"PLATFORM","filterPlatformAll":"Semua Platform","filterPlatformIos":"iOS","filterPlatformAndroid":"Android","filterEngineSection":"MESIN JS","filterEngineAll":"Semua Mesin","filterEngineHermes":"Hermes","filterSortSection":"Urut-urutan","filterSortNewest":"Terbaru Pertama (Default)","filterSortOldest":"Tertua Pertama","filterDiscard":"Buang","filterApply":"Terapkan ({{count}} Error)","frameCopy":"Salin","frameCopied":"Disalin","componentHierarchy":"Hirarki Komponen"},"mediaGallery":{"all":"Semua ({{count}})","photos":"Foto","videos":"Video","gifs":"GIF","purge":"Pembersihan ({{size}})","purgeTitle":"Bersihkan Semua Media","purgeMessage":"Tindakan ini akan menghapus secara permanen semua {{count}} tangkapan layar, video, dan GIF ({{size}}). Melanjutkan?","noMediaTitle":"Tidak Ada Media yang Diambil","noMediaDesc":"Gunakan tombol Rekam Foto atau Video di toolbar untuk mengambil tangkapan layar seluruh aplikasi, rekaman layar, atau GIF.","deleted":"Item media dihapus","allPurged":"Semua media yang ditangkap dibersihkan","converting":"Mengonversi...","convertToGif":"Konversikan ke GIF","playVideo":"Putar Video","playError":"Tidak dapat memutar video","convertedSuccess":"Berhasil diubah menjadi GIF Animasi!","convertFailed":"Gagal mengonversi ke GIF","share":"Bagikan","copyUri":"Salin URI","uriCopied":"File URI disalin ke clipboard","delete":"Hapus","deleteSelected":"Hapus ({{count}})","deleteSelectedTitle":"Hapus yang Dipilih","deleteSelectedMessage":"Apakah Anda yakin ingin menghapus {{count}} item media yang dipilih?","deletedCount":"Menghapus {{count}} item media","deleteTitle":"Hapus Media","deleteMessage":"Apakah Anda yakin ingin menghapus {{filename}}?","shareUnavailable":"Berbagi tidak tersedia di perangkat ini","showingResults":"Menampilkan hasil {{count}}.","showingFilteredResults":"Menampilkan {{count}} dari {{total}} hasil","selectedOfResults":"{{selected}} dari {{total}} hasil yang dipilih","minimize":"Minimalkan","expand":"Perluas Layar Penuh","collapse":"Keluar dari Layar Penuh","speed":"Kecepatan","loop":"Lingkaran","pause":"Jeda","play":"Mainkan"},"socket":{"title":"Soket Web","messages":"Pesan","overview":"Ikhtisar","params":"Param","rawAndCode":"Mentah & Kode","totalFrames":"JUMLAH BINGKAI","sentRecv":"DIKIRIM / DITERIMA","dataTransferred":"DATA DITRANSFER","searchFramesPlaceholder":"Cari muatan bingkai atau nama peristiwa...","sent":"Terkirim","recv":"Terima","emptyFrames":"Tidak ada frame yang diambil untuk koneksi ini","searchSocketsPlaceholder":"Telusuri URL atau pesan WebSocket...","noSockets":"Tidak Ada Koneksi WebSocket","noSocketsDesc":"Koneksi WebSocket, Socket.IO, dan WSS yang diambil akan muncul di sini secara real time.","noMatching":"Tidak ada WebSockets yang cocok","adjustSearchFilter":"Coba sesuaikan permintaan pencarian atau chip filter Anda.","simulateTraffic":"Simulasikan Lalu Lintas WebSocket Demo","clearTitle":"Hapus Semua Log WebSocket","clearMessage":"Apakah Anda yakin ingin menghapus semua sesi WebSocket yang direkam?","cleared":"Semua log WebSocket dihapus","deleteSelectedTitle":"Hapus WebSockets yang Dipilih","deleteSelectedMsg":"Apakah Anda yakin ingin menghapus {{count}} log WebSocket yang dipilih?","filterTitle":"Filter Koneksi WebSocket","showingConnections":"Menampilkan koneksi {{count}}","showingFilteredConnections":"Menampilkan {{filtered}} dari {{total}} koneksi","deletedCount":"Log WebSocket {{count}} dihapus","copiedUrls":"{{count}} URL disalin ke papan klip","webSocketTraffic":"Lalu Lintas WebSocket (koneksi {{count}})"},"push":{"title":"Pemberitahuan Dorong","preview":"Pratinjau","payload":"Muatan Khusus","deliveryMetadata":"Metadata Pengiriman & Pesan","rawPayload":"Muatan Mentah","link":"Tautan","appNotification":"Pemberitahuan Aplikasi","now":"sekarang","domainFields":"Bidang Khusus Domain","searchPlaceholder":"Cari pemberitahuan push...","noNotifications":"Tidak Ada Pemberitahuan Push","noNotificationsDesc":"Firebase FCM, APN Apple, OneSignal, dan peristiwa push khusus yang diambil akan muncul di sini secara real-time.","filterTitle":"Filter Pemberitahuan Push","clearTitle":"Hapus Riwayat Dorong","clearMessage":"Apakah Anda yakin ingin menghapus semua catatan pemberitahuan push?","cleared":"Riwayat pemberitahuan push dihapus","foreground":"Latar depan","background":"Latar Belakang","quit":"Berhenti"},"debugging":{"title":"Debugging & Alat","buildSuccess":"Pembuatan APK Berhasil Dihasilkan!","buildFailed":"Gagal Pembuatan: {{error}}","buildCancelled":"Pembangunan dibatalkan oleh pengguna"},"about":{"title":"Tentang & Spesifikasi","subtitle":"Info paket, spesifikasi runtime & muatan diagnostik","heroTitle":"Inspektur Dalam Aplikasi","heroDescription":"Proses debug, logging, dan QA pendamping all-in-one di perangkat untuk aplikasi React Native & Expo. Dirancang untuk pengembang, penguji QA, dan tim produk.","upToDate":"Terkini","versionAvailable":"v{{version}} Tersedia","copyUpgradeCommand":"Salin Perintah Peningkatan (v{{version}})","copiedUpgradeCommand":"Menyalin perintah peningkatan npm!","appInformation":"INFORMASI APLIKASI","appName":"Nama Aplikasi","packageIdentifier":"Pengenal Paket","appVersion":"Versi Aplikasi","environment":"Lingkungan Hidup","developmentDebug":"Pengembangan (Debug)","productionRelease":"Produksi (Rilis)","platform":"Peron","appleIos":"apel iOS","googleAndroid":"Google Android","features":"APA YANG DILAKUKAN INSPEKTOR DALAM APLIKASI","featureNetwork":"Pemantau Lalu Lintas Jaringan","featureNetworkDesc":"Periksa permintaan, respons, header, dan latensi server HTTP dan HTTPS API dengan grafik waktu air terjun.","featureConsole":"Pencatat Konsol","featureConsoleDesc":"Lihat log konsol real-time, peringatan, dan kesalahan dengan asal file sumber dan jejak tumpukan yang diformat.","featureAnalytics":"Telemetri Analisis","featureAnalyticsDesc":"Lacak peristiwa Firebase dan analisis khusus, tampilan layar, dan properti pengguna secara langsung di perangkat.","featureRedux":"Status & Tindakan Redux","featureReduxDesc":"Periksa tindakan yang dikirim, payload, dan perbedaan pohon status tanpa menghubungkan alat pendamping desktop.","featureCapture":"Pengambilan Layar & Video","featureCaptureDesc":"Ambil tangkapan layar dan rekam sesi pengujian untuk dibagikan kepada tim QA dan teknik secara instan.","featureCrash":"Penangkap & Diagnostik Kecelakaan","featureCrashDesc":"Melindungi dari kerusakan asli dan menyediakan metrik kesehatan perangkat termasuk RAM, baterai, dan penyimpanan.","github":"GitHub","githubSub":"Bintang & kode sumber","npmRegistry":"Registri NPM","npmRegistrySub":"Pembaruan paket","documentation":"Dokumentasi","documentationSub":"Panduan integrasi","reportIssue":"Laporkan Masalah","reportIssueSub":"Bantuan & dukungan","releaseNotes":"Catatan Rilis","releaseNotesSub":"Apa yang baru","copyInstall":"Salin Instal","copyInstallSub":"perintah npm / benang","copiedInstallCommand":"Perintah instalasi paket disalin!","footerLicense":"React Native In-App Inspector · Lisensi MIT","footerTagline":"Alat debugging pada perangkat tanpa konfigurasi"}}
@@ -0,0 +1 @@
1
+ {"common":{"cancel":"Annulla","clear":"Chiaro","clearAll":"Cancella tutto","close":"Chiudi","loading":"Caricamento...","success":"Successo","pending":"In sospeso","failed":"Fallito","copy":"Copia","copied":"Copiato!","copyJson":"Copia JSON","collapseAll":"Comprimi tutto","expandAll":"Espandi tutto","viewOnNpm":"Visualizza su NPM","later":"Più tardi","source":"FONTE","minimize":"Ridurre al minimo","tapToExpand":"Tocca per espandere","open":"Aperto","share":"Condividi","openInBrowser":"Apri nel browser","openInBrowserPrompt":"Sei sicuro di voler aprire questo URL nel tuo browser esterno?","delete":"Elimina","reset":"Ripristina","save":"Salva","edit":"Modifica","add":"Aggiungi","search":"Cerca","filter":"Filtra","sort":"Ordina","refresh":"Aggiorna","retry":"Riprova","confirm":"Conferma","yes":"Sì","no":"No","ok":"Va bene","done":"Fatto","back":"Indietro","next":"Avanti","show":"Mostra","hide":"Nasconditi","select":"Seleziona","selectAll":"Seleziona tutto","deselectAll":"Deseleziona tutto","noResults":"Nessun risultato trovato","items":"elementi","of":"di","showing":"Mostrare","active":"Attivo","inactive":"Inattivo","enabled":"Abilitato","disabled":"Disabilitato","live":"Vivi","connected":"Connesso","disconnected":"Disconnesso","version":"Versione","update":"AGGIORNAMENTO","unknown":"Sconosciuto"},"header":{"updateAvailableTitle":"Aggiornamento disponibile","updateAvailableMessage":"react-native-inapp-inspector v{{version}} è disponibile su NPM (installato: v{{installed}}).","clearEverythingTitle":"Cancella tutto","clearEverythingMessage":"Ciò cancella tutte le schede: API, registri, analisi, sequenza temporale Redux e cronologia degli arresti anomali. Continuare?","photo":"Foto","record":"Registra","rec":"REC","clear":"Chiaro","about":"Circa","screenshotCaptured":"📸 Screenshot catturato e salvato","screenshotFailed":"Impossibile acquisire lo screenshot","screenshotError":"Errore durante l'acquisizione dello screenshot","recordingStarted":"🔴 È iniziata la registrazione del video","recordingSaved":"🎥 Registrazione salvata ({{duration}}s)","recordingError":"Errore di registrazione","recordingStartFailed":"Impossibile avviare la registrazione","paramCount":"{{count}} param","paramCount_plural":"{{count}} param","sourceFirebase":"FB","sourceManual":"UOMO","firebase":"base di fuoco","manual":"manuale","aboutSpecs":"Informazioni e specifiche","live":"Vivi","keys":"{{count}} tasti","frames":"{{count}} fotogrammi","sliceBadge":"FETTA"},"tabs":{"apis":"API","logs":"Registri","analytics":"Analitica","redux":"Redux","crash":"Schianto","push":"Spingi","socket":"WebSocket","device":"Dispositivo","storage":"Stoccaggio","media":"Screencast","debugging":"Debug"},"settings":{"mainTitle":"Impostazioni e moduli","mainSubtitle":"Gestisci moduli e preferenze","requiredBadge":"RICHIESTO","defaultBadge":"PREDEFINITO","notConnectedBadge":"NON CONNESSO","notDetectedBadge":"NON RILEVATO","readOnlyBadge":"SOLO LEGGERE","coreBadge":"NUCLEO","activeBadge":"ATTIVO","dormantBadge":"DORMENTE","protectedBadge":"PROTETTO","modulesAndTools":"Moduli e strumenti","uiPreferences":"Interfaccia utente e visualizzazione","ramLimits":"RAM e limiti","screenVideoCapture":"Cattura schermo e video","zeroOverheadTitle":"Zero spese generali di sfondo","zeroOverheadDesc":"Seleziona i moduli che desideri attivare. I moduli disabilitati consumano lo 0% di CPU e memoria fino al salvataggio.","unsavedPending":"● Selezioni non salvate in sospeso","allSynchronized":"Tutti i moduli sincronizzati","modulesActive":"{{active}} di {{total}} moduli attivi","saveChanges":"Salva modifiche","settingsSaved":"Impostazioni salvate","settingsSavedDesc":"Le configurazioni dei moduli attivi sono state aggiornate con successo.","configure":"Configura","appearanceTheme":"ASPETTO E TEMA","windowLayout":"FINESTRA E DISPOSIZIONE","startupDefault":"SCHERMATA DI AVVIO E PREDEFINITA","logFiltersDeduplication":"FILTRI DI LOG E DEDUPLICAZIONE","resetSettings":"Ripristina tutte le impostazioni","resetSettingsDesc":"Ripristina le preferenze personalizzate ai valori predefiniti","reset":"Ripristina","reduxNotConnectedTip":"Il negozio Redux non è connesso. Chiama connectReduxStore(store) o usa inspectorReduxMiddleware per abilitare.","analyticsNotConnectedTip":"L'analisi non è inizializzata. Chiama setupAnalyticsLogger(analytics()) per abilitare.","tabVisibility":"Visibilità delle schede","tabVisibilityDescription":"Scegli quali moduli visualizzare nell'ispettore","settingsTitle":"Impostazioni","back":"Indietro","apis":{"title":"Impostazioni API","total":"Totale: {{count}}","maxRequestLogs":"Numero massimo di registri di richieste","maxRequestLogsDescription":"Dimensione del buffer delle richieste di rete conservate in memoria","clearNetworkLogs":"Cancella registri di rete","clearNetworkLogsDescription":"{{count}} richieste archiviate","networkLogsCleared":"Registri di rete cancellati.","showStatusFilter":"Filtro di stato","showStatusFilterDescription":"Mostra i chip di stato nell'elenco delle API","showMethodFilter":"Metodo Filtro","showMethodFilterDescription":"Mostra i chip del metodo nell'elenco delle API","defaultTabDescription":"La scheda su cui si apre l'ispettore"},"logs":{"title":"Impostazioni dei registri","total":"Totale: {{count}}","maxConsoleLogs":"Registri console massimi","maxConsoleLogsDescription":"Quanti messaggi della console conservare","logLevels":"Gravità del registro","logLevelsDescription":"Seleziona quali gravità acquisire nei log","showInfo":"Mostra i registri delle informazioni","showInfoDesc":"Registri informativi e stampe di debug","showWarn":"Mostra i registri degli avvisi","showWarnDesc":"Avvisi e deprecazioni","showError":"Mostra i log degli errori","showErrorDesc":"Errori ed eccezioni di runtime","clearConsoleLogs":"Cancella i registri della console","clearConsoleLogsDescription":"{{count}} log archiviati","consoleLogsCleared":"Registri della console cancellati."},"analytics":{"title":"Impostazioni di analisi","total":"Eventi: {{count}}","maxAnalyticsEvents":"Eventi catturati","maxAnalyticsEventsDescription":"{{count}} eventi di analisi memorizzati nel buffer","clearAnalyticsEvents":"Cancella cronologia analisi","clearAnalyticsEventsDescription":"Cancella tutti gli eventi di telemetria acquisiti","analyticsEventsCleared":"Eventi di analisi cancellati."},"redux":{"title":"Impostazioni Redux","reducers":"Riduttori: {{count}}","autoRefresh":"Archivio con aggiornamento automatico","autoRefreshDescription":"Cattura l'albero degli stati del negozio Redux ad ogni spedizione","defaultJsonExpandDepth":"Profondità di espansione JSON predefinita","defaultJsonExpandDepthDescription":"Profondità iniziale dell'albero degli stati Redux da espandere automaticamente","clearReduxState":"Cancella stato Redux","clearReduxStateDescription":"Reimposta l'istantanea dello stato corrente nell'ispettore","clearReduxStateEmpty":"Nessuna istantanea del negozio registrata","reduxStateCleared":"Istantanea dello stato Redux cancellata.","clearReduxTimeline":"Cancella la sequenza temporale di Redux","clearReduxTimelineDescription":"Rimuovi tutta la cronologia delle azioni acquisite","reduxTimelineCleared":"La cronologia delle azioni Redux è stata cancellata."},"bundle":{"title":"Impostazioni del pacchetto","sourceBundler":"Bundler di fonti Metro","sourceBundlerDesc":"Analizza gli alberi dei moduli live e calcola le suddivisioni delle dimensioni binarie","clearCache":"Cancella cache del pacchetto","clearCacheDesc":"Forza il recupero e l'analisi del bundle JS","cacheCleared":"Cache di analisi del bundle cancellata."},"performance":{"title":"Impostazioni delle prestazioni","frameMeasurement":"Misurazione del fotogramma live","frameMeasurementDesc":"Campiona i frame rate UI/JS e rileva re-render inutili","clearEvents":"Cancella eventi di performance","clearEventsDesc":"Ripristina la cronologia dei jank registrati e degli FPS","eventsCleared":"Eventi di prestazione cancellati."},"crash":{"title":"Impostazioni di arresto anomalo","maxCrashLogs":"Registri di arresti anomali massimi","maxCrashLogsDesc":"Quanti record di crash conservare nella storia","globalGuard":"Guardia d'incidente globale","globalGuardDesc":"Intercetta direttamente gli errori nativi, JS e di rendering","clearHistory":"Cancella cronologia arresti anomali","clearHistoryDesc":"{{count}} registri degli arresti anomali archiviati","historyCleared":"Registri degli arresti anomali cancellati."},"media":{"title":"Cattura schermo e video","badge":"H.264/GIF nativo","desc":"Configura formati di screenshot, qualità, FPS video, narrazione audio, registrazione e archiviazione GIF","screenshotCardTitle":"Formati e qualità degli screenshot","screenshotCardDesc":"Configurazione snapshot a finestra intera ad alta risoluzione","imageFormat":"Formato immagine","imageFormatDesc":"PNG (senza perdita di dati), JPEG (compatto) o WEBP","autoHide":"Nascondi automaticamente la sovrapposizione dell'ispettore","autoHideDesc":"Esclude l'interfaccia utente dell'ispettore dagli screenshot","enabled":"ABILITATO","videoCardTitle":"Registrazione video e GIF","videoCardDesc":"Registrazione MP4 H.264 ed esportazione GIF animate","audioMode":"Modalità narrazione audio","audioModeDesc":"Disattivato, Audio dell'app o Narrazione vocale","frameRate":"Frequenza fotogrammi","frameRateDesc":"Un FPS più elevato produce registrazioni più fluide","gifAutoOpt":"Ottimizzazione automatica GIF","gifAutoOptDesc":"Converte registrazioni video per GitHub PR e Slack","purgeAll":"Elimina tutti i media catturati","purgeAllDesc":"Elimina tutti gli screenshot, i video e le GIF archiviati","purgeCacheBtn":"Svuota cache","purgeConfirmTitle":"Eliminazione dell'archiviazione dei supporti","purgeConfirmMessage":"Ciò elimina tutti i file multimediali catturati dalla cache locale. Continuare?","purgedSuccess":"Archiviazione multimediale eliminata"},"general":{"darkMode":"Tema della modalità oscura","darkModeDescription":"Alterna l'elegante estetica scura o il contrasto chiaro","modalHeight":"Altezza della finestra di ispezione","modalHeightDescription":"Percentuale di copertura dello schermo modale","modalAnimation":"Animazione di transizione","modalAnimationDescription":"Stile di presentazione in ingresso e in uscita","duplicateLogs":"Mostra registri duplicati","duplicateLogsDescription":"Disattivato: le voci ripetute identiche vengono compresse in badge ×N","defaultOpeningTab":"Scheda di apertura predefinita","defaultOpeningTabDesc":"Scheda iniziale attiva quando si tocca il pulsante di avvio","activeConsoleLogLevels":"Livelli di registro della console attiva","activeConsoleLogLevelsDesc":"Seleziona quali gravità acquisire nei log","resetToDefaults":"Ripristina le impostazioni predefinite","resetToDefaultsDescription":"Ripristina tutte le impostazioni dell'ispettore","resetConfirmationTitle":"Ripristina impostazioni","resetConfirmationMessage":"Tutte le impostazioni sono state ripristinate ai valori predefiniti.","storageStatus":"Archiviazione persistente","storageStatusEnabled":"Memorizzazione delle impostazioni: persistente ({{type}})","storageStatusEnabledDesc":"Le tue preferenze e la visibilità del modulo persistono anche dopo i riavvii dell'app.","storageStatusDisabled":"Archiviazione delle impostazioni: in memoria (temporanea)","storageStatusDisabledDesc":"Le preferenze vengono ripristinate all'uccisione dell'app. Passa l'archiviazione personalizzata a <NetworkInspector storage={...} /> per persistere su Android.","language":"Lingua","languageDescription":"Seleziona la lingua di visualizzazione dell'interfaccia","selectLanguage":"Seleziona lingua"},"configureSubtitle":"Configurare i parametri del modulo","resetAlertTitle":"Ripristina tutte le impostazioni","resetAlertMessage":"Ciò ripristina tutte le preferenze di visibilità del modulo e dell'interfaccia utente ai valori predefiniti. Continuare?","settingsReset":"Ripristina impostazioni","settingsResetMessage":"Tutte le impostazioni sono state ripristinate ai valori predefiniti.","pushHistoryCleared":"La cronologia delle notifiche push è stata cancellata","socketHistoryCleared":"Cronologia WebSocket cancellata","memory":{"manualTitle":"Pulizia manuale della memoria","manualDescription":"Elimina le voci più vecchie in tutti gli archivi di registro e nella RAM libera","pruned":"{{count}} elementi eliminati dalla memoria"},"simulator":{"salesforce":"Push simulato di Salesforce Marketing Cloud","fcm":"Push FCM Firebase simulato","apns":"Push APN Apple simulati","deepLink":"Push simulato del collegamento diretto","chat":"Sessione WebSocket di chat in tempo reale simulata","crypto":"Flusso simulato di Binance Crypto Ticker","socketio":"Sessione Socket.IO v4 simulata","echo":"Test di eco WebSocket simulato","screenshotSaved":"Screenshot catturato e salvato!"}},"network":{"title":"API","searchPlaceholder":"Cerca per URL, stato o metodo...","emptyTitle":"Nessuna chiamata API ancora catturata","emptySubtitle":"Le richieste di rete verranno visualizzate qui mentre utilizzi l'app.","reload":"Ricarica","clearTitle":"Cancella registri di rete","clearMessage":"Sei sicuro di voler cancellare tutti i registri di rete acquisiti?","detailTabs":{"metadata":"Metadati","headers":"Intestazioni","request":"Richiesta","response":"Risposta"},"requestTitle":"Richiesta","responseTitle":"Risposta","searchRequest":"Richiesta di ricerca...","searchResponse":"Cerca risposta...","searchHeaders":"Cerca intestazioni...","requestHeaders":"Richiedi intestazioni","responseHeaders":"Intestazioni di risposta","diffTitle":"Diff","noResponse":"Nessun corpo di risposta","noRequest":"Nessun corpo della richiesta","statusFailed":"Fallito","urlHeader":"URL","methodHeader":"Metodo","statusHeader":"Stato","durationHeader":"Durata","sizeHeader":"Dimensioni","triggeredAt":"Attivato a","contentType":"Tipo di contenuto","sourcePage":"Pagina di origine","sourcePageUnknown":"Fonte sconosciuta","loadMore":"Carica di più","groupByPage":"Raggruppa per pagina","groupByDomain":"Raggruppa per dominio","groupByNone":"Elenco","domain":"Dominio","page":"Pagina","requests":"{{count}} richieste","requests_plural":"{{count}} richieste","noFilteredResults":"Nessuna richiesta corrisponde ai filtri attuali","scrollToTop":"Scorri verso l'alto","copyCurl":"Copia arricciatura","copyFetch":"Copia lo snippet di recupero","emptyResponse":"Risposta vuota","bodyHidden":"{Corpo nascosto}","queryParams":"Parametri query","fullUrl":"URL completo","open":"Aperto","showMore":"Mostra altro","showLess":"Mostra meno","failedNetworkError":"Non riuscito (errore di rete)","noMatchingHeaders":"Nessuna intestazione corrispondente","diffHidden":"{ Diff. nascosta }","noDiff":"Nessuna differenza rispetto all'API precedente.","healthTitle":"Integrità della rete e telemetria","successRate":"Tasso di successo","avgLatency":"Latenza media","p95Latency":"P95 Latenza","bandwidth":"Larghezza di banda","fastest":"Il più veloce","slowest":"Il più lento","timingWaterfall":"Cascata temporale e latenza","throughput":"Produttività","performanceTier":"Livello di prestazioni","perf":{"fast":"Veloce (< 200ms)","moderate":"Moderato (200-800 ms)","slow":"Lento (> 800 ms)"},"jsonViewer":{"pretty":"Carina","raw":"Crudo","table":"Tabella","emptyObject":"Oggetto vuoto","emptyTable":"Oggetto vuoto","key":"Chiave","value":"Valore"},"showingRequests":"Visualizzazione di {{count}} richieste","showingFilteredRequests":"Visualizzazione di {{filtered}} di {{total}} richieste","status200":"200 ok","status201":"201 Creato","status204":"204 Nessun contenuto","status304":"304 Non modificato","status400":"400 Richiesta errata","status401":"401 Non aut","status403":"403 Proibito","status404":"404 Non trovato","status500":"Errore 500","shareError":"Errore di condivisione","shareErrorMessage":"Impossibile aprire il foglio di condivisione"},"console":{"title":"Registri","searchPlaceholder":"Cerca nei registri...","emptyTitle":"Nessun registro della console ancora","emptySubtitle":"L'output della console dalla tua app verrà visualizzato qui.","analyticsBadge":"Analitica","userLogBadge":"registro utente","jsonTitle":"Registra JSON","messageTitle":"Messaggio di registro","search":"Registro di ricerca...","searchJson":"Cerca nel registro JSON...","logMessage":"Registra il messaggio","consoleLog":"Registro della console","characters":"{{count}} caratteri","duplicates":"×{{count}} duplicati","showMore":"Mostra di più","showLess":"Mostra meno","clearTitle":"Cancella registri","clearMessage":"Sei sicuro di voler cancellare tutti i registri della console?","seeMore":"Mostra di più","noResults":"Nessun registro corrisponde ai filtri attuali","filterAll":"Tutto","filterInfo":"Informazioni","filterWarn":"Avvertire","filterError":"Errore","filterUserLog":"Registro utente","filterAnalytics":"Analitica","tabOutput":"Uscita","tabArgs":"Argomenti ({{count}})","tabStack":"Traccia dello stack","tabMetadata":"Metadati","callStack":"Stack di chiamate ({{count}} frame)","errorStack":"Stack di eccezioni errori ({{count}} frame)","callOriginStack":"Chiama lo stack di origine","errorThrownStack":"Stack generato da errori","appCodeScope":"🎯 Codice app ({{count}})","allFramesScope":"📜 Tutti i fotogrammi ({{count}})","cardsView":"Carte","rawTraceView":"Crudo","noStackAvailable":"Nessun frame dello stack di chiamate trovato corrispondente al filtro attivo.","originBadge":"ORIGINE N. 1","appCodeBadge":"Codice dell'app","dependencyBadge":"Dipendenza","nativeBadge":"Nativo","hermesVmBadge":"Ermes V.M","fullStackTrace":"Traccia dello stack completo","lineCol":"Linea {{line}}, colonna {{col}}","lineColShort":"L{{line}}:C{{col}}","searchInLogDetails":"Cerca nei dettagli del registro...","showingLogs":"Visualizzazione di {{count}} log","showingFilteredLogs":"Visualizzazione di {{filtered}} di {{total}} log","filteredBy":"Filtrato per {{filters}} ({{filtered}} di {{total}} log)","log":"Registro","info":"Informazioni","warning":"Avvertire","error":"Errore","debug":"Debug"},"analytics":{"title":"Analitica","searchPlaceholder":"Cerca eventi...","emptyTitle":"Nessun evento di analisi ancora","emptySubtitle":"Gli eventi di Analytics verranno visualizzati qui mentre la tua app li tiene traccia.","clearTitle":"Cancella analisi","clearMessage":"Sei sicuro di voler cancellare tutti gli eventi di analisi?","eventParams":"{{count}} param","eventCount":"{{count}} eventi","userProperties":"Proprietà utente","userId":"ID utente","defaultParameters":"Parametri predefiniti","collectionEnabled":"Raccolta abilitata","screenView":"schermata_vista","eventDetails":"Dettagli dell'evento","parameters":"Parametri","noParams":"Nessun parametro","recentEvents":"Eventi recenti","analyticsError":"Errore di analisi","duplicate":"Duplicato","params":"parametri","props":"oggetti di scena","item":"elemento","items":"elementi","pageViewCategory":"Visualizzazione pagina","ecommerceCategory":"E-commerce","systemCategory":"Sistema","customCategory":"Personalizzato","realtimeStream":"Attività in tempo reale","liveTelemetry":"Telemetria in tempo reale","eventsInWindow":"eventi in finestra","eventVelocity":"{{rate}} ev/min","peakVolume":"Picco: {{count}}","time30mAgo":"-30m","time20mAgo":"-20m","time10mAgo":"-10m","timeNow":"ORA","selectedBucket":"Bucket: {{time}} ({{count}} eventi)","totalRevenue":"Entrate","activeDistribution":"Categoria Spaccata","allCategory":"Tutto","screensCategory":"Schermi","overviewTab":"Panoramica","jsonTreeTab":"Albero JSON","rawPayloadTab":"Carico utile grezzo","sessionContext":"Contesto della sessione","userPropertiesSnapshot":"Istantanea delle proprietà utente","parameterKeys":"Parametri ({{count}})","searchParameters":"Cerca parametri...","noParamsFound":"Nessun parametro corrisponde alla tua ricerca","sourceFirebase":"FIREBASE GA4","sourceCustom":"PERSONALIZZATO/MANUALE"},"redux":{"title":"Redux","searchPlaceholder":"Cerca stato o azioni...","emptyTitle":"Nessun negozio Redux collegato","emptySubtitle":"Connetti il tuo negozio per controllarne lo stato e le azioni.","stateTab":"Stato","actionsTab":"Azioni","clearTitle":"Cancella la sequenza temporale di Redux","clearMessage":"Sei sicuro di voler cancellare la cronologia delle azioni inviate?","noActions":"Nessuna azione ancora inviata. Attiva un'azione nell'app per popolare la cronologia.","noSearchResults":"Nessuna azione corrisponde alla tua ricerca.","lastAction":"Ultima azione","actionHistory":"Storia delle azioni","affectedSlices":"Fette interessate","noAffectedSlices":"Nessuno","dispatchTime":"Spedito a","prevState":"Stato precedente","nextState":"Stato successivo","viewDiff":"Visualizza differenze","emptyState":"Lo stato è vuoto","rootState":"Stato radice","connectionStatus":"Connesso","connectionStatusNone":"Non connesso","autoRefresh":"Aggiornamento automatico","paused":"In pausa","liveState":"Stato vivo","timeline":"Cronologia","persisted":"Persistito","storage":"Stoccaggio","metadata":"Metadati","inMemory":"In memoria","slice":"FETTA","rootKeys":"Chiavi di radice","size":"Dimensioni","actions":"azioni","keys":"Chiavi","last":"Ultimo","live":"Vivi","loading":"Caricamento in corso","error":"Errore","empty":"Vuoto","payload":"Carico utile","actionPayload":"Carico utile dell'azione:","stateChangesDiff":"Cambiamenti di stato (Diff):","tapToInspectAction":"Tocca per ispezionare il payload dell'azione e le modifiche alle differenze","noDispatchedActions":"Nessuna azione inviata registrata ancora per questa sezione.","sliceJson":"Taglia JSON","originSaga":"SAGA","originThunk":"GRAZIE","originUi":"interfaccia utente","originDirect":"DIRETTO","originListener":"ASCOLTATORE","triggeredFrom":"Attivato da:","openInEditor":"Apri nell'editor","callStack":"Traccia dello stack di chiamate","sliceOrigin":"Fetta/Origine","activeSlices":"FETTE ATTIVE","totalState":"STATO TOTALE","lastActionHeader":"ULTIMA AZIONE","initialState":"Stato iniziale (nessuna azione ancora inviata)","noStoreConnected":"Nessun negozio Redux connesso","connectStoreTip":"Chiama connectReduxStore(store) o utilizza inspectorReduxMiddleware all'inizializzazione dell'app.","clearPersistedTitle":"Cancella stato persistente","clearPersistedMessage":"Vuoi eliminare lo spazio di archiviazione persistente per la sezione \"{{slice}}\"?","clearedPersisted":"Lo stato persistente è stato cancellato.","clearPersistedError":"Impossibile cancellare lo stato persistente."},"device":{"title":"Dispositivo","searchPlaceholder":"Cerca specifiche, UDID, IP, schermo...","subTabs":{"overview":"Panoramica","hardware":"Hardware","network":"Rete e IP","display":"Visualizzazione","runtime":"Durata e app","security":"Sicurezza e ID"},"sections":{"overview":"PANORAMICA DEL DISPOSITIVO","hardware":"HARDWARE E SISTEMA","network":"RETE E CONNETTIVITÀ","display":"DISPLAY E GEOMETRIA","runtime":"DURATA E AMBIENTE","security":"IDENTIFICATORI E SICUREZZA"},"copied":"Copiato {{label}}","copiedJson":"Report JSON completo del dispositivo copiato!","copiedMarkdown":"Rapporto Markdown copiato negli appunti!","live":"VIVI","ipAddress":"INDIRIZZO IP","ramUsedTotal":"RAM (UTILIZZATA/TOTALE)","uptime":"TEMPO DI UTILIZZO"},"storage":{"title":"Stoccaggio","searchPlaceholder":"Cerca chiavi, valori, tipi...","subTabs":{"asyncStorage":"AsyncStorage","mmkv":"MMKV"},"clearTitle":"Cancella driver di archiviazione","clearMessage":"Vuoi eliminare tutte le chiavi in {{driver}}?","clearConfirm":"Cancella tutto","emptyTitle":"Nessuna voce di archiviazione","emptySubtitle":"Lo spazio di archiviazione è attualmente vuoto per questo driver.","addKey":"Aggiungi chiave","add":"Aggiungi","editKey":"Modifica chiave","createKey":"Crea chiave","save":"Salva","saveKey":"Salva chiave","keyName":"Nome chiave","value":"Valore","valueContent":"Contenuto di valore","type":"Digitare","beautifyJson":"Abbellisci JSON","loading":"Caricamento voci di archiviazione...","deleteKeyTitle":"Elimina chiave","deleteKeyMessage":"Vuoi eliminare la chiave \"{{key}}\"?","asyncStorage":"AsyncStorage","mmkv":"MMKV","deleteConfirm":"Elimina","cleared":"Spazio di archiviazione cancellato"},"footer":{"endOfList":"Hai raggiunto la fine dell'elenco","loadMore":"Carica {{count}} altro","loadMoreRequests":"Carica {{count}} altre richieste","allLoaded":"Tutte le {{count}} richieste caricate","showingOf":"Visualizzazione di {{count}} di {{total}} {{label}}"},"performance":{"title":"Prestazioni","fpsTarget":"Monitor di destinazione da 60 FPS","healthScore":"Punteggio salute FPS","excellent":"Eccellente (60 FPS)","good":"Buono (Minor Janks)","needsOptimization":"Necessita di ottimizzazione","liveFps":"FPS in tempo reale e ciclo di aggiornamento","realtimeWindow":"In tempo reale (finestra di 1 s)","uiRenderThread":"Thread di rendering dell'interfaccia utente","optimalFrame":"Ottimale (<16,6 ms)","slowFrame":"Fotogramma lento (>16,6 ms)","budgetUsage":"Utilizzo del budget di 60 FPS","avgFrameTime":"Durata media del fotogramma","peakTime":"Orario di punta","jsThread":"Discussione JS","uiThread":"Discussione dell'interfaccia utente","jsiLatency":"Latenza JSI","heapImpact":"Impatto sull'heap","optimizationTip":"Suggerimento per l'ottimizzazione:","recordedEvents":"Eventi e interazioni registrati","liveStream":"Streaming della sessione dal vivo","emptyTitle":"Nessun evento di performance ancora acquisito","emptySubtitle":"Esegui azioni nella tua app per visualizzare i tempi dei thread, i costi di rendering e il monitoraggio FPS.","tabOverview":"Panoramica","tabRenders":"Rende","tabInteractions":"Interazioni","tabMemory":"Memoria","filterAll":"Tutto","filterSlow":"Lento (>16ms)","filterCritical":"Critico (>33ms)","searchPlaceholder":"Componente di ricerca, interazione...","avgRenderTime":"Rendering medio","totalRenders":"Rendering totali","renderCost":"Costo rendering","slowRenders":"Rendering lenti","unnecessaryRenders":"Rendering inutili","heapAllocated":"Heap allocato","heapLimit":"Limite dell'heap","gcEvents":"Eventi GC","leakRisk":"Rischio di perdite","lowRisk":"Basso rischio","mediumRisk":"Rischio medio","highRisk":"Alto rischio","memoryTimeline":"Cronologia della memoria","clearPerformance":"Cancella dati sulle prestazioni","clearConfirmation":"Vuoi cancellare tutti i dati di monitoraggio delle prestazioni?","liveFpsDip":"Calo della frequenza dei fotogrammi in tempo reale ({{fps}} FPS)","liveFpsDipDetail":"Durata del frame del thread principale estesa a {{duration}}ms durante l'aggiornamento della vista.","liveFpsDipAdvice":"Esecuzione JavaScript intensiva durante la presentazione ritardata del passaggio di frame.","yogaLayout":"Layout Flexbox Yoga","hermesGc":"Raccolta dei rifiuti di Hermes","jsEngine":"Motore JS","uiReconciler":"Riconciliatore dell'interfaccia utente","memoryHeap":"Mucchio di memoria","allLogs":"Tutti i registri","jankySlow":"Janky / Lento","navigation":"Navigazione","components":"Componenti","memoryGc":"Memoria e GC","networkIo":"Rete e I/O","catAll":"Tutto","catJanky":"Janky","catNavigation":"Navigazione","catRender":"Componenti","catMemory":"Memoria","catIo":"I/O","recording":"Registrazione","paused":"In pausa","budgetHeadroom":"~{{time}}ms margine di manovra ({{percent}}%)","jsExec":"Dirigente JS: {{time}}ms","yogaLayoutTime":"Disposizione yoga: {{time}}ms","uiRenderTime":"Rendering dell'interfaccia utente: {{time}}ms","freeTime":"Gratuito: {{time}}ms","heapAllocatedSub":"{{allocated}} MB allocati","hermesAot":"Hermes (AOT)","v8Jit":"V8 (JIT)","jscEngine":"JSC","bytecodeCompiled":"Bytecode compilato","jitEngine":"Motore JIT","webkitEngine":"Motore Webkit","fabricJsi":"Tessuto/JSI","paperBridge":"Carta/Ponte","directCppBindings":"Associazioni dirette C++","asyncJsonBridge":"Bridge JSON asincrono","fpsUnit":"FPS","jsLag":"JS Lag","jankRate":"Tasso di Jank","fpsAreaChartTitle":"Streaming e jitter FPS in tempo reale (30 secondi)","fpsAreaChartSub":"Obiettivo live da 60 FPS con misurazione continua della varianza dei fotogrammi","frameLatencyDistTitle":"Distribuzione della latenza dei frame","frameLatencyDistSub":"Proporzione di frame consegnati entro un budget di 16,6 ms","optimalBucket":"< 16,6 ms (60 FPS)","minorJankBucket":"16,7 - 33,3 ms (30-60 FPS)","noticeableJankBucket":"33,4 - 50,0 ms (20-30 FPS)","severeFreezeBucket":"> 50,0 ms (< 20 FPS)","hermesHeapTrendTitle":"Memoria e dinamica degli heap di Hermes","hermesHeapTrendSub":"Allocazione in tempo reale e cicli di scavenge GC generazionali","live":"Vivi","msTotal":"{{duration}}ms totali • {{time}}","droppedFrames":"{{count}} Abbandonato","zeroDropped":"0 Eliminato","frameBudgetMs":"{{time}}ms/fotogramma ({{budget}}% budget)","target60Fps":"Obiettivo 60 FPS • {{fps}} FPS effettivi","frameDuration":"Durata del fotogramma","frameDurationVal":"{{time}} ms (budget di 16,67 ms)","frameUtilization":"Budget del frame superato","frameBudgetOk":"Spazio per il budget del telaio","bottleneck":"Collo di bottiglia","jsBound":"Rilegatura del thread JS","uiBound":"Thread dell'interfaccia utente associato","balanced":"Equilibrato","smooth":"60 FPS fluidi","minorJank":"Balbuzie minore","noticeableJank":"Notevole Jank","severeFreeze":"Forte congelamento","screenContext":"Contesto dello schermo","profileReason1":"Prop della funzione freccia in linea passati ai bambini (onAddToCart={() => ...})","profileReason2":"Selettore Redux non memorizzato che crea un nuovo riferimento all'oggetto ad ogni invio","profileReason3":"Oggetto di stile dinamico creato nel corpo del rendering ({ marginTop: insets.top + 10 })","profileReason4":"FlatList manca getItemLayout causando passaggi di misurazione del layout asincrono","profileReason5":"Funzione renderItem definita in modo anonimo all'interno del corpo JSX","profileReason6":"Elenca i componenti dell'elemento non inseriti in React.memo","profileReason7":"Schermata principale ri-renderizzata sull'evento mostra/nascondi tastiera","profileReason8":"Riferimento di richiamata instabile passato al pulsante di pagamento","profileReason9":"Lo stato del valore TextInput attiva il re-rendering principale a ogni pressione di un tasto senza rimbalzo","profileReason10":"Passaggio dell'oggetto filtro non memorizzato ({categoria, minPrice}) ai chip secondari","profileReason11":"Riconvalida della cache delle immagini avatar all'aggiornamento della sessione di autenticazione","fixUseCallbackTitle":"Avvolgi i gestori eventi in usoCallback","fixUseCallbackDesc":"Le funzioni inline ricreano un nuovo riferimento di memoria ad ogni rendering, invalidando React.memo sui componenti figlio.","fixCreateSelectorTitle":"Memoize Selettori Redux / Zustand con superficialeEqual","fixCreateSelectorDesc":"La restituzione di nuovi riferimenti a oggetti o array all'interno di useSelector forza un nuovo rendering automatico ad ogni invio di stato.","fixUseMemoStylesTitle":"Stili di sollevamento o Utilizza useMemo per le dimensioni dinamiche","fixUseMemoStylesDesc":"Gli oggetti di stile in linea creano nuove identità di oggetto ad ogni passaggio di frame, causando differenze di riconciliazione di Yoga Flexbox.","fixGetItemLayoutTitle":"Implementa getItemLayout per gli elementi ad altezza fissa","fixGetItemLayoutDesc":"Fornendo getItemLayout si consente a FlatList di calcolare immediatamente gli offset di scorrimento e le finestre virtuali senza misurare le visualizzazioni in modo asincrono.","fixReactMemoTitle":"Avvolgi gli elementi dell'elenco in React.memo","fixReactMemoDesc":"Impedisce che tutti gli oltre 50 elementi dell'elenco visibili vengano nuovamente visualizzati quando lo stato dell'elenco principale (ad esempio la posizione di scorrimento o l'impaginazione) viene aggiornato.","fixComponentSplittingTitle":"Isolare lo stato a cambiamento rapido nei componenti foglia","fixComponentSplittingDesc":"Sposta i listener della tastiera e lo stato dell'animazione modale in sottocomponenti autonomi in modo che il genitore non esegua nuovamente il rendering.","fixDebouncedInputTitle":"Ingresso ricerca antirimbalzo o utilizza stato controllato locale","fixDebouncedInputDesc":"Non propagare immediatamente lo stato della sequenza di tasti nell'archivio globale. Utilizzare un rimbalzo da 250 ms o un rif non controllato.","fixPrimitivePropsTitle":"Passa oggetti di scena primitivi invece di oggetti di grandi dimensioni","fixPrimitivePropsDesc":"Il passaggio solo della stringa CategoryId anziché dell'intero oggetto categoria impedisce la ripetizione del rendering quando vengono aggiornati i metadati di altre categorie.","fixUseRefForTrackingTitle":"Utilizza useRef per valori di tracciamento non visivi","fixUseRefForTrackingDesc":"Non archiviare timer di analisi, offset di scorrimento o ID di tracciamento in useState se non alterano direttamente l'albero JSX.","highImpact":"Alto impatto","mediumImpact":"Impatto medio","bestPractice":"Migliori pratiche","beforeUseCallback":"// ❌ Prima in <{{comp}} /> (ricrea il riferimento alla funzione su ogni rendering):","afterUseCallback":"// ✅ Dopo (riferimento di richiamata memorizzato stabile):","beforeCreateSelector":"// ❌ Prima in <{{comp}} /> (restituisce un nuovo riferimento all'oggetto ad ogni rendering):","afterCreateSelector":"// ✅ Dopo (shallowEqual impedisce il re-rendering a meno che i valori non cambino):","beforeMemo":"// ❌ Prima (<{{comp}} />):","afterMemo":"// ✅ Dopo (salta il rendering se gli oggetti di scena sono leggermente identici):","flatListOptimization":"// Ottimizzazione FlatList per <{{comp}} />","customComparator":"// Funzione di uguaglianza personalizzata per <{{comp}} />","debounceInput":"// Elimina l'input all'interno di <{{comp}} /> per impedire il rendering per sequenza di tasti:","isolateState":"// Isola lo stato che cambia rapidamente da <{{comp}} /> al sottoalbero figlio // ✅ Incapsula il layout animato all'interno del componente isolato:","beforeUseRef":"// ❌ Prima in <{{comp}} /> (attiva il nuovo rendering dell'intero componente al cambio di valore):","afterUseRef":"// ✅ Dopo (preserva il riferimento mutabile tra i rendering senza eseguire nuovamente il rendering):","fixInteractionManagerTitle":"Rinvia la logica fuori schermo con InteractionManager","fixInteractionManagerDesc":"L'elaborazione pesante dei dati durante le animazioni dello schermo causa la perdita di fotogrammi. Rimandare fino al termine della transizione.","beforeInteractionManager":"// ❌ Prima in <{{comp}} /> (esegue calcoli pesanti mentre la transizione si anima): useEffect(() => { loadHeavyData(); }, []);","afterInteractionManager":"// ✅ Dopo (attende finché la transizione non viene completata senza problemi): useEffect(() => { const task = InteractionManager.runAfterInteractions(() => { loadHeavyData(); }); return () => task.cancel(); }, []);","fixFlatListWindowingTitle":"Ottimizza le proprietà delle finestre FlatList","fixFlatListWindowingDesc":"Configura maxToRenderPerBatch e windowSize per ridurre al minimo le allocazioni di viste virtualizzate fuori schermo.","beforeFlatListWindowing":"// Ottimizzazione finestre FlatList per <{{comp}} />: <FlatList data={items} maxToRenderPerBatch={10} windowSize={5} partialNumToRender={8}removeClippedSubviews={true} />","fixImageCachingTitle":"Ottimizza la memorizzazione nella cache e il downscaling delle immagini","fixImageCachingDesc":"Utilizzare le intestazioni di priorità o il ridimensionamento resizeMode per evitare massicce allocazioni di bitmap nell'heap Hermes.","beforeImageCaching":"// Ottimizzazione dell'immagine per <{{comp}} />: <Image source={{ uri: imageUrl, cache: 'force-cache' }} resizeMode=\"cover\" fadeDuration={100} />","fixContextSplittingTitle":"Suddividi il contesto monolitico in provider granulari","fixContextSplittingDesc":"I componenti che si iscrivono a un contesto di grandi dimensioni vengono sottoposti nuovamente a rendering anche quando le proprietà dello stato inutilizzate cambiano.","beforeContextSplitting":"// ❌ Prima (<{{comp}} /> consuma l'intero AppContext): const { user, cart, theme } = useAppContext();","afterContextSplitting":"// ✅ Dopo (iscriviti al contesto slice dedicato): const theme = useThemeContext();","fixInlineStylesHoistTitle":"Stili statici di sollevamento con StyleSheet.create","fixInlineStylesHoistDesc":"Gli oggetti di stile in linea allocano nuovi riferimenti di memoria a ogni passaggio di rendering, causando un sovraccarico della riconciliazione Yoga.","beforeInlineStyles":"// ❌ Prima (<{{comp}} /> assegna un oggetto in linea a ogni fotogramma): <View style={{ flex: 1, padding: 16, backgroundColor: '#ffffff' }} />","afterInlineStyles":"// ✅ Dopo (riferimento StyleSheet sollevato): const stili = StyleSheet.create({ contenitore: { flex: 1, imbottitura: 16, backgroundColor: '#ffffff' } }); <Visualizza stile={styles.container} />","transitionEventLabel":"Transizione schermo: {{screen}}","transitionEventDetail":"Transizione completata in {{duration}}ms (TTI: {{tti}}ms).","transitionEventAdvice":"Interazione completata entro il budget target di 60 FPS.","heavyTaskEventLabel":"Attività sincrona pesante: {{taskName}}","heavyTaskEventDetail":"Thread JS bloccato per {{duration}}ms durante l'esecuzione dell'attività.","heavyTaskEventAdvice":"Prendi in considerazione l'offload su Web Worker, InteractionManager o l'invio in batch in blocchi.","asyncOpEventLabel":"Operazione asincrona lenta: {{opName}}","asyncOpEventDetail":"La risoluzione dell'attività asincrona ha richiesto {{duration}}ms.","renderLoopWarningLabel":"Spike di nuovo rendering rapido in <{{comp}} />","renderLoopWarningDetail":"Il componente è stato sottoposto a nuovo rendering {{count}} volte in 500 ms. Potenziale loop infinito o dipendenze instabili.","renderLoopWarningAdvice":"Controllare gli array di dipendenze useEffect/useCallback per riferimenti a oggetti o funzioni instabili.","event1Label":"Spike del thread principale durante la navigazione","event1Detail":"La transizione dello schermo ha innescato una pesante riconciliazione del layout e il montaggio simultaneo dei componenti.","event1Advice":"Rimanda gli hook fuori schermo non critici con InteractionManager.runAfterInteractions per preservare 60 FPS.","event2Label":"Passaggio di re-rendering della virtualizzazione FlatList","event2Detail":"FlatList ha eseguito il rendering di 25 elementi contemporaneamente al cambio di orientamento senza componente riga memorizzata.","event2Advice":"Implementa getItemLayout e React.memo(LogCard) per saltare i passaggi di differenza ridondanti.","event3Label":"Transizione slide-up modale nativa","event3Detail":"La trasformazione animata del driver nativo con accelerazione hardware funziona senza intoppi a 60 FPS sostenuti.","event3Advice":"Utilizzo di nativeDriver: true impedisce con successo il blocco del thread JS durante le animazioni.","event4Label":"Raccolta dei rifiuti generazionali di Hermes","event4Detail":"Il ciclo GC generazionale minore ha recuperato oggetti heap effimeri da 4,2 MB con pausa del thread inferiore al millisecondo.","event4Advice":"Il garbage collector generazionale di Hermes funziona entro limiti ottimali inferiori a 5 ms.","gcCycleLabel":"Ciclo di raccolta manuale dei rifiuti","gcCycleDetail":"Oggetti heap senza riferimenti recuperati di ~{{amount}} MB e vivaio di memoria compattato.","gcCycleAdvice":"Utilizzo dell'heap ottimizzato. Sgomberato l'asilo generazionale.","liveFpsDropLabel":"Calo della frequenza dei fotogrammi in tempo reale ({{fps}} FPS)","liveFpsDropDetail":"Durata del frame del thread principale estesa a {{duration}}ms durante l'aggiornamento della vista.","liveFpsDropAdvice":"Esecuzione JavaScript intensiva durante la presentazione ritardata del passaggio di frame.","event5Label":"Deserializzazione del payload JSON di grandi dimensioni","event5Detail":"Overhead di analisi della risposta API di 50 elementi nell'adattatore di rete (stringa non elaborata JSON da 185 KB).","event5Advice":"Prendi in considerazione l'impaginazione dei payload API o le risposte in streaming se la dimensione del payload supera i 250 KB.","event6Label":"Decodifica e rasterizzazione bitmap di immagini","event6Detail":"Decodifica raster Retina per banner_dark.png (allocazione del buffer raster 1200×630px).","event6Advice":"Riduci le dimensioni delle risorse o convertile in WebP per ridurre la latenza di decodifica del 65% circa.","event7Label":"Invocazione JSI TurboModule nativa","event7Detail":"La transazione delle preferenze AsyncStorage/MMKV viene letta su 32 chiavi di configurazione.","event7Advice":"I collegamenti diretti C++ JSI Turbomodule ignorano completamente il sovraccarico della serializzazione del bridge JSON legacy.","event8Label":"Differenza dell'albero degli stati dell'azione Redux","event8Detail":"Il passaggio di invio Redux ha valutato 6 porzioni di riduttore ed ha emesso una notifica di stato in 4,8 ms.","event8Advice":"Immutabilità dell'albero di stato preservata. I selettori memorizzati impediscono il rendering dei componenti ridondanti.","event9Label":"Latenza degli eventi Touch-to-Render","event9Detail":"Il risponditore gestuale ha inviato l'evento tocco al pulsante TabBar con una risposta immediata a 60 FPS.","event9Advice":"La latenza del risponditore al tocco rientra ampiamente nel budget frame standard di 16,67 ms.","event10Label":"Passaggio al layout Flexbox C++ Yoga","event10Detail":"Ricalcolo del layout della scheda multi-scheda dell'interfaccia utente dell'ispettore e passaggio delle metriche dei caratteri nel motore C++ Yoga.","event10Advice":"I vincoli del layout Flexbox vengono memorizzati nella cache e calcolati in modo efficiente con zero penalità di riflusso."},"bundle":{"heroTitle":"Architettura di pacchetti e risorse","heroSubtitle":"Suddivisione delle dimensioni in tempo reale tra tutte le risorse, il codice e le dipendenze","heroSubtitleLive":"Analisi dal vivo di {{scriptUrl}}","liveAnalysisUnavailable":"Analisi del bundle in tempo reale non disponibile","liveAnalysisUnavailableSub":"Impossibile raggiungere il server di sviluppo Metro, quindi i valori sono stime. Assicurati che l'app venga eseguita in fase di sviluppo tramite `npx react-native start` e che Inspector possa raggiungere la tua porta Metro (8081, 8082, ...).","bundleOverviewJson":"Panoramica del pacchetto JSON","devBundleSize":"DIMENSIONE DEL PACCHETTO DI SVILUPPO","devBundleHint":"{{kb}} KB • {{modules}} moduli","trackedFilesHint":"{{count}} File monitorati","imagesMedia":"IMMAGINI E MEDIA","pctOfTrackedAssets":"{{pct}}% delle risorse monitorate","tsJsSource":"FONTE TS/JS","jsEngine":"MOTORE JS","bytecodeAot":"Codice byte AOT","standard":"Norma","splitUpTitle":"Suddivisione del bundle di sviluppo","splitUpSub":"Pacchetto JS da {{mb}} MB misurati • {{files}} file • {{packages}} pacchetti","splitUpJson":"JSON suddiviso","splitAppSource":"Codice sorgente dell'app","splitNodeModules":"node_modules Dipendenze","splitAssetsMedia":"Risorse e media","splitMetroOverhead":"Metro Dev in alto","splitSize":"{{kb}} KB • {{mb}} MB","productionFootprint":"IMPRONTA PRODUTTIVA","productionValue":"iOS {{ios}} MB • Android {{android}} MB","productionDownload":"Scarica: iOS ~{{ios}} MB • AAB ~{{aab}} MB • APK ~{{apk}} MB","treemapTitle":"Mappa ad albero del rapporto tra risorse e tipi di file","treemapSub":"Totale ~{{mb}} MB","treemapJson":"Mappa struttura rapporto JSON","legendImages":"Immagini:","legendTs":"TS/TSX:","legendJs":"Librerie JS:","legendFonts":"Caratteri:","legendJson":"JSON:","categoryBreakdown":"Ripartizione per categorie","categoriesJson":"Ripartizione delle categorie JSON","catImagesTitle":"Immagini e risorse multimediali","catImagesDesc":"Risorse PNG, WebP, SVG e JPG in bundle","catJsTitle":"Moduli nodo compilati e JS","catJsDesc":"Dipendenze di terze parti e bridge nativi","catFontsTitle":"Caratteri personalizzati e glifi vettoriali","catFontsDesc":"Risorse dei caratteri in bundle","catTsTitle":"Componenti TypeScript e JSX","catTsDesc":"Componenti della schermata dell'app, hook e logica aziendale","catJsonTitle":"Dati JSON e localizzazioni","catJsonDesc":"Dizionari di traduzione i18n e configurazioni statiche","totalBundleAssets":"TOTALE FILE DI PROGETTO HOST","totalBundleValue":"{{kb}} KB (~{{mb}} MB)","totalFormula":"Somma dei file di origine host: {{images}} KB + {{js}} KB + {{fonts}} KB + {{ts}} KB + {{json}} KB = {{total}} KB ({{count}} elementi)","prodIosApp":"Applicazione iOS (.ipa)","prodAndroidAab":"Android AAB (.aab)","prodAndroidApk":"APK universale (.apk)","prodHeroTitleIos":"Impronta binaria della produzione iOS","prodHeroTitleAab":"Pacchetto di app Google Play (.aab)","prodHeroTitleApk":"APK universale autonomo (.apk)","prodHeroSubIos":"Stime sull'installazione dell'App Store e sul download cellulare via etere","prodHeroSubAab":"Architettura APK suddivisa con distribuzione dinamica ottimizzata per dispositivo","prodHeroSubApk":"Archivio di installazione universale multi-ABI per sideload e distribuzione diretta","prodInstallSize":"DIMENSIONE INSTALLAZIONE","prodInstallHint":"Impronta non compressa sul dispositivo","prodDownloadSize":"SCARICA TAGLIA","prodDownloadHint":"Memorizza il payload del trasferimento di rete","prodCompression":"COMPRESSIONE","prodCompressionHint":"Bytecode e rapporto risorse","prodFormatArch":"ARCHITETTURA DEL FORMATO","prodFormatHintIos":"Tempo di esecuzione di Apple ARM64","prodFormatHintAab":"Consegna dinamica di Google Play","prodFormatHintApk":"Pacchetto universale con carico laterale","prodArchTitle":"Architettura dei componenti binari","prodArchSub":"Librerie native compilate, bytecode di runtime, risorse e blocchi di firme","prodTotalIos":"TOTALE BINARIO APP IOS","prodTotalAab":"PACCHETTO AAB ANDROID TOTALE","prodTotalApk":"APK UNIVERSALE TOTALE","prodTotalFormula":"Da {{devKb}} KB (~{{devMb}} MB • {{count}} risorse totali) bundle di sorgenti di sviluppo → {{installMb}} MB di binario nativo ottimizzato ({{pct}}% bytecode/compressione risorse).","tabOverview":"Panoramica","tabProduction":"Produzione ({{count}})","tabFiles":"File ({{count}})","tabPackages":"Pacchetti ({{count}})","tabMedia":"Multimedia ({{count}})","tabOptimizer":"Ottimizzatore","analyzingTitle":"Analisi del pacchetto di app host da Metro…","analyzingHint":"Recupero del bundle ed estrazione dei moduli reali","searchFilesPlaceholder":"Cerca per nome file (.png, .tsx, .ttf, percorso)...","filteredFilesJson":"File filtrati JSON","catAll":"Tutti i file","catUnused":"Non consumato (morto)","catConsumed":"In uso/Attivo","catImages":"Immagini e contenuti multimediali","catTypescript":"Dattiloscritto/TSX","catJavascript":"Moduli JS e nodi","catFonts":"Caratteri e glifi","catJson":"JSON e dati","treeView":"Visualizzazione ad albero","flatList":"Elenco piatto","expand":"Espandi","collapse":"Crollo","showingFilesOf":"Sono visualizzati {{shown}} di {{total}} file","filesOf":"{{count}} di {{total}} file","notConsumed":"Non consumato","consumed":"Consumato","copyFileInfo":"Copia {{name}} informazioni","fileDetailsJson":"Dettagli file JSON","file":"file","files":"file","fileSizeKb":"{{size}}KB","fileSizeMb":"{{size}} MB","mbValue":"~{{size}} MB","kbMbValue":"{{kb}} KB ({{mb}} MB)","legendValue":"{{kb}} KB ({{pct}}%)","mediaSavings":"{{size}}KB","searchPackagesPlaceholder":"Pacchetto di ricerca (react-native, axios, navigazione)...","dependenciesJson":"Dipendenze JSON","showingDependencies":"Visualizzazione delle {{count}} dipendenze","versionPrefix":"v{{version}}","bundled":"impacchettato","deprecated":"DEPRECATO","updateAvailable":"Aggiornamento: v{{version}}","upToDate":"Aggiornato","bundledBadge":"In bundle","packageDetailsJson":"Dettagli pacchetto JSON","direct":"Diretto","transitive":"Transitivo","minified":"~{{size}} KB ridotti al minimo","npmLink":"npm ↗","dependenciesCount":"{{count}} Dipendenze","mediaAuditorTitle":"Revisore della compressione multimediale","mediaAssetsJson":"Risorse multimediali JSON","mediaAuditorPrefix":"Immagini e caratteri costituiscono","mediaAuditorMid":"delle risorse totali (~{{kb}} KB). La conversione di PNG in WebP e il sottoinsieme dei caratteri può ridurre le dimensioni fino a","mediaAuditorSuffix":"KB.","mediaAssetsList":"Risorse multimediali e caratteri ({{count}} elementi)","mediaItemJson":"Elemento multimediale JSON","mediaAndFonts":"{{count}} File multimediali e caratteri","optimizerTitle":"Elenco di controllo per l'ottimizzazione del bundle nativo di React","optimizationChecklist":"Lista di controllo per l'ottimizzazione","optTip1Title":"Converti PNG pesanti in WebP / SVG","optTip1Desc":"Le immagini rappresentano più del 40% delle dimensioni finali del download dell'app. La conversione di PNG raster 2x/3x in WebP consente di risparmiare il 60-70% delle dimensioni senza alcuna perdita visibile di fedeltà.","optTip2Title":"Abilita il motore Hermes Bytecode","optTip2DescActive":"Hermes è attivo! JavaScript è compilato in bytecode ottimizzato in anticipo.","optTip2DescInactive":"Hermes è disabilitato. Abilita Hermes nella configurazione dell'app per un carico utile inferiore di circa il 40% e un avvio TTI istantaneo.","optTip3Title":"Sottoimpostazione dei caratteri e potatura del peso","optTip3Desc":"Includi solo gli spessori dei caratteri che utilizzi attivamente (ad esempio Regular e Bold). Rimuovi gli intervalli di glifi inutilizzati per risparmiare più di 100 KB per file di caratteri.","optTip4Title":"Importazioni di percorsi selettivi (scuotimento degli alberi)","optTip4Desc":"Importa da percorsi secondari specifici (ad esempio lodash/get o set di icone vettoriali specifici) invece di importare pacchetti monolitici di grandi dimensioni.","optTip5Title":"Caricamento lento dello schermo","optTip5Desc":"Caricamento lento di schermate secondarie e fogli modali pesanti utilizzando importazioni dinamiche e InteractionManager per ridurre la valutazione iniziale del pacchetto.","highImpact":"Alto impatto","mediumImpact":"Impatto medio","bestPractice":"Migliori pratiche","actionRequired":"Azione richiesta","active":"Attivo","tipDetails":"Dettagli del suggerimento","iosComp1Name":"Framework e pod dinamici","iosComp1Desc":"Framework pod nativi React, Hermes e {{count}}.","iosComp1Advice":"Garantire l'eliminazione del codice morto (STRIP_INSTALLED_PRODUCT = YES) in modalità di rilascio.","iosComp2Name":"Eseguibile Mach-O (ARM64)","iosComp2Desc":"Bridge nativi Swift/Objective-C e C++ compilati dall'app host.","iosComp2Advice":"Abilita LTO monolitico (ottimizzazione del tempo di collegamento) nello schema Xcode.","iosComp3Name":"Catalogo delle risorse (Assets.car)","iosComp3Desc":"Icone delle app, schermate iniziali, glifi vettoriali e caratteri in bundle.","iosComp3Advice":"Compila le immagini nel catalogo delle risorse Xcode per l'assottigliamento automatico delle app.","iosComp4Name":"Bytecode Hermes (main.jsbundle)","iosComp4Desc":"L'app host JavaScript ha compilato AOT nel bytecode Hermes (file {{count}}).","iosComp4Advice":"Il bytecode AOT viene caricato con una latenza di compilazione di 0 ms all'avvio del dispositivo.","iosComp5Name":"Metadati e firme del codice","iosComp5Desc":"_CodeSignature, Info.plist e blocco dei diritti.","iosComp5Advice":"Firma del codice Apple standard e firma di provisioning.","andComp1Name":"Librerie C++ native (.so)","andComp1Desc":"Adattatori nativi C++ libhermes.so, libfbjni.so e {{count}} C++.","andComp1Advice":"Distribuisci con Android App Bundle (.aab) per fornire APK suddivisi per ABI.","andComp2Name":"DEX compilato (classes.dex)","andComp2Desc":"Runtime Java e Kotlin compilato, AndroidX e bridge React Native.","andComp2Advice":"Abilita la riduzione R8/ProGuard (minifyEnabled true) in build.gradle.","andComp3Name":"Risorse Android (ris/)","andComp3Desc":"Drawables, XML vettoriali, densità mipmap, resources.arsc, caratteri.","andComp3Advice":"Utilizza WebP e VectorDrawables per evitare la duplicazione di risorse a più densità.","andComp4Name":"Bytecode di Hermes (Android)","andComp4Desc":"JavaScript dell'app host compilato nel bytecode Hermes (file {{count}}).","andComp4Advice":"Bytecode precompilato durante l'attività gradle assembleRelease.","andComp5Name":"Manifesto e firme (META-INF)","andComp5Desc":"AndroidManifest.xml, certificati di firma, blocchi dello schema di firma APK v2/v3/v4.","andComp5Advice":"Firma e blocco firma ufficiali di Google Play.","apkComp1Name":"Librerie C++ multi-ABI (.so)","apkComp1Desc":"Librerie condivise universali multiarchitettura (.so) in bundle per il sideloading diretto.","apkComp1Advice":"Utilizza Android App Bundle (.aab) per Google Play per ridurre le dimensioni dell'installazione del 60%.","apkComp2Name":"Bytecode DEX compilato (classes.dex)","apkComp2Desc":"Runtime Java e Kotlin compilato, librerie AndroidX e moduli bridge nativi.","apkComp2Advice":"Abilita la riduzione R8/ProGuard (minifyEnabled true) e ShrinkResources true.","apkComp3Name":"Risorse e risorse Android (res/)","apkComp3Desc":"Drawables, XML vettoriali, densità mipmap, resources.arsc, caratteri.","apkComp3Advice":"Utilizza WebP e VectorDrawables per evitare la duplicazione di risorse a più densità.","apkComp4Name":"Pacchetto Bytecode Hermes (Android)","apkComp4Desc":"JavaScript dell'app host compilato nel bytecode Hermes (file {{count}}).","apkComp4Advice":"Bytecode precompilato durante l'attività gradle assembleRelease.","apkComp5Name":"Manifesto e firme (META-INF)","apkComp5Desc":"AndroidManifest.xml, certificati di firma, schema di firma APK JAR e v2/v3/v4.","apkComp5Advice":"Sideload aziendale e blocco firma installazione diretta."},"errors":{"title":"Qualcosa è andato storto","message":"Si è verificato un errore imprevisto.","retry":"Riprova","reset":"Ripristina","close":"Chiudi","errorReport":"Rapporto errori","modalTitle":"L'ispettore si è schiantato","modalMessage":"L'ispettore ha riscontrato un errore imprevisto. Puoi reimpostarlo di seguito.","inlineTitle":"Errore dell'ispettore","inlineMessage":"Si è verificato un errore imprevisto all'interno dell'ispettore.","networkError":"Richiesta di rete non riuscita","crashIntercepted":"INCIDENTE INTERCETTATO","protected":"PROTETTO","rootCauseTitle":"Diagnostica della causa principale","rootCauseSubtitle":"Inspector ha rilevato questo errore di runtime per impedire la chiusura dell'app","exactLocation":"POSIZIONE ESATTA DELLA FONTE","file":"Fascicolo:","lineCol":"Linea/Col:","lineColVal":"Linea {{line}}, colonna {{col}}","function":"Funzione:","callStack":"CALL STACK FRAMES","framesCount":"{{count}} fotogrammi","tryAgainRecover":"Riprova/Ripristina","copyDiagnostics":"Copia diagnostica","appTag":"APP","copy":"Copia"},"jsonViewer":{"pretty":"Carina","raw":"Crudo","table":"Tabella","emptyObject":"Oggetto vuoto","emptyPayload":"Carico utile vuoto","emptyTable":"Oggetto vuoto","fold":"Piega","expand":"Espandi","min":"minimo","indent":"Rientro","wrap":"Avvolgere","copied":"Copiato!","copy":"Copia JSON","key":"Chiave","value":"Valore","lines":"linee","line":"linea"},"codeSnippet":{"copy":"Copia","copied":"Copiato!","matchCount":"{{count}} corrispondenza","matchCount_plural":"{{count}} corrispondenze","noMatches":"Nessuna corrispondenza","searchPlaceholder":"Cerca...","prevMatch":"Partita precedente","nextMatch":"Prossima partita","clearSearch":"Cancella ricerca"},"diffViewer":{"added":"aggiunto","removed":"rimosso","changed":"cambiato","noDiff":"Nessuna differenza","emptyTitle":"Nessuna differenza trovata","emptySubtitle":"I due carichi utili sono identici."},"logCard":{"seeMore":"Mostra di più","seeLess":"Mostra meno","copy":"Copia","copied":"Copiato!"},"emptyState":{"title":"Niente qui ancora","subtitle":"I dati verranno visualizzati qui mentre utilizzi l'app.","reload":"Ricarica"},"errorBoundary":{"title":"Qualcosa è andato storto","message":"Si è verificato un errore imprevisto.","retry":"Riprova","reset":"Ripristina","close":"Chiudi"},"crash":{"title":"Schianto","searchPlaceholder":"Cerca errore, messaggio, stack...","searchDetailPlaceholder":"Cerca in traccia o JSON...","statCrashes":"Si blocca","statFatal":"Fatale","statJsErrors":"Errori JS","statPromises":"Promesse","statRender":"Render","statNative":"Nativo","filterAll":"Tutto","filterFatal":"Fatale","filterJsError":"Errore JS","filterPromise":"Promessa","filterRender":"Render","filterNative":"Nativo","fatalBadge":"FATALE","handledBadge":"MANEGGIATO","fatalCrash":"INCIDENTE FATALE","handledException":"ECCEZIONE GESTITA","unknownException":"Eccezione sconosciuta","report":"Rapporto","inspect":"Ispezionare","copyReport":"Copia rapporto","copied":"Copiato","clearTitle":"Cancella cronologia arresti anomali","clearMessage":"Sei sicuro di voler cancellare tutti i record di arresti anomali intercettati?","clearCancel":"Annulla","clearConfirm":"Cancella tutto","emptyTitle":"Zero arresti anomali rilevati","emptySubtitle":"La protezione globale dagli urti è attiva. Tutte le eccezioni native e JavaScript vengono intercettate e protette.","emptySearchSubtitle":"Nessuna voce di arresto anomalo corrisponde alla query di ricerca.","tabStack":"Pila ({{count}})","tabDiagnostics":"Diagnostica","tabTrail":"Sentiero ({{count}})","tabRawJson":"JSON grezzo","appFrames":"Cornici app ({{count}})","allFrames":"Tutti i fotogrammi ({{count}})","frameApp":"APP","frameLib":"LIB","anonymous":"<anonimo>","noStackTrace":"Nessuna analisi dello stack acquisita per questo evento.","deviceEnvironment":"Dispositivo e ambiente","platform":"Piattaforma","osVersion":"Versione del sistema operativo","reactNative":"Reagire nativo","jsEngine":"Motore JS","hermesEngine":"Motore Hermes","jsc":"JSC","architecture":"Architettura","fabricNewArch":"Tessuto (Nuovo Arco)","paperLegacy":"Carta (precedente)","appState":"Stato dell'app","jsHeapMemory":"Memoria heap JS","usedHeap":"Heap usato","totalHeap":"Heap totale","noBreadcrumbs":"Nessun evento breadcrumb registrato prima di questo arresto anomalo.","simNativeMessage":"Eccezione fatale nativa simulata","simPromiseMessage":"Rifiuto simulato di una promessa non gestita","simRenderMessage":"Errore di rendering del componente React simulato","simJsMessage":"Eccezione JavaScript simulata","reportTitle":"RAPPORTO DIAGNOSTICO DELL'INCIDENTE","reportErrorName":"Nome errore:","reportMessage":"Messaggio:","reportType":"Tipo:","reportFatalYes":"SÌ (fatale)","reportFatalNo":"NO (catturato/maneggiato)","reportFatal":"Fatale:","reportTimestamp":"Timestamp:","reportUptime":"Tempo di attività dell'app:","reportUptimeValue":"{{seconds}} secondi","reportPlatform":"Piattaforma:","reportReactNative":"Reagire nativo:","reportHermes":"Ermete:","reportEnabled":"Abilitato","reportDisabled":"Disabilitato","reportArchitecture":"Architettura:","reportFabricNew":"Tessuto (Nuovo)","reportPaperLegacy":"Carta (precedente)","reportScreenSize":"Dimensioni dello schermo:","reportAppState":"Stato dell'app:","reportJsMemory":"Memoria JS:","reportStackTrace":"TRACCIAMENTO STACK:","reportNoStackTrace":"Nessuna analisi dello stack disponibile","reportComponentHierarchy":"GERARCHIA DEI COMPONENTI:","reportRecentBreadcrumbs":"PANgrattato RECENTE:","mdReportTitle":"🚨 Rapporto sull'incidente: {{name}}","mdStackTrace":"📦 Traccia dello stack","mdComponentHierarchy":"🌲 Gerarchia dei componenti","mdRecentBreadcrumbs":"👣 Breadcrumb recenti","mdSeverityFatal":"FATALE","mdSeverityHandled":"MANEGGIATO","breadcrumbNavigation":"Navigazione da \"{{from}}\" a \"{{to}}\"","breadcrumbAction":"Azione: {{actionType}}","unknown":"Sconosciuto","runtimeException":"Eccezione di runtime","logFatalCrash":"Incidente mortale","logUnhandledError":"Errore non gestito","errorNameFatal":"Errore fatale","errorNameUnhandled":"UnhandledException","nativeCrashTitle":"Crash nativo","nativeUncaughtException":"Eccezione nativa non rilevata","nativeException":"Eccezione nativa","unhandledPromiseRejection":"Rifiuto di una promessa non gestita","filterTitle":"Filtri bloccati","filterSubtitle":"Diagnostica e report","filterReset":"Reimposta tutto","filterTypeSection":"TIPO DI INCIDENTE","filterTypeAll":"Tutti i tipi","filterTimeSection":"ORIZZONTE TEMPORALE","filterTimeAll":"Tutto il tempo","filterTime15m":"Ultimi 15 minuti","filterTime1h":"Ultima 1 ora","filterTime24h":"Ultime 24 ore","filterTime7d":"Ultimi 7 giorni","filterPlatformSection":"PIATTAFORMA","filterPlatformAll":"Tutte le piattaforme","filterPlatformIos":"iOS","filterPlatformAndroid":"Androide","filterEngineSection":"MOTORE JS","filterEngineAll":"Tutti i motori","filterEngineHermes":"Hermes","filterSortSection":"ORDINE DI ORDINE","filterSortNewest":"Prima il più recente (predefinito)","filterSortOldest":"Prima il più vecchio","filterDiscard":"Scartare","filterApply":"Applica ({{count}} arresti anomali)","frameCopy":"Copia","frameCopied":"Copiato","componentHierarchy":"Gerarchia dei componenti"},"mediaGallery":{"all":"Tutti ({{count}})","photos":"Foto","videos":"Video","gifs":"GIF","purge":"Elimina ({{size}})","purgeTitle":"Elimina tutti i supporti","purgeMessage":"Questa operazione eliminerà definitivamente tutti gli {{count}} screenshot, video e GIF acquisiti ({{size}}). Continuare?","noMediaTitle":"Nessun supporto acquisito","noMediaDesc":"Utilizza il pulsante Registra foto o video nella barra degli strumenti per acquisire screenshot, registrazioni dello schermo o GIF dell'intera app.","deleted":"Elemento multimediale eliminato","allPurged":"Tutti i media catturati sono stati eliminati","converting":"Conversione...","convertToGif":"Converti in GIF","playVideo":"Riproduci video","playError":"Impossibile riprodurre il video","convertedSuccess":"Convertito in GIF animata con successo!","convertFailed":"Impossibile convertire in GIF","share":"Condividi","copyUri":"Copia l'URI","uriCopied":"URI del file copiato negli appunti","delete":"Elimina","deleteSelected":"Elimina ({{count}})","deleteSelectedTitle":"Elimina selezionato","deleteSelectedMessage":"Vuoi eliminare {{count}} elementi multimediali selezionati?","deletedCount":"{{count}} elementi multimediali eliminati","deleteTitle":"Elimina supporto","deleteMessage":"Sei sicuro di voler eliminare {{filename}}?","shareUnavailable":"Condivisione non disponibile su questo dispositivo","showingResults":"Visualizzazione dei risultati {{count}}.","showingFilteredResults":"Visualizzazione di {{count}} di {{total}} risultati","selectedOfResults":"Risultati selezionati {{selected}} di {{total}}.","minimize":"Ridurre al minimo","expand":"Espandi Schermo intero","collapse":"Esci da schermo intero","speed":"Velocità","loop":"Ciclo","pause":"Pausa","play":"Gioca"},"socket":{"title":"WebSocket","messages":"Messaggi","overview":"Panoramica","params":"Param","rawAndCode":"Raw e codice","totalFrames":"FOTO TOTALI","sentRecv":"INVIATO/RICEVUTO","dataTransferred":"DATI TRASFERITI","searchFramesPlaceholder":"Cerca payload di frame o nomi di eventi...","sent":"Inviato","recv":"Ric","emptyFrames":"Nessun frame acquisito per questa connessione","searchSocketsPlaceholder":"Cerca URL o messaggi WebSocket...","noSockets":"Nessuna connessione WebSocket","noSocketsDesc":"Le connessioni WebSocket, Socket.IO e WSS acquisite verranno visualizzate qui in tempo reale.","noMatching":"Nessun WebSocket corrispondente","adjustSearchFilter":"Prova a modificare la query di ricerca o i chip di filtro.","simulateTraffic":"Simula il traffico WebSocket demo","clearTitle":"Cancella tutti i log WebSocket","clearMessage":"Sei sicuro di voler eliminare tutte le sessioni WebSocket registrate?","cleared":"Tutti i registri WebSocket sono stati cancellati","deleteSelectedTitle":"Elimina i WebSocket selezionati","deleteSelectedMsg":"Vuoi eliminare i {{count}} log WebSocket selezionati?","filterTitle":"Filtra connessioni WebSocket","showingConnections":"Visualizzazione di {{count}} connessioni","showingFilteredConnections":"Visualizzazione di {{filtered}} di {{total}} connessioni","deletedCount":"Log WebSocket {{count}} eliminati","copiedUrls":"{{count}} URL copiati negli appunti","webSocketTraffic":"Traffico WebSocket ({{count}} connessioni)"},"push":{"title":"Notifiche push","preview":"Anteprima","payload":"Carico utile personalizzato","deliveryMetadata":"Metadati di consegna e messaggio","rawPayload":"Carico utile grezzo","link":"Collegamento","appNotification":"Notifica dell'app","now":"ora","domainFields":"Campi specifici del dominio","searchPlaceholder":"Cerca notifiche push...","noNotifications":"Nessuna notifica push","noNotificationsDesc":"FCM Firebase, APN Apple, OneSignal e eventi push personalizzati acquisiti verranno visualizzati qui in tempo reale.","filterTitle":"Filtra le notifiche push","clearTitle":"Cancella cronologia push","clearMessage":"Sei sicuro di voler cancellare tutti i record delle notifiche push?","cleared":"La cronologia delle notifiche push è stata cancellata","foreground":"Primo piano","background":"Sfondo","quit":"Esci"},"debugging":{"title":"Debug e strumenti","buildSuccess":"Build APK generato correttamente!","buildFailed":"Creazione non riuscita: {{error}}","buildCancelled":"Compilazione annullata dall'utente"},"about":{"title":"Informazioni e specifiche","subtitle":"Informazioni sul pacchetto, specifiche di runtime e payload diagnostico","heroTitle":"Ispettore in-app","heroDescription":"Il compagno tutto in uno per debug, registrazione e QA sul dispositivo per le applicazioni React Native ed Expo. Progettato per sviluppatori, tester del controllo qualità e team di prodotto.","upToDate":"Aggiornato","versionAvailable":"v{{version}} Disponibile","copyUpgradeCommand":"Copia comando di aggiornamento (v{{version}})","copiedUpgradeCommand":"Comando di aggiornamento npm copiato!","appInformation":"INFORMAZIONI SULL'APP","appName":"Nome dell'app","packageIdentifier":"Identificatore del pacchetto","appVersion":"Versione dell'app","environment":"Ambiente","developmentDebug":"Sviluppo (debug)","productionRelease":"Produzione (rilascio)","platform":"Piattaforma","appleIos":"Apple iOS","googleAndroid":"GoogleAndroid","features":"COSA FA L'ISPETTORE IN-APP","featureNetwork":"Monitoraggio del traffico di rete","featureNetworkDesc":"Esamina le richieste, le risposte, le intestazioni e la latenza del server API HTTP e HTTPS con i grafici temporali a cascata.","featureConsole":"Registratore della console","featureConsoleDesc":"Visualizza log, avvisi ed errori della console in tempo reale con le origini dei file di origine e le analisi dello stack formattate.","featureAnalytics":"Telemetria analitica","featureAnalyticsDesc":"Tieni traccia degli eventi di Firebase e di analisi personalizzata, delle visualizzazioni dello schermo e delle proprietà dell'utente in tempo reale sul dispositivo.","featureRedux":"Stato e azioni Redux","featureReduxDesc":"Ispeziona le azioni inviate, i payload e le differenze tra gli alberi di stato senza connettere gli strumenti associati al desktop.","featureCapture":"Cattura schermo e video","featureCaptureDesc":"Acquisisci screenshot e registra sessioni di test da condividere immediatamente con i team di QA e ingegneri.","featureCrash":"Crash Catcher e diagnostica","featureCrashDesc":"Protegge da arresti anomali nativi e fornisce parametri di integrità del dispositivo tra cui RAM, batteria e spazio di archiviazione.","github":"GitHub","githubSub":"Stella e codice sorgente","npmRegistry":"Registro NPM","npmRegistrySub":"Aggiornamenti del pacchetto","documentation":"Documentazione","documentationSub":"Guida all'integrazione","reportIssue":"Segnala problema","reportIssueSub":"Aiuto e supporto","releaseNotes":"Note sulla versione","releaseNotesSub":"Cosa c'è di nuovo","copyInstall":"Copia Installa","copyInstallSub":"comando npm/filato","copiedInstallCommand":"Comando di installazione del pacchetto copiato!","footerLicense":"React Native In-App Inspector · Licenza MIT","footerTagline":"Strumento di debug sul dispositivo a configurazione zero"}}