;After installing the extension, adjust it to your needs by clicking its icon in the extensions menu to access the options page. This is because features other than infinite scroll are disabled by default.
Após instalar a extensão, ajuste-a às suas necessidades clicando no ícone na barra de extensões para acessar a página de opções. Isso ocorre porque outros recursos além da rolagem infinita são desabilitados por padrão.

;You can see a list of all the enhancements here: https://gerrit.avm99963.com/plugins/gitiles/infinitegforums/+/HEAD/docs/features.md
Você pode ver uma lista de todas as melhorias aqui: https://gerrit.avm99963.com/plugins/gitiles/infinitegforums/+/HEAD/docs/features.md

;New additions in future updates will be disabled by default, and can be manually enabled in the options page. Join https://groups.google.com/g/twpowertools-discuss to receive updates about new functionality.
Novas adições em atualizações futuras serão desabilitadas por padrão e podem ser habilitadas manualmente na página de opções. Participe https://groups.google.com/g/twpowertools-discuss para receber atualizações sobre novas funcionalidades.

;The source code is available here: https://gerrit.avm99963.com/plugins/gitiles/infinitegforums. Contributions are welcome!
O código fonte está disponível aqui: https://gerrit.avm99963.com/plugins/gitiles/infinitegforums. Contribuições são bem-vindas!

;Help translate the extension to your native language! Visit https://avm99963-pontoon.herokuapp.com/projects/tw-power-tools/
Ajude a traduzir a extensão para seu idioma nativo! Visite https://avm99963-pontoon.herokuapp.com/projects/tw-power-tools/
