Pular para o conteúdo principal

Mudanças incompatíveis e descontinuações

Uma lista de mudanças incompatíveis por versão do Dart.

Esta página lista todas as mudanças incompatíveis e descontinuações em atualizações do SDK do Dart, organizadas por versão e área, para ajudar os desenvolvedores Dart a entender e gerenciar o impacto delas. As notas de versão completas estão disponíveis no changelog do SDK do Dart. O documento política de mudanças incompatíveis descreve a política e o processo relacionados a mudanças incompatíveis e descontinuações no Dart.

Esta página inclui os seguintes tipos de mudanças incompatíveis:

Sem versionamento

O SDK do Dart não mantém compatibilidade com versões anteriores, e o código pode quebrar assim que você atualizar a versão do seu SDK se ele depender do comportamento anterior.

Estas são a maioria das mudanças e não são marcadas de forma especial nesta lista.

Versionado por idioma

O SDK do Dart mantém a compatibilidade com versões anteriores para o código existente, e a mudança de comportamento só tem efeito (podendo quebrar código que depende do comportamento anterior) quando você atualiza a versão da linguagem do seu código.

Estas são marcadas como: Language versioned

Descontinuações

O SDK do Dart mantém a compatibilidade com código descontinuado, emitindo um aviso. As descontinuações são então removidas por completo em uma versão posterior, quebrando qualquer código que dependa do comportamento anterior.

Estas são marcadas como: Deprecated / Removed

Experimental

Parte da versão, mas ainda não tratada como estável no SDK, e pode quebrar de uma versão para outra. Mudanças experimentais nem sempre têm uma issue de mudança incompatível correspondente, mas podem ter mais detalhes no changelog do SDK.

Estas são marcadas como: Experimental

Se você tiver dúvidas ou preocupações sobre qualquer uma dessas mudanças incompatíveis, comente na issue de mudança incompatível vinculada à entrada relevante. Para ser notificado sobre futuras mudanças incompatíveis, entre no grupo Dart announce.

3.13.0

#

Linguagem

#
  • Language versioned Você não pode mais usar final ou var em parâmetros que não são declarações. O Dart agora reserva ambos para declarar parâmetros em construtores primários. Remova final ou var das declarações de parâmetros afetadas. Se você ainda quiser impedir a reatribuição de parâmetros, pode usar a regra de lint parameter_assignments.
  • A inferência de tipo promovido em funções geradoras internas foi ajustada.

Bibliotecas

#

dart:io

#
  • NetworkInterface.addresses agora retorna List<InterfaceAddress> em vez de List<InternetAddress>. O novo subtipo InterfaceAddress de InternetAddress expõe um campo prefixLength e um getter broadcast. Código que implementa NetworkInterface e sobrescreve addresses deve atualizar o tipo de retorno.
  • InternetAddress.lookup não aceita mais endereços IPv4 inválidos que são tradicionalmente aceitos por inet_aton.

dart:js_interop

#
  • JSFunction e JSExportedDartFunction agora são genéricos. JSExportedDartFunction<T>.toDart agora converte a função original encapsulada para o argumento de tipo T, e isA<JSExportedDartFunction<T>> agora também verifica se a função encapsulada é um T. Os tipos em runtime de JSFunction e JSExportedDartFunction não mudam.

Ferramentas

#

Analisador

#
  • Deprecated A regra de lint avoid_private_typedef_functions está descontinuada e deve ser removida dos arquivos analysis_options.yaml.

  • Deprecated A regra de lint one_member_abstracts está descontinuada e deve ser removida dos arquivos analysis_options.yaml.

Formatador (dart format)

#
  • Deixou de adicionar uma linha em branco antes de um comentário no fim de uma unidade de compilação ou de um corpo com chaves.

  • As cláusulas de representação de extension types agora são formatadas da mesma forma que as listas de parâmetros formais de construtores primários.

  • Quando as vírgulas finais são preservadas, não insere mais uma quebra de linha antes do ; em um enum com membros, a menos que haja uma vírgula final.

  • Corrigido um bug em que algumas coleções ou argumentos podiam ser divididos desnecessariamente.

  • Language versioned Listas de parâmetros agora podem ser formatadas em bloco.

  • Language versioned Expressões as, is e is! agora podem ser formatadas em bloco.

  • Language versioned Linhas em branco são adicionadas ao redor de declarações mixin e extension type se elas não tiverem um corpo com ;.

  • Language versioned Os imports agora são separados em seções.

  • Language versioned Vírgulas finais agora são adicionadas para dividir as cláusulas de representação de extension types.

Runtime

#
  • Removed Os certificados raiz de fallback embutidos, usados quando os certificados do sistema não podem ser encontrados, não são mais incluídos. Se os certificados do sistema não forem encontrados, use as opções --root-certs-file ou --root-certs-cache para fornecer certificados de fallback à VM standalone do Dart.

API do Embedder

#
  • Dart_FileModifiedCallback em runtime/include/dart_tools_api.h agora passa int64_t since como microssegundos desde a época, em vez de milissegundos.

3.12.0

#

Bibliotecas

#

dart:js_interop

#
  • O método de extensão isA foi movido de JSAnyUtilityExtension para NullableObjectUtilExtension para dar suporte à verificação de tipo de qualquer Object?. Essa mudança só é incompatível se você referenciou o nome da extensão diretamente, seja aplicando a extensão diretamente ou por meio das diretivas show/hide.
  • isA<JSObject>() agora trata corretamente objetos JS sem protótipos, e isA<JSAny>() faz uma verificação não trivial de que o valor é um valor JS.
  • isA<JSExportedDartFunction>() agora verifica se a função é realmente uma função wrapper JS retornada por Function.toJS ou Function.toJSCaptureThis.

Ferramentas

#

Pub

#
  • dart pub cache repair agora repara, por padrão, apenas os pacotes referenciados pelo arquivo pubspec.lock do projeto atual. Para reparar todos os pacotes do cache do pub, como nas versões anteriores, passe a nova flag --all.

Compilador Wasm (dart2wasm)

#
  • A API de carregamento de módulos com carregamento deferido foi atualizada para permitir o download em lote de módulos deferidos. O embedder agora usa loadDeferredModules em vez de loadDeferredModule, em que a nova função deve receber um array de nomes de módulos em vez de nomes individuais. Todas as funções de carregamento de módulos também devem aceitar agora um callback instantiator ao qual devem passar os resultados carregados.

Compilador JavaScript de produção (dart2js)

#
  • JSExportedDartFunction.toDart agora lança exceção se a função JS wrapper não for resultado de Function.toJS ou Function.toJSCaptureThis, para ser consistente com DDC e dart2wasm. Antes, às vezes ela retornava incorretamente a função Dart original, mesmo se a função JS wrapper tivesse sido convertida de uma chamada à função descontinuada allowInterop.

3.11.0

#

Ferramentas

#

Analisador

#

Compilação Wasm (dart compile wasm)

#
  • Removed Código que importa dart:js_util ou package:js agora resulta em erro de compilação ao compilar para WebAssembly.

    Invocar qualquer API dessas bibliotecas resultará em erro de runtime. Os usos devem ser migrados para dart:js_interop e dart:js_interop_unsafe.

3.10.0

#

Linguagem

#
  • Funções geradoras sync* e async* sem um retorno especificado agora inferem corretamente os tipos de retorno como non-nullable quando nenhum valor null é produzido. Isso pode disparar novos diagnósticos relacionados a elementos de código desnecessários, como um operador de acesso com null-aware desnecessário (?.).

Bibliotecas

#

dart:core

#
  • As funções Uri.parseIPv4Address e Uri.parseIPv6Address não permitem mais incorretamente zeros à esquerda em endereços IPv4.

  • Deprecated A possibilidade de implementar RegExp e RegExpMatch está descontinuada e será removida em uma versão futura.

dart:io

#

dart:js_interop

#
  • A extensão Uint16ListToJSInt16Array foi renomeada para Uint16ListToJSUint16Array.

  • A extensão JSUint16ArrayToInt16List foi renomeada para JSUint16ArrayToUint16List.

  • A função Function.toJSCaptureThis agora resulta em verificações adicionais em tempo de compilação para igualar Function.toJS. Se a função não tiver um tipo conhecido estaticamente, tiver tipos não suportados na assinatura, incluir parâmetros de tipo ou tiver quaisquer parâmetros nomeados, a chamada resultará em erro de compilação.

Ferramentas

#

SDK

#
  • A CLI dart e a VM do Dart agora são executáveis separados, com o executável e o processo da VM do Dart puro chamados dartvm. Programas Dart ainda devem ser executados com dart run.

  • Os subcomandos da ferramenta dart, como dart format e dart compile, agora executam snapshots compilados com AOT das ferramentas subjacentes. Não deve haver diferença funcional além de melhorias de desempenho, mas se você encontrar incompatibilidades, por favor reporte-as.

  • Removed A ferramenta dart não está mais disponível para plataformas IA32, pois o SDK do Dart não oferece mais suporte a IA32.

Analisador

#
  • Usar membros marcados como @experimental fora do pacote em que são declarados agora resulta em um aviso.

  • Regras de lint habilitadas em arquivos de opções de análise incluídos agora resultam em diagnósticos de lint incompatíveis quando apropriado.

  • Removed A anotação @required descontinuada de package:meta não é mais suportada. Para marcar um parâmetro como obrigatório, use a palavra-chave required.

Compilação Wasm (dart compile wasm)

#
  • dart:js_util e package:js não são mais suportados ao compilar para WebAssembly. Invocar qualquer API dessas bibliotecas resultará em erro de runtime. Os usos devem ser migrados para dart:js_interop e dart:js_interop_unsafe.

  • Para igualar os compiladores JS, dartify quando compilado para Wasm agora converte objetos JS Promise em objetos Dart Future em vez de objetos Dart JSValue.

3.9.0

#

Linguagem

#
  • Language versioned Null safety agora é assumido ao calcular a promoção de tipo, a alcançabilidade e a atribuição definida. Como resultado, a análise aprimorada de código morto pode fazer com que novos diagnósticos do analisador sejam disparados em código existente que antes passava na análise.

Ferramentas

#
  • Alguns subcomandos da ferramenta dart, como dart analyze e dart fix, agora executam snapshots compilados com AOT das ferramentas subjacentes. Não deve haver diferença funcional além de melhorias de desempenho, mas se você encontrar incompatibilidades, por favor reporte-as.

Pub

#
  • Language versioned O limite superior da restrição do SDK flutter no pacote raiz do seu workspace agora é respeitado. Se o seu SDK atual não atender ao limite especificado, dart pub get e outras ações que recuperam dependências falharão.

Build do Dart

#
  • Experimental Gerar um bundle de aplicação CLI com suporte experimental a native assets agora exige o uso do subcomando dart build cli e a especificação do entrypoint da aplicação com a nova opção --target.

3.8.0

#

Bibliotecas

#

dart:html

#

Ferramentas

#

Analisador

#

Compilador JavaScript de desenvolvimento (DDC)

#
  • Agora lança um erro de runtime quando um construtor factory de redirecionamento é destacado e um de seus parâmetros opcionais não nullable não recebe nenhum valor. No futuro, provavelmente isso será um erro de compilação.

Compilador JavaScript de produção (dart2js)

#
  • Experimental Removed As flags --experiment-new-rti e --use-old-rti não são mais suportadas.

Formatador (dart format)

#
  • Language versioned O formatador fez mudanças e correções que resultam em nova saída ao formatar código com uma versão da linguagem 3.8 ou superior.

3.7.0

#

Linguagem

#

Bibliotecas

#

dart:html, dart:indexed:db, dart:svg, dart:web_audio, dart:web_gl, dart:js

#
  • Deprecated Estas bibliotecas web legadas estão oficialmente descontinuadas. Espera-se que sejam removidas em uma versão futura. Os projetos devem migrar para usar package:web e dart:js_interop. Para saber mais, veja Migre para package:web.

dart:js, dart:js_util, package:js

#
  • Deprecated Estas bibliotecas legadas de interop com JS estão oficialmente descontinuadas. Espera-se que sejam removidas em uma versão futura. Os projetos devem migrar para usar dart:js_interop. Para saber mais, veja uso de interop com JS.

Ferramentas

#

Analisador

#

Formatador (dart format)

#
  • Language versioned O formatador implementa um novo estilo que resulta em nova saída ao formatar código com uma versão da linguagem 3.7 ou superior.
  • Removed A flag --fix do dart format não é mais suportada. Para aplicar correções semelhantes e outras, configure suas opções de análise e execute dart fix.
  • Deprecated A opção --line-length do dart format foi descontinuada e está marcada para remoção. Todos os usos devem ser migrados para a nova opção --page-width.

3.6.0

#

Linguagem

#

Bibliotecas

#

dart:io

#

Ferramentas

#

Analisador

#

Front end do compilador (cfe)

#

Compilador Wasm (dart2wasm)

#
  • A condição dart.library.js agora é false em imports condicionais ao compilar para WebAssembly. Deve-se usar a condição dart.library.js_interop em vez dela.

Formatador (dart format)

#

As seguintes mudanças podem resultar em pequenas alterações de formatação ao executar dart format com um SDK do Dart 3.6 ou posterior:

  • Preserva parâmetros de tipo em parâmetros formais de função tipada no estilo antigo que também usam this. ou super..
  • Formata corretamente imports com as cláusulas as e if.

Pub

#
  • dart pub publish agora avisa se arquivos rastreados no git têm alterações não commitadas.

3.5.0

#

Linguagem

#

Bibliotecas

#

dart:core

#

dart:io

#

dart:js_interop

#

dart:typed_data

#

Runtime

#
  • Removed A VM do Dart não oferece mais suporte a null safety unsound.
    • A opção de CLI --no-sound-null-safety foi removida.
    • As funções Dart_NewListOf e Dart_IsLegacyType foram removidas da API C.
  • Removed A função Dart_DefaultCanonicalizeUrl foi removida da API C.

3.4.0

#

Linguagem

#

Bibliotecas

#

dart:cli

#

dart:html, dart:indexed:db, dart:svg, dart:web_audio, dart:web_gl

#
  • Deprecated Estas bibliotecas agora estão marcadas como legadas e receberão menos suporte no futuro. Novos projetos devem preferir usar package:web e dart:js_interop. Para saber mais, veja Migre para package:web.

dart:js

#
  • Deprecated Esta biblioteca agora está marcada como legada e receberá menos suporte no futuro. Os usos devem ser migrados para dart:js_interop e dart:js_interop_unsafe. Para saber mais, veja /go/next-gen-js-interop.

dart:js_util

#
  • Deprecated Esta biblioteca agora está marcada como legada e receberá menos suporte no futuro. Os usos devem ser migrados para dart:js_interop e dart:js_interop_unsafe. Para saber mais, veja /go/next-gen-js-interop.

dart:io

#

dart:typed_data

#

Ferramentas

#

Compilador JavaScript de produção (dart2js)

#
  • Experimental Deprecated Agora você deve especificar um formato para a opção de CLI --dump-info como binary ou json. O formato json está descontinuado e pode ser removido em uma versão futura do Dart.

Compilador Wasm (dart2wasm)

#
  • Experimental Vários argumentos de CLI de dart compile wasm foram atualizados, removidos ou substituídos. Para saber mais, execute dart compile wasm --verbose --help.

Runtime

#
  • Removed A VM do Dart não oferece mais suporte a strings externas. Como resultado, as funções Dart_IsExternalString, Dart_NewExternalLatin1String e Dart_NewExternalUTF16String foram removidas da API C do Dart.

3.3.0

#

SDK

#
  • Experimental Removed Os seguintes experimentos estão agora aposentados, pois foram lançados no Dart 3 e não são mais necessários com uma versão da linguagem 3.0 ou superior. A configuração deles deve ser removida das opções de análise, dos comandos de CLI e das configurações da IDE.

    • patterns
    • records
    • class-modifiers
    • sealed-class

Linguagem

#

Bibliotecas

#

dart:cli

#
  • Experimental Deprecated A função waitFor continua descontinuada por mais uma versão e está marcada para remoção no Dart 3.4.

dart:ffi

#

dart:html

#
  • Em vez de usar HttpRequest diretamente, agora é recomendado usar package:http.

dart:io

#
  • Em vez de usar HttpClient diretamente, agora é recomendado usar package:http.

dart:js_interop

#
  • Experimental Tipos JS como JSAny têm novos tipos de representação específicos do compilador.
  • Experimental Classes @staticInterop definidas pelo usuário não podem mais implementar JSAny ou JSObject. Os usos devem ser migrados para JSObject.fromInteropObject ou ser definidos como extension types.
  • Experimental JSArray e JSPromise agora têm parâmetros genéricos.
  • Experimental Vários membros de extensão foram movidos ou renomeados. Para saber sobre as extensões atualizadas, consulte JSAnyUtilityExtension e JSAnyOperatorExtension.

dart:typed_data

#

dart:nativewrappers

#

Ferramentas

#

Compilador JavaScript de produção (dart2js)

#

Compilador Wasm (dart2wasm)

#

Analisador

#
  • Experimental Diretivas inválidas em comentários dart doc agora são reportadas pelo analisador.

  • Devido a melhorias na promoção de tipo, os seguintes diagnósticos do analisador podem ser disparados em código existente que antes passava na análise:

    • unnecessary_non_null_assertion
    • unnecessary_cast
    • invalid_null_aware_operator

Linter

#
  • As regras iterable_contains_unrelated_type e list_remove_unrelated_type foram removidas. Considere migrar para a regra collection_methods_unrelated_type ampliada.

  • As seguintes regras foram removidas por não serem mais necessárias com o sound null safety. Você deve remover a configuração delas dos seus arquivos analysis_options.yaml e de quaisquer comentários de ignore.

    • always_require_non_null_named_parameters
    • avoid_returning_null
    • avoid_returning_null_for_future

3.2.0

#

Linguagem

#

Bibliotecas

#

dart:cli

#

dart:convert

#

dart:developer

#
  • Deprecated O método Service.getIsolateID.

dart:ffi

#

dart:io

#

dart:js_interop

#
  • Experimental Removed JSNumber.toDart em favor de toDartDouble e toDartInt.
  • Experimental Removed Object.toJS em favor de Object.toJSBox.
  • Experimental APIs de interop externo com JS usando dart:js_interop foram restritas a um conjunto de tipos permitidos.
  • Experimental Uso de isNull e isUndefined no dart2wasm foi proibido.
  • Experimental As APIs typeofEquals e instanceof foram alteradas para retornar bool em vez de JSBoolean. Além disso, typeofEquals agora recebe String em vez de JSString.
  • Experimental Os tipos JSAny e JSObject foram alterados para que só possam ser implementados, e não estendidos, por tipos @staticInterop definidos pelo usuário.
  • Experimental JSArray.withLength foi alterado para receber int em vez de JSNumber.

Ferramentas

#

Compilador JavaScript de desenvolvimento (DDC)

#

Compilador JavaScript de produção (dart2js)

#

Analisador

#

3.1.0

#

Bibliotecas

#

dart:async

#

dart:io

#

dart:js_interop

#
  • Experimental Removed ObjectLiteral; crie um literal de objeto sem membros nomeados usando {}.jsify().

package:js

#
  • Membros external @staticInterop e membros de extensão external não podem mais ser usados como tear-offs. Declare um closure ou um método não external que chame esses membros, e use-o no lugar.
  • Membros external @staticInterop e membros de extensão external vão gerar um código JS um pouco diferente para métodos que têm parâmetros opcionais.

3.0.0

#

Linguagem

#

Bibliotecas

#
  • As seguintes classes existentes foram transformadas em classes mixin: Iterable, IterableMixin, IterableBase, ListMixin, SetMixin, MapMixin, LinkedListEntry, StringConversionSink.

dart:core

#

dart:async

#

dart:collection

#

dart:developer

#

dart:ffi

#
  • Experimental Deprecated A anotação @FfiNative agora está descontinuada. Os usos devem ser atualizados para usar a anotação @Native.

dart:html

#

dart:math

#
  • Language versioned A interface Random só pode ser implementada, não estendida.

dart:io

#

2.19.0

#

Linguagem

#

Bibliotecas

#

dart:convert

#

dart:developer

#

dart:ffi

#

dart:io

#

dart:isolate

#
  • SendPort.send voltou a ter verificações estritas sobre o conteúdo das mensagens ao enviar mensagens entre isolates que não são conhecidos por compartilhar o mesmo código.

dart:mirrors

#

package:js

#

dart2js

#

2.18.0

#

Linguagem

#

Bibliotecas

#

dart:io

#

Ferramentas

#

Linha de comando do Dart

#

2.17.0

#

Bibliotecas

#

dart:io

#

Ferramentas

#

Linha de comando do Dart

#

2.16.0

#

Bibliotecas

#

dart:io

#

dart:isolate

#

Ferramentas

#

Linha de comando do Dart

#

2.15.0

#

Bibliotecas

#

dart:io

#

dart:web_sql

#

dart:html

#

Ferramentas

#

Linha de comando do Dart

#

VM do Dart

#

2.14.0

#

Bibliotecas

#

dart:io

#
  • Os callbacks de setter .authenticate e .authenticateProxy em HttpClient agora devem aceitar um argumento realm nullable (para código já migrado para null safety).

dart:typed_data

#

Ferramentas

#

VM do Dart

#

Linha de comando do Dart

#

dart2js

#

Dart Dev Compiler (DDC)

#

2.13.0

#

Bibliotecas

#

package:js

#
  • Não é mais válido usar uma String que corresponda a uma anotação @Native em uma anotação @JS() para uma classe de interop JS não anônima.

2.12.0

#

Linguagem

#

Bibliotecas

#

dart:ffi

#

Ferramentas

#

VM do Dart

#

Pub

#

2.10.0

#

Ferramentas

#

VM do Dart

#

2.9.0

#

Bibliotecas

#

dart:convert

#

dart:html

#
  • CssClassSet.add() e CssClassSet.toggle agora retornam false em vez de null se o CssClassSet corresponder a múltiplos elementos.

dart:mirrors

#

Ferramentas

#

VM do Dart

#

2.8.1

#

Linguagem

#

Bibliotecas

#

dart:async

#

dart:core

#

dart:ffi

#
  • Alterados Pointer.asFunction() e DynamicLibrary.lookupFunction() para métodos de extensão.

dart:io

#

Ferramentas

#

Dart Dev Compiler (DDC)

#

Corrigimos várias inconsistências entre o DDC e o Dart2JS para que os usuários encontrem com menos frequência código aceito por um compilador, mas que depois falha no outro.

  • Excluída a versão legada (baseada no analisador) do DDC.
  • Funções passadas para JavaScript usando a especificação de interop package:js recomendada agora devem ser encapsuladas com uma chamada a allowInterop.
  • Construtores em classes @JS() devem ser marcados com external.

dart2js

#
  • Os limites de parâmetros de tipo correspondentes agora só precisam ser subtipos mútuos, em vez de estruturalmente iguais, salvo renomeação das variáveis de tipo dos limites e equiparação de todos os tipos topo.
  • Os tipos agora são normalizados.
  • Construtores em classes @JS() devem ser marcados com external.
  • Removida por completo a flag --package-root, que era oculta e desabilitada no Dart 2.0.0.

2.7.1

#

2.7.0

#

Linguagem

#

Bibliotecas

#

dart:io

#
  • Adicionado IOOverrides.serverSocketBind para facilitar a escrita de testes que desejam simular ServerSocket.bind.

2.6.0

#

Linguagem

#

Bibliotecas

#

dart:ffi

#
  • A API agora usa membros de extensão estáticos.
  • Removidos Pointer.allocate e Pointer.free de gerenciamento de memória.
  • Pointer.offsetBy foi removido; use cast e elementAt no lugar.

2.5.0

#

Bibliotecas

#

dart:io

#

Ferramentas

#

Pub

#

2.4.0

#

Linguagem

#

Bibliotecas

#

dart:isolate

#
  • Isolate.resolvePackageUri sempre lançará um UnsupportedError quando compilado com dart2js ou DDC.

dart:async

#

2.2.0

#

Bibliotecas

#

package:kernel

#
  • A propriedade klass do getter na classe InstanceConstant da API de AST do Kernel foi renomeada para classNode, por consistência.
  • Atualizada a implementação de Link para usar links simbólicos verdadeiros em vez de junctions no Windows.

2.1.1

#

Bibliotecas

#

dart:io

#

Ferramentas

#

VM do Dart

#

2.1.0

#

Linguagem

#

Ferramentas

#

dart2js

#
  • Chaves duplicadas em um map const não são permitidas e produzem um erro de compilação.

2.0.0

#

Linguagem

#

Bibliotecas

#
  • Constantes nas bibliotecas principais renomeadas de SCREAMING_CAPS para lowerCamelCase.
  • Adicionados muitos novos métodos às classes das bibliotecas principais que precisarão ser implementados se você implementar as interfaces dessas classes.
  • dart:isolate e dart:mirrors não são mais suportados ao usar o Dart para web.

Ferramentas

#

Pub

#

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.