{
  "core/audits/accessibility/accesskeys.js | description": {
    "message": "As chaves de acesso permitem que os utilizadores se concentrem rapidamente numa parte da página. Para uma navegação adequada, cada token de acesso tem de ser exclusiva. [Saiba mais acerca das chaves de acesso](https://dequeuniversity.com/rules/axe/4.11/accesskeys)."
  },
  "core/audits/accessibility/accesskeys.js | failureTitle": {
    "message": "Os valores `[accesskey]` não são exclusivos"
  },
  "core/audits/accessibility/accesskeys.js | title": {
    "message": "Os valores `[accesskey]` são exclusivos"
  },
  "core/audits/accessibility/aria-allowed-attr.js | description": {
    "message": "Cada ARIA `role` suporta um subconjunto específico de atributos `aria-*`. A não correspondência destes invalida os atributos `aria-*`. [Saiba como corresponder os atributos ARIA às respetivas funções](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr)."
  },
  "core/audits/accessibility/aria-allowed-attr.js | failureTitle": {
    "message": "Os atributos `[aria-*]` não correspondem às respetivas funções"
  },
  "core/audits/accessibility/aria-allowed-attr.js | title": {
    "message": "Os atributos `[aria-*]` correspondem às respetivas funções"
  },
  "core/audits/accessibility/aria-allowed-role.js | description": {
    "message": "Muitos elementos HTML só podem ser atribuídos a determinadas funções ARIA. A utilização de funções ARIA nas quais não são permitidos pode interferir com a acessibilidade da página Web. [Saiba mais sobre as funções ARIA](https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role)."
  },
  "core/audits/accessibility/aria-allowed-role.js | failureTitle": {
    "message": "Usa funções ARIA em elementos incompatíveis"
  },
  "core/audits/accessibility/aria-allowed-role.js | title": {
    "message": "Usa funções ARIA apenas em elementos compatíveis"
  },
  "core/audits/accessibility/aria-command-name.js | description": {
    "message": "Quando um elemento não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba como tornar os elementos de comandos mais acessíveis](https://dequeuniversity.com/rules/axe/4.11/aria-command-name)."
  },
  "core/audits/accessibility/aria-command-name.js | failureTitle": {
    "message": "Os elementos `button`, `link` e `menuitem` não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-command-name.js | title": {
    "message": "Os elementos `button`, `link` e `menuitem` têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-conditional-attr.js | description": {
    "message": "Alguns atributos ARIA só são permitidos num elemento em determinadas condições. [Saiba mais acerca dos atributos ARIA condicionais](https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr)."
  },
  "core/audits/accessibility/aria-conditional-attr.js | failureTitle": {
    "message": "Os atributos ARIA não são usados conforme especificado para a função do elemento"
  },
  "core/audits/accessibility/aria-conditional-attr.js | title": {
    "message": "Os atributos ARIA são usados conforme especificado para a função do elemento"
  },
  "core/audits/accessibility/aria-deprecated-role.js | description": {
    "message": "As funções ARIA descontinuadas podem não ser processadas corretamente pela tecnologia de assistência. [Saiba mais acerca das funções ARIA descontinuadas](https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role)."
  },
  "core/audits/accessibility/aria-deprecated-role.js | failureTitle": {
    "message": "Foram usadas funções ARIA descontinuadas"
  },
  "core/audits/accessibility/aria-deprecated-role.js | title": {
    "message": "As funções ARIA descontinuadas não foram usadas"
  },
  "core/audits/accessibility/aria-dialog-name.js | description": {
    "message": "Os elementos da caixa de diálogo ARIA sem nomes acessíveis podem impedir os utilizadores de leitores de ecrã de perceberem a finalidade destes elementos. [Saiba como tornar os elementos da caixa de diálogo ARIA mais acessíveis](https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name)."
  },
  "core/audits/accessibility/aria-dialog-name.js | failureTitle": {
    "message": "Os elementos com `role=\"dialog\"` ou `role=\"alertdialog\"` não têm nomes acessíveis."
  },
  "core/audits/accessibility/aria-dialog-name.js | title": {
    "message": "Os elementos com `role=\"dialog\"` ou `role=\"alertdialog\"` têm nomes acessíveis."
  },
  "core/audits/accessibility/aria-hidden-body.js | description": {
    "message": "As tecnologias de assistência, que incluem os leitores de ecrã, funcionam de forma inconsistente quando `aria-hidden=\"true\"` está definido no `<body>` do documento. [Saiba como o `aria-hidden` afeta o corpo do documento](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body)."
  },
  "core/audits/accessibility/aria-hidden-body.js | failureTitle": {
    "message": "`[aria-hidden=\"true\"]` está presente no `<body>` do documento"
  },
  "core/audits/accessibility/aria-hidden-body.js | title": {
    "message": "`[aria-hidden=\"true\"]` não está presente no `<body>` do documento"
  },
  "core/audits/accessibility/aria-hidden-focus.js | description": {
    "message": "Os descendentes focalizáveis de um elemento `[aria-hidden=\"true\"]` impedem que esses elementos interativos fiquem disponíveis para os utilizadores de tecnologias de assistência, como leitores de ecrã. [Saiba como o atributo `aria-hidden` afeta os elementos focalizáveis](https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus)."
  },
  "core/audits/accessibility/aria-hidden-focus.js | failureTitle": {
    "message": "Os elementos `[aria-hidden=\"true\"]` contêm descendentes focáveis"
  },
  "core/audits/accessibility/aria-hidden-focus.js | title": {
    "message": "Os elementos `[aria-hidden=\"true\"]` não contêm descendentes focáveis"
  },
  "core/audits/accessibility/aria-input-field-name.js | description": {
    "message": "Quando um campo de entrada não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba mais acerca das 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": "Os campos de entrada ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-input-field-name.js | title": {
    "message": "Os campos de entrada ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-meter-name.js | description": {
    "message": "Quando um elemento de contador não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba como atribuir um nome a elementos `meter`](https://dequeuniversity.com/rules/axe/4.11/aria-meter-name)."
  },
  "core/audits/accessibility/aria-meter-name.js | failureTitle": {
    "message": "Os elementos `meter` ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-meter-name.js | title": {
    "message": "Os elementos `meter` ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-progressbar-name.js | description": {
    "message": "Quando um elemento `progressbar` não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba como etiquetar elementos `progressbar`](https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name)."
  },
  "core/audits/accessibility/aria-progressbar-name.js | failureTitle": {
    "message": "Os elementos `progressbar` ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-progressbar-name.js | title": {
    "message": "Os elementos `progressbar` ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-prohibited-attr.js | description": {
    "message": "A utilização de atributos ARIA em funções onde são proibidos pode significar que informações importantes não são comunicadas aos utilizadores de tecnologias de assistência. [Saiba mais sobre as funções ARIA proibidas](https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr)."
  },
  "core/audits/accessibility/aria-prohibited-attr.js | failureTitle": {
    "message": "Os elementos usam atributos ARIA proibidos"
  },
  "core/audits/accessibility/aria-prohibited-attr.js | title": {
    "message": "Os elementos usam apenas atributos ARIA permitidos"
  },
  "core/audits/accessibility/aria-required-attr.js | description": {
    "message": "Algumas funções ARIA têm atributos obrigatórios que descrevem o estado do elemento para os leitores de ecrã. [Saiba mais acerca das funções e dos atributos obrigatórios](https://dequeuniversity.com/rules/axe/4.11/aria-required-attr)."
  },
  "core/audits/accessibility/aria-required-attr.js | failureTitle": {
    "message": "Os `[role]`s não têm todos os atributos `[aria-*]` obrigatórios"
  },
  "core/audits/accessibility/aria-required-attr.js | title": {
    "message": "Os `[role]`s têm todos os atributos `[aria-*]` obrigatórios"
  },
  "core/audits/accessibility/aria-required-children.js | description": {
    "message": "Algumas funções superiores ARIA têm de conter funções secundárias específicas para desempenhar as respetivas funções de acessibilidade previstas. [Saiba mais acerca das funções e dos elementos secundários obrigatórios](https://dequeuniversity.com/rules/axe/4.11/aria-required-children)."
  },
  "core/audits/accessibility/aria-required-children.js | failureTitle": {
    "message": "Os elementos com um `[role]` ARIA que requerem que os elementos secundários contenham um `[role]` específico têm alguns ou todos esses elementos secundários requeridos em falta."
  },
  "core/audits/accessibility/aria-required-children.js | title": {
    "message": "Os elementos com um `[role]` ARIA que requerem que os elementos secundários contenham um `[role]` específico têm todos os elementos secundários requeridos."
  },
  "core/audits/accessibility/aria-required-parent.js | description": {
    "message": "Algumas funções secundárias ARIA têm de ser contidas por funções superiores específicas para desempenharem adequadamente as respetivas funções de acessibilidade previstas. [Saiba mais acerca das funções ARIA e do elemento superior necessário](https://dequeuniversity.com/rules/axe/4.11/aria-required-parent)."
  },
  "core/audits/accessibility/aria-required-parent.js | failureTitle": {
    "message": "Os `[role]`s não são contidos pelo respetivo elemento superior obrigatório"
  },
  "core/audits/accessibility/aria-required-parent.js | title": {
    "message": "Os `[role]`s são contidos pelo respetivo elemento superior obrigatório"
  },
  "core/audits/accessibility/aria-roles.js | description": {
    "message": "As funções ARIA têm de possuir valores válidos para desempenhar as funções de acessibilidade previstas. [Saiba mais acerca das funções ARIA válidas](https://dequeuniversity.com/rules/axe/4.11/aria-roles)."
  },
  "core/audits/accessibility/aria-roles.js | failureTitle": {
    "message": "Os valores `[role]` não são válidos"
  },
  "core/audits/accessibility/aria-roles.js | title": {
    "message": "Os valores `[role]` são válidos"
  },
  "core/audits/accessibility/aria-text.js | description": {
    "message": "Adicionar `role=text` à volta de um nó de texto dividido por marcação permite que o VoiceOver o trate como uma expressão, mas os descendentes focalizáveis do elemento não são anunciados. [Saiba mais acerca do atributo `role=text`](https://dequeuniversity.com/rules/axe/4.11/aria-text)."
  },
  "core/audits/accessibility/aria-text.js | failureTitle": {
    "message": "Os elementos com o atributo `role=text` têm descendentes focalizáveis."
  },
  "core/audits/accessibility/aria-text.js | title": {
    "message": "Os elementos com o atributo `role=text` não têm descendentes focalizáveis."
  },
  "core/audits/accessibility/aria-toggle-field-name.js | description": {
    "message": "Quando um campo ativar/desativar não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba mais acerca dos campos ativar/desativar](https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name)."
  },
  "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": {
    "message": "Os campos ativar/desativar ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-toggle-field-name.js | title": {
    "message": "Os campos ativar/desativar ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-tooltip-name.js | description": {
    "message": "Quando um elemento de sugestão não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba como atribuir um nome a elementos `tooltip`](https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name)."
  },
  "core/audits/accessibility/aria-tooltip-name.js | failureTitle": {
    "message": "Os elementos `tooltip` ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-tooltip-name.js | title": {
    "message": "Os elementos `tooltip` ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-treeitem-name.js | description": {
    "message": "Quando um elemento `treeitem` não tem um nome acessível, os leitores de ecrã anunciam-no com um nome genérico, tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba mais acerca da etiquetagem de elementos `treeitem`](https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name)."
  },
  "core/audits/accessibility/aria-treeitem-name.js | failureTitle": {
    "message": "Os elementos `treeitem` ARIA não têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-treeitem-name.js | title": {
    "message": "Os elementos `treeitem` ARIA têm nomes acessíveis"
  },
  "core/audits/accessibility/aria-valid-attr-value.js | description": {
    "message": "As tecnologias de assistência, que incluem os leitores de ecrã, não conseguem interpretar atributos ARIA com valores inválidos. [Saiba mais acerca dos valores válidos para os atributos ARIA](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value)."
  },
  "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": {
    "message": "Os atributos `[aria-*]` não têm valores válidos"
  },
  "core/audits/accessibility/aria-valid-attr-value.js | title": {
    "message": "Os atributos `[aria-*]` têm valores válidos"
  },
  "core/audits/accessibility/aria-valid-attr.js | description": {
    "message": "As tecnologias de assistência, que incluem os leitores de ecrã, não conseguem interpretar atributos ARIA com nomes inválidos. [Saiba mais acerca dos atributos ARIA válidos](https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr)."
  },
  "core/audits/accessibility/aria-valid-attr.js | failureTitle": {
    "message": "Os atributos `[aria-*]` não são válidos ou têm erros ortográficos"
  },
  "core/audits/accessibility/aria-valid-attr.js | title": {
    "message": "Os atributos `[aria-*]` são válidos e não têm erros ortográficos"
  },
  "core/audits/accessibility/axe-audit.js | failingElementsHeader": {
    "message": "Elementos reprovados"
  },
  "core/audits/accessibility/button-name.js | description": {
    "message": "Quando um botão não tem um nome acessível, os leitores de ecrã anunciam-no como \"botão\", tornando-o inutilizável para os utilizadores que dependem de leitores de ecrã. [Saiba como tornar os botões mais acessíveis](https://dequeuniversity.com/rules/axe/4.11/button-name)."
  },
  "core/audits/accessibility/button-name.js | failureTitle": {
    "message": "Os botões não têm um nome acessível"
  },
  "core/audits/accessibility/button-name.js | title": {
    "message": "Os botões têm um nome acessível"
  },
  "core/audits/accessibility/bypass.js | description": {
    "message": "Adicionar formas de ignorar conteúdo repetitivo permite que os utilizadores com teclado naveguem na página de forma mais eficiente. [Saiba mais acerca dos blocos para ignorar](https://dequeuniversity.com/rules/axe/4.11/bypass)."
  },
  "core/audits/accessibility/bypass.js | failureTitle": {
    "message": "A página não contém um título, um link para ignorar ou uma região de ponto de referência"
  },
  "core/audits/accessibility/bypass.js | title": {
    "message": "A página contém um título, um link para ignorar ou uma região de ponto de referência"
  },
  "core/audits/accessibility/color-contrast.js | description": {
    "message": "O texto de baixo contraste é difícil ou impossível de ler para muitos utilizadores. [Saiba como criar um contraste de cor suficiente](https://dequeuniversity.com/rules/axe/4.11/color-contrast)."
  },
  "core/audits/accessibility/color-contrast.js | failureTitle": {
    "message": "As cores de primeiro e de segundo plano não têm uma relação de contraste suficiente"
  },
  "core/audits/accessibility/color-contrast.js | title": {
    "message": "As cores de segundo plano e de primeiro plano têm uma relação de contraste suficiente"
  },
  "core/audits/accessibility/definition-list.js | description": {
    "message": "Quando as listas de definição não estão devidamente marcadas, os leitores de ecrã podem produzir um resultado confuso ou impreciso. [Saiba como estruturar corretamente listas de definições](https://dequeuniversity.com/rules/axe/4.11/definition-list)."
  },
  "core/audits/accessibility/definition-list.js | failureTitle": {
    "message": "Os `<dl>`s não contêm apenas grupos de `<dt>` e `<dd>` devidamente ordenados, nem elementos `<script>`, `<template>` ou `<div>`."
  },
  "core/audits/accessibility/definition-list.js | title": {
    "message": "Os `<dl>`s contêm apenas grupos de `<dt>` e `<dd>` devidamente ordenados e elementos `<script>`, `<template>` ou `<div>`."
  },
  "core/audits/accessibility/dlitem.js | description": {
    "message": "Os itens de lista de definição (`<dt>` e `<dd>`) têm de estar unidos num elemento `<dl>` superior de modo a garantir que os leitores de ecrã os possam anunciar adequadamente. [Saiba como estruturar corretamente listas de definições](https://dequeuniversity.com/rules/axe/4.11/dlitem)."
  },
  "core/audits/accessibility/dlitem.js | failureTitle": {
    "message": "Os itens de lista de definição não estão unidos em elementos `<dl>`"
  },
  "core/audits/accessibility/dlitem.js | title": {
    "message": "Os itens de lista de definição estão unidos em elementos `<dl>`"
  },
  "core/audits/accessibility/document-title.js | description": {
    "message": "O título proporciona aos utilizadores de leitores de ecrã uma vista geral da página, sendo que os utilizadores de motores de pesquisa dependem dele para determinar se uma página é relevante para a respetiva pesquisa. [Saiba mais acerca dos títulos de documentos](https://dequeuniversity.com/rules/axe/4.11/document-title)."
  },
  "core/audits/accessibility/document-title.js | failureTitle": {
    "message": "O documento não tem um elemento `<title>`"
  },
  "core/audits/accessibility/document-title.js | title": {
    "message": "O documento tem um elemento `<title>`"
  },
  "core/audits/accessibility/duplicate-id-aria.js | description": {
    "message": "O valor de um ID ARIA tem de ser exclusivo para evitar que outras instâncias sejam ignoradas pelas tecnologias de assistência. [Saiba como corrigir IDs ARIA duplicados](https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria)."
  },
  "core/audits/accessibility/duplicate-id-aria.js | failureTitle": {
    "message": "Os ID ARIA não são exclusivos"
  },
  "core/audits/accessibility/duplicate-id-aria.js | title": {
    "message": "Os IDs ARIA são exclusivos"
  },
  "core/audits/accessibility/empty-heading.js | description": {
    "message": "Um título sem conteúdo ou com texto inacessível impede os utilizadores de leitores de ecrã de acederem a informações sobre a estrutura da página. [Saiba mais acerca dos títulos](https://dequeuniversity.com/rules/axe/4.11/empty-heading)."
  },
  "core/audits/accessibility/empty-heading.js | failureTitle": {
    "message": "Os elementos do título não têm conteúdo."
  },
  "core/audits/accessibility/empty-heading.js | title": {
    "message": "Todos os elementos de título têm conteúdo."
  },
  "core/audits/accessibility/form-field-multiple-labels.js | description": {
    "message": "Os campos de formulários com várias etiquetas podem ser anunciados de forma confusa por tecnologias de assistência, como leitores de ecrã que usam a primeira, a última ou todas as etiquetas. [Saiba como usar etiquetas de formulários](https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels)."
  },
  "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": {
    "message": "Os campos do formulário contêm várias etiquetas"
  },
  "core/audits/accessibility/form-field-multiple-labels.js | title": {
    "message": "Nenhum campo do formulário contém várias etiquetas"
  },
  "core/audits/accessibility/frame-title.js | description": {
    "message": "Os utilizadores com leitores de ecrã dependem dos títulos de frames para descrever o conteúdo dos frames. [Saiba mais acerca dos títulos de frames](https://dequeuniversity.com/rules/axe/4.11/frame-title)."
  },
  "core/audits/accessibility/frame-title.js | failureTitle": {
    "message": "Os elementos `<frame>` ou `<iframe>` não têm um título"
  },
  "core/audits/accessibility/frame-title.js | title": {
    "message": "Os elementos `<frame>` ou `<iframe>` têm um título"
  },
  "core/audits/accessibility/heading-order.js | description": {
    "message": "Os títulos devidamente ordenados que não ignoram níveis transmitem a estrutura semântica da página, facilitando a navegação e a compreensão ao usar tecnologias de assistência. [Saiba mais acerca da ordem dos títulos](https://dequeuniversity.com/rules/axe/4.11/heading-order)."
  },
  "core/audits/accessibility/heading-order.js | failureTitle": {
    "message": "Os elementos do título não se encontram numa ordem sequencialmente decrescente"
  },
  "core/audits/accessibility/heading-order.js | title": {
    "message": "Os elementos do título encontram-se numa ordem sequencialmente decrescente"
  },
  "core/audits/accessibility/html-has-lang.js | description": {
    "message": "Se uma página não especificar um atributo `lang`, um leitor de ecrã parte do princípio de que a página está no idioma predefinido que o utilizador escolheu quando configurou o leitor de ecrã. Se a página não estiver realmente no idioma predefinido, o leitor de ecrã pode não anunciar corretamente o texto da página. [Saiba mais acerca do atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-has-lang)."
  },
  "core/audits/accessibility/html-has-lang.js | failureTitle": {
    "message": "O elemento `<html>` não tem um atributo `[lang]`"
  },
  "core/audits/accessibility/html-has-lang.js | title": {
    "message": "O elemento `<html>` tem um atributo `[lang]`"
  },
  "core/audits/accessibility/html-lang-valid.js | description": {
    "message": "Especificar um [idioma BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) válido ajuda os leitores de ecrã a anunciar texto adequadamente. [Saiba como usar o atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-lang-valid)."
  },
  "core/audits/accessibility/html-lang-valid.js | failureTitle": {
    "message": "O elemento `<html>` tem um valor válido para o respetivo atributo `[lang]`."
  },
  "core/audits/accessibility/html-lang-valid.js | title": {
    "message": "O elemento `<html>` tem um valor válido para o respetivo atributo `[lang]`"
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | description": {
    "message": "Se a página Web não especificar um idioma consistente, o leitor de ecrã pode não anunciar o texto da página corretamente. [Saiba mais acerca do atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch)."
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | failureTitle": {
    "message": "O elemento `<html>` não tem um atributo `[xml:lang]` com o mesmo idioma base que o atributo `[lang]`."
  },
  "core/audits/accessibility/html-xml-lang-mismatch.js | title": {
    "message": "O elemento `<html>` tem um atributo `[xml:lang]` com o mesmo idioma base que o atributo `[lang]`."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | description": {
    "message": "Os links com o mesmo destino devem ter a mesma descrição para ajudar os utilizadores a compreenderem o objetivo do link e decidirem se o devem seguir. [Saiba mais acerca dos links idênticos](https://dequeuniversity.com/rules/axe/4.11/identical-links-same-purpose)."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | failureTitle": {
    "message": "Os links idênticos não têm a mesma finalidade."
  },
  "core/audits/accessibility/identical-links-same-purpose.js | title": {
    "message": "Os links idênticos têm a mesma finalidade."
  },
  "core/audits/accessibility/image-alt.js | description": {
    "message": "Os elementos informativos devem procurar incluir texto curto, descritivo e alternativo. Os elementos decorativos podem ser ignorados com um atributo alternativo vazio. [Saiba mais acerca do atributo `alt`](https://dequeuniversity.com/rules/axe/4.11/image-alt)."
  },
  "core/audits/accessibility/image-alt.js | failureTitle": {
    "message": "Os elementos de imagem não têm atributos `[alt]`"
  },
  "core/audits/accessibility/image-alt.js | title": {
    "message": "Os elementos de imagem têm atributos `[alt]`"
  },
  "core/audits/accessibility/image-redundant-alt.js | description": {
    "message": "Os elementos informativos devem procurar incluir texto curto, descritivo e alternativo. O texto alternativo, que é exatamente igual ao texto adjacente ao link ou à imagem, é potencialmente confuso para os utilizadores de leitores de ecrã, uma vez que o texto é lido duas vezes. [Saiba mais acerca do atributo `alt`](https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt)."
  },
  "core/audits/accessibility/image-redundant-alt.js | failureTitle": {
    "message": "Os elementos de imagem têm atributos `[alt]` que são texto redundante."
  },
  "core/audits/accessibility/image-redundant-alt.js | title": {
    "message": "Os elementos de imagem não têm atributos `[alt]` que são texto redundante."
  },
  "core/audits/accessibility/input-button-name.js | description": {
    "message": "Adicionar texto percetível e acessível aos botões de entrada pode ajudar os utilizadores de leitores de ecrã a compreender a finalidade do botão de entrada. [Saiba mais acerca dos botões de entrada](https://dequeuniversity.com/rules/axe/4.11/input-button-name)."
  },
  "core/audits/accessibility/input-button-name.js | failureTitle": {
    "message": "Os botões de entrada não têm texto percetível."
  },
  "core/audits/accessibility/input-button-name.js | title": {
    "message": "Os botões de entrada têm texto percetível."
  },
  "core/audits/accessibility/input-image-alt.js | description": {
    "message": "Quando uma imagem está a ser usada como um botão `<input>`, facultar texto alternativo pode ajudar os utilizadores de leitores de ecrã a compreender a finalidade do botão. [Saiba mais acerca do texto alternativo da imagem de entrada](https://dequeuniversity.com/rules/axe/4.11/input-image-alt)."
  },
  "core/audits/accessibility/input-image-alt.js | failureTitle": {
    "message": "Os elementos `<input type=\"image\">` não têm texto `[alt]`"
  },
  "core/audits/accessibility/input-image-alt.js | title": {
    "message": "Os elementos `<input type=\"image\">` têm texto `[alt]`"
  },
  "core/audits/accessibility/label-content-name-mismatch.js | description": {
    "message": "As etiquetas de texto visíveis que não correspondam ao nome acessível podem resultar numa experiência confusa para os utilizadores de leitores de ecrã. [Saiba mais sobre os nomes acessíveis](https://dequeuniversity.com/rules/axe/4.11/label-content-name-mismatch)."
  },
  "core/audits/accessibility/label-content-name-mismatch.js | failureTitle": {
    "message": "Os elementos com etiquetas de texto visíveis não têm nomes acessíveis correspondentes."
  },
  "core/audits/accessibility/label-content-name-mismatch.js | title": {
    "message": "Os elementos com etiquetas de texto visíveis têm nomes acessíveis correspondentes."
  },
  "core/audits/accessibility/label.js | description": {
    "message": "As etiquetas garantem que os controlos de formulários são anunciados adequadamente pelas tecnologias de assistência, que incluem os leitores de ecrã. [Saiba mais acerca das etiquetas de elementos de formulários](https://dequeuniversity.com/rules/axe/4.11/label)."
  },
  "core/audits/accessibility/label.js | failureTitle": {
    "message": "Os elementos de formulário não têm etiquetas associadas"
  },
  "core/audits/accessibility/label.js | title": {
    "message": "Os elementos de formulário têm etiquetas associadas"
  },
  "core/audits/accessibility/landmark-one-main.js | description": {
    "message": "Um ponto de referência principal ajuda os utilizadores de leitores de ecrã a navegar numa página Web. [Saiba mais sobre pontos de referência](https://dequeuniversity.com/rules/axe/4.11/landmark-one-main)."
  },
  "core/audits/accessibility/landmark-one-main.js | failureTitle": {
    "message": "O documento não tem um ponto de referência principal."
  },
  "core/audits/accessibility/landmark-one-main.js | title": {
    "message": "O documento tem um ponto de referência principal."
  },
  "core/audits/accessibility/link-in-text-block.js | description": {
    "message": "O texto de baixo contraste é difícil ou impossível de ler para muitos utilizadores. O texto do link percetível melhora a experiência dos utilizadores com visão reduzida. [Saiba como tornar os links distinguíveis](https://dequeuniversity.com/rules/axe/4.11/link-in-text-block)."
  },
  "core/audits/accessibility/link-in-text-block.js | failureTitle": {
    "message": "Os links dependem da cor para serem distinguíveis."
  },
  "core/audits/accessibility/link-in-text-block.js | title": {
    "message": "Os links são distinguíveis sem depender da cor."
  },
  "core/audits/accessibility/link-name.js | description": {
    "message": "O texto de link (e texto alternativo para imagens, quando usado como link) que seja percetível, exclusivo e focalizável melhora a experiência de navegação dos utilizadores de leitores de ecrã. [Saiba como tornar os links acessíveis](https://dequeuniversity.com/rules/axe/4.11/link-name)."
  },
  "core/audits/accessibility/link-name.js | failureTitle": {
    "message": "Os links não têm um nome percetível"
  },
  "core/audits/accessibility/link-name.js | title": {
    "message": "Os links têm um nome percetível"
  },
  "core/audits/accessibility/list.js | description": {
    "message": "Os leitores de ecrã têm uma forma específica de anunciar listas. Garantir uma estrutura de listas adequada é benéfico para o resultado do leitor de ecrã. [Saiba mais acerca da estrutura de listas adequada](https://dequeuniversity.com/rules/axe/4.11/list)."
  },
  "core/audits/accessibility/list.js | failureTitle": {
    "message": "As listas não contêm apenas elementos `<li>` e elementos de suporte de script (`<script>` e `<template>`)."
  },
  "core/audits/accessibility/list.js | title": {
    "message": "As listas contêm apenas elementos `<li>` e elementos de suporte de script (`<script>` e `<template>`)."
  },
  "core/audits/accessibility/listitem.js | description": {
    "message": "Os leitores de ecrã necessitam que os itens de lista (`<li>`) sejam contidos num `<ul>`, `<ol>` ou `<menu>` superior para serem adequadamente anunciados. [Saiba mais acerca da estrutura de listas adequada](https://dequeuniversity.com/rules/axe/4.11/listitem)."
  },
  "core/audits/accessibility/listitem.js | failureTitle": {
    "message": "Os itens de lista (`<li>`) não estão contidos nos elementos superiores `<ul>`, `<ol>` ou `<menu>`."
  },
  "core/audits/accessibility/listitem.js | title": {
    "message": "Os itens de lista (`<li>`) estão contidos nos elementos superiores `<ul>`, `<ol>` ou `<menu>`"
  },
  "core/audits/accessibility/meta-refresh.js | description": {
    "message": "Os utilizadores não esperam que uma página se atualize automaticamente e, se tal acontecer, vai desviar o foco para a parte superior da página. Esta situação pode criar uma experiência frustrante ou confusa. [Saiba mais acerca da metatag de atualização](https://dequeuniversity.com/rules/axe/4.11/meta-refresh)."
  },
  "core/audits/accessibility/meta-refresh.js | failureTitle": {
    "message": "O documento utiliza `<meta http-equiv=\"refresh\">`"
  },
  "core/audits/accessibility/meta-refresh.js | title": {
    "message": "O documento não utiliza `<meta http-equiv=\"refresh\">`"
  },
  "core/audits/accessibility/meta-viewport.js | description": {
    "message": "Desativar o zoom é problemático para os utilizadores com visão reduzida que dependem da ampliação do ecrã para ver adequadamente o conteúdo de uma página Web. [Saiba mais acerca da metatag de área visível](https://dequeuniversity.com/rules/axe/4.11/meta-viewport)."
  },
  "core/audits/accessibility/meta-viewport.js | failureTitle": {
    "message": "O `[user-scalable=\"no\"]` é utilizado no elemento `<meta name=\"viewport\">` ou o atributo `[maximum-scale]` é inferior a 5."
  },
  "core/audits/accessibility/meta-viewport.js | title": {
    "message": "O `[user-scalable=\"no\"]` não é utilizado no elemento `<meta name=\"viewport\">` e o atributo `[maximum-scale]` não é inferior a 5."
  },
  "core/audits/accessibility/object-alt.js | description": {
    "message": "Os leitores de ecrã não conseguem traduzir conteúdo que não seja de texto. Adicionar texto alternativo a elementos `<object>` ajuda os leitores de ecrã a transmitir significado aos utilizadores. [Saiba mais acerca do texto alternativo para elementos `object`](https://dequeuniversity.com/rules/axe/4.11/object-alt)."
  },
  "core/audits/accessibility/object-alt.js | failureTitle": {
    "message": "Os elementos `<object>` não têm texto alternativo"
  },
  "core/audits/accessibility/object-alt.js | title": {
    "message": "Os elementos `<object>` têm texto alternativo"
  },
  "core/audits/accessibility/select-name.js | description": {
    "message": "Os elementos de formulário sem etiquetas eficazes podem criar experiências frustrantes para os utilizadores de leitores de ecrã. [Saiba mais acerca do elemento `select`](https://dequeuniversity.com/rules/axe/4.11/select-name)."
  },
  "core/audits/accessibility/select-name.js | failureTitle": {
    "message": "Os elementos Select não têm elementos de etiqueta associados."
  },
  "core/audits/accessibility/select-name.js | title": {
    "message": "Os elementos Select têm elementos de etiqueta associados."
  },
  "core/audits/accessibility/skip-link.js | description": {
    "message": "A inclusão de um link para ignorar pode ajudar os utilizadores a avançarem para o conteúdo principal para poupar tempo. [Saiba mais sobre os links para ignorar](https://dequeuniversity.com/rules/axe/4.11/skip-link)."
  },
  "core/audits/accessibility/skip-link.js | failureTitle": {
    "message": "Os links para ignorar não são focalizáveis."
  },
  "core/audits/accessibility/skip-link.js | title": {
    "message": "Os links para ignorar são focalizáveis."
  },
  "core/audits/accessibility/tabindex.js | description": {
    "message": "Um valor superior a 0 implica uma ordenação de navegação explícita. Embora seja tecnicamente válida, esta situação costuma criar experiências frustrantes para os utilizadores que dependem de tecnologias de assistência. [Saiba mais acerca do atributo `tabindex`](https://dequeuniversity.com/rules/axe/4.11/tabindex)."
  },
  "core/audits/accessibility/tabindex.js | failureTitle": {
    "message": "Alguns elementos têm um valor `[tabindex]` superior a 0"
  },
  "core/audits/accessibility/tabindex.js | title": {
    "message": "Nenhum elemento tem um valor `[tabindex]` superior a 0"
  },
  "core/audits/accessibility/table-duplicate-name.js | description": {
    "message": "O atributo summary deve descrever a estrutura da tabela, enquanto `<caption>` deve ter o título no ecrã. A marcação precisa da tabela ajuda os utilizadores de leitores de ecrã. [Saiba mais sobre os elementos summary e caption](https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name)."
  },
  "core/audits/accessibility/table-duplicate-name.js | failureTitle": {
    "message": "As tabelas têm o mesmo conteúdo no atributo summary e no elemento `<caption>.`"
  },
  "core/audits/accessibility/table-duplicate-name.js | title": {
    "message": "As tabelas têm conteúdo diferente no atributo summary e no elemento `<caption>`."
  },
  "core/audits/accessibility/table-fake-caption.js | description": {
    "message": "Os leitores de ecrã têm funcionalidades para facilitar a navegação em tabelas. Garantir que as tabelas usam o elemento de legenda real em vez das células com o atributo `[colspan]` pode melhorar a experiência dos utilizadores de leitores de ecrã. [Saiba mais sobre as legendas](https://dequeuniversity.com/rules/axe/4.11/table-fake-caption)."
  },
  "core/audits/accessibility/table-fake-caption.js | failureTitle": {
    "message": "As tabelas não usam `<caption>` em vez de células com o atributo `[colspan]` para indicar uma legenda."
  },
  "core/audits/accessibility/table-fake-caption.js | title": {
    "message": "As tabelas usam `<caption>` em vez de células com o atributo `[colspan]` para indicar uma legenda."
  },
  "core/audits/accessibility/target-size.js | description": {
    "message": "As áreas de toque com tamanho e espaçamento suficientes ajudam os utilizadores que possam ter dificuldades em usar controlos pequenos a ativar os alvos. [Saiba mais acerca das áreas de toque](https://dequeuniversity.com/rules/axe/4.11/target-size)."
  },
  "core/audits/accessibility/target-size.js | failureTitle": {
    "message": "As áreas de toque não têm tamanho nem espaçamento suficientes."
  },
  "core/audits/accessibility/target-size.js | title": {
    "message": "As áreas de toque têm tamanho e espaçamento suficientes."
  },
  "core/audits/accessibility/td-has-header.js | description": {
    "message": "Os leitores de ecrã têm funcionalidades para facilitar a navegação em tabelas. Garantir que os elementos `<td>` numa tabela grande (3 ou mais células de largura e altura) têm um cabeçalho de tabela associado pode melhorar a experiência para os utilizadores de leitores de ecrã. [Saiba mais acerca dos cabeçalhos de tabelas](https://dequeuniversity.com/rules/axe/4.11/td-has-header)."
  },
  "core/audits/accessibility/td-has-header.js | failureTitle": {
    "message": "Os elementos `<td>` num `<table>` grande não têm cabeçalhos de tabela."
  },
  "core/audits/accessibility/td-has-header.js | title": {
    "message": "Os elementos `<td>` num elemento `<table>` grande têm um ou mais cabeçalhos de tabelas."
  },
  "core/audits/accessibility/td-headers-attr.js | description": {
    "message": "Os leitores de ecrã têm funcionalidades para facilitar a navegação em tabelas. Garantir que as células `<td>` que usam o atributo `[headers]` apenas referenciam outras células na mesma tabela pode melhorar a experiência para os utilizadores de leitores de ecrã. [Saiba mais acerca do atributo `headers`](https://dequeuniversity.com/rules/axe/4.11/td-headers-attr)."
  },
  "core/audits/accessibility/td-headers-attr.js | failureTitle": {
    "message": "As células num elemento `<table>` que utilizam o atributo `[headers]` referem-se a um elemento `id` que não se encontra dentro da mesma tabela."
  },
  "core/audits/accessibility/td-headers-attr.js | title": {
    "message": "As células num elemento `<table>` que utilizam o atributo `[headers]` referem-se a células de tabela dentro da mesma tabela."
  },
  "core/audits/accessibility/th-has-data-cells.js | description": {
    "message": "Os leitores de ecrã têm funcionalidades para facilitar a navegação em tabelas. Garantir que os cabeçalhos de tabelas referenciam sempre algum conjunto de células pode melhorar a experiência dos utilizadores com leitores de ecrã. [Saiba mais acerca dos cabeçalhos de tabelas](https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells)."
  },
  "core/audits/accessibility/th-has-data-cells.js | failureTitle": {
    "message": "Os elementos `<th>` e os elementos com `[role=\"columnheader\"/\"rowheader\"]` não têm as células de dados que descrevem."
  },
  "core/audits/accessibility/th-has-data-cells.js | title": {
    "message": "Os elementos `<th>` e os elementos com `[role=\"columnheader\"/\"rowheader\"]` têm as células de dados que descrevem."
  },
  "core/audits/accessibility/valid-lang.js | description": {
    "message": "Especificar um [idioma BCP 47](https://www.w3.org/International/questions/qa-choosing-language-tags#question) válido para elementos ajuda a garantir que o texto é pronunciado corretamente por um leitor de ecrã. [Saiba como usar o atributo `lang`](https://dequeuniversity.com/rules/axe/4.11/valid-lang)."
  },
  "core/audits/accessibility/valid-lang.js | failureTitle": {
    "message": "Os atributos `[lang]` não têm um valor válido"
  },
  "core/audits/accessibility/valid-lang.js | title": {
    "message": "Os atributos `[lang]` têm um valor válido"
  },
  "core/audits/accessibility/video-caption.js | description": {
    "message": "Quando um vídeo oferece uma legenda, é mais fácil para os utilizadores surdos e com problemas de audição aceder às informações. [Saiba mais acerca das legendas de vídeos](https://dequeuniversity.com/rules/axe/4.11/video-caption)."
  },
  "core/audits/accessibility/video-caption.js | failureTitle": {
    "message": "Os elementos `<video>` não contêm um elemento `<track>` com `[kind=\"captions\"]`"
  },
  "core/audits/accessibility/video-caption.js | title": {
    "message": "Os elementos `<video>` contêm um elemento `<track>` com `[kind=\"captions\"]`"
  },
  "core/audits/autocomplete.js | columnCurrent": {
    "message": "Valor atual"
  },
  "core/audits/autocomplete.js | columnSuggestions": {
    "message": "Símbolo sugerido"
  },
  "core/audits/autocomplete.js | description": {
    "message": "O atributo `autocomplete` ajuda os utilizadores a enviarem os formulários mais rapidamente. Para reduzir o esforço dos utilizadores, considere ativá-lo ao definir o atributo `autocomplete` para um valor válido. [Saiba mais acerca do `autocomplete` em formulários](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)"
  },
  "core/audits/autocomplete.js | failureTitle": {
    "message": "Os elementos `<input>` não têm atributos `autocomplete` corretos"
  },
  "core/audits/autocomplete.js | manualReview": {
    "message": "Requer revisão manual"
  },
  "core/audits/autocomplete.js | reviewOrder": {
    "message": "Reveja a ordem dos símbolos"
  },
  "core/audits/autocomplete.js | title": {
    "message": "Os elementos `<input>` utilizam o atributo `autocomplete` corretamente"
  },
  "core/audits/autocomplete.js | warningInvalid": {
    "message": "Símbolo(s) de `autocomplete`\": \"{token}\" é inválido em {snippet}."
  },
  "core/audits/autocomplete.js | warningOrder": {
    "message": "Reveja a ordem dos símbolos: \"{tokens}\" em {snippet}"
  },
  "core/audits/bf-cache.js | actionableFailureType": {
    "message": "Acionável"
  },
  "core/audits/bf-cache.js | description": {
    "message": "Muitas navegações são realizadas ao retroceder para uma página anterior ou avançar novamente. A cache para a frente/para trás (bfcache) pode acelerar estas navegações de retorno. [Saiba mais sobre a bfcache](https://developer.chrome.com/docs/lighthouse/performance/bf-cache/)"
  },
  "core/audits/bf-cache.js | displayValue": {
    "message": "{itemCount,plural, =1{1 motivo da falha}other{# motivos da falha}}"
  },
  "core/audits/bf-cache.js | failureReasonColumn": {
    "message": "Motivo da falha"
  },
  "core/audits/bf-cache.js | failureTitle": {
    "message": "A página impediu o restauro da cache para a frente/para trás"
  },
  "core/audits/bf-cache.js | failureTypeColumn": {
    "message": "Tipo de falha"
  },
  "core/audits/bf-cache.js | notActionableFailureType": {
    "message": "Não acionável"
  },
  "core/audits/bf-cache.js | supportPendingFailureType": {
    "message": "Suporte do navegador pendente"
  },
  "core/audits/bf-cache.js | title": {
    "message": "A página não impediu o restauro da cache para a frente/para trás"
  },
  "core/audits/bf-cache.js | warningHeadless": {
    "message": "Não é possível testar a cache para a frente/para trás no Chrome sem interface antigo (`--chrome-flags=\"--headless=old\"`). Para ver os resultados da auditoria, use o novo Chrome sem interface (`--chrome-flags=\"--headless=new\"`) ou o Chrome padrão."
  },
  "core/audits/bootup-time.js | chromeExtensionsWarning": {
    "message": "As extensões do Chrome afetam negativamente o desempenho de carregamento desta página. Experimente efetuar uma auditoria à página no modo de navegação anónima ou com um perfil do Chrome sem extensões."
  },
  "core/audits/bootup-time.js | columnScriptEval": {
    "message": "Avaliação do script"
  },
  "core/audits/bootup-time.js | columnScriptParse": {
    "message": "Análise do script"
  },
  "core/audits/bootup-time.js | columnTotal": {
    "message": "Tempo total da CPU"
  },
  "core/audits/bootup-time.js | description": {
    "message": "Considere reduzir o tempo despendido a analisar, compilar e executar JS. Poderá descobrir que é útil publicar payloads de JS mais pequenos. [Saiba como reduzir o tempo de execução de JavaScript](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/)."
  },
  "core/audits/bootup-time.js | failureTitle": {
    "message": "Reduza o tempo de execução de JavaScript"
  },
  "core/audits/bootup-time.js | title": {
    "message": "Tempo de execução de JavaScript"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | description": {
    "message": "Os grandes payloads de rede têm custos reais para os utilizadores e estão fortemente correlacionados com tempos de carregamento demorados. [Saiba como reduzir os tamanhos dos payloads](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/)."
  },
  "core/audits/byte-efficiency/total-byte-weight.js | displayValue": {
    "message": "O tamanho total era {totalBytes, number, bytes} KiB."
  },
  "core/audits/byte-efficiency/total-byte-weight.js | failureTitle": {
    "message": "Evite enormes payloads de rede"
  },
  "core/audits/byte-efficiency/total-byte-weight.js | title": {
    "message": "Evita enormes payloads de rede"
  },
  "core/audits/byte-efficiency/unminified-css.js | description": {
    "message": "Reduzir os ficheiros CSS pode reduzir os tamanhos dos payloads de rede. [Saiba como reduzir o CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/)."
  },
  "core/audits/byte-efficiency/unminified-css.js | title": {
    "message": "Reduza o CSS"
  },
  "core/audits/byte-efficiency/unminified-javascript.js | description": {
    "message": "Reduzir os ficheiros JavaScript pode reduzir os tamanhos dos payloads e o tempo de análise de scripts. [Saiba como reduzir o JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/)."
  },
  "core/audits/byte-efficiency/unminified-javascript.js | title": {
    "message": "Reduza o JavaScript"
  },
  "core/audits/byte-efficiency/unused-css-rules.js | description": {
    "message": "Reduza as regras não usadas das folhas de estilos e adie o CSS não usado de conteúdo na parte superior para diminuir a quantidade de bytes consumidos pela atividade da rede. [Saiba como reduzir o CSS não usado](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/)."
  },
  "core/audits/byte-efficiency/unused-css-rules.js | title": {
    "message": "Reduza o CSS"
  },
  "core/audits/byte-efficiency/unused-javascript.js | description": {
    "message": "Reduza o JavaScript não usado e adie o carregamento de scripts até serem necessários para diminuir a quantidade de bytes consumidos pela atividade da rede. [Saiba como reduzir o JavaScript não usado](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/)."
  },
  "core/audits/byte-efficiency/unused-javascript.js | title": {
    "message": "Reduza o JavaScript não utilizado"
  },
  "core/audits/clickjacking-mitigation.js | columnSeverity": {
    "message": "Gravidade"
  },
  "core/audits/clickjacking-mitigation.js | description": {
    "message": "O cabeçalho `X-Frame-Options` (XFO) ou a diretiva `frame-ancestors` no cabeçalho `Content-Security-Policy` (CSP) controlam onde uma página pode ser incorporada. Estes podem mitigar ataques de clickjacking bloqueando a capacidade de alguns ou todos os sites incorporarem a página. [Saiba como mitigar o clickjacking](https://developer.chrome.com/docs/lighthouse/best-practices/clickjacking-mitigation)."
  },
  "core/audits/clickjacking-mitigation.js | noClickjackingMitigation": {
    "message": "Não foi encontrada nenhuma política de controlo de frames"
  },
  "core/audits/clickjacking-mitigation.js | title": {
    "message": "Mitigue o clickjacking com XFO ou CSP"
  },
  "core/audits/csp-xss.js | columnDirective": {
    "message": "Diretiva"
  },
  "core/audits/csp-xss.js | columnSeverity": {
    "message": "Gravidade"
  },
  "core/audits/csp-xss.js | description": {
    "message": "Uma Política de Segurança de Conteúdos (CSP) forte reduz significativamente o risco de ataques de cross-site scripting (XSS). [Saiba como usar uma CSP para evitar XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)"
  },
  "core/audits/csp-xss.js | itemSeveritySyntax": {
    "message": "Sintaxe"
  },
  "core/audits/csp-xss.js | metaTagMessage": {
    "message": "A página contém uma CSP definida numa etiqueta `<meta>`. Considere mover a CSP para um cabeçalho HTTP ou definir outra CSP rigorosa num cabeçalho HTTP."
  },
  "core/audits/csp-xss.js | noCsp": {
    "message": "Não foi encontrada nenhuma CSP no modo de aplicação."
  },
  "core/audits/csp-xss.js | title": {
    "message": "Certifique-se de que a CSP é eficaz contra ataques XSS"
  },
  "core/audits/deprecations.js | columnDeprecate": {
    "message": "Descontinuação/aviso"
  },
  "core/audits/deprecations.js | columnLine": {
    "message": "Linha"
  },
  "core/audits/deprecations.js | description": {
    "message": "As APIs descontinuadas serão eventualmente removidas do navegador. [Saiba mais acerca das APIs descontinuadas](https://developer.chrome.com/docs/lighthouse/best-practices/deprecations/)."
  },
  "core/audits/deprecations.js | displayValue": {
    "message": "{itemCount,plural, =1{1 aviso encontrado}other{# avisos encontrados}}"
  },
  "core/audits/deprecations.js | failureTitle": {
    "message": "Utiliza APIs descontinuadas"
  },
  "core/audits/deprecations.js | title": {
    "message": "Evita APIs descontinuadas"
  },
  "core/audits/dobetterweb/charset.js | description": {
    "message": "É obrigatória uma declaração de codificação de carateres. Pode ser realizada com uma tag `<meta>` nos primeiros 1024 bytes do HTML ou no cabeçalho da resposta do HTTP de tipo de conteúdo. [Saiba mais acerca da declaração de codificação de carateres](https://developer.chrome.com/docs/lighthouse/best-practices/charset/)."
  },
  "core/audits/dobetterweb/charset.js | failureTitle": {
    "message": "A declaração de charset está em falta ou ocorre demasiado tarde no HTML"
  },
  "core/audits/dobetterweb/charset.js | title": {
    "message": "Define o charset adequadamente"
  },
  "core/audits/dobetterweb/doctype.js | description": {
    "message": "Especificar um doctype impede que o navegador mude para o modo quirks. [Saiba mais acerca da declaração doctype](https://developer.chrome.com/docs/lighthouse/best-practices/doctype/)."
  },
  "core/audits/dobetterweb/doctype.js | explanationBadDoctype": {
    "message": "O nome do doctype deve ser a string `html`"
  },
  "core/audits/dobetterweb/doctype.js | explanationLimitedQuirks": {
    "message": "O documento contém um `doctype` que aciona o `limited-quirks-mode`"
  },
  "core/audits/dobetterweb/doctype.js | explanationNoDoctype": {
    "message": "O documento deve conter um doctype"
  },
  "core/audits/dobetterweb/doctype.js | explanationPublicId": {
    "message": "Era esperado que o PublicId fosse uma string vazia"
  },
  "core/audits/dobetterweb/doctype.js | explanationSystemId": {
    "message": "Era esperado que o SystemId fosse uma string vazia."
  },
  "core/audits/dobetterweb/doctype.js | explanationWrongDoctype": {
    "message": "O documento contém um `doctype` que aciona o `quirks-mode`"
  },
  "core/audits/dobetterweb/doctype.js | failureTitle": {
    "message": "A página não possui o doctype HTML, o que faz com que o modo quirks seja acionado"
  },
  "core/audits/dobetterweb/doctype.js | title": {
    "message": "A página possui o doctype HTML"
  },
  "core/audits/dobetterweb/geolocation-on-start.js | description": {
    "message": "Os utilizadores desconfiam ou ficam confusos perante os sites que pedem a sua localização sem contexto. Em vez disso, considere associar o pedido a uma ação do utilizador. [Saiba mais acerca da autorização de geolocalização](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)."
  },
  "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": {
    "message": "Solicita a autorização de geolocalização no carregamento da página"
  },
  "core/audits/dobetterweb/geolocation-on-start.js | title": {
    "message": "Evita a solicitação da autorização de geolocalização no carregamento da página"
  },
  "core/audits/dobetterweb/inspector-issues.js | columnIssueType": {
    "message": "Tipo de problema"
  },
  "core/audits/dobetterweb/inspector-issues.js | description": {
    "message": "Os erros registados no painel `Issues` das Chrome Devtools indicam problemas não resolvidos. Podem ser provenientes de falhas de pedidos de rede, controlos de segurança insuficientes e outras questões do navegador. Abra o painel Issues das Chrome DevTools para visualizar mais detalhes sobre cada erro."
  },
  "core/audits/dobetterweb/inspector-issues.js | failureTitle": {
    "message": "Foram registados erros no painel `Issues` das Chrome Devtools"
  },
  "core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": {
    "message": "Bloqueado pela política de origem cruzada"
  },
  "core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": {
    "message": "Utilização de recursos pesados por anúncios"
  },
  "core/audits/dobetterweb/inspector-issues.js | title": {
    "message": "Não existem erros no painel `Issues` das Chrome Devtools"
  },
  "core/audits/dobetterweb/js-libraries.js | columnVersion": {
    "message": "Versão"
  },
  "core/audits/dobetterweb/js-libraries.js | description": {
    "message": "Todas as bibliotecas de interface JavaScript detetadas na página. [Saiba mais acerca desta auditoria de diagnóstico de deteção da biblioteca de JavaScript](https://developer.chrome.com/docs/lighthouse/best-practices/js-libraries/)."
  },
  "core/audits/dobetterweb/js-libraries.js | title": {
    "message": "Bibliotecas JavaScript detetadas"
  },
  "core/audits/dobetterweb/notification-on-start.js | description": {
    "message": "Os utilizadores desconfiam ou ficam confusos perante os sites que pedem o envio de notificações sem contexto. Em vez disso, considere associar o pedido aos gestos do utilizador. [Saiba como obter autorizações para notificações de forma responsável](https://developer.chrome.com/docs/lighthouse/best-practices/notification-on-start/)."
  },
  "core/audits/dobetterweb/notification-on-start.js | failureTitle": {
    "message": "Solicita a autorização de notificações no carregamento da página"
  },
  "core/audits/dobetterweb/notification-on-start.js | title": {
    "message": "Evita a solicitação da autorização de notificações no carregamento da página"
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | description": {
    "message": "Impedir a colagem de entradas é uma má prática para a experiência do utilizador e reduz a segurança através do bloqueio de gestores de palavras-passe.[Saiba mais sobre os campos de entrada intuitivos](https://developer.chrome.com/docs/lighthouse/best-practices/paste-preventing-inputs/)."
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | failureTitle": {
    "message": "Impede que os utilizadores colem conteúdo em campos de entrada"
  },
  "core/audits/dobetterweb/paste-preventing-inputs.js | title": {
    "message": "Permite que os utilizadores colem conteúdo nos campos de entrada"
  },
  "core/audits/errors-in-console.js | description": {
    "message": "Os erros registados na consola indicam problemas não resolvidos. Estes podem ser provenientes de falhas de pedidos de rede e outras questões do navegador. [Saiba mais acerca destes erros na auditoria de diagnóstico da consola](https://developer.chrome.com/docs/lighthouse/best-practices/errors-in-console/)"
  },
  "core/audits/errors-in-console.js | failureTitle": {
    "message": "Os erros do navegador foram registados na consola"
  },
  "core/audits/errors-in-console.js | title": {
    "message": "Nenhum erro do navegador registado na consola"
  },
  "core/audits/has-hsts.js | columnDirective": {
    "message": "Diretiva"
  },
  "core/audits/has-hsts.js | columnSeverity": {
    "message": "Gravidade"
  },
  "core/audits/has-hsts.js | description": {
    "message": "A implementação do cabeçalho HSTS reduz significativamente o risco de alteração das ligações HTTP para versões inferiores e de ataques de escutas. Recomenda-se uma implementação por fases, começando com uma diretiva max-age baixa. [Saiba mais sobre a utilização de uma política HSTS forte.](https://developer.chrome.com/docs/lighthouse/best-practices/has-hsts)"
  },
  "core/audits/has-hsts.js | invalidSyntax": {
    "message": "Sintaxe inválida"
  },
  "core/audits/has-hsts.js | lowMaxAge": {
    "message": "`max-age` é demasiado baixa"
  },
  "core/audits/has-hsts.js | noHsts": {
    "message": "Não foi encontrado nenhum cabeçalho HSTS"
  },
  "core/audits/has-hsts.js | noMaxAge": {
    "message": "Sem diretiva `max-age`"
  },
  "core/audits/has-hsts.js | noPreload": {
    "message": "Não foi encontrada nenhuma diretiva `preload`"
  },
  "core/audits/has-hsts.js | noSubdomain": {
    "message": "Não foi encontrada nenhuma diretiva `includeSubDomains`"
  },
  "core/audits/has-hsts.js | title": {
    "message": "Use uma política HSTS forte"
  },
  "core/audits/image-aspect-ratio.js | columnActual": {
    "message": "Proporção (atual)"
  },
  "core/audits/image-aspect-ratio.js | columnDisplayed": {
    "message": "Formato (apresentado)"
  },
  "core/audits/image-aspect-ratio.js | description": {
    "message": "As dimensões de apresentação das imagens devem corresponder ao formato natural. [Saiba mais acerca do formato das imagens](https://developer.chrome.com/docs/lighthouse/best-practices/image-aspect-ratio/)."
  },
  "core/audits/image-aspect-ratio.js | failureTitle": {
    "message": "Apresenta imagens com uma proporção incorreta"
  },
  "core/audits/image-aspect-ratio.js | title": {
    "message": "Apresenta imagens com uma proporção correta"
  },
  "core/audits/image-size-responsive.js | columnActual": {
    "message": "Tamanho real"
  },
  "core/audits/image-size-responsive.js | columnDisplayed": {
    "message": "Tamanho apresentado"
  },
  "core/audits/image-size-responsive.js | columnExpected": {
    "message": "Tamanho esperado"
  },
  "core/audits/image-size-responsive.js | description": {
    "message": "As dimensões naturais da imagem devem ser proporcionais ao tamanho do ecrã e à relação de píxeis para maximizar a nitidez da imagem. [Saiba como disponibilizar imagens dinâmicas](https://web.dev/articles/serve-responsive-images)."
  },
  "core/audits/image-size-responsive.js | failureTitle": {
    "message": "Publica imagens com baixa resolução"
  },
  "core/audits/image-size-responsive.js | title": {
    "message": "Publica imagens com a resolução adequada"
  },
  "core/audits/insights/cls-culprits-insight.js | columnScore": {
    "message": "Pontuação da mudança de esquema"
  },
  "core/audits/is-on-https.js | allowed": {
    "message": "Permitido"
  },
  "core/audits/is-on-https.js | blocked": {
    "message": "Bloqueado"
  },
  "core/audits/is-on-https.js | columnInsecureURL": {
    "message": "URL inseguro"
  },
  "core/audits/is-on-https.js | columnResolution": {
    "message": "Resolução de pedidos"
  },
  "core/audits/is-on-https.js | description": {
    "message": "Todos os sites devem ser protegidos com HTTPS, mesmo aqueles que não lidam com dados confidenciais. Isto inclui evitar [conteúdo misto](https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content), em que alguns recursos são carregados por HTTP apesar de o pedido inicial ser publicado através de HTTPS. O HTTPS evita que os intrusos adulterem ou escutem passivamente as comunicações entre a sua app e os seus utilizadores, e é um pré-requisito para o HTTP/2 e muitas novas APIs de plataformas Web. [Saiba mais acerca do HTTPS](https://developer.chrome.com/docs/lighthouse/pwa/is-on-https/)."
  },
  "core/audits/is-on-https.js | displayValue": {
    "message": "{itemCount,plural, =1{1 pedido inseguro encontrado}other{# pedidos inseguros encontrados}}"
  },
  "core/audits/is-on-https.js | failureTitle": {
    "message": "Não utiliza HTTPS"
  },
  "core/audits/is-on-https.js | title": {
    "message": "Utiliza HTTPS"
  },
  "core/audits/is-on-https.js | upgraded": {
    "message": "Atualizado automaticamente para HTTPS"
  },
  "core/audits/is-on-https.js | warning": {
    "message": "Permitido com aviso"
  },
  "core/audits/layout-shifts.js | columnScore": {
    "message": "Pontuação da mudança de esquema"
  },
  "core/audits/layout-shifts.js | description": {
    "message": "Estas são as maiores mudanças de esquema observadas na página. Cada item da tabela representa uma única mudança de esquema e mostra o elemento que mais mudou. Abaixo de cada item, encontram-se possíveis causas principais que levaram à mudança de esquema. Algumas destas mudanças de esquema podem não ser incluídas no valor da métrica CLS devido à [visualização baseada na janela atual](https://web.dev/articles/cls#what_is_cls). [Saiba como melhorar a CLS](https://web.dev/articles/optimize-cls)"
  },
  "core/audits/layout-shifts.js | displayValueShiftsFound": {
    "message": "{shiftCount,plural, =1{1 mudança de esquema encontrada}other{# mudanças de esquema encontradas}}"
  },
  "core/audits/layout-shifts.js | rootCauseFontChanges": {
    "message": "Tipo de letra para Websites carregado"
  },
  "core/audits/layout-shifts.js | rootCauseInjectedIframe": {
    "message": "iFrame injetado"
  },
  "core/audits/layout-shifts.js | rootCauseUnsizedMedia": {
    "message": "Elemento de multimédia sem um tamanho explícito"
  },
  "core/audits/layout-shifts.js | title": {
    "message": "Evite mudanças de esquemas grandes"
  },
  "core/audits/long-tasks.js | description": {
    "message": "Apresenta as tarefas mais longas na thread principal, o que é útil para identificar o que mais contribui para o atraso de entrada. [Saiba como evitar tarefas longas na thread principal](https://web.dev/articles/optimize-long-tasks)"
  },
  "core/audits/long-tasks.js | displayValue": {
    "message": "{itemCount,plural, =1{# tarefa longa encontrada}other{# tarefas longas encontradas}}"
  },
  "core/audits/long-tasks.js | title": {
    "message": "Evite tarefas longas na thread principal"
  },
  "core/audits/mainthread-work-breakdown.js | columnCategory": {
    "message": "Categoria"
  },
  "core/audits/mainthread-work-breakdown.js | description": {
    "message": "Considere reduzir o tempo despendido a analisar, compilar e executar JS. Poderá descobrir que é útil publicar payloads de JS mais pequenos. [Saiba como minimizar as operações da thread principal](https://developer.chrome.com/docs/lighthouse/performance/mainthread-work-breakdown/)"
  },
  "core/audits/mainthread-work-breakdown.js | failureTitle": {
    "message": "Reduzir as operações do thread principal"
  },
  "core/audits/mainthread-work-breakdown.js | title": {
    "message": "Reduz as operações do thread principal"
  },
  "core/audits/metrics/cumulative-layout-shift.js | description": {
    "message": "A Mudança de esquema cumulativo mede o movimento dos elementos visíveis na área visível. [Saiba mais acerca da métrica Mudança de esquema cumulativo](https://web.dev/articles/cls)."
  },
  "core/audits/metrics/first-contentful-paint.js | description": {
    "message": "O Primeiro preenchimento com conteúdo assinala o momento de preenchimento com o primeiro texto ou imagem. [Saiba mais acerca da métrica Primeiro preenchimento com conteúdo](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/)."
  },
  "core/audits/metrics/interaction-to-next-paint.js | description": {
    "message": "A interação até ao preenchimento seguinte mede a capacidade de resposta da página, bem como o tempo que esta demora a responder visivelmente à introdução do utilizador. [Saiba mais acerca da métrica Interação até ao preenchimento seguinte](https://web.dev/articles/inp)."
  },
  "core/audits/metrics/interactive.js | description": {
    "message": "O Tempo até à interação é a quantidade de tempo que a página demora a ficar totalmente interativa. [Saiba mais acerca da métrica Tempo até à interação](https://developer.chrome.com/docs/lighthouse/performance/interactive/)."
  },
  "core/audits/metrics/largest-contentful-paint.js | description": {
    "message": "A métrica Maior preenchimento com conteúdo assinala o momento de preenchimento com o maior texto ou imagem. [Saiba mais acerca da métrica Maior preenchimento com conteúdo](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)"
  },
  "core/audits/metrics/max-potential-fid.js | description": {
    "message": "O máximo potencial do primeiro atraso de entrada que pode afetar os utilizadores é a duração da tarefa mais longa. [Saiba mais acerca da métrica Máximo potencial do primeiro atraso de entrada](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-max-potential-fid/)."
  },
  "core/audits/metrics/speed-index.js | description": {
    "message": "A métrica Speed Index apresenta a rapidez de preenchimento visível dos conteúdos de uma página. [Saiba mais acerca da métrica Speed Index](https://developer.chrome.com/docs/lighthouse/performance/speed-index/)."
  },
  "core/audits/metrics/total-blocking-time.js | description": {
    "message": "A soma de todos os períodos entre o FCP e o Tempo até à interação, quando a duração da tarefa é superior a 50 ms, expressa em milissegundos. [Saiba mais acerca da métrica Tempo total de bloqueio](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/)."
  },
  "core/audits/network-rtt.js | description": {
    "message": "Os tempos de ida e volta (RTT) da rede têm um grande impacto no desempenho. Se o RTT para uma origem for elevado, é uma indicação de que os servidores mais próximos do utilizador podem melhorar o desempenho. [Saiba mais acerca do tempo de ida e volta](https://hpbn.co/primer-on-latency-and-bandwidth/)."
  },
  "core/audits/network-rtt.js | title": {
    "message": "Tempos de ida e volta da rede"
  },
  "core/audits/network-server-latency.js | description": {
    "message": "As latências do servidor podem afetar o desempenho Web. Se a latência do servidor de uma origem for elevada, é uma indicação de que o servidor está sobrecarregado ou tem um fraco desempenho de back-end. [Saiba mais acerca do tempo de resposta do servidor](https://hpbn.co/primer-on-web-performance/#analyzing-the-resource-waterfall)."
  },
  "core/audits/network-server-latency.js | title": {
    "message": "Latências de back-end do servidor"
  },
  "core/audits/non-composited-animations.js | description": {
    "message": "As animações que não são compostas podem ser de má qualidade e aumentar o CLS. [Saiba como evitar animações não compostas](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": "A propriedade relacionada com o filtro pode mover píxeis"
  },
  "core/audits/non-composited-animations.js | incompatibleAnimations": {
    "message": "O destino tem outra animação incompatível"
  },
  "core/audits/non-composited-animations.js | nonReplaceCompositeMode": {
    "message": "O efeito tem um modo composto diferente de \"replace\""
  },
  "core/audits/non-composited-animations.js | title": {
    "message": "Evite animações não compostas"
  },
  "core/audits/non-composited-animations.js | transformDependsBoxSize": {
    "message": "A propriedade relacionada com a transformação depende do tamanho da caixa"
  },
  "core/audits/non-composited-animations.js | unsupportedCSSProperty": {
    "message": "{propertyCount,plural, =1{Propriedade CSS não suportada: {properties}}other{Propriedades CSS não suportadas: {properties}}}"
  },
  "core/audits/non-composited-animations.js | unsupportedCustomCSSProperty": {
    "message": "{propertyCount,plural, =1{Não é possível animar propriedades CSS personalizadas no compositor: {properties}}other{Não é possível animar propriedades CSS personalizadas no compositor: {properties}}}"
  },
  "core/audits/non-composited-animations.js | unsupportedTimingParameters": {
    "message": "O efeito tem parâmetros de tempo não suportados"
  },
  "core/audits/origin-isolation.js | columnDirective": {
    "message": "Diretiva"
  },
  "core/audits/origin-isolation.js | columnSeverity": {
    "message": "Gravidade"
  },
  "core/audits/origin-isolation.js | description": {
    "message": "A política Cross-Origin-Opener-Policy (COOP) pode ser usada para isolar a janela de nível superior de outros documentos, como pop-ups. [Saiba mais sobre a implementação do cabeçalho COOP.](https://web.dev/articles/why-coop-coep#coop)"
  },
  "core/audits/origin-isolation.js | invalidSyntax": {
    "message": "Sintaxe inválida"
  },
  "core/audits/origin-isolation.js | noCoop": {
    "message": "Não foi encontrado nenhum cabeçalho COOP"
  },
  "core/audits/origin-isolation.js | title": {
    "message": "Garanta o isolamento de origem adequado com o COOP"
  },
  "core/audits/redirects-http.js | description": {
    "message": "Certifique-se de que redireciona todo o tráfego HTTP para HTTPS de modo a ativar as funcionalidades Web seguras para todos os seus utilizadores. [Saiba mais](https://developer.chrome.com/docs/lighthouse/pwa/redirects-http/)."
  },
  "core/audits/redirects-http.js | failureTitle": {
    "message": "Não redireciona o tráfego HTTP para HTTPS"
  },
  "core/audits/redirects-http.js | title": {
    "message": "Redireciona o tráfego HTTP para HTTPS"
  },
  "core/audits/redirects.js | description": {
    "message": "Os redirecionamentos introduzem atrasos adicionais antes do carregamento da página. [Saiba como evitar redirecionamentos de páginas](https://developer.chrome.com/docs/lighthouse/performance/redirects/)."
  },
  "core/audits/redirects.js | title": {
    "message": "Evite vários redirecionamentos de página"
  },
  "core/audits/seo/canonical.js | description": {
    "message": "Os links canónicos sugerem o URL a apresentar nos resultados da pesquisa. [Saiba mais acerca dos links canónicos](https://developer.chrome.com/docs/lighthouse/seo/canonical/)."
  },
  "core/audits/seo/canonical.js | explanationConflict": {
    "message": "Vários URLs em conflito ({urlList})"
  },
  "core/audits/seo/canonical.js | explanationInvalid": {
    "message": "URL inválido ({url})"
  },
  "core/audits/seo/canonical.js | explanationPointsElsewhere": {
    "message": "Aponta para outra localização `hreflang` ({url})"
  },
  "core/audits/seo/canonical.js | explanationRelative": {
    "message": "Não é um URL absoluto ({url})"
  },
  "core/audits/seo/canonical.js | explanationRoot": {
    "message": "Aponta para o URL raiz do domínio (a página inicial), em vez de uma página de conteúdo equivalente."
  },
  "core/audits/seo/canonical.js | failureTitle": {
    "message": "O documento não tem um `rel=canonical` válido"
  },
  "core/audits/seo/canonical.js | title": {
    "message": "O documento tem um `rel=canonical` válido"
  },
  "core/audits/seo/crawlable-anchors.js | columnFailingLink": {
    "message": "O link não pode ser rastreado"
  },
  "core/audits/seo/crawlable-anchors.js | description": {
    "message": "Os motores de pesquisa podem usar atributos `href` em links para rastrear Websites. Confirme que o atributo `href` de elementos de âncora liga a um destino adequado, para que possam ser descobertas mais páginas do site. [Saiba como tornar os links rastreáveis](https://support.google.com/webmasters/answer/9112205)"
  },
  "core/audits/seo/crawlable-anchors.js | failureTitle": {
    "message": "Os links não podem ser rastreados"
  },
  "core/audits/seo/crawlable-anchors.js | title": {
    "message": "Os links podem ser rastreados"
  },
  "core/audits/seo/hreflang.js | description": {
    "message": "Os links hreflang indicam aos motores de pesquisa a versão de uma página que devem apresentar nos resultados da pesquisa para um determinado idioma ou região. [Saiba mais sobre `hreflang`](https://developer.chrome.com/docs/lighthouse/seo/hreflang/)."
  },
  "core/audits/seo/hreflang.js | failureTitle": {
    "message": "O documento não tem um `hreflang` válido"
  },
  "core/audits/seo/hreflang.js | notFullyQualified": {
    "message": "Valor href relativo"
  },
  "core/audits/seo/hreflang.js | title": {
    "message": "O documento tem um `hreflang` válido"
  },
  "core/audits/seo/hreflang.js | unexpectedLanguage": {
    "message": "Código de idioma inesperado"
  },
  "core/audits/seo/http-status-code.js | description": {
    "message": "As páginas com Códigos de estado HTTP sem êxito podem não ser indexadas corretamente. [Saiba mais acerca dos Códigos de estado HTTP](https://developer.chrome.com/docs/lighthouse/seo/http-status-code/)."
  },
  "core/audits/seo/http-status-code.js | failureTitle": {
    "message": "A página tem código de estado HTTP não executado com êxito"
  },
  "core/audits/seo/http-status-code.js | title": {
    "message": "A página tem código de estado HTTP executado com êxito"
  },
  "core/audits/seo/is-crawlable.js | description": {
    "message": "Os motores de pesquisa não podem incluir as suas páginas nos resultados da pesquisa se não tiverem autorização para as rastrear. [Saiba mais acerca das diretivas do motor de rastreio](https://developer.chrome.com/docs/lighthouse/seo/is-crawlable/)."
  },
  "core/audits/seo/is-crawlable.js | failureTitle": {
    "message": "A página está impedida de ser indexada"
  },
  "core/audits/seo/is-crawlable.js | title": {
    "message": "A página não está impedida de ser indexada"
  },
  "core/audits/seo/link-text.js | description": {
    "message": "O texto descritivo dos links ajuda os motores de pesquisa a compreender o conteúdo. [Saiba como tornar os links mais acessíveis](https://developer.chrome.com/docs/lighthouse/seo/link-text/)."
  },
  "core/audits/seo/link-text.js | displayValue": {
    "message": "{itemCount,plural, =1{1 link encontrado}other{# links encontrados}}"
  },
  "core/audits/seo/link-text.js | failureTitle": {
    "message": "Os links não têm texto descritivo"
  },
  "core/audits/seo/link-text.js | title": {
    "message": "Os links têm texto descritivo"
  },
  "core/audits/seo/manual/structured-data.js | description": {
    "message": "Execute a [Ferramenta de teste de dados estruturados](https://developers.google.com/search/docs/appearance/structured-data/) para validar dados estruturados. [Saiba mais acerca dos dados estruturados](https://developer.chrome.com/docs/lighthouse/seo/structured-data/)."
  },
  "core/audits/seo/manual/structured-data.js | title": {
    "message": "Os dados estruturados são válidos"
  },
  "core/audits/seo/meta-description.js | description": {
    "message": "As meta descrições podem ser incluídas nos resultados da pesquisa para resumir concisamente o conteúdo da página. [Saiba mais acerca da meta descrição](https://developer.chrome.com/docs/lighthouse/seo/meta-description/)."
  },
  "core/audits/seo/meta-description.js | explanation": {
    "message": "O texto da descrição está vazio."
  },
  "core/audits/seo/meta-description.js | failureTitle": {
    "message": "O documento não tem uma meta descrição"
  },
  "core/audits/seo/meta-description.js | title": {
    "message": "O documento tem uma meta descrição"
  },
  "core/audits/seo/robots-txt.js | description": {
    "message": "Se o ficheiro robots.txt estiver mal formado, os motores de rastreio podem não conseguir compreender como quer que o seu Website seja rastreado ou indexado. [Saiba mais acerca do ficheiro robots.txt](https://developer.chrome.com/docs/lighthouse/seo/invalid-robots-txt/)."
  },
  "core/audits/seo/robots-txt.js | displayValueHttpBadCode": {
    "message": "O pedido de robots.txt devolveu o seguinte estado de HTTP: {statusCode}"
  },
  "core/audits/seo/robots-txt.js | displayValueValidationError": {
    "message": "{itemCount,plural, =1{1 erro encontrado}other{# erros encontrados}}"
  },
  "core/audits/seo/robots-txt.js | explanation": {
    "message": "O Lighthouse não conseguiu transferir um ficheiro robots.txt."
  },
  "core/audits/seo/robots-txt.js | failureTitle": {
    "message": "O ficheiro robots.txt não é válido"
  },
  "core/audits/seo/robots-txt.js | title": {
    "message": "O ficheiro robots.txt é válido"
  },
  "core/audits/server-response-time.js | description": {
    "message": "Mantenha o tempo de resposta do servidor para o documento principal curto porque todos os outros pedidos dependem do mesmo. [Saiba mais acerca da métrica Tempo até ao primeiro byte](https://developer.chrome.com/docs/lighthouse/performance/time-to-first-byte/)."
  },
  "core/audits/server-response-time.js | displayValue": {
    "message": "O documento de raiz demorou {timeInMs, number, milliseconds} ms"
  },
  "core/audits/server-response-time.js | failureTitle": {
    "message": "Reduza o tempo de resposta do servidor inicial"
  },
  "core/audits/server-response-time.js | title": {
    "message": "O tempo de resposta do servidor inicial foi curto"
  },
  "core/audits/third-party-cookies.js | description": {
    "message": "Os cookies de terceiros podem ser bloqueados em alguns contextos. [Saiba mais sobre a preparação para as restrições de cookies de terceiros](https://privacysandbox.google.com/cookies/prepare/overview)."
  },
  "core/audits/third-party-cookies.js | displayValue": {
    "message": "{itemCount,plural, =1{1 cookie encontrado}other{# cookies encontrados}}"
  },
  "core/audits/third-party-cookies.js | failureTitle": {
    "message": "Usa cookies de terceiros"
  },
  "core/audits/third-party-cookies.js | title": {
    "message": "Evita cookies de terceiros"
  },
  "core/audits/trusted-types-xss.js | columnSeverity": {
    "message": "Gravidade"
  },
  "core/audits/trusted-types-xss.js | description": {
    "message": "A diretiva `require-trusted-types-for` no cabeçalho `Content-Security-Policy` (CSP) indica aos agentes do utilizador que controlem os dados transmitidos para as funções de sink DOM XSS. [Saiba como mitigar o XSS baseado no DOM com a Trusted Types](https://developer.chrome.com/docs/lighthouse/best-practices/trusted-types-xss)."
  },
  "core/audits/trusted-types-xss.js | noTrustedTypesToMitigateXss": {
    "message": "Não foi encontrado nenhum cabeçalho `Content-Security-Policy` com a diretiva Trusted Types"
  },
  "core/audits/trusted-types-xss.js | title": {
    "message": "Mitigue o XSS baseado em DOM com a Trusted Types"
  },
  "core/audits/unsized-images.js | description": {
    "message": "Defina uma largura e uma altura explícitas nos elementos de imagem para reduzir mudanças de esquema e melhorar o CLS. [Saiba como definir dimensões das imagens](https://web.dev/articles/optimize-cls#images_without_dimensions)"
  },
  "core/audits/unsized-images.js | failureTitle": {
    "message": "Os elementos de imagem não têm `width` e `height` explícitas."
  },
  "core/audits/unsized-images.js | title": {
    "message": "Os elementos de imagem têm `width` e `height` explícitas"
  },
  "core/audits/user-timings.js | columnType": {
    "message": "Tipo"
  },
  "core/audits/user-timings.js | description": {
    "message": "Pondere a possibilidade de complementar a sua app com a API User Timing para analisar o desempenho real da app durante as principais experiências do utilizador. [Saiba mais acerca das marcas de User Timing](https://developer.chrome.com/docs/lighthouse/performance/user-timings/)."
  },
  "core/audits/user-timings.js | displayValue": {
    "message": "{itemCount,plural, =1{1 tempo do utilizador}other{# tempos do utilizador}}"
  },
  "core/audits/user-timings.js | title": {
    "message": "Marcas e medições de Tempos do utilizador"
  },
  "core/audits/valid-source-maps.js | columnMapURL": {
    "message": "URL do mapa"
  },
  "core/audits/valid-source-maps.js | description": {
    "message": "Os mapas de origem convertem o código reduzido no código-fonte original. Isto ajuda os programadores a depurar durante a produção. Além disso, o Lighthouse pode dar mais informações. Considere implementar mapas de origem para tirar partido destas vantagens. [Saiba mais acerca dos mapas de origem](https://developer.chrome.com/docs/devtools/javascript/source-maps/)."
  },
  "core/audits/valid-source-maps.js | failureTitle": {
    "message": "Mapas de origem em falta para JavaScript original grande"
  },
  "core/audits/valid-source-maps.js | missingSourceMapErrorMessage": {
    "message": "Mapa de origem em falta em ficheiro JavaScript grande"
  },
  "core/audits/valid-source-maps.js | missingSourceMapItemsWarningMesssage": {
    "message": "{missingItems,plural, =1{Aviso: 1 item em falta em `.sourcesContent`}other{Aviso: # itens em falta em `.sourcesContent`}}"
  },
  "core/audits/valid-source-maps.js | title": {
    "message": "A página possui mapas de origem válidos"
  },
  "core/config/default-config.js | a11yAriaGroupDescription": {
    "message": "Estas são oportunidades para otimizar a utilização do ARIA na sua aplicação, que pode melhorar a experiência dos utilizadores de tecnologias de assistência, como os de leitores de ecrã."
  },
  "core/config/default-config.js | a11yAriaGroupTitle": {
    "message": "ARIA"
  },
  "core/config/default-config.js | a11yAudioVideoGroupDescription": {
    "message": "Estas são oportunidades para fornecer conteúdo alternativo para áudio e vídeo. Pode melhorar a experiência dos utilizadores com deficiências auditivas ou visuais."
  },
  "core/config/default-config.js | a11yAudioVideoGroupTitle": {
    "message": "Áudio e vídeo"
  },
  "core/config/default-config.js | a11yBestPracticesGroupDescription": {
    "message": "Estes itens realçam as práticas recomendadas de acessibilidade comuns."
  },
  "core/config/default-config.js | a11yBestPracticesGroupTitle": {
    "message": "Práticas recomendadas"
  },
  "core/config/default-config.js | a11yCategoryDescription": {
    "message": "Estas verificações realçam oportunidades de [melhorar a acessibilidade da sua app Web](https://developer.chrome.com/docs/lighthouse/accessibility/). A deteção automática só pode detetar um subconjunto de problemas e não garante a acessibilidade da sua app Web, por isso, também recomendamos [testes manuais](https://web.dev/articles/how-to-review)."
  },
  "core/config/default-config.js | a11yCategoryManualDescription": {
    "message": "Estes itens destinam-se a áreas não abrangidas por uma ferramenta de teste automatizada. Saiba mais no nosso guia sobre como [efetuar uma revisão de acessibilidade](https://web.dev/articles/how-to-review)."
  },
  "core/config/default-config.js | a11yCategoryTitle": {
    "message": "Acessibilidade"
  },
  "core/config/default-config.js | a11yColorContrastGroupDescription": {
    "message": "Estas são oportunidades para melhorar a legibilidade do seu conteúdo."
  },
  "core/config/default-config.js | a11yColorContrastGroupTitle": {
    "message": "Contraste"
  },
  "core/config/default-config.js | a11yLanguageGroupDescription": {
    "message": "Estas são oportunidades para melhorar a interpretação do seu conteúdo por parte dos utilizadores em locais diferentes."
  },
  "core/config/default-config.js | a11yLanguageGroupTitle": {
    "message": "Internacionalização e localização"
  },
  "core/config/default-config.js | a11yNamesLabelsGroupDescription": {
    "message": "Estas são oportunidades para melhorar a semântica dos controlos na sua aplicação. Desta forma, poderá melhorar a experiência dos utilizadores de tecnologia de assistência, como os de leitores de ecrã."
  },
  "core/config/default-config.js | a11yNamesLabelsGroupTitle": {
    "message": "Nomes e etiquetas"
  },
  "core/config/default-config.js | a11yNavigationGroupDescription": {
    "message": "Estas são oportunidades para melhorar a navegação do teclado na sua aplicação."
  },
  "core/config/default-config.js | a11yNavigationGroupTitle": {
    "message": "Navegação"
  },
  "core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
    "message": "Estas são oportunidades para melhorar a experiência de leitura de dados em tabelas ou listas com tecnologia de assistência, como os leitores de ecrã."
  },
  "core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
    "message": "Tabelas e listas"
  },
  "core/config/default-config.js | bestPracticesBrowserCompatGroupTitle": {
    "message": "Compatibilidade de navegadores"
  },
  "core/config/default-config.js | bestPracticesCategoryTitle": {
    "message": "Práticas recomendadas"
  },
  "core/config/default-config.js | bestPracticesGeneralGroupTitle": {
    "message": "Geral"
  },
  "core/config/default-config.js | bestPracticesTrustSafetyGroupTitle": {
    "message": "Confiança e segurança"
  },
  "core/config/default-config.js | bestPracticesUXGroupTitle": {
    "message": "Experiência do utilizador"
  },
  "core/config/default-config.js | diagnosticsGroupDescription": {
    "message": "Mais informações sobre o desempenho da sua aplicação. Estes números não [afetam diretamente](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) a pontuação de desempenho."
  },
  "core/config/default-config.js | diagnosticsGroupTitle": {
    "message": "Diagnósticos"
  },
  "core/config/default-config.js | firstPaintImprovementsGroupDescription": {
    "message": "O aspeto mais importante do desempenho é a rapidez de renderização dos píxeis no ecrã. Métricas principais: Primeiro preenchimento com conteúdo, Primeiro preenchimento significativo."
  },
  "core/config/default-config.js | firstPaintImprovementsGroupTitle": {
    "message": "Melhorias no primeiro preenchimento"
  },
  "core/config/default-config.js | insightsGroupDescription": {
    "message": "Estas estatísticas também estão disponíveis no painel de desempenho das Chrome DevTools: [registe um rastreio](https://developer.chrome.com/docs/devtools/performance/reference) para ver informações mais detalhadas."
  },
  "core/config/default-config.js | insightsGroupTitle": {
    "message": "Estatísticas"
  },
  "core/config/default-config.js | metricGroupTitle": {
    "message": "Métricas"
  },
  "core/config/default-config.js | overallImprovementsGroupDescription": {
    "message": "Melhore a experiência de carregamento geral para que a página responda e fique pronta a utilizar logo que possível. Métricas principais: Tempo até à interação, Speed Index."
  },
  "core/config/default-config.js | overallImprovementsGroupTitle": {
    "message": "Melhorias gerais"
  },
  "core/config/default-config.js | performanceCategoryTitle": {
    "message": "Desempenho"
  },
  "core/config/default-config.js | seoCategoryDescription": {
    "message": "Estas verificações asseguram que a página está a seguir os conselhos básicos de otimização do motor de pesquisa. Existem vários fatores adicionais que o Lighthouse não contabiliza aqui e que podem afetar a classificação de pesquisa, incluindo o desempenho nas [Métricas essenciais da Web](https://web.dev/explore/vitals). [Saiba mais acerca do Google Search Essentials](https://support.google.com/webmasters/answer/35769)."
  },
  "core/config/default-config.js | seoCategoryManualDescription": {
    "message": "Execute estes verificadores adicionais no seu site para consultar mais práticas recomendadas de SEO."
  },
  "core/config/default-config.js | seoCategoryTitle": {
    "message": "SEO"
  },
  "core/config/default-config.js | seoContentGroupDescription": {
    "message": "Formate o HTML de uma forma que permita aos motores de rastreio compreender melhor o conteúdo da aplicação."
  },
  "core/config/default-config.js | seoContentGroupTitle": {
    "message": "Práticas recomendadas para conteúdo"
  },
  "core/config/default-config.js | seoCrawlingGroupDescription": {
    "message": "Para ser apresentada nos resultados da pesquisa, os motores de rastreio necessitam de acesso à sua aplicação."
  },
  "core/config/default-config.js | seoCrawlingGroupTitle": {
    "message": "Rastreio e indexação"
  },
  "core/config/default-config.js | seoMobileGroupDescription": {
    "message": "Certifique-se de que as suas páginas são compatíveis com dispositivos móveis, de modo a que os utilizadores não tenham de juntar os dedos ou aumentar o zoom para lerem as páginas de conteúdo. [Saiba como tornar as páginas compatíveis com dispositivos móveis](https://developers.google.com/search/mobile-sites/)."
  },
  "core/config/default-config.js | seoMobileGroupTitle": {
    "message": "Compatível com dispositivos móveis"
  },
  "core/gather/driver/environment.js | warningSlowHostCpu": {
    "message": "O dispositivo testado parece ter uma CPU mais lenta do que o Lighthouse esperava. Isto pode prejudicar a sua pontuação de desempenho. Saiba como [calibrar um multiplicador de abrandamento da CPU adequado](https://github.com/GoogleChrome/lighthouse/blob/main/docs/throttling.md#cpu-throttling)."
  },
  "core/gather/driver/navigation.js | warningRedirected": {
    "message": "A página pode não estar a ser carregada conforme o esperado porque o seu URL de teste ({requested}) foi redirecionado para {final}. Experimente testar o segundo URL diretamente."
  },
  "core/gather/driver/navigation.js | warningTimeout": {
    "message": "A página foi carregada demasiado lentamente para terminar dentro do limite de tempo. Os resultados podem estar incompletos."
  },
  "core/gather/driver/storage.js | warningCacheTimeout": {
    "message": "A limpeza da cache do navegador excedeu o tempo limite. Experimente auditar novamente esta página e, se o problema persistir, comunique um erro."
  },
  "core/gather/driver/storage.js | warningData": {
    "message": "{locationCount,plural, =1{Podem existir dados armazenados que estão a afetar o desempenho do carregamento nesta localização: {locations}. Audite esta página numa janela de navegação anónima para impedir esses recursos de afetarem as suas pontuações.}other{Podem existir dados armazenados que estão a afetar o desempenho do carregamento nestas localizações: {locations}. Audite esta página numa janela de navegação anónima para impedir esses recursos de afetarem as suas pontuações.}}"
  },
  "core/gather/driver/storage.js | warningOriginDataTimeout": {
    "message": "A limpeza dos dados da origem excedeu o tempo limite. Experimente auditar novamente esta página e, se o problema persistir, comunique um erro."
  },
  "core/gather/gatherers/link-elements.js | headerParseWarning": {
    "message": "Erro ao analisar o cabeçalho `link` ({error}): `{header}`"
  },
  "core/gather/timespan-runner.js | warningNavigationDetected": {
    "message": "Foi detetada navegação nas páginas durante a execução. Não se recomenda a utilização do modo do período para auditar navegações nas páginas. Use o modo de navegação para auditar navegações nas páginas de forma a melhorar a atribuição de terceiros e a deteção da thread principal."
  },
  "core/lib/csp-evaluator.js | allowlistFallback": {
    "message": "Considere adicionar esquemas de URL https: e http: (ignorados por navegadores que suportam `'strict-dynamic'`) para serem retrocompatíveis com navegadores mais antigos."
  },
  "core/lib/csp-evaluator.js | deprecatedDisownOpener": {
    "message": "A diretiva `disown-opener` foi descontinuada desde a CSP3. Em alternativa, use o cabeçalho Cross-Origin-Opener-Policy."
  },
  "core/lib/csp-evaluator.js | deprecatedReferrer": {
    "message": "A diretiva `referrer` foi descontinuada desde a CSP2. Em alternativa, use o cabeçalho Referrer-Policy."
  },
  "core/lib/csp-evaluator.js | deprecatedReflectedXSS": {
    "message": "A diretiva `reflected-xss` foi descontinuada desde a CSP2. Em alternativa, use o cabeçalho X-XSS-Protection."
  },
  "core/lib/csp-evaluator.js | missingBaseUri": {
    "message": "A diretiva `base-uri` em falta permite que as etiquetas `<base>` injetadas definam o URL de base para todos os URLs relativos (por exemplo, scripts) como um domínio controlado por um atacante. Considere definir `base-uri` como `'none'` ou `'self'`."
  },
  "core/lib/csp-evaluator.js | missingObjectSrc": {
    "message": "A diretiva `object-src` em falta permite a injeção de plug-ins que executam scripts inseguros. Considere definir a diretiva `object-src` como `'none'`, se possível."
  },
  "core/lib/csp-evaluator.js | missingScriptSrc": {
    "message": "A diretiva `script-src` está em falta. Isto pode permitir a execução de scripts inseguros."
  },
  "core/lib/csp-evaluator.js | missingSemicolon": {
    "message": "Esqueceu-se do ponto e vírgula? {keyword} parece ser uma diretiva e não uma palavra-chave."
  },
  "core/lib/csp-evaluator.js | nonceCharset": {
    "message": "Os nonces devem utilizar o charset base64."
  },
  "core/lib/csp-evaluator.js | nonceLength": {
    "message": "Os nonces devem ter, pelo menos, 8 carateres."
  },
  "core/lib/csp-evaluator.js | plainUrlScheme": {
    "message": "Evite utilizar esquemas de URL simples ({keyword}) nesta diretiva. Os esquemas de URL simples permitem que os scripts sejam obtidos a partir de um domínio inseguro."
  },
  "core/lib/csp-evaluator.js | plainWildcards": {
    "message": "Evite utilizar carateres universais simples ({keyword}) nesta diretiva. Os carateres universais simples permitem que os scripts sejam obtidos a partir de um domínio inseguro."
  },
  "core/lib/csp-evaluator.js | reportToOnly": {
    "message": "O destino de relatórios só é configurado através da diretiva report-to. Esta diretiva só é suportada em navegadores baseados no Chromium, pelo que se recomenda também a utilização de uma diretiva `report-uri`."
  },
  "core/lib/csp-evaluator.js | reportingDestinationMissing": {
    "message": "Nenhuma CSP configura um destino de relatórios. Isto dificulta a manutenção da CSP ao longo do tempo e a monitorização de quaisquer quebras."
  },
  "core/lib/csp-evaluator.js | strictDynamic": {
    "message": "As listas de autorizações de anfitrião podem ser frequentemente ignoradas. Em alternativa, considere usar nonces ou hashes CSP, bem como `'strict-dynamic'`, se precisar."
  },
  "core/lib/csp-evaluator.js | unknownDirective": {
    "message": "Diretiva CSP desconhecida."
  },
  "core/lib/csp-evaluator.js | unknownKeyword": {
    "message": "{keyword} parece ser uma palavra-chave inválida."
  },
  "core/lib/csp-evaluator.js | unsafeInline": {
    "message": "A diretiva `'unsafe-inline'` permite a execução de scripts na página e de controladores de eventos inseguros. Considere usar nonces ou hashes CSP para permitir scripts individualmente."
  },
  "core/lib/csp-evaluator.js | unsafeInlineFallback": {
    "message": "Considere adicionar `'unsafe-inline'` (ignorado por navegadores que suportam nonces/hashes) para ser retrocompatível com navegadores mais antigos."
  },
  "core/lib/deprecation-description.js | feature": {
    "message": "Verifique a página de estado da funcionalidade para obter mais detalhes."
  },
  "core/lib/deprecation-description.js | milestone": {
    "message": "Esta alteração vai entrar em vigor com o marco {milestone}."
  },
  "core/lib/deprecation-description.js | title": {
    "message": "Funcionalidade descontinuada usada"
  },
  "core/lib/i18n/i18n.js | columnBlockingTime": {
    "message": "Tempo de bloqueio do thread principal"
  },
  "core/lib/i18n/i18n.js | columnCacheTTL": {
    "message": "TTL da cache"
  },
  "core/lib/i18n/i18n.js | columnDescription": {
    "message": "Descrição"
  },
  "core/lib/i18n/i18n.js | columnDuration": {
    "message": "Duração"
  },
  "core/lib/i18n/i18n.js | columnElement": {
    "message": "Elemento"
  },
  "core/lib/i18n/i18n.js | columnFailingElem": {
    "message": "Elementos reprovados"
  },
  "core/lib/i18n/i18n.js | columnLocation": {
    "message": "Localização"
  },
  "core/lib/i18n/i18n.js | columnName": {
    "message": "Nome"
  },
  "core/lib/i18n/i18n.js | columnRequests": {
    "message": "Pedidos"
  },
  "core/lib/i18n/i18n.js | columnResourceSize": {
    "message": "Tamanho do recurso"
  },
  "core/lib/i18n/i18n.js | columnResourceType": {
    "message": "Tipo de recurso"
  },
  "core/lib/i18n/i18n.js | columnSize": {
    "message": "Tamanho"
  },
  "core/lib/i18n/i18n.js | columnSource": {
    "message": "Fonte"
  },
  "core/lib/i18n/i18n.js | columnStartTime": {
    "message": "Hora de início"
  },
  "core/lib/i18n/i18n.js | columnTimeSpent": {
    "message": "Tempo gasto"
  },
  "core/lib/i18n/i18n.js | columnTransferSize": {
    "message": "Tamanho da transferência"
  },
  "core/lib/i18n/i18n.js | columnURL": {
    "message": "URL"
  },
  "core/lib/i18n/i18n.js | columnWastedBytes": {
    "message": "Poupança estimada"
  },
  "core/lib/i18n/i18n.js | columnWastedMs": {
    "message": "Poupança estimada"
  },
  "core/lib/i18n/i18n.js | cumulativeLayoutShiftMetric": {
    "message": "Cumulative Layout Shift"
  },
  "core/lib/i18n/i18n.js | displayValueByteSavings": {
    "message": "Poupança estimada 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": "Poupança estimada 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": "Primeiro preenchimento significativo"
  },
  "core/lib/i18n/i18n.js | fontResourceType": {
    "message": "Tipo de letra"
  },
  "core/lib/i18n/i18n.js | imageResourceType": {
    "message": "Imagem"
  },
  "core/lib/i18n/i18n.js | interactionToNextPaint": {
    "message": "Interação até ao preenchimento seguinte"
  },
  "core/lib/i18n/i18n.js | interactiveMetric": {
    "message": "Time to Interactive"
  },
  "core/lib/i18n/i18n.js | itemSeverityHigh": {
    "message": "Alto"
  },
  "core/lib/i18n/i18n.js | itemSeverityLow": {
    "message": "Baixo"
  },
  "core/lib/i18n/i18n.js | itemSeverityMedium": {
    "message": "Médio"
  },
  "core/lib/i18n/i18n.js | largestContentfulPaintMetric": {
    "message": "Largest Contentful Paint"
  },
  "core/lib/i18n/i18n.js | maxPotentialFIDMetric": {
    "message": "Máximo potencial de primeiro atraso de entrada"
  },
  "core/lib/i18n/i18n.js | mediaResourceType": {
    "message": "Multimédia"
  },
  "core/lib/i18n/i18n.js | ms": {
    "message": "{timeInMs, number, milliseconds} ms"
  },
  "core/lib/i18n/i18n.js | otherResourceType": {
    "message": "Outro"
  },
  "core/lib/i18n/i18n.js | otherResourcesLabel": {
    "message": "Outros recursos"
  },
  "core/lib/i18n/i18n.js | scriptResourceType": {
    "message": "Script"
  },
  "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": "Folha de estilos"
  },
  "core/lib/i18n/i18n.js | thirdPartyResourceType": {
    "message": "Terceiros"
  },
  "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": "Ocorreu um erro ao registar o rastreio durante o carregamento da sua página. Volte a executar o Lighthouse. ({errorCode})"
  },
  "core/lib/lh-error.js | criTimeout": {
    "message": "Atingido o tempo limite de espera pela ligação inicial do protocolo do depurador."
  },
  "core/lib/lh-error.js | didntCollectScreenshots": {
    "message": "O Chrome não recolheu quaisquer capturas de ecrã durante o carregamento da página. Certifique-se de que existe conteúdo visível na página e, em seguida, experimente executar novamente o Lighthouse. ({errorCode})"
  },
  "core/lib/lh-error.js | dnsFailure": {
    "message": "Os servidores DNS não conseguiram resolver o domínio fornecido."
  },
  "core/lib/lh-error.js | erroredRequiredArtifact": {
    "message": "O coletor {artifactName} obrigatório encontrou o seguinte erro: {errorMessage}"
  },
  "core/lib/lh-error.js | internalChromeError": {
    "message": "Ocorreu um erro interno do Chrome. Reinicie o Chrome e experimente executar novamente o Lighthouse."
  },
  "core/lib/lh-error.js | missingRequiredArtifact": {
    "message": "O coletor {artifactName} obrigatório não foi executado."
  },
  "core/lib/lh-error.js | noFcp": {
    "message": "A página não preencheu nenhum conteúdo. Certifique-se de que mantém a janela do navegador em primeiro plano durante o carregamento e tente novamente. ({errorCode})"
  },
  "core/lib/lh-error.js | noLcp": {
    "message": "A página não apresentava conteúdo qualificado como Maior preenchimento com conteúdo (LCP). Certifique-se de que a página tem um elemento de LCP válido e tente novamente. ({errorCode})"
  },
  "core/lib/lh-error.js | notHtml": {
    "message": "A página fornecida não é HTML (publicada como tipo MIME {mimeType})."
  },
  "core/lib/lh-error.js | oldChromeDoesNotSupportFeature": {
    "message": "Esta versão do Chrome é demasiado antiga para suportar \"{featureName}\". Utilize uma versão mais recente para ver os resultados completos."
  },
  "core/lib/lh-error.js | pageLoadFailed": {
    "message": "O Lighthouse não conseguiu carregar com fiabilidade a página que solicitou. Certifique-se de que está a testar o URL correto e que o servidor está a responder adequadamente a todos os pedidos."
  },
  "core/lib/lh-error.js | pageLoadFailedHung": {
    "message": "O Lighthouse não conseguiu carregar com fiabilidade o URL que solicitou porque a página deixou de responder."
  },
  "core/lib/lh-error.js | pageLoadFailedInsecure": {
    "message": "O URL que forneceu não tem um certificado de segurança válido. {securityMessages}"
  },
  "core/lib/lh-error.js | pageLoadFailedInterstitial": {
    "message": "O Chrome impediu o carregamento da página com um anúncio intercalar. Certifique-se de que está a testar o URL correto e que o servidor está a responder adequadamente a todos os pedidos."
  },
  "core/lib/lh-error.js | pageLoadFailedWithDetails": {
    "message": "O Lighthouse não conseguiu carregar com fiabilidade a página que solicitou. Certifique-se de que está a testar o URL correto e que o servidor está a responder adequadamente a todos os pedidos. (Detalhes: {errorDetails})"
  },
  "core/lib/lh-error.js | pageLoadFailedWithStatusCode": {
    "message": "O Lighthouse não conseguiu carregar com fiabilidade a página que pediu. Certifique-se de que está a testar o URL correto e que o servidor está a responder adequadamente a todos os pedidos. (Código de estado: {statusCode})"
  },
  "core/lib/lh-error.js | pageLoadTookTooLong": {
    "message": "A sua página demorou demasiado tempo a ser carregada. Siga as oportunidades no relatório para reduzir o tempo de carregamento da página e, em seguida, experimente executar novamente o Lighthouse. ({errorCode})"
  },
  "core/lib/lh-error.js | protocolTimeout": {
    "message": "A espera pela resposta do protocolo DevTools excedeu o tempo atribuído. (Método: {protocolMethod})"
  },
  "core/lib/lh-error.js | requestContentTimeout": {
    "message": "A obtenção de conteúdo de recursos excedeu o tempo atribuído."
  },
  "core/lib/lh-error.js | targetCrashed": {
    "message": "O separador do navegador falhou inesperadamente."
  },
  "core/lib/lh-error.js | urlInvalid": {
    "message": "O URL que forneceu parece ser inválido."
  },
  "core/lib/navigation-error.js | warningStatusCode": {
    "message": "O Lighthouse não conseguiu carregar com fiabilidade a página que pediu. Certifique-se de que está a testar o URL correto e que o servidor está a responder adequadamente a todos os pedidos. (Código de estado: {errorCode})"
  },
  "core/lib/navigation-error.js | warningXhtml": {
    "message": "O tipo MIME da página é XHTML: o Lighthouse não suporta explicitamente este tipo de documento"
  },
  "core/user-flow.js | defaultFlowName": {
    "message": "Fluxo do utilizador ({url})"
  },
  "core/user-flow.js | defaultNavigationName": {
    "message": "Relatório de navegação ({url})"
  },
  "core/user-flow.js | defaultSnapshotName": {
    "message": "Relatório de resumo ({url})"
  },
  "core/user-flow.js | defaultTimespanName": {
    "message": "Relatório de período ({url})"
  },
  "flow-report/src/i18n/ui-strings.js | allReports": {
    "message": "Todos os relatórios"
  },
  "flow-report/src/i18n/ui-strings.js | categories": {
    "message": "Categorias"
  },
  "flow-report/src/i18n/ui-strings.js | categoryAccessibility": {
    "message": "Acessibilidade"
  },
  "flow-report/src/i18n/ui-strings.js | categoryBestPractices": {
    "message": "Práticas recomendadas"
  },
  "flow-report/src/i18n/ui-strings.js | categoryPerformance": {
    "message": "Desempenho"
  },
  "flow-report/src/i18n/ui-strings.js | categorySeo": {
    "message": "SEO"
  },
  "flow-report/src/i18n/ui-strings.js | desktop": {
    "message": "Computador"
  },
  "flow-report/src/i18n/ui-strings.js | helpDialogTitle": {
    "message": "Compreender o relatório do fluxo do Lighthouse"
  },
  "flow-report/src/i18n/ui-strings.js | helpLabel": {
    "message": "Compreender os fluxos"
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionNavigation": {
    "message": "Usar relatórios de navegação para…"
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionSnapshot": {
    "message": "Usar relatórios de resumo para…"
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseInstructionTimespan": {
    "message": "Usar relatórios de período para…"
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation1": {
    "message": "Obter uma pontuação de desempenho do Lighthouse."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation2": {
    "message": "Medir métricas de desempenho de carregamento de página como Maior preenchimento com conteúdo e Speed Index."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseNavigation3": {
    "message": "Avaliar capacidades de apps Web progressivas."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseSnapshot1": {
    "message": "Detetar problemas de acessibilidade em aplicações de página única ou formulários complexos."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseSnapshot2": {
    "message": "Avaliar as práticas recomendadas de menus e elementos da UI ocultos atrás da interação."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseTimespan1": {
    "message": "Medir as mudanças de esquema e o tempo de execução de JavaScript numa série de interações."
  },
  "flow-report/src/i18n/ui-strings.js | helpUseCaseTimespan2": {
    "message": "Descobrir oportunidades de desempenho para melhorar a experiência de páginas de longa duração e aplicações de página única."
  },
  "flow-report/src/i18n/ui-strings.js | highestImpact": {
    "message": "Maior impacto"
  },
  "flow-report/src/i18n/ui-strings.js | informativeAuditCount": {
    "message": "{numInformative,plural, =1{{numInformative} auditoria informativa}other{{numInformative} auditorias informativas}}"
  },
  "flow-report/src/i18n/ui-strings.js | mobile": {
    "message": "Dispositivos móveis"
  },
  "flow-report/src/i18n/ui-strings.js | navigationDescription": {
    "message": "Carregamento de página"
  },
  "flow-report/src/i18n/ui-strings.js | navigationLongDescription": {
    "message": "Os relatórios de navegação analisam um carregamento de página único, exatamente como os relatórios originais do Lighthouse."
  },
  "flow-report/src/i18n/ui-strings.js | navigationReport": {
    "message": "Relatório de navegação"
  },
  "flow-report/src/i18n/ui-strings.js | navigationReportCount": {
    "message": "{numNavigation,plural, =1{{numNavigation} relatório de navegação}other{{numNavigation} relatórios de navegação}}"
  },
  "flow-report/src/i18n/ui-strings.js | passableAuditCount": {
    "message": "{numPassableAudits,plural, =1{{numPassableAudits} auditoria que pode ser aprovada}other{{numPassableAudits} auditorias que podem ser aprovadas}}"
  },
  "flow-report/src/i18n/ui-strings.js | passedAuditCount": {
    "message": "{numPassed,plural, =1{{numPassed} auditoria aprovada}other{{numPassed} auditorias aprovadas}}"
  },
  "flow-report/src/i18n/ui-strings.js | ratingAverage": {
    "message": "Média"
  },
  "flow-report/src/i18n/ui-strings.js | ratingError": {
    "message": "Erro"
  },
  "flow-report/src/i18n/ui-strings.js | ratingFail": {
    "message": "Fraca"
  },
  "flow-report/src/i18n/ui-strings.js | ratingPass": {
    "message": "Boa"
  },
  "flow-report/src/i18n/ui-strings.js | save": {
    "message": "Guardar"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotDescription": {
    "message": "Estado da página capturado"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotLongDescription": {
    "message": "Os relatórios de resumo analisam a página num estado específico, normalmente após interações do utilizador."
  },
  "flow-report/src/i18n/ui-strings.js | snapshotReport": {
    "message": "Relatório de resumo"
  },
  "flow-report/src/i18n/ui-strings.js | snapshotReportCount": {
    "message": "{numSnapshot,plural, =1{{numSnapshot} relatório de resumo}other{{numSnapshot} relatórios de resumo}}"
  },
  "flow-report/src/i18n/ui-strings.js | summary": {
    "message": "Resumo"
  },
  "flow-report/src/i18n/ui-strings.js | timespanDescription": {
    "message": "Interações do utilizador"
  },
  "flow-report/src/i18n/ui-strings.js | timespanLongDescription": {
    "message": "Os relatórios de período analisam um período arbitrário que, normalmente, contém interações do utilizador."
  },
  "flow-report/src/i18n/ui-strings.js | timespanReport": {
    "message": "Relatório de período"
  },
  "flow-report/src/i18n/ui-strings.js | timespanReportCount": {
    "message": "{numTimespan,plural, =1{{numTimespan} relatório de período}other{{numTimespan} relatórios de período}}"
  },
  "flow-report/src/i18n/ui-strings.js | title": {
    "message": "Relatório do fluxo do utilizador do Lighthouse"
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | AuthorizationCoveredByWildcard": {
    "message": "A autorização não vai estar abrangida pelo símbolo de caráter universal (*) no processamento do atributo Access-Control-Allow-Headers de CORS (partilha de recursos de origem cruzada)."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CSSSelectorInternalMediaControlsOverlayCastButton": {
    "message": "Deve usar o atributo disableRemotePlayback em vez do seletor -internal-media-controls-overlay-cast-button para desativar a integração do Cast predefinida."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CSSValueAppearanceSliderVertical": {
    "message": "O valor de aspeto de CSS slider-vertical não está padronizado e vai ser removido."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
    "message": "Os pedidos de recursos cujos URLs continham os carateres \\(n|r|t) de espaços em branco removidos e o limite mínimo de carateres (<) foram bloqueados. Remova as novas linhas e codifique o limite mínimo de carateres de locais como valores de atributos de elementos para carregar estes recursos."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
    "message": "O atributo chrome.loadTimes() foi descontinuado. Em alternativa, use a API padronizada: Navigation Timing 2."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesFirstPaintAfterLoadTime": {
    "message": "O atributo chrome.loadTimes() foi descontinuado. Em alternativa, use a API padronizada: Paint Timing."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesWasAlternateProtocolAvailable": {
    "message": "O atributo chrome.loadTimes() foi descontinuado. Em alternativa, use a API padronizada: nextHopProtocol no Navigation Timing 2."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CookieWithTruncatingChar": {
    "message": "Os cookies que contêm um caráter \\(0|r|n) vão ser rejeitados em vez de truncados."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginAccessBasedOnDocumentDomain": {
    "message": "O relaxamento da política da mesma origem ao definir o atributo document.domain foi descontinuado e vai ser desativado por predefinição. Este aviso de descontinuação é para um acesso de origem cruzada que foi ativado ao definir o atributo document.domain."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowAlert": {
    "message": "O acionamento da função window.alert a partir de iFrames de origem cruzada foi descontinuado e vai ser removido no futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
    "message": "O acionamento da função window.confirm a partir de iFrames de origem cruzada foi descontinuado e vai ser removido no futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
    "message": "Suporte de dados: os URLs em SVGUseElement foram descontinuados e vão ser removidos no futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOrigin": {
    "message": "Os atributos getCurrentPosition() e watchPosition() já não funcionam em origens inseguras. Para usar esta funcionalidade, deve considerar mudar a sua aplicação para uma origem segura, como HTTPS. Consulte https://goo.gle/chrome-insecure-origins para obter mais detalhes."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GeolocationInsecureOriginDeprecatedNotRemoved": {
    "message": "Os atributos getCurrentPosition() e watchPosition() foram descontinuados em origens inseguras. Para usar esta funcionalidade, deve considerar mudar a sua aplicação para uma origem segura, como HTTPS. Consulte https://goo.gle/chrome-insecure-origins para obter mais detalhes."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | GetUserMediaInsecureOrigin": {
    "message": "O atributo getUserMedia() já não funciona em origens inseguras. Para usar esta funcionalidade, deve considerar mudar a sua aplicação para uma origem segura, como HTTPS. Consulte https://goo.gle/chrome-insecure-origins para obter mais detalhes."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | HostCandidateAttributeGetter": {
    "message": "O atributo RTCPeerConnectionIceErrorEvent.hostCandidate foi descontinuado. Em alternativa, use o atributo RTCPeerConnectionIceErrorEvent.address ou RTCPeerConnectionIceErrorEvent.port."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | IdentityInCanMakePaymentEvent": {
    "message": "A origem do comerciante e os dados arbitrários do evento do service canmakepayment worker foram descontinuados e vão ser removidos: topOrigin, paymentRequestOrigin, methodData e modifiers."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | InsecurePrivateNetworkSubresourceRequest": {
    "message": "O Website pediu um subrecurso de uma rede à qual só podia aceder devido à posição da rede privilegiada dos respetivos utilizadores. Estes pedidos expõem servidores e dispositivos não públicos à Internet, aumentando o risco de um ataque de falsificação de pedido entre sites (CSRF) e/ou de uma fuga de informações. Para mitigar estes riscos, o Chrome descontinua pedidos para subrecursos não públicos quando forem iniciados por contextos não seguros e vai começar a bloqueá-los."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | InterestGroupDailyUpdateUrl": {
    "message": "O nome do campo dailyUpdateUrl de InterestGroups transmitido a joinAdInterestGroup() foi mudado para updateUrl, de modo a refletir com maior precisão o respetivo comportamento."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | IntlV8BreakIterator": {
    "message": "O atributo Intl.v8BreakIterator foi descontinuado. Em alternativa, use Intl.Segmenter."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | LocalCSSFileExtensionRejected": {
    "message": "Não é possível carregar o CSS a partir dos URLs file:, exceto se terminarem numa extensão de ficheiro .css."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceAbortRemove": {
    "message": "A utilização do atributo SourceBuffer.abort() para interromper a remoção do intervalo assíncrono do atributo remove() foi descontinuado devido a uma alteração na especificação. O suporte vai ser removido no futuro. Em alternativa, deve ouvir o evento updateend. O atributo abort() destina-se apenas a interromper um estado de analisador de reposição ou anexação de suporte assíncrono."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | MediaSourceDurationTruncatingBuffered": {
    "message": "A definição do atributo MediaSource.duration abaixo da data/hora de apresentação mais elevada de quaisquer frames codificados no buffer foi descontinuada devido a uma alteração na especificação. O suporte para uma remoção implícita do suporte no buffer truncado vai ser removido no futuro. Em alternativa, deve executar um atributo remove(newDuration, oldDuration) explícito em todos os sourceBuffers, em que newDuration < oldDuration."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NoSysexWebMIDIWithoutPermission": {
    "message": "A MIDI da Web vai pedir uma autorização de utilização mesmo que o sysex não esteja especificado no atributo MIDIOptions."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationInsecureOrigin": {
    "message": "A API Notification já não pode ser usada a partir de origens inseguras. Deve considerar mudar a sua aplicação para uma origem segura, como HTTPS. Consulte https://goo.gle/chrome-insecure-origins para obter mais detalhes."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | NotificationPermissionRequestedIframe": {
    "message": "A autorização para a API Notification pode já não ser pedida a partir de um iFrame de origem cruzada. Em alternativa, deve considerar pedir autorização a partir de um frame de nível superior ou abrir uma nova janela."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ObsoleteCreateImageBitmapImageOrientationNone": {
    "message": "A opção imageOrientation: 'none' em createImageBitmap foi descontinuada. Em alternativa, use createImageBitmap com a opção \"\\\\{imageOrientation: 'from-image'\\\\}\"."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ObsoleteWebRtcCipherSuite": {
    "message": "O seu parceiro está a negociar uma versão do (D)TLS (Transport Layer Security) obsoleta. Contacte o seu parceiro para corrigir isto."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | OverflowVisibleOnReplacedElement": {
    "message": "Especificar overflow: visible em etiquetas img, video e canvas pode fazer com que produzam conteúdo visual fora dos limites do elemento. Consulte https://github.com/WICG/shared-element-transitions/blob/main/debugging_overflow_on_images.md."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | OverrideFlashEmbedwithHTML": {
    "message": "A incorporação de vídeo Flash antigo foi reescrita para iFrame de HTML. O Flash já não existe. Este truque de reescrita foi descontinuado e pode ser removido no futuro."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PaymentInstruments": {
    "message": "O atributo paymentManager.instruments foi descontinuado. Em alternativa, use a instalação just-in-time para os controladores de pagamento."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PaymentRequestCSPViolation": {
    "message": "A sua chamada de PaymentRequest ignorou a diretiva da Política de Segurança de Conteúdos (CSP) connect-src. Esta ação de ignorar foi descontinuada. Adicione o identificador do método de pagamento da API PaymentRequest (no campo supportedMethods) à diretiva da CSP connect-src."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PersistentQuotaType": {
    "message": "O atributo StorageType.persistent foi descontinuado. Em alternativa, use o atributo navigator.storage padronizado."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PictureSourceSrc": {
    "message": "O atributo <source src> com um <picture> superior é inválido e, por isso, vai ser ignorado. Em alternativa, use <source srcset>."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedCancelAnimationFrame": {
    "message": "O método webkitCancelAnimationFrame é específico do fornecedor. Em alternativa, use o método cancelAnimationFrame padrão."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedRequestAnimationFrame": {
    "message": "O método webkitRequestAnimationFrame é específico do fornecedor. Em alternativa, use o método requestAnimationFrame padrão."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoDisplayingFullscreen": {
    "message": "A função HTMLVideoElement.webkitDisplayingFullscreen foi descontinuada. Em alternativa, use Document.fullscreenElement."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoEnterFullScreen": {
    "message": "A API HTMLVideoElement.webkitEnterFullScreen() foi descontinuada. Em alternativa, use a API Element.requestFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoEnterFullscreen": {
    "message": "A API HTMLVideoElement.webkitEnterFullscreen() foi descontinuada. Em alternativa, use a API Element.requestFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoExitFullScreen": {
    "message": "A API HTMLVideoElement.webkitExitFullScreen() foi descontinuada. Em alternativa, use a API Document.exitFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoExitFullscreen": {
    "message": "A API HTMLVideoElement.webkitExitFullscreen() foi descontinuada. Em alternativa, use a API Document.exitFullscreen()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrefixedVideoSupportsFullscreen": {
    "message": "A função webkitSupportsFullscreen foi descontinuada. Em alternativa, use a função Document.fullscreenEnabled."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | PrivacySandboxExtensionsAPI": {
    "message": "Vamos descontinuar a API chrome.privacy.websites.privacySandboxEnabled, mas esta permanece ativa para retrocompatibilidade até ao lançamento M113. Em alternativa, use chrome.privacy.websites.topicsEnabled, chrome.privacy.websites.fledgeEnabled e chrome.privacy.websites.adMeasurementEnabled. Veja https://developer.chrome.com/docs/extensions/reference/privacy/#property-websites-privacySandboxEnabled."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpFalse": {
    "message": "A restrição DtlsSrtpKeyAgreement foi removida. Especificou um valor false para esta restrição, que é interpretado como uma tentativa de usar o método SDES key negotiation removido. Esta funcionalidade foi removida. Em alternativa, use um serviço que suporte o atributo DTLS key negotiation."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCConstraintEnableDtlsSrtpTrue": {
    "message": "A restrição DtlsSrtpKeyAgreement foi removida. Especificou um valor true para esta restrição, que não teve qualquer efeito, mas pode remover a restrição para fins de organização."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RTCPeerConnectionGetStatsLegacyNonCompliant": {
    "message": "O método getStats() baseado em chamadas de resposta foi descontinuado e vai ser removido. Em alternativa, use o método getStats() em conformidade com a especificação."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RangeExpand": {
    "message": "A API Range.expand() foi descontinuada. Em alternativa, use a API Selection.modify()."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RequestedSubresourceWithEmbeddedCredentials": {
    "message": "Os pedidos de subrecursos cujos URLs continham credenciais incorporadas (por exemplo, https://user:pass@host/) foram bloqueados."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | RtcpMuxPolicyNegotiate": {
    "message": "A opção rtcpMuxPolicy foi descontinuada e vai ser removida."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | SharedArrayBufferConstructedWithoutIsolation": {
    "message": "O atributo SharedArrayBuffer vai requerer isolamento de origem cruzada. Consulte https://developer.chrome.com/blog/enabling-shared-array-buffer/ para obter mais detalhes."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | TextToSpeech_DisallowedByAutoplay": {
    "message": "O atributo speechSynthesis.speak() sem a ativação do utilizador foi descontinuado e vai ser removido."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | UnloadHandler": {
    "message": "Os ouvintes de eventos unload foram descontinuados e vão ser removidos."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
    "message": "As extensões devem aceitar o isolamento de origem cruzada para continuar a usar o atributo SharedArrayBuffer. Consulte https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
    "message": "O formato UTF-16 não é suportado por JSON de resposta no atributo XMLHttpRequest"
  },
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload": {
    "message": "A API XMLHttpRequest síncrona na thread principal foi descontinuada devido aos respetivos efeitos adversos na experiência do utilizador final. Para obter mais ajuda, consulte https://xhr.spec.whatwg.org/."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | animation": {
    "message": "Animação"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
    "message": "As mudanças de esquema ocorrem quando os elementos se movem sem nenhuma interação do utilizador. [Investigue as causas das mudanças de esquema](https://web.dev/articles/optimize-cls), como a adição ou a remoção de elementos ou a alteração dos respetivos tipos de letra à medida que a página é carregada."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
    "message": "iFrame injetado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | layoutShiftCluster": {
    "message": "Tempo de início do cluster de mudança de esquema: {PH1}"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | noCulprits": {
    "message": "Não foi possível detetar nenhuma causa da mudança de esquema"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | noLayoutShifts": {
    "message": "Sem mudanças de esquema"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
    "message": "Causas da mudança de esquema"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
    "message": "Principais causas da mudança de esquema"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImage": {
    "message": "Elemento de imagem não dimensionado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | webFont": {
    "message": "Tipo de letra da Web"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
    "message": "Pior cluster"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstLayoutShiftCluster": {
    "message": "Pior cluster de mudança de esquema"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | cacheTTL": {
    "message": "TTL da cache"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | description": {
    "message": "Uma longa duração total da cache pode acelerar as visitas repetidas à sua página. [Saiba mais](https://web.dev/uses-long-cache-ttl/)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | noRequestsToCache": {
    "message": "Sem pedidos com políticas de cache ineficientes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | others": {
    "message": "Mais {PH1}"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | requestColumn": {
    "message": "Pedido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Cache.js | title": {
    "message": "Use durações totais de cache eficientes"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | description": {
    "message": "Um DOM grande pode aumentar a duração dos cálculos de estilo e dos ajustes de esquema, o que afeta a capacidade de resposta da página. Um DOM grande também aumenta a utilização de memória. [Saiba como evitar um tamanho excessivo do DOM](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | duration": {
    "message": "Duração"
  },
  "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": "Esquema ({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": "A maioria dos elementos secundários"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | maxDOMDepth": {
    "message": "Profundidade do DOM"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | statistic": {
    "message": "Estatística"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | title": {
    "message": "Otimize o tamanho do DOM"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DOMSize.js | topUpdatesDescription": {
    "message": "Estes são os maiores eventos de recálculo de estilo e esquema. O impacto destes no desempenho pode ser reduzido simplificando o 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": "O primeiro pedido de rede é o mais importante.  Reduza a latência evitando redirecionamentos, assegurando uma resposta rápida do servidor e ativando a compressão de texto."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
    "message": "Tinha redirecionamentos ({PH1} redirecionamentos, +{PH2})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
    "message": "O servidor respondeu lentamente ({PH1} observados)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
    "message": "Nenhuma compressão aplicada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingRedirects": {
    "message": "Evita redirecionamentos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
    "message": "O servidor responde rapidamente ({PH1} observados)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
    "message": "Aplica compressão de texto"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | redirectsLabel": {
    "message": "Redirecionamentos"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | serverResponseTimeLabel": {
    "message": "Tempo de resposta do servidor"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
    "message": "Latência do pedido de documento"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | uncompressedDownload": {
    "message": "Transferência não comprimida"
  },
  "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": "Origem"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/DuplicatedJavaScript.js | description": {
    "message": "Remova módulos de JavaScript grandes e duplicados de pacotes para reduzir bytes desnecessários consumidos pela atividade da rede."
  },
  "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": "Considere definir [font-display](https://developer.chrome.com/blog/font-display) como swap ou optional para garantir que o texto é visível de forma consistente. É possível otimizar ainda mais o swap para mitigar as mudanças de esquema com [substituições de métricas de tipos de letra](https://developer.chrome.com/blog/font-fallbacks)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | fontColumn": {
    "message": "Tipo de letra"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
    "message": "Apresentação do tipo de letra"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | wastedTimeColumn": {
    "message": "Tempo 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": "Ocorre um ajuste forçado quando o JavaScript consulta propriedades geométricas (como offsetWidth) depois de os estilos terem sido invalidados por uma alteração ao estado do DOM. Isto pode resultar num desempenho fraco. Saiba mais sobre os [ajustes forçados](https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#avoid-forced-synchronous-layouts) e as possíveis mitigações."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | relatedStackTrace": {
    "message": "Rastreio de pilha"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | title": {
    "message": "Ajuste forçado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | topTimeConsumingFunctionCall": {
    "message": "Chamada de função principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | totalReflowTime": {
    "message": "Tempo de ajuste total"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ForcedReflow.js | unattributed": {
    "message": "[não atribuída]"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | description": {
    "message": "Comece a investigar pela subparte mais longa. [Os atrasos podem ser minimizados](https://web.dev/articles/optimize-inp#optimize_interactions). Para reduzir a duração do processamento, [otimize os custos da thread principal](https://web.dev/articles/optimize-long-tasks), muitas vezes JS."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | duration": {
    "message": "Duração"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | inputDelay": {
    "message": "Atraso na entrada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | noInteractions": {
    "message": "Nenhuma interação detetada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | presentationDelay": {
    "message": "Atraso na apresentação"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/INPBreakdown.js | processingDuration": {
    "message": "Duração do processamento"
  },
  "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": "Análise detalhada do INP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | description": {
    "message": "Reduzir o tempo de transferência das imagens pode melhorar o tempo de carregamento percecionado da página e o LCP. [Saiba como otimizar o tamanho da imagem](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | estimatedSavings": {
    "message": "{PH1} (Estimativa: {PH2})"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | noOptimizableImages": {
    "message": "Nenhuma imagem a otimizar"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | optimizeFile": {
    "message": "Otimize o tamanho do ficheiro"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | others": {
    "message": "Mais {PH1}"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | title": {
    "message": "Melhore a entrega de imagens"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useCompression": {
    "message": "Aumentar o fator de compressão da imagem pode melhorar o tamanho de transferência desta imagem."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useModernFormat": {
    "message": "Usar um formato de imagem moderno (WebP ou AVIF) ou aumentar a compressão da imagem pode melhorar o tamanho de transferência desta imagem."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useResponsiveSize": {
    "message": "Este ficheiro de imagem é maior do que precisa de ser ({PH1}) para as respetivas dimensões apresentadas ({PH2}). Use imagens adaptáveis para reduzir o tamanho de transferência da imagem."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
    "message": "Usar formatos de vídeo em vez de GIFs pode melhorar o tamanho de transferência do conteúdo animado."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | description": {
    "message": "Cada [subparte tem estratégias de melhoria específicas](https://web.dev/articles/optimize-lcp#lcp-breakdown). Idealmente, a maior parte do tempo de LCP deve ser gasto no carregamento dos recursos e não nos atrasos."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | duration": {
    "message": "Duração"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | elementRenderDelay": {
    "message": "Atraso de renderização do elemento"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | fieldDuration": {
    "message": "Percentil 75 do campo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | noLcp": {
    "message": "Nenhum LCP detetado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDelay": {
    "message": "Atraso no carregamento do recurso"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPBreakdown.js | resourceLoadDuration": {
    "message": "Duração do carregamento do 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": "Análise detalhada de LCP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
    "message": "Otimize o LCP tornando a imagem do LCP [detetável](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) imediatamente a partir do HTML e [evitando o carregamento em diferido](https://web.dev/articles/lcp-lazy-loading)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityApplied": {
    "message": "valor fetchpriority=high aplicado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | fetchPriorityShouldBeApplied": {
    "message": "Deve ser aplicado o valor fetchpriority=high"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lazyLoadNotApplied": {
    "message": "carregamento em diferido não aplicado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | lcpLoadDelay": {
    "message": "A imagem de LCP carregou {PH1} após o ponto de início mais antigo."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | noLcp": {
    "message": "Nenhum LCP detetado"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | noLcpResource": {
    "message": "Nenhum recurso de LCP detetado porque o LCP não é uma imagem"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | requestDiscoverable": {
    "message": "O pedido é detetável no documento inicial"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
    "message": "Deteção de pedidos de LCP"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
    "message": "Script"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnWastedBytes": {
    "message": "Bytes desperdiçados"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
    "message": "Os polyfills e as transformações permitem que os navegadores mais antigos usem novas funcionalidades de JavaScript. No entanto, muitos não são necessários para os navegadores modernos. Considere modificar o processo de compilação de JavaScript para não transpilar as funcionalidades do [Baseline](https://web.dev/articles/baseline-and-polyfills), a menos que saiba que tem de ser compatível com navegadores mais antigos. [Saiba por que motivo a maioria dos sites pode implementar código ES6+ sem transpilação](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
    "message": "JavaScript antigo"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | description": {
    "message": "O HTTP/2 e o HTTP/3 oferecem muitas vantagens em relação ao HTTP/1.1, como a multiplexagem. [Saiba mais sobre a utilização do HTTP moderno](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | noOldProtocolRequests": {
    "message": "Nenhum pedido usou HTTP/1.1 ou a utilização atual de HTTP/1.1 não apresenta uma oportunidade de otimização significativa. Os pedidos HTTP/1.1 só são sinalizados se seis ou mais recursos estáticos forem provenientes da mesma origem e não forem publicados a partir de um ambiente de programação local ou de uma origem de terceiros."
  },
  "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": "Pedido"
  },
  "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": "Origem"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnRequest": {
    "message": "Pedido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnSource": {
    "message": "Fonte"
  },
  "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": "Poupança de LCP estimada"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
    "message": "Pré-ligação não usada. Verifique se o atributo crossorigin está a ser usado corretamente."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
    "message": "[Evite encadear pedidos críticos](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains) reduzindo o tamanho das cadeias, reduzindo o tamanho de transferência dos recursos ou adiando a transferência de recursos desnecessários para melhorar o carregamento de página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
    "message": "Adicione instruções de [pré-ligação](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) às suas origens mais importantes, mas experimente usar, no máximo, 4."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
    "message": "Candidatas a pré-ligação"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | maxCriticalPathLatency": {
    "message": "Latência máxima de caminho crítico:"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noNetworkDependencyTree": {
    "message": "Nenhuma tarefa de renderização afetada por dependências de rede"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectCandidates": {
    "message": "Não existem origens adicionais que sejam boas candidatas para pré-ligação"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectOrigins": {
    "message": "não foram estabelecidas pré-ligações com origens"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableDescription": {
    "message": "As instruções de [pré-ligação](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) ajudam o navegador a estabelecer uma ligação mais cedo no carregamento de página, poupando tempo quando é feito o primeiro pedido para essa origem. Seguem-se as origens às quais a página estabeleceu uma pré-ligação."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
    "message": "Origens pré-ligadas"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
    "message": "Árvore de dependências de rede"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | tooManyPreconnectLinksWarning": {
    "message": "Foram encontradas mais de 4 ligações de preconnect. Estas ligações devem ser usadas com moderação e apenas para as origens mais importantes."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | unusedWarning": {
    "message": "Pré-ligação não usada. Use preconnect apenas para origens que a página provavelmente vai pedir."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | warningDescription": {
    "message": "Evite encadear pedidos críticos reduzindo o tamanho das cadeias, reduzindo o tamanho de transferência dos recursos ou adiando a transferência de recursos desnecessários para melhorar o carregamento de página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
    "message": "Os pedidos estão a bloquear a renderização inicial da página, o que pode atrasar o LCP. [Adiar ou colocar inline](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources) pode remover estes pedidos de rede do caminho crítico."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
    "message": "Duração"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | noRenderBlocking": {
    "message": "Nenhum pedido de bloqueio de renderização para esta navegação"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | renderBlockingRequest": {
    "message": "Pedido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
    "message": "Pedidos de bloqueio de renderização"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
    "message": "Se os custos de Recalcular estilo permanecerem elevados, a otimização do seletor pode reduzi-los. [Otimize os seletores](https://developer.chrome.com/docs/devtools/performance/selector-stats) com um tempo decorrido elevado e uma percentagem de caminho lento elevada. Seletores mais simples, menos seletores, um DOM menor e um DOM mais superficial reduzem os custos de correspondência."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | elapsed": {
    "message": "Tempo decorrido"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | enableSelectorData": {
    "message": "Não foram encontrados dados do seletor CSS. As estatísticas do seletor CSS têm de estar ativadas nas definições do painel de desempenho."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | matchAttempts": {
    "message": "Tentativas de correspondência"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | matchCount": {
    "message": "Contagem de correspondências"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
    "message": "Custos do seletor CSS"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectorElapsedTime": {
    "message": "Tempo decorrido do seletor superior"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectorMatchAttempt": {
    "message": "Tentativa de correspondência do seletor principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | topSelectors": {
    "message": "Principais seletores"
  },
  "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": "Tempo do thread principal"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | columnThirdParty": {
    "message": "Terceiros"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | columnTransferSize": {
    "message": "Tamanho da transferência"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
    "message": "O código de terceiros pode afetar significativamente o desempenho de carregamento. [Reduza e adie o carregamento de código de terceiros](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/) para dar prioridade ao conteúdo da sua página."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
    "message": "Não foram encontrados terceiros"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
    "message": "Terceiros"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
    "message": "As interações com toques podem ter um [atraso de até 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/) se a área visível não estiver otimizada para dispositivos móveis."
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | mobileTapDelayLabel": {
    "message": "Atraso de toque em dispositivos móveis"
  },
  "node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
    "message": "Otimize a área visível para dispositivos móveis"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | HTTPMethodNotGET": {
    "message": "Apenas as páginas carregadas através de um pedido GET são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | HTTPStatusNotOK": {
    "message": "Apenas as páginas com um código de estado de 2XX podem ser colocadas em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | JavaScriptExecution": {
    "message": "O Chrome detetou uma tentativa de execução do JavaScript enquanto a página estava na cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | appBanner": {
    "message": "Atualmente, as páginas que solicitaram um AppBanner não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabled": {
    "message": "A cache para a frente/para trás foi desativada por sinalizações. Visite chrome://flags/#back-forward-cache para a ativar localmente neste dispositivo."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledByCommandLine": {
    "message": "A cache para a frente/para trás foi desativada pela linha de comandos."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledByLowMemory": {
    "message": "A cache para a frente/para trás foi desativada devido a memória insuficiente."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledForDelegate": {
    "message": "A cache para a frente/para trás não é suportada pelo delegado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | backForwardCacheDisabledForPrerender": {
    "message": "A cache para a frente/para trás foi desativada pelo pré-renderizador."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | broadcastChannel": {
    "message": "Não é possível colocar a página em cache porque tem uma instância BroadcastChannel com ouvintes registados."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheControlNoStore": {
    "message": "Não é possível adicionar páginas com um cabeçalho cache-control:no-store à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheFlushed": {
    "message": "A cache foi limpa intencionalmente."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cacheLimit": {
    "message": "A página foi removida da cache para permitir que outra página fosse colocada em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | containsPlugins": {
    "message": "Atualmente, as páginas que contêm plug-ins não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentDiscarded": {
    "message": "Não definido"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentFileChooser": {
    "message": "As páginas que utilizam a API FileChooser não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentFileSystemAccess": {
    "message": "As páginas que utilizam a API File System Access não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaDevicesDispatcherHost": {
    "message": "Atualmente, as páginas que utilizam o Media Device Dispatcher não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaPlay": {
    "message": "Um leitor de multimédia estava em reprodução quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaSession": {
    "message": "As páginas que utilizam a API MediaSession e definem um estado de reprodução não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentMediaSessionService": {
    "message": "As páginas que utilizam a API MediaSession e definem controladores de ações não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentScreenReader": {
    "message": "A cache para a frente/para trás foi desativada devido ao leitor de ecrã."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentSecurityHandler": {
    "message": "As páginas que utilizam SecurityHandler não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentSerial": {
    "message": "As páginas que utilizam a API Serial não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebAuthenticationAPI": {
    "message": "As páginas que utilizam a API WebAuthetication não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebBluetooth": {
    "message": "As páginas que utilizam a API WebBluetooth não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | contentWebUSB": {
    "message": "As páginas que utilizam a API WebUSB não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | cookieDisabled": {
    "message": "A cache para a frente/para trás foi desativada porque os cookies estão desativados numa página que usa Cache-Control: no-store."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | dedicatedWorkerOrWorklet": {
    "message": "Atualmente, as páginas que utilizam uma trabalhadora ou worklet dedicados não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | documentLoaded": {
    "message": "O documento não concluiu o carregamento antes de sair do mesmo."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderAppBannerManager": {
    "message": "A faixa da app estava presente quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderChromePasswordManagerClientBindCredentialManager": {
    "message": "O Gestor de palavras-passe do Chrome estava presente quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderDomDistillerSelfDeletingRequestDelegate": {
    "message": "A destilação DOM estava em curso quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderDomDistillerViewerSource": {
    "message": "O Visualizador DOM Distiller estava presente quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionMessaging": {
    "message": "A cache para a frente/para trás foi desativada devido a extensões que utilizam a API de mensagens."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionMessagingForOpenPort": {
    "message": "As extensões com ligações de longa duração devem fechar a ligação antes de entrar na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensionSentMessageToCachedFrame": {
    "message": "As extensões com ligações de longa duração tentaram enviar mensagens para frames na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderExtensions": {
    "message": "A cache para a frente/para trás foi desativada devido às extensões."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderModalDialog": {
    "message": "A caixa de diálogo modal, como a caixa de diálogo da palavra-passe HTTP ou reenvio do formulário, foi apresentada para a página quando saiu da mesma."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderOfflinePage": {
    "message": "A página offline foi apresentada quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderOomInterventionTabHelper": {
    "message": "A barra Intervenção sem memória estava presente quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderPermissionRequestManager": {
    "message": "Houve pedidos de autorização quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderPopupBlockerTabHelper": {
    "message": "O bloqueador de pop-ups estava presente quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderSafeBrowsingThreatDetails": {
    "message": "Os detalhes da Navegação segura foram apresentados quando saiu da página."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | embedderSafeBrowsingTriggeredPopupBlocker": {
    "message": "A Navegação segura considerou esta página abusiva e bloqueou o pop-up."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | enteredBackForwardCacheBeforeServiceWorkerHostAdded": {
    "message": "Um service worker foi ativado enquanto a página estava na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | errorDocument": {
    "message": "A cache para a frente/para trás foi desativada devido a um erro do documento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | fencedFramesEmbedder": {
    "message": "Não é possível armazenar páginas com FencedFrames na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | foregroundCacheLimit": {
    "message": "A página foi removida da cache para permitir que outra página fosse colocada em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | grantedMediaStreamAccess": {
    "message": "Atualmente, as páginas que concederam acesso à stream de multimédia não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | haveInnerContents": {
    "message": "Atualmente, as páginas com determinados tipos de conteúdo incorporado (por exemplo, PDFs) não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | idleManager": {
    "message": "Atualmente, as páginas que utilizam IdleManager não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | indexedDBConnection": {
    "message": "Atualmente, as páginas com uma ligação IndexedDB aberta não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | indexedDBEvent": {
    "message": "A cache para a frente/para trás foi desativada devido a um evento IndexedDB."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | ineligibleAPI": {
    "message": "Foram utilizadas APIs não elegíveis."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | injectedJavascript": {
    "message": "Atualmente, as páginas em que a folha de estilos JavaScript é injetada por extensões não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | injectedStyleSheet": {
    "message": "Atualmente, as páginas em que a folha de estilos StyleSheet é injetada por extensões não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | internalError": {
    "message": "Erro interno."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | jsNetworkRequestReceivedCacheControlNoStoreResource": {
    "message": "A cache para a frente/para trás foi desativada porque alguns pedidos de rede JavaScript receberam o recurso com o cabeçalho Cache-Control: no-store."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | keepaliveRequest": {
    "message": "A cache para a frente/para trás foi desativada devido a um pedido keep-alive."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | keyboardLock": {
    "message": "Atualmente, as páginas que utilizam bloqueio do teclado não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | loading": {
    "message": "A página não concluiu o carregamento antes de sair da mesma."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | mainResourceHasCacheControlNoCache": {
    "message": "Não é possível adicionar as páginas que têm recursos principais com cache-control:no-cache à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | mainResourceHasCacheControlNoStore": {
    "message": "Não é possível adicionar as páginas que têm recursos principais com cache-control:no-store à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | navigationCancelledWhileRestoring": {
    "message": "A navegação foi cancelada antes de a página poder ser restaurada a partir da cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkExceedsBufferLimit": {
    "message": "A página foi removida da cache porque uma ligação de rede ativa recebeu demasiados dados. O Chrome limita a quantidade de dados que uma página pode receber enquanto está em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestDatapipeDrainedAsBytesConsumer": {
    "message": "Atualmente, as páginas com fetch() ou XHR em processamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestRedirected": {
    "message": "A página foi removida da cache para a frente/para trás porque um pedido de rede ativo envolveu um redirecionamento."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | networkRequestTimeout": {
    "message": "A página foi removida da cache porque uma ligação de rede ficou aberta por demasiado tempo. O Chrome limita o período de tempo durante o qual uma página pode receber dados enquanto está em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | noResponseHead": {
    "message": "Não é possível adicionar páginas que não têm um cabeçalho de resposta válido à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | notMainFrame": {
    "message": "A navegação ocorreu num frame diferente do frame principal."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingIndexedDBTransaction": {
    "message": "Atualmente, as páginas com transações DB indexadas em curso não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestDirectSocket": {
    "message": "Atualmente, as páginas com um pedido de rede em processamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestFetch": {
    "message": "Atualmente, as páginas com um pedido de obtenção de rede em processamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestOthers": {
    "message": "Atualmente, as páginas com um pedido de rede em processamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | outstandingNetworkRequestXHR": {
    "message": "Atualmente, as páginas com um pedido de rede XHR em processamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | paymentManager": {
    "message": "Atualmente, as páginas que utilizam PaymentManager não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | pictureInPicture": {
    "message": "Atualmente, as páginas que utilizam a funcionalidade ecrã no ecrã não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | printing": {
    "message": "Atualmente, as páginas que utilizam a IU de impressão não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | relatedActiveContentsExist": {
    "message": "A página foi aberta através de \"window.open()\" e é referenciada por outro separador ou a página abriu uma janela."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | rendererProcessCrashed": {
    "message": "O processo de renderização da página na cache para a frente/para trás falhou."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | rendererProcessKilled": {
    "message": "O processo de renderização da página na cache para a frente/para trás foi interrompido."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedAudioCapturePermission": {
    "message": "Atualmente, as páginas que solicitaram autorizações de captura de áudio não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedBackForwardCacheBlockedSensors": {
    "message": "Atualmente, as páginas que solicitaram autorizações de sensores não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedBackgroundWorkPermission": {
    "message": "Atualmente, as páginas que solicitaram a sincronização em segundo plano ou autorizações de obtenção não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedMIDIPermission": {
    "message": "Atualmente, as páginas que solicitaram autorizações MIDI não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedNotificationsPermission": {
    "message": "Atualmente, as páginas que solicitaram autorizações de notificações não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedStorageAccessGrant": {
    "message": "Atualmente, as páginas que solicitaram acesso ao armazenamento não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | requestedVideoCapturePermission": {
    "message": "Atualmente, as páginas que solicitaram autorizações de captura de vídeo não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | schemeNotHTTPOrHTTPS": {
    "message": "Apenas as páginas com um esquema de URL HTTP/HTTPS podem ser colocadas em cache."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerClaim": {
    "message": "A página foi reivindicada por um service worker enquanto estava na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerPostMessage": {
    "message": "Um service worker tentou enviar um MessageEvent para a página na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerUnregistration": {
    "message": "O registo do ServiceWorker foi anulado enquanto a página estava na cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | serviceWorkerVersionActivation": {
    "message": "A página foi removida da cache para a frente/para trás devido à ativação de um service worker."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sessionRestored": {
    "message": "O Chrome foi reiniciado e limpou as entradas da cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sharedWorker": {
    "message": "Atualmente, as páginas que utilizam SharedWorker não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | sharedWorkerMessage": {
    "message": "A página foi removida da cache porque recebeu uma mensagem de um SharedWorker"
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | speechRecognizer": {
    "message": "Atualmente, as páginas que utilizam SpeechRecognizer não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | speechSynthesis": {
    "message": "Atualmente, as páginas que utilizam SpeechSynthesis não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subframeIsNavigating": {
    "message": "Um iFrame na página iniciou uma navegação que não foi concluída."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subresourceHasCacheControlNoCache": {
    "message": "Não é possível adicionar as páginas que têm sub-recursos com cache-control:no-cache à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | subresourceHasCacheControlNoStore": {
    "message": "Não é possível adicionar as páginas que têm sub-recursos com cache-control:no-store à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | timeout": {
    "message": "A página excedeu o tempo máximo na cache para a frente/para trás e expirou."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | timeoutPuttingInCache": {
    "message": "A página expirou ao ser adicionada à cache para a frente/para trás (provavelmente devido aos controladores pagehide em execução há muito tempo)."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | unloadHandlerExistsInMainFrame": {
    "message": "A página tem um controlador de descarregamento no frame principal."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | unloadHandlerExistsInSubFrame": {
    "message": "A página tem um controlador de descarregamento num subframe."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | userAgentOverrideDiffers": {
    "message": "O navegador alterou o cabeçalho de substituição do agente do utilizador."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | wasGrantedMediaAccess": {
    "message": "Atualmente, as páginas que concederam acesso à gravação de vídeo ou áudio não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webDatabase": {
    "message": "Atualmente, as páginas que utilizam WebDatabase não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webHID": {
    "message": "Atualmente, as páginas que utilizam WebHID não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webLocks": {
    "message": "Atualmente, as páginas que utilizam WebLocks não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webNfc": {
    "message": "Atualmente, as páginas que utilizam WebNfc não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webOTPService": {
    "message": "Atualmente, as páginas que utilizam WebOTPService não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTC": {
    "message": "Não é possível adicionar páginas com WebRTC à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webRTCUsedWithCCNS": {
    "message": "A cache para a frente/para trás foi desativada porque o WebRTC foi usado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webShare": {
    "message": "Atualmente, as páginas que utilizam WebShare não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocket": {
    "message": "Não é possível adicionar páginas com WebSocket à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webSocketUsedWithCCNS": {
    "message": "A cache para a frente/para trás foi desativada porque o WebSocket foi usado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransport": {
    "message": "Não é possível adicionar páginas com WebTransport à cache para a frente/para trás."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webTransportUsedWithCCNS": {
    "message": "A cache para a frente/para trás foi desativada porque o WebTransport foi usado."
  },
  "node_modules/@paulirish/trace_engine/panels/application/components/BackForwardCacheStrings.js | webXR": {
    "message": "Atualmente, as páginas que utilizam WebXR não são elegíveis para a cache para a frente/para trás."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
    "message": "Para conteúdo animado, utilize [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) para minimizar a utilização da CPU quando o conteúdo não está visível."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | modern-image-formats": {
    "message": "Considere apresentar todos os seus componentes [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) em formatos WebP, especificando, ao mesmo tempo, uma alternativa apropriada para outros navegadores. [Saiba mais](https://amp.dev/documentation/components/amp-img/#example:-specifying-a-fallback-image)."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | offscreen-images": {
    "message": "Certifique-se de que está a utilizar [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) para que as imagens efetuem o carregamento em diferido automaticamente. [Saiba mais](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": "Utilize ferramentas como o [AMP Optimizer](https://github.com/ampproject/amp-toolbox/tree/master/packages/optimizer) para [renderizar esquemas AMP do lado do 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": "Consulte a [documentação de AMP](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/style_pages/) para garantir que todos os estilos são suportados."
  },
  "node_modules/lighthouse-stack-packs/packs/amp.js | uses-responsive-images": {
    "message": "O componente [`amp-img`](https://amp.dev/documentation/components/amp-img/?format=websites) suporta o atributo [`srcset`](https://web.dev/use-srcset-to-automatically-choose-the-right-image/) para especificar os recursos de imagem a utilizar com base no tamanho do ecrã. [Saiba mais](https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/art_direction/)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | dom-size": {
    "message": "Considere o deslocamento virtual com o Component Dev Kit (CDK) se estiverem a ser renderizadas listas muito grandes. [Saiba mais](https://web.dev/virtualize-lists-with-angular-cdk/)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | total-byte-weight": {
    "message": "Aplique a [divisão de código ao nível do encaminhamento](https://web.dev/route-level-code-splitting-in-angular/) para minimizar o tamanho dos seus pacotes de JavaScript. Considere também a pré-colocação de recursos em cache com o [service worker do Angular](https://web.dev/precaching-with-the-angular-service-worker/)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | unminified-warning": {
    "message": "Se estiver a utilizar a Angular CLI, assegure-se de que as compilações são geradas em modo de produção. [Saiba mais](https://angular.io/guide/deployment#enable-runtime-production-mode)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | unused-javascript": {
    "message": "Se estiver a utilizar a CLI do Angular, inclua mapas de origem na compilação de produção para inspecionar os seus pacotes. [Saiba mais](https://angular.io/guide/deployment#inspect-the-bundles)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | uses-rel-preload": {
    "message": "Pré-carregue antecipadamente os encaminhamentos para acelerar a navegação. [Saiba mais](https://web.dev/route-preloading-in-angular/)."
  },
  "node_modules/lighthouse-stack-packs/packs/angular.js | uses-responsive-images": {
    "message": "Considere utilizar o utilitário `BreakpointObserver` no Component Dev Kit (CDK) para gerir breakpoints de imagem. [Saiba mais](https://material.angular.io/cdk/layout/overview)."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | efficient-animated-content": {
    "message": "Considere carregar o `GIF` para um serviço que o disponibilizará para incorporação como vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | modern-image-formats": {
    "message": "Considere configurar os [formatos de imagem WebP com a opção Converter estilo da imagem](https://www.drupal.org/docs/core-modules-and-themes/core-modules/image-module/working-with-images#styles) no seu site."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | offscreen-images": {
    "message": "Considere configurar o carregamento em diferido de imagens no `Drupal`. Os formatadores de campos para imagens são compatíveis com o `lazy` ou o `eager`."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | prioritize-lcp-image": {
    "message": "Se o elemento de LCP for dinamicamente adicionado à página, deve otimizar a imagem para melhorar o elemento de LCP. [Saiba mais](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": "Os redirecionamentos introduzem atrasos adicionais antes do carregamento da página. Se o módulo [Redirecionamento](https://www.drupal.org/project/redirect) estiver instalado, reveja se é possível remover redirecionamentos desnecessários. [Saiba mais](https://developers.google.com/web/tools/lighthouse/audits/redirects)."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | render-blocking-resources": {
    "message": "Considere usar [um módulo](https://www.drupal.org/project/critical_css) para colocar CSS e JavaScript crítico inline, e usar o atributo defer para CSS ou JavaScript não crítico."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | server-response-time": {
    "message": "Descarregue o tráfego com 1 ou mais módulos de armazenamento em cache do `Drupal`, como: `Internal Page Cache`, `Internal Dynamic Page Cache` e `BigPipe`. Combine-os com uma RFC para melhorar ainda mais o tempo de resposta. Os seus servidores de alojamento devem usar o PHP OPcache. Considere usar a colocação em cache da memória, como o Redis ou o Memcached, para reduzir os tempos de consulta da base de dados. Por fim, use servidores mais rápidos, módulos e temas com bom desempenho para reduzir o tempo de resposta do servidor."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | total-byte-weight": {
    "message": "Considere usar [estilos de imagens dinâmicos](https://www.drupal.org/documentation/modules/responsive_image) para reduzir o tamanho das imagens carregadas na sua página. Se estiver a usar `Views` para apresentar vários itens de conteúdo numa página, considere implementar a paginação para limitar o número de itens de conteúdo apresentados numa determinada página."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-css": {
    "message": "Certifique-se de que tem a opção \"Agregar ficheiros CSS\" na página \"Administração » Configuração » Programação\"."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unminified-javascript": {
    "message": "Certifique-se de que ativou a opção \"Agregar ficheiros JavaScript\" na página \"Administração » Configuração » Programação\"."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-css-rules": {
    "message": "Considere remover regras de CSS não usadas e anexe apenas as bibliotecas do `Drupal` necessárias à página relevante ou a um componente numa página. Consulte a [documentação do `Drupal`](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define) para ver detalhes. Para identificar bibliotecas anexadas que estejam a adicionar CSS não reconhecido, experimente executar a [utilização de código](https://developer.chrome.com/docs/devtools/coverage) nas Chrome DevTools. Pode identificar o tema/módulo responsável a partir do URL da folha de estilos quando a agregação de CSS estiver desativada no seu site do `Drupal`. Preste atenção a temas/módulos que tenham muitas folhas de estilo na lista com muito vermelho na utilização de código. Um tema/módulo só deve anexar uma biblioteca de folhas de estilos se esta for realmente usada na página."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | unused-javascript": {
    "message": "Considere remover recursos de JavaScript não usados e anexe apenas as bibliotecas do `Drupal` necessárias à página relevante ou a um componente numa página. Consulte a [documentação do Drupal](https://www.drupal.org/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml#define) para ver detalhes. Para identificar bibliotecas anexadas que estejam a adicionar JavaScript não reconhecido, experimente executar a [utilização de código](https://developer.chrome.com/docs/devtools/coverage) nas Chrome DevTools. Pode identificar o tema/módulo responsável a partir do URL do script quando a agregação de JavaScript estiver desativada no seu site do `Drupal`. Preste atenção a temas/módulos que tenham muitos scripts na lista com muito vermelho na utilização de código. Um tema/módulo só deve anexar uma biblioteca de scripts se esta for realmente usada na página."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-long-cache-ttl": {
    "message": "Defina a opção \"Duração máxima da cache do navegador e do proxy\" na página \"Administração » Configuração » Programação\". Leia sobre a [cache do `Drupal` e a otimização do desempenho](https://www.drupal.org/docs/8/api/cache-api/cache-api)."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-optimized-images": {
    "message": "Considere usar [um 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 otimize e reduza automaticamente o tamanho das imagens carregadas em todo o site e que mantenha a qualidade das mesmas. Certifique-se também de que está a usar os [estilos de imagens dinâmicos](https://www.drupal.org/documentation/modules/responsive_image) nativos fornecidos pelo `Drupal` para todas as imagens renderizadas no site."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-rel-preconnect": {
    "message": "É possível adicionar instruções para recursos de `Preconnect` ou `dns-prefetch` instalando e configurando [um 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 forneça estruturas para instruções de recursos de agente do utilizador."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": {
    "message": "Certifique-se de que está a usar os [estilos de imagens dinâmicos](https://www.drupal.org/documentation/modules/responsive_image) nativos fornecidos pelo `Drupal`. Use os estilos de imagens dinâmicos quando renderizar campos de imagens através de modos de visualização, vistas ou imagens carregadas através do editor WYSIWYG."
  },
  "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-text-compression": {
    "message": "Os recursos baseados em texto devem ser publicados com compressão (gzip, Deflate ou Brotli) para reduzir o total de bytes de rede. Considere usar uma RFC que seja compatível de forma nativa com este recurso ou configure o servidor Web para realizar esta operação. [Saiba mais](https://developers.google.com/web/tools/lighthouse/audits/text-compression)."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Optimize Fonts` para tirar automaticamente partido da funcionalidade CSS `font-display` e garantir que o texto é visível para o utilizador enquanto os tipos de letra para Websites são carregados."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Next-Gen Formats` para converter imagens em WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Lazy Load Images` para adiar o carregamento de imagens que não aparecem no ecrã até serem necessárias."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": {
    "message": "Use o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Script Delay` para adiar o JS não crítico."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": {
    "message": "Utilize o [Ezoic Cloud Caching](https://pubdash.ezoic.com/leap/caching) para colocar em cache o seu conteúdo na nossa rede mundial e melhorar o tempo até ao primeiro byte."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Minify CSS` para reduzir automaticamente o CSS e diminuir os tamanhos dos payloads de rede."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Minify Javascript` para reduzir automaticamente o JS e diminuir os tamanhos dos payloads de rede."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Remove Unused CSS` para ajudar com este problema. Vai identificar as classes CSS efetivamente utilizadas em cada página do seu site e remover todas as outras para manter o tamanho do ficheiro pequeno."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Efficient Static Cache Policy` para definir valores recomendados no cabeçalho da colocação em cache para recursos estáticos."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Next-Gen Formats` para converter imagens em WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Pre-Connect Origins` para adicionar automaticamente instruções para recursos `preconnect` e estabelecer ligações antecipadamente a origens de terceiros importantes."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative as definições `Preload Fonts` e `Preload Background Images` para adicionar links `preload` e dar prioridade à obtenção de recursos que são atualmente pedidos mais tarde no carregamento de página."
  },
  "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": {
    "message": "Utilize o [Ezoic Leap](https://pubdash.ezoic.com/leap) e ative a definição `Resize Images` para redimensionar as imagens para um tamanho adequado aos dispositivos e diminuir os tamanhos dos payloads de rede."
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | modern-image-formats": {
    "message": "Use o componente `gatsby-plugin-image`, em vez de `<img>`, para otimizar automaticamente o formato de imagem. [Saiba mais](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": "Use o componente `gatsby-plugin-image`, em vez de `<img>`, para carregar automaticamente as imagens em diferido. [Saiba mais](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": "Use o componente `gatsby-plugin-image` e defina a propriedade `loading` como `eager`. [Saiba mais](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": "Use a `Gatsby Script API` para adiar o carregamento de scripts de terceiros não críticos. [Saiba mais](https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-script/)."
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | unused-css-rules": {
    "message": "Use o plugin `PurgeCSS` `Gatsby` para remover regras não usadas de folhas de estilos. [Saiba mais](https://purgecss.com/plugins/gatsby.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | unused-javascript": {
    "message": "Use o `Webpack Bundle Analyzer` para detetar código JavaScript não usado. [Saiba mais](https://www.gatsbyjs.com/plugins/gatsby-plugin-webpack-bundle-analyser-v2/)"
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | uses-long-cache-ttl": {
    "message": "Configure a colocação em cache para recursos imutáveis. [Saiba mais](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting/caching/)."
  },
  "node_modules/lighthouse-stack-packs/packs/gatsby.js | uses-optimized-images": {
    "message": "Use o componente `gatsby-plugin-image`, em vez de `<img>`, para ajustar a qualidade da imagem. [Saiba mais](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": "Use o componente `gatsby-plugin-image` para definir os `sizes` apropriados. [Saiba mais](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": "Considere carregar o GIF para um serviço que o disponibilizará para incorporação como vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | modern-image-formats": {
    "message": "Considere utilizar um [plugin](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=webp) ou serviço que converta automaticamente as imagens carregadas nos formatos ideais."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | offscreen-images": {
    "message": "Instale um [plugin do Joomla de carregamento em diferido](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=lazy%20loading) com capacidade para adiar imagens não visíveis ou mudar para um modelo com essa funcionalidade. A partir do Joomla 4.0, todas as imagens novas receberão [automaticamente](https://github.com/joomla/joomla-cms/pull/30748) o atributo `loading` do núcleo."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | render-blocking-resources": {
    "message": "Há vários plug-ins do Joomla que podem ajudar a [colocar recursos críticos inline](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) ou [adiar recursos menos importantes](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance). Tenha em atenção que as otimizações oferecidas por estes plug-ins podem afetar funcionalidades dos seus modelos ou plug-ins, pelo que poderá ser necessário efetuar testes rigorosos."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | server-response-time": {
    "message": "As especificações dos modelos, extensões e servidor, no seu conjunto, contribuem para o tempo de resposta do servidor. Considere procurar um modelo mais otimizado, selecionar cuidadosamente uma extensão de otimização e/ou atualizar o servidor."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | total-byte-weight": {
    "message": "Considere mostrar excertos nas suas categorias de artigos (por exemplo, através do link para ler mais), reduzir o número de artigos apresentados numa determinada página, dividir as publicações longas em várias páginas ou utilizar um plugin para efetuar o carregamento em diferido de comentários."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-css": {
    "message": "Várias [extensões do Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) podem acelerar o seu site ao concatenar, reduzir e comprimir os seus estilos de CSS. Também existem modelos que oferecem esta funcionalidade."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unminified-javascript": {
    "message": "Várias [extensões do Joomla](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) podem acelerar o seu site ao concatenar, reduzir e comprimir os seus scripts. Também existem modelos que oferecem esta funcionalidade."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-css-rules": {
    "message": "Considere reduzir ou mudar o número de [extensões do Joomla](https://extensions.joomla.org/) que carregam CSS não utilizado na sua página. Para identificar extensões que estejam a adicionar CSS não reconhecido, experimente executar a [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) nas DevTools do Chrome. Pode identificar o tema/plugin responsável a partir do URL da folha de estilos. Preste atenção a plugins que tenham muitas folhas de estilo na lista com muito vermelho na cobertura do código. Um plugin só deve ter uma folha de estilos na fila de espera se esta for realmente utilizada na página."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | unused-javascript": {
    "message": "Considere reduzir ou mudar o número de [extensões do Joomla](https://extensions.joomla.org/) que carregam JavaScript não utilizado na sua página. Para identificar plug-ins que estejam a adicionar JS não reconhecido, experimente executar a [cobertura de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) nas DevTools do Chrome. Pode identificar a extensão responsável a partir do URL do script. Preste atenção a extensões que tenham muitos scripts na lista com muito vermelho na cobertura do código. Uma extensão só deve ter um script na fila de espera se este for efetivamente utilizado na página."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-long-cache-ttl": {
    "message": "Leia sobre a [Colocação na cache do navegador no Joomla](https://docs.joomla.org/Cache)."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-optimized-images": {
    "message": "Considere utilizar um [plugin de otimização da imagem](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=performance) que comprima as imagens, ao mesmo tempo que mantém a qualidade."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-responsive-images": {
    "message": "Considere utilizar um [plugin de imagens adaptáveis](https://extensions.joomla.org/instant-search/?jed_live%5Bquery%5D=responsive%20images) para utilizar imagens adaptáveis no seu conteúdo."
  },
  "node_modules/lighthouse-stack-packs/packs/joomla.js | uses-text-compression": {
    "message": "Pode ativar a compressão de texto ao ativar Compressão de página Gzip no Joomla (Sistema > Configuração global > Servidor)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | critical-request-chains": {
    "message": "Se não estiver a agrupar os seus recursos de JavaScript, considere utilizar o [baler](https://github.com/magento/baler)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | disable-bundling": {
    "message": "Desative o [agrupamento e redução de JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) integrados do Magento e, em alternativa, considere utilizar o [baler](https://github.com/magento/baler/)."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | font-display": {
    "message": "Especifique `@font-display` quando [definir tipos de letra personalizados](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": "Considere pesquisar o [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=webp) a fim de obter diversas extensões de terceiros para tirar partido de formatos de imagem mais recentes."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | offscreen-images": {
    "message": "Considere modificar os seus modelos de produto e catálogo para tirar partido da funcionalidade de [carregamento em diferido](https://web.dev/native-lazy-loading) da plataforma Web."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | server-response-time": {
    "message": "Utilize a [integração com o Varnish](https://devdocs.magento.com/guides/v2.3/config-guide/varnish/config-varnish.html) do Magento."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | unminified-css": {
    "message": "Ative a opção \"Reduzir ficheiros CSS\" nas Definições do programador da sua loja. [Saiba mais](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": "Utilize o [Terser](https://www.npmjs.com/package/terser) para reduzir todos os recursos de JavaScript provenientes da implementação de conteúdo estático e desativar a funcionalidade de redução integrada."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | unused-javascript": {
    "message": "Desative o [agrupamento de JavaScript](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/js-bundling.html) integrado do Magento."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-optimized-images": {
    "message": "Considere pesquisar o [Magento Marketplace](https://marketplace.magento.com/catalogsearch/result/?q=optimize%20image) a fim de obter diversas extensões de terceiros para otimizar imagens."
  },
  "node_modules/lighthouse-stack-packs/packs/magento.js | uses-rel-preconnect": {
    "message": "É possível adicionar instruções para recursos de pré-ligação ou de obtenção prévia de DNS ao [modificar o esquema de um 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": "É possível adicionar etiquetas `<link rel=preload>` ao [modificar o esquema de um 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": "Use o componente `next/image`, em vez de `<img>`, para otimizar automaticamente o formato de imagem. [Saiba mais](https://nextjs.org/docs/app/getting-started/images)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": {
    "message": "Use o componente `next/image`, em vez de `<img>`, para carregar automaticamente as imagens em diferido. [Saiba mais](https://nextjs.org/docs/app/getting-started/images)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | prioritize-lcp-image": {
    "message": "Utilize o componente `next/image` e defina \"priority\" como true para pré-carregar a imagem LCP. [Saiba mais](https://nextjs.org/docs/api-reference/next/image#priority)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | render-blocking-resources": {
    "message": "Utilize o componente `next/script` para adiar o carregamento de scripts de terceiros não críticos. [Saiba mais](https://nextjs.org/docs/app/guides/scripts)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unsized-images": {
    "message": "Use o componente `next/image` para se certificar de que as imagens são sempre dimensionadas corretamente. [Saiba mais](https://nextjs.org/docs/api-reference/next/image#width)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unused-css-rules": {
    "message": "Considere configurar o `PurgeCSS` na configuração do `Next.js` para remover regras não utilizadas de folhas de estilos. [Saiba mais](https://purgecss.com/guides/next.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | unused-javascript": {
    "message": "Use o `Webpack Bundle Analyzer` para detetar código JavaScript não usado. [Saiba mais](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)"
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | user-timings": {
    "message": "Considere utilizar o `Next.js Analytics` para medir o desempenho real da app. [Saiba mais](https://nextjs.org/docs/pages/guides/analytics)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-long-cache-ttl": {
    "message": "Configure a colocação em cache para recursos imutáveis e páginas `Server-side Rendered` (SSR). [Saiba mais](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": "Use o componente `next/image`, em vez de `<img>`, para ajustar a qualidade da imagem. [Saiba mais](https://nextjs.org/docs/app/getting-started/images)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-responsive-images": {
    "message": "Utilize o componente `next/image` para definir o(s) `sizes` apropriado(s). [Saiba mais](https://nextjs.org/docs/api-reference/next/image#sizes)."
  },
  "node_modules/lighthouse-stack-packs/packs/next.js | uses-text-compression": {
    "message": "Ative a compressão no seu servidor Next.js. [Saiba mais](https://nextjs.org/docs/api-reference/next.config.js/compression)."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | dom-size": {
    "message": "Contacte o seu gestor de conta para ativar a funcionalidade [`HTML Lazy Load`](https://support.nitropack.io/hc/en-us/articles/17144942904337). Ao configurá-la, dá prioridade e otimiza o desempenho da renderização da página."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | font-display": {
    "message": "Use a opção [`Override Font Rendering Behavior`](https://support.nitropack.io/hc/en-us/articles/16547358865041) no NitroPack para definir um valor desejado para a regra de apresentação de tipos de letra CSS."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | modern-image-formats": {
    "message": "Use a funcionalidade [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/16547237162513) para converter automaticamente as suas imagens em WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | offscreen-images": {
    "message": "Ative a funcionalidade [`Automatic Image Lazy Loading`](https://support.nitropack.io/hc/en-us/articles/12457493524369-NitroPack-Lazy-Loading-Feature-for-Images) para adiar as imagens não visíveis."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | render-blocking-resources": {
    "message": "Ative a funcionalidade [`Remove render-blocking resources`](https://support.nitropack.io/hc/en-us/articles/13820893500049-How-to-Deal-with-Render-Blocking-Resources-in-NitroPack) no NitroPack para tempos de carregamento iniciais mais rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-css": {
    "message": "Ative a funcionalidade [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) nas definições de colocação em cache para reduzir o tamanho dos ficheiros CSS, HTML e JavaScript para tempos de carregamento mais rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unminified-javascript": {
    "message": "Ative a funcionalidade [`Minify resources`](https://support.nitropack.io/hc/en-us/articles/360061059394-Minify-Resources) nas definições de colocação em cache para reduzir o tamanho dos ficheiros JS, HTML e CSS para tempos de carregamento mais rápidos."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-css-rules": {
    "message": "Ative a funcionalidade [`Reduce Unused CSS`](https://support.nitropack.io/hc/en-us/articles/360020418457-Reduce-Unused-CSS) para remover regras CSS que não são aplicáveis a esta página."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | unused-javascript": {
    "message": "Configure a funcionalidade [`Delayed Scripts`](https://support.nitropack.io/hc/en-us/articles/1500002600942-Delayed-Scripts) no NitroPack para atrasar o carregamento de scripts até serem necessários."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-long-cache-ttl": {
    "message": "Aceda à funcionalidade [`Improve Server Response Time`](https://support.nitropack.io/hc/en-us/articles/1500002321821-Improve-Server-Response-Time) no menu `Caching` e ajuste o prazo de validade da cache da página para melhorar os tempos de carregamento e a experiência do utilizador."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-optimized-images": {
    "message": "Ative a definição [`Image Optimization`](https://support.nitropack.io/hc/en-us/articles/14177271695121-How-to-serve-images-in-next-gen-formats-using-NitroPack) para comprimir, otimizar e converter automaticamente as suas imagens em WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/nitropack.js | uses-responsive-images": {
    "message": "Ative a funcionalidade [`Adaptive Image Sizing`](https://support.nitropack.io/hc/en-us/articles/10123833029905-How-to-Enable-Adaptive-Image-Sizing-For-Your-Site) para otimizar preventivamente as suas imagens e torná-las correspondentes às dimensões dos contentores em que são apresentadas em todos os dispositivos."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | modern-image-formats": {
    "message": "Use o componente `nuxt/image` e defina `format=\"webp\"`. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#format)."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | offscreen-images": {
    "message": "Use o componente `nuxt/image` e defina `loading=\"lazy\"` para as imagens fora do ecrã. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#loading)."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | prioritize-lcp-image": {
    "message": "Use o componente `nuxt/image` e especifique o `preload` para a imagem de LCP. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#preload)."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | unsized-images": {
    "message": "Use o componente `nuxt/image` e especifique explicitamente a `width` e a `height`. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#width-height)."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | uses-optimized-images": {
    "message": "Use o componente `nuxt/image` e defina a `quality` apropriada. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#quality)."
  },
  "node_modules/lighthouse-stack-packs/packs/nuxt.js | uses-responsive-images": {
    "message": "Use o componente `nuxt/image` e defina os `sizes` apropriados. [Saiba mais](https://image.nuxt.com/usage/nuxt-img#sizes)."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | efficient-animated-content": {
    "message": "[Substitua GIFs animados por vídeo](https://web.dev/replace-gifs-with-videos/) para obter carregamentos de páginas Web mais rápidos e considere a utilização de formatos de ficheiro modernos, tais como [WebM](https://web.dev/replace-gifs-with-videos/#create-webm-videos) ou [AV1](https://developers.google.com/web/updates/2018/09/chrome-70-media-updates#av1-decoder), para melhorar a eficiência de compressão em mais de 30% em relação ao atual codec de vídeo de última geração, VP9."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | modern-image-formats": {
    "message": "Considere utilizar um [plugin](https://octobercms.com/plugins?search=image) ou serviço que converta automaticamente as imagens carregadas nos formatos ideais. As [imagens WebP sem perdas](https://developers.google.com/speed/webp) são 26% mais pequenas em termos de tamanho do que as imagens PNG e 25 a 34% mais pequenas do que as imagens JPEG comparáveis em termos de índice de qualidade SSIM equivalente. Outro formato de imagem de última geração a considerar é o [AVIF](https://jakearchibald.com/2020/avif-has-landed/)."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | offscreen-images": {
    "message": "Considere a instalação de um [plugin de carregamento em diferido de imagens](https://octobercms.com/plugins?search=lazy) com capacidade para adiar imagens não visíveis ou mudar para um tema com essa funcionalidade. Considere ainda a utilização do [plugin de AMP](https://octobercms.com/plugins?search=Accelerated+Mobile+Pages)."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | render-blocking-resources": {
    "message": "Existem vários plug-ins que ajudam a [colocar recursos críticos inline](https://octobercms.com/plugins?search=css). Estes plug-ins podem afetar outros plug-ins, pelo que deve efetuar testes rigorosos."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | server-response-time": {
    "message": "As especificações dos temas, dos plugins e do servidor, no seu conjunto, contribuem para o tempo de resposta do servidor. Considere localizar um tema mais otimizado, ao selecionar cuidadosamente um plugin de otimização e/ou atualizar o servidor. O CMS de outubro também permite que os programadores utilizem [`Queues`](https://octobercms.com/docs/services/queues) para adiar o processamento de uma tarefa morosa, como o envio de um email. Isto acelera drasticamente os pedidos Web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | total-byte-weight": {
    "message": "Considere mostrar excertos nas listas de publicação (por exemplo, através de um botão `show more`), reduzir o número de publicações apresentadas numa determinada página Web, dividir as publicações extensas em várias páginas Web ou utilizar um plugin para efetuar o carregamento em diferido de comentários."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unminified-css": {
    "message": "Existem muitos [plug-ins](https://octobercms.com/plugins?search=css) que podem acelerar um Website ao concatenar, reduzir e comprimir os estilos. A utilização de um processo de compilação para proceder previamente à redução pode acelerar o desenvolvimento."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unminified-javascript": {
    "message": "Existem muitos [plug-ins](https://octobercms.com/plugins?search=javascript) que podem acelerar um Website ao concatenar, reduzir e comprimir os scripts. A utilização de um processo de compilação para proceder previamente à redução pode acelerar o desenvolvimento."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unused-css-rules": {
    "message": "Considere rever os [plugins](https://octobercms.com/plugins) que carregam CSS não utilizado no Website. Para identificar plugins que adicionam CSS não necessário, execute a [utilização de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) nas Chrome DevTools. Identifique o tema/plugin responsável a partir do URL da folha de estilos. Procure plugins que tenham muitas folhas de estilos com muito vermelho na utilização de código. Um plugin só deve adicionar uma folha de estilos se esta for efetivamente utilizada na página Web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | unused-javascript": {
    "message": "Considere rever os [plugins](https://octobercms.com/plugins?search=javascript) que carregam JavaScript não utilizado na página Web. Para identificar plugins que adicionam JavaScript não necessário, execute a [utilização de código](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) nas Chrome DevTools. Identifique o tema/plugin responsável no URL do script. Procure plugins que tenham muitos scripts com muito vermelho na utilização de código. Um plugin só deve adicionar um script se este for efetivamente utilizado na página Web."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-long-cache-ttl": {
    "message": "Leia sobre como [impedir pedidos de rede desnecessários com cache HTTP](https://web.dev/http-cache/#caching-checklist). Existem muitos [plug-ins](https://octobercms.com/plugins?search=Caching) que podem ser utilizados para acelerar a colocação em cache."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-optimized-images": {
    "message": "Considere utilizar um [plugin de otimização de imagens](https://octobercms.com/plugins?search=image) para comprimir imagens sem comprometer a qualidade."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-responsive-images": {
    "message": "Carregue as imagens diretamente no gestor de meios para garantir que os tamanhos de imagem estão disponíveis. Considere utilizar o [filtro de redimensionamento](https://octobercms.com/docs/markup/filter-resize) ou um [plugin de redimensionamento de imagens](https://octobercms.com/plugins?search=image) para garantir a utilização de tamanhos de imagem ideais."
  },
  "node_modules/lighthouse-stack-packs/packs/octobercms.js | uses-text-compression": {
    "message": "Ative a compressão de texto na configuração do servidor Web."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | dom-size": {
    "message": "Considere utilizar uma biblioteca de \"visualização baseada na janela atual\" como `react-window` para minimizar o número de nós DOM criados se estiver a renderizar muitos elementos repetidos na página. [Saiba mais](https://web.dev/virtualize-long-lists-react-window/). Minimize também as re-renderizações desnecessárias ao utilizar [`shouldComponentUpdate`](https://reactjs.org/docs/optimizing-performance.html#shouldcomponentupdate-in-action), [`PureComponent`](https://reactjs.org/docs/react-api.html#reactpurecomponent) ou [`React.memo`](https://reactjs.org/docs/react-api.html#reactmemo) e [skip effects](https://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects), somente até determinadas dependências terem sido alteradas caso esteja a utilizar o hook `Effect` para melhorar o desempenho do tempo de execução."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | redirects": {
    "message": "Se estiver a utilizar o React Router, minimize a utilização do componente `<Redirect>` para as [navegações de encaminhamentos](https://reacttraining.com/react-router/web/api/Redirect)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | server-response-time": {
    "message": "Se estiver a renderizar componentes React do lado do servidor, considere utilizar `renderToPipeableStream()` ou `renderToStaticNodeStream()` para permitir que o cliente receba e hidrate várias partes da marcação em vez de todas em simultâneo. [Saiba mais](https://reactjs.org/docs/react-dom-server.html#renderToPipeableStream)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unminified-css": {
    "message": "Se o sistema de compilação reduzir os ficheiros CSS automaticamente, assegure-se de que está a implementar a compilação de produção da aplicação. Pode verificar esta situação com a extensão React Developer Tools. [Saiba mais](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unminified-javascript": {
    "message": "Se o sistema de compilação reduzir os ficheiros JS automaticamente, assegure-se de que está a implementar a compilação de produção da sua aplicação. Pode verificar esta situação com a extensão React Developer Tools. [Saiba mais](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | unused-javascript": {
    "message": "Se não estiver a renderizar do lado do servidor, [divida os seus pacotes de JavaScript](https://web.dev/code-splitting-suspense/) com `React.lazy()`. Caso contrário, divida o código ao utilizar uma biblioteca de terceiros como [loadable-components](https://loadable-components.com/)."
  },
  "node_modules/lighthouse-stack-packs/packs/react.js | user-timings": {
    "message": "Utilize o Gerador de perfis do React DevTools, que utiliza a API do Gerador de perfis, para medir o desempenho de renderização dos seus componentes. [Saiba mais](https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | efficient-animated-content": {
    "message": "Coloque vídeos dentro de `VideoBoxes`, personalize-os com `Video Masks` ou adicione `Transparent Videos`. [Saiba mais](https://support.wix.com/en/article/wix-video-about-wix-video)."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | modern-image-formats": {
    "message": "Carregue imagens com o `Wix Media Manager` para garantir que são publicadas automaticamente como WebP. Descubra [mais formas de otimizar](https://support.wix.com/en/article/site-performance-optimizing-your-media) o conteúdo multimédia do seu site."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | render-blocking-resources": {
    "message": "Quando [adicionar código de terceiros](https://support.wix.com/en/article/site-performance-using-third-party-code-on-your-site) no separador `Custom Code` do painel de controlo do site, certifique-se de que este é diferido ou carregado no final do corpo do código. Sempre que possível, use as [integrações](https://support.wix.com/en/article/about-marketing-integrations) do Wix para incorporar ferramentas de marketing no seu site. "
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | server-response-time": {
    "message": "O Wix usa RFCs (redes de fornecimento de conteúdo) e a colocação em cache para publicar respostas o mais rapidamente possível para a maioria dos visitantes. Considere [ativar manualmente a colocação em cache](https://support.wix.com/en/article/site-performance-caching-pages-to-optimize-loading-speed) para o seu site, especialmente se usar o `Velo`."
  },
  "node_modules/lighthouse-stack-packs/packs/wix.js | unused-javascript": {
    "message": "Reveja o código de terceiros adicionado ao seu site no separador `Custom Code` do painel de controlo do site e mantenha apenas os serviços necessários para o site. [Saiba mais](https://support.wix.com/en/article/site-performance-removing-unused-javascript)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | efficient-animated-content": {
    "message": "Considere carregar o GIF para um serviço que o disponibilizará para incorporação como vídeo HTML5."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | modern-image-formats": {
    "message": "Considere usar o plugin [Performance Lab](https://wordpress.org/plugins/performance-lab/) para converter automaticamente as suas imagens JPEG carregadas em WebP, sempre que possível."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | offscreen-images": {
    "message": "Instale um [plugin do WordPress de carregamento lento](https://wordpress.org/plugins/search/lazy+load/) com capacidade para adiar imagens não visíveis ou para mudar para um tema com essa funcionalidade. Considere ainda a utilização do [plugin de AMP](https://wordpress.org/plugins/amp/)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | render-blocking-resources": {
    "message": "Há vários plug-ins do WordPress que o podem ajudar a [colocar recursos críticos inline](https://wordpress.org/plugins/search/critical+css/) ou [adiar recursos menos importantes](https://wordpress.org/plugins/search/defer+css+javascript/). Tenha em atenção que as otimizações oferecidas por estes plug-ins podem quebrar funcionalidades do seu tema ou plug-ins, pelo que poderá ser necessário efetuar alterações ao código."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | server-response-time": {
    "message": "Escolha um tema leve (idealmente um tema de bloco) e implemente a colocação em cache de páginas completas ou uma solução de site estático. Desative os plug-ins desnecessários para minimizar a sobrecarga do servidor. Considere atualizar o seu alojamento para um serviço dedicado ou gerido."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | total-byte-weight": {
    "message": "Considere mostrar excertos nas suas listas de publicações (por exemplo, através da etiqueta de mais), reduzir o número de publicações apresentadas numa determinada página, dividir as publicações longas em várias páginas ou utilizar um plugin para tornar o carregamento de comentários lento."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-css": {
    "message": "Um número de [plug-ins do WordPress](https://wordpress.org/plugins/search/minify+css/) pode acelerar o seu site ao concatenar, reduzir e comprimir os seus estilos. Poderá ainda utilizar um processo de criação para proceder previamente à redução se possível."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unminified-javascript": {
    "message": "Um número de [plug-ins do WordPress](https://wordpress.org/plugins/search/minify+javascript/) pode acelerar o seu site ao concatenar, reduzir e comprimir os seus scripts. Poderá ainda utilizar um processo de criação para proceder previamente à redução se possível."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-css-rules": {
    "message": "Considere reduzir ou mudar o número de [plugins do WordPress](https://wordpress.org/plugins/) que carregam CSS não utilizadas na sua página. Para identificar plugins que estejam a adicionar CSS não reconhecido, experimente realizar a [cobertura de código](https://developer.chrome.com/docs/devtools/coverage/) nas DevTools do Chrome. Pode identificar o tema/plugin responsável a partir do URL da folha de estilos. Esteja atento a plugins que tenham muitas folhas de estilo na lista com muito vermelho na cobertura do código. Um plugin só deve ter uma folha de estilos na lista de espera se esta for realmente utilizada na página."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-javascript": {
    "message": "Considere reduzir ou mudar o número de [plugins do WordPress](https://wordpress.org/plugins/) que carregam JavaScript não utilizado na sua página. Para identificar plugins que estejam a adicionar JS não reconhecido, experimente realizar a [cobertura de código](https://developer.chrome.com/docs/devtools/coverage/) nas DevTools do Chrome. Pode identificar o tema/plugin responsável a partir do URL do script. Esteja atento a plugins que tenham muitos scripts na lista com muito vermelho na cobertura do código. Um plugin só deve ter um script na lista de espera se este for realmente utilizado na página."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-long-cache-ttl": {
    "message": "Leia sobre [Colocação do navegador em cache no WordPress](https://wordpress.org/support/article/optimization/#browser-caching)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-optimized-images": {
    "message": "Considere utilizar um [plugin do WordPress de otimização da imagem](https://wordpress.org/plugins/search/optimize+images/) que comprima as imagens, ao mesmo tempo que mantém a qualidade."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-responsive-images": {
    "message": "Carregue imagens diretamente a partir da [biblioteca de multimédia](https://wordpress.org/support/article/media-library-screen/) para garantir que estão disponíveis os tamanhos de imagem necessários e, em seguida, introduza-as a partir da biblioteca de multimédia ou utilize o widget de imagens para garantir que são utilizados os tamanhos ideais das imagens (incluindo as referentes a breakpoints adaptáveis). Evite utilizar imagens de `Full Size`, a menos que as dimensões sejam adequadas à utilização. [Saiba mais](https://wordpress.org/support/article/inserting-images-into-posts-and-pages/)."
  },
  "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-text-compression": {
    "message": "Pode ativar a compressão de texto na configuração do servidor Web."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | modern-image-formats": {
    "message": "Ative o suplemento \"Imagify\" no separador Otimização de imagem no \"WP Rocket\" para converter as suas imagens em WebP."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | offscreen-images": {
    "message": "Ative a funcionalidade [LazyLoad](https://docs.wp-rocket.me/article/1141-lazyload-for-images) no WP Rocket para resolver esta recomendação. Esta funcionalidade atrasa o carregamento das imagens até o visitante deslocar a página para baixo e ter efetivamente de as ver."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | render-blocking-resources": {
    "message": "Ative as funcionalidades [Remover CSS não usado](https://docs.wp-rocket.me/article/1529-remove-unused-css) e [Carregar JavaScript diferido](https://docs.wp-rocket.me/article/1265-load-javascript-deferred) no \"WP Rocket\" para resolver esta recomendação. Estas funcionalidades vão otimizar os ficheiros CSS e JavaScript, respetivamente, para que não bloqueiem a renderização da página."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unminified-css": {
    "message": "Ative a opção [Reduzir ficheiros CSS](https://docs.wp-rocket.me/article/1350-css-minify-combine) no \"WP Rocket\" para corrigir este problema. Todos os espaços e comentários nos ficheiros CSS do site vão ser removidos para diminuir o tamanho dos ficheiros e tornar a transferência mais rápida."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unminified-javascript": {
    "message": "Ative a funcionalidade [Reduzir ficheiros JavaScript](https://docs.wp-rocket.me/article/1351-javascript-minify-combine) no \"WP Rocket\" para corrigir este problema. Os espaços vazios e os comentários vão ser removidos dos ficheiros JavaScript para reduzir o tamanho e tornar a transferência mais rápida."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unused-css-rules": {
    "message": "Ative a funcionalidade [Remover CSS não usado](https://docs.wp-rocket.me/article/1529-remove-unused-css) no \"WP Rocket\" para corrigir este problema. Reduz o tamanho da página ao remover todos os CSS e folhas de estilos não usados, mantendo apenas os CSS usados para cada página."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | unused-javascript": {
    "message": "Ative a funcionalidade [Atrasar execução de JavaScript](https://docs.wp-rocket.me/article/1349-delay-javascript-execution) no \"WP Rocket\" para corrigir este problema. Vai melhorar o carregamento da página ao atrasar a execução de scripts até à interação do utilizador. Se o site tiver iFrames, também pode usar as funcionalidades [LazyLoad para iFrames e vídeos](https://docs.wp-rocket.me/article/1674-lazyload-for-iframes-and-videos) e [Substituir iFrame do YouTube por imagem de pré-visualização](https://docs.wp-rocket.me/article/1488-replace-youtube-iframe-with-preview-image) do WP Rocket."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | uses-optimized-images": {
    "message": "Ative o suplemento \"Imagify\" no separador Otimização de imagem no \"WP Rocket\" e execute a Otimização em massa para comprimir as suas imagens."
  },
  "node_modules/lighthouse-stack-packs/packs/wp-rocket.js | uses-rel-preconnect": {
    "message": "Use a funcionalidade [Obter previamente pedidos de DNS](https://docs.wp-rocket.me/article/1302-prefetch-dns-requests) no \"WP Rocket\" para adicionar \"dns-prefetch\" e acelerar a ligação com domínios externos. Além disso, o \"WP Rocket\" adiciona automaticamente \"preconnect\" ao [domínio do Google Fonts](https://docs.wp-rocket.me/article/1312-optimize-google-fonts) e aos CNAMEs adicionados através da funcionalidade [Ativar RFC](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 corrigir este problema dos tipos de letra, ative a funcionalidade [Remover CSS não usado](https://docs.wp-rocket.me/article/1529-remove-unused-css) no \"WP Rocket\". Os tipos de letra críticos do site vão ser pré-carregados com prioridade."
  },
  "report/renderer/report-utils.js | calculatorLink": {
    "message": "Veja a calculadora."
  },
  "report/renderer/report-utils.js | collapseView": {
    "message": "Reduzir vista"
  },
  "report/renderer/report-utils.js | crcInitialNavigation": {
    "message": "Navegação inicial"
  },
  "report/renderer/report-utils.js | crcLongestDurationLabel": {
    "message": "Latência crítica máxima do caminho:"
  },
  "report/renderer/report-utils.js | dropdownCopyJSON": {
    "message": "Copiar JSON"
  },
  "report/renderer/report-utils.js | dropdownDarkTheme": {
    "message": "Ativar/desativar tema escuro"
  },
  "report/renderer/report-utils.js | dropdownPrintExpanded": {
    "message": "Imprimir com expansão"
  },
  "report/renderer/report-utils.js | dropdownPrintSummary": {
    "message": "Imprimir resumo"
  },
  "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 rastreio não limitado"
  },
  "report/renderer/report-utils.js | dropdownViewer": {
    "message": "Abrir no visualizador"
  },
  "report/renderer/report-utils.js | errorLabel": {
    "message": "Erro!"
  },
  "report/renderer/report-utils.js | errorMissingAuditInfo": {
    "message": "Erro de relatório: sem informações de auditoria"
  },
  "report/renderer/report-utils.js | expandView": {
    "message": "Expandir vista"
  },
  "report/renderer/report-utils.js | firstPartyChipLabel": {
    "message": "Original"
  },
  "report/renderer/report-utils.js | footerIssue": {
    "message": "Apresentar um problema"
  },
  "report/renderer/report-utils.js | hide": {
    "message": "Ocultar"
  },
  "report/renderer/report-utils.js | labDataTitle": {
    "message": "Dados laboratoriais"
  },
  "report/renderer/report-utils.js | lsPerformanceCategoryDescription": {
    "message": "A análise do [Lighthouse](https://developers.google.com/web/tools/lighthouse/) da página atual numa rede móvel emulada. Os valores são o resultado de uma estimativa e podem variar."
  },
  "report/renderer/report-utils.js | manualAuditsGroupTitle": {
    "message": "Itens adicionais a verificar manualmente"
  },
  "report/renderer/report-utils.js | notApplicableAuditsGroupTitle": {
    "message": "Não aplicável"
  },
  "report/renderer/report-utils.js | openInANewTabTooltip": {
    "message": "Abra num novo separador"
  },
  "report/renderer/report-utils.js | opportunityResourceColumnLabel": {
    "message": "Oportunidade"
  },
  "report/renderer/report-utils.js | opportunitySavingsColumnLabel": {
    "message": "Poupança estimada"
  },
  "report/renderer/report-utils.js | passedAuditsGroupTitle": {
    "message": "Auditorias aprovadas"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindow": {
    "message": "Carregamento de página inicial"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindowSnapshot": {
    "message": "Instantâneo num momento no tempo"
  },
  "report/renderer/report-utils.js | runtimeAnalysisWindowTimespan": {
    "message": "Período de interações dos utilizadores"
  },
  "report/renderer/report-utils.js | runtimeCustom": {
    "message": "Limitação personalizada"
  },
  "report/renderer/report-utils.js | runtimeDesktopEmulation": {
    "message": "Ambiente de trabalho emulado"
  },
  "report/renderer/report-utils.js | runtimeMobileEmulation": {
    "message": "Moto G Power emulado"
  },
  "report/renderer/report-utils.js | runtimeNoEmulation": {
    "message": "Sem emulação"
  },
  "report/renderer/report-utils.js | runtimeSettingsAxeVersion": {
    "message": "Versão Axe"
  },
  "report/renderer/report-utils.js | runtimeSettingsBenchmark": {
    "message": "Potência da CPU/memória não limitada"
  },
  "report/renderer/report-utils.js | runtimeSettingsCPUThrottling": {
    "message": "Limitação da CPU"
  },
  "report/renderer/report-utils.js | runtimeSettingsDevice": {
    "message": "Dispositivo"
  },
  "report/renderer/report-utils.js | runtimeSettingsNetworkThrottling": {
    "message": "Limitação de rede"
  },
  "report/renderer/report-utils.js | runtimeSettingsScreenEmulation": {
    "message": "Emulação do ecrã"
  },
  "report/renderer/report-utils.js | runtimeSettingsUANetwork": {
    "message": "Agente do utilizador (rede)"
  },
  "report/renderer/report-utils.js | runtimeSingleLoad": {
    "message": "Sessão de página única"
  },
  "report/renderer/report-utils.js | runtimeSingleLoadTooltip": {
    "message": "Estes dados são retirados de uma sessão de página única, ao contrário dos dados de campo que resumem várias sessões."
  },
  "report/renderer/report-utils.js | runtimeSlow4g": {
    "message": "Limitação lenta de 4G"
  },
  "report/renderer/report-utils.js | runtimeUnknown": {
    "message": "Desconhecido"
  },
  "report/renderer/report-utils.js | show": {
    "message": "Mostrar"
  },
  "report/renderer/report-utils.js | showRelevantAudits": {
    "message": "Mostrar auditorias relevantes para:"
  },
  "report/renderer/report-utils.js | snippetCollapseButtonLabel": {
    "message": "Reduzir fragmento"
  },
  "report/renderer/report-utils.js | snippetExpandButtonLabel": {
    "message": "Expandir fragmento"
  },
  "report/renderer/report-utils.js | thirdPartyResourcesLabel": {
    "message": "Mostrar recursos de terceiros"
  },
  "report/renderer/report-utils.js | throttlingProvided": {
    "message": "Fornecido pelo ambiente"
  },
  "report/renderer/report-utils.js | toplevelWarningsMessage": {
    "message": "Ocorreram problemas que afetaram esta execução do Lighthouse:"
  },
  "report/renderer/report-utils.js | unattributable": {
    "message": "Não atribuível"
  },
  "report/renderer/report-utils.js | unscoredLabel": {
    "message": "Sem pontuação"
  },
  "report/renderer/report-utils.js | unscoredTitle": {
    "message": "Esta auditoria não contribui para a pontuação geral da categoria."
  },
  "report/renderer/report-utils.js | varianceDisclaimer": {
    "message": "Os valores são estimados e podem variar. A [pontuação de desempenho é calculada](https://developer.chrome.com/docs/lighthouse/performance/performance-scoring/) diretamente a partir destas métricas."
  },
  "report/renderer/report-utils.js | viewTraceLabel": {
    "message": "Ver rastreio"
  },
  "report/renderer/report-utils.js | viewTreemapLabel": {
    "message": "Ver mapa em árvore"
  },
  "report/renderer/report-utils.js | warningAuditsGroupTitle": {
    "message": "As auditorias foram concluídas com êxito, mas com avisos"
  },
  "report/renderer/report-utils.js | warningHeader": {
    "message": "Avisos: "
  },
  "treemap/app/src/util.js | allLabel": {
    "message": "Tudo"
  },
  "treemap/app/src/util.js | allScriptsDropdownLabel": {
    "message": "Todos os scripts"
  },
  "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 de recursos"
  },
  "treemap/app/src/util.js | tableColumnName": {
    "message": "Nome"
  },
  "treemap/app/src/util.js | toggleTableButtonLabel": {
    "message": "Ativar/desativar tabela"
  },
  "treemap/app/src/util.js | transferBytesLabel": {
    "message": "Bytes da transferência"
  },
  "treemap/app/src/util.js | unusedBytesLabel": {
    "message": "Bytes não usados"
  }
}
