{
  "core/audits/accessibility/accesskeys.js | description": {
    "message": "Las claves de acceso permiten a los usuarios dirigirse rápidamente a una parte concreta de la página. Para facilitar una navegación correcta, las claves de acceso deben ser únicas. [Más información sobre las claves de acceso](https://dequeuniversity.com/rules/axe/4.11/accesskeys)"
  },
  "core/audits/accessibility/accesskeys.js | failureTitle": {
    "message": "Los valores de `[accesskey]` no son únicos"
  },
  "core/audits/accessibility/accesskeys.js | title": {
    "message": "Los valores de `[accesskey]` son únicos"
  },
  "core/audits/accessibility/aria-allowed-attr.js | description": {
    "message": "Cada `role` de ARIA admite un subconjunto determinado de atributos `aria-*`. Si no coinciden, los atributos `aria-*` se invalidarán. [Consulta cómo asociar atributos ARIA a sus funciones](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)"
  },
  "core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
    "message": "Los atributos `[aria-*]` no se corresponden con sus funciones"
  },
  "core/audits/accessibility/aria-allowed-attr.js | title": {
    "message": "Los atributos `[aria-*]` coinciden con sus funciones"
  },
  "core/audits/accessibility/aria-allowed-role.js | description": {
    "message": "Hay muchos elementos HTML a los que solo se les pueden asignar determinados roles de ARIA. Usar roles de ARIA si no están permitidos puede afectar a la accesibilidad de la página web. [Más información sobre los roles de ARIA](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)"
  },
  "core/audits/accessibility/aria-allowed-role.js | failureTitle": {
    "message": "Usa roles de ARIA en elementos no compatibles"
  },
  "core/audits/accessibility/aria-allowed-role.js | title": {
    "message": "Usa roles de ARIA solo en elementos compatibles"
  },
  "core/audits/accessibility/aria-command-name.js | description": {
    "message": "Si un elemento no tiene un nombre accesible, los lectores de pantalla lo leen diciendo un nombre genérico, lo que hace que el elemento no resulte útil a los usuarios que necesitan lectores de pantalla. [Consulta cómo hacer que los elementos de comando sean más accesibles](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)"
  },
  "core/audits/accessibility/aria-command-name.js | failureTitle": {
    "message": "Los elementos `button`, `link` y `menuitem` no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-command-name.js | title": {
    "message": "Los elementos `button`, `link` y `menuitem` tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-conditional-attr.js | description": {
    "message": "Algunos atributos de ARIA solo se permiten en un elemento si se cumplen ciertas condiciones. [Más información sobre los atributos ARIA condicionales](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)"
  },
  "core/audits/accessibility/aria-conditional-attr.js | failureTitle": {
    "message": "Los atributos de ARIA no se usan como se especifica para la función del elemento"
  },
  "core/audits/accessibility/aria-conditional-attr.js | title": {
    "message": "Los atributos ARIA se usan como se especifica para la función del elemento"
  },
  "core/audits/accessibility/aria-deprecated-role.js | description": {
    "message": "Es posible que la tecnología asistencial no procese correctamente los roles de ARIA obsoletos. [Más información sobre los roles de ARIA obsoletos](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)"
  },
  "core/audits/accessibility/aria-deprecated-role.js | failureTitle": {
    "message": "Se han usado roles de ARIA obsoletos"
  },
  "core/audits/accessibility/aria-deprecated-role.js | title": {
    "message": "No se han usado roles de ARIA obsoletos"
  },
  "core/audits/accessibility/aria-dialog-name.js | description": {
    "message": "Los elementos del cuadro de diálogo de ARIA sin nombres accesibles pueden impedir que los usuarios de lectores de pantalla distingan la finalidad de esos elementos. [Consulta cómo hacer que los elementos del cuadro de diálogo de ARIA sean más accesibles](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."
  },
  "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
    "message": "Los elementos con `role=\"dialog\"` o `role=\"alertdialog\"` no tienen nombres accesibles."
  },
  "core/audits/accessibility/aria-dialog-name.js | title": {
    "message": "Los elementos con `role=\"dialog\"` o `role=\"alertdialog\"` tienen nombres accesibles."
  },
  "core/audits/accessibility/aria-hidden-body.js | description": {
    "message": "Las tecnologías asistenciales, como los lectores de pantalla, funcionan de forma inestable cuando se establece `aria-hidden=\"true\"` en el documento `<body>`. [Consulta cómo afecta `aria-hidden` al cuerpo del documento](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)"
  },
  "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
    "message": "`[aria-hidden=\"true\"]` se encuentra en el documento `<body>`"
  },
  "core/audits/accessibility/aria-hidden-body.js | title": {
    "message": "`[aria-hidden=\"true\"]` no se encuentra en el documento `<body>`"
  },
  "core/audits/accessibility/aria-hidden-focus.js | description": {
    "message": "Los elementos inferiores enfocables que están dentro de un elemento `[aria-hidden=\"true\"]` evitan que esos elementos interactivos estén disponibles para los usuarios de tecnologías asistenciales, como lectores de pantalla. [Consulta cómo `aria-hidden` afecta a los elementos enfocables](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus)."
  },
  "core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
    "message": "Los elementos `[aria-hidden=\"true\"]` contienen elementos descendientes seleccionables"
  },
  "core/audits/accessibility/aria-hidden-focus.js | title": {
    "message": "Los elementos `[aria-hidden=\"true\"]` no contienen ningún elemento inferior seleccionable"
  },
  "core/audits/accessibility/aria-input-field-name.js | description": {
    "message": "Si un campo de entrada no tiene un nombre accesible, los lectores de pantalla lo leerán en voz alta con un nombre genérico, lo que hace que el campo no resulte útil a los usuarios que necesitan lectores de pantalla. [Más información sobre las etiquetas de campos de entrada](https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name)"
  },
  "core/audits/accessibility/aria-input-field-name.js | failureTitle": {
    "message": "Los campos de entrada de ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-input-field-name.js | title": {
    "message": "Los campos de entrada ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-meter-name.js | description": {
    "message": "Si un elemento medidor no tiene un nombre accesible, los lectores de pantalla lo leen diciendo un nombre genérico, lo que hace que no resulte útil para los usuarios que necesitan lectores de pantalla. [Consulta cómo asignar un nombre a los elementos `meter`](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)."
  },
  "core/audits/accessibility/aria-meter-name.js | failureTitle": {
    "message": "Los elementos `meter` de ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-meter-name.js | title": {
    "message": "Los elementos `meter` de ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-progressbar-name.js | description": {
    "message": "Si un elemento `progressbar` no tiene un nombre accesible, los lectores de pantalla lo leen diciendo un nombre genérico, lo que hace que no resulte útil a los usuarios que necesitan lectores de pantalla. [Consulta cómo etiquetar elementos `progressbar`](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)"
  },
  "core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
    "message": "Los elementos `progressbar` de ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-progressbar-name.js | title": {
    "message": "Los elementos `progressbar` de ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-prohibited-attr.js | description": {
    "message": "El uso de atributos ARIA en funciones donde están prohibidos puede impedir que se comunique información importante a los usuarios de tecnologías asistenciales. [Más información sobre los roles de ARIA prohibidos](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)"
  },
  "core/audits/accessibility/aria-prohibited-attr.js | failureTitle": {
    "message": "Los elementos usan atributos ARIA prohibidos"
  },
  "core/audits/accessibility/aria-prohibited-attr.js | title": {
    "message": "Los elementos solo usan atributos ARIA permitidos"
  },
  "core/audits/accessibility/aria-required-attr.js | description": {
    "message": "Algunas funciones de ARIA incluyen atributos obligatorios que describen el estado del elemento a los lectores de pantalla. [Más información sobre las funciones y los atributos obligatorios](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)"
  },
  "core/audits/accessibility/aria-required-attr.js | failureTitle": {
    "message": "Los elementos `[role]` no incluyen todos los atributos `[aria-*]` necesarios"
  },
  "core/audits/accessibility/aria-required-attr.js | title": {
    "message": "Todos los elementos `[role]` tienen los atributos `[aria-*]` obligatorios"
  },
  "core/audits/accessibility/aria-required-children.js | description": {
    "message": "Algunas funciones principales de ARIA deben contener funciones secundarias específicas para llevar a cabo las funciones de accesibilidad correspondientes. [Más información sobre las funciones y los elementos secundarios obligatorios](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)"
  },
  "core/audits/accessibility/aria-required-children.js | failureTitle": {
    "message": "A los elementos con un `[role]` ARIA que requieren que los elementos secundarios contengan un `[role]` específico les faltan algunos o todos los elementos secundarios necesarios."
  },
  "core/audits/accessibility/aria-required-children.js | title": {
    "message": "Los elementos con un `[role]` ARIA que requieren que los elementos secundarios contengan un `[role]` específico tienen todos los elementos secundarios necesarios."
  },
  "core/audits/accessibility/aria-required-parent.js | description": {
    "message": "Algunas funciones secundarias de ARIA se deben incluir dentro de funciones principales concretas para poder llevar a cabo las funciones de accesibilidad correspondientes. [Más información sobre las funciones de ARIA y el elemento superior obligatorio](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)"
  },
  "core/audits/accessibility/aria-required-parent.js | failureTitle": {
    "message": "Los atributos `[role]` no están incluidos dentro de los elementos principales obligatorios"
  },
  "core/audits/accessibility/aria-required-parent.js | title": {
    "message": "Los atributos `[role]` están incluidos en los elementos principales correspondientes"
  },
  "core/audits/accessibility/aria-roles.js | description": {
    "message": "Las funciones de ARIA deben tener valores válidos para realizar las funciones de accesibilidad correspondientes. [Más información sobre las funciones de ARIA válidas](https://dequeuniversity.com/rules/axe/4.11/aria-roles)"
  },
  "core/audits/accessibility/aria-roles.js | failureTitle": {
    "message": "Los valores de `[role]` no son válidos"
  },
  "core/audits/accessibility/aria-roles.js | title": {
    "message": "Los valores de `[role]` son válidos"
  },
  "core/audits/accessibility/aria-text.js | description": {
    "message": "Añadir `role=text` alrededor de un nodo de texto dividido por etiquetas permite que VoiceOver lo trate como una sola frase, pero no se anunciarán los descendientes enfocables de ese elemento. [Obtén más información sobre el atributo `role=text`](https://dequeuniversity.com/rules/axe/4.11/aria-text)."
  },
  "core/audits/accessibility/aria-text.js | failureTitle": {
    "message": "Los elementos con el atributo `role=text` tienen descendientes enfocables."
  },
  "core/audits/accessibility/aria-text.js | title": {
    "message": "Los elementos con el atributo `role=text` no tienen descendientes enfocables."
  },
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
    "message": "Si un campo de interruptor no tiene un nombre accesible, los lectores de pantalla lo leerán en voz alta con un nombre genérico, lo que hace que el campo no resulte útil a los usuarios que necesitan lectores de pantalla. [Más información sobre los campos de interruptores](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)"
  },
  "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
    "message": "Los campos de interruptores ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-toggle-field-name.js | title": {
    "message": "Los campos de interruptores ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-tooltip-name.js | description": {
    "message": "Si un elemento de descripción emergente no tiene un nombre accesible, los lectores de pantalla lo leen diciendo un nombre genérico, lo que hace que no resulte útil para los usuarios que necesitan lectores de pantalla. [Consulta cómo asignar un nombre a los elementos `tooltip`](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)."
  },
  "core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
    "message": "Los elementos `tooltip` de ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-tooltip-name.js | title": {
    "message": "Los elementos `tooltip` de ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-treeitem-name.js | description": {
    "message": "Si un elemento `treeitem` no tiene un nombre accesible, los lectores de pantalla lo leen diciendo un nombre genérico, lo que hace que no resulte útil a los usuarios que necesitan lectores de pantalla. [Más información sobre cómo etiquetar elementos `treeitem`](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)"
  },
  "core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
    "message": "Los elementos `treeitem` de ARIA no tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-treeitem-name.js | title": {
    "message": "Los elementos `treeitem` de ARIA tienen nombres accesibles"
  },
  "core/audits/accessibility/aria-valid-attr-value.js | description": {
    "message": "Las tecnologías asistenciales, como los lectores de pantalla, no pueden interpretar los atributos ARIA cuyos valores no sean válidos. [Más información sobre los valores válidos de los atributos ARIA](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)"
  },
  "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
    "message": "Los atributos `[aria-*]` no tienen valores válidos"
  },
  "core/audits/accessibility/aria-valid-attr-value.js | title": {
    "message": "Los atributos `[aria-*]` tienen valores válidos"
  },
  "core/audits/accessibility/aria-valid-attr.js | description": {
    "message": "Las tecnologías asistenciales, como los lectores de pantalla, no pueden interpretar los atributos ARIA con nombres no válidos. [Más información sobre los atributos ARIA válidos](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)"
  },
  "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
    "message": "Los atributos `[aria-*]` no son válidos o no están bien escritos"
  },
  "core/audits/accessibility/aria-valid-attr.js | title": {
    "message": "Los atributos `[aria-*]` son válidos y están bien escritos"
  },
  "core/audits/accessibility/axe-audit.js | failingElementsHeader": {
    "message": "Elementos con errores"
  },
  "core/audits/accessibility/button-name.js | description": {
    "message": "Si un botón no tiene un nombre accesible, los lectores de pantalla lo leerán en voz alta como \"botón\", lo que hace que el botón no resulte útil a los usuarios que necesitan lectores de pantalla. [Consulta cómo hacer que los botones sean más accesibles](https://dequeuniversity.com/rules/axe/4.11/button-name)"
  },
  "core/audits/accessibility/button-name.js | failureTitle": {
    "message": "Los botones no tienen nombres accesibles"
  },
  "core/audits/accessibility/button-name.js | title": {
    "message": "Los botones tienen nombres accesibles"
  },
  "core/audits/accessibility/bypass.js | description": {
    "message": "Incluir maneras de omitir el contenido repetitivo permite a los usuarios con teclado navegar por la página de forma más eficaz. [Más información sobre cómo omitir bloques](https://dequeuniversity.com/rules/axe/4.11/bypass)"
  },
  "core/audits/accessibility/bypass.js | failureTitle": {
    "message": "La página no contiene ningún encabezado, enlace de omisión ni región de punto de referencia"
  },
  "core/audits/accessibility/bypass.js | title": {
    "message": "La página contiene un encabezado, un enlace de omisión o una región de punto de referencia"
  },
  "core/audits/accessibility/color-contrast.js | description": {
    "message": "Los textos con poco contraste resultan difíciles o imposibles de leer para muchos usuarios. [Consulta cómo crear suficiente contraste de color](https://dequeuniversity.com/rules/axe/4.11/color-contrast)"
  },
  "core/audits/accessibility/color-contrast.js | failureTitle": {
    "message": "Los colores de fondo y de primer plano no tienen una relación de contraste adecuada."
  },
  "core/audits/accessibility/color-contrast.js | title": {
    "message": "Los colores de fondo y de primer plano tienen una relación de contraste adecuada"
  },
  "core/audits/accessibility/definition-list.js | description": {
    "message": "Si las listas de definiciones no están bien marcadas, es posible que los lectores de pantalla las interpreten de forma confusa o imprecisa. [Consulta cómo estructurar las listas de definición correctamente](https://dequeuniversity.com/rules/axe/4.11/definition-list)"
  },
  "core/audits/accessibility/definition-list.js | failureTitle": {
    "message": "Los `<dl>` no contienen únicamente grupos de `<dt>` y `<dd>` ordenados correctamente o elementos `<script>`, `<template>` o `<div>`."
  },
  "core/audits/accessibility/definition-list.js | title": {
    "message": "Los elementos `<dl>` contienen únicamente grupos de `<dt>` y `<dd>` o elementos `<script>`, `<template>` o `<div>` ordenados correctamente."
  },
  "core/audits/accessibility/dlitem.js | description": {
    "message": "Los elementos de la lista de definiciones (`<dt>` y `<dd>`) deben estar incluidos en un elemento `<dl>` superior para asegurarte de que los lectores de pantalla puedan leerlos en voz alta correctamente. [Consulta cómo estructurar las listas de definición correctamente](https://dequeuniversity.com/rules/axe/4.11/dlitem)"
  },
  "core/audits/accessibility/dlitem.js | failureTitle": {
    "message": "Los elementos de la lista de definiciones están incluidos dentro de elementos `<dl>`"
  },
  "core/audits/accessibility/dlitem.js | title": {
    "message": "Los elementos de la lista de definiciones están incluidos dentro de elementos `<dl>`"
  },
  "core/audits/accessibility/document-title.js | description": {
    "message": "Los títulos proporcionan una idea general sobre la página a los usuarios de lectores de pantalla. Además, los usuarios de buscadores se basan principalmente en los títulos para determinar si una página es relevante para su búsqueda o no. [Más información sobre los títulos de documentos](https://dequeuniversity.com/rules/axe/4.11/document-title)"
  },
  "core/audits/accessibility/document-title.js | failureTitle": {
    "message": "El documento no contiene un elemento `<title>`"
  },
  "core/audits/accessibility/document-title.js | title": {
    "message": "El documento tiene un elemento `<title>`"
  },
  "core/audits/accessibility/duplicate-id-aria.js | description": {
    "message": "El valor de un ID de ARIA debe ser único para evitar que las tecnologías asistenciales omitan otras instancias. [Consulta cómo corregir IDs de ARIA duplicados](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)"
  },
  "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
    "message": "Los ID de ARIA no son únicos"
  },
  "core/audits/accessibility/duplicate-id-aria.js | title": {
    "message": "Los ID de ARIA son únicos"
  },
  "core/audits/accessibility/empty-heading.js | description": {
    "message": "Un <heading> sin contenido o con texto inaccesible impide que los usuarios de lectores de pantalla accedan a la información de la estructura de la página. [Obtén más información sobre los <heading>](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."
  },
  "core/audits/accessibility/empty-heading.js | failureTitle": {
    "message": "Los elementos <heading> no incluyen contenido."
  },
  "core/audits/accessibility/empty-heading.js | title": {
    "message": "Todos los elementos <heading> incluyen contenido."
  },
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
    "message": "Las tecnologías asistenciales, como los lectores de pantalla, pueden leer de forma confusa los campos de formulario que tienen varias etiquetas, ya que pueden usar la primera etiqueta, la última o todas. [Consulta cómo utilizar las etiquetas de formularios](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)"
  },
  "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
    "message": "Los campos de formulario tienen varias etiquetas"
  },
  "core/audits/accessibility/form-field-multiple-labels.js | title": {
    "message": "Ningún campo de formulario tiene varias etiquetas"
  },
  "core/audits/accessibility/frame-title.js | description": {
    "message": "Los usuarios de lectores de pantalla confían en que los títulos describan el contenido de los marcos. [Más información sobre los títulos de los marcos](https://dequeuniversity.com/rules/axe/4.11/frame-title)"
  },
  "core/audits/accessibility/frame-title.js | failureTitle": {
    "message": "Los elementos `<frame>` o `<iframe>` no tienen título"
  },
  "core/audits/accessibility/frame-title.js | title": {
    "message": "Los elementos `<frame>` o `<iframe>` tienen un título"
  },
  "core/audits/accessibility/heading-order.js | description": {
    "message": "Los títulos ordenados correctamente que no saltan niveles transmiten la estructura semántica de la página, lo que facilita la navegación y la comprensión para los usuarios que usan tecnologías asistenciales. [Más información sobre el orden de los encabezados](https://dequeuniversity.com/rules/axe/4.11/heading-order)"
  },
  "core/audits/accessibility/heading-order.js | failureTitle": {
    "message": "Los elementos de encabezado no aparecen en orden secuencial descendente"
  },
  "core/audits/accessibility/heading-order.js | title": {
    "message": "Los elementos de encabezado aparecen en orden secuencial descendente"
  },
  "core/audits/accessibility/html-has-lang.js | description": {
    "message": "Si no se especifica ningún atributo `lang` en una página, el lector de pantalla asumirá que la página está en el idioma predeterminado que el usuario eligió al configurarlo. Si el idioma de la página es diferente del predeterminado, es posible que el lector de pantalla no lea correctamente el texto de la página. [Más información sobre el atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)"
  },
  "core/audits/accessibility/html-has-lang.js | failureTitle": {
    "message": "El elemento `<html>` no tiene un atributo `[lang]`"
  },
  "core/audits/accessibility/html-has-lang.js | title": {
    "message": "El elemento `<html>` tiene un atributo `[lang]`"
  },
  "core/audits/accessibility/html-lang-valid.js | description": {
    "message": "Especificar un [idioma BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) válido permite a los lectores de pantalla leer el texto correctamente en voz alta. [Consulta cómo utilizar el atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)"
  },
  "core/audits/accessibility/html-lang-valid.js | failureTitle": {
    "message": "El valor del atributo `[lang]` del elemento `<html>` no es válido."
  },
  "core/audits/accessibility/html-lang-valid.js | title": {
    "message": "El atributo `[lang]` del elemento `<html>` tiene un valor válido"
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | description": {
    "message": "Si la página web no indica un idioma de forma coherente, es posible que el lector de pantalla no lea correctamente el texto de la página. [Más información sobre el atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)"
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | failureTitle": {
    "message": "El elemento `<html>` no tiene un atributo `[xml:lang]` con el mismo idioma base que el atributo `[lang]`."
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | title": {
    "message": "El elemento `<html>` tiene un atributo `[xml:lang]` con el mismo idioma base que el atributo `[lang]`."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | description": {
    "message": "Los enlaces con el mismo destino deben tener la misma descripción para que los usuarios puedan entender su finalidad y decidir si quieren seguirlo. [Obtén más información sobre los enlaces idénticos](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
    "message": "Los enlaces idénticos no tienen la misma finalidad."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | title": {
    "message": "Los enlaces idénticos tienen la misma finalidad."
  },
  "core/audits/accessibility/image-alt.js | description": {
    "message": "Los elementos informativos deberían incluir textos alternativos cortos y descriptivos. Los elementos decorativos se pueden omitir usando un atributo \"alt\" vacío. [Más información sobre el atributo `alt`](https://dequeuniversity.com/rules/axe/4.11/image-alt)"
  },
  "core/audits/accessibility/image-alt.js | failureTitle": {
    "message": "Los elementos de imagen no tienen ningún atributo `[alt]`"
  },
  "core/audits/accessibility/image-alt.js | title": {
    "message": "Los elementos de imagen tienen atributos `[alt]`"
  },
  "core/audits/accessibility/image-redundant-alt.js | description": {
    "message": "Los elementos informativos deberían incluir textos alternativos cortos y descriptivos. Si el texto alternativo es idéntico al texto situado junto a un enlace o una imagen, puede resultar confuso para los usuarios de lectores de pantalla, ya que el texto se leerá dos veces. [Más información sobre el atributo `alt`](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)"
  },
  "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
    "message": "Los elementos de imagen tienen atributos `[alt]` que son texto redundante."
  },
  "core/audits/accessibility/image-redundant-alt.js | title": {
    "message": "Los elementos de imagen no tienen atributos `[alt]` que sean texto redundante."
  },
  "core/audits/accessibility/input-button-name.js | description": {
    "message": "Añadir texto reconocible y accesible a los botones de entrada puede ayudar a los usuarios de lectores de pantalla a entender la finalidad de estos botones. [Más información sobre los botones de entrada](https://dequeuniversity.com/rules/axe/4.11/input-button-name)"
  },
  "core/audits/accessibility/input-button-name.js | failureTitle": {
    "message": "Los botones de entrada no tienen texto discernible."
  },
  "core/audits/accessibility/input-button-name.js | title": {
    "message": "Los botones de entrada tienen texto reconocible."
  },
  "core/audits/accessibility/input-image-alt.js | description": {
    "message": "Cuando se usa una imagen como botón `<input>`, resulta útil proporcionar un texto alternativo para permitir que los usuarios de lectores de pantalla entiendan cuál es la función del botón. [Más información sobre añadir texto alternativo a las imágenes](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)"
  },
  "core/audits/accessibility/input-image-alt.js | failureTitle": {
    "message": "Los elementos `<input type=\"image\">` no tienen texto `[alt]`"
  },
  "core/audits/accessibility/input-image-alt.js | title": {
    "message": "Los elementos `<input type=\"image\">` tienen texto `[alt]`"
  },
  "core/audits/accessibility/label-content-name-mismatch.js | description": {
    "message": "Las etiquetas de texto visibles que no coincidan con el nombre accesible pueden confundir a los usuarios de lectores de pantalla. [Más información sobre nombres accesibles](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)"
  },
  "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
    "message": "Los elementos con etiquetas de texto visibles no tienen nombres accesibles que coincidan."
  },
  "core/audits/accessibility/label-content-name-mismatch.js | title": {
    "message": "Los elementos con etiquetas de texto visibles tienen nombres accesibles que coinciden."
  },
  "core/audits/accessibility/label.js | description": {
    "message": "Las etiquetas facilitan que las tecnologías asistenciales, como los lectores de pantalla, puedan leer los controles de los formularios de forma correcta. [Más información sobre las etiquetas de elementos de formulario](https://dequeuniversity.com/rules/axe/4.11/label)"
  },
  "core/audits/accessibility/label.js | failureTitle": {
    "message": "Los elementos de formulario no tienen ninguna etiqueta asociada"
  },
  "core/audits/accessibility/label.js | title": {
    "message": "Los elementos de formulario tienen etiquetas asociadas"
  },
  "core/audits/accessibility/landmark-one-main.js | description": {
    "message": "Los puntos de referencia principal ayudan a los usuarios de lectores de pantalla a desplazarse por una página web. [Obtén más información sobre los puntos de referencia](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."
  },
  "core/audits/accessibility/landmark-one-main.js | failureTitle": {
    "message": "El documento no tiene un punto de referencia principal."
  },
  "core/audits/accessibility/landmark-one-main.js | title": {
    "message": "El documento tiene un punto de referencia principal."
  },
  "core/audits/accessibility/link-in-text-block.js | description": {
    "message": "Los textos con poco contraste resultan difíciles o imposibles de leer para muchos usuarios. Usar textos de enlace que sean reconocibles mejora la experiencia para los usuarios con baja visión. [Obtén más información sobre cómo crear enlaces distinguibles](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."
  },
  "core/audits/accessibility/link-in-text-block.js | failureTitle": {
    "message": "Los enlaces se distinguen por el color."
  },
  "core/audits/accessibility/link-in-text-block.js | title": {
    "message": "Los enlaces se distinguen sin depender del color."
  },
  "core/audits/accessibility/link-name.js | description": {
    "message": "Usar textos de enlace (y textos alternativos para las imágenes, si estas se usan como enlaces) que sean reconocibles, únicos y que se puedan seleccionar mejora la experiencia de navegación de los usuarios de lectores de pantalla. [Consulta cómo hacer que los enlaces sean accesibles](https://dequeuniversity.com/rules/axe/4.11/link-name)"
  },
  "core/audits/accessibility/link-name.js | failureTitle": {
    "message": "Los enlaces no tienen nombres reconocibles"
  },
  "core/audits/accessibility/link-name.js | title": {
    "message": "Los enlaces tienen nombres reconocibles"
  },
  "core/audits/accessibility/list.js | description": {
    "message": "Los lectores de pantalla leen las listas en voz alta de una forma concreta. Se recomienda utilizar una estructura de listas adecuada para que los lectores de pantalla puedan leer las listas de forma correcta. [Más información sobre estructuras de listas adecuadas](https://dequeuniversity.com/rules/axe/4.11/list)"
  },
  "core/audits/accessibility/list.js | failureTitle": {
    "message": "Las listas no contienen únicamente elementos `<li>` y elementos que admiten secuencias de comandos (`<script>` y `<template>`)."
  },
  "core/audits/accessibility/list.js | title": {
    "message": "Las listas contienen únicamente elementos `<li>` y elementos que admiten secuencias de comandos (`<script>` y `<template>`)."
  },
  "core/audits/accessibility/listitem.js | description": {
    "message": "Los lectores de pantalla requieren que los elementos de lista (`<li>`) estén incluidos dentro de un elemento superior`<ul>`, `<ol>` o `<menu>` para poder leerlos correctamente en voz alta. [Más información sobre estructuras de listas adecuadas](https://dequeuniversity.com/rules/axe/4.11/listitem)"
  },
  "core/audits/accessibility/listitem.js | failureTitle": {
    "message": "Los elementos de lista (`<li>`) no están incluidos dentro de elementos superiores `<ul>`, `<ol>` o `<menu>`."
  },
  "core/audits/accessibility/listitem.js | title": {
    "message": "Los elementos de lista (`<li>`) están incluidos dentro de elementos superiores `<ul>`, `<ol>` o `<menu>`"
  },
  "core/audits/accessibility/meta-refresh.js | description": {
    "message": "Los usuarios no esperan que las páginas se actualicen automáticamente. Si es así, se les volverá a dirigir a la parte superior de la página. Esto puede dar lugar a una experiencia frustrante o confusa. [Más información sobre la etiqueta meta de actualización](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)"
  },
  "core/audits/accessibility/meta-refresh.js | failureTitle": {
    "message": "El documento usa `<meta http-equiv=\"refresh\">`"
  },
  "core/audits/accessibility/meta-refresh.js | title": {
    "message": "El documento no usa `<meta http-equiv=\"refresh\">`"
  },
  "core/audits/accessibility/meta-viewport.js | description": {
    "message": "Inhabilitar el zoom provoca problemas a los usuarios con baja visión que necesitan ampliar la pantalla para poder ver correctamente el contenido de las páginas web. [Más información sobre la etiqueta meta de viewport](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)"
  },
  "core/audits/accessibility/meta-viewport.js | failureTitle": {
    "message": "El atributo `[user-scalable=\"no\"]` se usa en el elemento `<meta name=\"viewport\">` o el valor del atributo `[maximum-scale]` es inferior a 5."
  },
  "core/audits/accessibility/meta-viewport.js | title": {
    "message": "`[user-scalable=\"no\"]` no se utiliza en el elemento `<meta name=\"viewport\">` y el valor del atributo `[maximum-scale]` no es inferior a 5."
  },
  "core/audits/accessibility/object-alt.js | description": {
    "message": "Los lectores de pantalla no pueden traducir contenido que no sea texto. Si añades texto alternativo a los elementos `<object>`, los lectores de pantalla podrán transmitir su significado a los usuarios. [Más información sobre el texto alternativo de los elementos `object`](https://dequeuniversity.com/rules/axe/4.11/object-alt)"
  },
  "core/audits/accessibility/object-alt.js | failureTitle": {
    "message": "Los elementos `<object>` no tienen texto alternativo"
  },
  "core/audits/accessibility/object-alt.js | title": {
    "message": "Los elementos `<object>` tienen texto alternativo"
  },
  "core/audits/accessibility/select-name.js | description": {
    "message": "Los elementos <form> sin <label> eficaz pueden causar experiencias frustrantes para los usuarios de lectores de pantalla. [Obtén más información sobre el elemento `select`](https://dequeuniversity.com/rules/axe/4.11/select-name)."
  },
  "core/audits/accessibility/select-name.js | failureTitle": {
    "message": "Los elementos <select> no tienen elementos <label> asociados."
  },
  "core/audits/accessibility/select-name.js | title": {
    "message": "Los elementos <select> tienen elementos <label> asociados."
  },
  "core/audits/accessibility/skip-link.js | description": {
    "message": "Incluir un enlace de salto puede ayudar a los usuarios a ir directamente al contenido principal para ahorrar tiempo. [Más información sobre los enlaces de salto](https://dequeuniversity.com/rules/axe/4.11/skip-link)"
  },
  "core/audits/accessibility/skip-link.js | failureTitle": {
    "message": "Los enlaces de salto no son enfocables."
  },
  "core/audits/accessibility/skip-link.js | title": {
    "message": "Los enlaces de salto son enfocables."
  },
  "core/audits/accessibility/tabindex.js | description": {
    "message": "Si el valor es superior a 0, significa que el orden de navegación es explícito. Aunque técnicamente es válido, esto suele producir experiencias frustrantes para los usuarios que necesitan usar tecnologías asistenciales. [Más información sobre el atributo `tabindex`](https://dequeuniversity.com/rules/axe/4.11/tabindex)"
  },
  "core/audits/accessibility/tabindex.js | failureTitle": {
    "message": "Algunos elementos tienen un valor de `[tabindex]` superior a 0"
  },
  "core/audits/accessibility/tabindex.js | title": {
    "message": "No hay ningún elemento con un valor de `[tabindex]` superior a 0"
  },
  "core/audits/accessibility/table-duplicate-name.js | description": {
    "message": "El atributo summary debe describir la estructura de la tabla y `<caption>` debe tener el título en pantalla. Etiquetar las tablas de forma precisa ayuda a los usuarios de lectores de pantalla. [Más información sobre summary y caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)"
  },
  "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
    "message": "El contenido de las tablas es el mismo en el atributo summary y en `<caption>.`."
  },
  "core/audits/accessibility/table-duplicate-name.js | title": {
    "message": "Las tablas tienen contenido diferente en el atributo summary y en `<caption>`."
  },
  "core/audits/accessibility/table-fake-caption.js | description": {
    "message": "Los lectores de pantalla incluyen funciones para facilitar la navegación por las tablas. Si te aseguras de que las tablas usan el elemento de título correcto en lugar de celdas con el atributo `[colspan]`, es posible que mejore la experiencia de los usuarios de lectores de pantalla. [Más información sobre títulos](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)"
  },
  "core/audits/accessibility/table-fake-caption.js | failureTitle": {
    "message": "Las tablas no usan `<caption>` en lugar de celdas con el atributo `[colspan]` para indicar un título."
  },
  "core/audits/accessibility/table-fake-caption.js | title": {
    "message": "Las tablas usan `<caption>` en lugar de celdas con el atributo `[colspan]` para indicar un título."
  },
  "core/audits/accessibility/target-size.js | description": {
    "message": "Las áreas táctiles con un tamaño y un espaciado suficientes ayudan a los usuarios con posibles dificultades para usar controles pequeños a activarlos. [Más información sobre las áreas táctiles](https://dequeuniversity.com/rules/axe/4.11/target-size)"
  },
  "core/audits/accessibility/target-size.js | failureTitle": {
    "message": "Las áreas táctiles no tienen un tamaño o un espaciado suficientes."
  },
  "core/audits/accessibility/target-size.js | title": {
    "message": "Las áreas táctiles deben tener un tamaño y un espaciado suficientes."
  },
  "core/audits/accessibility/td-has-header.js | description": {
    "message": "Los lectores de pantalla incluyen funciones para facilitar la navegación por las tablas. Si te aseguras de que los elementos `<td>` de una tabla grande (3 o más celdas de ancho y alto) tienen un encabezado de tabla asociado, es posible que mejore la experiencia de los usuarios de lectores de pantalla. [Más información sobre los encabezados de tabla](https://dequeuniversity.com/rules/axe/4.11/td-has-header)"
  },
  "core/audits/accessibility/td-has-header.js | failureTitle": {
    "message": "Los elementos `<td>` de un elemento `<table>` grande no tienen encabezados de tabla."
  },
  "core/audits/accessibility/td-has-header.js | title": {
    "message": "Los elementos `<td>` de un elemento `<table>` grande tienen al menos un encabezado de tabla."
  },
  "core/audits/accessibility/td-headers-attr.js | description": {
    "message": "Los lectores de pantalla incluyen funciones para facilitar la navegación por las tablas. Asegurarse de que las celdas `<td>` que usan el atributo `[headers]` solo hacen referencia a otras celdas de la misma tabla mejora la experiencia de los usuarios de lectores de pantalla. [Más información sobre el atributo `headers`](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)"
  },
  "core/audits/accessibility/td-headers-attr.js | failureTitle": {
    "message": "Las celdas de un elemento `<table>` que usan el atributo `[headers]` hacen referencia a un elemento `id` que no se encuentra en la misma tabla."
  },
  "core/audits/accessibility/td-headers-attr.js | title": {
    "message": "Las celdas de un elemento `<table>` que usan el atributo `[headers]` hacen referencia a otras celdas de la misma tabla."
  },
  "core/audits/accessibility/th-has-data-cells.js | description": {
    "message": "Los lectores de pantalla incluyen funciones para facilitar la navegación por las tablas. Si te aseguras de que los encabezados de las tablas siempre hagan referencia a un conjunto de celdas, puedes mejorar la experiencia de los usuarios de lectores de pantalla. [Más información sobre los encabezados de tabla](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)"
  },
  "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
    "message": "Los elementos `<th>` y los elementos con `[role=\"columnheader\"/\"rowheader\"]` no contienen las celdas de datos que describen."
  },
  "core/audits/accessibility/th-has-data-cells.js | title": {
    "message": "Los elementos `<th>` y los elementos con atributos `[role=\"columnheader\"/\"rowheader\"]` contienen las celdas de datos que describen."
  },
  "core/audits/accessibility/valid-lang.js | description": {
    "message": "Especificar un [idioma BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) en los elementos ayuda a asegurar que los lectores de pantalla pronuncien correctamente las palabras del texto. [Consulta cómo utilizar el atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/valid-lang)"
  },
  "core/audits/accessibility/valid-lang.js | failureTitle": {
    "message": "Los atributos `[lang]` no tienen un valor válido"
  },
  "core/audits/accessibility/valid-lang.js | title": {
    "message": "Los atributos `[lang]` tienen un valor válido"
  },
  "core/audits/accessibility/video-caption.js | description": {
    "message": "Si un vídeo tiene subtítulos, los usuarios sordos o con problemas auditivos pueden acceder a la información con más facilidad. [Más información sobre los subtítulos de los vídeos](https://dequeuniversity.com/rules/axe/4.11/video-caption)"
  },
  "core/audits/accessibility/video-caption.js | failureTitle": {
    "message": "Los elementos `<video>` no contienen ningún elemento `<track>` con el atributo `[kind=\"captions\"]`."
  },
  "core/audits/accessibility/video-caption.js | title": {
    "message": "Los elementos `<video>` contienen un elemento `<track>` con el atributo `[kind=\"captions\"]`"
  },
  "core/audits/autocomplete.js | columnCurrent": {
    "message": "Valor actual"
  },
  "core/audits/autocomplete.js | columnSuggestions": {
    "message": "Token sugerido"
  },
  "core/audits/autocomplete.js | description": {
    "message": "`autocomplete` ayuda a los usuarios a enviar formularios más rápido. Para reducir el esfuerzo de los usuarios, considera habilitarlo definiendo un valor válido para el atributo `autocomplete`. [Más información sobre `autocomplete` en formularios](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)"
  },
  "core/audits/autocomplete.js | failureTitle": {
    "message": "Los elementos `<input>` no tienen los atributos `autocomplete` correctos"
  },
  "core/audits/autocomplete.js | manualReview": {
    "message": "Requiere revisión manual"
  },
  "core/audits/autocomplete.js | reviewOrder": {
    "message": "Revisa el orden de los tokens"
  },
  "core/audits/autocomplete.js | title": {
    "message": "Los elementos `<input>` usan `autocomplete` correctamente"
  },
  "core/audits/autocomplete.js | warningInvalid": {
    "message": "Tokens de `autocomplete`: \"{token}\" no es válido en {snippet}"
  },
  "core/audits/autocomplete.js | warningOrder": {
    "message": "Revisa el orden de tokens: \"{tokens}\" en {snippet}"
  },
  "core/audits/bf-cache.js | actionableFailureType": {
    "message": "Se puede solucionar"
  },
  "core/audits/bf-cache.js | description": {
    "message": "Muchos desplazamientos consisten en volver a una página anterior o regresar a una página posterior. La caché de páginas completas (bfcache) puede acelerar estos desplazamientos de regreso. [Más información sobre la caché de páginas completas](https://developer.chrome.com/docs/lighthouse/performance/bf-cache/)"
  },
  "core/audits/bf-cache.js | displayValue": {
    "message": "{itemCount,plural, =1{1 motivo del error}other{# motivos del error}}"
  },
  "core/audits/bf-cache.js | failureReasonColumn": {
    "message": "Motivo del error"
  },
  "core/audits/bf-cache.js | failureTitle": {
    "message": "La página ha impedido la restauración de la caché de páginas completas"
  },
  "core/audits/bf-cache.js | failureTypeColumn": {
    "message": "Tipo de error"
  },
  "core/audits/bf-cache.js | notActionableFailureType": {
    "message": "No se puede solucionar"
  },
  "core/audits/bf-cache.js | supportPendingFailureType": {
    "message": "Compatibilidad del navegador pendiente"
  },
  "core/audits/bf-cache.js | title": {
    "message": "La página no ha impedido la restauración de la caché de páginas completas"
  },
  "core/audits/bf-cache.js | warningHeadless": {
    "message": "La caché de páginas completas no se puede probar en la antigua versión de Chrome sin interfaz gráfica (`--chrome-flags=\"--headless=old\"`). Para ver los resultados de la auditoría, usa la nueva versión de Chrome sin interfaz gráfica (`--chrome-flags=\"--headless=new\"`) o la versión estándar de Chrome."
  },
  "core/audits/bootup-time.js | chromeExtensionsWarning": {
    "message": "Las extensiones de Chrome han afectado de forma negativa al rendimiento de carga de esta página. Prueba a auditarla en modo incógnito o desde un perfil de Chrome sin extensiones."
  },
  "core/audits/bootup-time.js | columnScriptEval": {
    "message": "Evaluación de la secuencia de comandos"
  },
  "core/audits/bootup-time.js | columnScriptParse": {
    "message": "Análisis de la secuencia de comandos"
  },
  "core/audits/bootup-time.js | columnTotal": {
    "message": "Tiempo de CPU total"
  },
  "core/audits/bootup-time.js | description": {
    "message": "Te recomendamos que reduzcas el tiempo de análisis, compilación y ejecución de JavaScript. Para ello, puedes utilizar cargas útiles de JavaScript más pequeñas. [Consulta cómo reducir el tiempo de ejecución de JavaScript](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/)"
  },
  "core/audits/bootup-time.js | failureTitle": {
    "message": "Reduce el tiempo de ejecución de JavaScript"
  },
  "core/audits/bootup-time.js | title": {
    "message": "Tiempo de ejecución de JavaScript"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | description": {
    "message": "Si la carga útil de la red es muy grande, los usuarios consumen más datos móviles y las páginas tardan más en cargarse. [Consulta cómo reducir el tamaño de la carga útil](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/)"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
    "message": "Tamaño total: {totalBytes, number, bytes} KiB"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
    "message": "Evita cargas útiles de red de gran tamaño"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | title": {
    "message": "Evita cargas útiles de red de gran tamaño"
  },
  "core/audits/byte-efficiency/unminified-css.js | description": {
    "message": "Si minificas los archivos CSS, se puede reducir el tamaño de la carga útil de la red. [Consulta cómo minificar archivos CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/)"
  },
  "core/audits/byte-efficiency/unminified-css.js | title": {
    "message": "Minifica los archivos CSS"
  },
  "core/audits/byte-efficiency/unminified-javascript.js | description": {
    "message": "Si minificas los archivos de JavaScript, se puede reducir el tamaño de la carga útil y el tiempo de análisis de la secuencia de comandos. [Consulta cómo minificar JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/)"
  },
  "core/audits/byte-efficiency/unminified-javascript.js | title": {
    "message": "Minifica los recursos JavaScript"
  },
  "core/audits/byte-efficiency/unused-css-rules.js | description": {
    "message": "Reduce las reglas que no se usen de las hojas de estilo y retrasa las reglas CSS que no se utilicen para el contenido de la parte visible a primera vista. Así, se reducirán los bytes consumidos por la actividad de red. [Consulta cómo reducir el contenido de CSS que no se use](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/)"
  },
  "core/audits/byte-efficiency/unused-css-rules.js | title": {
    "message": "Reduce el contenido CSS que no se use"
  },
  "core/audits/byte-efficiency/unused-javascript.js | description": {
    "message": "Reduce el contenido JavaScript que no se use y retrasa la carga de secuencias de comandos hasta que se necesiten. Así, se reducirán los bytes consumidos por la actividad de red. [Consulta cómo reducir el contenido de JavaScript que no se use](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/)"
  },
  "core/audits/byte-efficiency/unused-javascript.js | title": {
    "message": "Reduce el contenido JavaScript que no se use"
  },
  "core/audits/clickjacking-mitigation.js | columnSeverity": {
    "message": "Gravedad"
  },
  "core/audits/clickjacking-mitigation.js | description": {
    "message": "El encabezado `X-Frame-Options` (XFO) o la directiva `frame-ancestors` en el encabezado `Content-Security-Policy` (CSP) controlan dónde se puede insertar una página. Pueden mitigar los ataques de secuestro de clics impidiendo que algunos o todos los sitios puedan insertar la página. [Más información sobre cómo mitigar el secuestro de clics](https://developer.chrome.com/docs/lighthouse/best-practices/clickjacking-mitigation)"
  },
  "core/audits/clickjacking-mitigation.js | noClickjackingMitigation": {
    "message": "No se han encontrado políticas de control de marcos"
  },
  "core/audits/clickjacking-mitigation.js | title": {
    "message": "Mitiga el secuestro de clics con XFO o CSP"
  },
  "core/audits/csp-xss.js | columnDirective": {
    "message": "Directiva"
  },
  "core/audits/csp-xss.js | columnSeverity": {
    "message": "Gravedad"
  },
  "core/audits/csp-xss.js | description": {
    "message": "Una política de seguridad de contenido (CSP) sólida reduce considerablemente el riesgo de ataques de cross-site scripting (XSS). [Consulta cómo usar una CSP para prevenir XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)"
  },
  "core/audits/csp-xss.js | itemSeveritySyntax": {
    "message": "Sintaxis"
  },
  "core/audits/csp-xss.js | metaTagMessage": {
    "message": "La página contiene una CSP definida en una etiqueta `<meta>`. Considera mover la CSP a un encabezado HTTP o definir otra CSP estricta en un encabezado HTTP."
  },
  "core/audits/csp-xss.js | noCsp": {
    "message": "No se ha encontrado ninguna CSP en el modo obligatorio"
  },
  "core/audits/csp-xss.js | title": {
    "message": "Asegura que la CSP sea efectiva frente a ataques XSS"
  },
  "core/audits/deprecations.js | columnDeprecate": {
    "message": "Desactivación/Advertencia"
  },
  "core/audits/deprecations.js | columnLine": {
    "message": "Línea"
  },
  "core/audits/deprecations.js | description": {
    "message": "Las APIs obsoletas se eliminarán del navegador en el futuro. [Más información sobre las APIs obsoletas](https://developer.chrome.com/docs/lighthouse/best-practices/deprecations/)"
  },
  "core/audits/deprecations.js | displayValue": {
    "message": "{itemCount,plural, =1{Se ha encontrado 1 advertencia}other{Se han encontrado # advertencias}}"
  },
  "core/audits/deprecations.js | failureTitle": {
    "message": "Usa API obsoletas"
  },
  "core/audits/deprecations.js | title": {
    "message": "Evita las API obsoletas"
  },
  "core/audits/dobetterweb/charset.js | description": {
    "message": "Es necesario declarar una codificación de caracteres. Puedes hacerlo utilizando una etiqueta `<meta>` situada en los primeros 1024 bytes del código HTML o en el encabezado de respuesta HTTP Content-Type. [Más información sobre cómo declarar la codificación de caracteres](https://developer.chrome.com/docs/lighthouse/best-practices/charset/)"
  },
  "core/audits/dobetterweb/charset.js | failureTitle": {
    "message": "Falta la declaración del conjunto de caracteres o se ha definido demasiado tarde en el código HTML"
  },
  "core/audits/dobetterweb/charset.js | title": {
    "message": "El conjunto de caracteres está definido correctamente"
  },
  "core/audits/dobetterweb/doctype.js | description": {
    "message": "Especificar un DOCTYPE evita que el navegador cambie al modo Quirks. [Más información sobre la declaración de DOCTYPE](https://developer.chrome.com/docs/lighthouse/best-practices/doctype/)"
  },
  "core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
    "message": "El nombre del DOCTYPE debe ser la cadena `html`"
  },
  "core/audits/dobetterweb/doctype.js | explanationLimitedQuirks": {
    "message": "El documento contiene un `doctype` que activa `limited-quirks-mode`"
  },
  "core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
    "message": "El documento debe contener un elemento DOCTYPE"
  },
  "core/audits/dobetterweb/doctype.js | explanationPublicId": {
    "message": "Se esperaba que publicId fuera una cadena vacía"
  },
  "core/audits/dobetterweb/doctype.js | explanationSystemId": {
    "message": "Se esperaba que systemId fuera una cadena vacía"
  },
  "core/audits/dobetterweb/doctype.js | explanationWrongDoctype": {
    "message": "El documento contiene un `doctype` que activa `quirks-mode`"
  },
  "core/audits/dobetterweb/doctype.js | failureTitle": {
    "message": "A la página le falta el DOCTYPE de HTML, por lo que se ha activado el modo Quirks"
  },
  "core/audits/dobetterweb/doctype.js | title": {
    "message": "La página tiene el DOCTYPE de HTML"
  },
  "core/audits/dobetterweb/geolocation-on-start.js | description": {
    "message": "Los usuarios dudan o desconfían de los sitios web que solicitan su ubicación sin contexto. Como alternativa, puedes vincular la solicitud a una acción del usuario. [Más información sobre el permiso de geolocalización](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)"
  },
  "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
    "message": "Solicita el permiso de geolocalización al cargar la página"
  },
  "core/audits/dobetterweb/geolocation-on-start.js | title": {
    "message": "Evita solicitar el permiso de geolocalización al cargar la página"
  },
  "core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
    "message": "Tipo de problema"
  },
  "core/audits/dobetterweb/inspector-issues.js | description": {
    "message": "Los problemas registrados en el panel `Issues` de las herramientas para desarrolladores de Chrome indican que hay errores sin resolver. Pueden proceder de solicitudes fallidas de red, controles de seguridad insuficientes y otros errores del navegador. Abre el panel Issues de las herramientas para desarrolladores de Chrome para obtener más información sobre cada error."
  },
  "core/audits/dobetterweb/inspector-issues.js | failureTitle": {
    "message": "Se han registrado problemas en el panel `Issues` de las herramientas para desarrolladores de Chrome"
  },
  "core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
    "message": "Bloqueado por la política de orígenes cruzados"
  },
  "core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
    "message": "Uso intenso de recursos por parte de anuncios"
  },
  "core/audits/dobetterweb/inspector-issues.js | title": {
    "message": "No hay ningún problema en el panel `Issues` de las herramientas para desarrolladores de Chrome"
  },
  "core/audits/dobetterweb/js-libraries.js | columnVersion": {
    "message": "Versión"
  },
  "core/audits/dobetterweb/js-libraries.js | description": {
    "message": "Todas las bibliotecas frontend de JavaScript detectadas en la página. [Más información sobre esta auditoría de diagnóstico de detección de bibliotecas de JavaScript](https://developer.chrome.com/docs/lighthouse/best-practices/js-libraries/)"
  },
  "core/audits/dobetterweb/js-libraries.js | title": {
    "message": "Bibliotecas de JavaScript detectadas"
  },
  "core/audits/dobetterweb/notification-on-start.js | description": {
    "message": "Los usuarios dudan o desconfían de los sitios que solicitan enviar notificaciones sin contexto. Como alternativa, puedes vincular la solicitud a los gestos de los usuarios. [Más información sobre cómo obtener permiso para recibir notificaciones de forma responsable](https://developer.chrome.com/docs/lighthouse/best-practices/notification-on-start/)"
  },
  "core/audits/dobetterweb/notification-on-start.js | failureTitle": {
    "message": "Solicita el permiso de notificación al cargar la página"
  },
  "core/audits/dobetterweb/notification-on-start.js | title": {
    "message": "Evita solicitar el permiso de notificación al cargar la página"
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | description": {
    "message": "Impedir que los usuarios peguen datos afecta negativamente a la experiencia de usuario y reduce la seguridad porque bloquea los gestores de contraseñas.[Más información sobre los campos de entrada fáciles de usar](https://developer.chrome.com/docs/lighthouse/best-practices/paste-preventing-inputs/)"
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | failureTitle": {
    "message": "Impide que los usuarios peguen texto en campos de entrada"
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | title": {
    "message": "Permite que los usuarios peguen texto en campos de entrada"
  },
  "core/audits/errors-in-console.js | description": {
    "message": "Los errores registrados en la consola indican que hay problemas sin resolver. Pueden proceder de solicitudes fallidas de la red y otros errores del navegador. [Más información sobre estos errores en la auditoría de diagnóstico de la consola](https://developer.chrome.com/docs/lighthouse/best-practices/errors-in-console/)"
  },
  "core/audits/errors-in-console.js | failureTitle": {
    "message": "Se han registrado errores del navegador en la consola"
  },
  "core/audits/errors-in-console.js | title": {
    "message": "No se ha registrado en la consola ningún error del navegador"
  },
  "core/audits/has-hsts.js | columnDirective": {
    "message": "Directiva"
  },
  "core/audits/has-hsts.js | columnSeverity": {
    "message": "Gravedad"
  },
  "core/audits/has-hsts.js | description": {
    "message": "La implementación del encabezado HSTS reduce considerablemente el riesgo de cambiar las conexiones HTTP a versiones inferiores y de recibir ataques de eavesdropping. Se recomienda implementarlo por fases, empezando con un valor de max-age bajo. [Más información sobre usar una política de HSTS sólida](https://developer.chrome.com/docs/lighthouse/best-practices/has-hsts)"
  },
  "core/audits/has-hsts.js | invalidSyntax": {
    "message": "Sintaxis no válida"
  },
  "core/audits/has-hsts.js | lowMaxAge": {
    "message": "`max-age` es demasiado bajo"
  },
  "core/audits/has-hsts.js | noHsts": {
    "message": "No se han encontrado encabezados HSTS"
  },
  "core/audits/has-hsts.js | noMaxAge": {
    "message": "No hay directivas `max-age`"
  },
  "core/audits/has-hsts.js | noPreload": {
    "message": "No se han encontrado directivas `preload`"
  },
  "core/audits/has-hsts.js | noSubdomain": {
    "message": "No se han encontrado directivas `includeSubDomains`"
  },
  "core/audits/has-hsts.js | title": {
    "message": "Usa una política de HSTS sólida"
  },
  "core/audits/image-aspect-ratio.js | columnActual": {
    "message": "Relación de aspecto (real)"
  },
  "core/audits/image-aspect-ratio.js | columnDisplayed": {
    "message": "Relación de aspecto (mostrada)"
  },
  "core/audits/image-aspect-ratio.js | description": {
    "message": "Las dimensiones de las imágenes mostradas deberían mantener su relación de aspecto natural. [Más información sobre la relación de aspecto de imagen](https://developer.chrome.com/docs/lighthouse/best-practices/image-aspect-ratio/)"
  },
  "core/audits/image-aspect-ratio.js | failureTitle": {
    "message": "Muestra imágenes con una relación de aspecto incorrecta"
  },
  "core/audits/image-aspect-ratio.js | title": {
    "message": "Muestra imágenes con la relación de aspecto adecuada"
  },
  "core/audits/image-size-responsive.js | columnActual": {
    "message": "Tamaño real"
  },
  "core/audits/image-size-responsive.js | columnDisplayed": {
    "message": "Tamaño mostrado"
  },
  "core/audits/image-size-responsive.js | columnExpected": {
    "message": "Tamaño esperado"
  },
  "core/audits/image-size-responsive.js | description": {
    "message": "Para maximizar la claridad de la imagen, las dimensiones normales de la imagen deberían ser proporcionales al tamaño de la pantalla y a la proporción de píxeles. [Consulta cómo proporcionar imágenes adaptables](https://web.dev/articles/serve-responsive-images)"
  },
  "core/audits/image-size-responsive.js | failureTitle": {
    "message": "Muestra imágenes con una resolución baja"
  },
  "core/audits/image-size-responsive.js | title": {
    "message": "Muestra imágenes con una resolución adecuada"
  },
  "core/audits/insights/cls-culprits-insight.js | columnScore": {
    "message": "Puntuación del cambio de diseño"
  },
  "core/audits/is-on-https.js | allowed": {
    "message": "Permitida"
  },
  "core/audits/is-on-https.js | blocked": {
    "message": "Bloqueada"
  },
  "core/audits/is-on-https.js | columnInsecureURL": {
    "message": "URL poco segura"
  },
  "core/audits/is-on-https.js | columnResolution": {
    "message": "Resolución de solicitudes"
  },
  "core/audits/is-on-https.js | description": {
    "message": "Todos los sitios deberían estar protegidos con el protocolo HTTPS, incluso los que no gestionen datos sensibles. Esto incluye evitar el [contenido mixto](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), en el que algunos recursos se cargan mediante HTTP a pesar de que la solicitud inicial se haya servido mediante HTTPS. HTTPS evita que los intrusos manipulen o escuchen de forma pasiva las comunicaciones entre tu aplicación y tus usuarios. Además, es un requisito previo para poder usar HTTP/2 y las APIs de muchas plataformas web nuevas. [Más información sobre HTTPS](https://developer.chrome.com/docs/lighthouse/pwa/is-on-https/)"
  },
  "core/audits/is-on-https.js | displayValue": {
    "message": "{itemCount,plural, =1{Se ha encontrado 1 solicitud poco segura}other{Se han encontrado # solicitudes poco seguras}}"
  },
  "core/audits/is-on-https.js | failureTitle": {
    "message": "No usa HTTPS"
  },
  "core/audits/is-on-https.js | title": {
    "message": "Usa HTTPS"
  },
  "core/audits/is-on-https.js | upgraded": {
    "message": "Actualizada a HTTPS automáticamente"
  },
  "core/audits/is-on-https.js | warning": {
    "message": "Permitida con advertencia"
  },
  "core/audits/layout-shifts.js | columnScore": {
    "message": "Puntuación del cambio de diseño"
  },
  "core/audits/layout-shifts.js | description": {
    "message": "Estos son los mayores cambios de diseño que se han observado en la página. Cada entrada de la tabla representa un solo cambio de diseño y muestra el elemento que más ha cambiado. Debajo de cada elemento se indican las posibles causas que han provocado el cambio de diseño. Puede que algunos de estos cambios de diseño no se incluyan en el valor de la métrica de CLS debido a la [normalización](https://web.dev/articles/cls#what_is_cls). [Descubre cómo mejorar el CLS](https://web.dev/articles/optimize-cls)"
  },
  "core/audits/layout-shifts.js | displayValueShiftsFound": {
    "message": "{shiftCount,plural, =1{1 cambio de diseño detectado}other{# cambios de diseño detectados}}"
  },
  "core/audits/layout-shifts.js | rootCauseFontChanges": {
    "message": "Fuente web cargada"
  },
  "core/audits/layout-shifts.js | rootCauseInjectedIframe": {
    "message": "Iframe inyectado"
  },
  "core/audits/layout-shifts.js | rootCauseUnsizedMedia": {
    "message": "Elemento multimedia sin tamaño concreto"
  },
  "core/audits/layout-shifts.js | title": {
    "message": "Evitar cambios de diseño importantes"
  },
  "core/audits/long-tasks.js | description": {
    "message": "Enumera las tareas más largas del hilo principal, lo que es útil para identificar las que más contribuyen a la latencia. [Consulta cómo evitar tareas largas del hilo principal](https://web.dev/articles/optimize-long-tasks)"
  },
  "core/audits/long-tasks.js | displayValue": {
    "message": "{itemCount,plural, =1{# tarea larga encontrada}other{# tareas largas encontradas}}"
  },
  "core/audits/long-tasks.js | title": {
    "message": "Evita tareas largas del hilo principal"
  },
  "core/audits/mainthread-work-breakdown.js | columnCategory": {
    "message": "Categoría"
  },
  "core/audits/mainthread-work-breakdown.js | description": {
    "message": "Te recomendamos que reduzcas el tiempo de análisis, compilación y ejecución de JavaScript. Para ello, puedes utilizar cargas útiles de JavaScript más pequeñas. [Consulta cómo minimizar el trabajo del hilo principal](https://developer.chrome.com/docs/lighthouse/performance/mainthread-work-breakdown/)"
  },
  "core/audits/mainthread-work-breakdown.js | failureTitle": {
    "message": "Minimiza el trabajo del hilo principal"
  },
  "core/audits/mainthread-work-breakdown.js | title": {
    "message": "Minimiza el trabajo del hilo principal"
  },
  "core/audits/metrics/cumulative-layout-shift.js | description": {
    "message": "Los cambios de diseño acumulados miden el movimiento de los elementos visibles dentro del viewport. [Más información sobre la métrica Cambios de diseño acumulados](https://web.dev/articles/cls)"
  },
  "core/audits/metrics/first-contentful-paint.js | description": {
    "message": "El primer renderizado con contenido indica el momento en el que se renderiza el primer texto o la primera imagen. [Más información sobre la métrica Primer renderizado con contenido](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/)"
  },
  "core/audits/metrics/interaction-to-next-paint.js | description": {
    "message": "Interacción con el siguiente renderizado mide la capacidad de respuesta de la página, es decir, el tiempo que tarda la página en responder de forma visible a la entrada del usuario. [Más información sobre la métrica Interacción con el siguiente renderizado](https://web.dev/articles/inp)"
  },
  "core/audits/metrics/interactive.js | description": {
    "message": "La métrica Time to Interactive mide el tiempo que tarda una página en ser totalmente interactiva. [Más información sobre la métrica Time to Interactive](https://developer.chrome.com/docs/lighthouse/performance/interactive/)"
  },
  "core/audits/metrics/largest-contentful-paint.js | description": {
    "message": "El renderizado del mayor elemento con contenido indica el tiempo que se tarda en dibujar el texto o la imagen de mayor tamaño. [Más información sobre la métrica Renderizado del mayor elemento con contenido](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)"
  },
  "core/audits/metrics/max-potential-fid.js | description": {
    "message": "La latencia potencial máxima de la primera interacción que podrían experimentar los usuarios es la duración de la tarea más larga. [Más información sobre la métrica Latencia potencial máxima de la primera interacción](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-max-potential-fid/)"
  },
  "core/audits/metrics/speed-index.js | description": {
    "message": "Speed Index indica la rapidez con la que se puede ver el contenido de una página. [Más información sobre la métrica Speed Index](https://developer.chrome.com/docs/lighthouse/performance/speed-index/)"
  },
  "core/audits/metrics/total-blocking-time.js | description": {
    "message": "Suma de los periodos, en milisegundos, entre FCP y Time to Interactive cuando la duración de la tarea excede los 50 ms. [Más información sobre la métrica Total Blocking Time](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/)"
  },
  "core/audits/network-rtt.js | description": {
    "message": "Los tiempos de ida y vuelta (RTT) de la red afectan mucho al rendimiento. Un RTT alto hasta un origen indica que usar servidores más cercanos al usuario podría mejorar el rendimiento. [Más información sobre el tiempo de ida y vuelta](https://hpbn.co/primer-on-latency-and-bandwidth/)"
  },
  "core/audits/network-rtt.js | title": {
    "message": "Tiempos de ida y vuelta de la red"
  },
  "core/audits/network-server-latency.js | description": {
    "message": "La latencia del servidor puede afectar al rendimiento del sitio web. Una latencia del servidor alta en un origen indica que el servidor está sobrecargado o que su rendimiento de backend es bajo. [Más información sobre el tiempo de respuesta del servidor](https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall)"
  },
  "core/audits/network-server-latency.js | title": {
    "message": "Latencias de backend del servidor"
  },
  "core/audits/non-composited-animations.js | description": {
    "message": "Las animaciones no compuestas pueden aparecer entrecortadas e incrementar el CLS. [Consulta cómo evitar las animaciones no compuestas](https://developer.chrome.com/docs/lighthouse/performance/non-composited-animations/)"
  },
  "core/audits/non-composited-animations.js | displayValue": {
    "message": "{itemCount,plural, =1{# elemento animado encontrado}other{# elementos animados encontrados}}"
  },
  "core/audits/non-composited-animations.js | filterMayMovePixels": {
    "message": "La propiedad \"filter\" relacionada puede tener píxeles en movimiento"
  },
  "core/audits/non-composited-animations.js | incompatibleAnimations": {
    "message": "El destino contiene otra animación no compatible"
  },
  "core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
    "message": "El efecto tiene un modo compuesto distinto de \"replace\""
  },
  "core/audits/non-composited-animations.js | title": {
    "message": "Evita las animaciones no compuestas"
  },
  "core/audits/non-composited-animations.js | transformDependsBoxSize": {
    "message": "La propiedad \"transform\" relacionada depende del tamaño de la caja"
  },
  "core/audits/non-composited-animations.js | unsupportedCSSProperty": {
    "message": "{propertyCount,plural, =1{Propiedad CSS no admitida: {properties}}other{Propiedades CSS no admitidas: {properties}}}"
  },
  "core/audits/non-composited-animations.js | unsupportedCustomCSSProperty": {
    "message": "{propertyCount,plural, =1{La propiedad CSS personalizada no se puede animar en el compositor: {properties}}other{Las propiedades CSS personalizadas no se pueden animar en el compositor: {properties}}}"
  },
  "core/audits/non-composited-animations.js | unsupportedTimingParameters": {
    "message": "Este efecto incluye parámetros de temporización no compatibles"
  },
  "core/audits/origin-isolation.js | columnDirective": {
    "message": "Directiva"
  },
  "core/audits/origin-isolation.js | columnSeverity": {
    "message": "Gravedad"
  },
  "core/audits/origin-isolation.js | description": {
    "message": "La política de apertura de orígenes cruzados (COOP) se puede usar para aislar la ventana de nivel superior de otros documentos, como ventanas emergentes. [Más información sobre cómo implementar el encabezado COOP](https://web.dev/articles/why-coop-coep#coop)"
  },
  "core/audits/origin-isolation.js | invalidSyntax": {
    "message": "Sintaxis no válida"
  },
  "core/audits/origin-isolation.js | noCoop": {
    "message": "No se han encontrado encabezados COOP"
  },
  "core/audits/origin-isolation.js | title": {
    "message": "Asegúrate de que el aislamiento de orígenes sea adecuado con COOP"
  },
  "core/audits/redirects-http.js | description": {
    "message": "Asegúrate de redirigir todo el tráfico HTTP a HTTPS para habilitar funciones web seguras para todos los usuarios. [Más información](https://developer.chrome.com/docs/lighthouse/pwa/redirects-http/)"
  },
  "core/audits/redirects-http.js | failureTitle": {
    "message": "No redirige el tráfico HTTP a HTTPS"
  },
  "core/audits/redirects-http.js | title": {
    "message": "Redirige el tráfico HTTP a HTTPS"
  },
  "core/audits/redirects.js | description": {
    "message": "Las redirecciones provocan retrasos adicionales antes de que la página se pueda cargar. [Consulta cómo evitar las redirecciones de página](https://developer.chrome.com/docs/lighthouse/performance/redirects/)."
  },
  "core/audits/redirects.js | title": {
    "message": "Evita que haya varias redirecciones de página"
  },
  "core/audits/seo/canonical.js | description": {
    "message": "Los enlaces canónicos sugieren qué URL se debe mostrar en los resultados de búsqueda. [Más información sobre los enlaces canónicos](https://developer.chrome.com/docs/lighthouse/seo/canonical/)"
  },
  "core/audits/seo/canonical.js | explanationConflict": {
    "message": "Varias URL en conflicto ({urlList})"
  },
  "core/audits/seo/canonical.js | explanationInvalid": {
    "message": "La URL no es válida ({url})"
  },
  "core/audits/seo/canonical.js | explanationPointsElsewhere": {
    "message": "Apunta a una ubicación de `hreflang` distinta ({url})"
  },
  "core/audits/seo/canonical.js | explanationRelative": {
    "message": "No es una URL absoluta ({url})"
  },
  "core/audits/seo/canonical.js | explanationRoot": {
    "message": "Apunta a la URL raíz del dominio (la página principal), en lugar de a una página de contenido equivalente"
  },
  "core/audits/seo/canonical.js | failureTitle": {
    "message": "El documento no tiene un atributo `rel=canonical` válido"
  },
  "core/audits/seo/canonical.js | title": {
    "message": "El documento tiene un atributo `rel=canonical` válido"
  },
  "core/audits/seo/crawlable-anchors.js | columnFailingLink": {
    "message": "Enlace no rastreable"
  },
  "core/audits/seo/crawlable-anchors.js | description": {
    "message": "Es posible que los buscadores usen atributos `href` en los enlaces para rastrear sitios web. Asegúrate de que el atributo `href` de los elementos de ancla enlace con un destino adecuado para que se puedan descubrir más páginas del sitio. [Consulta cómo hacer que los enlaces sean rastreables](https://support.google.com/webmasters/answer/9112205)"
  },
  "core/audits/seo/crawlable-anchors.js | failureTitle": {
    "message": "Los enlaces no son rastreables"
  },
  "core/audits/seo/crawlable-anchors.js | title": {
    "message": "Los enlaces son rastreables"
  },
  "core/audits/seo/hreflang.js | description": {
    "message": "Los enlaces \"hreflang\" indican a los buscadores qué versiones de las páginas deben incluir en los resultados de búsqueda de una zona o un idioma determinados. [Más información sobre `hreflang`](https://developer.chrome.com/docs/lighthouse/seo/hreflang/)"
  },
  "core/audits/seo/hreflang.js | failureTitle": {
    "message": "El atributo `hreflang` del documento no es válido"
  },
  "core/audits/seo/hreflang.js | notFullyQualified": {
    "message": "Valor href relativo"
  },
  "core/audits/seo/hreflang.js | title": {
    "message": "El documento tiene un atributo `hreflang` válido"
  },
  "core/audits/seo/hreflang.js | unexpectedLanguage": {
    "message": "Código de idioma inesperado"
  },
  "core/audits/seo/http-status-code.js | description": {
    "message": "Es posible que las páginas con códigos de estado HTTP no válidos no estén bien indexadas. [Más información sobre los códigos de estado HTTP](https://developer.chrome.com/docs/lighthouse/seo/http-status-code/)"
  },
  "core/audits/seo/http-status-code.js | failureTitle": {
    "message": "El código de estado HTTP de la página no es válido"
  },
  "core/audits/seo/http-status-code.js | title": {
    "message": "El código de estado HTTP de la página es válido"
  },
  "core/audits/seo/is-crawlable.js | description": {
    "message": "Los buscadores no pueden incluir tus páginas en los resultados de búsqueda si no tienen permiso para rastrearlas. [Más información sobre las directivas del rastreador](https://developer.chrome.com/docs/lighthouse/seo/is-crawlable/)"
  },
  "core/audits/seo/is-crawlable.js | failureTitle": {
    "message": "Se ha bloqueado la indexación de la página"
  },
  "core/audits/seo/is-crawlable.js | title": {
    "message": "No se ha bloqueado la indexación de la página"
  },
  "core/audits/seo/link-text.js | description": {
    "message": "El texto descriptivo de los enlaces ayuda a los buscadores a entender tu contenido. [Consulta cómo hacer que los enlaces sean más accesibles](https://developer.chrome.com/docs/lighthouse/seo/link-text/)"
  },
  "core/audits/seo/link-text.js | displayValue": {
    "message": "{itemCount,plural, =1{1 enlace encontrado}other{# enlaces encontrados}}"
  },
  "core/audits/seo/link-text.js | failureTitle": {
    "message": "Los enlaces no tienen texto descriptivo"
  },
  "core/audits/seo/link-text.js | title": {
    "message": "Los enlaces tienen texto descriptivo"
  },
  "core/audits/seo/manual/structured-data.js | description": {
    "message": "Ejecuta la [Herramienta de prueba de datos estructurados](https://developers.google.com/search/docs/appearance/structured-data/) para validar los datos estructurados. [Más información sobre los datos estructurados](https://developer.chrome.com/docs/lighthouse/seo/structured-data/)"
  },
  "core/audits/seo/manual/structured-data.js | title": {
    "message": "Los datos estructurados son válidos"
  },
  "core/audits/seo/meta-description.js | description": {
    "message": "Se pueden incluir metadescripciones en los resultados de búsqueda para resumir brevemente el contenido de la página. [Más información sobre la metadescripción](https://developer.chrome.com/docs/lighthouse/seo/meta-description/)"
  },
  "core/audits/seo/meta-description.js | explanation": {
    "message": "El texto de la descripción está vacío."
  },
  "core/audits/seo/meta-description.js | failureTitle": {
    "message": "El documento no tiene una metadescripción"
  },
  "core/audits/seo/meta-description.js | title": {
    "message": "El documento tiene una metadescripción"
  },
  "core/audits/seo/robots-txt.js | description": {
    "message": "Si el formato del archivo robots.txt no es correcto, es posible que los rastreadores no puedan interpretar cómo quieres que se rastree o indexe tu sitio web. [Más información sobre robots.txt](https://developer.chrome.com/docs/lighthouse/seo/invalid-robots-txt/)"
  },
  "core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
    "message": "La solicitud de robots.txt ha devuelto el siguiente código de estado HTTP: {statusCode}"
  },
  "core/audits/seo/robots-txt.js | displayValueValidationError": {
    "message": "{itemCount,plural, =1{1 error encontrado}other{# errores encontrados}}"
  },
  "core/audits/seo/robots-txt.js | explanation": {
    "message": "Lighthouse no ha podido descargar un archivo robots.txt"
  },
  "core/audits/seo/robots-txt.js | failureTitle": {
    "message": "robots.txt no es válido"
  },
  "core/audits/seo/robots-txt.js | title": {
    "message": "robots.txt es válido"
  },
  "core/audits/server-response-time.js | description": {
    "message": "Mantén breve el tiempo de respuesta del servidor para el documento principal, puesto que todas las demás solicitudes dependen de él. [Más información sobre la métrica Tiempo hasta el primer byte](https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/)"
  },
  "core/audits/server-response-time.js | displayValue": {
    "message": "El documento raíz ha tardado {timeInMs, number, milliseconds} ms"
  },
  "core/audits/server-response-time.js | failureTitle": {
    "message": "Reducir el tiempo de respuesta inicial del servidor"
  },
  "core/audits/server-response-time.js | title": {
    "message": "El tiempo de respuesta inicial del servidor fue breve"
  },
  "core/audits/third-party-cookies.js | description": {
    "message": "Las cookies de terceros podrían estar bloqueadas en algunos contextos. [Más información sobre cómo prepararse para las restricciones de las cookies de terceros](https://privacysandbox.google.com/cookies/prepare/overview)"
  },
  "core/audits/third-party-cookies.js | displayValue": {
    "message": "{itemCount,plural, =1{1 cookie encontrada}other{# cookies encontradas}}"
  },
  "core/audits/third-party-cookies.js | failureTitle": {
    "message": "Usa cookies de terceros"
  },
  "core/audits/third-party-cookies.js | title": {
    "message": "No usa cookies de terceros"
  },
  "core/audits/trusted-types-xss.js | columnSeverity": {
    "message": "Gravedad"
  },
  "core/audits/trusted-types-xss.js | description": {
    "message": "La directiva `require-trusted-types-for` del encabezado `Content-Security-Policy` (CSP) indica a los user-agents que controlen los datos que se pasan a las funciones de sumidero de XSS basado en DOM. [Consulta más información sobre cómo mitigar el XSS basado en DOM con Trusted Types](https://developer.chrome.com/docs/lighthouse/best-practices/trusted-types-xss)."
  },
  "core/audits/trusted-types-xss.js | noTrustedTypesToMitigateXss": {
    "message": "No se ha encontrado ningún encabezado `Content-Security-Policy` con la directiva Trusted Types"
  },
  "core/audits/trusted-types-xss.js | title": {
    "message": "Mitigar el XSS basado en DOM con Trusted Types"
  },
  "core/audits/unsized-images.js | description": {
    "message": "En los elementos de imagen, especifica un ancho y una altura explícitos para reducir los cambios de diseño y mejorar el CLS. [Consulta cómo configurar las dimensiones de una imagen](https://web.dev/articles/optimize-cls#images_without_dimensions)"
  },
  "core/audits/unsized-images.js | failureTitle": {
    "message": "Los elementos de imagen no tienen `width` y `height` explícitos"
  },
  "core/audits/unsized-images.js | title": {
    "message": "Los elementos de imagen tienen `width` y `height` explícitos"
  },
  "core/audits/user-timings.js | columnType": {
    "message": "Tipo"
  },
  "core/audits/user-timings.js | description": {
    "message": "Te recomendamos que uses la API User Timing en tu aplicación para calcular su rendimiento real durante las principales experiencias de usuario. [Más información sobre las marcas de User Timings](https://developer.chrome.com/docs/lighthouse/performance/user-timings/)"
  },
  "core/audits/user-timings.js | displayValue": {
    "message": "{itemCount,plural, =1{1 tiempo de usuario}other{# tiempos de usuario}}"
  },
  "core/audits/user-timings.js | title": {
    "message": "Medidas y marcas de User Timing"
  },
  "core/audits/valid-source-maps.js | columnMapURL": {
    "message": "URL de mapa"
  },
  "core/audits/valid-source-maps.js | description": {
    "message": "Los mapas de origen traducen el código minificado al código fuente original. Esto ayuda a los desarrolladores a depurar en producción. Además, Lighthouse puede proporcionar sugerencias adicionales. Plantéate desplegar mapas de origen para disfrutar de estas ventajas. [Más información sobre los mapas de origen](https://developer.chrome.com/docs/devtools/javascript/source-maps/)"
  },
  "core/audits/valid-source-maps.js | failureTitle": {
    "message": "No hay mapas de origen para JavaScript propio de gran tamaño"
  },
  "core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
    "message": "La biblioteca de JavaScript de gran tamaño no tiene un mapa de origen"
  },
  "core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
    "message": "{missingItems,plural, =1{Advertencia: Falta 1 elemento en `.sourcesContent`}other{Advertencia: Faltan # elementos en `.sourcesContent`}}"
  },
  "core/audits/valid-source-maps.js | title": {
    "message": "La página tiene mapas de origen válidos"
  },
  "core/config/default-config.js | a11yAriaGroupDescription": {
    "message": "A continuación se indican consejos para optimizar el uso de ARIA en tu aplicación, lo que puede mejorar la experiencia de los usuarios de tecnologías de asistencia, como los lectores de pantalla."
  },
  "core/config/default-config.js | a11yAriaGroupTitle": {
    "message": "ARIA"
  },
  "core/config/default-config.js | a11yAudioVideoGroupDescription": {
    "message": "Aquí tienes consejos para proporcionar contenido alternativo para audio y vídeo. Así se puede mejorar la experiencia de los usuarios con dificultades auditivas o visuales."
  },
  "core/config/default-config.js | a11yAudioVideoGroupTitle": {
    "message": "Audio y vídeo"
  },
  "core/config/default-config.js | a11yBestPracticesGroupDescription": {
    "message": "Estos elementos destacan las prácticas recomendadas de accesibilidad más habituales."
  },
  "core/config/default-config.js | a11yBestPracticesGroupTitle": {
    "message": "Prácticas recomendadas"
  },
  "core/config/default-config.js | a11yCategoryDescription": {
    "message": "Estas comprobaciones permiten identificar oportunidades para [mejorar la accesibilidad de tu aplicación web](https://developer.chrome.com/docs/lighthouse/accessibility/). La detección automática solo puede detectar un subconjunto de problemas y no garantiza la accesibilidad de tu aplicación web, por lo que también te recomendamos que hagas [pruebas manuales](https://web.dev/articles/how-to-review)."
  },
  "core/config/default-config.js | a11yCategoryManualDescription": {
    "message": "Estos elementos se ocupan de áreas que las herramientas de prueba automáticas no pueden analizar. Consulta más información sobre cómo [revisar la accesibilidad](https://web.dev/articles/how-to-review) en nuestra guía."
  },
  "core/config/default-config.js | a11yCategoryTitle": {
    "message": "Accesibilidad"
  },
  "core/config/default-config.js | a11yColorContrastGroupDescription": {
    "message": "A continuación se indican consejos para facilitar la lectura del contenido."
  },
  "core/config/default-config.js | a11yColorContrastGroupTitle": {
    "message": "Contraste"
  },
  "core/config/default-config.js | a11yLanguageGroupDescription": {
    "message": "A continuación se indican consejos para que los usuarios con diversas configuraciones regionales puedan interpretar mejor el contenido de las páginas."
  },
  "core/config/default-config.js | a11yLanguageGroupTitle": {
    "message": "Internacionalización y localización"
  },
  "core/config/default-config.js | a11yNamesLabelsGroupDescription": {
    "message": "A continuación se indican consejos para mejorar la semántica de los controles de tu aplicación. Estos consejos pueden mejorar la experiencia de los usuarios de tecnologías de asistencia, como los lectores de pantalla."
  },
  "core/config/default-config.js | a11yNamesLabelsGroupTitle": {
    "message": "Nombres y etiquetas"
  },
  "core/config/default-config.js | a11yNavigationGroupDescription": {
    "message": "Aquí tienes consejos para facilitar el desplazamiento con el teclado en tu aplicación."
  },
  "core/config/default-config.js | a11yNavigationGroupTitle": {
    "message": "Navegación"
  },
  "core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
    "message": "A continuación se indican consejos para mejorar la lectura de datos en tablas o en listas con tecnología asistencial, como los lectores de pantalla."
  },
  "core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
    "message": "Tablas y listas"
  },
  "core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
    "message": "Compatibilidad con navegadores"
  },
  "core/config/default-config.js | bestPracticesCategoryTitle": {
    "message": "Prácticas recomendadas"
  },
  "core/config/default-config.js | bestPracticesGeneralGroupTitle": {
    "message": "General"
  },
  "core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
    "message": "Confianza y seguridad"
  },
  "core/config/default-config.js | bestPracticesUXGroupTitle": {
    "message": "Experiencia de usuario"
  },
  "core/config/default-config.js | diagnosticsGroupDescription": {
    "message": "Consulta más información sobre el rendimiento de tu aplicación. Estos datos no [afectan directamente](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) a la puntuación del rendimiento."
  },
  "core/config/default-config.js | diagnosticsGroupTitle": {
    "message": "Diagnósticos"
  },
  "core/config/default-config.js | firstPaintImprovementsGroupDescription": {
    "message": "El aspecto más importante del rendimiento es la rapidez con la que se renderizan los píxeles en la pantalla. Métricas clave: Primer renderizado con contenido y Primer renderizado significativo"
  },
  "core/config/default-config.js | firstPaintImprovementsGroupTitle": {
    "message": "Mejoras del primer renderizado"
  },
  "core/config/default-config.js | insightsGroupDescription": {
    "message": "Estas estadísticas también están disponibles en el panel Rendimiento de Chrome DevTools. [Graba una traza](https://developer.chrome.com/docs/devtools/performance/reference) para ver información más detallada."
  },
  "core/config/default-config.js | insightsGroupTitle": {
    "message": "Estadísticas"
  },
  "core/config/default-config.js | metricGroupTitle": {
    "message": "Métricas"
  },
  "core/config/default-config.js | overallImprovementsGroupDescription": {
    "message": "Mejora la experiencia de carga general para que la página responda bien y se pueda usar lo antes posible. Métricas clave: Tiempo hasta que está interactiva, Speed Index"
  },
  "core/config/default-config.js | overallImprovementsGroupTitle": {
    "message": "Mejoras generales"
  },
  "core/config/default-config.js | performanceCategoryTitle": {
    "message": "Rendimiento"
  },
  "core/config/default-config.js | seoCategoryDescription": {
    "message": "Estas comprobaciones aseguran que tu página siga las recomendaciones básicas sobre optimización en buscadores. Hay muchos otros factores adicionales que Lighthouse no valora aquí y que pueden afectar a tu posicionamiento en las búsquedas, como el rendimiento en las [Métricas web principales](https://web.dev/explore/vitals). [Consulta más información sobre las Directrices básicas de la Búsqueda de Google](https://support.google.com/webmasters/answer/35769)."
  },
  "core/config/default-config.js | seoCategoryManualDescription": {
    "message": "Ejecuta estos validadores adicionales en tu sitio web para comprobar más prácticas recomendadas de SEO."
  },
  "core/config/default-config.js | seoCategoryTitle": {
    "message": "SEO"
  },
  "core/config/default-config.js | seoContentGroupDescription": {
    "message": "Edita el código HTML de tu página web de forma que los rastreadores puedan entender mejor el contenido de tu aplicación."
  },
  "core/config/default-config.js | seoContentGroupTitle": {
    "message": "Prácticas recomendadas de contenido"
  },
  "core/config/default-config.js | seoCrawlingGroupDescription": {
    "message": "Para aparecer en los resultados de búsqueda, los rastreadores necesitan acceder a tu aplicación."
  },
  "core/config/default-config.js | seoCrawlingGroupTitle": {
    "message": "Rastrear e indexar"
  },
  "core/config/default-config.js | seoMobileGroupDescription": {
    "message": "Asegúrate de que tus páginas estén optimizadas para móviles de forma que los usuarios no tengan que pellizcar o ampliar la pantalla para poder leer su contenido. [Consulta cómo optimizar páginas para móviles](https://developers.google.com/search/mobile-sites/)."
  },
  "core/config/default-config.js | seoMobileGroupTitle": {
    "message": "Optimización para móviles"
  },
  "core/gather/driver/environment.js | warningSlowHostCpu": {
    "message": "Parece que el dispositivo probado tiene una CPU más lenta de lo que espera Lighthouse. Esto puede afectar negativamente a la puntuación de rendimiento. Más información sobre cómo [calibrar un multiplicador de ralentización de CPU adecuado](https://github.com/GoogleChrome/lighthouse/blob/main/docs/throttling.md#cpu-throttling)"
  },
  "core/gather/driver/navigation.js | warningRedirected": {
    "message": "Es posible que la página no se esté cargando correctamente porque la URL de prueba ({requested}) se ha redirigido a {final}. Prueba directamente la segunda URL."
  },
  "core/gather/driver/navigation.js | warningTimeout": {
    "message": "La página ha tardado demasiado en cargar como para terminar dentro del límite de tiempo. Es posible que el resultado esté incompleto."
  },
  "core/gather/driver/storage.js | warningCacheTimeout": {
    "message": "Se ha agotado el tiempo de espera para borrar la caché del navegador. Prueba a auditar esta página de nuevo e informa del error si el problema persiste."
  },
  "core/gather/driver/storage.js | warningData": {
    "message": "{locationCount,plural, =1{Puede que algunos datos almacenados hayan afectado al rendimiento de carga en esta ubicación: {locations}. Haz una auditoría de esta página en una ventana de Incógnito para evitar que esos recursos afecten a tus puntuaciones.}other{Puede que algunos datos almacenados hayan afectado al rendimiento de carga en estas ubicaciones: {locations}. Haz una auditoría de esta página en una ventana de Incógnito para evitar que esos recursos afecten a tus puntuaciones.}}"
  },
  "core/gather/driver/storage.js | warningOriginDataTimeout": {
    "message": "Se ha agotado el tiempo de espera para borrar los datos de origen. Prueba a auditar esta página de nuevo e informa del error si el problema persiste."
  },
  "core/gather/gatherers/link-elements.js | headerParseWarning": {
    "message": "No se ha podido analizar el encabezado `link` ({error}): `{header}`"
  },
  "core/gather/timespan-runner.js | warningNavigationDetected": {
    "message": "Se ha detectado una navegación de páginas durante la ejecución. No se recomienda usar el modo Tiempo para auditar las navegaciones de páginas. Usa el modo de navegación para auditar las navegaciones de página y mejorar la atribución de terceros y la detección del hilo principal."
  },
  "core/lib/csp-evaluator.js | allowlistFallback": {
    "message": "Puedes añadir esquemas de URL https: y http: (los navegadores que admiten `'strict-dynamic'` los ignoran) para que sea retrocompatible con navegadores anteriores."
  },
  "core/lib/csp-evaluator.js | deprecatedDisownOpener": {
    "message": "La directiva `disown-opener` está obsoleta desde la CSP3. Usa el encabezado Cross-Origin-Opener-Policy en su lugar."
  },
  "core/lib/csp-evaluator.js | deprecatedReferrer": {
    "message": "La directiva `referrer` está obsoleta desde la CSP2. Usa el encabezado Referrer-Policy en su lugar."
  },
  "core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
    "message": "La directiva `reflected-xss` está obsoleta desde la CSP2. Usa el encabezado X-XSS-Protection en su lugar."
  },
  "core/lib/csp-evaluator.js | missingBaseUri": {
    "message": "La falta de `base-uri` permite que las etiquetas `<base>` insertadas establezcan la URL base para todas las URLs relativas (por ejemplo, secuencias de comandos) en un dominio controlado por un atacante. Te recomendamos que asignes el valor `'none'` o `'self'` a `base-uri`."
  },
  "core/lib/csp-evaluator.js | missingObjectSrc": {
    "message": "La falta de `object-src` permite que se inserten complementos que ejecutan secuencias de comandos no seguras. Si puedes, te recomendamos que asignes el valor `'none'` a `object-src`."
  },
  "core/lib/csp-evaluator.js | missingScriptSrc": {
    "message": "Falta la directiva `script-src`. Esta directiva permite que se ejecuten secuencias de comandos que no son seguras."
  },
  "core/lib/csp-evaluator.js | missingSemicolon": {
    "message": "¿Te has olvidado del punto y coma? Parece que {keyword} es una directiva, no una palabra clave."
  },
  "core/lib/csp-evaluator.js | nonceCharset": {
    "message": "Los nonces deben usar el conjunto de caracteres base64."
  },
  "core/lib/csp-evaluator.js | nonceLength": {
    "message": "Los nonces deben tener un mínimo de 8 caracteres."
  },
  "core/lib/csp-evaluator.js | plainUrlScheme": {
    "message": "Evita usar esquemas de URL simples ({keyword}) en esta directiva. Los esquemas de URL simples permiten obtener secuencias de comandos de dominios no seguros."
  },
  "core/lib/csp-evaluator.js | plainWildcards": {
    "message": "Evita usar comodines simples ({keyword}) en esta directiva. Los comodines simples permiten obtener secuencias de comandos de dominios no seguros."
  },
  "core/lib/csp-evaluator.js | reportToOnly": {
    "message": "El destino de los informes solo se configura con la directiva report-to. Esta directiva solo la admiten los navegadores Chromium, así que se recomienda usar también una directiva `report-uri`."
  },
  "core/lib/csp-evaluator.js | reportingDestinationMissing": {
    "message": "Ninguna CSP proporciona un destino de informes. Por ello, es más difícil mantener la CSP a lo largo del tiempo y monitorizar las vulnerabilidades."
  },
  "core/lib/csp-evaluator.js | strictDynamic": {
    "message": "La lista de hosts permitidos se puede sortear con frecuencia. En su lugar, considera usar nonces o hashes de la CSP junto con `'strict-dynamic'` si es necesario."
  },
  "core/lib/csp-evaluator.js | unknownDirective": {
    "message": "Directiva CSP desconocida."
  },
  "core/lib/csp-evaluator.js | unknownKeyword": {
    "message": "Parece que {keyword} no es una palabra clave válida."
  },
  "core/lib/csp-evaluator.js | unsafeInline": {
    "message": "`'unsafe-inline'` permite que se ejecuten secuencias de comandos in-page y gestores de eventos que no son seguros. Puedes usar nonces o hashes de CSP para permitir secuencias de comandos individualmente."
  },
  "core/lib/csp-evaluator.js | unsafeInlineFallback": {
    "message": "Puedes añadir `'unsafe-inline'` (los navegadores que admiten nonces o hashes la ignoran) para que sea retrocompatible con navegadores anteriores."
  },
  "core/lib/deprecation-description.js | feature": {
    "message": "Consulta la página de estado de la función para ver más detalles."
  },
  "core/lib/deprecation-description.js | milestone": {
    "message": "Este cambio se aplicará con la versión principal {milestone}."
  },
  "core/lib/deprecation-description.js | title": {
    "message": "Función obsoleta usada"
  },
  "core/lib/i18n/i18n.js | columnBlockingTime": {
    "message": "Tiempo de bloqueo del hilo principal"
  },
  "core/lib/i18n/i18n.js | columnCacheTTL": {
    "message": "Tiempo de vida en caché"
  },
  "core/lib/i18n/i18n.js | columnDescription": {
    "message": "Descripción"
  },
  "core/lib/i18n/i18n.js | columnDuration": {
    "message": "Duración"
  },
  "core/lib/i18n/i18n.js | columnElement": {
    "message": "Elemento"
  },
  "core/lib/i18n/i18n.js | columnFailingElem": {
    "message": "Elementos con errores"
  },
  "core/lib/i18n/i18n.js | columnLocation": {
    "message": "Ubicación"
  },
  "core/lib/i18n/i18n.js | columnName": {
    "message": "Nombre"
  },
  "core/lib/i18n/i18n.js | columnRequests": {
    "message": "Solicitudes"
  },
  "core/lib/i18n/i18n.js | columnResourceSize": {
    "message": "Tamaño del recurso"
  },
  "core/lib/i18n/i18n.js | columnResourceType": {
    "message": "Tipo de recurso"
  },
  "core/lib/i18n/i18n.js | columnSize": {
    "message": "Tamaño"
  },
  "core/lib/i18n/i18n.js | columnSource": {
    "message": "Fuente"
  },
  "core/lib/i18n/i18n.js | columnStartTime": {
    "message": "Hora de inicio"
  },
  "core/lib/i18n/i18n.js | columnTimeSpent": {
    "message": "Duración"
  },
  "core/lib/i18n/i18n.js | columnTransferSize": {
    "message": "Tamaño de la transferencia"
  },
  "core/lib/i18n/i18n.js | columnURL": {
    "message": "URL"
  },
  "core/lib/i18n/i18n.js | columnWastedBytes": {
    "message": "Ahorro estimado"
  },
  "core/lib/i18n/i18n.js | columnWastedMs": {
    "message": "Ahorro estimado"
  },
  "core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
    "message": "Cambios de diseño acumulados"
  },
  "core/lib/i18n/i18n.js | displayValueByteSavings": {
    "message": "Ahorro estimado de {wastedBytes, number, bytes} KiB"
  },
  "core/lib/i18n/i18n.js | displayValueElementsFound": {
    "message": "{nodeCount,plural, =1{1 elemento encontrado}other{# elementos encontrados}}"
  },
  "core/lib/i18n/i18n.js | displayValueMsSavings": {
    "message": "Ahorro estimado de {wastedMs, number, milliseconds} ms"
  },
  "core/lib/i18n/i18n.js | documentResourceType": {
    "message": "Documento"
  },
  "core/lib/i18n/i18n.js | firstContentfulPaintMetric": {
    "message": "First Contentful Paint"
  },
  "core/lib/i18n/i18n.js | firstMeaningfulPaintMetric": {
    "message": "Primer renderizado significativo"
  },
  "core/lib/i18n/i18n.js | fontResourceType": {
    "message": "Fuente"
  },
  "core/lib/i18n/i18n.js | imageResourceType": {
    "message": "Imagen"
  },
  "core/lib/i18n/i18n.js | interactionToNextPaint": {
    "message": "Interacción con el siguiente renderizado"
  },
  "core/lib/i18n/i18n.js | interactiveMetric": {
    "message": "Tiempo necesario para interactuar"
  },
  "core/lib/i18n/i18n.js | itemSeverityHigh": {
    "message": "Alta"
  },
  "core/lib/i18n/i18n.js | itemSeverityLow": {
    "message": "Baja"
  },
  "core/lib/i18n/i18n.js | itemSeverityMedium": {
    "message": "Media"
  },
  "core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
    "message": "Renderizado del mayor elemento con contenido"
  },
  "core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
    "message": "Latencia potencial máxima de la primera interacción"
  },
  "core/lib/i18n/i18n.js | mediaResourceType": {
    "message": "Contenido multimedia"
  },
  "core/lib/i18n/i18n.js | ms": {
    "message": "{timeInMs, number, milliseconds} ms"
  },
  "core/lib/i18n/i18n.js | otherResourceType": {
    "message": "Otros"
  },
  "core/lib/i18n/i18n.js | otherResourcesLabel": {
    "message": "Otros recursos"
  },
  "core/lib/i18n/i18n.js | scriptResourceType": {
    "message": "Secuencia de comandos"
  },
  "core/lib/i18n/i18n.js | seconds": {
    "message": "{timeInMs, number, seconds} s"
  },
  "core/lib/i18n/i18n.js | speedIndexMetric": {
    "message": "Speed Index"
  },
  "core/lib/i18n/i18n.js | stylesheetResourceType": {
    "message": "Hoja de estilo"
  },
  "core/lib/i18n/i18n.js | thirdPartyResourceType": {
    "message": "Recursos externos"
  },
  "core/lib/i18n/i18n.js | total": {
    "message": "Total"
  },
  "core/lib/i18n/i18n.js | totalBlockingTimeMetric": {
    "message": "Total Blocking Time"
  },
  "core/lib/i18n/i18n.js | totalResourceType": {
    "message": "Total"
  },
  "core/lib/lh-error.js | badTraceRecording": {
    "message": "Se ha producido un error al registrar el rastro durante la carga de la página. Ejecuta Lighthouse de nuevo. ({errorCode})"
  },
  "core/lib/lh-error.js | criTimeout": {
    "message": "Se ha agotado el tiempo de espera de la conexión inicial del protocolo del depurador."
  },
  "core/lib/lh-error.js | didntCollectScreenshots": {
    "message": "Chrome no ha recopilado ninguna captura de pantalla al cargar la página. Comprueba que haya contenido visible en la página e intenta ejecutar Lighthouse de nuevo. ({errorCode})"
  },
  "core/lib/lh-error.js | dnsFailure": {
    "message": "Los servidores DNS no han podido resolver el dominio proporcionado."
  },
  "core/lib/lh-error.js | erroredRequiredArtifact": {
    "message": "No se ha podido recuperar el recurso {artifactName} necesario: {errorMessage}"
  },
  "core/lib/lh-error.js | internalChromeError": {
    "message": "Se ha producido un error interno de Chrome. Reinicia Chrome y prueba a ejecutar Lighthouse de nuevo."
  },
  "core/lib/lh-error.js | missingRequiredArtifact": {
    "message": "No se ha podido recuperar el recurso {artifactName} necesario."
  },
  "core/lib/lh-error.js | noFcp": {
    "message": "La página no ha renderizado ningún contenido. Comprueba que la ventana del navegador se mantenga en primer plano durante la carga y vuelve a intentarlo. ({errorCode})"
  },
  "core/lib/lh-error.js | noLcp": {
    "message": "La página no ha mostrado contenido que se considere renderizado del mayor elemento con contenido (LCP). Comprueba que la página tenga un elemento LCP válido y vuelve a intentarlo. ({errorCode})"
  },
  "core/lib/lh-error.js | notHtml": {
    "message": "La página proporcionada no es HTML (publicada en tipo de MIME {mimeType})."
  },
  "core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
    "message": "Esta versión de Chrome es demasiado antigua y no es compatible con {featureName}. Usa una versión más reciente para ver resultados completos."
  },
  "core/lib/lh-error.js | pageLoadFailed": {
    "message": "Lighthouse no ha podido cargar correctamente la página que has solicitado. Comprueba que estás probando la URL correcta y que el servidor responde correctamente a todas las solicitudes."
  },
  "core/lib/lh-error.js | pageLoadFailedHung": {
    "message": "Lighthouse no ha podido cargar correctamente la URL que has solicitado porque la página ha dejado de responder."
  },
  "core/lib/lh-error.js | pageLoadFailedInsecure": {
    "message": "La URL que has proporcionado no tiene un certificado de seguridad válido. {securityMessages}"
  },
  "core/lib/lh-error.js | pageLoadFailedInterstitial": {
    "message": "Chrome ha evitado la carga de la página con un intersticial. Comprueba que estás probando la URL correcta y que el servidor responde correctamente a todas las solicitudes."
  },
  "core/lib/lh-error.js | pageLoadFailedWithDetails": {
    "message": "Lighthouse no ha podido cargar correctamente la página que has solicitado. Comprueba que estás probando la URL correcta y que el servidor responde correctamente a todas las solicitudes. (Detalles: {errorDetails})"
  },
  "core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
    "message": "Lighthouse no ha podido cargar correctamente la página que has solicitado. Comprueba que estás probando la URL correcta y que el servidor responde correctamente a todas las solicitudes. (Código de estado: {statusCode})"
  },
  "core/lib/lh-error.js | pageLoadTookTooLong": {
    "message": "La página ha tardado demasiado tiempo en cargarse. Sigue los consejos del informe para reducir el tiempo de carga de la página y prueba a ejecutar Lighthouse de nuevo. ({errorCode})"
  },
  "core/lib/lh-error.js | protocolTimeout": {
    "message": "Se ha superado el tiempo asignado para la respuesta de protocolo de DevTools. (Método: {protocolMethod})"
  },
  "core/lib/lh-error.js | requestContentTimeout": {
    "message": "Se ha superado el tiempo asignado para obtener el contenido de los recursos"
  },
  "core/lib/lh-error.js | targetCrashed": {
    "message": "La pestaña del navegador ha fallado inesperadamente."
  },
  "core/lib/lh-error.js | urlInvalid": {
    "message": "La URL que has proporcionado no es válida."
  },
  "core/lib/navigation-error.js | warningStatusCode": {
    "message": "Lighthouse no ha podido cargar correctamente la página que has solicitado. Comprueba que estás probando la URL correcta y que el servidor responde correctamente a todas las solicitudes. (Código de estado: {errorCode})"
  },
  "core/lib/navigation-error.js | warningXhtml": {
    "message": "El tipo de MIME de la página es XHTML: Lighthouse no admite este tipo de documento explícitamente"
  },
  "core/user-flow.js | defaultFlowName": {
    "message": "Flujo de usuarios ({url})"
  },
  "core/user-flow.js | defaultNavigationName": {
    "message": "Informe de navegación ({url})"
  },
  "core/user-flow.js | defaultSnapshotName": {
    "message": "Informe de un instante ({url})"
  },
  "core/user-flow.js | defaultTimespanName": {
    "message": "Informe de tiempo ({url})"
  },
  "flow-report/src/i18n/ui-strings.js | allReports": {
    "message": "Todos los informes"
  },
  "flow-report/src/i18n/ui-strings.js | categories": {
    "message": "Categorías"
  },
  "flow-report/src/i18n/ui-strings.js | categoryAccessibility": {
    "message": "Accesibilidad"
  },
  "flow-report/src/i18n/ui-strings.js | categoryBestPractices": {
    "message": "Prácticas recomendadas"
  },
  "flow-report/src/i18n/ui-strings.js | categoryPerformance": {
    "message": "Rendimiento"
  },
  "flow-report/src/i18n/ui-strings.js | categorySeo": {
    "message": "SEO"
  },
  "flow-report/src/i18n/ui-strings.js | desktop": {
    "message": "Ordenador"
  },
  "flow-report/src/i18n/ui-strings.js | helpDialogTitle": {
    "message": "Interpretar los informes de flujo de Lighthouse"
  },
  "flow-report/src/i18n/ui-strings.js | helpLabel": {
    "message": "Interpretar flujos"
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionNavigation": {
    "message": "Usa los informes de navegación para..."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionSnapshot": {
    "message": "Usa los informes de un instante para..."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionTimespan": {
    "message": "Usa los informes de tiempo para..."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation1": {
    "message": "Obtener una puntuación del rendimiento de Lighthouse."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation2": {
    "message": "Medir métricas de rendimiento de carga de la página, como el renderizado del mayor elemento con contenido y el Speed Index."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation3": {
    "message": "Evaluar las funciones de una aplicación web progresiva."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseSnapshot1": {
    "message": "Detectar problemas de accesibilidad en aplicaciones de página única o formularios complejos."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseSnapshot2": {
    "message": "Evaluar las prácticas recomendadas para los menús y los elementos de interfaz de usuario ocultos tras las interacciones."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseTimespan1": {
    "message": "Medir los cambios de diseño y el tiempo de ejecución de JavaScript en una serie de interacciones."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseTimespan2": {
    "message": "Descubrir oportunidades de rendimiento para mejorar la experiencia en páginas de larga duración y en aplicaciones de página única."
  },
  "flow-report/src/i18n/ui-strings.js | highestImpact": {
    "message": "Mayor impacto"
  },
  "flow-report/src/i18n/ui-strings.js | informativeAuditCount": {
    "message": "{numInformative,plural, =1{{numInformative} auditoría informativa}other{{numInformative} auditorías informativas}}"
  },
  "flow-report/src/i18n/ui-strings.js | mobile": {
    "message": "Móvil"
  },
  "flow-report/src/i18n/ui-strings.js | navigationDescription": {
    "message": "Carga de la página"
  },
  "flow-report/src/i18n/ui-strings.js | navigationLongDescription": {
    "message": "Los informes de navegación analizan la carga de una sola página, exactamente igual que los informes originales de Lighthouse."
  },
  "flow-report/src/i18n/ui-strings.js | navigationReport": {
    "message": "Informe de navegación"
  },
  "flow-report/src/i18n/ui-strings.js | navigationReportCount": {
    "message": "{numNavigation,plural, =1{{numNavigation} informe de navegación}other{{numNavigation} informes de navegación}}"
  },
  "flow-report/src/i18n/ui-strings.js | passableAuditCount": {
    "message": "{numPassableAudits,plural, =1{{numPassableAudits} auditoría aceptable}other{{numPassableAudits} auditorías aceptables}}"
  },
  "flow-report/src/i18n/ui-strings.js | passedAuditCount": {
    "message": "{numPassed,plural, =1{{numPassed} auditoría superada}other{{numPassed} auditorías superadas}}"
  },
  "flow-report/src/i18n/ui-strings.js | ratingAverage": {
    "message": "Ni buena ni mala"
  },
  "flow-report/src/i18n/ui-strings.js | ratingError": {
    "message": "Error"
  },
  "flow-report/src/i18n/ui-strings.js | ratingFail": {
    "message": "Mala"
  },
  "flow-report/src/i18n/ui-strings.js | ratingPass": {
    "message": "Buena"
  },
  "flow-report/src/i18n/ui-strings.js | save": {
    "message": "Guardar"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotDescription": {
    "message": "Captura del estado de la página"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotLongDescription": {
    "message": "Los informes de un instante analizan la página en un estado concreto, normalmente tras las interacciones de los usuarios."
  },
  "flow-report/src/i18n/ui-strings.js | snapshotReport": {
    "message": "Informe de un instante"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotReportCount": {
    "message": "{numSnapshot,plural, =1{{numSnapshot} informe de un instante}other{{numSnapshot} informes de un instante}}"
  },
  "flow-report/src/i18n/ui-strings.js | summary": {
    "message": "Resumen"
  },
  "flow-report/src/i18n/ui-strings.js | timespanDescription": {
    "message": "Interacciones del usuario"
  },
  "flow-report/src/i18n/ui-strings.js | timespanLongDescription": {
    "message": "Los informes de tiempo analizan un periodo de tiempo arbitrario, que normalmente contiene interacciones de usuario."
  },
  "flow-report/src/i18n/ui-strings.js | timespanReport": {
    "message": "Informe de tiempo"
  },
  "flow-report/src/i18n/ui-strings.js | timespanReportCount": {
    "message": "{numTimespan,plural, =1{{numTimespan} informe de tiempo}other{{numTimespan} informes de tiempo}}"
  },
  "flow-report/src/i18n/ui-strings.js | title": {
    "message": "Informe de flujo de usuarios de Lighthouse"
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | AuthorizationCoveredByWildcard": {
    "message": "El carácter comodín (*) no cubrirá la autorización en la manipulación CORS de Access-Control-Allow-Headers."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CSSSelectorInternalMediaControlsOverlayCastButton": {
    "message": "El atributo disableRemotePlayback debería usarse para inhabilitar la integración predeterminada de Cast, en lugar de usar el selector -internal-media-controls-overlay-cast-button."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CSSValueAppearanceSliderVertical": {
    "message": "El valor de apariencia del CSS slider-vertical no está estandarizado y se eliminará."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
    "message": "Las solicitudes de recursos cuyas URLs contienen caracteres eliminados \\(n|r|t) de espacio y \"menor que\" (<) se bloquean. Elimina los saltos de línea y codifica los signos \"menor que\" de sitios como valores de atributos de elementos para cargar estos recursos."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
    "message": "chrome.loadTimes() está obsoleta. En su lugar, usa la API estandarizada Navigation Timing 2."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesFirstPaintAfterLoadTime": {
    "message": "chrome.loadTimes() está obsoleta. En su lugar, usa la API estandarizada Paint Timing."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesWasAlternateProtocolAvailable": {
    "message": "chrome.loadTimes() está obsoleta. En su lugar, usa la API estandarizada nextHopProtocol en Navigation Timing 2."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CookieWithTruncatingChar": {
    "message": "Las cookies que contengan un carácter \\(0|r|n) se rechazarán en lugar de truncarse."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginAccessBasedOnDocumentDomain": {
    "message": "La relajación de la política con el mismo origen estableciendo document.domain está obsoleta y se inhabilitará de forma predeterminada. Esta advertencia de desactivación se refiere a un acceso de orígenes cruzados que se habilitó estableciendo document.domain."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowAlert": {
    "message": "La activación de window.alert desde iframes de orígenes cruzados está obsoleta y se eliminará más adelante."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
    "message": "La activación de window.confirm desde iframes de orígenes cruzados está obsoleta y se eliminará más adelante."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
    "message": "La compatibilidad de data: URLs de SVGUseElement está obsoleta y se eliminará en el futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOrigin": {
    "message": "getCurrentPosition() y watchPosition() ya no funcionan en orígenes no seguros. Para usar esta función, deberías plantearte cambiar tu aplicación a un origen seguro, como HTTPS. Consulta https://goo.gle/chrome-insecure-origins para obtener más información."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOriginDeprecatedNotRemoved": {
    "message": "getCurrentPosition() y watchPosition() no están disponibles en orígenes no seguros. Para usar esta función, deberías plantearte cambiar tu aplicación a un origen seguro, como HTTPS. Consulta https://goo.gle/chrome-insecure-origins para obtener más información."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GetUserMediaInsecureOrigin": {
    "message": "getUserMedia() ya no funciona en orígenes no seguros. Para usar esta función, deberías plantearte cambiar tu aplicación a un origen seguro, como HTTPS. Consulta https://goo.gle/chrome-insecure-origins para obtener más información."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | HostCandidateAttributeGetter": {
    "message": "RTCPeerConnectionIceErrorEvent.hostCandidate está obsoleto. Usa RTCPeerConnectionIceErrorEvent.address o RTCPeerConnectionIceErrorEvent.port en su lugar."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | IdentityInCanMakePaymentEvent": {
    "message": "El origen del comerciante y los datos arbitrarios del evento de service worker de canmakepayment han quedado obsoletos y se eliminarán: topOrigin, paymentRequestOrigin, methodData y modifiers."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | InsecurePrivateNetworkSubresourceRequest": {
    "message": "El sitio web ha solicitado un subrecurso de una red a la que pudo acceder únicamente por la posición de red privilegiada de sus usuarios. Estas solicitudes exponen dispositivos y servidores no públicos a Internet, lo que aumenta el riesgo de que se produzca un ataque de falsificación de solicitud entre sitios (CSRF) o de que se filtre información. Para reducir estos riesgos, Chrome desasiste las solicitudes a subrecursos no públicos cuando se inician desde contextos no seguros, y empezará a bloquearlas."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | InterestGroupDailyUpdateUrl": {
    "message": "El campo dailyUpdateUrl de InterestGroups transferido a joinAdInterestGroup() ahora se llama updateUrl para indicar con mayor precisión su comportamiento."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | IntlV8BreakIterator": {
    "message": "Intl.v8BreakIterator ya no está disponible. Usa Intl.Segmenter en su lugar."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LocalCSSFileExtensionRejected": {
    "message": "No puede cargarse el CSS desde URLs file: a no ser que terminen con la extensión .css."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceAbortRemove": {
    "message": "El uso de SourceBuffer.abort() para anular la eliminación de intervalo asíncrona de remove() está obsoleto debido al cambio de la especificación. La compatibilidad se eliminará más adelante. Deberías procesar el evento updateend en su lugar. abort() solo está pensado para anular una subida de contenido multimedia asíncrona o restablecer el estado del analizador."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceDurationTruncatingBuffered": {
    "message": "La asignación a MediaSource.duration de valores situados por debajo de la marca de tiempo de presentación más alta de cualquier marco codificado en búfer está obsoleta debido al cambio de la especificación. La compatibilidad con la retirada implícita de contenido multimedia truncado en búfer se eliminará más adelante. En su lugar, deberías realizar remove(newDuration, oldDuration) de forma explícita en todos los sourceBuffers, donde se cumpla que newDuration < oldDuration."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NoSysexWebMIDIWithoutPermission": {
    "message": "Web MIDI solicitará permiso de uso aunque no se especifique el SysEx en MIDIOptions."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationInsecureOrigin": {
    "message": "La API Notification ya no puede usarse desde orígenes no seguros. Deberías plantearte cambiar tu aplicación a un origen seguro, como HTTPS. Consulta https://goo.gle/chrome-insecure-origins para obtener más información."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationPermissionRequestedIframe": {
    "message": "El permiso para la API Notification ya no puede solicitarse desde un iframe de orígenes cruzados. En su lugar, deberías plantearte solicitar permiso desde un marco de nivel superior o abrir una nueva ventana."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ObsoleteCreateImageBitmapImageOrientationNone": {
    "message": "La opción imageOrientation: 'none' de createImageBitmap ya no está disponible. En su lugar, usa createImageBitmap con la opción \\\\{imageOrientation: 'from-image'\\\\}."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ObsoleteWebRtcCipherSuite": {
    "message": "Tu colaborador está negociando una versión obsoleta de TLS o DTLS. Habla con tu colaborador para solucionarlo."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | OverflowVisibleOnReplacedElement": {
    "message": "Si se especifica overflow: visible en las etiquetas \"img\", \"video\" o \"canvas\", estas podrían generar contenido visual fuera de los límites del elemento. Consulta https://github.com/WICG/shared-element-transitions/blob/main/debugging_overflow_on_images.md."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | OverrideFlashEmbedwithHTML": {
    "message": "La inserción de vídeo Flash antiguo se ha reescrito en iframe HTML. Flash hace mucho que desapareció: este truco de reescritura está obsoleto y puede que se elimine en el futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PaymentInstruments": {
    "message": "paymentManager.instruments está obsoleta. Usa la instalación Just-In-Time para los controladores de pagos."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PaymentRequestCSPViolation": {
    "message": "Tu llamada de PaymentRequest ha eludido la directiva connect-src sobre política de seguridad de contenido (CSP). Esta elusión está obsoleta. Añade el identificador del método de pago de la API PaymentRequest (en el campo supportedMethods) a tu directiva connect-src de CSP."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PersistentQuotaType": {
    "message": "StorageType.persistent está obsoleto. Usa una versión estandarizada de navigator.storage en su lugar."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PictureSourceSrc": {
    "message": "<source src> con un <picture> superior no es válido y, por tanto, se ignorará. Usa <source srcset> en su lugar."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedCancelAnimationFrame": {
    "message": "El método webkitCancelAnimationFrame es específico para proveedores. En su lugar, utiliza el método estándar cancelAnimationFrame."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedRequestAnimationFrame": {
    "message": "El método webkitRequestAnimationFrame es específico para proveedores. En su lugar, utiliza el método estándar requestAnimationFrame."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoDisplayingFullscreen": {
    "message": "HTMLVideoElement.webkitDisplayingFullscreen ya no está disponible. En su lugar, usa Document.fullscreenElement."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoEnterFullScreen": {
    "message": "HTMLVideoElement.webkitEnterFullScreen() ya no está disponible. En su lugar, usa Element.requestFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoEnterFullscreen": {
    "message": "HTMLVideoElement.webkitEnterFullscreen() ya no está disponible. En su lugar, usa Element.requestFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoExitFullScreen": {
    "message": "HTMLVideoElement.webkitExitFullscreen() ya no está disponible. En su lugar, usa Document.exitFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoExitFullscreen": {
    "message": "HTMLVideoElement.webkitExitFullscreen() ya no está disponible. En su lugar, usa Document.exitFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoSupportsFullscreen": {
    "message": "HTMLVideoElement.webkitSupportsFullscreen ya no está disponible. En su lugar, usa Document.fullscreenEnabled."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrivacySandboxExtensionsAPI": {
    "message": "La API chrome.privacy.websites.privacySandboxEnabled dejará de estar disponible, aunque seguirá activa para ofrecer retrocompatibilidad hasta el lanzamiento de la versión M113. En su lugar, usa chrome.privacy.websites.topicsEnabled, chrome.privacy.websites.fledgeEnabled y chrome.privacy.websites.adMeasurementEnabled. Consulta https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpFalse": {
    "message": "La restricción DtlsSrtpKeyAgreement se ha eliminado. Le has asignado el valor false a esta restricción, lo que se interpreta como un intento de usar el método eliminado SDES key negotiation. Esta función se ha eliminado. Usa un servicio compatible con DTLS key negotiation en su lugar."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpTrue": {
    "message": "La restricción DtlsSrtpKeyAgreement se ha eliminado. Le has asignado el valor true a esta restricción, lo cual no ha tenido ningún efecto, pero puedes quitar esta restricción para organizarte mejor."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCPeerConnectionGetStatsLegacyNonCompliant": {
    "message": "La función basada en retrollamadas getStats() está obsoleta y se eliminará. En su lugar, usa la función getStats() que cumpla las especificaciones."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RangeExpand": {
    "message": "Range.expand() ya no está disponible. En su lugar, usa Selection.modify()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RequestedSubresourceWithEmbeddedCredentials": {
    "message": "Las solicitudes de subrecursos cuyas URLs contienen credenciales insertadas (por ejemplo, https://user:pass@host/) se bloquean."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RtcpMuxPolicyNegotiate": {
    "message": "La opción rtcpMuxPolicy está obsoleta y se eliminará."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | SharedArrayBufferConstructedWithoutIsolation": {
    "message": "SharedArrayBuffer necesitará aislamiento de otros orígenes. Consulta https://developer.chrome.com/blog/enabling-shared-array-buffer/ para obtener más información."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | TextToSpeech_DisallowedByAutoplay": {
    "message": "speechSynthesis.speak() sin la activación del usuario está obsoleta y se eliminará."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | UnloadHandler": {
    "message": "Los procesadores de eventos de descarga están obsoletos y se eliminarán."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
    "message": "Las extensiones deben aceptar el aislamiento de otros orígenes para seguir usando SharedArrayBuffer. Consulta https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
    "message": "UTF‑16 no es compatible con response.json en XMLHttpRequest"
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload": {
    "message": "El atributo síncrono XMLHttpRequest en el hilo principal está obsoleto por sus efectos negativos en la experiencia del usuario final. Para recibir más ayuda, consulta https://xhr.spec.whatwg.org/."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | animation": {
    "message": "Animación"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
    "message": "Los cambios de diseño se producen cuando los elementos se mueven sin que el usuario interactúe con ellos. [Investiga las causas de los cambios de diseño](https://web.dev/articles/optimize-cls), como la adición o eliminación de elementos o el cambio de fuentes a medida que se carga la página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
    "message": "Iframe inyectado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | layoutShiftCluster": {
    "message": "Clúster de cambios de diseño en {PH1}"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | noCulprits": {
    "message": "No se han detectado causas de los cambios de diseño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | noLayoutShifts": {
    "message": "No hay cambios de diseño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
    "message": "Causantes de los cambios de diseño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
    "message": "Principales causantes de los cambios de diseño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
    "message": "Elemento de imagen sin tamaño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | webFont": {
    "message": "Fuente web"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
    "message": "Peor clúster"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstLayoutShiftCluster": {
    "message": "Peor clúster de cambios de diseño"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | cacheTTL": {
    "message": "TTL de caché"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | description": {
    "message": "Una duración en caché más larga puede aumentar el número de visitas repetidas a tu página. [Más información](https://web.dev/uses-long-cache-ttl/)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | noRequestsToCache": {
    "message": "No hay solicitudes con políticas de caché ineficientes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | others": {
    "message": "{PH1} más"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | requestColumn": {
    "message": "Solicitud"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | title": {
    "message": "Usar tiempos de vida de caché eficientes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
    "message": "Un DOM de gran tamaño puede aumentar la duración de los cálculos de estilo y redistribución del diseño, lo que afecta a la capacidad de respuesta de la página. Un DOM de gran tamaño también aumenta el uso de memoria. [Consulta cómo evitar un tamaño de DOM excesivo](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | duration": {
    "message": "Duración"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | element": {
    "message": "Elemento"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | largeLayout": {
    "message": "Diseño ({PH1} objetos)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | largeStyleRecalc": {
    "message": "Recálculo de estilo ({PH1} elementos)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | maxChildren": {
    "message": "La mayoría de los elementos secundarios"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | maxDOMDepth": {
    "message": "Profundidad de DOM"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | statistic": {
    "message": "Estadística"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | title": {
    "message": "Optimizar tamaño del DOM"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | topUpdatesDescription": {
    "message": "Estos son los eventos de recálculo de diseño y estilo más grandes. El impacto en el rendimiento de estos elementos puede reducirse simplificando el DOM."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | totalElements": {
    "message": "Total de elementos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | value": {
    "message": "Valor"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
    "message": "La primera solicitud de red es la más importante.  Reduce la latencia evitando las redirecciones, asegurándote de que el servidor responda rápido y habilitando la compresión de texto."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
    "message": "Tenía redirecciones ({PH1} redirecciones, más de {PH2})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
    "message": "El servidor ha respondido lentamente (observado: {PH1})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
    "message": "Ninguna compresión aplicada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingRedirects": {
    "message": "Evita las redirecciones"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
    "message": "El servidor responde rápidamente (observado: {PH1})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
    "message": "Aplica compresión de texto"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | redirectsLabel": {
    "message": "Redirecciones"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | serverResponseTimeLabel": {
    "message": "Tiempo de respuesta del servidor"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
    "message": "Latencia de solicitud del documento"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | uncompressedDownload": {
    "message": "Descarga sin comprimir"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | columnDuplicatedBytes": {
    "message": "Bytes duplicados"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | columnSource": {
    "message": "Fuente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | description": {
    "message": "Quita los módulos de JavaScript grandes y duplicados de los paquetes para reducir el número de bytes innecesarios que consume la actividad de red."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | title": {
    "message": "JavaScript duplicado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
    "message": "Te recomendamos asignar el valor swap o optional a [font-display](https://developer.chrome.com/blog/font-display) para asegurarte de que el texto se vea de forma coherente. swap se puede optimizar aún más para mitigar los cambios de diseño con [anulaciones de métricas de fuente](https://developer.chrome.com/blog/font-fallbacks)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | fontColumn": {
    "message": "Fuente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
    "message": "Visualización de fuentes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | wastedTimeColumn": {
    "message": "Tiempo perdido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | anonymous": {
    "message": "(anónimo)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | description": {
    "message": "Se produce un reflow forzado cuando JavaScript consulta propiedades geométricas (como offsetWidth) después de que los estilos hayan sido invalidados por un cambio en el estado del DOM. Esto puede provocar un rendimiento deficiente. Consulta más información sobre los [reflows forzados](https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts) y las posibles mitigaciones."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | relatedStackTrace": {
    "message": "Rastreo de la pila"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | title": {
    "message": "Redistribución forzada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | topTimeConsumingFunctionCall": {
    "message": "Llamada a función principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | totalReflowTime": {
    "message": "Tiempo total de redistribución"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | unattributed": {
    "message": "[sin asignación]"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | description": {
    "message": "Empieza a investigar por la subparte más larga. [Se pueden minimizar los retrasos](https://web.dev/articles/optimize-inp#optimize_interactions). Para reducir el tiempo de procesamiento, [optimiza los costes del hilo principal](https://web.dev/articles/optimize-long-tasks), que suelen ser de JS."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | duration": {
    "message": "Duración"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | inputDelay": {
    "message": "Latencia de la interacción"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | noInteractions": {
    "message": "No se han detectado interacciones"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | presentationDelay": {
    "message": "Retraso de la presentación"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | processingDuration": {
    "message": "Duración del procesamiento"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | subpart": {
    "message": "Subparte"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | title": {
    "message": "Desglose de INP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
    "message": "Si se reduce el tiempo de descarga de las imágenes, se puede mejorar el tiempo de carga percibido de la página y el LCP. [Más información sobre la optimización del tamaño de las imágenes](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | estimatedSavings": {
    "message": "{PH1} (estimación: {PH2})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | noOptimizableImages": {
    "message": "No hay imágenes optimizables"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | optimizeFile": {
    "message": "Optimizar tamaño de archivo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | others": {
    "message": "{PH1} más"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | title": {
    "message": "Mejorar la entrega de imágenes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useCompression": {
    "message": "Aumentar el factor de compresión de la imagen podría mejorar su tamaño de descarga."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useModernFormat": {
    "message": "Usar un formato de imagen moderno (WebP, AVIF) o aumentar la compresión de la imagen podría mejorar el tamaño de descarga de esta imagen."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useResponsiveSize": {
    "message": "Este archivo de imagen es más grande de lo necesario ({PH1}) para las dimensiones mostradas ({PH2}). Usa imágenes adaptables para reducir el tamaño de descarga de la imagen."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
    "message": "Usar formatos de vídeo en lugar de GIFs puede mejorar el tamaño de descarga del contenido animado."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | description": {
    "message": "Cada [subparte tiene estrategias de mejora específicas](https://web.dev/articles/optimize-lcp#lcp-breakdown). Lo ideal es que la mayor parte del tiempo de LCP se dedique a cargar los recursos, no a los retrasos."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | duration": {
    "message": "Duración"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | elementRenderDelay": {
    "message": "Retraso de renderizado de elementos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | fieldDuration": {
    "message": "Percentil 75 del campo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | noLcp": {
    "message": "No se han detectado LCPs"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDelay": {
    "message": "Retraso de carga de recursos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDuration": {
    "message": "Duración de la carga del recurso"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | subpart": {
    "message": "Subparte"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | timeToFirstByte": {
    "message": "Time to First Byte"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | title": {
    "message": "Desglose de LCP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
    "message": "Optimiza el LCP haciendo [descubrible](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) la imagen de LCP desde el HTML directamente y [evita la carga en diferido](https://web.dev/articles/lcp-lazy-loading)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityApplied": {
    "message": "fetchpriority=high applied"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityShouldBeApplied": {
    "message": "Se debe aplicar fetchpriority=high"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lazyLoadNotApplied": {
    "message": "carga en diferido no aplicada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lcpLoadDelay": {
    "message": "La imagen de LCP se ha cargado {PH1} después del punto de inicio más temprano."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | noLcp": {
    "message": "No se han detectado LCPs"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | noLcpResource": {
    "message": "No se han detectado recursos de LCP porque el LCP no es una imagen"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | requestDiscoverable": {
    "message": "La solicitud es visible en el documento inicial"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
    "message": "Descubrimiento de solicitudes de LCP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
    "message": "Secuencia de comandos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnWastedBytes": {
    "message": "Bytes desperdiciados"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
    "message": "Los polyfills y los transforms permiten que los navegadores antiguos utilicen las nuevas funciones de JavaScript. Sin embargo, muchos de estos polyfills y transforms no son necesarios para los navegadores modernos. Te recomendamos que modifiques tu proceso de compilación de JavaScript para que no transpile las funciones de [Baseline](https://web.dev/articles/baseline-and-polyfills), a menos que sepas que debes admitir navegadores antiguos. [Descubre por qué la mayoría de los sitios pueden implementar código ES6+ sin transpilación](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
    "message": "JavaScript antiguo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | description": {
    "message": "HTTP/2 y HTTP/3 ofrecen muchas ventajas con respecto a HTTP/1.1, como multiplexing. [Más información sobre el uso de HTTP moderno](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | noOldProtocolRequests": {
    "message": "Ninguna solicitud ha usado HTTP/1.1, o su uso actual de HTTP/1.1 no presenta una oportunidad de optimización significativa. Las solicitudes HTTP/1.1 solo se marcan si seis o más recursos estáticos proceden del mismo origen y no se sirven desde un entorno de desarrollo local ni desde una fuente externa."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | protocol": {
    "message": "Protocolo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | request": {
    "message": "Solicitud"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | title": {
    "message": "HTTP moderno"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnOrigin": {
    "message": "Origen"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnRequest": {
    "message": "Solicitud"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnSource": {
    "message": "Fuente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnTime": {
    "message": "Hora"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnWastedMs": {
    "message": "Ahorro estimado de LCP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
    "message": "Conexión previa sin usar. Comprueba que el atributo crossorigin se use correctamente."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
    "message": "[Evita encadenar solicitudes críticas](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) reduciendo la longitud de las cadenas, disminuyendo el tamaño de los recursos o posponiendo la descarga de recursos innecesarios para mejorar la carga de la página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
    "message": "Añade sugerencias para [establecer conexión previamente](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) con tus orígenes más importantes, pero intenta usar 4 como máximo."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
    "message": "Candidatos para establecer conexión previamente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | maxCriticalPathLatency": {
    "message": "Latencia máxima de la ruta crítica:"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noNetworkDependencyTree": {
    "message": "No hay tareas de renderizado afectadas por dependencias de red"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectCandidates": {
    "message": "No hay más orígenes que sean buenos candidatos para establecer conexión previamente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectOrigins": {
    "message": "No hay orígenes con los que se haya establecido conexión previamente"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableDescription": {
    "message": "Las sugerencias para [establecer conexión previamente](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) ayudan al navegador a establecer una conexión antes de que se cargue la página, lo que ahorra tiempo al hacer la primera solicitud a ese origen. A continuación se indican los orígenes con los que la página ha establecido conexión previamente."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
    "message": "Orígenes preconectados"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
    "message": "Árbol de dependencia de red"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | tooManyPreconnectLinksWarning": {
    "message": "Se han encontrado más de 4 conexiones preconnect. Se deben usar con moderación y solo deben conectar con los orígenes más importantes."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | unusedWarning": {
    "message": "Se han establecido conexiones previamente que no se han usado. Utiliza preconnect solo para los orígenes que sea probable que solicite la página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | warningDescription": {
    "message": "Evita encadenar solicitudes críticas reduciendo la longitud de las cadenas, disminuyendo el tamaño de descarga de los recursos o posponiendo la descarga de recursos innecesarios para mejorar la carga de la página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
    "message": "Las solicitudes están bloqueando el renderizado inicial de la página, lo que puede retrasar el LCP. [Si se posponen o se insertan](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources), estas solicitudes de red pueden salir de la ruta crítica."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
    "message": "Duración"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | noRenderBlocking": {
    "message": "No hay solicitudes que bloqueen el renderizado para esta navegación"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | renderBlockingRequest": {
    "message": "Solicitud"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
    "message": "Solicitudes que bloquean el renderizado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
    "message": "Si los costes de Recalcular estilo siguen siendo altos, la optimización del selector puede reducirlos. [Optimiza los selectores](https://developer.chrome.com/docs/devtools/performance/selector-stats) con alto tiempo transcurrido y alto porcentaje de ruta lenta. Selectores más simples, menos selectores, un DOM más pequeño y un DOM más superficial reducirán los costes de coincidencia."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | elapsed": {
    "message": "Tiempo transcurrido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | enableSelectorData": {
    "message": "No se han encontrado datos de selectores de CSS. Las estadísticas del selector de CSS deben estar habilitadas en la configuración del panel de rendimiento."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | matchAttempts": {
    "message": "Intentos de coincidencia"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | matchCount": {
    "message": "Número de coincidencias"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
    "message": "Costes del selector de CSS"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectorElapsedTime": {
    "message": "Tiempo transcurrido del selector principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectorMatchAttempt": {
    "message": "Intento de coincidencia de selector principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectors": {
    "message": "Selectores principales"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | total": {
    "message": "Total"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | columnMainThreadTime": {
    "message": "Tiempo del hilo principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | columnThirdParty": {
    "message": "Tercero"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | columnTransferSize": {
    "message": "Tamaño de la transferencia"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
    "message": "El código de terceros puede afectar mucho a la velocidad de carga. [Reduce y aplaza la carga del código de terceros](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/) para priorizar el contenido de tu página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
    "message": "No se ha encontrado contenido externo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
    "message": "Terceros"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
    "message": "Las interacciones de toque pueden [retrasarse hasta 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) si el viewport no está optimizado para móviles."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
    "message": "Retraso de toque en móvil"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
    "message": "Optimizar viewport para móviles"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | HTTPMethodNotGET": {
    "message": "Solo las páginas que se han cargado a través de una solicitud GET pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | HTTPStatusNotOK": {
    "message": "Solo las páginas con un código de estado de 2XX se pueden almacenar en caché."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | JavaScriptExecution": {
    "message": "Chrome ha detectado un intento de ejecutar JavaScript mientras estaba en caché."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | appBanner": {
    "message": "Las páginas que han solicitado un AppBanner por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabled": {
    "message": "Las marcas inhabilitan la caché de páginas completas. Ve a chrome://flags/#back-forward-cache para habilitarla localmente en este dispositivo."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledByCommandLine": {
    "message": "La caché de páginas completas ha sido inhabilitada por la línea de comandos."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledByLowMemory": {
    "message": "La caché de páginas completas se ha inhabilitado porque no hay suficiente memoria."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledForDelegate": {
    "message": "Caché de páginas completas no admitida por delegado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledForPrerender": {
    "message": "La caché de páginas completas se ha inhabilitado para el prerrenderizador."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | broadcastChannel": {
    "message": "La página no se puede almacenar en caché porque incluye una instancia BroadcastChannel con procesadores registrados."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheControlNoStore": {
    "message": "Las páginas con un encabezado cache-control:no-store no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheFlushed": {
    "message": "La caché se ha borrado intencionadamente."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheLimit": {
    "message": "La página se ha quitado de la caché para poder almacenar otra."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | containsPlugins": {
    "message": "Las páginas que contienen complementos por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentDiscarded": {
    "message": "Sin definir"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentFileChooser": {
    "message": "Las páginas que usan la API FileChooser no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentFileSystemAccess": {
    "message": "Las páginas que usan la API File System Access no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaDevicesDispatcherHost": {
    "message": "Las páginas que usan Media Device Dispatcher no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaPlay": {
    "message": "Un reproductor multimedia estaba funcionando al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaSession": {
    "message": "Las páginas que usan la API MediaSession y definen un estado de reproducción no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaSessionService": {
    "message": "Las páginas que usan la API MediaSession y establecen controladores de acciones no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentScreenReader": {
    "message": "La caché de páginas completas está inhabilitada debido al lector de pantalla."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentSecurityHandler": {
    "message": "Las páginas que usan SecurityHandler no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentSerial": {
    "message": "Las páginas que usan la API Serial no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebAuthenticationAPI": {
    "message": "Las páginas que usan la API WebAuthentication no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebBluetooth": {
    "message": "Las páginas que usan la API WebBluetooth no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebUSB": {
    "message": "Las páginas que usan la API WebUSB no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cookieDisabled": {
    "message": "La caché de páginas completas está inhabilitada porque las cookies están inhabilitadas en una página que usa Cache-Control: no-store."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | dedicatedWorkerOrWorklet": {
    "message": "Las páginas que usan un worker o un worklet dedicado por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | documentLoaded": {
    "message": "El documento no había terminado de cargarse cuando lo abandonaste."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderAppBannerManager": {
    "message": "El banner de la aplicación estaba presente al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderChromePasswordManagerClientBindCredentialManager": {
    "message": "El gestor de contraseñas de Chrome estaba presente al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderDomDistillerSelfDeletingRequestDelegate": {
    "message": "La extracción del DOM estaba en curso al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderDomDistillerViewerSource": {
    "message": "El visor del extractor de DOM estaba presente al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionMessaging": {
    "message": "La caché de páginas completas está inhabilitada debido a extensiones que usan la API Messaging."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionMessagingForOpenPort": {
    "message": "Las extensiones con conexión de larga duración deben cerrar la conexión antes de acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionSentMessageToCachedFrame": {
    "message": "Hay extensiones con conexión de larga duración que han intentado enviar mensajes a marcos en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensions": {
    "message": "La caché de páginas completas está inhabilitada debido a las extensiones."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderModalDialog": {
    "message": "En la página se mostraba un diálogo modal, como un diálogo de reenvío de formulario o de contraseña HTTP, al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderOfflinePage": {
    "message": "La página sin conexión se mostraba al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderOomInterventionTabHelper": {
    "message": "La barra de intervención en caso de falta de memoria estaba presente al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderPermissionRequestManager": {
    "message": "Había solicitudes de permiso al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderPopupBlockerTabHelper": {
    "message": "El bloqueador de ventanas emergentes estaba presente al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderSafeBrowsingThreatDetails": {
    "message": "Se mostraban detalles de Navegación segura al salir."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderSafeBrowsingTriggeredPopupBlocker": {
    "message": "La función Navegación segura ha considerado que esta página hace un uso inadecuado y ha bloqueado la ventana emergente."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | enteredBackForwardCacheBeforeServiceWorkerHostAdded": {
    "message": "Se ha activado un service worker mientras la página estaba en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | errorDocument": {
    "message": "La caché de páginas completas se ha inhabilitado debido a un error de documento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | fencedFramesEmbedder": {
    "message": "Las páginas que usan FencedFrames no se pueden almacenar en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | foregroundCacheLimit": {
    "message": "La página se ha quitado de la caché para poder almacenar otra."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | grantedMediaStreamAccess": {
    "message": "Las páginas que han otorgado acceso de emisión multimedia por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | haveInnerContents": {
    "message": "Las páginas que tienen ciertos tipos de contenido insertado (por ejemplo, PDFs) no pueden usar la caché de páginas completas en estos momentos."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | idleManager": {
    "message": "Las páginas que usan IdleManager por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | indexedDBConnection": {
    "message": "Las páginas que tienen una conexión IndexedDB abierta por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | indexedDBEvent": {
    "message": "La caché de páginas completas se ha inhabilitado debido a un evento de IndexedDB."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | ineligibleAPI": {
    "message": "Se han usado APIs no válidas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | injectedJavascript": {
    "message": "Las páginas en las que las extensiones inyectan JavaScript no pueden usar la caché de páginas completas por el momento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | injectedStyleSheet": {
    "message": "Las páginas en las que las extensiones inyectan una StyleSheet no pueden usar la caché de páginas completas por el momento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | internalError": {
    "message": "Error interno."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | jsNetworkRequestReceivedCacheControlNoStoreResource": {
    "message": "La caché de páginas completas está inhabilitada porque algunas solicitudes de red de JavaScript han recibido un recurso con el encabezado Cache-Control: no-store."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | keepaliveRequest": {
    "message": "La caché de páginas completas se ha inhabilitado debido a una solicitud keepalive."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | keyboardLock": {
    "message": "Las páginas que usan el bloqueo de teclado por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | loading": {
    "message": "Esta página no había terminado de cargarse cuando la abandonaste."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | mainResourceHasCacheControlNoCache": {
    "message": "Las páginas cuyo recurso principal incluye cache-control:no-cache no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | mainResourceHasCacheControlNoStore": {
    "message": "Las páginas cuyo recurso principal incluye cache-control:no-store no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | navigationCancelledWhileRestoring": {
    "message": "La navegación se ha cancelado antes de que la página se pudiera restaurar desde la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkExceedsBufferLimit": {
    "message": "La página se ha quitado de la caché porque una conexión de red activa ha recibido demasiados datos. Chrome limita la cantidad de datos que puede recibir una página mientras está almacenada en caché."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestDatapipeDrainedAsBytesConsumer": {
    "message": "Las páginas que tienen fetch() o XHR en curso por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestRedirected": {
    "message": "La página se ha quitado de la caché de páginas completas porque una solicitud de red activa incluía un redireccionamiento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestTimeout": {
    "message": "La página se ha quitado de la caché porque una conexión de red ha estado abierta demasiado tiempo. Chrome limita el tiempo durante el que una página puede recibir datos mientras está almacenada en caché."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | noResponseHead": {
    "message": "Las páginas que no tienen un encabezado de respuesta válido no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | notMainFrame": {
    "message": "La navegación se ha producido en un marco que no es el principal."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingIndexedDBTransaction": {
    "message": "Las páginas con transacciones en curso de bases de datos indexadas por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestDirectSocket": {
    "message": "Las páginas con una solicitud de red en curso por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestFetch": {
    "message": "Las páginas con una solicitud de red de obtención en curso por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestOthers": {
    "message": "Las páginas con una solicitud de red en curso por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestXHR": {
    "message": "Las páginas con una solicitud de red XHR en curso por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | paymentManager": {
    "message": "Las páginas que usan PaymentManager por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | pictureInPicture": {
    "message": "Las páginas que usan imagen en imagen por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | printing": {
    "message": "Las páginas que muestran interfaz de impresión por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | relatedActiveContentsExist": {
    "message": "La página se ha abierto usando window.open() y otra pestaña hace referencia a ella, o la página ha abierto una ventana."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | rendererProcessCrashed": {
    "message": "El proceso de renderizado de la página que está en la caché de páginas completas ha fallado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | rendererProcessKilled": {
    "message": "El proceso de renderizado de la página que está en la caché de páginas completas se ha cerrado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedAudioCapturePermission": {
    "message": "Las páginas que han solicitado permisos de captura de audio por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedBackForwardCacheBlockedSensors": {
    "message": "Las páginas que han solicitado permisos de sensor por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedBackgroundWorkPermission": {
    "message": "Las páginas que han solicitado la sincronización en segundo plano o permisos de obtención por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedMIDIPermission": {
    "message": "Las páginas que han solicitado permisos MIDI por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedNotificationsPermission": {
    "message": "Las páginas que han solicitado permisos de notificaciones por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedStorageAccessGrant": {
    "message": "Las páginas que han solicitado acceso al almacenamiento por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedVideoCapturePermission": {
    "message": "Las páginas que han solicitado permisos de captura de vídeo por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | schemeNotHTTPOrHTTPS": {
    "message": "Solo las páginas cuyo esquema de URL es HTTP/HTTPS se pueden almacenar en caché."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerClaim": {
    "message": "La página ha sido reclamada por un service worker mientras está en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerPostMessage": {
    "message": "Un service worker ha intentado enviar MessageEvent a la página que está en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerUnregistration": {
    "message": "Se ha anulado el registro de ServiceWorker mientras una página estaba en la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerVersionActivation": {
    "message": "La página se ha quitado de la caché de páginas completas porque se ha activado un service worker."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sessionRestored": {
    "message": "Chrome se ha reiniciado y se han borrado las entradas de la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sharedWorker": {
    "message": "Las páginas que usan SharedWorker por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sharedWorkerMessage": {
    "message": "La página se ha quitado de la caché porque ha recibido un mensaje de un SharedWorker"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | speechRecognizer": {
    "message": "Las páginas que usan SpeechRecognizer por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | speechSynthesis": {
    "message": "Las páginas que usan SpeechSynthesis por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subframeIsNavigating": {
    "message": "Un iframe de la página ha comenzado una navegación que no ha completado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subresourceHasCacheControlNoCache": {
    "message": "Las páginas cuyo subrecurso incluye cache-control:no-cache no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subresourceHasCacheControlNoStore": {
    "message": "Las páginas cuyo subrecurso incluye cache-control:no-store no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | timeout": {
    "message": "La página ha superado el tiempo máximo que puede estar en la caché de páginas completas y ha caducado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | timeoutPuttingInCache": {
    "message": "La página ha agotado el tiempo de espera al acceder a la caché de páginas completas (probablemente, debido a controladores pagehide de larga duración)."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | unloadHandlerExistsInMainFrame": {
    "message": "La página tiene un controlador de descarga en el marco principal."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | unloadHandlerExistsInSubFrame": {
    "message": "La página tiene un controlador de descarga en un submarco."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | userAgentOverrideDiffers": {
    "message": "El navegador ha cambiado el encabezado de anulación de user-agent."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | wasGrantedMediaAccess": {
    "message": "Las páginas que han concedido acceso para grabar vídeo o audio por el momento no pueden usar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webDatabase": {
    "message": "Las páginas que usan WebDatabase por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webHID": {
    "message": "Las páginas que usan WebHID por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webLocks": {
    "message": "Las páginas que usan WebLocks por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webNfc": {
    "message": "Las páginas que usan WebNfc por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webOTPService": {
    "message": "Las páginas que usan WebOTPService por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTC": {
    "message": "Las páginas con WebRTC no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTCUsedWithCCNS": {
    "message": "La caché de páginas completas está inhabilitada porque se ha usado WebRTC."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webShare": {
    "message": "Las páginas que usan WebShare por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocket": {
    "message": "Las páginas con WebSocket no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocketUsedWithCCNS": {
    "message": "La caché de páginas completas está inhabilitada porque se ha usado WebSocket."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransport": {
    "message": "Las páginas con WebTransport no pueden acceder a la caché de páginas completas."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransportUsedWithCCNS": {
    "message": "La caché de páginas completas está inhabilitada porque se ha usado WebTransport."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webXR": {
    "message": "Las páginas que usan WebXR por el momento no pueden utilizar la caché de páginas completas."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
    "message": "En el caso del contenido animado, usa [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) para reducir el uso de la CPU mientras el contenido no aparece en pantalla."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | modern-image-formats": {
    "message": "Considera mostrar todos los componentes [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) en formatos WebP y especificar una alternativa adecuada para otros navegadores. [Más información](https://amp.dev/documentation/components/amp-img/#example:-specifying-a-fallback-image)"
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | offscreen-images": {
    "message": "Comprueba que estés usando [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) para cargar imágenes en diferido. [Más información](https://amp.dev/documentation/guides-and-tutorials/develop/media_iframes_3p/?format=websites#images)"
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | render-blocking-resources": {
    "message": "Utiliza herramientas como [AMP Optimizer](https://github.com/ampproject/amp-toolbox/tree/master/packages/optimizer) para [renderizar diseños AMP en el servidor](https://amp.dev/documentation/guides-and-tutorials/optimize-and-measure/server-side-rendering/)."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | unminified-css": {
    "message": "Consulta la [documentación de AMP](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/style_pages/) para asegurarte de que todos los estilos sean compatibles."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | uses-responsive-images": {
    "message": "El componente [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) admite el atributo [`srcset`](https://web.dev/use-srcset-to-automatically-choose-the-right-image/) para especificar las imágenes que se deben usar según el tamaño de la pantalla. [Más información](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/art_direction/)"
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | dom-size": {
    "message": "Si se están renderizando listas muy largas, puedes usar el desplazamiento virtual con el Component Dev Kit (CDK). [Más información](https://web.dev/virtualize-lists-with-angular-cdk/)"
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | total-byte-weight": {
    "message": "[Divide el código de ruta](https://web.dev/route-level-code-splitting-in-angular/) para reducir el tamaño de los paquetes de JavaScript. También puedes almacenar elementos en caché previamente con el [service worker de Angular](https://web.dev/precaching-with-the-angular-service-worker/)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | unminified-warning": {
    "message": "Si utilizas Angular CLI, asegúrate de que las compilaciones se generen en el modo de producción. [Más información](https://angular.io/guide/deployment#enable-runtime-production-mode)"
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | unused-javascript": {
    "message": "Si utilizas Angular CLI, incluye mapas de origen en tu compilación de producción para inspeccionar tus paquetes. [Más información](https://angular.io/guide/deployment#inspect-the-bundles)"
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | uses-rel-preload": {
    "message": "Precarga rutas para acelerar la navegación. [Más información](https://web.dev/route-preloading-in-angular/)"
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | uses-responsive-images": {
    "message": "Puedes usar la utilidad `BreakpointObserver` del Component Dev Kit (CDK) para gestionar los puntos de interrupción de imágenes. [Más información](https://material.angular.io/cdk/layout/overview)"
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | efficient-animated-content": {
    "message": "Considera subir tu `GIF` a un servicio que permita insertarlo como un vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | modern-image-formats": {
    "message": "Considera configurar [los formatos de imagen WebP con un estilo para convertir imágenes](https://www.drupal.org/docs/core-modules-and-themes/core-modules/image-module/working-with-images#styles) en tu sitio."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | offscreen-images": {
    "message": "Te recomendamos que configures la carga de imágenes en diferido en `Drupal`. Los formateadores de campos de imágenes admiten la carga `lazy` o `eager`."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | prioritize-lcp-image": {
    "message": "Si el elemento LCP se añade de forma dinámica a la página, tendrás que optimizar la imagen para mejorar el LCP. [Más información](https://www.smashingmagazine.com/2023/08/methods-improving-drupal-largest-contentful-paint-core-web-vital/)"
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | redirects": {
    "message": "Las redirecciones provocan retrasos adicionales antes de que la página se pueda cargar. Si el módulo [Redirect](https://www.drupal.org/project/redirect) está instalado, comprueba si se pueden quitar las redirecciones innecesarias. [Más información](https://developers.google.com/web/tools/lighthouse/audits/redirects)"
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
    "message": "Te recomendamos que uses [un módulo](https://www.drupal.org/project/critical_css) para insertar elementos CSS o JavaScript que sean esenciales y que utilices el atributo defer para insertar elementos CSS o JavaScript que no sean esenciales."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | server-response-time": {
    "message": "Reduce el tráfico con uno o varios módulos de almacenamiento en caché de `Drupal`, como `Internal Page Cache`, `Internal Dynamic Page Cache` y `BigPipe`. Combínalos con una CDN para mejorar aún más el tiempo de respuesta. Tus servidores de alojamiento deben utilizar OPcache de PHP. Te recomendamos que uses almacenamiento en caché de memoria como Redis o Memcached para reducir los tiempos de consulta a la base de datos. Por último, usa temas, módulos y servidores más rápidos de alto rendimiento para reducir el tiempo de respuesta del servidor."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | total-byte-weight": {
    "message": "Te recomendamos que utilices [estilos de imagen adaptable](https://www.drupal.org/documentation/modules/responsive_image) para reducir el tamaño de las imágenes que se cargan en tu página. Si utilizas `Views` para mostrar varios elementos de contenido en una página, te recomendamos que implementes la paginación para limitar el número de elementos de contenido que se muestran en una página determinada."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
    "message": "Comprueba que hayas habilitado la opción \"Agregar archivos de CSS\" en la página Administración > Configuración > Desarrollo."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-javascript": {
    "message": "Comprueba que hayas habilitado la opción \"Agregar archivos de JavaScript\" en la página Administración > Configuración > Desarrollo."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-css-rules": {
    "message": "Te recomendamos que elimines las reglas de CSS no utilizadas y adjuntes únicamente las bibliotecas de `Drupal` necesarias para la página o el componente correspondientes de una página. Para obtener más información, consulta la [documentación de `Drupal`](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define). Para identificar las bibliotecas adjuntas que añaden archivos de CSS no pertinentes, ejecuta la [cobertura de código](https://developer.chrome.com/docs/devtools/coverage) en Chrome DevTools. Puedes identificar el tema o el módulo responsable en la URL de la hoja de estilo cuando la agregación de CSS está inhabilitada en tu sitio de `Drupal`. Presta atención a los temas o módulos con varias hojas de estilo en la lista y con muchos elementos en rojo en la cobertura de código. Un tema o un módulo solo debería adjuntar una biblioteca de hojas de estilo si esta se usa en la página."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-javascript": {
    "message": "Te recomendamos que elimines los recursos de JavaScript no utilizados y adjuntes únicamente las bibliotecas de `Drupal` necesarias para la página o el componente correspondientes de una página. Consulta la [documentación de Drupal](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define) para obtener más información. Para identificar las bibliotecas adjuntas que añaden archivos de JavaScript no pertinentes, ejecuta la [cobertura de código](https://developer.chrome.com/docs/devtools/coverage) en Chrome DevTools. Puedes identificar el tema o módulo responsable en la URL de la secuencia de comandos cuando la agregación de JavaScript está inhabilitada en tu sitio de `Drupal`. Presta atención a los temas o módulos con varias secuencias de comandos en la lista y con muchos elementos en rojo en la cobertura de código. Un tema o un módulo solo debería adjuntar una biblioteca de secuencias de comandos si esta se usa en la página."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-long-cache-ttl": {
    "message": "Configura la \"Antigüedad máxima de la caché del navegador y el proxy\" en la página Administración > Configuración > Desarrollo. Más información sobre [la caché de `Drupal` y cómo optimizar para el rendimiento](https://www.drupal.org/docs/8/api/cache-api/cache-api)."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-optimized-images": {
    "message": "Puedes utilizar [un módulo](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=im_vid_3%3A123&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=image&solrsort=iss_project_release_usage+desc&op=Search) que optimice y reduzca automáticamente el tamaño de las imágenes subidas en el sitio sin perder calidad. Comprueba también que estés utilizando los [estilos de imágenes adaptables](https://www.drupal.org/documentation/modules/responsive_image) proporcionados por `Drupal` para todas las imágenes que se muestran en el sitio."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-rel-preconnect": {
    "message": "Puedes añadir sugerencias de recursos `Preconnect` o `dns-prefetch` instalando y configurando [un módulo](https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%5D=&f%5B3%5D=&f%5B4%5D=sm_field_project_type%3Afull&f%5B5%5D=&f%5B6%5D=&text=Preconnect&solrsort=score+desc&op=Search) que proporcione facilidades de sugerencias de recursos para el user-agent."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": {
    "message": "Comprueba que estés utilizando los [estilos de imagen adaptable](https://www.drupal.org/documentation/modules/responsive_image) nativos proporcionados por `Drupal`. Utiliza los estilos de imágenes adaptables al renderizar campos de imagen en modos de vista, vistas o imágenes subidas a través del editor WYSIWYG."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-text-compression": {
    "message": "Los recursos de texto se deberían publicar comprimidos (gzip, deflate o brotli) para minimizar el total de bytes de la red. Te recomendamos que uses una CDN que admita esta función de forma nativa o que configures el servidor web para que realice esta operación. [Más información](https://developers.google.com/web/tools/lighthouse/audits/text-compression)"
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Optimize Fonts` para utilizar automáticamente la función CSS `font-display` y asegurarte de que los usuarios puedan ver el texto mientras se cargan las fuentes web."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Next-Gen Formats` para convertir imágenes al formato WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Lazy Load Images` para posponer la carga de imágenes que no aparecen en pantalla hasta que sean necesarias."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Script Delay` para posponer los elementos de JS que no sean esenciales."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": {
    "message": "Usa [Ezoic Cloud Caching](https://pubdash.ezoic.com/leap/caching) para almacenar tu contenido en la caché de nuestra red internacional y reducir el tiempo que tarda en cargarse el primer byte."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Minify CSS` para minificar tus elementos CSS automáticamente y reducir el tamaño de la carga útil en la red."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Minify Javascript` para minificar el JS automáticamente y reducir los tamaños de cargas útiles en la red."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Remove Unused CSS` para que te ayude con este problema. Identificará las clases de CSS que se estén usando en ese momento en cada página de tu sitio y quitará todas las demás para mantener un tamaño de archivo reducido."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Efficient Static Cache Policy` para establecer los valores recomendados en el encabezado del almacenamiento en caché de los recursos estáticos."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Next-Gen Formats` para convertir imágenes al formato WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Pre-Connect Origins` para añadir automáticamente sugerencias de recursos `preconnect` y establecer conexiones previas con orígenes importantes de terceros."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Preload Fonts` y `Preload Background Images` para añadir enlaces de `preload` y dar prioridad a los recursos que se solicitan más tarde al cargar la página."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": {
    "message": "Usa [Ezoic Leap](https://pubdash.ezoic.com/leap) y habilita `Resize Images` para cambiar el tamaño de las imágenes de forma que tengan un tamaño adecuado para cada dispositivo, haciendo que se reduzca el tamaño de carga útil de la red."
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | modern-image-formats": {
    "message": "Usa el componente `gatsby-plugin-image` en lugar de `<img>` para optimizar el formato de la imagen automáticamente. [Más información](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | offscreen-images": {
    "message": "Usa el componente `gatsby-plugin-image` en lugar de `<img>` para cargar imágenes en diferido automáticamente. [Más información](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | prioritize-lcp-image": {
    "message": "Usa el componente `gatsby-plugin-image` y asigna a la propiedad `loading` el valor `eager`. [Más información](https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-plugin-image#shared-props)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | render-blocking-resources": {
    "message": "Usa `Gatsby Script API` para posponer la carga de secuencias de comandos de terceros que no sean esenciales. [Más información](https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-script/)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | unused-css-rules": {
    "message": "Usa el complemento `Gatsby` de `PurgeCSS` para quitar las reglas que no se usen de las hojas de estilo. [Más información](https://purgecss.com/plugins/gatsby.html)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | unused-javascript": {
    "message": "Usa `Webpack Bundle Analyzer` para detectar código de JavaScript sin usar. [Más información](https://www.gatsbyjs.com/plugins/gatsby-plugin-webpack-bundle-analyser-v2/)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | uses-long-cache-ttl": {
    "message": "Configura el almacenamiento en caché de los recursos inmutables. [Más información](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/caching/)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | uses-optimized-images": {
    "message": "Usa el componente `gatsby-plugin-image` en lugar de `<img>` para ajustar la calidad de imagen. [Más información](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | uses-responsive-images": {
    "message": "Usa el componente `gatsby-plugin-image` para establecer `sizes` de manera adecuada. [Más información](https://www.gatsbyjs.com/docs/how-to/images-and-media/using-gatsby-plugin-image)"
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | efficient-animated-content": {
    "message": "Considera subir tu GIF a un servicio que permita insertarlo como un vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | modern-image-formats": {
    "message": "Puedes utilizar un [complemento](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=webp) o servicio que convierta automáticamente las imágenes que subas en los formatos óptimos."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | offscreen-images": {
    "message": "Instala un [complemento de carga en diferido de Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=lazy%20loading) con la capacidad de posponer imágenes que no aparecen en pantalla, o cambia a una plantilla que incluya esa función. A partir de Joomla 4.0, todas las imágenes nuevas obtendrán el atributo `loading` [automáticamente](https://github.com/joomla/joomla-cms/pull/30748) del núcleo."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | render-blocking-resources": {
    "message": "Existen varios complementos de Joomla que pueden ayudarte a [insertar recursos fundamentales](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) o a [posponer recursos menos importantes](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance). Ten en cuenta que las optimizaciones que ofrecen estos complementos pueden romper funciones de tus plantillas o complementos, por lo que asegúrate de verificarlas completamente."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | server-response-time": {
    "message": "Las plantillas, las extensiones y las especificaciones del servidor afectan al tiempo de respuesta. Puedes buscar una plantilla más optimizada, seleccionar una extensión de optimización pertinente o actualizar tu servidor."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | total-byte-weight": {
    "message": "Puedes mostrar fragmentos en tus categorías de artículos (por ejemplo, mediante un enlace \"leer más\"), reducir la cantidad de artículos que se muestran en cada página, dividir tus entradas más largas en varias páginas o usar un complemento para posponer la carga de los comentarios."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-css": {
    "message": "Hay varias [extensiones de Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) que pueden concatenar, minificar y comprimir tus estilos para acelerar tu sitio web. También hay plantillas que proporcionan esta funcionalidad."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-javascript": {
    "message": "Hay varias [extensiones de Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) que pueden concatenar, minificar y comprimir tus secuencias de comandos para acelerar tu sitio web. También hay plantillas que proporcionan esta funcionalidad."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-css-rules": {
    "message": "Puedes reducir o cambiar la cantidad de [extensiones de Joomla](https://extensions.joomla.org/) que cargan archivos CSS sin usar en tu página. Para identificar las extensiones que añaden archivos CSS no pertinentes, ejecuta la [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) en DevTools de Chrome. Puedes identificar el tema o complemento responsable en la URL de la hoja de estilo. Presta atención a los complementos con varias hojas de estilo en la lista y con muchos elementos en rojo en la cobertura de código. Un complemento solo debería poner en cola una hoja de estilo (si esta se usa en la página)."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-javascript": {
    "message": "Considera reducir o cambiar la cantidad de [extensiones de Joomla](https://extensions.joomla.org/) que cargan código de JavaScript sin usar en tu página. Para identificar los complementos que añaden código de JavaScript no pertinente, ejecuta la [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) en DevTools de Chrome. Puedes identificar la extensión responsable en la URL de la secuencia de comandos. Presta atención a las extensiones con varias secuencias de comandos en la lista y con muchos elementos en rojo en la cobertura de código. Una extensión solo debería poner en cola una secuencia de comandos si esta se usa en la página."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-long-cache-ttl": {
    "message": "Consulta más información sobre el [almacenamiento en la memoria caché del navegador en Joomla](https://docs.joomla.org/Cache)."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-optimized-images": {
    "message": "Considera utilizar un [complemento de optimización de imágenes](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) que comprima tus imágenes conservando la calidad."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-responsive-images": {
    "message": "Considera utilizar un [complemento de imágenes adaptables](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=responsive%20images) para utilizar imágenes adaptables en tu contenido."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-text-compression": {
    "message": "Puedes habilitar la compresión de texto activando la compresión de página Gzip en Joomla (Sistema > Configuración global > Servidor)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | critical-request-chains": {
    "message": "Si no vas a agrupar los elementos de JavaScript, puedes usar [baler](https://github.com/magento/baler)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | disable-bundling": {
    "message": "Inhabilita los [paquetes de JavaScript y la minificación](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) integrados de Magento y, en su lugar, utiliza [baler](https://github.com/magento/baler/)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | font-display": {
    "message": "Especifica `@font-display` al [definir fuentes personalizadas](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/css-topics/using-fonts.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | modern-image-formats": {
    "message": "En [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=webp), puedes buscar extensiones de terceros para utilizar formatos de imagen más recientes."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | offscreen-images": {
    "message": "Puedes cambiar tus plantillas de producto y de catálogo para usar la función [carga en diferido](https://web.dev/native-lazy-loading) de la plataforma web."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | server-response-time": {
    "message": "Usa la [integración Varnish](https://devdocs.magento.com/guides/v2.3/config-guide/varnish/config-varnish.html) de Magento."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | unminified-css": {
    "message": "Habilita la opción Minificar archivos CSS en los ajustes para desarrolladores de tu tienda. [Más información](https://devdocs.magento.com/guides/v2.3/performance-best-practices/configuration.html?itm_source=devdocs&itm_medium=search_page&itm_campaign=federated_search&itm_term=minify%20css%20files)"
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | unminified-javascript": {
    "message": "Usa [Terser](https://www.npmjs.com/package/terser) para minificar todos los recursos de JavaScript procedentes de implementaciones de contenido estático e inhabilitar la función de minificación integrada."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | unused-javascript": {
    "message": "Permite inhabilitar los [paquetes de JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) integrados de Magento."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-optimized-images": {
    "message": "En [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=optimize%20image), puedes encontrar diferentes extensiones de terceros para mejorar imágenes."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preconnect": {
    "message": "Puedes añadir sugerencias de recursos Preconnect o dns-prefetch [modificando el diseño de un tema](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preload": {
    "message": "Es posible añadir etiquetas `<link rel=preload>` [cambiando el diseño de un tema](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/xml-manage.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | modern-image-formats": {
    "message": "Usa el componente `next/image` en lugar de `<img>` para optimizar el formato de la imagen automáticamente. [Más información](https://nextjs.org/docs/app/getting-started/images)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": {
    "message": "Usa el componente `next/image` en lugar de `<img>` para cargar imágenes en diferido automáticamente. [Más información](https://nextjs.org/docs/app/getting-started/images)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | prioritize-lcp-image": {
    "message": "Usa el componente `next/image` y asigna el valor true a \"priority\" para precargar imágenes LCP. [Más información](https://nextjs.org/docs/api-reference/next/image#priority)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | render-blocking-resources": {
    "message": "Usa el componente `next/script` para posponer la carga de secuencias de comandos de terceros que no sean esenciales. [Más información](https://nextjs.org/docs/app/guides/scripts)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unsized-images": {
    "message": "Usa el componente `next/image` para asegurarte de que las imágenes siempre tengan el tamaño adecuado. [Más información](https://nextjs.org/docs/api-reference/next/image#width)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unused-css-rules": {
    "message": "Considera usar `PurgeCSS` en la configuración de `Next.js` para quitar las reglas que no se usen de las hojas de estilo. [Más información](https://purgecss.com/guides/next.html)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unused-javascript": {
    "message": "Usa `Webpack Bundle Analyzer` para detectar código de JavaScript sin usar. [Más información](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | user-timings": {
    "message": "Considera usar `Next.js Analytics` para medir el rendimiento real de tu aplicación. [Más información](https://nextjs.org/docs/pages/guides/analytics)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-long-cache-ttl": {
    "message": "Configura el almacenamiento en caché de recursos que no se pueden modificar y páginas `Server-side Rendered` (SSR). [Más información](https://nextjs.org/docs/13/pages/building-your-application/deploying/production-checklist#caching)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-optimized-images": {
    "message": "Usa el componente `next/image` en lugar de `<img>` para ajustar la calidad de imagen. [Más información](https://nextjs.org/docs/app/getting-started/images)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-responsive-images": {
    "message": "Usa el componente `next/image` para establecer `sizes` de manera adecuada. [Más información](https://nextjs.org/docs/api-reference/next/image#sizes)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-text-compression": {
    "message": "Habilita la compresión en tu servidor Next.js. [Más información](https://nextjs.org/docs/api-reference/next.config.js/compression)"
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | dom-size": {
    "message": "Ponte en contacto con tu gestor de cuentas para habilitar [`HTML Lazy Load`](https://support.nitropack.io/hc/en-us/articles/17144942904337). Si configuras esta función, se priorizará y optimizará el rendimiento del renderizado de tu página."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | font-display": {
    "message": "Usa la opción [`Override Font Rendering Behavior`](https://support.nitropack.io/hc/en-us/articles/16547358865041) de NitroPack para definir el valor que quieras para la regla font-display de CSS."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | modern-image-formats": {
    "message": "Usa [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/16547237162513) para convertir tus imágenes a WebP automáticamente."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | offscreen-images": {
    "message": "Habilita [`Automatic Image Lazy Loading`](https://support.nitropack.io/hc/en-us/articles/12457493524369-NitroPack-Lazy-Loading-Feature-for-Images) para aplazar las imágenes que no aparecen en pantalla."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | render-blocking-resources": {
    "message": "Habilita [`Remove render-blocking resources`](https://support.nitropack.io/hc/en-us/articles/13820893500049-How-to-Deal-with-Render-Blocking-Resources-in-NitroPack) en NitroPack para hacer que los tiempos de carga iniciales sean más rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-css": {
    "message": "Habilita [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) en tus ajustes de almacenamiento en caché para reducir el tamaño de tus archivos CSS, HTML y JavaScript. De este modo, los tiempos de carga serán más rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-javascript": {
    "message": "Habilita [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) en tus ajustes de almacenamiento en caché para reducir el tamaño de tus archivos JS, HTML y CSS. De este modo, los tiempos de carga serán más rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-css-rules": {
    "message": "Habilita [`Reduce Unused CSS`](https://support.nitropack.io/hc/en-us/articles/360020418457-Reduce-Unused-CSS) para quitar las reglas de CSS que no sean aplicables a esta página."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-javascript": {
    "message": "Configura [`Delayed Scripts`](https://support.nitropack.io/hc/en-us/articles/1500002600942-Delayed-Scripts) en NitroPack para retrasar la carga de las secuencias de comandos hasta que sean necesarias."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-long-cache-ttl": {
    "message": "Accede a la función [`Improve Server Response Time`](https://support.nitropack.io/hc/en-us/articles/1500002321821-Improve-Server-Response-Time) del menú `Caching` y ajusta el tiempo de caducidad de la caché de tu página para mejorar los tiempos de carga y la experiencia de usuario."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-optimized-images": {
    "message": "Habilita el ajuste [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/14177271695121-How-to-serve-images-in-next-gen-formats-using-NitroPack) para comprimir, optimizar y convertir tus imágenes a WebP automáticamente."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-responsive-images": {
    "message": "Habilita [`Adaptive Image Sizing`](https://support.nitropack.io/hc/en-us/articles/10123833029905-How-to-Enable-Adaptive-Image-Sizing-For-Your-Site) para optimizar las imágenes de forma preventiva y hacer que se adapten a las dimensiones de los contenedores en los que se muestran en todos los dispositivos."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | modern-image-formats": {
    "message": "Usa el componente `nuxt/image` y establece `format=\"webp\"`. [Más información](https://image.nuxt.com/usage/nuxt-img#format)"
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | offscreen-images": {
    "message": "Usa el componente `nuxt/image` y establece `loading=\"lazy\"` para las imágenes que no aparecen en pantalla. [Más información](https://image.nuxt.com/usage/nuxt-img#loading)"
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | prioritize-lcp-image": {
    "message": "Usa el componente `nuxt/image` y asigna el valor `preload` a la imagen de LCP. [Más información](https://image.nuxt.com/usage/nuxt-img#preload)"
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | unsized-images": {
    "message": "Usa el componente `nuxt/image` y asigna valores específicos de `width` y `height`. [Más información](https://image.nuxt.com/usage/nuxt-img#width-height)"
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | uses-optimized-images": {
    "message": "Usa el componente `nuxt/image` y asigna el valor adecuado a `quality`. [Más información](https://image.nuxt.com/usage/nuxt-img#quality)"
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | uses-responsive-images": {
    "message": "Usa el componente `nuxt/image` y asigna el valor adecuado a `sizes`. [Más información](https://image.nuxt.com/usage/nuxt-img#sizes)"
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | efficient-animated-content": {
    "message": "[Sustituye los GIF animados por vídeos](https://web.dev/replace-gifs-with-videos/) para cargar las páginas web más rápidamente. También puedes usar formatos de archivo modernos como [WebM](https://web.dev/replace-gifs-with-videos/#create-webm-videos) o [AV1](https://developers.google.com/web/updates/2018/09/chrome-70-media-updates#av1-decoder) para mejorar la eficiencia de compresión más de un 30 % en comparación con VP9, el códec de vídeo de última generación."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | modern-image-formats": {
    "message": "Te recomendamos que utilices un [complemento](https://octobercms.com/plugins?search=image) o un servicio que convierta automáticamente a los formatos óptimos las imágenes que subas. Las [imágenes WebP sin pérdida](https://developers.google.com/speed/webp) tienen un tamaño un 26 % inferior en comparación con el formato PNG y entre un 25 % y un 34 % inferior en comparación con las imágenes JPEG con el índice de calidad SSIM equivalente. [AVIF](https://jakearchibald.com/2020/avif-has-landed/) es otro formato de imagen de nueva generación que deberías tener en cuenta."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | offscreen-images": {
    "message": "Te recomendamos que instales un [complemento de carga en diferido de imágenes](https://octobercms.com/plugins?search=lazy) con la capacidad de posponer imágenes que no aparecen en pantalla, o que cambies a un tema que incluya esa función. También puedes usar el [complemento AMP](https://octobercms.com/plugins?search=Accelerated+Mobile+Pages)."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | render-blocking-resources": {
    "message": "Hay muchos complementos que ayudan a [insertar recursos fundamentales](https://octobercms.com/plugins?search=css). Estos complementos pueden hacer que otros complementos no funcionen correctamente, por lo que deberías probarlos minuciosamente."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | server-response-time": {
    "message": "Los temas, los complementos y las especificaciones del servidor afectan al tiempo de respuesta. Te recomendamos que busques un tema más optimizado, que selecciones un complemento de optimización pertinente o que actualices el servidor. El CMS October también permite a los desarrolladores usar [`Queues`](https://octobercms.com/docs/services/queues) para posponer el procesamiento de una tarea que consuma mucho tiempo, como enviar un correo. Esto acelera considerablemente las solicitudes web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | total-byte-weight": {
    "message": "Puedes mostrar fragmentos en tus listas de publicaciones (por ejemplo, mediante un botón `show more`), reducir la cantidad de publicaciones que se muestran en cada página web, dividir las publicaciones largas en varias páginas web o usar un complemento para cargar los comentarios en diferido."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unminified-css": {
    "message": "Hay muchos [complementos](https://octobercms.com/plugins?search=css) que pueden acelerar un sitio web mediante la concatenación, la minificación y la compresión de estilos. Usar un proceso de compilación para realizar la minificación de forma anticipada puede acelerar el desarrollo."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unminified-javascript": {
    "message": "Hay muchos [complementos](https://octobercms.com/plugins?search=javascript) que pueden acelerar un sitio web mediante la concatenación, la minificación y la compresión de secuencias de comandos. Usar un proceso de compilación para realizar la minificación de forma anticipada puede acelerar el desarrollo."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unused-css-rules": {
    "message": "Puedes comprobar los [complementos](https://octobercms.com/plugins) que cargan archivos CSS sin usar en el sitio web. Para identificar los complementos que añaden archivos CSS innecesarios, ejecuta la [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) en las herramientas para desarrolladores de Chrome. Identifica el tema o el complemento responsable en la URL de la hoja de estilo. Busca complementos con varias hojas de estilo y muchos elementos en rojo en la cobertura de código. Un complemento solo debería añadir una hoja de estilo si esta se usa en la página web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unused-javascript": {
    "message": "Te recomendamos que revises los [complementos](https://octobercms.com/plugins?search=javascript) que cargan código de JavaScript sin usar en la página web. Para identificar los complementos que añaden código de JavaScript innecesario, ejecuta la [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) en las herramientas para desarrolladores de Chrome. Identifica el tema o el complemento responsable en la URL de la secuencia de comandos. Busca complementos con varias secuencias de comandos y muchos elementos en rojo en la cobertura de código. Un complemento solo debería añadir una secuencia de comandos si se usa en la página web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-long-cache-ttl": {
    "message": "Consulta más información sobre cómo [evitar solicitudes de red innecesarias con la caché de HTTP](https://web.dev/http-cache/#caching-checklist). Hay muchos [complementos](https://octobercms.com/plugins?search=Caching) que se pueden usar para acelerar el almacenamiento en caché."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-optimized-images": {
    "message": "Te recomendamos que utilices un [complemento de optimización de imágenes](https://octobercms.com/plugins?search=image) que comprima imágenes conservando la calidad."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-responsive-images": {
    "message": "Sube imágenes directamente al administrador de medios para asegurarte de que los tamaños de imagen necesarios estén disponibles. Te recomendamos que uses el [filtro de modificación de tamaño](https://octobercms.com/docs/markup/filter-resize) o un [complemento de modificación de tamaño de imágenes](https://octobercms.com/plugins?search=image) para asegurarte de que se utilicen los tamaños de imagen óptimos."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-text-compression": {
    "message": "Habilita la compresión de texto en la configuración del servidor web."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | dom-size": {
    "message": "Puedes usar una biblioteca \"windowing\", como `react-window`, para reducir el número de nodos de DOM creados si vas a renderizar muchos elementos repetidos en una página. [Más información](https://web.dev/virtualize-long-lists-react-window/) También puedes reducir las renderizaciones repetidas e innecesarias usando [`shouldComponentUpdate`](https://reactjs.org/docs/optimizing-performance.html#shouldcomponentupdate-in-action), [`PureComponent`](https://reactjs.org/docs/react-api.html#reactpurecomponent) o [`React.memo`](https://reactjs.org/docs/react-api.html#reactmemo), y [evitar los efectos](https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects) solo hasta que ciertas dependencias hayan cambiado (si estás usando el hook `Effect` para mejorar el rendimiento del tiempo de ejecución)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | redirects": {
    "message": "Si usas React Router, minimiza el uso del componente `<Redirect>` en el caso de las [navegaciones de ruta](https://reacttraining.com/react-router/web/api/Redirect)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | server-response-time": {
    "message": "Si estás renderizando componentes React en el servidor, puedes usar `renderToPipeableStream()` o `renderToStaticNodeStream()` para permitir al cliente recibir e hidratar distintas partes de las etiquetas en vez de todas a la vez. [Más información](https://reactjs.org/docs/react-dom-server.html#renderToPipeableStream)"
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unminified-css": {
    "message": "Si tu sistema de compilación minifica los archivos CSS automáticamente, comprueba que estés implementando la compilación de producción de tu aplicación. Puedes comprobarlo con la extensión de las herramientas de desarrollo de React. [Más información](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)"
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unminified-javascript": {
    "message": "Si tu sistema de compilación minifica los archivos JS automáticamente, comprueba que estés implementando la compilación de producción de tu aplicación. Puedes comprobarlo con la extensión de las herramientas de desarrollo de React. [Más información](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)"
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unused-javascript": {
    "message": "Si no vas a renderizar en el servidor, [divide tus paquetes de JavaScript](https://web.dev/code-splitting-suspense/) con `React.lazy()`. También puedes dividir el código con una biblioteca de terceros, como [loadable-components](https://loadable-components.com/)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
    "message": "Usa DevTools Profiler de React, que utiliza la API del profiler, para medir el rendimiento de tus componentes al renderizar. [Más información](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)"
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | efficient-animated-content": {
    "message": "Coloca vídeos dentro de `VideoBoxes`, personalízalos mediante `Video Masks` o añade `Transparent Videos`. [Obtén más información](https://support.wix.com/en/article/wix-video-about-wix-video)."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | modern-image-formats": {
    "message": "Sube imágenes mediante `Wix Media Manager` para asegurarte de que se publiquen automáticamente como WebP. Encuentra [más formas de optimizar](https://support.wix.com/en/article/site-performance-optimizing-your-media) el contenido multimedia de tu sitio."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | render-blocking-resources": {
    "message": "Cuando [añadas código de terceros](https://support.wix.com/en/article/site-performance-using-third-party-code-on-your-site) en la pestaña `Custom Code` del panel de control de tu sitio, asegúrate de que se aplace o se cargue al final del cuerpo del código. Si es posible, usa las [integraciones](https://support.wix.com/en/article/about-marketing-integrations) de Wix para insertar herramientas de marketing en el sitio. "
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | server-response-time": {
    "message": "Wix usa CDNs y el almacenamiento en caché para publicar respuestas lo más rápido posible para la mayoría de los visitantes. Te recomendamos que [habilites manualmente el almacenamiento en caché](https://support.wix.com/en/article/site-performance-caching-pages-to-optimize-loading-speed) para tu sitio, sobre todo si usas `Velo`."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | unused-javascript": {
    "message": "Revisa el código de terceros que hayas añadido a tu sitio en la pestaña `Custom Code` del panel de control del sitio y mantén solo los servicios necesarios. [Obtén más información](https://support.wix.com/en/article/site-performance-removing-unused-javascript)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | efficient-animated-content": {
    "message": "Considera subir tu GIF a un servicio que permita insertarlo como un vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | modern-image-formats": {
    "message": "Puedes usar el complemento [Performance Lab](https://wordpress.org/plugins/performance-lab/) para convertir automáticamente las imágenes JPEG que subas a WebP siempre que sea posible."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | offscreen-images": {
    "message": "Instala un [complemento de carga en diferido de WordPress](https://wordpress.org/plugins/search/lazy+load/) con la capacidad de posponer imágenes que no aparecen en la pantalla, o cambia a un tema con esa función. También puedes usar el [complemento de AMP](https://wordpress.org/plugins/amp/)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | render-blocking-resources": {
    "message": "Existen varios complementos de WordPress que pueden ayudarte a [insertar recursos fundamentales](https://wordpress.org/plugins/search/critical+css/) o [posponer recursos menos importantes](https://wordpress.org/plugins/search/defer+css+javascript/). Ten en cuenta que las optimizaciones que ofrecen estos complementos pueden bloquear funciones de tu tema o tus complementos, así que seguramente tengas que hacer cambios en el código."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | server-response-time": {
    "message": "Elige un tema ligero (lo ideal es un tema de bloque) e implementa el almacenamiento en caché de páginas completas o una solución de sitios estáticos. Inhabilita los complementos innecesarios para minimizar la sobrecarga del servidor. Te recomendamos que cambies tu alojamiento a un servicio gestionado o dedicado."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | total-byte-weight": {
    "message": "Puedes mostrar fragmentos en tus listas de entradas (por ejemplo, mediante la etiqueta \"more\"), reducir la cantidad de entradas que se muestran en cada página, dividir tus entradas más largas en múltiples páginas o usar un complemento para posponer la carga de los comentarios."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-css": {
    "message": "Hay varios [complementos de WordPress](https://wordpress.org/plugins/search/minify+css/) que pueden concatenar, minificar y comprimir tus estilos para acelerar tu sitio web. Te recomendamos que, si es posible, uses un proceso de creación para realizar la minificación de forma anticipada."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-javascript": {
    "message": "Hay varios [complementos de WordPress](https://wordpress.org/plugins/search/minify+javascript/) que pueden concatenar, minificar y comprimir tus secuencias de comandos para acelerar tu sitio web. Te recomendamos que, si es posible, uses un proceso de creación para realizar la minificación de forma anticipada."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-css-rules": {
    "message": "Puedes reducir o cambiar la cantidad de [complementos de WordPress](https://wordpress.org/plugins/) que cargan archivos CSS sin usar en tu página. Para identificar los complementos que añaden archivos CSS externos, ejecuta la [cobertura de código](https://developer.chrome.com/docs/devtools/coverage/) en DevTools de Chrome. Puedes identificar el tema o complemento concreto en la URL de la hoja de estilo. Presta atención a los complementos con varias hojas de estilo en la lista y con muchos elementos en rojo en la cobertura de código. Un complemento solo debería poner en cola una hoja de estilo (si esta se usa en la página)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-javascript": {
    "message": "Puedes reducir o cambiar la cantidad de [complementos de WordPress](https://wordpress.org/plugins/) que cargan código de JavaScript sin usar en tu página. Para identificar los complementos que añaden código de JavaScript externo, ejecuta la [cobertura de código](https://developer.chrome.com/docs/devtools/coverage/) en DevTools de Chrome. Puedes identificar el tema o complemento concreto en la URL de la secuencia de comandos. Presta atención a los complementos con varias secuencias de comandos en la lista y con muchos elementos en rojo en la cobertura de código. Un complemento solo debería poner en cola una secuencia de comandos (si esta se usa en la página)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-long-cache-ttl": {
    "message": "Consulta más información sobre el [almacenamiento en la memoria caché del navegador en WordPress](https://wordpress.org/support/article/optimization/#browser-caching)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-optimized-images": {
    "message": "Puedes utilizar un [complemento de optimización de imágenes de WordPress](https://wordpress.org/plugins/search/optimize+images/) que comprima tus imágenes conservando la calidad."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-responsive-images": {
    "message": "Sube imágenes directamente a la [biblioteca multimedia](https://wordpress.org/support/article/media-library-screen/) para asegurarte de que estén disponibles los tamaños de imagen necesarios y, después, insértalas desde esa biblioteca multimedia o utiliza el widget de imagen para usar los tamaños de imagen óptimos (incluidos los tamaños de los puntos de interrupción adaptables). Evita usar imágenes `Full Size`, a no ser que las dimensiones sean las adecuadas para su uso. [Más información](https://wordpress.org/support/article/inserting-images-into-posts-and-pages/)"
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-text-compression": {
    "message": "Puedes habilitar la compresión de texto en la configuración de tu servidor web."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | modern-image-formats": {
    "message": "Habilita Imagify en la pestaña de optimización de imágenes de WP Rocket para convertir tus imágenes al formato WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | offscreen-images": {
    "message": "Habilita la función de [carga diferida](https://docs.wp-rocket.me/article/1141-lazyload-for-images) en WP Rocket para seguir esta recomendación. Esta función retrasa la carga de las imágenes hasta que el visitante se desplaza hacia abajo y necesita verlas."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | render-blocking-resources": {
    "message": "Habilita la función para [quitar CSS no utilizado](https://docs.wp-rocket.me/article/1529-remove-unused-css) y [cargar JavaScript con retraso](https://docs.wp-rocket.me/article/1265-load-javascript-deferred) en WP Rocket para seguir esta recomendación. Estas funciones optimizan, respectivamente, los archivos CSS y JavaScript para que no bloqueen el renderizado de tu página."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unminified-css": {
    "message": "Habilita la función para [minificar archivos CSS](https://docs.wp-rocket.me/article/1350-css-minify-combine) en WP Rocket para solucionar este problema. Se eliminarán todos los espacios y comentarios de los archivos CSS de tu sitio para reducir el tamaño de los archivos y aumentar la velocidad a la que se descargan."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unminified-javascript": {
    "message": "Habilita la función para [minificar archivos JavaScript](https://docs.wp-rocket.me/article/1351-javascript-minify-combine) en WP Rocket para solucionar este problema. Se eliminarán los espacios y comentarios de los archivos JavaScript para reducir su tamaño y aumentar la velocidad a la que se descargan."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unused-css-rules": {
    "message": "Habilita la función para [quitar CSS no utilizado](https://docs.wp-rocket.me/article/1529-remove-unused-css) en WP Rocket para solucionar este problema. Esto reduce el tamaño de la página quitando todos los archivos CSS y hojas de estilo que no se utilizan y conservando solo el CSS usado para cada página."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unused-javascript": {
    "message": "Habilita la función para [retrasar la ejecución de JavaScript](https://docs.wp-rocket.me/article/1349-delay-javascript-execution) en WP Rocket para solucionar este problema. Esto mejorará la carga de tu página retrasando la ejecución de las secuencias de comandos hasta que el usuario interactúe con la página. Si tu sitio tiene iframes, puedes usar la función de [carga diferida para iframes y vídeos](https://docs.wp-rocket.me/article/1674-lazyload-for-iframes-and-videos) de WP Rocket, así como la función para [reemplazar el iframe de YouTube por la imagen de vista previa](https://docs.wp-rocket.me/article/1488-replace-youtube-iframe-with-preview-image)."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | uses-optimized-images": {
    "message": "Habilita Imagify en la pestaña de optimización de imágenes de WP Rocket y ejecuta Bulk Optimization para comprimir tus imágenes."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | uses-rel-preconnect": {
    "message": "Usa la función para [precargar solicitudes DNS](https://docs.wp-rocket.me/article/1302-prefetch-dns-requests) en WP Rocket para añadir \"dns-prefetch\" y acelerar la conexión con dominios externos. Además, WP Rocket añade automáticamente \"preconnect\" al [dominio de Google Fonts](https://docs.wp-rocket.me/article/1312-optimize-google-fonts) y a todos los CNAMEs añadidos mediante la función para [habilitar CDNs](https://docs.wp-rocket.me/article/42-using-wp-rocket-with-a-cdn)."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | uses-rel-preload": {
    "message": "Para solucionar este problema en las fuentes, habilita la opción para [quitar CSS no utilizado](https://docs.wp-rocket.me/article/1529-remove-unused-css) en WP Rocket. Las fuentes esenciales de tu sitio se precargarán con prioridad."
  },
  "report/renderer/report-utils.js | calculatorLink": {
    "message": "Ver calculadora."
  },
  "report/renderer/report-utils.js | collapseView": {
    "message": "Contraer vista"
  },
  "report/renderer/report-utils.js | crcInitialNavigation": {
    "message": "Navegación inicial"
  },
  "report/renderer/report-utils.js | crcLongestDurationLabel": {
    "message": "Latencia de ruta crítica máxima:"
  },
  "report/renderer/report-utils.js | dropdownCopyJSON": {
    "message": "Copiar JSON"
  },
  "report/renderer/report-utils.js | dropdownDarkTheme": {
    "message": "Activar o desactivar el tema oscuro"
  },
  "report/renderer/report-utils.js | dropdownPrintExpanded": {
    "message": "Imprimir versión ampliada"
  },
  "report/renderer/report-utils.js | dropdownPrintSummary": {
    "message": "Imprimir resumen"
  },
  "report/renderer/report-utils.js | dropdownSaveGist": {
    "message": "Guardar como gist"
  },
  "report/renderer/report-utils.js | dropdownSaveHTML": {
    "message": "Guardar como HTML"
  },
  "report/renderer/report-utils.js | dropdownSaveJSON": {
    "message": "Guardar como JSON"
  },
  "report/renderer/report-utils.js | dropdownViewUnthrottledTrace": {
    "message": "Ver rastro no limitado"
  },
  "report/renderer/report-utils.js | dropdownViewer": {
    "message": "Abrir en el visor"
  },
  "report/renderer/report-utils.js | errorLabel": {
    "message": "Error"
  },
  "report/renderer/report-utils.js | errorMissingAuditInfo": {
    "message": "Error del informe: no hay información de la auditoría"
  },
  "report/renderer/report-utils.js | expandView": {
    "message": "Ampliar vista"
  },
  "report/renderer/report-utils.js | firstPartyChipLabel": {
    "message": "Propio"
  },
  "report/renderer/report-utils.js | footerIssue": {
    "message": "Notificar un problema"
  },
  "report/renderer/report-utils.js | hide": {
    "message": "Ocultar"
  },
  "report/renderer/report-utils.js | labDataTitle": {
    "message": "Datos de experimentos"
  },
  "report/renderer/report-utils.js | lsPerformanceCategoryDescription": {
    "message": "[Lighthouse](https://developers.google.com/web/tools/lighthouse/) ha analizado la página actual en una red móvil emulada. Los valores son estimaciones y pueden variar."
  },
  "report/renderer/report-utils.js | manualAuditsGroupTitle": {
    "message": "Elementos adicionales que se deben comprobar manualmente"
  },
  "report/renderer/report-utils.js | notApplicableAuditsGroupTitle": {
    "message": "No aplicable"
  },
  "report/renderer/report-utils.js | openInANewTabTooltip": {
    "message": "Abrir en una pestaña nueva"
  },
  "report/renderer/report-utils.js | opportunityResourceColumnLabel": {
    "message": "Oportunidad"
  },
  "report/renderer/report-utils.js | opportunitySavingsColumnLabel": {
    "message": "Ahorro estimado"
  },
  "report/renderer/report-utils.js | passedAuditsGroupTitle": {
    "message": "Auditorías aprobadas"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
    "message": "Carga inicial de la página"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindowSnapshot": {
    "message": "Instantánea de un momento específico"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindowTimespan": {
    "message": "Tiempo de interacciones de usuarios"
  },
  "report/renderer/report-utils.js | runtimeCustom": {
    "message": "Limitación personalizada"
  },
  "report/renderer/report-utils.js | runtimeDesktopEmulation": {
    "message": "Escritorio emulado"
  },
  "report/renderer/report-utils.js | runtimeMobileEmulation": {
    "message": "Moto G Power emulado"
  },
  "report/renderer/report-utils.js | runtimeNoEmulation": {
    "message": "Sin emulación"
  },
  "report/renderer/report-utils.js | runtimeSettingsAxeVersion": {
    "message": "Versión de Axe"
  },
  "report/renderer/report-utils.js | runtimeSettingsBenchmark": {
    "message": "Potencia de la CPU o de la memoria no limitada"
  },
  "report/renderer/report-utils.js | runtimeSettingsCPUThrottling": {
    "message": "Limitación de CPU"
  },
  "report/renderer/report-utils.js | runtimeSettingsDevice": {
    "message": "Dispositivo"
  },
  "report/renderer/report-utils.js | runtimeSettingsNetworkThrottling": {
    "message": "Limitación de red"
  },
  "report/renderer/report-utils.js | runtimeSettingsScreenEmulation": {
    "message": "Emulación de pantalla"
  },
  "report/renderer/report-utils.js | runtimeSettingsUANetwork": {
    "message": "User-agent (red)"
  },
  "report/renderer/report-utils.js | runtimeSingleLoad": {
    "message": "Sesión de una sola página"
  },
  "report/renderer/report-utils.js | runtimeSingleLoadTooltip": {
    "message": "Estos datos se obtienen a partir de una sesión de una sola página, mientras que los datos de campo ofrecen un resumen de muchas sesiones."
  },
  "report/renderer/report-utils.js | runtimeSlow4g": {
    "message": "Limitación de 4G lenta"
  },
  "report/renderer/report-utils.js | runtimeUnknown": {
    "message": "Desconocido"
  },
  "report/renderer/report-utils.js | show": {
    "message": "Mostrar"
  },
  "report/renderer/report-utils.js | showRelevantAudits": {
    "message": "Mostrar auditorías relacionadas con:"
  },
  "report/renderer/report-utils.js | snippetCollapseButtonLabel": {
    "message": "Ocultar fragmento"
  },
  "report/renderer/report-utils.js | snippetExpandButtonLabel": {
    "message": "Mostrar fragmento"
  },
  "report/renderer/report-utils.js | thirdPartyResourcesLabel": {
    "message": "Mostrar recursos externos"
  },
  "report/renderer/report-utils.js | throttlingProvided": {
    "message": "Proporcionado por el entorno"
  },
  "report/renderer/report-utils.js | toplevelWarningsMessage": {
    "message": "Algunos problemas han afectado a la ejecución de Lighthouse:"
  },
  "report/renderer/report-utils.js | unattributable": {
    "message": "No atribuible"
  },
  "report/renderer/report-utils.js | unscoredLabel": {
    "message": "Sin puntuar"
  },
  "report/renderer/report-utils.js | unscoredTitle": {
    "message": "Esta auditoría no contribuye a la puntuación general de la categoría."
  },
  "report/renderer/report-utils.js | varianceDisclaimer": {
    "message": "Los valores son estimaciones y pueden variar. La [puntuación del rendimiento se calcula](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) directamente a partir de estas métricas."
  },
  "report/renderer/report-utils.js | viewTraceLabel": {
    "message": "Ver rastro"
  },
  "report/renderer/report-utils.js | viewTreemapLabel": {
    "message": "Ver gráfico de rectángulos"
  },
  "report/renderer/report-utils.js | warningAuditsGroupTitle": {
    "message": "Auditorías aprobadas con advertencias"
  },
  "report/renderer/report-utils.js | warningHeader": {
    "message": "Advertencias: "
  },
  "treemap/app/src/util.js | allLabel": {
    "message": "Todo"
  },
  "treemap/app/src/util.js | allScriptsDropdownLabel": {
    "message": "Todas las secuencias de comandos"
  },
  "treemap/app/src/util.js | coverageColumnName": {
    "message": "Cobertura"
  },
  "treemap/app/src/util.js | duplicateModulesLabel": {
    "message": "Módulos duplicados"
  },
  "treemap/app/src/util.js | duplicatedBytesLabel": {
    "message": "Bytes duplicados"
  },
  "treemap/app/src/util.js | resourceBytesLabel": {
    "message": "Bytes del recurso"
  },
  "treemap/app/src/util.js | tableColumnName": {
    "message": "Nombre"
  },
  "treemap/app/src/util.js | toggleTableButtonLabel": {
    "message": "Mostrar/Ocultar tabla"
  },
  "treemap/app/src/util.js | transferBytesLabel": {
    "message": "Bytes de transferencia"
  },
  "treemap/app/src/util.js | unusedBytesLabel": {
    "message": "Bytes sin usar"
  }
}
