lighthouse 9.5.0-dev.20220728 → 9.5.0-dev.20220729

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 (464) hide show
  1. package/CONTRIBUTING.md +11 -11
  2. package/{lighthouse-cli → cli}/bin.js +5 -5
  3. package/{lighthouse-cli → cli}/cli-flags.js +1 -1
  4. package/{lighthouse-cli → cli}/commands/commands.js +0 -0
  5. package/{lighthouse-cli → cli}/commands/list-audits.js +1 -1
  6. package/{lighthouse-cli → cli}/commands/list-locales.js +0 -0
  7. package/{lighthouse-cli → cli}/commands/list-trace-categories.js +1 -1
  8. package/{lighthouse-cli → cli}/index.js +0 -0
  9. package/{lighthouse-cli → cli}/package.json +0 -0
  10. package/{lighthouse-cli → cli}/printer.js +0 -0
  11. package/{lighthouse-cli → cli}/run.js +3 -3
  12. package/{lighthouse-cli → cli}/sentry-prompt.js +0 -0
  13. package/{lighthouse-cli → cli}/test/smokehouse/__snapshots__/report-assert-test.js.snap +0 -0
  14. package/{lighthouse-cli → cli}/test/smokehouse/core-tests.js +0 -0
  15. package/{lighthouse-cli → cli}/test/smokehouse/frontends/back-compat-util.js +0 -0
  16. package/{lighthouse-cli → cli}/test/smokehouse/frontends/lib.js +0 -0
  17. package/{lighthouse-cli → cli}/test/smokehouse/frontends/node.js +0 -0
  18. package/{lighthouse-cli → cli}/test/smokehouse/frontends/smokehouse-bin.js +1 -1
  19. package/{lighthouse-cli → cli}/test/smokehouse/lib/child-process-error.js +0 -0
  20. package/{lighthouse-cli → cli}/test/smokehouse/lib/concurrent-mapper.js +0 -0
  21. package/{lighthouse-cli → cli}/test/smokehouse/lib/local-console.js +0 -0
  22. package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/bundle.js +4 -4
  23. package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/cli.js +2 -2
  24. package/{lighthouse-cli → cli}/test/smokehouse/lighthouse-runners/devtools.js +3 -3
  25. package/{lighthouse-cli → cli}/test/smokehouse/readme.md +1 -1
  26. package/{lighthouse-cli → cli}/test/smokehouse/report-assert-test.js +3 -3
  27. package/{lighthouse-cli → cli}/test/smokehouse/report-assert.js +0 -0
  28. package/{lighthouse-cli → cli}/test/smokehouse/smokehouse.js +0 -0
  29. package/{lighthouse-cli → cli}/test/smokehouse/version-check-test.js +0 -0
  30. package/{lighthouse-cli → cli}/test/smokehouse/version-check.js +0 -0
  31. package/{lighthouse-core → core}/audits/accessibility/accesskeys.js +0 -0
  32. package/{lighthouse-core → core}/audits/accessibility/aria-allowed-attr.js +0 -0
  33. package/{lighthouse-core → core}/audits/accessibility/aria-command-name.js +0 -0
  34. package/{lighthouse-core → core}/audits/accessibility/aria-hidden-body.js +0 -0
  35. package/{lighthouse-core → core}/audits/accessibility/aria-hidden-focus.js +0 -0
  36. package/{lighthouse-core → core}/audits/accessibility/aria-input-field-name.js +0 -0
  37. package/{lighthouse-core → core}/audits/accessibility/aria-meter-name.js +0 -0
  38. package/{lighthouse-core → core}/audits/accessibility/aria-progressbar-name.js +0 -0
  39. package/{lighthouse-core → core}/audits/accessibility/aria-required-attr.js +0 -0
  40. package/{lighthouse-core → core}/audits/accessibility/aria-required-children.js +0 -0
  41. package/{lighthouse-core → core}/audits/accessibility/aria-required-parent.js +0 -0
  42. package/{lighthouse-core → core}/audits/accessibility/aria-roles.js +0 -0
  43. package/{lighthouse-core → core}/audits/accessibility/aria-toggle-field-name.js +0 -0
  44. package/{lighthouse-core → core}/audits/accessibility/aria-tooltip-name.js +0 -0
  45. package/{lighthouse-core → core}/audits/accessibility/aria-treeitem-name.js +0 -0
  46. package/{lighthouse-core → core}/audits/accessibility/aria-valid-attr-value.js +0 -0
  47. package/{lighthouse-core → core}/audits/accessibility/aria-valid-attr.js +0 -0
  48. package/{lighthouse-core → core}/audits/accessibility/axe-audit.js +0 -0
  49. package/{lighthouse-core → core}/audits/accessibility/button-name.js +0 -0
  50. package/{lighthouse-core → core}/audits/accessibility/bypass.js +0 -0
  51. package/{lighthouse-core → core}/audits/accessibility/color-contrast.js +0 -0
  52. package/{lighthouse-core → core}/audits/accessibility/definition-list.js +0 -0
  53. package/{lighthouse-core → core}/audits/accessibility/dlitem.js +0 -0
  54. package/{lighthouse-core → core}/audits/accessibility/document-title.js +0 -0
  55. package/{lighthouse-core → core}/audits/accessibility/duplicate-id-active.js +0 -0
  56. package/{lighthouse-core → core}/audits/accessibility/duplicate-id-aria.js +0 -0
  57. package/{lighthouse-core → core}/audits/accessibility/form-field-multiple-labels.js +0 -0
  58. package/{lighthouse-core → core}/audits/accessibility/frame-title.js +0 -0
  59. package/{lighthouse-core → core}/audits/accessibility/heading-order.js +0 -0
  60. package/{lighthouse-core → core}/audits/accessibility/html-has-lang.js +0 -0
  61. package/{lighthouse-core → core}/audits/accessibility/html-lang-valid.js +0 -0
  62. package/{lighthouse-core → core}/audits/accessibility/image-alt.js +0 -0
  63. package/{lighthouse-core → core}/audits/accessibility/input-image-alt.js +0 -0
  64. package/{lighthouse-core → core}/audits/accessibility/label.js +0 -0
  65. package/{lighthouse-core → core}/audits/accessibility/link-name.js +0 -0
  66. package/{lighthouse-core → core}/audits/accessibility/list.js +0 -0
  67. package/{lighthouse-core → core}/audits/accessibility/listitem.js +0 -0
  68. package/{lighthouse-core → core}/audits/accessibility/manual/custom-controls-labels.js +0 -0
  69. package/{lighthouse-core → core}/audits/accessibility/manual/custom-controls-roles.js +0 -0
  70. package/{lighthouse-core → core}/audits/accessibility/manual/focus-traps.js +0 -0
  71. package/{lighthouse-core → core}/audits/accessibility/manual/focusable-controls.js +0 -0
  72. package/{lighthouse-core → core}/audits/accessibility/manual/interactive-element-affordance.js +0 -0
  73. package/{lighthouse-core → core}/audits/accessibility/manual/logical-tab-order.js +0 -0
  74. package/{lighthouse-core → core}/audits/accessibility/manual/managed-focus.js +0 -0
  75. package/{lighthouse-core → core}/audits/accessibility/manual/offscreen-content-hidden.js +0 -0
  76. package/{lighthouse-core → core}/audits/accessibility/manual/use-landmarks.js +0 -0
  77. package/{lighthouse-core → core}/audits/accessibility/manual/visual-order-follows-dom.js +0 -0
  78. package/{lighthouse-core → core}/audits/accessibility/meta-refresh.js +0 -0
  79. package/{lighthouse-core → core}/audits/accessibility/meta-viewport.js +0 -0
  80. package/{lighthouse-core → core}/audits/accessibility/object-alt.js +0 -0
  81. package/{lighthouse-core → core}/audits/accessibility/tabindex.js +0 -0
  82. package/{lighthouse-core → core}/audits/accessibility/td-headers-attr.js +0 -0
  83. package/{lighthouse-core → core}/audits/accessibility/th-has-data-cells.js +0 -0
  84. package/{lighthouse-core → core}/audits/accessibility/valid-lang.js +0 -0
  85. package/{lighthouse-core → core}/audits/accessibility/video-caption.js +0 -0
  86. package/{lighthouse-core → core}/audits/audit.js +0 -0
  87. package/{lighthouse-core → core}/audits/autocomplete.js +0 -0
  88. package/{lighthouse-core → core}/audits/bootup-time.js +0 -0
  89. package/{lighthouse-core → core}/audits/byte-efficiency/byte-efficiency-audit.js +0 -0
  90. package/{lighthouse-core → core}/audits/byte-efficiency/duplicated-javascript.js +0 -0
  91. package/{lighthouse-core → core}/audits/byte-efficiency/efficient-animated-content.js +0 -0
  92. package/{lighthouse-core → core}/audits/byte-efficiency/legacy-javascript.js +2 -2
  93. package/{lighthouse-core → core}/audits/byte-efficiency/modern-image-formats.js +0 -0
  94. package/{lighthouse-core → core}/audits/byte-efficiency/offscreen-images.js +0 -0
  95. package/{lighthouse-core → core}/audits/byte-efficiency/polyfill-graph-data.json +0 -0
  96. package/{lighthouse-core → core}/audits/byte-efficiency/render-blocking-resources.js +0 -0
  97. package/{lighthouse-core → core}/audits/byte-efficiency/total-byte-weight.js +0 -0
  98. package/{lighthouse-core → core}/audits/byte-efficiency/unminified-css.js +0 -0
  99. package/{lighthouse-core → core}/audits/byte-efficiency/unminified-javascript.js +0 -0
  100. package/{lighthouse-core → core}/audits/byte-efficiency/unused-css-rules.js +0 -0
  101. package/{lighthouse-core → core}/audits/byte-efficiency/unused-javascript.js +0 -0
  102. package/{lighthouse-core → core}/audits/byte-efficiency/uses-long-cache-ttl.js +0 -0
  103. package/{lighthouse-core → core}/audits/byte-efficiency/uses-optimized-images.js +0 -0
  104. package/{lighthouse-core → core}/audits/byte-efficiency/uses-responsive-images-snapshot.js +0 -0
  105. package/{lighthouse-core → core}/audits/byte-efficiency/uses-responsive-images.js +0 -0
  106. package/{lighthouse-core → core}/audits/byte-efficiency/uses-text-compression.js +0 -0
  107. package/{lighthouse-core → core}/audits/content-width.js +0 -0
  108. package/{lighthouse-core → core}/audits/critical-request-chains.js +0 -0
  109. package/{lighthouse-core → core}/audits/csp-xss.js +0 -0
  110. package/{lighthouse-core → core}/audits/deprecations.js +0 -0
  111. package/{lighthouse-core → core}/audits/diagnostics.js +0 -0
  112. package/{lighthouse-core → core}/audits/dobetterweb/charset.js +0 -0
  113. package/{lighthouse-core → core}/audits/dobetterweb/doctype.js +0 -0
  114. package/{lighthouse-core → core}/audits/dobetterweb/dom-size.js +0 -0
  115. package/{lighthouse-core → core}/audits/dobetterweb/geolocation-on-start.js +0 -0
  116. package/{lighthouse-core → core}/audits/dobetterweb/inspector-issues.js +0 -0
  117. package/{lighthouse-core → core}/audits/dobetterweb/js-libraries.js +0 -0
  118. package/{lighthouse-core → core}/audits/dobetterweb/no-document-write.js +0 -0
  119. package/{lighthouse-core → core}/audits/dobetterweb/no-vulnerable-libraries.js +0 -0
  120. package/{lighthouse-core → core}/audits/dobetterweb/notification-on-start.js +0 -0
  121. package/{lighthouse-core → core}/audits/dobetterweb/password-inputs-can-be-pasted-into.js +0 -0
  122. package/{lighthouse-core → core}/audits/dobetterweb/uses-http2.js +0 -0
  123. package/{lighthouse-core → core}/audits/dobetterweb/uses-passive-event-listeners.js +0 -0
  124. package/{lighthouse-core → core}/audits/errors-in-console.js +0 -0
  125. package/{lighthouse-core → core}/audits/final-screenshot.js +0 -0
  126. package/{lighthouse-core → core}/audits/font-display.js +0 -0
  127. package/{lighthouse-core → core}/audits/full-page-screenshot.js +0 -0
  128. package/{lighthouse-core → core}/audits/image-aspect-ratio.js +0 -0
  129. package/{lighthouse-core → core}/audits/image-size-responsive.js +0 -0
  130. package/{lighthouse-core → core}/audits/installable-manifest.js +0 -0
  131. package/{lighthouse-core → core}/audits/is-on-https.js +0 -0
  132. package/{lighthouse-core → core}/audits/largest-contentful-paint-element.js +0 -0
  133. package/{lighthouse-core → core}/audits/layout-shift-elements.js +0 -0
  134. package/{lighthouse-core → core}/audits/lcp-lazy-loaded.js +0 -0
  135. package/{lighthouse-core → core}/audits/long-tasks.js +0 -0
  136. package/{lighthouse-core → core}/audits/main-thread-tasks.js +0 -0
  137. package/{lighthouse-core → core}/audits/mainthread-work-breakdown.js +0 -0
  138. package/{lighthouse-core → core}/audits/manual/manual-audit.js +0 -0
  139. package/{lighthouse-core → core}/audits/manual/pwa-cross-browser.js +0 -0
  140. package/{lighthouse-core → core}/audits/manual/pwa-each-page-has-url.js +0 -0
  141. package/{lighthouse-core → core}/audits/manual/pwa-page-transitions.js +0 -0
  142. package/{lighthouse-core → core}/audits/maskable-icon.js +0 -0
  143. package/{lighthouse-core → core}/audits/metrics/cumulative-layout-shift.js +0 -0
  144. package/{lighthouse-core → core}/audits/metrics/experimental-interaction-to-next-paint.js +0 -0
  145. package/{lighthouse-core → core}/audits/metrics/first-contentful-paint-3g.js +0 -0
  146. package/{lighthouse-core → core}/audits/metrics/first-contentful-paint.js +0 -0
  147. package/{lighthouse-core → core}/audits/metrics/first-meaningful-paint.js +0 -0
  148. package/{lighthouse-core → core}/audits/metrics/interactive.js +0 -0
  149. package/{lighthouse-core → core}/audits/metrics/largest-contentful-paint.js +0 -0
  150. package/{lighthouse-core → core}/audits/metrics/max-potential-fid.js +0 -0
  151. package/{lighthouse-core → core}/audits/metrics/speed-index.js +0 -0
  152. package/{lighthouse-core → core}/audits/metrics/total-blocking-time.js +0 -0
  153. package/{lighthouse-core → core}/audits/metrics.js +0 -0
  154. package/{lighthouse-core → core}/audits/multi-check-audit.js +0 -0
  155. package/{lighthouse-core → core}/audits/network-requests.js +0 -0
  156. package/{lighthouse-core → core}/audits/network-rtt.js +0 -0
  157. package/{lighthouse-core → core}/audits/network-server-latency.js +0 -0
  158. package/{lighthouse-core → core}/audits/no-unload-listeners.js +0 -0
  159. package/{lighthouse-core → core}/audits/non-composited-animations.js +0 -0
  160. package/{lighthouse-core → core}/audits/oopif-iframe-test-audit.js +0 -0
  161. package/{lighthouse-core → core}/audits/performance-budget.js +0 -0
  162. package/{lighthouse-core → core}/audits/predictive-perf.js +0 -0
  163. package/{lighthouse-core → core}/audits/preload-fonts.js +0 -0
  164. package/{lighthouse-core → core}/audits/preload-lcp-image.js +0 -0
  165. package/{lighthouse-core → core}/audits/redirects.js +0 -0
  166. package/{lighthouse-core → core}/audits/resource-summary.js +0 -0
  167. package/{lighthouse-core → core}/audits/screenshot-thumbnails.js +0 -0
  168. package/{lighthouse-core → core}/audits/script-elements-test-audit.js +0 -0
  169. package/{lighthouse-core → core}/audits/script-treemap-data.js +0 -0
  170. package/{lighthouse-core → core}/audits/seo/canonical.js +0 -0
  171. package/{lighthouse-core → core}/audits/seo/crawlable-anchors.js +0 -0
  172. package/{lighthouse-core → core}/audits/seo/font-size.js +0 -0
  173. package/{lighthouse-core → core}/audits/seo/hreflang.js +0 -0
  174. package/{lighthouse-core → core}/audits/seo/http-status-code.js +0 -0
  175. package/{lighthouse-core → core}/audits/seo/is-crawlable.js +0 -0
  176. package/{lighthouse-core → core}/audits/seo/link-text.js +0 -0
  177. package/{lighthouse-core → core}/audits/seo/manual/structured-data.js +0 -0
  178. package/{lighthouse-core → core}/audits/seo/meta-description.js +0 -0
  179. package/{lighthouse-core → core}/audits/seo/plugins.js +0 -0
  180. package/{lighthouse-core → core}/audits/seo/robots-txt.js +0 -0
  181. package/{lighthouse-core → core}/audits/seo/tap-targets.js +0 -0
  182. package/{lighthouse-core → core}/audits/server-response-time.js +0 -0
  183. package/{lighthouse-core → core}/audits/service-worker.js +0 -0
  184. package/{lighthouse-core → core}/audits/splash-screen.js +0 -0
  185. package/{lighthouse-core → core}/audits/themed-omnibox.js +0 -0
  186. package/{lighthouse-core → core}/audits/third-party-facades.js +0 -0
  187. package/{lighthouse-core → core}/audits/third-party-summary.js +0 -0
  188. package/{lighthouse-core → core}/audits/timing-budget.js +0 -0
  189. package/{lighthouse-core → core}/audits/unsized-images.js +0 -0
  190. package/{lighthouse-core → core}/audits/user-timings.js +0 -0
  191. package/{lighthouse-core → core}/audits/uses-rel-preconnect.js +0 -0
  192. package/{lighthouse-core → core}/audits/uses-rel-preload.js +0 -0
  193. package/{lighthouse-core → core}/audits/valid-source-maps.js +0 -0
  194. package/{lighthouse-core → core}/audits/viewport.js +0 -0
  195. package/{lighthouse-core → core}/audits/violation-audit.js +0 -0
  196. package/{lighthouse-core → core}/audits/work-during-interaction.js +0 -0
  197. package/{lighthouse-core → core}/computed/computed-artifact.js +0 -0
  198. package/{lighthouse-core → core}/computed/critical-request-chains.js +0 -0
  199. package/{lighthouse-core → core}/computed/image-records.js +0 -0
  200. package/{lighthouse-core → core}/computed/js-bundles.js +0 -0
  201. package/{lighthouse-core → core}/computed/load-simulator.js +0 -0
  202. package/{lighthouse-core → core}/computed/main-resource.js +0 -0
  203. package/{lighthouse-core → core}/computed/main-thread-tasks.js +0 -0
  204. package/{lighthouse-core → core}/computed/manifest-values.js +0 -0
  205. package/{lighthouse-core → core}/computed/metrics/cumulative-layout-shift.js +0 -0
  206. package/{lighthouse-core → core}/computed/metrics/first-contentful-paint-all-frames.js +0 -0
  207. package/{lighthouse-core → core}/computed/metrics/first-contentful-paint.js +0 -0
  208. package/{lighthouse-core → core}/computed/metrics/first-meaningful-paint.js +0 -0
  209. package/{lighthouse-core → core}/computed/metrics/interactive.js +0 -0
  210. package/{lighthouse-core → core}/computed/metrics/lantern-first-contentful-paint.js +0 -0
  211. package/{lighthouse-core → core}/computed/metrics/lantern-first-meaningful-paint.js +0 -0
  212. package/{lighthouse-core → core}/computed/metrics/lantern-interactive.js +0 -0
  213. package/{lighthouse-core → core}/computed/metrics/lantern-largest-contentful-paint.js +0 -0
  214. package/{lighthouse-core → core}/computed/metrics/lantern-max-potential-fid.js +0 -0
  215. package/{lighthouse-core → core}/computed/metrics/lantern-metric.js +0 -0
  216. package/{lighthouse-core → core}/computed/metrics/lantern-speed-index.js +1 -1
  217. package/{lighthouse-core → core}/computed/metrics/lantern-total-blocking-time.js +0 -0
  218. package/{lighthouse-core → core}/computed/metrics/largest-contentful-paint-all-frames.js +0 -0
  219. package/{lighthouse-core → core}/computed/metrics/largest-contentful-paint.js +0 -0
  220. package/{lighthouse-core → core}/computed/metrics/max-potential-fid.js +0 -0
  221. package/{lighthouse-core → core}/computed/metrics/metric.js +0 -0
  222. package/{lighthouse-core → core}/computed/metrics/navigation-metric.js +0 -0
  223. package/{lighthouse-core → core}/computed/metrics/responsiveness.js +0 -0
  224. package/{lighthouse-core → core}/computed/metrics/speed-index.js +0 -0
  225. package/{lighthouse-core → core}/computed/metrics/tbt-utils.js +0 -0
  226. package/{lighthouse-core → core}/computed/metrics/timing-summary.js +0 -0
  227. package/{lighthouse-core → core}/computed/metrics/total-blocking-time.js +0 -0
  228. package/{lighthouse-core → core}/computed/module-duplication.js +0 -0
  229. package/{lighthouse-core → core}/computed/network-analysis.js +0 -0
  230. package/{lighthouse-core → core}/computed/network-records.js +0 -0
  231. package/{lighthouse-core → core}/computed/page-dependency-graph.js +0 -0
  232. package/{lighthouse-core → core}/computed/processed-navigation.js +0 -0
  233. package/{lighthouse-core → core}/computed/processed-trace.js +0 -0
  234. package/{lighthouse-core → core}/computed/resource-summary.js +0 -0
  235. package/{lighthouse-core → core}/computed/screenshots.js +0 -0
  236. package/{lighthouse-core → core}/computed/speedline.js +0 -0
  237. package/{lighthouse-core → core}/computed/unused-css.js +0 -0
  238. package/{lighthouse-core → core}/computed/unused-javascript-summary.js +0 -0
  239. package/{lighthouse-core → core}/computed/user-timings.js +0 -0
  240. package/{lighthouse-core → core}/computed/viewport-meta.js +0 -0
  241. package/{lighthouse-core → core}/config/budget.js +0 -0
  242. package/{lighthouse-core → core}/config/config-helpers.js +0 -0
  243. package/{lighthouse-core → core}/config/config-plugin.js +0 -0
  244. package/{lighthouse-core → core}/config/config.js +0 -0
  245. package/{lighthouse-core → core}/config/constants.js +0 -0
  246. package/{lighthouse-core → core}/config/default-config.js +0 -0
  247. package/{lighthouse-core → core}/config/desktop-config.js +0 -0
  248. package/{lighthouse-core → core}/config/experimental-config.js +0 -0
  249. package/{lighthouse-core → core}/config/full-config.js +0 -0
  250. package/{lighthouse-core → core}/config/legacy-default-config.js +0 -0
  251. package/{lighthouse-core → core}/config/lr-desktop-config.js +0 -0
  252. package/{lighthouse-core → core}/config/lr-mobile-config.js +0 -0
  253. package/{lighthouse-core → core}/config/metrics-to-audits.js +0 -0
  254. package/{lighthouse-core → core}/config/perf-config.js +0 -0
  255. package/{lighthouse-core → core}/fraggle-rock/api.js +0 -0
  256. package/{lighthouse-core → core}/fraggle-rock/config/config.js +0 -0
  257. package/{lighthouse-core → core}/fraggle-rock/config/filters.js +0 -0
  258. package/{lighthouse-core → core}/fraggle-rock/config/validation.js +0 -0
  259. package/{lighthouse-core → core}/fraggle-rock/gather/base-artifacts.js +0 -0
  260. package/{lighthouse-core → core}/fraggle-rock/gather/base-gatherer.js +1 -1
  261. package/{lighthouse-core → core}/fraggle-rock/gather/driver.js +0 -0
  262. package/{lighthouse-core → core}/fraggle-rock/gather/navigation-runner.js +0 -0
  263. package/{lighthouse-core → core}/fraggle-rock/gather/runner-helpers.js +0 -0
  264. package/{lighthouse-core → core}/fraggle-rock/gather/session.js +0 -0
  265. package/{lighthouse-core → core}/fraggle-rock/gather/snapshot-runner.js +0 -0
  266. package/{lighthouse-core → core}/fraggle-rock/gather/timespan-runner.js +0 -0
  267. package/{lighthouse-core → core}/fraggle-rock/user-flow.js +0 -0
  268. package/{lighthouse-core → core}/gather/connections/connection.js +0 -0
  269. package/{lighthouse-core → core}/gather/connections/cri.js +0 -0
  270. package/{lighthouse-core → core}/gather/connections/raw.js +0 -0
  271. package/{lighthouse-core → core}/gather/driver/dom.js +0 -0
  272. package/{lighthouse-core → core}/gather/driver/environment.js +0 -0
  273. package/{lighthouse-core → core}/gather/driver/execution-context.js +0 -0
  274. package/{lighthouse-core → core}/gather/driver/navigation.js +0 -0
  275. package/{lighthouse-core → core}/gather/driver/network-monitor.js +0 -0
  276. package/{lighthouse-core → core}/gather/driver/network.js +0 -0
  277. package/{lighthouse-core → core}/gather/driver/prepare.js +0 -0
  278. package/{lighthouse-core → core}/gather/driver/service-workers.js +0 -0
  279. package/{lighthouse-core → core}/gather/driver/storage.js +0 -0
  280. package/{lighthouse-core → core}/gather/driver/target-manager.js +0 -0
  281. package/{lighthouse-core → core}/gather/driver/wait-for-condition.js +0 -0
  282. package/{lighthouse-core → core}/gather/driver.js +0 -0
  283. package/{lighthouse-core → core}/gather/fetcher.js +0 -0
  284. package/{lighthouse-core → core}/gather/gather-runner.js +0 -0
  285. package/{lighthouse-core → core}/gather/gatherers/accessibility.js +0 -0
  286. package/{lighthouse-core → core}/gather/gatherers/anchor-elements.js +0 -0
  287. package/{lighthouse-core → core}/gather/gatherers/cache-contents.js +0 -0
  288. package/{lighthouse-core → core}/gather/gatherers/console-messages.js +0 -0
  289. package/{lighthouse-core → core}/gather/gatherers/css-usage.js +0 -0
  290. package/{lighthouse-core → core}/gather/gatherers/devtools-log-compat.js +0 -0
  291. package/{lighthouse-core → core}/gather/gatherers/devtools-log.js +0 -0
  292. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/doctype.js +0 -0
  293. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/domstats.js +0 -0
  294. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/optimized-images.js +0 -0
  295. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/password-inputs-with-prevented-paste.js +0 -0
  296. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/response-compression.js +0 -0
  297. package/{lighthouse-core → core}/gather/gatherers/dobetterweb/tags-blocking-first-paint.js +0 -0
  298. package/{lighthouse-core → core}/gather/gatherers/full-page-screenshot.js +0 -0
  299. package/{lighthouse-core → core}/gather/gatherers/gatherer.js +0 -0
  300. package/{lighthouse-core → core}/gather/gatherers/global-listeners.js +0 -0
  301. package/{lighthouse-core → core}/gather/gatherers/iframe-elements.js +0 -0
  302. package/{lighthouse-core → core}/gather/gatherers/image-elements.js +0 -0
  303. package/{lighthouse-core → core}/gather/gatherers/inputs.js +0 -0
  304. package/{lighthouse-core → core}/gather/gatherers/inspector-issues.js +0 -0
  305. package/{lighthouse-core → core}/gather/gatherers/installability-errors.js +0 -0
  306. package/{lighthouse-core → core}/gather/gatherers/js-usage.js +0 -0
  307. package/{lighthouse-core → core}/gather/gatherers/link-elements.js +0 -0
  308. package/{lighthouse-core → core}/gather/gatherers/main-document-content.js +0 -0
  309. package/{lighthouse-core → core}/gather/gatherers/meta-elements.js +0 -0
  310. package/{lighthouse-core → core}/gather/gatherers/network-user-agent.js +0 -0
  311. package/{lighthouse-core → core}/gather/gatherers/script-elements.js +0 -0
  312. package/{lighthouse-core → core}/gather/gatherers/scripts.js +0 -0
  313. package/{lighthouse-core → core}/gather/gatherers/seo/embedded-content.js +0 -0
  314. package/{lighthouse-core → core}/gather/gatherers/seo/font-size.js +0 -0
  315. package/{lighthouse-core → core}/gather/gatherers/seo/robots-txt.js +0 -0
  316. package/{lighthouse-core → core}/gather/gatherers/seo/tap-targets.js +0 -0
  317. package/{lighthouse-core → core}/gather/gatherers/service-worker.js +0 -0
  318. package/{lighthouse-core → core}/gather/gatherers/source-maps.js +0 -0
  319. package/{lighthouse-core → core}/gather/gatherers/stacks.js +0 -0
  320. package/{lighthouse-core → core}/gather/gatherers/trace-compat.js +0 -0
  321. package/{lighthouse-core → core}/gather/gatherers/trace-elements.js +0 -0
  322. package/{lighthouse-core → core}/gather/gatherers/trace.js +0 -0
  323. package/{lighthouse-core → core}/gather/gatherers/viewport-dimensions.js +0 -0
  324. package/{lighthouse-core → core}/gather/gatherers/web-app-manifest.js +0 -0
  325. package/{lighthouse-core → core}/index.cjs +0 -0
  326. package/{lighthouse-core → core}/index.js +1 -1
  327. package/{lighthouse-core → core}/lib/arbitrary-equality-map.js +0 -0
  328. package/{lighthouse-core → core}/lib/asset-saver.js +0 -0
  329. package/{lighthouse-core → core}/lib/axe.js +0 -0
  330. package/{lighthouse-core → core}/lib/cdt/Common.js +0 -0
  331. package/{lighthouse-core → core}/lib/cdt/Platform.js +0 -0
  332. package/{lighthouse-core → core}/lib/cdt/SDK.js +0 -0
  333. package/{lighthouse-core → core}/lib/cdt/generated/ParsedURL.js +0 -0
  334. package/{lighthouse-core → core}/lib/cdt/generated/SourceMap.js +0 -0
  335. package/{lighthouse-core → core}/lib/cdt/package.json +0 -0
  336. package/{lighthouse-core → core}/lib/csp-evaluator.js +0 -0
  337. package/{lighthouse-core → core}/lib/dependency-graph/base-node.js +0 -0
  338. package/{lighthouse-core → core}/lib/dependency-graph/cpu-node.js +0 -0
  339. package/{lighthouse-core → core}/lib/dependency-graph/network-node.js +0 -0
  340. package/{lighthouse-core → core}/lib/dependency-graph/simulator/connection-pool.js +0 -0
  341. package/{lighthouse-core → core}/lib/dependency-graph/simulator/dns-cache.js +0 -0
  342. package/{lighthouse-core → core}/lib/dependency-graph/simulator/network-analyzer.js +0 -0
  343. package/{lighthouse-core → core}/lib/dependency-graph/simulator/simulator-timing-map.js +0 -0
  344. package/{lighthouse-core → core}/lib/dependency-graph/simulator/simulator.js +0 -0
  345. package/{lighthouse-core → core}/lib/dependency-graph/simulator/tcp-connection.js +0 -0
  346. package/{lighthouse-core → core}/lib/deprecations-strings.js +0 -0
  347. package/{lighthouse-core → core}/lib/emulation.js +0 -0
  348. package/{lighthouse-core → core}/lib/i18n/README.md +2 -2
  349. package/{lighthouse-core → core}/lib/i18n/i18n.js +0 -0
  350. package/{lighthouse-core → core}/lib/icons.js +0 -0
  351. package/{lighthouse-core → core}/lib/lantern-trace-saver.js +0 -0
  352. package/{lighthouse-core → core}/lib/lh-env.js +0 -0
  353. package/{lighthouse-core → core}/lib/lh-error.js +0 -0
  354. package/{lighthouse-core → core}/lib/lh-trace-processor.js +0 -0
  355. package/{lighthouse-core → core}/lib/manifest-parser.js +0 -0
  356. package/{lighthouse-core → core}/lib/median-run.js +0 -0
  357. package/{lighthouse-core → core}/lib/minification-estimator.js +0 -0
  358. package/{lighthouse-core → core}/lib/minify-devtoolslog.js +0 -0
  359. package/{lighthouse-core → core}/lib/minify-trace.js +3 -3
  360. package/{lighthouse-core → core}/lib/navigation-error.js +0 -0
  361. package/{lighthouse-core → core}/lib/network-recorder.js +0 -0
  362. package/{lighthouse-core → core}/lib/network-request.js +0 -0
  363. package/{lighthouse-core → core}/lib/page-functions.js +0 -0
  364. package/{lighthouse-core → core}/lib/proto-preprocessor.js +0 -0
  365. package/{lighthouse-core → core}/lib/rect-helpers.js +0 -0
  366. package/{lighthouse-core → core}/lib/script-helpers.js +0 -0
  367. package/{lighthouse-core → core}/lib/sentry.js +0 -0
  368. package/{lighthouse-core → core}/lib/stack-packs.js +0 -0
  369. package/{lighthouse-core → core}/lib/statistics.js +0 -0
  370. package/{lighthouse-core → core}/lib/tappable-rects.js +0 -0
  371. package/{lighthouse-core → core}/lib/third-party-web.js +0 -0
  372. package/{lighthouse-core → core}/lib/timing-trace-saver.js +0 -0
  373. package/{lighthouse-core → core}/lib/tracehouse/cpu-profile-model.js +0 -0
  374. package/{lighthouse-core → core}/lib/tracehouse/main-thread-tasks.js +0 -0
  375. package/{lighthouse-core → core}/lib/tracehouse/task-groups.js +0 -0
  376. package/{lighthouse-core → core}/lib/tracehouse/task-summary.js +0 -0
  377. package/{lighthouse-core → core}/lib/tracehouse/trace-processor.js +0 -0
  378. package/{lighthouse-core → core}/lib/traces/pwmetrics-events.js +0 -0
  379. package/{lighthouse-core → core}/lib/url-shim.js +0 -0
  380. package/{lighthouse-core → core}/package.json +0 -0
  381. package/{lighthouse-core → core}/runner.js +0 -0
  382. package/{lighthouse-core → core}/scoring.js +0 -0
  383. package/{lighthouse-core → core}/scripts/download-chrome.sh +0 -0
  384. package/{lighthouse-core → core}/scripts/manual-chrome-launcher.js +1 -1
  385. package/{lighthouse-core → core}/scripts/package.json +0 -0
  386. package/{lighthouse-core → core}/util.cjs +1 -1
  387. package/eslint-local-rules.cjs +1 -1
  388. package/flow-report/test/common-test.tsx +1 -1
  389. package/flow-report/test/run-flow-report-tests.sh +1 -1
  390. package/flow-report/test/sample-flow.ts +1 -1
  391. package/flow-report/tsconfig.json +1 -1
  392. package/package.json +36 -36
  393. package/readme.md +4 -4
  394. package/report/clients/bundle.js +1 -1
  395. package/report/test/clients/bundle-test.js +1 -1
  396. package/report/test/generator/report-generator-test.js +2 -2
  397. package/report/test/renderer/category-renderer-test.js +2 -2
  398. package/report/test/renderer/i18n-test.js +1 -1
  399. package/report/test/renderer/performance-category-renderer-test.js +3 -3
  400. package/report/test/renderer/pwa-category-renderer-test.js +2 -2
  401. package/report/test/renderer/report-renderer-axe-test.js +3 -3
  402. package/report/test/renderer/report-renderer-test.js +3 -3
  403. package/report/test/renderer/report-ui-features-test.js +2 -2
  404. package/report/test/renderer/util-test.js +2 -2
  405. package/shared/localization/locales/ar-XB.json +641 -641
  406. package/shared/localization/locales/ar.json +641 -641
  407. package/shared/localization/locales/bg.json +641 -641
  408. package/shared/localization/locales/ca.json +641 -641
  409. package/shared/localization/locales/cs.json +641 -641
  410. package/shared/localization/locales/da.json +641 -641
  411. package/shared/localization/locales/de.json +641 -641
  412. package/shared/localization/locales/el.json +641 -641
  413. package/shared/localization/locales/en-GB.json +641 -641
  414. package/shared/localization/locales/en-US.json +830 -830
  415. package/shared/localization/locales/en-XA.json +641 -641
  416. package/shared/localization/locales/en-XL.json +830 -830
  417. package/shared/localization/locales/es-419.json +641 -641
  418. package/shared/localization/locales/es.json +641 -641
  419. package/shared/localization/locales/fi.json +641 -641
  420. package/shared/localization/locales/fil.json +641 -641
  421. package/shared/localization/locales/fr.json +641 -641
  422. package/shared/localization/locales/he.json +641 -641
  423. package/shared/localization/locales/hi.json +641 -641
  424. package/shared/localization/locales/hr.json +641 -641
  425. package/shared/localization/locales/hu.json +641 -641
  426. package/shared/localization/locales/id.json +641 -641
  427. package/shared/localization/locales/it.json +641 -641
  428. package/shared/localization/locales/ja.json +641 -641
  429. package/shared/localization/locales/ko.json +641 -641
  430. package/shared/localization/locales/lt.json +641 -641
  431. package/shared/localization/locales/lv.json +641 -641
  432. package/shared/localization/locales/nl.json +641 -641
  433. package/shared/localization/locales/no.json +641 -641
  434. package/shared/localization/locales/pl.json +641 -641
  435. package/shared/localization/locales/pt-PT.json +641 -641
  436. package/shared/localization/locales/pt.json +641 -641
  437. package/shared/localization/locales/ro.json +641 -641
  438. package/shared/localization/locales/ru.json +641 -641
  439. package/shared/localization/locales/sk.json +641 -641
  440. package/shared/localization/locales/sl.json +641 -641
  441. package/shared/localization/locales/sr-Latn.json +641 -641
  442. package/shared/localization/locales/sr.json +641 -641
  443. package/shared/localization/locales/sv.json +641 -641
  444. package/shared/localization/locales/ta.json +641 -641
  445. package/shared/localization/locales/te.json +641 -641
  446. package/shared/localization/locales/th.json +641 -641
  447. package/shared/localization/locales/tr.json +641 -641
  448. package/shared/localization/locales/uk.json +641 -641
  449. package/shared/localization/locales/vi.json +641 -641
  450. package/shared/localization/locales/zh-HK.json +641 -641
  451. package/shared/localization/locales/zh-TW.json +641 -641
  452. package/shared/localization/locales/zh.json +641 -641
  453. package/shared/localization/swap-locale.js +3 -3
  454. package/shared/test/localization/format-test.js +5 -5
  455. package/shared/test/localization/swap-locale-test.js +8 -8
  456. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +1 -1
  457. package/third-party/chromium-synchronization/installability-errors-test.js +1 -1
  458. package/tsconfig.json +84 -84
  459. package/types/artifacts.d.ts +7 -7
  460. package/types/audit.d.ts +1 -1
  461. package/types/config.d.ts +1 -1
  462. package/types/gatherer.d.ts +8 -8
  463. package/types/global-lh.d.ts +2 -2
  464. package/types/user-flow.d.ts +1 -1
@@ -131,1927 +131,1927 @@
131
131
  "flow-report/src/i18n/ui-strings.js | title": {
132
132
  "message": "Báo cáo luồng người dùng Lighthouse"
133
133
  },
134
- "lighthouse-core/audits/accessibility/accesskeys.js | description": {
134
+ "core/audits/accessibility/accesskeys.js | description": {
135
135
  "message": "Các phím truy cập cho phép người dùng chuyển nhanh đến một phần của trang. Để di chuyển đúng cách, mỗi phím truy cập phải là duy nhất. [Tìm hiểu thêm](https://web.dev/accesskeys/)."
136
136
  },
137
- "lighthouse-core/audits/accessibility/accesskeys.js | failureTitle": {
137
+ "core/audits/accessibility/accesskeys.js | failureTitle": {
138
138
  "message": "Các giá trị của `[accesskey]` không phải là duy nhất"
139
139
  },
140
- "lighthouse-core/audits/accessibility/accesskeys.js | title": {
140
+ "core/audits/accessibility/accesskeys.js | title": {
141
141
  "message": "Các giá trị của `[accesskey]` là duy nhất"
142
142
  },
143
- "lighthouse-core/audits/accessibility/aria-allowed-attr.js | description": {
143
+ "core/audits/accessibility/aria-allowed-attr.js | description": {
144
144
  "message": "Mỗi `role` của Ứng dụng Internet phong phú dễ dùng (ARIA) hỗ trợ một tập hợp con cụ thể các thuộc tính `aria-*`. Nếu không trùng khớp, các thuộc tính `aria-*` sẽ bị vô hiệu. [Tìm hiểu thêm](https://web.dev/aria-allowed-attr/)."
145
145
  },
146
- "lighthouse-core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
146
+ "core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
147
147
  "message": "Các thuộc tính `[aria-*]` không khớp với vai trò tương ứng"
148
148
  },
149
- "lighthouse-core/audits/accessibility/aria-allowed-attr.js | title": {
149
+ "core/audits/accessibility/aria-allowed-attr.js | title": {
150
150
  "message": "Các thuộc tính `[aria-*]` khớp với vai trò tương ứng"
151
151
  },
152
- "lighthouse-core/audits/accessibility/aria-command-name.js | description": {
152
+ "core/audits/accessibility/aria-command-name.js | description": {
153
153
  "message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
154
154
  },
155
- "lighthouse-core/audits/accessibility/aria-command-name.js | failureTitle": {
155
+ "core/audits/accessibility/aria-command-name.js | failureTitle": {
156
156
  "message": "Các phần tử `button`, `link` và `menuitem` không có tên dễ đọc."
157
157
  },
158
- "lighthouse-core/audits/accessibility/aria-command-name.js | title": {
158
+ "core/audits/accessibility/aria-command-name.js | title": {
159
159
  "message": "Các phần tử `button`, `link` và `menuitem` có tên dễ đọc"
160
160
  },
161
- "lighthouse-core/audits/accessibility/aria-hidden-body.js | description": {
161
+ "core/audits/accessibility/aria-hidden-body.js | description": {
162
162
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sẽ hoạt động không nhất quán khi đặt `aria-hidden=\"true\"` trên tài liệu `<body>`. [Tìm hiểu thêm](https://web.dev/aria-hidden-body/)."
163
163
  },
164
- "lighthouse-core/audits/accessibility/aria-hidden-body.js | failureTitle": {
164
+ "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
165
165
  "message": "Hiện có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
166
166
  },
167
- "lighthouse-core/audits/accessibility/aria-hidden-body.js | title": {
167
+ "core/audits/accessibility/aria-hidden-body.js | title": {
168
168
  "message": "Hiện không có `[aria-hidden=\"true\"]` trên tài liệu `<body>`"
169
169
  },
170
- "lighthouse-core/audits/accessibility/aria-hidden-focus.js | description": {
170
+ "core/audits/accessibility/aria-hidden-focus.js | description": {
171
171
  "message": "Các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm bên trong một phần tử `[aria-hidden=\"true\"]` sẽ giúp ngăn người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, tiếp cận với các phần tử tương tác đó. [Tìm hiểu thêm](https://web.dev/aria-hidden-focus/)."
172
172
  },
173
- "lighthouse-core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
173
+ "core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
174
174
  "message": "Các phần tử `[aria-hidden=\"true\"]` có chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
175
175
  },
176
- "lighthouse-core/audits/accessibility/aria-hidden-focus.js | title": {
176
+ "core/audits/accessibility/aria-hidden-focus.js | title": {
177
177
  "message": "Các phần tử `[aria-hidden=\"true\"]` không chứa các phần tử theo thứ tự giảm dần có thể lấy tiêu điểm"
178
178
  },
179
- "lighthouse-core/audits/accessibility/aria-input-field-name.js | description": {
179
+ "core/audits/accessibility/aria-input-field-name.js | description": {
180
180
  "message": "Khi tên của một trường nhập ở trạng thái không thể tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
181
181
  },
182
- "lighthouse-core/audits/accessibility/aria-input-field-name.js | failureTitle": {
182
+ "core/audits/accessibility/aria-input-field-name.js | failureTitle": {
183
183
  "message": "Tên các trường nhập của ARIA ở trạng thái không thể tiếp cận"
184
184
  },
185
- "lighthouse-core/audits/accessibility/aria-input-field-name.js | title": {
185
+ "core/audits/accessibility/aria-input-field-name.js | title": {
186
186
  "message": "Tên các trường nhập của ARIA ở trạng thái có thể tiếp cận"
187
187
  },
188
- "lighthouse-core/audits/accessibility/aria-meter-name.js | description": {
188
+ "core/audits/accessibility/aria-meter-name.js | description": {
189
189
  "message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
190
190
  },
191
- "lighthouse-core/audits/accessibility/aria-meter-name.js | failureTitle": {
191
+ "core/audits/accessibility/aria-meter-name.js | failureTitle": {
192
192
  "message": "Các phần tử `meter` của ARIA không có tên dễ đọc."
193
193
  },
194
- "lighthouse-core/audits/accessibility/aria-meter-name.js | title": {
194
+ "core/audits/accessibility/aria-meter-name.js | title": {
195
195
  "message": "Các phần tử `meter` của ARIA có tên dễ đọc"
196
196
  },
197
- "lighthouse-core/audits/accessibility/aria-progressbar-name.js | description": {
197
+ "core/audits/accessibility/aria-progressbar-name.js | description": {
198
198
  "message": "Khi một phần tử `progressbar` không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
199
199
  },
200
- "lighthouse-core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
200
+ "core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
201
201
  "message": "Các phần tử `progressbar` của ARIA không có tên dễ đọc."
202
202
  },
203
- "lighthouse-core/audits/accessibility/aria-progressbar-name.js | title": {
203
+ "core/audits/accessibility/aria-progressbar-name.js | title": {
204
204
  "message": "Các phần tử `progressbar` của ARIA có tên dễ đọc"
205
205
  },
206
- "lighthouse-core/audits/accessibility/aria-required-attr.js | description": {
206
+ "core/audits/accessibility/aria-required-attr.js | description": {
207
207
  "message": "Một số vai trò ARIA có các thuộc tính bắt buộc mô tả trạng thái của phần tử cho trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/aria-required-attr/)."
208
208
  },
209
- "lighthouse-core/audits/accessibility/aria-required-attr.js | failureTitle": {
209
+ "core/audits/accessibility/aria-required-attr.js | failureTitle": {
210
210
  "message": "`[role]` không có tất cả các thuộc tính `[aria-*]` bắt buộc"
211
211
  },
212
- "lighthouse-core/audits/accessibility/aria-required-attr.js | title": {
212
+ "core/audits/accessibility/aria-required-attr.js | title": {
213
213
  "message": "`[role]` có tất cả các thuộc tính `[aria-*]` bắt buộc"
214
214
  },
215
- "lighthouse-core/audits/accessibility/aria-required-children.js | description": {
215
+ "core/audits/accessibility/aria-required-children.js | description": {
216
216
  "message": "Một số vai trò mẹ của Ứng dụng Internet phong phú dễ dùng (ARIA) phải chứa vai trò con cụ thể để thực hiện các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-required-children/)."
217
217
  },
218
- "lighthouse-core/audits/accessibility/aria-required-children.js | failureTitle": {
218
+ "core/audits/accessibility/aria-required-children.js | failureTitle": {
219
219
  "message": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể hiện đang thiếu một số hoặc tất cả các phần tử con bắt buộc đó."
220
220
  },
221
- "lighthouse-core/audits/accessibility/aria-required-children.js | title": {
221
+ "core/audits/accessibility/aria-required-children.js | title": {
222
222
  "message": "Các phần tử có `[role]` ARIA yêu cầu phần tử con phải chứa một `[role]` cụ thể có tất cả các phần tử con bắt buộc."
223
223
  },
224
- "lighthouse-core/audits/accessibility/aria-required-parent.js | description": {
224
+ "core/audits/accessibility/aria-required-parent.js | description": {
225
225
  "message": "Các vai trò mẹ cụ thể phải chứa một số vai trò con của Ứng dụng Internet phong phú dễ dùng (ARIA) để thực hiện đúng cách các chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-required-parent/)."
226
226
  },
227
- "lighthouse-core/audits/accessibility/aria-required-parent.js | failureTitle": {
227
+ "core/audits/accessibility/aria-required-parent.js | failureTitle": {
228
228
  "message": "`[role]` không có trong phần tử mẹ bắt buộc tương ứng"
229
229
  },
230
- "lighthouse-core/audits/accessibility/aria-required-parent.js | title": {
230
+ "core/audits/accessibility/aria-required-parent.js | title": {
231
231
  "message": "`[role]` có trong phần tử mẹ bắt buộc tương ứng"
232
232
  },
233
- "lighthouse-core/audits/accessibility/aria-roles.js | description": {
233
+ "core/audits/accessibility/aria-roles.js | description": {
234
234
  "message": "Các vai trò của Ứng dụng Internet phong phú dễ dùng (ARIA) phải có giá trị hợp lệ để thực hiện những chức năng hỗ trợ tiếp cận chủ định tương ứng. [Tìm hiểu thêm](https://web.dev/aria-roles/)."
235
235
  },
236
- "lighthouse-core/audits/accessibility/aria-roles.js | failureTitle": {
236
+ "core/audits/accessibility/aria-roles.js | failureTitle": {
237
237
  "message": "Các giá trị của `[role]` là không hợp lệ"
238
238
  },
239
- "lighthouse-core/audits/accessibility/aria-roles.js | title": {
239
+ "core/audits/accessibility/aria-roles.js | title": {
240
240
  "message": "Các giá trị của `[role]` là hợp lệ"
241
241
  },
242
- "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | description": {
242
+ "core/audits/accessibility/aria-toggle-field-name.js | description": {
243
243
  "message": "Khi tên của một trường chuyển đổi ở trạng thái không thể tiếp cận, thì trình đọc màn hình sẽ gọi trường đó bằng tên gọi chung, khiến người dùng trình đọc màn hình không dùng được trường này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
244
244
  },
245
- "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
245
+ "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
246
246
  "message": "Tên các trường chuyển đổi của ARIA ở trạng thái không thể tiếp cận"
247
247
  },
248
- "lighthouse-core/audits/accessibility/aria-toggle-field-name.js | title": {
248
+ "core/audits/accessibility/aria-toggle-field-name.js | title": {
249
249
  "message": "Tên các trường chuyển đổi của ARIA ở trạng thái có thể tiếp cận"
250
250
  },
251
- "lighthouse-core/audits/accessibility/aria-tooltip-name.js | description": {
251
+ "core/audits/accessibility/aria-tooltip-name.js | description": {
252
252
  "message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
253
253
  },
254
- "lighthouse-core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
254
+ "core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
255
255
  "message": "Các phần tử `tooltip` của ARIA không có tên dễ đọc."
256
256
  },
257
- "lighthouse-core/audits/accessibility/aria-tooltip-name.js | title": {
257
+ "core/audits/accessibility/aria-tooltip-name.js | title": {
258
258
  "message": "Các phần tử `tooltip` của ARIA có tên dễ đọc"
259
259
  },
260
- "lighthouse-core/audits/accessibility/aria-treeitem-name.js | description": {
260
+ "core/audits/accessibility/aria-treeitem-name.js | description": {
261
261
  "message": "Khi một phần tử không có tên thành phần hỗ trợ tiếp cận, trình đọc màn hình sẽ gọi phần tử đó bằng một tên gọi chung, dẫn đến việc người dùng trình đọc màn hình không sử dụng được phần tử này. [Tìm hiểu thêm](https://web.dev/aria-name/)."
262
262
  },
263
- "lighthouse-core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
263
+ "core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
264
264
  "message": "Các phần tử `treeitem` của ARIA không có tên dễ đọc."
265
265
  },
266
- "lighthouse-core/audits/accessibility/aria-treeitem-name.js | title": {
266
+ "core/audits/accessibility/aria-treeitem-name.js | title": {
267
267
  "message": "Các phần tử `treeitem` của ARIA có tên dễ đọc"
268
268
  },
269
- "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | description": {
269
+ "core/audits/accessibility/aria-valid-attr-value.js | description": {
270
270
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có giá trị không hợp lệ. [Tìm hiểu thêm](https://web.dev/aria-valid-attr-value/)."
271
271
  },
272
- "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
272
+ "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
273
273
  "message": "Giá trị của các thuộc tính `[aria-*]` là không hợp lệ"
274
274
  },
275
- "lighthouse-core/audits/accessibility/aria-valid-attr-value.js | title": {
275
+ "core/audits/accessibility/aria-valid-attr-value.js | title": {
276
276
  "message": "Các thuộc tính `[aria-*]` có giá trị hợp lệ"
277
277
  },
278
- "lighthouse-core/audits/accessibility/aria-valid-attr.js | description": {
278
+ "core/audits/accessibility/aria-valid-attr.js | description": {
279
279
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, không thể diễn giải các thuộc tính của Ứng dụng Internet phong phú dễ dùng (ARIA) có tên không hợp lệ. [Tìm hiểu thêm](https://web.dev/aria-valid-attr/)."
280
280
  },
281
- "lighthouse-core/audits/accessibility/aria-valid-attr.js | failureTitle": {
281
+ "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
282
282
  "message": "Các thuộc tính `[aria-*]` là không hợp lệ hoặc bị sai chính tả"
283
283
  },
284
- "lighthouse-core/audits/accessibility/aria-valid-attr.js | title": {
284
+ "core/audits/accessibility/aria-valid-attr.js | title": {
285
285
  "message": "Các thuộc tính `[aria-*]` là hợp lệ và không bị sai chính tả"
286
286
  },
287
- "lighthouse-core/audits/accessibility/axe-audit.js | failingElementsHeader": {
287
+ "core/audits/accessibility/axe-audit.js | failingElementsHeader": {
288
288
  "message": "Các phần tử không đạt"
289
289
  },
290
- "lighthouse-core/audits/accessibility/button-name.js | description": {
290
+ "core/audits/accessibility/button-name.js | description": {
291
291
  "message": "Khi một nút không có tên có thể tiếp cận, trình đọc màn hình sẽ thông báo đó là \"nút\", khiến người dùng trình đọc màn hình không sử dụng được nút này. [Tìm hiểu thêm](https://web.dev/button-name/)."
292
292
  },
293
- "lighthouse-core/audits/accessibility/button-name.js | failureTitle": {
293
+ "core/audits/accessibility/button-name.js | failureTitle": {
294
294
  "message": "Các nút không có tên có thể tiếp cận được"
295
295
  },
296
- "lighthouse-core/audits/accessibility/button-name.js | title": {
296
+ "core/audits/accessibility/button-name.js | title": {
297
297
  "message": "Các nút có tên tiếp cận được"
298
298
  },
299
- "lighthouse-core/audits/accessibility/bypass.js | description": {
299
+ "core/audits/accessibility/bypass.js | description": {
300
300
  "message": "Bằng việc thêm các cách bỏ qua nội dung lặp lại, người dùng bàn phím có thể khám phá trang một cách hiệu quả hơn. [Tìm hiểu thêm](https://web.dev/bypass/)."
301
301
  },
302
- "lighthouse-core/audits/accessibility/bypass.js | failureTitle": {
302
+ "core/audits/accessibility/bypass.js | failureTitle": {
303
303
  "message": "Trang này không chứa tiêu đề, đường liên kết bỏ qua hoặc vùng mốc"
304
304
  },
305
- "lighthouse-core/audits/accessibility/bypass.js | title": {
305
+ "core/audits/accessibility/bypass.js | title": {
306
306
  "message": "Trang này chứa tiêu đề, phần tử liên kết bỏ qua hoặc vùng mốc"
307
307
  },
308
- "lighthouse-core/audits/accessibility/color-contrast.js | description": {
308
+ "core/audits/accessibility/color-contrast.js | description": {
309
309
  "message": "Nhiều người dùng gặp khó khăn khi đọc hoặc không thể đọc được văn bản có độ tương phản thấp. [Tìm hiểu thêm](https://web.dev/color-contrast/)."
310
310
  },
311
- "lighthouse-core/audits/accessibility/color-contrast.js | failureTitle": {
311
+ "core/audits/accessibility/color-contrast.js | failureTitle": {
312
312
  "message": "Màu nền trước và nền sau không có đủ tỷ lệ tương phản."
313
313
  },
314
- "lighthouse-core/audits/accessibility/color-contrast.js | title": {
314
+ "core/audits/accessibility/color-contrast.js | title": {
315
315
  "message": "Màu nền trước và nền sau có đủ tỷ lệ tương phản"
316
316
  },
317
- "lighthouse-core/audits/accessibility/definition-list.js | description": {
317
+ "core/audits/accessibility/definition-list.js | description": {
318
318
  "message": "Khi danh sách định nghĩa không được đánh dấu đúng cách, thì trình đọc màn hình có thể tạo ra thông báo gây nhầm lẫn hoặc không chính xác. [Tìm hiểu thêm](https://web.dev/definition-list/)."
319
319
  },
320
- "lighthouse-core/audits/accessibility/definition-list.js | failureTitle": {
320
+ "core/audits/accessibility/definition-list.js | failureTitle": {
321
321
  "message": "`<dl>` không chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
322
322
  },
323
- "lighthouse-core/audits/accessibility/definition-list.js | title": {
323
+ "core/audits/accessibility/definition-list.js | title": {
324
324
  "message": "`<dl>` chỉ chứa các nhóm `<dt>` và `<dd>` được sắp xếp đúng cách, các phần tử `<script>`, `<template>` hoặc `<div>`."
325
325
  },
326
- "lighthouse-core/audits/accessibility/dlitem.js | description": {
326
+ "core/audits/accessibility/dlitem.js | description": {
327
327
  "message": "Các mục trong danh sách định nghĩa (`<dt>` và `<dd>`) phải được đưa vào một phần tử `<dl>` mẹ để đảm bảo rằng trình đọc màn hình có thể thông báo đúng cách các mục này. [Tìm hiểu thêm](https://web.dev/dlitem/)."
328
328
  },
329
- "lighthouse-core/audits/accessibility/dlitem.js | failureTitle": {
329
+ "core/audits/accessibility/dlitem.js | failureTitle": {
330
330
  "message": "Các phần tử `<dl>` không bao gồm những mục trong danh sách định nghĩa"
331
331
  },
332
- "lighthouse-core/audits/accessibility/dlitem.js | title": {
332
+ "core/audits/accessibility/dlitem.js | title": {
333
333
  "message": "Các phần tử `<dl>` chứa mục trong danh sách định nghĩa"
334
334
  },
335
- "lighthouse-core/audits/accessibility/document-title.js | description": {
335
+ "core/audits/accessibility/document-title.js | description": {
336
336
  "message": "Tiêu đề giúp người dùng trình đọc màn hình nắm được thông tin tổng quan về trang, và giúp người dùng công cụ tìm kiếm chủ yếu dựa vào tiêu đề này xác định xem một trang có liên quan đến nội dung tìm kiếm của họ hay không. [Tìm hiểu thêm](https://web.dev/document-title/)."
337
337
  },
338
- "lighthouse-core/audits/accessibility/document-title.js | failureTitle": {
338
+ "core/audits/accessibility/document-title.js | failureTitle": {
339
339
  "message": "Tài liệu không có phần tử `<title>`"
340
340
  },
341
- "lighthouse-core/audits/accessibility/document-title.js | title": {
341
+ "core/audits/accessibility/document-title.js | title": {
342
342
  "message": "Tài liệu có phần tử `<title>`"
343
343
  },
344
- "lighthouse-core/audits/accessibility/duplicate-id-active.js | description": {
344
+ "core/audits/accessibility/duplicate-id-active.js | description": {
345
345
  "message": "Để có thể hiển thị với các công nghệ hỗ trợ, `id` của các phần tử có thể lấy tiêu điểm không được trùng nhau. [Tìm hiểu thêm](https://web.dev/duplicate-id-active/)."
346
346
  },
347
- "lighthouse-core/audits/accessibility/duplicate-id-active.js | failureTitle": {
347
+ "core/audits/accessibility/duplicate-id-active.js | failureTitle": {
348
348
  "message": "Các thuộc tính `[id]` trên những phần tử có thể lấy tiêu điểm đang hoạt động bị trùng nhau"
349
349
  },
350
- "lighthouse-core/audits/accessibility/duplicate-id-active.js | title": {
350
+ "core/audits/accessibility/duplicate-id-active.js | title": {
351
351
  "message": "Các thuộc tính `[id]` trên những phần tử có thể lấy tiêu điểm đang hoạt động là duy nhất"
352
352
  },
353
- "lighthouse-core/audits/accessibility/duplicate-id-aria.js | description": {
353
+ "core/audits/accessibility/duplicate-id-aria.js | description": {
354
354
  "message": "Để các công nghệ hỗ trợ không bỏ qua các phiên bản khác, giá trị mã nhận dạng của ARIA không được trùng nhau. [Tìm hiểu thêm](https://web.dev/duplicate-id-aria/)."
355
355
  },
356
- "lighthouse-core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
356
+ "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
357
357
  "message": "Mã nhận dạng của ARIA bị trùng lặp"
358
358
  },
359
- "lighthouse-core/audits/accessibility/duplicate-id-aria.js | title": {
359
+ "core/audits/accessibility/duplicate-id-aria.js | title": {
360
360
  "message": "Mã nhận dạng của Ứng dụng Internet phong phú dễ dùng (ARIA) là duy nhất"
361
361
  },
362
- "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | description": {
362
+ "core/audits/accessibility/form-field-multiple-labels.js | description": {
363
363
  "message": "Các công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, sử dụng nhãn đầu tiên, nhãn cuối cùng hoặc tất cả các nhãn có thể thông báo nhầm các trường biểu mẫu có nhiều nhãn. [Tìm hiểu thêm](https://web.dev/form-field-multiple-labels/)."
364
364
  },
365
- "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
365
+ "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
366
366
  "message": "Các trường biểu mẫu có nhiều nhãn"
367
367
  },
368
- "lighthouse-core/audits/accessibility/form-field-multiple-labels.js | title": {
368
+ "core/audits/accessibility/form-field-multiple-labels.js | title": {
369
369
  "message": "Không có trường biểu mẫu nào có nhiều nhãn"
370
370
  },
371
- "lighthouse-core/audits/accessibility/frame-title.js | description": {
371
+ "core/audits/accessibility/frame-title.js | description": {
372
372
  "message": "Người dùng trình đọc màn hình dựa vào tiêu đề khung để mô tả nội dung của khung. [Tìm hiểu thêm](https://web.dev/frame-title/)."
373
373
  },
374
- "lighthouse-core/audits/accessibility/frame-title.js | failureTitle": {
374
+ "core/audits/accessibility/frame-title.js | failureTitle": {
375
375
  "message": "Phần tử `<frame>` hoặc `<iframe>` không có tiêu đề"
376
376
  },
377
- "lighthouse-core/audits/accessibility/frame-title.js | title": {
377
+ "core/audits/accessibility/frame-title.js | title": {
378
378
  "message": "Các phần tử `<frame>` hoặc `<iframe>` có tiêu đề"
379
379
  },
380
- "lighthouse-core/audits/accessibility/heading-order.js | description": {
380
+ "core/audits/accessibility/heading-order.js | description": {
381
381
  "message": "Nhờ cách thức sắp xếp tiêu đề sao cho không bỏ qua các cấp độ thể hiện cấu trúc ngữ nghĩa của trang, người dùng dễ dàng hiểu được nội dung và thực hiện thao tác bằng công nghệ hỗ trợ hơn. [Tìm hiểu thêm](https://web.dev/heading-order/)."
382
382
  },
383
- "lighthouse-core/audits/accessibility/heading-order.js | failureTitle": {
383
+ "core/audits/accessibility/heading-order.js | failureTitle": {
384
384
  "message": "Các phần tử tiêu đề không tuân theo trình tự giảm dần"
385
385
  },
386
- "lighthouse-core/audits/accessibility/heading-order.js | title": {
386
+ "core/audits/accessibility/heading-order.js | title": {
387
387
  "message": "Các phần tử tiêu đề xuất hiện theo trình tự giảm dần"
388
388
  },
389
- "lighthouse-core/audits/accessibility/html-has-lang.js | description": {
389
+ "core/audits/accessibility/html-has-lang.js | description": {
390
390
  "message": "Nếu một trang chưa chỉ định thuộc tính ngôn ngữ, thì trình đọc màn hình sẽ xem như trang đó đang hiển thị bằng ngôn ngữ mặc định mà người dùng chọn khi thiết lập trình đọc màn hình. Nếu trên thực tế, trang đó không hiển thị bằng ngôn ngữ mặc định, tức là trình đọc màn hình có thể thông báo sai về văn bản của trang đó. [Tìm hiểu thêm](https://web.dev/html-has-lang/)."
391
391
  },
392
- "lighthouse-core/audits/accessibility/html-has-lang.js | failureTitle": {
392
+ "core/audits/accessibility/html-has-lang.js | failureTitle": {
393
393
  "message": "Phần tử `<html>` chưa có thuộc tính `[lang]`"
394
394
  },
395
- "lighthouse-core/audits/accessibility/html-has-lang.js | title": {
395
+ "core/audits/accessibility/html-has-lang.js | title": {
396
396
  "message": "Phần tử `<html>` có thuộc tính `[lang]`"
397
397
  },
398
- "lighthouse-core/audits/accessibility/html-lang-valid.js | description": {
398
+ "core/audits/accessibility/html-lang-valid.js | description": {
399
399
  "message": "Việc chỉ định [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ sẽ giúp trình đọc màn hình thông báo văn bản đúng cách. [Tìm hiểu thêm](https://web.dev/html-lang-valid/)."
400
400
  },
401
- "lighthouse-core/audits/accessibility/html-lang-valid.js | failureTitle": {
401
+ "core/audits/accessibility/html-lang-valid.js | failureTitle": {
402
402
  "message": "Thuộc tính `[lang]` của phần tử `<html>` không có giá trị hợp lệ."
403
403
  },
404
- "lighthouse-core/audits/accessibility/html-lang-valid.js | title": {
404
+ "core/audits/accessibility/html-lang-valid.js | title": {
405
405
  "message": "Thuộc tính `[lang]` của phần tử `<html>` có giá trị hợp lệ"
406
406
  },
407
- "lighthouse-core/audits/accessibility/image-alt.js | description": {
407
+ "core/audits/accessibility/image-alt.js | description": {
408
408
  "message": "Các phần tử thông tin nên là đoạn văn bản thay thế ngắn, có tính mô tả. Có thể bỏ qua phần tử trang trí bằng một thuộc tính alt trống. [Tìm hiểu thêm](https://web.dev/image-alt/)."
409
409
  },
410
- "lighthouse-core/audits/accessibility/image-alt.js | failureTitle": {
410
+ "core/audits/accessibility/image-alt.js | failureTitle": {
411
411
  "message": "Phần tử hình ảnh không có thuộc tính `[alt]`"
412
412
  },
413
- "lighthouse-core/audits/accessibility/image-alt.js | title": {
413
+ "core/audits/accessibility/image-alt.js | title": {
414
414
  "message": "Các phần tử hình ảnh có thuộc tính `[alt]`"
415
415
  },
416
- "lighthouse-core/audits/accessibility/input-image-alt.js | description": {
416
+ "core/audits/accessibility/input-image-alt.js | description": {
417
417
  "message": "Khi dùng một hình ảnh làm nút `<input>`, thì việc cung cấp văn bản thay thế có thể giúp người dùng trình đọc màn hình hiểu rõ mục đích của nút đó. [Tìm hiểu thêm](https://web.dev/input-image-alt/)."
418
418
  },
419
- "lighthouse-core/audits/accessibility/input-image-alt.js | failureTitle": {
419
+ "core/audits/accessibility/input-image-alt.js | failureTitle": {
420
420
  "message": "Các thành phần `<input type=\"image\">` không có văn bản `[alt]`"
421
421
  },
422
- "lighthouse-core/audits/accessibility/input-image-alt.js | title": {
422
+ "core/audits/accessibility/input-image-alt.js | title": {
423
423
  "message": "Các thành phần `<input type=\"image\">` có văn bản `[alt]`"
424
424
  },
425
- "lighthouse-core/audits/accessibility/label.js | description": {
425
+ "core/audits/accessibility/label.js | description": {
426
426
  "message": "Các nhãn đảm bảo rằng những công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình, thông báo các biện pháp kiểm soát biểu mẫu đúng cách. [Tìm hiểu thêm](https://web.dev/label/)."
427
427
  },
428
- "lighthouse-core/audits/accessibility/label.js | failureTitle": {
428
+ "core/audits/accessibility/label.js | failureTitle": {
429
429
  "message": "Các phần tử biểu mẫu không có nhãn liên kết"
430
430
  },
431
- "lighthouse-core/audits/accessibility/label.js | title": {
431
+ "core/audits/accessibility/label.js | title": {
432
432
  "message": "Các phần tử biểu mẫu có nhãn liên quan"
433
433
  },
434
- "lighthouse-core/audits/accessibility/link-name.js | description": {
434
+ "core/audits/accessibility/link-name.js | description": {
435
435
  "message": "Văn bản liên kết (và văn bản thay thế cho hình ảnh, khi dùng làm đường liên kết) có thể thấy rõ, duy nhất và có thể lấy tiêu điểm sẽ cải thiện trải nghiệm khám phá cho người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/link-name/)."
436
436
  },
437
- "lighthouse-core/audits/accessibility/link-name.js | failureTitle": {
437
+ "core/audits/accessibility/link-name.js | failureTitle": {
438
438
  "message": "Các phần tử liên kết không có tên có thể nhận rõ"
439
439
  },
440
- "lighthouse-core/audits/accessibility/link-name.js | title": {
440
+ "core/audits/accessibility/link-name.js | title": {
441
441
  "message": "Các phần tử liên kết có tên có thể nhận rõ"
442
442
  },
443
- "lighthouse-core/audits/accessibility/list.js | description": {
443
+ "core/audits/accessibility/list.js | description": {
444
444
  "message": "Các trình đọc màn hình có cách riêng để thông báo về danh sách. Khi danh sách có cấu trúc phù hợp, trình đọc màn hình sẽ thông báo về danh sách chính xác hơn. [Tìm hiểu thêm](https://web.dev/list/)."
445
445
  },
446
- "lighthouse-core/audits/accessibility/list.js | failureTitle": {
446
+ "core/audits/accessibility/list.js | failureTitle": {
447
447
  "message": "Danh sách không chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
448
448
  },
449
- "lighthouse-core/audits/accessibility/list.js | title": {
449
+ "core/audits/accessibility/list.js | title": {
450
450
  "message": "Danh sách chỉ chứa các phần tử `<li>` và phần tử hỗ trợ tập lệnh (`<script>` và `<template>`)."
451
451
  },
452
- "lighthouse-core/audits/accessibility/listitem.js | description": {
452
+ "core/audits/accessibility/listitem.js | description": {
453
453
  "message": "Trình đọc màn hình yêu cầu các mục danh sách (`<li>`) phải có trong một `<ul>` hoặc `<ol>` mẹ để được thông báo đúng cách. [Tìm hiểu thêm](https://web.dev/listitem/)."
454
454
  },
455
- "lighthouse-core/audits/accessibility/listitem.js | failureTitle": {
455
+ "core/audits/accessibility/listitem.js | failureTitle": {
456
456
  "message": "Các mục trong danh sách (`<li>`) không có trong phần tử `<ul>` hoặc `<ol>` mẹ."
457
457
  },
458
- "lighthouse-core/audits/accessibility/listitem.js | title": {
458
+ "core/audits/accessibility/listitem.js | title": {
459
459
  "message": "Các mục trong danh sách (`<li>`) có trong phần tử mẹ `<ul>` hoặc `<ol>`"
460
460
  },
461
- "lighthouse-core/audits/accessibility/meta-refresh.js | description": {
461
+ "core/audits/accessibility/meta-refresh.js | description": {
462
462
  "message": "Người dùng không muốn trang tự động làm mới. Khi trang tự động làm mới, tiêu điểm sẽ quay về đầu trang. Người dùng có thể cảm thấy khó chịu hoặc bị nhầm lẫn nếu gặp trường hợp này. [Tìm hiểu thêm](https://web.dev/meta-refresh/)."
463
463
  },
464
- "lighthouse-core/audits/accessibility/meta-refresh.js | failureTitle": {
464
+ "core/audits/accessibility/meta-refresh.js | failureTitle": {
465
465
  "message": "Tài liệu này sử dụng `<meta http-equiv=\"refresh\">`"
466
466
  },
467
- "lighthouse-core/audits/accessibility/meta-refresh.js | title": {
467
+ "core/audits/accessibility/meta-refresh.js | title": {
468
468
  "message": "Tài liệu này không dùng `<meta http-equiv=\"refresh\">`"
469
469
  },
470
- "lighthouse-core/audits/accessibility/meta-viewport.js | description": {
470
+ "core/audits/accessibility/meta-viewport.js | description": {
471
471
  "message": "Việc tắt tính năng thu phóng sẽ gây trở ngại cho những người dùng có thị lực kém bị lệ thuộc vào chức năng phóng to màn hình để thấy rõ nội dung trang web. [Tìm hiểu thêm](https://web.dev/meta-viewport/)."
472
472
  },
473
- "lighthouse-core/audits/accessibility/meta-viewport.js | failureTitle": {
473
+ "core/audits/accessibility/meta-viewport.js | failureTitle": {
474
474
  "message": "`[user-scalable=\"no\"]` được dùng trong phần tử `<meta name=\"viewport\">` hoặc thuộc tính `[maximum-scale]` nhỏ hơn 5."
475
475
  },
476
- "lighthouse-core/audits/accessibility/meta-viewport.js | title": {
476
+ "core/audits/accessibility/meta-viewport.js | title": {
477
477
  "message": "`[user-scalable=\"no\"]` không được sử dụng trong phần tử `<meta name=\"viewport\">` và thuộc tính `[maximum-scale]` không nhỏ hơn 5."
478
478
  },
479
- "lighthouse-core/audits/accessibility/object-alt.js | description": {
479
+ "core/audits/accessibility/object-alt.js | description": {
480
480
  "message": "Trình đọc màn hình không dịch được nội dung không ở dạng văn bản. Bằng việc thêm văn bản thay thế vào các thành phần `<object>`, bạn có thể giúp trình đọc màn hình truyền đạt ý nghĩa cho người dùng. [Tìm hiểu thêm](https://web.dev/object-alt/)."
481
481
  },
482
- "lighthouse-core/audits/accessibility/object-alt.js | failureTitle": {
482
+ "core/audits/accessibility/object-alt.js | failureTitle": {
483
483
  "message": "Các thành phần `<object>` không có văn bản thay thế"
484
484
  },
485
- "lighthouse-core/audits/accessibility/object-alt.js | title": {
485
+ "core/audits/accessibility/object-alt.js | title": {
486
486
  "message": "Các thành phần `<object>` có văn bản thay thế"
487
487
  },
488
- "lighthouse-core/audits/accessibility/tabindex.js | description": {
488
+ "core/audits/accessibility/tabindex.js | description": {
489
489
  "message": "Giá trị lớn hơn 0 ngụ ý thứ tự di chuyển rõ ràng. Mặc dù hợp lệ về mặt kỹ thuật nhưng điều này thường tạo ra trải nghiệm khó chịu cho những người dùng bị lệ thuộc vào công nghệ hỗ trợ. [Tìm hiểu thêm](https://web.dev/tabindex/)."
490
490
  },
491
- "lighthouse-core/audits/accessibility/tabindex.js | failureTitle": {
491
+ "core/audits/accessibility/tabindex.js | failureTitle": {
492
492
  "message": "Một số phần tử có giá trị `[tabindex]` lớn hơn 0"
493
493
  },
494
- "lighthouse-core/audits/accessibility/tabindex.js | title": {
494
+ "core/audits/accessibility/tabindex.js | title": {
495
495
  "message": "Không phần tử nào có giá trị `[tabindex]` lớn hơn 0"
496
496
  },
497
- "lighthouse-core/audits/accessibility/td-headers-attr.js | description": {
497
+ "core/audits/accessibility/td-headers-attr.js | description": {
498
498
  "message": "Trình đọc màn hình có các tính năng giúp người dùng dễ sử dụng bảng hơn. Việc đảm bảo các ô `<td>` sử dụng thuộc tính `[headers]` chỉ tham chiếu các ô khác trong cùng bảng có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/td-headers-attr/)."
499
499
  },
500
- "lighthouse-core/audits/accessibility/td-headers-attr.js | failureTitle": {
500
+ "core/audits/accessibility/td-headers-attr.js | failureTitle": {
501
501
  "message": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến một phần tử `id` không tìm thấy trong cùng một bảng."
502
502
  },
503
- "lighthouse-core/audits/accessibility/td-headers-attr.js | title": {
503
+ "core/audits/accessibility/td-headers-attr.js | title": {
504
504
  "message": "Các ô trong phần tử `<table>` sử dụng thuộc tính `[headers]` tham chiếu đến các ô trong cùng một bảng."
505
505
  },
506
- "lighthouse-core/audits/accessibility/th-has-data-cells.js | description": {
506
+ "core/audits/accessibility/th-has-data-cells.js | description": {
507
507
  "message": "Trình đọc màn hình có các tính năng giúp người dùng dễ sử dụng bảng hơn. Việc đảm bảo tiêu đề bảng luôn tham chiếu đến một nhóm ô nào đó có thể cải thiện trải nghiệm của người dùng trình đọc màn hình. [Tìm hiểu thêm](https://web.dev/th-has-data-cells/)."
508
508
  },
509
- "lighthouse-core/audits/accessibility/th-has-data-cells.js | failureTitle": {
509
+ "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
510
510
  "message": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` không chứa các ô dữ liệu mà các phần tử đó mô tả."
511
511
  },
512
- "lighthouse-core/audits/accessibility/th-has-data-cells.js | title": {
512
+ "core/audits/accessibility/th-has-data-cells.js | title": {
513
513
  "message": "Các phần tử `<th>` và phần tử có `[role=\"columnheader\"/\"rowheader\"]` chứa các ô dữ liệu mà các phần tử này mô tả."
514
514
  },
515
- "lighthouse-core/audits/accessibility/valid-lang.js | description": {
515
+ "core/audits/accessibility/valid-lang.js | description": {
516
516
  "message": "Việc chỉ định một [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) hợp lệ cho các phần tử sẽ giúp trình đọc màn hình phát âm văn bản chính xác. [Tìm hiểu thêm](https://web.dev/valid-lang/)."
517
517
  },
518
- "lighthouse-core/audits/accessibility/valid-lang.js | failureTitle": {
518
+ "core/audits/accessibility/valid-lang.js | failureTitle": {
519
519
  "message": "Các thuộc tính `[lang]` không có giá trị hợp lệ"
520
520
  },
521
- "lighthouse-core/audits/accessibility/valid-lang.js | title": {
521
+ "core/audits/accessibility/valid-lang.js | title": {
522
522
  "message": "Các thuộc tính `[lang]` có giá trị hợp lệ"
523
523
  },
524
- "lighthouse-core/audits/accessibility/video-caption.js | description": {
524
+ "core/audits/accessibility/video-caption.js | description": {
525
525
  "message": "Video có phụ đề có thể giúp người dùng bị khiếm thính và nặng tai dễ dàng tiếp cận nội dung video hơn. [Tìm hiểu thêm](https://web.dev/video-caption/)."
526
526
  },
527
- "lighthouse-core/audits/accessibility/video-caption.js | failureTitle": {
527
+ "core/audits/accessibility/video-caption.js | failureTitle": {
528
528
  "message": "Các phần tử `<video>` không chứa phần tử `<track>` có `[kind=\"captions\"]`."
529
529
  },
530
- "lighthouse-core/audits/accessibility/video-caption.js | title": {
530
+ "core/audits/accessibility/video-caption.js | title": {
531
531
  "message": "Các phần tử `<video>` chứa phần tử `<track>` có `[kind=\"captions\"]`"
532
532
  },
533
- "lighthouse-core/audits/autocomplete.js | columnCurrent": {
533
+ "core/audits/autocomplete.js | columnCurrent": {
534
534
  "message": "Giá trị hiện tại"
535
535
  },
536
- "lighthouse-core/audits/autocomplete.js | columnSuggestions": {
536
+ "core/audits/autocomplete.js | columnSuggestions": {
537
537
  "message": "Mã thông báo đề xuất"
538
538
  },
539
- "lighthouse-core/audits/autocomplete.js | description": {
539
+ "core/audits/autocomplete.js | description": {
540
540
  "message": "`autocomplete` giúp người dùng gửi biểu mẫu nhanh hơn. Để thuận tiện cho người dùng, hãy cân nhắc cho phép thuộc tính trên bằng cách đặt một giá trị hợp lệ cho `autocomplete`. [Tìm hiểu thêm](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)"
541
541
  },
542
- "lighthouse-core/audits/autocomplete.js | failureTitle": {
542
+ "core/audits/autocomplete.js | failureTitle": {
543
543
  "message": "Thuộc tính `autocomplete` của các phần tử `<input>` là không chính xác"
544
544
  },
545
- "lighthouse-core/audits/autocomplete.js | manualReview": {
545
+ "core/audits/autocomplete.js | manualReview": {
546
546
  "message": "Yêu cầu xem xét thủ công"
547
547
  },
548
- "lighthouse-core/audits/autocomplete.js | reviewOrder": {
548
+ "core/audits/autocomplete.js | reviewOrder": {
549
549
  "message": "Xem xét thứ tự của các mã thông báo"
550
550
  },
551
- "lighthouse-core/audits/autocomplete.js | title": {
551
+ "core/audits/autocomplete.js | title": {
552
552
  "message": "Các phần tử `<input>` sử dụng `autocomplete` đúng cách"
553
553
  },
554
- "lighthouse-core/audits/autocomplete.js | warningInvalid": {
554
+ "core/audits/autocomplete.js | warningInvalid": {
555
555
  "message": "(Các) mã thông báo `autocomplete`: \"{token}\" là không hợp lệ trong {snippet}"
556
556
  },
557
- "lighthouse-core/audits/autocomplete.js | warningOrder": {
557
+ "core/audits/autocomplete.js | warningOrder": {
558
558
  "message": "Xem xét thứ tự của các mã thông báo: \"{tokens}\" trong {snippet}"
559
559
  },
560
- "lighthouse-core/audits/bootup-time.js | chromeExtensionsWarning": {
560
+ "core/audits/bootup-time.js | chromeExtensionsWarning": {
561
561
  "message": "Các tiện ích của Chrome ảnh hưởng tiêu cực đến hiệu suất tải của trang này. Hãy thử kiểm tra trang ở chế độ ẩn danh hoặc từ một hồ sơ trên Chrome không có tiện ích."
562
562
  },
563
- "lighthouse-core/audits/bootup-time.js | columnScriptEval": {
563
+ "core/audits/bootup-time.js | columnScriptEval": {
564
564
  "message": "Đánh giá tập lệnh"
565
565
  },
566
- "lighthouse-core/audits/bootup-time.js | columnScriptParse": {
566
+ "core/audits/bootup-time.js | columnScriptParse": {
567
567
  "message": "Phân tích cú pháp tập lệnh"
568
568
  },
569
- "lighthouse-core/audits/bootup-time.js | columnTotal": {
569
+ "core/audits/bootup-time.js | columnTotal": {
570
570
  "message": "Tổng thời gian của CPU"
571
571
  },
572
- "lighthouse-core/audits/bootup-time.js | description": {
572
+ "core/audits/bootup-time.js | description": {
573
573
  "message": "Hãy cân nhắc giảm thời gian dùng để phân tích cú pháp, biên soạn và thực thi JS. Bạn có thể giải quyết vấn đề này bằng cách phân phối các tải trọng JS nhỏ hơn. [Tìm hiểu thêm](https://web.dev/bootup-time/)."
574
574
  },
575
- "lighthouse-core/audits/bootup-time.js | failureTitle": {
575
+ "core/audits/bootup-time.js | failureTitle": {
576
576
  "message": "Giảm thời gian thực thi JavaScript"
577
577
  },
578
- "lighthouse-core/audits/bootup-time.js | title": {
578
+ "core/audits/bootup-time.js | title": {
579
579
  "message": "Thời gian thực thi JavaScript"
580
580
  },
581
- "lighthouse-core/audits/byte-efficiency/duplicated-javascript.js | description": {
581
+ "core/audits/byte-efficiency/duplicated-javascript.js | description": {
582
582
  "message": "Xóa các mô-đun JavaScript lớn, trùng lặp khỏi gói để giảm số byte mà hoạt động mạng tiêu thụ một cách không cần thiết. "
583
583
  },
584
- "lighthouse-core/audits/byte-efficiency/duplicated-javascript.js | title": {
584
+ "core/audits/byte-efficiency/duplicated-javascript.js | title": {
585
585
  "message": "Xóa các mô-đun trùng lặp trong gói JavaScript"
586
586
  },
587
- "lighthouse-core/audits/byte-efficiency/efficient-animated-content.js | description": {
587
+ "core/audits/byte-efficiency/efficient-animated-content.js | description": {
588
588
  "message": "Ảnh GIF lớn không có hiệu quả trong việc phân phối nội dung động. Hãy cân nhắc sử dụng video MPEG4/WebM cho ảnh động và PNG/WebP cho ảnh tĩnh thay vì ảnh GIF để tiết kiệm dữ liệu mạng. [Tìm hiểu thêm](https://web.dev/efficient-animated-content/)"
589
589
  },
590
- "lighthouse-core/audits/byte-efficiency/efficient-animated-content.js | title": {
590
+ "core/audits/byte-efficiency/efficient-animated-content.js | title": {
591
591
  "message": "Sử dụng các định dạng video cho nội dung động"
592
592
  },
593
- "lighthouse-core/audits/byte-efficiency/legacy-javascript.js | description": {
593
+ "core/audits/byte-efficiency/legacy-javascript.js | description": {
594
594
  "message": "Mã Polyfill và Transform cho phép trình duyệt cũ dùng các tính năng mới của JavaScript. Tuy nhiên, nhiều tính năng không cần thiết cho trình duyệt mới nữa. Đối với JavaScript trong gói của bạn, hãy áp dụng chiến lược triển khai tập lệnh mới bằng cách dùng cơ chế phát hiện tính năng theo mô-đun/không theo mô-đun để giảm số lượng mã gửi đến trình duyệt mới trong khi vẫn tiếp tục hỗ trợ cho trình duyệt cũ. [Tìm hiểu thêm](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/)"
595
595
  },
596
- "lighthouse-core/audits/byte-efficiency/legacy-javascript.js | title": {
596
+ "core/audits/byte-efficiency/legacy-javascript.js | title": {
597
597
  "message": "Tránh phân phối JavaScript cũ tới các trình duyệt hiện đại"
598
598
  },
599
- "lighthouse-core/audits/byte-efficiency/modern-image-formats.js | description": {
599
+ "core/audits/byte-efficiency/modern-image-formats.js | description": {
600
600
  "message": "Các định dạng hình ảnh như WebP và AVIF thường nén tốt hơn so với các định dạng PNG hoặc JPEG. Điều này có nghĩa là tốc độ tải hình ảnh xuống sẽ nhanh hơn và tiêu tốn ít dữ liệu hơn. [Tìm hiểu thêm](https://web.dev/uses-webp-images/)."
601
601
  },
602
- "lighthouse-core/audits/byte-efficiency/modern-image-formats.js | title": {
602
+ "core/audits/byte-efficiency/modern-image-formats.js | title": {
603
603
  "message": "Phân phối hình ảnh ở định dạng mới và hiệu quả hơn"
604
604
  },
605
- "lighthouse-core/audits/byte-efficiency/offscreen-images.js | description": {
605
+ "core/audits/byte-efficiency/offscreen-images.js | description": {
606
606
  "message": "Hãy cân nhắc tải từng phần các hình ảnh ẩn và nằm ngoài màn hình sau khi tải xong tất cả tài nguyên quan trọng nhằm giảm thời gian tương tác. [Tìm hiểu thêm](https://web.dev/offscreen-images/)."
607
607
  },
608
- "lighthouse-core/audits/byte-efficiency/offscreen-images.js | title": {
608
+ "core/audits/byte-efficiency/offscreen-images.js | title": {
609
609
  "message": "Trì hoãn tải các hình ảnh ngoài màn hình"
610
610
  },
611
- "lighthouse-core/audits/byte-efficiency/render-blocking-resources.js | description": {
611
+ "core/audits/byte-efficiency/render-blocking-resources.js | description": {
612
612
  "message": "Các tài nguyên đang chặn lần hiển thị đầu tiên của trang. Hãy cân nhắc phân phối nội dòng JS/Biểu định kiểu xếp chồng (CSS) quan trọng và trì hoãn mọi JS/kiểu không quan trọng. [Tìm hiểu thêm](https://web.dev/render-blocking-resources/)."
613
613
  },
614
- "lighthouse-core/audits/byte-efficiency/render-blocking-resources.js | title": {
614
+ "core/audits/byte-efficiency/render-blocking-resources.js | title": {
615
615
  "message": "Loại bỏ các tài nguyên chặn hiển thị"
616
616
  },
617
- "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | description": {
617
+ "core/audits/byte-efficiency/total-byte-weight.js | description": {
618
618
  "message": "Tải trọng mạng lớn gây tốn kém cho người dùng và thường khiến thời gian tải lâu. [Tìm hiểu thêm](https://web.dev/total-byte-weight/)."
619
619
  },
620
- "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
620
+ "core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
621
621
  "message": "Tổng kích thước là {totalBytes, number, bytes} KiB"
622
622
  },
623
- "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
623
+ "core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
624
624
  "message": "Tránh các tài nguyên lớn trên mạng"
625
625
  },
626
- "lighthouse-core/audits/byte-efficiency/total-byte-weight.js | title": {
626
+ "core/audits/byte-efficiency/total-byte-weight.js | title": {
627
627
  "message": "Tránh tài nguyên lớn trên mạng"
628
628
  },
629
- "lighthouse-core/audits/byte-efficiency/unminified-css.js | description": {
629
+ "core/audits/byte-efficiency/unminified-css.js | description": {
630
630
  "message": "Việc giảm kích thước tệp Biểu định kiểu xếp chồng (CSS) có thể giảm kích thước tải trọng mạng. [Tìm hiểu thêm](https://web.dev/unminified-css/)."
631
631
  },
632
- "lighthouse-core/audits/byte-efficiency/unminified-css.js | title": {
632
+ "core/audits/byte-efficiency/unminified-css.js | title": {
633
633
  "message": "Rút gọn CSS"
634
634
  },
635
- "lighthouse-core/audits/byte-efficiency/unminified-javascript.js | description": {
635
+ "core/audits/byte-efficiency/unminified-javascript.js | description": {
636
636
  "message": "Việc giảm kích thước tệp JavaScript có thể giảm kích thước tải trọng và thời gian phân tích cú pháp tập lệnh. [Tìm hiểu thêm](https://web.dev/unminified-javascript/)."
637
637
  },
638
- "lighthouse-core/audits/byte-efficiency/unminified-javascript.js | title": {
638
+ "core/audits/byte-efficiency/unminified-javascript.js | title": {
639
639
  "message": "Rút gọn JavaScript"
640
640
  },
641
- "lighthouse-core/audits/byte-efficiency/unused-css-rules.js | description": {
641
+ "core/audits/byte-efficiency/unused-css-rules.js | description": {
642
642
  "message": "Giảm những quy tắc không dùng đến trong các biểu định kiểu và trì hoãn CSS chưa sử dụng cho nội dung trong màn hình đầu tiên để giảm số byte mà hoạt động mạng sử dụng. [Tìm hiểu thêm](https://web.dev/unused-css-rules/)"
643
643
  },
644
- "lighthouse-core/audits/byte-efficiency/unused-css-rules.js | title": {
644
+ "core/audits/byte-efficiency/unused-css-rules.js | title": {
645
645
  "message": "Giảm CSS không dùng đến"
646
646
  },
647
- "lighthouse-core/audits/byte-efficiency/unused-javascript.js | description": {
647
+ "core/audits/byte-efficiency/unused-javascript.js | description": {
648
648
  "message": "Giảm JavaScript không dùng đến và trì hoãn việc tải các tập lệnh cho tới khi cần có các tập lệnh này để giảm số byte mà hoạt động mạng sử dụng. [Tìm hiểu thêm](https://web.dev/unused-javascript/)"
649
649
  },
650
- "lighthouse-core/audits/byte-efficiency/unused-javascript.js | title": {
650
+ "core/audits/byte-efficiency/unused-javascript.js | title": {
651
651
  "message": "Giảm JavaScript không dùng đến"
652
652
  },
653
- "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
653
+ "core/audits/byte-efficiency/uses-long-cache-ttl.js | description": {
654
654
  "message": "Bộ nhớ đệm có thời gian hữu dụng dài có thể giúp tăng tốc số lượt truy cập lặp lại vào trang của bạn. [Tìm hiểu thêm](https://web.dev/uses-long-cache-ttl/)."
655
655
  },
656
- "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
656
+ "core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": {
657
657
  "message": "{itemCount,plural, =1{Đã tìm thấy 1 tài nguyên}other{Đã tìm thấy # tài nguyên}}"
658
658
  },
659
- "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
659
+ "core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": {
660
660
  "message": "Phân phối các nội dung tĩnh bằng chính sách bộ nhớ đệm hiệu quả"
661
661
  },
662
- "lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
662
+ "core/audits/byte-efficiency/uses-long-cache-ttl.js | title": {
663
663
  "message": "Sử dụng chính sách bộ nhớ đệm hiệu quả cho các nội dung tĩnh"
664
664
  },
665
- "lighthouse-core/audits/byte-efficiency/uses-optimized-images.js | description": {
665
+ "core/audits/byte-efficiency/uses-optimized-images.js | description": {
666
666
  "message": "Hình ảnh được tối ưu hóa sẽ tải nhanh hơn và tiêu tốn ít dữ liệu di động hơn. [Tìm hiểu thêm](https://web.dev/uses-optimized-images/)."
667
667
  },
668
- "lighthouse-core/audits/byte-efficiency/uses-optimized-images.js | title": {
668
+ "core/audits/byte-efficiency/uses-optimized-images.js | title": {
669
669
  "message": "Mã hóa hình ảnh hiệu quả"
670
670
  },
671
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
671
+ "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": {
672
672
  "message": "Kích thước thực"
673
673
  },
674
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
674
+ "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": {
675
675
  "message": "Kích thước hiển thị"
676
676
  },
677
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
677
+ "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": {
678
678
  "message": "Hình ảnh có kích thước lớn hơn kích thước hiển thị"
679
679
  },
680
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
680
+ "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": {
681
681
  "message": "Hình ảnh có kích thước hiển thị phù hợp"
682
682
  },
683
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images.js | description": {
683
+ "core/audits/byte-efficiency/uses-responsive-images.js | description": {
684
684
  "message": "Phân phát hình ảnh có kích thước phù hợp để tiết kiệm dữ liệu di động và cải thiện thời gian tải. [Tìm hiểu thêm](https://web.dev/uses-responsive-images/)."
685
685
  },
686
- "lighthouse-core/audits/byte-efficiency/uses-responsive-images.js | title": {
686
+ "core/audits/byte-efficiency/uses-responsive-images.js | title": {
687
687
  "message": "Thay đổi kích thước hình ảnh cho phù hợp"
688
688
  },
689
- "lighthouse-core/audits/byte-efficiency/uses-text-compression.js | description": {
689
+ "core/audits/byte-efficiency/uses-text-compression.js | description": {
690
690
  "message": "Phải phân phát các tài nguyên dựa trên văn bản ở định dạng nén (gzip, deflate hoặc brotli) để giảm thiểu tổng số byte mạng. [Tìm hiểu thêm](https://web.dev/uses-text-compression/)."
691
691
  },
692
- "lighthouse-core/audits/byte-efficiency/uses-text-compression.js | title": {
692
+ "core/audits/byte-efficiency/uses-text-compression.js | title": {
693
693
  "message": "Bật tính năng nén văn bản"
694
694
  },
695
- "lighthouse-core/audits/content-width.js | description": {
695
+ "core/audits/content-width.js | description": {
696
696
  "message": "Nếu chiều rộng của nội dung trong ứng dụng không khớp với chiều rộng của khung nhìn, thì ứng dụng có thể không được tối ưu hóa cho màn hình thiết bị di động. [Tìm hiểu thêm](https://web.dev/content-width/)"
697
697
  },
698
- "lighthouse-core/audits/content-width.js | explanation": {
698
+ "core/audits/content-width.js | explanation": {
699
699
  "message": "Kích thước khung nhìn {innerWidth}px không khớp với kích thước cửa sổ {outerWidth}px."
700
700
  },
701
- "lighthouse-core/audits/content-width.js | failureTitle": {
701
+ "core/audits/content-width.js | failureTitle": {
702
702
  "message": "Kích thước của nội dung không phù hợp với khung nhìn"
703
703
  },
704
- "lighthouse-core/audits/content-width.js | title": {
704
+ "core/audits/content-width.js | title": {
705
705
  "message": "Kích thước của nội dung phù hợp với khung nhìn"
706
706
  },
707
- "lighthouse-core/audits/critical-request-chains.js | description": {
707
+ "core/audits/critical-request-chains.js | description": {
708
708
  "message": "Các Chuỗi yêu cầu quan trọng dưới đây cho bạn biết những tài nguyên có mức độ ưu tiên cao sẽ được tải. Hãy cân nhắc giảm độ dài chuỗi, giảm kích thước tài nguyên tải xuống hoặc trì hoãn tải xuống các tài nguyên không cần thiết để cải thiện tốc độ tải trang. [Tìm hiểu thêm](https://web.dev/critical-request-chains/)."
709
709
  },
710
- "lighthouse-core/audits/critical-request-chains.js | displayValue": {
710
+ "core/audits/critical-request-chains.js | displayValue": {
711
711
  "message": "{itemCount,plural, =1{Đã tìm thấy 1 chuỗi}other{Đã tìm thấy # chuỗi}}"
712
712
  },
713
- "lighthouse-core/audits/critical-request-chains.js | title": {
713
+ "core/audits/critical-request-chains.js | title": {
714
714
  "message": "Tránh tạo chuỗi các yêu cầu quan trọng"
715
715
  },
716
- "lighthouse-core/audits/csp-xss.js | columnDirective": {
716
+ "core/audits/csp-xss.js | columnDirective": {
717
717
  "message": "Lệnh"
718
718
  },
719
- "lighthouse-core/audits/csp-xss.js | columnSeverity": {
719
+ "core/audits/csp-xss.js | columnSeverity": {
720
720
  "message": "Mức độ nghiêm trọng"
721
721
  },
722
- "lighthouse-core/audits/csp-xss.js | description": {
722
+ "core/audits/csp-xss.js | description": {
723
723
  "message": "Một Chính sách bảo mật nội dung (CSP) mạnh sẽ làm giảm đáng kể nguy cơ bị tấn công thông qua tập lệnh trên nhiều trang web (XSS). [Tìm hiểu thêm](https://web.dev/csp-xss/)"
724
724
  },
725
- "lighthouse-core/audits/csp-xss.js | itemSeveritySyntax": {
725
+ "core/audits/csp-xss.js | itemSeveritySyntax": {
726
726
  "message": "Cú pháp"
727
727
  },
728
- "lighthouse-core/audits/csp-xss.js | metaTagMessage": {
728
+ "core/audits/csp-xss.js | metaTagMessage": {
729
729
  "message": "Trang này chứa CSP được xác định trong thẻ <meta>. Hãy cân nhắc xác định CSP trong tiêu đề HTTP, nếu có thể."
730
730
  },
731
- "lighthouse-core/audits/csp-xss.js | noCsp": {
731
+ "core/audits/csp-xss.js | noCsp": {
732
732
  "message": "Không tìm thấy CSP nào ở chế độ thực thi"
733
733
  },
734
- "lighthouse-core/audits/csp-xss.js | title": {
734
+ "core/audits/csp-xss.js | title": {
735
735
  "message": "Đảm bảo CSP có khả năng chống lại hình thức tấn công thông qua XSS"
736
736
  },
737
- "lighthouse-core/audits/deprecations.js | columnDeprecate": {
737
+ "core/audits/deprecations.js | columnDeprecate": {
738
738
  "message": "Không dùng nữa/Cảnh báo"
739
739
  },
740
- "lighthouse-core/audits/deprecations.js | columnLine": {
740
+ "core/audits/deprecations.js | columnLine": {
741
741
  "message": "Dòng"
742
742
  },
743
- "lighthouse-core/audits/deprecations.js | description": {
743
+ "core/audits/deprecations.js | description": {
744
744
  "message": "Cuối cùng, các API không dùng nữa sẽ bị xóa khỏi trình duyệt. [Tìm hiểu thêm](https://web.dev/deprecations/)."
745
745
  },
746
- "lighthouse-core/audits/deprecations.js | displayValue": {
746
+ "core/audits/deprecations.js | displayValue": {
747
747
  "message": "{itemCount,plural, =1{Tìm thấy 1 cảnh báo}other{Tìm thấy # cảnh báo}}"
748
748
  },
749
- "lighthouse-core/audits/deprecations.js | failureTitle": {
749
+ "core/audits/deprecations.js | failureTitle": {
750
750
  "message": "Sử dụng các API không dùng nữa"
751
751
  },
752
- "lighthouse-core/audits/deprecations.js | title": {
752
+ "core/audits/deprecations.js | title": {
753
753
  "message": "Tránh các API không dùng nữa"
754
754
  },
755
- "lighthouse-core/audits/dobetterweb/charset.js | description": {
755
+ "core/audits/dobetterweb/charset.js | description": {
756
756
  "message": "Cần khai báo hệ thống mã hóa ký tự. Bạn có thể thực hiện việc này bằng thẻ `<meta>` trong 1024 byte đầu tiên của HTML hoặc trong tiêu đề phản hồi HTTP Loại–Nội dung. [Tìm hiểu thêm](https://web.dev/charset/)."
757
757
  },
758
- "lighthouse-core/audits/dobetterweb/charset.js | failureTitle": {
758
+ "core/audits/dobetterweb/charset.js | failureTitle": {
759
759
  "message": "Thiếu thông tin khai báo về bộ ký tự hoặc khai báo quá muộn trong HTML"
760
760
  },
761
- "lighthouse-core/audits/dobetterweb/charset.js | title": {
761
+ "core/audits/dobetterweb/charset.js | title": {
762
762
  "message": "Xác định đúng bộ ký tự"
763
763
  },
764
- "lighthouse-core/audits/dobetterweb/doctype.js | description": {
764
+ "core/audits/dobetterweb/doctype.js | description": {
765
765
  "message": "Khi bạn chỉ định loại tài liệu, trình duyệt sẽ không chuyển sang chế độ tương thích ngược. [Tìm hiểu thêm](https://web.dev/doctype/)"
766
766
  },
767
- "lighthouse-core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
767
+ "core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
768
768
  "message": "Tên loại tài liệu phải là chuỗi `html` viết thường"
769
769
  },
770
- "lighthouse-core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
770
+ "core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
771
771
  "message": "Tài liệu phải chứa một loại tài liệu"
772
772
  },
773
- "lighthouse-core/audits/dobetterweb/doctype.js | explanationPublicId": {
773
+ "core/audits/dobetterweb/doctype.js | explanationPublicId": {
774
774
  "message": "publicId lẽ ra phải là một chuỗi trống"
775
775
  },
776
- "lighthouse-core/audits/dobetterweb/doctype.js | explanationSystemId": {
776
+ "core/audits/dobetterweb/doctype.js | explanationSystemId": {
777
777
  "message": "systemId lẽ ra phải là một chuỗi trống"
778
778
  },
779
- "lighthouse-core/audits/dobetterweb/doctype.js | failureTitle": {
779
+ "core/audits/dobetterweb/doctype.js | failureTitle": {
780
780
  "message": "Trang thiếu loại tài liệu HTML nên đã kích hoạt chế độ tương thích ngược"
781
781
  },
782
- "lighthouse-core/audits/dobetterweb/doctype.js | title": {
782
+ "core/audits/dobetterweb/doctype.js | title": {
783
783
  "message": "Trang có loại tài liệu HTML"
784
784
  },
785
- "lighthouse-core/audits/dobetterweb/dom-size.js | columnStatistic": {
785
+ "core/audits/dobetterweb/dom-size.js | columnStatistic": {
786
786
  "message": "Thống kê"
787
787
  },
788
- "lighthouse-core/audits/dobetterweb/dom-size.js | columnValue": {
788
+ "core/audits/dobetterweb/dom-size.js | columnValue": {
789
789
  "message": "Giá trị"
790
790
  },
791
- "lighthouse-core/audits/dobetterweb/dom-size.js | description": {
791
+ "core/audits/dobetterweb/dom-size.js | description": {
792
792
  "message": "Một DOM lớn sẽ làm tăng mức sử dụng bộ nhớ, khiến [các phép tính về kiểu](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations) dài hơn, đồng thời tạo ra [các quy trình trình bày lại bố cục](https://developers.google.com/speed/articles/reflow) tốn kém. [Tìm hiểu thêm](https://web.dev/dom-size/)."
793
793
  },
794
- "lighthouse-core/audits/dobetterweb/dom-size.js | displayValue": {
794
+ "core/audits/dobetterweb/dom-size.js | displayValue": {
795
795
  "message": "{itemCount,plural, =1{1 phần tử}other{# phần tử}}"
796
796
  },
797
- "lighthouse-core/audits/dobetterweb/dom-size.js | failureTitle": {
797
+ "core/audits/dobetterweb/dom-size.js | failureTitle": {
798
798
  "message": "Tránh kích thước DOM quá lớn"
799
799
  },
800
- "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
800
+ "core/audits/dobetterweb/dom-size.js | statisticDOMDepth": {
801
801
  "message": "Độ sâu DOM tối đa"
802
802
  },
803
- "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
803
+ "core/audits/dobetterweb/dom-size.js | statisticDOMElements": {
804
804
  "message": "Tổng số các phần tử DOM"
805
805
  },
806
- "lighthouse-core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
806
+ "core/audits/dobetterweb/dom-size.js | statisticDOMWidth": {
807
807
  "message": "Phần tử con tối đa"
808
808
  },
809
- "lighthouse-core/audits/dobetterweb/dom-size.js | title": {
809
+ "core/audits/dobetterweb/dom-size.js | title": {
810
810
  "message": "Tránh kích thước DOM quá lớn"
811
811
  },
812
- "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | description": {
812
+ "core/audits/dobetterweb/geolocation-on-start.js | description": {
813
813
  "message": "Các trang web yêu cầu vị trí của người dùng mà không cung cấp ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với hành động của người dùng. [Tìm hiểu thêm](https://web.dev/geolocation-on-start/)."
814
814
  },
815
- "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
815
+ "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
816
816
  "message": "Yêu cầu quyền truy cập vị trí địa lý khi tải trang"
817
817
  },
818
- "lighthouse-core/audits/dobetterweb/geolocation-on-start.js | title": {
818
+ "core/audits/dobetterweb/geolocation-on-start.js | title": {
819
819
  "message": "Tránh yêu cầu quyền truy cập vị trí địa lý khi tải trang"
820
820
  },
821
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
821
+ "core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
822
822
  "message": "Loại vấn đề"
823
823
  },
824
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | description": {
824
+ "core/audits/dobetterweb/inspector-issues.js | description": {
825
825
  "message": "Các vấn đề được ghi vào bảng điều khiển `Issues` trong công cụ cho nhà phát triển của Chrome là những vấn đề chưa giải quyết. Những vấn đề này có thể do lỗi yêu cầu mạng, do không có đủ biện pháp kiểm soát bảo mật, cũng như do các vấn đề khác của trình duyệt gây ra. Hãy mở bảng điều khiển Vấn đề trong công cụ cho nhà phát triển của Chrome để biết thêm thông tin chi tiết về từng vấn đề."
826
826
  },
827
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | failureTitle": {
827
+ "core/audits/dobetterweb/inspector-issues.js | failureTitle": {
828
828
  "message": "Các vấn đề được ghi vào bảng điều khiển `Issues` trong công cụ cho nhà phát triển của Chrome"
829
829
  },
830
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
830
+ "core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
831
831
  "message": "Bị chặn theo chính sách trên nhiều nguồn gốc"
832
832
  },
833
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
833
+ "core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
834
834
  "message": "Quảng cáo sử dụng nhiều tài nguyên"
835
835
  },
836
- "lighthouse-core/audits/dobetterweb/inspector-issues.js | title": {
836
+ "core/audits/dobetterweb/inspector-issues.js | title": {
837
837
  "message": "Không có vấn đề nào ở bảng điều khiển `Issues` trong công cụ cho nhà phát triển của Chrome"
838
838
  },
839
- "lighthouse-core/audits/dobetterweb/js-libraries.js | columnVersion": {
839
+ "core/audits/dobetterweb/js-libraries.js | columnVersion": {
840
840
  "message": "Phiên bản"
841
841
  },
842
- "lighthouse-core/audits/dobetterweb/js-libraries.js | description": {
842
+ "core/audits/dobetterweb/js-libraries.js | description": {
843
843
  "message": "Phát hiện tất cả thư viện JavaScript ở phía giao diện người dùng trên trang này. [Tìm hiểu thêm](https://web.dev/js-libraries/)"
844
844
  },
845
- "lighthouse-core/audits/dobetterweb/js-libraries.js | title": {
845
+ "core/audits/dobetterweb/js-libraries.js | title": {
846
846
  "message": "Thư viện JavaScript phát hiện được"
847
847
  },
848
- "lighthouse-core/audits/dobetterweb/no-document-write.js | description": {
848
+ "core/audits/dobetterweb/no-document-write.js | description": {
849
849
  "message": "Đối với những người dùng có kết nối chậm, các tập lệnh bên ngoài tự động được đưa vào qua `document.write()` có thể làm trang tải chậm hàng chục giây. [Tìm hiểu thêm](https://web.dev/no-document-write/)."
850
850
  },
851
- "lighthouse-core/audits/dobetterweb/no-document-write.js | failureTitle": {
851
+ "core/audits/dobetterweb/no-document-write.js | failureTitle": {
852
852
  "message": "Tránh `document.write()`"
853
853
  },
854
- "lighthouse-core/audits/dobetterweb/no-document-write.js | title": {
854
+ "core/audits/dobetterweb/no-document-write.js | title": {
855
855
  "message": "Tránh `document.write()`"
856
856
  },
857
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnSeverity": {
857
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | columnSeverity": {
858
858
  "message": "Mức độ nghiêm trọng cao nhất"
859
859
  },
860
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnVersion": {
860
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | columnVersion": {
861
861
  "message": "Phiên bản thư viện"
862
862
  },
863
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | columnVuln": {
863
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | columnVuln": {
864
864
  "message": "Số lượng lỗ hổng"
865
865
  },
866
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | description": {
866
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | description": {
867
867
  "message": "Một số tập lệnh của bên thứ ba có thể chứa các lỗ hổng bảo mật đã biết mà kẻ tấn công dễ dàng xác định và khai thác. [Tìm hiểu thêm](https://web.dev/no-vulnerable-libraries/)."
868
868
  },
869
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | displayValue": {
869
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | displayValue": {
870
870
  "message": "{itemCount,plural, =1{Phát hiện thấy 1 lỗ hổng}other{Phát hiện thấy # lỗ hổng}}"
871
871
  },
872
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | failureTitle": {
872
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | failureTitle": {
873
873
  "message": "Bao gồm các thư viện giao diện người dùng JavaScript có những lỗ hổng bảo mật đã biết"
874
874
  },
875
- "lighthouse-core/audits/dobetterweb/no-vulnerable-libraries.js | title": {
875
+ "core/audits/dobetterweb/no-vulnerable-libraries.js | title": {
876
876
  "message": "Tránh các thư viện giao diện người dùng JavaScript có lỗ hổng bảo mật đã biết"
877
877
  },
878
- "lighthouse-core/audits/dobetterweb/notification-on-start.js | description": {
878
+ "core/audits/dobetterweb/notification-on-start.js | description": {
879
879
  "message": "Các trang web gửi thông báo không có ngữ cảnh sẽ khiến người dùng không tin tưởng hoặc bối rối. Hãy cân nhắc liên kết yêu cầu với cử chỉ của người dùng. [Tìm hiểu thêm](https://web.dev/notification-on-start/)."
880
880
  },
881
- "lighthouse-core/audits/dobetterweb/notification-on-start.js | failureTitle": {
881
+ "core/audits/dobetterweb/notification-on-start.js | failureTitle": {
882
882
  "message": "Yêu cầu quyền truy cập thông báo khi tải trang"
883
883
  },
884
- "lighthouse-core/audits/dobetterweb/notification-on-start.js | title": {
884
+ "core/audits/dobetterweb/notification-on-start.js | title": {
885
885
  "message": "Tránh yêu cầu quyền truy cập thông báo khi tải trang"
886
886
  },
887
- "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | description": {
887
+ "core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | description": {
888
888
  "message": "Việc ngăn dán mật khẩu sẽ làm giảm tác dụng của chính sách bảo mật hiệu quả. [Tìm hiểu thêm](https://web.dev/password-inputs-can-be-pasted-into/)."
889
889
  },
890
- "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | failureTitle": {
890
+ "core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | failureTitle": {
891
891
  "message": "Ngăn người dùng dán vào các trường mật khẩu"
892
892
  },
893
- "lighthouse-core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | title": {
893
+ "core/audits/dobetterweb/password-inputs-can-be-pasted-into.js | title": {
894
894
  "message": "Cho phép người dùng dán vào các trường mật khẩu"
895
895
  },
896
- "lighthouse-core/audits/dobetterweb/uses-http2.js | columnProtocol": {
896
+ "core/audits/dobetterweb/uses-http2.js | columnProtocol": {
897
897
  "message": "Giao thức"
898
898
  },
899
- "lighthouse-core/audits/dobetterweb/uses-http2.js | description": {
899
+ "core/audits/dobetterweb/uses-http2.js | description": {
900
900
  "message": "So với HTTP/1.1 thì HTTP/2 mang lại nhiều lợi ích hơn, trong đó có khả năng đa hợp và tiêu đề nhị phân. [Tìm hiểu thêm](https://web.dev/uses-http2/)."
901
901
  },
902
- "lighthouse-core/audits/dobetterweb/uses-http2.js | displayValue": {
902
+ "core/audits/dobetterweb/uses-http2.js | displayValue": {
903
903
  "message": "{itemCount,plural, =1{Chưa phân phát 1 yêu cầu qua HTTP/2}other{Chưa phân phát # yêu cầu qua HTTP/2}}"
904
904
  },
905
- "lighthouse-core/audits/dobetterweb/uses-http2.js | title": {
905
+ "core/audits/dobetterweb/uses-http2.js | title": {
906
906
  "message": "Sử dụng HTTP/2"
907
907
  },
908
- "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
908
+ "core/audits/dobetterweb/uses-passive-event-listeners.js | description": {
909
909
  "message": "Hãy cân nhắc đánh dấu trình xử lý sự kiện chạm và di chuyển con lăn là `passive` để cải thiện hiệu suất cuộn trên trang. [Tìm hiểu thêm](https://web.dev/uses-passive-event-listeners/)."
910
910
  },
911
- "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
911
+ "core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": {
912
912
  "message": "Không sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
913
913
  },
914
- "lighthouse-core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
914
+ "core/audits/dobetterweb/uses-passive-event-listeners.js | title": {
915
915
  "message": "Sử dụng trình nghe bị động để cải thiện hiệu suất cuộn"
916
916
  },
917
- "lighthouse-core/audits/errors-in-console.js | description": {
917
+ "core/audits/errors-in-console.js | description": {
918
918
  "message": "Các lỗi được ghi vào bảng điều khiển là những sự cố chưa giải quyết. Những sự cố này có thể do lỗi yêu cầu mạng và các vấn đề khác của trình duyệt gây ra. [Tìm hiểu thêm](https://web.dev/errors-in-console/)"
919
919
  },
920
- "lighthouse-core/audits/errors-in-console.js | failureTitle": {
920
+ "core/audits/errors-in-console.js | failureTitle": {
921
921
  "message": "Đã ghi lỗi của trình duyệt vào bảng điều khiển"
922
922
  },
923
- "lighthouse-core/audits/errors-in-console.js | title": {
923
+ "core/audits/errors-in-console.js | title": {
924
924
  "message": "Chưa ghi lỗi nào của trình duyệt vào bảng điều khiển"
925
925
  },
926
- "lighthouse-core/audits/font-display.js | description": {
926
+ "core/audits/font-display.js | description": {
927
927
  "message": "Sử dụng tính năng Biểu định kiểu xếp chồng (CSS) hiển thị phông chữ để đảm bảo văn bản hiển thị với người dùng khi phông chữ web đang tải. [Tìm hiểu thêm](https://web.dev/font-display/)."
928
928
  },
929
- "lighthouse-core/audits/font-display.js | failureTitle": {
929
+ "core/audits/font-display.js | failureTitle": {
930
930
  "message": "Đảm bảo văn bản vẫn hiển thị trong khi tải phông chữ web"
931
931
  },
932
- "lighthouse-core/audits/font-display.js | title": {
932
+ "core/audits/font-display.js | title": {
933
933
  "message": "Tất cả văn bản vẫn hiển thị trong khi tải phông chữ web"
934
934
  },
935
- "lighthouse-core/audits/font-display.js | undeclaredFontOriginWarning": {
935
+ "core/audits/font-display.js | undeclaredFontOriginWarning": {
936
936
  "message": "{fontCountForOrigin,plural, =1{Lighthouse không thể tự động kiểm tra giá trị `font-display` cho {fontOrigin} gốc.}other{Lighthouse không thể tự động kiểm tra các giá trị `font-display` cho {fontOrigin} gốc.}}"
937
937
  },
938
- "lighthouse-core/audits/image-aspect-ratio.js | columnActual": {
938
+ "core/audits/image-aspect-ratio.js | columnActual": {
939
939
  "message": "Tỷ lệ khung hình (Thực tế)"
940
940
  },
941
- "lighthouse-core/audits/image-aspect-ratio.js | columnDisplayed": {
941
+ "core/audits/image-aspect-ratio.js | columnDisplayed": {
942
942
  "message": "Tỷ lệ khung hình (Hiển thị)"
943
943
  },
944
- "lighthouse-core/audits/image-aspect-ratio.js | description": {
944
+ "core/audits/image-aspect-ratio.js | description": {
945
945
  "message": "Kích thước hiển thị của hình ảnh phải khớp với tỷ lệ khung hình tự nhiên. [Tìm hiểu thêm](https://web.dev/image-aspect-ratio/)."
946
946
  },
947
- "lighthouse-core/audits/image-aspect-ratio.js | failureTitle": {
947
+ "core/audits/image-aspect-ratio.js | failureTitle": {
948
948
  "message": "Hiển thị hình ảnh có tỷ lệ khung hình không chính xác"
949
949
  },
950
- "lighthouse-core/audits/image-aspect-ratio.js | title": {
950
+ "core/audits/image-aspect-ratio.js | title": {
951
951
  "message": "Hiển thị hình ảnh có tỷ lệ khung hình chính xác"
952
952
  },
953
- "lighthouse-core/audits/image-size-responsive.js | columnActual": {
953
+ "core/audits/image-size-responsive.js | columnActual": {
954
954
  "message": "Kích thước thực"
955
955
  },
956
- "lighthouse-core/audits/image-size-responsive.js | columnDisplayed": {
956
+ "core/audits/image-size-responsive.js | columnDisplayed": {
957
957
  "message": "Kích thước hiển thị"
958
958
  },
959
- "lighthouse-core/audits/image-size-responsive.js | columnExpected": {
959
+ "core/audits/image-size-responsive.js | columnExpected": {
960
960
  "message": "Kích thước mong muốn"
961
961
  },
962
- "lighthouse-core/audits/image-size-responsive.js | description": {
962
+ "core/audits/image-size-responsive.js | description": {
963
963
  "message": "Kích thước tự nhiên của hình ảnh phải tỷ lệ với kích thước màn hình và tỷ lệ pixel để hình ảnh rõ nét nhất có thể. [Tìm hiểu thêm](https://web.dev/serve-responsive-images/)."
964
964
  },
965
- "lighthouse-core/audits/image-size-responsive.js | failureTitle": {
965
+ "core/audits/image-size-responsive.js | failureTitle": {
966
966
  "message": "Phân phối hình ảnh có độ phân giải thấp"
967
967
  },
968
- "lighthouse-core/audits/image-size-responsive.js | title": {
968
+ "core/audits/image-size-responsive.js | title": {
969
969
  "message": "Phân phối hình ảnh có độ phân giải phù hợp"
970
970
  },
971
- "lighthouse-core/audits/installable-manifest.js | already-installed": {
971
+ "core/audits/installable-manifest.js | already-installed": {
972
972
  "message": "Ứng dụng này đã được cài đặt"
973
973
  },
974
- "lighthouse-core/audits/installable-manifest.js | cannot-download-icon": {
974
+ "core/audits/installable-manifest.js | cannot-download-icon": {
975
975
  "message": "Không thể tải một biểu tượng bắt buộc từ tệp kê khai"
976
976
  },
977
- "lighthouse-core/audits/installable-manifest.js | columnValue": {
977
+ "core/audits/installable-manifest.js | columnValue": {
978
978
  "message": "Lý do xảy ra lỗi"
979
979
  },
980
- "lighthouse-core/audits/installable-manifest.js | description": {
980
+ "core/audits/installable-manifest.js | description": {
981
981
  "message": "Trình chạy dịch vụ là công nghệ cho phép ứng dụng của bạn dùng nhiều tính năng của Ứng dụng web tiến bộ, chẳng hạn như hoạt động khi không có mạng, thêm vào màn hình chính và thông báo đẩy. Khi triển khai trình chạy dịch vụ và tệp kê khai đúng cách, trình duyệt có thể chủ động nhắc người dùng thêm ứng dụng của bạn vào màn hình chính của họ, nhờ đó có thể tăng mức độ tương tác. [Tìm hiểu thêm](https://web.dev/installable-manifest/)."
982
982
  },
983
- "lighthouse-core/audits/installable-manifest.js | displayValue": {
983
+ "core/audits/installable-manifest.js | displayValue": {
984
984
  "message": "{itemCount,plural, =1{1 lý do}other{# lý do}}"
985
985
  },
986
- "lighthouse-core/audits/installable-manifest.js | failureTitle": {
986
+ "core/audits/installable-manifest.js | failureTitle": {
987
987
  "message": "Tệp kê khai ứng dụng web hoặc trình chạy dịch vụ không đáp ứng các yêu cầu về khả năng cài đặt"
988
988
  },
989
- "lighthouse-core/audits/installable-manifest.js | ids-do-not-match": {
989
+ "core/audits/installable-manifest.js | ids-do-not-match": {
990
990
  "message": "URL ứng dụng trong Cửa hàng Play và mã nhận dạng trong Cửa hàng Play không khớp"
991
991
  },
992
- "lighthouse-core/audits/installable-manifest.js | in-incognito": {
992
+ "core/audits/installable-manifest.js | in-incognito": {
993
993
  "message": "Trang được tải trong cửa sổ ẩn danh"
994
994
  },
995
- "lighthouse-core/audits/installable-manifest.js | manifest-display-not-supported": {
995
+ "core/audits/installable-manifest.js | manifest-display-not-supported": {
996
996
  "message": "Thuộc tính \"display\" của tệp kê khai phải là một trong các chế độ \"standalone\", \"fullscreen\" hoặc \"minimal-ui\""
997
997
  },
998
- "lighthouse-core/audits/installable-manifest.js | manifest-display-override-not-supported": {
998
+ "core/audits/installable-manifest.js | manifest-display-override-not-supported": {
999
999
  "message": "Tệp kê khai chứa trường \"display_override\" và chế độ hiển thị được hỗ trợ đầu tiên phải là một trong các chế độ \"standalone\", \"fullscreen\" hoặc \"minimal-ui\""
1000
1000
  },
1001
- "lighthouse-core/audits/installable-manifest.js | manifest-empty": {
1001
+ "core/audits/installable-manifest.js | manifest-empty": {
1002
1002
  "message": "Không thể tìm nạp/phân tích cú pháp tệp kê khai hoặc tệp kê khai bị trống"
1003
1003
  },
1004
- "lighthouse-core/audits/installable-manifest.js | manifest-location-changed": {
1004
+ "core/audits/installable-manifest.js | manifest-location-changed": {
1005
1005
  "message": "URL của tệp kê khai đã thay đổi khi đang tìm nạp tệp kê khai đó."
1006
1006
  },
1007
- "lighthouse-core/audits/installable-manifest.js | manifest-missing-name-or-short-name": {
1007
+ "core/audits/installable-manifest.js | manifest-missing-name-or-short-name": {
1008
1008
  "message": "Tệp kê khai không chứa trường \"name\" hoặc \"short_name\""
1009
1009
  },
1010
- "lighthouse-core/audits/installable-manifest.js | manifest-missing-suitable-icon": {
1010
+ "core/audits/installable-manifest.js | manifest-missing-suitable-icon": {
1011
1011
  "message": "Tệp kê khai chứa biểu tượng không phù hợp. Yêu cầu tệp phải ở định dạng PNG, SVG hoặc WebP có kích thước tối thiểu là {value0} px, thuộc tính \"sizes\" phải được đặt, còn thuộc tính \"purpose\" (nếu được đặt) phải bao gồm \"any\"."
1012
1012
  },
1013
- "lighthouse-core/audits/installable-manifest.js | no-acceptable-icon": {
1013
+ "core/audits/installable-manifest.js | no-acceptable-icon": {
1014
1014
  "message": "Không có biểu tượng nào được cung cấp ở định dạng PNG, SVG hoặc WebP với kích thước tối thiểu là {value0} px vuông, còn thuộc tính \"purpose\" không được đặt hoặc được đặt thành \"any\""
1015
1015
  },
1016
- "lighthouse-core/audits/installable-manifest.js | no-icon-available": {
1016
+ "core/audits/installable-manifest.js | no-icon-available": {
1017
1017
  "message": "Biểu tượng đã tải xuống bị trống hoặc hỏng"
1018
1018
  },
1019
- "lighthouse-core/audits/installable-manifest.js | no-id-specified": {
1019
+ "core/audits/installable-manifest.js | no-id-specified": {
1020
1020
  "message": "Chưa cung cấp mã nhận dạng trong Cửa hàng Play"
1021
1021
  },
1022
- "lighthouse-core/audits/installable-manifest.js | no-manifest": {
1022
+ "core/audits/installable-manifest.js | no-manifest": {
1023
1023
  "message": "Trang không có URL <link> của tệp kê khai"
1024
1024
  },
1025
- "lighthouse-core/audits/installable-manifest.js | no-matching-service-worker": {
1025
+ "core/audits/installable-manifest.js | no-matching-service-worker": {
1026
1026
  "message": "Không phát hiện thấy trình chạy dịch vụ phù hợp. Bạn có thể cần tải lại trang hoặc kiểm tra để đảm bảo rằng phạm vi của trình chạy dịch vụ cho trang hiện tại có bao gồm phạm vi và URL bắt đầu của tệp kê khai."
1027
1027
  },
1028
- "lighthouse-core/audits/installable-manifest.js | no-url-for-service-worker": {
1028
+ "core/audits/installable-manifest.js | no-url-for-service-worker": {
1029
1029
  "message": "Không thể kiểm tra trình chạy dịch vụ nếu không có trường \"start_url\" trong tệp kê khai"
1030
1030
  },
1031
- "lighthouse-core/audits/installable-manifest.js | noErrorId": {
1031
+ "core/audits/installable-manifest.js | noErrorId": {
1032
1032
  "message": "Không nhận ra mã lỗi liên quan đến khả năng cài đặt \"{errorId}\""
1033
1033
  },
1034
- "lighthouse-core/audits/installable-manifest.js | not-from-secure-origin": {
1034
+ "core/audits/installable-manifest.js | not-from-secure-origin": {
1035
1035
  "message": "Trang không được phân phối từ một nguồn gốc an toàn"
1036
1036
  },
1037
- "lighthouse-core/audits/installable-manifest.js | not-in-main-frame": {
1037
+ "core/audits/installable-manifest.js | not-in-main-frame": {
1038
1038
  "message": "Trang không được tải trong khung chính"
1039
1039
  },
1040
- "lighthouse-core/audits/installable-manifest.js | not-offline-capable": {
1040
+ "core/audits/installable-manifest.js | not-offline-capable": {
1041
1041
  "message": "Trang không hoạt động khi không có mạng"
1042
1042
  },
1043
- "lighthouse-core/audits/installable-manifest.js | pipeline-restarted": {
1043
+ "core/audits/installable-manifest.js | pipeline-restarted": {
1044
1044
  "message": "Đã gỡ cài đặt PWA và đang đặt lại quá trình kiểm tra khả năng cài đặt."
1045
1045
  },
1046
- "lighthouse-core/audits/installable-manifest.js | platform-not-supported-on-android": {
1046
+ "core/audits/installable-manifest.js | platform-not-supported-on-android": {
1047
1047
  "message": "Nền tảng ứng dụng đã chỉ định chưa được hỗ trợ trên Android"
1048
1048
  },
1049
- "lighthouse-core/audits/installable-manifest.js | prefer-related-applications": {
1049
+ "core/audits/installable-manifest.js | prefer-related-applications": {
1050
1050
  "message": "Tệp kê khai chỉ định prefer_related_applications: true"
1051
1051
  },
1052
- "lighthouse-core/audits/installable-manifest.js | prefer-related-applications-only-beta-stable": {
1052
+ "core/audits/installable-manifest.js | prefer-related-applications-only-beta-stable": {
1053
1053
  "message": "Chỉ hỗ trợ prefer_related_applications cho các kênh Chính thức và Thử nghiệm của Chrome trên Android."
1054
1054
  },
1055
- "lighthouse-core/audits/installable-manifest.js | protocol-timeout": {
1055
+ "core/audits/installable-manifest.js | protocol-timeout": {
1056
1056
  "message": "Lighthouse không xác định được có trình chạy dịch vụ hay không. Vui lòng thử lại bằng một phiên bản Chrome mới hơn."
1057
1057
  },
1058
- "lighthouse-core/audits/installable-manifest.js | start-url-not-valid": {
1058
+ "core/audits/installable-manifest.js | start-url-not-valid": {
1059
1059
  "message": "URL bắt đầu của tệp kê khai là không hợp lệ"
1060
1060
  },
1061
- "lighthouse-core/audits/installable-manifest.js | title": {
1061
+ "core/audits/installable-manifest.js | title": {
1062
1062
  "message": "Tệp kê khai ứng dụng web và trình chạy dịch vụ đáp ứng các yêu cầu về khả năng cài đặt"
1063
1063
  },
1064
- "lighthouse-core/audits/installable-manifest.js | url-not-supported-for-webapk": {
1064
+ "core/audits/installable-manifest.js | url-not-supported-for-webapk": {
1065
1065
  "message": "Một URL trong tệp kê khai chứa tên người dùng, mật khẩu hoặc cổng"
1066
1066
  },
1067
- "lighthouse-core/audits/installable-manifest.js | warn-not-offline-capable": {
1067
+ "core/audits/installable-manifest.js | warn-not-offline-capable": {
1068
1068
  "message": "Trang không hoạt động khi không có mạng. Trang này sẽ không được xem là có thể cài đặt sau khi Chrome 93 chính thức phát hành vào tháng 8 năm 2021."
1069
1069
  },
1070
- "lighthouse-core/audits/is-on-https.js | allowed": {
1070
+ "core/audits/is-on-https.js | allowed": {
1071
1071
  "message": "Được phép"
1072
1072
  },
1073
- "lighthouse-core/audits/is-on-https.js | blocked": {
1073
+ "core/audits/is-on-https.js | blocked": {
1074
1074
  "message": "Bị chặn"
1075
1075
  },
1076
- "lighthouse-core/audits/is-on-https.js | columnInsecureURL": {
1076
+ "core/audits/is-on-https.js | columnInsecureURL": {
1077
1077
  "message": "URL không an toàn"
1078
1078
  },
1079
- "lighthouse-core/audits/is-on-https.js | columnResolution": {
1079
+ "core/audits/is-on-https.js | columnResolution": {
1080
1080
  "message": "Cách xử lý yêu cầu"
1081
1081
  },
1082
- "lighthouse-core/audits/is-on-https.js | description": {
1082
+ "core/audits/is-on-https.js | description": {
1083
1083
  "message": "Bạn phải bảo vệ tất cả các trang web bằng HTTPS, kể cả những trang web không xử lý dữ liệu nhạy cảm. Điều này bao gồm tránh [nội dung hỗn hợp](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), trong đó một số tài nguyên được tải qua HTTP cho dù yêu cầu ban đầu được gửi qua HTTPS. HTTPS ngăn kẻ xâm nhập can thiệp hoặc vô tình biết được nội dung trao đổi giữa ứng dụng và người dùng của bạn, đồng thời là điều kiện tiên quyết nếu bạn muốn dùng HTTP/2 và nhiều API nền tảng web mới. [Tìm hiểu thêm](https://web.dev/is-on-https/)."
1084
1084
  },
1085
- "lighthouse-core/audits/is-on-https.js | displayValue": {
1085
+ "core/audits/is-on-https.js | displayValue": {
1086
1086
  "message": "{itemCount,plural, =1{Tìm thấy 1 yêu cầu không an toàn}other{Tìm thấy # yêu cầu không an toàn}}"
1087
1087
  },
1088
- "lighthouse-core/audits/is-on-https.js | failureTitle": {
1088
+ "core/audits/is-on-https.js | failureTitle": {
1089
1089
  "message": "Không sử dụng HTTPS"
1090
1090
  },
1091
- "lighthouse-core/audits/is-on-https.js | title": {
1091
+ "core/audits/is-on-https.js | title": {
1092
1092
  "message": "Sử dụng HTTPS"
1093
1093
  },
1094
- "lighthouse-core/audits/is-on-https.js | upgraded": {
1094
+ "core/audits/is-on-https.js | upgraded": {
1095
1095
  "message": "Đã tự động nâng cấp lên HTTPS"
1096
1096
  },
1097
- "lighthouse-core/audits/is-on-https.js | warning": {
1097
+ "core/audits/is-on-https.js | warning": {
1098
1098
  "message": "Được phép nhưng có cảnh báo"
1099
1099
  },
1100
- "lighthouse-core/audits/largest-contentful-paint-element.js | description": {
1100
+ "core/audits/largest-contentful-paint-element.js | description": {
1101
1101
  "message": "Đây là thành phần nội dung lớn nhất hiển thị trong khung nhìn. [Tìm hiểu thêm](https://web.dev/lighthouse-largest-contentful-paint/)"
1102
1102
  },
1103
- "lighthouse-core/audits/largest-contentful-paint-element.js | title": {
1103
+ "core/audits/largest-contentful-paint-element.js | title": {
1104
1104
  "message": "Thành phần Thời gian hiển thị nội dung lớn nhất"
1105
1105
  },
1106
- "lighthouse-core/audits/layout-shift-elements.js | columnContribution": {
1106
+ "core/audits/layout-shift-elements.js | columnContribution": {
1107
1107
  "message": "Mức đóng góp vào CLS"
1108
1108
  },
1109
- "lighthouse-core/audits/layout-shift-elements.js | description": {
1109
+ "core/audits/layout-shift-elements.js | description": {
1110
1110
  "message": "Những thành phần DOM này đóng góp nhiều nhất vào Điểm số tổng hợp về mức thay đổi bố cục (CLS) của trang."
1111
1111
  },
1112
- "lighthouse-core/audits/layout-shift-elements.js | title": {
1112
+ "core/audits/layout-shift-elements.js | title": {
1113
1113
  "message": "Tránh các thay đổi lớn về bố cục"
1114
1114
  },
1115
- "lighthouse-core/audits/lcp-lazy-loaded.js | description": {
1115
+ "core/audits/lcp-lazy-loaded.js | description": {
1116
1116
  "message": "Hình ảnh trong màn hình đầu tiên được tải từng phần sẽ hiển thị sau trong vòng đời của trang, điều này có thể làm chậm thời gian hiển thị nội dung lớn nhất. [Tìm hiểu thêm](https://web.dev/lcp-lazy-loading/)."
1117
1117
  },
1118
- "lighthouse-core/audits/lcp-lazy-loaded.js | failureTitle": {
1118
+ "core/audits/lcp-lazy-loaded.js | failureTitle": {
1119
1119
  "message": "Hình ảnh Thời gian hiển thị nội dung lớn nhất đã được tải từng phần"
1120
1120
  },
1121
- "lighthouse-core/audits/lcp-lazy-loaded.js | title": {
1121
+ "core/audits/lcp-lazy-loaded.js | title": {
1122
1122
  "message": "Hình ảnh Thời gian hiển thị nội dung lớn nhất không được tải từng phần"
1123
1123
  },
1124
- "lighthouse-core/audits/long-tasks.js | description": {
1124
+ "core/audits/long-tasks.js | description": {
1125
1125
  "message": "Liệt kê những việc cần nhiều thời gian thực hiện nhất trong chuỗi chính. Thông tin này khá hữu ích trong việc xác định những thành phần có thời gian phản hồi tương tác chậm nhất. [Tìm hiểu thêm](https://web.dev/long-tasks-devtools/)"
1126
1126
  },
1127
- "lighthouse-core/audits/long-tasks.js | displayValue": {
1127
+ "core/audits/long-tasks.js | displayValue": {
1128
1128
  "message": "{itemCount,plural, =1{Phát hiện thấy # việc cần nhiều thời gian thực hiện}other{Phát hiện thấy # việc cần nhiều thời gian thực hiện}}"
1129
1129
  },
1130
- "lighthouse-core/audits/long-tasks.js | title": {
1130
+ "core/audits/long-tasks.js | title": {
1131
1131
  "message": "Tránh những việc cần nhiều thời gian thực hiện trong chuỗi chính"
1132
1132
  },
1133
- "lighthouse-core/audits/mainthread-work-breakdown.js | columnCategory": {
1133
+ "core/audits/mainthread-work-breakdown.js | columnCategory": {
1134
1134
  "message": "Danh mục"
1135
1135
  },
1136
- "lighthouse-core/audits/mainthread-work-breakdown.js | description": {
1136
+ "core/audits/mainthread-work-breakdown.js | description": {
1137
1137
  "message": "Hãy cân nhắc giảm thời gian dùng để phân tích cú pháp, biên soạn và thực thi JS. Bạn có thể giải quyết vấn đề này bằng cách phân phối các tải trọng JS nhỏ hơn. [Tìm hiểu thêm](https://web.dev/mainthread-work-breakdown/)"
1138
1138
  },
1139
- "lighthouse-core/audits/mainthread-work-breakdown.js | failureTitle": {
1139
+ "core/audits/mainthread-work-breakdown.js | failureTitle": {
1140
1140
  "message": "Giảm thiểu công việc theo chuỗi chính"
1141
1141
  },
1142
- "lighthouse-core/audits/mainthread-work-breakdown.js | title": {
1142
+ "core/audits/mainthread-work-breakdown.js | title": {
1143
1143
  "message": "Giảm thiểu công việc theo chuỗi chính"
1144
1144
  },
1145
- "lighthouse-core/audits/manual/pwa-cross-browser.js | description": {
1145
+ "core/audits/manual/pwa-cross-browser.js | description": {
1146
1146
  "message": "Để tiếp cận nhiều người dùng nhất, các trang web phải hoạt động trên mọi trình duyệt chính. [Tìm hiểu thêm](https://web.dev/pwa-cross-browser/)"
1147
1147
  },
1148
- "lighthouse-core/audits/manual/pwa-cross-browser.js | title": {
1148
+ "core/audits/manual/pwa-cross-browser.js | title": {
1149
1149
  "message": "Trang web hoạt động trên nhiều trình duyệt"
1150
1150
  },
1151
- "lighthouse-core/audits/manual/pwa-each-page-has-url.js | description": {
1151
+ "core/audits/manual/pwa-each-page-has-url.js | description": {
1152
1152
  "message": "Đảm bảo từng trang có thể liên kết sâu qua URL và URL là duy nhất để có thể chia sẻ trên mạng xã hội. [Tìm hiểu thêm](https://web.dev/pwa-each-page-has-url/)"
1153
1153
  },
1154
- "lighthouse-core/audits/manual/pwa-each-page-has-url.js | title": {
1154
+ "core/audits/manual/pwa-each-page-has-url.js | title": {
1155
1155
  "message": "Mỗi trang có một URL"
1156
1156
  },
1157
- "lighthouse-core/audits/manual/pwa-page-transitions.js | description": {
1157
+ "core/audits/manual/pwa-page-transitions.js | description": {
1158
1158
  "message": "Quá trình chuyển tiếp phải diễn ra ngay khi bạn nhấn vào, kể cả khi mạng chậm. Trải nghiệm này là một yếu tố quan trọng quyết định cảm nhận của người dùng về hiệu suất. [Tìm hiểu thêm](https://web.dev/pwa-page-transitions/)"
1159
1159
  },
1160
- "lighthouse-core/audits/manual/pwa-page-transitions.js | title": {
1160
+ "core/audits/manual/pwa-page-transitions.js | title": {
1161
1161
  "message": "Người dùng không cảm thấy mạng chậm khi chuyển trang"
1162
1162
  },
1163
- "lighthouse-core/audits/maskable-icon.js | description": {
1163
+ "core/audits/maskable-icon.js | description": {
1164
1164
  "message": "Một biểu tượng che mờ được sẽ đảm bảo rằng hình ảnh lấp đầy toàn bộ hình dạng mà không bị hiệu ứng hòm thư khi cài đặt ứng dụng trên một thiết bị. [Tìm hiểu thêm](https://web.dev/maskable-icon-audit/)."
1165
1165
  },
1166
- "lighthouse-core/audits/maskable-icon.js | failureTitle": {
1166
+ "core/audits/maskable-icon.js | failureTitle": {
1167
1167
  "message": "Tệp kê khai không có biểu tượng che mờ được"
1168
1168
  },
1169
- "lighthouse-core/audits/maskable-icon.js | title": {
1169
+ "core/audits/maskable-icon.js | title": {
1170
1170
  "message": "Tệp kê khai có một biểu tượng che mờ được"
1171
1171
  },
1172
- "lighthouse-core/audits/metrics/cumulative-layout-shift.js | description": {
1172
+ "core/audits/metrics/cumulative-layout-shift.js | description": {
1173
1173
  "message": "Điểm số tổng hợp về mức thay đổi bố cục đo lường mức độ dịch chuyển của các thành phần hiển thị trong khung nhìn. [Tìm hiểu thêm](https://web.dev/cls/)."
1174
1174
  },
1175
- "lighthouse-core/audits/metrics/first-contentful-paint.js | description": {
1175
+ "core/audits/metrics/first-contentful-paint.js | description": {
1176
1176
  "message": "Chỉ số Hiển thị nội dung đầu tiên đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh đầu tiên. [Tìm hiểu thêm](https://web.dev/first-contentful-paint/)."
1177
1177
  },
1178
- "lighthouse-core/audits/metrics/first-meaningful-paint.js | description": {
1178
+ "core/audits/metrics/first-meaningful-paint.js | description": {
1179
1179
  "message": "Chỉ số Hiển thị nội dung đầu tiên đo lường thời điểm hiển thị nội dung chính của trang. [Tìm hiểu thêm](https://web.dev/first-meaningful-paint/)."
1180
1180
  },
1181
- "lighthouse-core/audits/metrics/interactive.js | description": {
1181
+ "core/audits/metrics/interactive.js | description": {
1182
1182
  "message": "Thời điểm tương tác là khoảng thời gian mà trang cần để trở nên hoàn toàn tương tác. [Tìm hiểu thêm](https://web.dev/interactive/)."
1183
1183
  },
1184
- "lighthouse-core/audits/metrics/largest-contentful-paint.js | description": {
1184
+ "core/audits/metrics/largest-contentful-paint.js | description": {
1185
1185
  "message": "Thời gian hiển thị nội dung lớn nhất đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh có kích thước lớn nhất. [Tìm hiểu thêm](https://web.dev/lighthouse-largest-contentful-paint/)"
1186
1186
  },
1187
- "lighthouse-core/audits/metrics/max-potential-fid.js | description": {
1187
+ "core/audits/metrics/max-potential-fid.js | description": {
1188
1188
  "message": "Thời gian phản hồi lần tương tác đầu tiên tối đa mà người dùng có thể gặp phải là thời gian thực hiện nhiệm vụ lâu nhất. [Tìm hiểu thêm](https://web.dev/lighthouse-max-potential-fid/)."
1189
1189
  },
1190
- "lighthouse-core/audits/metrics/speed-index.js | description": {
1190
+ "core/audits/metrics/speed-index.js | description": {
1191
1191
  "message": "Chỉ số tốc độ cho biết nội dung của một trang hiển thị nhanh chóng đến mức nào. [Tìm hiểu thêm](https://web.dev/speed-index/)."
1192
1192
  },
1193
- "lighthouse-core/audits/metrics/total-blocking-time.js | description": {
1193
+ "core/audits/metrics/total-blocking-time.js | description": {
1194
1194
  "message": "Tổng tất cả các khoảng thời gian giữa thời điểm Hiển thị nội dung đầu tiên (FCP) và Thời điểm tương tác khi thời gian của nhiệm vụ vượt quá 50 mili giây được biểu thị bằng đơn vị mili giây. [Tìm hiểu thêm](https://web.dev/lighthouse-total-blocking-time/)."
1195
1195
  },
1196
- "lighthouse-core/audits/network-rtt.js | description": {
1196
+ "core/audits/network-rtt.js | description": {
1197
1197
  "message": "Thời gian trọn vòng (RTT) của mạng có ảnh hưởng lớn đến hiệu suất. Nếu mất nhiều thời gian trọn vòng (RTT) để đến một nguồn gốc, tức là máy chủ càng gần người dùng thì hiệu quả càng cao. [Tìm hiểu thêm](https://hpbn.co/primer-on-latency-and-bandwidth/)."
1198
1198
  },
1199
- "lighthouse-core/audits/network-rtt.js | title": {
1199
+ "core/audits/network-rtt.js | title": {
1200
1200
  "message": "Thời gian trọn vòng của mạng"
1201
1201
  },
1202
- "lighthouse-core/audits/network-server-latency.js | description": {
1202
+ "core/audits/network-server-latency.js | description": {
1203
1203
  "message": "Thời gian chờ của máy chủ có thể ảnh hưởng đến hiệu suất của trang web. Nếu máy chủ của một nguồn gốc có thời gian chờ cao, tức là máy chủ bị quá tải hoặc có hiệu suất phụ trợ thấp. [Tìm hiểu thêm](https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall)."
1204
1204
  },
1205
- "lighthouse-core/audits/network-server-latency.js | title": {
1205
+ "core/audits/network-server-latency.js | title": {
1206
1206
  "message": "Thời gian dưới nền của máy chủ"
1207
1207
  },
1208
- "lighthouse-core/audits/no-unload-listeners.js | description": {
1208
+ "core/audits/no-unload-listeners.js | description": {
1209
1209
  "message": "Sự kiện `unload` kích hoạt không ổn định và việc làm theo sự kiện này có thể ngăn không cho trình duyệt tối ưu hoá, chẳng hạn như tính năng Bộ nhớ đệm cho thao tác tiến/lùi. Hãy chuyển sang dùng sự kiện `pagehide` hoặc `visibilitychange`. [Tìm hiểu thêm](https://web.dev/bfcache/#never-use-the-unload-event)"
1210
1210
  },
1211
- "lighthouse-core/audits/no-unload-listeners.js | failureTitle": {
1211
+ "core/audits/no-unload-listeners.js | failureTitle": {
1212
1212
  "message": "Đăng ký trình xử lý sự kiện `unload`"
1213
1213
  },
1214
- "lighthouse-core/audits/no-unload-listeners.js | title": {
1214
+ "core/audits/no-unload-listeners.js | title": {
1215
1215
  "message": "Tránh dùng trình xử lý sự kiện `unload`"
1216
1216
  },
1217
- "lighthouse-core/audits/non-composited-animations.js | description": {
1217
+ "core/audits/non-composited-animations.js | description": {
1218
1218
  "message": "Các ảnh động không được ghép có thể kém chất lượng và làm tăng CLS (Điểm số tổng hợp về mức thay đổi bố cục). [Tìm hiểu thêm](https://web.dev/non-composited-animations)"
1219
1219
  },
1220
- "lighthouse-core/audits/non-composited-animations.js | displayValue": {
1220
+ "core/audits/non-composited-animations.js | displayValue": {
1221
1221
  "message": "{itemCount,plural, =1{Tìm thấy # phần tử ảnh động}other{Tìm thấy # phần tử ảnh động}}"
1222
1222
  },
1223
- "lighthouse-core/audits/non-composited-animations.js | filterMayMovePixels": {
1223
+ "core/audits/non-composited-animations.js | filterMayMovePixels": {
1224
1224
  "message": "Thuộc tính liên quan đến bộ lọc có thể di chuyển pixel"
1225
1225
  },
1226
- "lighthouse-core/audits/non-composited-animations.js | incompatibleAnimations": {
1226
+ "core/audits/non-composited-animations.js | incompatibleAnimations": {
1227
1227
  "message": "Mục tiêu có một ảnh động khác không tương thích"
1228
1228
  },
1229
- "lighthouse-core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
1229
+ "core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
1230
1230
  "message": "Hiệu ứng có chế độ ghép không phải là \"replace\""
1231
1231
  },
1232
- "lighthouse-core/audits/non-composited-animations.js | title": {
1232
+ "core/audits/non-composited-animations.js | title": {
1233
1233
  "message": "Tránh dùng các ảnh động không được ghép"
1234
1234
  },
1235
- "lighthouse-core/audits/non-composited-animations.js | transformDependsBoxSize": {
1235
+ "core/audits/non-composited-animations.js | transformDependsBoxSize": {
1236
1236
  "message": "Thuộc tính liên quan đến biến đổi phụ thuộc vào kích thước hộp"
1237
1237
  },
1238
- "lighthouse-core/audits/non-composited-animations.js | unsupportedCSSProperty": {
1238
+ "core/audits/non-composited-animations.js | unsupportedCSSProperty": {
1239
1239
  "message": "{propertyCount,plural, =1{Thuộc tính CSS không được hỗ trợ: {properties}}other{Các thuộc tính CSS không được hỗ trợ: {properties}}}"
1240
1240
  },
1241
- "lighthouse-core/audits/non-composited-animations.js | unsupportedTimingParameters": {
1241
+ "core/audits/non-composited-animations.js | unsupportedTimingParameters": {
1242
1242
  "message": "Hiệu ứng có tham số thời gian không được hỗ trợ"
1243
1243
  },
1244
- "lighthouse-core/audits/performance-budget.js | description": {
1244
+ "core/audits/performance-budget.js | description": {
1245
1245
  "message": "Đảm bảo số lượng và quy mô của yêu cầu mạng thấp hơn mục tiêu đặt ra của ngân sách hiệu suất đã cung cấp. [Tìm hiểu thêm](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
1246
1246
  },
1247
- "lighthouse-core/audits/performance-budget.js | requestCountOverBudget": {
1247
+ "core/audits/performance-budget.js | requestCountOverBudget": {
1248
1248
  "message": "{count,plural, =1{1 yêu cầu}other{# yêu cầu}}"
1249
1249
  },
1250
- "lighthouse-core/audits/performance-budget.js | title": {
1250
+ "core/audits/performance-budget.js | title": {
1251
1251
  "message": "Ngân sách hiệu suất"
1252
1252
  },
1253
- "lighthouse-core/audits/preload-fonts.js | description": {
1253
+ "core/audits/preload-fonts.js | description": {
1254
1254
  "message": "Bạn nên tải trước phông chữ `optional` để khách truy cập lần đầu có thể sử dụng. [Tìm hiểu thêm](https://web.dev/preload-optional-fonts/)"
1255
1255
  },
1256
- "lighthouse-core/audits/preload-fonts.js | failureTitle": {
1256
+ "core/audits/preload-fonts.js | failureTitle": {
1257
1257
  "message": "Chưa tải trước phông chữ có `font-display: optional`"
1258
1258
  },
1259
- "lighthouse-core/audits/preload-fonts.js | title": {
1259
+ "core/audits/preload-fonts.js | title": {
1260
1260
  "message": "Đã tải trước phông chữ có `font-display: optional`"
1261
1261
  },
1262
- "lighthouse-core/audits/preload-lcp-image.js | description": {
1262
+ "core/audits/preload-lcp-image.js | description": {
1263
1263
  "message": "Tải trước hình ảnh mà thành phần LCP (Thời gian hiển thị nội dung lớn nhất) sử dụng nhằm cải thiện thời gian LCP của bạn. [Tìm hiểu thêm](https://web.dev/optimize-lcp/#preload-important-resources)"
1264
1264
  },
1265
- "lighthouse-core/audits/preload-lcp-image.js | title": {
1265
+ "core/audits/preload-lcp-image.js | title": {
1266
1266
  "message": "Tải trước hình ảnh có Thời gian hiển thị nội dung lớn nhất"
1267
1267
  },
1268
- "lighthouse-core/audits/redirects.js | description": {
1268
+ "core/audits/redirects.js | description": {
1269
1269
  "message": "Các lần chuyển hướng sẽ làm giảm tốc độ tải trang. [Tìm hiểu thêm](https://web.dev/redirects/)."
1270
1270
  },
1271
- "lighthouse-core/audits/redirects.js | title": {
1271
+ "core/audits/redirects.js | title": {
1272
1272
  "message": "Tránh chuyển hướng trang nhiều lần"
1273
1273
  },
1274
- "lighthouse-core/audits/resource-summary.js | description": {
1274
+ "core/audits/resource-summary.js | description": {
1275
1275
  "message": "Để thiết lập ngân sách cho số lượng và quy mô của tài nguyên trang, hãy thêm tệp budget.json. [Tìm hiểu thêm](https://web.dev/use-lighthouse-for-performance-budgets/)."
1276
1276
  },
1277
- "lighthouse-core/audits/resource-summary.js | displayValue": {
1277
+ "core/audits/resource-summary.js | displayValue": {
1278
1278
  "message": "{requestCount,plural, =1{1 yêu cầu • {byteCount, number, bytes} KiB}other{# yêu cầu • {byteCount, number, bytes} KiB}}"
1279
1279
  },
1280
- "lighthouse-core/audits/resource-summary.js | title": {
1280
+ "core/audits/resource-summary.js | title": {
1281
1281
  "message": "Giảm số lượng yêu cầu và chuyển những tài nguyên có kích thước nhỏ"
1282
1282
  },
1283
- "lighthouse-core/audits/seo/canonical.js | description": {
1283
+ "core/audits/seo/canonical.js | description": {
1284
1284
  "message": "Phần tử liên kết chính tắc đề xuất URL nào nên hiển thị trong kết quả tìm kiếm. [Tìm hiểu thêm](https://web.dev/canonical/)."
1285
1285
  },
1286
- "lighthouse-core/audits/seo/canonical.js | explanationConflict": {
1286
+ "core/audits/seo/canonical.js | explanationConflict": {
1287
1287
  "message": "Nhiều URL xung đột ({urlList})"
1288
1288
  },
1289
- "lighthouse-core/audits/seo/canonical.js | explanationInvalid": {
1289
+ "core/audits/seo/canonical.js | explanationInvalid": {
1290
1290
  "message": "URL không hợp lệ ({url})."
1291
1291
  },
1292
- "lighthouse-core/audits/seo/canonical.js | explanationPointsElsewhere": {
1292
+ "core/audits/seo/canonical.js | explanationPointsElsewhere": {
1293
1293
  "message": "Trỏ đến một vị trí `hreflang` khác ({url})"
1294
1294
  },
1295
- "lighthouse-core/audits/seo/canonical.js | explanationRelative": {
1295
+ "core/audits/seo/canonical.js | explanationRelative": {
1296
1296
  "message": "Không phải là một URL tuyệt đối ({url})"
1297
1297
  },
1298
- "lighthouse-core/audits/seo/canonical.js | explanationRoot": {
1298
+ "core/audits/seo/canonical.js | explanationRoot": {
1299
1299
  "message": "Trỏ đến URL gốc của miền (trang chủ) thay vì trang nội dung tương đương"
1300
1300
  },
1301
- "lighthouse-core/audits/seo/canonical.js | failureTitle": {
1301
+ "core/audits/seo/canonical.js | failureTitle": {
1302
1302
  "message": "Tài liệu không có `rel=canonical` hợp lệ"
1303
1303
  },
1304
- "lighthouse-core/audits/seo/canonical.js | title": {
1304
+ "core/audits/seo/canonical.js | title": {
1305
1305
  "message": "Tài liệu có `rel=canonical` hợp lệ"
1306
1306
  },
1307
- "lighthouse-core/audits/seo/crawlable-anchors.js | columnFailingLink": {
1307
+ "core/audits/seo/crawlable-anchors.js | columnFailingLink": {
1308
1308
  "message": "Đường liên kết không thể thu thập dữ liệu"
1309
1309
  },
1310
- "lighthouse-core/audits/seo/crawlable-anchors.js | description": {
1310
+ "core/audits/seo/crawlable-anchors.js | description": {
1311
1311
  "message": "Công cụ tìm kiếm có thể dùng các thuộc tính `href` trên đường liên kết để thu thập dữ liệu các trang web. Hãy đảm bảo rằng thuộc tính `href` của các thành phần neo liên kết đến một trang đích phù hợp để có thể phát hiện thêm nhiều trang khác của trang web. [Tìm hiểu thêm](https://support.google.com/webmasters/answer/9112205)"
1312
1312
  },
1313
- "lighthouse-core/audits/seo/crawlable-anchors.js | failureTitle": {
1313
+ "core/audits/seo/crawlable-anchors.js | failureTitle": {
1314
1314
  "message": "Các đường liên kết không thể thu thập thông tin"
1315
1315
  },
1316
- "lighthouse-core/audits/seo/crawlable-anchors.js | title": {
1316
+ "core/audits/seo/crawlable-anchors.js | title": {
1317
1317
  "message": "Các đường liên kết có thể thu thập thông tin"
1318
1318
  },
1319
- "lighthouse-core/audits/seo/font-size.js | additionalIllegibleText": {
1319
+ "core/audits/seo/font-size.js | additionalIllegibleText": {
1320
1320
  "message": "Văn bản bổ sung khó đọc"
1321
1321
  },
1322
- "lighthouse-core/audits/seo/font-size.js | columnFontSize": {
1322
+ "core/audits/seo/font-size.js | columnFontSize": {
1323
1323
  "message": "Cỡ chữ"
1324
1324
  },
1325
- "lighthouse-core/audits/seo/font-size.js | columnPercentPageText": {
1325
+ "core/audits/seo/font-size.js | columnPercentPageText": {
1326
1326
  "message": "% văn bản trên trang"
1327
1327
  },
1328
- "lighthouse-core/audits/seo/font-size.js | columnSelector": {
1328
+ "core/audits/seo/font-size.js | columnSelector": {
1329
1329
  "message": "Bộ chọn"
1330
1330
  },
1331
- "lighthouse-core/audits/seo/font-size.js | description": {
1331
+ "core/audits/seo/font-size.js | description": {
1332
1332
  "message": "Cỡ chữ dưới 12 pixel là quá nhỏ và khó đọc, buộc khách truy cập trên thiết bị di động phải “chụm để thu phóng” mới đọc được. Tốt nhất là hơn 60% văn bản trên trang có cỡ chữ lớn hơn hoặc bằng 12 pixel. [Tìm hiểu thêm](https://web.dev/font-size/)."
1333
1333
  },
1334
- "lighthouse-core/audits/seo/font-size.js | displayValue": {
1334
+ "core/audits/seo/font-size.js | displayValue": {
1335
1335
  "message": "{decimalProportion, number, extendedPercent} văn bản dễ đọc"
1336
1336
  },
1337
- "lighthouse-core/audits/seo/font-size.js | explanationViewport": {
1337
+ "core/audits/seo/font-size.js | explanationViewport": {
1338
1338
  "message": "Văn bản không đọc được vì không có thẻ meta viewport nào được tối ưu hóa cho màn hình thiết bị di động."
1339
1339
  },
1340
- "lighthouse-core/audits/seo/font-size.js | failureTitle": {
1340
+ "core/audits/seo/font-size.js | failureTitle": {
1341
1341
  "message": "Tài liệu không sử dụng cỡ chữ dễ đọc"
1342
1342
  },
1343
- "lighthouse-core/audits/seo/font-size.js | legibleText": {
1343
+ "core/audits/seo/font-size.js | legibleText": {
1344
1344
  "message": "Văn bản dễ đọc"
1345
1345
  },
1346
- "lighthouse-core/audits/seo/font-size.js | title": {
1346
+ "core/audits/seo/font-size.js | title": {
1347
1347
  "message": "Tài liệu sử dụng cỡ chữ dễ đọc"
1348
1348
  },
1349
- "lighthouse-core/audits/seo/hreflang.js | description": {
1349
+ "core/audits/seo/hreflang.js | description": {
1350
1350
  "message": "Các phần tử liên kết hreflang cho công cụ tìm kiếm biết nên liệt kê phiên bản trang nào trong kết quả tìm kiếm cho một ngôn ngữ hoặc khu vực cụ thể. [Tìm hiểu thêm](https://web.dev/hreflang/)."
1351
1351
  },
1352
- "lighthouse-core/audits/seo/hreflang.js | failureTitle": {
1352
+ "core/audits/seo/hreflang.js | failureTitle": {
1353
1353
  "message": "Tài liệu không có `hreflang` hợp lệ"
1354
1354
  },
1355
- "lighthouse-core/audits/seo/hreflang.js | notFullyQualified": {
1355
+ "core/audits/seo/hreflang.js | notFullyQualified": {
1356
1356
  "message": "Giá trị href tương đối"
1357
1357
  },
1358
- "lighthouse-core/audits/seo/hreflang.js | title": {
1358
+ "core/audits/seo/hreflang.js | title": {
1359
1359
  "message": "Tài liệu có `hreflang` hợp lệ"
1360
1360
  },
1361
- "lighthouse-core/audits/seo/hreflang.js | unexpectedLanguage": {
1361
+ "core/audits/seo/hreflang.js | unexpectedLanguage": {
1362
1362
  "message": "Mã ngôn ngữ không mong muốn"
1363
1363
  },
1364
- "lighthouse-core/audits/seo/http-status-code.js | description": {
1364
+ "core/audits/seo/http-status-code.js | description": {
1365
1365
  "message": "Các trang có mã trạng thái HTTP không thành công có thể được lập chỉ mục không chính xác. [Tìm hiểu thêm](https://web.dev/http-status-code/)."
1366
1366
  },
1367
- "lighthouse-core/audits/seo/http-status-code.js | failureTitle": {
1367
+ "core/audits/seo/http-status-code.js | failureTitle": {
1368
1368
  "message": "Trang có mã trạng thái HTTP không thành công"
1369
1369
  },
1370
- "lighthouse-core/audits/seo/http-status-code.js | title": {
1370
+ "core/audits/seo/http-status-code.js | title": {
1371
1371
  "message": "Trang có mã trạng thái HTTP thành công"
1372
1372
  },
1373
- "lighthouse-core/audits/seo/is-crawlable.js | description": {
1373
+ "core/audits/seo/is-crawlable.js | description": {
1374
1374
  "message": "Các công cụ tìm kiếm không thể đưa trang của bạn vào kết quả tìm kiếm nếu bạn không cấp cho các công cụ này quyền thu thập thông tin của trang. [Tìm hiểu thêm](https://web.dev/is-crawable/)."
1375
1375
  },
1376
- "lighthouse-core/audits/seo/is-crawlable.js | failureTitle": {
1376
+ "core/audits/seo/is-crawlable.js | failureTitle": {
1377
1377
  "message": "Trang bị chặn lập chỉ mục"
1378
1378
  },
1379
- "lighthouse-core/audits/seo/is-crawlable.js | title": {
1379
+ "core/audits/seo/is-crawlable.js | title": {
1380
1380
  "message": "Trang không bị chặn lập chỉ mục"
1381
1381
  },
1382
- "lighthouse-core/audits/seo/link-text.js | description": {
1382
+ "core/audits/seo/link-text.js | description": {
1383
1383
  "message": "Văn bản mô tả trên đường liên kết giúp công cụ tìm kiếm hiểu được nội dung của bạn. [Tìm hiểu thêm](https://web.dev/link-text/)."
1384
1384
  },
1385
- "lighthouse-core/audits/seo/link-text.js | displayValue": {
1385
+ "core/audits/seo/link-text.js | displayValue": {
1386
1386
  "message": "{itemCount,plural, =1{Đã tìm thấy 1 liên kết}other{Đã tìm thấy # liên kết}}"
1387
1387
  },
1388
- "lighthouse-core/audits/seo/link-text.js | failureTitle": {
1388
+ "core/audits/seo/link-text.js | failureTitle": {
1389
1389
  "message": "Các phần tử liên kết không có văn bản mô tả"
1390
1390
  },
1391
- "lighthouse-core/audits/seo/link-text.js | title": {
1391
+ "core/audits/seo/link-text.js | title": {
1392
1392
  "message": "Các phần tử liên kết có văn bản mô tả"
1393
1393
  },
1394
- "lighthouse-core/audits/seo/manual/structured-data.js | description": {
1394
+ "core/audits/seo/manual/structured-data.js | description": {
1395
1395
  "message": "Chạy [Công cụ kiểm tra dữ liệu có cấu trúc](https://search.google.com/structured-data/testing-tool/) và [Công cụ khử lỗi dữ liệu có cấu trúc](http://linter.structured-data.org/) để xác thực loại dữ liệu này. [Tìm hiểu thêm](https://web.dev/structured-data/)."
1396
1396
  },
1397
- "lighthouse-core/audits/seo/manual/structured-data.js | title": {
1397
+ "core/audits/seo/manual/structured-data.js | title": {
1398
1398
  "message": "Dữ liệu có cấu trúc là hợp lệ"
1399
1399
  },
1400
- "lighthouse-core/audits/seo/meta-description.js | description": {
1400
+ "core/audits/seo/meta-description.js | description": {
1401
1401
  "message": "Bạn có thể thêm phần mô tả meta vào kết quả tìm kiếm để tóm tắt ngắn gọn nội dung trang. [Tìm hiểu thêm](https://web.dev/meta-description/)."
1402
1402
  },
1403
- "lighthouse-core/audits/seo/meta-description.js | explanation": {
1403
+ "core/audits/seo/meta-description.js | explanation": {
1404
1404
  "message": "Văn bản mô tả hiện đang trống."
1405
1405
  },
1406
- "lighthouse-core/audits/seo/meta-description.js | failureTitle": {
1406
+ "core/audits/seo/meta-description.js | failureTitle": {
1407
1407
  "message": "Tài liệu không có phần mô tả meta"
1408
1408
  },
1409
- "lighthouse-core/audits/seo/meta-description.js | title": {
1409
+ "core/audits/seo/meta-description.js | title": {
1410
1410
  "message": "Tài liệu có phần mô tả meta"
1411
1411
  },
1412
- "lighthouse-core/audits/seo/plugins.js | description": {
1412
+ "core/audits/seo/plugins.js | description": {
1413
1413
  "message": "Các công cụ tìm kiếm không thể lập chỉ mục nội dung plugin và nhiều thiết bị hạn chế hoặc không hỗ trợ plugin. [Tìm hiểu thêm](https://web.dev/plugins/)."
1414
1414
  },
1415
- "lighthouse-core/audits/seo/plugins.js | failureTitle": {
1415
+ "core/audits/seo/plugins.js | failureTitle": {
1416
1416
  "message": "Tài liệu sử dụng plugin"
1417
1417
  },
1418
- "lighthouse-core/audits/seo/plugins.js | title": {
1418
+ "core/audits/seo/plugins.js | title": {
1419
1419
  "message": "Tài liệu tránh sử dụng plugin"
1420
1420
  },
1421
- "lighthouse-core/audits/seo/robots-txt.js | description": {
1421
+ "core/audits/seo/robots-txt.js | description": {
1422
1422
  "message": "Nếu định dạng của tệp robots.txt không đúng, thì trình thu thập thông tin có thể không hiểu được cách bạn muốn thu thập thông tin hoặc lập chỉ mục trang web của mình. [Tìm hiểu thêm](https://web.dev/robots-txt/)"
1423
1423
  },
1424
- "lighthouse-core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
1424
+ "core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
1425
1425
  "message": "Yêu cầu robots.txt trả về trạng thái HTTP: {statusCode}"
1426
1426
  },
1427
- "lighthouse-core/audits/seo/robots-txt.js | displayValueValidationError": {
1427
+ "core/audits/seo/robots-txt.js | displayValueValidationError": {
1428
1428
  "message": "{itemCount,plural, =1{Đã tìm thấy 1 lỗi}other{Đã tìm thấy # lỗi}}"
1429
1429
  },
1430
- "lighthouse-core/audits/seo/robots-txt.js | explanation": {
1430
+ "core/audits/seo/robots-txt.js | explanation": {
1431
1431
  "message": "Lighthouse không tải được tệp robots.txt xuống"
1432
1432
  },
1433
- "lighthouse-core/audits/seo/robots-txt.js | failureTitle": {
1433
+ "core/audits/seo/robots-txt.js | failureTitle": {
1434
1434
  "message": "robots.txt không hợp lệ"
1435
1435
  },
1436
- "lighthouse-core/audits/seo/robots-txt.js | title": {
1436
+ "core/audits/seo/robots-txt.js | title": {
1437
1437
  "message": "robots.txt hợp lệ"
1438
1438
  },
1439
- "lighthouse-core/audits/seo/tap-targets.js | description": {
1439
+ "core/audits/seo/tap-targets.js | description": {
1440
1440
  "message": "Các phần tử tương tác, chẳng hạn như nút và phần tử liên kết, nên có kích thước đủ lớn (48x48 pixel) và khoảng cách xung quanh các phần tử này đủ để nhấn mà không chồng chéo lên các phần tử khác. [Tìm hiểu thêm](https://web.dev/tap-targets/)."
1441
1441
  },
1442
- "lighthouse-core/audits/seo/tap-targets.js | displayValue": {
1442
+ "core/audits/seo/tap-targets.js | displayValue": {
1443
1443
  "message": "{decimalProportion, number, percent} mục tiêu nhấn có kích thước phù hợp"
1444
1444
  },
1445
- "lighthouse-core/audits/seo/tap-targets.js | explanationViewportMetaNotOptimized": {
1445
+ "core/audits/seo/tap-targets.js | explanationViewportMetaNotOptimized": {
1446
1446
  "message": "Mục tiêu nhấn có kích thước quá nhỏ do không có thẻ meta viewport nào được tối ưu hóa cho màn hình thiết bị di động"
1447
1447
  },
1448
- "lighthouse-core/audits/seo/tap-targets.js | failureTitle": {
1448
+ "core/audits/seo/tap-targets.js | failureTitle": {
1449
1449
  "message": "Các mục tiêu nhấn có kích thước không phù hợp"
1450
1450
  },
1451
- "lighthouse-core/audits/seo/tap-targets.js | overlappingTargetHeader": {
1451
+ "core/audits/seo/tap-targets.js | overlappingTargetHeader": {
1452
1452
  "message": "Mục tiêu chồng chéo"
1453
1453
  },
1454
- "lighthouse-core/audits/seo/tap-targets.js | tapTargetHeader": {
1454
+ "core/audits/seo/tap-targets.js | tapTargetHeader": {
1455
1455
  "message": "Mục tiêu nhấn"
1456
1456
  },
1457
- "lighthouse-core/audits/seo/tap-targets.js | title": {
1457
+ "core/audits/seo/tap-targets.js | title": {
1458
1458
  "message": "Mục tiêu nhấn có kích thước phù hợp"
1459
1459
  },
1460
- "lighthouse-core/audits/server-response-time.js | description": {
1460
+ "core/audits/server-response-time.js | description": {
1461
1461
  "message": "Giữ cho máy chủ phản hồi trong thời gian ngắn đối với tài liệu chính vì tất cả các yêu cầu khác phụ thuộc vào thời gian đó. [Tìm hiểu thêm](https://web.dev/time-to-first-byte/)."
1462
1462
  },
1463
- "lighthouse-core/audits/server-response-time.js | displayValue": {
1463
+ "core/audits/server-response-time.js | displayValue": {
1464
1464
  "message": "Tài liệu gốc mất {timeInMs, number, milliseconds} mili giây"
1465
1465
  },
1466
- "lighthouse-core/audits/server-response-time.js | failureTitle": {
1466
+ "core/audits/server-response-time.js | failureTitle": {
1467
1467
  "message": "Giảm thời gian phản hồi ban đầu của máy chủ"
1468
1468
  },
1469
- "lighthouse-core/audits/server-response-time.js | title": {
1469
+ "core/audits/server-response-time.js | title": {
1470
1470
  "message": "Thời gian phản hồi ban đầu của máy chủ là ngắn"
1471
1471
  },
1472
- "lighthouse-core/audits/service-worker.js | description": {
1472
+ "core/audits/service-worker.js | description": {
1473
1473
  "message": "Trình chạy dịch vụ là công nghệ cho phép ứng dụng của bạn dùng nhiều tính năng của Ứng dụng web tiến bộ, chẳng hạn như hoạt động khi không có mạng, thêm vào màn hình chính, và thông báo đẩy. [Tìm hiểu thêm](https://web.dev/service-worker/)"
1474
1474
  },
1475
- "lighthouse-core/audits/service-worker.js | explanationBadManifest": {
1475
+ "core/audits/service-worker.js | explanationBadManifest": {
1476
1476
  "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì tệp kê khai không thể phân tích cú pháp thành tệp JSON hợp lệ"
1477
1477
  },
1478
- "lighthouse-core/audits/service-worker.js | explanationBadStartUrl": {
1478
+ "core/audits/service-worker.js | explanationBadStartUrl": {
1479
1479
  "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, `start_url` ({startUrl}) không thuộc phạm vi của trình chạy dịch vụ này ({scopeUrl})"
1480
1480
  },
1481
- "lighthouse-core/audits/service-worker.js | explanationNoManifest": {
1481
+ "core/audits/service-worker.js | explanationNoManifest": {
1482
1482
  "message": "Trang này do một trình chạy dịch vụ kiểm soát. Tuy nhiên, không tìm thấy `start_url` vì không tìm nạp được tệp kê khai."
1483
1483
  },
1484
- "lighthouse-core/audits/service-worker.js | explanationOutOfScope": {
1484
+ "core/audits/service-worker.js | explanationOutOfScope": {
1485
1485
  "message": "Nguồn gốc này có một hoặc nhiều trình chạy dịch vụ. Tuy nhiên, trang ({pageUrl}) không thuộc phạm vi của các trình chạy dịch vụ này."
1486
1486
  },
1487
- "lighthouse-core/audits/service-worker.js | failureTitle": {
1487
+ "core/audits/service-worker.js | failureTitle": {
1488
1488
  "message": "Không đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1489
1489
  },
1490
- "lighthouse-core/audits/service-worker.js | title": {
1490
+ "core/audits/service-worker.js | title": {
1491
1491
  "message": "Đăng ký một trình chạy dịch vụ kiểm soát trang và `start_url`"
1492
1492
  },
1493
- "lighthouse-core/audits/splash-screen.js | description": {
1493
+ "core/audits/splash-screen.js | description": {
1494
1494
  "message": "Màn hình chờ có giao diện giúp đảm bảo người dùng có trải nghiệm chất lượng cao khi chạy ứng dụng từ màn hình chính. [Tìm hiểu thêm](https://web.dev/splash-screen/)"
1495
1495
  },
1496
- "lighthouse-core/audits/splash-screen.js | failureTitle": {
1496
+ "core/audits/splash-screen.js | failureTitle": {
1497
1497
  "message": "Chưa được định cấu hình cho màn hình chờ tùy chỉnh"
1498
1498
  },
1499
- "lighthouse-core/audits/splash-screen.js | title": {
1499
+ "core/audits/splash-screen.js | title": {
1500
1500
  "message": "Đã định cấu hình cho màn hình chờ tùy chỉnh"
1501
1501
  },
1502
- "lighthouse-core/audits/themed-omnibox.js | description": {
1502
+ "core/audits/themed-omnibox.js | description": {
1503
1503
  "message": "Bạn có thể đặt giao diện cho thanh địa chỉ trên trình duyệt để phù hợp với trang web của mình. [Tìm hiểu thêm](https://web.dev/themed-omnibox/)"
1504
1504
  },
1505
- "lighthouse-core/audits/themed-omnibox.js | failureTitle": {
1505
+ "core/audits/themed-omnibox.js | failureTitle": {
1506
1506
  "message": "Không đặt màu giao diện cho thanh địa chỉ."
1507
1507
  },
1508
- "lighthouse-core/audits/themed-omnibox.js | title": {
1508
+ "core/audits/themed-omnibox.js | title": {
1509
1509
  "message": "Đặt màu giao diện cho thanh địa chỉ."
1510
1510
  },
1511
- "lighthouse-core/audits/third-party-facades.js | categoryCustomerSuccess": {
1511
+ "core/audits/third-party-facades.js | categoryCustomerSuccess": {
1512
1512
  "message": "{productName} (Sự thành công của khách hàng)"
1513
1513
  },
1514
- "lighthouse-core/audits/third-party-facades.js | categoryMarketing": {
1514
+ "core/audits/third-party-facades.js | categoryMarketing": {
1515
1515
  "message": "{productName} (Tiếp thị)"
1516
1516
  },
1517
- "lighthouse-core/audits/third-party-facades.js | categorySocial": {
1517
+ "core/audits/third-party-facades.js | categorySocial": {
1518
1518
  "message": "{productName} (Xã hội)"
1519
1519
  },
1520
- "lighthouse-core/audits/third-party-facades.js | categoryVideo": {
1520
+ "core/audits/third-party-facades.js | categoryVideo": {
1521
1521
  "message": "{productName} (Video)"
1522
1522
  },
1523
- "lighthouse-core/audits/third-party-facades.js | columnProduct": {
1523
+ "core/audits/third-party-facades.js | columnProduct": {
1524
1524
  "message": "Sản phẩm"
1525
1525
  },
1526
- "lighthouse-core/audits/third-party-facades.js | description": {
1526
+ "core/audits/third-party-facades.js | description": {
1527
1527
  "message": "Có thể tải từng phần một số nội dung nhúng của bên thứ ba. Hãy cân nhắc thay bằng một thành phần dung lượng nhẹ cho đến khi cần đến các nội dung này. [Tìm hiểu thêm](https://web.dev/third-party-facades/)."
1528
1528
  },
1529
- "lighthouse-core/audits/third-party-facades.js | displayValue": {
1529
+ "core/audits/third-party-facades.js | displayValue": {
1530
1530
  "message": "{itemCount,plural, =1{Có # thành phần thay thế dung lượng nhẹ}other{Có # thành phần thay thế dung lượng nhẹ}}"
1531
1531
  },
1532
- "lighthouse-core/audits/third-party-facades.js | failureTitle": {
1532
+ "core/audits/third-party-facades.js | failureTitle": {
1533
1533
  "message": "Có thể tải từng phần một số tài nguyên của bên thứ ba bằng một thành phần dung lượng nhẹ"
1534
1534
  },
1535
- "lighthouse-core/audits/third-party-facades.js | title": {
1535
+ "core/audits/third-party-facades.js | title": {
1536
1536
  "message": "Tải từng phần các tài nguyên của bên thứ ba bằng thành phần dung lượng nhẹ"
1537
1537
  },
1538
- "lighthouse-core/audits/third-party-summary.js | columnThirdParty": {
1538
+ "core/audits/third-party-summary.js | columnThirdParty": {
1539
1539
  "message": "Bên thứ ba"
1540
1540
  },
1541
- "lighthouse-core/audits/third-party-summary.js | description": {
1541
+ "core/audits/third-party-summary.js | description": {
1542
1542
  "message": "Mã của bên thứ ba có thể tác động đáng kể đến hiệu suất tải. Hãy hạn chế số nhà cung cấp bên thứ ba dư thừa và cố gắng tải mã của bên thứ ba sau khi trang của bạn hoàn thành phần lớn quá trình tải. [Tìm hiểu thêm](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)."
1543
1543
  },
1544
- "lighthouse-core/audits/third-party-summary.js | displayValue": {
1544
+ "core/audits/third-party-summary.js | displayValue": {
1545
1545
  "message": "Mã của bên thứ ba đã chặn chuỗi chính trong {timeInMs, number, milliseconds} mili giây"
1546
1546
  },
1547
- "lighthouse-core/audits/third-party-summary.js | failureTitle": {
1547
+ "core/audits/third-party-summary.js | failureTitle": {
1548
1548
  "message": "Giảm mức ảnh hưởng của mã bên thứ ba"
1549
1549
  },
1550
- "lighthouse-core/audits/third-party-summary.js | title": {
1550
+ "core/audits/third-party-summary.js | title": {
1551
1551
  "message": "Giảm thiểu mức sử dụng của bên thứ ba"
1552
1552
  },
1553
- "lighthouse-core/audits/timing-budget.js | columnMeasurement": {
1553
+ "core/audits/timing-budget.js | columnMeasurement": {
1554
1554
  "message": "Đo lường"
1555
1555
  },
1556
- "lighthouse-core/audits/timing-budget.js | columnTimingMetric": {
1556
+ "core/audits/timing-budget.js | columnTimingMetric": {
1557
1557
  "message": "Chỉ số"
1558
1558
  },
1559
- "lighthouse-core/audits/timing-budget.js | description": {
1559
+ "core/audits/timing-budget.js | description": {
1560
1560
  "message": "Khi đặt giới hạn về thời gian, bạn sẽ có thể theo dõi được hiệu suất trang web của mình. Các trang có hiệu suất cao sẽ tải và phản hồi nhanh với các sự kiện nhập của người dùng. [Tìm hiểu thêm](https://developers.google.com/web/tools/lighthouse/audits/budgets)."
1561
1561
  },
1562
- "lighthouse-core/audits/timing-budget.js | title": {
1562
+ "core/audits/timing-budget.js | title": {
1563
1563
  "message": "Giới hạn về thời gian"
1564
1564
  },
1565
- "lighthouse-core/audits/unsized-images.js | description": {
1565
+ "core/audits/unsized-images.js | description": {
1566
1566
  "message": "Đặt chiều rộng và chiều cao rõ ràng đối với các phần tử hình ảnh để giảm sự thay đổi về bố cục và cải thiện CLS. [Tìm hiểu thêm](https://web.dev/optimize-cls/#images-without-dimensions)"
1567
1567
  },
1568
- "lighthouse-core/audits/unsized-images.js | failureTitle": {
1568
+ "core/audits/unsized-images.js | failureTitle": {
1569
1569
  "message": "Các phần tử hình ảnh không có `width` và `height` rõ ràng"
1570
1570
  },
1571
- "lighthouse-core/audits/unsized-images.js | title": {
1571
+ "core/audits/unsized-images.js | title": {
1572
1572
  "message": "Các phần tử hình ảnh có `width` và `height` rõ ràng"
1573
1573
  },
1574
- "lighthouse-core/audits/user-timings.js | columnType": {
1574
+ "core/audits/user-timings.js | columnType": {
1575
1575
  "message": "Loại"
1576
1576
  },
1577
- "lighthouse-core/audits/user-timings.js | description": {
1577
+ "core/audits/user-timings.js | description": {
1578
1578
  "message": "Hãy cân nhắc trang bị API Thời gian người dùng cho ứng dụng để đo lường hiệu suất thực tế của ứng dụng trong trải nghiệm người dùng chính. [Tìm hiểu thêm](https://web.dev/user-timings/)."
1579
1579
  },
1580
- "lighthouse-core/audits/user-timings.js | displayValue": {
1580
+ "core/audits/user-timings.js | displayValue": {
1581
1581
  "message": "{itemCount,plural, =1{1 dấu thời gian người dùng}other{# dấu thời gian người dùng}}"
1582
1582
  },
1583
- "lighthouse-core/audits/user-timings.js | title": {
1583
+ "core/audits/user-timings.js | title": {
1584
1584
  "message": "Các thời điểm cụ thể và khoảng thời gian được ghi lại bằng API Thời gian người dùng"
1585
1585
  },
1586
- "lighthouse-core/audits/uses-rel-preconnect.js | crossoriginWarning": {
1586
+ "core/audits/uses-rel-preconnect.js | crossoriginWarning": {
1587
1587
  "message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
1588
1588
  },
1589
- "lighthouse-core/audits/uses-rel-preconnect.js | description": {
1589
+ "core/audits/uses-rel-preconnect.js | description": {
1590
1590
  "message": "Hãy cân nhắc thêm các gợi ý về tài nguyên `preconnect` hoặc `dns-prefetch` để thiết lập kết nối sớm tới những nguồn gốc quan trọng của bên thứ ba. [Tìm hiểu thêm](https://web.dev/uses-rel-preconnect/)"
1591
1591
  },
1592
- "lighthouse-core/audits/uses-rel-preconnect.js | title": {
1592
+ "core/audits/uses-rel-preconnect.js | title": {
1593
1593
  "message": "Kết nối trước với các tên miền bắt buộc"
1594
1594
  },
1595
- "lighthouse-core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
1595
+ "core/audits/uses-rel-preconnect.js | tooManyPreconnectLinksWarning": {
1596
1596
  "message": "Đã phát hiện có hơn 2 đường kết nối `<link rel=preconnect>`. Bạn nên dùng những đường kết nối này một cách hợp lý và chỉ dùng cho các điểm gốc quan trọng nhất."
1597
1597
  },
1598
- "lighthouse-core/audits/uses-rel-preconnect.js | unusedWarning": {
1598
+ "core/audits/uses-rel-preconnect.js | unusedWarning": {
1599
1599
  "message": "Đã tìm thấy `<link rel=preconnect>` cho \"{securityOrigin}\" nhưng trình duyệt không sử dụng thuộc tính này. Chỉ sử dụng `preconnect` cho những điểm gốc quan trọng mà trang chắc chắn sẽ yêu cầu."
1600
1600
  },
1601
- "lighthouse-core/audits/uses-rel-preload.js | crossoriginWarning": {
1601
+ "core/audits/uses-rel-preload.js | crossoriginWarning": {
1602
1602
  "message": "Đã tìm thấy `<link>` tải trước cho \"{preloadURL}\" nhưng trình duyệt không sử dụng thuộc tính này. Hãy kiểm tra để đảm bảo rằng bạn đang sử dụng thuộc tính `crossorigin` đúng cách."
1603
1603
  },
1604
- "lighthouse-core/audits/uses-rel-preload.js | description": {
1604
+ "core/audits/uses-rel-preload.js | description": {
1605
1605
  "message": "Hãy cân nhắc sử dụng `<link rel=preload>` để ưu tiên tìm nạp các tài nguyên đang được yêu cầu vào một thời điểm khác trong quá trình tải trang. [Tìm hiểu thêm](https://web.dev/uses-rel-preload/)."
1606
1606
  },
1607
- "lighthouse-core/audits/uses-rel-preload.js | title": {
1607
+ "core/audits/uses-rel-preload.js | title": {
1608
1608
  "message": "Tải trước các yêu cầu chính"
1609
1609
  },
1610
- "lighthouse-core/audits/valid-source-maps.js | columnMapURL": {
1610
+ "core/audits/valid-source-maps.js | columnMapURL": {
1611
1611
  "message": "URL của bản đồ"
1612
1612
  },
1613
- "lighthouse-core/audits/valid-source-maps.js | description": {
1613
+ "core/audits/valid-source-maps.js | description": {
1614
1614
  "message": "Bản đồ nguồn sẽ chuyển mã đã giảm thiểu thành mã nguồn gốc. Việc này giúp các nhà phát triển gỡ lỗi trong bản phát hành chính thức. Ngoài ra, Lighthouse cũng có thể cung cấp thêm thông tin chi tiết. Hãy cân nhắc triển khai bản đồ nguồn để tận dụng những lợi ích này. [Tìm hiểu thêm](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps)"
1615
1615
  },
1616
- "lighthouse-core/audits/valid-source-maps.js | failureTitle": {
1616
+ "core/audits/valid-source-maps.js | failureTitle": {
1617
1617
  "message": "Thiếu bản đồ nguồn cho JavaScript lớn của bên thứ nhất"
1618
1618
  },
1619
- "lighthouse-core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
1619
+ "core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
1620
1620
  "message": "Tệp JavaScript lớn thiếu bản đồ nguồn"
1621
1621
  },
1622
- "lighthouse-core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
1622
+ "core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
1623
1623
  "message": "{missingItems,plural, =1{Cảnh báo: thiếu 1 mục trong `.sourcesContent`}other{Cảnh báo: thiếu # mục trong `.sourcesContent`}}"
1624
1624
  },
1625
- "lighthouse-core/audits/valid-source-maps.js | title": {
1625
+ "core/audits/valid-source-maps.js | title": {
1626
1626
  "message": "Trang có bản đồ nguồn hợp lệ"
1627
1627
  },
1628
- "lighthouse-core/audits/viewport.js | description": {
1628
+ "core/audits/viewport.js | description": {
1629
1629
  "message": "`<meta name=\"viewport\">` không chỉ tối ưu hóa ứng dụng của bạn cho các kích thước màn hình trên thiết bị di động mà còn ngăn [ độ trễ 300 mili giây xảy ra đối với hoạt động đầu vào của người dùng](https://developers.google.com/web/updates/2013/12/300ms-tap-delay-gone-away). [Tìm hiểu thêm](https://web.dev/viewport/)."
1630
1630
  },
1631
- "lighthouse-core/audits/viewport.js | explanationNoTag": {
1631
+ "core/audits/viewport.js | explanationNoTag": {
1632
1632
  "message": "Không tìm thấy thẻ `<meta name=\"viewport\">`"
1633
1633
  },
1634
- "lighthouse-core/audits/viewport.js | failureTitle": {
1634
+ "core/audits/viewport.js | failureTitle": {
1635
1635
  "message": "Không có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
1636
1636
  },
1637
- "lighthouse-core/audits/viewport.js | title": {
1637
+ "core/audits/viewport.js | title": {
1638
1638
  "message": "Có thẻ `<meta name=\"viewport\">` có `width` hoặc `initial-scale`"
1639
1639
  },
1640
- "lighthouse-core/config/default-config.js | a11yAriaGroupDescription": {
1640
+ "core/config/default-config.js | a11yAriaGroupDescription": {
1641
1641
  "message": "Đây là những cơ hội giúp cải thiện việc sử dụng ARIA trong ứng dụng của bạn, nhờ đó có thể nâng cao trải nghiệm cho người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1642
1642
  },
1643
- "lighthouse-core/config/default-config.js | a11yAriaGroupTitle": {
1643
+ "core/config/default-config.js | a11yAriaGroupTitle": {
1644
1644
  "message": "ARIA"
1645
1645
  },
1646
- "lighthouse-core/config/default-config.js | a11yAudioVideoGroupDescription": {
1646
+ "core/config/default-config.js | a11yAudioVideoGroupDescription": {
1647
1647
  "message": "Đây là các cơ hội để cung cấp nội dung thay thế cho âm thanh và video. Điều này có thể cải thiện trải nghiệm của người dùng khiếm thính hoặc khiếm thị."
1648
1648
  },
1649
- "lighthouse-core/config/default-config.js | a11yAudioVideoGroupTitle": {
1649
+ "core/config/default-config.js | a11yAudioVideoGroupTitle": {
1650
1650
  "message": "Âm thanh và video"
1651
1651
  },
1652
- "lighthouse-core/config/default-config.js | a11yBestPracticesGroupDescription": {
1652
+ "core/config/default-config.js | a11yBestPracticesGroupDescription": {
1653
1653
  "message": "Những mục này nêu bật các phương pháp hay nhất thường dùng cho hỗ trợ tiếp cận"
1654
1654
  },
1655
- "lighthouse-core/config/default-config.js | a11yBestPracticesGroupTitle": {
1655
+ "core/config/default-config.js | a11yBestPracticesGroupTitle": {
1656
1656
  "message": "Những phương pháp hay nhất"
1657
1657
  },
1658
- "lighthouse-core/config/default-config.js | a11yCategoryDescription": {
1658
+ "core/config/default-config.js | a11yCategoryDescription": {
1659
1659
  "message": "Các hoạt động kiểm tra này giúp xác định cơ hội [cải thiện khả năng hỗ trợ tiếp cận của ứng dụng web](https://developers.google.com/web/fundamentals/accessibility). Các hoạt động này chỉ có thể tự động phát hiện một phần vấn đề liên quan đến khả năng hỗ trợ tiếp cận, do đó, bạn nên kiểm tra cả theo cách thủ công."
1660
1660
  },
1661
- "lighthouse-core/config/default-config.js | a11yCategoryManualDescription": {
1661
+ "core/config/default-config.js | a11yCategoryManualDescription": {
1662
1662
  "message": "Các mục này nằm trong vùng không thể sử dụng công cụ kiểm tra tự động. Tìm hiểu thêm trong hướng dẫn của chúng tôi về cách [đánh giá khả năng hỗ trợ tiếp cận](https://developers.google.com/web/fundamentals/accessibility/how-to-review)."
1663
1663
  },
1664
- "lighthouse-core/config/default-config.js | a11yCategoryTitle": {
1664
+ "core/config/default-config.js | a11yCategoryTitle": {
1665
1665
  "message": "Hỗ trợ tiếp cận"
1666
1666
  },
1667
- "lighthouse-core/config/default-config.js | a11yColorContrastGroupDescription": {
1667
+ "core/config/default-config.js | a11yColorContrastGroupDescription": {
1668
1668
  "message": "Đây là các cơ hội giúp cải thiện độ dễ đọc cho nội dung của bạn."
1669
1669
  },
1670
- "lighthouse-core/config/default-config.js | a11yColorContrastGroupTitle": {
1670
+ "core/config/default-config.js | a11yColorContrastGroupTitle": {
1671
1671
  "message": "Độ tương phản"
1672
1672
  },
1673
- "lighthouse-core/config/default-config.js | a11yLanguageGroupDescription": {
1673
+ "core/config/default-config.js | a11yLanguageGroupDescription": {
1674
1674
  "message": "Đây là những cơ hội giúp cải thiện khả năng diễn giải của người dùng đối với nội dung của bạn ở các ngôn ngữ khác nhau."
1675
1675
  },
1676
- "lighthouse-core/config/default-config.js | a11yLanguageGroupTitle": {
1676
+ "core/config/default-config.js | a11yLanguageGroupTitle": {
1677
1677
  "message": "Quốc tế hóa và bản địa hóa"
1678
1678
  },
1679
- "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupDescription": {
1679
+ "core/config/default-config.js | a11yNamesLabelsGroupDescription": {
1680
1680
  "message": "Đây là những cơ hội giúp cải thiện chức năng diễn giải ngữ nghĩa của các biện pháp kiểm soát trong ứng dụng của bạn. Điều này có thể nâng cao trải nghiệm cho những người dùng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1681
1681
  },
1682
- "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupTitle": {
1682
+ "core/config/default-config.js | a11yNamesLabelsGroupTitle": {
1683
1683
  "message": "Tên và nhãn"
1684
1684
  },
1685
- "lighthouse-core/config/default-config.js | a11yNavigationGroupDescription": {
1685
+ "core/config/default-config.js | a11yNavigationGroupDescription": {
1686
1686
  "message": "Đây là các cơ hội để cải thiện khả năng điều hướng bằng bàn phím trong ứng dụng của bạn."
1687
1687
  },
1688
- "lighthouse-core/config/default-config.js | a11yNavigationGroupTitle": {
1688
+ "core/config/default-config.js | a11yNavigationGroupTitle": {
1689
1689
  "message": "Điều hướng"
1690
1690
  },
1691
- "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
1691
+ "core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
1692
1692
  "message": "Đây là những cơ hội để cải thiện trải nghiệm đọc dữ liệu trong bảng hoặc danh sách bằng công nghệ hỗ trợ, chẳng hạn như trình đọc màn hình."
1693
1693
  },
1694
- "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
1694
+ "core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
1695
1695
  "message": "Bảng và danh sách"
1696
1696
  },
1697
- "lighthouse-core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
1697
+ "core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
1698
1698
  "message": "Khả năng tương thích của trình duyệt"
1699
1699
  },
1700
- "lighthouse-core/config/default-config.js | bestPracticesCategoryTitle": {
1700
+ "core/config/default-config.js | bestPracticesCategoryTitle": {
1701
1701
  "message": "Phương pháp hay nhất"
1702
1702
  },
1703
- "lighthouse-core/config/default-config.js | bestPracticesGeneralGroupTitle": {
1703
+ "core/config/default-config.js | bestPracticesGeneralGroupTitle": {
1704
1704
  "message": "Chung"
1705
1705
  },
1706
- "lighthouse-core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
1706
+ "core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
1707
1707
  "message": "Tin cậy và an toàn"
1708
1708
  },
1709
- "lighthouse-core/config/default-config.js | bestPracticesUXGroupTitle": {
1709
+ "core/config/default-config.js | bestPracticesUXGroupTitle": {
1710
1710
  "message": "Trải nghiệm người dùng"
1711
1711
  },
1712
- "lighthouse-core/config/default-config.js | budgetsGroupDescription": {
1712
+ "core/config/default-config.js | budgetsGroupDescription": {
1713
1713
  "message": "Phần Ngân sách hiệu suất đặt ra tiêu chuẩn về hiệu suất của trang web."
1714
1714
  },
1715
- "lighthouse-core/config/default-config.js | budgetsGroupTitle": {
1715
+ "core/config/default-config.js | budgetsGroupTitle": {
1716
1716
  "message": "Ngân sách"
1717
1717
  },
1718
- "lighthouse-core/config/default-config.js | diagnosticsGroupDescription": {
1718
+ "core/config/default-config.js | diagnosticsGroupDescription": {
1719
1719
  "message": "Thông tin bổ sung về hiệu suất của ứng dụng. Những số liệu này không [trực tiếp ảnh hưởng](https://web.dev/performance-scoring/) đến Điểm hiệu suất."
1720
1720
  },
1721
- "lighthouse-core/config/default-config.js | diagnosticsGroupTitle": {
1721
+ "core/config/default-config.js | diagnosticsGroupTitle": {
1722
1722
  "message": "Chẩn đoán"
1723
1723
  },
1724
- "lighthouse-core/config/default-config.js | firstPaintImprovementsGroupDescription": {
1724
+ "core/config/default-config.js | firstPaintImprovementsGroupDescription": {
1725
1725
  "message": "Khía cạnh quan trọng nhất của hiệu suất là tốc độ hiển thị pixel nhanh chóng trên màn hình. Các chỉ số chính: Hình ảnh có nội dung đầu tiên, Hình ảnh có ý nghĩa đầu tiên"
1726
1726
  },
1727
- "lighthouse-core/config/default-config.js | firstPaintImprovementsGroupTitle": {
1727
+ "core/config/default-config.js | firstPaintImprovementsGroupTitle": {
1728
1728
  "message": "Các thao tác để cải thiện thời gian hiển thị hình ảnh đầu tiên"
1729
1729
  },
1730
- "lighthouse-core/config/default-config.js | loadOpportunitiesGroupDescription": {
1730
+ "core/config/default-config.js | loadOpportunitiesGroupDescription": {
1731
1731
  "message": "Những đề xuất này có thể giúp trang của bạn tải nhanh hơn, chứ không [trực tiếp ảnh hưởng](https://web.dev/performance-scoring/) đến Điểm hiệu suất."
1732
1732
  },
1733
- "lighthouse-core/config/default-config.js | loadOpportunitiesGroupTitle": {
1733
+ "core/config/default-config.js | loadOpportunitiesGroupTitle": {
1734
1734
  "message": "Cơ hội"
1735
1735
  },
1736
- "lighthouse-core/config/default-config.js | metricGroupTitle": {
1736
+ "core/config/default-config.js | metricGroupTitle": {
1737
1737
  "message": "Các chỉ số"
1738
1738
  },
1739
- "lighthouse-core/config/default-config.js | overallImprovementsGroupDescription": {
1739
+ "core/config/default-config.js | overallImprovementsGroupDescription": {
1740
1740
  "message": "Cải thiện trải nghiệm tải tổng thể để trang phản hồi và sẵn sàng cho bạn sử dụng sớm nhất có thể. Các số liệu chính: Thời điểm tương tác, Chỉ số tốc độ"
1741
1741
  },
1742
- "lighthouse-core/config/default-config.js | overallImprovementsGroupTitle": {
1742
+ "core/config/default-config.js | overallImprovementsGroupTitle": {
1743
1743
  "message": "Các thao tác để cải thiện hiệu suất tổng thể"
1744
1744
  },
1745
- "lighthouse-core/config/default-config.js | performanceCategoryTitle": {
1745
+ "core/config/default-config.js | performanceCategoryTitle": {
1746
1746
  "message": "Hiệu suất"
1747
1747
  },
1748
- "lighthouse-core/config/default-config.js | pwaCategoryDescription": {
1748
+ "core/config/default-config.js | pwaCategoryDescription": {
1749
1749
  "message": "Những hoạt động kiểm tra này sẽ xác thực các khía cạnh của một Ứng dụng web tiến bộ. [Tìm hiểu thêm](https://developers.google.com/web/progressive-web-apps/checklist)."
1750
1750
  },
1751
- "lighthouse-core/config/default-config.js | pwaCategoryManualDescription": {
1751
+ "core/config/default-config.js | pwaCategoryManualDescription": {
1752
1752
  "message": "Đây là những hoạt động kiểm tra được chỉ định trong [Danh sách kiểm tra ứng dụng web tiến bộ (PWA)](https://developers.google.com/web/progressive-web-apps/checklist) cơ bản, nhưng Lighthouse không tự động kiểm tra các mục này. Các hoạt động kiểm tra này không ảnh hưởng đến điểm số của bạn, nhưng bạn nên xác minh theo cách thủ công."
1753
1753
  },
1754
- "lighthouse-core/config/default-config.js | pwaCategoryTitle": {
1754
+ "core/config/default-config.js | pwaCategoryTitle": {
1755
1755
  "message": "PWA"
1756
1756
  },
1757
- "lighthouse-core/config/default-config.js | pwaInstallableGroupTitle": {
1757
+ "core/config/default-config.js | pwaInstallableGroupTitle": {
1758
1758
  "message": "Có thể cài đặt"
1759
1759
  },
1760
- "lighthouse-core/config/default-config.js | pwaOptimizedGroupTitle": {
1760
+ "core/config/default-config.js | pwaOptimizedGroupTitle": {
1761
1761
  "message": "PWA đã tối ưu hóa"
1762
1762
  },
1763
- "lighthouse-core/config/default-config.js | seoCategoryDescription": {
1763
+ "core/config/default-config.js | seoCategoryDescription": {
1764
1764
  "message": "Các hoạt động kiểm tra này đảm bảo rằng trang của bạn đang tuân theo lời khuyên về tối ưu hóa cho công cụ tìm kiếm cơ bản. Có nhiều yếu tố bổ sung mà Lighthouse không hiển thị ở đây có thể ảnh hưởng đến thứ hạng của bạn trong kết quả tìm kiếm, kể cả hiệu suất của [Các chỉ số quan trọng về trang web](https://web.dev/learn-web-vitals/). [Tìm hiểu thêm](https://support.google.com/webmasters/answer/35769)."
1765
1765
  },
1766
- "lighthouse-core/config/default-config.js | seoCategoryManualDescription": {
1766
+ "core/config/default-config.js | seoCategoryManualDescription": {
1767
1767
  "message": "Chạy những trình xác thực bổ sung này trên trang web của bạn để xem thêm các phương pháp hay nhất dành cho quy trình Tối ưu hóa cho công cụ tìm kiếm (SEO)."
1768
1768
  },
1769
- "lighthouse-core/config/default-config.js | seoCategoryTitle": {
1769
+ "core/config/default-config.js | seoCategoryTitle": {
1770
1770
  "message": "SEO"
1771
1771
  },
1772
- "lighthouse-core/config/default-config.js | seoContentGroupDescription": {
1772
+ "core/config/default-config.js | seoContentGroupDescription": {
1773
1773
  "message": "Định dạng HTML sao cho các trình thu thập thông tin có thể hiểu rõ hơn nội dung trong ứng dụng của bạn."
1774
1774
  },
1775
- "lighthouse-core/config/default-config.js | seoContentGroupTitle": {
1775
+ "core/config/default-config.js | seoContentGroupTitle": {
1776
1776
  "message": "Những phương pháp hay nhất về nội dung"
1777
1777
  },
1778
- "lighthouse-core/config/default-config.js | seoCrawlingGroupDescription": {
1778
+ "core/config/default-config.js | seoCrawlingGroupDescription": {
1779
1779
  "message": "Để xuất hiện trong kết quả tìm kiếm, các trình thu thập thông tin cần quyền truy cập vào ứng dụng của bạn."
1780
1780
  },
1781
- "lighthouse-core/config/default-config.js | seoCrawlingGroupTitle": {
1781
+ "core/config/default-config.js | seoCrawlingGroupTitle": {
1782
1782
  "message": "Thu thập thông tin và lập chỉ mục"
1783
1783
  },
1784
- "lighthouse-core/config/default-config.js | seoMobileGroupDescription": {
1784
+ "core/config/default-config.js | seoMobileGroupDescription": {
1785
1785
  "message": "Đảm bảo các trang của bạn thân thiện với thiết bị di động để người dùng có thể đọc các trang nội dung mà không cần phải chụm hoặc thu phóng. [Tìm hiểu thêm](https://developers.google.com/search/mobile-sites/)."
1786
1786
  },
1787
- "lighthouse-core/config/default-config.js | seoMobileGroupTitle": {
1787
+ "core/config/default-config.js | seoMobileGroupTitle": {
1788
1788
  "message": "Thân thiện với thiết bị di động"
1789
1789
  },
1790
- "lighthouse-core/gather/driver/environment.js | warningSlowHostCpu": {
1790
+ "core/gather/driver/environment.js | warningSlowHostCpu": {
1791
1791
  "message": "Có vẻ như thiết bị được thử nghiệm có CPU chậm hơn mức Lighthouse mong đợi. Điều này có thể ảnh hưởng tiêu cực đến điểm hiệu suất của bạn. Tìm hiểu thêm về cách [hiệu chỉnh một hệ số giảm tốc CPU phù hợp](https://github.com/GoogleChrome/lighthouse/blob/master/docs/throttling.md#cpu-throttling)."
1792
1792
  },
1793
- "lighthouse-core/gather/driver/navigation.js | warningRedirected": {
1793
+ "core/gather/driver/navigation.js | warningRedirected": {
1794
1794
  "message": "Trang có thể không tải như dự kiến do URL kiểm tra của bạn ({requested}) đã được chuyển hướng tới {final}. Hãy thử kiểm tra trực tiếp URL thứ hai."
1795
1795
  },
1796
- "lighthouse-core/gather/driver/navigation.js | warningTimeout": {
1796
+ "core/gather/driver/navigation.js | warningTimeout": {
1797
1797
  "message": "Trang này tải quá chậm nên không hoàn tất được trong giới hạn thời gian. Các kết quả có thể chưa hoàn chỉnh."
1798
1798
  },
1799
- "lighthouse-core/gather/driver/storage.js | warningData": {
1799
+ "core/gather/driver/storage.js | warningData": {
1800
1800
  "message": "{locationCount,plural, =1{Dữ liệu đã lưu trữ có thể ảnh hưởng đến hiệu suất tải ở vị trí này: {locations}. Hãy kiểm tra trang này trong một cửa sổ ẩn danh để ngăn các tài nguyên đó ảnh hưởng đến điểm hiệu suất của bạn.}other{Dữ liệu đã lưu trữ có thể ảnh hưởng đến hiệu suất tải ở các vị trí này: {locations}. Hãy kiểm tra trang này trong một cửa sổ ẩn danh để ngăn các tài nguyên đó ảnh hưởng đến điểm hiệu suất của bạn.}}"
1801
1801
  },
1802
- "lighthouse-core/lib/csp-evaluator.js | allowlistFallback": {
1802
+ "core/lib/csp-evaluator.js | allowlistFallback": {
1803
1803
  "message": "Hãy cân nhắc thêm giao thức URL https: và http: (bị các trình duyệt hỗ trợ \"strict-dynamic\" bỏ qua) để tương thích ngược với những trình duyệt cũ."
1804
1804
  },
1805
- "lighthouse-core/lib/csp-evaluator.js | deprecatedDisownOpener": {
1805
+ "core/lib/csp-evaluator.js | deprecatedDisownOpener": {
1806
1806
  "message": "Kể từ CSP3, disown-opener sẽ không được dùng nữa. Vui lòng sử dụng tiêu đề Cross-Origin-Opener-Policy."
1807
1807
  },
1808
- "lighthouse-core/lib/csp-evaluator.js | deprecatedReferrer": {
1808
+ "core/lib/csp-evaluator.js | deprecatedReferrer": {
1809
1809
  "message": "Kể từ CSP2, referrer sẽ không được dùng nữa. Vui lòng sử dụng tiêu đề Referrer-Policy."
1810
1810
  },
1811
- "lighthouse-core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
1811
+ "core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
1812
1812
  "message": "Kể từ CSP2, reflected-xss sẽ không được dùng nữa. Vui lòng sử dụng tiêu đề X-XSS-Protection."
1813
1813
  },
1814
- "lighthouse-core/lib/csp-evaluator.js | missingBaseUri": {
1814
+ "core/lib/csp-evaluator.js | missingBaseUri": {
1815
1815
  "message": "Nếu thiếu base-uri, các thẻ <base> có thể được chèn vào để đặt URL cơ sở cho mọi URL tương đối (ví dụ: tập lệnh) đến miền do kẻ tấn công kiểm soát. Hãy cân nhắc đặt base-uri thành \"none\" hoặc \"self\"."
1816
1816
  },
1817
- "lighthouse-core/lib/csp-evaluator.js | missingObjectSrc": {
1817
+ "core/lib/csp-evaluator.js | missingObjectSrc": {
1818
1818
  "message": "Khi thiếu object-src, hệ thống sẽ cho phép hành vi chèn các trình bổ trợ thực thi tập lệnh không an toàn. Hãy cân nhắc đặt object-src thành \"none\" nếu bạn có thể."
1819
1819
  },
1820
- "lighthouse-core/lib/csp-evaluator.js | missingScriptSrc": {
1820
+ "core/lib/csp-evaluator.js | missingScriptSrc": {
1821
1821
  "message": "Thiếu lệnh script-src. Khi không có lệnh này, các tập lệnh không an toàn có thể được thực thi."
1822
1822
  },
1823
- "lighthouse-core/lib/csp-evaluator.js | missingSemicolon": {
1823
+ "core/lib/csp-evaluator.js | missingSemicolon": {
1824
1824
  "message": "Bạn quên dấu chấm phẩy ư? {keyword} có vẻ giống lệnh hơn là từ khóa."
1825
1825
  },
1826
- "lighthouse-core/lib/csp-evaluator.js | nonceCharset": {
1826
+ "core/lib/csp-evaluator.js | nonceCharset": {
1827
1827
  "message": "Nonces phải dùng bộ ký tự base64."
1828
1828
  },
1829
- "lighthouse-core/lib/csp-evaluator.js | nonceLength": {
1829
+ "core/lib/csp-evaluator.js | nonceLength": {
1830
1830
  "message": "Nonces phải có độ dài tối thiểu là 8 ký tự."
1831
1831
  },
1832
- "lighthouse-core/lib/csp-evaluator.js | plainUrlScheme": {
1832
+ "core/lib/csp-evaluator.js | plainUrlScheme": {
1833
1833
  "message": "Tránh dùng các giao thức URL thuần túy ({keyword}) trong lệnh này. Giao thức URL thuần túy cho phép thực thi các tập lệnh từ miền không an toàn."
1834
1834
  },
1835
- "lighthouse-core/lib/csp-evaluator.js | plainWildcards": {
1835
+ "core/lib/csp-evaluator.js | plainWildcards": {
1836
1836
  "message": "Tránh dùng các ký tự đại diện thuần túy ({keyword}) trong lệnh này. Các ký tự đại diện thuần túy cho phép thực thi các tập lệnh từ miền không an toàn."
1837
1837
  },
1838
- "lighthouse-core/lib/csp-evaluator.js | reportToOnly": {
1838
+ "core/lib/csp-evaluator.js | reportToOnly": {
1839
1839
  "message": "Đích báo cáo này chỉ được định cấu hình thông qua lệnh report-to. Chỉ các trình duyệt dựa trên Chromium mới hỗ trợ lệnh này. Do đó, bạn nên dùng cả lệnh report-uri."
1840
1840
  },
1841
- "lighthouse-core/lib/csp-evaluator.js | reportingDestinationMissing": {
1841
+ "core/lib/csp-evaluator.js | reportingDestinationMissing": {
1842
1842
  "message": "Không có CSP nào định cấu hình đích báo cáo. Điều này sẽ gây khó khăn cho việc duy trì CSP theo thời gian và giám sát mọi sự cố."
1843
1843
  },
1844
- "lighthouse-core/lib/csp-evaluator.js | strictDynamic": {
1844
+ "core/lib/csp-evaluator.js | strictDynamic": {
1845
1845
  "message": "Danh sách máy chủ cho phép có thể thường xuyên bị bỏ qua. Thay vào đó, hãy cân nhắc dùng nonces hoặc hashes của CSP, cùng với \"strict-dynamic\" nếu cần."
1846
1846
  },
1847
- "lighthouse-core/lib/csp-evaluator.js | unknownDirective": {
1847
+ "core/lib/csp-evaluator.js | unknownDirective": {
1848
1848
  "message": "Lệnh CSP không xác định."
1849
1849
  },
1850
- "lighthouse-core/lib/csp-evaluator.js | unknownKeyword": {
1850
+ "core/lib/csp-evaluator.js | unknownKeyword": {
1851
1851
  "message": "Có vẻ như {keyword} là một từ khóa không hợp lệ."
1852
1852
  },
1853
- "lighthouse-core/lib/csp-evaluator.js | unsafeInline": {
1853
+ "core/lib/csp-evaluator.js | unsafeInline": {
1854
1854
  "message": "\"unsafe-inline\" cho phép thực thi nhiều trình xử lý sự kiện và tập lệnh không an toàn trong trang. Hãy cân nhắc dùng nonces hoặc hashes của CSP để cho phép thực thi từng tập lệnh."
1855
1855
  },
1856
- "lighthouse-core/lib/csp-evaluator.js | unsafeInlineFallback": {
1856
+ "core/lib/csp-evaluator.js | unsafeInlineFallback": {
1857
1857
  "message": "Hãy cân nhắc thêm \"unsafe-inline\" (bị các trình duyệt hỗ trợ nonces/hashes bỏ qua) để tương thích ngược với những trình duyệt cũ."
1858
1858
  },
1859
- "lighthouse-core/lib/i18n/i18n.js | columnBlockingTime": {
1859
+ "core/lib/i18n/i18n.js | columnBlockingTime": {
1860
1860
  "message": "Thời gian chặn chuỗi chính"
1861
1861
  },
1862
- "lighthouse-core/lib/i18n/i18n.js | columnCacheTTL": {
1862
+ "core/lib/i18n/i18n.js | columnCacheTTL": {
1863
1863
  "message": "Thời gian tồn tại (TTL) của bộ nhớ đệm"
1864
1864
  },
1865
- "lighthouse-core/lib/i18n/i18n.js | columnDescription": {
1865
+ "core/lib/i18n/i18n.js | columnDescription": {
1866
1866
  "message": "Nội dung mô tả"
1867
1867
  },
1868
- "lighthouse-core/lib/i18n/i18n.js | columnDuration": {
1868
+ "core/lib/i18n/i18n.js | columnDuration": {
1869
1869
  "message": "Thời lượng"
1870
1870
  },
1871
- "lighthouse-core/lib/i18n/i18n.js | columnElement": {
1871
+ "core/lib/i18n/i18n.js | columnElement": {
1872
1872
  "message": "Phần tử"
1873
1873
  },
1874
- "lighthouse-core/lib/i18n/i18n.js | columnFailingElem": {
1874
+ "core/lib/i18n/i18n.js | columnFailingElem": {
1875
1875
  "message": "Các phần tử không đạt"
1876
1876
  },
1877
- "lighthouse-core/lib/i18n/i18n.js | columnLocation": {
1877
+ "core/lib/i18n/i18n.js | columnLocation": {
1878
1878
  "message": "Vị trí"
1879
1879
  },
1880
- "lighthouse-core/lib/i18n/i18n.js | columnName": {
1880
+ "core/lib/i18n/i18n.js | columnName": {
1881
1881
  "message": "Tên"
1882
1882
  },
1883
- "lighthouse-core/lib/i18n/i18n.js | columnOverBudget": {
1883
+ "core/lib/i18n/i18n.js | columnOverBudget": {
1884
1884
  "message": "Vượt ngân sách"
1885
1885
  },
1886
- "lighthouse-core/lib/i18n/i18n.js | columnRequests": {
1886
+ "core/lib/i18n/i18n.js | columnRequests": {
1887
1887
  "message": "Số yêu cầu"
1888
1888
  },
1889
- "lighthouse-core/lib/i18n/i18n.js | columnResourceSize": {
1889
+ "core/lib/i18n/i18n.js | columnResourceSize": {
1890
1890
  "message": "Kích thước tài nguyên"
1891
1891
  },
1892
- "lighthouse-core/lib/i18n/i18n.js | columnResourceType": {
1892
+ "core/lib/i18n/i18n.js | columnResourceType": {
1893
1893
  "message": "Loại tài nguyên"
1894
1894
  },
1895
- "lighthouse-core/lib/i18n/i18n.js | columnSize": {
1895
+ "core/lib/i18n/i18n.js | columnSize": {
1896
1896
  "message": "Kích thước"
1897
1897
  },
1898
- "lighthouse-core/lib/i18n/i18n.js | columnSource": {
1898
+ "core/lib/i18n/i18n.js | columnSource": {
1899
1899
  "message": "Nguồn"
1900
1900
  },
1901
- "lighthouse-core/lib/i18n/i18n.js | columnStartTime": {
1901
+ "core/lib/i18n/i18n.js | columnStartTime": {
1902
1902
  "message": "Thời gian bắt đầu"
1903
1903
  },
1904
- "lighthouse-core/lib/i18n/i18n.js | columnTimeSpent": {
1904
+ "core/lib/i18n/i18n.js | columnTimeSpent": {
1905
1905
  "message": "Thời gian sử dụng"
1906
1906
  },
1907
- "lighthouse-core/lib/i18n/i18n.js | columnTransferSize": {
1907
+ "core/lib/i18n/i18n.js | columnTransferSize": {
1908
1908
  "message": "Kích thước cần chuyển"
1909
1909
  },
1910
- "lighthouse-core/lib/i18n/i18n.js | columnURL": {
1910
+ "core/lib/i18n/i18n.js | columnURL": {
1911
1911
  "message": "URL"
1912
1912
  },
1913
- "lighthouse-core/lib/i18n/i18n.js | columnWastedBytes": {
1913
+ "core/lib/i18n/i18n.js | columnWastedBytes": {
1914
1914
  "message": "Lượng dữ liệu có thể tiết kiệm được"
1915
1915
  },
1916
- "lighthouse-core/lib/i18n/i18n.js | columnWastedMs": {
1916
+ "core/lib/i18n/i18n.js | columnWastedMs": {
1917
1917
  "message": "Thời gian có thể tiết kiệm được"
1918
1918
  },
1919
- "lighthouse-core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
1919
+ "core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
1920
1920
  "message": "Cumulative Layout Shift"
1921
1921
  },
1922
- "lighthouse-core/lib/i18n/i18n.js | displayValueByteSavings": {
1922
+ "core/lib/i18n/i18n.js | displayValueByteSavings": {
1923
1923
  "message": "Lượng dữ liệu có thể tiết kiệm được là {wastedBytes, number, bytes} KiB"
1924
1924
  },
1925
- "lighthouse-core/lib/i18n/i18n.js | displayValueElementsFound": {
1925
+ "core/lib/i18n/i18n.js | displayValueElementsFound": {
1926
1926
  "message": "{nodeCount,plural, =1{Tìm thấy 1 phần tử}other{Tìm thấy # phần tử}}"
1927
1927
  },
1928
- "lighthouse-core/lib/i18n/i18n.js | displayValueMsSavings": {
1928
+ "core/lib/i18n/i18n.js | displayValueMsSavings": {
1929
1929
  "message": "Thời gian có thể tiết kiệm được là {wastedMs, number, milliseconds} mili giây"
1930
1930
  },
1931
- "lighthouse-core/lib/i18n/i18n.js | documentResourceType": {
1931
+ "core/lib/i18n/i18n.js | documentResourceType": {
1932
1932
  "message": "Tài liệu"
1933
1933
  },
1934
- "lighthouse-core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
1934
+ "core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
1935
1935
  "message": "First Contentful Paint"
1936
1936
  },
1937
- "lighthouse-core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
1937
+ "core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
1938
1938
  "message": "Hình ảnh có ý nghĩa đầu tiên"
1939
1939
  },
1940
- "lighthouse-core/lib/i18n/i18n.js | fontResourceType": {
1940
+ "core/lib/i18n/i18n.js | fontResourceType": {
1941
1941
  "message": "Phông chữ"
1942
1942
  },
1943
- "lighthouse-core/lib/i18n/i18n.js | imageResourceType": {
1943
+ "core/lib/i18n/i18n.js | imageResourceType": {
1944
1944
  "message": "Hình ảnh"
1945
1945
  },
1946
- "lighthouse-core/lib/i18n/i18n.js | interactiveMetric": {
1946
+ "core/lib/i18n/i18n.js | interactiveMetric": {
1947
1947
  "message": "Time to Interactive"
1948
1948
  },
1949
- "lighthouse-core/lib/i18n/i18n.js | itemSeverityHigh": {
1949
+ "core/lib/i18n/i18n.js | itemSeverityHigh": {
1950
1950
  "message": "Cao"
1951
1951
  },
1952
- "lighthouse-core/lib/i18n/i18n.js | itemSeverityLow": {
1952
+ "core/lib/i18n/i18n.js | itemSeverityLow": {
1953
1953
  "message": "Thấp"
1954
1954
  },
1955
- "lighthouse-core/lib/i18n/i18n.js | itemSeverityMedium": {
1955
+ "core/lib/i18n/i18n.js | itemSeverityMedium": {
1956
1956
  "message": "Trung bình"
1957
1957
  },
1958
- "lighthouse-core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
1958
+ "core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
1959
1959
  "message": "Largest Contentful Paint"
1960
1960
  },
1961
- "lighthouse-core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
1961
+ "core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
1962
1962
  "message": "Thời gian phản hồi lần tương tác đầu tiên tối đa có thể"
1963
1963
  },
1964
- "lighthouse-core/lib/i18n/i18n.js | mediaResourceType": {
1964
+ "core/lib/i18n/i18n.js | mediaResourceType": {
1965
1965
  "message": "Nội dung nghe nhìn"
1966
1966
  },
1967
- "lighthouse-core/lib/i18n/i18n.js | ms": {
1967
+ "core/lib/i18n/i18n.js | ms": {
1968
1968
  "message": "{timeInMs, number, milliseconds} mili giây"
1969
1969
  },
1970
- "lighthouse-core/lib/i18n/i18n.js | otherResourceType": {
1970
+ "core/lib/i18n/i18n.js | otherResourceType": {
1971
1971
  "message": "Khác"
1972
1972
  },
1973
- "lighthouse-core/lib/i18n/i18n.js | otherResourcesLabel": {
1973
+ "core/lib/i18n/i18n.js | otherResourcesLabel": {
1974
1974
  "message": "Tài nguyên khác"
1975
1975
  },
1976
- "lighthouse-core/lib/i18n/i18n.js | scriptResourceType": {
1976
+ "core/lib/i18n/i18n.js | scriptResourceType": {
1977
1977
  "message": "Tập lệnh"
1978
1978
  },
1979
- "lighthouse-core/lib/i18n/i18n.js | seconds": {
1979
+ "core/lib/i18n/i18n.js | seconds": {
1980
1980
  "message": "{timeInMs, number, seconds} giây"
1981
1981
  },
1982
- "lighthouse-core/lib/i18n/i18n.js | speedIndexMetric": {
1982
+ "core/lib/i18n/i18n.js | speedIndexMetric": {
1983
1983
  "message": "Speed Index"
1984
1984
  },
1985
- "lighthouse-core/lib/i18n/i18n.js | stylesheetResourceType": {
1985
+ "core/lib/i18n/i18n.js | stylesheetResourceType": {
1986
1986
  "message": "Biểu định kiểu"
1987
1987
  },
1988
- "lighthouse-core/lib/i18n/i18n.js | thirdPartyResourceType": {
1988
+ "core/lib/i18n/i18n.js | thirdPartyResourceType": {
1989
1989
  "message": "Bên thứ ba"
1990
1990
  },
1991
- "lighthouse-core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
1991
+ "core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
1992
1992
  "message": "Total Blocking Time"
1993
1993
  },
1994
- "lighthouse-core/lib/i18n/i18n.js | totalResourceType": {
1994
+ "core/lib/i18n/i18n.js | totalResourceType": {
1995
1995
  "message": "Tổng"
1996
1996
  },
1997
- "lighthouse-core/lib/lh-error.js | badTraceRecording": {
1997
+ "core/lib/lh-error.js | badTraceRecording": {
1998
1998
  "message": "Đã xảy ra lỗi khi ghi dấu vết quá trình tải trang của bạn. Vui lòng chạy lại Lighthouse. ({errorCode})"
1999
1999
  },
2000
- "lighthouse-core/lib/lh-error.js | criTimeout": {
2000
+ "core/lib/lh-error.js | criTimeout": {
2001
2001
  "message": "Đã hết thời gian chờ kết nối với Giao thức của trình gỡ lỗi ban đầu ban đầu."
2002
2002
  },
2003
- "lighthouse-core/lib/lh-error.js | didntCollectScreenshots": {
2003
+ "core/lib/lh-error.js | didntCollectScreenshots": {
2004
2004
  "message": "Chrome không thu thập được bất kỳ ảnh chụp màn hình nào trong quá trình tải trang. Hãy đảm bảo trang có nội dung hiển thị, sau đó thử chạy lại Lighthouse. ({errorCode})"
2005
2005
  },
2006
- "lighthouse-core/lib/lh-error.js | dnsFailure": {
2006
+ "core/lib/lh-error.js | dnsFailure": {
2007
2007
  "message": "Máy chủ DNS không thể phân giải miền đã cung cấp."
2008
2008
  },
2009
- "lighthouse-core/lib/lh-error.js | erroredRequiredArtifact": {
2009
+ "core/lib/lh-error.js | erroredRequiredArtifact": {
2010
2010
  "message": "Trình thu thập {artifactName} bắt buộc đã gặp lỗi: {errorMessage}"
2011
2011
  },
2012
- "lighthouse-core/lib/lh-error.js | internalChromeError": {
2012
+ "core/lib/lh-error.js | internalChromeError": {
2013
2013
  "message": "Đã xảy ra lỗi Chrome nội bộ. Vui lòng khởi động lại Chrome và thử chạy lại Lighthouse."
2014
2014
  },
2015
- "lighthouse-core/lib/lh-error.js | missingRequiredArtifact": {
2015
+ "core/lib/lh-error.js | missingRequiredArtifact": {
2016
2016
  "message": "Trình thu thập {artifactName} bắt buộc không chạy."
2017
2017
  },
2018
- "lighthouse-core/lib/lh-error.js | noFcp": {
2018
+ "core/lib/lh-error.js | noFcp": {
2019
2019
  "message": "Trang này chưa có nội dung nào. Hãy đảm bảo bạn hiển thị cửa sổ trình duyệt ở nền trước trong khi tải rồi thử lại. ({errorCode})"
2020
2020
  },
2021
- "lighthouse-core/lib/lh-error.js | notHtml": {
2021
+ "core/lib/lh-error.js | notHtml": {
2022
2022
  "message": "Trang đã cung cấp không phải là HTML (được phân phối ở dạng loại MIME {mimeType})."
2023
2023
  },
2024
- "lighthouse-core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
2024
+ "core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
2025
2025
  "message": "Phiên bản Chrome này đã quá cũ nên không hỗ trợ \"{featureName}\". Hãy sử dụng phiên bản mới hơn để xem kết quả đầy đủ."
2026
2026
  },
2027
- "lighthouse-core/lib/lh-error.js | pageLoadFailed": {
2027
+ "core/lib/lh-error.js | pageLoadFailed": {
2028
2028
  "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách."
2029
2029
  },
2030
- "lighthouse-core/lib/lh-error.js | pageLoadFailedHung": {
2030
+ "core/lib/lh-error.js | pageLoadFailedHung": {
2031
2031
  "message": "Lighthouse không thể tải URL bạn yêu cầu một cách đáng tin cậy vì trang này đã ngừng phản hồi."
2032
2032
  },
2033
- "lighthouse-core/lib/lh-error.js | pageLoadFailedInsecure": {
2033
+ "core/lib/lh-error.js | pageLoadFailedInsecure": {
2034
2034
  "message": "URL bạn cung cấp không có chứng chỉ bảo mật hợp lệ. {securityMessages}"
2035
2035
  },
2036
- "lighthouse-core/lib/lh-error.js | pageLoadFailedInterstitial": {
2036
+ "core/lib/lh-error.js | pageLoadFailedInterstitial": {
2037
2037
  "message": "Chrome đã ngăn tải trang có quảng cáo xen kẽ. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách."
2038
2038
  },
2039
- "lighthouse-core/lib/lh-error.js | pageLoadFailedWithDetails": {
2039
+ "core/lib/lh-error.js | pageLoadFailedWithDetails": {
2040
2040
  "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách. (Chi tiết: {errorDetails})"
2041
2041
  },
2042
- "lighthouse-core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
2042
+ "core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
2043
2043
  "message": "Lighthouse không thể tải trang bạn đã yêu cầu một cách đáng tin cậy. Hãy đảm bảo bạn đang kiểm tra URL chính xác và máy chủ đang phản hồi tất cả các yêu cầu đúng cách. (Mã trạng thái: {statusCode})"
2044
2044
  },
2045
- "lighthouse-core/lib/lh-error.js | pageLoadTookTooLong": {
2045
+ "core/lib/lh-error.js | pageLoadTookTooLong": {
2046
2046
  "message": "Thời gian tải trang quá lâu. Hãy thực hiện các khuyến nghị trong báo cáo để giảm thời gian tải trang rồi thử chạy lại Lighthouse. ({errorCode})"
2047
2047
  },
2048
- "lighthouse-core/lib/lh-error.js | protocolTimeout": {
2048
+ "core/lib/lh-error.js | protocolTimeout": {
2049
2049
  "message": "Quá trình chờ phản hồi của giao thức DevTools đã vượt quá thời gian phân bổ. (Phương thức: {protocolMethod})"
2050
2050
  },
2051
- "lighthouse-core/lib/lh-error.js | requestContentTimeout": {
2051
+ "core/lib/lh-error.js | requestContentTimeout": {
2052
2052
  "message": "Quá trình tìm nạp nội dung tài nguyên đã vượt quá thời gian phân bổ"
2053
2053
  },
2054
- "lighthouse-core/lib/lh-error.js | urlInvalid": {
2054
+ "core/lib/lh-error.js | urlInvalid": {
2055
2055
  "message": "URL bạn cung cấp có vẻ không hợp lệ."
2056
2056
  },
2057
2057
  "node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {